@meridianjs/admin-dashboard 0.1.31 → 0.1.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +103 -0
- package/dist/assets/{ProjectTimelinePage-CCZ520P0.js → ProjectTimelinePage-Bit8cg9p.js} +1 -1
- package/dist/assets/{WorkspaceReportingPage-DQXCrt-x.js → WorkspaceReportingPage-DvDN1hfl.js} +1 -1
- package/dist/assets/{index-DEgefpUi.js → index-Bm4RN7BM.js} +2 -2
- package/dist/index.html +1 -1
- package/package.json +1 -1
package/README.md
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# @meridianjs/admin-dashboard
|
|
2
|
+
|
|
3
|
+
The MeridianJS admin dashboard. A Linear.app-inspired React SPA built with Vite, TanStack Query, Tailwind CSS, and shadcn/ui. Served as a static site alongside your API.
|
|
4
|
+
|
|
5
|
+
## Running in Development
|
|
6
|
+
|
|
7
|
+
The dashboard is automatically started when you run `meridian dev` from a scaffolded project that includes it. It starts on port `5174` (configurable) and proxies API calls to port `9000`.
|
|
8
|
+
|
|
9
|
+
To run the dashboard standalone:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
cd node_modules/@meridianjs/admin-dashboard
|
|
13
|
+
npm run dev
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Or via the CLI:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
meridian serve-dashboard
|
|
20
|
+
meridian serve-dashboard --port 3000
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Tech Stack
|
|
24
|
+
|
|
25
|
+
| Concern | Library |
|
|
26
|
+
|---|---|
|
|
27
|
+
| Framework | React 18 |
|
|
28
|
+
| Build | Vite 5 |
|
|
29
|
+
| Routing | React Router v6 |
|
|
30
|
+
| Data fetching | TanStack Query v5 |
|
|
31
|
+
| Styling | Tailwind CSS + shadcn/ui |
|
|
32
|
+
| Drag & drop | @dnd-kit |
|
|
33
|
+
| Notifications | Sonner |
|
|
34
|
+
| Icons | Lucide React |
|
|
35
|
+
| Theming | next-themes (light / dark) |
|
|
36
|
+
|
|
37
|
+
## Features
|
|
38
|
+
|
|
39
|
+
- **Kanban board** — custom project statuses as columns, drag-and-drop issue reorder, column reorder, hex-tinted column backgrounds
|
|
40
|
+
- **Issue list** — filterable by status, priority, type, assignee, sprint
|
|
41
|
+
- **Issue detail** — inline edit, full-page view, sub-issues, comments, attachments, time tracking
|
|
42
|
+
- **Sprint management** — create, start, complete sprints; move issues between sprints
|
|
43
|
+
- **Project timeline** — Gantt chart with business-day calculations from `@meridianjs/org-calendar`
|
|
44
|
+
- **Workspace settings** — member management (invite, role change, remove), team management with inline member lists
|
|
45
|
+
- **Project access** — per-project member and team grants via `ProjectAccessDialog`
|
|
46
|
+
- **Notifications bell** — real-time count, mark as read
|
|
47
|
+
- **Custom RBAC roles** — create roles with permission strings, assign to users
|
|
48
|
+
- **Org settings** — working-day schedule, public holiday management
|
|
49
|
+
|
|
50
|
+
## Widget / Extension System
|
|
51
|
+
|
|
52
|
+
Inject custom React components into named zones in the dashboard UI without modifying the core package.
|
|
53
|
+
|
|
54
|
+
### Defining Widgets
|
|
55
|
+
|
|
56
|
+
Create `src/admin/widgets/index.tsx` in your project:
|
|
57
|
+
|
|
58
|
+
```tsx
|
|
59
|
+
import React from "react"
|
|
60
|
+
|
|
61
|
+
function MyBanner({ projectId }: { projectId: string }) {
|
|
62
|
+
return (
|
|
63
|
+
<div className="mx-6 my-2 p-3 rounded border border-border text-sm text-muted-foreground">
|
|
64
|
+
Custom panel for project: {projectId}
|
|
65
|
+
</div>
|
|
66
|
+
)
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export default [
|
|
70
|
+
{ zone: "project.board.before", component: MyBanner },
|
|
71
|
+
]
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Widgets are compiled at startup by `meridian dev` / `meridian serve-dashboard` via esbuild and loaded by the dashboard at runtime. React is shared via `window.__React` to prevent duplicate instances.
|
|
75
|
+
|
|
76
|
+
### Available Zones
|
|
77
|
+
|
|
78
|
+
| Zone | Page | Props |
|
|
79
|
+
|---|---|---|
|
|
80
|
+
| `issue.details.before` | Issue detail | `{ issue }` |
|
|
81
|
+
| `issue.details.after` | Issue detail | `{ issue }` |
|
|
82
|
+
| `issue.details.sidebar` | Issue detail page | `{ issue }` |
|
|
83
|
+
| `project.board.before` | Kanban board | `{ projectId }` |
|
|
84
|
+
| `project.board.after` | Kanban board | `{ projectId }` |
|
|
85
|
+
| `project.issues.before` | Issue list | `{ projectId }` |
|
|
86
|
+
| `project.issues.after` | Issue list | `{ projectId }` |
|
|
87
|
+
| `project.timeline.before` | Gantt chart | `{ projectId }` |
|
|
88
|
+
| `project.timeline.after` | Gantt chart | `{ projectId }` |
|
|
89
|
+
| `project.sprints.before` | Sprints page | `{ projectId }` |
|
|
90
|
+
| `project.sprints.after` | Sprints page | `{ projectId }` |
|
|
91
|
+
| `workspace.settings.before` | Workspace settings | `{ workspaceId }` |
|
|
92
|
+
| `workspace.settings.after` | Workspace settings | `{ workspaceId }` |
|
|
93
|
+
|
|
94
|
+
## Environment Variables
|
|
95
|
+
|
|
96
|
+
| Variable | Default | Description |
|
|
97
|
+
|---|---|---|
|
|
98
|
+
| `API_URL` | `http://localhost:9000` | API base URL — **must be set in production** |
|
|
99
|
+
| `DASHBOARD_PORT` | `5174` | Port the dashboard serves on |
|
|
100
|
+
|
|
101
|
+
## License
|
|
102
|
+
|
|
103
|
+
MIT
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as H,b as L,j as t}from"./vendor-query-DtBTlSlq.js";import{u as Q,r as c}from"./vendor-react-aoclG454.js";import{u as U,a as Z,b as J,c as V,d as X,e as ee,W as C,B as te,P as ae,G as se,f as ne,g as w,h as I,i as re,j as oe,k as de,l as v,m as $,n as ie,o as le,I as ce,C as ue,p as me,q as E,r as T,s as he,t as fe,v as pe,w as xe}from"./index-
|
|
1
|
+
import{a as H,b as L,j as t}from"./vendor-query-DtBTlSlq.js";import{u as Q,r as c}from"./vendor-react-aoclG454.js";import{u as U,a as Z,b as J,c as V,d as X,e as ee,W as C,B as te,P as ae,G as se,f as ne,g as w,h as I,i as re,j as oe,k as de,l as v,m as $,n as ie,o as le,I as ce,C as ue,p as me,q as E,r as T,s as he,t as fe,v as pe,w as xe}from"./index-Bm4RN7BM.js";import"./vendor-radix-Bj-t5iGX.js";import"./vendor-dnd-6EGxH1Lf.js";import"./vendor-editor-Ba0DY8XI.js";function f(n,p){const r=n.start_date?new Date(n.start_date):new Date(n.due_date),x=n.due_date?E(new Date(n.due_date),1):E(r,1);return{id:n.id,name:`${n.identifier} ${n.title}`,startAt:r,endAt:x,status:{id:n.status,name:n.status,color:p}}}function Ie(){const{projectKey:n}=Q(),p=H(),[r,x]=c.useState("monthly"),[_,S]=c.useState(null),[W,M]=c.useState(!1),G=c.useRef(null);c.useEffect(()=>{const e=requestAnimationFrame(()=>{var P;const s=(P=G.current)==null?void 0:P.querySelector(".gantt");if(!s)return;const a=new Date,N=a.getFullYear()-1,Y=300;let D;if(r==="daily"){const h=new Date(N,0,1);D=Math.floor((a.getTime()-h.getTime())/864e5)*50}else{const h=r==="monthly"?150:100,z=(a.getFullYear()-N)*12+a.getMonth(),O=new Date(a.getFullYear(),a.getMonth()+1,0).getDate();D=z*h+(a.getDate()-1)/O*h}const K=s.clientWidth-Y;s.scrollLeft=Math.max(0,D-K/2)});return()=>cancelAnimationFrame(e)},[r]);const{data:j}=U(n??""),o=(j==null?void 0:j.id)??"",{data:y=[]}=Z(o||void 0),{data:q=[]}=J(o||void 0),{data:g=[]}=V(o||void 0),{data:u}=X(),{data:A=[]}=ee(new Date().getFullYear()),B=L({mutationFn:({id:e,start_date:s,due_date:a})=>xe.put(`/admin/issues/${e}`,{start_date:s,due_date:a}),onSuccess:()=>{p.invalidateQueries({queryKey:pe.byProject(o)})},onError:()=>fe.error("Failed to update issue dates")}),d=Object.fromEntries(q.map(e=>[e.key,e.color])),F=e=>{if(!e.start_date||!e.due_date||!(u!=null&&u.working_days))return;const s=me(new Date(e.start_date),new Date(e.due_date),u.working_days,A);return`${s} business day${s!==1?"s":""}`},R=y.filter(e=>e.due_date),m=y.filter(e=>!e.due_date),i={},l=[];for(const e of R)e.sprint_id?(i[e.sprint_id]||(i[e.sprint_id]=[]),i[e.sprint_id].push(e)):l.push(e);const k=(e,s,a)=>{B.mutate({id:e,start_date:T(s,"yyyy-MM-dd"),due_date:a?T(he(a),"yyyy-MM-dd"):null})},b=e=>{const s=y.find(a=>a.id===e)??null;S(s)};return n?t.jsxs("div",{className:"flex flex-col h-full min-h-0",children:[t.jsx(C,{zone:"project.timeline.before",props:{projectId:o}}),t.jsxs("div",{className:"flex items-center justify-between px-6 py-3 border-b border-border shrink-0 bg-white dark:bg-zinc-950",children:[t.jsx("div",{className:"flex items-center gap-1 bg-muted rounded-md p-0.5",children:["daily","monthly","quarterly"].map(e=>t.jsx("button",{onClick:()=>x(e),className:`px-3 py-1 rounded text-xs font-medium transition-colors capitalize ${r===e?"bg-white dark:bg-zinc-900 text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"}`,children:e},e))}),t.jsxs(te,{size:"sm",variant:"outline",className:"h-7 text-xs gap-1",onClick:()=>M(!0),children:[t.jsx(ae,{className:"h-3.5 w-3.5"}),"Issue"]})]}),t.jsx("div",{ref:G,className:"flex-1 min-h-0 overflow-hidden",children:t.jsxs(se,{range:r,zoom:100,className:"h-full bg-white dark:bg-zinc-950",children:[t.jsxs(ne,{children:[g.map(e=>{const s=i[e.id]??[];return t.jsx(w,{name:e.name,children:s.map(a=>t.jsx(I,{feature:f(a,d[a.status]??"#94a3b8"),duration:F(a),onSelectItem:b},a.id))},e.id)}),l.length>0&&t.jsx(w,{name:"No Sprint",children:l.map(e=>t.jsx(I,{feature:f(e,d[e.status]??"#94a3b8"),duration:F(e),onSelectItem:b},e.id))}),m.length>0&&t.jsx(w,{name:"Unscheduled",children:m.map(e=>t.jsx(I,{feature:{id:e.id,name:`${e.identifier} ${e.title}`,startAt:new Date,endAt:new Date,status:{id:e.status,name:e.status,color:d[e.status]??"#94a3b8"}},onSelectItem:b},e.id))})]}),t.jsxs(re,{children:[t.jsx(oe,{}),t.jsxs(de,{children:[g.map(e=>{const s=i[e.id]??[];return t.jsx(v,{children:s.map(a=>t.jsx("div",{className:"flex",children:t.jsx($,{onMove:k,...f(a,d[a.status]??"#94a3b8")})},a.id))},e.id)}),l.length>0&&t.jsx(v,{children:l.map(e=>t.jsx("div",{className:"flex",children:t.jsx($,{onMove:k,...f(e,d[e.status]??"#94a3b8")})},e.id))}),m.length>0&&t.jsx(v,{children:m.map(e=>t.jsx("div",{style:{height:"var(--gantt-row-height)"}},e.id))})]}),g.filter(e=>e.end_date).map(e=>t.jsx(ie,{id:e.id,date:new Date(e.end_date),label:`${e.name} end`},e.id)),t.jsx(le,{})]})]})}),t.jsx(C,{zone:"project.timeline.after",props:{projectId:o}}),t.jsx(ce,{issue:_,projectId:o,open:!!_,onClose:()=>S(null)}),t.jsx(ue,{open:W,onClose:()=>M(!1),projectId:o})]}):null}export{Ie as ProjectTimelinePage};
|
package/dist/assets/{WorkspaceReportingPage-DQXCrt-x.js → WorkspaceReportingPage-DvDN1hfl.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as r}from"./vendor-query-DtBTlSlq.js";import{x as t,R as i}from"./index-
|
|
1
|
+
import{j as r}from"./vendor-query-DtBTlSlq.js";import{x as t,R as i}from"./index-Bm4RN7BM.js";import"./vendor-react-aoclG454.js";import"./vendor-radix-Bj-t5iGX.js";import"./vendor-dnd-6EGxH1Lf.js";import"./vendor-editor-Ba0DY8XI.js";function u(){const{workspace:o}=t();return r.jsx(i,{workspaceId:o==null?void 0:o.id})}export{u as WorkspaceReportingPage};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ProjectTimelinePage-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ProjectTimelinePage-Bit8cg9p.js","assets/vendor-query-DtBTlSlq.js","assets/vendor-react-aoclG454.js","assets/vendor-radix-Bj-t5iGX.js","assets/vendor-dnd-6EGxH1Lf.js","assets/vendor-editor-Ba0DY8XI.js","assets/WorkspaceReportingPage-DvDN1hfl.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
var jP=Object.defineProperty;var NP=(e,t,r)=>t in e?jP(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var qf=(e,t,r)=>NP(e,typeof t!="symbol"?t+"":t,r);import{j as a,u as De,a as Ne,b as je,R as kP,Q as SP,c as CP}from"./vendor-query-DtBTlSlq.js";import{a as up,c as D,r as p,b as _P,u as Ut,d as tu,N as ta,e as Nt,L as Va,O as bl,f as fp,g as ja,R as OP,h as uc,i as PP,j as Ue,k as Cs,B as MP}from"./vendor-react-aoclG454.js";import{C as Xw,R as AP,T as EP,P as DP,S as mp,a as Qw,O as qs,b as wl,c as Hs,d as ru,e as Ti,D as Ii,f as jl,g as Zw,h as Jw,i as TP,j as ej,I as tj,k as rj,l as nj,m as aj,L as sj,n as ij,o as IP,p as RP,q as oj,r as lj,F as cj,u as fi,t as ts,s as $P,v as dj,w as uj,x as zP,y as fj,z as mj,A as LP,B as hj,V as FP,E as pj,G as gj,H as BP,J as WP,K as xj,M as UP,N as qP,Q as HP,U as vj,W as KP,X as YP,Y as yj,Z as nu,_ as GP,$ as gs,a0 as VP,a1 as XP,a2 as bj,a3 as QP,a4 as ZP,a5 as wj,a6 as JP,a7 as eM,a8 as jj,a9 as tM,aa as rM,ab as nM,ac as aM,ad as sM,ae as iM,af as oM,ag as lM,ah as cM,ai as dM,aj as uM,ak as Nj,al as fM,am as mM,an as hM,ao as pM,ap as gM,aq as xM}from"./vendor-radix-Bj-t5iGX.js";import{u as kj,a as hp,P as Sj,D as Ho,S as pp,h as Cj,b as Fc,c as gp,C as xp,d as vM,v as yM,r as bM,e as wM,f as jM,M as NM,g as _j}from"./vendor-dnd-6EGxH1Lf.js";import{E as kM,u as Oj,i as Pj,a as Mj,b as Aj,c as Ej,d as SM,e as CM,w as _M}from"./vendor-editor-Ba0DY8XI.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))n(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function r(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function n(s){if(s.ep)return;s.ep=!0;const i=r(s);fetch(s.href,i)}})();var Dj,dv=up;Dj=dv.createRoot,dv.hydrateRoot;const OM="modulepreload",PM=function(e){return"/"+e},uv={},Tj=function(t,r,n){let s=Promise.resolve();if(r&&r.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),l=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));s=Promise.allSettled(r.map(c=>{if(c=PM(c),c in uv)return;uv[c]=!0;const d=c.endsWith(".css"),u=d?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${u}`))return;const f=document.createElement("link");if(f.rel=d?"stylesheet":OM,d||(f.as="script"),f.crossOrigin="",f.href=c,l&&f.setAttribute("nonce",l),document.head.appendChild(f),d)return new Promise((m,h)=>{f.addEventListener("load",m),f.addEventListener("error",()=>h(new Error(`Unable to preload CSS for ${c}`)))})}))}function i(o){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=o,window.dispatchEvent(l),!l.defaultPrevented)throw o}return s.then(o=>{for(const l of o||[])l.status==="rejected"&&i(l.reason);return t().catch(i)})};var MM=function(){return null},AM=e=>{switch(e){case"success":return TM;case"info":return RM;case"warning":return IM;case"error":return $M;default:return null}},EM=Array(12).fill(0),DM=({visible:e,className:t})=>D.createElement("div",{className:["sonner-loading-wrapper",t].filter(Boolean).join(" "),"data-visible":e},D.createElement("div",{className:"sonner-spinner"},EM.map((r,n)=>D.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${n}`})))),TM=D.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},D.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),IM=D.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},D.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),RM=D.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},D.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),$M=D.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},D.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),zM=D.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},D.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),D.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),LM=()=>{let[e,t]=D.useState(document.hidden);return D.useEffect(()=>{let r=()=>{t(document.hidden)};return document.addEventListener("visibilitychange",r),()=>window.removeEventListener("visibilitychange",r)},[]),e},Km=1,FM=class{constructor(){this.subscribe=e=>(this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)}),this.publish=e=>{this.subscribers.forEach(t=>t(e))},this.addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e]},this.create=e=>{var t;let{message:r,...n}=e,s=typeof(e==null?void 0:e.id)=="number"||((t=e.id)==null?void 0:t.length)>0?e.id:Km++,i=this.toasts.find(l=>l.id===s),o=e.dismissible===void 0?!0:e.dismissible;return this.dismissedToasts.has(s)&&this.dismissedToasts.delete(s),i?this.toasts=this.toasts.map(l=>l.id===s?(this.publish({...l,...e,id:s,title:r}),{...l,...e,id:s,dismissible:o,title:r}):l):this.addToast({title:r,...n,dismissible:o,id:s}),s},this.dismiss=e=>(this.dismissedToasts.add(e),e||this.toasts.forEach(t=>{this.subscribers.forEach(r=>r({id:t.id,dismiss:!0}))}),this.subscribers.forEach(t=>t({id:e,dismiss:!0})),e),this.message=(e,t)=>this.create({...t,message:e}),this.error=(e,t)=>this.create({...t,message:e,type:"error"}),this.success=(e,t)=>this.create({...t,type:"success",message:e}),this.info=(e,t)=>this.create({...t,type:"info",message:e}),this.warning=(e,t)=>this.create({...t,type:"warning",message:e}),this.loading=(e,t)=>this.create({...t,type:"loading",message:e}),this.promise=(e,t)=>{if(!t)return;let r;t.loading!==void 0&&(r=this.create({...t,promise:e,type:"loading",message:t.loading,description:typeof t.description!="function"?t.description:void 0}));let n=e instanceof Promise?e:e(),s=r!==void 0,i,o=n.then(async c=>{if(i=["resolve",c],D.isValidElement(c))s=!1,this.create({id:r,type:"default",message:c});else if(WM(c)&&!c.ok){s=!1;let d=typeof t.error=="function"?await t.error(`HTTP error! status: ${c.status}`):t.error,u=typeof t.description=="function"?await t.description(`HTTP error! status: ${c.status}`):t.description;this.create({id:r,type:"error",message:d,description:u})}else if(t.success!==void 0){s=!1;let d=typeof t.success=="function"?await t.success(c):t.success,u=typeof t.description=="function"?await t.description(c):t.description;this.create({id:r,type:"success",message:d,description:u})}}).catch(async c=>{if(i=["reject",c],t.error!==void 0){s=!1;let d=typeof t.error=="function"?await t.error(c):t.error,u=typeof t.description=="function"?await t.description(c):t.description;this.create({id:r,type:"error",message:d,description:u})}}).finally(()=>{var c;s&&(this.dismiss(r),r=void 0),(c=t.finally)==null||c.call(t)}),l=()=>new Promise((c,d)=>o.then(()=>i[0]==="reject"?d(i[1]):c(i[1])).catch(d));return typeof r!="string"&&typeof r!="number"?{unwrap:l}:Object.assign(r,{unwrap:l})},this.custom=(e,t)=>{let r=(t==null?void 0:t.id)||Km++;return this.create({jsx:e(r),id:r,...t}),r},this.getActiveToasts=()=>this.toasts.filter(e=>!this.dismissedToasts.has(e.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},kr=new FM,BM=(e,t)=>{let r=(t==null?void 0:t.id)||Km++;return kr.addToast({title:e,...t,id:r}),r},WM=e=>e&&typeof e=="object"&&"ok"in e&&typeof e.ok=="boolean"&&"status"in e&&typeof e.status=="number",UM=BM,qM=()=>kr.toasts,HM=()=>kr.getActiveToasts(),L=Object.assign(UM,{success:kr.success,info:kr.info,warning:kr.warning,error:kr.error,custom:kr.custom,message:kr.message,promise:kr.promise,dismiss:kr.dismiss,loading:kr.loading},{getHistory:qM,getToasts:HM});function KM(e,{insertAt:t}={}){if(typeof document>"u")return;let r=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",t==="top"&&r.firstChild?r.insertBefore(n,r.firstChild):r.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}KM(`:where(html[dir="ltr"]),:where([data-sonner-toaster][dir="ltr"]){--toast-icon-margin-start: -3px;--toast-icon-margin-end: 4px;--toast-svg-margin-start: -1px;--toast-svg-margin-end: 0px;--toast-button-margin-start: auto;--toast-button-margin-end: 0;--toast-close-button-start: 0;--toast-close-button-end: unset;--toast-close-button-transform: translate(-35%, -35%)}:where(html[dir="rtl"]),:where([data-sonner-toaster][dir="rtl"]){--toast-icon-margin-start: 4px;--toast-icon-margin-end: -3px;--toast-svg-margin-start: 0px;--toast-svg-margin-end: -1px;--toast-button-margin-start: 0;--toast-button-margin-end: auto;--toast-close-button-start: unset;--toast-close-button-end: 0;--toast-close-button-transform: translate(35%, -35%)}:where([data-sonner-toaster]){position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1: hsl(0, 0%, 99%);--gray2: hsl(0, 0%, 97.3%);--gray3: hsl(0, 0%, 95.1%);--gray4: hsl(0, 0%, 93%);--gray5: hsl(0, 0%, 90.9%);--gray6: hsl(0, 0%, 88.7%);--gray7: hsl(0, 0%, 85.8%);--gray8: hsl(0, 0%, 78%);--gray9: hsl(0, 0%, 56.1%);--gray10: hsl(0, 0%, 52.3%);--gray11: hsl(0, 0%, 43.5%);--gray12: hsl(0, 0%, 9%);--border-radius: 8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:none;z-index:999999999;transition:transform .4s ease}:where([data-sonner-toaster][data-lifted="true"]){transform:translateY(-10px)}@media (hover: none) and (pointer: coarse){:where([data-sonner-toaster][data-lifted="true"]){transform:none}}:where([data-sonner-toaster][data-x-position="right"]){right:var(--offset-right)}:where([data-sonner-toaster][data-x-position="left"]){left:var(--offset-left)}:where([data-sonner-toaster][data-x-position="center"]){left:50%;transform:translate(-50%)}:where([data-sonner-toaster][data-y-position="top"]){top:var(--offset-top)}:where([data-sonner-toaster][data-y-position="bottom"]){bottom:var(--offset-bottom)}:where([data-sonner-toast]){--y: translateY(100%);--lift-amount: calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:none;overflow-wrap:anywhere}:where([data-sonner-toast][data-styled="true"]){padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast][data-y-position="top"]){top:0;--y: translateY(-100%);--lift: 1;--lift-amount: calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position="bottom"]){bottom:0;--y: translateY(100%);--lift: -1;--lift-amount: calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([data-icon]){display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}:where([data-sonner-toast][data-promise="true"]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([data-content]){display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;cursor:pointer;outline:none;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px #0006}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:rgba(0,0,0,.08)}:where([data-sonner-toast][data-theme="dark"]) :where([data-cancel]){background:rgba(255,255,255,.3)}:where([data-sonner-toast]) :where([data-close-button]){position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast] [data-close-button]{background:var(--gray1)}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast]) :where([data-disabled="true"]){cursor:not-allowed}:where([data-sonner-toast]):hover :where([data-close-button]):hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping="true"]):before{content:"";position:absolute;left:-50%;right:-50%;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position="top"][data-swiping="true"]):before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position="bottom"][data-swiping="true"]):before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping="false"][data-removed="true"]):before{content:"";position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast]):after{content:"";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted="true"]){--y: translateY(0);opacity:1}:where([data-sonner-toast][data-expanded="false"][data-front="false"]){--scale: var(--toasts-before) * .05 + 1;--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded="false"][data-front="false"][data-styled="true"])>*{opacity:0}:where([data-sonner-toast][data-visible="false"]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted="true"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed="true"][data-front="true"][data-swipe-out="false"]){--y: translateY(calc(var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="false"]){--y: translateY(40%);opacity:0;transition:transform .5s,opacity .2s}:where([data-sonner-toast][data-removed="true"][data-front="false"]):before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y, 0px)) translate(var(--swipe-amount-x, 0px));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width: 600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg: #fff;--normal-border: var(--gray4);--normal-text: var(--gray12);--success-bg: hsl(143, 85%, 96%);--success-border: hsl(145, 92%, 91%);--success-text: hsl(140, 100%, 27%);--info-bg: hsl(208, 100%, 97%);--info-border: hsl(221, 91%, 91%);--info-text: hsl(210, 92%, 45%);--warning-bg: hsl(49, 100%, 97%);--warning-border: hsl(49, 91%, 91%);--warning-text: hsl(31, 92%, 45%);--error-bg: hsl(359, 100%, 97%);--error-border: hsl(359, 100%, 94%);--error-text: hsl(360, 100%, 45%)}[data-sonner-toaster][data-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg: #fff;--normal-border: var(--gray3);--normal-text: var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg: #000;--normal-bg-hover: hsl(0, 0%, 12%);--normal-border: hsl(0, 0%, 20%);--normal-border-hover: hsl(0, 0%, 25%);--normal-text: var(--gray1);--success-bg: hsl(150, 100%, 6%);--success-border: hsl(147, 100%, 12%);--success-text: hsl(150, 86%, 65%);--info-bg: hsl(215, 100%, 6%);--info-border: hsl(223, 100%, 12%);--info-text: hsl(216, 87%, 65%);--warning-bg: hsl(64, 100%, 6%);--warning-border: hsl(60, 100%, 12%);--warning-text: hsl(46, 87%, 65%);--error-bg: hsl(358, 76%, 10%);--error-border: hsl(357, 89%, 16%);--error-text: hsl(358, 100%, 81%)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size: 16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}
|
|
3
3
|
`);function fc(e){return e.label!==void 0}var YM=3,GM="32px",VM="16px",fv=4e3,XM=356,QM=14,ZM=20,JM=200;function dn(...e){return e.filter(Boolean).join(" ")}function eA(e){let[t,r]=e.split("-"),n=[];return t&&n.push(t),r&&n.push(r),n}var tA=e=>{var t,r,n,s,i,o,l,c,d,u,f;let{invert:m,toast:h,unstyled:g,interacting:x,setHeights:v,visibleToasts:y,heights:j,index:b,toasts:N,expanded:k,removeToast:w,defaultRichColors:S,closeButton:C,style:P,cancelButtonStyle:A,actionButtonStyle:M,className:_="",descriptionClassName:E="",duration:O,position:T,gap:z,loadingIcon:B,expandByDefault:Q,classNames:K,icons:Z,closeButtonAriaLabel:ee="Close toast",pauseWhenPageIsHidden:$}=e,[q,F]=D.useState(null),[Y,H]=D.useState(null),[V,ne]=D.useState(!1),[W,me]=D.useState(!1),[Se,X]=D.useState(!1),[Fe,le]=D.useState(!1),[ze,Le]=D.useState(!1),[G,Me]=D.useState(0),[qe,lt]=D.useState(0),ht=D.useRef(h.duration||O||fv),wr=D.useRef(null),Rt=D.useRef(null),cn=b===0,jr=b+1<=y,ct=h.type,yt=h.dismissible!==!1,Hr=h.className||"",Ia=h.descriptionClassName||"",Kr=D.useMemo(()=>j.findIndex(re=>re.toastId===h.id)||0,[j,h.id]),Gn=D.useMemo(()=>{var re;return(re=h.closeButton)!=null?re:C},[h.closeButton,C]),Tr=D.useMemo(()=>h.duration||O||fv,[h.duration,O]),Ir=D.useRef(0),cr=D.useRef(0),rr=D.useRef(0),Gt=D.useRef(null),[_n,Vn]=T.split("-"),be=D.useMemo(()=>j.reduce((re,xe,Ce)=>Ce>=Kr?re:re+xe.height,0),[j,Kr]),ce=LM(),he=h.invert||m,ie=ct==="loading";cr.current=D.useMemo(()=>Kr*z+be,[Kr,be]),D.useEffect(()=>{ht.current=Tr},[Tr]),D.useEffect(()=>{ne(!0)},[]),D.useEffect(()=>{let re=Rt.current;if(re){let xe=re.getBoundingClientRect().height;return lt(xe),v(Ce=>[{toastId:h.id,height:xe,position:h.position},...Ce]),()=>v(Ce=>Ce.filter(dt=>dt.toastId!==h.id))}},[v,h.id]),D.useLayoutEffect(()=>{if(!V)return;let re=Rt.current,xe=re.style.height;re.style.height="auto";let Ce=re.getBoundingClientRect().height;re.style.height=xe,lt(Ce),v(dt=>dt.find(Ge=>Ge.toastId===h.id)?dt.map(Ge=>Ge.toastId===h.id?{...Ge,height:Ce}:Ge):[{toastId:h.id,height:Ce,position:h.position},...dt])},[V,h.title,h.description,v,h.id]);let ue=D.useCallback(()=>{me(!0),Me(cr.current),v(re=>re.filter(xe=>xe.toastId!==h.id)),setTimeout(()=>{w(h)},JM)},[h,w,v,cr]);D.useEffect(()=>{if(h.promise&&ct==="loading"||h.duration===1/0||h.type==="loading")return;let re;return k||x||$&&ce?(()=>{if(rr.current<Ir.current){let xe=new Date().getTime()-Ir.current;ht.current=ht.current-xe}rr.current=new Date().getTime()})():ht.current!==1/0&&(Ir.current=new Date().getTime(),re=setTimeout(()=>{var xe;(xe=h.onAutoClose)==null||xe.call(h,h),ue()},ht.current)),()=>clearTimeout(re)},[k,x,h,ct,$,ce,ue]),D.useEffect(()=>{h.delete&&ue()},[ue,h.delete]);function Be(){var re,xe,Ce;return Z!=null&&Z.loading?D.createElement("div",{className:dn(K==null?void 0:K.loader,(re=h==null?void 0:h.classNames)==null?void 0:re.loader,"sonner-loader"),"data-visible":ct==="loading"},Z.loading):B?D.createElement("div",{className:dn(K==null?void 0:K.loader,(xe=h==null?void 0:h.classNames)==null?void 0:xe.loader,"sonner-loader"),"data-visible":ct==="loading"},B):D.createElement(DM,{className:dn(K==null?void 0:K.loader,(Ce=h==null?void 0:h.classNames)==null?void 0:Ce.loader),visible:ct==="loading"})}return D.createElement("li",{tabIndex:0,ref:Rt,className:dn(_,Hr,K==null?void 0:K.toast,(t=h==null?void 0:h.classNames)==null?void 0:t.toast,K==null?void 0:K.default,K==null?void 0:K[ct],(r=h==null?void 0:h.classNames)==null?void 0:r[ct]),"data-sonner-toast":"","data-rich-colors":(n=h.richColors)!=null?n:S,"data-styled":!(h.jsx||h.unstyled||g),"data-mounted":V,"data-promise":!!h.promise,"data-swiped":ze,"data-removed":W,"data-visible":jr,"data-y-position":_n,"data-x-position":Vn,"data-index":b,"data-front":cn,"data-swiping":Se,"data-dismissible":yt,"data-type":ct,"data-invert":he,"data-swipe-out":Fe,"data-swipe-direction":Y,"data-expanded":!!(k||Q&&V),style:{"--index":b,"--toasts-before":b,"--z-index":N.length-b,"--offset":`${W?G:cr.current}px`,"--initial-height":Q?"auto":`${qe}px`,...P,...h.style},onDragEnd:()=>{X(!1),F(null),Gt.current=null},onPointerDown:re=>{ie||!yt||(wr.current=new Date,Me(cr.current),re.target.setPointerCapture(re.pointerId),re.target.tagName!=="BUTTON"&&(X(!0),Gt.current={x:re.clientX,y:re.clientY}))},onPointerUp:()=>{var re,xe,Ce,dt;if(Fe||!yt)return;Gt.current=null;let Ge=Number(((re=Rt.current)==null?void 0:re.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),Ve=Number(((xe=Rt.current)==null?void 0:xe.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),dr=new Date().getTime()-((Ce=wr.current)==null?void 0:Ce.getTime()),Vt=q==="x"?Ge:Ve,On=Math.abs(Vt)/dr;if(Math.abs(Vt)>=ZM||On>.11){Me(cr.current),(dt=h.onDismiss)==null||dt.call(h,h),H(q==="x"?Ge>0?"right":"left":Ve>0?"down":"up"),ue(),le(!0),Le(!1);return}X(!1),F(null)},onPointerMove:re=>{var xe,Ce,dt,Ge;if(!Gt.current||!yt||((xe=window.getSelection())==null?void 0:xe.toString().length)>0)return;let Ve=re.clientY-Gt.current.y,dr=re.clientX-Gt.current.x,Vt=(Ce=e.swipeDirections)!=null?Ce:eA(T);!q&&(Math.abs(dr)>1||Math.abs(Ve)>1)&&F(Math.abs(dr)>Math.abs(Ve)?"x":"y");let On={x:0,y:0};q==="y"?(Vt.includes("top")||Vt.includes("bottom"))&&(Vt.includes("top")&&Ve<0||Vt.includes("bottom")&&Ve>0)&&(On.y=Ve):q==="x"&&(Vt.includes("left")||Vt.includes("right"))&&(Vt.includes("left")&&dr<0||Vt.includes("right")&&dr>0)&&(On.x=dr),(Math.abs(On.x)>0||Math.abs(On.y)>0)&&Le(!0),(dt=Rt.current)==null||dt.style.setProperty("--swipe-amount-x",`${On.x}px`),(Ge=Rt.current)==null||Ge.style.setProperty("--swipe-amount-y",`${On.y}px`)}},Gn&&!h.jsx?D.createElement("button",{"aria-label":ee,"data-disabled":ie,"data-close-button":!0,onClick:ie||!yt?()=>{}:()=>{var re;ue(),(re=h.onDismiss)==null||re.call(h,h)},className:dn(K==null?void 0:K.closeButton,(s=h==null?void 0:h.classNames)==null?void 0:s.closeButton)},(i=Z==null?void 0:Z.close)!=null?i:zM):null,h.jsx||p.isValidElement(h.title)?h.jsx?h.jsx:typeof h.title=="function"?h.title():h.title:D.createElement(D.Fragment,null,ct||h.icon||h.promise?D.createElement("div",{"data-icon":"",className:dn(K==null?void 0:K.icon,(o=h==null?void 0:h.classNames)==null?void 0:o.icon)},h.promise||h.type==="loading"&&!h.icon?h.icon||Be():null,h.type!=="loading"?h.icon||(Z==null?void 0:Z[ct])||AM(ct):null):null,D.createElement("div",{"data-content":"",className:dn(K==null?void 0:K.content,(l=h==null?void 0:h.classNames)==null?void 0:l.content)},D.createElement("div",{"data-title":"",className:dn(K==null?void 0:K.title,(c=h==null?void 0:h.classNames)==null?void 0:c.title)},typeof h.title=="function"?h.title():h.title),h.description?D.createElement("div",{"data-description":"",className:dn(E,Ia,K==null?void 0:K.description,(d=h==null?void 0:h.classNames)==null?void 0:d.description)},typeof h.description=="function"?h.description():h.description):null),p.isValidElement(h.cancel)?h.cancel:h.cancel&&fc(h.cancel)?D.createElement("button",{"data-button":!0,"data-cancel":!0,style:h.cancelButtonStyle||A,onClick:re=>{var xe,Ce;fc(h.cancel)&&yt&&((Ce=(xe=h.cancel).onClick)==null||Ce.call(xe,re),ue())},className:dn(K==null?void 0:K.cancelButton,(u=h==null?void 0:h.classNames)==null?void 0:u.cancelButton)},h.cancel.label):null,p.isValidElement(h.action)?h.action:h.action&&fc(h.action)?D.createElement("button",{"data-button":!0,"data-action":!0,style:h.actionButtonStyle||M,onClick:re=>{var xe,Ce;fc(h.action)&&((Ce=(xe=h.action).onClick)==null||Ce.call(xe,re),!re.defaultPrevented&&ue())},className:dn(K==null?void 0:K.actionButton,(f=h==null?void 0:h.classNames)==null?void 0:f.actionButton)},h.action.label):null))};function mv(){if(typeof window>"u"||typeof document>"u")return"ltr";let e=document.documentElement.getAttribute("dir");return e==="auto"||!e?window.getComputedStyle(document.documentElement).direction:e}function rA(e,t){let r={};return[e,t].forEach((n,s)=>{let i=s===1,o=i?"--mobile-offset":"--offset",l=i?VM:GM;function c(d){["top","right","bottom","left"].forEach(u=>{r[`${o}-${u}`]=typeof d=="number"?`${d}px`:d})}typeof n=="number"||typeof n=="string"?c(n):typeof n=="object"?["top","right","bottom","left"].forEach(d=>{n[d]===void 0?r[`${o}-${d}`]=l:r[`${o}-${d}`]=typeof n[d]=="number"?`${n[d]}px`:n[d]}):c(l)}),r}var nA=p.forwardRef(function(e,t){let{invert:r,position:n="bottom-right",hotkey:s=["altKey","KeyT"],expand:i,closeButton:o,className:l,offset:c,mobileOffset:d,theme:u="light",richColors:f,duration:m,style:h,visibleToasts:g=YM,toastOptions:x,dir:v=mv(),gap:y=QM,loadingIcon:j,icons:b,containerAriaLabel:N="Notifications",pauseWhenPageIsHidden:k}=e,[w,S]=D.useState([]),C=D.useMemo(()=>Array.from(new Set([n].concat(w.filter($=>$.position).map($=>$.position)))),[w,n]),[P,A]=D.useState([]),[M,_]=D.useState(!1),[E,O]=D.useState(!1),[T,z]=D.useState(u!=="system"?u:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),B=D.useRef(null),Q=s.join("+").replace(/Key/g,"").replace(/Digit/g,""),K=D.useRef(null),Z=D.useRef(!1),ee=D.useCallback($=>{S(q=>{var F;return(F=q.find(Y=>Y.id===$.id))!=null&&F.delete||kr.dismiss($.id),q.filter(({id:Y})=>Y!==$.id)})},[]);return D.useEffect(()=>kr.subscribe($=>{if($.dismiss){S(q=>q.map(F=>F.id===$.id?{...F,delete:!0}:F));return}setTimeout(()=>{_P.flushSync(()=>{S(q=>{let F=q.findIndex(Y=>Y.id===$.id);return F!==-1?[...q.slice(0,F),{...q[F],...$},...q.slice(F+1)]:[$,...q]})})})}),[]),D.useEffect(()=>{if(u!=="system"){z(u);return}if(u==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?z("dark"):z("light")),typeof window>"u")return;let $=window.matchMedia("(prefers-color-scheme: dark)");try{$.addEventListener("change",({matches:q})=>{z(q?"dark":"light")})}catch{$.addListener(({matches:F})=>{try{z(F?"dark":"light")}catch(Y){console.error(Y)}})}},[u]),D.useEffect(()=>{w.length<=1&&_(!1)},[w]),D.useEffect(()=>{let $=q=>{var F,Y;s.every(H=>q[H]||q.code===H)&&(_(!0),(F=B.current)==null||F.focus()),q.code==="Escape"&&(document.activeElement===B.current||(Y=B.current)!=null&&Y.contains(document.activeElement))&&_(!1)};return document.addEventListener("keydown",$),()=>document.removeEventListener("keydown",$)},[s]),D.useEffect(()=>{if(B.current)return()=>{K.current&&(K.current.focus({preventScroll:!0}),K.current=null,Z.current=!1)}},[B.current]),D.createElement("section",{ref:t,"aria-label":`${N} ${Q}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},C.map(($,q)=>{var F;let[Y,H]=$.split("-");return w.length?D.createElement("ol",{key:$,dir:v==="auto"?mv():v,tabIndex:-1,ref:B,className:l,"data-sonner-toaster":!0,"data-theme":T,"data-y-position":Y,"data-lifted":M&&w.length>1&&!i,"data-x-position":H,style:{"--front-toast-height":`${((F=P[0])==null?void 0:F.height)||0}px`,"--width":`${XM}px`,"--gap":`${y}px`,...h,...rA(c,d)},onBlur:V=>{Z.current&&!V.currentTarget.contains(V.relatedTarget)&&(Z.current=!1,K.current&&(K.current.focus({preventScroll:!0}),K.current=null))},onFocus:V=>{V.target instanceof HTMLElement&&V.target.dataset.dismissible==="false"||Z.current||(Z.current=!0,K.current=V.relatedTarget)},onMouseEnter:()=>_(!0),onMouseMove:()=>_(!0),onMouseLeave:()=>{E||_(!1)},onDragEnd:()=>_(!1),onPointerDown:V=>{V.target instanceof HTMLElement&&V.target.dataset.dismissible==="false"||O(!0)},onPointerUp:()=>O(!1)},w.filter(V=>!V.position&&q===0||V.position===$).map((V,ne)=>{var W,me;return D.createElement(tA,{key:V.id,icons:b,index:ne,toast:V,defaultRichColors:f,duration:(W=x==null?void 0:x.duration)!=null?W:m,className:x==null?void 0:x.className,descriptionClassName:x==null?void 0:x.descriptionClassName,invert:r,visibleToasts:g,closeButton:(me=x==null?void 0:x.closeButton)!=null?me:o,interacting:E,position:$,style:x==null?void 0:x.style,unstyled:x==null?void 0:x.unstyled,classNames:x==null?void 0:x.classNames,cancelButtonStyle:x==null?void 0:x.cancelButtonStyle,actionButtonStyle:x==null?void 0:x.actionButtonStyle,removeToast:ee,toasts:w.filter(Se=>Se.position==V.position),heights:P.filter(Se=>Se.position==V.position),setHeights:A,expandByDefault:i,gap:y,loadingIcon:j,expanded:M,pauseWhenPageIsHidden:k,swipeDirections:e.swipeDirections})})):null}))}),aA=(e,t,r,n,s,i,o,l)=>{let c=document.documentElement,d=["light","dark"];function u(h){(Array.isArray(e)?e:[e]).forEach(g=>{let x=g==="class",v=x&&i?s.map(y=>i[y]||y):s;x?(c.classList.remove(...v),c.classList.add(i&&i[h]?i[h]:h)):c.setAttribute(g,h)}),f(h)}function f(h){l&&d.includes(h)&&(c.style.colorScheme=h)}function m(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(n)u(n);else try{let h=localStorage.getItem(t)||r,g=o&&h==="system"?m():h;u(g)}catch{}},hv=["light","dark"],Ij="(prefers-color-scheme: dark)",sA=typeof window>"u",vp=p.createContext(void 0),iA={setTheme:e=>{},themes:[]},oA=()=>{var e;return(e=p.useContext(vp))!=null?e:iA},lA=e=>p.useContext(vp)?p.createElement(p.Fragment,null,e.children):p.createElement(dA,{...e}),cA=["light","dark"],dA=({forcedTheme:e,disableTransitionOnChange:t=!1,enableSystem:r=!0,enableColorScheme:n=!0,storageKey:s="theme",themes:i=cA,defaultTheme:o=r?"system":"light",attribute:l="data-theme",value:c,children:d,nonce:u,scriptProps:f})=>{let[m,h]=p.useState(()=>fA(s,o)),[g,x]=p.useState(()=>m==="system"?Hf():m),v=c?Object.values(c):i,y=p.useCallback(k=>{let w=k;if(!w)return;k==="system"&&r&&(w=Hf());let S=c?c[w]:w,C=t?mA(u):null,P=document.documentElement,A=M=>{M==="class"?(P.classList.remove(...v),S&&P.classList.add(S)):M.startsWith("data-")&&(S?P.setAttribute(M,S):P.removeAttribute(M))};if(Array.isArray(l)?l.forEach(A):A(l),n){let M=hv.includes(o)?o:null,_=hv.includes(w)?w:M;P.style.colorScheme=_}C==null||C()},[u]),j=p.useCallback(k=>{let w=typeof k=="function"?k(m):k;h(w);try{localStorage.setItem(s,w)}catch{}},[m]),b=p.useCallback(k=>{let w=Hf(k);x(w),m==="system"&&r&&!e&&y("system")},[m,e]);p.useEffect(()=>{let k=window.matchMedia(Ij);return k.addListener(b),b(k),()=>k.removeListener(b)},[b]),p.useEffect(()=>{let k=w=>{w.key===s&&(w.newValue?h(w.newValue):j(o))};return window.addEventListener("storage",k),()=>window.removeEventListener("storage",k)},[j]),p.useEffect(()=>{y(e??m)},[e,m]);let N=p.useMemo(()=>({theme:m,setTheme:j,forcedTheme:e,resolvedTheme:m==="system"?g:m,themes:r?[...i,"system"]:i,systemTheme:r?g:void 0}),[m,j,e,g,r,i]);return p.createElement(vp.Provider,{value:N},p.createElement(uA,{forcedTheme:e,storageKey:s,attribute:l,enableSystem:r,enableColorScheme:n,defaultTheme:o,value:c,themes:i,nonce:u,scriptProps:f}),d)},uA=p.memo(({forcedTheme:e,storageKey:t,attribute:r,enableSystem:n,enableColorScheme:s,defaultTheme:i,value:o,themes:l,nonce:c,scriptProps:d})=>{let u=JSON.stringify([r,t,i,e,l,o,n,s]).slice(1,-1);return p.createElement("script",{...d,suppressHydrationWarning:!0,nonce:typeof window>"u"?c:"",dangerouslySetInnerHTML:{__html:`(${aA.toString()})(${u})`}})}),fA=(e,t)=>{if(sA)return;let r;try{r=localStorage.getItem(e)||void 0}catch{}return r||t},mA=e=>{let t=document.createElement("style");return e&&t.setAttribute("nonce",e),t.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),document.head.appendChild(t),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(t)},1)}},Hf=e=>(e||(e=window.matchMedia(Ij)),e.matches?"dark":"light");function hA({children:e}){return a.jsx(lA,{attribute:"class",defaultTheme:"system",enableSystem:!0,disableTransitionOnChange:!0,children:e})}const Rj=p.createContext(null),ls="meridian_token",ho="meridian_user",mc="meridian_workspace";function pv(e){try{const t=e.split(".")[1],r=t.replace(/-/g,"+").replace(/_/g,"/").padEnd(t.length+(4-t.length%4)%4,"="),n=JSON.parse(atob(r));return Array.isArray(n.roles)?n.roles:[]}catch{return[]}}function pA({children:e}){const[t,r]=p.useState(()=>{try{const f=localStorage.getItem(ho),m=localStorage.getItem(ls);if(!f)return null;const h=JSON.parse(f);return h.roles=m?pv(m):[],h}catch{return null}}),[n,s]=p.useState(()=>{const f=localStorage.getItem(ls),m=localStorage.getItem(ho);return f&&!m?(localStorage.removeItem(ls),null):f}),[i,o]=p.useState(()=>{try{const f=localStorage.getItem(mc);return f?JSON.parse(f):null}catch{return null}}),l=(f,m)=>{const h=pv(m),g={...f,roles:h};r(g),s(m),localStorage.setItem(ls,m),localStorage.setItem(ho,JSON.stringify(g))},c=()=>{const f=localStorage.getItem(ls);f&&fetch("/auth/logout",{method:"POST",headers:{Authorization:`Bearer ${f}`,"Content-Type":"application/json"}}).catch(()=>{}),r(null),s(null),o(null),localStorage.removeItem(ls),localStorage.removeItem(ho),localStorage.removeItem(mc)};p.useEffect(()=>{const f=()=>{localStorage.getItem(ls)&&c()};return window.addEventListener("meridian:unauthorized",f),()=>window.removeEventListener("meridian:unauthorized",f)},[]);const d=f=>{o(f),f?localStorage.setItem(mc,JSON.stringify(f)):localStorage.removeItem(mc)},u=f=>{r(m=>{if(!m)return m;const h={...m,...f};return localStorage.setItem(ho,JSON.stringify(h)),h})};return a.jsx(Rj.Provider,{value:{user:t,token:n,workspace:i,isAuthenticated:!!n&&!!t,login:l,logout:c,setWorkspace:d,updateLocalUser:u},children:e})}function Oe(){const e=p.useContext(Rj);if(!e)throw new Error("useAuth must be used within AuthProvider");return e}const $j=p.createContext(null);function gA({children:e}){const[t,r]=p.useState(!1);return p.useEffect(()=>{const n=s=>{(s.metaKey||s.ctrlKey)&&s.key==="k"&&(s.preventDefault(),r(i=>!i))};return document.addEventListener("keydown",n),()=>document.removeEventListener("keydown",n)},[]),a.jsx($j.Provider,{value:{open:t,setOpen:r,toggle:()=>r(n=>!n)},children:e})}function zj(){const e=p.useContext($j);if(!e)throw new Error("useCommandPalette must be used within CommandPaletteProvider");return e}function Lj(e){var t,r,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t<s;t++)e[t]&&(r=Lj(e[t]))&&(n&&(n+=" "),n+=r)}else for(r in e)e[r]&&(n&&(n+=" "),n+=r);return n}function Qe(){for(var e,t,r=0,n="",s=arguments.length;r<s;r++)(e=arguments[r])&&(t=Lj(e))&&(n&&(n+=" "),n+=t);return n}const yp="-",xA=e=>{const t=yA(e),{conflictingClassGroups:r,conflictingClassGroupModifiers:n}=e;return{getClassGroupId:o=>{const l=o.split(yp);return l[0]===""&&l.length!==1&&l.shift(),Fj(l,t)||vA(o)},getConflictingClassGroupIds:(o,l)=>{const c=r[o]||[];return l&&n[o]?[...c,...n[o]]:c}}},Fj=(e,t)=>{var o;if(e.length===0)return t.classGroupId;const r=e[0],n=t.nextPart.get(r),s=n?Fj(e.slice(1),n):void 0;if(s)return s;if(t.validators.length===0)return;const i=e.join(yp);return(o=t.validators.find(({validator:l})=>l(i)))==null?void 0:o.classGroupId},gv=/^\[(.+)\]$/,vA=e=>{if(gv.test(e)){const t=gv.exec(e)[1],r=t==null?void 0:t.substring(0,t.indexOf(":"));if(r)return"arbitrary.."+r}},yA=e=>{const{theme:t,prefix:r}=e,n={nextPart:new Map,validators:[]};return wA(Object.entries(e.classGroups),r).forEach(([i,o])=>{Ym(o,n,i,t)}),n},Ym=(e,t,r,n)=>{e.forEach(s=>{if(typeof s=="string"){const i=s===""?t:xv(t,s);i.classGroupId=r;return}if(typeof s=="function"){if(bA(s)){Ym(s(n),t,r,n);return}t.validators.push({validator:s,classGroupId:r});return}Object.entries(s).forEach(([i,o])=>{Ym(o,xv(t,i),r,n)})})},xv=(e,t)=>{let r=e;return t.split(yp).forEach(n=>{r.nextPart.has(n)||r.nextPart.set(n,{nextPart:new Map,validators:[]}),r=r.nextPart.get(n)}),r},bA=e=>e.isThemeGetter,wA=(e,t)=>t?e.map(([r,n])=>{const s=n.map(i=>typeof i=="string"?t+i:typeof i=="object"?Object.fromEntries(Object.entries(i).map(([o,l])=>[t+o,l])):i);return[r,s]}):e,jA=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,r=new Map,n=new Map;const s=(i,o)=>{r.set(i,o),t++,t>e&&(t=0,n=r,r=new Map)};return{get(i){let o=r.get(i);if(o!==void 0)return o;if((o=n.get(i))!==void 0)return s(i,o),o},set(i,o){r.has(i)?r.set(i,o):s(i,o)}}},Bj="!",NA=e=>{const{separator:t,experimentalParseClassName:r}=e,n=t.length===1,s=t[0],i=t.length,o=l=>{const c=[];let d=0,u=0,f;for(let v=0;v<l.length;v++){let y=l[v];if(d===0){if(y===s&&(n||l.slice(v,v+i)===t)){c.push(l.slice(u,v)),u=v+i;continue}if(y==="/"){f=v;continue}}y==="["?d++:y==="]"&&d--}const m=c.length===0?l:l.substring(u),h=m.startsWith(Bj),g=h?m.substring(1):m,x=f&&f>u?f-u:void 0;return{modifiers:c,hasImportantModifier:h,baseClassName:g,maybePostfixModifierPosition:x}};return r?l=>r({className:l,parseClassName:o}):o},kA=e=>{if(e.length<=1)return e;const t=[];let r=[];return e.forEach(n=>{n[0]==="["?(t.push(...r.sort(),n),r=[]):r.push(n)}),t.push(...r.sort()),t},SA=e=>({cache:jA(e.cacheSize),parseClassName:NA(e),...xA(e)}),CA=/\s+/,_A=(e,t)=>{const{parseClassName:r,getClassGroupId:n,getConflictingClassGroupIds:s}=t,i=[],o=e.trim().split(CA);let l="";for(let c=o.length-1;c>=0;c-=1){const d=o[c],{modifiers:u,hasImportantModifier:f,baseClassName:m,maybePostfixModifierPosition:h}=r(d);let g=!!h,x=n(g?m.substring(0,h):m);if(!x){if(!g){l=d+(l.length>0?" "+l:l);continue}if(x=n(m),!x){l=d+(l.length>0?" "+l:l);continue}g=!1}const v=kA(u).join(":"),y=f?v+Bj:v,j=y+x;if(i.includes(j))continue;i.push(j);const b=s(x,g);for(let N=0;N<b.length;++N){const k=b[N];i.push(y+k)}l=d+(l.length>0?" "+l:l)}return l};function OA(){let e=0,t,r,n="";for(;e<arguments.length;)(t=arguments[e++])&&(r=Wj(t))&&(n&&(n+=" "),n+=r);return n}const Wj=e=>{if(typeof e=="string")return e;let t,r="";for(let n=0;n<e.length;n++)e[n]&&(t=Wj(e[n]))&&(r&&(r+=" "),r+=t);return r};function PA(e,...t){let r,n,s,i=o;function o(c){const d=t.reduce((u,f)=>f(u),e());return r=SA(d),n=r.cache.get,s=r.cache.set,i=l,l(c)}function l(c){const d=n(c);if(d)return d;const u=_A(c,r);return s(c,u),u}return function(){return i(OA.apply(null,arguments))}}const tt=e=>{const t=r=>r[e]||[];return t.isThemeGetter=!0,t},Uj=/^\[(?:([a-z-]+):)?(.+)\]$/i,MA=/^\d+\/\d+$/,AA=new Set(["px","full","screen"]),EA=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,DA=/\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$/,TA=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,IA=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,RA=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Zn=e=>mi(e)||AA.has(e)||MA.test(e),Ra=e=>Ri(e,"length",qA),mi=e=>!!e&&!Number.isNaN(Number(e)),Kf=e=>Ri(e,"number",mi),po=e=>!!e&&Number.isInteger(Number(e)),$A=e=>e.endsWith("%")&&mi(e.slice(0,-1)),Pe=e=>Uj.test(e),$a=e=>EA.test(e),zA=new Set(["length","size","percentage"]),LA=e=>Ri(e,zA,qj),FA=e=>Ri(e,"position",qj),BA=new Set(["image","url"]),WA=e=>Ri(e,BA,KA),UA=e=>Ri(e,"",HA),go=()=>!0,Ri=(e,t,r)=>{const n=Uj.exec(e);return n?n[1]?typeof t=="string"?n[1]===t:t.has(n[1]):r(n[2]):!1},qA=e=>DA.test(e)&&!TA.test(e),qj=()=>!1,HA=e=>IA.test(e),KA=e=>RA.test(e),YA=()=>{const e=tt("colors"),t=tt("spacing"),r=tt("blur"),n=tt("brightness"),s=tt("borderColor"),i=tt("borderRadius"),o=tt("borderSpacing"),l=tt("borderWidth"),c=tt("contrast"),d=tt("grayscale"),u=tt("hueRotate"),f=tt("invert"),m=tt("gap"),h=tt("gradientColorStops"),g=tt("gradientColorStopPositions"),x=tt("inset"),v=tt("margin"),y=tt("opacity"),j=tt("padding"),b=tt("saturate"),N=tt("scale"),k=tt("sepia"),w=tt("skew"),S=tt("space"),C=tt("translate"),P=()=>["auto","contain","none"],A=()=>["auto","hidden","clip","visible","scroll"],M=()=>["auto",Pe,t],_=()=>[Pe,t],E=()=>["",Zn,Ra],O=()=>["auto",mi,Pe],T=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],z=()=>["solid","dashed","dotted","double","none"],B=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],Q=()=>["start","end","center","between","around","evenly","stretch"],K=()=>["","0",Pe],Z=()=>["auto","avoid","all","avoid-page","page","left","right","column"],ee=()=>[mi,Pe];return{cacheSize:500,separator:":",theme:{colors:[go],spacing:[Zn,Ra],blur:["none","",$a,Pe],brightness:ee(),borderColor:[e],borderRadius:["none","","full",$a,Pe],borderSpacing:_(),borderWidth:E(),contrast:ee(),grayscale:K(),hueRotate:ee(),invert:K(),gap:_(),gradientColorStops:[e],gradientColorStopPositions:[$A,Ra],inset:M(),margin:M(),opacity:ee(),padding:_(),saturate:ee(),scale:ee(),sepia:K(),skew:ee(),space:_(),translate:_()},classGroups:{aspect:[{aspect:["auto","square","video",Pe]}],container:["container"],columns:[{columns:[$a]}],"break-after":[{"break-after":Z()}],"break-before":[{"break-before":Z()}],"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"],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:[...T(),Pe]}],overflow:[{overflow:A()}],"overflow-x":[{"overflow-x":A()}],"overflow-y":[{"overflow-y":A()}],overscroll:[{overscroll:P()}],"overscroll-x":[{"overscroll-x":P()}],"overscroll-y":[{"overscroll-y":P()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[x]}],"inset-x":[{"inset-x":[x]}],"inset-y":[{"inset-y":[x]}],start:[{start:[x]}],end:[{end:[x]}],top:[{top:[x]}],right:[{right:[x]}],bottom:[{bottom:[x]}],left:[{left:[x]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",po,Pe]}],basis:[{basis:M()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",Pe]}],grow:[{grow:K()}],shrink:[{shrink:K()}],order:[{order:["first","last","none",po,Pe]}],"grid-cols":[{"grid-cols":[go]}],"col-start-end":[{col:["auto",{span:["full",po,Pe]},Pe]}],"col-start":[{"col-start":O()}],"col-end":[{"col-end":O()}],"grid-rows":[{"grid-rows":[go]}],"row-start-end":[{row:["auto",{span:[po,Pe]},Pe]}],"row-start":[{"row-start":O()}],"row-end":[{"row-end":O()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",Pe]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",Pe]}],gap:[{gap:[m]}],"gap-x":[{"gap-x":[m]}],"gap-y":[{"gap-y":[m]}],"justify-content":[{justify:["normal",...Q()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...Q(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...Q(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[j]}],px:[{px:[j]}],py:[{py:[j]}],ps:[{ps:[j]}],pe:[{pe:[j]}],pt:[{pt:[j]}],pr:[{pr:[j]}],pb:[{pb:[j]}],pl:[{pl:[j]}],m:[{m:[v]}],mx:[{mx:[v]}],my:[{my:[v]}],ms:[{ms:[v]}],me:[{me:[v]}],mt:[{mt:[v]}],mr:[{mr:[v]}],mb:[{mb:[v]}],ml:[{ml:[v]}],"space-x":[{"space-x":[S]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[S]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",Pe,t]}],"min-w":[{"min-w":[Pe,t,"min","max","fit"]}],"max-w":[{"max-w":[Pe,t,"none","full","min","max","fit","prose",{screen:[$a]},$a]}],h:[{h:[Pe,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[Pe,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[Pe,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[Pe,t,"auto","min","max","fit"]}],"font-size":[{text:["base",$a,Ra]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",Kf]}],"font-family":[{font:[go]}],"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:["tighter","tight","normal","wide","wider","widest",Pe]}],"line-clamp":[{"line-clamp":["none",mi,Kf]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",Zn,Pe]}],"list-image":[{"list-image":["none",Pe]}],"list-style-type":[{list:["none","disc","decimal",Pe]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[y]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[y]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...z(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",Zn,Ra]}],"underline-offset":[{"underline-offset":["auto",Zn,Pe]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:_()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Pe]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Pe]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[y]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...T(),FA]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",LA]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},WA]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[g]}],"gradient-via-pos":[{via:[g]}],"gradient-to-pos":[{to:[g]}],"gradient-from":[{from:[h]}],"gradient-via":[{via:[h]}],"gradient-to":[{to:[h]}],rounded:[{rounded:[i]}],"rounded-s":[{"rounded-s":[i]}],"rounded-e":[{"rounded-e":[i]}],"rounded-t":[{"rounded-t":[i]}],"rounded-r":[{"rounded-r":[i]}],"rounded-b":[{"rounded-b":[i]}],"rounded-l":[{"rounded-l":[i]}],"rounded-ss":[{"rounded-ss":[i]}],"rounded-se":[{"rounded-se":[i]}],"rounded-ee":[{"rounded-ee":[i]}],"rounded-es":[{"rounded-es":[i]}],"rounded-tl":[{"rounded-tl":[i]}],"rounded-tr":[{"rounded-tr":[i]}],"rounded-br":[{"rounded-br":[i]}],"rounded-bl":[{"rounded-bl":[i]}],"border-w":[{border:[l]}],"border-w-x":[{"border-x":[l]}],"border-w-y":[{"border-y":[l]}],"border-w-s":[{"border-s":[l]}],"border-w-e":[{"border-e":[l]}],"border-w-t":[{"border-t":[l]}],"border-w-r":[{"border-r":[l]}],"border-w-b":[{"border-b":[l]}],"border-w-l":[{"border-l":[l]}],"border-opacity":[{"border-opacity":[y]}],"border-style":[{border:[...z(),"hidden"]}],"divide-x":[{"divide-x":[l]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[l]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[y]}],"divide-style":[{divide:z()}],"border-color":[{border:[s]}],"border-color-x":[{"border-x":[s]}],"border-color-y":[{"border-y":[s]}],"border-color-s":[{"border-s":[s]}],"border-color-e":[{"border-e":[s]}],"border-color-t":[{"border-t":[s]}],"border-color-r":[{"border-r":[s]}],"border-color-b":[{"border-b":[s]}],"border-color-l":[{"border-l":[s]}],"divide-color":[{divide:[s]}],"outline-style":[{outline:["",...z()]}],"outline-offset":[{"outline-offset":[Zn,Pe]}],"outline-w":[{outline:[Zn,Ra]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:E()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[y]}],"ring-offset-w":[{"ring-offset":[Zn,Ra]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",$a,UA]}],"shadow-color":[{shadow:[go]}],opacity:[{opacity:[y]}],"mix-blend":[{"mix-blend":[...B(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":B()}],filter:[{filter:["","none"]}],blur:[{blur:[r]}],brightness:[{brightness:[n]}],contrast:[{contrast:[c]}],"drop-shadow":[{"drop-shadow":["","none",$a,Pe]}],grayscale:[{grayscale:[d]}],"hue-rotate":[{"hue-rotate":[u]}],invert:[{invert:[f]}],saturate:[{saturate:[b]}],sepia:[{sepia:[k]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[r]}],"backdrop-brightness":[{"backdrop-brightness":[n]}],"backdrop-contrast":[{"backdrop-contrast":[c]}],"backdrop-grayscale":[{"backdrop-grayscale":[d]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[u]}],"backdrop-invert":[{"backdrop-invert":[f]}],"backdrop-opacity":[{"backdrop-opacity":[y]}],"backdrop-saturate":[{"backdrop-saturate":[b]}],"backdrop-sepia":[{"backdrop-sepia":[k]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[o]}],"border-spacing-x":[{"border-spacing-x":[o]}],"border-spacing-y":[{"border-spacing-y":[o]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",Pe]}],duration:[{duration:ee()}],ease:[{ease:["linear","in","out","in-out",Pe]}],delay:[{delay:ee()}],animate:[{animate:["none","spin","ping","pulse","bounce",Pe]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[N]}],"scale-x":[{"scale-x":[N]}],"scale-y":[{"scale-y":[N]}],rotate:[{rotate:[po,Pe]}],"translate-x":[{"translate-x":[C]}],"translate-y":[{"translate-y":[C]}],"skew-x":[{"skew-x":[w]}],"skew-y":[{"skew-y":[w]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",Pe]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],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",Pe]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":_()}],"scroll-mx":[{"scroll-mx":_()}],"scroll-my":[{"scroll-my":_()}],"scroll-ms":[{"scroll-ms":_()}],"scroll-me":[{"scroll-me":_()}],"scroll-mt":[{"scroll-mt":_()}],"scroll-mr":[{"scroll-mr":_()}],"scroll-mb":[{"scroll-mb":_()}],"scroll-ml":[{"scroll-ml":_()}],"scroll-p":[{"scroll-p":_()}],"scroll-px":[{"scroll-px":_()}],"scroll-py":[{"scroll-py":_()}],"scroll-ps":[{"scroll-ps":_()}],"scroll-pe":[{"scroll-pe":_()}],"scroll-pt":[{"scroll-pt":_()}],"scroll-pr":[{"scroll-pr":_()}],"scroll-pb":[{"scroll-pb":_()}],"scroll-pl":[{"scroll-pl":_()}],"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",Pe]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[Zn,Ra,Kf]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","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","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","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-s","border-w-e","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-s","border-color-e","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"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","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-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"]}}},GA=PA(YA);function R(...e){return GA(Qe(e))}const au=DP,qa=AP,Ha=EP,la=p.forwardRef(({className:e,sideOffset:t=4,...r},n)=>a.jsx(Xw,{ref:n,sideOffset:t,className:R("z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...r}));la.displayName=Xw.displayName;const Hj=p.createContext([]);function VA({widgets:e,children:t}){return D.createElement(Hj.Provider,{value:e},t)}function XA(e){return p.useContext(Hj).filter(r=>r.zone===e).map(r=>r.component)}var Gw;const vi=((Gw=window.__MERIDIAN_CONFIG__)==null?void 0:Gw.apiUrl)??void 0??"";class bp extends Error{constructor(t,r,n){super(r),this.status=t,this.data=n,this.name="ApiError"}}function Kj(){return localStorage.getItem("meridian_token")}async function xo(e,t={}){var i;const r=Kj(),n={"Content-Type":"application/json",...t.headers};r&&(n.Authorization=`Bearer ${r}`);const s=await fetch(`${vi}${e}`,{...t,headers:n});if(!s.ok){let o;try{o=await s.json()}catch{o=null}const l=((i=o==null?void 0:o.error)==null?void 0:i.message)??`HTTP ${s.status}`;throw s.status===401&&window.dispatchEvent(new CustomEvent("meridian:unauthorized")),new bp(s.status,l,o)}if(s.status!==204)return s.json()}const ae={get:e=>xo(e,{method:"GET"}),post:(e,t)=>xo(e,{method:"POST",body:JSON.stringify(t)}),put:(e,t)=>xo(e,{method:"PUT",body:JSON.stringify(t)}),patch:(e,t)=>xo(e,{method:"PATCH",body:JSON.stringify(t)}),delete:e=>xo(e,{method:"DELETE"}),upload:async(e,t)=>{var i;const r=Kj(),n={};r&&(n.Authorization=`Bearer ${r}`);const s=await fetch(`${vi}${e}`,{method:"POST",headers:n,body:t});if(!s.ok){let o;try{o=await s.json()}catch{o=null}const l=((i=o==null?void 0:o.error)==null?void 0:i.message)??`HTTP ${s.status}`;throw s.status===401&&window.dispatchEvent(new CustomEvent("meridian:unauthorized")),new bp(s.status,l,o)}if(s.status!==204)return s.json()}},vt={all:["issues"],byProject:e=>[...vt.all,"project",e],detail:e=>[...vt.all,e],comments:e=>[...vt.all,e,"comments"],activities:e=>[...vt.all,e,"activities"]};function Nl(e){return De({queryKey:e?vt.byProject(e):vt.all,queryFn:()=>{const t=e?`/admin/issues?project_id=${e}`:"/admin/issues";return ae.get(t)},select:t=>t.issues})}function Yj(e){return De({queryKey:vt.detail(e),queryFn:()=>ae.get(`/admin/issues/${e}`),select:t=>t.issue,enabled:!!e})}function QA(e){return De({queryKey:vt.comments(e),queryFn:()=>ae.get(`/admin/issues/${e}/comments`),select:t=>t.comments,enabled:!!e})}function Gj(){const e=Ne();return je({mutationFn:t=>ae.post("/admin/issues",t),onSuccess:(t,r)=>{e.invalidateQueries({queryKey:vt.byProject(r.project_id)})}})}function su(e,t){const r=Ne();return je({mutationFn:n=>ae.put(`/admin/issues/${e}`,n),onMutate:async n=>{await r.cancelQueries({queryKey:vt.byProject(t)});const s=r.getQueryData(vt.byProject(t));return r.setQueryData(vt.byProject(t),i=>i&&{...i,issues:i.issues.map(o=>o.id===e?{...o,...n}:o)}),{previous:s}},onError:(n,s,i)=>{i!=null&&i.previous&&r.setQueryData(vt.byProject(t),i.previous)},onSettled:()=>{r.invalidateQueries({queryKey:vt.byProject(t)}),r.invalidateQueries({queryKey:vt.detail(e)})}})}function ZA(e){return De({queryKey:vt.activities(e),queryFn:()=>ae.get(`/admin/issues/${e}/activities`),select:t=>t.activities,enabled:!!e})}function JA(e){const t=Ne();return je({mutationFn:r=>ae.post(`/admin/issues/${e}/comments`,{body:r}),onSuccess:()=>{t.invalidateQueries({queryKey:vt.comments(e)})}})}const vv=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,yv=Qe,kl=(e,t)=>r=>{var n;if((t==null?void 0:t.variants)==null)return yv(e,r==null?void 0:r.class,r==null?void 0:r.className);const{variants:s,defaultVariants:i}=t,o=Object.keys(s).map(d=>{const u=r==null?void 0:r[d],f=i==null?void 0:i[d];if(u===null)return null;const m=vv(u)||vv(f);return s[d][m]}),l=r&&Object.entries(r).reduce((d,u)=>{let[f,m]=u;return m===void 0||(d[f]=m),d},{}),c=t==null||(n=t.compoundVariants)===null||n===void 0?void 0:n.reduce((d,u)=>{let{class:f,className:m,...h}=u;return Object.entries(h).every(g=>{let[x,v]=g;return Array.isArray(v)?v.includes({...i,...l}[x]):{...i,...l}[x]===v})?[...d,f,m]:d},[]);return yv(e,o,c,r==null?void 0:r.class,r==null?void 0:r.className)},hi=kl("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 hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline",indigo:"bg-indigo text-indigo-foreground hover:opacity-90"},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","icon-sm":"h-7 w-7"}},defaultVariants:{variant:"default",size:"default"}}),J=p.forwardRef(({className:e,variant:t,size:r,asChild:n=!1,...s},i)=>{const o=n?mp:"button";return a.jsx(o,{className:R(hi({variant:t,size:r,className:e})),ref:i,...s})});J.displayName="Button";const _e=p.forwardRef(({className:e,type:t,...r},n)=>a.jsx("input",{type:t,className:R("flex h-9 w-full rounded-lg border border-input bg-transparent px-3 py-1 text-sm shadow-none transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-[#9ca3af] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",e),ref:n,...r}));_e.displayName="Input";/**
|
|
4
4
|
* @license lucide-react v0.468.0 - ISC
|
|
@@ -582,4 +582,4 @@ For more information, see https://radix-ui.com/primitives/docs/components/alert-
|
|
|
582
582
|
*
|
|
583
583
|
* This source code is licensed under the MIT license found in the
|
|
584
584
|
* LICENSE file in the root directory of this source tree.
|
|
585
|
-
*/var lc=p;function oG(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var lG=typeof Object.is=="function"?Object.is:oG,cG=lc.useSyncExternalStore,dG=lc.useRef,uG=lc.useEffect,fG=lc.useMemo,mG=lc.useDebugValue;iG.useSyncExternalStoreWithSelector=function(e,t,r,n,s){var i=dG(null);if(i.current===null){var o={hasValue:!1,value:null};i.current=o}else o=i.current;i=fG(function(){function c(h){if(!d){if(d=!0,u=h,h=n(h),s!==void 0&&o.hasValue){var g=o.value;if(s(g,h))return f=g}return f=h}if(g=f,lG(u,h))return g;var x=n(h);return s!==void 0&&s(g,x)?(u=h,g):(u=h,f=x)}var d=!1,u,f,m=r===void 0?null:r;return[function(){return c(t())},m===null?void 0:function(){return c(m())}]},[t,r,n,s]);var l=cG(e,i[0],i[1]);return uG(function(){o.hasValue=!0,o.value=l},[l]),mG(l),l};function hG(e){e()}function pG(){let e=null,t=null;return{clear(){e=null,t=null},notify(){hG(()=>{let r=e;for(;r;)r.callback(),r=r.next})},get(){const r=[];let n=e;for(;n;)r.push(n),n=n.next;return r},subscribe(r){let n=!0;const s=t={callback:r,next:null,prev:t};return s.prev?s.prev.next=s:e=s,function(){!n||e===null||(n=!1,s.next?s.next.prev=s.prev:t=s.prev,s.prev?s.prev.next=s.next:e=s.next)}}}}var kw={notify(){},get:()=>[]};function gG(e,t){let r,n=kw,s=0,i=!1;function o(x){u();const v=n.subscribe(x);let y=!1;return()=>{y||(y=!0,v(),f())}}function l(){n.notify()}function c(){g.onStateChange&&g.onStateChange()}function d(){return i}function u(){s++,r||(r=e.subscribe(c),n=pG())}function f(){s--,r&&s===0&&(r(),r=void 0,n.clear(),n=kw)}function m(){i||(i=!0,u())}function h(){i&&(i=!1,f())}const g={addNestedSub:o,notifyNestedSubs:l,handleChangeWrapper:c,isSubscribed:d,trySubscribe:m,tryUnsubscribe:h,getListeners:()=>n};return g}var xG=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",vG=xG(),yG=()=>typeof navigator<"u"&&navigator.product==="ReactNative",bG=yG(),wG=()=>vG||bG?p.useLayoutEffect:p.useEffect,jG=wG();function Sw(e,t){return e===t?e!==0||t!==0||1/e===1/t:e!==e&&t!==t}function NG(e,t){if(Sw(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;const r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(let s=0;s<r.length;s++)if(!Object.prototype.hasOwnProperty.call(t,r[s])||!Sw(e[r[s]],t[r[s]]))return!1;return!0}var $m=Symbol.for("react-redux-context"),zm=typeof globalThis<"u"?globalThis:{};function kG(){if(!p.createContext)return{};const e=zm[$m]??(zm[$m]=new Map);let t=e.get(p.createContext);return t||(t=p.createContext(null),e.set(p.createContext,t)),t}var SG=kG();function CG(e){const{children:t,context:r,serverState:n,store:s}=e,i=p.useMemo(()=>{const c=gG(s);return{store:s,subscription:c,getServerState:n?()=>n:void 0}},[s,n]),o=p.useMemo(()=>s.getState(),[s]);jG(()=>{const{subscription:c}=i;return c.onStateChange=c.notifyNestedSubs,c.trySubscribe(),o!==s.getState()&&c.notifyNestedSubs(),()=>{c.tryUnsubscribe(),c.onStateChange=void 0}},[i,o]);const l=r||SG;return p.createElement(l.Provider,{value:i},t)}var _G=CG,OG=new Set(["axisLine","tickLine","activeBar","activeDot","activeLabel","activeShape","allowEscapeViewBox","background","cursor","dot","label","line","margin","padding","position","shape","style","tick","wrapperStyle","radius"]);function PG(e,t){return e==null&&t==null?!0:typeof e=="number"&&typeof t=="number"?e===t||e!==e&&t!==t:e===t}function Ux(e,t){var r=new Set([...Object.keys(e),...Object.keys(t)]);for(var n of r)if(OG.has(n)){if(e[n]==null&&t[n]==null)continue;if(!NG(e[n],t[n]))return!1}else if(!PG(e[n],t[n]))return!1;return!0}function Qs(e,t){var r,n;return(r=(n=e.graphicalItems.cartesianItems.find(s=>s.id===t))===null||n===void 0?void 0:n.xAxisId)!==null&&r!==void 0?r:oO}function Zs(e,t){var r,n;return(r=(n=e.graphicalItems.cartesianItems.find(s=>s.id===t))===null||n===void 0?void 0:n.yAxisId)!==null&&r!==void 0?r:oO}var MG="Invariant failed";function AG(e,t){throw new Error(MG)}function Qh(){return Qh=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Qh.apply(null,arguments)}function Kd(e){return p.createElement(yK,Qh({shapeType:"rectangle",activeClassName:"recharts-active-bar"},e))}var EG=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return(n,s)=>{if(ge(t))return t;var i=ge(n)||Wt(n);return i?t(n,s):(i||AG(),r)}},DG=(e,t,r)=>r,TG=(e,t)=>t,cc=U([vx,TG],(e,t)=>e.filter(r=>r.type==="bar").find(r=>r.id===t)),IG=U([cc],e=>e==null?void 0:e.maxBarSize),RG=(e,t,r,n)=>n,$G=U([Ze,vx,Qs,Zs,DG],(e,t,r,n,s)=>t.filter(i=>e==="horizontal"?i.xAxisId===r:i.yAxisId===n).filter(i=>i.isPanorama===s).filter(i=>i.hide===!1).filter(i=>i.type==="bar")),zG=(e,t,r)=>{var n=Ze(e),s=Qs(e,t),i=Zs(e,t);if(!(s==null||i==null))return n==="horizontal"?Hh(e,"yAxis",i,r):Hh(e,"xAxis",s,r)},LG=(e,t)=>{var r=Ze(e),n=Qs(e,t),s=Zs(e,t);if(!(n==null||s==null))return r==="horizontal"?_0(e,"xAxis",n):_0(e,"yAxis",s)},FG=U([$G,k7,LG],GK),BG=(e,t,r)=>{var n,s,i=cc(e,t);if(i==null)return 0;var o=Qs(e,t),l=Zs(e,t);if(o==null||l==null)return 0;var c=Ze(e),d=hC(e),{maxBarSize:u}=i,f=Wt(u)?d:u,m,h;return c==="horizontal"?(m=Ei(e,"xAxis",o,r),h=Ai(e,"xAxis",o,r)):(m=Ei(e,"yAxis",l,r),h=Ai(e,"yAxis",l,r)),(n=(s=pd(m,h,!0))!==null&&s!==void 0?s:f)!==null&&n!==void 0?n:0},gO=(e,t,r)=>{var n=Ze(e),s=Qs(e,t),i=Zs(e,t);if(!(s==null||i==null)){var o,l;return n==="horizontal"?(o=Ei(e,"xAxis",s,r),l=Ai(e,"xAxis",s,r)):(o=Ei(e,"yAxis",i,r),l=Ai(e,"yAxis",i,r)),pd(o,l)}},WG=U([FG,hC,N7,pC,BG,gO,IG],JK),UG=(e,t,r)=>{var n=Qs(e,t);if(n!=null)return Ei(e,"xAxis",n,r)},qG=(e,t,r)=>{var n=Zs(e,t);if(n!=null)return Ei(e,"yAxis",n,r)},HG=(e,t,r)=>{var n=Qs(e,t);if(n!=null)return Ai(e,"xAxis",n,r)},KG=(e,t,r)=>{var n=Zs(e,t);if(n!=null)return Ai(e,"yAxis",n,r)},YG=U([WG,cc],tY),GG=U([zG,cc],eY),VG=U([qt,Eg,UG,qG,HG,KG,YG,Ze,p7,gO,GG,cc,RG],(e,t,r,n,s,i,o,l,c,d,u,f,m)=>{var{chartData:h,dataStartIndex:g,dataEndIndex:x}=c;if(!(f==null||o==null||t==null||l!=="horizontal"&&l!=="vertical"||r==null||n==null||s==null||i==null||d==null)){var{data:v}=f,y;if(v!=null&&v.length>0?y=v:y=h==null?void 0:h.slice(g,x+1),y!=null)return NV({layout:l,barSettings:f,pos:o,parentViewBox:t,bandSize:d,xAxis:r,yAxis:n,xAxisTicks:s,yAxisTicks:i,stackedData:u,displayedData:y,offset:e,cells:m,dataStartIndex:g})}}),XG=["index"];function Zh(){return Zh=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Zh.apply(null,arguments)}function QG(e,t){if(e==null)return{};var r,n,s=ZG(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}function ZG(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}var xO=p.createContext(void 0),JG=e=>{var t=p.useContext(xO);if(t!=null)return t.stackId;if(e!=null)return CL(e)},eV=(e,t)=>"recharts-bar-stack-clip-path-".concat(e,"-").concat(t),tV=e=>{var t=p.useContext(xO);if(t!=null){var{stackId:r}=t;return"url(#".concat(eV(r,e),")")}},vO=e=>{var{index:t}=e,r=QG(e,XG),n=tV(t);return p.createElement(ha,Zh({className:"recharts-bar-stack-layer",clipPath:n},r))},rV=["onMouseEnter","onMouseLeave","onClick"],nV=["value","background","tooltipPosition"],aV=["id"],sV=["onMouseEnter","onClick","onMouseLeave"];function wa(){return wa=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},wa.apply(null,arguments)}function Cw(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),r.push.apply(r,n)}return r}function fr(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Cw(Object(r),!0).forEach(function(n){iV(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Cw(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function iV(e,t,r){return(t=oV(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function oV(e){var t=lV(e,"string");return typeof t=="symbol"?t:t+""}function lV(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Yd(e,t){if(e==null)return{};var r,n,s=cV(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}function cV(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}var dV=e=>{var{dataKey:t,name:r,fill:n,legendType:s,hide:i}=e;return[{inactive:i,dataKey:t,type:s,color:n,value:WS(r,t),payload:e}]},uV=p.memo(e=>{var{dataKey:t,stroke:r,strokeWidth:n,fill:s,name:i,hide:o,unit:l,tooltipType:c,id:d}=e,u={dataDefinedOnItem:void 0,getPosition:ro,settings:{stroke:r,strokeWidth:n,fill:s,dataKey:t,nameKey:void 0,name:WS(i,t),hide:o,type:c,color:s,unit:l,graphicalItemId:d}};return p.createElement(bK,{tooltipEntrySettings:u})});function fV(e){var t=ke(Di),{data:r,dataKey:n,background:s,allOtherBarProps:i}=e,{onMouseEnter:o,onMouseLeave:l,onClick:c}=i,d=Yd(i,rV),u=nO(o,n,i.id),f=aO(l),m=sO(c,n,i.id);if(!s||r==null)return null;var h=cg(s);return p.createElement(Ta,{zIndex:rY(s,pr.barBackground)},r.map((g,x)=>{var{value:v,background:y,tooltipPosition:j}=g,b=Yd(g,nV);if(!y)return null;var N=u(g,x),k=f(g,x),w=m(g,x),S=fr(fr(fr(fr(fr({option:s,isActive:String(x)===t},b),{},{fill:"#eee"},y),h),hg(d,g,x)),{},{onMouseEnter:N,onMouseLeave:k,onClick:w,dataKey:n,index:x,className:"recharts-bar-background-rectangle"});return p.createElement(Kd,wa({key:"background-bar-".concat(x)},S))}))}function mV(e){var{showLabels:t,children:r,rects:n}=e,s=n==null?void 0:n.map(i=>{var o={x:i.x,y:i.y,width:i.width,lowerWidth:i.width,upperWidth:i.width,height:i.height};return fr(fr({},o),{},{value:i.value,payload:i.payload,parentViewBox:i.parentViewBox,viewBox:o,fill:i.fill})});return p.createElement(KH,{value:t?s:void 0},r)}function hV(e){var{shape:t,activeBar:r,baseProps:n,entry:s,index:i,dataKey:o}=e,l=ke(Di),c=ke(C_),d=r&&String(i)===l&&(c==null||o===c),u=d?r:t;return d?p.createElement(Ta,{zIndex:pr.activeBar},p.createElement(vO,{index:i},p.createElement(Kd,wa({},n,{name:String(n.name)},s,{isActive:d,option:u,index:i,dataKey:o})))):p.createElement(Kd,wa({},n,{name:String(n.name)},s,{isActive:d,option:u,index:i,dataKey:o}))}function pV(e){var{shape:t,baseProps:r,entry:n,index:s,dataKey:i}=e;return p.createElement(Kd,wa({},r,{name:String(r.name)},n,{isActive:!1,option:t,index:s,dataKey:i}))}function gV(e){var t,{data:r,props:n}=e,s=(t=ma(n))!==null&&t!==void 0?t:{},{id:i}=s,o=Yd(s,aV),{shape:l,dataKey:c,activeBar:d}=n,{onMouseEnter:u,onClick:f,onMouseLeave:m}=n,h=Yd(n,sV),g=nO(u,c,i),x=aO(m),v=sO(f,c,i);return r?p.createElement(p.Fragment,null,r.map((y,j)=>p.createElement(vO,wa({index:j,key:"rectangle-".concat(y==null?void 0:y.x,"-").concat(y==null?void 0:y.y,"-").concat(y==null?void 0:y.value,"-").concat(j),className:"recharts-bar-rectangle"},hg(h,y,j),{onMouseEnter:g(y,j),onMouseLeave:x(y,j),onClick:v(y,j)}),d?p.createElement(hV,{shape:l,activeBar:d,baseProps:o,entry:y,index:j,dataKey:c}):p.createElement(pV,{shape:l,baseProps:o,entry:y,index:j,dataKey:c})))):null}function xV(e){var{props:t,previousRectanglesRef:r}=e,{data:n,layout:s,isAnimationActive:i,animationBegin:o,animationDuration:l,animationEasing:c,onAnimationEnd:d,onAnimationStart:u}=t,f=r.current,m=zg(t,"recharts-bar-"),[h,g]=p.useState(!1),x=!h,v=p.useCallback(()=>{typeof d=="function"&&d(),g(!1)},[d]),y=p.useCallback(()=>{typeof u=="function"&&u(),g(!0)},[u]);return p.createElement(mV,{showLabels:x,rects:n},p.createElement($g,{animationId:m,begin:o,duration:l,isActive:i,easing:c,onAnimationEnd:v,onAnimationStart:y,key:m},j=>{var b=j===1?n:n==null?void 0:n.map((N,k)=>{var w=f&&f[k];if(w)return fr(fr({},N),{},{x:Jt(w.x,N.x,j),y:Jt(w.y,N.y,j),width:Jt(w.width,N.width,j),height:Jt(w.height,N.height,j)});if(s==="horizontal"){var S=Jt(0,N.height,j),C=Jt(N.stackedBarStart,N.y,j);return fr(fr({},N),{},{y:C,height:S})}var P=Jt(0,N.width,j),A=Jt(N.stackedBarStart,N.x,j);return fr(fr({},N),{},{width:P,x:A})});return j>0&&(r.current=b??null),b==null?null:p.createElement(ha,null,p.createElement(gV,{props:t,data:b}))}),p.createElement(VH,{label:t.label}),t.children)}function vV(e){var t=p.useRef(null);return p.createElement(xV,{previousRectanglesRef:t,props:e})}var yO=0,yV=(e,t)=>{var r=Array.isArray(e.value)?e.value[1]:e.value;return{x:e.x,y:e.y,value:r,errorVal:tr(e,t)}};class bV extends p.PureComponent{render(){var{hide:t,data:r,dataKey:n,className:s,xAxisId:i,yAxisId:o,needClip:l,background:c,id:d}=this.props;if(t||r==null)return null;var u=Qe("recharts-bar",s),f=d;return p.createElement(ha,{className:u,id:d},l&&p.createElement("defs",null,p.createElement(sG,{clipPathId:f,xAxisId:i,yAxisId:o})),p.createElement(ha,{className:"recharts-bar-rectangles",clipPath:l?"url(#clipPath-".concat(f,")"):void 0},p.createElement(fV,{data:r,dataKey:n,background:c,allOtherBarProps:this.props}),p.createElement(vV,this.props)))}}var wV={activeBar:!1,animationBegin:0,animationDuration:400,animationEasing:"ease",background:!1,hide:!1,isAnimationActive:"auto",label:!1,legendType:"rect",minPointSize:yO,xAxisId:0,yAxisId:0,zIndex:pr.bar};function jV(e){var{xAxisId:t,yAxisId:r,hide:n,legendType:s,minPointSize:i,activeBar:o,animationBegin:l,animationDuration:c,animationEasing:d,isAnimationActive:u}=e,{needClip:f}=pO(t,r),m=no(),h=Dr(),g=rK(e.children,$_),x=ke(j=>VG(j,e.id,h,g));if(m!=="vertical"&&m!=="horizontal")return null;var v,y=x==null?void 0:x[0];return y==null||y.height==null||y.width==null?v=0:v=m==="vertical"?y.height/2:y.width/2,p.createElement(aG,{xAxisId:t,yAxisId:r,data:x,dataPointFormatter:yV,errorBarOffset:v},p.createElement(bV,wa({},e,{layout:m,needClip:f,data:x,xAxisId:t,yAxisId:r,hide:n,legendType:s,minPointSize:i,activeBar:o,animationBegin:l,animationDuration:c,animationEasing:d,isAnimationActive:u})))}function NV(e){var{layout:t,barSettings:{dataKey:r,minPointSize:n},pos:s,bandSize:i,xAxis:o,yAxis:l,xAxisTicks:c,yAxisTicks:d,stackedData:u,displayedData:f,offset:m,cells:h,parentViewBox:g,dataStartIndex:x}=e,v=t==="horizontal"?l:o,y=u?v.scale.domain():null,j=_L({numericAxis:v}),b=v.scale.map(j);return f.map((N,k)=>{var w,S,C,P,A,M;if(u){var _=u[k+x];if(_==null)return null;w=wL(_,y)}else w=tr(N,r),Array.isArray(w)||(w=[j,w]);var E=EG(n,yO)(w[1],k);if(t==="horizontal"){var O,T=l.scale.map(w[0]),z=l.scale.map(w[1]);if(T==null||z==null)return null;S=Ry({axis:o,ticks:c,bandSize:i,offset:s.offset,entry:N,index:k}),C=(O=z??T)!==null&&O!==void 0?O:void 0,P=s.size;var B=T-z;if(A=Bn(B)?0:B,M={x:S,y:m.top,width:P,height:m.height},Math.abs(E)>0&&Math.abs(A)<Math.abs(E)){var Q=Cr(A||E)*(Math.abs(E)-Math.abs(A));C-=Q,A+=Q}}else{var K=o.scale.map(w[0]),Z=o.scale.map(w[1]);if(K==null||Z==null)return null;if(S=K,C=Ry({axis:l,ticks:d,bandSize:i,offset:s.offset,entry:N,index:k}),P=Z-K,A=s.size,M={x:m.left,y:C,width:m.width,height:A},Math.abs(E)>0&&Math.abs(P)<Math.abs(E)){var ee=Cr(P||E)*(Math.abs(E)-Math.abs(P));P+=ee}}if(S==null||C==null||P==null||A==null)return null;var $=fr(fr({},N),{},{stackedBarStart:b,x:S,y:C,width:P,height:A,value:u?w:w[1],payload:N,background:M,tooltipPosition:{x:S+P/2,y:C+A/2},parentViewBox:g},h&&h[k]&&h[k].props);return $}).filter(Boolean)}function kV(e){var t=qr(e,wV),r=JG(t.stackId),n=Dr();return p.createElement(CK,{id:t.id,type:"bar"},s=>p.createElement(p.Fragment,null,p.createElement(wK,{legendPayload:dV(t)}),p.createElement(uV,{dataKey:t.dataKey,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,tooltipType:t.tooltipType,id:s}),p.createElement(DK,{type:"bar",id:s,data:void 0,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,stackId:r,hide:t.hide,barSize:t.barSize,minPointSize:t.minPointSize,maxBarSize:t.maxBarSize,isPanorama:n}),p.createElement(Ta,{zIndex:t.zIndex},p.createElement(jV,wa({},t,{id:s})))))}var gl=p.memo(kV,Ux);gl.displayName="Bar";var SV=["domain","range"],CV=["domain","range"];function _w(e,t){if(e==null)return{};var r,n,s=_V(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}function _V(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function Ow(e,t){return e===t?!0:Array.isArray(e)&&e.length===2&&Array.isArray(t)&&t.length===2?e[0]===t[0]&&e[1]===t[1]:!1}function bO(e,t){if(e===t)return!0;var{domain:r,range:n}=e,s=_w(e,SV),{domain:i,range:o}=t,l=_w(t,CV);return!Ow(r,i)||!Ow(n,o)?!1:Ux(s,l)}var OV=["type"],PV=["dangerouslySetInnerHTML","ticks","scale"],MV=["id","scale"];function Jh(){return Jh=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Jh.apply(null,arguments)}function Pw(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),r.push.apply(r,n)}return r}function Mw(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Pw(Object(r),!0).forEach(function(n){AV(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Pw(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function AV(e,t,r){return(t=EV(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function EV(e){var t=DV(e,"string");return typeof t=="symbol"?t:t+""}function DV(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function ep(e,t){if(e==null)return{};var r,n,s=TV(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}function TV(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function IV(e){var t=kt(),r=p.useRef(null),n=JS(),{type:s}=e,i=ep(e,OV),o=jf(n,"xAxis",s),l=p.useMemo(()=>{if(o!=null)return Mw(Mw({},i),{},{type:o})},[i,o]);return p.useLayoutEffect(()=>{l!=null&&(r.current===null?t(zK(l)):r.current!==l&&t(LK({prev:r.current,next:l})),r.current=l)},[l,t]),p.useLayoutEffect(()=>()=>{r.current&&(t(FK(r.current)),r.current=null)},[t]),null}var RV=e=>{var{xAxisId:t,className:r}=e,n=ke(Eg),s=Dr(),i="xAxis",o=ke(y=>s_(y,i,t,s)),l=ke(y=>t_(y,t)),c=ke(y=>S9(y,t)),d=ke(y=>kC(y,t));if(l==null||c==null||d==null)return null;var{dangerouslySetInnerHTML:u,ticks:f,scale:m}=e,h=ep(e,PV),{id:g,scale:x}=d,v=ep(d,MV);return p.createElement(Wx,Jh({},h,v,{x:c.x,y:c.y,width:l.width,height:l.height,className:Qe("recharts-".concat(i," ").concat(i),r),viewBox:n,ticks:o,axisType:i}))},$V={allowDataOverflow:$t.allowDataOverflow,allowDecimals:$t.allowDecimals,allowDuplicatedCategory:$t.allowDuplicatedCategory,angle:$t.angle,axisLine:ua.axisLine,height:$t.height,hide:!1,includeHidden:$t.includeHidden,interval:$t.interval,label:!1,minTickGap:$t.minTickGap,mirror:$t.mirror,orientation:$t.orientation,padding:$t.padding,reversed:$t.reversed,scale:$t.scale,tick:$t.tick,tickCount:$t.tickCount,tickLine:ua.tickLine,tickSize:ua.tickSize,type:$t.type,xAxisId:0},zV=e=>{var t=qr(e,$V);return p.createElement(p.Fragment,null,p.createElement(IV,{allowDataOverflow:t.allowDataOverflow,allowDecimals:t.allowDecimals,allowDuplicatedCategory:t.allowDuplicatedCategory,angle:t.angle,dataKey:t.dataKey,domain:t.domain,height:t.height,hide:t.hide,id:t.xAxisId,includeHidden:t.includeHidden,interval:t.interval,minTickGap:t.minTickGap,mirror:t.mirror,name:t.name,orientation:t.orientation,padding:t.padding,reversed:t.reversed,scale:t.scale,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit}),p.createElement(RV,t))},xl=p.memo(zV,bO);xl.displayName="XAxis";var LV=["type"],FV=["dangerouslySetInnerHTML","ticks","scale"],BV=["id","scale"];function tp(){return tp=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},tp.apply(null,arguments)}function Aw(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),r.push.apply(r,n)}return r}function Ew(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Aw(Object(r),!0).forEach(function(n){WV(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Aw(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function WV(e,t,r){return(t=UV(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function UV(e){var t=qV(e,"string");return typeof t=="symbol"?t:t+""}function qV(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function rp(e,t){if(e==null)return{};var r,n,s=HV(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}function HV(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function KV(e){var t=kt(),r=p.useRef(null),n=JS(),{type:s}=e,i=rp(e,LV),o=jf(n,"yAxis",s),l=p.useMemo(()=>{if(o!=null)return Ew(Ew({},i),{},{type:o})},[o,i]);return p.useLayoutEffect(()=>{l!=null&&(r.current===null?t(BK(l)):r.current!==l&&t(WK({prev:r.current,next:l})),r.current=l)},[l,t]),p.useLayoutEffect(()=>()=>{r.current&&(t(UK(r.current)),r.current=null)},[t]),null}function YV(e){var{yAxisId:t,className:r,width:n,label:s}=e,i=p.useRef(null),o=p.useRef(null),l=ke(Eg),c=Dr(),d=kt(),u="yAxis",f=ke(w=>r_(w,t)),m=ke(w=>_9(w,t)),h=ke(w=>s_(w,u,t,c)),g=ke(w=>SC(w,t));if(p.useLayoutEffect(()=>{if(!(n!=="auto"||!f||zx(s)||p.isValidElement(s)||g==null)){var w=i.current;if(w){var S=w.getCalculatedWidth();Math.round(f.width)!==Math.round(S)&&d(qK({id:t,width:S}))}}},[h,f,d,s,t,n,g]),f==null||m==null||g==null)return null;var{dangerouslySetInnerHTML:x,ticks:v,scale:y}=e,j=rp(e,FV),{id:b,scale:N}=g,k=rp(g,BV);return p.createElement(Wx,tp({},j,k,{ref:i,labelRef:o,x:m.x,y:m.y,tickTextProps:n==="auto"?{width:void 0}:{width:n},width:f.width,height:f.height,className:Qe("recharts-".concat(u," ").concat(u),r),viewBox:l,ticks:h,axisType:u}))}var GV={allowDataOverflow:zt.allowDataOverflow,allowDecimals:zt.allowDecimals,allowDuplicatedCategory:zt.allowDuplicatedCategory,angle:zt.angle,axisLine:ua.axisLine,hide:!1,includeHidden:zt.includeHidden,interval:zt.interval,label:!1,minTickGap:zt.minTickGap,mirror:zt.mirror,orientation:zt.orientation,padding:zt.padding,reversed:zt.reversed,scale:zt.scale,tick:zt.tick,tickCount:zt.tickCount,tickLine:ua.tickLine,tickSize:ua.tickSize,type:zt.type,width:zt.width,yAxisId:0},VV=e=>{var t=qr(e,GV);return p.createElement(p.Fragment,null,p.createElement(KV,{interval:t.interval,id:t.yAxisId,scale:t.scale,type:t.type,domain:t.domain,allowDataOverflow:t.allowDataOverflow,dataKey:t.dataKey,allowDuplicatedCategory:t.allowDuplicatedCategory,allowDecimals:t.allowDecimals,tickCount:t.tickCount,padding:t.padding,includeHidden:t.includeHidden,reversed:t.reversed,ticks:t.ticks,width:t.width,orientation:t.orientation,mirror:t.mirror,hide:t.hide,unit:t.unit,name:t.name,angle:t.angle,minTickGap:t.minTickGap,tick:t.tick,tickFormatter:t.tickFormatter}),p.createElement(YV,t))},vl=p.memo(VV,bO);vl.displayName="YAxis";var XV=(e,t)=>t,qx=U([XV,Ze,jC,Yt,j_,Da,BU,qt],GU),Hx=e=>{var t=e.currentTarget.getBoundingClientRect(),r=t.width/e.currentTarget.offsetWidth,n=t.height/e.currentTarget.offsetHeight;return{chartX:Math.round((e.clientX-t.left)/r),chartY:Math.round((e.clientY-t.top)/n)}},wO=rn("mouseClick"),jO=Gl();jO.startListening({actionCreator:wO,effect:(e,t)=>{var r=e.payload,n=qx(t.getState(),Hx(r));(n==null?void 0:n.activeIndex)!=null&&t.dispatch(B9({activeIndex:n.activeIndex,activeDataKey:void 0,activeCoordinate:n.activeCoordinate}))}});var np=rn("mouseMove"),NO=Gl(),$c=null;NO.startListening({actionCreator:np,effect:(e,t)=>{var r=e.payload;$c!==null&&cancelAnimationFrame($c);var n=Hx(r);$c=requestAnimationFrame(()=>{var s=t.getState(),i=_x(s,s.tooltip.settings.shared);if(i==="axis"){var o=qx(s,n);(o==null?void 0:o.activeIndex)!=null?t.dispatch(m_({activeIndex:o.activeIndex,activeDataKey:void 0,activeCoordinate:o.activeCoordinate})):t.dispatch(f_())}$c=null})}});function QV(e,t){return t instanceof HTMLElement?"HTMLElement <".concat(t.tagName,' class="').concat(t.className,'">'):t===window?"global.window":e==="children"&&typeof t=="object"&&t!==null?"<<CHILDREN>>":t}var Dw={accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,barSize:void 0,className:void 0,maxBarSize:void 0,stackOffset:"none",syncId:void 0,syncMethod:"index",baseValue:void 0,reverseStackOrder:!1},kO=Er({name:"rootProps",initialState:Dw,reducers:{updateOptions:(e,t)=>{var r;e.accessibilityLayer=t.payload.accessibilityLayer,e.barCategoryGap=t.payload.barCategoryGap,e.barGap=(r=t.payload.barGap)!==null&&r!==void 0?r:Dw.barGap,e.barSize=t.payload.barSize,e.maxBarSize=t.payload.maxBarSize,e.stackOffset=t.payload.stackOffset,e.syncId=t.payload.syncId,e.syncMethod=t.payload.syncMethod,e.className=t.payload.className,e.baseValue=t.payload.baseValue,e.reverseStackOrder=t.payload.reverseStackOrder}}}),ZV=kO.reducer,{updateOptions:JV}=kO.actions,eX=null,tX={updatePolarOptions:(e,t)=>t.payload},SO=Er({name:"polarOptions",initialState:eX,reducers:tX}),{updatePolarOptions:QJ}=SO.actions,rX=SO.reducer,CO=rn("keyDown"),_O=rn("focus"),Kx=Gl();Kx.startListening({actionCreator:CO,effect:(e,t)=>{var r=t.getState(),n=r.rootProps.accessibilityLayer!==!1;if(n){var{keyboardInteraction:s}=r.tooltip,i=e.payload;if(!(i!=="ArrowRight"&&i!=="ArrowLeft"&&i!=="Enter")){var o=Ox(s,mo(r),ac(r),ic(r)),l=o==null?-1:Number(o);if(!(!Number.isFinite(l)||l<0)){var c=Da(r);if(i==="Enter"){var d=Fd(r,"axis","hover",String(s.index));t.dispatch(Yh({active:!s.active,activeIndex:s.index,activeCoordinate:d}));return}var u=A9(r),f=u==="left-to-right"?1:-1,m=i==="ArrowRight"?1:-1,h=l+m*f;if(!(c==null||h>=c.length||h<0)){var g=Fd(r,"axis","hover",String(h));t.dispatch(Yh({active:!0,activeIndex:h.toString(),activeCoordinate:g}))}}}}}});Kx.startListening({actionCreator:_O,effect:(e,t)=>{var r=t.getState(),n=r.rootProps.accessibilityLayer!==!1;if(n){var{keyboardInteraction:s}=r.tooltip;if(!s.active&&s.index==null){var i="0",o=Fd(r,"axis","hover",String(i));t.dispatch(Yh({active:!0,activeIndex:i,activeCoordinate:o}))}}}});var Vr=rn("externalEvent"),OO=Gl(),Lm=new Map;OO.startListening({actionCreator:Vr,effect:(e,t)=>{var{handler:r,reactEvent:n}=e.payload;if(r!=null){n.persist();var s=n.type,i=Lm.get(s);i!==void 0&&cancelAnimationFrame(i);var o=requestAnimationFrame(()=>{try{var l=t.getState(),c={activeCoordinate:CU(l),activeDataKey:C_(l),activeIndex:Di(l),activeLabel:S_(l),activeTooltipIndex:Di(l),isTooltipActive:_U(l)};r(c,n)}finally{Lm.delete(s)}});Lm.set(s,o)}}});var nX=U([uo],e=>e.tooltipItemPayloads),aX=U([nX,(e,t)=>t,(e,t,r)=>r],(e,t,r)=>{if(t!=null){var n=e.find(i=>i.settings.graphicalItemId===r);if(n!=null){var{getPosition:s}=n;if(s!=null)return s(t)}}}),PO=rn("touchMove"),MO=Gl();MO.startListening({actionCreator:PO,effect:(e,t)=>{var r=e.payload;if(!(r.touches==null||r.touches.length===0)){var n=t.getState(),s=_x(n,n.tooltip.settings.shared);if(s==="axis"){var i=r.touches[0];if(i==null)return;var o=qx(n,Hx({clientX:i.clientX,clientY:i.clientY,currentTarget:r.currentTarget}));(o==null?void 0:o.activeIndex)!=null&&t.dispatch(m_({activeIndex:o.activeIndex,activeDataKey:void 0,activeCoordinate:o.activeCoordinate}))}else if(s==="item"){var l,c=r.touches[0];if(document.elementFromPoint==null||c==null)return;var d=document.elementFromPoint(c.clientX,c.clientY);if(!d||!d.getAttribute)return;var u=d.getAttribute(TL),f=(l=d.getAttribute(IL))!==null&&l!==void 0?l:void 0,m=fo(n).find(x=>x.id===f);if(u==null||m==null||f==null)return;var{dataKey:h}=m,g=aX(n,u,f);t.dispatch(u_({activeDataKey:h,activeIndex:u,activeCoordinate:g,activeGraphicalItemId:f}))}}}});var sX=uS({brush:aY,cartesianAxis:HK,chartData:Sq,errorBars:ZY,graphicalItems:AK,layout:gL,legend:jF,options:bq,polarAxis:QH,polarOptions:rX,referenceElements:lY,rootProps:ZV,tooltip:W9,zIndex:lq}),iX=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Chart";return B6({reducer:sX,preloadedState:t,middleware:n=>{var s;return n({serializableCheck:!1,immutableCheck:!["commonjs","es6","production"].includes((s="es6")!==null&&s!==void 0?s:"")}).concat([jO.middleware,NO.middleware,Kx.middleware,OO.middleware,MO.middleware])},enhancers:n=>{var s=n;return typeof n=="function"&&(s=n()),s.concat(CS({type:"raf"}))},devTools:{serialize:{replacer:QV},name:"recharts-".concat(r)}})};function oX(e){var{preloadedState:t,children:r,reduxStoreName:n}=e,s=Dr(),i=p.useRef(null);if(s)return r;i.current==null&&(i.current=iX(t,n));var o=Ng;return p.createElement(_G,{context:o,store:i.current},r)}function lX(e){var{layout:t,margin:r}=e,n=kt(),s=Dr();return p.useEffect(()=>{s||(n(mL(t)),n(fL(r)))},[n,s,t,r]),null}var cX=p.memo(lX,Ux);function dX(e){var t=kt();return p.useEffect(()=>{t(JV(e))},[t,e]),null}function Tw(e){var{zIndex:t,isPanorama:r}=e,n=p.useRef(null),s=kt();return p.useLayoutEffect(()=>(n.current&&s(iq({zIndex:t,element:n.current,isPanorama:r})),()=>{s(oq({zIndex:t,isPanorama:r}))}),[s,t,r]),p.createElement("g",{tabIndex:-1,ref:n})}function Iw(e){var{children:t,isPanorama:r}=e,n=ke(XU);if(!n||n.length===0)return t;var s=n.filter(o=>o<0),i=n.filter(o=>o>0);return p.createElement(p.Fragment,null,s.map(o=>p.createElement(Tw,{key:o,zIndex:o,isPanorama:r})),t,i.map(o=>p.createElement(Tw,{key:o,zIndex:o,isPanorama:r})))}var uX=["children"];function fX(e,t){if(e==null)return{};var r,n,s=mX(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}function mX(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function Gd(){return Gd=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Gd.apply(null,arguments)}var hX={width:"100%",height:"100%",display:"block"},pX=p.forwardRef((e,t)=>{var r=QS(),n=ZS(),s=l2();if(!Un(r)||!Un(n))return null;var{children:i,otherAttributes:o,title:l,desc:c}=e,d,u;return o!=null&&(typeof o.tabIndex=="number"?d=o.tabIndex:d=s?0:void 0,typeof o.role=="string"?u=o.role:u=s?"application":void 0),p.createElement(gk,Gd({},o,{title:l,desc:c,role:u,tabIndex:d,width:r,height:n,style:hX,ref:t}),i)}),gX=e=>{var{children:t}=e,r=ke(lf);if(!r)return null;var{width:n,height:s,y:i,x:o}=r;return p.createElement(gk,{width:n,height:s,x:o,y:i},t)},Rw=p.forwardRef((e,t)=>{var{children:r}=e,n=fX(e,uX),s=Dr();return s?p.createElement(gX,null,p.createElement(Iw,{isPanorama:!0},r)):p.createElement(pX,Gd({ref:t},n),p.createElement(Iw,{isPanorama:!1},r))});function xX(){var e=kt(),[t,r]=p.useState(null),n=ke(DL);return p.useEffect(()=>{if(t!=null){var s=t.getBoundingClientRect(),i=s.width/t.offsetWidth;Re(i)&&i!==n&&e(pL(i))}},[t,e,n]),r}function $w(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),r.push.apply(r,n)}return r}function vX(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?$w(Object(r),!0).forEach(function(n){yX(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):$w(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function yX(e,t,r){return(t=bX(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function bX(e){var t=wX(e,"string");return typeof t=="symbol"?t:t+""}function wX(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ga(){return Ga=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Ga.apply(null,arguments)}var jX=()=>(Tq(),null);function Vd(e){if(typeof e=="number")return e;if(typeof e=="string"){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var NX=p.forwardRef((e,t)=>{var r,n,s=p.useRef(null),[i,o]=p.useState({containerWidth:Vd((r=e.style)===null||r===void 0?void 0:r.width),containerHeight:Vd((n=e.style)===null||n===void 0?void 0:n.height)}),l=p.useCallback((d,u)=>{o(f=>{var m=Math.round(d),h=Math.round(u);return f.containerWidth===m&&f.containerHeight===h?f:{containerWidth:m,containerHeight:h}})},[]),c=p.useCallback(d=>{if(typeof t=="function"&&t(d),d!=null&&typeof ResizeObserver<"u"){var{width:u,height:f}=d.getBoundingClientRect();l(u,f);var m=g=>{var x=g[0];if(x!=null){var{width:v,height:y}=x.contentRect;l(v,y)}},h=new ResizeObserver(m);h.observe(d),s.current=h}},[t,l]);return p.useEffect(()=>()=>{var d=s.current;d!=null&&d.disconnect()},[l]),p.createElement(p.Fragment,null,p.createElement(Xl,{width:i.containerWidth,height:i.containerHeight}),p.createElement("div",Ga({ref:c},e)))}),kX=p.forwardRef((e,t)=>{var{width:r,height:n}=e,[s,i]=p.useState({containerWidth:Vd(r),containerHeight:Vd(n)}),o=p.useCallback((c,d)=>{i(u=>{var f=Math.round(c),m=Math.round(d);return u.containerWidth===f&&u.containerHeight===m?u:{containerWidth:f,containerHeight:m}})},[]),l=p.useCallback(c=>{if(typeof t=="function"&&t(c),c!=null){var{width:d,height:u}=c.getBoundingClientRect();o(d,u)}},[t,o]);return p.createElement(p.Fragment,null,p.createElement(Xl,{width:s.containerWidth,height:s.containerHeight}),p.createElement("div",Ga({ref:l},e)))}),SX=p.forwardRef((e,t)=>{var{width:r,height:n}=e;return p.createElement(p.Fragment,null,p.createElement(Xl,{width:r,height:n}),p.createElement("div",Ga({ref:t},e)))}),CX=p.forwardRef((e,t)=>{var{width:r,height:n}=e;return typeof r=="string"||typeof n=="string"?p.createElement(kX,Ga({},e,{ref:t})):typeof r=="number"&&typeof n=="number"?p.createElement(SX,Ga({},e,{width:r,height:n,ref:t})):p.createElement(p.Fragment,null,p.createElement(Xl,{width:r,height:n}),p.createElement("div",Ga({ref:t},e)))});function _X(e){return e?NX:CX}var OX=p.forwardRef((e,t)=>{var{children:r,className:n,height:s,onClick:i,onContextMenu:o,onDoubleClick:l,onMouseDown:c,onMouseEnter:d,onMouseLeave:u,onMouseMove:f,onMouseUp:m,onTouchEnd:h,onTouchMove:g,onTouchStart:x,style:v,width:y,responsive:j,dispatchTouchEvents:b=!0}=e,N=p.useRef(null),k=kt(),[w,S]=p.useState(null),[C,P]=p.useState(null),A=xX(),M=Dg(),_=(M==null?void 0:M.width)>0?M.width:y,E=(M==null?void 0:M.height)>0?M.height:s,O=p.useCallback(W=>{A(W),typeof t=="function"&&t(W),S(W),P(W),W!=null&&(N.current=W)},[A,t,S,P]),T=p.useCallback(W=>{k(wO(W)),k(Vr({handler:i,reactEvent:W}))},[k,i]),z=p.useCallback(W=>{k(np(W)),k(Vr({handler:d,reactEvent:W}))},[k,d]),B=p.useCallback(W=>{k(f_()),k(Vr({handler:u,reactEvent:W}))},[k,u]),Q=p.useCallback(W=>{k(np(W)),k(Vr({handler:f,reactEvent:W}))},[k,f]),K=p.useCallback(()=>{k(_O())},[k]),Z=p.useCallback(W=>{k(CO(W.key))},[k]),ee=p.useCallback(W=>{k(Vr({handler:o,reactEvent:W}))},[k,o]),$=p.useCallback(W=>{k(Vr({handler:l,reactEvent:W}))},[k,l]),q=p.useCallback(W=>{k(Vr({handler:c,reactEvent:W}))},[k,c]),F=p.useCallback(W=>{k(Vr({handler:m,reactEvent:W}))},[k,m]),Y=p.useCallback(W=>{k(Vr({handler:x,reactEvent:W}))},[k,x]),H=p.useCallback(W=>{b&&k(PO(W)),k(Vr({handler:g,reactEvent:W}))},[k,b,g]),V=p.useCallback(W=>{k(Vr({handler:h,reactEvent:W}))},[k,h]),ne=_X(j);return p.createElement(D_.Provider,{value:w},p.createElement(Z$.Provider,{value:C},p.createElement(ne,{width:_??(v==null?void 0:v.width),height:E??(v==null?void 0:v.height),className:Qe("recharts-wrapper",n),style:vX({position:"relative",cursor:"default",width:_,height:E},v),onClick:T,onContextMenu:ee,onDoubleClick:$,onFocus:K,onKeyDown:Z,onMouseDown:q,onMouseEnter:z,onMouseLeave:B,onMouseMove:Q,onMouseUp:F,onTouchEnd:V,onTouchMove:H,onTouchStart:Y,ref:O},p.createElement(jX,null),r)))}),PX=["width","height","responsive","children","className","style","compact","title","desc"];function MX(e,t){if(e==null)return{};var r,n,s=AX(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}function AX(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}var EX=p.forwardRef((e,t)=>{var{width:r,height:n,responsive:s,children:i,className:o,style:l,compact:c,title:d,desc:u}=e,f=MX(e,PX),m=ma(f);return c?p.createElement(p.Fragment,null,p.createElement(Xl,{width:r,height:n}),p.createElement(Rw,{otherAttributes:m,title:d,desc:u},i)):p.createElement(OX,{className:o,style:l,width:r,height:n,responsive:s??!1,onClick:e.onClick,onMouseLeave:e.onMouseLeave,onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onContextMenu:e.onContextMenu,onDoubleClick:e.onDoubleClick,onTouchStart:e.onTouchStart,onTouchMove:e.onTouchMove,onTouchEnd:e.onTouchEnd},p.createElement(Rw,{otherAttributes:m,title:d,desc:u,ref:t},p.createElement(dY,null,i)))});function ap(){return ap=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},ap.apply(null,arguments)}var DX={top:5,right:5,bottom:5,left:5},TX={accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,layout:"horizontal",margin:DX,responsive:!1,reverseStackOrder:!1,stackOffset:"none",syncMethod:"index"},IX=p.forwardRef(function(t,r){var n,s=qr(t.categoricalChartProps,TX),{chartName:i,defaultTooltipEventType:o,validateTooltipEventTypes:l,tooltipPayloadSearcher:c,categoricalChartProps:d}=t,u={chartName:i,defaultTooltipEventType:o,validateTooltipEventTypes:l,tooltipPayloadSearcher:c,eventEmitter:void 0};return p.createElement(oX,{preloadedState:{options:u},reduxStoreName:(n=d.id)!==null&&n!==void 0?n:i},p.createElement(nY,{chartData:d.data}),p.createElement(cX,{layout:s.layout,margin:s.margin}),p.createElement(dX,{baseValue:s.baseValue,accessibilityLayer:s.accessibilityLayer,barCategoryGap:s.barCategoryGap,maxBarSize:s.maxBarSize,stackOffset:s.stackOffset,barGap:s.barGap,barSize:s.barSize,syncId:s.syncId,syncMethod:s.syncMethod,className:s.className,reverseStackOrder:s.reverseStackOrder}),p.createElement(EX,ap({},s,{ref:r})))}),RX=["axis","item"],Xd=p.forwardRef((e,t)=>p.createElement(IX,{chartName:"BarChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:RX,tooltipPayloadSearcher:vq,categoricalChartProps:e,ref:t}));const AO={all:["reporting"],timeLogs:e=>[...AO.all,"time-logs",e]};function EO(e,t){return De({queryKey:AO.timeLogs(e),queryFn:()=>{const r=new URLSearchParams;return Object.entries(e).forEach(([n,s])=>{s&&r.set(n,s)}),ae.get(`/admin/reporting/time-logs?${r}`)},enabled:(t==null?void 0:t.enabled)??(Object.values(e).some(Boolean)||!!e.workspace_id)})}function Qd({value:e,onChange:t,placeholder:r="Pick a date",className:n}){return a.jsxs(Ot,{children:[a.jsx(Pt,{asChild:!0,children:a.jsxs(J,{variant:"outline",className:R("h-8 w-36 justify-start text-left font-normal text-xs gap-1.5",!e&&"text-muted-foreground",n),children:[a.jsx(or,{className:"h-3.5 w-3.5 shrink-0"}),e?de(e,"MMM d, yyyy"):a.jsx("span",{children:r}),e&&a.jsx("span",{role:"button",className:"ml-auto hover:text-foreground",onClick:s=>{s.stopPropagation(),t(void 0)},children:a.jsx(at,{className:"h-3 w-3"})})]})}),a.jsx(jt,{className:"w-auto p-0",align:"start",children:a.jsx(lr,{mode:"single",selected:e,onSelect:t,initialFocus:!0})})]})}function sp({options:e,selected:t,onSelectionChange:r,placeholder:n="Select…",className:s}){var d;const[i,o]=p.useState(!1);function l(u){t.includes(u)?r(t.filter(f=>f!==u)):r([...t,u])}const c=t.length===0?null:t.length===1?(d=e.find(u=>u.value===t[0]))==null?void 0:d.label:`${t.length} selected`;return a.jsxs(Ot,{open:i,onOpenChange:o,children:[a.jsx(Pt,{asChild:!0,children:a.jsxs(J,{variant:"outline",role:"combobox","aria-expanded":i,className:R("h-8 justify-between text-xs font-normal min-w-36",!c&&"text-muted-foreground",s),children:[a.jsx("span",{className:"truncate",children:c??n}),a.jsx(zi,{className:"ml-2 h-3.5 w-3.5 shrink-0 opacity-50"})]})}),a.jsxs(jt,{className:"w-56 p-0",align:"start",children:[a.jsxs(_s,{children:[a.jsx(Cu,{placeholder:"Search…",className:"h-8 text-xs"}),a.jsxs(Os,{children:[a.jsx(_u,{className:"text-xs py-4 text-center text-muted-foreground",children:"No results."}),a.jsx(Ka,{children:e.map(u=>a.jsxs(Qr,{value:u.label,onSelect:()=>l(u.value),className:"text-xs cursor-pointer",children:[a.jsx(Sr,{className:R("mr-2 h-3.5 w-3.5",t.includes(u.value)?"opacity-100":"opacity-0")}),u.label]},u.value))})]})]}),t.length>0&&a.jsx("div",{className:"border-t p-2",children:a.jsxs(J,{variant:"ghost",size:"sm",className:"h-7 w-full text-xs text-muted-foreground",onClick:()=>r([]),children:[a.jsx(at,{className:"h-3 w-3 mr-1"}),"Clear all"]})})]})]})}function Uo(e){const t=Math.floor(e/60),r=e%60;return t===0?`${r}m`:r===0?`${t}h`:`${t}h ${r}m`}function zw({active:e,payload:t,label:r}){var n;return!e||!(t!=null&&t.length)?null:a.jsxs("div",{className:"bg-popover border border-border rounded-lg px-3 py-2 text-xs shadow-lg",children:[a.jsx("p",{className:"font-medium mb-0.5",children:r}),a.jsx("p",{className:"text-muted-foreground",children:Uo(((n=t[0])==null?void 0:n.value)??0)})]})}function $X({workspaceId:e}){const[t,r]=p.useState(void 0),[n,s]=p.useState(void 0),[i,o]=p.useState([]),[l,c]=p.useState([]),{workspace:d}=Oe(),u=(d==null?void 0:d.slug)??"",{data:f=[],isLoading:m}=Mu(),{data:h=[],isLoading:g}=qi(),{data:x}=Ji(),v=t?de(t,"yyyy-MM-dd"):void 0,y=n?de(n,"yyyy-MM-dd"):void 0,j=p.useMemo(()=>new Map(h.map(O=>[O.id,O])),[h]),{data:b,isLoading:N}=EO({from:v,to:y,workspace_id:e},{enabled:!0}),k=(b==null?void 0:b.time_logs)??[],w=p.useMemo(()=>{let O=k;return i.length>0&&(O=O.filter(T=>i.includes(T.user_id))),l.length>0&&(O=O.filter(T=>T.project_id&&l.includes(T.project_id))),O},[k,i,l]),S=w.reduce((O,T)=>O+(T.duration_minutes??0),0),C=p.useMemo(()=>new Set(w.map(O=>O.user_id)).size,[w]),P=p.useMemo(()=>new Set(w.map(O=>O.project_id).filter(Boolean)).size,[w]),A=p.useMemo(()=>{const O=new Map;for(const T of w)O.set(T.user_id,(O.get(T.user_id)??0)+(T.duration_minutes??0));return Array.from(O.entries()).map(([T,z])=>{var B;return{name:((B=x==null?void 0:x.get(T))==null?void 0:B.name)??"Unknown",minutes:z}}).sort((T,z)=>z.minutes-T.minutes).slice(0,8)},[w,x]),M=p.useMemo(()=>{const O=new Map;for(const T of w){const z=T.project_id??"__none__";O.set(z,(O.get(z)??0)+(T.duration_minutes??0))}return Array.from(O.entries()).map(([T,z])=>{var B;return{name:T==="__none__"?"No project":((B=j.get(T))==null?void 0:B.name)??"Unknown",minutes:z}}).sort((T,z)=>z.minutes-T.minutes).slice(0,8)},[w,j]),_=p.useMemo(()=>f.map(O=>({value:O.id,label:[O.first_name,O.last_name].filter(Boolean).join(" ")||O.email})),[f]),E=p.useMemo(()=>h.map(O=>({value:O.id,label:O.name})),[h]);return a.jsxs("div",{className:"p-2 space-y-2",children:[a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl px-6 py-4 flex items-center gap-3",children:[a.jsx("div",{className:"h-9 w-9 rounded-lg bg-muted flex items-center justify-center shrink-0",children:a.jsx(Xa,{className:"h-4 w-4 text-muted-foreground"})}),a.jsxs("div",{children:[a.jsx("p",{className:"text-sm font-semibold",children:"Time Logs"}),a.jsx("p",{className:"text-xs text-muted-foreground mt-0.5",children:"Filter by date range, employees, and projects to analyze time across the organization."})]})]}),a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl px-4 py-3 flex items-center gap-3 flex-wrap",children:[a.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-muted-foreground shrink-0",children:[a.jsx($i,{className:"h-3.5 w-3.5"}),a.jsx("span",{className:"font-medium",children:"Date range"})]}),a.jsx(Qd,{value:t,onChange:r,placeholder:"From"}),a.jsx("span",{className:"text-xs text-muted-foreground",children:"→"}),a.jsx(Qd,{value:n,onChange:s,placeholder:"To"}),a.jsx("div",{className:"w-px h-5 bg-border mx-1 shrink-0"}),a.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-muted-foreground shrink-0",children:[a.jsx(Wa,{className:"h-3.5 w-3.5"}),a.jsx("span",{className:"font-medium",children:"Employees"})]}),m?a.jsx(oe,{className:"h-8 w-40"}):a.jsx(sp,{options:_,selected:i,onSelectionChange:o,placeholder:"All employees",className:"w-44"}),a.jsx("div",{className:"w-px h-5 bg-border mx-1 shrink-0"}),a.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-muted-foreground shrink-0",children:[a.jsx(Mr,{className:"h-3.5 w-3.5"}),a.jsx("span",{className:"font-medium",children:"Projects"})]}),g?a.jsx(oe,{className:"h-8 w-40"}):a.jsx(sp,{options:E,selected:l,onSelectionChange:c,placeholder:"All projects",className:"w-44"})]}),N?a.jsx("div",{className:"bg-white dark:bg-card border border-border rounded-xl overflow-hidden divide-y divide-border",children:[1,2,3,4].map(O=>a.jsxs("div",{className:"px-6 py-4 flex items-center gap-4",children:[a.jsx(oe,{className:"h-4 w-24"}),a.jsx(oe,{className:"h-4 w-32"}),a.jsx(oe,{className:"h-4 w-48"})]},O))}):w.length===0?a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl flex flex-col items-center justify-center py-16 text-center",children:[a.jsx("div",{className:"h-10 w-10 rounded-full bg-muted flex items-center justify-center mb-3",children:a.jsx(Hn,{className:"h-5 w-5 text-muted-foreground"})}),a.jsx("p",{className:"text-sm font-medium mb-1",children:"No time logs found"}),a.jsx("p",{className:"text-sm text-muted-foreground",children:v||y||i.length>0||l.length>0?"Try adjusting your filters.":"No time has been logged yet."})]}):a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"grid grid-cols-3 gap-2",children:[a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl px-5 py-4",children:[a.jsx("p",{className:"text-[11px] font-medium text-muted-foreground uppercase tracking-wide mb-1",children:"Total time"}),a.jsx("p",{className:"text-2xl font-bold tabular-nums",children:Uo(S)})]}),a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl px-5 py-4",children:[a.jsx("p",{className:"text-[11px] font-medium text-muted-foreground uppercase tracking-wide mb-1",children:"Employees"}),a.jsx("p",{className:"text-2xl font-bold tabular-nums",children:C})]}),a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl px-5 py-4",children:[a.jsx("p",{className:"text-[11px] font-medium text-muted-foreground uppercase tracking-wide mb-1",children:"Projects"}),a.jsx("p",{className:"text-2xl font-bold tabular-nums",children:P})]})]}),a.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[A.length>0&&a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl p-4",children:[a.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[a.jsx(Wa,{className:"h-3.5 w-3.5 text-muted-foreground"}),a.jsx("span",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide",children:"Time by employee"})]}),a.jsx(xd,{width:"100%",height:Math.max(80,A.length*36),children:a.jsxs(Xd,{data:A,layout:"vertical",margin:{left:0,right:40,top:0,bottom:0},children:[a.jsx(pl,{strokeDasharray:"3 3",horizontal:!1,stroke:"hsl(var(--border))"}),a.jsx(xl,{type:"number",tickFormatter:O=>Uo(O),tick:{fontSize:9,fill:"hsl(var(--muted-foreground))"},axisLine:!1,tickLine:!1}),a.jsx(vl,{type:"category",dataKey:"name",width:100,tick:{fontSize:11,fill:"hsl(var(--foreground))"},axisLine:!1,tickLine:!1}),a.jsx(Bd,{content:a.jsx(zw,{}),cursor:{fill:"hsl(var(--muted))"}}),a.jsx(gl,{dataKey:"minutes",fill:"#6366f1",radius:[0,4,4,0]})]})})]}),M.length>0&&a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl p-4",children:[a.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[a.jsx(Mr,{className:"h-3.5 w-3.5 text-muted-foreground"}),a.jsx("span",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide",children:"Time by project"})]}),a.jsx(xd,{width:"100%",height:Math.max(80,M.length*36),children:a.jsxs(Xd,{data:M,layout:"vertical",margin:{left:0,right:40,top:0,bottom:0},children:[a.jsx(pl,{strokeDasharray:"3 3",horizontal:!1,stroke:"hsl(var(--border))"}),a.jsx(xl,{type:"number",tickFormatter:O=>Uo(O),tick:{fontSize:9,fill:"hsl(var(--muted-foreground))"},axisLine:!1,tickLine:!1}),a.jsx(vl,{type:"category",dataKey:"name",width:100,tick:{fontSize:11,fill:"hsl(var(--foreground))"},axisLine:!1,tickLine:!1}),a.jsx(Bd,{content:a.jsx(zw,{}),cursor:{fill:"hsl(var(--muted))"}}),a.jsx(gl,{dataKey:"minutes",fill:"#6366f1",radius:[0,4,4,0]})]})})]})]}),a.jsx("div",{className:"bg-white dark:bg-card border border-border rounded-xl overflow-hidden",children:a.jsxs("table",{className:"w-full text-sm",children:[a.jsx("thead",{children:a.jsxs("tr",{className:"border-b border-border bg-muted/20",children:[a.jsx("th",{className:"text-left px-6 py-2.5 text-[11px] font-medium text-muted-foreground uppercase tracking-wide",children:"Employee"}),a.jsx("th",{className:"text-left px-6 py-2.5 text-[11px] font-medium text-muted-foreground uppercase tracking-wide",children:"Project"}),a.jsx("th",{className:"text-left px-6 py-2.5 text-[11px] font-medium text-muted-foreground uppercase tracking-wide",children:"Issue"}),a.jsx("th",{className:"text-left px-6 py-2.5 text-[11px] font-medium text-muted-foreground uppercase tracking-wide",children:"Date"}),a.jsx("th",{className:"text-left px-6 py-2.5 text-[11px] font-medium text-muted-foreground uppercase tracking-wide",children:"Description"}),a.jsx("th",{className:"text-right px-6 py-2.5 text-[11px] font-medium text-muted-foreground uppercase tracking-wide",children:"Duration"})]})}),a.jsx("tbody",{className:"divide-y divide-border",children:w.map(O=>{var B;const T=O.project_id?j.get(O.project_id):void 0,z=((B=x==null?void 0:x.get(O.user_id))==null?void 0:B.name)??O.user_id.slice(0,8)+"…";return a.jsxs("tr",{className:"hover:bg-muted/30 transition-colors",children:[a.jsx("td",{className:"px-6 py-3 text-xs font-medium",children:z}),a.jsx("td",{className:"px-6 py-3 text-xs text-muted-foreground",children:(T==null?void 0:T.name)??(O.project_id?"Unknown":"—")}),a.jsx("td",{className:"px-6 py-3",children:O.issue_identifier?a.jsx(Va,{to:`/${u}/projects/${T==null?void 0:T.identifier}/issues/${O.issue_id}`,className:"font-mono text-xs text-indigo-600 dark:text-indigo-400 hover:underline",children:O.issue_identifier}):a.jsxs("span",{className:"font-mono text-xs text-muted-foreground",children:[O.issue_id.slice(0,8),"…"]})}),a.jsx("td",{className:"px-6 py-3 text-xs text-muted-foreground tabular-nums whitespace-nowrap",children:O.logged_date?de(new Date(O.logged_date),"MMM d, yyyy"):"—"}),a.jsx("td",{className:"px-6 py-3 text-xs text-muted-foreground truncate max-w-xs",children:O.description??a.jsx("span",{className:"italic",children:"—"})}),a.jsx("td",{className:"px-6 py-3 text-xs text-right tabular-nums font-semibold",children:O.duration_minutes!=null?Uo(O.duration_minutes):"Running…"})]},O.id)})})]})})]})]})}function ci(e){const t=Math.floor(e/60),r=e%60;return t===0?`${r}m`:r===0?`${t}h`:`${t}h ${r}m`}function Lw({active:e,payload:t,label:r}){var n;return!e||!(t!=null&&t.length)?null:a.jsxs("div",{className:"bg-popover border border-border rounded-lg px-3 py-2 text-xs shadow-lg",children:[a.jsx("p",{className:"font-medium mb-0.5",children:r}),a.jsx("p",{className:"text-muted-foreground",children:ci(((n=t[0])==null?void 0:n.value)??0)})]})}function zX(){const{projectKey:e,workspace:t}=Ut(),[r,n]=p.useState(void 0),[s,i]=p.useState(void 0),[o,l]=p.useState([]),{data:c}=ka(e??""),{data:d}=Ji(),{data:u=[]}=Mu(),f=r?de(r,"yyyy-MM-dd"):void 0,m=s?de(s,"yyyy-MM-dd"):void 0,{data:h,isLoading:g}=EO({project_id:c==null?void 0:c.id,from:f,to:m}),x=(h==null?void 0:h.time_logs)??[],v=p.useMemo(()=>o.length>0?x.filter(C=>o.includes(C.user_id)):x,[x,o]),y=p.useMemo(()=>v.reduce((C,P)=>C+(P.duration_minutes??0),0),[v]),j=p.useMemo(()=>{const C=new Map;for(const P of v){C.has(P.user_id)||C.set(P.user_id,{logs:[],totalMinutes:0});const A=C.get(P.user_id);A.logs.push(P),A.totalMinutes+=P.duration_minutes??0}return C},[v]),b=p.useMemo(()=>{const C=new Map;for(const P of v){C.has(P.issue_id)||C.set(P.issue_id,{logs:[],totalMinutes:0});const A=C.get(P.issue_id);A.logs.push(P),A.totalMinutes+=P.duration_minutes??0}return C},[v]),N=Array.from(j.entries()).sort((C,P)=>P[1].totalMinutes-C[1].totalMinutes).slice(0,8).map(([C,{totalMinutes:P}])=>{var A;return{name:((A=d==null?void 0:d.get(C))==null?void 0:A.name)??"Unknown",minutes:P}}),k=Array.from(b.entries()).sort((C,P)=>P[1].totalMinutes-C[1].totalMinutes).slice(0,8).map(([C,{totalMinutes:P,logs:A}])=>{var M;return{name:((M=A[0])==null?void 0:M.issue_identifier)??C.slice(0,8),minutes:P}}),w=p.useMemo(()=>u.map(C=>({value:C.id,label:[C.first_name,C.last_name].filter(Boolean).join(" ")||C.email})),[u]),S=v.length>0;return a.jsxs("div",{className:"p-2 space-y-2",children:[a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl px-4 py-3 flex items-center gap-3 flex-wrap",children:[a.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-muted-foreground shrink-0",children:[a.jsx($i,{className:"h-3.5 w-3.5"}),a.jsx("span",{className:"font-medium",children:"Date range"})]}),a.jsx(Qd,{value:r,onChange:n,placeholder:"From"}),a.jsx("span",{className:"text-xs text-muted-foreground",children:"→"}),a.jsx(Qd,{value:s,onChange:i,placeholder:"To"}),a.jsx("div",{className:"w-px h-4 bg-border"}),a.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-muted-foreground shrink-0",children:[a.jsx(Wa,{className:"h-3.5 w-3.5"}),a.jsx("span",{className:"font-medium",children:"Employee"})]}),a.jsx(sp,{options:w,selected:o,onSelectionChange:l,placeholder:"All employees",className:"w-44"})]}),a.jsx("div",{className:"grid grid-cols-3 gap-2",children:[{label:"Total logged",value:y>0?ci(y):"—",icon:Hn},{label:"Contributors",value:j.size>0?String(j.size):"—",icon:Wa},{label:"Issues tracked",value:b.size>0?String(b.size):"—",icon:ca}].map(({label:C,value:P,icon:A})=>a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl px-5 py-4",children:[a.jsxs("div",{className:"flex items-center gap-1.5 mb-2",children:[a.jsx(A,{className:"h-3.5 w-3.5 text-muted-foreground"}),a.jsx("p",{className:"text-[11px] text-muted-foreground uppercase tracking-wider font-medium",children:C})]}),a.jsx("p",{className:"text-2xl font-bold tabular-nums",children:P})]},C))}),g?a.jsx("div",{className:"bg-white dark:bg-card border border-border rounded-xl overflow-hidden",children:a.jsx("div",{className:"divide-y divide-border",children:[1,2,3].map(C=>a.jsxs("div",{className:"flex items-center gap-4 px-6 py-4",children:[a.jsx(oe,{className:"h-7 w-7 rounded-full"}),a.jsx(oe,{className:"h-4 w-40"}),a.jsx("div",{className:"flex-1"}),a.jsx(oe,{className:"h-4 w-20"})]},C))})}):c!=null&&c.id?S?a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[j.size>0&&a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl p-4",children:[a.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[a.jsx(Wa,{className:"h-3.5 w-3.5 text-muted-foreground"}),a.jsx("span",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide",children:"Time by user"})]}),a.jsx(xd,{width:"100%",height:Math.max(100,N.length*36),children:a.jsxs(Xd,{data:N,layout:"vertical",margin:{left:0,right:32,top:0,bottom:0},children:[a.jsx(pl,{strokeDasharray:"3 3",horizontal:!1,stroke:"hsl(var(--border))"}),a.jsx(xl,{type:"number",tickFormatter:C=>ci(C),tick:{fontSize:9,fill:"hsl(var(--muted-foreground))"},axisLine:!1,tickLine:!1}),a.jsx(vl,{type:"category",dataKey:"name",width:88,tick:{fontSize:11,fill:"hsl(var(--foreground))"},axisLine:!1,tickLine:!1}),a.jsx(Bd,{content:a.jsx(Lw,{}),cursor:{fill:"hsl(var(--muted))"}}),a.jsx(gl,{dataKey:"minutes",fill:"#6366f1",radius:[0,4,4,0]})]})})]}),b.size>0&&a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl p-4",children:[a.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[a.jsx(ca,{className:"h-3.5 w-3.5 text-muted-foreground"}),a.jsx("span",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide",children:"Time by issue"})]}),a.jsx(xd,{width:"100%",height:Math.max(100,k.length*36),children:a.jsxs(Xd,{data:k,layout:"vertical",margin:{left:0,right:32,top:0,bottom:0},children:[a.jsx(pl,{strokeDasharray:"3 3",horizontal:!1,stroke:"hsl(var(--border))"}),a.jsx(xl,{type:"number",tickFormatter:C=>ci(C),tick:{fontSize:9,fill:"hsl(var(--muted-foreground))"},axisLine:!1,tickLine:!1}),a.jsx(vl,{type:"category",dataKey:"name",width:64,tick:{fontSize:11,fill:"hsl(var(--foreground))",fontFamily:"monospace"},axisLine:!1,tickLine:!1}),a.jsx(Bd,{content:a.jsx(Lw,{}),cursor:{fill:"hsl(var(--muted))"}}),a.jsx(gl,{dataKey:"minutes",fill:"#818cf8",radius:[0,4,4,0]})]})})]})]}),a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl overflow-hidden",children:[a.jsxs("div",{className:"flex items-center gap-2 px-6 py-3 border-b border-border",children:[a.jsx(Wa,{className:"h-3.5 w-3.5 text-muted-foreground"}),a.jsx("span",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide",children:"Time by user"})]}),a.jsxs("table",{className:"w-full text-sm",children:[a.jsx("thead",{children:a.jsxs("tr",{className:"border-b border-border bg-muted/20",children:[a.jsx("th",{className:"text-left px-6 py-2 text-[11px] font-medium text-muted-foreground uppercase tracking-wide",children:"User"}),a.jsx("th",{className:"text-right px-6 py-2 text-[11px] font-medium text-muted-foreground uppercase tracking-wide",children:"Issues"}),a.jsx("th",{className:"text-right px-6 py-2 text-[11px] font-medium text-muted-foreground uppercase tracking-wide",children:"Total"})]})}),a.jsx("tbody",{className:"divide-y divide-border",children:Array.from(j.entries()).sort((C,P)=>P[1].totalMinutes-C[1].totalMinutes).map(([C,{logs:P,totalMinutes:A}])=>{const M=d==null?void 0:d.get(C),_=new Set(P.map(E=>E.issue_id)).size;return a.jsxs("tr",{className:"hover:bg-muted/30 transition-colors",children:[a.jsx("td",{className:"px-6 py-3 text-sm font-medium",children:(M==null?void 0:M.name)??C.slice(0,8)+"…"}),a.jsx("td",{className:"px-6 py-3 text-xs text-right text-muted-foreground tabular-nums",children:_}),a.jsx("td",{className:"px-6 py-3 text-sm text-right tabular-nums font-semibold",children:ci(A)})]},C)})})]})]}),a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl overflow-hidden",children:[a.jsxs("div",{className:"flex items-center gap-2 px-6 py-3 border-b border-border",children:[a.jsx(ca,{className:"h-3.5 w-3.5 text-muted-foreground"}),a.jsx("span",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide",children:"Time by issue"})]}),a.jsxs("table",{className:"w-full text-sm",children:[a.jsx("thead",{children:a.jsxs("tr",{className:"border-b border-border bg-muted/20",children:[a.jsx("th",{className:"text-left px-6 py-2 text-[11px] font-medium text-muted-foreground uppercase tracking-wide",children:"Issue"}),a.jsx("th",{className:"text-left px-6 py-2 text-[11px] font-medium text-muted-foreground uppercase tracking-wide",children:"Last logged"}),a.jsx("th",{className:"text-right px-6 py-2 text-[11px] font-medium text-muted-foreground uppercase tracking-wide",children:"Contributors"}),a.jsx("th",{className:"text-right px-6 py-2 text-[11px] font-medium text-muted-foreground uppercase tracking-wide",children:"Total"})]})}),a.jsx("tbody",{className:"divide-y divide-border",children:Array.from(b.entries()).sort((C,P)=>P[1].totalMinutes-C[1].totalMinutes).map(([C,{logs:P,totalMinutes:A}])=>{var T,z;const M=new Set(P.map(B=>B.user_id)).size,_=P.reduce((B,Q)=>Q.logged_date&&(!B||new Date(Q.logged_date)>new Date(B))?Q.logged_date:B,null),E=(T=P[0])==null?void 0:T.issue_identifier,O=(z=P[0])==null?void 0:z.issue_title;return a.jsxs("tr",{className:"hover:bg-muted/30 transition-colors",children:[a.jsx("td",{className:"px-6 py-3",children:a.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[E?a.jsx(Va,{to:`/${t}/projects/${e}/issues/${C}`,className:"font-mono text-xs text-indigo-600 dark:text-indigo-400 hover:underline shrink-0",children:E}):a.jsxs("span",{className:"font-mono text-xs text-muted-foreground",children:[C.slice(0,8),"…"]}),O&&a.jsx("span",{className:"text-xs text-muted-foreground truncate",children:O})]})}),a.jsx("td",{className:"px-6 py-3 text-xs text-muted-foreground",children:_?de(new Date(_),"MMM d, yyyy"):"—"}),a.jsx("td",{className:"px-6 py-3 text-xs text-right text-muted-foreground tabular-nums",children:M}),a.jsx("td",{className:"px-6 py-3 text-sm text-right tabular-nums font-semibold",children:ci(A)})]},C)})})]})]})]}):a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl flex flex-col items-center justify-center py-16 text-center",children:[a.jsx("div",{className:"h-10 w-10 rounded-full bg-muted flex items-center justify-center mb-3",children:a.jsx(Xa,{className:"h-5 w-5 text-muted-foreground"})}),a.jsx("p",{className:"text-sm font-medium mb-1",children:"No time logged"}),a.jsx("p",{className:"text-sm text-muted-foreground",children:f||m||o.length>0?"No entries match the current filters.":"Start logging time on issues to see reports here."})]}):a.jsx("div",{className:"bg-white dark:bg-card border border-border rounded-xl flex items-center justify-center py-12",children:a.jsx("p",{className:"text-sm text-muted-foreground",children:"Loading project…"})})]})}const LX={share_enabled:{icon:Gm,color:"text-green-600",bg:"bg-green-50 dark:bg-green-950/40",label:()=>"Enabled public link"},share_revoked:{icon:gE,color:"text-red-500",bg:"bg-red-50 dark:bg-red-950/40",label:()=>"Revoked public link"},member_added:{icon:Wi,color:"text-blue-500",bg:"bg-blue-50 dark:bg-blue-950/40",label:(e,t)=>{var i,o,l;const r=(i=e==null?void 0:e.user_id)==null?void 0:i.to,n=(o=e==null?void 0:e.role)==null?void 0:o.to,s=r?((l=t.get(r))==null?void 0:l.name)??r:"a user";return n?`Added ${s} as ${n}`:`Added ${s}`}},member_removed:{icon:f1,color:"text-red-500",bg:"bg-red-50 dark:bg-red-950/40",label:(e,t)=>{var s,i;const r=(s=e==null?void 0:e.user_id)==null?void 0:s.from;return`Removed ${r?((i=t.get(r))==null?void 0:i.name)??r:"a user"}`}},team_added:{icon:Wa,color:"text-indigo-500",bg:"bg-indigo-50 dark:bg-indigo-950/40",label:(e,t,r)=>{var i;const n=(i=e==null?void 0:e.team_id)==null?void 0:i.to;return`Added team ${n?r.get(n)??n:"a team"}`}},team_removed:{icon:$E,color:"text-orange-500",bg:"bg-orange-50 dark:bg-orange-950/40",label:(e,t,r)=>{var i;const n=(i=e==null?void 0:e.team_id)==null?void 0:i.from;return`Removed team ${n?r.get(n)??n:"a team"}`}},updated:{icon:Es,color:"text-amber-500",bg:"bg-amber-50 dark:bg-amber-950/40",label:()=>"Updated project"},created:{icon:nt,color:"text-emerald-600",bg:"bg-emerald-50 dark:bg-emerald-950/40",label:()=>"Created project"}},FX={icon:iu,color:"text-zinc-500",bg:"bg-zinc-100 dark:bg-zinc-800",label:()=>"Activity"};function BX({activity:e,userMap:t,teamMap:r}){const n=LX[e.action]??FX,s=n.icon,i=t.get(e.actor_id),o=(i==null?void 0:i.name)??"System",l=(i==null?void 0:i.initials)??"S",c=n.label(e.changes,t,r),d=(()=>{var u,f;if(e.action==="share_enabled"){const m=(f=(u=e.changes)==null?void 0:u.share_url)==null?void 0:f.to;return m?a.jsx("span",{className:"text-xs text-muted-foreground/60 font-mono break-all",children:m}):null}return null})();return a.jsxs("div",{className:"flex items-center gap-4 px-6 py-4 hover:bg-muted/30 transition-colors",children:[a.jsx("div",{className:R("h-8 w-8 rounded-full flex items-center justify-center shrink-0",n.bg),children:a.jsx(s,{className:R("h-4 w-4",n.color)})}),a.jsxs("div",{className:"flex-1 min-w-0",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(Ft,{className:"h-5 w-5 shrink-0",children:a.jsx(Bt,{className:"text-[10px] font-medium",children:l})}),a.jsx("span",{className:"text-sm font-medium truncate",children:o}),a.jsx("span",{className:"text-xs text-muted-foreground shrink-0",children:c})]}),d&&a.jsx("div",{className:"mt-0.5 pl-7",children:d})]}),a.jsx("time",{className:"text-xs text-muted-foreground shrink-0",children:de(new Date(e.created_at),"MMM d, yyyy · h:mm a")})]})}function WX(){const{projectKey:e}=Ut(),{workspace:t}=Oe(),{data:r}=ka(e??""),{data:n,isLoading:s}=CD((r==null?void 0:r.id)??""),{data:i=new Map}=Ji(),{data:o=[]}=hu((t==null?void 0:t.id)??""),l=new Map(o.map(d=>[d.id,d.name])),c=(n==null?void 0:n.length)??0;return a.jsx("div",{className:"p-2",children:a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl overflow-hidden",children:[a.jsxs("div",{className:"flex items-center justify-between px-6 py-3 border-b border-border",children:[a.jsxs("div",{children:[a.jsx("h2",{className:"text-sm font-semibold",children:"Activity"}),a.jsx("p",{className:"text-xs text-muted-foreground mt-0.5",children:"A log of share access changes, member updates, and project edits."})]}),!s&&c>0&&a.jsxs("p",{className:"text-xs text-muted-foreground shrink-0",children:[c," event",c!==1?"s":""]})]}),a.jsx("div",{className:"px-6 py-2 border-b border-border bg-muted/20",children:a.jsx("span",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide",children:"Log"})}),s?a.jsx("div",{className:"divide-y divide-border",children:[1,2,3].map(d=>a.jsxs("div",{className:"flex items-center gap-4 px-6 py-4",children:[a.jsx(oe,{className:"h-8 w-8 rounded-full shrink-0"}),a.jsxs("div",{className:"flex-1 space-y-1.5",children:[a.jsx(oe,{className:"h-4 w-48"}),a.jsx(oe,{className:"h-3 w-64"})]}),a.jsx(oe,{className:"h-3 w-32 shrink-0"})]},d))}):!n||n.length===0?a.jsxs("div",{className:"flex flex-col items-center justify-center py-16 text-center",children:[a.jsx(iu,{className:"h-8 w-8 text-muted-foreground/20 mb-3"}),a.jsx("p",{className:"text-sm font-medium text-muted-foreground",children:"No activity yet"}),a.jsx("p",{className:"text-xs text-muted-foreground/60 mt-1",children:"Actions like sharing the project or adding members will appear here."})]}):a.jsx("div",{className:"divide-y divide-border",children:n.map(d=>a.jsx(BX,{activity:d,userMap:i,teamMap:l},d.id))})]})})}const UX=[{key:"mon",label:"Monday",short:"Mon"},{key:"tue",label:"Tuesday",short:"Tue"},{key:"wed",label:"Wednesday",short:"Wed"},{key:"thu",label:"Thursday",short:"Thu"},{key:"fri",label:"Friday",short:"Fri"},{key:"sat",label:"Saturday",short:"Sat"},{key:"sun",label:"Sunday",short:"Sun"}],qX={mon:!0,tue:!0,wed:!0,thu:!0,fri:!0,sat:!1,sun:!1};function HX({open:e,onClose:t,holiday:r}){const[n,s]=p.useState((r==null?void 0:r.name)??""),[i,o]=p.useState(r!=null&&r.date?r.date.split("T")[0]:""),[l,c]=p.useState((r==null?void 0:r.recurring)??!1);p.useEffect(()=>{e&&(s((r==null?void 0:r.name)??""),o(r!=null&&r.date?r.date.split("T")[0]:""),c((r==null?void 0:r.recurring)??!1))},[e,r==null?void 0:r.id]);const d=G3(),u=V3(),f=d.isPending||u.isPending,m=h=>{if(h.preventDefault(),!n.trim()){L.error("Holiday name is required");return}if(!i){L.error("Date is required");return}r?u.mutate({id:r.id,name:n.trim(),date:i,recurring:l},{onSuccess:()=>{L.success("Holiday updated"),t()},onError:()=>L.error("Failed to update holiday")}):d.mutate({name:n.trim(),date:i,recurring:l},{onSuccess:()=>{L.success("Holiday added"),t()},onError:()=>L.error("Failed to add holiday")})};return a.jsx(Hi,{open:e,onOpenChange:h=>!h&&t(),children:a.jsxs(Ks,{className:"sm:max-w-md",children:[a.jsxs(Ki,{children:[a.jsx(Yi,{children:r?"Edit holiday":"Add holiday"}),a.jsx(ku,{children:"Holidays are excluded from business day calculations across the app."})]}),a.jsxs("form",{onSubmit:m,className:"space-y-4 pt-1",children:[a.jsxs("div",{className:"space-y-1.5",children:[a.jsx("label",{className:"text-xs font-medium text-muted-foreground",children:"Name"}),a.jsx(_e,{value:n,onChange:h=>s(h.target.value),placeholder:"e.g. New Year's Day",className:"h-9",autoFocus:!0,required:!0})]}),a.jsxs("div",{className:"space-y-1.5",children:[a.jsx("label",{className:"text-xs font-medium text-muted-foreground",children:"Date"}),a.jsx(_e,{type:"date",value:i,onChange:h=>o(h.target.value),className:"h-9",required:!0})]}),a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx(to,{checked:l,onCheckedChange:h=>c(h)}),a.jsx("span",{className:"text-sm text-muted-foreground",children:"Recurring annually (applies every year on the same date)"})]}),a.jsxs("div",{className:"flex justify-end gap-2 pt-1",children:[a.jsx(J,{type:"button",variant:"outline",size:"sm",onClick:t,children:"Cancel"}),a.jsx(J,{type:"submit",size:"sm",disabled:f,children:f?r?"Saving…":"Adding…":r?"Save changes":"Add holiday"})]})]})]})})}function KX(){const{data:e,isLoading:t}=Gp(),r=Y3(),n=(e==null?void 0:e.working_days)??qX,s=(i,o)=>{const l={...n,[i]:o};r.mutate({working_days:l},{onSuccess:()=>L.success("Working days updated"),onError:()=>L.error("Failed to update working days")})};return a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"px-6 py-2 border-b border-border bg-muted/20",children:a.jsx("span",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide",children:"Working days"})}),a.jsx("div",{className:"px-6 py-2 border-b border-border bg-muted/10",children:a.jsx("p",{className:"text-xs text-muted-foreground",children:"Configure which days count as business days. This affects duration calculations across the app."})}),t?a.jsx("div",{className:"px-6 py-4 space-y-3",children:[1,2,3,4,5,6,7].map(i=>a.jsx(oe,{className:"h-8 w-full"},i))}):UX.map(({key:i,label:o})=>{const l=n[i];return a.jsxs("div",{className:"grid grid-cols-[180px_1fr_auto] items-center gap-4 px-6 py-3.5 border-b border-border",children:[a.jsx("span",{className:"text-sm text-muted-foreground",children:o}),a.jsx("span",{className:R("text-xs font-medium",l?"text-foreground":"text-muted-foreground/60"),children:l?"Working day":"Not a working day"}),a.jsx(to,{checked:l,onCheckedChange:c=>s(i,c),disabled:r.isPending})]},i)})]})}function YX(){const[e,t]=p.useState(new Date().getFullYear()),[r,n]=p.useState(!1),[s,i]=p.useState(null),[o,l]=p.useState(null),{data:c=[],isLoading:d}=Vp(e),u=X3(),f=()=>{o&&u.mutate(o.id,{onSuccess:()=>{L.success("Holiday removed"),l(null)},onError:()=>L.error("Failed to remove holiday")})},m=[...c].sort((h,g)=>{const x=new Date(h.date).getMonth()*100+new Date(h.date).getDate(),v=new Date(g.date).getMonth()*100+new Date(g.date).getDate();return x-v});return a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"flex items-center justify-between px-6 py-2 border-b border-border bg-muted/20",children:[a.jsx("span",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide",children:"Holidays"}),a.jsxs(J,{size:"sm",className:"h-7 text-xs gap-1.5",onClick:()=>{i(null),n(!0)},children:[a.jsx(nt,{className:"h-3.5 w-3.5"}),"Add holiday"]})]}),a.jsxs("div",{className:"flex items-center gap-1 px-6 py-3 border-b border-border bg-muted/10",children:[a.jsxs("p",{className:"text-xs text-muted-foreground flex-1",children:["Showing holidays for"," ",a.jsx("span",{className:"font-medium text-foreground",children:e}),". Recurring holidays appear every year."]}),a.jsxs("div",{className:"flex items-center gap-1",children:[a.jsx("button",{onClick:()=>t(h=>h-1),className:"h-6 w-6 flex items-center justify-center rounded hover:bg-accent text-muted-foreground hover:text-foreground transition-colors",children:a.jsx(ou,{className:"h-3.5 w-3.5"})}),a.jsx("span",{className:"text-xs font-medium tabular-nums w-10 text-center",children:e}),a.jsx("button",{onClick:()=>t(h=>h+1),className:"h-6 w-6 flex items-center justify-center rounded hover:bg-accent text-muted-foreground hover:text-foreground transition-colors",children:a.jsx(jn,{className:"h-3.5 w-3.5"})})]})]}),a.jsxs("div",{className:"grid grid-cols-[160px_1fr_120px_40px] gap-4 px-6 py-2 border-b border-border bg-muted/20",children:[a.jsx("span",{className:"text-[11px] font-semibold text-muted-foreground uppercase tracking-wide",children:"Date"}),a.jsx("span",{className:"text-[11px] font-semibold text-muted-foreground uppercase tracking-wide",children:"Name"}),a.jsx("span",{className:"text-[11px] font-semibold text-muted-foreground uppercase tracking-wide",children:"Recurrence"}),a.jsx("span",{})]}),d?a.jsx("div",{className:"px-6 py-4 space-y-3",children:[1,2,3].map(h=>a.jsx(oe,{className:"h-8 w-full"},h))}):m.length===0?a.jsxs("div",{className:"flex flex-col items-center justify-center py-12 px-6 text-center",children:[a.jsx(Zj,{className:"h-8 w-8 text-muted-foreground/40 mb-3"}),a.jsxs("p",{className:"text-sm font-medium mb-1",children:["No holidays for ",e]}),a.jsx("p",{className:"text-xs text-muted-foreground mb-3",children:"Add a holiday or use the year navigation to view other years."}),a.jsxs(J,{size:"sm",variant:"outline",className:"h-7 text-xs gap-1.5",onClick:()=>{i(null),n(!0)},children:[a.jsx(nt,{className:"h-3.5 w-3.5"}),"Add holiday"]})]}):m.map(h=>{const g=new Date(h.date);return a.jsxs("div",{className:"grid grid-cols-[160px_1fr_120px_40px] gap-4 items-center px-6 py-3.5 border-b border-border hover:bg-muted/20 transition-colors",children:[a.jsx("span",{className:"text-sm tabular-nums text-muted-foreground",children:de(g,"MMM d, yyyy")}),a.jsx("span",{className:"text-sm font-medium truncate",children:h.name}),a.jsx("span",{className:"text-sm",children:h.recurring?a.jsxs("span",{className:"inline-flex items-center gap-1 text-xs text-muted-foreground",children:[a.jsx(Go,{className:"h-3 w-3"}),"Every year"]}):a.jsx("span",{className:"text-xs text-muted-foreground/60",children:"One-time"})}),a.jsx("div",{className:"flex justify-end",children:a.jsxs(Nn,{children:[a.jsx(kn,{asChild:!0,children:a.jsx("button",{className:"h-6 w-6 flex items-center justify-center rounded text-muted-foreground hover:text-foreground hover:bg-accent transition-colors",children:a.jsx(Li,{className:"h-3.5 w-3.5"})})}),a.jsxs(sn,{align:"end",className:"w-36",children:[a.jsxs(wt,{className:"gap-2 cursor-pointer",onClick:()=>{i(h),n(!0)},children:[a.jsx(Es,{className:"h-3.5 w-3.5"}),"Edit"]}),a.jsxs(wt,{className:"gap-2 cursor-pointer text-destructive focus:text-destructive",onClick:()=>l(h),children:[a.jsx(an,{className:"h-3.5 w-3.5"}),"Remove"]})]})]})})]},h.id)}),a.jsx(HX,{open:r,onClose:()=>{n(!1),i(null)},holiday:s}),a.jsx(Lu,{open:!!o,onOpenChange:h=>!h&&l(null),children:a.jsxs(Ll,{children:[a.jsxs(Fl,{children:[a.jsxs(Wl,{children:['Remove "',o==null?void 0:o.name,'"?']}),a.jsx(Ul,{children:"This holiday will no longer be excluded from business day calculations."})]}),a.jsxs(Bl,{children:[a.jsx(Hl,{children:"Cancel"}),a.jsx(ql,{onClick:f,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"Remove"})]})]})})]})}function GX(){const[e,t]=p.useState("working-days"),r=[{id:"working-days",label:"Working Days"},{id:"holidays",label:"Holidays"}];return a.jsx("div",{className:"p-2 h-full",children:a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl overflow-hidden flex flex-col h-full",children:[a.jsx("div",{className:"flex items-center justify-between px-6 py-4 border-b border-border shrink-0",children:a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx(Zj,{className:"h-5 w-5 text-muted-foreground"}),a.jsxs("div",{children:[a.jsx("h1",{className:"text-base font-semibold",children:"Organization Settings"}),a.jsx("p",{className:"text-xs text-muted-foreground",children:"Global configuration that applies across the entire Meridian deployment."})]})]})}),a.jsx("div",{className:"flex border-b border-border shrink-0 px-6",children:r.map(n=>a.jsx("button",{onClick:()=>t(n.id),className:R("px-1 py-3 mr-6 text-sm font-medium border-b-2 transition-colors",e===n.id?"border-foreground text-foreground":"border-transparent text-muted-foreground hover:text-foreground"),children:n.label},n.id))}),a.jsxs("div",{className:"flex-1 overflow-y-auto",children:[e==="working-days"&&a.jsx(KX,{}),e==="holidays"&&a.jsx(YX,{})]})]})})}const Fm=e=>{let{transform:t}=e;return{...t,y:0}};function Yx(){const[e,t]=p.useState({x:0,y:0,elementX:0,elementY:0,elementPositionX:0,elementPositionY:0}),r=p.useRef(null);return p.useLayoutEffect(()=>{const n=s=>{var o;let i={x:s.pageX,y:s.pageY};if(((o=r.current)==null?void 0:o.nodeType)===Node.ELEMENT_NODE){const{left:l,top:c}=r.current.getBoundingClientRect(),d=l+window.scrollX,u=c+window.scrollY,f=s.pageX-d,m=s.pageY-u;i.elementX=f,i.elementY=m,i.elementPositionX=d,i.elementPositionY=u}t(l=>({...l,...i}))};return document.addEventListener("mousemove",n),()=>{document.removeEventListener("mousemove",n)}},[]),[e,r]}function VX(e,t=500){const[r,n]=p.useState(e),s=p.useRef(null);return p.useEffect(()=>{const i=Date.now();if(s.current&&i>=s.current+t)s.current=i,n(e);else{const o=window.setTimeout(()=>{s.current=i,n(e)},t);return()=>window.clearTimeout(o)}},[e,t]),r}function XX(){const[e,t]=p.useState({x:null,y:null}),r=p.useCallback((...n)=>{if(typeof n[0]=="object")window.scrollTo(n[0]);else if(typeof n[0]=="number"&&typeof n[1]=="number")window.scrollTo(n[0],n[1]);else throw new Error("Invalid arguments passed to scrollTo. See here for more info. https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollTo")},[]);return p.useLayoutEffect(()=>{const n=()=>{t({x:window.scrollX,y:window.scrollY})};return n(),window.addEventListener("scroll",n),()=>{window.removeEventListener("scroll",n)}},[]),[e,r]}const Rn={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1};function DO(e){return"init"in e}function ip(e){return!!e.write}function Fw(e){return"v"in e||"e"in e}function Zd(e){if("e"in e)throw e.e;if((Rn?"production":void 0)!=="production"&&!("v"in e))throw new Error("[Bug] atom state is not initialized");return e.v}function Jd(e){return typeof(e==null?void 0:e.then)=="function"}function TO(e,t,r){if(!r.p.has(e)){r.p.add(e);const n=()=>r.p.delete(e);t.then(n,n)}}function IO(e,t,r){var n;const s=new Set;for(const i of((n=r.get(e))==null?void 0:n.t)||[])s.add(i);for(const i of t.p)s.add(i);return s}const QX=(e,t,...r)=>t.read(...r),ZX=(e,t,...r)=>t.write(...r),JX=(e,t)=>{var r;return(r=t.INTERNAL_onInit)==null?void 0:r.call(t,e)},eQ=(e,t,r)=>{var n;return(n=t.onMount)==null?void 0:n.call(t,r)},tQ=(e,t)=>{var r;const n=Dt(e),s=n[0],i=n[6],o=n[9];if((Rn?"production":void 0)!=="production"&&!t)throw new Error("Atom is undefined or null");let l=s.get(t);return l||(l={d:new Map,p:new Set,n:0},s.set(t,l),(r=i.i)==null||r.call(i,t),o==null||o(e,t)),l},rQ=e=>{const t=Dt(e),r=t[1],n=t[3],s=t[4],i=t[5],o=t[6],l=t[13],c=[],d=u=>{try{u()}catch(f){c.push(f)}};do{o.f&&d(o.f);const u=new Set,f=u.add.bind(u);n.forEach(m=>{var h;return(h=r.get(m))==null?void 0:h.l.forEach(f)}),n.clear(),i.forEach(f),i.clear(),s.forEach(f),s.clear(),u.forEach(d),n.size&&l(e)}while(n.size||i.size||s.size);if(c.length)throw new AggregateError(c)},nQ=e=>{const t=Dt(e),r=t[1],n=t[2],s=t[3],i=t[11],o=t[14],l=t[17],c=[],d=new WeakSet,u=new WeakSet,f=Array.from(s);for(;f.length;){const m=f[f.length-1],h=i(e,m);if(u.has(m)){f.pop();continue}if(d.has(m)){if(n.get(m)===h.n)c.push([m,h]);else if((Rn?"production":void 0)!=="production"&&n.has(m))throw new Error("[Bug] invalidated atom exists");u.add(m),f.pop();continue}d.add(m);for(const g of IO(m,h,r))d.has(g)||f.push(g)}for(let m=c.length-1;m>=0;--m){const[h,g]=c[m];let x=!1;for(const v of g.d.keys())if(v!==h&&s.has(v)){x=!0;break}x&&(o(e,h),l(e,h)),n.delete(h)}},op=new WeakSet,aQ=(e,t)=>{var r,n;const s=Dt(e),i=s[1],o=s[2],l=s[3],c=s[6],d=s[7],u=s[11],f=s[12],m=s[13],h=s[14],g=s[16],x=s[17],v=s[20],y=s[26],j=u(e,t);if(Fw(j)){if(i.has(t)&&o.get(t)!==j.n)return j;let E=!1;for(const[O,T]of j.d)if(h(e,O).n!==T){E=!0;break}if(!E)return j}let b=!0;const N=new Set(j.d.keys()),k=new Map,w=()=>{for(const E of N)k.has(E)||j.d.delete(E)},S=()=>{if(i.has(t)){const E=!l.size;x(e,t),E&&(m(e),f(e))}},C=E=>{var O;if(E===t){const z=u(e,E);if(!Fw(z))if(DO(E))v(e,E,E.init);else throw new Error("no atom init");return Zd(z)}const T=h(e,E);try{return Zd(T)}finally{k.set(E,T.n),j.d.set(E,T.n),Jd(j.v)&&TO(t,j.v,T),i.has(t)&&((O=i.get(E))==null||O.t.add(t)),b||S()}};let P,A;const M={get signal(){return P||(P=new AbortController),P.signal},get setSelf(){return(Rn?"production":void 0)!=="production"&&console.warn("[DEPRECATED] setSelf is deprecated and will be removed in v3."),(Rn?"production":void 0)!=="production"&&!ip(t)&&console.warn("setSelf function cannot be used with read-only atom"),!A&&ip(t)&&(A=(...E)=>{if((Rn?"production":void 0)!=="production"&&b&&console.warn("setSelf function cannot be called in sync"),!b)try{return g(e,t,...E)}finally{m(e),f(e)}}),A}},_=j.n;try{(Rn?"production":void 0)!=="production"&&op.delete(e);const E=d(e,t,C,M);if((Rn?"production":void 0)!=="production"&&op.has(e)&&console.warn("Detected store mutation during atom read. This is not supported."),v(e,t,E),Jd(E)){y(e,E,()=>P==null?void 0:P.abort());const O=()=>{w(),S()};E.then(O,O)}else w();return(r=c.r)==null||r.call(c,t),j}catch(E){return delete j.v,j.e=E,++j.n,j}finally{b=!1,_!==j.n&&o.get(t)===_&&(o.set(t,j.n),l.add(t),(n=c.c)==null||n.call(c,t))}},sQ=(e,t)=>{const r=Dt(e),n=r[1],s=r[2],i=r[11],o=[t];for(;o.length;){const l=o.pop(),c=i(e,l);for(const d of IO(l,c,n)){const u=i(e,d);s.get(d)!==u.n&&(s.set(d,u.n),o.push(d))}}},iQ=(e,t,...r)=>{const n=Dt(e),s=n[3],i=n[6],o=n[8],l=n[11],c=n[12],d=n[13],u=n[14],f=n[15],m=n[16],h=n[17],g=n[20];let x=!0;const v=j=>Zd(u(e,j)),y=(j,...b)=>{var N;const k=l(e,j);try{if(j===t){if(!DO(j))throw new Error("atom not writable");(Rn?"production":void 0)!=="production"&&op.add(e);const w=k.n,S=b[0];g(e,j,S),h(e,j),w!==k.n&&(s.add(j),f(e,j),(N=i.c)==null||N.call(i,j));return}else return m(e,j,...b)}finally{x||(d(e),c(e))}};try{return o(e,t,v,y,...r)}finally{x=!1}},oQ=(e,t)=>{var r;const n=Dt(e),s=n[1],i=n[3],o=n[6],l=n[11],c=n[15],d=n[18],u=n[19],f=l(e,t),m=s.get(t);if(m){for(const[h,g]of f.d)if(!m.d.has(h)){const x=l(e,h);d(e,h).t.add(t),m.d.add(h),g!==x.n&&(i.add(h),c(e,h),(r=o.c)==null||r.call(o,h))}for(const h of m.d)if(!f.d.has(h)){m.d.delete(h);const g=u(e,h);g==null||g.t.delete(t)}}},lQ=(e,t)=>{var r;const n=Dt(e),s=n[1],i=n[4],o=n[6],l=n[10],c=n[11],d=n[12],u=n[13],f=n[14],m=n[16],h=n[18],g=c(e,t);let x=s.get(t);if(!x){f(e,t);for(const v of g.d.keys())h(e,v).t.add(t);if(x={l:new Set,d:new Set(g.d.keys()),t:new Set},s.set(t,x),ip(t)){const v=()=>{let y=!0;const j=(...b)=>{try{return m(e,t,...b)}finally{y||(u(e),d(e))}};try{const b=l(e,t,j);b&&(x.u=()=>{y=!0;try{b()}finally{y=!1}})}finally{y=!1}};i.add(v)}(r=o.m)==null||r.call(o,t)}return x},cQ=(e,t)=>{var r,n;const s=Dt(e),i=s[1],o=s[5],l=s[6],c=s[11],d=s[19],u=c(e,t);let f=i.get(t);if(!f||f.l.size)return f;let m=!1;for(const h of f.t)if((r=i.get(h))!=null&&r.d.has(t)){m=!0;break}if(!m){f.u&&o.add(f.u),f=void 0,i.delete(t);for(const h of u.d.keys()){const g=d(e,h);g==null||g.t.delete(t)}(n=l.u)==null||n.call(l,t);return}return f},dQ=(e,t,r)=>{const n=Dt(e),s=n[11],i=n[27],o=s(e,t),l="v"in o,c=o.v;if(Jd(r))for(const d of o.d.keys())TO(t,r,s(e,d));o.v=r,delete o.e,(!l||!Object.is(c,o.v))&&(++o.n,Jd(c)&&i(e,c))},uQ=(e,t)=>{const r=Dt(e)[14];return Zd(r(e,t))},fQ=(e,t,...r)=>{const n=Dt(e),s=n[12],i=n[13],o=n[16];try{return o(e,t,...r)}finally{i(e),s(e)}},mQ=(e,t,r)=>{const n=Dt(e),s=n[12],i=n[18],o=n[19],c=i(e,t).l;return c.add(r),s(e),()=>{c.delete(r),o(e,t),s(e)}},hQ=(e,t,r)=>{const s=Dt(e)[25];let i=s.get(t);if(!i){i=new Set,s.set(t,i);const o=()=>s.delete(t);t.then(o,o)}i.add(r)},pQ=(e,t)=>{const s=Dt(e)[25].get(t);s==null||s.forEach(i=>i())},RO=new WeakMap,Dt=e=>{const t=RO.get(e);if((Rn?"production":void 0)!=="production"&&!t)throw new Error("Store must be created by buildStore to read its building blocks");return t};function gQ(e){const t=Dt(e),r=t[24];return r?r(t):t}function xQ(...e){const t={get(n){const s=Dt(t)[21];return s(t,n)},set(n,...s){const i=Dt(t)[22];return i(t,n,...s)},sub(n,s){const i=Dt(t)[23];return i(t,n,s)}},r=[new WeakMap,new WeakMap,new WeakMap,new Set,new Set,new Set,{},QX,ZX,JX,eQ,tQ,rQ,nQ,aQ,sQ,iQ,oQ,lQ,cQ,dQ,uQ,fQ,mQ,void 0,new WeakMap,hQ,pQ].map((n,s)=>e[s]||n);return RO.set(t,Object.freeze(r)),t}const $O={};let vQ=0;function zO(e,t){const r=`atom${++vQ}`,n={toString(){return($O?"production":void 0)!=="production"&&this.debugLabel?r+":"+this.debugLabel:r}};return typeof e=="function"?n.read=e:(n.init=e,n.read=yQ,n.write=bQ),n}function yQ(e){return e(this)}function bQ(e,t,r){return t(this,typeof r=="function"?r(e(this)):r)}function wQ(){return xQ()}let zo;function jQ(){return zo||(zo=wQ(),($O?"production":void 0)!=="production"&&(globalThis.__JOTAI_DEFAULT_STORE__||(globalThis.__JOTAI_DEFAULT_STORE__=zo),globalThis.__JOTAI_DEFAULT_STORE__!==zo&&console.warn("Detected multiple Jotai instances. It may cause unexpected behavior with the default store. https://github.com/pmndrs/jotai/discussions/2044"))),zo}const NQ={},kQ=p.createContext(void 0);function LO(e){return p.useContext(kQ)||jQ()}const lp=e=>typeof(e==null?void 0:e.then)=="function",cp=e=>{e.status||(e.status="pending",e.then(t=>{e.status="fulfilled",e.value=t},t=>{e.status="rejected",e.reason=t}))},SQ=D.use||(e=>{if(e.status==="pending")throw e;if(e.status==="fulfilled")return e.value;throw e.status==="rejected"?e.reason:(cp(e),e)}),Bm=new WeakMap,Bw=(e,t,r)=>{const s=gQ(e)[26];let i=Bm.get(t);return i||(i=new Promise((o,l)=>{let c=t;const d=m=>h=>{c===m&&o(h)},u=m=>h=>{c===m&&l(h)},f=()=>{try{const m=r();lp(m)?(Bm.set(m,i),c=m,m.then(d(m),u(m)),s(e,m,f)):o(m)}catch(m){l(m)}};t.then(d(t),u(t)),s(e,t,f)}),Bm.set(t,i)),i};function CQ(e,t){const{delay:r,unstable_promiseStatus:n=!D.use}={},s=LO(),[[i,o,l],c]=p.useReducer(u=>{const f=s.get(e);return Object.is(u[0],f)&&u[1]===s&&u[2]===e?u:[f,s,e]},void 0,()=>[s.get(e),s,e]);let d=i;if((o!==s||l!==e)&&(c(),d=s.get(e)),p.useEffect(()=>{const u=s.sub(e,()=>{if(n)try{const f=s.get(e);lp(f)&&cp(Bw(s,f,()=>s.get(e)))}catch{}if(typeof r=="number"){setTimeout(c,r);return}c()});return c(),u},[s,e,r,n]),p.useDebugValue(d),lp(d)){const u=Bw(s,d,()=>s.get(e));return n&&cp(u),SQ(u)}return d}function _Q(e,t){const r=LO();return p.useCallback((...s)=>{if((NQ?"production":void 0)!=="production"&&!("write"in e))throw new Error("not writable atom");return r.set(e,...s)},[r,e])}function FO(e,t){return[CQ(e),_Q(e)]}var BO="Expected a function",Ww=NaN,OQ="[object Symbol]",PQ=/^\s+|\s+$/g,MQ=/^[-+]0x[0-9a-f]+$/i,AQ=/^0b[01]+$/i,EQ=/^0o[0-7]+$/i,DQ=parseInt,TQ=typeof uc=="object"&&uc&&uc.Object===Object&&uc,IQ=typeof self=="object"&&self&&self.Object===Object&&self,RQ=TQ||IQ||Function("return this")(),$Q=Object.prototype,zQ=$Q.toString,LQ=Math.max,FQ=Math.min,Wm=function(){return RQ.Date.now()};function BQ(e,t,r){var n,s,i,o,l,c,d=0,u=!1,f=!1,m=!0;if(typeof e!="function")throw new TypeError(BO);t=Uw(t)||0,eu(r)&&(u=!!r.leading,f="maxWait"in r,i=f?LQ(Uw(r.maxWait)||0,t):i,m="trailing"in r?!!r.trailing:m);function h(w){var S=n,C=s;return n=s=void 0,d=w,o=e.apply(C,S),o}function g(w){return d=w,l=setTimeout(y,t),u?h(w):o}function x(w){var S=w-c,C=w-d,P=t-S;return f?FQ(P,i-C):P}function v(w){var S=w-c,C=w-d;return c===void 0||S>=t||S<0||f&&C>=i}function y(){var w=Wm();if(v(w))return j(w);l=setTimeout(y,x(w))}function j(w){return l=void 0,m&&n?h(w):(n=s=void 0,o)}function b(){l!==void 0&&clearTimeout(l),d=0,n=c=s=l=void 0}function N(){return l===void 0?o:j(Wm())}function k(){var w=Wm(),S=v(w);if(n=arguments,s=this,c=w,S){if(l===void 0)return g(c);if(f)return l=setTimeout(y,t),h(c)}return l===void 0&&(l=setTimeout(y,t)),o}return k.cancel=b,k.flush=N,k}function WQ(e,t,r){var n=!0,s=!0;if(typeof e!="function")throw new TypeError(BO);return eu(r)&&(n="leading"in r?!!r.leading:n,s="trailing"in r?!!r.trailing:s),BQ(e,t,{leading:n,maxWait:t,trailing:s})}function eu(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function UQ(e){return!!e&&typeof e=="object"}function qQ(e){return typeof e=="symbol"||UQ(e)&&zQ.call(e)==OQ}function Uw(e){if(typeof e=="number")return e;if(qQ(e))return Ww;if(eu(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=eu(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=e.replace(PQ,"");var r=AQ.test(e);return r||EQ.test(e)?DQ(e.slice(2),r?2:8):MQ.test(e)?Ww:+e}var HQ=WQ;const KQ=ja(HQ),WO=p.forwardRef(({className:e,...t},r)=>a.jsx("div",{ref:r,className:R("rounded-lg border bg-card text-card-foreground shadow-sm",e),...t}));WO.displayName="Card";const YQ=p.forwardRef(({className:e,...t},r)=>a.jsx("div",{ref:r,className:R("flex flex-col space-y-1.5 p-6",e),...t}));YQ.displayName="CardHeader";const GQ=p.forwardRef(({className:e,...t},r)=>a.jsx("h3",{ref:r,className:R("text-2xl font-semibold leading-none tracking-tight",e),...t}));GQ.displayName="CardTitle";const VQ=p.forwardRef(({className:e,...t},r)=>a.jsx("p",{ref:r,className:R("text-sm text-muted-foreground",e),...t}));VQ.displayName="CardDescription";const XQ=p.forwardRef(({className:e,...t},r)=>a.jsx("div",{ref:r,className:R("p-6 pt-0",e),...t}));XQ.displayName="CardContent";const QQ=p.forwardRef(({className:e,...t},r)=>a.jsx("div",{ref:r,className:R("flex items-center p-6 pt-0",e),...t}));QQ.displayName="CardFooter";function ZQ(e,t=[]){let r=[];function n(i,o){const l=p.createContext(o),c=r.length;r=[...r,o];const d=f=>{var y;const{scope:m,children:h,...g}=f,x=((y=m==null?void 0:m[e])==null?void 0:y[c])||l,v=p.useMemo(()=>g,Object.values(g));return a.jsx(x.Provider,{value:v,children:h})};d.displayName=i+"Provider";function u(f,m){var x;const h=((x=m==null?void 0:m[e])==null?void 0:x[c])||l,g=p.useContext(h);if(g)return g;if(o!==void 0)return o;throw new Error(`\`${f}\` must be used within \`${i}\``)}return[d,u]}const s=()=>{const i=r.map(o=>p.createContext(o));return function(l){const c=(l==null?void 0:l[e])||i;return p.useMemo(()=>({[`__scope${e}`]:{...l,[e]:c}}),[l,c])}};return s.scopeName=e,[n,JQ(s,...t)]}function JQ(...e){const t=e[0];if(e.length===1)return t;const r=()=>{const n=e.map(s=>({useScope:s(),scopeName:s.scopeName}));return function(i){const o=n.reduce((l,{useScope:c,scopeName:d})=>{const f=c(i)[`__scope${d}`];return{...l,...f}},{});return p.useMemo(()=>({[`__scope${t.scopeName}`]:o}),[o])}};return r.scopeName=t.scopeName,r}function eZ(e){const t=tZ(e),r=p.forwardRef((n,s)=>{const{children:i,...o}=n,l=p.Children.toArray(i),c=l.find(nZ);if(c){const d=c.props.children,u=l.map(f=>f===c?p.Children.count(d)>1?p.Children.only(null):p.isValidElement(d)?d.props.children:null:f);return a.jsx(t,{...o,ref:s,children:p.isValidElement(d)?p.cloneElement(d,void 0,u):null})}return a.jsx(t,{...o,ref:s,children:i})});return r.displayName=`${e}.Slot`,r}function tZ(e){const t=p.forwardRef((r,n)=>{const{children:s,...i}=r;if(p.isValidElement(s)){const o=sZ(s),l=aZ(i,s.props);return s.type!==p.Fragment&&(l.ref=n?yj(n,o):o),p.cloneElement(s,l)}return p.Children.count(s)>1?p.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var rZ=Symbol("radix.slottable");function nZ(e){return p.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===rZ}function aZ(e,t){const r={...t};for(const n in t){const s=e[n],i=t[n];/^on[A-Z]/.test(n)?s&&i?r[n]=(...l)=>{const c=i(...l);return s(...l),c}:s&&(r[n]=s):n==="style"?r[n]={...s,...i}:n==="className"&&(r[n]=[s,i].filter(Boolean).join(" "))}return{...e,...r}}function sZ(e){var n,s;let t=(n=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:n.get,r=t&&"isReactWarning"in t&&t.isReactWarning;return r?e.ref:(t=(s=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:s.get,r=t&&"isReactWarning"in t&&t.isReactWarning,r?e.props.ref:e.props.ref||e.ref)}var iZ=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],oZ=iZ.reduce((e,t)=>{const r=eZ(`Primitive.${t}`),n=p.forwardRef((s,i)=>{const{asChild:o,...l}=s,c=o?r:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),a.jsx(c,{...l,ref:i})});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{}),Gx="ContextMenu",[lZ]=ZQ(Gx,[Nj]),br=Nj(),[cZ,UO]=lZ(Gx),qO=e=>{const{__scopeContextMenu:t,children:r,onOpenChange:n,dir:s,modal:i=!0}=e,[o,l]=p.useState(!1),c=br(t),d=fM(n),u=p.useCallback(f=>{l(f),d(f)},[d]);return a.jsx(cZ,{scope:t,open:o,onOpenChange:u,modal:i,children:a.jsx(mM,{...c,dir:s,open:o,onOpenChange:u,modal:i,children:r})})};qO.displayName=Gx;var HO="ContextMenuTrigger",KO=p.forwardRef((e,t)=>{const{__scopeContextMenu:r,disabled:n=!1,...s}=e,i=UO(HO,r),o=br(r),l=p.useRef({x:0,y:0}),c=p.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...l.current})}),d=p.useRef(0),u=p.useCallback(()=>window.clearTimeout(d.current),[]),f=m=>{l.current={x:m.clientX,y:m.clientY},i.onOpenChange(!0)};return p.useEffect(()=>u,[u]),p.useEffect(()=>void(n&&u()),[n,u]),a.jsxs(a.Fragment,{children:[a.jsx(hM,{...o,virtualRef:c}),a.jsx(oZ.span,{"data-state":i.open?"open":"closed","data-disabled":n?"":void 0,...s,ref:t,style:{WebkitTouchCallout:"none",...e.style},onContextMenu:n?e.onContextMenu:gs(e.onContextMenu,m=>{u(),f(m),m.preventDefault()}),onPointerDown:n?e.onPointerDown:gs(e.onPointerDown,zc(m=>{u(),d.current=window.setTimeout(()=>f(m),700)})),onPointerMove:n?e.onPointerMove:gs(e.onPointerMove,zc(u)),onPointerCancel:n?e.onPointerCancel:gs(e.onPointerCancel,zc(u)),onPointerUp:n?e.onPointerUp:gs(e.onPointerUp,zc(u))})]})});KO.displayName=HO;var dZ="ContextMenuPortal",YO=e=>{const{__scopeContextMenu:t,...r}=e,n=br(t);return a.jsx(aM,{...n,...r})};YO.displayName=dZ;var GO="ContextMenuContent",VO=p.forwardRef((e,t)=>{const{__scopeContextMenu:r,...n}=e,s=UO(GO,r),i=br(r),o=p.useRef(!1);return a.jsx(sM,{...i,...n,ref:t,side:"right",sideOffset:2,align:"start",onCloseAutoFocus:l=>{var c;(c=e.onCloseAutoFocus)==null||c.call(e,l),!l.defaultPrevented&&o.current&&l.preventDefault(),o.current=!1},onInteractOutside:l=>{var c;(c=e.onInteractOutside)==null||c.call(e,l),!l.defaultPrevented&&!s.modal&&(o.current=!0)},style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});VO.displayName=GO;var uZ="ContextMenuGroup",fZ=p.forwardRef((e,t)=>{const{__scopeContextMenu:r,...n}=e,s=br(r);return a.jsx(pM,{...s,...n,ref:t})});fZ.displayName=uZ;var mZ="ContextMenuLabel",XO=p.forwardRef((e,t)=>{const{__scopeContextMenu:r,...n}=e,s=br(r);return a.jsx(dM,{...s,...n,ref:t})});XO.displayName=mZ;var hZ="ContextMenuItem",QO=p.forwardRef((e,t)=>{const{__scopeContextMenu:r,...n}=e,s=br(r);return a.jsx(iM,{...s,...n,ref:t})});QO.displayName=hZ;var pZ="ContextMenuCheckboxItem",ZO=p.forwardRef((e,t)=>{const{__scopeContextMenu:r,...n}=e,s=br(r);return a.jsx(oM,{...s,...n,ref:t})});ZO.displayName=pZ;var gZ="ContextMenuRadioGroup",xZ=p.forwardRef((e,t)=>{const{__scopeContextMenu:r,...n}=e,s=br(r);return a.jsx(gM,{...s,...n,ref:t})});xZ.displayName=gZ;var vZ="ContextMenuRadioItem",JO=p.forwardRef((e,t)=>{const{__scopeContextMenu:r,...n}=e,s=br(r);return a.jsx(cM,{...s,...n,ref:t})});JO.displayName=vZ;var yZ="ContextMenuItemIndicator",eP=p.forwardRef((e,t)=>{const{__scopeContextMenu:r,...n}=e,s=br(r);return a.jsx(lM,{...s,...n,ref:t})});eP.displayName=yZ;var bZ="ContextMenuSeparator",tP=p.forwardRef((e,t)=>{const{__scopeContextMenu:r,...n}=e,s=br(r);return a.jsx(uM,{...s,...n,ref:t})});tP.displayName=bZ;var wZ="ContextMenuArrow",jZ=p.forwardRef((e,t)=>{const{__scopeContextMenu:r,...n}=e,s=br(r);return a.jsx(xM,{...s,...n,ref:t})});jZ.displayName=wZ;var NZ="ContextMenuSubTrigger",rP=p.forwardRef((e,t)=>{const{__scopeContextMenu:r,...n}=e,s=br(r);return a.jsx(rM,{...s,...n,ref:t})});rP.displayName=NZ;var kZ="ContextMenuSubContent",nP=p.forwardRef((e,t)=>{const{__scopeContextMenu:r,...n}=e,s=br(r);return a.jsx(nM,{...s,...n,ref:t,style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});nP.displayName=kZ;function zc(e){return t=>t.pointerType!=="mouse"?e(t):void 0}var SZ=qO,CZ=KO,_Z=YO,aP=VO,sP=XO,iP=QO,oP=ZO,lP=JO,cP=eP,dP=tP,uP=rP,fP=nP;const OZ=SZ,PZ=CZ,MZ=p.forwardRef(({className:e,inset:t,children:r,...n},s)=>a.jsxs(uP,{ref:s,className:R("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",t&&"pl-8",e),...n,children:[r,a.jsx(jn,{className:"ml-auto h-4 w-4"})]}));MZ.displayName=uP.displayName;const AZ=p.forwardRef(({className:e,...t},r)=>a.jsx(fP,{ref:r,className:R("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...t}));AZ.displayName=fP.displayName;const mP=p.forwardRef(({className:e,...t},r)=>a.jsx(_Z,{children:a.jsx(aP,{ref:r,className:R("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...t})}));mP.displayName=aP.displayName;const hP=p.forwardRef(({className:e,inset:t,...r},n)=>a.jsx(iP,{ref:n,className:R("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t&&"pl-8",e),...r}));hP.displayName=iP.displayName;const EZ=p.forwardRef(({className:e,children:t,checked:r,...n},s)=>a.jsxs(oP,{ref:s,className:R("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),checked:r,...n,children:[a.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:a.jsx(cP,{children:a.jsx(Sr,{className:"h-4 w-4"})})}),t]}));EZ.displayName=oP.displayName;const DZ=p.forwardRef(({className:e,children:t,...r},n)=>a.jsxs(lP,{ref:n,className:R("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...r,children:[a.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:a.jsx(cP,{children:a.jsx(Jr,{className:"h-2 w-2 fill-current"})})}),t]}));DZ.displayName=lP.displayName;const TZ=p.forwardRef(({className:e,inset:t,...r},n)=>a.jsx(sP,{ref:n,className:R("px-2 py-1.5 text-sm font-semibold text-foreground",t&&"pl-8",e),...r}));TZ.displayName=sP.displayName;const IZ=p.forwardRef(({className:e,...t},r)=>a.jsx(dP,{ref:r,className:R("-mx-1 my-1 h-px bg-border",e),...t}));IZ.displayName=dP.displayName;const RZ=zO(!1),$Z=zO(0),Vx=()=>FO(RZ),Xx=()=>FO($Z),zZ=e=>{let t=r=>1;return(e==="monthly"||e==="quarterly")&&(t=Za),t},dc=e=>{let t=V1;return(e==="monthly"||e==="quarterly")&&(t=Z1),t},Qx=e=>{let t=j5;return(e==="monthly"||e==="quarterly")&&(t=V1),t},yl=e=>{let t=wi;return(e==="monthly"||e==="quarterly")&&(t=eN),t},LZ=e=>{let t=Q1;return(e==="monthly"||e==="quarterly")&&(t=Wp),t},pP=e=>{let t=Pr;return(e==="monthly"||e==="quarterly")&&(t=Lp),t},qo=(e,t)=>{const r=new Date(e.timelineData[0].year,0,1),n=e.columnWidth*e.zoom/100,s=Math.floor(t/n),i=zZ(e.range),l=pP(e.range)(r,s),c=i(l),d=Math.round(n/c),u=Math.floor(t%n/d);return Pr(l,u)},FZ=e=>{const t=[];t.push({year:e.getFullYear()-1,quarters:new Array(4).fill(null)},{year:e.getFullYear(),quarters:new Array(4).fill(null)},{year:e.getFullYear()+1,quarters:new Array(4).fill(null)});for(const r of t)r.quarters=new Array(4).fill(null).map((n,s)=>({months:new Array(3).fill(null).map((i,o)=>{const l=s*3+o;return{days:Za(new Date(r.year,l,1))}})}));return t},gP=(e,t,r)=>{const n=r.columnWidth*r.zoom/100,s=dc(r.range),i=yl(r.range),o=s(i(e),t);if(r.range==="daily")return n*o;const l=e.getDate(),c=Za(e),d=n/c;return o*n+l*d},BZ=(e,t,r)=>{const n=r.columnWidth*r.zoom/100;if(!t)return n*2;const s=dc(r.range);if(r.range==="daily"){const g=s(t,e);return n*(g||1)}const i=Za(e),o=n/i;if(ji(e,t))return o;const l=Qx(r.range),c=yl(r.range);if(ji(c(e),c(t)))return l(t,e)*o;const d=i-Ko(e),u=Ko(t),f=s(c(t),c(e)),m=Za(t),h=n/m;return(f-1)*n+d*o+u*h},xP=(e,t,r)=>{const n=yl(t),s=LZ(t),i=Qx(t),o=n(e),l=s(e),c=i(l,o);return e.getDate()/c*r},Cn=p.createContext({zoom:100,range:"monthly",columnWidth:50,headerHeight:60,sidebarWidth:300,rowHeight:36,onAddItem:void 0,placeholderLength:2,timelineData:[],ref:null,scrollToFeature:void 0}),Zx=({title:e,columns:t,renderHeaderItem:r})=>{const n=p.useId();return a.jsxs("div",{className:"sticky top-0 z-20 grid w-full shrink-0 bg-backdrop/90 backdrop-blur-sm",style:{height:"var(--gantt-header-height)"},children:[a.jsx("div",{children:a.jsx("div",{className:"sticky inline-flex whitespace-nowrap px-3 py-2 text-muted-foreground text-xs",style:{left:"var(--gantt-sidebar-width)"},children:a.jsx("p",{children:e})})}),a.jsx("div",{className:"grid w-full",style:{gridTemplateColumns:`repeat(${t}, var(--gantt-column-width))`},children:Array.from({length:t}).map((s,i)=>a.jsx("div",{className:"shrink-0 border-border/50 border-b py-1 text-center text-xs",children:r(i)},`${n}-${i}`))})]})},WZ=()=>p.useContext(Cn).timelineData.map(t=>t.quarters.flatMap(r=>r.months).map((r,n)=>a.jsxs("div",{className:"relative flex flex-col",children:[a.jsx(Zx,{columns:r.days,renderHeaderItem:s=>a.jsxs("div",{className:"flex items-center justify-center gap-1",children:[a.jsx("p",{children:de(Pr(new Date(t.year,n,1),s),"d")}),a.jsx("p",{className:"text-muted-foreground",children:de(Pr(new Date(t.year,n,1),s),"EEEEE")})]}),title:de(new Date(t.year,n,1),"MMMM yyyy")}),a.jsx(Jx,{columns:r.days,isColumnSecondary:s=>[0,6].includes(Pr(new Date(t.year,n,1),s).getDay())})]},`${t.year}-${n}`))),UZ=()=>p.useContext(Cn).timelineData.map(t=>a.jsxs("div",{className:"relative flex flex-col",children:[a.jsx(Zx,{columns:t.quarters.flatMap(r=>r.months).length,renderHeaderItem:r=>a.jsx("p",{children:de(new Date(t.year,r,1),"MMM")}),title:`${t.year}`}),a.jsx(Jx,{columns:t.quarters.flatMap(r=>r.months).length})]},t.year)),qZ=()=>p.useContext(Cn).timelineData.map(t=>t.quarters.map((r,n)=>a.jsxs("div",{className:"relative flex flex-col",children:[a.jsx(Zx,{columns:r.months.length,renderHeaderItem:s=>a.jsx("p",{children:de(new Date(t.year,n*3+s,1),"MMM")}),title:`Q${n+1} ${t.year}`}),a.jsx(Jx,{columns:r.months.length})]},`${t.year}-${n}`))),HZ={daily:WZ,monthly:UZ,quarterly:qZ},KZ=({className:e})=>{const t=p.useContext(Cn),r=HZ[t.range];return a.jsx("div",{className:R("-space-x-px flex h-full w-max divide-x divide-border/50",e),children:a.jsx(r,{})})},Um=({feature:e,onSelectItem:t,className:r,duration:n})=>{const s=p.useContext(Cn),i=e.endAt&&ji(e.startAt,e.endAt)?Pr(e.endAt,1):e.endAt,o=n??(i?eh(e.startAt,i):`${eh(e.startAt,new Date)} so far`),l=d=>{var u;d.target===d.currentTarget&&((u=s.scrollToFeature)==null||u.call(s,e),t==null||t(e.id))},c=d=>{var u;d.key==="Enter"&&((u=s.scrollToFeature)==null||u.call(s,e),t==null||t(e.id))};return a.jsxs("div",{className:R("relative flex items-center gap-2.5 p-2.5 text-xs hover:bg-secondary",r),onClick:l,onKeyDown:c,role:"button",style:{height:"var(--gantt-row-height)"},tabIndex:0,children:[a.jsx("div",{className:"pointer-events-none h-2 w-2 shrink-0 rounded-full",style:{backgroundColor:e.status.color}}),a.jsx("p",{className:"pointer-events-none flex-1 truncate text-left font-medium",children:e.name}),a.jsx("p",{className:"pointer-events-none text-muted-foreground",children:o})]},e.id)},YZ=()=>a.jsxs("div",{className:"sticky top-0 z-10 flex shrink-0 items-end justify-between gap-2.5 border-border/50 border-b bg-backdrop/90 p-2.5 font-medium text-muted-foreground text-xs backdrop-blur-sm",style:{height:"var(--gantt-header-height)"},children:[a.jsx("p",{className:"flex-1 truncate text-left",children:"Issues"}),a.jsx("p",{className:"shrink-0",children:"Duration"})]}),qm=({children:e,name:t,className:r})=>a.jsxs("div",{className:r,children:[a.jsx("p",{className:"w-full truncate p-2.5 text-left font-medium text-muted-foreground text-xs",style:{height:"var(--gantt-row-height)"},children:t}),a.jsx("div",{className:"divide-y divide-border/50",children:e})]}),GZ=({children:e,className:t})=>a.jsxs("div",{className:R("sticky left-0 z-30 h-max min-h-full overflow-clip border-border/50 border-r bg-white dark:bg-zinc-950 backdrop-blur-md",t),"data-roadmap-ui":"gantt-sidebar",children:[a.jsx(YZ,{}),a.jsx("div",{className:"space-y-4",children:e})]}),VZ=({top:e,className:t})=>{const[r]=Xx(),n=p.useContext(Cn),[s,i]=Yx(),o=()=>{var u,f,m;const l=(f=(u=n.ref)==null?void 0:u.current)==null?void 0:f.getBoundingClientRect(),c=s.x-((l==null?void 0:l.left)??0)+r-n.sidebarWidth,d=qo(n,c);(m=n.onAddItem)==null||m.call(n,d)};return a.jsx("div",{className:R("absolute top-0 w-full px-0.5",t),ref:i,style:{marginTop:-n.rowHeight/2,transform:`translateY(${e}px)`},children:a.jsx("button",{className:"flex h-full w-full items-center justify-center rounded-md border border-dashed p-2",onClick:o,type:"button",children:a.jsx(nt,{className:"pointer-events-none select-none text-muted-foreground",size:16})})})},XZ=({index:e,isColumnSecondary:t})=>{var m;const r=p.useContext(Cn),[n]=Vx(),[s,i]=Yx(),[o,l]=p.useState(!1),[c]=XX(),d=()=>l(!0),u=()=>l(!1),f=VX(s.y-(((m=i.current)==null?void 0:m.getBoundingClientRect().y)??0)-(c.y??0),10);return a.jsx("div",{className:R("group relative h-full overflow-hidden",t!=null&&t(e)?"bg-[#f59e0b]/5 dark:bg-[#f59e0b]/5":""),onMouseEnter:d,onMouseLeave:u,ref:i,children:!n&&o&&r.onAddItem?a.jsx(VZ,{top:f}):null})},Jx=({columns:e,isColumnSecondary:t})=>{const r=p.useId();return a.jsx("div",{className:"divide grid h-full w-full divide-x divide-border/50",style:{gridTemplateColumns:`repeat(${e}, var(--gantt-column-width))`},children:Array.from({length:e}).map((n,s)=>a.jsx(XZ,{index:s,isColumnSecondary:t},`${r}-${s}`))})},qw=({direction:e,featureId:t,date:r})=>{const[,n]=Vx(),{attributes:s,listeners:i,setNodeRef:o}=_j({id:`feature-drag-helper-${t}`}),l=!!s["aria-pressed"];return p.useEffect(()=>n(l),[l,n]),a.jsxs("div",{className:R("group -translate-y-1/2 !cursor-col-resize absolute top-1/2 z-[3] h-full w-6 rounded-md outline-none",e==="left"?"-left-2.5":"-right-2.5"),ref:o,...s,...i,children:[a.jsx("div",{className:R("-translate-y-1/2 absolute top-1/2 h-[80%] w-1 rounded-sm bg-muted-foreground opacity-0 transition-all",e==="left"?"left-2.5":"right-2.5",e==="left"?"group-hover:left-0":"group-hover:right-0",l&&(e==="left"?"left-0":"right-0"),"group-hover:opacity-100",l&&"opacity-100")}),r&&a.jsx("div",{className:R("-translate-x-1/2 absolute top-10 hidden whitespace-nowrap rounded-lg border border-border/50 bg-background/90 px-2 py-1 text-foreground text-xs backdrop-blur-lg group-hover:block",l&&"block"),children:de(r,"MMM dd, yyyy")})]})},QZ=({id:e,children:t})=>{const[,r]=Vx(),{attributes:n,listeners:s,setNodeRef:i}=_j({id:e}),o=!!n["aria-pressed"];return p.useEffect(()=>r(o),[o,r]),a.jsx(WO,{className:"h-full w-full rounded-md bg-background p-2 text-xs shadow-sm",children:a.jsx("div",{className:R("flex h-full w-full items-center justify-between gap-2 text-left",o&&"cursor-grabbing"),...n,...s,ref:i,children:t})})},Hw=({onMove:e,children:t,className:r,...n})=>{const[s]=Xx(),i=p.useContext(Cn),o=p.useMemo(()=>{var M;return new Date(((M=i.timelineData.at(0))==null?void 0:M.year)??0,0,1)},[i.timelineData]),[l,c]=p.useState(n.startAt),[d,u]=p.useState(n.endAt),f=p.useMemo(()=>BZ(l,d,i),[l,d,i]),m=p.useMemo(()=>gP(l,o,i),[l,o,i]),h=p.useMemo(()=>pP(i.range),[i.range]),[g]=Yx(),[x,v]=p.useState(0),[y,j]=p.useState(l),[b,N]=p.useState(d),k=hp(NM,{activationConstraint:{distance:10}}),w=p.useCallback(()=>{v(g.x),j(l),N(d)},[g.x,l,d]),S=p.useCallback(()=>{const M=qo(i,g.x),_=qo(i,x),E=i.range==="daily"?dc(i.range)(M,_):Qx(i.range)(M,_),O=Pr(y,E),T=b?Pr(b,E):null;c(O),u(T)},[i,g.x,x,y,b]),C=p.useCallback(()=>e==null?void 0:e(n.id,l,d),[e,n.id,l,d]),P=p.useCallback(()=>{var T,z;const M=(z=(T=i.ref)==null?void 0:T.current)==null?void 0:z.getBoundingClientRect(),_=g.x-((M==null?void 0:M.left)??0)+s-i.sidebarWidth,O=yl(i.range)(qo(i,_));c(O)},[i,g.x,s]),A=p.useCallback(()=>{var T,z;const M=(z=(T=i.ref)==null?void 0:T.current)==null?void 0:z.getBoundingClientRect(),_=g.x-((M==null?void 0:M.left)??0)+s-i.sidebarWidth,O=yl(i.range)(qo(i,_));u(O)},[i,g.x,s]);return a.jsx("div",{className:R("relative flex w-max min-w-full py-0.5",r),style:{height:"var(--gantt-row-height)"},children:a.jsxs("div",{className:"pointer-events-auto absolute top-0.5",style:{height:"calc(var(--gantt-row-height) - 4px)",width:Math.round(f),left:Math.round(m)},children:[e&&a.jsx(Ho,{modifiers:[Fm],onDragEnd:C,onDragMove:P,sensors:[k],children:a.jsx(qw,{date:l,direction:"left",featureId:n.id})}),a.jsx(Ho,{modifiers:[Fm],onDragEnd:C,onDragMove:S,onDragStart:w,sensors:[k],children:a.jsx(QZ,{id:n.id,children:t??a.jsx("p",{className:"flex-1 truncate text-xs",children:n.name})})}),e&&a.jsx(Ho,{modifiers:[Fm],onDragEnd:C,onDragMove:A,sensors:[k],children:a.jsx(qw,{date:d?sN(d):h(l,1),direction:"right",featureId:n.id})})]})})},Hm=({children:e,className:t})=>a.jsx("div",{className:t,style:{paddingTop:"var(--gantt-row-height)"},children:e}),ZZ=({className:e,children:t})=>a.jsx("div",{className:R("absolute top-0 left-0 h-full w-max space-y-4",e),style:{marginTop:"var(--gantt-header-height)"},children:t}),vP=p.memo(({label:e,date:t,id:r,onRemove:n,className:s})=>{const i=p.useContext(Cn),o=p.useMemo(()=>dc(i.range),[i.range]),l=p.useMemo(()=>{var f;return new Date(((f=i.timelineData.at(0))==null?void 0:f.year)??0,0,1)},[i.timelineData]),c=p.useMemo(()=>o(t,l),[o,t,l]),d=p.useMemo(()=>xP(t,i.range,i.columnWidth*i.zoom/100),[t,i.range,i.columnWidth,i.zoom]),u=p.useCallback(()=>n==null?void 0:n(r),[n,r]);return a.jsxs("div",{className:"pointer-events-none absolute top-0 left-0 z-20 flex h-full select-none flex-col items-center justify-center overflow-visible",style:{width:0,transform:`translateX(calc(var(--gantt-column-width) * ${c} + ${d}px))`},children:[a.jsxs(OZ,{children:[a.jsx(PZ,{asChild:!0,children:a.jsxs("div",{className:R("group pointer-events-auto sticky top-0 flex select-auto flex-col flex-nowrap items-center justify-center whitespace-nowrap rounded-b-md bg-card px-2 py-1 text-foreground text-xs",s),children:[e,a.jsx("span",{className:"max-h-[0] overflow-hidden opacity-80 transition-all group-hover:max-h-[2rem]",children:de(t,"MMM dd, yyyy")})]})}),a.jsx(mP,{children:n?a.jsxs(hP,{className:"flex items-center gap-2 text-destructive",onClick:u,children:[a.jsx(EE,{size:16}),"Remove marker"]}):null})]}),a.jsx("div",{className:R("h-full w-px bg-card",s)})]})});vP.displayName="GanttMarker";const JZ=({zoom:e=100,range:t="monthly",onAddItem:r,children:n,className:s})=>{const i=p.useRef(null),[o,l]=p.useState(FZ(new Date)),[,c]=Xx(),[d,u]=p.useState(0),f=60,m=36;let h=50;t==="monthly"?h=150:t==="quarterly"&&(h=100);const g=p.useMemo(()=>({"--gantt-zoom":`${e}`,"--gantt-column-width":`${e/100*h}px`,"--gantt-header-height":`${f}px`,"--gantt-row-height":`${m}px`,"--gantt-sidebar-width":`${d}px`}),[e,h,d]);p.useEffect(()=>{i.current&&(i.current.scrollLeft=i.current.scrollWidth/2-i.current.clientWidth/2,c(i.current.scrollLeft))},[c]),p.useEffect(()=>{const y=()=>{var k;const N=((k=i.current)==null?void 0:k.querySelector('[data-roadmap-ui="gantt-sidebar"]'))?300:0;u(N)};y();const j=new MutationObserver(y);return i.current&&j.observe(i.current,{childList:!0,subtree:!0}),()=>{j.disconnect()}},[]);const x=p.useCallback(KQ(()=>{var k,w;const y=i.current;if(!y)return;const{scrollLeft:j,scrollWidth:b,clientWidth:N}=y;if(c(j),j===0){const S=(k=o[0])==null?void 0:k.year;if(!S)return;const C=[...o];C.unshift({year:S-1,quarters:new Array(4).fill(null).map((P,A)=>({months:new Array(3).fill(null).map((M,_)=>{const E=A*3+_;return{days:Za(new Date(S,E,1))}})}))}),l(C),y.scrollLeft=y.clientWidth,c(y.scrollLeft)}else if(j+N>=b){const S=(w=o.at(-1))==null?void 0:w.year;if(!S)return;const C=[...o];C.push({year:S+1,quarters:new Array(4).fill(null).map((P,A)=>({months:new Array(3).fill(null).map((M,_)=>{const E=A*3+_;return{days:Za(new Date(S,E,1))}})}))}),l(C),y.scrollLeft=y.scrollWidth-y.clientWidth,c(y.scrollLeft)}},100),[]);p.useEffect(()=>{const y=i.current;return y&&y.addEventListener("scroll",x),()=>{y&&y.removeEventListener("scroll",x)}},[x]);const v=p.useCallback(y=>{const j=i.current;if(!j)return;const b=new Date(o[0].year,0,1),N=gP(y.startAt,b,{zoom:e,range:t,columnWidth:h}),k=Math.max(0,N);j.scrollTo({left:k,behavior:"smooth"})},[o,e,t,h,d,r]);return a.jsx(Cn.Provider,{value:{zoom:e,range:t,headerHeight:f,columnWidth:h,sidebarWidth:d,rowHeight:m,onAddItem:r,timelineData:o,placeholderLength:2,ref:i,scrollToFeature:v},children:a.jsx("div",{className:R("gantt relative isolate grid h-full w-full flex-none select-none overflow-auto rounded-sm bg-secondary",t,s),ref:i,style:{...g,gridTemplateColumns:"var(--gantt-sidebar-width) 1fr"},children:n})})},eJ=({children:e,className:t})=>a.jsx("div",{className:R("relative flex h-full w-max flex-none overflow-clip",t),children:e}),tJ=({className:e})=>{const t="Today",r=p.useMemo(()=>new Date,[]),n=p.useContext(Cn),s=p.useMemo(()=>dc(n.range),[n.range]),i=p.useMemo(()=>{var c;return new Date(((c=n.timelineData.at(0))==null?void 0:c.year)??0,0,1)},[n.timelineData]),o=p.useMemo(()=>s(r,i),[s,r,i]),l=p.useMemo(()=>xP(r,n.range,n.columnWidth*n.zoom/100),[r,n.range,n.columnWidth,n.zoom]);return a.jsxs("div",{className:"pointer-events-none absolute top-0 left-0 z-20 flex h-full select-none flex-col items-center justify-center overflow-visible",style:{width:0,transform:`translateX(calc(var(--gantt-column-width) * ${o} + ${l}px))`},children:[a.jsxs("div",{className:R("group pointer-events-auto sticky top-0 flex select-auto flex-col flex-nowrap items-center justify-center whitespace-nowrap rounded-b-md bg-card px-2 py-1 text-foreground text-xs",e),children:[t,a.jsx("span",{className:"max-h-[0] overflow-hidden opacity-80 transition-all group-hover:max-h-[2rem]",children:de(r,"MMM dd, yyyy")})]}),a.jsx("div",{className:R("h-full w-px bg-card",e)})]})};function rJ(e){return De({queryKey:["public","share",e],queryFn:()=>ae.get(`/public/share/${e}`),select:t=>t.project,enabled:!!e,retry:!1})}function ev(e,t={}){const r=new URLSearchParams;t.status&&r.set("status",t.status),t.priority&&r.set("priority",t.priority),t.search&&r.set("search",t.search);const n=r.toString()?`?${r.toString()}`:"";return De({queryKey:["public","share",e,"issues",t],queryFn:()=>ae.get(`/public/share/${e}/issues${n}`),select:s=>s.issues,enabled:!!e,retry:!1})}function yP(e){return De({queryKey:["public","share",e,"sprints"],queryFn:()=>ae.get(`/public/share/${e}/sprints`),select:t=>t.sprints,enabled:!!e,retry:!1})}function nJ({priority:e,className:t}){const r=R("h-3.5 w-3.5 shrink-0",Yp[e],t);switch(e){case"urgent":return a.jsx(ns,{className:r});case"high":return a.jsx(Cl,{className:r});case"medium":return a.jsx(Bi,{className:r});case"low":return a.jsx(Sl,{className:r});default:return a.jsx(Jr,{className:R("h-3.5 w-3.5 shrink-0 text-zinc-300",t)})}}const dp="grid-cols-[70px_250px_150px_120px_130px_140px_130px]";function bP({issue:e,statuses:t,statusLabels:r,statusColorMap:n,sprints:s,isChild:i=!1,children:o=[],childrenMap:l}){const[c,d]=p.useState(!1),u=o.length>0,f=n[e.status]??"#94a3b8",m=s.find(h=>h.id===e.sprint_id);return a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:R(`group grid ${dp} items-center py-3`,"hover:bg-[#f9fafb] dark:hover:bg-muted/30 transition-colors",i&&"bg-muted/10"),children:[a.jsx("span",{className:R("text-xs font-mono text-muted-foreground truncate","sticky left-0 z-10 pl-6 transition-colors","bg-white dark:bg-card group-hover:bg-[#f9fafb] dark:group-hover:bg-muted/30",i&&"text-muted-foreground/60"),children:e.identifier}),a.jsxs("div",{className:R("flex items-center gap-1 min-w-0 pr-3","sticky left-[70px] z-10 transition-colors","bg-white dark:bg-card group-hover:bg-[#f9fafb] dark:group-hover:bg-muted/30",i&&"bg-[#f8f9fa] dark:bg-muted/20"),children:[u?a.jsxs(qa,{children:[a.jsx(Ha,{asChild:!0,children:a.jsx("button",{onClick:()=>d(!c),className:"shrink-0 text-muted-foreground hover:text-foreground transition-colors p-0.5 rounded",children:c?a.jsx(Na,{className:"h-3.5 w-3.5"}):a.jsx(jn,{className:"h-3.5 w-3.5"})})}),a.jsx(la,{side:"top",children:c?"Collapse":"Expand"})]}):i?a.jsx(xn,{className:"h-3 w-3 text-muted-foreground/40 shrink-0"}):a.jsx("span",{className:"w-4 shrink-0"}),a.jsx("span",{className:R("text-sm text-foreground truncate",i&&"text-muted-foreground"),children:e.title}),u&&a.jsxs("span",{className:"shrink-0 flex items-center gap-0.5 ml-1 text-[10px] font-medium text-indigo-700 dark:text-indigo-300 bg-indigo-50 dark:bg-indigo-950/50 px-1 py-0.5 rounded",children:[a.jsx(xn,{className:"h-2.5 w-2.5"}),o.length]})]}),a.jsxs("div",{className:"flex items-center gap-1.5 px-1.5 py-1 max-w-full",children:[a.jsx("span",{className:"h-2 w-2 rounded-full shrink-0",style:{backgroundColor:f}}),a.jsx("span",{className:"text-xs text-muted-foreground truncate",children:r[e.status]??e.status})]}),a.jsxs("div",{className:"flex items-center gap-1.5 px-1.5 py-1",children:[a.jsx(nJ,{priority:e.priority}),a.jsx("span",{className:"text-xs text-muted-foreground",children:yn[e.priority]??e.priority})]}),a.jsxs("div",{className:"flex items-center gap-1.5 px-1.5 py-1 max-w-full",children:[a.jsx(Mr,{className:"h-3.5 w-3.5 text-muted-foreground/50 shrink-0"}),a.jsx("span",{className:R("text-xs truncate",m?"text-foreground":"text-muted-foreground/50"),children:(m==null?void 0:m.name)??"—"})]}),a.jsxs("div",{className:"flex items-center gap-1.5 px-1.5 py-1",children:[a.jsx(or,{className:"h-3.5 w-3.5 text-muted-foreground/50 shrink-0"}),a.jsx("span",{className:R("text-xs",e.due_date?"text-foreground":"text-muted-foreground/50"),children:e.due_date?de(new Date(e.due_date),"MMM d, yyyy"):"—"})]}),a.jsx("div",{className:"flex items-center px-1.5",children:a.jsx("div",{className:"flex -space-x-1.5",children:(e.assignees??[]).slice(0,3).map(h=>a.jsx("div",{title:h.name,className:"h-5 w-5 rounded-full bg-indigo-100 dark:bg-indigo-900 border border-white dark:border-card flex items-center justify-center text-[10px] font-medium text-indigo-700 dark:text-indigo-300",children:h.initials},h.id))})})]}),c&&o.map(h=>a.jsx(bP,{issue:h,statuses:t,statusLabels:r,statusColorMap:n,sprints:s,isChild:!0,children:(l==null?void 0:l[h.id])??[],childrenMap:l},h.id))]})}function aJ({issues:e,childrenMap:t,statuses:r,statusLabels:n,statusColorMap:s,sprints:i,totalCount:o}){const[l,c]=p.useState(!1);return a.jsxs("div",{children:[a.jsxs("div",{className:"flex items-center gap-2 px-6 py-2 bg-muted/20 border-b border-border",children:[a.jsx("button",{onClick:()=>c(!l),className:"text-muted-foreground hover:text-foreground transition-colors",children:l?a.jsx(jn,{className:"h-3.5 w-3.5"}):a.jsx(Na,{className:"h-3.5 w-3.5"})}),a.jsx("span",{className:"text-xs font-semibold text-muted-foreground",children:"Issues"}),a.jsx("span",{className:"text-[11px] text-muted-foreground/60 font-mono",children:o})]}),!l&&a.jsx("div",{className:"divide-y divide-border/60",children:e.length===0?a.jsx("div",{className:"px-14 py-5 text-xs text-muted-foreground/50 italic",children:"No issues match your filters"}):e.map(d=>a.jsx(bP,{issue:d,statuses:r,statusLabels:n,statusColorMap:s,sprints:i,children:t[d.id]??[],childrenMap:t},d.id))})]})}function sJ({token:e,statuses:t}){const[r,n]=p.useState("all"),[s,i]=p.useState("all"),[o,l]=p.useState("all"),[c,d]=p.useState(""),{data:u=[],isLoading:f}=ev(e),{data:m=[]}=yP(e),h=Object.fromEntries(t.map(b=>[b.key,b.name])),g=Object.fromEntries(t.map(b=>[b.key,b.color])),x={};for(const b of u)b.parent_id&&(x[b.parent_id]||(x[b.parent_id]=[]),x[b.parent_id].push(b));const v=u.filter(b=>!b.parent_id).filter(b=>{const N=c.toLowerCase(),k=!c||b.title.toLowerCase().includes(N)||b.identifier.toLowerCase().includes(N),w=r==="all"||b.status===r,S=s==="all"||b.priority===s,C=o==="all"?!0:o==="none"?!b.sprint_id:b.sprint_id===o;return k&&w&&S&&C}).sort((b,N)=>{const k=parseInt(b.identifier.split("-")[1]??"0",10),w=parseInt(N.identifier.split("-")[1]??"0",10);return k-w}),y=v.reduce((b,N)=>{var k;return b+(((k=x[N.id])==null?void 0:k.length)??0)},0),j=v.length+y;return a.jsx("div",{className:"p-2",children:a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl overflow-hidden",children:[a.jsxs("div",{className:"flex items-center justify-between px-6 py-3 border-b border-border gap-3 flex-wrap",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsxs($e,{value:o,onValueChange:l,children:[a.jsx(Te,{className:"h-8 text-xs w-[140px] bg-transparent",children:a.jsx(He,{placeholder:"Sprint"})}),a.jsxs(Ie,{children:[a.jsx(ve,{value:"all",className:"text-xs",children:"All sprints"}),a.jsx(ve,{value:"none",className:"text-xs text-muted-foreground",children:"No sprint"}),m.map(b=>a.jsx(ve,{value:b.id,className:"text-xs",children:b.name},b.id))]})]}),a.jsxs($e,{value:r,onValueChange:n,children:[a.jsx(Te,{className:"h-8 text-xs w-[130px] bg-transparent",children:a.jsx(He,{placeholder:"Status"})}),a.jsxs(Ie,{children:[a.jsx(ve,{value:"all",className:"text-xs",children:"All statuses"}),t.map(({key:b,name:N})=>a.jsx(ve,{value:b,className:"text-xs",children:N},b))]})]}),a.jsxs($e,{value:s,onValueChange:i,children:[a.jsx(Te,{className:"h-8 text-xs w-[130px] bg-transparent",children:a.jsx(He,{placeholder:"Priority"})}),a.jsxs(Ie,{children:[a.jsx(ve,{value:"all",className:"text-xs",children:"All priorities"}),Object.entries(yn).map(([b,N])=>a.jsx(ve,{value:b,className:"text-xs",children:N},b))]})]})]}),a.jsxs("div",{className:"relative",children:[a.jsx(Ol,{className:"absolute left-2.5 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground pointer-events-none"}),a.jsx(_e,{placeholder:"Search...",value:c,onChange:b=>d(b.target.value),className:"pl-8 h-8 w-[200px] text-xs bg-transparent"})]})]}),a.jsx("div",{className:"overflow-x-auto",children:a.jsxs("div",{className:"min-w-[900px]",children:[a.jsxs("div",{className:R("grid items-center py-2.5 border-b border-border",dp),children:[a.jsx("span",{className:"text-xs font-medium text-[#6b7280] sticky left-0 z-10 bg-white dark:bg-card pl-6",children:"ID"}),a.jsx("span",{className:"text-xs font-medium text-[#6b7280] sticky left-[70px] z-10 bg-white dark:bg-card",children:"Title"}),a.jsx("span",{className:"text-xs font-medium text-[#6b7280]",children:"Status"}),a.jsx("span",{className:"text-xs font-medium text-[#6b7280]",children:"Priority"}),a.jsx("span",{className:"text-xs font-medium text-[#6b7280]",children:"Sprint"}),a.jsx("span",{className:"text-xs font-medium text-[#6b7280]",children:"Due Date"}),a.jsx("span",{className:"text-xs font-medium text-[#6b7280]",children:"Assignees"})]}),f?a.jsx("div",{className:"divide-y divide-border",children:[1,2,3,4].map(b=>a.jsxs("div",{className:R("grid items-center px-6 py-3 gap-4",dp),children:[a.jsx(oe,{className:"h-4 w-14"}),a.jsx(oe,{className:"h-4 w-56"}),a.jsx(oe,{className:"h-5 w-20"}),a.jsx(oe,{className:"h-4 w-16"}),a.jsx(oe,{className:"h-4 w-20"}),a.jsx(oe,{className:"h-4 w-24"}),a.jsx(oe,{className:"h-6 w-16"})]},b))}):u.length===0?a.jsx("div",{className:"flex flex-col items-center justify-center py-16 text-center",children:a.jsx("p",{className:"text-sm font-medium mb-1",children:"No issues yet"})}):a.jsx(au,{delayDuration:200,children:a.jsx(aJ,{issues:v,childrenMap:x,statuses:t,statusLabels:h,statusColorMap:g,sprints:m,totalCount:j})})]})}),!f&&j>0&&a.jsx("div",{className:"flex items-center px-6 py-3 border-t border-border",children:a.jsxs("span",{className:"text-xs text-muted-foreground",children:[j," issue",j!==1?"s":""]})})]})})}function Lc(e,t){const r=e.start_date?new Date(e.start_date):new Date(e.due_date),n=e.due_date?Pr(new Date(e.due_date),1):Pr(r,1);return{id:e.id,name:`${e.identifier} ${e.title}`,startAt:r,endAt:n,status:{id:e.status,name:e.status,color:t}}}function iJ({token:e,statuses:t}){const[r,n]=p.useState("monthly"),s=p.useRef(null),{data:i=[]}=ev(e),{data:o=[]}=yP(e);p.useEffect(()=>{const m=requestAnimationFrame(()=>{var j;const h=(j=s.current)==null?void 0:j.querySelector(".gantt");if(!h)return;const g=new Date,x=g.getFullYear()-1,v=300;let y;if(r==="daily")y=Math.floor((g.getTime()-new Date(x,0,1).getTime())/864e5)*50;else{const b=r==="monthly"?150:100,N=(g.getFullYear()-x)*12+g.getMonth(),k=new Date(g.getFullYear(),g.getMonth()+1,0).getDate();y=N*b+(g.getDate()-1)/k*b}h.scrollLeft=Math.max(0,y-(h.clientWidth-v)/2)});return()=>cancelAnimationFrame(m)},[r]);const l=Object.fromEntries(t.map(m=>[m.key,m.color])),c=i.filter(m=>m.due_date),d=i.filter(m=>!m.due_date),u={},f=[];for(const m of c)m.sprint_id?(u[m.sprint_id]||(u[m.sprint_id]=[]),u[m.sprint_id].push(m)):f.push(m);return a.jsxs("div",{className:"flex flex-col h-full min-h-0",children:[a.jsx("div",{className:"flex items-center px-6 py-3 border-b border-border shrink-0 bg-white dark:bg-zinc-950",children:a.jsx("div",{className:"flex items-center gap-1 bg-muted rounded-md p-0.5",children:["daily","monthly","quarterly"].map(m=>a.jsx("button",{onClick:()=>n(m),className:`px-3 py-1 rounded text-xs font-medium transition-colors capitalize ${r===m?"bg-white dark:bg-zinc-900 text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"}`,children:m},m))})}),a.jsx("div",{ref:s,className:"flex-1 min-h-0 overflow-hidden",children:a.jsxs(JZ,{range:r,zoom:100,className:"h-full bg-white dark:bg-zinc-950",children:[a.jsxs(GZ,{children:[o.map(m=>{const h=u[m.id]??[];return a.jsx(qm,{name:m.name,children:h.map(g=>a.jsx(Um,{feature:Lc(g,l[g.status]??"#94a3b8")},g.id))},m.id)}),f.length>0&&a.jsx(qm,{name:"No Sprint",children:f.map(m=>a.jsx(Um,{feature:Lc(m,l[m.status]??"#94a3b8")},m.id))}),d.length>0&&a.jsx(qm,{name:"Unscheduled",children:d.map(m=>a.jsx(Um,{feature:{id:m.id,name:`${m.identifier} ${m.title}`,startAt:new Date,endAt:new Date,status:{id:m.status,name:m.status,color:l[m.status]??"#94a3b8"}}},m.id))})]}),a.jsxs(eJ,{children:[a.jsx(KZ,{}),a.jsxs(ZZ,{children:[o.map(m=>a.jsx(Hm,{children:(u[m.id]??[]).map(h=>a.jsx("div",{className:"flex",children:a.jsx(Hw,{...Lc(h,l[h.status]??"#94a3b8")})},h.id))},m.id)),f.length>0&&a.jsx(Hm,{children:f.map(m=>a.jsx("div",{className:"flex",children:a.jsx(Hw,{...Lc(m,l[m.status]??"#94a3b8")})},m.id))}),d.length>0&&a.jsx(Hm,{children:d.map(m=>a.jsx("div",{style:{height:"var(--gantt-row-height)"}},m.id))})]}),o.filter(m=>m.end_date).map(m=>a.jsx(vP,{id:m.id,date:new Date(m.end_date),label:`${m.name} end`},m.id)),a.jsx(tJ,{})]})]})})]})}function oJ(){const{token:e}=Ut(),[t,r]=p.useState("board"),{data:n,isLoading:s,isError:i}=rJ(e??""),{data:o}=ev(e??"");if(!e)return null;if(s)return a.jsx("div",{className:"min-h-screen flex items-center justify-center",children:a.jsx("span",{className:"text-sm text-muted-foreground",children:"Loading…"})});if(i||!n)return a.jsxs("div",{className:"min-h-screen flex flex-col items-center justify-center gap-3",children:[a.jsx("p",{className:"text-lg font-semibold",children:"Link not found"}),a.jsx("p",{className:"text-sm text-muted-foreground",children:"This share link is invalid or has been revoked."})]});const l=[{key:"board",label:"Board"},{key:"issues",label:"Issues"},{key:"timeline",label:"Timeline"}];return a.jsxs("div",{className:"h-screen flex flex-col bg-background overflow-hidden",children:[a.jsx("header",{className:"border-b border-border px-6 py-3 bg-white dark:bg-card shrink-0",children:a.jsxs("div",{className:"flex items-center gap-3",children:[n.icon&&a.jsx("span",{className:"text-xl",children:n.icon}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("span",{className:"text-xs font-mono text-indigo-700 dark:text-indigo-300 bg-indigo-50 dark:bg-indigo-950/50 border border-indigo-200 dark:border-indigo-800 px-2 py-0.5 rounded",children:n.identifier}),a.jsx("h1",{className:"text-sm font-semibold",children:n.name})]}),a.jsx("span",{className:"ml-auto text-xs text-muted-foreground",children:"Read-only view"})]})}),a.jsx("div",{className:"border-b border-border bg-white dark:bg-card px-6 shrink-0",children:a.jsx("div",{className:"flex -mb-px",children:l.map(({key:c,label:d})=>a.jsx("button",{onClick:()=>r(c),className:`px-3 py-2 text-sm border-b-2 transition-colors ${t===c?"border-foreground text-foreground font-medium":"border-transparent text-muted-foreground hover:text-foreground"}`,children:d},c))})}),a.jsxs("div",{className:`flex-1 min-h-0 ${t==="timeline"?"overflow-hidden":"overflow-auto"}`,children:[t==="board"&&a.jsx(oN,{issues:o??[],projectId:n.id,statuses:n.statuses,readOnly:!0}),t==="issues"&&a.jsx(sJ,{token:e,statuses:n.statuses}),t==="timeline"&&a.jsx(iJ,{token:e,statuses:n.statuses})]})]})}function lJ(){const[e,t]=p.useState(null),r=Nt(),n=Oe();return p.useEffect(()=>{const s=new URLSearchParams(window.location.search);if(history.replaceState(null,"",window.location.pathname),s.get("linked")==="true"){r("/profile?linked=true",{replace:!0});return}const o=s.get("error");if(o){t(decodeURIComponent(o));return}const l=s.get("code");if(!l){t("No authorization code received from Google sign-in");return}(async()=>{const d=await fetch(`${vi}/auth/google/exchange`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:l})});if(!d.ok)throw new Error(`Code exchange failed (${d.status}). Please try signing in again.`);const{token:u}=await d.json(),f=await fetch(`${vi}/admin/users/me`,{headers:{Authorization:`Bearer ${u}`}});if(!f.ok)throw new Error(`Failed to load user profile (${f.status})`);const m=await f.json();n.login({id:m.id,email:m.email,first_name:m.first_name??"",last_name:m.last_name??""},u),r("/",{replace:!0})})().catch(d=>t(d.message??"Failed to complete sign-in"))},[]),e?a.jsx("div",{className:"min-h-screen bg-[hsl(60_5%_96%)] dark:bg-background flex items-center justify-center p-4",children:a.jsxs("div",{className:"w-full max-w-[360px] bg-white dark:bg-card border border-border rounded-xl p-6 text-center space-y-4",children:[a.jsx("p",{className:"text-sm font-medium",children:"Sign-in failed"}),a.jsx("p",{className:"text-sm text-muted-foreground",children:e}),a.jsx(Va,{to:"/login",children:a.jsx(J,{variant:"outline",size:"sm",children:"Back to login"})})]})}):a.jsx("div",{className:"min-h-screen flex items-center justify-center",children:a.jsx("span",{className:"text-sm text-muted-foreground",children:"Completing sign-in..."})})}function cJ(){return De({queryKey:["me"],queryFn:()=>ae.get("/admin/users/me")})}function dJ(){const e=Ne(),{updateLocalUser:t}=Oe();return je({mutationFn:r=>ae.patch("/admin/users/me",r),onSuccess:({user:r})=>{t({first_name:r.first_name??"",last_name:r.last_name??"",designation:r.designation,phone_number:r.phone_number}),e.invalidateQueries({queryKey:["me"]})}})}function uJ(){const e=Ne(),{updateLocalUser:t}=Oe();return je({mutationFn:r=>{const n=new FormData;return n.append("avatar",r),ae.upload("/admin/users/me/avatar",n)},onSuccess:({user:r})=>{t({avatar_url:r.avatar_url}),e.invalidateQueries({queryKey:["me"]})}})}function fJ(){const e=Ne(),{updateLocalUser:t}=Oe();return je({mutationFn:()=>ae.delete("/admin/users/me/avatar"),onSuccess:()=>{t({avatar_url:null}),e.invalidateQueries({queryKey:["me"]})}})}function mJ(){const e=Ne();return je({mutationFn:()=>ae.delete("/admin/users/me/google"),onSuccess:()=>{e.invalidateQueries({queryKey:["me"]})}})}function Kw({className:e}){return a.jsxs("svg",{className:e??"size-4",viewBox:"0 0 24 24","aria-hidden":"true",children:[a.jsx("path",{d:"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z",fill:"#4285F4"}),a.jsx("path",{d:"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z",fill:"#34A853"}),a.jsx("path",{d:"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l3.66-2.84z",fill:"#FBBC05"}),a.jsx("path",{d:"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z",fill:"#EA4335"})]})}function hJ(){var C,P,A,M;const[e,t]=fp(),{user:r}=Oe(),{data:n,isLoading:s}=cJ(),i=dJ(),o=uJ(),l=fJ(),c=mJ(),d=p.useRef(null),[u,f]=p.useState(""),[m,h]=p.useState(""),[g,x]=p.useState(""),[v,y]=p.useState("");p.useEffect(()=>{n&&(f(n.first_name??""),h(n.last_name??""),x(n.designation??""),y(n.phone_number??""))},[n]),p.useEffect(()=>{e.get("linked")==="true"&&(L.success("Google account connected successfully"),t(_=>(_.delete("linked"),_),{replace:!0}))},[e,t]);const j=r&&(`${((C=r.first_name)==null?void 0:C[0])??""}${((P=r.last_name)==null?void 0:P[0])??""}`.toUpperCase()||((M=(A=r.email)==null?void 0:A[0])==null?void 0:M.toUpperCase()))||"?",b=_=>{var O;const E=(O=_.target.files)==null?void 0:O[0];E&&(o.mutate(E,{onSuccess:()=>L.success("Avatar updated"),onError:T=>L.error(T.message??"Failed to upload avatar")}),_.target.value="")},N=()=>{l.mutate(void 0,{onSuccess:()=>L.success("Avatar removed"),onError:_=>L.error(_.message??"Failed to remove avatar")})},k=()=>{i.mutate({first_name:u,last_name:m,designation:g||null,phone_number:v||null},{onSuccess:()=>L.success("Profile updated"),onError:_=>L.error(_.message??"Failed to update profile")})},w=async()=>{var _;try{const E=localStorage.getItem("meridian_token"),O=await fetch(`${vi}/auth/google/link`,{headers:{Authorization:`Bearer ${E}`}});if(!O.ok){const z=await O.json().catch(()=>({}));L.error(((_=z.error)==null?void 0:_.message)??"Failed to get Google auth URL");return}const{url:T}=await O.json();window.location.href=T}catch{L.error("Failed to initiate Google connection")}},S=()=>{c.mutate(void 0,{onSuccess:()=>L.success("Google account disconnected"),onError:_=>L.error(_.message??"Failed to unlink Google account")})};return a.jsx("div",{className:"p-2 h-full",children:a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl overflow-hidden flex flex-col h-full",children:[a.jsx("div",{className:"flex items-center justify-between px-6 py-4 border-b border-border shrink-0",children:a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx(uu,{className:"h-5 w-5 text-muted-foreground"}),a.jsxs("div",{children:[a.jsx("h1",{className:"text-base font-semibold",children:"Profile"}),a.jsx("p",{className:"text-xs text-muted-foreground",children:"Manage your personal details and account connections."})]})]})}),a.jsxs("div",{className:"flex-1 overflow-y-auto",children:[a.jsxs("div",{className:"flex items-center justify-between px-6 py-4 border-b border-border",children:[a.jsx("span",{className:"text-sm text-muted-foreground w-44 shrink-0",children:"Profile photo"}),a.jsxs("div",{className:"flex flex-1 items-center gap-4",children:[a.jsxs("div",{className:"relative",children:[a.jsxs(Ft,{className:"h-14 w-14 rounded-xl",children:[n!=null&&n.avatar_url?a.jsx(Vo,{src:n.avatar_url,alt:"Avatar",className:"object-cover"}):null,a.jsx(Bt,{className:"rounded-xl bg-foreground text-background text-base font-medium",children:j})]}),o.isPending&&a.jsx("div",{className:"absolute inset-0 rounded-xl bg-black/40 flex items-center justify-center",children:a.jsx("span",{className:"text-white text-[10px]",children:"…"})})]}),a.jsxs("div",{className:"flex gap-2",children:[a.jsxs(J,{variant:"outline",size:"sm",className:"h-8 gap-1.5",onClick:()=>{var _;return(_=d.current)==null?void 0:_.click()},disabled:o.isPending,children:[a.jsx(aE,{className:"size-3.5"}),"Change photo"]}),(n==null?void 0:n.avatar_url)&&a.jsxs(J,{variant:"ghost",size:"sm",className:"h-8 gap-1.5 text-muted-foreground hover:text-destructive",onClick:N,disabled:l.isPending,children:[a.jsx(an,{className:"size-3.5"}),"Remove"]})]}),a.jsx("input",{ref:d,type:"file",accept:"image/*",className:"hidden",onChange:b})]})]}),a.jsx("div",{className:"px-6 py-2 border-b border-border bg-muted/10",children:a.jsx("p",{className:"text-xs text-muted-foreground",children:"Personal information"})}),a.jsxs("div",{className:"grid grid-cols-[180px_1fr] items-center gap-4 px-6 py-3.5 border-b border-border",children:[a.jsx("span",{className:"text-sm text-muted-foreground",children:"First name"}),s?a.jsx(oe,{className:"h-8 w-56"}):a.jsx(_e,{value:u,onChange:_=>f(_.target.value),className:"h-8 w-64 text-sm bg-transparent",placeholder:"First name"})]}),a.jsxs("div",{className:"grid grid-cols-[180px_1fr] items-center gap-4 px-6 py-3.5 border-b border-border",children:[a.jsx("span",{className:"text-sm text-muted-foreground",children:"Last name"}),s?a.jsx(oe,{className:"h-8 w-56"}):a.jsx(_e,{value:m,onChange:_=>h(_.target.value),className:"h-8 w-64 text-sm bg-transparent",placeholder:"Last name"})]}),a.jsxs("div",{className:"grid grid-cols-[180px_1fr] items-center gap-4 px-6 py-3.5 border-b border-border",children:[a.jsx("span",{className:"text-sm text-muted-foreground",children:"Email"}),s?a.jsx(oe,{className:"h-4 w-48"}):a.jsx("span",{className:"text-sm text-muted-foreground",children:(n==null?void 0:n.email)??"—"})]}),a.jsxs("div",{className:"grid grid-cols-[180px_1fr] items-center gap-4 px-6 py-3.5 border-b border-border",children:[a.jsx("span",{className:"text-sm text-muted-foreground",children:"Designation"}),s?a.jsx(oe,{className:"h-8 w-56"}):a.jsx(_e,{value:g,onChange:_=>x(_.target.value),className:"h-8 w-64 text-sm bg-transparent",placeholder:"e.g. Software Engineer"})]}),a.jsxs("div",{className:"grid grid-cols-[180px_1fr] items-center gap-4 px-6 py-3.5 border-b border-border",children:[a.jsx("span",{className:"text-sm text-muted-foreground",children:"Phone number"}),s?a.jsx(oe,{className:"h-8 w-56"}):a.jsx(_e,{value:v,onChange:_=>y(_.target.value),className:"h-8 w-64 text-sm bg-transparent",placeholder:"+1 555 000 0000"})]}),a.jsx("div",{className:"flex justify-end px-6 py-4 border-b border-border",children:a.jsx(J,{size:"sm",onClick:k,disabled:i.isPending,children:i.isPending?"Saving…":"Save changes"})}),a.jsx("div",{className:"px-6 py-2 border-b border-border bg-muted/10",children:a.jsx("p",{className:"text-xs text-muted-foreground",children:"Connections"})}),a.jsxs("div",{className:"grid grid-cols-[180px_1fr] items-center gap-4 px-6 py-3.5 border-b border-border",children:[a.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[a.jsx(Kw,{className:"size-3.5 shrink-0"}),"Google"]}),s?a.jsx(oe,{className:"h-8 w-48"}):n!=null&&n.google_id?a.jsxs("div",{className:"flex items-center gap-4",children:[a.jsxs("div",{className:"flex items-center gap-1.5 text-sm",children:[a.jsx(rs,{className:"size-3.5 text-emerald-500 shrink-0"}),a.jsx("span",{className:"text-foreground font-medium",children:"Connected"}),a.jsxs("span",{className:"text-muted-foreground",children:["· ",n.email]})]}),a.jsxs(J,{variant:"ghost",size:"sm",className:"h-7 gap-1.5 text-muted-foreground hover:text-destructive ml-auto",onClick:S,disabled:c.isPending,children:[a.jsx(kp,{className:"size-3.5"}),"Disconnect"]})]}):a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx("span",{className:"text-sm text-muted-foreground",children:"Not connected"}),a.jsxs(J,{variant:"outline",size:"sm",className:"h-7 gap-1.5",onClick:w,children:[a.jsx(Kw,{className:"size-3.5"}),"Connect"]})]})]})]})]})})}const pJ=p.lazy(()=>Tj(()=>import("./ProjectTimelinePage-CCZ520P0.js"),__vite__mapDeps([0,1,2,3,4,5])).then(e=>({default:e.ProjectTimelinePage}))),gJ=p.lazy(()=>Tj(()=>import("./WorkspaceReportingPage-DQXCrt-x.js"),__vite__mapDeps([6,1,2,3,4,5])).then(e=>({default:e.WorkspaceReportingPage})));function ii({children:e}){const{isAuthenticated:t}=Oe();return t?a.jsx(a.Fragment,{children:e}):a.jsx(Cs,{to:"/login",replace:!0})}function xJ({children:e}){var r;const{user:t}=Oe();return(r=t==null?void 0:t.roles)!=null&&r.includes("super-admin")?a.jsx(a.Fragment,{children:e}):a.jsx(Cs,{to:"/",replace:!0})}function Yw({children:e}){const{isAuthenticated:t}=Oe(),{data:r}=pu(),n=tu();return t?a.jsx(Cs,{to:"/",replace:!0}):r!=null&&r.needsSetup&&n.pathname==="/login"?a.jsx(Cs,{to:"/register",replace:!0}):r&&!r.needsSetup&&n.pathname==="/register"?a.jsx(Cs,{to:"/login",replace:!0}):a.jsx(a.Fragment,{children:e})}function vJ(){const{workspace:e,setWorkspace:t}=Oe(),r=Nt(),{data:n,isLoading:s}=fu(!e);return p.useEffect(()=>{if(e){r(`/${e.slug}/projects`,{replace:!0});return}if(!s&&n!==void 0)if(n.length>0){const i=n[0];t({id:i.id,name:i.name,slug:i.slug}),r(`/${i.slug}/projects`,{replace:!0})}else r("/setup",{replace:!0})},[e,n,s,r,t]),a.jsx("div",{className:"min-h-screen flex items-center justify-center",children:a.jsx("span",{className:"text-sm text-muted-foreground",children:"Loading..."})})}function yJ(){const{workspace:e}=Ut(),{workspace:t,setWorkspace:r}=Oe();iD();const n=Nt(),{data:s,isLoading:i,isFetching:o}=fu();return p.useEffect(()=>{if(i||!s)return;const l=s.find(c=>c.slug===e);l?l.id!==(t==null?void 0:t.id)&&r({id:l.id,name:l.name,slug:l.slug}):s.length>0?n(`/${s[0].slug}/projects`,{replace:!0}):!t&&!o&&n("/setup",{replace:!0})},[s,e,i,o,t==null?void 0:t.id,n,r]),i||!t||t.slug!==e?a.jsx("div",{className:"min-h-screen flex items-center justify-center",children:a.jsx("span",{className:"text-sm text-muted-foreground",children:"Loading..."})}):a.jsxs(a.Fragment,{children:[a.jsx(BD,{}),a.jsx(ST,{})]})}function bJ(){return a.jsxs(PP,{children:[a.jsx(Ue,{path:"/login",element:a.jsx(Yw,{children:a.jsx(CT,{})})}),a.jsx(Ue,{path:"/register",element:a.jsx(Yw,{children:a.jsx(_T,{})})}),a.jsx(Ue,{path:"/invite/:token",element:a.jsx(W$,{})}),a.jsx(Ue,{path:"/oauth/google/callback",element:a.jsx(lJ,{})}),a.jsx(Ue,{path:"/share/:token",element:a.jsx(oJ,{})}),a.jsx(Ue,{path:"/reporting",element:a.jsx(ii,{children:a.jsx(YD,{})}),children:a.jsx(Ue,{index:!0,element:a.jsx($X,{})})}),a.jsx(Ue,{path:"/org/settings",element:a.jsx(ii,{children:a.jsx(XD,{})}),children:a.jsx(Ue,{index:!0,element:a.jsx(GX,{})})}),a.jsx(Ue,{path:"/profile",element:a.jsx(ii,{children:a.jsx(JD,{})}),children:a.jsx(Ue,{index:!0,element:a.jsx(hJ,{})})}),a.jsx(Ue,{path:"/setup",element:a.jsx(ii,{children:a.jsx(OT,{})})}),a.jsx(Ue,{index:!0,element:a.jsx(ii,{children:a.jsx(vJ,{})})}),a.jsxs(Ue,{path:"/:workspace",element:a.jsx(ii,{children:a.jsx(yJ,{})}),children:[a.jsx(Ue,{index:!0,element:a.jsx(Cs,{to:"projects",replace:!0})}),a.jsx(Ue,{path:"projects",element:a.jsx(R3,{})}),a.jsxs(Ue,{path:"projects/:projectKey",element:a.jsx(qD,{}),children:[a.jsx(Ue,{path:"board",element:a.jsx(BR,{})}),a.jsx(Ue,{path:"issues",element:a.jsx(WR,{})}),a.jsx(Ue,{path:"issues/new",element:a.jsx(x$,{})}),a.jsx(Ue,{path:"issues/:issueId",element:a.jsx(f$,{})}),a.jsx(Ue,{path:"sprints",element:a.jsx(k$,{})}),a.jsx(Ue,{path:"timeline",element:a.jsx(p.Suspense,{fallback:a.jsx("div",{className:"flex items-center justify-center h-full text-sm text-muted-foreground",children:"Loading…"}),children:a.jsx(pJ,{})})}),a.jsx(Ue,{path:"access",element:a.jsx(l$,{})}),a.jsx(Ue,{path:"reports",element:a.jsx(zX,{})}),a.jsx(Ue,{path:"activity",element:a.jsx(WX,{})})]}),a.jsx(Ue,{path:"notifications",element:a.jsx(b$,{})}),a.jsx(Ue,{path:"reporting",element:a.jsx(p.Suspense,{fallback:a.jsx("div",{className:"flex items-center justify-center h-full text-sm text-muted-foreground",children:"Loading…"}),children:a.jsx(gJ,{})})}),a.jsx(Ue,{path:"settings",element:a.jsx($$,{})}),a.jsx(Ue,{path:"roles",element:a.jsx(xJ,{children:a.jsx(F$,{})})})]}),a.jsx(Ue,{path:"*",element:a.jsx(Cs,{to:"/",replace:!0})})]})}window.__React=D;window.__ReactJsxRuntime=kP;const wJ=new SP({defaultOptions:{queries:{staleTime:1e3*30,retry:1}}});(async()=>{let e=[];try{const r=await import("/admin-extensions.js");Array.isArray(r==null?void 0:r.default)&&(e=r.default)}catch{}Dj(document.getElementById("root")).render(a.jsx(p.StrictMode,{children:a.jsx(VA,{widgets:[...LE,...e],children:a.jsx(hA,{children:a.jsxs(CP,{client:wJ,children:[a.jsx(pA,{children:a.jsx(gA,{children:a.jsx(MP,{children:a.jsxs(au,{delayDuration:300,children:[a.jsx(bJ,{}),a.jsx(nA,{position:"bottom-right",toastOptions:{classNames:{toast:"bg-white dark:bg-card border border-border text-foreground text-sm rounded-lg shadow-sm",description:"text-muted-foreground"}}})]})})})}),a.jsx(MM,{initialIsOpen:!1})]})})})}))})();export{J as B,Iu as C,JZ as G,YN as I,nt as P,$X as R,Fr as W,Nl as a,Zi as b,eo as c,Gp as d,Vp as e,GZ as f,qm as g,Um as h,eJ as i,KZ as j,ZZ as k,Hm as l,Hw as m,vP as n,tJ as o,lN as p,Pr as q,de as r,sN as s,L as t,ka as u,vt as v,ae as w,Oe as x};
|
|
585
|
+
*/var lc=p;function oG(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var lG=typeof Object.is=="function"?Object.is:oG,cG=lc.useSyncExternalStore,dG=lc.useRef,uG=lc.useEffect,fG=lc.useMemo,mG=lc.useDebugValue;iG.useSyncExternalStoreWithSelector=function(e,t,r,n,s){var i=dG(null);if(i.current===null){var o={hasValue:!1,value:null};i.current=o}else o=i.current;i=fG(function(){function c(h){if(!d){if(d=!0,u=h,h=n(h),s!==void 0&&o.hasValue){var g=o.value;if(s(g,h))return f=g}return f=h}if(g=f,lG(u,h))return g;var x=n(h);return s!==void 0&&s(g,x)?(u=h,g):(u=h,f=x)}var d=!1,u,f,m=r===void 0?null:r;return[function(){return c(t())},m===null?void 0:function(){return c(m())}]},[t,r,n,s]);var l=cG(e,i[0],i[1]);return uG(function(){o.hasValue=!0,o.value=l},[l]),mG(l),l};function hG(e){e()}function pG(){let e=null,t=null;return{clear(){e=null,t=null},notify(){hG(()=>{let r=e;for(;r;)r.callback(),r=r.next})},get(){const r=[];let n=e;for(;n;)r.push(n),n=n.next;return r},subscribe(r){let n=!0;const s=t={callback:r,next:null,prev:t};return s.prev?s.prev.next=s:e=s,function(){!n||e===null||(n=!1,s.next?s.next.prev=s.prev:t=s.prev,s.prev?s.prev.next=s.next:e=s.next)}}}}var kw={notify(){},get:()=>[]};function gG(e,t){let r,n=kw,s=0,i=!1;function o(x){u();const v=n.subscribe(x);let y=!1;return()=>{y||(y=!0,v(),f())}}function l(){n.notify()}function c(){g.onStateChange&&g.onStateChange()}function d(){return i}function u(){s++,r||(r=e.subscribe(c),n=pG())}function f(){s--,r&&s===0&&(r(),r=void 0,n.clear(),n=kw)}function m(){i||(i=!0,u())}function h(){i&&(i=!1,f())}const g={addNestedSub:o,notifyNestedSubs:l,handleChangeWrapper:c,isSubscribed:d,trySubscribe:m,tryUnsubscribe:h,getListeners:()=>n};return g}var xG=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",vG=xG(),yG=()=>typeof navigator<"u"&&navigator.product==="ReactNative",bG=yG(),wG=()=>vG||bG?p.useLayoutEffect:p.useEffect,jG=wG();function Sw(e,t){return e===t?e!==0||t!==0||1/e===1/t:e!==e&&t!==t}function NG(e,t){if(Sw(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;const r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(let s=0;s<r.length;s++)if(!Object.prototype.hasOwnProperty.call(t,r[s])||!Sw(e[r[s]],t[r[s]]))return!1;return!0}var $m=Symbol.for("react-redux-context"),zm=typeof globalThis<"u"?globalThis:{};function kG(){if(!p.createContext)return{};const e=zm[$m]??(zm[$m]=new Map);let t=e.get(p.createContext);return t||(t=p.createContext(null),e.set(p.createContext,t)),t}var SG=kG();function CG(e){const{children:t,context:r,serverState:n,store:s}=e,i=p.useMemo(()=>{const c=gG(s);return{store:s,subscription:c,getServerState:n?()=>n:void 0}},[s,n]),o=p.useMemo(()=>s.getState(),[s]);jG(()=>{const{subscription:c}=i;return c.onStateChange=c.notifyNestedSubs,c.trySubscribe(),o!==s.getState()&&c.notifyNestedSubs(),()=>{c.tryUnsubscribe(),c.onStateChange=void 0}},[i,o]);const l=r||SG;return p.createElement(l.Provider,{value:i},t)}var _G=CG,OG=new Set(["axisLine","tickLine","activeBar","activeDot","activeLabel","activeShape","allowEscapeViewBox","background","cursor","dot","label","line","margin","padding","position","shape","style","tick","wrapperStyle","radius"]);function PG(e,t){return e==null&&t==null?!0:typeof e=="number"&&typeof t=="number"?e===t||e!==e&&t!==t:e===t}function Ux(e,t){var r=new Set([...Object.keys(e),...Object.keys(t)]);for(var n of r)if(OG.has(n)){if(e[n]==null&&t[n]==null)continue;if(!NG(e[n],t[n]))return!1}else if(!PG(e[n],t[n]))return!1;return!0}function Qs(e,t){var r,n;return(r=(n=e.graphicalItems.cartesianItems.find(s=>s.id===t))===null||n===void 0?void 0:n.xAxisId)!==null&&r!==void 0?r:oO}function Zs(e,t){var r,n;return(r=(n=e.graphicalItems.cartesianItems.find(s=>s.id===t))===null||n===void 0?void 0:n.yAxisId)!==null&&r!==void 0?r:oO}var MG="Invariant failed";function AG(e,t){throw new Error(MG)}function Qh(){return Qh=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Qh.apply(null,arguments)}function Kd(e){return p.createElement(yK,Qh({shapeType:"rectangle",activeClassName:"recharts-active-bar"},e))}var EG=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return(n,s)=>{if(ge(t))return t;var i=ge(n)||Wt(n);return i?t(n,s):(i||AG(),r)}},DG=(e,t,r)=>r,TG=(e,t)=>t,cc=U([vx,TG],(e,t)=>e.filter(r=>r.type==="bar").find(r=>r.id===t)),IG=U([cc],e=>e==null?void 0:e.maxBarSize),RG=(e,t,r,n)=>n,$G=U([Ze,vx,Qs,Zs,DG],(e,t,r,n,s)=>t.filter(i=>e==="horizontal"?i.xAxisId===r:i.yAxisId===n).filter(i=>i.isPanorama===s).filter(i=>i.hide===!1).filter(i=>i.type==="bar")),zG=(e,t,r)=>{var n=Ze(e),s=Qs(e,t),i=Zs(e,t);if(!(s==null||i==null))return n==="horizontal"?Hh(e,"yAxis",i,r):Hh(e,"xAxis",s,r)},LG=(e,t)=>{var r=Ze(e),n=Qs(e,t),s=Zs(e,t);if(!(n==null||s==null))return r==="horizontal"?_0(e,"xAxis",n):_0(e,"yAxis",s)},FG=U([$G,k7,LG],GK),BG=(e,t,r)=>{var n,s,i=cc(e,t);if(i==null)return 0;var o=Qs(e,t),l=Zs(e,t);if(o==null||l==null)return 0;var c=Ze(e),d=hC(e),{maxBarSize:u}=i,f=Wt(u)?d:u,m,h;return c==="horizontal"?(m=Ei(e,"xAxis",o,r),h=Ai(e,"xAxis",o,r)):(m=Ei(e,"yAxis",l,r),h=Ai(e,"yAxis",l,r)),(n=(s=pd(m,h,!0))!==null&&s!==void 0?s:f)!==null&&n!==void 0?n:0},gO=(e,t,r)=>{var n=Ze(e),s=Qs(e,t),i=Zs(e,t);if(!(s==null||i==null)){var o,l;return n==="horizontal"?(o=Ei(e,"xAxis",s,r),l=Ai(e,"xAxis",s,r)):(o=Ei(e,"yAxis",i,r),l=Ai(e,"yAxis",i,r)),pd(o,l)}},WG=U([FG,hC,N7,pC,BG,gO,IG],JK),UG=(e,t,r)=>{var n=Qs(e,t);if(n!=null)return Ei(e,"xAxis",n,r)},qG=(e,t,r)=>{var n=Zs(e,t);if(n!=null)return Ei(e,"yAxis",n,r)},HG=(e,t,r)=>{var n=Qs(e,t);if(n!=null)return Ai(e,"xAxis",n,r)},KG=(e,t,r)=>{var n=Zs(e,t);if(n!=null)return Ai(e,"yAxis",n,r)},YG=U([WG,cc],tY),GG=U([zG,cc],eY),VG=U([qt,Eg,UG,qG,HG,KG,YG,Ze,p7,gO,GG,cc,RG],(e,t,r,n,s,i,o,l,c,d,u,f,m)=>{var{chartData:h,dataStartIndex:g,dataEndIndex:x}=c;if(!(f==null||o==null||t==null||l!=="horizontal"&&l!=="vertical"||r==null||n==null||s==null||i==null||d==null)){var{data:v}=f,y;if(v!=null&&v.length>0?y=v:y=h==null?void 0:h.slice(g,x+1),y!=null)return NV({layout:l,barSettings:f,pos:o,parentViewBox:t,bandSize:d,xAxis:r,yAxis:n,xAxisTicks:s,yAxisTicks:i,stackedData:u,displayedData:y,offset:e,cells:m,dataStartIndex:g})}}),XG=["index"];function Zh(){return Zh=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Zh.apply(null,arguments)}function QG(e,t){if(e==null)return{};var r,n,s=ZG(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}function ZG(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}var xO=p.createContext(void 0),JG=e=>{var t=p.useContext(xO);if(t!=null)return t.stackId;if(e!=null)return CL(e)},eV=(e,t)=>"recharts-bar-stack-clip-path-".concat(e,"-").concat(t),tV=e=>{var t=p.useContext(xO);if(t!=null){var{stackId:r}=t;return"url(#".concat(eV(r,e),")")}},vO=e=>{var{index:t}=e,r=QG(e,XG),n=tV(t);return p.createElement(ha,Zh({className:"recharts-bar-stack-layer",clipPath:n},r))},rV=["onMouseEnter","onMouseLeave","onClick"],nV=["value","background","tooltipPosition"],aV=["id"],sV=["onMouseEnter","onClick","onMouseLeave"];function wa(){return wa=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},wa.apply(null,arguments)}function Cw(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),r.push.apply(r,n)}return r}function fr(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Cw(Object(r),!0).forEach(function(n){iV(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Cw(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function iV(e,t,r){return(t=oV(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function oV(e){var t=lV(e,"string");return typeof t=="symbol"?t:t+""}function lV(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Yd(e,t){if(e==null)return{};var r,n,s=cV(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}function cV(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}var dV=e=>{var{dataKey:t,name:r,fill:n,legendType:s,hide:i}=e;return[{inactive:i,dataKey:t,type:s,color:n,value:WS(r,t),payload:e}]},uV=p.memo(e=>{var{dataKey:t,stroke:r,strokeWidth:n,fill:s,name:i,hide:o,unit:l,tooltipType:c,id:d}=e,u={dataDefinedOnItem:void 0,getPosition:ro,settings:{stroke:r,strokeWidth:n,fill:s,dataKey:t,nameKey:void 0,name:WS(i,t),hide:o,type:c,color:s,unit:l,graphicalItemId:d}};return p.createElement(bK,{tooltipEntrySettings:u})});function fV(e){var t=ke(Di),{data:r,dataKey:n,background:s,allOtherBarProps:i}=e,{onMouseEnter:o,onMouseLeave:l,onClick:c}=i,d=Yd(i,rV),u=nO(o,n,i.id),f=aO(l),m=sO(c,n,i.id);if(!s||r==null)return null;var h=cg(s);return p.createElement(Ta,{zIndex:rY(s,pr.barBackground)},r.map((g,x)=>{var{value:v,background:y,tooltipPosition:j}=g,b=Yd(g,nV);if(!y)return null;var N=u(g,x),k=f(g,x),w=m(g,x),S=fr(fr(fr(fr(fr({option:s,isActive:String(x)===t},b),{},{fill:"#eee"},y),h),hg(d,g,x)),{},{onMouseEnter:N,onMouseLeave:k,onClick:w,dataKey:n,index:x,className:"recharts-bar-background-rectangle"});return p.createElement(Kd,wa({key:"background-bar-".concat(x)},S))}))}function mV(e){var{showLabels:t,children:r,rects:n}=e,s=n==null?void 0:n.map(i=>{var o={x:i.x,y:i.y,width:i.width,lowerWidth:i.width,upperWidth:i.width,height:i.height};return fr(fr({},o),{},{value:i.value,payload:i.payload,parentViewBox:i.parentViewBox,viewBox:o,fill:i.fill})});return p.createElement(KH,{value:t?s:void 0},r)}function hV(e){var{shape:t,activeBar:r,baseProps:n,entry:s,index:i,dataKey:o}=e,l=ke(Di),c=ke(C_),d=r&&String(i)===l&&(c==null||o===c),u=d?r:t;return d?p.createElement(Ta,{zIndex:pr.activeBar},p.createElement(vO,{index:i},p.createElement(Kd,wa({},n,{name:String(n.name)},s,{isActive:d,option:u,index:i,dataKey:o})))):p.createElement(Kd,wa({},n,{name:String(n.name)},s,{isActive:d,option:u,index:i,dataKey:o}))}function pV(e){var{shape:t,baseProps:r,entry:n,index:s,dataKey:i}=e;return p.createElement(Kd,wa({},r,{name:String(r.name)},n,{isActive:!1,option:t,index:s,dataKey:i}))}function gV(e){var t,{data:r,props:n}=e,s=(t=ma(n))!==null&&t!==void 0?t:{},{id:i}=s,o=Yd(s,aV),{shape:l,dataKey:c,activeBar:d}=n,{onMouseEnter:u,onClick:f,onMouseLeave:m}=n,h=Yd(n,sV),g=nO(u,c,i),x=aO(m),v=sO(f,c,i);return r?p.createElement(p.Fragment,null,r.map((y,j)=>p.createElement(vO,wa({index:j,key:"rectangle-".concat(y==null?void 0:y.x,"-").concat(y==null?void 0:y.y,"-").concat(y==null?void 0:y.value,"-").concat(j),className:"recharts-bar-rectangle"},hg(h,y,j),{onMouseEnter:g(y,j),onMouseLeave:x(y,j),onClick:v(y,j)}),d?p.createElement(hV,{shape:l,activeBar:d,baseProps:o,entry:y,index:j,dataKey:c}):p.createElement(pV,{shape:l,baseProps:o,entry:y,index:j,dataKey:c})))):null}function xV(e){var{props:t,previousRectanglesRef:r}=e,{data:n,layout:s,isAnimationActive:i,animationBegin:o,animationDuration:l,animationEasing:c,onAnimationEnd:d,onAnimationStart:u}=t,f=r.current,m=zg(t,"recharts-bar-"),[h,g]=p.useState(!1),x=!h,v=p.useCallback(()=>{typeof d=="function"&&d(),g(!1)},[d]),y=p.useCallback(()=>{typeof u=="function"&&u(),g(!0)},[u]);return p.createElement(mV,{showLabels:x,rects:n},p.createElement($g,{animationId:m,begin:o,duration:l,isActive:i,easing:c,onAnimationEnd:v,onAnimationStart:y,key:m},j=>{var b=j===1?n:n==null?void 0:n.map((N,k)=>{var w=f&&f[k];if(w)return fr(fr({},N),{},{x:Jt(w.x,N.x,j),y:Jt(w.y,N.y,j),width:Jt(w.width,N.width,j),height:Jt(w.height,N.height,j)});if(s==="horizontal"){var S=Jt(0,N.height,j),C=Jt(N.stackedBarStart,N.y,j);return fr(fr({},N),{},{y:C,height:S})}var P=Jt(0,N.width,j),A=Jt(N.stackedBarStart,N.x,j);return fr(fr({},N),{},{width:P,x:A})});return j>0&&(r.current=b??null),b==null?null:p.createElement(ha,null,p.createElement(gV,{props:t,data:b}))}),p.createElement(VH,{label:t.label}),t.children)}function vV(e){var t=p.useRef(null);return p.createElement(xV,{previousRectanglesRef:t,props:e})}var yO=0,yV=(e,t)=>{var r=Array.isArray(e.value)?e.value[1]:e.value;return{x:e.x,y:e.y,value:r,errorVal:tr(e,t)}};class bV extends p.PureComponent{render(){var{hide:t,data:r,dataKey:n,className:s,xAxisId:i,yAxisId:o,needClip:l,background:c,id:d}=this.props;if(t||r==null)return null;var u=Qe("recharts-bar",s),f=d;return p.createElement(ha,{className:u,id:d},l&&p.createElement("defs",null,p.createElement(sG,{clipPathId:f,xAxisId:i,yAxisId:o})),p.createElement(ha,{className:"recharts-bar-rectangles",clipPath:l?"url(#clipPath-".concat(f,")"):void 0},p.createElement(fV,{data:r,dataKey:n,background:c,allOtherBarProps:this.props}),p.createElement(vV,this.props)))}}var wV={activeBar:!1,animationBegin:0,animationDuration:400,animationEasing:"ease",background:!1,hide:!1,isAnimationActive:"auto",label:!1,legendType:"rect",minPointSize:yO,xAxisId:0,yAxisId:0,zIndex:pr.bar};function jV(e){var{xAxisId:t,yAxisId:r,hide:n,legendType:s,minPointSize:i,activeBar:o,animationBegin:l,animationDuration:c,animationEasing:d,isAnimationActive:u}=e,{needClip:f}=pO(t,r),m=no(),h=Dr(),g=rK(e.children,$_),x=ke(j=>VG(j,e.id,h,g));if(m!=="vertical"&&m!=="horizontal")return null;var v,y=x==null?void 0:x[0];return y==null||y.height==null||y.width==null?v=0:v=m==="vertical"?y.height/2:y.width/2,p.createElement(aG,{xAxisId:t,yAxisId:r,data:x,dataPointFormatter:yV,errorBarOffset:v},p.createElement(bV,wa({},e,{layout:m,needClip:f,data:x,xAxisId:t,yAxisId:r,hide:n,legendType:s,minPointSize:i,activeBar:o,animationBegin:l,animationDuration:c,animationEasing:d,isAnimationActive:u})))}function NV(e){var{layout:t,barSettings:{dataKey:r,minPointSize:n},pos:s,bandSize:i,xAxis:o,yAxis:l,xAxisTicks:c,yAxisTicks:d,stackedData:u,displayedData:f,offset:m,cells:h,parentViewBox:g,dataStartIndex:x}=e,v=t==="horizontal"?l:o,y=u?v.scale.domain():null,j=_L({numericAxis:v}),b=v.scale.map(j);return f.map((N,k)=>{var w,S,C,P,A,M;if(u){var _=u[k+x];if(_==null)return null;w=wL(_,y)}else w=tr(N,r),Array.isArray(w)||(w=[j,w]);var E=EG(n,yO)(w[1],k);if(t==="horizontal"){var O,T=l.scale.map(w[0]),z=l.scale.map(w[1]);if(T==null||z==null)return null;S=Ry({axis:o,ticks:c,bandSize:i,offset:s.offset,entry:N,index:k}),C=(O=z??T)!==null&&O!==void 0?O:void 0,P=s.size;var B=T-z;if(A=Bn(B)?0:B,M={x:S,y:m.top,width:P,height:m.height},Math.abs(E)>0&&Math.abs(A)<Math.abs(E)){var Q=Cr(A||E)*(Math.abs(E)-Math.abs(A));C-=Q,A+=Q}}else{var K=o.scale.map(w[0]),Z=o.scale.map(w[1]);if(K==null||Z==null)return null;if(S=K,C=Ry({axis:l,ticks:d,bandSize:i,offset:s.offset,entry:N,index:k}),P=Z-K,A=s.size,M={x:m.left,y:C,width:m.width,height:A},Math.abs(E)>0&&Math.abs(P)<Math.abs(E)){var ee=Cr(P||E)*(Math.abs(E)-Math.abs(P));P+=ee}}if(S==null||C==null||P==null||A==null)return null;var $=fr(fr({},N),{},{stackedBarStart:b,x:S,y:C,width:P,height:A,value:u?w:w[1],payload:N,background:M,tooltipPosition:{x:S+P/2,y:C+A/2},parentViewBox:g},h&&h[k]&&h[k].props);return $}).filter(Boolean)}function kV(e){var t=qr(e,wV),r=JG(t.stackId),n=Dr();return p.createElement(CK,{id:t.id,type:"bar"},s=>p.createElement(p.Fragment,null,p.createElement(wK,{legendPayload:dV(t)}),p.createElement(uV,{dataKey:t.dataKey,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,tooltipType:t.tooltipType,id:s}),p.createElement(DK,{type:"bar",id:s,data:void 0,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,stackId:r,hide:t.hide,barSize:t.barSize,minPointSize:t.minPointSize,maxBarSize:t.maxBarSize,isPanorama:n}),p.createElement(Ta,{zIndex:t.zIndex},p.createElement(jV,wa({},t,{id:s})))))}var gl=p.memo(kV,Ux);gl.displayName="Bar";var SV=["domain","range"],CV=["domain","range"];function _w(e,t){if(e==null)return{};var r,n,s=_V(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}function _V(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function Ow(e,t){return e===t?!0:Array.isArray(e)&&e.length===2&&Array.isArray(t)&&t.length===2?e[0]===t[0]&&e[1]===t[1]:!1}function bO(e,t){if(e===t)return!0;var{domain:r,range:n}=e,s=_w(e,SV),{domain:i,range:o}=t,l=_w(t,CV);return!Ow(r,i)||!Ow(n,o)?!1:Ux(s,l)}var OV=["type"],PV=["dangerouslySetInnerHTML","ticks","scale"],MV=["id","scale"];function Jh(){return Jh=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Jh.apply(null,arguments)}function Pw(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),r.push.apply(r,n)}return r}function Mw(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Pw(Object(r),!0).forEach(function(n){AV(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Pw(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function AV(e,t,r){return(t=EV(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function EV(e){var t=DV(e,"string");return typeof t=="symbol"?t:t+""}function DV(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function ep(e,t){if(e==null)return{};var r,n,s=TV(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}function TV(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function IV(e){var t=kt(),r=p.useRef(null),n=JS(),{type:s}=e,i=ep(e,OV),o=jf(n,"xAxis",s),l=p.useMemo(()=>{if(o!=null)return Mw(Mw({},i),{},{type:o})},[i,o]);return p.useLayoutEffect(()=>{l!=null&&(r.current===null?t(zK(l)):r.current!==l&&t(LK({prev:r.current,next:l})),r.current=l)},[l,t]),p.useLayoutEffect(()=>()=>{r.current&&(t(FK(r.current)),r.current=null)},[t]),null}var RV=e=>{var{xAxisId:t,className:r}=e,n=ke(Eg),s=Dr(),i="xAxis",o=ke(y=>s_(y,i,t,s)),l=ke(y=>t_(y,t)),c=ke(y=>S9(y,t)),d=ke(y=>kC(y,t));if(l==null||c==null||d==null)return null;var{dangerouslySetInnerHTML:u,ticks:f,scale:m}=e,h=ep(e,PV),{id:g,scale:x}=d,v=ep(d,MV);return p.createElement(Wx,Jh({},h,v,{x:c.x,y:c.y,width:l.width,height:l.height,className:Qe("recharts-".concat(i," ").concat(i),r),viewBox:n,ticks:o,axisType:i}))},$V={allowDataOverflow:$t.allowDataOverflow,allowDecimals:$t.allowDecimals,allowDuplicatedCategory:$t.allowDuplicatedCategory,angle:$t.angle,axisLine:ua.axisLine,height:$t.height,hide:!1,includeHidden:$t.includeHidden,interval:$t.interval,label:!1,minTickGap:$t.minTickGap,mirror:$t.mirror,orientation:$t.orientation,padding:$t.padding,reversed:$t.reversed,scale:$t.scale,tick:$t.tick,tickCount:$t.tickCount,tickLine:ua.tickLine,tickSize:ua.tickSize,type:$t.type,xAxisId:0},zV=e=>{var t=qr(e,$V);return p.createElement(p.Fragment,null,p.createElement(IV,{allowDataOverflow:t.allowDataOverflow,allowDecimals:t.allowDecimals,allowDuplicatedCategory:t.allowDuplicatedCategory,angle:t.angle,dataKey:t.dataKey,domain:t.domain,height:t.height,hide:t.hide,id:t.xAxisId,includeHidden:t.includeHidden,interval:t.interval,minTickGap:t.minTickGap,mirror:t.mirror,name:t.name,orientation:t.orientation,padding:t.padding,reversed:t.reversed,scale:t.scale,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit}),p.createElement(RV,t))},xl=p.memo(zV,bO);xl.displayName="XAxis";var LV=["type"],FV=["dangerouslySetInnerHTML","ticks","scale"],BV=["id","scale"];function tp(){return tp=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},tp.apply(null,arguments)}function Aw(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),r.push.apply(r,n)}return r}function Ew(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Aw(Object(r),!0).forEach(function(n){WV(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Aw(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function WV(e,t,r){return(t=UV(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function UV(e){var t=qV(e,"string");return typeof t=="symbol"?t:t+""}function qV(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function rp(e,t){if(e==null)return{};var r,n,s=HV(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}function HV(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function KV(e){var t=kt(),r=p.useRef(null),n=JS(),{type:s}=e,i=rp(e,LV),o=jf(n,"yAxis",s),l=p.useMemo(()=>{if(o!=null)return Ew(Ew({},i),{},{type:o})},[o,i]);return p.useLayoutEffect(()=>{l!=null&&(r.current===null?t(BK(l)):r.current!==l&&t(WK({prev:r.current,next:l})),r.current=l)},[l,t]),p.useLayoutEffect(()=>()=>{r.current&&(t(UK(r.current)),r.current=null)},[t]),null}function YV(e){var{yAxisId:t,className:r,width:n,label:s}=e,i=p.useRef(null),o=p.useRef(null),l=ke(Eg),c=Dr(),d=kt(),u="yAxis",f=ke(w=>r_(w,t)),m=ke(w=>_9(w,t)),h=ke(w=>s_(w,u,t,c)),g=ke(w=>SC(w,t));if(p.useLayoutEffect(()=>{if(!(n!=="auto"||!f||zx(s)||p.isValidElement(s)||g==null)){var w=i.current;if(w){var S=w.getCalculatedWidth();Math.round(f.width)!==Math.round(S)&&d(qK({id:t,width:S}))}}},[h,f,d,s,t,n,g]),f==null||m==null||g==null)return null;var{dangerouslySetInnerHTML:x,ticks:v,scale:y}=e,j=rp(e,FV),{id:b,scale:N}=g,k=rp(g,BV);return p.createElement(Wx,tp({},j,k,{ref:i,labelRef:o,x:m.x,y:m.y,tickTextProps:n==="auto"?{width:void 0}:{width:n},width:f.width,height:f.height,className:Qe("recharts-".concat(u," ").concat(u),r),viewBox:l,ticks:h,axisType:u}))}var GV={allowDataOverflow:zt.allowDataOverflow,allowDecimals:zt.allowDecimals,allowDuplicatedCategory:zt.allowDuplicatedCategory,angle:zt.angle,axisLine:ua.axisLine,hide:!1,includeHidden:zt.includeHidden,interval:zt.interval,label:!1,minTickGap:zt.minTickGap,mirror:zt.mirror,orientation:zt.orientation,padding:zt.padding,reversed:zt.reversed,scale:zt.scale,tick:zt.tick,tickCount:zt.tickCount,tickLine:ua.tickLine,tickSize:ua.tickSize,type:zt.type,width:zt.width,yAxisId:0},VV=e=>{var t=qr(e,GV);return p.createElement(p.Fragment,null,p.createElement(KV,{interval:t.interval,id:t.yAxisId,scale:t.scale,type:t.type,domain:t.domain,allowDataOverflow:t.allowDataOverflow,dataKey:t.dataKey,allowDuplicatedCategory:t.allowDuplicatedCategory,allowDecimals:t.allowDecimals,tickCount:t.tickCount,padding:t.padding,includeHidden:t.includeHidden,reversed:t.reversed,ticks:t.ticks,width:t.width,orientation:t.orientation,mirror:t.mirror,hide:t.hide,unit:t.unit,name:t.name,angle:t.angle,minTickGap:t.minTickGap,tick:t.tick,tickFormatter:t.tickFormatter}),p.createElement(YV,t))},vl=p.memo(VV,bO);vl.displayName="YAxis";var XV=(e,t)=>t,qx=U([XV,Ze,jC,Yt,j_,Da,BU,qt],GU),Hx=e=>{var t=e.currentTarget.getBoundingClientRect(),r=t.width/e.currentTarget.offsetWidth,n=t.height/e.currentTarget.offsetHeight;return{chartX:Math.round((e.clientX-t.left)/r),chartY:Math.round((e.clientY-t.top)/n)}},wO=rn("mouseClick"),jO=Gl();jO.startListening({actionCreator:wO,effect:(e,t)=>{var r=e.payload,n=qx(t.getState(),Hx(r));(n==null?void 0:n.activeIndex)!=null&&t.dispatch(B9({activeIndex:n.activeIndex,activeDataKey:void 0,activeCoordinate:n.activeCoordinate}))}});var np=rn("mouseMove"),NO=Gl(),$c=null;NO.startListening({actionCreator:np,effect:(e,t)=>{var r=e.payload;$c!==null&&cancelAnimationFrame($c);var n=Hx(r);$c=requestAnimationFrame(()=>{var s=t.getState(),i=_x(s,s.tooltip.settings.shared);if(i==="axis"){var o=qx(s,n);(o==null?void 0:o.activeIndex)!=null?t.dispatch(m_({activeIndex:o.activeIndex,activeDataKey:void 0,activeCoordinate:o.activeCoordinate})):t.dispatch(f_())}$c=null})}});function QV(e,t){return t instanceof HTMLElement?"HTMLElement <".concat(t.tagName,' class="').concat(t.className,'">'):t===window?"global.window":e==="children"&&typeof t=="object"&&t!==null?"<<CHILDREN>>":t}var Dw={accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,barSize:void 0,className:void 0,maxBarSize:void 0,stackOffset:"none",syncId:void 0,syncMethod:"index",baseValue:void 0,reverseStackOrder:!1},kO=Er({name:"rootProps",initialState:Dw,reducers:{updateOptions:(e,t)=>{var r;e.accessibilityLayer=t.payload.accessibilityLayer,e.barCategoryGap=t.payload.barCategoryGap,e.barGap=(r=t.payload.barGap)!==null&&r!==void 0?r:Dw.barGap,e.barSize=t.payload.barSize,e.maxBarSize=t.payload.maxBarSize,e.stackOffset=t.payload.stackOffset,e.syncId=t.payload.syncId,e.syncMethod=t.payload.syncMethod,e.className=t.payload.className,e.baseValue=t.payload.baseValue,e.reverseStackOrder=t.payload.reverseStackOrder}}}),ZV=kO.reducer,{updateOptions:JV}=kO.actions,eX=null,tX={updatePolarOptions:(e,t)=>t.payload},SO=Er({name:"polarOptions",initialState:eX,reducers:tX}),{updatePolarOptions:QJ}=SO.actions,rX=SO.reducer,CO=rn("keyDown"),_O=rn("focus"),Kx=Gl();Kx.startListening({actionCreator:CO,effect:(e,t)=>{var r=t.getState(),n=r.rootProps.accessibilityLayer!==!1;if(n){var{keyboardInteraction:s}=r.tooltip,i=e.payload;if(!(i!=="ArrowRight"&&i!=="ArrowLeft"&&i!=="Enter")){var o=Ox(s,mo(r),ac(r),ic(r)),l=o==null?-1:Number(o);if(!(!Number.isFinite(l)||l<0)){var c=Da(r);if(i==="Enter"){var d=Fd(r,"axis","hover",String(s.index));t.dispatch(Yh({active:!s.active,activeIndex:s.index,activeCoordinate:d}));return}var u=A9(r),f=u==="left-to-right"?1:-1,m=i==="ArrowRight"?1:-1,h=l+m*f;if(!(c==null||h>=c.length||h<0)){var g=Fd(r,"axis","hover",String(h));t.dispatch(Yh({active:!0,activeIndex:h.toString(),activeCoordinate:g}))}}}}}});Kx.startListening({actionCreator:_O,effect:(e,t)=>{var r=t.getState(),n=r.rootProps.accessibilityLayer!==!1;if(n){var{keyboardInteraction:s}=r.tooltip;if(!s.active&&s.index==null){var i="0",o=Fd(r,"axis","hover",String(i));t.dispatch(Yh({active:!0,activeIndex:i,activeCoordinate:o}))}}}});var Vr=rn("externalEvent"),OO=Gl(),Lm=new Map;OO.startListening({actionCreator:Vr,effect:(e,t)=>{var{handler:r,reactEvent:n}=e.payload;if(r!=null){n.persist();var s=n.type,i=Lm.get(s);i!==void 0&&cancelAnimationFrame(i);var o=requestAnimationFrame(()=>{try{var l=t.getState(),c={activeCoordinate:CU(l),activeDataKey:C_(l),activeIndex:Di(l),activeLabel:S_(l),activeTooltipIndex:Di(l),isTooltipActive:_U(l)};r(c,n)}finally{Lm.delete(s)}});Lm.set(s,o)}}});var nX=U([uo],e=>e.tooltipItemPayloads),aX=U([nX,(e,t)=>t,(e,t,r)=>r],(e,t,r)=>{if(t!=null){var n=e.find(i=>i.settings.graphicalItemId===r);if(n!=null){var{getPosition:s}=n;if(s!=null)return s(t)}}}),PO=rn("touchMove"),MO=Gl();MO.startListening({actionCreator:PO,effect:(e,t)=>{var r=e.payload;if(!(r.touches==null||r.touches.length===0)){var n=t.getState(),s=_x(n,n.tooltip.settings.shared);if(s==="axis"){var i=r.touches[0];if(i==null)return;var o=qx(n,Hx({clientX:i.clientX,clientY:i.clientY,currentTarget:r.currentTarget}));(o==null?void 0:o.activeIndex)!=null&&t.dispatch(m_({activeIndex:o.activeIndex,activeDataKey:void 0,activeCoordinate:o.activeCoordinate}))}else if(s==="item"){var l,c=r.touches[0];if(document.elementFromPoint==null||c==null)return;var d=document.elementFromPoint(c.clientX,c.clientY);if(!d||!d.getAttribute)return;var u=d.getAttribute(TL),f=(l=d.getAttribute(IL))!==null&&l!==void 0?l:void 0,m=fo(n).find(x=>x.id===f);if(u==null||m==null||f==null)return;var{dataKey:h}=m,g=aX(n,u,f);t.dispatch(u_({activeDataKey:h,activeIndex:u,activeCoordinate:g,activeGraphicalItemId:f}))}}}});var sX=uS({brush:aY,cartesianAxis:HK,chartData:Sq,errorBars:ZY,graphicalItems:AK,layout:gL,legend:jF,options:bq,polarAxis:QH,polarOptions:rX,referenceElements:lY,rootProps:ZV,tooltip:W9,zIndex:lq}),iX=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Chart";return B6({reducer:sX,preloadedState:t,middleware:n=>{var s;return n({serializableCheck:!1,immutableCheck:!["commonjs","es6","production"].includes((s="es6")!==null&&s!==void 0?s:"")}).concat([jO.middleware,NO.middleware,Kx.middleware,OO.middleware,MO.middleware])},enhancers:n=>{var s=n;return typeof n=="function"&&(s=n()),s.concat(CS({type:"raf"}))},devTools:{serialize:{replacer:QV},name:"recharts-".concat(r)}})};function oX(e){var{preloadedState:t,children:r,reduxStoreName:n}=e,s=Dr(),i=p.useRef(null);if(s)return r;i.current==null&&(i.current=iX(t,n));var o=Ng;return p.createElement(_G,{context:o,store:i.current},r)}function lX(e){var{layout:t,margin:r}=e,n=kt(),s=Dr();return p.useEffect(()=>{s||(n(mL(t)),n(fL(r)))},[n,s,t,r]),null}var cX=p.memo(lX,Ux);function dX(e){var t=kt();return p.useEffect(()=>{t(JV(e))},[t,e]),null}function Tw(e){var{zIndex:t,isPanorama:r}=e,n=p.useRef(null),s=kt();return p.useLayoutEffect(()=>(n.current&&s(iq({zIndex:t,element:n.current,isPanorama:r})),()=>{s(oq({zIndex:t,isPanorama:r}))}),[s,t,r]),p.createElement("g",{tabIndex:-1,ref:n})}function Iw(e){var{children:t,isPanorama:r}=e,n=ke(XU);if(!n||n.length===0)return t;var s=n.filter(o=>o<0),i=n.filter(o=>o>0);return p.createElement(p.Fragment,null,s.map(o=>p.createElement(Tw,{key:o,zIndex:o,isPanorama:r})),t,i.map(o=>p.createElement(Tw,{key:o,zIndex:o,isPanorama:r})))}var uX=["children"];function fX(e,t){if(e==null)return{};var r,n,s=mX(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}function mX(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function Gd(){return Gd=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Gd.apply(null,arguments)}var hX={width:"100%",height:"100%",display:"block"},pX=p.forwardRef((e,t)=>{var r=QS(),n=ZS(),s=l2();if(!Un(r)||!Un(n))return null;var{children:i,otherAttributes:o,title:l,desc:c}=e,d,u;return o!=null&&(typeof o.tabIndex=="number"?d=o.tabIndex:d=s?0:void 0,typeof o.role=="string"?u=o.role:u=s?"application":void 0),p.createElement(gk,Gd({},o,{title:l,desc:c,role:u,tabIndex:d,width:r,height:n,style:hX,ref:t}),i)}),gX=e=>{var{children:t}=e,r=ke(lf);if(!r)return null;var{width:n,height:s,y:i,x:o}=r;return p.createElement(gk,{width:n,height:s,x:o,y:i},t)},Rw=p.forwardRef((e,t)=>{var{children:r}=e,n=fX(e,uX),s=Dr();return s?p.createElement(gX,null,p.createElement(Iw,{isPanorama:!0},r)):p.createElement(pX,Gd({ref:t},n),p.createElement(Iw,{isPanorama:!1},r))});function xX(){var e=kt(),[t,r]=p.useState(null),n=ke(DL);return p.useEffect(()=>{if(t!=null){var s=t.getBoundingClientRect(),i=s.width/t.offsetWidth;Re(i)&&i!==n&&e(pL(i))}},[t,e,n]),r}function $w(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),r.push.apply(r,n)}return r}function vX(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?$w(Object(r),!0).forEach(function(n){yX(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):$w(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function yX(e,t,r){return(t=bX(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function bX(e){var t=wX(e,"string");return typeof t=="symbol"?t:t+""}function wX(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ga(){return Ga=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Ga.apply(null,arguments)}var jX=()=>(Tq(),null);function Vd(e){if(typeof e=="number")return e;if(typeof e=="string"){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var NX=p.forwardRef((e,t)=>{var r,n,s=p.useRef(null),[i,o]=p.useState({containerWidth:Vd((r=e.style)===null||r===void 0?void 0:r.width),containerHeight:Vd((n=e.style)===null||n===void 0?void 0:n.height)}),l=p.useCallback((d,u)=>{o(f=>{var m=Math.round(d),h=Math.round(u);return f.containerWidth===m&&f.containerHeight===h?f:{containerWidth:m,containerHeight:h}})},[]),c=p.useCallback(d=>{if(typeof t=="function"&&t(d),d!=null&&typeof ResizeObserver<"u"){var{width:u,height:f}=d.getBoundingClientRect();l(u,f);var m=g=>{var x=g[0];if(x!=null){var{width:v,height:y}=x.contentRect;l(v,y)}},h=new ResizeObserver(m);h.observe(d),s.current=h}},[t,l]);return p.useEffect(()=>()=>{var d=s.current;d!=null&&d.disconnect()},[l]),p.createElement(p.Fragment,null,p.createElement(Xl,{width:i.containerWidth,height:i.containerHeight}),p.createElement("div",Ga({ref:c},e)))}),kX=p.forwardRef((e,t)=>{var{width:r,height:n}=e,[s,i]=p.useState({containerWidth:Vd(r),containerHeight:Vd(n)}),o=p.useCallback((c,d)=>{i(u=>{var f=Math.round(c),m=Math.round(d);return u.containerWidth===f&&u.containerHeight===m?u:{containerWidth:f,containerHeight:m}})},[]),l=p.useCallback(c=>{if(typeof t=="function"&&t(c),c!=null){var{width:d,height:u}=c.getBoundingClientRect();o(d,u)}},[t,o]);return p.createElement(p.Fragment,null,p.createElement(Xl,{width:s.containerWidth,height:s.containerHeight}),p.createElement("div",Ga({ref:l},e)))}),SX=p.forwardRef((e,t)=>{var{width:r,height:n}=e;return p.createElement(p.Fragment,null,p.createElement(Xl,{width:r,height:n}),p.createElement("div",Ga({ref:t},e)))}),CX=p.forwardRef((e,t)=>{var{width:r,height:n}=e;return typeof r=="string"||typeof n=="string"?p.createElement(kX,Ga({},e,{ref:t})):typeof r=="number"&&typeof n=="number"?p.createElement(SX,Ga({},e,{width:r,height:n,ref:t})):p.createElement(p.Fragment,null,p.createElement(Xl,{width:r,height:n}),p.createElement("div",Ga({ref:t},e)))});function _X(e){return e?NX:CX}var OX=p.forwardRef((e,t)=>{var{children:r,className:n,height:s,onClick:i,onContextMenu:o,onDoubleClick:l,onMouseDown:c,onMouseEnter:d,onMouseLeave:u,onMouseMove:f,onMouseUp:m,onTouchEnd:h,onTouchMove:g,onTouchStart:x,style:v,width:y,responsive:j,dispatchTouchEvents:b=!0}=e,N=p.useRef(null),k=kt(),[w,S]=p.useState(null),[C,P]=p.useState(null),A=xX(),M=Dg(),_=(M==null?void 0:M.width)>0?M.width:y,E=(M==null?void 0:M.height)>0?M.height:s,O=p.useCallback(W=>{A(W),typeof t=="function"&&t(W),S(W),P(W),W!=null&&(N.current=W)},[A,t,S,P]),T=p.useCallback(W=>{k(wO(W)),k(Vr({handler:i,reactEvent:W}))},[k,i]),z=p.useCallback(W=>{k(np(W)),k(Vr({handler:d,reactEvent:W}))},[k,d]),B=p.useCallback(W=>{k(f_()),k(Vr({handler:u,reactEvent:W}))},[k,u]),Q=p.useCallback(W=>{k(np(W)),k(Vr({handler:f,reactEvent:W}))},[k,f]),K=p.useCallback(()=>{k(_O())},[k]),Z=p.useCallback(W=>{k(CO(W.key))},[k]),ee=p.useCallback(W=>{k(Vr({handler:o,reactEvent:W}))},[k,o]),$=p.useCallback(W=>{k(Vr({handler:l,reactEvent:W}))},[k,l]),q=p.useCallback(W=>{k(Vr({handler:c,reactEvent:W}))},[k,c]),F=p.useCallback(W=>{k(Vr({handler:m,reactEvent:W}))},[k,m]),Y=p.useCallback(W=>{k(Vr({handler:x,reactEvent:W}))},[k,x]),H=p.useCallback(W=>{b&&k(PO(W)),k(Vr({handler:g,reactEvent:W}))},[k,b,g]),V=p.useCallback(W=>{k(Vr({handler:h,reactEvent:W}))},[k,h]),ne=_X(j);return p.createElement(D_.Provider,{value:w},p.createElement(Z$.Provider,{value:C},p.createElement(ne,{width:_??(v==null?void 0:v.width),height:E??(v==null?void 0:v.height),className:Qe("recharts-wrapper",n),style:vX({position:"relative",cursor:"default",width:_,height:E},v),onClick:T,onContextMenu:ee,onDoubleClick:$,onFocus:K,onKeyDown:Z,onMouseDown:q,onMouseEnter:z,onMouseLeave:B,onMouseMove:Q,onMouseUp:F,onTouchEnd:V,onTouchMove:H,onTouchStart:Y,ref:O},p.createElement(jX,null),r)))}),PX=["width","height","responsive","children","className","style","compact","title","desc"];function MX(e,t){if(e==null)return{};var r,n,s=AX(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}function AX(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}var EX=p.forwardRef((e,t)=>{var{width:r,height:n,responsive:s,children:i,className:o,style:l,compact:c,title:d,desc:u}=e,f=MX(e,PX),m=ma(f);return c?p.createElement(p.Fragment,null,p.createElement(Xl,{width:r,height:n}),p.createElement(Rw,{otherAttributes:m,title:d,desc:u},i)):p.createElement(OX,{className:o,style:l,width:r,height:n,responsive:s??!1,onClick:e.onClick,onMouseLeave:e.onMouseLeave,onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onContextMenu:e.onContextMenu,onDoubleClick:e.onDoubleClick,onTouchStart:e.onTouchStart,onTouchMove:e.onTouchMove,onTouchEnd:e.onTouchEnd},p.createElement(Rw,{otherAttributes:m,title:d,desc:u,ref:t},p.createElement(dY,null,i)))});function ap(){return ap=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},ap.apply(null,arguments)}var DX={top:5,right:5,bottom:5,left:5},TX={accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,layout:"horizontal",margin:DX,responsive:!1,reverseStackOrder:!1,stackOffset:"none",syncMethod:"index"},IX=p.forwardRef(function(t,r){var n,s=qr(t.categoricalChartProps,TX),{chartName:i,defaultTooltipEventType:o,validateTooltipEventTypes:l,tooltipPayloadSearcher:c,categoricalChartProps:d}=t,u={chartName:i,defaultTooltipEventType:o,validateTooltipEventTypes:l,tooltipPayloadSearcher:c,eventEmitter:void 0};return p.createElement(oX,{preloadedState:{options:u},reduxStoreName:(n=d.id)!==null&&n!==void 0?n:i},p.createElement(nY,{chartData:d.data}),p.createElement(cX,{layout:s.layout,margin:s.margin}),p.createElement(dX,{baseValue:s.baseValue,accessibilityLayer:s.accessibilityLayer,barCategoryGap:s.barCategoryGap,maxBarSize:s.maxBarSize,stackOffset:s.stackOffset,barGap:s.barGap,barSize:s.barSize,syncId:s.syncId,syncMethod:s.syncMethod,className:s.className,reverseStackOrder:s.reverseStackOrder}),p.createElement(EX,ap({},s,{ref:r})))}),RX=["axis","item"],Xd=p.forwardRef((e,t)=>p.createElement(IX,{chartName:"BarChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:RX,tooltipPayloadSearcher:vq,categoricalChartProps:e,ref:t}));const AO={all:["reporting"],timeLogs:e=>[...AO.all,"time-logs",e]};function EO(e,t){return De({queryKey:AO.timeLogs(e),queryFn:()=>{const r=new URLSearchParams;return Object.entries(e).forEach(([n,s])=>{s&&r.set(n,s)}),ae.get(`/admin/reporting/time-logs?${r}`)},enabled:(t==null?void 0:t.enabled)??(Object.values(e).some(Boolean)||!!e.workspace_id)})}function Qd({value:e,onChange:t,placeholder:r="Pick a date",className:n}){return a.jsxs(Ot,{children:[a.jsx(Pt,{asChild:!0,children:a.jsxs(J,{variant:"outline",className:R("h-8 w-36 justify-start text-left font-normal text-xs gap-1.5",!e&&"text-muted-foreground",n),children:[a.jsx(or,{className:"h-3.5 w-3.5 shrink-0"}),e?de(e,"MMM d, yyyy"):a.jsx("span",{children:r}),e&&a.jsx("span",{role:"button",className:"ml-auto hover:text-foreground",onClick:s=>{s.stopPropagation(),t(void 0)},children:a.jsx(at,{className:"h-3 w-3"})})]})}),a.jsx(jt,{className:"w-auto p-0",align:"start",children:a.jsx(lr,{mode:"single",selected:e,onSelect:t,initialFocus:!0})})]})}function sp({options:e,selected:t,onSelectionChange:r,placeholder:n="Select…",className:s}){var d;const[i,o]=p.useState(!1);function l(u){t.includes(u)?r(t.filter(f=>f!==u)):r([...t,u])}const c=t.length===0?null:t.length===1?(d=e.find(u=>u.value===t[0]))==null?void 0:d.label:`${t.length} selected`;return a.jsxs(Ot,{open:i,onOpenChange:o,children:[a.jsx(Pt,{asChild:!0,children:a.jsxs(J,{variant:"outline",role:"combobox","aria-expanded":i,className:R("h-8 justify-between text-xs font-normal min-w-36",!c&&"text-muted-foreground",s),children:[a.jsx("span",{className:"truncate",children:c??n}),a.jsx(zi,{className:"ml-2 h-3.5 w-3.5 shrink-0 opacity-50"})]})}),a.jsxs(jt,{className:"w-56 p-0",align:"start",children:[a.jsxs(_s,{children:[a.jsx(Cu,{placeholder:"Search…",className:"h-8 text-xs"}),a.jsxs(Os,{children:[a.jsx(_u,{className:"text-xs py-4 text-center text-muted-foreground",children:"No results."}),a.jsx(Ka,{children:e.map(u=>a.jsxs(Qr,{value:u.label,onSelect:()=>l(u.value),className:"text-xs cursor-pointer",children:[a.jsx(Sr,{className:R("mr-2 h-3.5 w-3.5",t.includes(u.value)?"opacity-100":"opacity-0")}),u.label]},u.value))})]})]}),t.length>0&&a.jsx("div",{className:"border-t p-2",children:a.jsxs(J,{variant:"ghost",size:"sm",className:"h-7 w-full text-xs text-muted-foreground",onClick:()=>r([]),children:[a.jsx(at,{className:"h-3 w-3 mr-1"}),"Clear all"]})})]})]})}function Uo(e){const t=Math.floor(e/60),r=e%60;return t===0?`${r}m`:r===0?`${t}h`:`${t}h ${r}m`}function zw({active:e,payload:t,label:r}){var n;return!e||!(t!=null&&t.length)?null:a.jsxs("div",{className:"bg-popover border border-border rounded-lg px-3 py-2 text-xs shadow-lg",children:[a.jsx("p",{className:"font-medium mb-0.5",children:r}),a.jsx("p",{className:"text-muted-foreground",children:Uo(((n=t[0])==null?void 0:n.value)??0)})]})}function $X({workspaceId:e}){const[t,r]=p.useState(void 0),[n,s]=p.useState(void 0),[i,o]=p.useState([]),[l,c]=p.useState([]),{workspace:d}=Oe(),u=(d==null?void 0:d.slug)??"",{data:f=[],isLoading:m}=Mu(),{data:h=[],isLoading:g}=qi(),{data:x}=Ji(),v=t?de(t,"yyyy-MM-dd"):void 0,y=n?de(n,"yyyy-MM-dd"):void 0,j=p.useMemo(()=>new Map(h.map(O=>[O.id,O])),[h]),{data:b,isLoading:N}=EO({from:v,to:y,workspace_id:e},{enabled:!0}),k=(b==null?void 0:b.time_logs)??[],w=p.useMemo(()=>{let O=k;return i.length>0&&(O=O.filter(T=>i.includes(T.user_id))),l.length>0&&(O=O.filter(T=>T.project_id&&l.includes(T.project_id))),O},[k,i,l]),S=w.reduce((O,T)=>O+(T.duration_minutes??0),0),C=p.useMemo(()=>new Set(w.map(O=>O.user_id)).size,[w]),P=p.useMemo(()=>new Set(w.map(O=>O.project_id).filter(Boolean)).size,[w]),A=p.useMemo(()=>{const O=new Map;for(const T of w)O.set(T.user_id,(O.get(T.user_id)??0)+(T.duration_minutes??0));return Array.from(O.entries()).map(([T,z])=>{var B;return{name:((B=x==null?void 0:x.get(T))==null?void 0:B.name)??"Unknown",minutes:z}}).sort((T,z)=>z.minutes-T.minutes).slice(0,8)},[w,x]),M=p.useMemo(()=>{const O=new Map;for(const T of w){const z=T.project_id??"__none__";O.set(z,(O.get(z)??0)+(T.duration_minutes??0))}return Array.from(O.entries()).map(([T,z])=>{var B;return{name:T==="__none__"?"No project":((B=j.get(T))==null?void 0:B.name)??"Unknown",minutes:z}}).sort((T,z)=>z.minutes-T.minutes).slice(0,8)},[w,j]),_=p.useMemo(()=>f.map(O=>({value:O.id,label:[O.first_name,O.last_name].filter(Boolean).join(" ")||O.email})),[f]),E=p.useMemo(()=>h.map(O=>({value:O.id,label:O.name})),[h]);return a.jsxs("div",{className:"p-2 space-y-2",children:[a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl px-6 py-4 flex items-center gap-3",children:[a.jsx("div",{className:"h-9 w-9 rounded-lg bg-muted flex items-center justify-center shrink-0",children:a.jsx(Xa,{className:"h-4 w-4 text-muted-foreground"})}),a.jsxs("div",{children:[a.jsx("p",{className:"text-sm font-semibold",children:"Time Logs"}),a.jsx("p",{className:"text-xs text-muted-foreground mt-0.5",children:"Filter by date range, employees, and projects to analyze time across the organization."})]})]}),a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl px-4 py-3 flex items-center gap-3 flex-wrap",children:[a.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-muted-foreground shrink-0",children:[a.jsx($i,{className:"h-3.5 w-3.5"}),a.jsx("span",{className:"font-medium",children:"Date range"})]}),a.jsx(Qd,{value:t,onChange:r,placeholder:"From"}),a.jsx("span",{className:"text-xs text-muted-foreground",children:"→"}),a.jsx(Qd,{value:n,onChange:s,placeholder:"To"}),a.jsx("div",{className:"w-px h-5 bg-border mx-1 shrink-0"}),a.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-muted-foreground shrink-0",children:[a.jsx(Wa,{className:"h-3.5 w-3.5"}),a.jsx("span",{className:"font-medium",children:"Employees"})]}),m?a.jsx(oe,{className:"h-8 w-40"}):a.jsx(sp,{options:_,selected:i,onSelectionChange:o,placeholder:"All employees",className:"w-44"}),a.jsx("div",{className:"w-px h-5 bg-border mx-1 shrink-0"}),a.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-muted-foreground shrink-0",children:[a.jsx(Mr,{className:"h-3.5 w-3.5"}),a.jsx("span",{className:"font-medium",children:"Projects"})]}),g?a.jsx(oe,{className:"h-8 w-40"}):a.jsx(sp,{options:E,selected:l,onSelectionChange:c,placeholder:"All projects",className:"w-44"})]}),N?a.jsx("div",{className:"bg-white dark:bg-card border border-border rounded-xl overflow-hidden divide-y divide-border",children:[1,2,3,4].map(O=>a.jsxs("div",{className:"px-6 py-4 flex items-center gap-4",children:[a.jsx(oe,{className:"h-4 w-24"}),a.jsx(oe,{className:"h-4 w-32"}),a.jsx(oe,{className:"h-4 w-48"})]},O))}):w.length===0?a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl flex flex-col items-center justify-center py-16 text-center",children:[a.jsx("div",{className:"h-10 w-10 rounded-full bg-muted flex items-center justify-center mb-3",children:a.jsx(Hn,{className:"h-5 w-5 text-muted-foreground"})}),a.jsx("p",{className:"text-sm font-medium mb-1",children:"No time logs found"}),a.jsx("p",{className:"text-sm text-muted-foreground",children:v||y||i.length>0||l.length>0?"Try adjusting your filters.":"No time has been logged yet."})]}):a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"grid grid-cols-3 gap-2",children:[a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl px-5 py-4",children:[a.jsx("p",{className:"text-[11px] font-medium text-muted-foreground uppercase tracking-wide mb-1",children:"Total time"}),a.jsx("p",{className:"text-2xl font-bold tabular-nums",children:Uo(S)})]}),a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl px-5 py-4",children:[a.jsx("p",{className:"text-[11px] font-medium text-muted-foreground uppercase tracking-wide mb-1",children:"Employees"}),a.jsx("p",{className:"text-2xl font-bold tabular-nums",children:C})]}),a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl px-5 py-4",children:[a.jsx("p",{className:"text-[11px] font-medium text-muted-foreground uppercase tracking-wide mb-1",children:"Projects"}),a.jsx("p",{className:"text-2xl font-bold tabular-nums",children:P})]})]}),a.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[A.length>0&&a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl p-4",children:[a.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[a.jsx(Wa,{className:"h-3.5 w-3.5 text-muted-foreground"}),a.jsx("span",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide",children:"Time by employee"})]}),a.jsx(xd,{width:"100%",height:Math.max(80,A.length*36),children:a.jsxs(Xd,{data:A,layout:"vertical",margin:{left:0,right:40,top:0,bottom:0},children:[a.jsx(pl,{strokeDasharray:"3 3",horizontal:!1,stroke:"hsl(var(--border))"}),a.jsx(xl,{type:"number",tickFormatter:O=>Uo(O),tick:{fontSize:9,fill:"hsl(var(--muted-foreground))"},axisLine:!1,tickLine:!1}),a.jsx(vl,{type:"category",dataKey:"name",width:100,tick:{fontSize:11,fill:"hsl(var(--foreground))"},axisLine:!1,tickLine:!1}),a.jsx(Bd,{content:a.jsx(zw,{}),cursor:{fill:"hsl(var(--muted))"}}),a.jsx(gl,{dataKey:"minutes",fill:"#6366f1",radius:[0,4,4,0]})]})})]}),M.length>0&&a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl p-4",children:[a.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[a.jsx(Mr,{className:"h-3.5 w-3.5 text-muted-foreground"}),a.jsx("span",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide",children:"Time by project"})]}),a.jsx(xd,{width:"100%",height:Math.max(80,M.length*36),children:a.jsxs(Xd,{data:M,layout:"vertical",margin:{left:0,right:40,top:0,bottom:0},children:[a.jsx(pl,{strokeDasharray:"3 3",horizontal:!1,stroke:"hsl(var(--border))"}),a.jsx(xl,{type:"number",tickFormatter:O=>Uo(O),tick:{fontSize:9,fill:"hsl(var(--muted-foreground))"},axisLine:!1,tickLine:!1}),a.jsx(vl,{type:"category",dataKey:"name",width:100,tick:{fontSize:11,fill:"hsl(var(--foreground))"},axisLine:!1,tickLine:!1}),a.jsx(Bd,{content:a.jsx(zw,{}),cursor:{fill:"hsl(var(--muted))"}}),a.jsx(gl,{dataKey:"minutes",fill:"#6366f1",radius:[0,4,4,0]})]})})]})]}),a.jsx("div",{className:"bg-white dark:bg-card border border-border rounded-xl overflow-hidden",children:a.jsxs("table",{className:"w-full text-sm",children:[a.jsx("thead",{children:a.jsxs("tr",{className:"border-b border-border bg-muted/20",children:[a.jsx("th",{className:"text-left px-6 py-2.5 text-[11px] font-medium text-muted-foreground uppercase tracking-wide",children:"Employee"}),a.jsx("th",{className:"text-left px-6 py-2.5 text-[11px] font-medium text-muted-foreground uppercase tracking-wide",children:"Project"}),a.jsx("th",{className:"text-left px-6 py-2.5 text-[11px] font-medium text-muted-foreground uppercase tracking-wide",children:"Issue"}),a.jsx("th",{className:"text-left px-6 py-2.5 text-[11px] font-medium text-muted-foreground uppercase tracking-wide",children:"Date"}),a.jsx("th",{className:"text-left px-6 py-2.5 text-[11px] font-medium text-muted-foreground uppercase tracking-wide",children:"Description"}),a.jsx("th",{className:"text-right px-6 py-2.5 text-[11px] font-medium text-muted-foreground uppercase tracking-wide",children:"Duration"})]})}),a.jsx("tbody",{className:"divide-y divide-border",children:w.map(O=>{var B;const T=O.project_id?j.get(O.project_id):void 0,z=((B=x==null?void 0:x.get(O.user_id))==null?void 0:B.name)??O.user_id.slice(0,8)+"…";return a.jsxs("tr",{className:"hover:bg-muted/30 transition-colors",children:[a.jsx("td",{className:"px-6 py-3 text-xs font-medium",children:z}),a.jsx("td",{className:"px-6 py-3 text-xs text-muted-foreground",children:(T==null?void 0:T.name)??(O.project_id?"Unknown":"—")}),a.jsx("td",{className:"px-6 py-3",children:O.issue_identifier?a.jsx(Va,{to:`/${u}/projects/${T==null?void 0:T.identifier}/issues/${O.issue_id}`,className:"font-mono text-xs text-indigo-600 dark:text-indigo-400 hover:underline",children:O.issue_identifier}):a.jsxs("span",{className:"font-mono text-xs text-muted-foreground",children:[O.issue_id.slice(0,8),"…"]})}),a.jsx("td",{className:"px-6 py-3 text-xs text-muted-foreground tabular-nums whitespace-nowrap",children:O.logged_date?de(new Date(O.logged_date),"MMM d, yyyy"):"—"}),a.jsx("td",{className:"px-6 py-3 text-xs text-muted-foreground truncate max-w-xs",children:O.description??a.jsx("span",{className:"italic",children:"—"})}),a.jsx("td",{className:"px-6 py-3 text-xs text-right tabular-nums font-semibold",children:O.duration_minutes!=null?Uo(O.duration_minutes):"Running…"})]},O.id)})})]})})]})]})}function ci(e){const t=Math.floor(e/60),r=e%60;return t===0?`${r}m`:r===0?`${t}h`:`${t}h ${r}m`}function Lw({active:e,payload:t,label:r}){var n;return!e||!(t!=null&&t.length)?null:a.jsxs("div",{className:"bg-popover border border-border rounded-lg px-3 py-2 text-xs shadow-lg",children:[a.jsx("p",{className:"font-medium mb-0.5",children:r}),a.jsx("p",{className:"text-muted-foreground",children:ci(((n=t[0])==null?void 0:n.value)??0)})]})}function zX(){const{projectKey:e,workspace:t}=Ut(),[r,n]=p.useState(void 0),[s,i]=p.useState(void 0),[o,l]=p.useState([]),{data:c}=ka(e??""),{data:d}=Ji(),{data:u=[]}=Mu(),f=r?de(r,"yyyy-MM-dd"):void 0,m=s?de(s,"yyyy-MM-dd"):void 0,{data:h,isLoading:g}=EO({project_id:c==null?void 0:c.id,from:f,to:m}),x=(h==null?void 0:h.time_logs)??[],v=p.useMemo(()=>o.length>0?x.filter(C=>o.includes(C.user_id)):x,[x,o]),y=p.useMemo(()=>v.reduce((C,P)=>C+(P.duration_minutes??0),0),[v]),j=p.useMemo(()=>{const C=new Map;for(const P of v){C.has(P.user_id)||C.set(P.user_id,{logs:[],totalMinutes:0});const A=C.get(P.user_id);A.logs.push(P),A.totalMinutes+=P.duration_minutes??0}return C},[v]),b=p.useMemo(()=>{const C=new Map;for(const P of v){C.has(P.issue_id)||C.set(P.issue_id,{logs:[],totalMinutes:0});const A=C.get(P.issue_id);A.logs.push(P),A.totalMinutes+=P.duration_minutes??0}return C},[v]),N=Array.from(j.entries()).sort((C,P)=>P[1].totalMinutes-C[1].totalMinutes).slice(0,8).map(([C,{totalMinutes:P}])=>{var A;return{name:((A=d==null?void 0:d.get(C))==null?void 0:A.name)??"Unknown",minutes:P}}),k=Array.from(b.entries()).sort((C,P)=>P[1].totalMinutes-C[1].totalMinutes).slice(0,8).map(([C,{totalMinutes:P,logs:A}])=>{var M;return{name:((M=A[0])==null?void 0:M.issue_identifier)??C.slice(0,8),minutes:P}}),w=p.useMemo(()=>u.map(C=>({value:C.id,label:[C.first_name,C.last_name].filter(Boolean).join(" ")||C.email})),[u]),S=v.length>0;return a.jsxs("div",{className:"p-2 space-y-2",children:[a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl px-4 py-3 flex items-center gap-3 flex-wrap",children:[a.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-muted-foreground shrink-0",children:[a.jsx($i,{className:"h-3.5 w-3.5"}),a.jsx("span",{className:"font-medium",children:"Date range"})]}),a.jsx(Qd,{value:r,onChange:n,placeholder:"From"}),a.jsx("span",{className:"text-xs text-muted-foreground",children:"→"}),a.jsx(Qd,{value:s,onChange:i,placeholder:"To"}),a.jsx("div",{className:"w-px h-4 bg-border"}),a.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-muted-foreground shrink-0",children:[a.jsx(Wa,{className:"h-3.5 w-3.5"}),a.jsx("span",{className:"font-medium",children:"Employee"})]}),a.jsx(sp,{options:w,selected:o,onSelectionChange:l,placeholder:"All employees",className:"w-44"})]}),a.jsx("div",{className:"grid grid-cols-3 gap-2",children:[{label:"Total logged",value:y>0?ci(y):"—",icon:Hn},{label:"Contributors",value:j.size>0?String(j.size):"—",icon:Wa},{label:"Issues tracked",value:b.size>0?String(b.size):"—",icon:ca}].map(({label:C,value:P,icon:A})=>a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl px-5 py-4",children:[a.jsxs("div",{className:"flex items-center gap-1.5 mb-2",children:[a.jsx(A,{className:"h-3.5 w-3.5 text-muted-foreground"}),a.jsx("p",{className:"text-[11px] text-muted-foreground uppercase tracking-wider font-medium",children:C})]}),a.jsx("p",{className:"text-2xl font-bold tabular-nums",children:P})]},C))}),g?a.jsx("div",{className:"bg-white dark:bg-card border border-border rounded-xl overflow-hidden",children:a.jsx("div",{className:"divide-y divide-border",children:[1,2,3].map(C=>a.jsxs("div",{className:"flex items-center gap-4 px-6 py-4",children:[a.jsx(oe,{className:"h-7 w-7 rounded-full"}),a.jsx(oe,{className:"h-4 w-40"}),a.jsx("div",{className:"flex-1"}),a.jsx(oe,{className:"h-4 w-20"})]},C))})}):c!=null&&c.id?S?a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[j.size>0&&a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl p-4",children:[a.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[a.jsx(Wa,{className:"h-3.5 w-3.5 text-muted-foreground"}),a.jsx("span",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide",children:"Time by user"})]}),a.jsx(xd,{width:"100%",height:Math.max(100,N.length*36),children:a.jsxs(Xd,{data:N,layout:"vertical",margin:{left:0,right:32,top:0,bottom:0},children:[a.jsx(pl,{strokeDasharray:"3 3",horizontal:!1,stroke:"hsl(var(--border))"}),a.jsx(xl,{type:"number",tickFormatter:C=>ci(C),tick:{fontSize:9,fill:"hsl(var(--muted-foreground))"},axisLine:!1,tickLine:!1}),a.jsx(vl,{type:"category",dataKey:"name",width:88,tick:{fontSize:11,fill:"hsl(var(--foreground))"},axisLine:!1,tickLine:!1}),a.jsx(Bd,{content:a.jsx(Lw,{}),cursor:{fill:"hsl(var(--muted))"}}),a.jsx(gl,{dataKey:"minutes",fill:"#6366f1",radius:[0,4,4,0]})]})})]}),b.size>0&&a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl p-4",children:[a.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[a.jsx(ca,{className:"h-3.5 w-3.5 text-muted-foreground"}),a.jsx("span",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide",children:"Time by issue"})]}),a.jsx(xd,{width:"100%",height:Math.max(100,k.length*36),children:a.jsxs(Xd,{data:k,layout:"vertical",margin:{left:0,right:32,top:0,bottom:0},children:[a.jsx(pl,{strokeDasharray:"3 3",horizontal:!1,stroke:"hsl(var(--border))"}),a.jsx(xl,{type:"number",tickFormatter:C=>ci(C),tick:{fontSize:9,fill:"hsl(var(--muted-foreground))"},axisLine:!1,tickLine:!1}),a.jsx(vl,{type:"category",dataKey:"name",width:64,tick:{fontSize:11,fill:"hsl(var(--foreground))",fontFamily:"monospace"},axisLine:!1,tickLine:!1}),a.jsx(Bd,{content:a.jsx(Lw,{}),cursor:{fill:"hsl(var(--muted))"}}),a.jsx(gl,{dataKey:"minutes",fill:"#818cf8",radius:[0,4,4,0]})]})})]})]}),a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl overflow-hidden",children:[a.jsxs("div",{className:"flex items-center gap-2 px-6 py-3 border-b border-border",children:[a.jsx(Wa,{className:"h-3.5 w-3.5 text-muted-foreground"}),a.jsx("span",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide",children:"Time by user"})]}),a.jsxs("table",{className:"w-full text-sm",children:[a.jsx("thead",{children:a.jsxs("tr",{className:"border-b border-border bg-muted/20",children:[a.jsx("th",{className:"text-left px-6 py-2 text-[11px] font-medium text-muted-foreground uppercase tracking-wide",children:"User"}),a.jsx("th",{className:"text-right px-6 py-2 text-[11px] font-medium text-muted-foreground uppercase tracking-wide",children:"Issues"}),a.jsx("th",{className:"text-right px-6 py-2 text-[11px] font-medium text-muted-foreground uppercase tracking-wide",children:"Total"})]})}),a.jsx("tbody",{className:"divide-y divide-border",children:Array.from(j.entries()).sort((C,P)=>P[1].totalMinutes-C[1].totalMinutes).map(([C,{logs:P,totalMinutes:A}])=>{const M=d==null?void 0:d.get(C),_=new Set(P.map(E=>E.issue_id)).size;return a.jsxs("tr",{className:"hover:bg-muted/30 transition-colors",children:[a.jsx("td",{className:"px-6 py-3 text-sm font-medium",children:(M==null?void 0:M.name)??C.slice(0,8)+"…"}),a.jsx("td",{className:"px-6 py-3 text-xs text-right text-muted-foreground tabular-nums",children:_}),a.jsx("td",{className:"px-6 py-3 text-sm text-right tabular-nums font-semibold",children:ci(A)})]},C)})})]})]}),a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl overflow-hidden",children:[a.jsxs("div",{className:"flex items-center gap-2 px-6 py-3 border-b border-border",children:[a.jsx(ca,{className:"h-3.5 w-3.5 text-muted-foreground"}),a.jsx("span",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide",children:"Time by issue"})]}),a.jsxs("table",{className:"w-full text-sm",children:[a.jsx("thead",{children:a.jsxs("tr",{className:"border-b border-border bg-muted/20",children:[a.jsx("th",{className:"text-left px-6 py-2 text-[11px] font-medium text-muted-foreground uppercase tracking-wide",children:"Issue"}),a.jsx("th",{className:"text-left px-6 py-2 text-[11px] font-medium text-muted-foreground uppercase tracking-wide",children:"Last logged"}),a.jsx("th",{className:"text-right px-6 py-2 text-[11px] font-medium text-muted-foreground uppercase tracking-wide",children:"Contributors"}),a.jsx("th",{className:"text-right px-6 py-2 text-[11px] font-medium text-muted-foreground uppercase tracking-wide",children:"Total"})]})}),a.jsx("tbody",{className:"divide-y divide-border",children:Array.from(b.entries()).sort((C,P)=>P[1].totalMinutes-C[1].totalMinutes).map(([C,{logs:P,totalMinutes:A}])=>{var T,z;const M=new Set(P.map(B=>B.user_id)).size,_=P.reduce((B,Q)=>Q.logged_date&&(!B||new Date(Q.logged_date)>new Date(B))?Q.logged_date:B,null),E=(T=P[0])==null?void 0:T.issue_identifier,O=(z=P[0])==null?void 0:z.issue_title;return a.jsxs("tr",{className:"hover:bg-muted/30 transition-colors",children:[a.jsx("td",{className:"px-6 py-3",children:a.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[E?a.jsx(Va,{to:`/${t}/projects/${e}/issues/${C}`,className:"font-mono text-xs text-indigo-600 dark:text-indigo-400 hover:underline shrink-0",children:E}):a.jsxs("span",{className:"font-mono text-xs text-muted-foreground",children:[C.slice(0,8),"…"]}),O&&a.jsx("span",{className:"text-xs text-muted-foreground truncate",children:O})]})}),a.jsx("td",{className:"px-6 py-3 text-xs text-muted-foreground",children:_?de(new Date(_),"MMM d, yyyy"):"—"}),a.jsx("td",{className:"px-6 py-3 text-xs text-right text-muted-foreground tabular-nums",children:M}),a.jsx("td",{className:"px-6 py-3 text-sm text-right tabular-nums font-semibold",children:ci(A)})]},C)})})]})]})]}):a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl flex flex-col items-center justify-center py-16 text-center",children:[a.jsx("div",{className:"h-10 w-10 rounded-full bg-muted flex items-center justify-center mb-3",children:a.jsx(Xa,{className:"h-5 w-5 text-muted-foreground"})}),a.jsx("p",{className:"text-sm font-medium mb-1",children:"No time logged"}),a.jsx("p",{className:"text-sm text-muted-foreground",children:f||m||o.length>0?"No entries match the current filters.":"Start logging time on issues to see reports here."})]}):a.jsx("div",{className:"bg-white dark:bg-card border border-border rounded-xl flex items-center justify-center py-12",children:a.jsx("p",{className:"text-sm text-muted-foreground",children:"Loading project…"})})]})}const LX={share_enabled:{icon:Gm,color:"text-green-600",bg:"bg-green-50 dark:bg-green-950/40",label:()=>"Enabled public link"},share_revoked:{icon:gE,color:"text-red-500",bg:"bg-red-50 dark:bg-red-950/40",label:()=>"Revoked public link"},member_added:{icon:Wi,color:"text-blue-500",bg:"bg-blue-50 dark:bg-blue-950/40",label:(e,t)=>{var i,o,l;const r=(i=e==null?void 0:e.user_id)==null?void 0:i.to,n=(o=e==null?void 0:e.role)==null?void 0:o.to,s=r?((l=t.get(r))==null?void 0:l.name)??r:"a user";return n?`Added ${s} as ${n}`:`Added ${s}`}},member_removed:{icon:f1,color:"text-red-500",bg:"bg-red-50 dark:bg-red-950/40",label:(e,t)=>{var s,i;const r=(s=e==null?void 0:e.user_id)==null?void 0:s.from;return`Removed ${r?((i=t.get(r))==null?void 0:i.name)??r:"a user"}`}},team_added:{icon:Wa,color:"text-indigo-500",bg:"bg-indigo-50 dark:bg-indigo-950/40",label:(e,t,r)=>{var i;const n=(i=e==null?void 0:e.team_id)==null?void 0:i.to;return`Added team ${n?r.get(n)??n:"a team"}`}},team_removed:{icon:$E,color:"text-orange-500",bg:"bg-orange-50 dark:bg-orange-950/40",label:(e,t,r)=>{var i;const n=(i=e==null?void 0:e.team_id)==null?void 0:i.from;return`Removed team ${n?r.get(n)??n:"a team"}`}},updated:{icon:Es,color:"text-amber-500",bg:"bg-amber-50 dark:bg-amber-950/40",label:()=>"Updated project"},created:{icon:nt,color:"text-emerald-600",bg:"bg-emerald-50 dark:bg-emerald-950/40",label:()=>"Created project"}},FX={icon:iu,color:"text-zinc-500",bg:"bg-zinc-100 dark:bg-zinc-800",label:()=>"Activity"};function BX({activity:e,userMap:t,teamMap:r}){const n=LX[e.action]??FX,s=n.icon,i=t.get(e.actor_id),o=(i==null?void 0:i.name)??"System",l=(i==null?void 0:i.initials)??"S",c=n.label(e.changes,t,r),d=(()=>{var u,f;if(e.action==="share_enabled"){const m=(f=(u=e.changes)==null?void 0:u.share_url)==null?void 0:f.to;return m?a.jsx("span",{className:"text-xs text-muted-foreground/60 font-mono break-all",children:m}):null}return null})();return a.jsxs("div",{className:"flex items-center gap-4 px-6 py-4 hover:bg-muted/30 transition-colors",children:[a.jsx("div",{className:R("h-8 w-8 rounded-full flex items-center justify-center shrink-0",n.bg),children:a.jsx(s,{className:R("h-4 w-4",n.color)})}),a.jsxs("div",{className:"flex-1 min-w-0",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(Ft,{className:"h-5 w-5 shrink-0",children:a.jsx(Bt,{className:"text-[10px] font-medium",children:l})}),a.jsx("span",{className:"text-sm font-medium truncate",children:o}),a.jsx("span",{className:"text-xs text-muted-foreground shrink-0",children:c})]}),d&&a.jsx("div",{className:"mt-0.5 pl-7",children:d})]}),a.jsx("time",{className:"text-xs text-muted-foreground shrink-0",children:de(new Date(e.created_at),"MMM d, yyyy · h:mm a")})]})}function WX(){const{projectKey:e}=Ut(),{workspace:t}=Oe(),{data:r}=ka(e??""),{data:n,isLoading:s}=CD((r==null?void 0:r.id)??""),{data:i=new Map}=Ji(),{data:o=[]}=hu((t==null?void 0:t.id)??""),l=new Map(o.map(d=>[d.id,d.name])),c=(n==null?void 0:n.length)??0;return a.jsx("div",{className:"p-2",children:a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl overflow-hidden",children:[a.jsxs("div",{className:"flex items-center justify-between px-6 py-3 border-b border-border",children:[a.jsxs("div",{children:[a.jsx("h2",{className:"text-sm font-semibold",children:"Activity"}),a.jsx("p",{className:"text-xs text-muted-foreground mt-0.5",children:"A log of share access changes, member updates, and project edits."})]}),!s&&c>0&&a.jsxs("p",{className:"text-xs text-muted-foreground shrink-0",children:[c," event",c!==1?"s":""]})]}),a.jsx("div",{className:"px-6 py-2 border-b border-border bg-muted/20",children:a.jsx("span",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide",children:"Log"})}),s?a.jsx("div",{className:"divide-y divide-border",children:[1,2,3].map(d=>a.jsxs("div",{className:"flex items-center gap-4 px-6 py-4",children:[a.jsx(oe,{className:"h-8 w-8 rounded-full shrink-0"}),a.jsxs("div",{className:"flex-1 space-y-1.5",children:[a.jsx(oe,{className:"h-4 w-48"}),a.jsx(oe,{className:"h-3 w-64"})]}),a.jsx(oe,{className:"h-3 w-32 shrink-0"})]},d))}):!n||n.length===0?a.jsxs("div",{className:"flex flex-col items-center justify-center py-16 text-center",children:[a.jsx(iu,{className:"h-8 w-8 text-muted-foreground/20 mb-3"}),a.jsx("p",{className:"text-sm font-medium text-muted-foreground",children:"No activity yet"}),a.jsx("p",{className:"text-xs text-muted-foreground/60 mt-1",children:"Actions like sharing the project or adding members will appear here."})]}):a.jsx("div",{className:"divide-y divide-border",children:n.map(d=>a.jsx(BX,{activity:d,userMap:i,teamMap:l},d.id))})]})})}const UX=[{key:"mon",label:"Monday",short:"Mon"},{key:"tue",label:"Tuesday",short:"Tue"},{key:"wed",label:"Wednesday",short:"Wed"},{key:"thu",label:"Thursday",short:"Thu"},{key:"fri",label:"Friday",short:"Fri"},{key:"sat",label:"Saturday",short:"Sat"},{key:"sun",label:"Sunday",short:"Sun"}],qX={mon:!0,tue:!0,wed:!0,thu:!0,fri:!0,sat:!1,sun:!1};function HX({open:e,onClose:t,holiday:r}){const[n,s]=p.useState((r==null?void 0:r.name)??""),[i,o]=p.useState(r!=null&&r.date?r.date.split("T")[0]:""),[l,c]=p.useState((r==null?void 0:r.recurring)??!1);p.useEffect(()=>{e&&(s((r==null?void 0:r.name)??""),o(r!=null&&r.date?r.date.split("T")[0]:""),c((r==null?void 0:r.recurring)??!1))},[e,r==null?void 0:r.id]);const d=G3(),u=V3(),f=d.isPending||u.isPending,m=h=>{if(h.preventDefault(),!n.trim()){L.error("Holiday name is required");return}if(!i){L.error("Date is required");return}r?u.mutate({id:r.id,name:n.trim(),date:i,recurring:l},{onSuccess:()=>{L.success("Holiday updated"),t()},onError:()=>L.error("Failed to update holiday")}):d.mutate({name:n.trim(),date:i,recurring:l},{onSuccess:()=>{L.success("Holiday added"),t()},onError:()=>L.error("Failed to add holiday")})};return a.jsx(Hi,{open:e,onOpenChange:h=>!h&&t(),children:a.jsxs(Ks,{className:"sm:max-w-md",children:[a.jsxs(Ki,{children:[a.jsx(Yi,{children:r?"Edit holiday":"Add holiday"}),a.jsx(ku,{children:"Holidays are excluded from business day calculations across the app."})]}),a.jsxs("form",{onSubmit:m,className:"space-y-4 pt-1",children:[a.jsxs("div",{className:"space-y-1.5",children:[a.jsx("label",{className:"text-xs font-medium text-muted-foreground",children:"Name"}),a.jsx(_e,{value:n,onChange:h=>s(h.target.value),placeholder:"e.g. New Year's Day",className:"h-9",autoFocus:!0,required:!0})]}),a.jsxs("div",{className:"space-y-1.5",children:[a.jsx("label",{className:"text-xs font-medium text-muted-foreground",children:"Date"}),a.jsx(_e,{type:"date",value:i,onChange:h=>o(h.target.value),className:"h-9",required:!0})]}),a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx(to,{checked:l,onCheckedChange:h=>c(h)}),a.jsx("span",{className:"text-sm text-muted-foreground",children:"Recurring annually (applies every year on the same date)"})]}),a.jsxs("div",{className:"flex justify-end gap-2 pt-1",children:[a.jsx(J,{type:"button",variant:"outline",size:"sm",onClick:t,children:"Cancel"}),a.jsx(J,{type:"submit",size:"sm",disabled:f,children:f?r?"Saving…":"Adding…":r?"Save changes":"Add holiday"})]})]})]})})}function KX(){const{data:e,isLoading:t}=Gp(),r=Y3(),n=(e==null?void 0:e.working_days)??qX,s=(i,o)=>{const l={...n,[i]:o};r.mutate({working_days:l},{onSuccess:()=>L.success("Working days updated"),onError:()=>L.error("Failed to update working days")})};return a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"px-6 py-2 border-b border-border bg-muted/20",children:a.jsx("span",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide",children:"Working days"})}),a.jsx("div",{className:"px-6 py-2 border-b border-border bg-muted/10",children:a.jsx("p",{className:"text-xs text-muted-foreground",children:"Configure which days count as business days. This affects duration calculations across the app."})}),t?a.jsx("div",{className:"px-6 py-4 space-y-3",children:[1,2,3,4,5,6,7].map(i=>a.jsx(oe,{className:"h-8 w-full"},i))}):UX.map(({key:i,label:o})=>{const l=n[i];return a.jsxs("div",{className:"grid grid-cols-[180px_1fr_auto] items-center gap-4 px-6 py-3.5 border-b border-border",children:[a.jsx("span",{className:"text-sm text-muted-foreground",children:o}),a.jsx("span",{className:R("text-xs font-medium",l?"text-foreground":"text-muted-foreground/60"),children:l?"Working day":"Not a working day"}),a.jsx(to,{checked:l,onCheckedChange:c=>s(i,c),disabled:r.isPending})]},i)})]})}function YX(){const[e,t]=p.useState(new Date().getFullYear()),[r,n]=p.useState(!1),[s,i]=p.useState(null),[o,l]=p.useState(null),{data:c=[],isLoading:d}=Vp(e),u=X3(),f=()=>{o&&u.mutate(o.id,{onSuccess:()=>{L.success("Holiday removed"),l(null)},onError:()=>L.error("Failed to remove holiday")})},m=[...c].sort((h,g)=>{const x=new Date(h.date).getMonth()*100+new Date(h.date).getDate(),v=new Date(g.date).getMonth()*100+new Date(g.date).getDate();return x-v});return a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"flex items-center justify-between px-6 py-2 border-b border-border bg-muted/20",children:[a.jsx("span",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide",children:"Holidays"}),a.jsxs(J,{size:"sm",className:"h-7 text-xs gap-1.5",onClick:()=>{i(null),n(!0)},children:[a.jsx(nt,{className:"h-3.5 w-3.5"}),"Add holiday"]})]}),a.jsxs("div",{className:"flex items-center gap-1 px-6 py-3 border-b border-border bg-muted/10",children:[a.jsxs("p",{className:"text-xs text-muted-foreground flex-1",children:["Showing holidays for"," ",a.jsx("span",{className:"font-medium text-foreground",children:e}),". Recurring holidays appear every year."]}),a.jsxs("div",{className:"flex items-center gap-1",children:[a.jsx("button",{onClick:()=>t(h=>h-1),className:"h-6 w-6 flex items-center justify-center rounded hover:bg-accent text-muted-foreground hover:text-foreground transition-colors",children:a.jsx(ou,{className:"h-3.5 w-3.5"})}),a.jsx("span",{className:"text-xs font-medium tabular-nums w-10 text-center",children:e}),a.jsx("button",{onClick:()=>t(h=>h+1),className:"h-6 w-6 flex items-center justify-center rounded hover:bg-accent text-muted-foreground hover:text-foreground transition-colors",children:a.jsx(jn,{className:"h-3.5 w-3.5"})})]})]}),a.jsxs("div",{className:"grid grid-cols-[160px_1fr_120px_40px] gap-4 px-6 py-2 border-b border-border bg-muted/20",children:[a.jsx("span",{className:"text-[11px] font-semibold text-muted-foreground uppercase tracking-wide",children:"Date"}),a.jsx("span",{className:"text-[11px] font-semibold text-muted-foreground uppercase tracking-wide",children:"Name"}),a.jsx("span",{className:"text-[11px] font-semibold text-muted-foreground uppercase tracking-wide",children:"Recurrence"}),a.jsx("span",{})]}),d?a.jsx("div",{className:"px-6 py-4 space-y-3",children:[1,2,3].map(h=>a.jsx(oe,{className:"h-8 w-full"},h))}):m.length===0?a.jsxs("div",{className:"flex flex-col items-center justify-center py-12 px-6 text-center",children:[a.jsx(Zj,{className:"h-8 w-8 text-muted-foreground/40 mb-3"}),a.jsxs("p",{className:"text-sm font-medium mb-1",children:["No holidays for ",e]}),a.jsx("p",{className:"text-xs text-muted-foreground mb-3",children:"Add a holiday or use the year navigation to view other years."}),a.jsxs(J,{size:"sm",variant:"outline",className:"h-7 text-xs gap-1.5",onClick:()=>{i(null),n(!0)},children:[a.jsx(nt,{className:"h-3.5 w-3.5"}),"Add holiday"]})]}):m.map(h=>{const g=new Date(h.date);return a.jsxs("div",{className:"grid grid-cols-[160px_1fr_120px_40px] gap-4 items-center px-6 py-3.5 border-b border-border hover:bg-muted/20 transition-colors",children:[a.jsx("span",{className:"text-sm tabular-nums text-muted-foreground",children:de(g,"MMM d, yyyy")}),a.jsx("span",{className:"text-sm font-medium truncate",children:h.name}),a.jsx("span",{className:"text-sm",children:h.recurring?a.jsxs("span",{className:"inline-flex items-center gap-1 text-xs text-muted-foreground",children:[a.jsx(Go,{className:"h-3 w-3"}),"Every year"]}):a.jsx("span",{className:"text-xs text-muted-foreground/60",children:"One-time"})}),a.jsx("div",{className:"flex justify-end",children:a.jsxs(Nn,{children:[a.jsx(kn,{asChild:!0,children:a.jsx("button",{className:"h-6 w-6 flex items-center justify-center rounded text-muted-foreground hover:text-foreground hover:bg-accent transition-colors",children:a.jsx(Li,{className:"h-3.5 w-3.5"})})}),a.jsxs(sn,{align:"end",className:"w-36",children:[a.jsxs(wt,{className:"gap-2 cursor-pointer",onClick:()=>{i(h),n(!0)},children:[a.jsx(Es,{className:"h-3.5 w-3.5"}),"Edit"]}),a.jsxs(wt,{className:"gap-2 cursor-pointer text-destructive focus:text-destructive",onClick:()=>l(h),children:[a.jsx(an,{className:"h-3.5 w-3.5"}),"Remove"]})]})]})})]},h.id)}),a.jsx(HX,{open:r,onClose:()=>{n(!1),i(null)},holiday:s}),a.jsx(Lu,{open:!!o,onOpenChange:h=>!h&&l(null),children:a.jsxs(Ll,{children:[a.jsxs(Fl,{children:[a.jsxs(Wl,{children:['Remove "',o==null?void 0:o.name,'"?']}),a.jsx(Ul,{children:"This holiday will no longer be excluded from business day calculations."})]}),a.jsxs(Bl,{children:[a.jsx(Hl,{children:"Cancel"}),a.jsx(ql,{onClick:f,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"Remove"})]})]})})]})}function GX(){const[e,t]=p.useState("working-days"),r=[{id:"working-days",label:"Working Days"},{id:"holidays",label:"Holidays"}];return a.jsx("div",{className:"p-2 h-full",children:a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl overflow-hidden flex flex-col h-full",children:[a.jsx("div",{className:"flex items-center justify-between px-6 py-4 border-b border-border shrink-0",children:a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx(Zj,{className:"h-5 w-5 text-muted-foreground"}),a.jsxs("div",{children:[a.jsx("h1",{className:"text-base font-semibold",children:"Organization Settings"}),a.jsx("p",{className:"text-xs text-muted-foreground",children:"Global configuration that applies across the entire Meridian deployment."})]})]})}),a.jsx("div",{className:"flex border-b border-border shrink-0 px-6",children:r.map(n=>a.jsx("button",{onClick:()=>t(n.id),className:R("px-1 py-3 mr-6 text-sm font-medium border-b-2 transition-colors",e===n.id?"border-foreground text-foreground":"border-transparent text-muted-foreground hover:text-foreground"),children:n.label},n.id))}),a.jsxs("div",{className:"flex-1 overflow-y-auto",children:[e==="working-days"&&a.jsx(KX,{}),e==="holidays"&&a.jsx(YX,{})]})]})})}const Fm=e=>{let{transform:t}=e;return{...t,y:0}};function Yx(){const[e,t]=p.useState({x:0,y:0,elementX:0,elementY:0,elementPositionX:0,elementPositionY:0}),r=p.useRef(null);return p.useLayoutEffect(()=>{const n=s=>{var o;let i={x:s.pageX,y:s.pageY};if(((o=r.current)==null?void 0:o.nodeType)===Node.ELEMENT_NODE){const{left:l,top:c}=r.current.getBoundingClientRect(),d=l+window.scrollX,u=c+window.scrollY,f=s.pageX-d,m=s.pageY-u;i.elementX=f,i.elementY=m,i.elementPositionX=d,i.elementPositionY=u}t(l=>({...l,...i}))};return document.addEventListener("mousemove",n),()=>{document.removeEventListener("mousemove",n)}},[]),[e,r]}function VX(e,t=500){const[r,n]=p.useState(e),s=p.useRef(null);return p.useEffect(()=>{const i=Date.now();if(s.current&&i>=s.current+t)s.current=i,n(e);else{const o=window.setTimeout(()=>{s.current=i,n(e)},t);return()=>window.clearTimeout(o)}},[e,t]),r}function XX(){const[e,t]=p.useState({x:null,y:null}),r=p.useCallback((...n)=>{if(typeof n[0]=="object")window.scrollTo(n[0]);else if(typeof n[0]=="number"&&typeof n[1]=="number")window.scrollTo(n[0],n[1]);else throw new Error("Invalid arguments passed to scrollTo. See here for more info. https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollTo")},[]);return p.useLayoutEffect(()=>{const n=()=>{t({x:window.scrollX,y:window.scrollY})};return n(),window.addEventListener("scroll",n),()=>{window.removeEventListener("scroll",n)}},[]),[e,r]}const Rn={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1};function DO(e){return"init"in e}function ip(e){return!!e.write}function Fw(e){return"v"in e||"e"in e}function Zd(e){if("e"in e)throw e.e;if((Rn?"production":void 0)!=="production"&&!("v"in e))throw new Error("[Bug] atom state is not initialized");return e.v}function Jd(e){return typeof(e==null?void 0:e.then)=="function"}function TO(e,t,r){if(!r.p.has(e)){r.p.add(e);const n=()=>r.p.delete(e);t.then(n,n)}}function IO(e,t,r){var n;const s=new Set;for(const i of((n=r.get(e))==null?void 0:n.t)||[])s.add(i);for(const i of t.p)s.add(i);return s}const QX=(e,t,...r)=>t.read(...r),ZX=(e,t,...r)=>t.write(...r),JX=(e,t)=>{var r;return(r=t.INTERNAL_onInit)==null?void 0:r.call(t,e)},eQ=(e,t,r)=>{var n;return(n=t.onMount)==null?void 0:n.call(t,r)},tQ=(e,t)=>{var r;const n=Dt(e),s=n[0],i=n[6],o=n[9];if((Rn?"production":void 0)!=="production"&&!t)throw new Error("Atom is undefined or null");let l=s.get(t);return l||(l={d:new Map,p:new Set,n:0},s.set(t,l),(r=i.i)==null||r.call(i,t),o==null||o(e,t)),l},rQ=e=>{const t=Dt(e),r=t[1],n=t[3],s=t[4],i=t[5],o=t[6],l=t[13],c=[],d=u=>{try{u()}catch(f){c.push(f)}};do{o.f&&d(o.f);const u=new Set,f=u.add.bind(u);n.forEach(m=>{var h;return(h=r.get(m))==null?void 0:h.l.forEach(f)}),n.clear(),i.forEach(f),i.clear(),s.forEach(f),s.clear(),u.forEach(d),n.size&&l(e)}while(n.size||i.size||s.size);if(c.length)throw new AggregateError(c)},nQ=e=>{const t=Dt(e),r=t[1],n=t[2],s=t[3],i=t[11],o=t[14],l=t[17],c=[],d=new WeakSet,u=new WeakSet,f=Array.from(s);for(;f.length;){const m=f[f.length-1],h=i(e,m);if(u.has(m)){f.pop();continue}if(d.has(m)){if(n.get(m)===h.n)c.push([m,h]);else if((Rn?"production":void 0)!=="production"&&n.has(m))throw new Error("[Bug] invalidated atom exists");u.add(m),f.pop();continue}d.add(m);for(const g of IO(m,h,r))d.has(g)||f.push(g)}for(let m=c.length-1;m>=0;--m){const[h,g]=c[m];let x=!1;for(const v of g.d.keys())if(v!==h&&s.has(v)){x=!0;break}x&&(o(e,h),l(e,h)),n.delete(h)}},op=new WeakSet,aQ=(e,t)=>{var r,n;const s=Dt(e),i=s[1],o=s[2],l=s[3],c=s[6],d=s[7],u=s[11],f=s[12],m=s[13],h=s[14],g=s[16],x=s[17],v=s[20],y=s[26],j=u(e,t);if(Fw(j)){if(i.has(t)&&o.get(t)!==j.n)return j;let E=!1;for(const[O,T]of j.d)if(h(e,O).n!==T){E=!0;break}if(!E)return j}let b=!0;const N=new Set(j.d.keys()),k=new Map,w=()=>{for(const E of N)k.has(E)||j.d.delete(E)},S=()=>{if(i.has(t)){const E=!l.size;x(e,t),E&&(m(e),f(e))}},C=E=>{var O;if(E===t){const z=u(e,E);if(!Fw(z))if(DO(E))v(e,E,E.init);else throw new Error("no atom init");return Zd(z)}const T=h(e,E);try{return Zd(T)}finally{k.set(E,T.n),j.d.set(E,T.n),Jd(j.v)&&TO(t,j.v,T),i.has(t)&&((O=i.get(E))==null||O.t.add(t)),b||S()}};let P,A;const M={get signal(){return P||(P=new AbortController),P.signal},get setSelf(){return(Rn?"production":void 0)!=="production"&&console.warn("[DEPRECATED] setSelf is deprecated and will be removed in v3."),(Rn?"production":void 0)!=="production"&&!ip(t)&&console.warn("setSelf function cannot be used with read-only atom"),!A&&ip(t)&&(A=(...E)=>{if((Rn?"production":void 0)!=="production"&&b&&console.warn("setSelf function cannot be called in sync"),!b)try{return g(e,t,...E)}finally{m(e),f(e)}}),A}},_=j.n;try{(Rn?"production":void 0)!=="production"&&op.delete(e);const E=d(e,t,C,M);if((Rn?"production":void 0)!=="production"&&op.has(e)&&console.warn("Detected store mutation during atom read. This is not supported."),v(e,t,E),Jd(E)){y(e,E,()=>P==null?void 0:P.abort());const O=()=>{w(),S()};E.then(O,O)}else w();return(r=c.r)==null||r.call(c,t),j}catch(E){return delete j.v,j.e=E,++j.n,j}finally{b=!1,_!==j.n&&o.get(t)===_&&(o.set(t,j.n),l.add(t),(n=c.c)==null||n.call(c,t))}},sQ=(e,t)=>{const r=Dt(e),n=r[1],s=r[2],i=r[11],o=[t];for(;o.length;){const l=o.pop(),c=i(e,l);for(const d of IO(l,c,n)){const u=i(e,d);s.get(d)!==u.n&&(s.set(d,u.n),o.push(d))}}},iQ=(e,t,...r)=>{const n=Dt(e),s=n[3],i=n[6],o=n[8],l=n[11],c=n[12],d=n[13],u=n[14],f=n[15],m=n[16],h=n[17],g=n[20];let x=!0;const v=j=>Zd(u(e,j)),y=(j,...b)=>{var N;const k=l(e,j);try{if(j===t){if(!DO(j))throw new Error("atom not writable");(Rn?"production":void 0)!=="production"&&op.add(e);const w=k.n,S=b[0];g(e,j,S),h(e,j),w!==k.n&&(s.add(j),f(e,j),(N=i.c)==null||N.call(i,j));return}else return m(e,j,...b)}finally{x||(d(e),c(e))}};try{return o(e,t,v,y,...r)}finally{x=!1}},oQ=(e,t)=>{var r;const n=Dt(e),s=n[1],i=n[3],o=n[6],l=n[11],c=n[15],d=n[18],u=n[19],f=l(e,t),m=s.get(t);if(m){for(const[h,g]of f.d)if(!m.d.has(h)){const x=l(e,h);d(e,h).t.add(t),m.d.add(h),g!==x.n&&(i.add(h),c(e,h),(r=o.c)==null||r.call(o,h))}for(const h of m.d)if(!f.d.has(h)){m.d.delete(h);const g=u(e,h);g==null||g.t.delete(t)}}},lQ=(e,t)=>{var r;const n=Dt(e),s=n[1],i=n[4],o=n[6],l=n[10],c=n[11],d=n[12],u=n[13],f=n[14],m=n[16],h=n[18],g=c(e,t);let x=s.get(t);if(!x){f(e,t);for(const v of g.d.keys())h(e,v).t.add(t);if(x={l:new Set,d:new Set(g.d.keys()),t:new Set},s.set(t,x),ip(t)){const v=()=>{let y=!0;const j=(...b)=>{try{return m(e,t,...b)}finally{y||(u(e),d(e))}};try{const b=l(e,t,j);b&&(x.u=()=>{y=!0;try{b()}finally{y=!1}})}finally{y=!1}};i.add(v)}(r=o.m)==null||r.call(o,t)}return x},cQ=(e,t)=>{var r,n;const s=Dt(e),i=s[1],o=s[5],l=s[6],c=s[11],d=s[19],u=c(e,t);let f=i.get(t);if(!f||f.l.size)return f;let m=!1;for(const h of f.t)if((r=i.get(h))!=null&&r.d.has(t)){m=!0;break}if(!m){f.u&&o.add(f.u),f=void 0,i.delete(t);for(const h of u.d.keys()){const g=d(e,h);g==null||g.t.delete(t)}(n=l.u)==null||n.call(l,t);return}return f},dQ=(e,t,r)=>{const n=Dt(e),s=n[11],i=n[27],o=s(e,t),l="v"in o,c=o.v;if(Jd(r))for(const d of o.d.keys())TO(t,r,s(e,d));o.v=r,delete o.e,(!l||!Object.is(c,o.v))&&(++o.n,Jd(c)&&i(e,c))},uQ=(e,t)=>{const r=Dt(e)[14];return Zd(r(e,t))},fQ=(e,t,...r)=>{const n=Dt(e),s=n[12],i=n[13],o=n[16];try{return o(e,t,...r)}finally{i(e),s(e)}},mQ=(e,t,r)=>{const n=Dt(e),s=n[12],i=n[18],o=n[19],c=i(e,t).l;return c.add(r),s(e),()=>{c.delete(r),o(e,t),s(e)}},hQ=(e,t,r)=>{const s=Dt(e)[25];let i=s.get(t);if(!i){i=new Set,s.set(t,i);const o=()=>s.delete(t);t.then(o,o)}i.add(r)},pQ=(e,t)=>{const s=Dt(e)[25].get(t);s==null||s.forEach(i=>i())},RO=new WeakMap,Dt=e=>{const t=RO.get(e);if((Rn?"production":void 0)!=="production"&&!t)throw new Error("Store must be created by buildStore to read its building blocks");return t};function gQ(e){const t=Dt(e),r=t[24];return r?r(t):t}function xQ(...e){const t={get(n){const s=Dt(t)[21];return s(t,n)},set(n,...s){const i=Dt(t)[22];return i(t,n,...s)},sub(n,s){const i=Dt(t)[23];return i(t,n,s)}},r=[new WeakMap,new WeakMap,new WeakMap,new Set,new Set,new Set,{},QX,ZX,JX,eQ,tQ,rQ,nQ,aQ,sQ,iQ,oQ,lQ,cQ,dQ,uQ,fQ,mQ,void 0,new WeakMap,hQ,pQ].map((n,s)=>e[s]||n);return RO.set(t,Object.freeze(r)),t}const $O={};let vQ=0;function zO(e,t){const r=`atom${++vQ}`,n={toString(){return($O?"production":void 0)!=="production"&&this.debugLabel?r+":"+this.debugLabel:r}};return typeof e=="function"?n.read=e:(n.init=e,n.read=yQ,n.write=bQ),n}function yQ(e){return e(this)}function bQ(e,t,r){return t(this,typeof r=="function"?r(e(this)):r)}function wQ(){return xQ()}let zo;function jQ(){return zo||(zo=wQ(),($O?"production":void 0)!=="production"&&(globalThis.__JOTAI_DEFAULT_STORE__||(globalThis.__JOTAI_DEFAULT_STORE__=zo),globalThis.__JOTAI_DEFAULT_STORE__!==zo&&console.warn("Detected multiple Jotai instances. It may cause unexpected behavior with the default store. https://github.com/pmndrs/jotai/discussions/2044"))),zo}const NQ={},kQ=p.createContext(void 0);function LO(e){return p.useContext(kQ)||jQ()}const lp=e=>typeof(e==null?void 0:e.then)=="function",cp=e=>{e.status||(e.status="pending",e.then(t=>{e.status="fulfilled",e.value=t},t=>{e.status="rejected",e.reason=t}))},SQ=D.use||(e=>{if(e.status==="pending")throw e;if(e.status==="fulfilled")return e.value;throw e.status==="rejected"?e.reason:(cp(e),e)}),Bm=new WeakMap,Bw=(e,t,r)=>{const s=gQ(e)[26];let i=Bm.get(t);return i||(i=new Promise((o,l)=>{let c=t;const d=m=>h=>{c===m&&o(h)},u=m=>h=>{c===m&&l(h)},f=()=>{try{const m=r();lp(m)?(Bm.set(m,i),c=m,m.then(d(m),u(m)),s(e,m,f)):o(m)}catch(m){l(m)}};t.then(d(t),u(t)),s(e,t,f)}),Bm.set(t,i)),i};function CQ(e,t){const{delay:r,unstable_promiseStatus:n=!D.use}={},s=LO(),[[i,o,l],c]=p.useReducer(u=>{const f=s.get(e);return Object.is(u[0],f)&&u[1]===s&&u[2]===e?u:[f,s,e]},void 0,()=>[s.get(e),s,e]);let d=i;if((o!==s||l!==e)&&(c(),d=s.get(e)),p.useEffect(()=>{const u=s.sub(e,()=>{if(n)try{const f=s.get(e);lp(f)&&cp(Bw(s,f,()=>s.get(e)))}catch{}if(typeof r=="number"){setTimeout(c,r);return}c()});return c(),u},[s,e,r,n]),p.useDebugValue(d),lp(d)){const u=Bw(s,d,()=>s.get(e));return n&&cp(u),SQ(u)}return d}function _Q(e,t){const r=LO();return p.useCallback((...s)=>{if((NQ?"production":void 0)!=="production"&&!("write"in e))throw new Error("not writable atom");return r.set(e,...s)},[r,e])}function FO(e,t){return[CQ(e),_Q(e)]}var BO="Expected a function",Ww=NaN,OQ="[object Symbol]",PQ=/^\s+|\s+$/g,MQ=/^[-+]0x[0-9a-f]+$/i,AQ=/^0b[01]+$/i,EQ=/^0o[0-7]+$/i,DQ=parseInt,TQ=typeof uc=="object"&&uc&&uc.Object===Object&&uc,IQ=typeof self=="object"&&self&&self.Object===Object&&self,RQ=TQ||IQ||Function("return this")(),$Q=Object.prototype,zQ=$Q.toString,LQ=Math.max,FQ=Math.min,Wm=function(){return RQ.Date.now()};function BQ(e,t,r){var n,s,i,o,l,c,d=0,u=!1,f=!1,m=!0;if(typeof e!="function")throw new TypeError(BO);t=Uw(t)||0,eu(r)&&(u=!!r.leading,f="maxWait"in r,i=f?LQ(Uw(r.maxWait)||0,t):i,m="trailing"in r?!!r.trailing:m);function h(w){var S=n,C=s;return n=s=void 0,d=w,o=e.apply(C,S),o}function g(w){return d=w,l=setTimeout(y,t),u?h(w):o}function x(w){var S=w-c,C=w-d,P=t-S;return f?FQ(P,i-C):P}function v(w){var S=w-c,C=w-d;return c===void 0||S>=t||S<0||f&&C>=i}function y(){var w=Wm();if(v(w))return j(w);l=setTimeout(y,x(w))}function j(w){return l=void 0,m&&n?h(w):(n=s=void 0,o)}function b(){l!==void 0&&clearTimeout(l),d=0,n=c=s=l=void 0}function N(){return l===void 0?o:j(Wm())}function k(){var w=Wm(),S=v(w);if(n=arguments,s=this,c=w,S){if(l===void 0)return g(c);if(f)return l=setTimeout(y,t),h(c)}return l===void 0&&(l=setTimeout(y,t)),o}return k.cancel=b,k.flush=N,k}function WQ(e,t,r){var n=!0,s=!0;if(typeof e!="function")throw new TypeError(BO);return eu(r)&&(n="leading"in r?!!r.leading:n,s="trailing"in r?!!r.trailing:s),BQ(e,t,{leading:n,maxWait:t,trailing:s})}function eu(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function UQ(e){return!!e&&typeof e=="object"}function qQ(e){return typeof e=="symbol"||UQ(e)&&zQ.call(e)==OQ}function Uw(e){if(typeof e=="number")return e;if(qQ(e))return Ww;if(eu(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=eu(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=e.replace(PQ,"");var r=AQ.test(e);return r||EQ.test(e)?DQ(e.slice(2),r?2:8):MQ.test(e)?Ww:+e}var HQ=WQ;const KQ=ja(HQ),WO=p.forwardRef(({className:e,...t},r)=>a.jsx("div",{ref:r,className:R("rounded-lg border bg-card text-card-foreground shadow-sm",e),...t}));WO.displayName="Card";const YQ=p.forwardRef(({className:e,...t},r)=>a.jsx("div",{ref:r,className:R("flex flex-col space-y-1.5 p-6",e),...t}));YQ.displayName="CardHeader";const GQ=p.forwardRef(({className:e,...t},r)=>a.jsx("h3",{ref:r,className:R("text-2xl font-semibold leading-none tracking-tight",e),...t}));GQ.displayName="CardTitle";const VQ=p.forwardRef(({className:e,...t},r)=>a.jsx("p",{ref:r,className:R("text-sm text-muted-foreground",e),...t}));VQ.displayName="CardDescription";const XQ=p.forwardRef(({className:e,...t},r)=>a.jsx("div",{ref:r,className:R("p-6 pt-0",e),...t}));XQ.displayName="CardContent";const QQ=p.forwardRef(({className:e,...t},r)=>a.jsx("div",{ref:r,className:R("flex items-center p-6 pt-0",e),...t}));QQ.displayName="CardFooter";function ZQ(e,t=[]){let r=[];function n(i,o){const l=p.createContext(o),c=r.length;r=[...r,o];const d=f=>{var y;const{scope:m,children:h,...g}=f,x=((y=m==null?void 0:m[e])==null?void 0:y[c])||l,v=p.useMemo(()=>g,Object.values(g));return a.jsx(x.Provider,{value:v,children:h})};d.displayName=i+"Provider";function u(f,m){var x;const h=((x=m==null?void 0:m[e])==null?void 0:x[c])||l,g=p.useContext(h);if(g)return g;if(o!==void 0)return o;throw new Error(`\`${f}\` must be used within \`${i}\``)}return[d,u]}const s=()=>{const i=r.map(o=>p.createContext(o));return function(l){const c=(l==null?void 0:l[e])||i;return p.useMemo(()=>({[`__scope${e}`]:{...l,[e]:c}}),[l,c])}};return s.scopeName=e,[n,JQ(s,...t)]}function JQ(...e){const t=e[0];if(e.length===1)return t;const r=()=>{const n=e.map(s=>({useScope:s(),scopeName:s.scopeName}));return function(i){const o=n.reduce((l,{useScope:c,scopeName:d})=>{const f=c(i)[`__scope${d}`];return{...l,...f}},{});return p.useMemo(()=>({[`__scope${t.scopeName}`]:o}),[o])}};return r.scopeName=t.scopeName,r}function eZ(e){const t=tZ(e),r=p.forwardRef((n,s)=>{const{children:i,...o}=n,l=p.Children.toArray(i),c=l.find(nZ);if(c){const d=c.props.children,u=l.map(f=>f===c?p.Children.count(d)>1?p.Children.only(null):p.isValidElement(d)?d.props.children:null:f);return a.jsx(t,{...o,ref:s,children:p.isValidElement(d)?p.cloneElement(d,void 0,u):null})}return a.jsx(t,{...o,ref:s,children:i})});return r.displayName=`${e}.Slot`,r}function tZ(e){const t=p.forwardRef((r,n)=>{const{children:s,...i}=r;if(p.isValidElement(s)){const o=sZ(s),l=aZ(i,s.props);return s.type!==p.Fragment&&(l.ref=n?yj(n,o):o),p.cloneElement(s,l)}return p.Children.count(s)>1?p.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var rZ=Symbol("radix.slottable");function nZ(e){return p.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===rZ}function aZ(e,t){const r={...t};for(const n in t){const s=e[n],i=t[n];/^on[A-Z]/.test(n)?s&&i?r[n]=(...l)=>{const c=i(...l);return s(...l),c}:s&&(r[n]=s):n==="style"?r[n]={...s,...i}:n==="className"&&(r[n]=[s,i].filter(Boolean).join(" "))}return{...e,...r}}function sZ(e){var n,s;let t=(n=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:n.get,r=t&&"isReactWarning"in t&&t.isReactWarning;return r?e.ref:(t=(s=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:s.get,r=t&&"isReactWarning"in t&&t.isReactWarning,r?e.props.ref:e.props.ref||e.ref)}var iZ=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],oZ=iZ.reduce((e,t)=>{const r=eZ(`Primitive.${t}`),n=p.forwardRef((s,i)=>{const{asChild:o,...l}=s,c=o?r:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),a.jsx(c,{...l,ref:i})});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{}),Gx="ContextMenu",[lZ]=ZQ(Gx,[Nj]),br=Nj(),[cZ,UO]=lZ(Gx),qO=e=>{const{__scopeContextMenu:t,children:r,onOpenChange:n,dir:s,modal:i=!0}=e,[o,l]=p.useState(!1),c=br(t),d=fM(n),u=p.useCallback(f=>{l(f),d(f)},[d]);return a.jsx(cZ,{scope:t,open:o,onOpenChange:u,modal:i,children:a.jsx(mM,{...c,dir:s,open:o,onOpenChange:u,modal:i,children:r})})};qO.displayName=Gx;var HO="ContextMenuTrigger",KO=p.forwardRef((e,t)=>{const{__scopeContextMenu:r,disabled:n=!1,...s}=e,i=UO(HO,r),o=br(r),l=p.useRef({x:0,y:0}),c=p.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...l.current})}),d=p.useRef(0),u=p.useCallback(()=>window.clearTimeout(d.current),[]),f=m=>{l.current={x:m.clientX,y:m.clientY},i.onOpenChange(!0)};return p.useEffect(()=>u,[u]),p.useEffect(()=>void(n&&u()),[n,u]),a.jsxs(a.Fragment,{children:[a.jsx(hM,{...o,virtualRef:c}),a.jsx(oZ.span,{"data-state":i.open?"open":"closed","data-disabled":n?"":void 0,...s,ref:t,style:{WebkitTouchCallout:"none",...e.style},onContextMenu:n?e.onContextMenu:gs(e.onContextMenu,m=>{u(),f(m),m.preventDefault()}),onPointerDown:n?e.onPointerDown:gs(e.onPointerDown,zc(m=>{u(),d.current=window.setTimeout(()=>f(m),700)})),onPointerMove:n?e.onPointerMove:gs(e.onPointerMove,zc(u)),onPointerCancel:n?e.onPointerCancel:gs(e.onPointerCancel,zc(u)),onPointerUp:n?e.onPointerUp:gs(e.onPointerUp,zc(u))})]})});KO.displayName=HO;var dZ="ContextMenuPortal",YO=e=>{const{__scopeContextMenu:t,...r}=e,n=br(t);return a.jsx(aM,{...n,...r})};YO.displayName=dZ;var GO="ContextMenuContent",VO=p.forwardRef((e,t)=>{const{__scopeContextMenu:r,...n}=e,s=UO(GO,r),i=br(r),o=p.useRef(!1);return a.jsx(sM,{...i,...n,ref:t,side:"right",sideOffset:2,align:"start",onCloseAutoFocus:l=>{var c;(c=e.onCloseAutoFocus)==null||c.call(e,l),!l.defaultPrevented&&o.current&&l.preventDefault(),o.current=!1},onInteractOutside:l=>{var c;(c=e.onInteractOutside)==null||c.call(e,l),!l.defaultPrevented&&!s.modal&&(o.current=!0)},style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});VO.displayName=GO;var uZ="ContextMenuGroup",fZ=p.forwardRef((e,t)=>{const{__scopeContextMenu:r,...n}=e,s=br(r);return a.jsx(pM,{...s,...n,ref:t})});fZ.displayName=uZ;var mZ="ContextMenuLabel",XO=p.forwardRef((e,t)=>{const{__scopeContextMenu:r,...n}=e,s=br(r);return a.jsx(dM,{...s,...n,ref:t})});XO.displayName=mZ;var hZ="ContextMenuItem",QO=p.forwardRef((e,t)=>{const{__scopeContextMenu:r,...n}=e,s=br(r);return a.jsx(iM,{...s,...n,ref:t})});QO.displayName=hZ;var pZ="ContextMenuCheckboxItem",ZO=p.forwardRef((e,t)=>{const{__scopeContextMenu:r,...n}=e,s=br(r);return a.jsx(oM,{...s,...n,ref:t})});ZO.displayName=pZ;var gZ="ContextMenuRadioGroup",xZ=p.forwardRef((e,t)=>{const{__scopeContextMenu:r,...n}=e,s=br(r);return a.jsx(gM,{...s,...n,ref:t})});xZ.displayName=gZ;var vZ="ContextMenuRadioItem",JO=p.forwardRef((e,t)=>{const{__scopeContextMenu:r,...n}=e,s=br(r);return a.jsx(cM,{...s,...n,ref:t})});JO.displayName=vZ;var yZ="ContextMenuItemIndicator",eP=p.forwardRef((e,t)=>{const{__scopeContextMenu:r,...n}=e,s=br(r);return a.jsx(lM,{...s,...n,ref:t})});eP.displayName=yZ;var bZ="ContextMenuSeparator",tP=p.forwardRef((e,t)=>{const{__scopeContextMenu:r,...n}=e,s=br(r);return a.jsx(uM,{...s,...n,ref:t})});tP.displayName=bZ;var wZ="ContextMenuArrow",jZ=p.forwardRef((e,t)=>{const{__scopeContextMenu:r,...n}=e,s=br(r);return a.jsx(xM,{...s,...n,ref:t})});jZ.displayName=wZ;var NZ="ContextMenuSubTrigger",rP=p.forwardRef((e,t)=>{const{__scopeContextMenu:r,...n}=e,s=br(r);return a.jsx(rM,{...s,...n,ref:t})});rP.displayName=NZ;var kZ="ContextMenuSubContent",nP=p.forwardRef((e,t)=>{const{__scopeContextMenu:r,...n}=e,s=br(r);return a.jsx(nM,{...s,...n,ref:t,style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});nP.displayName=kZ;function zc(e){return t=>t.pointerType!=="mouse"?e(t):void 0}var SZ=qO,CZ=KO,_Z=YO,aP=VO,sP=XO,iP=QO,oP=ZO,lP=JO,cP=eP,dP=tP,uP=rP,fP=nP;const OZ=SZ,PZ=CZ,MZ=p.forwardRef(({className:e,inset:t,children:r,...n},s)=>a.jsxs(uP,{ref:s,className:R("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",t&&"pl-8",e),...n,children:[r,a.jsx(jn,{className:"ml-auto h-4 w-4"})]}));MZ.displayName=uP.displayName;const AZ=p.forwardRef(({className:e,...t},r)=>a.jsx(fP,{ref:r,className:R("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...t}));AZ.displayName=fP.displayName;const mP=p.forwardRef(({className:e,...t},r)=>a.jsx(_Z,{children:a.jsx(aP,{ref:r,className:R("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...t})}));mP.displayName=aP.displayName;const hP=p.forwardRef(({className:e,inset:t,...r},n)=>a.jsx(iP,{ref:n,className:R("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t&&"pl-8",e),...r}));hP.displayName=iP.displayName;const EZ=p.forwardRef(({className:e,children:t,checked:r,...n},s)=>a.jsxs(oP,{ref:s,className:R("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),checked:r,...n,children:[a.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:a.jsx(cP,{children:a.jsx(Sr,{className:"h-4 w-4"})})}),t]}));EZ.displayName=oP.displayName;const DZ=p.forwardRef(({className:e,children:t,...r},n)=>a.jsxs(lP,{ref:n,className:R("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...r,children:[a.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:a.jsx(cP,{children:a.jsx(Jr,{className:"h-2 w-2 fill-current"})})}),t]}));DZ.displayName=lP.displayName;const TZ=p.forwardRef(({className:e,inset:t,...r},n)=>a.jsx(sP,{ref:n,className:R("px-2 py-1.5 text-sm font-semibold text-foreground",t&&"pl-8",e),...r}));TZ.displayName=sP.displayName;const IZ=p.forwardRef(({className:e,...t},r)=>a.jsx(dP,{ref:r,className:R("-mx-1 my-1 h-px bg-border",e),...t}));IZ.displayName=dP.displayName;const RZ=zO(!1),$Z=zO(0),Vx=()=>FO(RZ),Xx=()=>FO($Z),zZ=e=>{let t=r=>1;return(e==="monthly"||e==="quarterly")&&(t=Za),t},dc=e=>{let t=V1;return(e==="monthly"||e==="quarterly")&&(t=Z1),t},Qx=e=>{let t=j5;return(e==="monthly"||e==="quarterly")&&(t=V1),t},yl=e=>{let t=wi;return(e==="monthly"||e==="quarterly")&&(t=eN),t},LZ=e=>{let t=Q1;return(e==="monthly"||e==="quarterly")&&(t=Wp),t},pP=e=>{let t=Pr;return(e==="monthly"||e==="quarterly")&&(t=Lp),t},qo=(e,t)=>{const r=new Date(e.timelineData[0].year,0,1),n=e.columnWidth*e.zoom/100,s=Math.floor(t/n),i=zZ(e.range),l=pP(e.range)(r,s),c=i(l),d=Math.round(n/c),u=Math.floor(t%n/d);return Pr(l,u)},FZ=e=>{const t=[];t.push({year:e.getFullYear()-1,quarters:new Array(4).fill(null)},{year:e.getFullYear(),quarters:new Array(4).fill(null)},{year:e.getFullYear()+1,quarters:new Array(4).fill(null)});for(const r of t)r.quarters=new Array(4).fill(null).map((n,s)=>({months:new Array(3).fill(null).map((i,o)=>{const l=s*3+o;return{days:Za(new Date(r.year,l,1))}})}));return t},gP=(e,t,r)=>{const n=r.columnWidth*r.zoom/100,s=dc(r.range),i=yl(r.range),o=s(i(e),t);if(r.range==="daily")return n*o;const l=e.getDate(),c=Za(e),d=n/c;return o*n+l*d},BZ=(e,t,r)=>{const n=r.columnWidth*r.zoom/100;if(!t)return n*2;const s=dc(r.range);if(r.range==="daily"){const g=s(t,e);return n*(g||1)}const i=Za(e),o=n/i;if(ji(e,t))return o;const l=Qx(r.range),c=yl(r.range);if(ji(c(e),c(t)))return l(t,e)*o;const d=i-Ko(e),u=Ko(t),f=s(c(t),c(e)),m=Za(t),h=n/m;return(f-1)*n+d*o+u*h},xP=(e,t,r)=>{const n=yl(t),s=LZ(t),i=Qx(t),o=n(e),l=s(e),c=i(l,o);return e.getDate()/c*r},Cn=p.createContext({zoom:100,range:"monthly",columnWidth:50,headerHeight:60,sidebarWidth:300,rowHeight:36,onAddItem:void 0,placeholderLength:2,timelineData:[],ref:null,scrollToFeature:void 0}),Zx=({title:e,columns:t,renderHeaderItem:r})=>{const n=p.useId();return a.jsxs("div",{className:"sticky top-0 z-20 grid w-full shrink-0 bg-backdrop/90 backdrop-blur-sm",style:{height:"var(--gantt-header-height)"},children:[a.jsx("div",{children:a.jsx("div",{className:"sticky inline-flex whitespace-nowrap px-3 py-2 text-muted-foreground text-xs",style:{left:"var(--gantt-sidebar-width)"},children:a.jsx("p",{children:e})})}),a.jsx("div",{className:"grid w-full",style:{gridTemplateColumns:`repeat(${t}, var(--gantt-column-width))`},children:Array.from({length:t}).map((s,i)=>a.jsx("div",{className:"shrink-0 border-border/50 border-b py-1 text-center text-xs",children:r(i)},`${n}-${i}`))})]})},WZ=()=>p.useContext(Cn).timelineData.map(t=>t.quarters.flatMap(r=>r.months).map((r,n)=>a.jsxs("div",{className:"relative flex flex-col",children:[a.jsx(Zx,{columns:r.days,renderHeaderItem:s=>a.jsxs("div",{className:"flex items-center justify-center gap-1",children:[a.jsx("p",{children:de(Pr(new Date(t.year,n,1),s),"d")}),a.jsx("p",{className:"text-muted-foreground",children:de(Pr(new Date(t.year,n,1),s),"EEEEE")})]}),title:de(new Date(t.year,n,1),"MMMM yyyy")}),a.jsx(Jx,{columns:r.days,isColumnSecondary:s=>[0,6].includes(Pr(new Date(t.year,n,1),s).getDay())})]},`${t.year}-${n}`))),UZ=()=>p.useContext(Cn).timelineData.map(t=>a.jsxs("div",{className:"relative flex flex-col",children:[a.jsx(Zx,{columns:t.quarters.flatMap(r=>r.months).length,renderHeaderItem:r=>a.jsx("p",{children:de(new Date(t.year,r,1),"MMM")}),title:`${t.year}`}),a.jsx(Jx,{columns:t.quarters.flatMap(r=>r.months).length})]},t.year)),qZ=()=>p.useContext(Cn).timelineData.map(t=>t.quarters.map((r,n)=>a.jsxs("div",{className:"relative flex flex-col",children:[a.jsx(Zx,{columns:r.months.length,renderHeaderItem:s=>a.jsx("p",{children:de(new Date(t.year,n*3+s,1),"MMM")}),title:`Q${n+1} ${t.year}`}),a.jsx(Jx,{columns:r.months.length})]},`${t.year}-${n}`))),HZ={daily:WZ,monthly:UZ,quarterly:qZ},KZ=({className:e})=>{const t=p.useContext(Cn),r=HZ[t.range];return a.jsx("div",{className:R("-space-x-px flex h-full w-max divide-x divide-border/50",e),children:a.jsx(r,{})})},Um=({feature:e,onSelectItem:t,className:r,duration:n})=>{const s=p.useContext(Cn),i=e.endAt&&ji(e.startAt,e.endAt)?Pr(e.endAt,1):e.endAt,o=n??(i?eh(e.startAt,i):`${eh(e.startAt,new Date)} so far`),l=d=>{var u;d.target===d.currentTarget&&((u=s.scrollToFeature)==null||u.call(s,e),t==null||t(e.id))},c=d=>{var u;d.key==="Enter"&&((u=s.scrollToFeature)==null||u.call(s,e),t==null||t(e.id))};return a.jsxs("div",{className:R("relative flex items-center gap-2.5 p-2.5 text-xs hover:bg-secondary",r),onClick:l,onKeyDown:c,role:"button",style:{height:"var(--gantt-row-height)"},tabIndex:0,children:[a.jsx("div",{className:"pointer-events-none h-2 w-2 shrink-0 rounded-full",style:{backgroundColor:e.status.color}}),a.jsx("p",{className:"pointer-events-none flex-1 truncate text-left font-medium",children:e.name}),a.jsx("p",{className:"pointer-events-none text-muted-foreground",children:o})]},e.id)},YZ=()=>a.jsxs("div",{className:"sticky top-0 z-10 flex shrink-0 items-end justify-between gap-2.5 border-border/50 border-b bg-backdrop/90 p-2.5 font-medium text-muted-foreground text-xs backdrop-blur-sm",style:{height:"var(--gantt-header-height)"},children:[a.jsx("p",{className:"flex-1 truncate text-left",children:"Issues"}),a.jsx("p",{className:"shrink-0",children:"Duration"})]}),qm=({children:e,name:t,className:r})=>a.jsxs("div",{className:r,children:[a.jsx("p",{className:"w-full truncate p-2.5 text-left font-medium text-muted-foreground text-xs",style:{height:"var(--gantt-row-height)"},children:t}),a.jsx("div",{className:"divide-y divide-border/50",children:e})]}),GZ=({children:e,className:t})=>a.jsxs("div",{className:R("sticky left-0 z-30 h-max min-h-full overflow-clip border-border/50 border-r bg-white dark:bg-zinc-950 backdrop-blur-md",t),"data-roadmap-ui":"gantt-sidebar",children:[a.jsx(YZ,{}),a.jsx("div",{className:"space-y-4",children:e})]}),VZ=({top:e,className:t})=>{const[r]=Xx(),n=p.useContext(Cn),[s,i]=Yx(),o=()=>{var u,f,m;const l=(f=(u=n.ref)==null?void 0:u.current)==null?void 0:f.getBoundingClientRect(),c=s.x-((l==null?void 0:l.left)??0)+r-n.sidebarWidth,d=qo(n,c);(m=n.onAddItem)==null||m.call(n,d)};return a.jsx("div",{className:R("absolute top-0 w-full px-0.5",t),ref:i,style:{marginTop:-n.rowHeight/2,transform:`translateY(${e}px)`},children:a.jsx("button",{className:"flex h-full w-full items-center justify-center rounded-md border border-dashed p-2",onClick:o,type:"button",children:a.jsx(nt,{className:"pointer-events-none select-none text-muted-foreground",size:16})})})},XZ=({index:e,isColumnSecondary:t})=>{var m;const r=p.useContext(Cn),[n]=Vx(),[s,i]=Yx(),[o,l]=p.useState(!1),[c]=XX(),d=()=>l(!0),u=()=>l(!1),f=VX(s.y-(((m=i.current)==null?void 0:m.getBoundingClientRect().y)??0)-(c.y??0),10);return a.jsx("div",{className:R("group relative h-full overflow-hidden",t!=null&&t(e)?"bg-[#f59e0b]/5 dark:bg-[#f59e0b]/5":""),onMouseEnter:d,onMouseLeave:u,ref:i,children:!n&&o&&r.onAddItem?a.jsx(VZ,{top:f}):null})},Jx=({columns:e,isColumnSecondary:t})=>{const r=p.useId();return a.jsx("div",{className:"divide grid h-full w-full divide-x divide-border/50",style:{gridTemplateColumns:`repeat(${e}, var(--gantt-column-width))`},children:Array.from({length:e}).map((n,s)=>a.jsx(XZ,{index:s,isColumnSecondary:t},`${r}-${s}`))})},qw=({direction:e,featureId:t,date:r})=>{const[,n]=Vx(),{attributes:s,listeners:i,setNodeRef:o}=_j({id:`feature-drag-helper-${t}`}),l=!!s["aria-pressed"];return p.useEffect(()=>n(l),[l,n]),a.jsxs("div",{className:R("group -translate-y-1/2 !cursor-col-resize absolute top-1/2 z-[3] h-full w-6 rounded-md outline-none",e==="left"?"-left-2.5":"-right-2.5"),ref:o,...s,...i,children:[a.jsx("div",{className:R("-translate-y-1/2 absolute top-1/2 h-[80%] w-1 rounded-sm bg-muted-foreground opacity-0 transition-all",e==="left"?"left-2.5":"right-2.5",e==="left"?"group-hover:left-0":"group-hover:right-0",l&&(e==="left"?"left-0":"right-0"),"group-hover:opacity-100",l&&"opacity-100")}),r&&a.jsx("div",{className:R("-translate-x-1/2 absolute top-10 hidden whitespace-nowrap rounded-lg border border-border/50 bg-background/90 px-2 py-1 text-foreground text-xs backdrop-blur-lg group-hover:block",l&&"block"),children:de(r,"MMM dd, yyyy")})]})},QZ=({id:e,children:t})=>{const[,r]=Vx(),{attributes:n,listeners:s,setNodeRef:i}=_j({id:e}),o=!!n["aria-pressed"];return p.useEffect(()=>r(o),[o,r]),a.jsx(WO,{className:"h-full w-full rounded-md bg-background p-2 text-xs shadow-sm",children:a.jsx("div",{className:R("flex h-full w-full items-center justify-between gap-2 text-left",o&&"cursor-grabbing"),...n,...s,ref:i,children:t})})},Hw=({onMove:e,children:t,className:r,...n})=>{const[s]=Xx(),i=p.useContext(Cn),o=p.useMemo(()=>{var M;return new Date(((M=i.timelineData.at(0))==null?void 0:M.year)??0,0,1)},[i.timelineData]),[l,c]=p.useState(n.startAt),[d,u]=p.useState(n.endAt),f=p.useMemo(()=>BZ(l,d,i),[l,d,i]),m=p.useMemo(()=>gP(l,o,i),[l,o,i]),h=p.useMemo(()=>pP(i.range),[i.range]),[g]=Yx(),[x,v]=p.useState(0),[y,j]=p.useState(l),[b,N]=p.useState(d),k=hp(NM,{activationConstraint:{distance:10}}),w=p.useCallback(()=>{v(g.x),j(l),N(d)},[g.x,l,d]),S=p.useCallback(()=>{const M=qo(i,g.x),_=qo(i,x),E=i.range==="daily"?dc(i.range)(M,_):Qx(i.range)(M,_),O=Pr(y,E),T=b?Pr(b,E):null;c(O),u(T)},[i,g.x,x,y,b]),C=p.useCallback(()=>e==null?void 0:e(n.id,l,d),[e,n.id,l,d]),P=p.useCallback(()=>{var T,z;const M=(z=(T=i.ref)==null?void 0:T.current)==null?void 0:z.getBoundingClientRect(),_=g.x-((M==null?void 0:M.left)??0)+s-i.sidebarWidth,O=yl(i.range)(qo(i,_));c(O)},[i,g.x,s]),A=p.useCallback(()=>{var T,z;const M=(z=(T=i.ref)==null?void 0:T.current)==null?void 0:z.getBoundingClientRect(),_=g.x-((M==null?void 0:M.left)??0)+s-i.sidebarWidth,O=yl(i.range)(qo(i,_));u(O)},[i,g.x,s]);return a.jsx("div",{className:R("relative flex w-max min-w-full py-0.5",r),style:{height:"var(--gantt-row-height)"},children:a.jsxs("div",{className:"pointer-events-auto absolute top-0.5",style:{height:"calc(var(--gantt-row-height) - 4px)",width:Math.round(f),left:Math.round(m)},children:[e&&a.jsx(Ho,{modifiers:[Fm],onDragEnd:C,onDragMove:P,sensors:[k],children:a.jsx(qw,{date:l,direction:"left",featureId:n.id})}),a.jsx(Ho,{modifiers:[Fm],onDragEnd:C,onDragMove:S,onDragStart:w,sensors:[k],children:a.jsx(QZ,{id:n.id,children:t??a.jsx("p",{className:"flex-1 truncate text-xs",children:n.name})})}),e&&a.jsx(Ho,{modifiers:[Fm],onDragEnd:C,onDragMove:A,sensors:[k],children:a.jsx(qw,{date:d?sN(d):h(l,1),direction:"right",featureId:n.id})})]})})},Hm=({children:e,className:t})=>a.jsx("div",{className:t,style:{paddingTop:"var(--gantt-row-height)"},children:e}),ZZ=({className:e,children:t})=>a.jsx("div",{className:R("absolute top-0 left-0 h-full w-max space-y-4",e),style:{marginTop:"var(--gantt-header-height)"},children:t}),vP=p.memo(({label:e,date:t,id:r,onRemove:n,className:s})=>{const i=p.useContext(Cn),o=p.useMemo(()=>dc(i.range),[i.range]),l=p.useMemo(()=>{var f;return new Date(((f=i.timelineData.at(0))==null?void 0:f.year)??0,0,1)},[i.timelineData]),c=p.useMemo(()=>o(t,l),[o,t,l]),d=p.useMemo(()=>xP(t,i.range,i.columnWidth*i.zoom/100),[t,i.range,i.columnWidth,i.zoom]),u=p.useCallback(()=>n==null?void 0:n(r),[n,r]);return a.jsxs("div",{className:"pointer-events-none absolute top-0 left-0 z-20 flex h-full select-none flex-col items-center justify-center overflow-visible",style:{width:0,transform:`translateX(calc(var(--gantt-column-width) * ${c} + ${d}px))`},children:[a.jsxs(OZ,{children:[a.jsx(PZ,{asChild:!0,children:a.jsxs("div",{className:R("group pointer-events-auto sticky top-0 flex select-auto flex-col flex-nowrap items-center justify-center whitespace-nowrap rounded-b-md bg-card px-2 py-1 text-foreground text-xs",s),children:[e,a.jsx("span",{className:"max-h-[0] overflow-hidden opacity-80 transition-all group-hover:max-h-[2rem]",children:de(t,"MMM dd, yyyy")})]})}),a.jsx(mP,{children:n?a.jsxs(hP,{className:"flex items-center gap-2 text-destructive",onClick:u,children:[a.jsx(EE,{size:16}),"Remove marker"]}):null})]}),a.jsx("div",{className:R("h-full w-px bg-card",s)})]})});vP.displayName="GanttMarker";const JZ=({zoom:e=100,range:t="monthly",onAddItem:r,children:n,className:s})=>{const i=p.useRef(null),[o,l]=p.useState(FZ(new Date)),[,c]=Xx(),[d,u]=p.useState(0),f=60,m=36;let h=50;t==="monthly"?h=150:t==="quarterly"&&(h=100);const g=p.useMemo(()=>({"--gantt-zoom":`${e}`,"--gantt-column-width":`${e/100*h}px`,"--gantt-header-height":`${f}px`,"--gantt-row-height":`${m}px`,"--gantt-sidebar-width":`${d}px`}),[e,h,d]);p.useEffect(()=>{i.current&&(i.current.scrollLeft=i.current.scrollWidth/2-i.current.clientWidth/2,c(i.current.scrollLeft))},[c]),p.useEffect(()=>{const y=()=>{var k;const N=((k=i.current)==null?void 0:k.querySelector('[data-roadmap-ui="gantt-sidebar"]'))?300:0;u(N)};y();const j=new MutationObserver(y);return i.current&&j.observe(i.current,{childList:!0,subtree:!0}),()=>{j.disconnect()}},[]);const x=p.useCallback(KQ(()=>{var k,w;const y=i.current;if(!y)return;const{scrollLeft:j,scrollWidth:b,clientWidth:N}=y;if(c(j),j===0){const S=(k=o[0])==null?void 0:k.year;if(!S)return;const C=[...o];C.unshift({year:S-1,quarters:new Array(4).fill(null).map((P,A)=>({months:new Array(3).fill(null).map((M,_)=>{const E=A*3+_;return{days:Za(new Date(S,E,1))}})}))}),l(C),y.scrollLeft=y.clientWidth,c(y.scrollLeft)}else if(j+N>=b){const S=(w=o.at(-1))==null?void 0:w.year;if(!S)return;const C=[...o];C.push({year:S+1,quarters:new Array(4).fill(null).map((P,A)=>({months:new Array(3).fill(null).map((M,_)=>{const E=A*3+_;return{days:Za(new Date(S,E,1))}})}))}),l(C),y.scrollLeft=y.scrollWidth-y.clientWidth,c(y.scrollLeft)}},100),[]);p.useEffect(()=>{const y=i.current;return y&&y.addEventListener("scroll",x),()=>{y&&y.removeEventListener("scroll",x)}},[x]);const v=p.useCallback(y=>{const j=i.current;if(!j)return;const b=new Date(o[0].year,0,1),N=gP(y.startAt,b,{zoom:e,range:t,columnWidth:h}),k=Math.max(0,N);j.scrollTo({left:k,behavior:"smooth"})},[o,e,t,h,d,r]);return a.jsx(Cn.Provider,{value:{zoom:e,range:t,headerHeight:f,columnWidth:h,sidebarWidth:d,rowHeight:m,onAddItem:r,timelineData:o,placeholderLength:2,ref:i,scrollToFeature:v},children:a.jsx("div",{className:R("gantt relative isolate grid h-full w-full flex-none select-none overflow-auto rounded-sm bg-secondary",t,s),ref:i,style:{...g,gridTemplateColumns:"var(--gantt-sidebar-width) 1fr"},children:n})})},eJ=({children:e,className:t})=>a.jsx("div",{className:R("relative flex h-full w-max flex-none overflow-clip",t),children:e}),tJ=({className:e})=>{const t="Today",r=p.useMemo(()=>new Date,[]),n=p.useContext(Cn),s=p.useMemo(()=>dc(n.range),[n.range]),i=p.useMemo(()=>{var c;return new Date(((c=n.timelineData.at(0))==null?void 0:c.year)??0,0,1)},[n.timelineData]),o=p.useMemo(()=>s(r,i),[s,r,i]),l=p.useMemo(()=>xP(r,n.range,n.columnWidth*n.zoom/100),[r,n.range,n.columnWidth,n.zoom]);return a.jsxs("div",{className:"pointer-events-none absolute top-0 left-0 z-20 flex h-full select-none flex-col items-center justify-center overflow-visible",style:{width:0,transform:`translateX(calc(var(--gantt-column-width) * ${o} + ${l}px))`},children:[a.jsxs("div",{className:R("group pointer-events-auto sticky top-0 flex select-auto flex-col flex-nowrap items-center justify-center whitespace-nowrap rounded-b-md bg-card px-2 py-1 text-foreground text-xs",e),children:[t,a.jsx("span",{className:"max-h-[0] overflow-hidden opacity-80 transition-all group-hover:max-h-[2rem]",children:de(r,"MMM dd, yyyy")})]}),a.jsx("div",{className:R("h-full w-px bg-card",e)})]})};function rJ(e){return De({queryKey:["public","share",e],queryFn:()=>ae.get(`/public/share/${e}`),select:t=>t.project,enabled:!!e,retry:!1})}function ev(e,t={}){const r=new URLSearchParams;t.status&&r.set("status",t.status),t.priority&&r.set("priority",t.priority),t.search&&r.set("search",t.search);const n=r.toString()?`?${r.toString()}`:"";return De({queryKey:["public","share",e,"issues",t],queryFn:()=>ae.get(`/public/share/${e}/issues${n}`),select:s=>s.issues,enabled:!!e,retry:!1})}function yP(e){return De({queryKey:["public","share",e,"sprints"],queryFn:()=>ae.get(`/public/share/${e}/sprints`),select:t=>t.sprints,enabled:!!e,retry:!1})}function nJ({priority:e,className:t}){const r=R("h-3.5 w-3.5 shrink-0",Yp[e],t);switch(e){case"urgent":return a.jsx(ns,{className:r});case"high":return a.jsx(Cl,{className:r});case"medium":return a.jsx(Bi,{className:r});case"low":return a.jsx(Sl,{className:r});default:return a.jsx(Jr,{className:R("h-3.5 w-3.5 shrink-0 text-zinc-300",t)})}}const dp="grid-cols-[70px_250px_150px_120px_130px_140px_130px]";function bP({issue:e,statuses:t,statusLabels:r,statusColorMap:n,sprints:s,isChild:i=!1,children:o=[],childrenMap:l}){const[c,d]=p.useState(!1),u=o.length>0,f=n[e.status]??"#94a3b8",m=s.find(h=>h.id===e.sprint_id);return a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:R(`group grid ${dp} items-center py-3`,"hover:bg-[#f9fafb] dark:hover:bg-muted/30 transition-colors",i&&"bg-muted/10"),children:[a.jsx("span",{className:R("text-xs font-mono text-muted-foreground truncate","sticky left-0 z-10 pl-6 transition-colors","bg-white dark:bg-card group-hover:bg-[#f9fafb] dark:group-hover:bg-muted/30",i&&"text-muted-foreground/60"),children:e.identifier}),a.jsxs("div",{className:R("flex items-center gap-1 min-w-0 pr-3","sticky left-[70px] z-10 transition-colors","bg-white dark:bg-card group-hover:bg-[#f9fafb] dark:group-hover:bg-muted/30",i&&"bg-[#f8f9fa] dark:bg-muted/20"),children:[u?a.jsxs(qa,{children:[a.jsx(Ha,{asChild:!0,children:a.jsx("button",{onClick:()=>d(!c),className:"shrink-0 text-muted-foreground hover:text-foreground transition-colors p-0.5 rounded",children:c?a.jsx(Na,{className:"h-3.5 w-3.5"}):a.jsx(jn,{className:"h-3.5 w-3.5"})})}),a.jsx(la,{side:"top",children:c?"Collapse":"Expand"})]}):i?a.jsx(xn,{className:"h-3 w-3 text-muted-foreground/40 shrink-0"}):a.jsx("span",{className:"w-4 shrink-0"}),a.jsx("span",{className:R("text-sm text-foreground truncate",i&&"text-muted-foreground"),children:e.title}),u&&a.jsxs("span",{className:"shrink-0 flex items-center gap-0.5 ml-1 text-[10px] font-medium text-indigo-700 dark:text-indigo-300 bg-indigo-50 dark:bg-indigo-950/50 px-1 py-0.5 rounded",children:[a.jsx(xn,{className:"h-2.5 w-2.5"}),o.length]})]}),a.jsxs("div",{className:"flex items-center gap-1.5 px-1.5 py-1 max-w-full",children:[a.jsx("span",{className:"h-2 w-2 rounded-full shrink-0",style:{backgroundColor:f}}),a.jsx("span",{className:"text-xs text-muted-foreground truncate",children:r[e.status]??e.status})]}),a.jsxs("div",{className:"flex items-center gap-1.5 px-1.5 py-1",children:[a.jsx(nJ,{priority:e.priority}),a.jsx("span",{className:"text-xs text-muted-foreground",children:yn[e.priority]??e.priority})]}),a.jsxs("div",{className:"flex items-center gap-1.5 px-1.5 py-1 max-w-full",children:[a.jsx(Mr,{className:"h-3.5 w-3.5 text-muted-foreground/50 shrink-0"}),a.jsx("span",{className:R("text-xs truncate",m?"text-foreground":"text-muted-foreground/50"),children:(m==null?void 0:m.name)??"—"})]}),a.jsxs("div",{className:"flex items-center gap-1.5 px-1.5 py-1",children:[a.jsx(or,{className:"h-3.5 w-3.5 text-muted-foreground/50 shrink-0"}),a.jsx("span",{className:R("text-xs",e.due_date?"text-foreground":"text-muted-foreground/50"),children:e.due_date?de(new Date(e.due_date),"MMM d, yyyy"):"—"})]}),a.jsx("div",{className:"flex items-center px-1.5",children:a.jsx("div",{className:"flex -space-x-1.5",children:(e.assignees??[]).slice(0,3).map(h=>a.jsx("div",{title:h.name,className:"h-5 w-5 rounded-full bg-indigo-100 dark:bg-indigo-900 border border-white dark:border-card flex items-center justify-center text-[10px] font-medium text-indigo-700 dark:text-indigo-300",children:h.initials},h.id))})})]}),c&&o.map(h=>a.jsx(bP,{issue:h,statuses:t,statusLabels:r,statusColorMap:n,sprints:s,isChild:!0,children:(l==null?void 0:l[h.id])??[],childrenMap:l},h.id))]})}function aJ({issues:e,childrenMap:t,statuses:r,statusLabels:n,statusColorMap:s,sprints:i,totalCount:o}){const[l,c]=p.useState(!1);return a.jsxs("div",{children:[a.jsxs("div",{className:"flex items-center gap-2 px-6 py-2 bg-muted/20 border-b border-border",children:[a.jsx("button",{onClick:()=>c(!l),className:"text-muted-foreground hover:text-foreground transition-colors",children:l?a.jsx(jn,{className:"h-3.5 w-3.5"}):a.jsx(Na,{className:"h-3.5 w-3.5"})}),a.jsx("span",{className:"text-xs font-semibold text-muted-foreground",children:"Issues"}),a.jsx("span",{className:"text-[11px] text-muted-foreground/60 font-mono",children:o})]}),!l&&a.jsx("div",{className:"divide-y divide-border/60",children:e.length===0?a.jsx("div",{className:"px-14 py-5 text-xs text-muted-foreground/50 italic",children:"No issues match your filters"}):e.map(d=>a.jsx(bP,{issue:d,statuses:r,statusLabels:n,statusColorMap:s,sprints:i,children:t[d.id]??[],childrenMap:t},d.id))})]})}function sJ({token:e,statuses:t}){const[r,n]=p.useState("all"),[s,i]=p.useState("all"),[o,l]=p.useState("all"),[c,d]=p.useState(""),{data:u=[],isLoading:f}=ev(e),{data:m=[]}=yP(e),h=Object.fromEntries(t.map(b=>[b.key,b.name])),g=Object.fromEntries(t.map(b=>[b.key,b.color])),x={};for(const b of u)b.parent_id&&(x[b.parent_id]||(x[b.parent_id]=[]),x[b.parent_id].push(b));const v=u.filter(b=>!b.parent_id).filter(b=>{const N=c.toLowerCase(),k=!c||b.title.toLowerCase().includes(N)||b.identifier.toLowerCase().includes(N),w=r==="all"||b.status===r,S=s==="all"||b.priority===s,C=o==="all"?!0:o==="none"?!b.sprint_id:b.sprint_id===o;return k&&w&&S&&C}).sort((b,N)=>{const k=parseInt(b.identifier.split("-")[1]??"0",10),w=parseInt(N.identifier.split("-")[1]??"0",10);return k-w}),y=v.reduce((b,N)=>{var k;return b+(((k=x[N.id])==null?void 0:k.length)??0)},0),j=v.length+y;return a.jsx("div",{className:"p-2",children:a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl overflow-hidden",children:[a.jsxs("div",{className:"flex items-center justify-between px-6 py-3 border-b border-border gap-3 flex-wrap",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsxs($e,{value:o,onValueChange:l,children:[a.jsx(Te,{className:"h-8 text-xs w-[140px] bg-transparent",children:a.jsx(He,{placeholder:"Sprint"})}),a.jsxs(Ie,{children:[a.jsx(ve,{value:"all",className:"text-xs",children:"All sprints"}),a.jsx(ve,{value:"none",className:"text-xs text-muted-foreground",children:"No sprint"}),m.map(b=>a.jsx(ve,{value:b.id,className:"text-xs",children:b.name},b.id))]})]}),a.jsxs($e,{value:r,onValueChange:n,children:[a.jsx(Te,{className:"h-8 text-xs w-[130px] bg-transparent",children:a.jsx(He,{placeholder:"Status"})}),a.jsxs(Ie,{children:[a.jsx(ve,{value:"all",className:"text-xs",children:"All statuses"}),t.map(({key:b,name:N})=>a.jsx(ve,{value:b,className:"text-xs",children:N},b))]})]}),a.jsxs($e,{value:s,onValueChange:i,children:[a.jsx(Te,{className:"h-8 text-xs w-[130px] bg-transparent",children:a.jsx(He,{placeholder:"Priority"})}),a.jsxs(Ie,{children:[a.jsx(ve,{value:"all",className:"text-xs",children:"All priorities"}),Object.entries(yn).map(([b,N])=>a.jsx(ve,{value:b,className:"text-xs",children:N},b))]})]})]}),a.jsxs("div",{className:"relative",children:[a.jsx(Ol,{className:"absolute left-2.5 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground pointer-events-none"}),a.jsx(_e,{placeholder:"Search...",value:c,onChange:b=>d(b.target.value),className:"pl-8 h-8 w-[200px] text-xs bg-transparent"})]})]}),a.jsx("div",{className:"overflow-x-auto",children:a.jsxs("div",{className:"min-w-[900px]",children:[a.jsxs("div",{className:R("grid items-center py-2.5 border-b border-border",dp),children:[a.jsx("span",{className:"text-xs font-medium text-[#6b7280] sticky left-0 z-10 bg-white dark:bg-card pl-6",children:"ID"}),a.jsx("span",{className:"text-xs font-medium text-[#6b7280] sticky left-[70px] z-10 bg-white dark:bg-card",children:"Title"}),a.jsx("span",{className:"text-xs font-medium text-[#6b7280]",children:"Status"}),a.jsx("span",{className:"text-xs font-medium text-[#6b7280]",children:"Priority"}),a.jsx("span",{className:"text-xs font-medium text-[#6b7280]",children:"Sprint"}),a.jsx("span",{className:"text-xs font-medium text-[#6b7280]",children:"Due Date"}),a.jsx("span",{className:"text-xs font-medium text-[#6b7280]",children:"Assignees"})]}),f?a.jsx("div",{className:"divide-y divide-border",children:[1,2,3,4].map(b=>a.jsxs("div",{className:R("grid items-center px-6 py-3 gap-4",dp),children:[a.jsx(oe,{className:"h-4 w-14"}),a.jsx(oe,{className:"h-4 w-56"}),a.jsx(oe,{className:"h-5 w-20"}),a.jsx(oe,{className:"h-4 w-16"}),a.jsx(oe,{className:"h-4 w-20"}),a.jsx(oe,{className:"h-4 w-24"}),a.jsx(oe,{className:"h-6 w-16"})]},b))}):u.length===0?a.jsx("div",{className:"flex flex-col items-center justify-center py-16 text-center",children:a.jsx("p",{className:"text-sm font-medium mb-1",children:"No issues yet"})}):a.jsx(au,{delayDuration:200,children:a.jsx(aJ,{issues:v,childrenMap:x,statuses:t,statusLabels:h,statusColorMap:g,sprints:m,totalCount:j})})]})}),!f&&j>0&&a.jsx("div",{className:"flex items-center px-6 py-3 border-t border-border",children:a.jsxs("span",{className:"text-xs text-muted-foreground",children:[j," issue",j!==1?"s":""]})})]})})}function Lc(e,t){const r=e.start_date?new Date(e.start_date):new Date(e.due_date),n=e.due_date?Pr(new Date(e.due_date),1):Pr(r,1);return{id:e.id,name:`${e.identifier} ${e.title}`,startAt:r,endAt:n,status:{id:e.status,name:e.status,color:t}}}function iJ({token:e,statuses:t}){const[r,n]=p.useState("monthly"),s=p.useRef(null),{data:i=[]}=ev(e),{data:o=[]}=yP(e);p.useEffect(()=>{const m=requestAnimationFrame(()=>{var j;const h=(j=s.current)==null?void 0:j.querySelector(".gantt");if(!h)return;const g=new Date,x=g.getFullYear()-1,v=300;let y;if(r==="daily")y=Math.floor((g.getTime()-new Date(x,0,1).getTime())/864e5)*50;else{const b=r==="monthly"?150:100,N=(g.getFullYear()-x)*12+g.getMonth(),k=new Date(g.getFullYear(),g.getMonth()+1,0).getDate();y=N*b+(g.getDate()-1)/k*b}h.scrollLeft=Math.max(0,y-(h.clientWidth-v)/2)});return()=>cancelAnimationFrame(m)},[r]);const l=Object.fromEntries(t.map(m=>[m.key,m.color])),c=i.filter(m=>m.due_date),d=i.filter(m=>!m.due_date),u={},f=[];for(const m of c)m.sprint_id?(u[m.sprint_id]||(u[m.sprint_id]=[]),u[m.sprint_id].push(m)):f.push(m);return a.jsxs("div",{className:"flex flex-col h-full min-h-0",children:[a.jsx("div",{className:"flex items-center px-6 py-3 border-b border-border shrink-0 bg-white dark:bg-zinc-950",children:a.jsx("div",{className:"flex items-center gap-1 bg-muted rounded-md p-0.5",children:["daily","monthly","quarterly"].map(m=>a.jsx("button",{onClick:()=>n(m),className:`px-3 py-1 rounded text-xs font-medium transition-colors capitalize ${r===m?"bg-white dark:bg-zinc-900 text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"}`,children:m},m))})}),a.jsx("div",{ref:s,className:"flex-1 min-h-0 overflow-hidden",children:a.jsxs(JZ,{range:r,zoom:100,className:"h-full bg-white dark:bg-zinc-950",children:[a.jsxs(GZ,{children:[o.map(m=>{const h=u[m.id]??[];return a.jsx(qm,{name:m.name,children:h.map(g=>a.jsx(Um,{feature:Lc(g,l[g.status]??"#94a3b8")},g.id))},m.id)}),f.length>0&&a.jsx(qm,{name:"No Sprint",children:f.map(m=>a.jsx(Um,{feature:Lc(m,l[m.status]??"#94a3b8")},m.id))}),d.length>0&&a.jsx(qm,{name:"Unscheduled",children:d.map(m=>a.jsx(Um,{feature:{id:m.id,name:`${m.identifier} ${m.title}`,startAt:new Date,endAt:new Date,status:{id:m.status,name:m.status,color:l[m.status]??"#94a3b8"}}},m.id))})]}),a.jsxs(eJ,{children:[a.jsx(KZ,{}),a.jsxs(ZZ,{children:[o.map(m=>a.jsx(Hm,{children:(u[m.id]??[]).map(h=>a.jsx("div",{className:"flex",children:a.jsx(Hw,{...Lc(h,l[h.status]??"#94a3b8")})},h.id))},m.id)),f.length>0&&a.jsx(Hm,{children:f.map(m=>a.jsx("div",{className:"flex",children:a.jsx(Hw,{...Lc(m,l[m.status]??"#94a3b8")})},m.id))}),d.length>0&&a.jsx(Hm,{children:d.map(m=>a.jsx("div",{style:{height:"var(--gantt-row-height)"}},m.id))})]}),o.filter(m=>m.end_date).map(m=>a.jsx(vP,{id:m.id,date:new Date(m.end_date),label:`${m.name} end`},m.id)),a.jsx(tJ,{})]})]})})]})}function oJ(){const{token:e}=Ut(),[t,r]=p.useState("board"),{data:n,isLoading:s,isError:i}=rJ(e??""),{data:o}=ev(e??"");if(!e)return null;if(s)return a.jsx("div",{className:"min-h-screen flex items-center justify-center",children:a.jsx("span",{className:"text-sm text-muted-foreground",children:"Loading…"})});if(i||!n)return a.jsxs("div",{className:"min-h-screen flex flex-col items-center justify-center gap-3",children:[a.jsx("p",{className:"text-lg font-semibold",children:"Link not found"}),a.jsx("p",{className:"text-sm text-muted-foreground",children:"This share link is invalid or has been revoked."})]});const l=[{key:"board",label:"Board"},{key:"issues",label:"Issues"},{key:"timeline",label:"Timeline"}];return a.jsxs("div",{className:"h-screen flex flex-col bg-background overflow-hidden",children:[a.jsx("header",{className:"border-b border-border px-6 py-3 bg-white dark:bg-card shrink-0",children:a.jsxs("div",{className:"flex items-center gap-3",children:[n.icon&&a.jsx("span",{className:"text-xl",children:n.icon}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("span",{className:"text-xs font-mono text-indigo-700 dark:text-indigo-300 bg-indigo-50 dark:bg-indigo-950/50 border border-indigo-200 dark:border-indigo-800 px-2 py-0.5 rounded",children:n.identifier}),a.jsx("h1",{className:"text-sm font-semibold",children:n.name})]}),a.jsx("span",{className:"ml-auto text-xs text-muted-foreground",children:"Read-only view"})]})}),a.jsx("div",{className:"border-b border-border bg-white dark:bg-card px-6 shrink-0",children:a.jsx("div",{className:"flex -mb-px",children:l.map(({key:c,label:d})=>a.jsx("button",{onClick:()=>r(c),className:`px-3 py-2 text-sm border-b-2 transition-colors ${t===c?"border-foreground text-foreground font-medium":"border-transparent text-muted-foreground hover:text-foreground"}`,children:d},c))})}),a.jsxs("div",{className:`flex-1 min-h-0 ${t==="timeline"?"overflow-hidden":"overflow-auto"}`,children:[t==="board"&&a.jsx(oN,{issues:o??[],projectId:n.id,statuses:n.statuses,readOnly:!0}),t==="issues"&&a.jsx(sJ,{token:e,statuses:n.statuses}),t==="timeline"&&a.jsx(iJ,{token:e,statuses:n.statuses})]})]})}function lJ(){const[e,t]=p.useState(null),r=Nt(),n=Oe();return p.useEffect(()=>{const s=new URLSearchParams(window.location.search);if(history.replaceState(null,"",window.location.pathname),s.get("linked")==="true"){r("/profile?linked=true",{replace:!0});return}const o=s.get("error");if(o){t(decodeURIComponent(o));return}const l=s.get("code");if(!l){t("No authorization code received from Google sign-in");return}(async()=>{const d=await fetch(`${vi}/auth/google/exchange`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:l})});if(!d.ok)throw new Error(`Code exchange failed (${d.status}). Please try signing in again.`);const{token:u}=await d.json(),f=await fetch(`${vi}/admin/users/me`,{headers:{Authorization:`Bearer ${u}`}});if(!f.ok)throw new Error(`Failed to load user profile (${f.status})`);const m=await f.json();n.login({id:m.id,email:m.email,first_name:m.first_name??"",last_name:m.last_name??""},u),r("/",{replace:!0})})().catch(d=>t(d.message??"Failed to complete sign-in"))},[]),e?a.jsx("div",{className:"min-h-screen bg-[hsl(60_5%_96%)] dark:bg-background flex items-center justify-center p-4",children:a.jsxs("div",{className:"w-full max-w-[360px] bg-white dark:bg-card border border-border rounded-xl p-6 text-center space-y-4",children:[a.jsx("p",{className:"text-sm font-medium",children:"Sign-in failed"}),a.jsx("p",{className:"text-sm text-muted-foreground",children:e}),a.jsx(Va,{to:"/login",children:a.jsx(J,{variant:"outline",size:"sm",children:"Back to login"})})]})}):a.jsx("div",{className:"min-h-screen flex items-center justify-center",children:a.jsx("span",{className:"text-sm text-muted-foreground",children:"Completing sign-in..."})})}function cJ(){return De({queryKey:["me"],queryFn:()=>ae.get("/admin/users/me")})}function dJ(){const e=Ne(),{updateLocalUser:t}=Oe();return je({mutationFn:r=>ae.patch("/admin/users/me",r),onSuccess:({user:r})=>{t({first_name:r.first_name??"",last_name:r.last_name??"",designation:r.designation,phone_number:r.phone_number}),e.invalidateQueries({queryKey:["me"]})}})}function uJ(){const e=Ne(),{updateLocalUser:t}=Oe();return je({mutationFn:r=>{const n=new FormData;return n.append("avatar",r),ae.upload("/admin/users/me/avatar",n)},onSuccess:({user:r})=>{t({avatar_url:r.avatar_url}),e.invalidateQueries({queryKey:["me"]})}})}function fJ(){const e=Ne(),{updateLocalUser:t}=Oe();return je({mutationFn:()=>ae.delete("/admin/users/me/avatar"),onSuccess:()=>{t({avatar_url:null}),e.invalidateQueries({queryKey:["me"]})}})}function mJ(){const e=Ne();return je({mutationFn:()=>ae.delete("/admin/users/me/google"),onSuccess:()=>{e.invalidateQueries({queryKey:["me"]})}})}function Kw({className:e}){return a.jsxs("svg",{className:e??"size-4",viewBox:"0 0 24 24","aria-hidden":"true",children:[a.jsx("path",{d:"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z",fill:"#4285F4"}),a.jsx("path",{d:"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z",fill:"#34A853"}),a.jsx("path",{d:"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l3.66-2.84z",fill:"#FBBC05"}),a.jsx("path",{d:"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z",fill:"#EA4335"})]})}function hJ(){var C,P,A,M;const[e,t]=fp(),{user:r}=Oe(),{data:n,isLoading:s}=cJ(),i=dJ(),o=uJ(),l=fJ(),c=mJ(),d=p.useRef(null),[u,f]=p.useState(""),[m,h]=p.useState(""),[g,x]=p.useState(""),[v,y]=p.useState("");p.useEffect(()=>{n&&(f(n.first_name??""),h(n.last_name??""),x(n.designation??""),y(n.phone_number??""))},[n]),p.useEffect(()=>{e.get("linked")==="true"&&(L.success("Google account connected successfully"),t(_=>(_.delete("linked"),_),{replace:!0}))},[e,t]);const j=r&&(`${((C=r.first_name)==null?void 0:C[0])??""}${((P=r.last_name)==null?void 0:P[0])??""}`.toUpperCase()||((M=(A=r.email)==null?void 0:A[0])==null?void 0:M.toUpperCase()))||"?",b=_=>{var O;const E=(O=_.target.files)==null?void 0:O[0];E&&(o.mutate(E,{onSuccess:()=>L.success("Avatar updated"),onError:T=>L.error(T.message??"Failed to upload avatar")}),_.target.value="")},N=()=>{l.mutate(void 0,{onSuccess:()=>L.success("Avatar removed"),onError:_=>L.error(_.message??"Failed to remove avatar")})},k=()=>{i.mutate({first_name:u,last_name:m,designation:g||null,phone_number:v||null},{onSuccess:()=>L.success("Profile updated"),onError:_=>L.error(_.message??"Failed to update profile")})},w=()=>{const _=localStorage.getItem("meridian_token");if(!_){L.error("You must be logged in to connect Google");return}window.location.href=`${vi}/auth/google/link?token=${encodeURIComponent(_)}`},S=()=>{c.mutate(void 0,{onSuccess:()=>L.success("Google account disconnected"),onError:_=>L.error(_.message??"Failed to unlink Google account")})};return a.jsx("div",{className:"p-2 h-full",children:a.jsxs("div",{className:"bg-white dark:bg-card border border-border rounded-xl overflow-hidden flex flex-col h-full",children:[a.jsx("div",{className:"flex items-center justify-between px-6 py-4 border-b border-border shrink-0",children:a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx(uu,{className:"h-5 w-5 text-muted-foreground"}),a.jsxs("div",{children:[a.jsx("h1",{className:"text-base font-semibold",children:"Profile"}),a.jsx("p",{className:"text-xs text-muted-foreground",children:"Manage your personal details and account connections."})]})]})}),a.jsxs("div",{className:"flex-1 overflow-y-auto",children:[a.jsxs("div",{className:"flex items-center justify-between px-6 py-4 border-b border-border",children:[a.jsx("span",{className:"text-sm text-muted-foreground w-44 shrink-0",children:"Profile photo"}),a.jsxs("div",{className:"flex flex-1 items-center gap-4",children:[a.jsxs("div",{className:"relative",children:[a.jsxs(Ft,{className:"h-14 w-14 rounded-xl",children:[n!=null&&n.avatar_url?a.jsx(Vo,{src:n.avatar_url,alt:"Avatar",className:"object-cover"}):null,a.jsx(Bt,{className:"rounded-xl bg-foreground text-background text-base font-medium",children:j})]}),o.isPending&&a.jsx("div",{className:"absolute inset-0 rounded-xl bg-black/40 flex items-center justify-center",children:a.jsx("span",{className:"text-white text-[10px]",children:"…"})})]}),a.jsxs("div",{className:"flex gap-2",children:[a.jsxs(J,{variant:"outline",size:"sm",className:"h-8 gap-1.5",onClick:()=>{var _;return(_=d.current)==null?void 0:_.click()},disabled:o.isPending,children:[a.jsx(aE,{className:"size-3.5"}),"Change photo"]}),(n==null?void 0:n.avatar_url)&&a.jsxs(J,{variant:"ghost",size:"sm",className:"h-8 gap-1.5 text-muted-foreground hover:text-destructive",onClick:N,disabled:l.isPending,children:[a.jsx(an,{className:"size-3.5"}),"Remove"]})]}),a.jsx("input",{ref:d,type:"file",accept:"image/*",className:"hidden",onChange:b})]})]}),a.jsx("div",{className:"px-6 py-2 border-b border-border bg-muted/10",children:a.jsx("p",{className:"text-xs text-muted-foreground",children:"Personal information"})}),a.jsxs("div",{className:"grid grid-cols-[180px_1fr] items-center gap-4 px-6 py-3.5 border-b border-border",children:[a.jsx("span",{className:"text-sm text-muted-foreground",children:"First name"}),s?a.jsx(oe,{className:"h-8 w-56"}):a.jsx(_e,{value:u,onChange:_=>f(_.target.value),className:"h-8 w-64 text-sm bg-transparent",placeholder:"First name"})]}),a.jsxs("div",{className:"grid grid-cols-[180px_1fr] items-center gap-4 px-6 py-3.5 border-b border-border",children:[a.jsx("span",{className:"text-sm text-muted-foreground",children:"Last name"}),s?a.jsx(oe,{className:"h-8 w-56"}):a.jsx(_e,{value:m,onChange:_=>h(_.target.value),className:"h-8 w-64 text-sm bg-transparent",placeholder:"Last name"})]}),a.jsxs("div",{className:"grid grid-cols-[180px_1fr] items-center gap-4 px-6 py-3.5 border-b border-border",children:[a.jsx("span",{className:"text-sm text-muted-foreground",children:"Email"}),s?a.jsx(oe,{className:"h-4 w-48"}):a.jsx("span",{className:"text-sm text-muted-foreground",children:(n==null?void 0:n.email)??"—"})]}),a.jsxs("div",{className:"grid grid-cols-[180px_1fr] items-center gap-4 px-6 py-3.5 border-b border-border",children:[a.jsx("span",{className:"text-sm text-muted-foreground",children:"Designation"}),s?a.jsx(oe,{className:"h-8 w-56"}):a.jsx(_e,{value:g,onChange:_=>x(_.target.value),className:"h-8 w-64 text-sm bg-transparent",placeholder:"e.g. Software Engineer"})]}),a.jsxs("div",{className:"grid grid-cols-[180px_1fr] items-center gap-4 px-6 py-3.5 border-b border-border",children:[a.jsx("span",{className:"text-sm text-muted-foreground",children:"Phone number"}),s?a.jsx(oe,{className:"h-8 w-56"}):a.jsx(_e,{value:v,onChange:_=>y(_.target.value),className:"h-8 w-64 text-sm bg-transparent",placeholder:"+1 555 000 0000"})]}),a.jsx("div",{className:"flex justify-end px-6 py-4 border-b border-border",children:a.jsx(J,{size:"sm",onClick:k,disabled:i.isPending,children:i.isPending?"Saving…":"Save changes"})}),a.jsx("div",{className:"px-6 py-2 border-b border-border bg-muted/10",children:a.jsx("p",{className:"text-xs text-muted-foreground",children:"Connections"})}),a.jsxs("div",{className:"grid grid-cols-[180px_1fr] items-center gap-4 px-6 py-3.5 border-b border-border",children:[a.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[a.jsx(Kw,{className:"size-3.5 shrink-0"}),"Google"]}),s?a.jsx(oe,{className:"h-8 w-48"}):n!=null&&n.google_id?a.jsxs("div",{className:"flex items-center gap-4",children:[a.jsxs("div",{className:"flex items-center gap-1.5 text-sm",children:[a.jsx(rs,{className:"size-3.5 text-emerald-500 shrink-0"}),a.jsx("span",{className:"text-foreground font-medium",children:"Connected"}),a.jsxs("span",{className:"text-muted-foreground",children:["· ",n.email]})]}),a.jsxs(J,{variant:"ghost",size:"sm",className:"h-7 gap-1.5 text-muted-foreground hover:text-destructive ml-auto",onClick:S,disabled:c.isPending,children:[a.jsx(kp,{className:"size-3.5"}),"Disconnect"]})]}):a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx("span",{className:"text-sm text-muted-foreground",children:"Not connected"}),a.jsxs(J,{variant:"outline",size:"sm",className:"h-7 gap-1.5",onClick:w,children:[a.jsx(Kw,{className:"size-3.5"}),"Connect"]})]})]})]})]})})}const pJ=p.lazy(()=>Tj(()=>import("./ProjectTimelinePage-Bit8cg9p.js"),__vite__mapDeps([0,1,2,3,4,5])).then(e=>({default:e.ProjectTimelinePage}))),gJ=p.lazy(()=>Tj(()=>import("./WorkspaceReportingPage-DvDN1hfl.js"),__vite__mapDeps([6,1,2,3,4,5])).then(e=>({default:e.WorkspaceReportingPage})));function ii({children:e}){const{isAuthenticated:t}=Oe();return t?a.jsx(a.Fragment,{children:e}):a.jsx(Cs,{to:"/login",replace:!0})}function xJ({children:e}){var r;const{user:t}=Oe();return(r=t==null?void 0:t.roles)!=null&&r.includes("super-admin")?a.jsx(a.Fragment,{children:e}):a.jsx(Cs,{to:"/",replace:!0})}function Yw({children:e}){const{isAuthenticated:t}=Oe(),{data:r}=pu(),n=tu();return t?a.jsx(Cs,{to:"/",replace:!0}):r!=null&&r.needsSetup&&n.pathname==="/login"?a.jsx(Cs,{to:"/register",replace:!0}):r&&!r.needsSetup&&n.pathname==="/register"?a.jsx(Cs,{to:"/login",replace:!0}):a.jsx(a.Fragment,{children:e})}function vJ(){const{workspace:e,setWorkspace:t}=Oe(),r=Nt(),{data:n,isLoading:s}=fu(!e);return p.useEffect(()=>{if(e){r(`/${e.slug}/projects`,{replace:!0});return}if(!s&&n!==void 0)if(n.length>0){const i=n[0];t({id:i.id,name:i.name,slug:i.slug}),r(`/${i.slug}/projects`,{replace:!0})}else r("/setup",{replace:!0})},[e,n,s,r,t]),a.jsx("div",{className:"min-h-screen flex items-center justify-center",children:a.jsx("span",{className:"text-sm text-muted-foreground",children:"Loading..."})})}function yJ(){const{workspace:e}=Ut(),{workspace:t,setWorkspace:r}=Oe();iD();const n=Nt(),{data:s,isLoading:i,isFetching:o}=fu();return p.useEffect(()=>{if(i||!s)return;const l=s.find(c=>c.slug===e);l?l.id!==(t==null?void 0:t.id)&&r({id:l.id,name:l.name,slug:l.slug}):s.length>0?n(`/${s[0].slug}/projects`,{replace:!0}):!t&&!o&&n("/setup",{replace:!0})},[s,e,i,o,t==null?void 0:t.id,n,r]),i||!t||t.slug!==e?a.jsx("div",{className:"min-h-screen flex items-center justify-center",children:a.jsx("span",{className:"text-sm text-muted-foreground",children:"Loading..."})}):a.jsxs(a.Fragment,{children:[a.jsx(BD,{}),a.jsx(ST,{})]})}function bJ(){return a.jsxs(PP,{children:[a.jsx(Ue,{path:"/login",element:a.jsx(Yw,{children:a.jsx(CT,{})})}),a.jsx(Ue,{path:"/register",element:a.jsx(Yw,{children:a.jsx(_T,{})})}),a.jsx(Ue,{path:"/invite/:token",element:a.jsx(W$,{})}),a.jsx(Ue,{path:"/oauth/google/callback",element:a.jsx(lJ,{})}),a.jsx(Ue,{path:"/share/:token",element:a.jsx(oJ,{})}),a.jsx(Ue,{path:"/reporting",element:a.jsx(ii,{children:a.jsx(YD,{})}),children:a.jsx(Ue,{index:!0,element:a.jsx($X,{})})}),a.jsx(Ue,{path:"/org/settings",element:a.jsx(ii,{children:a.jsx(XD,{})}),children:a.jsx(Ue,{index:!0,element:a.jsx(GX,{})})}),a.jsx(Ue,{path:"/profile",element:a.jsx(ii,{children:a.jsx(JD,{})}),children:a.jsx(Ue,{index:!0,element:a.jsx(hJ,{})})}),a.jsx(Ue,{path:"/setup",element:a.jsx(ii,{children:a.jsx(OT,{})})}),a.jsx(Ue,{index:!0,element:a.jsx(ii,{children:a.jsx(vJ,{})})}),a.jsxs(Ue,{path:"/:workspace",element:a.jsx(ii,{children:a.jsx(yJ,{})}),children:[a.jsx(Ue,{index:!0,element:a.jsx(Cs,{to:"projects",replace:!0})}),a.jsx(Ue,{path:"projects",element:a.jsx(R3,{})}),a.jsxs(Ue,{path:"projects/:projectKey",element:a.jsx(qD,{}),children:[a.jsx(Ue,{path:"board",element:a.jsx(BR,{})}),a.jsx(Ue,{path:"issues",element:a.jsx(WR,{})}),a.jsx(Ue,{path:"issues/new",element:a.jsx(x$,{})}),a.jsx(Ue,{path:"issues/:issueId",element:a.jsx(f$,{})}),a.jsx(Ue,{path:"sprints",element:a.jsx(k$,{})}),a.jsx(Ue,{path:"timeline",element:a.jsx(p.Suspense,{fallback:a.jsx("div",{className:"flex items-center justify-center h-full text-sm text-muted-foreground",children:"Loading…"}),children:a.jsx(pJ,{})})}),a.jsx(Ue,{path:"access",element:a.jsx(l$,{})}),a.jsx(Ue,{path:"reports",element:a.jsx(zX,{})}),a.jsx(Ue,{path:"activity",element:a.jsx(WX,{})})]}),a.jsx(Ue,{path:"notifications",element:a.jsx(b$,{})}),a.jsx(Ue,{path:"reporting",element:a.jsx(p.Suspense,{fallback:a.jsx("div",{className:"flex items-center justify-center h-full text-sm text-muted-foreground",children:"Loading…"}),children:a.jsx(gJ,{})})}),a.jsx(Ue,{path:"settings",element:a.jsx($$,{})}),a.jsx(Ue,{path:"roles",element:a.jsx(xJ,{children:a.jsx(F$,{})})})]}),a.jsx(Ue,{path:"*",element:a.jsx(Cs,{to:"/",replace:!0})})]})}window.__React=D;window.__ReactJsxRuntime=kP;const wJ=new SP({defaultOptions:{queries:{staleTime:1e3*30,retry:1}}});(async()=>{let e=[];try{const r=await import("/admin-extensions.js");Array.isArray(r==null?void 0:r.default)&&(e=r.default)}catch{}Dj(document.getElementById("root")).render(a.jsx(p.StrictMode,{children:a.jsx(VA,{widgets:[...LE,...e],children:a.jsx(hA,{children:a.jsxs(CP,{client:wJ,children:[a.jsx(pA,{children:a.jsx(gA,{children:a.jsx(MP,{children:a.jsxs(au,{delayDuration:300,children:[a.jsx(bJ,{}),a.jsx(nA,{position:"bottom-right",toastOptions:{classNames:{toast:"bg-white dark:bg-card border border-border text-foreground text-sm rounded-lg shadow-sm",description:"text-muted-foreground"}}})]})})})}),a.jsx(MM,{initialIsOpen:!1})]})})})}))})();export{J as B,Iu as C,JZ as G,YN as I,nt as P,$X as R,Fr as W,Nl as a,Zi as b,eo as c,Gp as d,Vp as e,GZ as f,qm as g,Um as h,eJ as i,KZ as j,ZZ as k,Hm as l,Hw as m,vP as n,tJ as o,lN as p,Pr as q,de as r,sN as s,L as t,ka as u,vt as v,ae as w,Oe as x};
|
package/dist/index.html
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500&display=swap"
|
|
12
12
|
rel="stylesheet"
|
|
13
13
|
/>
|
|
14
|
-
<script type="module" crossorigin src="/assets/index-
|
|
14
|
+
<script type="module" crossorigin src="/assets/index-Bm4RN7BM.js"></script>
|
|
15
15
|
<link rel="modulepreload" crossorigin href="/assets/vendor-react-aoclG454.js">
|
|
16
16
|
<link rel="modulepreload" crossorigin href="/assets/vendor-query-DtBTlSlq.js">
|
|
17
17
|
<link rel="modulepreload" crossorigin href="/assets/vendor-radix-Bj-t5iGX.js">
|