@maudecode/kanvil 0.3.0 → 0.4.1
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/apps/server/.env.example +2 -0
- package/apps/server/dist/{auth-JcS53IcO.mjs → auth-DAqfvUJm.mjs} +120 -4773
- package/apps/server/dist/client.mjs +884 -0
- package/apps/server/dist/{config-D3cAABi7.mjs → config-BFzcAs8u.mjs} +3 -132
- package/apps/server/dist/index.mjs +6 -4
- package/apps/server/dist/instance-CCeXRJ6m.mjs +133 -0
- package/apps/server/dist/migrate.mjs +1 -1
- package/apps/server/dist/recover.mjs +3 -2
- package/apps/server/dist/src-tQ82UI8k.mjs +4818 -0
- package/apps/server/drizzle/0038_time_entries.sql +19 -0
- package/apps/server/drizzle/meta/0038_snapshot.json +6998 -0
- package/apps/server/drizzle/meta/_journal.json +7 -0
- package/apps/web/dist/assets/{CompositeItem-BbuEp99X.js → CompositeItem-DgnfVvrF.js} +1 -1
- package/apps/web/dist/assets/{Trans-DJGH63s1.js → Trans-f2VYVS9z.js} +1 -1
- package/apps/web/dist/assets/admin-settings-DBZL4siY.js +1 -0
- package/apps/web/dist/assets/{archive-restore-B6_SsOIP.js → archive-restore-CGuLxoHC.js} +1 -1
- package/apps/web/dist/assets/az-AZ-DesqXNg5.js +1 -0
- package/apps/web/dist/assets/{az-DqY__MpS.js → az-BE5iqNIE.js} +1 -1
- package/apps/web/dist/assets/{corner-left-up-DA7MG5uX.js → corner-left-up-BCro--Gl.js} +1 -1
- package/apps/web/dist/assets/de-DE-BIGY9SNm.js +1 -0
- package/apps/web/dist/assets/{de-UHreLwyV.js → de-DLGjUGf_.js} +1 -1
- package/apps/web/dist/assets/{default-D5TdIZQS.js → default-BgvtI7HK.js} +1 -1
- package/apps/web/dist/assets/delivery-settings-CZOtb4X8.js +1 -0
- package/apps/web/dist/assets/{el-EJnrsyVr.js → el-CG6Xy42v.js} +1 -1
- package/apps/web/dist/assets/el-GR-D2TjImt0.js +1 -0
- package/apps/web/dist/assets/{ellipsis-D6154JKs.js → ellipsis-ZJM26JNS.js} +1 -1
- package/apps/web/dist/assets/{es-D2ScuV-5.js → es-Bbj5WuMM.js} +1 -1
- package/apps/web/dist/assets/es-ES-C_fRqLGU.js +1 -0
- package/apps/web/dist/assets/{forms-BcD6Wwyv.js → forms-C3pNy-qY.js} +1 -1
- package/apps/web/dist/assets/{fr-C_VpS8u6.js → fr-CjuIKc1o.js} +1 -1
- package/apps/web/dist/assets/fr-FR-_tnQsn4j.js +1 -0
- package/apps/web/dist/assets/{hi-CW4rdp_m.js → hi-BVVrZ-zZ.js} +1 -1
- package/apps/web/dist/assets/hi-IN-CcmFsZYy.js +1 -0
- package/apps/web/dist/assets/{highlight-CMydIf9M.js → highlight-CKyEM4jx.js} +1 -1
- package/apps/web/dist/assets/{id-CvL3yBVr.js → id-BhNWOQnp.js} +1 -1
- package/apps/web/dist/assets/id-ID-C59tC61D.js +1 -0
- package/apps/web/dist/assets/index-BIuqxnJn.js +17 -0
- package/apps/web/dist/assets/{invitations-BmpelTJu.js → invitations-D5unaga2.js} +1 -1
- package/apps/web/dist/assets/{it-DOLotXOj.js → it-Cav3_-xd.js} +1 -1
- package/apps/web/dist/assets/it-IT-BAP5O3gK.js +1 -0
- package/apps/web/dist/assets/{item-Cq_ZbivE.js → item-Cj8xpMLk.js} +1 -1
- package/apps/web/dist/assets/{ja-B1iJt9qB.js → ja-DTmZE0Qe.js} +1 -1
- package/apps/web/dist/assets/ja-JP-vQa7mEdh.js +1 -0
- package/apps/web/dist/assets/{ko-fmUq1-8W.js → ko-BuYCMOUj.js} +1 -1
- package/apps/web/dist/assets/ko-KR-CXlpmX0-.js +1 -0
- package/apps/web/dist/assets/{label-settings-B3LsJxhk.js → label-settings-B89Ehf78.js} +1 -1
- package/apps/web/dist/assets/{markdown-blocks-Bw26pRKB.js → markdown-blocks-DSEA68s5.js} +1 -1
- package/apps/web/dist/assets/{member-directory-CHKUw0u4.js → member-directory-48yD01yN.js} +1 -1
- package/apps/web/dist/assets/{mk-LWVrR-T-.js → mk-BZ2Rg2sU.js} +1 -1
- package/apps/web/dist/assets/mk-MK-BU5BLpXM.js +1 -0
- package/apps/web/dist/assets/{nl-ro6hbqo5.js → nl-BtnPzRih.js} +1 -1
- package/apps/web/dist/assets/nl-NL-2aSpdZkg.js +1 -0
- package/apps/web/dist/assets/{pl-Bx_fYLKY.js → pl-Beg8hEdK.js} +1 -1
- package/apps/web/dist/assets/pl-PL-C5Wvnv7f.js +1 -0
- package/apps/web/dist/assets/project-lifecycle-CIAMJ-SX.js +1 -0
- package/apps/web/dist/assets/project-settings-C7lolDSl.js +1 -0
- package/apps/web/dist/assets/{pt-BR-D-a7F5zJ.js → pt-BR-B4VZ35N_.js} +1 -1
- package/apps/web/dist/assets/pt-BR-CVvI-ZB7.js +1 -0
- package/apps/web/dist/assets/public-project-DvvfaUd2.js +1 -0
- package/apps/web/dist/assets/{rotate-ccw-Bm0ESNH_.js → rotate-ccw-GjVJPDML.js} +1 -1
- package/apps/web/dist/assets/{ru-D-WIMI5_.js → ru-DjVJVHzv.js} +1 -1
- package/apps/web/dist/assets/ru-RU-C7UUdGIh.js +1 -0
- package/apps/web/dist/assets/search-ZaQmVnj1.js +85 -0
- package/apps/web/dist/assets/{send-D9TETK3s.js → send-Dr9bXHhf.js} +1 -1
- package/apps/web/dist/assets/settings-DXvrVvyS.js +1 -0
- package/apps/web/dist/assets/{sliders-horizontal-CiZZFL1o.js → sliders-horizontal-C1t_zA7D.js} +1 -1
- package/apps/web/dist/assets/{switch-B_u8n1o6.js → switch-D-WTDajm.js} +1 -1
- package/apps/web/dist/assets/{table-DcCLC7fi.js → table-BaRMFP84.js} +1 -1
- package/apps/web/dist/assets/ticket-detail-CFJI4qoK.js +2 -0
- package/apps/web/dist/assets/ticket-editor-DL3nHG_q.js +2 -0
- package/apps/web/dist/assets/ticket-list-CDkweYGS.js +5 -0
- package/apps/web/dist/assets/ticket-list-controls-CmTgFQQ-.js +1 -0
- package/apps/web/dist/assets/{tr-BZEJyY-F.js → tr-Ckc4TA71.js} +1 -1
- package/apps/web/dist/assets/tr-TR-VVsL3uMp.js +1 -0
- package/apps/web/dist/assets/{uk-f8X5q5C_.js → uk-B4ZvJ8xG.js} +1 -1
- package/apps/web/dist/assets/uk-UA-DRpCbOps.js +1 -0
- package/apps/web/dist/assets/{upload-CGpna3R2.js → upload-BwGa8shS.js} +1 -1
- package/apps/web/dist/assets/{useQueries-BihXYrAP.js → useQueries-sQEHjB0a.js} +1 -1
- package/apps/web/dist/assets/{vi-CSGaJFlR.js → vi-Dq2krfY8.js} +1 -1
- package/apps/web/dist/assets/vi-VN-C0YFqq9j.js +1 -0
- package/apps/web/dist/assets/{visual-editor-B6HiiLMg.js → visual-editor-CBhwqTDu.js} +1 -1
- package/apps/web/dist/assets/workspace-settings-DgLyieJN.js +1 -0
- package/apps/web/dist/assets/{zh-CN-BdRcimyZ.js → zh-CN-B7Rxc3Mp.js} +1 -1
- package/apps/web/dist/assets/zh-CN-pcgTdR8c.js +1 -0
- package/apps/web/dist/assets/zh-TW-DymSXkFg.js +1 -0
- package/apps/web/dist/assets/{zh-TW-BH1L9tOt.js → zh-TW-awiwHjeM.js} +1 -1
- package/apps/web/dist/index.html +7 -7
- package/bin/kanvil.mjs +3 -1
- package/compose.yml +1 -0
- package/docs/api.md +28 -2
- package/docs/cli.md +74 -0
- package/docs/plan.md +6 -1
- package/docs/self-hosting.md +3 -1
- package/docs/workspaces.md +1 -1
- package/package.json +1 -1
- package/apps/web/dist/assets/admin-settings-CJG9PMKR.js +0 -1
- package/apps/web/dist/assets/az-AZ-BtrlbgjS.js +0 -1
- package/apps/web/dist/assets/de-DE-Bu_Ko2QA.js +0 -1
- package/apps/web/dist/assets/delivery-settings-BE5MW8U0.js +0 -1
- package/apps/web/dist/assets/el-GR-CpKEps47.js +0 -1
- package/apps/web/dist/assets/es-ES-DVkfi7H-.js +0 -1
- package/apps/web/dist/assets/fr-FR-DkHaEHqi.js +0 -1
- package/apps/web/dist/assets/hi-IN-CbUDNSTK.js +0 -1
- package/apps/web/dist/assets/id-ID-DLTkxt2j.js +0 -1
- package/apps/web/dist/assets/index-DoqlyejP.js +0 -17
- package/apps/web/dist/assets/it-IT-CIzq0YwC.js +0 -1
- package/apps/web/dist/assets/ja-JP-CIE4-D-v.js +0 -1
- package/apps/web/dist/assets/ko-KR-DYP5Zae6.js +0 -1
- package/apps/web/dist/assets/mk-MK-CpOo5Bd8.js +0 -1
- package/apps/web/dist/assets/nl-NL-Mu8G8RON.js +0 -1
- package/apps/web/dist/assets/pl-PL-DGuxe2Aq.js +0 -1
- package/apps/web/dist/assets/project-lifecycle-Ba7iRF3u.js +0 -1
- package/apps/web/dist/assets/project-settings-CtOWgEam.js +0 -1
- package/apps/web/dist/assets/pt-BR-DwkMPgq1.js +0 -1
- package/apps/web/dist/assets/public-project-CHRjhFIn.js +0 -1
- package/apps/web/dist/assets/ru-RU-DrXnqZbV.js +0 -1
- package/apps/web/dist/assets/search-D94SZwrC.js +0 -85
- package/apps/web/dist/assets/settings-Dd9EVxua.js +0 -1
- package/apps/web/dist/assets/ticket-detail-C9egaVSf.js +0 -2
- package/apps/web/dist/assets/ticket-editor-UlSZgpWF.js +0 -2
- package/apps/web/dist/assets/ticket-list-controls-BidzkMOD.js +0 -1
- package/apps/web/dist/assets/ticket-list-vNBO8mkk.js +0 -5
- package/apps/web/dist/assets/tr-TR-B92YeFW5.js +0 -1
- package/apps/web/dist/assets/uk-UA-DmcDs-MU.js +0 -1
- package/apps/web/dist/assets/vi-VN-DM5JYNuP.js +0 -1
- package/apps/web/dist/assets/workspace-settings-CSvVqaL6.js +0 -1
- package/apps/web/dist/assets/zh-CN-CiUOkQXe.js +0 -1
- package/apps/web/dist/assets/zh-TW-Co4UBSfi.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{At as t,Dn as n,Mn as r,Sn as i,U as a,_n as o,dn as s,in as c,kn as l,kt as u,ln as d,m as f,ot as p,p as m,pn as h,pt as g,r as _,rn as v,st as y,un as ee,xn as b,zt as x}from"./default-D5TdIZQS.js";import{$n as te,B as ne,Ca as re,Ct as S,Er as ie,Fr as C,G as ae,Gt as w,Ha as oe,Hi as T,Ii as E,Ir as se,J as D,Ji as O,K as k,Ka as A,Ki as j,Li as M,Lr as ce,Nr as le,Oa as N,Pa as P,Pt as F,Q as I,Qn as L,Ri as ue,Rr as de,Ui as R,V as z,X as B,Xr as fe,Y as V,Yi as pe,_a as me,an as he,at as H,ba as ge,bt as _e,ca as ve,ci as ye,cr as U,di as W,dr as G,er as be,ha as xe,hi as Se,hr as Ce,ia as we,ii as Te,ir as Ee,it as K,ka as De,la as Oe,li as ke,ma as Ae,mi as je,ni as Me,nr as Ne,or as Pe,pa as Fe,q as Ie,qa as Le,qi as Re,ra as ze,ri as Be,rr as Ve,rt as He,sa as Ue,si as We,sr as Ge,ti as Ke,tr as qe,ui as Je,ut as Ye,vt as Xe,wo as Ze,xa as Qe,xt as $e}from"./search-D94SZwrC.js";import{g as et}from"./item-Cq_ZbivE.js";import{i as tt,t as nt}from"./delivery-settings-BE5MW8U0.js";import{r as rt,u as it}from"./project-lifecycle-Ba7iRF3u.js";import{n as at,r as ot,t as st}from"./CompositeItem-BbuEp99X.js";import{t as ct}from"./ticket-list-controls-BidzkMOD.js";import{t as lt}from"./upload-CGpna3R2.js";import{t as ut}from"./forms-BcD6Wwyv.js";import{Jt as dt,Qt as ft,St as pt,Tt as mt,Vt as ht,Xt as gt,Yt as _t,Zt as vt,bt as yt,dn as bt,f as xt,gt as St,i as q,mt as Ct,n as J,nn as wt,on as Tt,p as Et,qt as Dt,r as Ot,t as kt,v as At,wt as jt,y as Mt,yt as Y}from"./index-DoqlyejP.js";import{t as Nt}from"./switch-B_u8n1o6.js";import{a as Pt,i as X,n as Ft,o as It,r as Z,t as Lt}from"./table-DcCLC7fi.js";var Q=e(r(),1),Rt=Q.createContext(void 0);function zt(e=!1){let t=Q.useContext(Rt);if(!t&&!e)throw Error(xe(86));return t}Object.keys(ke);function Bt(e,t){return e.matches(`:disabled`)?!1:!t||e.form===t||e.form===null&&!e.hasAttribute(`form`)}var $=_(),Vt=[`7`,`30`,`90`,`365`,`custom`,`never`],Ht=e=>({name:h(`settings.credentials.permission.${e}.name`),description:h(`settings.credentials.permission.${e}.description`)});function Ut(e){try{return JSON.parse(e??`null`)}catch{return null}}function Wt(e){return{permissions:n({kanvil:i(b(x))}).safeParse(Ut(e.permissions)).data?.kanvil??[],projectIds:n({projectIds:i(l())}).safeParse(Ut(e.metadata)).data?.projectIds??[]}}function Gt(){let e=Ze(),t=Re(),[n,r]=(0,Q.useState)(!1),[i,o]=(0,Q.useState)(!1),[s,l]=(0,Q.useState)(null),[u]=(0,Q.useState)(Date.now),d=Le({queryKey:[`kanvil`,`credentials`],queryFn:()=>T.request(`/api/v1/credentials`,f)});function p(){r(!1),l(null)}return(0,$.jsxs)(`section`,{children:[(0,$.jsx)(K,{title:h(`settings.credentials.title`),description:h(`settings.credentials.description`),action:(0,$.jsx)(D,{label:h(`settings.credentials.create`),variant:`default`,disabled:t.isPending,onClick:()=>r(!0),children:(0,$.jsx)(et,{})})}),(0,$.jsx)(k,{error:d.error??t.error}),d.isPending?(0,$.jsx)(B,{}):d.data?.length?(0,$.jsxs)(Lt,{"aria-label":h(`settings.credentials.title`),mobileLayout:`rows`,children:[(0,$.jsx)(Pt,{children:(0,$.jsxs)(It,{children:[(0,$.jsx)(X,{children:h(`settings.credentials.name`)}),(0,$.jsx)(X,{children:h(`settings.credentials.access`)}),(0,$.jsx)(X,{children:h(`settings.credentials.projects`)}),(0,$.jsx)(X,{children:h(`settings.credentials.expires`)}),(0,$.jsx)(X,{children:(0,$.jsx)(`span`,{className:`sr-only`,children:h(`settings.credentials.actions`)})})]})}),(0,$.jsx)(Ft,{children:d.data.map(n=>{let r=Wt(n),i=!!n.expiresAt&&new Date(n.expiresAt).getTime()<=u,o=r.projectIds.map(e=>t.data?.find(t=>t.id===e)?.name??h(`settings.credentials.unavailableProject`));return(0,$.jsxs)(It,{children:[(0,$.jsx)(Z,{className:`max-w-64 whitespace-normal`,children:(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,$.jsx)(`span`,{className:`flex size-9 shrink-0 items-center justify-center rounded-lg bg-muted text-muted-foreground`,children:(0,$.jsx)(bt,{className:`size-4`})}),(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`strong`,{dir:`auto`,className:`block wrap-anywhere font-medium`,children:n.name||h(`settings.credentials.untitled`)}),(0,$.jsxs)(`code`,{className:`text-xs text-muted-foreground`,children:[n.start,`…`]})]}),(i||!n.enabled)&&(0,$.jsx)(Xe,{variant:`secondary`,children:h(i?`settings.credentials.expired`:`settings.credentials.disabled`)})]})}),(0,$.jsx)(Z,{"data-label":h(`settings.credentials.access`),className:`max-w-72 whitespace-normal`,children:(0,$.jsx)(`span`,{className:`text-sm`,children:r.permissions.length===1&&r.permissions[0]===`read`?h(`settings.credentials.preset.read`):c(r.permissions.map(e=>Ht(e).name))||h(`settings.credentials.custom`)})}),(0,$.jsx)(Z,{"data-label":h(`settings.credentials.projects`),className:`max-w-64 whitespace-normal`,children:c(o)||h(`settings.credentials.noProjects`)}),(0,$.jsx)(Z,{"data-label":h(`settings.credentials.expires`),className:`whitespace-nowrap text-muted-foreground`,children:n.expiresAt?a(n.expiresAt):h(`settings.credentials.never`)}),(0,$.jsx)(Z,{children:(0,$.jsx)(z,{label:h(`settings.credentials.revoke`),icon:(0,$.jsx)(at,{}),danger:!0,description:n.name===null?h(`settings.credentials.revokeUnnamed`):h(`settings.credentials.revokeNamed`,{name:n.name}),onConfirm:async()=>{await T.request(`/api/v1/credentials/${encodeURIComponent(n.id)}`,g,{method:`DELETE`}),await e.invalidateQueries({queryKey:[`kanvil`,`credentials`]})}})})]},n.id)})})]}):(0,$.jsx)(ae,{title:h(`settings.credentials.empty`),icon:bt,className:`py-16`,children:(0,$.jsx)(`p`,{className:`mb-0 max-w-sm text-center text-sm text-muted-foreground`,children:h(`settings.credentials.emptyDescription`)})}),(0,$.jsx)(I,{busy:i,title:h(s?`settings.credentials.created`:`settings.credentials.create`),open:n,onOpenChange:e=>{e||p()},children:s?(0,$.jsx)(Kt,{value:s,onDone:p}):(0,$.jsx)(Jt,{pending:i,setPending:o,projects:t.data??[],loading:t.isPending,onCancel:p,onCreated:async t=>{l(t),await e.invalidateQueries({queryKey:[`kanvil`,`credentials`]})}})})]})}function Kt({value:e,onDone:t}){let[n,r]=(0,Q.useState)(!1),[i,a]=(0,Q.useState)();return(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`p`,{children:h(`settings.credentials.copyNow`)}),(0,$.jsx)(V,{label:h(`settings.credentials.newKey`),value:e.key,readOnly:!0,className:`font-mono text-xs`,onFocus:e=>e.target.select()}),(0,$.jsx)(k,{error:i}),(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,$.jsxs)(W,{onClick:()=>{E(e.key).then(()=>r(!0)).catch(a)},children:[n?(0,$.jsx)(oe,{}):(0,$.jsx)(P,{}),h(n?`common.state.copied`:`settings.credentials.copy`)]}),(0,$.jsx)(W,{variant:`default`,onClick:t,children:h(`common.action.done`)})]})]})}function qt({scope:e,checked:t,onChange:n}){let r=(0,Q.useId)(),i=Ht(e);return(0,$.jsxs)(Ne,{orientation:`horizontal`,className:`border-b py-3 last:border-0 [&_[data-slot=field-description]]:m-0 [&_[data-slot=field-description]]:text-xs`,children:[(0,$.jsx)(L,{id:r,checked:t,onCheckedChange:n}),(0,$.jsxs)(Ve,{children:[(0,$.jsx)(Pe,{htmlFor:r,children:i.name}),(0,$.jsx)(Ee,{children:i.description})]})]})}function Jt({projects:e,loading:t,onCreated:n,onCancel:r,pending:i,setPending:a}){let o=ze(),s=new Map(o.data?.map(e=>[e.id,e.name])),[{tomorrow:c,lastDay:l}]=(0,Q.useState)(()=>{let e=new Date;e.setHours(0,0,0,0),e.setDate(e.getDate()+1);let t=new Date;return t.setDate(t.getDate()+365),{tomorrow:e,lastDay:t}}),[u,d]=(0,Q.useState)(e.length===1&&e[0]?[e[0].id]:[]),[f,p]=(0,Q.useState)([`read`]),[g,_]=(0,Q.useState)(()=>{let e=new Date;return e.setDate(e.getDate()+90),e}),[v,y]=(0,Q.useState)(`90`),[ee,b]=(0,Q.useState)(),[te,re]=(0,Q.useState)(`read`),[S,ie]=(0,Q.useState)(``),C=e.filter(e=>`${e.name} ${e.key} ${s.get(e.workspaceId)??``}`.toLowerCase().includes(S.toLowerCase()));async function w(e){e.preventDefault(),a(!0),b(void 0);try{await n(await T.request(`/api/v1/credentials`,m,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({name:ut(new FormData(e.currentTarget),`name`),projectIds:u,scopes:f,expiresIn:v===`never`?null:v===`custom`?St(g):Number(v)*86400})}))}catch(e){b(e)}finally{a(!1)}}return t?(0,$.jsx)(B,{}):e.length?(0,$.jsx)(`form`,{onSubmit:e=>{w(e)},children:(0,$.jsxs)(U,{disabled:i,children:[(0,$.jsx)(V,{label:h(`settings.credentials.keyName`),name:`name`,required:!0,maxLength:100,placeholder:h(`settings.credentials.keyNamePlaceholder`),autoFocus:!0}),(0,$.jsxs)(U,{className:`gap-2`,children:[(0,$.jsx)(Ge,{variant:`label`,children:h(`settings.credentials.projectAccess`)}),e.length>6&&(0,$.jsx)(He,{label:h(`settings.credentials.findProject`),value:S,onChange:ie,className:`mb-2`}),(0,$.jsxs)(`div`,{className:`max-h-44 overflow-y-auto rounded-md border px-3 py-1`,children:[C.map(e=>(0,$.jsx)(ne,{label:e.name,description:h(`settings.credentials.projectDescription`,{key:e.key,workspace:s.get(e.workspaceId)??h(`settings.credentials.workspace`)}),checked:u.includes(e.id),onCheckedChange:t=>d(n=>t?[...n,e.id]:n.filter(t=>t!==e.id))},e.id)),C.length===0&&(0,$.jsx)(`p`,{className:`my-4 text-sm text-muted-foreground`,children:h(`settings.credentials.noMatches`)})]}),(0,$.jsx)(Ee,{children:h(`settings.credentials.roleLimit`)})]}),(0,$.jsxs)(H,{label:h(`settings.credentials.accessLevel`),value:te,onValueChange:e=>{let t=e??`read`;re(t),t!==`custom`&&p(t===`read`?[`read`]:t===`write`?[`read`,`write`]:[`read`,`write`,`claim`])},children:[(0,$.jsx)(F,{value:`read`,children:h(`settings.credentials.preset.read`)}),(0,$.jsx)(F,{value:`write`,children:h(`settings.credentials.preset.write`)}),(0,$.jsx)(F,{value:`automation`,children:h(`settings.credentials.preset.automation`)}),(0,$.jsx)(F,{value:`custom`,children:h(`settings.credentials.preset.custom`)})]}),te===`custom`&&(0,$.jsx)(U,{className:`gap-0`,children:x.map(e=>(0,$.jsx)(qt,{scope:e,checked:f.includes(e),onChange:t=>p(n=>t?[...n,e]:n.filter(t=>t!==e))},e))}),(0,$.jsx)(H,{label:h(`settings.credentials.expires`),value:v,onValueChange:e=>y(e??`90`),children:Vt.map(e=>(0,$.jsx)(F,{value:e,children:h(`settings.credentials.expiry.${e}`)},e))}),v===`custom`&&(0,$.jsx)(Ct,{label:h(`settings.credentials.expiresOn`),value:g,onChange:e=>{e&&_(e)},bounds:{from:c,to:l}}),v===`never`&&(0,$.jsx)(Ee,{children:h(`settings.credentials.neverDescription`)}),(0,$.jsx)(Ie,{error:ee,pending:i,submitLabel:h(`settings.credentials.create`),pendingLabel:h(`settings.credentials.creating`),submitDisabled:!u.length||!f.length,onCancel:r})]})}):(0,$.jsxs)(ae,{title:h(`settings.credentials.noProjectTitle`),className:`py-8`,children:[(0,$.jsx)(`p`,{children:h(`settings.credentials.noProjectDescription`)}),(0,$.jsx)(W,{render:(0,$.jsx)(ht,{to:`/`}),children:h(`settings.credentials.goToProjects`)})]})}function Yt(){let e=Ze(),t=O(),n=R.useSession(),r=(0,Q.useRef)(null),[i,a]=(0,Q.useState)(!1),[s,c]=(0,Q.useState)(),[l,u]=(0,Q.useState)(),[d,f]=(0,Q.useState)(``);async function p(){await Promise.all([n.refetch(),e.invalidateQueries({queryKey:[`kanvil`]})])}async function m(e){a(!0),c(void 0),f(``);try{await T.request(`/api/v1/profile/photo`,o,e?{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(await ue(e))}:{method:`DELETE`}),await p(),f(h(e?`settings.profile.photoUpdated`:`settings.profile.photoRemoved`))}catch(e){c(e)}finally{a(!1)}}return(0,$.jsxs)(`section`,{children:[(0,$.jsx)(K,{title:h(`settings.profile.title`)}),(0,$.jsx)(kt,{name:t.name,nameLabel:h(`settings.profile.displayName`),withDescription:!1,canEdit:!0,pending:i,error:l,editLabel:h(`settings.profile.edit`),media:(0,$.jsx)(tt,{label:h(`settings.profile.changePhoto`),round:!0,disabled:i,onClick:()=>r.current?.click(),children:(0,$.jsx)(we,{name:t.name,image:t.image,className:`size-16 text-xl`})}),onSave:async({name:e})=>{u(void 0),a(!0);try{let t=await R.updateUser({name:e});if(t.error)throw Error(t.error.message);await p(),f(h(`settings.profile.saved`))}catch(e){throw u(e),e}finally{a(!1)}},children:(0,$.jsx)(`p`,{className:`mb-0 text-sm break-all text-muted-foreground`,children:t.email})}),t.image&&(0,$.jsxs)(W,{className:`mt-5`,variant:`ghost`,disabled:i,onClick:()=>{m()},children:[(0,$.jsx)(at,{}),h(`settings.profile.removePhoto`)]}),(0,$.jsx)(Ce,{ref:r,type:`file`,disabled:i,accept:`image/png,image/jpeg,image/webp`,className:`hidden`,"aria-label":h(`settings.profile.photoFile`),onChange:e=>{let t=e.currentTarget.files?.[0];t&&m(t),e.currentTarget.value=``}}),(0,$.jsx)(k,{error:s}),d&&(0,$.jsx)(`p`,{role:`status`,className:`mt-4 mb-0 text-sm text-muted-foreground`,children:d})]})}function Xt({palette:e,clip:t}){return(0,$.jsxs)(`g`,{clipPath:t,children:[(0,$.jsx)(`rect`,{width:`160`,height:`96`,fill:e.background}),(0,$.jsx)(`rect`,{width:`34`,height:`96`,fill:e.sidebar}),(0,$.jsx)(`rect`,{x:`7`,y:`10`,width:`19`,height:`4`,rx:`2`,fill:e.primary}),[0,1,2].map(t=>(0,$.jsx)(`rect`,{x:`7`,y:27+t*12,width:t===2?12:21,height:`3`,rx:`1.5`,fill:e.foreground,opacity:`.25`},t)),(0,$.jsx)(`rect`,{x:`45`,y:`12`,width:`65`,height:`5`,rx:`2`,fill:e.foreground,opacity:`.8`}),(0,$.jsx)(`rect`,{x:`127`,y:`10`,width:`23`,height:`8`,rx:`3`,fill:e.primary}),[0,1,2].map(t=>(0,$.jsxs)(`g`,{children:[(0,$.jsx)(`rect`,{x:`45`,y:34+t*18,width:`57`,height:`3`,rx:`1.5`,fill:e.foreground,opacity:`.3`}),(0,$.jsx)(`circle`,{cx:`130`,cy:35+t*18,r:`3`,fill:e.primary,opacity:t===1?1:.35}),(0,$.jsx)(`rect`,{x:`45`,y:43+t*18,width:`105`,height:`.6`,fill:e.foreground,opacity:`.12`})]},t))]})}function Zt({theme:e,mode:t=`system`,variant:n=`wireframe`,className:r}){let i=(0,Q.useId)();if(n===`orb`&&t!==`system`){let n=e[t],i=t===`light`;return(0,$.jsx)(`span`,{"aria-hidden":`true`,className:De(`relative block size-14 shrink-0 overflow-hidden rounded-full border-2 border-background`,r),style:{boxShadow:i?`inset 0 0 0 1px rgb(0 0 0 / .1), 0 1px 2px rgb(0 0 0 / .08)`:`inset 0 0 0 1px rgb(255 255 255 / .14), 0 1px 2px rgb(0 0 0 / .18)`},children:(0,$.jsx)(`span`,{className:`absolute inset-0 rounded-full`,style:{backgroundColor:`color-mix(in oklab, ${n.background} 80%, ${i?`#ffffff`:`#09090b`})`,backgroundImage:`radial-gradient(circle at ${i?`72% 22%`:`28% 78%`} in oklab, ${n.primary} 0%, color-mix(in oklab, ${n.primary} ${i?`72%`:`62%`}, transparent) 28%, transparent 58%), radial-gradient(circle at ${i?`18% 82%`:`82% 18%`} in oklab, color-mix(in oklab, ${n.primary} 45%, transparent) 0%, transparent 55%)`,filter:`blur(3px)`,transform:`scale(1.1)`}})})}return(0,$.jsxs)(`svg`,{viewBox:`0 0 160 96`,preserveAspectRatio:`none`,className:De(`w-full rounded-md`,r),"aria-hidden":`true`,children:[(0,$.jsxs)(`defs`,{children:[(0,$.jsx)(`clipPath`,{id:`${i}-light`,children:(0,$.jsx)(`rect`,{width:`80`,height:`96`})}),(0,$.jsx)(`clipPath`,{id:`${i}-dark`,children:(0,$.jsx)(`rect`,{x:`80`,width:`80`,height:`96`})})]}),t===`system`?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Xt,{palette:e.light,clip:`url(#${i}-light)`}),(0,$.jsx)(Xt,{palette:e.dark,clip:`url(#${i}-dark)`})]}):(0,$.jsx)(Xt,{palette:e[t]})]})}var Qt=`data-checked`,$t=`data-unchecked`,en={checked(e){return e?{[Qt]:``}:{[$t]:``}},...ve,...Je},tn=Q.createContext(void 0);function nn(){return Q.useContext(tn)}var rn=Q.createContext(void 0);function an(){let e=Q.useContext(rn);if(e===void 0)throw Error(xe(52));return e}var on=Q.forwardRef(function(e,t){let{render:n,className:r,disabled:i=!1,readOnly:a=!1,required:o=!1,"aria-labelledby":s,value:c,inputRef:l,nativeButton:u=!1,id:d,style:f,...p}=e,m=nn(),{disabled:h,readOnly:g,required:_,form:v,checkedValue:y,touched:ee=!1,validation:b,name:x,setCheckedValue:ne=Qe,setTouched:S=Qe,registerInputRef:C=Qe}=m??{},{setTouched:ae,setFilled:w,state:oe,disabled:T}=ye(),E=de(),{labelId:se,getDescriptionProps:D}=Be(),O=T||E.disabled||h||i,k=g||a,A=_||o,j=v,M=m?y===c:c===``,N=Q.useRef(null),P=ce(O,N),F=Q.useRef(null),I=b?.registerInput,L=Q.useCallback(e=>I?.(e,{controlRef:N,value:void 0}),[I]),ue=re(l,F,C,L);Fe(()=>{F.current?.checked&&w(!0)},[w]),Fe(()=>{F.current&&C(O&&M?null:F.current)},[M,O,C]);let R=Te(),z=Ke({id:d}),B=u?void 0:z,fe={role:`radio`,"aria-checked":M,"aria-labelledby":Me(s,se,F,!u,B,p[`aria-label`]),[Mt]:M?``:void 0,id:u?z:R,onKeyDown(e){e.key===`Enter`&&e.preventDefault()},onClick(e){if(e.defaultPrevented||O||k)return;e.preventDefault();let t=F.current;t&&Se(t,e)},onFocus(e){P(!0),!(e.defaultPrevented||O||k||!ee)&&(F.current?.click(),S(!1))},onBlur(){m||P(!1)}},{getButtonProps:V,buttonRef:pe}=je({disabled:O,native:u,composite:!1}),H={type:`radio`,ref:ue,form:j,id:B,name:x,tabIndex:-1,style:x?be:te,"aria-hidden":!0,...c===void 0?ge:{value:he(c)},disabled:O,checked:M,required:A,readOnly:k,onChange(e){if(e.nativeEvent.defaultPrevented||O||k||c===void 0)return;let t=le(ie,e.nativeEvent);ne(c,t),!t.isCanceled&&ae(!0)},onClick(e){e.stopPropagation()},onFocus(){N.current?.focus()}},_e=Q.useMemo(()=>({...oe,required:A,disabled:O,readOnly:k,checked:M}),[oe,O,k,M,A]),ve=_e,U=m!==void 0,W=[t,N,pe],G=[fe,p,V,D,b?e=>b.getValidationProps(O,e):ge],xe=me(`span`,e,{enabled:!U,state:_e,ref:W,props:G,stateAttributesMapping:en});return(0,$.jsxs)(rn.Provider,{value:ve,children:[U?(0,$.jsx)(st,{tag:`span`,render:n,className:r,style:f,state:_e,refs:W,props:G,stateAttributesMapping:en}):xe,(0,$.jsx)(`input`,{...H,suppressHydrationWarning:!0})]})}),sn=Q.forwardRef(function(e,t){let{render:n,className:r,style:i,keepMounted:a=!1,...o}=e,s=an(),c=s.checked,{mounted:l,transitionStatus:u,setMounted:d}=Ue(c),f={...s,transitionStatus:u},p=Q.useRef(null),m=a||l,h=me(`span`,e,{ref:[t,p],state:f,props:o,stateAttributesMapping:en});return Oe({batch:!0,enabled:!c,open:c,ref:p,onComplete(){c||d(!1)}}),m?h:null}),cn=[w],ln=Q.forwardRef(function(e,t){let{render:n,className:r,disabled:i,readOnly:a,required:o,onValueChange:s,value:c,defaultValue:l,form:u,name:d,inputRef:f,id:p,style:m,...h}=e,{setTouched:g,setFocused:_,validationMode:v,name:y,disabled:ee,state:b,validation:x,setDirty:te,setFilled:ne,validityData:S}=ye(),{labelId:ie}=Be(),{clearErrors:ae,elementRef:w}=We(),oe=zt(!0),T=ee||i,E=y??d,D=Te(p),[O,k]=qe({controlled:c,default:l,name:`RadioGroup`,state:`value`}),[A,j]=Q.useState(!1),M=Ae((e,t)=>{s?.(e,t),!t.isCanceled&&k(e)}),ce=x.getInputControl,le=Q.useMemo(()=>({get current(){return ce()}}),[ce]),N=Q.useRef(null),P=Q.useRef(null),F=re(N,f),I=Q.useRef(F),L=Ae(e=>{(N.current!==e||I.current!==F)&&(I.current=F,F?.(e))});Fe(()=>{L(N.current)},[F,L]);let ue=Ae(e=>{if(e){if(!e.disabled){P.current||=e;let t=N.current;(e.checked||t==null||t.disabled)&&L(e)}return()=>{P.current===e&&(P.current=null),N.current===e&&L(null)}}}),de=Ae(()=>{let e=w.current;if(!e)return O??null;for(let t of x.registeredInputs.keys())if(t.checked&&Bt(t,e))return O??null;return null});se(le,D,O??null,de,!T,d),C(O,()=>{ae(E),te(O!==S.initialValue),ne(O!=null),x.change(O);let e=P.current;O==null&&e&&!e.disabled&&L(e)});let R=ie??oe?.legendId,z={...b,disabled:T??!1,required:o??!1,readOnly:a??!1},B=Q.useMemo(()=>({checkedValue:O,disabled:T,form:u,validation:x,name:E,readOnly:a,registerInputRef:ue,required:o,setCheckedValue:M,setTouched:j,touched:A}),[O,T,u,x,E,a,ue,o,M,j,A]),V={id:p,role:`radiogroup`,"aria-required":o||void 0,"aria-disabled":T||void 0,"aria-readonly":a||void 0,"aria-labelledby":R,onBlur(e){fe(e.currentTarget,e.relatedTarget)||(j(!1),g(!0),_(!1),v===`onBlur`&&x.commit(O))},onKeyDownCapture(e){e.key.startsWith(`Arrow`)&&j(!0)}};return(0,$.jsx)(tn.Provider,{value:B,children:(0,$.jsx)(At,{render:n,className:r,style:m,state:z,props:[V,h,e=>x.getValidationProps(T??!1,e)],refs:[t],stateAttributesMapping:Je,enableHomeAndEndKeys:!1,modifierKeys:cn})})});function un({className:e,...t}){return(0,$.jsx)(ln,{"data-slot":`radio-group`,className:De(`grid w-full gap-2`,e),...t})}function dn({className:e,...t}){return(0,$.jsx)(on,{"data-slot":`radio-group-item`,className:De(`group/radio-group-item peer relative flex aspect-square size-4 shrink-0 rounded-full border border-input outline-none group-has-[:focus-visible]/field-label:ring-0 group-has-[:focus-visible]/field-label:not-data-checked:border-input after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-transparent focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground group-has-[:focus-visible]/field-label:data-checked:border-primary dark:data-checked:bg-primary`,e),...t,children:(0,$.jsx)(sn,{"data-slot":`radio-group-indicator`,className:`flex size-4 items-center justify-center`,children:(0,$.jsx)(`span`,{className:`absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2 rounded-full bg-primary-foreground`})})})}var fn=[`system`,`light`,`dark`],pn=e=>M(`${e.id}.kanvil-theme.json`,gt([e]));function mn({theme:e,active:t,activeModes:n,onPickMode:r,actions:i}){return(0,$.jsxs)(`div`,{className:`relative overflow-hidden rounded-xl border border-border/70 bg-background transition-colors hover:bg-accent/10 has-[>[data-slot=radio-group-item]:focus-visible]:ring-2 has-[>[data-slot=radio-group-item]:focus-visible]:ring-ring has-[>[data-slot=radio-group-item]:focus-visible]:ring-offset-2 has-[>[data-slot=radio-group-item]:focus-visible]:ring-offset-background data-[selected=true]:bg-accent/30 data-[selected=true]:shadow-[inset_0_0_0_1px_var(--ring)]`,"data-selected":t,children:[(0,$.jsx)(dn,{value:e.id,id:`theme-${e.id}`,className:`peer absolute inset-0 size-full aspect-auto rounded-xl opacity-0`}),(0,$.jsx)(`div`,{className:`pointer-events-none relative flex min-h-16 items-center justify-center gap-2.5 px-3 pt-3`,children:[`light`,`dark`].map(t=>{let i=n.includes(t),a=t===`light`?wt:Tt;return(0,$.jsxs)(_e,{children:[(0,$.jsxs)(S,{render:(0,$.jsx)(W,{variant:`ghost`,"aria-label":h(`settings.appearance.useMode.${t}`,{name:e.name}),"aria-pressed":i,className:`pointer-events-auto relative size-[68px] shrink-0 rounded-full p-1 transition-transform hover:scale-105 hover:bg-transparent aria-pressed:hover:scale-100`,onClick:()=>r(t)}),children:[(0,$.jsx)(Zt,{theme:e,mode:t,variant:`orb`}),i&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{"aria-hidden":`true`,className:`pointer-events-none absolute inset-0 rounded-full ring-2 ring-inset ring-ring`}),(0,$.jsx)(`span`,{"aria-hidden":`true`,className:`pointer-events-none absolute bottom-0.5 right-0.5 flex size-5 items-center justify-center rounded-full border border-border/70 bg-background text-foreground shadow-sm`,children:(0,$.jsx)(a,{className:`size-3`})})]})]}),(0,$.jsx)($e,{children:h(`settings.appearance.modeOnly.${t}`)})]},t)})}),(0,$.jsxs)(`div`,{className:`pointer-events-none relative flex items-center gap-2 px-3 pb-3 pt-2`,children:[(0,$.jsx)(G,{htmlFor:`theme-${e.id}`,title:e.name,className:`min-w-0 flex-1 truncate text-sm font-medium`,children:e.name}),(0,$.jsx)(`div`,{className:`pointer-events-auto relative flex shrink-0 items-center gap-1`,children:i})]})]})}var hn=e=>e.toLocaleLowerCase().normalize(`NFD`).replace(/\p{Diacritic}/gu,``);function gn(){let e=dt(),t=(0,Q.useRef)(null),[n,r]=(0,Q.useState)(null),[i,a]=(0,Q.useState)(``),[o,s]=(0,Q.useState)(),c={...e.selected,light:e.lightTheme.light,dark:e.darkTheme.dark};function l(e){r({...e,id:`custom-${crypto.getRandomValues(new Uint32Array(2)).join(`-`)}`,name:h(`settings.appearance.copyName`,{name:e.name})})}let u=e.themes.filter(e=>hn(e.name).includes(hn(i)));return(0,$.jsxs)(`section`,{className:`space-y-5`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`h2`,{className:`mb-3 text-sm font-normal text-muted-foreground`,children:h(`settings.appearance.colorScheme`)}),(0,$.jsx)(un,{value:e.mode,onValueChange:t=>e.setMode(b(fn).parse(t)),"aria-label":h(`settings.appearance.theme`),className:`grid grid-cols-3 gap-3`,children:fn.map(t=>(0,$.jsxs)(`div`,{className:`relative`,children:[(0,$.jsx)(dn,{id:`mode-${t}`,value:t,className:`peer absolute inset-0 z-10 size-full aspect-auto rounded-xl opacity-0`}),(0,$.jsxs)(G,{htmlFor:`mode-${t}`,className:`theme-choice flex w-full cursor-pointer flex-col gap-2 rounded-lg border border-border bg-background p-2 text-xs font-medium transition-colors peer-focus-visible:ring-2 peer-focus-visible:ring-ring peer-focus-visible:ring-offset-2 peer-focus-visible:ring-offset-background hover:bg-muted/50 data-[selected=true]:border-primary data-[selected=true]:ring-1 data-[selected=true]:ring-primary [&_svg]:overflow-hidden [&_svg]:border [&_svg]:border-foreground/10`,"data-selected":e.mode===t,children:[(0,$.jsx)(Zt,{theme:c,mode:t,className:`h-[8.75rem]`}),(0,$.jsx)(`span`,{className:`pb-1`,children:Dt[t]})]})]},t))})]}),(0,$.jsxs)(`div`,{children:[(0,$.jsxs)(`div`,{className:`mb-4 flex flex-wrap items-center justify-between gap-3`,children:[(0,$.jsx)(`h2`,{className:`mb-0 text-sm font-normal text-muted-foreground`,children:h(`settings.appearance.themes`)}),(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center justify-end gap-1`,children:[(0,$.jsx)(He,{label:h(`settings.appearance.search`),placeholder:h(`settings.appearance.searchPlaceholder`),value:i,onChange:a}),(0,$.jsx)(D,{label:h(`settings.appearance.create`),size:`icon-sm`,onClick:()=>l(c),children:(0,$.jsx)(et,{})}),(0,$.jsx)(D,{label:h(`settings.appearance.add`),size:`icon-sm`,onClick:()=>t.current?.click(),children:(0,$.jsx)(lt,{})})]})]}),(0,$.jsx)(Ce,{ref:t,type:`file`,accept:`application/json,.json`,className:`hidden`,"aria-label":h(`settings.appearance.importFile`),onChange:t=>{let n=t.currentTarget.files?.[0];n&&(s(void 0),n.text().then(t=>e.importThemes(_t(t))).catch(s),t.currentTarget.value=``)}}),(0,$.jsx)(k,{error:o}),(0,$.jsx)(un,{"aria-label":h(`settings.appearance.colorTheme`),value:e.color,onValueChange:t=>e.setColor(String(t)),className:`grid grid-cols-[repeat(auto-fit,minmax(min(100%,16rem),1fr))] gap-2`,children:u.map(t=>(0,$.jsx)(mn,{theme:t,active:t.id===e.color,activeModes:[`light`,`dark`].filter(n=>(n===`light`?e.lightTheme.id:e.darkTheme.id)===t.id),onPickMode:n=>e.setColorForMode(n,t.id),actions:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(D,{label:h(`settings.appearance.duplicate`,{name:t.name}),className:`size-6`,onClick:()=>l(t),children:(0,$.jsx)(P,{})}),t.id.startsWith(`custom-`)&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(D,{label:h(`settings.appearance.edit`,{name:t.name}),className:`size-6`,onClick:()=>r(t),children:(0,$.jsx)(ot,{})}),(0,$.jsx)(D,{label:h(`settings.appearance.export`,{name:t.name}),className:`size-6`,onClick:()=>pn(t),children:(0,$.jsx)(it,{})}),(0,$.jsx)(z,{label:h(`settings.appearance.delete`,{name:t.name}),description:h(`settings.appearance.deleteDescription`,{name:t.name}),danger:!0,icon:(0,$.jsx)(at,{}),onConfirm:async()=>e.remove(t.id)})]})]})},t.id))}),u.length===0&&(0,$.jsx)(`p`,{role:`status`,className:`mt-4`,children:h(`settings.appearance.noMatches`)})]}),(0,$.jsx)(I,{title:h(`settings.appearance.customTheme`),open:!!n,onOpenChange:e=>{e||r(null)},children:n&&(0,$.jsx)(_n,{initial:n,onSaved:t=>{e.save(t),a(``),r(null)}})})]})}function _n({initial:e,onSaved:t}){let[n,r]=(0,Q.useState)(e),[i,a]=(0,Q.useState)();return(0,$.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),a(void 0);try{t(ft(n))}catch(e){a(e)}},children:[(0,$.jsx)(V,{label:h(`settings.appearance.name`),value:n.name,required:!0,maxLength:60,onChange:e=>r({...n,name:e.target.value})}),(0,$.jsx)(`div`,{className:`grid grid-cols-2 gap-5`,children:[`light`,`dark`].map(e=>(0,$.jsxs)(`section`,{children:[(0,$.jsx)(`h3`,{children:Dt[e]}),(0,$.jsx)(Zt,{theme:n,mode:e}),(0,$.jsx)(`div`,{className:`mt-4 space-y-3`,children:vt.keyof().options.map(t=>(0,$.jsx)(V,{label:h(`settings.appearance.paletteColor`,{mode:Dt[e],color:h(`settings.appearance.color.${t}`)}),type:`color`,value:n[e][t],onChange:i=>r({...n,[e]:{...n[e],[t]:i.target.value}})},t))})]},e))}),(0,$.jsx)(k,{error:i}),(0,$.jsx)(W,{type:`submit`,variant:`default`,className:`mt-4`,children:h(`settings.appearance.save`)})]})}function vn({section:e}){let[t,n]=xt(),r=O(),i=pe(),a=Le({queryKey:[`accounts`],refetchOnMount:`always`,queryFn:async()=>{let e=await R.listAccounts();if(e.error)throw Error(e.error.message);return e.data}}),[o,s]=(0,Q.useState)(!1),[c,l]=(0,Q.useState)(!1);async function u(e){e.preventDefault(),n(void 0);let t=new FormData(e.currentTarget);if(t.get(`next`)!==t.get(`confirm`))n(Error(h(`settings.account.passwordMismatch`)));else{l(!0);try{let e=await R.changePassword({currentPassword:ut(t,`current`),newPassword:ut(t,`next`),revokeOtherSessions:!0});if(e.error)throw Error(e.error.message);s(!1),N.success(h(`settings.account.passwordUpdated`))}catch(e){n(e)}finally{l(!1)}}}return(0,$.jsxs)(Ot,{title:h(`settings.account.title`),section:e,children:[(0,$.jsxs)(q,{value:`account`,children:[(0,$.jsx)(Yt,{}),(0,$.jsxs)(`section`,{children:[(0,$.jsx)(K,{title:h(`settings.account.security`)}),(0,$.jsx)(J,{title:h(`settings.account.localPassword`),description:h(`settings.account.localPasswordDescription`),children:(0,$.jsx)(W,{onClick:()=>{n(void 0),s(!0)},children:h(`settings.account.changePassword`)})}),i.data?.providers.map(e=>{let t=a.data?.some(t=>t.providerId===e.id);return(0,$.jsx)(J,{title:e.name,description:h(t?`settings.account.oidcLinked`:`settings.account.oidcUnlinked`),children:t?(0,$.jsx)(Xe,{variant:`secondary`,children:h(`settings.account.linked`)}):(0,$.jsx)(W,{disabled:c,onClick:()=>{l(!0),n(void 0),R.linkSocial({provider:e.id,callbackURL:`${window.location.origin}/settings?section=account`,errorCallbackURL:`${window.location.origin}/settings?section=account`}).then(e=>{if(e.error)throw Error(e.error.message)}).catch(n).finally(()=>l(!1))},children:h(`settings.account.link`,{name:e.name})})},e.id)}),(0,$.jsx)(rt,{account:r,onDeleted:()=>j(r).catch(()=>{r.clearPrivateData(),window.location.assign(`/login`)})}),!o&&(0,$.jsx)(k,{error:t}),(0,$.jsx)(k,{error:a.error??i.error})]}),(0,$.jsx)(I,{title:h(`settings.account.changePassword`),open:o,onOpenChange:s,busy:c,children:(0,$.jsxs)(`form`,{onSubmit:e=>{u(e)},children:[(0,$.jsx)(V,{label:h(`settings.account.currentPassword`),name:`current`,type:`password`,autoComplete:`current-password`,required:!0}),(0,$.jsx)(V,{label:h(`settings.account.newPassword`),name:`next`,type:`password`,autoComplete:`new-password`,required:!0,minLength:12,maxLength:128}),(0,$.jsx)(V,{label:h(`settings.account.confirmPassword`),name:`confirm`,type:`password`,autoComplete:`new-password`,required:!0,minLength:12,maxLength:128}),(0,$.jsx)(Ie,{error:t,pending:c,submitLabel:h(`settings.account.changePassword`),onCancel:()=>s(!1)})]})})]}),(0,$.jsx)(q,{value:`appearance`,children:(0,$.jsx)(gn,{})}),(0,$.jsx)(q,{value:`preferences`,children:(0,$.jsx)(yn,{})}),(0,$.jsx)(q,{value:`credentials`,children:(0,$.jsx)(Gt,{})}),(0,$.jsxs)(q,{value:`notifications`,children:[(0,$.jsx)(bn,{pushAvailable:i.data?.push??!1}),(0,$.jsx)(nt,{emailAvailable:i.data?.email??!1})]})]})}function yn(){let e=O(),[t,n]=pt(Y.weekStart),[r,i]=pt(Y.sidebar),{preference:a}=mt();return(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`section`,{className:`[&>.setting-row:last-child]:border-b-0`,children:[(0,$.jsx)(K,{title:h(`settings.preferences.behavior`)}),(0,$.jsx)(J,{title:h(`common.language.label`),description:h(`settings.preferences.languageDescription`),children:(0,$.jsxs)(H,{label:h(`common.language.label`),labelHidden:!0,className:`mb-0 w-44`,value:a,onValueChange:e=>void jt(ee.parse(e)).catch(Ye),children:[(0,$.jsx)(F,{value:`system`,children:h(`common.language.system`)}),s.map(e=>(0,$.jsx)(F,{value:e,lang:e,children:d[e].name},e))]})}),(0,$.jsx)(J,{title:h(`settings.preferences.weekStart`),description:h(`settings.preferences.weekStartDescription`),children:(0,$.jsxs)(H,{label:h(`settings.preferences.weekStart`),labelHidden:!0,className:`mb-0 w-44`,value:t,onValueChange:e=>n(Y.weekStart.schema.parse(e)),children:[(0,$.jsx)(F,{value:`language`,children:h(`settings.preferences.weekStartLanguage`)}),(0,$.jsx)(F,{value:`sunday`,children:v(new Date(2023,0,1),{weekday:`long`})}),(0,$.jsx)(F,{value:`monday`,children:v(new Date(2023,0,2),{weekday:`long`})}),(0,$.jsx)(F,{value:`saturday`,children:v(new Date(2023,0,7),{weekday:`long`})})]})}),(0,$.jsx)(J,{title:h(`settings.preferences.sidebar`),description:h(`settings.preferences.sidebarDescription`),children:(0,$.jsxs)(H,{label:h(`settings.preferences.sidebar`),labelHidden:!0,className:`mb-0 w-44`,value:r,onValueChange:e=>i(Y.sidebar.schema.parse(e)),children:[(0,$.jsx)(F,{value:`last`,children:h(`settings.preferences.sidebarLast`)}),(0,$.jsx)(F,{value:`expanded`,children:h(`settings.preferences.sidebarExpanded`)}),(0,$.jsx)(F,{value:`collapsed`,children:h(`settings.preferences.sidebarCollapsed`)})]})})]}),(0,$.jsxs)(`section`,{children:[(0,$.jsx)(K,{title:h(`settings.preferences.ticketLists`)}),(0,$.jsx)(`div`,{className:`grid max-w-sm gap-3`,children:(0,$.jsx)(ct,{})})]}),(0,$.jsx)(`section`,{className:`[&>.setting-row:last-child]:border-b-0`,children:(0,$.jsx)(J,{title:h(`settings.preferences.reset`),description:h(`settings.preferences.resetDescription`),children:(0,$.jsx)(W,{variant:`outline`,onClick:()=>{yt(e.id,Object.values(Y)),N.success(h(`settings.preferences.resetDone`))},children:h(`settings.preferences.reset`)})})})]})}function bn({pushAvailable:e}){let n=Ze(),r=T.notificationPreferences(),i=Le(r),a=A({mutationFn:e=>T.setNotificationPreferences(e),networkMode:`always`,retry:!1,onSuccess:e=>n.setQueryData(r.queryKey,e)}),o=a.isPending?a.variables:i.data,s=e=>{o&&a.mutate({...o,...e})};return(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`section`,{className:`[&>.setting-row:last-child]:border-b-0`,children:[(0,$.jsx)(K,{title:h(`settings.notifications.title`)}),(0,$.jsx)(k,{error:i.error??a.error}),i.isPending?(0,$.jsx)(B,{}):o&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(J,{title:h(`settings.notifications.inbox`),description:h(`settings.notifications.inboxDescription`),children:(0,$.jsx)(Nt,{"aria-label":h(`settings.notifications.inboxSwitch`),checked:o.inApp,disabled:a.isPending,onCheckedChange:e=>s({inApp:e})})}),(0,$.jsx)(J,{title:h(`settings.notifications.push`),description:h(e?`settings.notifications.pushDescription`:`settings.notifications.pushUnavailable`),children:(0,$.jsx)(Nt,{"aria-label":h(`settings.notifications.pushSwitch`),checked:o.push,disabled:a.isPending||!e,onCheckedChange:e=>s({push:e})})})]})]}),o&&(0,$.jsxs)(`section`,{className:`[&>.setting-row:last-child]:border-b-0`,children:[(0,$.jsx)(K,{title:h(`settings.notifications.categories`)}),p.map(e=>{let t=Et[e];return(0,$.jsx)(J,{compact:!0,title:(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-2`,children:[(0,$.jsx)(t,{"aria-hidden":!0,className:`size-4 text-muted-foreground`}),y[e]]}),children:(0,$.jsx)(Nt,{"aria-label":h(`settings.notifications.categorySwitch`,{label:y[e]}),checked:o.categories[e],disabled:a.isPending,onCheckedChange:t=>s({categories:{...o.categories,[e]:t}})})},e)}),(0,$.jsx)(J,{title:h(`settings.notifications.reminder`),description:h(`settings.notifications.reminderDescription`),children:(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(xn,{value:o.reminderLead.amount,disabled:a.isPending||!o.categories.due_soon,onCommit:e=>s({reminderLead:{...o.reminderLead,amount:e}})},o.reminderLead.amount),(0,$.jsx)(H,{label:h(`settings.notifications.reminderUnit`),labelHidden:!0,className:`mb-0 w-32`,value:o.reminderLead.unit,disabled:a.isPending||!o.categories.due_soon,onValueChange:e=>s({reminderLead:{...o.reminderLead,unit:u.parse(e)}}),children:t.map(e=>(0,$.jsx)(F,{value:e,children:h(`settings.notifications.unit.${e}`)},e))})]})})]})]})}function xn({value:e,disabled:t,onCommit:n}){let[r,i]=(0,Q.useState)(String(e)),a=()=>{let t=Number(r);Number.isInteger(t)&&t>=1&&t<=999?t!==e&&n(t):i(String(e))};return(0,$.jsx)(V,{label:h(`settings.notifications.reminderAmount`),labelHidden:!0,type:`number`,inputMode:`numeric`,min:1,max:999,className:`w-20`,value:r,disabled:t,onChange:e=>i(e.currentTarget.value),onBlur:a,onKeyDown:e=>{e.key===`Enter`&&a()}})}export{vn as AccountSettings};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ticket-editor-UlSZgpWF.js","assets/rolldown-runtime-COiEfhsA.js","assets/default-D5TdIZQS.js","assets/core-jXc03Sty.js","assets/en-EnSRisMz.js","assets/preload-helper-BLdHbfdN.js","assets/search-D94SZwrC.js","assets/toDate-B3HYxwtT.js","assets/item-Cq_ZbivE.js","assets/CompositeItem-BbuEp99X.js","assets/forms-BcD6Wwyv.js","assets/corner-left-up-DA7MG5uX.js","assets/rotate-ccw-Bm0ESNH_.js","assets/sliders-horizontal-CiZZFL1o.js","assets/upload-CGpna3R2.js","assets/index-DoqlyejP.js","assets/Trans-DJGH63s1.js","assets/en-US-DKYSujv3.js","assets/index-DyQNFS69.css","assets/switch-B_u8n1o6.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{Dt as t,Et as n,Mn as r,Ot as i,U as a,_t as o,i as s,pn as c,r as l}from"./default-D5TdIZQS.js";import{B as u,Ba as d,G as f,Ga as p,Ha as m,Hi as h,Ii as g,J as _,Ji as v,K as y,Oa as b,Pi as x,Pt as S,Q as C,V as w,Va as ee,X as te,Xn as T,Z as E,Zi as D,_t as O,at as k,di as A,ea as j,et as ne,ft as re,it as M,nt as ie,ot as N,q as P,qa as F,ut as ae,zi as oe}from"./search-D94SZwrC.js";import{t as I}from"./preload-helper-BLdHbfdN.js";import{t as L}from"./useQueries-BihXYrAP.js";import{a as R,g as z,n as B,r as V,t as H}from"./item-Cq_ZbivE.js";import{t as se}from"./archive-restore-B6_SsOIP.js";import{n as ce,r as le,t as ue}from"./Trans-DJGH63s1.js";import{n as U,r as de}from"./CompositeItem-BbuEp99X.js";import{t as fe}from"./corner-left-up-DA7MG5uX.js";import{t as pe}from"./ellipsis-D6154JKs.js";import{t as W}from"./send-D9TETK3s.js";import{r as G}from"./forms-BcD6Wwyv.js";import{$ as me,A as he,B as ge,Bt as _e,F as ve,H as ye,Ht as be,K as xe,L as Se,M as Ce,Q as K,Ut as we,Vt as Te,_ as q,b as J,et as Y,ft as Ee,g as De,h as X,ht as Oe,k as ke,m as Ae,q as je,sn as Me,ut as Z,vn as Ne,x as Pe,yn as Fe,z as Ie}from"./index-DoqlyejP.js";import{TicketEditor as Le,a as Re,i as ze,l as Be,n as Ve,o as He,r as Ue,s as We,t as Ge}from"./ticket-editor-UlSZgpWF.js";var Ke={name:`git-branch-plus`,size:24,node:[[`path`,{d:`M6 3v12`,key:`qpgusn`}],[`path`,{d:`M18 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6z`,key:`1d02ji`}],[`path`,{d:`M6 21a3 3 0 1 0 0-6 3 3 0 0 0 0 6z`,key:`chk6ph`}],[`path`,{d:`M15 6a9 9 0 0 0-9 9`,key:`or332x`}],[`path`,{d:`M18 15v6`,key:`9wciyi`}],[`path`,{d:`M21 18h-6`,key:`139f0c`}]]};Ke.node;var qe=p(Ke),Je={name:`unlink`,size:24,node:[[`path`,{d:`m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71`,key:`yqzxt4`}],[`path`,{d:`m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71`,key:`4qinb0`}],[`line`,{x1:`8`,x2:`8`,y1:`2`,y2:`5`,key:`1041cp`}],[`line`,{x1:`2`,x2:`5`,y1:`8`,y2:`8`,key:`14m1p5`}],[`line`,{x1:`16`,x2:`16`,y1:`19`,y2:`22`,key:`rzdirn`}],[`line`,{x1:`19`,x2:`22`,y1:`16`,y2:`16`,key:`ox905f`}]]};Je.node;var Ye=p(Je),Q=e(r(),1),$=l(),Xe=(0,Q.lazy)(()=>I(()=>import(`./ticket-editor-UlSZgpWF.js`).then(e=>({default:e.TicketEditor})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19])));function Ze({ticket:e}){let n=j(e.projectId),r=F(h.query(`list_relations`,{projectId:e.projectId,ticketId:e.id})),[a,s]=(0,Q.useState)(!1),[l,u]=(0,Q.useState)(!1),[d,f]=(0,Q.useState)(null),[p,m]=(0,Q.useState)(0),[g,v]=(0,Q.useState)(),b=F({...h.query(`get_ticket`,{projectId:e.projectId,ticketId:e.parentId??e.id}),enabled:!!e.parentId}),x=F(h.query(`list_tickets`,{projectId:e.projectId,parentId:e.id,archived:`include`,limit:20,offset:p})),w=L({queries:Array.from({length:Math.ceil((r.data?.length??0)/100)},(t,n)=>h.query(`list_tickets`,{projectId:e.projectId,relatedTo:e.id,archived:`include`,sort:`number`,limit:100,offset:n*100}))}),ee=new Map(w.flatMap(e=>e.data?.items??[]).map(e=>[e.id,e])),T=D(`add_relation`),E=D(`remove_relation`);return(0,$.jsxs)(`section`,{children:[(0,$.jsx)(M,{compact:!0,title:c(`detail.relations.heading`),action:n.canWrite&&(0,$.jsxs)(Ie,{children:[(0,$.jsx)(xe,{render:(0,$.jsx)(_,{label:c(`detail.relations.add`)}),children:(0,$.jsx)(z,{})}),(0,$.jsxs)(ge,{align:`end`,className:`w-48`,children:[(0,$.jsxs)(ye,{onClick:()=>{T.reset(),v(void 0),f(null),s(!0)},children:[(0,$.jsx)(Ye,{}),c(`detail.relations.linkExisting`)]}),(0,$.jsxs)(ye,{onClick:()=>u(!0),children:[(0,$.jsx)(qe,{}),c(`detail.relations.newChild`)]})]})]})}),e.parentId&&(0,$.jsxs)(H,{size:`xs`,className:`px-0`,children:[(0,$.jsx)(fe,{className:`size-3.5 shrink-0 text-muted-foreground`,"aria-hidden":`true`}),(0,$.jsxs)(V,{className:`min-w-0`,children:[(0,$.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:c(`detail.field.parent`)}),(0,$.jsx)(J,{projectId:e.projectId,ticketId:e.parentId,ticket:b.data?.ticket})]})]}),x.data&&(x.data.total>0||p>0)&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`h3`,{className:`mt-3 mb-1 text-xs text-muted-foreground`,children:(0,$.jsx)(ue,{i18nKey:`detail.relations.children`,values:{done:x.data.items.filter(e=>e.status===`done`).length,total:x.data.total},components:{count:(0,$.jsx)(`span`,{className:`tabular-nums`})}})}),(0,$.jsx)(R,{className:`gap-0`,children:x.data.items.map(t=>(0,$.jsx)(Qe,{projectId:e.projectId,ticketId:t.id,ticket:t,canWrite:n.canWrite,children:(0,$.jsx)(J,{projectId:e.projectId,ticketId:t.id,ticket:t})},t.id))}),(x.data.total>20||p>0)&&(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,$.jsx)(A,{size:`sm`,disabled:!p,onClick:()=>m(Math.max(0,p-20)),children:c(`detail.relations.previousChildren`)}),(0,$.jsx)(A,{size:`sm`,disabled:p+20>=x.data.total,onClick:()=>m(p+20),children:c(`detail.relations.nextChildren`)})]})]}),(0,$.jsx)(R,{className:`gap-0`,children:r.data?.map(t=>{let r=i(t,e.id);return(0,$.jsx)(Qe,{projectId:e.projectId,ticketId:r.id,ticket:ee.get(r.id),canWrite:n.canWrite,label:r.label,action:(0,$.jsx)(_,{size:`icon-sm`,label:c(`detail.relations.remove.${t.type}`),onClick:()=>E.mutate({projectId:e.projectId,relationId:t.id}),children:(0,$.jsx)(Ye,{})}),children:(0,$.jsx)(J,{projectId:e.projectId,ticketId:r.id,children:r.title})},t.id)})}),!e.parentId&&!x.data?.total&&r.data?.length===0&&(0,$.jsx)(`p`,{className:`mb-0 text-xs text-muted-foreground`,children:c(`detail.relations.empty`)}),(0,$.jsx)(C,{title:c(`detail.relations.add`),open:a,onOpenChange:s,busy:T.isPending,children:(0,$.jsxs)(`form`,{onSubmit:t=>{t.preventDefault();let n=new FormData(t.currentTarget);d&&(v(void 0),T.mutateAsync({projectId:e.projectId,ticketId:e.id,targetId:d,...o(n.get(`type`))}).then(()=>s(!1)).catch(v))},children:[(0,$.jsx)(k,{label:c(`detail.relations.type`),name:`type`,children:t.map(e=>(0,$.jsx)(S,{value:e.value,children:e.label},e.value))}),(0,$.jsx)(We,{projectId:e.projectId,label:c(`detail.relations.ticket`),value:d,onChange:f,exclude:[e.id],allowClear:!1}),(0,$.jsx)(P,{error:g??T.error,pending:T.isPending,submitLabel:c(`detail.relations.add`),submitDisabled:!d,onCancel:()=>s(!1)})]})}),(0,$.jsx)(C,{size:`composer`,title:c(`detail.relations.newChildTitle`,{key:e.key}),open:l,onOpenChange:u,children:l&&(0,$.jsx)(Q.Suspense,{fallback:(0,$.jsx)(te,{}),children:(0,$.jsx)(Xe,{projectId:e.projectId,initial:{parentId:e.id,labels:e.labels,scopes:e.scopes},onSaved:()=>u(!1)})})}),(0,$.jsx)(y,{error:r.error??E.error??b.error??x.error??w.find(e=>e.error)?.error})]})}function Qe({projectId:e,ticketId:t,ticket:n,canWrite:r,label:i,action:a,children:o}){let{change:s,pending:l}=Ee({id:t,projectId:e,version:n?.version??0}),u=r&&n;return(0,$.jsxs)(H,{size:`xs`,className:`px-0`,children:[u?(0,$.jsx)(Y,{property:`status`,value:Z(n),onChange:e=>void s({status:e}),projectId:e,disabled:l,variant:`cell`,iconOnly:!0,ariaLabel:c(`detail.relations.statusOf`,{key:n.key}),className:`mx-0`}):n&&(0,$.jsx)(K,{property:`status`,value:Z(n),projectId:e,iconOnly:!0}),(0,$.jsxs)(V,{className:`min-w-0 gap-0`,children:[i&&(0,$.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:i}),o]}),(u||n?.assigneeId||r&&a)&&(0,$.jsxs)(B,{className:`gap-0`,children:[u?(0,$.jsx)(Y,{property:`assignee`,value:n.assigneeId,onChange:e=>void s({assignee:e}),projectId:e,disabled:l,variant:`cell`,iconOnly:!0,align:`end`,ariaLabel:c(`detail.relations.assigneeOf`,{key:n.key}),className:`mx-0`}):n?.assigneeId&&(0,$.jsx)(K,{property:`assignee`,value:n.assigneeId,projectId:e,iconOnly:!0}),r&&a]})]})}function $e({ticket:e,anchor:t}){let[n,r]=(0,Q.useState)(0),[i,a]=(0,Q.useState)(``),o=F(h.query(`list_comments`,{projectId:e.projectId,ticketId:e.id,offset:n})),s=t.startsWith(`comment-`)?t.slice(8):null,[l,u]=(0,Q.useState)(s),[d,p]=(0,Q.useState)(s!==null);s!==l&&(u(s),p(s!==null)),d&&o.data&&(o.data.items.some(e=>e.id===s)?p(!1):n+50<o.data.total?r(n+50):p(!1));let m=Re(e.projectId,{ticketId:e.id}),g=D(`add_comment`),_=j(e.projectId);return(0,$.jsxs)(`section`,{children:[(0,$.jsx)(y,{error:o.error??g.error}),o.data?.total===0&&(0,$.jsx)(f,{title:c(`detail.discussion.empty`),icon:Me,className:`py-8`}),(0,$.jsx)(`div`,{className:`divide-y`,children:o.data?.items.map(e=>(0,$.jsx)(et,{comment:e,linked:e.id===s},e.id))}),((o.data?.total??0)>50||n>0)&&(0,$.jsxs)(He,{className:`mt-5 justify-end`,children:[(0,$.jsx)(A,{size:`sm`,disabled:!n,onClick:()=>r(Math.max(0,n-50)),children:c(`detail.discussion.previous`)}),(0,$.jsx)(A,{size:`sm`,disabled:n+50>=(o.data?.total??0),onClick:()=>r(n+50),children:c(`detail.discussion.next`)})]}),_.canWrite&&(0,$.jsx)(`form`,{onKeyDown:G,className:`mt-6`,onSubmit:t=>{t.preventDefault(),g.mutateAsync({projectId:e.projectId,ticketId:e.id,body:i}).then(()=>a(e=>e===i?``:e)).catch(()=>{})},children:(0,$.jsx)(Be,{label:c(`detail.discussion.comment`),value:i,onChange:a,rows:3,required:!0,maxLength:5e4,mentions:e.projectId,onUpload:m,placeholder:c(`detail.discussion.placeholder`),footer:(0,$.jsxs)(A,{type:`submit`,variant:`default`,disabled:g.isPending||!i.trim(),children:[g.isPending?(0,$.jsx)(O,{}):(0,$.jsx)(W,{}),g.isPending?c(`detail.discussion.posting`):c(`detail.discussion.comment`),(0,$.jsx)(T,{"aria-hidden":`true`,className:`ml-1 hidden border-transparent bg-primary-foreground/20 text-primary-foreground shadow-none sm:inline-flex`,children:`⌘↵`})]})})})]})}function et({comment:e,linked:t}){let n=v(),r=j(e.projectId),i=D(`update_comment`),a=Re(e.projectId,{ticketId:e.ticketId}),o=D(`delete_comment`),[s,l]=(0,Q.useState)(!1),[u,d]=(0,Q.useState)(e.body),[f,p]=(0,Q.useState)(e.version),m=e.actorId===n.id,h=(0,Q.useRef)(null);return(0,Q.useEffect)(()=>{t&&h.current?.scrollIntoView({block:`center`})},[t]),(0,$.jsxs)(`article`,{ref:h,id:`comment-${e.id}`,"data-linked":t,className:`group/comment relative scroll-mt-16 py-4 animate-in fade-in-0 duration-200 data-[linked=true]:animate-row-in data-[linked=true]:shadow-[inset_2px_0_0_var(--primary)] data-[linked=true]:pl-3`,children:[(0,$.jsxs)(`div`,{className:`mb-3 flex min-h-8 flex-wrap items-center gap-x-3 gap-y-1 pr-20 text-xs text-muted-foreground`,children:[(0,$.jsx)(`strong`,{className:`text-foreground`,children:(0,$.jsx)(oe,{projectId:e.projectId,actorId:e.actorId,avatar:!0})}),(0,$.jsx)(ie,{value:e.createdAt}),e.updatedAt!==e.createdAt&&(0,$.jsx)(`span`,{children:c(`detail.discussion.edited`)})]}),s?(0,$.jsx)(`form`,{onKeyDown:G,onSubmit:t=>{t.preventDefault(),i.mutateAsync({projectId:e.projectId,commentId:e.id,expectedVersion:f,body:u}).then(()=>l(!1)).catch(()=>{})},children:(0,$.jsx)(Be,{label:c(`detail.discussion.edit`),value:u,onChange:d,rows:4,required:!0,maxLength:5e4,mentions:e.projectId,onUpload:a,footer:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(A,{size:`sm`,disabled:i.isPending,onClick:()=>l(!1),children:c(`common.action.cancel`)}),(0,$.jsxs)(A,{type:`submit`,size:`sm`,variant:`default`,disabled:i.isPending||!u.trim(),children:[i.isPending?(0,$.jsx)(O,{}):null,c(`common.action.save`)]})]})})}):(0,$.jsx)(E,{children:e.body}),!s&&r.canWrite&&(m||n.admin)&&(0,$.jsxs)(`div`,{className:`absolute top-3 right-0 flex items-center gap-1 opacity-0 transition-opacity group-hover/comment:opacity-100 focus-within:opacity-100 max-md:opacity-100`,children:[(0,$.jsx)(_,{label:c(`detail.discussion.edit`),size:`icon-sm`,onClick:()=>{d(e.body),p(e.version),l(!0)},children:(0,$.jsx)(de,{})}),(0,$.jsx)(w,{label:c(`detail.discussion.delete`),icon:(0,$.jsx)(U,{}),danger:!0,description:c(`detail.discussion.deleteConfirm`),onConfirm:()=>o.mutateAsync({projectId:e.projectId,commentId:e.id,expectedVersion:e.version})})]}),(0,$.jsx)(y,{error:i.error})]})}function tt({projectId:e,ticketId:t,preview:r}){let i=j(e),o=F(h.query(`get_ticket`,{projectId:e,ticketId:t})),l=D(`set_subscription`),[u,p]=(0,Q.useState)(!1),[v,S]=(0,Q.useState)(!1),w=we(),[T]=(0,Q.useState)(()=>r?[]:ve(e)),k=r?.order??T,M=k.indexOf(t),N=t=>{let n=M<0?void 0:k[M+t];n&&(r?r.open(n):w({to:`/projects/$projectId/tickets/$ticketId`,params:{projectId:e,ticketId:n}}))},P=r?`[data-slot="sheet-content"]`:void 0;x(`j`,()=>N(1),{enabled:!u,scope:P}),x(`k`,()=>N(-1),{enabled:!u,scope:P});let I=o.data?.ticket,{change:L,pending:R}=Ee(I??{id:t,projectId:e,version:1});x(`e`,()=>{i.canWrite&&p(!0)},{enabled:!!I&&!u,scope:P});let z=o.error instanceof s&&o.error.status===404,B=F({...h.query(`resolve_ticket`,{ticketId:t}),enabled:z,retry:!1}),V=_e({select:e=>r||!e.location.search.peek?e.location.hash:``});if(o.isPending||z&&B.isFetching)return(0,$.jsx)(te,{});if(z&&B.data&&B.data.project.id!==e)return r?(0,$.jsx)(nt,{preview:r,target:{projectId:B.data.project.id,ticketId:B.data.ticket.id}}):(0,$.jsx)(be,{to:`/projects/$projectId/tickets/$ticketId`,params:{projectId:B.data.project.id,ticketId:B.data.ticket.id},replace:!0});if(!o.data||!I||z)return z?(0,$.jsxs)(f,{title:c(`detail.page.unavailable`),children:[(0,$.jsx)(`p`,{children:c(`detail.page.gone`)}),r?(0,$.jsx)(A,{onClick:r.close,children:c(`detail.page.closePreview`)}):(0,$.jsx)(A,{render:(0,$.jsx)(Te,{to:`/projects/$projectId`,params:{projectId:e}}),children:c(`detail.page.backToTickets`)})]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(y,{error:o.error}),(0,$.jsx)(A,{onClick:()=>{o.refetch()},children:c(`common.action.retry`)})]});let{readiness:H,claim:U,canReleaseClaim:fe,subscribed:W}=o.data,G=i.canWrite&&!R;return(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`article`,{className:`ticket-detail grid w-full grid-cols-[minmax(0,1fr)_280px] gap-x-10 animate-in fade-in-0 duration-200 @max-[850px]:flex @max-[850px]:flex-col [&_section]:border-t [&_section]:py-5`,children:[(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(ne,{title:!r&&(0,$.jsxs)(A,{variant:`ghost`,size:`sm`,className:`-ml-2 text-muted-foreground`,render:(0,$.jsx)(Te,{to:`/projects/$projectId`,params:{projectId:e}}),children:[(0,$.jsx)(Fe,{}),c(`detail.page.tickets`)]}),children:(0,$.jsxs)(`div`,{className:`ml-auto flex flex-wrap items-center gap-2`,children:[M>=0&&(0,$.jsxs)(`div`,{className:`mr-1 flex items-center gap-0.5 text-xs text-muted-foreground tabular-nums`,children:[(0,$.jsx)(_,{label:c(`detail.page.previousTicket`),title:c(`detail.page.previousTicketShortcut`),disabled:M===0,onClick:()=>N(-1),children:(0,$.jsx)(d,{})}),(0,$.jsx)(`span`,{children:c(`detail.page.position`,{position:M+1,total:k.length})}),(0,$.jsx)(_,{label:c(`detail.page.nextTicket`),title:c(`detail.page.nextTicketShortcut`),disabled:M===k.length-1,onClick:()=>N(1),children:(0,$.jsx)(ee,{})})]}),(0,$.jsx)(_,{label:c(W?`detail.page.unsubscribe`:`detail.page.subscribe`),disabled:l.isPending,onClick:()=>{l.mutateAsync({projectId:e,ticketId:I.id,enabled:!W}).then(()=>b.success(c(W?`detail.page.unsubscribed`:`detail.page.subscribed`))).catch(ae)},children:W?(0,$.jsx)(Ne,{}):(0,$.jsx)(ce,{})}),(0,$.jsx)(_,{label:Se.label,onClick:()=>{Ce(Se,I)},children:(0,$.jsx)(Se.icon,{})}),(0,$.jsx)(_,{label:I.archived?c(`detail.page.unarchive`):c(`detail.page.archive`),disabled:!G,onClick:()=>{L({archived:!I.archived}).then(e=>{e&&b.success(I.archived?c(`detail.page.unarchivedToast`):c(`detail.page.archivedToast`))})},children:I.archived?(0,$.jsx)(se,{}):(0,$.jsx)(le,{})}),(0,$.jsx)(_,{label:c(`detail.page.edit`),title:c(`detail.page.editShortcut`),disabled:!i.canWrite,onClick:()=>p(!0),children:(0,$.jsx)(de,{})}),(0,$.jsx)(he,{ticket:I,variant:`dropdown`,onEdit:()=>p(!0),children:(0,$.jsx)(A,{variant:`ghost`,size:`icon`,"aria-label":c(`detail.page.actions`),children:(0,$.jsx)(pe,{})})}),r&&(0,$.jsx)(Pe,{projectId:e,ticketId:I.id,preview:r})]})}),(0,$.jsx)(he,{ticket:I,onEdit:()=>p(!0),children:(0,$.jsxs)(`header`,{className:`ticket-heading`,children:[(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-4 gap-y-2 text-xs text-muted-foreground`,children:[(0,$.jsxs)(A,{variant:`ghost`,size:`xs`,className:`-ml-2 gap-1.5 font-mono text-xs text-muted-foreground`,title:c(`detail.page.copyKey`),onClick:()=>{g(I.key).then(()=>{S(!0),setTimeout(()=>S(!1),1500),b.success(c(`detail.page.keyCopied`,{key:I.key}))}).catch(ae)},children:[I.key,v&&(0,$.jsx)(m,{className:`size-3 text-[var(--success)]`})]}),(0,$.jsx)(K,{property:`status`,value:Z(I),projectId:e}),I.archived&&(0,$.jsx)(`strong`,{children:c(`detail.page.archived`)}),R&&(0,$.jsx)(O,{className:`size-3.5 text-muted-foreground`})]}),r?(0,$.jsx)(ke,{render:(0,$.jsx)(`h1`,{}),className:re,children:I.title}):(0,$.jsx)(`h1`,{className:re,children:I.title})]})}),(0,$.jsxs)(`div`,{className:`min-w-0 [&>section:first-child]:border-0 [&>section:first-child]:pt-0`,children:[(0,$.jsxs)(`section`,{children:[(0,$.jsx)(`h2`,{children:c(`detail.field.description`)}),(0,$.jsx)(E,{...G?{onChange:e=>L({description:e})}:{},children:I.description||c(`detail.page.noDescription`)})]}),(0,$.jsxs)(`section`,{children:[(0,$.jsx)(`h2`,{children:c(`detail.field.acceptanceCriteria`)}),(0,$.jsx)(E,{...G?{onChange:e=>L({acceptanceCriteria:e})}:{},children:I.acceptanceCriteria||c(`detail.page.noAcceptanceCriteria`)})]})]}),(0,$.jsxs)(Ae,{defaultValue:`discussion`,className:`mt-8 min-w-0 [&_[data-slot=tabs-content]>section]:border-0 [&_[data-slot=tabs-content]>section]:pt-0`,children:[(0,$.jsxs)(De,{variant:`line`,className:`mb-5`,children:[(0,$.jsx)(q,{value:`discussion`,children:c(`detail.section.discussion`)}),(0,$.jsx)(q,{value:`evidence`,children:c(`detail.section.evidence`)}),(0,$.jsx)(q,{value:`activity`,children:c(`detail.section.activity`)})]}),(0,$.jsx)(X,{value:`discussion`,className:`animate-in fade-in-0 duration-150`,children:(0,$.jsx)($e,{ticket:I,anchor:V})}),(0,$.jsx)(X,{value:`evidence`,className:`animate-in fade-in-0 duration-150`,children:(0,$.jsx)(Ue,{ticket:I})}),(0,$.jsx)(X,{value:`activity`,className:`animate-in fade-in-0 duration-150`,children:(0,$.jsx)(Ge,{ticket:I})})]}),(0,$.jsx)(y,{error:o.error})]}),(0,$.jsxs)(`aside`,{className:`min-w-0 border-l pl-5 @max-[850px]:border-l-0 @max-[850px]:pl-0 [&>section:first-child]:border-0 [&>section:first-child]:pt-0 @max-[850px]:[&>section:first-child]:border-t @max-[850px]:[&>section:first-child]:pt-6 [&_h2]:text-xs [&_h2]:font-medium [&_h2]:text-muted-foreground [&_p]:text-xs [&_ul]:mb-4 [&_ul]:list-disc [&_ul]:pl-4 [&_ul]:text-xs [&_ul]:leading-relaxed [&_ul]:text-muted-foreground`,"aria-label":c(`detail.page.coordination`),children:[(0,$.jsxs)(`section`,{"aria-label":c(`detail.page.properties`),className:`ticket-properties`,children:[(0,$.jsx)(Y,{variant:`row`,property:`status`,projectId:e,value:Z(I),disabled:!G,onChange:e=>void L({status:e})}),(0,$.jsx)(Y,{variant:`row`,property:`priority`,projectId:e,value:I.priority,disabled:!G,onChange:e=>void L({priority:e})}),(0,$.jsx)(Y,{variant:`row`,property:`assignee`,projectId:e,value:I.assigneeId,disabled:!G,onChange:e=>void L({assignee:e})}),(0,$.jsx)(Y,{variant:`row`,property:`kind`,projectId:e,value:I.kind,disabled:!G,onChange:e=>void L({kind:e})}),(0,$.jsx)(Y,{variant:`row`,property:`difficulty`,projectId:e,value:I.difficulty,disabled:!G,onChange:e=>void L({difficulty:e})}),(0,$.jsx)(Oe,{variant:`row`,value:I,disabled:!G,onChange:e=>void L(e)}),(0,$.jsx)(me,{variant:`row`,value:I.labels,disabled:!G,onChange:e=>void L({labels:e})}),(I.scopes.length>0||i.canWrite)&&(0,$.jsx)(me,{variant:`row`,kind:`scope`,value:I.scopes,disabled:!G,onChange:e=>void L({scopes:e})}),(0,$.jsx)(je,{variant:`row`,projectId:e,values:I.customFields,disabled:!G,onChange:(e,t)=>void L({customFields:{[e]:t}})}),(0,$.jsxs)(`dl`,{className:`mt-4 grid grid-cols-[80px_minmax(0,1fr)] gap-x-2 gap-y-1.5 border-t pt-4 text-xs [&_dd]:m-0 [&_dd]:min-w-0 [&_dd]:wrap-anywhere [&_dt]:text-muted-foreground`,children:[(0,$.jsx)(`dt`,{children:c(`detail.page.created`)}),(0,$.jsxs)(`dd`,{children:[(0,$.jsx)(oe,{projectId:e,actorId:I.createdBy}),` · `,(0,$.jsx)(ie,{value:I.createdAt})]}),(0,$.jsx)(`dt`,{children:c(`detail.page.updated`)}),(0,$.jsx)(`dd`,{children:(0,$.jsx)(ie,{value:I.updatedAt})})]})]}),(0,$.jsxs)(`section`,{children:[(0,$.jsx)(`h2`,{children:c(`detail.readiness.heading`)}),(0,$.jsx)(`p`,{className:H.ready?`text-[var(--success)]`:`text-muted-foreground`,children:H.ready?c(`detail.readiness.ready`):c(`detail.readiness.notReady`)}),(0,$.jsx)(`ul`,{children:H.reasons.map((e,t)=>(0,$.jsx)(`li`,{children:n(e,U?.workerId)},`${e.code}:${t}`))}),I.holdReason&&(0,$.jsx)(`p`,{children:c(`detail.readiness.hold`,{reason:I.holdReason})}),U&&(0,$.jsx)(`p`,{children:(0,$.jsx)(ue,{i18nKey:`detail.readiness.claimedUntil`,values:{worker:U.workerId,date:a(U.expiresAt)},components:{strong:(0,$.jsx)(`strong`,{})}})}),U&&(0,$.jsx)(rt,{ticket:I,claim:U,canRelease:fe,canRecover:i.canAdmin&&H.reasons.some(e=>e.code===`claim_recovery_required`)})]}),(0,$.jsx)(Ze,{ticket:I},I.id),(0,$.jsx)(ze,{ticket:I}),(0,$.jsx)(Ve,{ticket:I})]})]}),(0,$.jsx)(C,{size:`composer`,title:c(`detail.page.editTitle`,{key:I.key}),open:u,onOpenChange:p,children:u&&(0,$.jsx)(Le,{projectId:e,ticket:I,onSaved:()=>p(!1)})})]})}function nt({preview:e,target:t}){return(0,Q.useEffect)(()=>e.follow(t),[e,t]),(0,$.jsx)(te,{})}function rt({ticket:e,claim:t,canRelease:n,canRecover:r}){let i=D(`release_claim`),a=D(`recover_claim`),[o,s]=(0,Q.useState)(``),[l,d]=(0,Q.useState)(!1);return(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[n&&(0,$.jsx)(w,{label:c(`detail.claim.release`),description:c(`detail.claim.releaseDescription`),onConfirm:()=>i.mutateAsync({projectId:e.projectId,ticketId:e.id,claimId:t.id})}),r&&(0,$.jsx)(C,{title:c(`detail.claim.recover`),trigger:c(`detail.claim.recover`),children:(0,$.jsxs)(`form`,{onSubmit:n=>{n.preventDefault(),l&&a.mutate({projectId:e.projectId,ticketId:e.id,claimId:t.id,reason:o,confirmedStopped:!0})},children:[(0,$.jsx)(`p`,{children:c(`detail.claim.recoverHelp`)}),(0,$.jsx)(N,{label:c(`detail.claim.reason`),required:!0,minLength:10,maxLength:2e3,value:o,onChange:e=>s(e.target.value)}),(0,$.jsx)(u,{label:c(`detail.claim.confirmed`),checked:l,onCheckedChange:e=>d(e)}),(0,$.jsx)(P,{error:a.error,pending:!l,submitLabel:c(`detail.claim.submit`),submitDisabled:a.isPending})]})})]})}export{tt as TicketDetail};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/visual-editor-B6HiiLMg.js","assets/rolldown-runtime-COiEfhsA.js","assets/default-D5TdIZQS.js","assets/core-jXc03Sty.js","assets/en-EnSRisMz.js","assets/preload-helper-BLdHbfdN.js","assets/search-D94SZwrC.js","assets/toDate-B3HYxwtT.js","assets/forms-BcD6Wwyv.js","assets/index-DoqlyejP.js","assets/item-Cq_ZbivE.js","assets/Trans-DJGH63s1.js","assets/CompositeItem-BbuEp99X.js","assets/en-US-DKYSujv3.js","assets/index-DyQNFS69.css","assets/highlight-CMydIf9M.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{Dn as t,F as n,H as r,I as i,It as a,Mn as o,P as s,Sn as c,i as l,it as u,jn as d,jt as f,kn as p,o as m,pn as h,r as g}from"./default-D5TdIZQS.js";import{A as ee,Aa as _,Ai as v,D as y,Fa as b,Fi as te,Ga as x,Ha as S,Hi as C,I as ne,Ia as w,J as T,Ji as E,K as D,M as O,Mi as k,N as A,Ni as j,O as M,Oa as N,P,Pt as F,Q as re,Ra as I,Tt as ie,V as ae,X as oe,Xn as se,Y as L,Z as ce,Zi as R,_t as le,aa as ue,at as de,ct as fe,di as z,ea as B,fr as pe,gt as me,hr as he,ht as ge,it as V,ji as _e,k as ve,ka as H,ki as U,lt as W,mr as ye,mt as be,nr as xe,nt as G,or as K,ot as Se,pi as Ce,pr as we,pt as Te,q,qa as J,ut as Ee,vt as Y,w as De,wo as Oe,za as ke,zi as Ae}from"./search-D94SZwrC.js";import{t as je}from"./preload-helper-BLdHbfdN.js";import{a as Me,d as Ne,g as Pe,i as Fe,n as Ie,o as Le,r as Re,s as ze,t as Be}from"./item-Cq_ZbivE.js";import{i as Ve,n as He,r as Ue}from"./CompositeItem-BbuEp99X.js";import{t as We}from"./corner-left-up-DA7MG5uX.js";import{t as Ge}from"./rotate-ccw-Bm0ESNH_.js";import{t as Ke}from"./sliders-horizontal-CiZZFL1o.js";import{t as qe}from"./upload-CGpna3R2.js";import{r as Je,t as X}from"./forms-BcD6Wwyv.js";import{$ as Ye,At as Xe,Dt as Ze,Ot as Qe,St as $e,X as et,_ as tt,cn as nt,d as rt,et as Z,g as it,h as at,ht as ot,kt as st,ln as ct,m as lt,mn as ut,pn as dt,q as ft,rt as pt,tn as mt,un as ht,ut as gt,yt as _t}from"./index-DoqlyejP.js";import{t as vt}from"./switch-B_u8n1o6.js";var yt={name:`bold`,size:24,node:[[`path`,{d:`M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8`,key:`mg9rjx`}]]};yt.node;var bt=x(yt),xt={name:`bot`,size:24,node:[[`path`,{d:`M12 8V4H8`,key:`hb8ula`}],[`rect`,{width:`16`,height:`12`,x:`4`,y:`8`,rx:`2`,key:`enze0r`}],[`path`,{d:`M2 14h2`,key:`vft8re`}],[`path`,{d:`M20 14h2`,key:`4cs60a`}],[`path`,{d:`M15 13v2`,key:`1xurst`}],[`path`,{d:`M9 13v2`,key:`rq6x2g`}]]};xt.node;var St=x(xt),Ct={name:`heading`,size:24,node:[[`path`,{d:`M6 12h12`,key:`8npq4p`}],[`path`,{d:`M6 20V4`,key:`1w1bmo`}],[`path`,{d:`M18 20V4`,key:`o2hl4u`}]]};Ct.node;var wt=x(Ct),Tt={name:`italic`,size:24,node:[[`line`,{x1:`19`,x2:`10`,y1:`4`,y2:`4`,key:`15jd3p`}],[`line`,{x1:`14`,x2:`5`,y1:`20`,y2:`20`,key:`bu0au3`}],[`line`,{x1:`15`,x2:`9`,y1:`4`,y2:`20`,key:`uljnxc`}]]};Tt.node;var Et=x(Tt),Dt={name:`link`,size:24,node:[[`path`,{d:`M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71`,key:`1cjeqo`}],[`path`,{d:`M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71`,key:`19qd67`}]]};Dt.node;var Ot=x(Dt),kt={name:`list-ordered`,size:24,node:[[`path`,{d:`M11 5h10`,key:`1cz7ny`}],[`path`,{d:`M11 12h10`,key:`1438ji`}],[`path`,{d:`M11 19h10`,key:`11t30w`}],[`path`,{d:`M4 4h1v5`,key:`10yrso`}],[`path`,{d:`M4 9h2`,key:`r1h2o0`}],[`path`,{d:`M6.5 20H3.4c0-1 2.6-1.925 2.6-3.5a1.5 1.5 0 0 0-2.6-1.02`,key:`xtkcd5`}]]};kt.node;var At=x(kt),jt={name:`list`,size:24,node:[[`path`,{d:`M3 5h.01`,key:`18ugdj`}],[`path`,{d:`M3 12h.01`,key:`nlz23k`}],[`path`,{d:`M3 19h.01`,key:`noohij`}],[`path`,{d:`M8 5h13`,key:`1pao27`}],[`path`,{d:`M8 12h13`,key:`1za7za`}],[`path`,{d:`M8 19h13`,key:`m83p4d`}]]};jt.node;var Mt=x(jt),Nt={name:`minimize-2`,size:24,node:[[`path`,{d:`m14 10 7-7`,key:`oa77jy`}],[`path`,{d:`M20 10h-6V4`,key:`mjg0md`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M4 14h6v6`,key:`rmj7iw`}]]};Nt.node;var Pt=x(Nt),Ft={name:`paperclip`,size:24,node:[[`path`,{d:`m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551`,key:`1miecu`}]]};Ft.node;var It=x(Ft),Lt={name:`square-code`,size:24,node:[[`path`,{d:`m10 9-3 3 3 3`,key:`1oro0q`}],[`path`,{d:`m14 15 3-3-3-3`,key:`bz13h7`}],[`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`,key:`h1oib`}]],aliases:[`code-square`]};Lt.node;var Rt=x(Lt),Q=e(o(),1),$=g(),zt=(0,Q.lazy)(()=>je(()=>import(`./visual-editor-B6HiiLMg.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]))),Bt={heading:wt,bold:bt,italic:Et,link:Ot,bullets:Mt,numbers:At,tasks:ct,code:Rt};function Vt(e,t){let n=/(?:^|[\s([{])@([^\s@[\]()]{0,40})$/.exec(e.slice(0,t));return n?.[1]===void 0?null:{from:t-n[1].length-1,query:n[1]}}var Ht=(e,t)=>e.filter(e=>`${e.name} ${e.email}`.toLowerCase().includes(t.toLowerCase())).slice(0,8),Ut=e=>({key:e.userId,content:(0,$.jsx)(ue,{name:e.name,email:e.email,image:e.image})}),Wt=e=>u(e.name,e.userId);function Gt(e){let[t,n]=(0,Q.useState)(``),r=e.includes(t)?t:e[0];return{active:r,setHighlight:n,handleKey:(t,i,a)=>{if(!r||t.isComposing)return!1;let o={ArrowDown:1,ArrowUp:-1}[t.key];if(!o&&![`Enter`,`Tab`,`Escape`].includes(t.key))return!1;t.preventDefault();let s=e.indexOf(r);return o?n(e[(s+o+e.length)%e.length]??``):t.key===`Escape`?a():i(r),!0}}}function Kt({id:e,label:t,open:n,anchor:r,options:i,active:a,onHighlight:o,onChoose:s,onDismiss:c}){return(0,$.jsx)(A,{open:n,onOpenChange:e=>{e||c()},children:(0,$.jsx)(P,{anchor:r,align:`start`,initialFocus:!1,finalFocus:!1,className:`w-[min(20rem,calc(100vw-2rem))] p-1`,children:(0,$.jsx)(`div`,{role:`listbox`,id:e,"aria-label":t,children:i.map(t=>(0,$.jsx)(`div`,{role:`option`,id:`${e}-${t.key}`,"aria-selected":t.key===a,"data-selected":t.key===a||void 0,className:O,onMouseDown:e=>e.preventDefault(),onPointerMove:()=>o(t.key),onClick:()=>s(t.key),children:t.content},t.key))})})})}function qt(e,t,n){let[r,i]=(0,Q.useState)(0),a=(0,Q.useRef)(null),o=async e=>{if(t&&e.length){i(t=>t+e.length);for(let r of e)try{n(U(await t(r)))}catch(e){Ee(e)}finally{i(e=>e-1)}}},s=(0,$.jsx)(`input`,{ref:a,type:`file`,multiple:!0,hidden:!0,"aria-label":h(`detail.markdown.insertFileInto`,{label:e}),onChange:e=>{let t=[...e.target.files??[]];e.target.value=``,o(t)}});return{uploading:r>0,send:o,pick:()=>a.current?.click(),input:s}}function Jt({label:e,flush:t,onApply:n,pressed:r,upload:i,children:a}){return(0,$.jsxs)(we,{align:`block-start`,role:`toolbar`,"aria-label":h(`detail.markdown.formatting`,{label:e}),className:H(`gap-0.5 overflow-x-auto border-b py-1 pl-1 text-foreground [scrollbar-width:none] max-md:gap-0 max-md:px-0`,t&&`px-0`),onKeyDown:e=>{let t=[...e.currentTarget.querySelectorAll(`button`)],n=t.findIndex(e=>e===document.activeElement),r={ArrowRight:1,ArrowLeft:-1}[e.key],i=e.key===`Home`?t[0]:e.key===`End`?t.at(-1):r&&t.at((n+r)%t.length);i&&(e.preventDefault(),i.focus())},children:[k.map((e,t)=>{let i=_e[e],a=Bt[e];return(0,$.jsx)(T,{label:i.label,...`shortcut`in i?{shortcut:i.shortcut}:{},...r?{"aria-pressed":r(e)}:{},size:`icon-sm`,tabIndex:t===0?0:-1,className:`text-muted-foreground hover:text-foreground aria-pressed:bg-muted aria-pressed:text-foreground`,onClick:()=>n(e),children:(0,$.jsx)(a,{})},e)}),i&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(T,{label:i.uploading?h(`detail.resource.uploading`):h(`detail.markdown.insertFile`),size:`icon-sm`,tabIndex:-1,disabled:i.uploading,className:`text-muted-foreground hover:text-foreground`,onClick:i.pick,children:i.uploading?(0,$.jsx)(le,{}):(0,$.jsx)(It,{})}),i.input]}),a]})}function Yt(e){return e?.files.length?[...e.files]:[]}function Xt({label:e,value:t,onChange:n,placeholder:r,rows:i=5,variant:a=`compact`,maxLength:o=1e5,required:s=!1,footer:c,mentions:l,onUpload:u}){let d=(0,Q.useId)(),f=(0,Q.useRef)(null),[p,m]=$e(_t.editor),[g,ee]=(0,Q.useState)(!1),[_,y]=(0,Q.useState)(!1),b=g?`preview`:p===`visual`&&!_?`visual`:`write`,te=J({...C.query(`list_members`,{projectId:l??``}),enabled:!!l}),[x,S]=(0,Q.useState)(0),[ne,w]=(0,Q.useState)(null),T=l?Vt(t,x):null,E=Ht(te.data??[],T?.query??``),D=Gt(E.map(e=>e.userId)),O=!!T&&T.from!==ne&&E.length>0,k=`${d}-mentions`,A=e=>{let t=f.current;t&&(t.focus(),t.setSelectionRange(e.from,e.to),document.execCommand(`insertText`,!1,e.text)||(t.setRangeText(e.text),n(t.value)),t.setSelectionRange(e.start,e.end),S(e.end))},M=e=>{let t=f.current;t&&A(v(t.value,t.selectionStart,t.selectionEnd,e))},N=e=>{let t=E.find(t=>t.userId===e);if(!T||!t)return;let n=`${Wt(t)} `,r=T.from+n.length;A({from:T.from,to:x,text:n,start:r,end:r})},P=qt(e,u,e=>{let t=f.current;if(!t)return;let n=t.selectionEnd+e.length;A({from:t.selectionStart,to:t.selectionEnd,text:e,start:n,end:n})}),F=(e,t)=>{let n=u?Yt(t):[];n.length&&(e.preventDefault(),P.send(n))},re=(0,Q.useCallback)(()=>y(!0),[]),I=a===`document`?`rounded-none border-0 bg-transparent dark:bg-transparent has-[[data-slot=input-group-control]:focus-visible]:ring-0`:void 0,ie=c&&(0,$.jsx)(we,{align:`block-end`,className:`justify-end border-t py-2`,children:c});return(0,$.jsx)(xe,{className:H(`mb-6 [&_[data-slot=tabs-list]]:shrink-0 [&_[data-slot=tabs-trigger]]:text-xs`,a===`compact`&&`[&_textarea]:field-sizing-fixed [&_textarea]:max-h-[28rem] [&_.ProseMirror]:max-h-[28rem] [&_.ProseMirror]:overflow-y-auto`,a===`document`&&`border-t pt-5 has-[[data-slot=input-group-control]:focus]:border-t-primary has-[[data-slot=input-group-control]:focus]:[&_[data-slot=field-label]]:text-primary`),"data-variant":a,"aria-label":h(`detail.markdown.editor`,{label:e}),children:(0,$.jsxs)(lt,{value:b,onValueChange:e=>{ee(e===`preview`),(e===`write`||e===`visual`)&&(m(e),y(!1))},children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,$.jsx)(K,{htmlFor:d,children:e}),(0,$.jsxs)(it,{"aria-label":h(`detail.markdown.editor`,{label:e}),variant:`line`,children:[(0,$.jsx)(tt,{value:`write`,children:h(`detail.markdown.write`)}),(0,$.jsx)(tt,{value:`visual`,children:h(`detail.markdown.visual`)}),(0,$.jsx)(tt,{value:`preview`,children:h(`detail.markdown.preview`)})]})]}),(0,$.jsxs)(at,{value:`write`,children:[_&&p===`visual`&&(0,$.jsx)(`p`,{role:`status`,className:`mb-2 text-xs text-muted-foreground`,children:h(`detail.markdown.unsupported`)}),(0,$.jsxs)(pe,{className:I,children:[(0,$.jsx)(Jt,{label:e,flush:a===`document`,onApply:M,...u?{upload:P}:{}}),(0,$.jsx)(ye,{ref:f,id:d,className:a===`document`?`field-sizing-content max-h-none resize-y px-1 py-3 text-base md:text-base leading-7 caret-primary`:void 0,style:a===`document`?{minHeight:`${i}lh`}:void 0,value:t,onChange:e=>{S(e.target.selectionStart),n(e.target.value)},onSelect:e=>S(e.currentTarget.selectionStart),onPaste:e=>F(e,e.clipboardData),onDragOver:e=>{u&&e.dataTransfer.types.includes(`Files`)&&e.preventDefault()},onDrop:e=>F(e,e.dataTransfer),...l&&{"aria-autocomplete":`list`,"aria-controls":O?k:void 0,"aria-activedescendant":O&&D.active?`${k}-${D.active}`:void 0},onKeyDown:e=>{if(O&&D.handleKey(e.nativeEvent,N,()=>w(T.from))){e.stopPropagation();return}let t=j(e);!t||t===`link`&&e.currentTarget.selectionStart===e.currentTarget.selectionEnd||(e.preventDefault(),e.stopPropagation(),M(t))},placeholder:r,rows:i,maxLength:o,required:s}),l&&(0,$.jsx)(Kt,{id:k,label:h(`detail.markdown.mention`),open:O,anchor:f,options:E.map(Ut),active:D.active,onHighlight:D.setHighlight,onChoose:N,onDismiss:()=>{T&&w(T.from)}}),ie]})]}),(0,$.jsx)(at,{value:`visual`,children:(0,$.jsx)(Q.Suspense,{fallback:(0,$.jsx)(oe,{}),children:(0,$.jsx)(zt,{id:d,label:e,value:t,onChange:n,placeholder:r??``,rows:i,maxLength:o,flush:a===`document`,groupClassName:I,footer:ie,...l?{members:te.data??[]}:{},...u?{onUpload:u}:{},onUnsupported:re})})}),(0,$.jsxs)(at,{value:`preview`,children:[(0,$.jsx)(`div`,{className:H(`min-h-28 rounded-lg border bg-muted/20 p-4`,a===`document`&&`rounded-none border-0 bg-transparent px-1 py-3 text-base leading-7`),children:t?(0,$.jsx)(ce,{children:t}):(0,$.jsx)(`p`,{className:`m-0 text-sm text-muted-foreground`,children:h(`detail.markdown.nothingToPreview`)})}),c&&(0,$.jsx)(`div`,{className:`mt-2 flex justify-end`,children:c})]})]})})}function Zt({projectId:e,label:t,value:n,onChange:r,exclude:i=[],allowClear:a=!0,variant:o=`field`,placeholder:s=h(`ticket.picker.placeholder`)}){let c=(0,Q.useId)(),[l,u]=(0,Q.useState)(!1),[f,p]=(0,Q.useState)(``),m=J({...C.query(`list_tickets`,{projectId:e,q:f,archived:`include`,limit:30}),enabled:l}),g=J({...C.query(`get_ticket`,{projectId:e,ticketId:n??``}),enabled:!!n&&d().safeParse(n).success}),_=m.data?.items.filter(e=>!i.includes(e.id))??[],v=g.data?.ticket??m.data?.items.find(e=>e.id===n),b=(0,$.jsxs)(A,{open:l,onOpenChange:e=>{u(e),e&&p(``)},children:[(0,$.jsxs)(ne,{id:c,render:(0,$.jsx)(z,{variant:o===`pill`?`ghost`:`outline`,size:o===`pill`?`sm`:`default`,role:`combobox`,"aria-label":t,className:o===`pill`?`h-7 max-w-64 min-w-0 border border-transparent px-2 font-normal hover:border-border`:`h-auto min-h-8 w-full justify-between whitespace-normal text-left font-normal`}),children:[o===`pill`&&(0,$.jsx)(We,{className:`size-3.5 shrink-0 text-muted-foreground`,"aria-hidden":`true`}),(0,$.jsx)(`span`,{className:o===`pill`?`min-w-0 truncate`:`min-w-0 break-words`,children:v?o===`pill`?v.key:`${v.key} · ${v.title}`:n?h(`ticket.picker.loading`):s}),o!==`pill`&&(0,$.jsx)(Ve,{className:`ml-2 size-3.5 shrink-0 text-muted-foreground`})]}),(0,$.jsx)(P,{align:`start`,className:`w-[min(420px,var(--available-width))] p-0`,children:(0,$.jsxs)(De,{shouldFilter:!1,children:[(0,$.jsx)(M,{"aria-label":h(`ticket.picker.searchLabel`,{label:t}),placeholder:h(`ticket.picker.searchPlaceholder`),value:f,onValueChange:p}),(0,$.jsxs)(ee,{children:[a&&(0,$.jsx)(y,{children:(0,$.jsxs)(ve,{value:`none`,onSelect:()=>{r(null),u(!1)},children:[h(`ticket.picker.noParent`),!n&&(0,$.jsx)(S,{className:`ml-auto`})]})}),m.isPending?(0,$.jsx)(`div`,{role:`status`,className:`px-4 py-6 text-sm text-muted-foreground`,children:h(`ticket.picker.searching`)}):_.length?(0,$.jsx)(y,{children:_.map(e=>(0,$.jsxs)(ve,{value:e.id,className:`items-start py-2`,onSelect:()=>{r(e.id),u(!1)},children:[(0,$.jsxs)(`span`,{className:`min-w-0`,children:[(0,$.jsx)(`span`,{className:`mb-1 block font-mono text-[11px] text-muted-foreground`,children:e.key}),(0,$.jsx)(`span`,{dir:`auto`,className:`block break-words whitespace-normal`,children:e.title})]}),n===e.id&&(0,$.jsx)(S,{className:`ml-auto shrink-0`})]},e.id))}):(0,$.jsx)(`div`,{role:`status`,className:`px-4 py-6 text-center text-sm text-muted-foreground`,children:h(`ticket.picker.empty`)}),(0,$.jsx)(D,{error:m.error})]})]})})]});return o===`pill`?(0,$.jsxs)($.Fragment,{children:[b,(0,$.jsx)(D,{error:g.error})]}):(0,$.jsxs)(xe,{className:fe,children:[(0,$.jsx)(K,{htmlFor:c,children:t}),b,(0,$.jsx)(D,{error:g.error})]})}var Qt=Ce(`flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-lg [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1`,{variants:{orientation:{horizontal:`*:data-slot:rounded-r-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-r-lg! [&>[data-slot]~[data-slot]]:rounded-l-none [&>[data-slot]~[data-slot]]:border-l-0`,vertical:`flex-col *:data-slot:rounded-b-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-lg! [&>[data-slot]~[data-slot]]:rounded-t-none [&>[data-slot]~[data-slot]]:border-t-0`}},defaultVariants:{orientation:`horizontal`}});function $t({className:e,orientation:t,...n}){return(0,$.jsx)(`div`,{role:`group`,"data-slot":`button-group`,"data-orientation":t,className:H(Qt({orientation:t}),e),...n})}function en({icon:e,href:t,label:n,download:r=!1,compact:i=!1,badges:a,details:o,meta:s,metaId:c,actions:l}){return(0,$.jsxs)(Be,{role:`listitem`,size:i?`xs`:`default`,className:H(`rounded-none border-x-0 border-t-0 border-b-border px-0 animate-in fade-in-0 duration-200 last:border-b-0`,!i&&`items-start py-4`),children:[(0,$.jsx)(Le,{variant:i?`default`:`icon`,children:e}),(0,$.jsxs)(Re,{className:H(`min-w-0`,i?`gap-0`:`gap-1.5`),children:[(0,$.jsxs)(ze,{className:H(`line-clamp-none max-w-full wrap-anywhere`,i&&`text-xs font-normal`),children:[(0,$.jsxs)(`a`,{href:t,"aria-describedby":c,...r?{download:!0,className:`hover:text-primary`}:{target:`_blank`,rel:`noreferrer`,className:`inline-flex items-center gap-1 text-primary hover:underline`},children:[n,!r&&(0,$.jsx)(ut,{className:`size-3 shrink-0`,"aria-hidden":`true`})]}),a]}),o,s&&(0,$.jsx)(Fe,{id:c,className:H(`m-0`,i?`text-[11px]`:`text-xs`),children:s})]}),l&&(0,$.jsx)(Ie,{children:l})]})}function tn(e){if(e.size>1e7)throw Error(h(`detail.attachment.tooLarge`))}var nn=async e=>({name:e.name,contentType:e.type||`application/octet-stream`,data:await te(e)});function rn(e,t){let n=R(`upload_attachment`),r=R(`stage_upload`);return async i=>{tn(i);let a=await nn(i),o=`ticketId`in t?await n.mutateAsync({projectId:e,ticketId:t.ticketId,...a}):await r.mutateAsync({projectId:e,...a});return`onStaged`in t&&t.onStaged(o.id),{url:m(e,o.id),name:o.name,contentType:o.contentType}}}function an({ticket:e}){let t=J(C.query(`list_attachments`,{projectId:e.projectId,ticketId:e.id})),n=R(`upload_attachment`),r=R(`delete_attachment`),i=B(e.projectId),a=(0,Q.useRef)(null),[o,s]=(0,Q.useState)(),[c,l]=(0,Q.useState)(!1),[u,d]=(0,Q.useState)(!1);async function f(t){if(t.length){s(void 0),d(!0);try{t.forEach(tn);for(let r of t)await n.mutateAsync({projectId:e.projectId,ticketId:e.id,...await nn(r)});N.success(h(`detail.attachment.attached`,{count:t.length}))}catch(e){s(e)}finally{d(!1)}}}return(0,$.jsxs)(`section`,{onDragOver:e=>{i.canWrite&&(e.preventDefault(),l(!0))},onDragLeave:()=>l(!1),onDrop:e=>{e.preventDefault(),l(!1),i.canWrite&&f(Array.from(e.dataTransfer.files))},className:H(`rounded-lg transition-colors`,c&&`bg-primary/5 ring-2 ring-primary/40 ring-offset-4 ring-offset-background`),children:[(0,$.jsx)(V,{compact:!0,title:h(`detail.attachment.heading`),action:i.canWrite&&(0,$.jsx)(T,{label:h(u?`detail.resource.uploading`:`detail.attachment.attach`),size:`icon-sm`,disabled:u,onClick:()=>a.current?.click(),children:u?(0,$.jsx)(le,{}):(0,$.jsx)(qe,{})})}),!t.isPending&&!t.data?.length&&(0,$.jsx)(`p`,{className:`mb-0 text-xs text-muted-foreground`,children:i.canWrite?h(`detail.attachment.emptyWritable`):h(`detail.attachment.empty`)}),(0,$.jsx)(Me,{className:`gap-0`,children:t.data?.map(t=>(0,$.jsx)(en,{compact:!0,download:!0,icon:(0,$.jsx)(dt,{className:`size-4 text-muted-foreground`}),href:m(e.projectId,t.id),label:t.name,meta:W(t.size),metaId:`attachment-size-${t.id}`,actions:i.canWrite&&(0,$.jsx)(ae,{label:h(`detail.attachment.remove`),icon:(0,$.jsx)(He,{}),description:h(`detail.resource.removeConfirm`,{name:t.name}),onConfirm:()=>r.mutateAsync({projectId:e.projectId,attachmentId:t.id})})},t.id))}),(0,$.jsx)(he,{ref:a,type:`file`,multiple:!0,className:`hidden`,"aria-label":h(`detail.attachment.fileInput`),disabled:u,onChange:e=>{let t=Array.from(e.currentTarget.files??[]);e.currentTarget.value=``,f(t)}}),(0,$.jsx)(D,{error:o??t.error??r.error})]})}var on={passed:ke,failed:w,pending:b,reported:I};function sn({ticket:e}){let t=B(e.projectId),r=J(C.query(`list_evidence`,{projectId:e.projectId,ticketId:e.id})),a=R(`add_evidence`),[o,c]=(0,Q.useState)(!1),[l,u]=(0,Q.useState)();return(0,$.jsxs)(`section`,{children:[(0,$.jsx)(V,{title:h(`detail.section.evidence`),description:h(`detail.evidence.description`),action:t.canWrite&&(0,$.jsx)(T,{label:h(`detail.evidence.add`),onClick:()=>{a.reset(),u(void 0),c(!0)},children:(0,$.jsx)(Pe,{})})}),!r.isPending&&!r.data?.length&&(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:h(`detail.evidence.empty`)}),(0,$.jsx)(Me,{className:`gap-0`,children:r.data?.map(t=>{let r=on[t.outcome]??I;return(0,$.jsx)(en,{icon:(0,$.jsx)(r,{className:H(t.outcome===`passed`&&`text-[var(--success)]`,t.outcome===`failed`&&`text-destructive`)}),href:t.url,label:t.title,badges:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Y,{variant:`outline`,className:`ml-2`,children:n[t.kind]}),(0,$.jsx)(Y,{variant:`outline`,className:H(`ml-1`,t.outcome===`passed`&&`text-[var(--success)]`,t.outcome===`failed`&&`text-destructive`),"data-outcome":t.outcome,children:i[t.outcome]})]}),details:(0,$.jsxs)($.Fragment,{children:[t.commit&&(0,$.jsx)(`code`,{className:`w-fit rounded bg-muted px-1.5 py-0.5 font-mono text-[11px] break-all`,children:t.commit}),t.note&&(0,$.jsx)(ce,{children:t.note})]}),meta:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Ae,{projectId:e.projectId,actorId:t.actorId}),` ·`,` `,(0,$.jsx)(G,{value:t.createdAt})]})},t.id)})}),(0,$.jsx)(re,{title:h(`detail.evidence.add`),open:o,onOpenChange:c,busy:a.isPending,children:(0,$.jsxs)(`form`,{onSubmit:t=>{t.preventDefault();let n=new FormData(t.currentTarget);a.mutateAsync({projectId:e.projectId,ticketId:e.id,kind:s.shape.kind.parse(n.get(`kind`)),title:X(n,`title`),url:X(n,`url`),commit:X(n,`commit`)||null,outcome:s.shape.outcome.parse(n.get(`outcome`)),note:X(n,`note`)}).then(()=>{c(!1),N.success(h(`detail.evidence.added`))}).catch(u)},children:[(0,$.jsx)(L,{label:h(`detail.field.title`),name:`title`,required:!0,maxLength:200}),(0,$.jsx)(L,{label:h(`detail.field.url`),name:`url`,type:`url`,required:!0}),(0,$.jsxs)(`div`,{className:`grid grid-cols-1 gap-x-5 sm:grid-cols-2`,children:[(0,$.jsx)(de,{label:h(`detail.evidence.kindLabel`),name:`kind`,children:s.shape.kind.options.map(e=>(0,$.jsx)(F,{value:e,children:n[e]},e))}),(0,$.jsx)(de,{label:h(`detail.evidence.outcomeLabel`),name:`outcome`,children:s.shape.outcome.unwrap().options.map(e=>(0,$.jsx)(F,{value:e,children:i[e]},e))})]}),(0,$.jsx)(L,{label:h(`detail.evidence.commit`),name:`commit`,pattern:`[a-fA-F0-9]{40,64}`}),(0,$.jsx)(Se,{label:h(`detail.evidence.note`),name:`note`,maxLength:2e4}),(0,$.jsx)(q,{error:l??a.error,pending:a.isPending,submitLabel:h(`detail.evidence.add`),onCancel:()=>c(!1)})]})}),(0,$.jsx)(D,{error:r.error})]})}var cn=[`open`,`closed`,`merged`,`draft`,`active`,`deleted`];function ln({remoteKind:e,remoteState:t,provider:n}){if(!t)return h(`detail.link.stateUnknown`);let r=cn.find(e=>e===t),i=r?h(`detail.link.remoteState.${r}`):t.charAt(0).toUpperCase()+t.slice(1);return e?h(`detail.link.remote`,{kind:f(e,n),state:i}):i}function un({ticket:e}){let t=B(e.projectId),n=J(C.query(`list_resources`,{projectId:e.projectId,ticketId:e.id})),r=R(`add_resource`),i=R(`update_resource`),o=R(`delete_resource`),[s,c]=(0,Q.useState)(),[l,u]=(0,Q.useState)(!1),[d,f]=(0,Q.useState)(),p=r.isPending||i.isPending,m=e=>{f(void 0),c(e),u(!0)};return(0,$.jsxs)(`section`,{"aria-label":h(`detail.link.heading`),children:[(0,$.jsx)(V,{compact:!0,title:h(`detail.link.heading`),action:t.canWrite&&(0,$.jsx)(T,{label:h(`detail.link.add`),size:`icon-sm`,onClick:()=>m(),children:(0,$.jsx)(Pe,{})})}),!n.isPending&&!n.data?.length&&(0,$.jsx)(`p`,{className:`mb-0 text-xs text-muted-foreground`,children:h(`detail.link.empty`)}),(0,$.jsx)(Me,{className:`gap-0`,children:n.data?.map(n=>(0,$.jsx)(en,{compact:!0,icon:(0,$.jsx)(ht,{className:`size-4 text-muted-foreground`}),href:n.url,label:n.title||n.url,meta:n.provider?(0,$.jsxs)(`span`,{className:`inline-flex flex-wrap gap-1`,children:[(0,$.jsx)(Y,{variant:`outline`,children:n.provider}),(0,$.jsx)(Y,{variant:`outline`,className:n.remoteState?void 0:`text-muted-foreground`,children:ln(n)})]}):n.title&&a(n.url),actions:t.canWrite&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(T,{size:`icon-sm`,label:h(`detail.link.edit`),onClick:()=>m(n),children:(0,$.jsx)(Ue,{})}),(0,$.jsx)(ae,{label:h(`detail.link.remove`),icon:(0,$.jsx)(He,{}),description:h(`detail.resource.removeConfirm`,{name:n.title||n.url}),onConfirm:()=>o.mutateAsync({projectId:e.projectId,resourceId:n.id,expectedVersion:n.version})})]})},n.id))}),(0,$.jsx)(re,{title:h(s?`detail.link.edit`:`detail.link.add`),open:l,onOpenChange:u,busy:p,children:(0,$.jsxs)(`form`,{onSubmit:t=>{t.preventDefault();let n=new FormData(t.currentTarget),a={url:X(n,`url`),title:X(n,`title`)};f(void 0),(s?i.mutateAsync({projectId:e.projectId,resourceId:s.id,expectedVersion:s.version,...a}):r.mutateAsync({projectId:e.projectId,ticketId:e.id,...a})).then(()=>u(!1)).catch(f)},children:[(0,$.jsx)(L,{label:h(`detail.field.url`),name:`url`,type:`url`,required:!0,autoFocus:!0,defaultValue:s?.url}),(0,$.jsx)(L,{label:h(`detail.field.title`),name:`title`,maxLength:200,defaultValue:s?.title}),(0,$.jsx)(q,{error:d,pending:p,submitLabel:h(s?`detail.link.save`:`detail.link.add`),onCancel:()=>u(!1)})]})}),(0,$.jsx)(D,{error:n.error})]})}function dn({ticket:e}){let[t,n]=(0,Q.useState)(0),i=J(C.query(`list_activity`,{projectId:e.projectId,ticketId:e.id,offset:t}));return(0,$.jsxs)(`section`,{children:[(0,$.jsx)(`h2`,{children:h(`detail.section.activity`)}),(0,$.jsx)(D,{error:i.error}),(0,$.jsx)(`ol`,{className:`m-0 list-none p-0`,children:i.data?.items.map(t=>(0,$.jsxs)(`li`,{className:`relative flex flex-col gap-0.5 border-l py-2.5 pl-5 text-xs before:absolute before:top-4 before:-left-[3px] before:size-[5px] before:rounded-full before:bg-muted-foreground/50`,children:[(0,$.jsx)(`span`,{children:r(t)}),(0,$.jsxs)(`span`,{className:`text-muted-foreground`,children:[(0,$.jsx)(Ae,{projectId:e.projectId,actorId:t.actorId}),` ·`,` `,(0,$.jsx)(G,{value:t.createdAt})]})]},t.id))}),((i.data?.total??0)>50||t>0)&&(0,$.jsxs)($t,{className:`mt-5 justify-end`,children:[(0,$.jsx)(z,{size:`sm`,disabled:!t,onClick:()=>n(Math.max(0,t-50)),children:h(`detail.activity.previous`)}),(0,$.jsx)(z,{size:`sm`,disabled:t+50>=(i.data?.total??0),onClick:()=>n(t+50),children:h(`detail.activity.next`)})]})]})}var fn=`h-7 max-w-64 min-w-0 border border-transparent px-2 font-normal hover:border-border aria-pressed:border-border aria-pressed:bg-muted`;function pn({projectId:e,ticket:n,initial:r,onSaved:i}){let a=Te(),o=`kanvil:${E().id}:draft:${e}:${n?.id??`new:${r?.parentId??``}`}`,[s,u]=(0,Q.useState)(()=>{let e=Qe(n);return r?{...e,fields:{...e.fields,...r}}:e}),[d,f]=(0,Q.useState)(()=>{try{let e=Xe.safeParse(JSON.parse(localStorage.getItem(o)??`null`));if(e.success)return e.data}catch{}return s}),m=(0,Q.useRef)(d);function g(e){m.current=e,f(e)}let ee=`kanvil:composer-expanded`,[v,y]=(0,Q.useState)(()=>{try{return localStorage.getItem(ee)===`1`}catch{return!1}});function b(){y(e=>{try{localStorage.setItem(ee,e?`0`:`1`)}catch{}return!e})}let[te,x]=(0,Q.useState)(()=>!!d.fields.acceptanceCriteria),[S,w]=(0,Q.useState)(),[T,O]=(0,Q.useState)(),[k,j]=(0,Q.useState)(!1),[M,F]=(0,Q.useState)(!1),[re,I]=(0,Q.useState)(),ae=R(`create_ticket`),oe=R(`update_ticket`),ce=R(`discard_upload`),ue=Oe(),de=(0,Q.useRef)(null),fe=(0,Q.useRef)(!1),B=(0,Q.useRef)(0),[pe,he]=(0,Q.useState)(!1);function V(e){g(e),I(void 0);try{localStorage.setItem(o,JSON.stringify(e)),O(void 0),j(!0)}catch{O(Error(h(`detail.editor.storageUnavailable`))),j(!1)}}function _e(){try{localStorage.removeItem(o)}catch{}ve(m.current.uploads),g(s),j(!1)}function ve(e){for(let t of e)ce.mutateAsync({projectId:K,uploadId:t}).catch(()=>{})}let U=e=>V({...m.current,fields:{...m.current.fields,...e}}),W=(e,t)=>U({[e]:t}),ye=(e,t)=>W(`customFields`,{...m.current.fields.customFields,[e]:t});async function xe(t){let n=++B.current;V({...m.current,projectId:t===e?void 0:t,fields:{...m.current.fields,parentId:null,stateId:null,customFields:{}}}),he(!0);let r=[];try{r=await ue.ensureQueryData(C.query(`list_members`,{projectId:t}))}finally{if(n===B.current){let e=m.current,{assigneeId:t}=e.fields;t&&!r.some(e=>e.userId===t)&&V({...e,fields:{...e.fields,assigneeId:null}}),he(!1)}}}let G=d.fields,K=d.projectId??e,Ce=!!n&&d.version!==n.version,we=JSON.stringify(d.fields)!==JSON.stringify(s.fields)||d.projectId!==s.projectId,q=ae.isPending||oe.isPending,J=q||Ce||pe,Y=G.automationReady||G.scopes.length>0||!!G.holdReason,De=rn(K,n?{ticketId:n.id}:{onStaged:e=>V({...m.current,uploads:[...m.current.uploads,e]})});async function ke(t){if(t.preventDefault(),J||fe.current)return;let r=st(G),s=d.uploads.filter(e=>G.description.includes(e)||G.acceptanceCriteria.includes(e));fe.current=!0,a?.(!0);try{let t=n?await oe.mutateAsync({projectId:e,ticketId:n.id,expectedVersion:d.version??n.version,changes:r}):await ae.mutateAsync({projectId:K,...r,uploads:s}).catch(e=>{throw Ae(e),e});n||ve(d.uploads.filter(e=>!s.includes(e)));try{localStorage.removeItem(o)}catch{}if(n||!M)return N.success(h(n?`detail.editor.saved`:`detail.editor.created`,{key:t.key})),i(t);let a=m.current.fields,c=e=>a[e]===G[e]?``:a[e],l={...m.current,uploads:m.current.uploads.filter(e=>!d.uploads.includes(e)),fields:{...a,title:c(`title`),description:c(`description`),acceptanceCriteria:c(`acceptanceCriteria`)}};u({...l,fields:{...l.fields,title:``,description:``,acceptanceCriteria:``}}),l.fields.title||l.fields.description||l.fields.acceptanceCriteria?V(l):(g(l),j(!1)),x(!!l.fields.acceptanceCriteria),I(t.key),de.current?.focus()}finally{fe.current=!1,a?.(!1)}}function Ae(e){let n=e instanceof l&&t({uploads:c(p())}).safeParse(e.details).data?.uploads;n&&V({...m.current,uploads:m.current.uploads.filter(e=>!n.includes(e))})}let je=q||d.uploads.length>0,Me=(0,$.jsxs)(`div`,{className:`-mt-3 flex flex-wrap items-center gap-1`,"aria-label":h(`detail.editor.properties`),children:[!n&&(0,$.jsx)(et,{value:K,disabled:je,onChange:e=>void xe(e).catch(Ee)}),(0,$.jsx)(Z,{property:`status`,projectId:K,value:gt(G),onChange:e=>U(pt(e))}),(0,$.jsx)(Z,{property:`priority`,projectId:K,value:G.priority,onChange:e=>W(`priority`,e)}),(0,$.jsx)(Z,{property:`assignee`,projectId:K,value:G.assigneeId,onChange:e=>W(`assigneeId`,e)}),(0,$.jsx)(Z,{property:`kind`,projectId:K,value:G.kind,onChange:e=>W(`kind`,e)}),(0,$.jsx)(Z,{property:`difficulty`,projectId:K,value:G.difficulty,onChange:e=>W(`difficulty`,e)}),(0,$.jsx)(Ye,{value:G.labels,onChange:e=>W(`labels`,e)}),(0,$.jsx)(ot,{variant:`pill`,value:G,onChange:U}),(0,$.jsx)(ft,{variant:`pill`,projectId:K,values:G.customFields,isNew:!n,onChange:ye}),(0,$.jsx)(Zt,{variant:`pill`,label:h(`detail.field.parentTicket`),placeholder:h(`detail.field.parent`),projectId:K,value:G.parentId,onChange:e=>W(`parentId`,e),exclude:n?[n.id]:[]}),(0,$.jsxs)(rt,{size:`sm`,className:H(fn,`gap-1.5`),pressed:G.automationReady,onPressedChange:e=>W(`automationReady`,e),"aria-label":h(`detail.editor.readyForAgents`),title:h(`detail.editor.readyForAgentsHelp`),children:[(0,$.jsx)(St,{className:`size-3.5 text-muted-foreground`,"aria-hidden":`true`}),G.automationReady?h(`detail.editor.readyForAgents`):h(`detail.editor.agents`)]}),(0,$.jsxs)(A,{children:[(0,$.jsx)(ne,{render:(0,$.jsx)(z,{variant:`ghost`,size:`icon-sm`,className:H(`size-7 border border-transparent hover:border-border`,Y&&`text-primary`),"aria-label":h(`detail.editor.moreProperties`)}),children:(0,$.jsx)(Ke,{className:`size-3.5`})}),(0,$.jsxs)(P,{align:`start`,className:`w-[min(24rem,calc(100vw-2rem))] p-4`,children:[(0,$.jsx)(Ze,{label:h(`detail.field.scopes`),kind:`scope`,value:G.scopes,onChange:e=>W(`scopes`,e)}),(0,$.jsx)(L,{label:h(`detail.field.holdReason`),value:G.holdReason??``,maxLength:2e3,placeholder:h(`detail.editor.holdPlaceholder`),onChange:e=>W(`holdReason`,e.target.value||null)}),(0,$.jsx)(`p`,{className:`mb-0 text-xs text-muted-foreground`,children:h(`detail.editor.claimsNote`)})]})]})]}),Pe=(0,$.jsxs)(`form`,{onSubmit:e=>{w(void 0),ke(e).catch(w)},onKeyDown:Je,className:`ticket-composer flex min-h-0 flex-1 flex-col`,"data-expanded":v,children:[(0,$.jsx)(z,{variant:`ghost`,size:`icon-sm`,className:`absolute top-2 right-11 hidden sm:inline-flex`,"aria-label":h(v?`detail.editor.restoreSize`:`detail.editor.expand`),"aria-pressed":v,disabled:q,onClick:b,children:v?(0,$.jsx)(Pt,{}):(0,$.jsx)(nt,{})}),(0,$.jsxs)(`div`,{className:H(`min-h-0 flex-1 overflow-y-auto overscroll-contain`,v&&`lg:grid lg:grid-cols-[minmax(0,1fr)_320px] lg:items-start`),children:[(0,$.jsxs)(`div`,{className:`mx-auto flex w-full max-w-4xl flex-col gap-4 px-5 py-5 sm:px-8`,children:[Ce&&(0,$.jsxs)(be,{className:`w-auto`,children:[(0,$.jsx)(mt,{}),(0,$.jsx)(me,{children:h(`detail.editor.staleTitle`)}),(0,$.jsxs)(ge,{children:[h(`detail.editor.staleDescription`,{version:d.version}),(0,$.jsx)(z,{size:`sm`,className:`mt-2`,onClick:()=>V(Qe(n)),children:h(`detail.editor.discardAndReload`)})]})]}),(0,$.jsx)(D,{error:S??ae.error??oe.error??T}),(0,$.jsx)(`div`,{className:`[&_[data-slot=field-label]]:sr-only`,children:(0,$.jsx)(Se,{label:h(`detail.field.title`),rows:1,value:G.title,onChange:e=>W(`title`,e.target.value),required:!0,maxLength:500,autoFocus:!0,ref:de,placeholder:h(`detail.editor.titlePlaceholder`),className:`field-sizing-content min-h-10 resize-none border-0 bg-transparent px-0 py-1 text-xl! font-semibold leading-snug shadow-none caret-primary focus-visible:ring-0 dark:bg-transparent`})}),!v&&Me,(0,$.jsx)(Xt,{label:h(`detail.field.description`),value:G.description,onChange:e=>W(`description`,e),rows:8,variant:`document`,placeholder:h(`detail.editor.descriptionPlaceholder`),onUpload:De}),te?(0,$.jsxs)(`div`,{className:`relative`,children:[(0,$.jsx)(Xt,{label:h(`detail.field.acceptanceCriteria`),value:G.acceptanceCriteria,onChange:e=>W(`acceptanceCriteria`,e),rows:4,variant:`document`,maxLength:5e4,placeholder:h(`detail.editor.criteriaPlaceholder`),onUpload:De}),!G.acceptanceCriteria&&(0,$.jsx)(z,{variant:`ghost`,size:`icon-xs`,className:`absolute top-5 right-24 text-muted-foreground`,"aria-label":h(`detail.editor.removeCriteria`),onClick:()=>x(!1),children:(0,$.jsx)(_,{})})]}):(0,$.jsxs)(z,{variant:`ghost`,size:`sm`,className:`w-fit text-muted-foreground`,onClick:()=>x(!0),children:[(0,$.jsx)(ct,{}),h(`detail.editor.addCriteria`)]})]}),v&&(0,$.jsxs)(`aside`,{className:`border-t bg-muted/20 p-5 lg:sticky lg:top-0 lg:min-h-full lg:border-t-0 lg:border-l`,"aria-label":h(`detail.editor.properties`),children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[!n&&(0,$.jsx)(et,{variant:`row`,value:K,disabled:je,onChange:e=>void xe(e).catch(Ee)}),(0,$.jsx)(Z,{variant:`row`,property:`status`,projectId:K,value:gt(G),onChange:e=>U(pt(e))}),(0,$.jsx)(Z,{variant:`row`,property:`priority`,projectId:K,value:G.priority,onChange:e=>W(`priority`,e)}),(0,$.jsx)(Z,{variant:`row`,property:`assignee`,projectId:K,value:G.assigneeId,onChange:e=>W(`assigneeId`,e)}),(0,$.jsx)(Z,{variant:`row`,property:`kind`,projectId:K,value:G.kind,onChange:e=>W(`kind`,e)}),(0,$.jsx)(Z,{variant:`row`,property:`difficulty`,projectId:K,value:G.difficulty,onChange:e=>W(`difficulty`,e)}),(0,$.jsx)(ot,{variant:`row`,value:G,onChange:U}),(0,$.jsx)(ft,{variant:`row`,projectId:K,values:G.customFields,isNew:!n,onChange:ye}),(0,$.jsxs)(`div`,{className:`grid grid-cols-[80px_minmax(0,1fr)] items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:h(`detail.editor.agents`)}),(0,$.jsxs)(rt,{size:`sm`,className:H(fn,`h-7 justify-start gap-1.5`),pressed:G.automationReady,onPressedChange:e=>W(`automationReady`,e),"aria-label":h(`detail.editor.readyForAgents`),children:[(0,$.jsx)(St,{className:`size-3.5 text-muted-foreground`,"aria-hidden":`true`}),G.automationReady?h(`detail.editor.readyForAgents`):h(`detail.editor.notReady`)]})]})]}),(0,$.jsxs)(`div`,{className:`mt-6 border-t pt-5`,children:[(0,$.jsx)(Ze,{label:h(`detail.field.labels`),value:G.labels,onChange:e=>W(`labels`,e)}),(0,$.jsx)(Zt,{label:h(`detail.field.parentTicket`),projectId:K,value:G.parentId,onChange:e=>W(`parentId`,e),exclude:n?[n.id]:[]}),(0,$.jsx)(Ze,{label:h(`detail.field.scopes`),kind:`scope`,value:G.scopes,onChange:e=>W(`scopes`,e)}),(0,$.jsx)(L,{label:h(`detail.field.holdReason`),value:G.holdReason??``,maxLength:2e3,placeholder:h(`detail.editor.holdPlaceholder`),onChange:e=>W(`holdReason`,e.target.value||null)})]})]})]}),(0,$.jsxs)(`footer`,{className:`z-10 flex shrink-0 flex-wrap items-center justify-between gap-3 border-t bg-muted/40 px-5 py-3`,children:[(0,$.jsxs)(`span`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,role:`status`,children:[re?h(`detail.editor.created`,{key:re}):k?h(`detail.editor.savedLocally`):T?h(`detail.editor.notSavedLocally`):``,we&&!Ce&&(0,$.jsxs)(z,{variant:`ghost`,size:`xs`,disabled:q,onClick:_e,children:[(0,$.jsx)(Ge,{}),h(`detail.editor.discardDraft`)]})]}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[!n&&(0,$.jsxs)(`label`,{className:`mr-2 flex items-center gap-2 text-xs text-muted-foreground`,children:[(0,$.jsx)(vt,{size:`sm`,checked:M,disabled:q,onCheckedChange:F}),h(`detail.editor.createMore`)]}),(0,$.jsx)(ie,{render:(0,$.jsx)(z,{disabled:q}),children:h(`common.action.cancel`)}),(0,$.jsxs)(z,{type:`submit`,variant:`default`,disabled:J,children:[q?(0,$.jsx)(le,{}):null,h(q?`common.state.saving`:n?`detail.editor.save`:`detail.editor.create`),!q&&(0,$.jsx)(se,{"aria-hidden":`true`,className:`ml-1 hidden border-transparent bg-primary-foreground/20 text-primary-foreground shadow-none sm:inline-flex`,children:`⌘↵`})]})]})]})]});return(0,$.jsx)(Ne,{projectId:K,children:Pe})}export{pn as TicketEditor,It as _,rn as a,Jt as c,Yt as d,Bt as f,Gt as g,qt as h,un as i,Xt as l,Ut as m,an as n,$t as o,Ht as p,sn as r,Zt as s,dn as t,Kt as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{A as t,B as n,Ct as r,Gt as i,Kt as a,L as o,Mn as s,O as c,Qt as l,R as u,St as d,Wt as f,Xt as p,_ as m,cn as h,et as g,g as _,h as ee,in as v,pn as y,r as b,v as x,x as te,z as S}from"./default-D5TdIZQS.js";import{A as C,Aa as w,B as T,E as ne,F as re,Ga as E,Hi as ie,I as D,J as ae,Ji as oe,K as O,N as k,O as A,P as j,Pt as M,_ as N,a as P,at as F,b as I,ct as L,di as R,g as z,k as B,ka as se,lr as ce,m as V,nr as H,or as U,qa as W,rt as le,v as ue,w as de,x as fe,y as pe,zi as me}from"./search-D94SZwrC.js";import{l as he}from"./item-Cq_ZbivE.js";import{i as ge}from"./CompositeItem-BbuEp99X.js";import{t as _e}from"./sliders-horizontal-CiZZFL1o.js";import{Q as ve,St as G,Y as ye,dt as be,l as xe,u as K,yt as q}from"./index-DoqlyejP.js";var J={name:`columns-3`,size:24,node:[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`path`,{d:`M15 3v18`,key:`14nvp0`}]],aliases:[`panels-left-right`]};J.node;var Se=E(J),Y=e(s(),1),X=b();function Ce({projectId:e,search:n,onSearch:s,onReset:u,view:h,actions:v,archivedFilter:b=!0}){let[x,C]=(0,Y.useState)(!1),T=oe(),ne=W({...ie.query(`list_members`,{projectId:e??``}),enabled:!!e}),E=W({...ie.query(`list_ticket_labels`,{projectId:e??``,archived:b?n.archived:`include`}),enabled:x&&!!e}),O=be(e),A=l(n),N=A.length+[n.due,b&&n.archived!==`exclude`].filter(Boolean).length,P=e=>s({...n,...e,offset:0}),I=(e,t,r)=>s(V.parse({...n,[e]:void 0,[S(e,`none`)]:void 0,...r.length?{[S(e,t)]:r}:{},offset:0})),L=e??``,z={status:a.map(e=>({value:e,text:i[e],node:(0,X.jsx)(ve,{property:`status`,value:e,projectId:L})})),priority:d.map(e=>({value:e,text:r[e],node:(0,X.jsx)(ve,{property:`priority`,value:e,projectId:L})})),label:(E.data??[]).map(e=>({value:e.name,text:e.name,node:(0,X.jsx)(he,{tag:e.name,className:`h-auto max-w-full`}),count:e.count})),assigneeId:[{value:T.id,text:y(`ticket.filter.me`)},{value:`none`,text:y(`common.state.unassigned`)},...(ne.data??[]).filter(e=>e.userId!==T.id).map(e=>({value:e.userId,text:e.name,keywords:[e.email]}))],customField:(O.data??[]).flatMap(e=>we(e).map(t=>({value:ee(e.id,t),text:m(e,t),node:(0,X.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1.5`,children:[(0,X.jsx)(`span`,{dir:`auto`,className:`truncate text-muted-foreground`,children:e.name}),e.options.some(e=>e.id===t)?(0,X.jsx)(ye,{field:e,value:t}):_(e,t)]})})))},B={status:i,priority:r,kind:g,difficulty:c,label:{},assigneeId:Object.fromEntries(z.assigneeId.map(e=>[e.value,e.text])),customField:Object.fromEntries(z.customField.map(e=>[e.value,e.text]))},H=(e,t)=>e===`label`?(0,X.jsx)(he,{tag:t}):e===`assigneeId`&&!B.assigneeId[t]?(0,X.jsx)(me,{projectId:L,actorId:t}):B[e][t]??t;return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(`div`,{className:`ticket-list-controls mb-0 flex min-h-12 min-w-0 items-center gap-1 border-b py-1 @max-[850px]:[&>[data-slot]]:px-2`,children:[(0,X.jsx)(`div`,{className:`mr-auto min-w-0 flex-1`,children:h}),(0,X.jsx)(le,{label:y(`ticket.filter.searchTickets`),placeholder:y(`ticket.filter.searchTicketsPlaceholder`),shortcut:`/`,value:n.q??``,onChange:e=>P({q:e}),className:se(`shrink-0`,n.q&&`[&_[data-slot=button]]:text-primary`)}),e&&(0,X.jsxs)(k,{open:x,onOpenChange:C,children:[(0,X.jsxs)(D,{render:(0,X.jsx)(ae,{label:N?y(`ticket.filter.filtersActive`,{active:N}):y(`ticket.filter.filters`),className:se(`relative`,N>0&&`text-primary`)}),children:[(0,X.jsx)(_e,{}),N>0&&(0,X.jsx)(`span`,{"aria-hidden":`true`,className:`absolute -top-0.5 -right-0.5 flex h-4 min-w-4 items-center justify-center rounded-full bg-primary px-1 text-[10px] leading-none text-primary-foreground tabular-nums`,children:N})]}),(0,X.jsxs)(j,{align:`end`,className:`w-[min(20rem,calc(100vw-2rem))] p-4`,children:[(0,X.jsx)(re,{children:y(`ticket.filter.filters`)}),(0,X.jsxs)(`div`,{className:`grid grid-cols-1`,children:[[`status`,`priority`,`label`].map(e=>(0,X.jsx)(Q,{field:e,search:n,choices:z[e],onChange:I,loading:e===`label`&&E.isPending,error:e===`label`?E.error:null},e)),(0,X.jsxs)(F,{label:y(`ticket.filter.due`),value:n.due??``,onValueChange:e=>P({due:e?p.shape.due.unwrap().parse(e):void 0}),children:[(0,X.jsx)(M,{value:``,children:y(`ticket.filter.anyDue`)}),Object.entries(t).map(([e,t])=>(0,X.jsx)(M,{value:e,children:t},e))]}),(0,X.jsx)(Q,{field:`assigneeId`,search:n,choices:z.assigneeId,onChange:I}),!!z.customField.length&&(0,X.jsx)(Q,{field:`customField`,search:n,choices:z.customField,onChange:I}),b&&(0,X.jsxs)(F,{label:y(`ticket.filter.archived`),value:n.archived,onValueChange:e=>P({archived:p.shape.archived.parse(e)}),children:[(0,X.jsx)(M,{value:`exclude`,children:y(`ticket.filter.hideArchived`)}),(0,X.jsx)(M,{value:`include`,children:y(`ticket.filter.includeArchived`)}),(0,X.jsx)(M,{value:`only`,children:y(`ticket.filter.archivedOnly`)})]})]}),(0,X.jsx)(R,{variant:`ghost`,onClick:()=>{s(V.parse({sort:n.sort})),C(!1)},children:y(`ticket.filter.reset`)})]})]}),(0,X.jsxs)(k,{children:[(0,X.jsx)(D,{render:(0,X.jsx)(ae,{label:y(`ticket.display.title`)}),children:(0,X.jsx)(Se,{})}),(0,X.jsxs)(j,{align:`end`,className:`w-[min(19rem,calc(100vw-2rem))] gap-3 p-4`,children:[(0,X.jsx)(re,{children:y(`ticket.display.title`)}),(0,X.jsx)(F,{label:y(`ticket.display.orderBy`),value:n.sort,onValueChange:e=>P({sort:p.shape.sort.parse(e),order:void 0}),children:Object.entries(f).filter(([t])=>e||t!==`manual`).map(([e,t])=>(0,X.jsx)(M,{value:e,children:t},e))}),(0,X.jsx)($,{label:y(`ticket.display.direction`),value:n.order??te[n.sort],onChange:e=>P({order:p.shape.order.parse(e)}),options:[[`asc`,y(`ticket.display.ascending`)],[`desc`,y(`ticket.display.descending`)]]}),(0,X.jsx)(Te,{work:!e,fields:O.data??[]}),(0,X.jsx)(ce,{}),(0,X.jsx)(R,{variant:`ghost`,onClick:u,children:y(`ticket.display.reset`)})]})]}),v]}),(n.q||N>0)&&(0,X.jsxs)(`div`,{className:`active-filters mb-4 flex flex-wrap items-center gap-2 animate-in fade-in-0 slide-in-from-top-1 duration-150 [&_[data-slot=button]]:h-7 [&_[data-slot=button]]:text-xs`,"aria-label":y(`ticket.filter.active`),children:[n.q&&(0,X.jsxs)(R,{variant:`secondary`,size:`sm`,onClick:()=>P({q:void 0}),children:[y(`ticket.filter.searchChip`,{query:n.q}),(0,X.jsx)(w,{className:`size-3`})]}),A.map(({field:e,operator:t,values:n})=>(0,X.jsxs)(R,{variant:`secondary`,size:`sm`,onClick:()=>I(e,t,[]),children:[y(t===`none`?`ticket.filter.chipNone`:`ticket.filter.chipAny`,{field:o[e]}),` `,n.map((t,r)=>(0,X.jsxs)(`span`,{className:`inline-flex items-center`,children:[H(e,t),e!==`label`&&r<n.length-1&&`,`]},t)),(0,X.jsx)(w,{className:`size-3`})]},S(e,t))),n.due&&(0,X.jsxs)(R,{variant:`secondary`,size:`sm`,onClick:()=>P({due:void 0}),children:[t[n.due],(0,X.jsx)(w,{className:`size-3`})]}),b&&n.archived!==`exclude`&&(0,X.jsxs)(R,{variant:`secondary`,size:`sm`,onClick:()=>P({archived:`exclude`}),children:[n.archived===`only`?y(`ticket.filter.archivedOnly`):y(`ticket.filter.includingArchived`),(0,X.jsx)(w,{className:`size-3`})]}),(0,X.jsx)(R,{variant:`ghost`,size:`sm`,onClick:()=>s(V.parse({sort:n.sort})),children:y(`ticket.filter.clear`)})]})]})}var Z=h(u,e=>({any:y(`ticket.filter.anyValue.${e}`),search:y(`ticket.filter.searchValues.${e}`)}));function we(e){return[...e.type===`checkbox`?[x.checked]:e.options.map(e=>e.id),x.empty]}function Q({field:e,search:t,choices:r,onChange:i,loading:a=!1,error:s=null}){let[c,l]=(0,Y.useState)(!1),[u,d]=(0,Y.useState)(`any`),f=o[e],p=n(t[S(e,`none`)]),m=n(t[e]),h=p.length?`none`:m.length?`any`:u,g=h===`none`?p:m,_=g.map(e=>r.find(t=>t.value===e)?.text??e);return(0,X.jsxs)(H,{className:L,children:[(0,X.jsx)(U,{children:f}),(0,X.jsxs)(k,{open:c,onOpenChange:l,children:[(0,X.jsxs)(D,{render:(0,X.jsx)(R,{variant:`outline`,role:`combobox`,"aria-label":f,"aria-expanded":c,className:`h-8 w-full justify-between font-normal`}),children:[(0,X.jsx)(`span`,{className:`truncate`,children:_.length?h===`none`?y(`ticket.filter.notValues`,{values:v(_)}):v(_):Z[e].any}),(0,X.jsx)(ge,{className:`shrink-0`})]}),(0,X.jsxs)(j,{align:`start`,className:`w-[min(20rem,calc(100vw-3rem))] p-0`,children:[(0,X.jsxs)(xe,{"aria-label":y(`ticket.filter.match`,{label:f}),value:[h],onValueChange:t=>{let n=t[0];(n===`any`||n===`none`)&&(d(n),g.length&&i(e,n,g))},variant:`outline`,size:`sm`,spacing:0,className:`w-full p-2 pb-0 *:flex-1`,children:[(0,X.jsx)(K,{value:`any`,children:y(`ticket.filter.is`)}),(0,X.jsx)(K,{value:`none`,children:y(`ticket.filter.isNot`)})]}),(0,X.jsxs)(de,{children:[(0,X.jsx)(A,{"aria-label":Z[e].search,placeholder:y(`ticket.filter.searchPlaceholder`,{search:Z[e].search})}),(0,X.jsxs)(C,{children:[(0,X.jsx)(B,{value:Z[e].any,"data-checked":!g.length,"aria-checked":!g.length,onSelect:()=>{i(e,h,[]),l(!1)},children:Z[e].any}),r.map(t=>{let n=g.includes(t.value);return(0,X.jsxs)(B,{value:`${e}:${t.value}`,keywords:[t.text,...t.keywords??[]],"data-checked":n,"aria-checked":n,"aria-label":t.text,onSelect:()=>i(e,h,n?g.filter(e=>e!==t.value):[...g,t.value]),children:[t.node??(0,X.jsx)(`span`,{className:`truncate`,children:t.text}),t.count!==void 0&&(0,X.jsx)(`span`,{className:`ml-auto text-xs text-muted-foreground tabular-nums`,children:t.count})]},t.value)}),(0,X.jsx)(ne,{children:y(a?`common.state.loading`:`ticket.property.noMatches`)})]})]}),(0,X.jsx)(O,{error:s})]})]})]})}function Te({work:e=!1,fields:t=[]}){let[n,r]=G(q.grouping),[i,a]=G(q.layout),[o,s]=G(q.backgrounds),[c,l]=G(q.workGrouping),[u,d]=G(q.density),[f,p]=G(q.labelDisplay),[m,h]=G(q.columns);return(0,X.jsxs)(X.Fragment,{children:[e?(0,X.jsx)($,{label:y(`ticket.display.groupBy`),value:c,onChange:e=>l(fe.parse(e)),options:[[`due`,y(`ticket.display.dueDate`)],[`project`,y(`ticket.project.label`)],[`none`,y(`common.state.none`)]]}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)($,{label:y(`ticket.display.layout`),value:i,onChange:e=>a(I.parse(e)),options:[[`list`,y(`ticket.display.list`)],[`board`,y(`ticket.display.board`)],[`calendar`,y(`ticket.schedule.calendar`)],[`timeline`,y(`ticket.schedule.timeline`)]]}),i===`list`&&(0,X.jsx)($,{label:y(`ticket.display.groupBy`),value:n,onChange:e=>r(ue.parse(e)),options:[[`status`,y(`ticket.property.status`)],[`none`,y(`common.state.none`)]]}),(0,X.jsx)($,{label:y(`ticket.display.backgrounds`),value:o,onChange:e=>s(q.backgrounds.schema.parse(e)),options:[[`show`,y(`ticket.display.show`)],[`hide`,y(`ticket.display.hide`)]]})]}),(0,X.jsx)(ce,{}),(0,X.jsx)($,{label:y(`ticket.display.rowSpacing`),value:u,onChange:e=>d(N.parse(e)),options:[[`compact`,y(`ticket.display.compact`)],[`comfortable`,y(`ticket.display.comfortable`)]]}),(0,X.jsx)($,{label:y(`ticket.display.labelDisplay`),value:f,onChange:e=>p(pe.parse(e)),options:[[`compact`,y(`ticket.display.compactPreview`)],[`all`,y(`ticket.display.allLabels`)]]}),(0,X.jsxs)(`fieldset`,{children:[(0,X.jsx)(`legend`,{className:`mb-2 text-xs font-medium text-muted-foreground`,children:y(`ticket.display.properties`)}),(0,X.jsx)(`div`,{className:`grid grid-cols-2 gap-x-3`,children:[...Object.entries(z).map(([e,t])=>[e,t,!0]),...t.map(e=>[P(e.id),e.name,!1])].map(([e,t,n])=>(0,X.jsx)(T,{label:t,checked:m[e]??n,onCheckedChange:t=>h({...m,[e]:t})},e))})]})]})}function $({label:e,value:t,onChange:n,options:r}){return(0,X.jsxs)(H,{className:L,children:[(0,X.jsx)(U,{children:e}),(0,X.jsx)(xe,{"aria-label":e,value:[t],onValueChange:e=>{let t=e[0];typeof t==`string`&&n(t)},variant:`outline`,size:`sm`,spacing:0,className:`w-full *:flex-1`,children:r.map(([e,t])=>(0,X.jsx)(K,{value:e,"aria-label":t,children:t},e))})]})}export{Ce as n,Te as t};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{A as t,Gt as n,Kt as r,Mn as i,Xt as a,c as o,f as s,in as c,pn as l,r as u,tn as d,x as f}from"./default-D5TdIZQS.js";import{Aa as p,B as m,F as h,G as g,Ga as _,Hi as v,I as y,J as b,Ji as ee,K as te,N as ne,Oa as re,P as ie,Pi as x,Q as ae,Ua as oe,V as se,Va as ce,W as le,Wa as ue,X as de,Y as fe,Zi as pe,_t as me,a as he,di as S,dt as ge,ea as _e,g as C,ka as w,l as ve,lr as ye,m as be,nt as T,o as xe,q as Se,qa as Ce,st as we,ta as Te,ut as Ee,wo as De}from"./search-D94SZwrC.js";import{t as Oe}from"./useQueries-BihXYrAP.js";import{g as ke,p as Ae,u as je}from"./item-Cq_ZbivE.js";import{t as E}from"./archive-restore-B6_SsOIP.js";import{r as Me,t as Ne}from"./Trans-DJGH63s1.js";import{n as Pe}from"./project-lifecycle-Ba7iRF3u.js";import{n as Fe}from"./CompositeItem-BbuEp99X.js";import{n as Ie}from"./ticket-list-controls-BidzkMOD.js";import{t as Le}from"./ellipsis-D6154JKs.js";import{_ as D,d as Re,m as O,p as ze,r as Be}from"./en-US-DKYSujv3.js";import{$ as Ve,A as He,B as Ue,C as We,Ct as Ge,Ft as Ke,G as qe,Gt as Je,H as Ye,I as Xe,It as k,J as Ze,K as Qe,Kt as $e,Lt as et,Mt as tt,N as nt,Nt as rt,P as it,Pt as A,Q as at,R as ot,Rt as st,St as ct,U as lt,Ut as ut,V as dt,Vt as ft,W as pt,Wt as mt,Y as ht,a as gt,an as _t,at as vt,b as yt,bt,ct as xt,dt as St,et as j,ft as Ct,gn as wt,hn as Tt,it as Et,jt as Dt,lt as Ot,mt as M,nt as kt,ot as At,pt as jt,rt as Mt,st as Nt,ut as Pt,vt as Ft,w as It,xt as Lt,yn as Rt,yt as zt,z as Bt,zt as N}from"./index-DoqlyejP.js";import{a as Vt,i as Ht,n as Ut,o as Wt,r as Gt,t as Kt}from"./table-DcCLC7fi.js";import{TicketEditor as qt}from"./ticket-editor-UlSZgpWF.js";var Jt={name:`bookmark-plus`,size:24,node:[[`path`,{d:`M12 7v6`,key:`lw1j43`}],[`path`,{d:`M15 10H9`,key:`o6yqo3`}],[`path`,{d:`M17 3a2 2 0 0 1 2 2v15a1 1 0 0 1-1.496.868l-4.512-2.578a2 2 0 0 0-1.984 0l-4.512 2.578A1 1 0 0 1 5 20V5a2 2 0 0 1 2-2z`,key:`oz39mx`}]]};Jt.node;var Yt=_(Jt),Xt={name:`list-todo`,size:24,node:[[`path`,{d:`M13 5h8`,key:`a7qcls`}],[`path`,{d:`M13 12h8`,key:`h98zly`}],[`path`,{d:`M13 19h8`,key:`c3s6r1`}],[`path`,{d:`m3 17 2 2 4-4`,key:`1jhpwq`}],[`rect`,{x:`3`,y:`4`,width:`6`,height:`6`,rx:`1`,key:`cif1o7`}]]};Xt.node;var Zt=_(Xt),Qt={name:`notebook-tabs`,size:24,node:[[`path`,{d:`M2 6h4`,key:`aawbzj`}],[`path`,{d:`M2 10h4`,key:`l0bgd4`}],[`path`,{d:`M2 14h4`,key:`1gsvsf`}],[`path`,{d:`M2 18h4`,key:`1bu2t1`}],[`rect`,{width:`16`,height:`20`,x:`4`,y:`2`,rx:`2`,key:`1nb95v`}],[`path`,{d:`M15 2v20`,key:`dcj49h`}],[`path`,{d:`M15 7h5`,key:`1xj5lc`}],[`path`,{d:`M15 12h5`,key:`w5shd9`}],[`path`,{d:`M15 17h5`,key:`1qaofu`}]]};Qt.node;var $t=_(Qt);function P(e,t){if(Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[n,r]of e)if(!t.has(n)||!Object.is(r,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();let n=en(e);if(n.length!==en(t).length)return!1;for(let r=0;r<n.length;r++)if(!Object.prototype.hasOwnProperty.call(t,n[r])||!Object.is(e[n[r]],t[n[r]]))return!1;return!0}function en(e){return Object.keys(e).concat(Object.getOwnPropertySymbols(e))}var F=e(i(),1);function tn(e){return I(e)||typeof e==`function`||nn(e)}function I(e){return typeof e==`function`&&(()=>{let t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}function nn(e){return typeof e==`object`&&typeof e.$$typeof==`symbol`&&[`react.memo`,`react.forward_ref`].includes(e.$$typeof.description)}function L(e,t){return e==null?null:tn(e)?F.createElement(e,t):e}function rn(e){if(`cell`in e&&e.cell){let t=e.cell,n=t.column.columnDef,r=t,i=n;return r.getIsAggregated?.()?L(i.aggregatedCell??n.cell,t.getContext()):r.getIsPlaceholder?.()?null:L(n.cell,t.getContext())}return`header`in e&&e.header?L(e.header.column.columnDef.header,e.header.getContext()):`footer`in e&&e.footer?L(e.footer.column.columnDef.footer,e.footer.getContext()):null}function an(e){let t=mt(e.source,e.selector,{compare:P});return typeof e.children==`function`?e.children(t):e.children}function on(e){let t=e;return Object.defineProperty(e,"state",{get(){return e.get()}}),`set`in e&&(t.setState=e.set.bind(e)),t}function sn(e){let{createAtom:t,batch:n}=e,r=t(0);return{createOptionsStore:!1,wrapExternalAtoms:!1,addSubscription:()=>{throw Error(`Feature not supported in current reactivity implementation`)},unmount:()=>{throw Error(`Feature not supported in current reactivity implementation`)},schedule:e.schedule??(e=>queueMicrotask(e)),batch:n,untrack:e=>e(),createReadonlyAtom:(e,n)=>{let i=n?.compare??Object.is,a=!1,o,s=()=>{let t=e();return(!a||!i(o,t))&&(o=t,a=!0),o},c=t(()=>(r.get(),s()),{compare:i});return{get:s,subscribe:c.subscribe.bind(c)}},createWritableAtom:(e,n)=>t(e,{compare:n?.compare}),commit:()=>{r.set(e=>e+1)}}}function cn(e,t=Object.is){let n=!1,r;return{get:e.get,markCommitted:e=>{r=e,n=!0},subscribe:i=>e.subscribe(e=>{(!n||!t(r,e))&&i(e)})}}function ln(){return sn({createAtom:$e,batch:Je})}function un(e,t){return typeof e==`function`?e(t):e}function R(e){if(Array.isArray(e))return e.map(R);if(e&&typeof e==`object`){let t=Object.getPrototypeOf(e);if(t!==Object.prototype&&t!==null)return e;let n=t===null?z():{},r=Object.keys(e);for(let t=0;t<r.length;t++){let i=r[t];Object.defineProperty(n,i,{configurable:!0,enumerable:!0,value:R(e[i]),writable:!0})}return n}return e}function dn(e,t){let n=Object.keys(t),r=e;for(let e=0;e<n.length;e++){let i=n[e];!i.startsWith(`_memo_`)&&i!==`_cellsCache`&&(r[i]=t[i])}return e}function z(){return Object.create(null)}function B(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function V(e,t){return n=>{(t.options.atoms?.[e]??t.baseAtoms[e]).set(e=>un(n,e))}}function fn(e){if(typeof e!=`object`||!e)return!1;if(Array.isArray(e))return!0;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function pn(e){return Reflect.ownKeys(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}var H=3;function mn(e,t){return U(e,t,H)}function U(e,t,n){if(Object.is(e,t))return!0;if(n<=0||!fn(e)||!fn(t)||(Array.isArray(e)||Array.isArray(t))&&(!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length))return!1;let r=pn(e),i=pn(t);if(r.length!==i.length)return!1;let a=e,o=t;for(let e=0;e<r.length;e++){let i=r[e];if(!Object.prototype.propertyIsEnumerable.call(t,i)||!U(a[i],o[i],n-1))return!1}return!0}function W(e,t,n,r=mn){let i=`on${t.charAt(0).toUpperCase()}${t.slice(1)}Change`,a=e.options[i];a&&a(e=>{let t=un(n,e);return r(e,t)?e:t})}function hn(e,t){let n=[],r=e=>{e.forEach(e=>{n.push(e);let i=t(e);i.length&&r(i)})};return r(e),n}var gn=({fn:e,memoDeps:t,onAfterCompare:n,onAfterUpdate:r,onBeforeCompare:i,onBeforeUpdate:a})=>{let o=[],s;return c=>{i?.();let l=t?.(c),u=!l||l.length!==o?.length;if(!u&&l){for(let e=0;e<l.length;e++)if(l[e]!==o[e]){u=!0;break}}return n?.(u),u&&(o=l,a?.(),s=e(...l??[]),r?.(s)),s}};function _n(e){let t=!1;return()=>{t?e():t=!0}}function vn({feature:e,fnName:t,objectId:n,onAfterUpdate:r,table:i,...a}){let o={onAfterUpdate:r?()=>{let{schedule:e,untrack:t}=i._reactivity;e(()=>t(()=>r()))}:void 0};return gn({...a,...o})}function yn(e,t=`_`){let[n,r]=e.replace(t,` `).split(` `);return{fnKey:r,fnName:`${n}.${r}`,parentName:n}}function G(e,t,n){for(let[r,{fn:i,memoDeps:a}]of Object.entries(n)){let{fnKey:n,fnName:o}=yn(r);t[n]=a?vn({memoDeps:a,fn:i,fnName:o,table:t,feature:e}):i}}function K(e,t,n,r){for(let[i,{fn:a,memoDeps:o}]of Object.entries(r)){let{fnKey:r,fnName:s}=yn(i);if(o){let i=`_memo_${r}`;t[r]=function(...t){if(!this[i]){let t=this;this[i]=vn({memoDeps:e=>o(t,e),fn:(...e)=>a(t,...e),fnName:s,objectId:t.id,table:n,feature:e})}return this[i](...t)}}else t[r]=function(...e){return a(this,...e)}}}function q(e,t,n,...r){return e[t]?.(...r)??n(e,...r)}function bn(e){return e.row.getValue(e.column.id)}function xn(e){return e.getValue()??e.table.options.renderFallbackValue}function Sn(e){return{table:e.table,column:e.column,row:e.row,cell:e,getValue:()=>e.getValue(),renderValue:()=>e.renderValue()}}var Cn={assignCellPrototype:(e,t)=>{K(`coreCellsFeature`,e,t,{cell_getValue:{fn:e=>bn(e)},cell_renderValue:{fn:e=>xn(e)},cell_getContext:{fn:e=>Sn(e),memoDeps:e=>[e]}})}};function J(e){if(!e._columnPrototype){e._columnPrototype={table:e};let t=Object.values(e._features);for(let n=0;n<t.length;n++)t[n].assignColumnPrototype?.(e._columnPrototype,e)}return e._columnPrototype}function wn(e,t,n,r){let i={...e.getDefaultColumnDef(),...t},a=i.accessorKey,o=a===void 0?void 0:String(a),s=i.id??o?.replaceAll(`.`,`_`)??(typeof i.header==`string`?i.header:void 0),c;if(i.accessorFn)c=i.accessorFn;else if(a!==void 0){if(typeof a==`string`&&a.includes(`.`)){let e=a.split(`.`);c=t=>{let n=t;for(let t=0;t<e.length;t++){let r=e[t];n=n?.[r]}return n}}else c=e=>e[i.accessorKey]}if(!s)throw Error();let l=J(e),u=Object.create(l);u.accessorFn=c,u.columnDef=i,u.columns=[],u.depth=n,u.id=`${String(s)}`,u.parent=r;let d=e._columnInstanceInitFns;for(let e=0;e<d.length;e++)d[e](u);return u}function Tn(e){return e.getIsVisible?.()??!0}function En(e){return e.getVisibleLeafColumns?.()??e.getAllLeafColumns()}function Dn(e,t){let n=e,r=t;return n.getOrderColumnsFn?.()(r)??n._orderGroupedColumns?.(r)??t}function On(e,t,n,r){return e._orderByColumnPinning?.(t,n,r)??t}function Y(e,t){return e.getPinnedVisibleLeafColumns?.(t)??(t&&t!==`center`?[]:En(e))}function kn(e,t){return e._expandRows?.(t)??t}function An(e){e.autoResetExpanded?.()}function jn(e){e.autoResetPageIndex?.()}function Mn(e){e.autoResetSorting?.()}function Nn(e){e.autoResetCellSelection?.()}function Pn(e){return[e,...e.columns.flatMap(e=>e.getFlatColumns())]}function Fn(e){if(e.columns.length){let t=e.columns.flatMap(e=>e.getLeafColumns());return Dn(e.table,t)}return[e]}function In(e){return{header:e=>{let t=e.header.column.columnDef;return t.accessorKey?t.accessorKey:t.accessorFn?t.id:null},cell:e=>e.renderValue()?.toString?.()??null,...Object.values(e._features).reduce((e,t)=>Object.assign(e,t.getDefaultColumnDef?.()),{}),...e.options.defaultColumn}}function Ln(e,t,n,r=0){let i=Array(t.length);for(let a=0;a<t.length;a++){if(!(a in t))continue;let o=t[a],s=wn(e,o,r,n),c=o;s.columns=c.columns?Ln(e,c.columns,s,r+1):[],i[a]=s}return i}function Rn(e){return Ln(e,e.options.columns)}function zn(e){return e.getAllColumns().flatMap(e=>e.getFlatColumns())}function Bn(e){let t=z(),n=e.getAllFlatColumns();for(let e=0;e<n.length;e++){let r=n[e];t[r.id]=r}return t}function Vn(e){return Dn(e,e.getAllColumns().flatMap(e=>e.getLeafColumns()))}function Hn(e){let t=z(),n=e.getAllLeafColumns();for(let e=0;e<n.length;e++){let r=n[e];t[r.id]=r}return t}function Un(e,t){return e.getAllFlatColumnsById()[t]}var Wn={assignColumnPrototype:(e,t)=>{K(`coreColumnsFeature`,e,t,{column_getFlatColumns:{fn:e=>Pn(e),memoDeps:e=>[e.table.options.columns]},column_getLeafColumns:{fn:e=>Fn(e),memoDeps:e=>[e.table.atoms.columnOrder?.get(),e.table.atoms.grouping?.get(),e.table.options.columns,e.table.options.groupedColumnMode]}})},constructTableAPIs:e=>{G(`coreColumnsFeature`,e,{table_getDefaultColumnDef:{fn:()=>In(e),memoDeps:()=>[e.options.defaultColumn]},table_getAllColumns:{fn:()=>Rn(e),memoDeps:()=>[e.options.columns]},table_getAllFlatColumns:{fn:()=>zn(e),memoDeps:()=>[e.options.columns]},table_getAllFlatColumnsById:{fn:()=>Bn(e),memoDeps:()=>[e.options.columns]},table_getAllLeafColumns:{fn:()=>Vn(e),memoDeps:()=>[e.atoms.columnOrder?.get(),e.atoms.grouping?.get(),e.options.columns,e.options.groupedColumnMode]},table_getAllLeafColumnsById:{fn:()=>Hn(e),memoDeps:()=>[e.getAllLeafColumns()]},table_getColumn:{fn:t=>Un(e,t)}})}};function X(e){if(!e._headerPrototype){e._headerPrototype={table:e};let t=Object.values(e._features);for(let n=0;n<t.length;n++)t[n].assignHeaderPrototype?.(e._headerPrototype,e)}return e._headerPrototype}function Gn(e,t,n){let r=X(e),i=Object.create(r);i.colSpan=0,i.column=t,i.depth=n.depth,i.headerGroup=null,i.id=n.id??t.id,i.index=n.index,i.isPlaceholder=!!n.isPlaceholder,i.placeholderId=n.placeholderId,i.rowSpan=0,i.subHeaders=[];let a=e._headerInstanceInitFns;for(let e=0;e<a.length;e++)a[e](i);return i}function Kn(e,t=1){let n=t;for(let r=0;r<e.length;r++){let i=e[r];Tn(i)&&i.columns.length&&(n=Math.max(n,Kn(i.columns,t+1)))}return n}function qn(e,t){return e?`${e}_${t}`:String(t)}function Jn(e,t,n,r){let i=e??``;return t&&(i=i?`${i}_${t}`:String(t)),n&&(i=i?`${i}_${n}`:n),r&&(i=i?`${i}_${r}`:r),i}function Yn(e,t){let n=0;for(let r=0;r<e.length;r++)e[r].column===t&&n++;return n}function Xn(e,t,n,r,i,a){let o={depth:t,id:qn(r,t),headers:[]},s=[];for(let i=0;i<e.length;i++){if(!(i in e))continue;let a=e[i],c=s[s.length-1],l=a.column.depth===o.depth,u,d=!1;if(l&&a.column.parent?u=a.column.parent:(u=a.column,d=!0),c&&c.column===u)c.subHeaders.push(a);else{let e=Gn(n,u,{id:Jn(r,t,u.id,a.id),isPlaceholder:d,placeholderId:d?String(Yn(s,u)):void 0,depth:t,index:s.length});e.subHeaders.push(a),s.push(e)}o.headers.push(a),a.headerGroup=o}for(let e=0;e<a.length;e++)a[e](o);i.push(o),t>0&&Xn(s,t-1,n,r,i,a)}function Zn(e){for(let t=0;t<e.length;t++){let n=e[t];if(!Tn(n.column))continue;let r=0;if(n.subHeaders.length){Zn(n.subHeaders);for(let e=0;e<n.subHeaders.length;e++){let t=n.subHeaders[e];Tn(t.column)&&(r+=t.colSpan)}}else r=1;if(n.colSpan=r,n.isPlaceholder&&n.subHeaders.length===1&&n.subHeaders[0].column===n.column){let e=1,t=n.subHeaders[0];for(;t;)t.rowSpan=0,e++,t=t.subHeaders.length===1&&t.subHeaders[0].column===n.column?t.subHeaders[0]:void 0;n.rowSpan=e}else n.rowSpan=1}}function Qn(e,t,n,r){let i=Kn(e),a=[],o=n._headerGroupInstanceInitFns,s=Array(t.length);for(let e=0;e<t.length;e++)e in t&&(s[e]=Gn(n,t[e],{depth:i,index:e}));return Xn(s,i-1,n,r,a,o),a.reverse(),Zn(a[0]?.headers??[]),a}function $n(e,t){for(let n=0;n<e.subHeaders.length;n++)$n(e.subHeaders[n],t);t.push(e)}function er(e){let t=[];return $n(e,t),t}function tr(e){return{column:e.column,header:e,table:e.column.table}}function nr(e){return Qn(e.getAllColumns(),On(e,En(e),e=>e.id),e)}function rr(e){return[...e.getHeaderGroups()].reverse()}function ir(e){let t=e.getHeaderGroups(),n=[];for(let e=0;e<t.length;e++){let r=t[e].headers;for(let e=0;e<r.length;e++)n.push(r[e])}return n}function ar(e){let t=e.getHeaderGroups()[0]?.headers??[],n=[];for(let e=0;e<t.length;e++){let r=t[e].getLeafHeaders();for(let e=0;e<r.length;e++)n.push(r[e])}return n}var or={assignHeaderPrototype:(e,t)=>{K(`coreHeadersFeature`,e,t,{header_getLeafHeaders:{fn:e=>er(e),memoDeps:e=>[e.column.table.options.columns]},header_getContext:{fn:e=>tr(e),memoDeps:e=>[e.column.table.options.columns]}})},constructTableAPIs:e=>{G(`coreHeadersFeature`,e,{table_getHeaderGroups:{fn:()=>nr(e),memoDeps:()=>[e.options.columns,e.atoms.columnOrder?.get(),e.atoms.grouping?.get(),e.atoms.columnPinning?.get(),e.atoms.columnVisibility?.get(),e.options.groupedColumnMode]},table_getFooterGroups:{fn:()=>rr(e),memoDeps:()=>[e.getHeaderGroups()]},table_getFlatHeaders:{fn:()=>ir(e),memoDeps:()=>[e.getHeaderGroups()]},table_getLeafHeaders:{fn:()=>ar(e),memoDeps:()=>[e.getHeaderGroups()]}})}};function sr(e){if(!e._rowPrototype){e._rowPrototype={table:e};let t=Object.values(e._features);for(let n=0;n<t.length;n++)t[n].assignRowPrototype?.(e._rowPrototype,e)}return e._rowPrototype}var cr=(e,t,n,r,i,a,o)=>{let s=sr(e),c=Object.create(s);c._displayIndexCache=-1,c._uniqueValuesCache=z(),c._valuesCache=z(),c.depth=i,c.id=t,c.index=r,c.original=n,c.parentId=o,c.subRows=a??[];let l=e._rowInstanceInitFns;for(let e=0;e<l.length;e++)l[e](c);return c};function lr(){return e=>vn({feature:`coreRowModelsFeature`,table:e,fnName:`table.getCoreRowModel`,memoDeps:()=>[e.options.data],fn:()=>dr(e,e.options.data),onAfterUpdate:_n(()=>{An(e),jn(e),Mn(e),Nn(e)})})}function ur(e,t,n,r=0,i){let a=[];for(let o=0;o<n.length;o++){let s=n[o],c=cr(e,e.getRowId(s,o,i),s,o,r,void 0,i?.id);t.flatRows.push(c),t.rowsById[c.id]=c,a.push(c),e.options.getSubRows&&(c.originalSubRows=e.options.getSubRows(s,o),c.originalSubRows?.length&&(c.subRows=ur(e,t,c.originalSubRows,r+1,c)))}return a}function dr(e,t){let n={rows:[],flatRows:[],rowsById:z()};return n.rows=ur(e,n,t),n}function fr(e){return e._rowModels.coreRowModel||(e._rowModels.coreRowModel=e.options.features.coreRowModel?.(e)??lr()(e)),e._rowModels.coreRowModel()}function pr(e){return e.getCoreRowModel()}function mr(e){return e._rowModels.filteredRowModel||(e._rowModels.filteredRowModel=e.options.features.filteredRowModel?.(e)),e.options.manualFiltering||!e._rowModels.filteredRowModel?e.getPreFilteredRowModel():e._rowModels.filteredRowModel()}function hr(e){return e.getFilteredRowModel()}function gr(e){return e._rowModels.groupedRowModel||(e._rowModels.groupedRowModel=e.options.features.groupedRowModel?.(e)),e.options.manualGrouping||!e._rowModels.groupedRowModel?e.getPreGroupedRowModel():e._rowModels.groupedRowModel()}function _r(e){return e.getGroupedRowModel()}function vr(e){return e._rowModels.sortedRowModel||(e._rowModels.sortedRowModel=e.options.features.sortedRowModel?.(e)),e.options.manualSorting||!e._rowModels.sortedRowModel?e.getPreSortedRowModel():e._rowModels.sortedRowModel()}function yr(e){return e.getSortedRowModel()}function br(e){return e._rowModels.expandedRowModel||(e._rowModels.expandedRowModel=e.options.features.expandedRowModel?.(e)),e.options.manualExpanding||!e._rowModels.expandedRowModel?e.getPreExpandedRowModel():e._rowModels.expandedRowModel()}function xr(e){return e.getExpandedRowModel()}function Sr(e){return e._rowModels.paginatedRowModel||(e._rowModels.paginatedRowModel=e.options.features.paginatedRowModel?.(e)),e.options.manualPagination||!e._rowModels.paginatedRowModel?e.getPrePaginatedRowModel():e._rowModels.paginatedRowModel()}function Cr(e){return e.getPaginatedRowModel()}var wr={constructTableAPIs:e=>{G(`coreRowModelsFeature`,e,{table_getCoreRowModel:{fn:()=>fr(e)},table_getPreFilteredRowModel:{fn:()=>pr(e)},table_getFilteredRowModel:{fn:()=>mr(e)},table_getPreGroupedRowModel:{fn:()=>hr(e)},table_getGroupedRowModel:{fn:()=>gr(e)},table_getPreSortedRowModel:{fn:()=>_r(e)},table_getSortedRowModel:{fn:()=>vr(e)},table_getPreExpandedRowModel:{fn:()=>yr(e)},table_getExpandedRowModel:{fn:()=>br(e)},table_getPrePaginatedRowModel:{fn:()=>xr(e)},table_getPaginatedRowModel:{fn:()=>Sr(e)},table_getRowModel:{fn:()=>Cr(e)}})}};function Tr(e){if(!e._cellPrototype){e._cellPrototype={table:e};let t=Object.values(e._features);for(let n=0;n<t.length;n++)t[n].assignCellPrototype?.(e._cellPrototype,e)}return e._cellPrototype}function Er(e,t,n){let r=Tr(n),i=Object.create(r);i.column=e,i.id=`${t.id}_${e.id}`,i.row=t;let a=n._cellInstanceInitFns;for(let e=0;e<a.length;e++)a[e](i);return i}function Dr(e){let t=e.table.getRowsInDisplayOrder(),n=e._displayIndexCache;return t[n]===e?n:-1}function Or(e){let t=e.getPrePaginatedRowModel(),n=e.options.paginateExpandedRows===!1?kn(e,t).rows:t.rows;for(let e=0;e<n.length;e++)n[e]._displayIndexCache=e;return n}function kr(e,t){if(B(e._valuesCache,t))return e._valuesCache[t];let n=e.table.getColumn(t);if(n?.accessorFn)return e._valuesCache[t]=n.accessorFn(e.original,e.index),e._valuesCache[t]}function Ar(e,t){if(B(e._uniqueValuesCache,t))return e._uniqueValuesCache[t];let n=e.table.getColumn(t);if(n?.accessorFn)return n.columnDef.getUniqueValues?(e._uniqueValuesCache[t]=n.columnDef.getUniqueValues(e.original,e.index),e._uniqueValuesCache[t]):(e._uniqueValuesCache[t]=[e.getValue(t)],e._uniqueValuesCache[t])}function jr(e,t){return e.getValue(t)??e.table.options.renderFallbackValue}function Mr(e){return hn(e.subRows,e=>e.subRows)}function Nr(e){let t=e.getCoreRowModel().flatRows,n=0;for(let e=0;e<t.length;e++)n=Math.max(n,t[e].depth);return n}function Pr(e){if(e.parentId)return e.table.getCoreRowModel().rowsById[e.parentId]??e.table.getRow(e.parentId,!0)}function Fr(e){let t=[],n=e;for(;;){let e=n.getParentRow();if(!e)break;t.push(e),n=e}return t.reverse()}function Ir(e){let t=e.table.getAllLeafColumns(),n=e._cellsCache;n||=e._cellsCache=new WeakMap;let r=Array(t.length);for(let i=0;i<t.length;i++){let a=t[i],o=n.get(a);o||(o=Er(a,e,e.table),n.set(a,o)),r[i]=o}return r}function Lr(e){let t=z(),n=e.getAllCells();for(let e=0;e<n.length;e++){let r=n[e];t[r.column.id]=r}return t}function Rr(e,t,n,r){return t.options.getRowId?.(e,n,r)??(r?`${r.id}.${n}`:String(n))}function zr(e,t,n){let r=(n?e.getPrePaginatedRowModel():e.getRowModel()).rowsById[t];if(!r&&(r=e.getCoreRowModel().rowsById[t],!r))throw Error();return r}var Br={assignRowPrototype:(e,t)=>{K(`coreRowsFeature`,e,t,{row_getDisplayIndex:{fn:e=>Dr(e)},row_getAllCellsByColumnId:{fn:e=>Lr(e),memoDeps:e=>[e.getAllCells()]},row_getAllCells:{fn:e=>Ir(e),memoDeps:e=>[e.table.getAllLeafColumns()]},row_getLeafRows:{fn:e=>Mr(e),memoDeps:e=>[e.subRows]},row_getParentRow:{fn:e=>Pr(e)},row_getParentRows:{fn:e=>Fr(e)},row_getUniqueValues:{fn:(e,t)=>Ar(e,t)},row_getValue:{fn:(e,t)=>kr(e,t)},row_renderValue:{fn:(e,t)=>jr(e,t)}})},constructTableAPIs:e=>{G(`coreRowsFeature`,e,{table_getRowsInDisplayOrder:{fn:()=>Or(e),memoDeps:()=>[e.getPrePaginatedRowModel().rows,e.options.paginateExpandedRows,e.options.paginateExpandedRows===!1?e.atoms.expanded?.get():void 0]},table_getRowId:{fn:(t,n,r)=>Rr(t,e,n,r)},table_getRow:{fn:(t,n)=>zr(e,t,n)},table_getMaxSubRowDepth:{fn:()=>Nr(e),memoDeps:()=>[e.getCoreRowModel()]}})}};function Vr(e,t,n=(e,t)=>e===t){let r=t===void 0?e.options.state:t;e._reactivity.batch(()=>{if(r)for(let t in r){let i=e.baseAtoms[t];if(!i)continue;let a=r[t],o=a===void 0?e.initialState[t]:a;n(e._reactivity.untrack(()=>i.get()),o)||i.set(()=>o)}})}function Hr(e,t,n=(e,t)=>e===t){e._reactivity.batch(()=>{Vr(e,t,n),e._reactivity.commit?.()})}function Ur(e){let t=R(e.initialState);e._reactivity.batch(()=>{let n=Object.keys(t);for(let r=0;r<n.length;r++){let i=n[r];e.baseAtoms[i].set(t[i])}});let n=Object.values(e._features);for(let t=0;t<n.length;t++)n[t].resetTableInstanceData?.(e)}function Wr(e,t){let{features:n,atoms:r,initialState:i}=e.options;if(!e.options.mergeOptions)return{...e.options,...t,features:n,atoms:r,initialState:i};let a=e.options.mergeOptions(e.options,t),o={...Object.getOwnPropertyDescriptors(a)};return Object.defineProperties(Object.create(Object.getPrototypeOf(a)),{...o,features:{value:n,enumerable:!0,configurable:!0,writable:!0},atoms:{value:r,enumerable:!0,configurable:!0,writable:!0},initialState:{value:i,enumerable:!0,configurable:!0,writable:!0}})}function Gr(e,t,n){let r=Wr(e,un(t,e.options));e.optionsStore?e.optionsStore.set(()=>r):e.options=r,n?.syncExternalState!==!1&&Hr(e,r.state??null)}var Kr={coreCellsFeature:Cn,coreColumnsFeature:Wn,coreHeadersFeature:or,coreRowModelsFeature:wr,coreRowsFeature:Br,coreTablesFeature:{constructTableAPIs:e=>{G(`coreTablesFeature`,e,{table_reset:{fn:()=>Ur(e)},table_setOptions:{fn:t=>Gr(e,t)}})}}};function qr(e){return e}function Jr(e,t={}){return Object.values(e).forEach(e=>{t=e.getInitialState?.(t)??t}),R(t)}function Yr(e){let t=e.features.coreReactivityFeature,{aggregationFns:n,columnMeta:r,coreRowModel:i,expandedRowModel:a,facetedMinMaxValues:o,facetedRowModel:s,facetedUniqueValues:c,filterFns:l,filterMeta:u,filteredRowModel:d,groupedRowModel:f,paginatedRowModel:p,sortFns:m,sortedRowModel:h,tableMeta:g,..._}=e.features,v={_cellInstanceInitFns:[],_columnInstanceInitFns:[],_features:{...Kr,..._},_headerGroupInstanceInitFns:[],_headerInstanceInitFns:[],_reactivity:t,_rowInstanceInitFns:[],_rowModelFns:{aggregationFns:n,filterFns:l,sortFns:m},_rowModels:{},atoms:{},baseAtoms:{}},y=Object.values(v._features),b={...y.reduce((e,t)=>Object.assign(e,t.getDefaultTableOptions?.(v)),{}),...e};if(t.wrapExternalAtoms&&b.atoms)for(let[e,n]of Object.entries(b.atoms)){let r=n,i=t.createWritableAtom(r.get(),{debugName:`externalAtom/${e}`});b.atoms[e]=i;let a=!1,o=r.subscribe(e=>{a||i.set(e)}),s=i.subscribe(e=>{a=!0,r.set(e),a=!1});t.addSubscription(o),t.addSubscription(s)}t.createOptionsStore?(v.optionsStore=t.createWritableAtom(b,{debugName:`table/optionsStore`}),Object.defineProperty(v,"options",{configurable:!0,enumerable:!0,get(){return v.optionsStore.get()},set(e){v.optionsStore.set(()=>e)}})):v.options=b,v.initialState=Jr(v._features,v.options.initialState);let ee=Object.keys(v.initialState);for(let e=0;e<ee.length;e++){let n=ee[e];v.baseAtoms[n]=t.createWritableAtom(v.initialState[n],{debugName:`table/baseAtoms/${n}`}),v.atoms[n]=t.createReadonlyAtom(()=>{let e=v.options,t=e.atoms?.[n],r=t?t.get():v.baseAtoms[n].get();if(t)return r;let i=e.state;if(i&&B(i,n)){let e=i[n];return e===void 0?v.initialState[n]:e}return r},{debugName:`table/atoms/${n}`})}Vr(v),v.store=on(t.createReadonlyAtom(()=>{let e={};for(let t=0;t<ee.length;t++){let n=ee[t];e[n]=v.atoms[n].get()}return e},{compare:P,debugName:`table/store`}));for(let e=0;e<y.length;e++){let t=y[e];t.initTableInstanceData?.(v),t.initCellInstanceData&&v._cellInstanceInitFns.push(t.initCellInstanceData.bind(t)),t.initColumnInstanceData&&v._columnInstanceInitFns.push(t.initColumnInstanceData.bind(t)),t.initHeaderGroupInstanceData&&v._headerGroupInstanceInitFns.push(t.initHeaderGroupInstanceData.bind(t)),t.initHeaderInstanceData&&v._headerInstanceInitFns.push(t.initHeaderInstanceData.bind(t)),t.initRowInstanceData&&v._rowInstanceInitFns.push(t.initRowInstanceData.bind(t)),t.constructTableAPIs?.(v)}return v}function Xr(){return z()}function Zr(){return{size:150,minSize:20,maxSize:2**53-1}}function Qr(e){let t=Zr(),n=e.table.atoms.columnSizing?.get(),r=n&&B(n,e.id)?n[e.id]:void 0;return Math.min(Math.max(e.columnDef.minSize??t.minSize,r??e.columnDef.size??t.size),e.columnDef.maxSize??t.maxSize)}function $r(e){let t=z(),n=z(),r=Array(e.length),i=0;for(let n=0;n<e.length;n++){let a=e[n],o=q(a,`getSize`,Qr);r[n]=o,t[a.id]=i,i+=o}let a=0;for(let t=e.length-1;t>=0;t--)n[e[t].id]=a,a+=r[t];return{starts:t,afters:n}}function ei(e){return{all:$r(Y(e)),center:$r(Y(e,`center`)),start:$r(Y(e,`start`)),end:$r(Y(e,`end`))}}function ti(e){return e===`start`?`start`:e===`end`?`end`:e===`center`?`center`:`all`}function ni(e,t){return q(e.table,`getColumnOffsets`,ei)[ti(t)].starts[e.id]??0}function ri(e,t){return q(e.table,`getColumnOffsets`,ei)[ti(t)].afters[e.id]??0}function ii(e){ci(e.table,t=>{let n=z(),r=Object.keys(t);for(let i=0;i<r.length;i++){let a=r[i];a!==e.id&&(n[a]=t[a])}return n})}function ai(e){if(!e.subHeaders.length)return Qr(e.column);let t=0;for(let n=0;n<e.subHeaders.length;n++)t+=ai(e.subHeaders[n]);return t}function oi(e){return ai(e)}function si(e){if(e.index>0){let t=e.headerGroup?.headers[e.index-1];if(t)return q(t,`getStart`,si)+q(t,`getSize`,oi)}return 0}function ci(e,t){e.options.onColumnSizingChange?.(t)}function li(e,t){ci(e,t?z():Object.assign(z(),R(e.initialState.columnSizing??{})))}function ui(e){let t=0;for(let n=0;n<e.length;n++)t+=q(e[n],`getSize`,Qr);return t}function di(e){return e.getHeaderGroups()[0]?.headers.reduce((e,t)=>e+oi(t),0)??0}function fi(e){return ui(Y(e,`start`))}function pi(e){return ui(Y(e,`center`))}function mi(e){return ui(Y(e,`end`))}function hi(){return{startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}}function gi(e){return(e.columnDef.enableResizing??!0)&&(e.table.options.enableColumnResizing??!0)}function _i(e){return e.table.atoms.columnResizing?.get()?.isResizingColumn===e.id}function vi(e,t){let n=e.table.getColumn(e.column.id),r=gi(n);return i=>{if(!r||Ci(i)&&i.touches.length>1)return;let a=oi(e),o=e.getLeafHeaders().map(e=>[e.column.id,Qr(e.column)]),s=Ci(i)?Math.round(i.touches[0].clientX):i.clientX,c=z(),l=(e,t)=>{if(typeof t!=`number`)return;let r=n.table,i=r.options.columnResizeMode===`onChange`||e===`end`;r._reactivity.batch(()=>{yi(r,e=>{let n=r.options.columnResizeDirection===`rtl`?-1:1,a=(t-(e.startOffset??0))*n,o=e.startSize??0,s=Math.max(o>0?a/o:0,-.999999);if(i){let t=e.columnSizingStart;for(let e=0;e<t.length;e++){let n=t[e],r=n[1];c[n[0]]=Math.round(Math.max(r>0?r+r*s:a/t.length,0)*100)/100}}return{...e,deltaOffset:a,deltaPercentage:s}}),i&&ci(r,e=>Object.assign(z(),e,c))})},u=null,d=!1,f,p=()=>{d?(d=!1,l(`move`,f),u=requestAnimationFrame(p)):u=null},m=e=>{f=e,typeof requestAnimationFrame==`function`?u===null?(l(`move`,e),u=requestAnimationFrame(p)):d=!0:l(`move`,e)},h=e=>{u!==null&&(cancelAnimationFrame(u),u=null,d=!1),n.table._reactivity.batch(()=>{l(`end`,e??f),yi(n.table,e=>({...e,isResizingColumn:!1,startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,columnSizingStart:[]}))})},g=t||(typeof document<`u`?document:null),_={moveHandler:e=>m(e.clientX),upHandler:e=>{g?.removeEventListener(`mousemove`,_.moveHandler),g?.removeEventListener(`mouseup`,_.upHandler),h(e.clientX)}},v={moveHandler:e=>(e.cancelable&&(e.preventDefault(),e.stopPropagation()),m(e.touches[0].clientX),!1),upHandler:e=>{y(),e.cancelable&&(e.preventDefault(),e.stopPropagation()),h(e.touches[0]?.clientX)},cancelHandler:()=>{y(),h()}},y=()=>{g?.removeEventListener(`touchmove`,v.moveHandler),g?.removeEventListener(`touchend`,v.upHandler),g?.removeEventListener(`touchcancel`,v.cancelHandler)},b=Si()?{passive:!1}:!1;Ci(i)?(g?.addEventListener(`touchmove`,v.moveHandler,b),g?.addEventListener(`touchend`,v.upHandler,b),g?.addEventListener(`touchcancel`,v.cancelHandler,b)):(g?.addEventListener(`mousemove`,_.moveHandler,b),g?.addEventListener(`mouseup`,_.upHandler,b)),yi(n.table,e=>({...e,startOffset:s,startSize:a,deltaOffset:0,deltaPercentage:0,columnSizingStart:o,isResizingColumn:n.id}))}}function yi(e,t){e.options.onColumnResizingChange?.(t)}function bi(e,t){yi(e,t?hi():R(e.initialState.columnResizing??hi()))}var xi=null;function Si(){if(typeof xi==`boolean`)return xi;let e=!1;try{let t={get passive(){return e=!0,!1}},n=()=>{};window.addEventListener(`test`,n,t),window.removeEventListener(`test`,n)}catch{e=!1}return xi=e,xi}function Ci(e){return e.type===`touchstart`}var wi={getInitialState:e=>({columnResizing:hi(),...e}),getDefaultTableOptions:e=>({columnResizeMode:`onEnd`,columnResizeDirection:`ltr`,onColumnResizingChange:V(`columnResizing`,e)}),assignColumnPrototype:(e,t)=>{K(`columnResizingFeature`,e,t,{column_getCanResize:{fn:e=>gi(e)},column_getIsResizing:{fn:e=>_i(e)}})},assignHeaderPrototype:(e,t)=>{K(`columnResizingFeature`,e,t,{header_getResizeHandler:{fn:(e,t)=>vi(e,t)}})},constructTableAPIs:e=>{G(`columnResizingFeature`,e,{table_setColumnResizing:{fn:t=>yi(e,t)},table_resetHeaderSizeInfo:{fn:t=>bi(e,t)}})}},Ti={getInitialState:e=>({columnSizing:Xr(),...e}),getDefaultColumnDef:()=>Zr(),getDefaultTableOptions:e=>({onColumnSizingChange:V(`columnSizing`,e)}),assignColumnPrototype:(e,t)=>{K(`columnSizingFeature`,e,t,{column_getSize:{fn:e=>Qr(e),memoDeps:e=>[t.options.columns,t.atoms.columnSizing?.get()?.[e.id]]},column_getStart:{fn:(e,t)=>ni(e,t)},column_getAfter:{fn:(e,t)=>ri(e,t)},column_resetSize:{fn:e=>ii(e)}})},assignHeaderPrototype:(e,t)=>{K(`columnSizingFeature`,e,t,{header_getSize:{fn:e=>oi(e),memoDeps:e=>[t.options.columns,e.column.columns.length>0?t.atoms.columnSizing?.get():t.atoms.columnSizing?.get()?.[e.column.id]]},header_getStart:{fn:e=>si(e),memoDeps:()=>[t.options.columns,t.atoms.columnSizing?.get(),t.atoms.columnOrder?.get(),t.atoms.columnPinning?.get(),t.atoms.columnVisibility?.get(),t.atoms.grouping?.get(),t.options.groupedColumnMode]}})},constructTableAPIs:e=>{G(`columnSizingFeature`,e,{table_getColumnOffsets:{fn:()=>ei(e),memoDeps:()=>[e.options.columns,e.atoms.columnSizing?.get(),e.atoms.columnOrder?.get(),e.atoms.columnPinning?.get(),e.atoms.columnVisibility?.get(),e.atoms.grouping?.get(),e.options.groupedColumnMode]},table_setColumnSizing:{fn:t=>ci(e,t)},table_resetColumnSizing:{fn:t=>li(e,t)},table_getTotalSize:{fn:()=>di(e),memoDeps:()=>[e.atoms.columnSizing?.get(),e.getHeaderGroups()]},table_getStartTotalSize:{fn:()=>fi(e),memoDeps:()=>[e.atoms.columnSizing?.get(),e.getHeaderGroups()]},table_getCenterTotalSize:{fn:()=>pi(e),memoDeps:()=>[e.atoms.columnSizing?.get(),e.getHeaderGroups()]},table_getEndTotalSize:{fn:()=>mi(e),memoDeps:()=>[e.atoms.columnSizing?.get(),e.getHeaderGroups()]}})}};function Ei(){return z()}function Di(e,t){Oi(e)&&Pi(e.table,n=>{let r=Object.assign(z(),n),i=t??!q(e,`getIsVisible`,Z),a=e.getLeafColumns();for(let e=0;e<a.length;e++){let t=a[e];Oi(t)&&(r[t.id]=i)}return r})}function Z(e){let t=e.table.atoms.columnVisibility?.get();if(!t)return!0;let n=e.columns;return n.length?n.some(e=>q(e,`getIsVisible`,Z)):(B(t,e.id)?t[e.id]:void 0)??!0}function Oi(e){return(e.columnDef.enableHiding??!0)&&(e.table.options.enableHiding??!0)}function ki(e){return t=>{Di(e,t.target.checked)}}function Ai(e){let t=e.getAllCells(),n=[];for(let e=0;e<t.length;e++){let r=t[e];q(r.column,`getIsVisible`,Z)&&n.push(r)}return On(e.table,n,e=>e.column.id,()=>q(e,`getVisibleCellsByColumnId`,ji))}function ji(e){let t=z(),n=e.getAllCells();for(let e=0;e<n.length;e++){let r=n[e];q(r.column,`getIsVisible`,Z)&&(t[r.column.id]=r)}return t}function Mi(e){return e.getAllFlatColumns().filter(e=>q(e,`getIsVisible`,Z))}function Ni(e){return e.getAllLeafColumns().filter(e=>q(e,`getIsVisible`,Z))}function Pi(e,t){W(e,`columnVisibility`,t)}function Fi(e,t){Pi(e,t?z():Object.assign(z(),R(e.initialState.columnVisibility??{})))}function Ii(e,t){t??=!Li(e);let n=z(),r=e.getAllLeafColumns();for(let e=0;e<r.length;e++){let i=r[e];n[i.id]=t||!Oi(i)}Pi(e,n)}function Li(e){return!e.getAllLeafColumns().some(e=>!q(e,`getIsVisible`,Z))}function Ri(e){return e.getAllLeafColumns().some(e=>q(e,`getIsVisible`,Z))}function zi(e){return t=>{Ii(e,t.target.checked)}}var Bi={getInitialState:e=>({columnVisibility:Ei(),...e}),getDefaultTableOptions:e=>({onColumnVisibilityChange:V(`columnVisibility`,e)}),assignColumnPrototype:(e,t)=>{K(`columnVisibilityFeature`,e,t,{column_getIsVisible:{fn:e=>Z(e),memoDeps:e=>[t.options.columns,t.atoms.columnVisibility?.get(),e.columns]},column_getCanHide:{fn:e=>Oi(e)},column_getToggleVisibilityHandler:{fn:e=>ki(e)},column_toggleVisibility:{fn:(e,t)=>Di(e,t)}})},assignRowPrototype:(e,t)=>{K(`columnVisibilityFeature`,e,t,{row_getVisibleCells:{fn:e=>Ai(e),memoDeps:e=>[e.getAllCells(),t.atoms.columnPinning?.get(),t.atoms.columnVisibility?.get()]},row_getVisibleCellsByColumnId:{fn:e=>ji(e),memoDeps:e=>[e.getAllCells(),t.atoms.columnVisibility?.get()]}})},constructTableAPIs:e=>{G(`columnVisibilityFeature`,e,{table_getVisibleFlatColumns:{fn:()=>Mi(e),memoDeps:()=>[e.atoms.columnVisibility?.get(),e.atoms.columnOrder?.get(),e.atoms.grouping?.get(),e.options.columns,e.options.groupedColumnMode]},table_getVisibleLeafColumns:{fn:()=>Ni(e),memoDeps:()=>[e.atoms.columnVisibility?.get(),e.atoms.columnOrder?.get(),e.atoms.grouping?.get(),e.options.columns,e.options.groupedColumnMode]},table_setColumnVisibility:{fn:t=>Pi(e,t)},table_resetColumnVisibility:{fn:t=>Fi(e,t)},table_toggleAllColumnsVisible:{fn:t=>Ii(e,t)},table_getIsAllColumnsVisible:{fn:()=>Li(e)},table_getIsSomeColumnsVisible:{fn:()=>Ri(e)},table_getToggleAllColumnsVisibilityHandler:{fn:()=>zi(e)}})}};function Vi(){return z()}function Hi(e,t){e.options.onRowSelectionChange?.(t)}function Ui(e,t){e._lastSelectedRowId=null,Hi(e,t?z():Object.assign(z(),R(e.initialState.rowSelection??{})))}function Wi(e,t,n){e._lastSelectedRowId=null,Hi(e,r=>{if(t=t===void 0?!q(e,`getIsAllRowsSelected`,Zi):t,n?.deselectAll&&!t)return z();let i=Object.assign(z(),r),a=e.getPreGroupedRowModel().flatRows;if(t){let e=new Map;a.forEach(t=>{fa(t,e)&&(i[t.id]=!0)})}else a.forEach(e=>{Q(e)&&delete i[e.id]});return i})}function Gi(e,t,n){e._lastSelectedRowId=null,Hi(e,r=>{let i=t===void 0?!q(e,`getIsAllPageRowsSelected`,Qi):t;if(n?.deselectAll&&!i)return z();let a=Object.assign(z(),r);return e.getRowModel().rows.forEach(t=>{da(a,t.id,i,!0,e,!0)}),a})}function Ki(e){return e.getCoreRowModel()}function qi(e){let t=e.getCoreRowModel();return q(e,`getIsSomeRowsSelected`,$i)?ha(t,e):{rows:[],flatRows:[],rowsById:z()}}function Ji(e){let t=e.getFilteredRowModel();return q(e,`getIsSomeRowsSelected`,$i)?ha(t,e):{rows:[],flatRows:[],rowsById:z()}}function Yi(e){let t=e.getSortedRowModel();return q(e,`getIsSomeRowsSelected`,$i)?ha(t,e):{rows:[],flatRows:[],rowsById:z()}}function Xi(e){return Object.keys(e.atoms.rowSelection?.get()??{})}function Zi(e){let t=e.getFilteredRowModel().flatRows,n=e.atoms.rowSelection?.get()??{},r=!!(t.length&&Object.keys(n).length);if(r){let e=new Map;t.some(t=>!ga(t,n)&&fa(t,e))&&(r=!1)}return r}function Qi(e){let t=e.getPaginatedRowModel().flatRows,n=e.atoms.rowSelection?.get()??{},r=new Map,i=!1;for(let e=0;e<t.length;e++){let a=t[e];if(ga(a,n))!i&&fa(a,r)&&(i=!0);else if(fa(a,r))return!1}return i}function $i(e){return q(e,`getSelectedRowIds`,Xi).length>0}function ea(e){return e.getPaginatedRowModel().flatRows.filter(e=>Q(e)).some(e=>ia(e)||q(e,`getIsSomeSelected`,aa))}function ta(e){return t=>{Wi(e,t.target.checked)}}function na(e){return t=>{Gi(e,t.target.checked)}}function ra(e,t,n){let r=ia(e);Hi(e.table,i=>{t=t===void 0?!r:t;let a=Object.assign(z(),i);return da(a,e.id,t,(n?.selectChildren??!0)&&ca(e),e.table),!t&&n?.deselectParents&&pa(a,e),a})}function ia(e){return ga(e,e.table.atoms.rowSelection?.get()??{})}function aa(e){return _a(e)===`some`}function oa(e){return _a(e)===`all`}function Q(e){let t=e.table.options;return typeof t.enableRowSelection==`function`?t.enableRowSelection(e):t.enableRowSelection??!0}function sa(e){let t=e.table.options;return typeof t.enableSubRowSelection==`function`?t.enableSubRowSelection(e):t.enableSubRowSelection??!0}function ca(e){let t=e.table.options;return typeof t.enableMultiRowSelection==`function`?t.enableMultiRowSelection(e):t.enableMultiRowSelection??!0}function la(e,t){let n=Q(e);return r=>{if(!n)return;let i=r,a=e.table,o=i.target.checked,s=a._lastSelectedRowId;(!(a.options.enableRowRangeSelection!==!1&&s!==null&&ca(e)&&(a.options.isRowRangeSelectionEvent?.(r)??!1))||!ua(e,s,o,t))&&ra(e,o,t),a._lastSelectedRowId=e.id}}function ua(e,t,n,r){let i=r?.selectChildren??!0,a=e.table,o=a.getRowsInDisplayOrder(),s=a.getPrePaginatedRowModel().rowsById[t]??a.getCoreRowModel().rowsById[t];if(!s)return!1;let c=s.getDisplayIndex(),l=e.getDisplayIndex(),u=o[c],d=o[l];if(c<0||l<0||c>=o.length||l>=o.length||u?.id!==s.id||d?.id!==e.id||!ca(s)||!ca(e))return!1;let f=Math.min(c,l),p=Math.max(c,l);return Hi(a,e=>{let t=Object.assign(z(),e);for(let e=f;e<=p;e++){let s=o[e];Q(s)&&ca(s)&&(da(t,s.id,n,i,a),!n&&r?.deselectParents&&pa(t,s))}return t}),!0}function da(e,t,n,r,i,a){let o=i.getRow(t,!0);n?(ca(o)||Object.keys(e).forEach(t=>delete e[t]),Q(o)&&(e[t]=!0)):(!a||Q(o))&&delete e[t],r&&o.subRows.length&&sa(o)&&o.subRows.forEach(t=>da(e,t.id,n,r,i,a))}function fa(e,t){if(!Q(e))return!1;let n=e.table;if(n.options.enableSubRowSelection===!0)return!0;let r=e.parentId;if(r===void 0)return!0;let i=t.get(r);if(i!==void 0)return i;let a=n.getCoreRowModel().rowsById,o=[],s=!0,c=r;for(;c!==void 0;){let e=t.get(c);if(e!==void 0){s=e;break}o.push(c);let r=a[c]??n.getRow(c,!0);if(!sa(r)){s=!1;break}c=r.parentId}return o.forEach(e=>t.set(e,s)),s}function pa(e,t){let n=t.table.getCoreRowModel().rowsById,r=t.parentId;for(;r!==void 0;)delete e[r],r=(n[r]??t.table.getRow(r,!0)).parentId}function ma(e,t,n,r){let i=[];for(let a=0;a<e.length;a++){let o=e[a],s=ga(o,t);if(s&&(n.push(o),r[o.id]=o),o.subRows.length){let e=ma(o.subRows,t,n,r);if(s){let t=Object.create(Object.getPrototypeOf(o));dn(t,o),t.subRows=e,i.push(t)}}else s&&i.push(o)}return i}function ha(e,t){let n=[],r=z(),i=t.atoms.rowSelection?.get()??{};return{rows:ma(e.rows,i,n,r),flatRows:n,rowsById:r}}function ga(e,t){return!!(B(t,e.id)&&t[e.id])}function _a(e){if(!e.subRows.length)return!1;let t=e.table.atoms.rowSelection?.get()??{},n=!1,r=!0,i=!1;for(let a=0;a<e.subRows.length;a++){let o=e.subRows[a];if(n&&!r)break;if(Q(o)&&(i=!0,ga(o,t)?n=!0:r=!1),o.subRows.length){let e=_a(o);e===`all`?(n=!0,i=!0):e===`some`?(n=!0,r=!1,i=!0):r=!1}}return i?r?`all`:n?`some`:!1:!1}var va={initTableInstanceData:e=>{e._lastSelectedRowId=null},resetTableInstanceData:e=>{e._lastSelectedRowId=null},getInitialState:e=>({rowSelection:Vi(),...e}),getDefaultTableOptions:e=>({onRowSelectionChange:V(`rowSelection`,e),enableRowSelection:!0,enableMultiRowSelection:!0,enableRowRangeSelection:!0,enableSubRowSelection:!0,isRowRangeSelectionEvent:e=>{let t=e;return!!(t.shiftKey||t.nativeEvent?.shiftKey)}}),assignRowPrototype:(e,t)=>{K(`rowSelectionFeature`,e,t,{row_toggleSelected:{fn:(e,t,n)=>ra(e,t,n)},row_getIsSelected:{fn:e=>ia(e)},row_getIsSomeSelected:{fn:e=>aa(e),memoDeps:e=>[e.subRows,e.table.atoms.rowSelection?.get(),e.table.options.enableRowSelection]},row_getIsAllSubRowsSelected:{fn:e=>oa(e),memoDeps:e=>[e.subRows,e.table.atoms.rowSelection?.get(),e.table.options.enableRowSelection]},row_getCanSelect:{fn:e=>Q(e)},row_getCanSelectSubRows:{fn:e=>sa(e)},row_getCanMultiSelect:{fn:e=>ca(e)},row_getToggleSelectedHandler:{fn:(e,t)=>la(e,t)}})},constructTableAPIs:e=>{G(`rowSelectionFeature`,e,{table_setRowSelection:{fn:t=>Hi(e,t)},table_resetRowSelection:{fn:t=>Ui(e,t)},table_toggleAllRowsSelected:{fn:(t,n)=>Wi(e,t,n)},table_toggleAllPageRowsSelected:{fn:(t,n)=>Gi(e,t,n)},table_getPreSelectedRowModel:{fn:()=>Ki(e)},table_getSelectedRowModel:{fn:()=>qi(e),memoDeps:()=>[e.atoms.rowSelection?.get(),e.getCoreRowModel()]},table_getFilteredSelectedRowModel:{fn:()=>Ji(e),memoDeps:()=>[e.atoms.rowSelection?.get(),e.getFilteredRowModel()]},table_getGroupedSelectedRowModel:{fn:()=>Yi(e),memoDeps:()=>[e.atoms.rowSelection?.get(),e.getSortedRowModel()]},table_getSelectedRowIds:{fn:()=>Xi(e),memoDeps:()=>[e.atoms.rowSelection?.get()]},table_getIsAllRowsSelected:{fn:()=>Zi(e),memoDeps:()=>[e.atoms.rowSelection?.get(),e.getFilteredRowModel(),e.options.enableRowSelection,e.options.enableSubRowSelection]},table_getIsAllPageRowsSelected:{fn:()=>Qi(e),memoDeps:()=>[e.atoms.rowSelection?.get(),e.getPaginatedRowModel(),e.options.enableRowSelection,e.options.enableSubRowSelection]},table_getIsSomeRowsSelected:{fn:()=>$i(e),memoDeps:()=>[e.atoms.rowSelection?.get()]},table_getIsSomePageRowsSelected:{fn:()=>ea(e),memoDeps:()=>[e.atoms.rowSelection?.get(),e.getPaginatedRowModel(),e.options.enableRowSelection]},table_getToggleAllRowsSelectedHandler:{fn:()=>ta(e)},table_getToggleAllPageRowsSelectedHandler:{fn:()=>na(e)}})}},ya=typeof window>`u`?F.useEffect:F.useLayoutEffect;function ba(e,t){let[{table:n,rootSource:r}]=(0,F.useState)(()=>{let t=Yr({...e,features:{coreReactivityFeature:ln(),...e.features}});return t.Subscribe=(e=>an({...e,source:e.source??t.store})),t.FlexRender=rn,{table:t,rootSource:cn(t.store,P)}}),i=n;Gr(i,t=>({...t,...e}),{syncExternalState:!1});let a=i.options.state,o=r.get(),s=mt(r,t,{compare:P});return ya(()=>{r.markCommitted(o),Hr(i,a??null,P)}),(0,F.useMemo)(()=>({...n,options:e,state:s}),[n,e,s])}var $=u();function xa(e,t){let[n,...r]=e.map(t),i=JSON.stringify(n);return{value:n,mixed:r.some(e=>JSON.stringify(e)!==i)}}var Sa=`max-sm:hidden`,Ca=100;function wa({selected:e,total:t,collection:r,onClear:i}){let a=pe(`bulk_update_tickets`),o=pe(`bulk_delete_tickets`),s=De(),[c,u]=(0,F.useState)(!1),[d,f]=(0,F.useState)(null),m=e[0]?.projectId,h=_e(m??``,!!m),g=St(m);if(!m)return null;let _=e.map(e=>({ticketId:e.id,expectedVersion:e.version}));async function v(e){u(!0);try{await e()}catch(e){throw await s.invalidateQueries({queryKey:[`kanvil`]}),e}finally{u(!1)}}let ee=e=>v(async()=>{for(let t=0;t<_.length;t+=Ca)await a.mutateAsync({projectId:m,tickets:_.slice(t,t+Ca),changes:e}).catch(e=>{throw t&&re.warning(l(`ticket.selection.partlyApplied`,{done:t,count:_.length})),e})});function te(t,n){c||ee(t).then(()=>{re.success(l(`ticket.selection.applied`,{label:n,count:e.length})),i()}).catch(Ee)}let x=e.every(e=>e.status===`backlog`&&!e.archived),ae=e.every(e=>e.archived),oe=xa(e,e=>e.labels.toSorted()),ce=xa(e,e=>e.dueAt);return(0,$.jsx)(`div`,{className:`pointer-events-none fixed right-4 bottom-4 z-40 w-[100cqw] max-w-none md:right-10`,children:(0,$.jsxs)(`div`,{className:`pointer-events-auto mx-auto flex w-fit max-w-full flex-wrap items-center justify-center gap-1 rounded-xl border bg-popover p-1.5 text-popover-foreground shadow-lg animate-in fade-in-0 slide-in-from-bottom-4 duration-200`,role:`region`,"aria-label":l(`ticket.selection.region`),children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-1 pr-1`,children:[(0,$.jsx)(b,{label:l(`ticket.selection.clear`),size:`icon-sm`,disabled:c,onClick:i,children:(0,$.jsx)(p,{})}),(0,$.jsx)(`span`,{className:`text-xs font-medium whitespace-nowrap tabular-nums`,role:`status`,children:e.length===t?l(`ticket.selection.selected`,{count:e.length}):(0,$.jsx)(Ne,{i18nKey:`ticket.selection.selectedOf`,count:e.length,values:{total:t},components:{wide:(0,$.jsx)(`span`,{className:Sa})}})}),c&&(0,$.jsx)(me,{className:`size-3.5`})]}),(0,$.jsx)(ye,{orientation:`vertical`,className:`hidden h-5! sm:block`}),xt.map(t=>{let n=vt[t],{value:r,mixed:i}=xa(e,e=>Nt(e,t));return(0,$.jsxs)(j,{property:t,projectId:m,value:r,mixed:i,disabled:c,align:`end`,onChange:e=>te(Et(t,e),At[t]),children:[(0,$.jsx)(n,{className:`size-3.5 text-muted-foreground`,"aria-hidden":`true`}),(0,$.jsx)(`span`,{className:Sa,children:At[t]})]},t)}),(0,$.jsx)(Ve,{replace:!0,value:oe.value,mixed:oe.mixed,disabled:c,textClassName:Sa,onChange:e=>te({labels:e},l(`ticket.tags.labels`))}),(0,$.jsx)(M,{variant:`pill`,label:l(`ticket.date.due`),placeholder:ce.mixed?l(`ticket.selection.mixedDue`):l(`ticket.date.due`),value:!ce.mixed&&ce.value?new Date(ce.value):null,mixed:ce.mixed,disabled:c,textClassName:Sa,onChange:e=>te({dueAt:e?Ft(e):null},l(`ticket.date.due`))}),!!g.data?.length&&(0,$.jsxs)(ne,{children:[(0,$.jsxs)(y,{disabled:c,render:(0,$.jsx)(S,{variant:`ghost`,size:`sm`,className:`h-7 px-2`,"aria-label":l(`ticket.selection.fields`)}),children:[(0,$.jsx)(_t,{className:`size-3.5 text-muted-foreground`,"aria-hidden":`true`}),(0,$.jsx)(`span`,{className:Sa,children:l(`ticket.selection.fields`)})]}),(0,$.jsx)(ie,{align:`end`,className:`w-[min(22rem,calc(100vw-2rem))] gap-1 p-2`,children:g.data.map(t=>{let{value:n,mixed:r}=xa(e,e=>e.customFields[t.id]??null);return(0,$.jsx)(Ze,{variant:`row`,field:t,value:n,mixed:r,disabled:c,align:`end`,onChange:e=>te({customFields:{[t.id]:e}},t.name)},t.id)})})]}),(0,$.jsx)(ye,{orientation:`vertical`,className:`hidden h-5! sm:block`}),(0,$.jsxs)(Bt,{children:[(0,$.jsx)(Qe,{render:(0,$.jsx)(b,{label:l(`ticket.selection.more`),disabled:c}),children:(0,$.jsx)(Le,{})}),(0,$.jsxs)(Ue,{align:`end`,className:`w-52`,children:[x&&(0,$.jsxs)(Ye,{onClick:()=>te({status:`todo`},n.todo),children:[(0,$.jsx)(Zt,{}),l(`ticket.selection.moveTo`,{status:n.todo})]}),ae?(0,$.jsxs)(Ye,{onClick:()=>te({archived:!1},l(`ticket.selection.restoreChange`)),children:[(0,$.jsx)(E,{}),l(`ticket.selection.restore`)]}):(0,$.jsxs)(Ye,{onClick:()=>f(`archive`),children:[(0,$.jsx)(Me,{}),l(`ticket.selection.archive`)]}),h.canDelete&&(0,$.jsxs)(Ye,{variant:`destructive`,disabled:e.length>Ca,onClick:()=>f(`delete`),children:[(0,$.jsx)(Fe,{}),e.length>Ca?l(`ticket.selection.deleteLimit`,{limit:Ca}):l(`ticket.selection.delete`)]})]})]}),(0,$.jsx)(se,{label:l(`ticket.selection.archive`),trigger:!1,open:d===`archive`,onOpenChange:e=>f(e?`archive`:null),description:l(`ticket.selection.archiveConfirm`,{count:e.length,collection:r}),onConfirm:async()=>{await ee({archived:!0}),i()}}),(0,$.jsx)(se,{danger:!0,label:l(`ticket.selection.delete`),trigger:!1,open:d===`delete`,onOpenChange:e=>f(e?`delete`:null),description:l(`ticket.selection.deleteConfirm`,{count:e.length,collection:r}),onConfirm:()=>v(async()=>{await o.mutateAsync({projectId:m,tickets:_}),re.success(l(`ticket.selection.deleted`,{count:e.length})),i()})})]})})}var Ta=42,Ea=14,Da=3;function Oa(e,t,n){if(e===`calendar`)return{from:D(Ke(t),{weekStartsOn:n}),to:N(O(A(k(t),{weekStartsOn:n})),1)};let r=D(t,{weekStartsOn:n});return{from:r,to:N(r,Ta)}}var ka=(e,t,n)=>e===`calendar`?st(t,n):N(t,n*Ea);function Aa(e){let t=e.startAt??e.dueAt,n=e.dueAt??e.startAt;return t&&n?{start:O(new Date(t)),end:O(new Date(n))}:null}var ja=()=>d({dateStyle:`full`}),Ma=()=>d({dateStyle:`medium`}),Na=()=>d({month:`long`,year:`numeric`}),Pa=()=>d({weekday:`long`}),Fa=()=>d({weekday:`short`}),Ia=()=>d({weekday:`narrow`}),La=()=>d({month:`short`}),Ra=e=>e+2,za=({start:e,end:t})=>e.getTime()===t.getTime()?Ma().format(e):l(`ticket.schedule.range`,{from:Ma().format(e),to:Ma().format(t)});function Ba({layout:e,tickets:t,anchor:n,range:r,onAnchor:i}){let[a]=(0,F.useState)(Dt),o=t.flatMap(e=>{let t=Aa(e);return t&&t.end>=r.from&&t.start<r.to?[{ticket:e,...t}]:[]}).toSorted((e,t)=>e.start.getTime()-t.start.getTime()||e.ticket.number-t.ticket.number),s=N(r.to,-1),c=e===`calendar`?Na().format(n):l(`ticket.schedule.range`,{from:Ma().format(r.from),to:Ma().format(s)}),u=e===`calendar`;return(0,$.jsxs)(`section`,{"aria-label":l(u?`ticket.schedule.calendar`:`ticket.schedule.timeline`),className:`@container flex min-h-0 flex-1 flex-col animate-in fade-in-0`,children:[(0,$.jsxs)(`div`,{className:`flex min-h-11 items-center gap-1 py-1`,children:[(0,$.jsx)(`h2`,{className:`m-0 mr-auto text-sm font-medium`,"aria-live":`polite`,children:c}),(0,$.jsx)(S,{variant:`ghost`,size:`sm`,onClick:()=>i(null),children:l(`ticket.schedule.today`)}),(0,$.jsx)(b,{label:l(u?`ticket.schedule.previousMonth`:`ticket.schedule.previousWeeks`),onClick:()=>i(ka(e,n,-1)),children:(0,$.jsx)(wt,{})}),(0,$.jsx)(b,{label:l(u?`ticket.schedule.nextMonth`:`ticket.schedule.nextWeeks`),onClick:()=>i(ka(e,n,1)),children:(0,$.jsx)(Tt,{})})]}),u?(0,$.jsx)(Ha,{spans:o,anchor:n,range:r,title:c,today:a}):o.length?(0,$.jsx)(Wa,{spans:o,range:r,today:a}):(0,$.jsx)(g,{title:l(`ticket.schedule.emptyWeeks`)})]})}function Va({ticket:e,wrap:t=!1}){return(0,$.jsxs)(yt,{projectId:e.projectId,ticketId:e.id,className:w(`flex min-w-0 items-baseline gap-1.5 rounded-sm px-1 text-[11.5px] leading-5 hover:bg-muted`,!t&&`truncate`),children:[(0,$.jsx)(`span`,{"aria-hidden":`true`,className:w(`size-1.5 shrink-0 rounded-full bg-current`,t?`mt-[7px] self-start`:`self-center`,ge(e.status))}),(0,$.jsx)(`span`,{className:`shrink-0 font-mono text-[10.5px] text-muted-foreground`,children:e.key}),(0,$.jsx)(`span`,{dir:`auto`,className:w(`min-w-0`,t?`wrap-anywhere`:`truncate`),children:e.title})]})}function Ha({spans:e,anchor:t,range:n,title:r,today:i}){let a=Array.from({length:ze(n.to,n.from)},(e,t)=>N(n.from,t)),o=Array.from({length:a.length/7},(e,t)=>a.slice(t*7,t*7+7));return(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto overscroll-contain pb-4`,children:(0,$.jsxs)(`table`,{className:`w-full table-fixed border-collapse`,"aria-label":l(`ticket.schedule.monthTickets`,{title:r}),children:[(0,$.jsx)(`thead`,{className:`sticky top-0 z-10 bg-background`,children:(0,$.jsx)(`tr`,{children:(o[0]??[]).map(e=>(0,$.jsx)(`th`,{scope:`col`,className:`h-8 px-2 text-left text-[10.5px] font-medium tracking-[0.08em] text-muted-foreground uppercase`,children:(0,$.jsxs)(`abbr`,{title:Pa().format(e),className:`no-underline`,children:[(0,$.jsx)(`span`,{className:`@max-[600px]:hidden`,children:Fa().format(e)}),(0,$.jsx)(`span`,{className:`@min-[601px]:hidden`,children:Ia().format(e)})]})},e.getDay()))})}),(0,$.jsx)(`tbody`,{children:o.map(n=>(0,$.jsx)(`tr`,{children:n.map(n=>(0,$.jsx)(Ua,{day:n,outside:!rt(n,t),today:et(n,i),spans:e.filter(e=>e.start<=n&&n<=e.end)},n.toISOString()))},n[0]?.toISOString()))})]})})}function Ua({day:e,outside:t,today:n,spans:r}){let i=r.length-Da,a=ja().format(e);return(0,$.jsxs)(`td`,{className:w(`h-28 border border-border p-1 align-top @max-[600px]:h-16`,t&&`bg-muted/40 text-muted-foreground`),children:[(0,$.jsx)(`time`,{dateTime:Be(e,`yyyy-MM-dd`),"aria-label":a,"aria-current":n?`date`:void 0,className:w(`mb-0.5 grid size-6 place-items-center rounded-full text-xs tabular-nums`,n&&`bg-primary font-medium text-primary-foreground`),children:e.getDate()}),r.length>0&&(0,$.jsx)(`ul`,{className:`m-0 grid list-none gap-px p-0 @max-[600px]:hidden`,children:r.slice(0,Da).map(({ticket:e})=>(0,$.jsx)(`li`,{className:`min-w-0`,children:(0,$.jsx)(Va,{ticket:e})},e.id))}),r.length>0&&(0,$.jsxs)(ne,{children:[(0,$.jsxs)(y,{render:(0,$.jsx)(S,{variant:`ghost`,size:`sm`,"aria-label":l(`ticket.schedule.showDay`,{count:r.length,day:a}),className:w(`h-6 px-1 text-[11px] text-muted-foreground`,i<=0&&`@min-[601px]:hidden`)}),children:[(0,$.jsx)(`span`,{className:`@max-[600px]:hidden`,children:l(`ticket.schedule.more`,{count:i})}),(0,$.jsx)(`span`,{className:`@min-[601px]:hidden`,children:r.length})]}),(0,$.jsxs)(ie,{align:`start`,className:`w-[min(20rem,calc(100vw-2rem))] gap-2 p-3`,children:[(0,$.jsx)(h,{className:`text-xs font-medium`,children:a}),(0,$.jsx)(`ul`,{className:`m-0 grid list-none gap-1 p-0`,children:r.map(({ticket:e})=>(0,$.jsx)(`li`,{children:(0,$.jsx)(Va,{ticket:e,wrap:!0})},e.id))})]})]})]})}function Wa({spans:e,range:t,today:n}){let r=ze(t.to,t.from),i=Array.from({length:r},(e,n)=>N(t.from,n)),a=ze(n,t.from);return(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto overscroll-contain pb-4`,children:(0,$.jsxs)(`div`,{className:`grid min-w-max [--rail:18rem] @max-[600px]:[--rail:9rem]`,style:{gridTemplateColumns:`var(--rail) repeat(${r}, 2rem)`},children:[(0,$.jsxs)(`div`,{"aria-hidden":`true`,className:`sticky top-0 z-20 col-span-full grid grid-cols-subgrid`,children:[(0,$.jsx)(`div`,{className:`sticky left-0 z-10 flex items-end border-b bg-background px-3 pb-1 text-[10.5px] font-medium tracking-[0.08em] text-muted-foreground uppercase`,children:l(`ticket.schedule.ticketColumn`)}),i.map((e,t)=>(0,$.jsxs)(`div`,{className:w(`flex flex-col items-center border-b bg-background pt-1 pb-1 text-[10.5px] leading-4 tabular-nums text-muted-foreground`,t===a&&`text-primary`),children:[(0,$.jsx)(`span`,{className:`h-4 font-medium text-foreground`,children:t===0||e.getDate()===1?La().format(e):``}),(0,$.jsx)(`span`,{children:Ia().format(e)}),(0,$.jsx)(`span`,{className:w(`grid size-5 place-items-center rounded-full`,t===a&&`bg-primary text-primary-foreground`),children:e.getDate()})]},e.toISOString()))]}),(0,$.jsx)(`ul`,{"aria-label":l(`ticket.schedule.scheduledTickets`),className:`col-span-full m-0 grid list-none grid-cols-subgrid p-0`,children:e.map(e=>{let n=Math.max(0,ze(e.start,t.from)),i=Math.min(r-1,ze(e.end,t.from));return(0,$.jsxs)(`li`,{className:`col-span-full grid grid-cols-subgrid border-b`,children:[(0,$.jsxs)(`div`,{className:`sticky left-0 z-10 row-start-1 bg-background px-2 py-1.5 [grid-column:1]`,children:[(0,$.jsx)(Va,{ticket:e.ticket,wrap:!0}),(0,$.jsxs)(`span`,{className:`sr-only`,children:[`, `,za(e)]})]}),a>=0&&a<r&&(0,$.jsx)(`div`,{"aria-hidden":`true`,className:`row-start-1 bg-primary/8`,style:{gridColumn:Ra(a)}}),(0,$.jsx)(`div`,{"aria-hidden":`true`,title:za(e),className:w(`row-start-1 mx-0.5 h-5 self-center rounded-md border border-current/60 bg-current/25`,ge(e.ticket.status),e.start<t.from&&`ml-0 rounded-l-none border-l-0`,e.end>=t.to&&`mr-0 rounded-r-none border-r-0`),style:{gridColumn:`${Ra(n)} / ${Ra(i)+1}`}})]},e.ticket.id)})})]})})}var Ga=qr({columnSizingFeature:Ti,columnResizingFeature:wi,rowSelectionFeature:va,columnVisibilityFeature:Bi}),Ka=100;function qa({section:e,collapsed:t,onToggle:n,selection:r}){return(0,$.jsxs)(`div`,{className:`flex items-center`,children:[r&&(0,$.jsx)(`div`,{className:`flex w-11 shrink-0 justify-center pl-3 @max-[850px]:w-8 @max-[850px]:justify-start @max-[850px]:pl-0`,children:(0,$.jsx)(m,{label:l(`ticket.list.selectSection`,{section:e.label}),className:`sr-checkbox`,...r})}),(0,$.jsxs)(S,{variant:`ghost`,className:`flex-1 justify-start gap-2 rounded-none px-3`,"aria-label":l(t?`ticket.list.expandSection`:`ticket.list.collapseSection`,{section:e.label}),"aria-expanded":!t,onClick:n,children:[(0,$.jsx)(ce,{className:w(`size-3 transition-transform duration-200`,t&&`-rotate-90`)}),e.heading,(0,$.jsx)(`span`,{className:`text-xs tabular-nums text-muted-foreground`,children:e.total})]})]})}var Ja=[[`overdue`,0],[`today`,864e5],[`week`,6048e5],[`later`,1/0]],Ya=e=>e===`later`?l(`ticket.list.later`):t[e];function Xa(e,t){if(!e.dueAt)return`none`;let n=new Date(e.dueAt).getTime()-t;return Ja.find(([,e])=>n<e)?.[0]??`later`}function Za({ticket:e,property:t,value:n,iconOnly:r=!1}){let i=_e(e.projectId),{change:a,pending:o}=Ct(e);return i.canWrite?(0,$.jsx)(j,{variant:`cell`,property:t,value:n,projectId:e.projectId,iconOnly:r,disabled:o,onChange:e=>void a({[t]:e})}):(0,$.jsx)(at,{...kt(t,n),projectId:e.projectId,iconOnly:r})}var Qa=()=>[{id:`select`,size:44,enableResizing:!1,enableHiding:!1,header:({table:e})=>(0,$.jsx)(m,{label:l(`ticket.list.selectAll`),className:`sr-checkbox`,checked:e.getIsAllRowsSelected(),indeterminate:e.getIsSomeRowsSelected()&&!e.getIsAllRowsSelected(),onCheckedChange:t=>e.toggleAllRowsSelected(t)}),cell:({row:e})=>(0,$.jsx)(m,{label:l(`ticket.list.selectTicket`,{key:e.original.key}),className:`sr-checkbox`,checked:e.getIsSelected(),onCheckedChange:t=>e.toggleSelected(t)})},{accessorKey:`key`,header:C.key,size:100,minSize:90},{accessorKey:`title`,header:l(`ticket.list.title`),size:400,enableHiding:!1,minSize:200,cell:({row:e})=>(0,$.jsx)(ft,{dir:`auto`,className:`ticket-title block text-[13px] leading-5 font-normal whitespace-normal wrap-anywhere text-foreground hover:text-primary`,to:`/projects/$projectId/tickets/$ticketId`,params:{projectId:e.original.projectId,ticketId:e.original.id},children:e.original.title})},...[`labels`,`scopes`].map(e=>({accessorKey:e,header:C[e],size:140,minSize:120,cell:({row:t})=>(0,$.jsx)(je,{tags:t.original[e],label:l(e===`labels`?`ticket.tags.labels`:`ticket.tags.scopes`),variant:e===`labels`?`secondary`:`outline`})})),{accessorKey:`status`,header:C.status,size:115,minSize:105,cell:({row:e})=>(0,$.jsx)(Za,{ticket:e.original,property:`status`,value:Pt(e.original)})},{accessorKey:`priority`,header:C.priority,size:96,minSize:64,cell:({row:e})=>(0,$.jsx)(Za,{ticket:e.original,property:`priority`,value:e.original.priority,iconOnly:!0})},{accessorKey:`difficulty`,header:C.difficulty,size:106,minSize:85,cell:({row:e})=>(0,$.jsx)(Za,{ticket:e.original,property:`difficulty`,value:e.original.difficulty})},{accessorKey:`kind`,header:C.kind,size:110,cell:({row:e})=>(0,$.jsx)(Za,{ticket:e.original,property:`kind`,value:e.original.kind})},{accessorKey:`assigneeId`,header:C.assigneeId,size:160,cell:({row:e})=>(0,$.jsx)(Za,{ticket:e.original,property:`assignee`,value:e.original.assigneeId})},{accessorKey:`startAt`,header:C.startAt,size:100,minSize:90,cell:({row:e})=>(0,$.jsx)(le,{value:e.original.startAt,open:!1})},{accessorKey:`dueAt`,header:C.dueAt,size:100,minSize:90,cell:({row:e})=>(0,$.jsx)(le,{value:e.original.dueAt,open:!s.some(t=>t===e.original.status)})}],$a=()=>[`createdAt`,`updatedAt`].map(e=>({accessorKey:e,header:C[e],size:130,cell:({row:t})=>(0,$.jsx)(T,{value:t.original[e],className:`text-muted-foreground`})}));function eo({ticket:e,field:t}){let n=_e(e.projectId),{change:r,pending:i}=Ct(e),a=e.customFields[t.id];return n.canWrite?(0,$.jsx)(Ze,{variant:`cell`,field:t,value:a,disabled:i,onChange:e=>void r({customFields:{[t.id]:e}})}):a===void 0?null:(0,$.jsx)(ht,{field:t,value:a})}var to=e=>({id:he(e.id),header:()=>(0,$.jsx)(`span`,{className:`block truncate px-3 text-[10.5px] font-medium tracking-[0.08em] text-muted-foreground uppercase`,children:e.name}),size:140,minSize:90,cell:({row:t})=>(0,$.jsx)(eo,{ticket:t.original,field:e})}),no={key:`number`,title:`title`,labels:`labels`,status:`status`,priority:`priority`,difficulty:`difficulty`,kind:`kind`,assigneeId:`assignee`,startAt:`start`,dueAt:`due`,createdAt:`created`,updatedAt:`updated`},ro=(e,t)=>t===(t.includes(`:`)?Pt(e):e.status),io=()=>({id:`all`,label:l(`ticket.list.all`),heading:null,has:()=>!0}),ao=()=>[{id:`planned`,label:l(`ticket.list.planned`),heading:(0,$.jsx)(`span`,{className:`text-xs`,children:l(`ticket.list.planned`)}),status:`backlog`,archived:`exclude`,has:e=>!e.archived&&e.status===`backlog`},{id:`archived`,label:l(`ticket.list.archived`),heading:(0,$.jsx)(`span`,{className:`text-xs`,children:l(`ticket.list.archived`)}),archived:`only`,has:e=>e.archived}],oo=`a, button, input, label, [role=checkbox], [role=combobox], [role=menu]`,so=`ticket-row cursor-pointer data-[fresh=true]:animate-row-in data-[selected=true]:bg-primary/5 data-[active=true]:bg-muted/60`,co=`data-[density=comfortable]:[&_[data-priority]_svg]:size-5! data-[density=comfortable]:[&_[data-slot=badge]]:h-6 data-[density=comfortable]:[&_[data-slot=badge]]:px-2 data-[density=comfortable]:[&_[data-slot=badge]]:text-xs data-[density=comfortable]:[&_.status]:text-sm data-[density=comfortable]:[&_[data-slot=checkbox]]:size-5 data-[density=comfortable]:[&_.ticket-title]:text-[15px] data-[density=comfortable]:[&_.ticket-title]:leading-6`,lo=`min-w-full table-fixed @min-[1051px]:w-(--table-width)`;function uo({leaves:e}){return(0,$.jsx)(`colgroup`,{children:e.map(e=>(0,$.jsx)(`col`,{"data-column":e.id,style:{width:e.getSize()}},e.id))})}function fo({scope:e,search:t,onSearch:i}){let{peek:s,peekProject:u,period:d,...p}=t,h=`project`in e?e.project:void 0,_=_e(h?.id??``,!!h),y=!!h&&_.canWrite,ne=Te(),ie=ee(),le=ut(),[me]=ct(zt.grouping),[ge]=ct(zt.workGrouping),[C]=ct(zt.layout),[ye]=ct(zt.backgrounds),T=`project`in e&&!!e.planning,je=!!h&&!T&&C===`board`,E=h&&!T&&(C===`calendar`||C===`timeline`)?C:void 0,[Me]=ct(zt.weekStart),Ne=d?tt(d):void 0,Le=Ne&&Re(Ne)?Ne:Dt(),D=E?Oa(E,Le,Ge[Me]):void 0,O=T?`planning`:je?`status`:E?`none`:h?me:ge,[ze]=ct(zt.labelDisplay),[Ve]=ct(zt.density),[Ke,Je]=ct(zt.columns),k=JSON.stringify({...p,offset:0,grouping:O,range:D}),[Ze,$e]=(0,F.useState)({filterKey:k,pages:{}}),[et,rt]=(0,F.useState)(()=>new Set),[A,st]=(0,F.useState)(),mt=Ze.filterKey===k?Ze.pages:{},ht=jt(h?.id??``),_t=ht.data??[],vt=!!h&&O===`status`&&ht.isPending,yt=O===`planning`?ao().filter(e=>!e.status||ve(p,`status`,e.status)):vt?[]:O===`status`&&h&&_t.length?_t.filter(e=>ve(p,`status`,e.category)).map(e=>({id:e.id,label:e.name,heading:(0,$.jsx)(at,{property:`status`,value:Ot(e),projectId:h.id}),status:e.category,stateId:e.id,has:t=>t.stateId===e.id})):O===`status`?r.filter(e=>ve(p,`status`,e)).map(e=>({id:e,label:n[e],heading:(0,$.jsx)(we,{property:`status`,value:e}),status:e,has:t=>t.status===e})):[io()],xt=yt.flatMap(e=>Array.from({length:mt[e.id]??1},(t,n)=>({entry:e,offset:n*Ka}))),j=Oe({queries:xt.map(({entry:t,offset:n})=>h?v.query(`list_tickets`,{projectId:h.id,...p,...t.status?{status:t.status,statusNot:void 0}:{},...t.stateId?{stateId:t.stateId}:{},...D?{scheduledFrom:D.from.toISOString(),scheduledTo:D.to.toISOString(),sort:`start`,order:`asc`}:{},archived:t.archived??p.archived,offset:n,limit:Ka}):v.query(`list_my_work`,{workspaceId:`workspaceId`in e?e.workspaceId:void 0,q:p.q,sort:p.sort,order:p.order,offset:n,limit:Ka}))}),Ct=yt.map(e=>({entry:e,data:{items:xt.flatMap((t,n)=>t.entry.id===e.id?j[n]?.data?.items??[]:[]),total:j[xt.findIndex(t=>t.entry.id===e.id)]?.data?.total??0}})),wt=Object.fromEntries(Ct.map(e=>[e.entry.id,Math.max(1,Math.ceil(e.data.total/Ka))])),Tt=yt.some(e=>(mt[e.id]??1)<(wt[e.id]??1));Tt&&$e({filterKey:k,pages:wt});let M=new Map;for(let e of Ct)for(let t of e.data?.items??[]){let e=M.get(t.id);(!e||t.version>e.version)&&M.set(t.id,t)}let kt=A&&M.get(A.id);A?.status&&kt&&M.set(kt.id,{...kt,...Et(`status`,A.status)});let At=vt||Tt||j.some(e=>e.isPending),Nt=[...M.keys()].join(`
|
|
2
|
-
`),[Ft,N]=(0,F.useState)({filterKey:k,ids:null,fresh:new Set});if(Ft.filterKey!==k)N({filterKey:k,ids:null,fresh:new Set});else if(Ft.ids===null)At||N({filterKey:k,ids:Nt,fresh:new Set});else if(Ft.ids!==Nt){let e=new Set(Ft.ids.split(`
|
|
3
|
-
`));N({filterKey:k,ids:Nt,fresh:new Set([...M.keys()].filter(t=>!e.has(t)))})}let Jt=A?.anchor?it([...M.values()],A.id,A.anchor,!!A.below):[...M.values()],Xt=Ct.reduce((e,t)=>e+(t.data?.total??0),0),[Zt,Qt]=(0,F.useState)(()=>Date.now());(0,F.useEffect)(()=>{let e=window.setInterval(()=>{O===`due`&&Qt(Date.now())},6e4);return()=>window.clearInterval(e)},[O]);let P=O===`project`?[...new Set(Jt.map(e=>e.projectId))].map(e=>({id:e,owner:ne.data?.find(t=>t.id===e)})).toSorted((e,t)=>(e.owner?.name??``).localeCompare(t.owner?.name??``)).map(({id:e,owner:t})=>({id:e,label:t?.name??l(`ticket.project.label`),heading:(0,$.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2 text-xs`,children:[t&&(0,$.jsx)(Ae,{project:t,className:`size-4`}),(0,$.jsx)(`span`,{dir:t?`auto`:void 0,className:`truncate`,children:t?.name??l(`ticket.project.label`)})]}),total:Jt.filter(t=>t.projectId===e).length,has:t=>t.projectId===e})):O===`due`?[...Ja.map(([e])=>e),`none`].flatMap(e=>{let t=Jt.filter(t=>Xa(t,Zt)===e).length,n=Ya(e);return t?[{id:e,label:n,heading:(0,$.jsx)(`span`,{className:`text-xs`,children:n}),total:t,has:t=>Xa(t,Zt)===e}]:[]}):Ct.flatMap(({entry:{id:e,label:t,heading:n,has:r},data:i})=>i.total>0||je?[{id:e,label:t,heading:n,has:r,total:i.total}]:[]),en=O!==`none`,tn=e=>en&&!je&&et.has(e),I={isPending:At,error:j.find(e=>e.error)?.error,data:{items:Jt.filter(e=>!P.some(t=>tn(t.id)&&t.has(e))),total:Xt}},nn=Ce({...v.query(`list_views`,{projectId:h?.id??``}),enabled:!!h}),L=pe(`save_view`),rn=pe(`delete_view`),[an,on]=(0,F.useState)(!1),[sn,cn]=(0,F.useState)(``),[ln,un]=(0,F.useState)(!1),[R,dn]=(0,F.useState)(null),z=xe(p),B=z===xe({}),V=nn.data?.find(e=>xe(e.filters)===z),fn=V?.name??l(B?`ticket.list.allTickets`:`ticket.list.customView`),pn=St(h?.id),H=ba({features:Ga,columns:[...Qa(),...(pn.data??[]).map(to),...$a()],data:I.data?.items??[],getRowId:e=>e.id,columnResizeMode:`onChange`,enableRowSelection:y,state:{columnVisibility:{...Object.fromEntries((pn.data??[]).map(e=>[he(e.id),!1])),...Ke,title:!0,select:y}},onColumnVisibilityChange:e=>Je(typeof e==`function`?e(Ke):e)}),mn=H.getSelectedRowModel().rows.map(e=>e.original),U=e=>H.getRowModel().rows.filter(t=>e.has(t.original)),W=P.flatMap(e=>tn(e.id)?[]:U(e).map(e=>e.id)),hn=W.join(`
|
|
4
|
-
`),gn=e=>{let t=U(e),n=t.filter(e=>e.getIsSelected()).length;return{checked:n>0&&n===t.length,indeterminate:n>0&&n<t.length,disabled:!t.length,onCheckedChange:e=>H.setRowSelection(n=>{let r={...n};for(let n of t)e?r[n.id]=!0:delete r[n.id];return r})}},_n=en?c(P.flatMap(e=>{let t=mn.filter(e.has).length;return t?[l(`ticket.list.sectionCount`,{n:t,section:e.label})]:[]})):``,vn=h&&(T?l(`ticket.list.planning`,{project:h.name}):h.name),yn=vn?_n?l(`ticket.list.collection`,{source:vn,sections:_n}):vn:``;(0,F.useEffect)(()=>{!At&&h&&Xe(h.id,hn?hn.split(`
|
|
5
|
-
`):[])},[At,h,hn]);let[G,K]=(0,F.useState)(s??null),[q,bn]=(0,F.useState)(s);s&&s!==q&&(bn(s),K(s));let xn=It(),Sn=e=>{K(e),xn?.open({ticketId:e,projectId:h?.id??M.get(e)?.projectId})};We(W,Sn,()=>q?document.querySelector(`.ticket-row[data-id="${CSS.escape(q)}"] .ticket-title`):null),(0,F.useEffect)(()=>{G&&document.querySelector(`.ticket-row[data-id="${CSS.escape(G)}"]`)?.scrollIntoView({block:`nearest`})},[G]);let Cn=e=>{if(!W.length)return;let t=G?W.indexOf(G):-1,n=t<0?e>0?0:W.length-1:Math.min(W.length-1,Math.max(0,t+e));K(W[n]??null)},J={enabled:!an&&!s&&!E},wn={...J,guard:e=>!(e.target instanceof Element&&e.target.closest(oo)&&!e.target.closest(`.ticket-row[data-active=true]`))};x(`j`,()=>Cn(1),J),x(`ArrowDown`,()=>Cn(1),wn),x(`k`,()=>Cn(-1),J),x(`ArrowUp`,()=>Cn(-1),wn),x(`Enter`,()=>{let e=G?M.get(G):void 0;e&&le({to:`/projects/$projectId/tickets/$ticketId`,params:{projectId:e.projectId,ticketId:e.id}})},wn),x(` `,()=>{G&&M.has(G)&&Sn(G)},{...J,guard:e=>{let t=e.target instanceof Element&&e.target.closest(oo);return!t||t.matches(`.ticket-row[data-active=true] .ticket-title`)}}),x(`x`,()=>{G&&y&&H.getRowModel().rowsById[G]?.toggleSelected()},J);let Tn=e=>{G&&document.querySelector(`.ticket-row[data-id="${CSS.escape(G)}"] [data-column="${e}"] [role=combobox]`)?.click()};x(`s`,()=>Tn(`status`),J),x(`p`,()=>Tn(`priority`),J),x(`a`,()=>Tn(`assigneeId`),J);let En=e=>{H.resetRowSelection(),rt(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},Dn=e=>{H.resetRowSelection(),$e({filterKey:JSON.stringify({...e,offset:0,grouping:O,range:D}),pages:{}}),i({...e,period:d})};x(`c`,()=>{y&&on(!0)},{enabled:!an});let On=p.sort===`manual`,Y=y&&On,kn=(p.order??f[p.sort])===`desc`,An=pe(`move_ticket`),jn=De(),[Mn,Nn]=(0,F.useState)(``),Pn=(0,F.useRef)(!1),Fn=(0,F.useRef)(Promise.resolve()),In=(0,F.useRef)(new Map),Ln=e=>{let{status:t,stateId:r}=Mt(e);return _t.find(e=>e.id===r)?.name??n[t]},Rn=(e,{anchor:t,below:n=!1,status:r})=>{let i=r&&!ro(e,r)?r:void 0,a=t?M.get(t):void 0;if(!a&&!i)return;let o={id:e.id,below:n,...a?{anchor:a.id}:{},...i?{status:i}:{}};st(o);let s={key:e.key,neighbor:a?.key,status:i&&Ln(i)};Nn(l(a?i?n?`ticket.list.movedToBelow`:`ticket.list.movedToAbove`:n?`ticket.list.movedBelow`:`ticket.list.movedAbove`:i?`ticket.list.movedTo`:`ticket.list.moved`,s));let c=n!==kn;Fn.current=Fn.current.then(async()=>{let t=await An.mutateAsync({projectId:e.projectId,ticketId:e.id,expectedVersion:Math.max(e.version,In.current.get(e.id)??0),...a?c?{after:a.id}:{before:a.id}:{},...i?Et(`status`,i):{}});In.current.set(t.id,t.version)}).catch(e=>{jn.invalidateQueries({queryKey:[`kanvil`]}),Ee(e)}).finally(()=>st(e=>e===o?void 0:e))},zn=e=>P.find(t=>t.has(e)),Bn=(e,t)=>{if(t===`previous`||t===`next`){let n=_t.length?_t.map(Ot):[...r],i=n[n.indexOf(_t.length?Pt(e):e.status)+(t===`next`?1:-1)];if(!i)return;let a=zn({...e,...Et(`status`,i)}),o=On&&a?U(a).find(t=>t.id!==e.id)?.id:void 0;return{status:i,...o?{anchor:o}:{}}}let n=zn(e);return Y&&n?nt(U(n).map(e=>e.id),e.id,t):void 0},Vn=(e,t)=>{Pn.current=!0,Rn(e,t)},Hn=e=>h?y:o(ne.data?.find(t=>t.id===e.projectId)??{role:null}).includes(`ticket.write`),Un=e=>{let t=G?M.get(G):void 0,n=t&&Hn(t)&&Bn(t,e);t&&n&&Vn(t,n)},Wn=e=>ot.filter(e=>On||e===`previous`||e===`next`).map(t=>{let n=Bn(e,t);return{command:t,run:n&&(()=>Vn(e,n))}});x(`ArrowUp`,()=>Un(`up`),{...J,alt:!0,shift:!1}),x(`ArrowDown`,()=>Un(`down`),{...J,alt:!0,shift:!1}),x(`ArrowUp`,()=>Un(`top`),{...J,alt:!0,shift:!0}),x(`ArrowDown`,()=>Un(`bottom`),{...J,alt:!0,shift:!0}),x(`[`,()=>Un(`previous`),J),x(`]`,()=>Un(`next`),J),(0,F.useEffect)(()=>{Pn.current&&G&&hn.includes(G)&&(Pn.current=!1,document.querySelector(`.ticket-row[data-id="${CSS.escape(G)}"]`)?.scrollIntoView({block:`nearest`}))},[hn,G]);let X=gt((e,t,n)=>{let r=M.get(e),i=M.get(t);r&&i&&Rn(r,{anchor:t,below:n,...O===`status`&&{status:Pt(i)}})}),Gn=e=>{let t=X.dragging?M.get(X.dragging):void 0;return On&&(O===`status`||!t||e.has(t))},[Kn,qn]=(0,F.useState)(null),Jn=e=>{let t=X.dragging?M.get(X.dragging):void 0,n=_t.find(t=>t.id===e.id),i=n?Ot(n):r.find(t=>t===e.id);X.end(),qn(null);let a=On?U(e).findLast(e=>e.id!==t?.id)?.id:void 0;t&&i&&Rn(t,{status:i,...a?{anchor:a,below:!0}:{}})},Yn=(e,t)=>{t.defaultPrevented||t.target instanceof Node&&t.currentTarget.contains(t.target)&&(t.target instanceof Element&&t.target.closest(oo)||window.getSelection()?.toString()||le({to:`/projects/$projectId/tickets/$ticketId`,params:{projectId:e.projectId,ticketId:e.id}}))},Xn=!I.error&&I.data.total===0&&(0,$.jsx)(g,{title:!B||p.q?l(`ticket.list.emptyFiltered`):l(T?`ticket.list.emptyPlanning`:h?`ticket.list.emptyProject`:`ticket.list.emptyWork`),children:B?y&&(0,$.jsxs)(S,{variant:`default`,onClick:()=>on(!0),children:[(0,$.jsx)(ke,{}),l(`ticket.list.createFirst`)]}):(0,$.jsx)(S,{onClick:()=>Dn(be.parse({})),children:l(`ticket.filter.clear`)})});return(0,$.jsxs)($.Fragment,{children:[h?.background&&ye===`show`&&(0,$.jsx)(`img`,{src:h.background,alt:``,"aria-hidden":`true`,className:`project-background pointer-events-none absolute inset-0 -z-10 size-full object-cover opacity-15 mask-[linear-gradient(to_bottom,black,transparent_90%)] dark:opacity-20`}),h&&(0,$.jsx)(Pe,{project:h}),(0,$.jsx)(Ie,{projectId:h?.id,archivedFilter:!T,search:p,onSearch:Dn,view:h?T?(0,$.jsxs)(S,{variant:`ghost`,size:`sm`,className:`text-muted-foreground`,render:(0,$.jsx)(ft,{to:`/projects/$projectId`,params:{projectId:h.id}}),children:[(0,$.jsx)(Rt,{}),l(`ticket.list.activeWork`)]}):(0,$.jsxs)(Bt,{children:[(0,$.jsxs)(Qe,{render:(0,$.jsx)(S,{variant:`ghost`,"aria-label":l(`ticket.list.views`),title:fn,className:`max-w-full min-w-0 justify-start`}),children:[(0,$.jsx)(`span`,{className:`truncate`,children:fn}),(0,$.jsx)(ce,{className:`size-3 shrink-0`})]}),(0,$.jsxs)(Ue,{align:`start`,className:`max-h-[70dvh] w-60 overflow-y-auto`,children:[(0,$.jsx)(dt,{children:(0,$.jsx)(lt,{value:V?.id??(B?`all`:`custom`),onValueChange:e=>{let t=nn.data?.find(t=>t.id===e);e===`all`?Dn(be.parse({})):t&&Dn({...t.filters,offset:0})},children:[{id:`all`,name:l(`ticket.list.allTickets`)},...nn.data??[]].map(e=>(0,$.jsx)(pt,{value:e.id,closeOnClick:!0,children:e.name},e.id))})}),(0,$.jsx)(qe,{}),(0,$.jsxs)(dt,{children:[y&&!E&&(0,$.jsx)(Ye,{onClick:()=>H.toggleAllRowsSelected(!H.getIsAllRowsSelected()),children:H.getIsAllRowsSelected()?l(`ticket.selection.clear`):l(`ticket.list.selectAll`)}),(0,$.jsxs)(Ye,{onClick:()=>un(!0),children:[(0,$.jsx)(Yt,{}),l(`ticket.list.saveCurrentView`)]}),V&&(0,$.jsxs)(Ye,{onClick:()=>dn(V),children:[(0,$.jsx)(Fe,{}),l(`ticket.list.deleteView`,{name:V.name})]})]})]})]}):null,actions:h&&(0,$.jsxs)($.Fragment,{children:[!T&&(0,$.jsx)(b,{label:l(`ticket.list.planningLink`),render:(0,$.jsx)(ft,{to:`/projects/$projectId/planning`,params:{projectId:h.id}}),children:(0,$.jsx)($t,{})}),(0,$.jsx)(b,{label:l(`ticket.menu.newTicket`),title:l(`ticket.list.newTicketShortcut`,{shortcut:`C`}),variant:`default`,disabled:!y,onClick:()=>on(!0),children:(0,$.jsx)(ke,{})})]}),onReset:()=>{bt(ie.id,Lt),Dn({...p,sort:`priority`,order:void 0,offset:0})}}),(0,$.jsx)(ae,{title:l(`ticket.list.saveView`),open:ln,onOpenChange:un,busy:L.isPending,children:(0,$.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),h&&L.mutateAsync({projectId:h.id,name:sn,filters:a.parse(Object.fromEntries(Object.entries(p).filter(([e])=>e!==`offset`)))}).then(()=>{un(!1),cn(``),re.success(l(`ticket.list.viewSaved`))}).catch(()=>{})},children:[(0,$.jsx)(fe,{label:l(`ticket.list.viewName`),required:!0,maxLength:80,value:sn,onChange:e=>cn(e.target.value)}),(0,$.jsx)(Se,{error:L.error,pending:L.isPending,submitLabel:l(`ticket.list.saveView`),onCancel:()=>un(!1)})]})}),R&&(0,$.jsx)(se,{label:l(`ticket.list.deleteView`,{name:R.name}),description:l(`ticket.list.deleteViewConfirm`,{name:R.name}),trigger:!1,open:!0,onOpenChange:e=>{e||dn(null)},onConfirm:async()=>{h&&await rn.mutateAsync({projectId:h.id,viewId:R.id}),dn(null)}}),(0,$.jsx)(te,{error:I.error??rn.error}),y&&mn.length>0&&(0,$.jsx)(wa,{selected:mn,total:W.length,collection:yn,onClear:()=>H.resetRowSelection()}),I.isPending?(0,$.jsx)(de,{}):I.error?(0,$.jsx)(S,{disabled:j.some(e=>e.isFetching),onClick:()=>{for(let e of j)e.error&&e.refetch()},children:l(`ticket.list.retry`)}):je?(0,$.jsx)(`div`,{role:`region`,"aria-label":l(`ticket.list.board`),className:w(`ticket-board relative min-h-0 min-w-0 flex-1 overflow-auto overscroll-contain`,co),"data-density":Ve,"data-label-display":ze,children:Xn||(0,$.jsx)(`div`,{className:`flex min-h-full w-max gap-5 pb-4`,children:P.map(e=>(0,$.jsxs)(`section`,{"aria-label":l(`ticket.list.sectionTickets`,{section:e.label}),"data-status":e.id,"data-drop":Kn===e.id||void 0,className:`flex w-[min(19rem,calc(100vw-3.5rem))] shrink-0 flex-col transition-colors data-[drop=true]:bg-primary/5`,onDragOver:t=>{X.dragging&&(t.preventDefault(),t.dataTransfer.dropEffect=`move`,qn(e.id))},onDragLeave:t=>{(!(t.relatedTarget instanceof Node)||!t.currentTarget.contains(t.relatedTarget))&&qn(t=>t===e.id?null:t)},onDrop:t=>{t.preventDefault(),Jn(e)},children:[(0,$.jsxs)(`h2`,{className:`sticky top-0 z-10 mb-0 flex h-9 items-center gap-2 border-b bg-background px-2 text-xs font-normal`,children:[y&&(0,$.jsx)(m,{label:l(`ticket.list.selectSection`,{section:e.label}),className:`sr-checkbox`,...gn(e)}),e.heading,(0,$.jsx)(`span`,{className:`tabular-nums text-muted-foreground`,children:e.total})]}),(0,$.jsx)(`ul`,{className:`m-0 flex flex-1 list-none flex-col p-0`,children:U(e).map(t=>{let n=t.getVisibleCells(),r=e=>n.find(t=>t.column.id===e),i=r(`select`),a=r(`key`),o=r(`title`);return(0,$.jsx)(He,{ticket:t.original,onPreview:()=>Sn(t.id),moves:Hn(t.original)?()=>Wn(t.original):void 0,children:(0,$.jsxs)(`li`,{className:w(so,`flex flex-col gap-1.5 border-b px-2 py-2.5 transition-colors hover:bg-muted/40 data-[active=true]:shadow-[inset_2px_0_0_var(--primary)] data-[dragging=true]:opacity-50 data-[drop=after]:shadow-[inset_0_-2px_0_var(--primary)] data-[drop=before]:shadow-[inset_0_2px_0_var(--primary)] in-data-[density=comfortable]:gap-2.5 in-data-[density=comfortable]:py-4`),"data-id":t.id,"data-selected":t.getIsSelected(),"data-active":G===t.id||void 0,"data-fresh":Ft.fresh.has(t.id)||void 0,...X.item(t.id,{draggable:y,accepts:Gn(e)}),onDragEnd:()=>{X.end(),qn(null)},onClick:e=>Yn(t.original,e),children:[(0,$.jsxs)(`div`,{className:`flex min-h-6 items-center gap-2`,children:[i&&(0,$.jsx)(H.FlexRender,{cell:i}),a&&(0,$.jsx)(`span`,{"data-column":`key`,className:`font-mono text-[11px] text-muted-foreground`,children:(0,$.jsx)(H.FlexRender,{cell:a})}),(0,$.jsx)(`span`,{"data-column":`status`,className:`ml-auto`,children:(0,$.jsx)(Za,{ticket:t.original,property:`status`,value:Pt(t.original),iconOnly:!0})})]}),o&&(0,$.jsx)(H.FlexRender,{cell:o}),(0,$.jsx)(`div`,{className:`flex flex-wrap items-center gap-x-2 gap-y-1 text-xs empty:hidden`,children:n.filter(e=>![`select`,`key`,`title`,`status`].includes(e.column.id)).map(e=>(0,$.jsx)(`span`,{"data-column":e.column.id,className:`min-w-0 max-w-full empty:hidden`,children:(0,$.jsx)(H.FlexRender,{cell:e})},e.id))})]})},t.id)})})]},e.id))})}):E&&D?(0,$.jsx)(Ba,{layout:E,tickets:Jt,anchor:Le,range:D,onAnchor:e=>i({...t,period:e?Be(e,`yyyy-MM-dd`):void 0})}):(0,$.jsxs)(`div`,{className:`table-scroll min-h-0 min-w-0 flex-1 overflow-auto overscroll-contain [&_[data-slot=table-container]]:overflow-visible`,children:[(0,$.jsxs)(`div`,{role:`table`,"aria-label":l(`ticket.list.tickets`),className:w(`ticket-table`,co,`data-[density=comfortable]:[&_td]:text-sm data-[density=comfortable]:[&_td_svg]:size-4 data-[density=comfortable]:[&_td[data-column=key]]:text-xs`),"data-density":Ve,"data-label-display":ze,style:{"--table-width":`${H.getTotalSize()}px`},children:[(0,$.jsx)(`div`,{className:`sticky top-0 z-20 bg-background`,children:(0,$.jsxs)(Kt,{role:`presentation`,className:lo,children:[(0,$.jsx)(uo,{leaves:H.getVisibleLeafColumns()}),(0,$.jsx)(Vt,{role:`rowgroup`,children:H.getHeaderGroups().map(e=>(0,$.jsx)(Wt,{role:`row`,className:`hover:bg-transparent`,children:e.headers.map(e=>{let t=no[e.column.id],n=t!==void 0&&p.sort===t,r=n?p.order??f[t]:void 0;return(0,$.jsxs)(Ht,{role:`columnheader`,scope:`col`,"data-column":e.column.id,"aria-sort":r===`asc`?`ascending`:r===`desc`?`descending`:void 0,className:w(`relative h-8 overflow-hidden bg-transparent px-3 text-[10.5px] font-medium tracking-[0.08em] text-ellipsis text-muted-foreground uppercase`,t&&`p-0`),style:{width:e.getSize()},children:[t?(0,$.jsxs)(S,{variant:`ghost`,title:typeof e.column.columnDef.header==`string`?e.column.columnDef.header:void 0,className:w(`h-8 w-full justify-start gap-1 rounded-none pr-2 pl-3 text-[10.5px] font-medium tracking-[0.08em] text-muted-foreground uppercase hover:text-foreground`,n&&`text-foreground`),onClick:()=>Dn({...p,sort:t,order:n?r===`asc`?`desc`:`asc`:void 0,offset:0}),children:[(0,$.jsx)(`span`,{className:`min-w-0 truncate`,children:(0,$.jsx)(H.FlexRender,{header:e})}),r===`asc`&&(0,$.jsx)(oe,{className:`size-3 shrink-0`}),r===`desc`&&(0,$.jsx)(ue,{className:`size-3 shrink-0`})]}):(0,$.jsx)(H.FlexRender,{header:e}),e.column.getCanResize()&&(0,$.jsx)(S,{variant:`ghost`,className:`resizer absolute top-2 right-0 bottom-2 h-auto w-2 min-w-0 cursor-col-resize touch-none rounded-none border-r bg-transparent p-0 hover:border-primary hover:bg-transparent`,"aria-label":l(`ticket.list.resizeColumn`,{column:pn.data?.find(t=>he(t.id)===e.id)?.name??e.id}),onMouseDown:e.getResizeHandler(),onTouchStart:e.getResizeHandler(),onKeyDown:t=>{(t.key===`ArrowLeft`||t.key===`ArrowRight`)&&(t.preventDefault(),H.setColumnSizing(n=>({...n,[e.column.id]:Math.max(e.column.columnDef.minSize??60,e.column.getSize()+(t.key===`ArrowRight`?20:-20))})))}})]},e.id)})},e.id))})]})}),P.map(e=>(0,$.jsxs)(Kt,{role:`presentation`,className:lo,children:[(0,$.jsx)(uo,{leaves:H.getVisibleLeafColumns()}),(0,$.jsxs)(Ut,{role:`rowgroup`,"aria-label":en?l(`ticket.list.sectionTickets`,{section:e.label}):l(`ticket.list.tickets`),children:[en&&(0,$.jsx)(Wt,{className:`ticket-status-heading hover:bg-transparent`,"data-status":O===`status`?e.id:void 0,children:(0,$.jsx)(Ht,{scope:`rowgroup`,className:`sticky top-8 z-10 border-b bg-[color-mix(in_oklab,var(--muted)_50%,var(--background))] p-0`,colSpan:H.getAllLeafColumns().filter(e=>e.getIsVisible()).length,children:(0,$.jsx)(qa,{section:e,collapsed:et.has(e.id),onToggle:()=>En(e.id),selection:y?gn(e):void 0})})}),!tn(e.id)&&U(e).map(t=>(0,$.jsx)(He,{ticket:t.original,onPreview:()=>Sn(t.id),moves:Hn(t.original)?()=>Wn(t.original):void 0,children:(0,$.jsx)(Wt,{className:w(so,`data-[active=true]:[&>td:first-child]:shadow-[inset_2px_0_0_var(--primary)] data-[dragging=true]:opacity-50 data-[drop=after]:[&>td]:shadow-[inset_0_-2px_0_var(--primary)] data-[drop=before]:[&>td]:shadow-[inset_0_2px_0_var(--primary)]`),role:`row`,"data-id":t.id,"data-selected":t.getIsSelected(),"data-active":G===t.id||void 0,"data-fresh":Ft.fresh.has(t.id)||void 0,...X.item(t.id,{draggable:Y,accepts:Gn(e)}),onClick:e=>Yn(t.original,e),children:t.getVisibleCells().map(e=>(0,$.jsx)(Gt,{className:w(`px-3 py-2 align-middle text-xs whitespace-normal in-data-[density=comfortable]:py-4`,e.column.id===`key`&&`font-mono text-[11px] text-muted-foreground`),role:`cell`,"data-column":e.column.id,"data-label":typeof e.column.columnDef.header==`string`?e.column.columnDef.header:void 0,children:(0,$.jsx)(H.FlexRender,{cell:e})},e.id))})},t.id))]})]},e.id))]}),Xn]}),!I.isPending&&!I.error&&(0,$.jsx)(`footer`,{className:`shrink-0 py-2 text-xs text-muted-foreground`,children:l(E?`ticket.list.scheduledCount`:`ticket.list.count`,{count:I.data.total})}),(0,$.jsx)(`span`,{role:`status`,className:`sr-only`,children:Mn}),(0,$.jsx)(ae,{size:`composer`,title:l(`ticket.menu.newTicket`),open:an,onOpenChange:on,children:an&&h&&(0,$.jsx)(qt,{projectId:h.id,onSaved:()=>on(!1)})})]})}export{fo as TicketList};
|