@exulu/frontend 1.8.0 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.next/BUILD_ID +1 -1
- package/dist/.next/app-build-manifest.json +129 -131
- package/dist/.next/app-path-routes-manifest.json +1 -1
- package/dist/.next/build-manifest.json +2 -2
- package/dist/.next/prerender-manifest.json +1 -1
- package/dist/.next/server/app/(application)/agents/edit/[id]/page.js +1 -1
- package/dist/.next/server/app/(application)/agents/edit/[id]/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/agents/edit/[id]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/agents/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/chat/[agent]/[session]/page.js +7 -7
- package/dist/.next/server/app/(application)/chat/[agent]/[session]/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/chat/[agent]/[session]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/chat/[agent]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/chat/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/configuration/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/dashboard/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/data/[[...query]]/page.js +4 -4
- package/dist/.next/server/app/(application)/data/[[...query]]/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/data/[[...query]]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/evals/[id]/page.js +1 -1
- package/dist/.next/server/app/(application)/evals/[id]/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/evals/[id]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/evals/cases/page.js +1 -1
- package/dist/.next/server/app/(application)/evals/cases/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/evals/cases/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/evals/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/explorer/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/keys/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/projects/[project]/page.js +1 -1
- package/dist/.next/server/app/(application)/projects/[project]/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/projects/[project]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/projects/page.js +1 -1
- package/dist/.next/server/app/(application)/projects/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/prompts/page.js +1 -1
- package/dist/.next/server/app/(application)/prompts/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/roles/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/token/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/users/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/variables/create/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/variables/edit/[variable_id]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/variables/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/variables/usage/[variable_id]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/workflows/page.js +1 -1
- package/dist/.next/server/app/(application)/workflows/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(authentication)/login/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/_not-found.html +1 -1
- package/dist/.next/server/app/_not-found.rsc +1 -1
- package/dist/.next/server/app-paths-manifest.json +6 -6
- package/dist/.next/server/chunks/1025.js +1 -0
- package/dist/.next/server/chunks/2270.js +11 -48
- package/dist/.next/server/chunks/3434.js +1 -1
- package/dist/.next/server/chunks/3503.js +1 -0
- package/dist/.next/server/chunks/5084.js +1 -0
- package/dist/.next/server/chunks/5192.js +1 -1
- package/dist/.next/server/chunks/5485.js +1 -1
- package/dist/.next/server/chunks/5600.js +1 -1
- package/dist/.next/server/chunks/5974.js +1 -0
- package/dist/.next/server/chunks/6590.js +1 -1
- package/dist/.next/server/chunks/7471.js +1 -1
- package/dist/.next/server/chunks/8286.js +1 -1
- package/dist/.next/server/chunks/{3679.js → 9874.js} +5 -5
- package/dist/.next/server/middleware-manifest.json +5 -5
- package/dist/.next/server/pages/404.html +1 -1
- package/dist/.next/server/pages/500.html +1 -1
- package/dist/.next/server/server-reference-manifest.json +1 -1
- package/dist/.next/static/chunks/1685-939396dad2f8f1e0.js +2 -0
- package/dist/.next/static/chunks/1685-939396dad2f8f1e0.js.map +1 -0
- package/dist/.next/static/chunks/{4811-316807e25b634f9f.js → 192-72d6868cd891ccc6.js} +8 -8
- package/dist/.next/static/chunks/192-72d6868cd891ccc6.js.map +1 -0
- package/dist/.next/static/chunks/1957-cf44b1d31a9c7d5c.js +2 -0
- package/dist/.next/static/chunks/1957-cf44b1d31a9c7d5c.js.map +1 -0
- package/dist/.next/static/chunks/342-d9c2d6ae9f9435cb.js +2 -0
- package/dist/.next/static/chunks/342-d9c2d6ae9f9435cb.js.map +1 -0
- package/dist/.next/static/chunks/552-39155a93c527ec6d.js +2 -0
- package/dist/.next/static/chunks/552-39155a93c527ec6d.js.map +1 -0
- package/dist/.next/static/chunks/6367-59655a85d75e19be.js +2 -0
- package/dist/.next/static/chunks/6367-59655a85d75e19be.js.map +1 -0
- package/dist/.next/static/chunks/6373-601400fab8a3bb55.js +2 -0
- package/dist/.next/static/chunks/6373-601400fab8a3bb55.js.map +1 -0
- package/dist/.next/static/chunks/8030-9c926ea4dfd3a54e.js +2 -0
- package/dist/.next/static/chunks/8030-9c926ea4dfd3a54e.js.map +1 -0
- package/dist/.next/static/chunks/{6805-792cc8008b165c07.js → 8293-0e69d89d2dac7111.js} +10 -10
- package/dist/.next/static/chunks/8293-0e69d89d2dac7111.js.map +1 -0
- package/dist/.next/static/chunks/9953-95900a236271a222.js +2 -0
- package/dist/.next/static/chunks/9953-95900a236271a222.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-e4a4693953329671.js +2 -0
- package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-e4a4693953329671.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-7edb1c7c850f982c.js +2 -0
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-7edb1c7c850f982c.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-8d2b3995cacfd832.js +2 -0
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-8d2b3995cacfd832.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/evals/[id]/page-a7728cf9b0524489.js +2 -0
- package/dist/.next/static/chunks/app/(application)/evals/[id]/page-a7728cf9b0524489.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/evals/cases/{page-a39fef7444581565.js → page-827f50c6d1f150d0.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/evals/cases/{page-a39fef7444581565.js.map → page-827f50c6d1f150d0.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/projects/[project]/page-f04fd5291a1ef7b1.js +2 -0
- package/dist/.next/static/chunks/app/(application)/projects/[project]/page-f04fd5291a1ef7b1.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/prompts/page-2c500e9898447506.js +2 -0
- package/dist/.next/static/chunks/app/(application)/prompts/page-2c500e9898447506.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/workflows/{page-47dedb88cec600d5.js → page-e38f9456120dab69.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/workflows/page-e38f9456120dab69.js.map +1 -0
- package/dist/.next/static/css/6f8c5212af8ef284.css +4 -0
- package/dist/.next/static/css/6f8c5212af8ef284.css.map +1 -0
- package/dist/.next/static/css/e3f2a16ab7676b05.css.map +1 -1
- package/package.json +1 -1
- package/dist/.next/server/chunks/2948.js +0 -1
- package/dist/.next/server/chunks/38.js +0 -1
- package/dist/.next/server/chunks/7958.js +0 -1
- package/dist/.next/server/chunks/8050.js +0 -1
- package/dist/.next/static/chunks/1685-9cacdee7e3f0942f.js +0 -2
- package/dist/.next/static/chunks/1685-9cacdee7e3f0942f.js.map +0 -1
- package/dist/.next/static/chunks/1957-39a01a3915f246ab.js +0 -2
- package/dist/.next/static/chunks/1957-39a01a3915f246ab.js.map +0 -1
- package/dist/.next/static/chunks/4811-316807e25b634f9f.js.map +0 -1
- package/dist/.next/static/chunks/5282-68f9880f1f951f44.js +0 -2
- package/dist/.next/static/chunks/5282-68f9880f1f951f44.js.map +0 -1
- package/dist/.next/static/chunks/6367-59cef3c74213925b.js +0 -2
- package/dist/.next/static/chunks/6367-59cef3c74213925b.js.map +0 -1
- package/dist/.next/static/chunks/6373-4c5dffaf4193621c.js +0 -2
- package/dist/.next/static/chunks/6373-4c5dffaf4193621c.js.map +0 -1
- package/dist/.next/static/chunks/6805-792cc8008b165c07.js.map +0 -1
- package/dist/.next/static/chunks/8030-c1b6be46253076cb.js +0 -2
- package/dist/.next/static/chunks/8030-c1b6be46253076cb.js.map +0 -1
- package/dist/.next/static/chunks/9621-f81c4d7c0ecf5a67.js +0 -2
- package/dist/.next/static/chunks/9621-f81c4d7c0ecf5a67.js.map +0 -1
- package/dist/.next/static/chunks/9953-dfb5fc0e5b74ec09.js +0 -2
- package/dist/.next/static/chunks/9953-dfb5fc0e5b74ec09.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-4e7e02768ed1a72a.js +0 -2
- package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-4e7e02768ed1a72a.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-38f845d5ccdad76b.js +0 -2
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-38f845d5ccdad76b.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-a391b8407f74e9b4.js +0 -2
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-a391b8407f74e9b4.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/evals/[id]/page-cf6f8d2bd4e9c819.js +0 -2
- package/dist/.next/static/chunks/app/(application)/evals/[id]/page-cf6f8d2bd4e9c819.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/projects/[project]/page-bc859da58d8505f7.js +0 -2
- package/dist/.next/static/chunks/app/(application)/projects/[project]/page-bc859da58d8505f7.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/prompts/page-d2f36ff149385efd.js +0 -2
- package/dist/.next/static/chunks/app/(application)/prompts/page-d2f36ff149385efd.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/workflows/page-47dedb88cec600d5.js.map +0 -1
- package/dist/.next/static/css/c8c015815c72d053.css +0 -4
- package/dist/.next/static/css/c8c015815c72d053.css.map +0 -1
- /package/dist/.next/static/{GOwerAkBncYx0J8q1TqQb → ls-syPkq9-MWp-VWWDEZJ}/_buildManifest.js +0 -0
- /package/dist/.next/static/{GOwerAkBncYx0J8q1TqQb → ls-syPkq9-MWp-VWWDEZJ}/_ssgManifest.js +0 -0
package/dist/.next/static/chunks/app/(application)/projects/[project]/page-bc859da58d8505f7.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[806],{62839:function(e,s,t){Promise.resolve().then(t.bind(t,32538))},32538:function(e,s,t){"use strict";t.r(s),t.d(s,{default:function(){return Q}});var i=t(57437),a=t(2265),l=t(99376),n=t(12199),r=t(7211),c=t(63251),d=t(27689),o=t(62869),u=t(95186),m=t(26815),x=t(76818),h=t(66070),p=t(35974),j=t(26110),v=t(19060),f=t(39763);let g=(0,f.Z)("Settings2",[["path",{d:"M20 7h-9",key:"3s1dr2"}],["path",{d:"M14 17H5",key:"gfn3mx"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]]),y=(0,f.Z)("Files",[["path",{d:"M15.5 2H8.6c-.4 0-.8.2-1.1.5-.3.3-.5.7-.5 1.1v12.8c0 .4.2.8.5 1.1.3.3.7.5 1.1.5h9.8c.4 0 .8-.2 1.1-.5.3-.3.5-.7.5-1.1V6.5L15.5 2z",key:"cennsq"}],["path",{d:"M3 7.6v12.8c0 .4.2.8.5 1.1.3.3.7.5 1.1.5h9.8",key:"ms809a"}],["path",{d:"M15 2v5h5",key:"qq6kwv"}]]);var N=t(53417),w=t(88906),b=t(45675),k=t(99397);let C=(0,f.Z)("PackageMinus",[["path",{d:"M16 16h6",key:"100bgy"}],["path",{d:"M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14",key:"e7tb2h"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["line",{x1:"12",x2:"12",y1:"22",y2:"12",key:"a4e8g8"}]]);var Z=t(18930),S=t(63639),_=t(73247),z=t(82222),A=t(8014),E=t(93022),M=t(77992),O=t(10492),P=t(87393),T=t(13832),I=t(27648),R=t(81103),D=t(78361),L=t(36399);let F=(0,f.Z)("PlusSquare",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"M12 8v8",key:"napkw2"}]]);var B=t(23518);let U=e=>{var s;let{onConfirm:t}=e,{data:l,loading:n,error:r}=(0,L.t)(),[c,d]=(0,a.useState)(void 0),[u,m]=(0,a.useState)(!1);return(0,i.jsxs)(j.Vq,{open:u,onOpenChange:e=>{m(e),d(void 0)},children:[(0,i.jsx)(j.hg,{asChild:!0,children:(0,i.jsxs)(o.z,{className:"w-full",variant:"outline",children:[(0,i.jsx)(F,{className:"h-4 w-4 mr-2"}),"Select items from knowledge sources to add to the project, or upload files."]})}),(0,i.jsxs)(j.cZ,{className:"sm:max-w-[900px]",children:[(0,i.jsxs)(j.fK,{children:[(0,i.jsx)(j.$N,{children:"Item selection"}),(0,i.jsx)(j.Be,{children:"Browse through contexts and select items."})]}),!c&&(0,i.jsxs)(B.mY,{className:"rounded-lg border shadow-md md:min-w-[450px]",children:[(0,i.jsx)(B.sZ,{placeholder:"Type a command or search..."}),(0,i.jsxs)(B.e8,{children:[(0,i.jsx)(B.rb,{children:"No results found."}),(0,i.jsx)(B.fu,{heading:"Contexts",children:null==l?void 0:null===(s=l.contexts)||void 0===s?void 0:s.items.map(e=>(0,i.jsx)(B.di,{onSelect:()=>{d(e)},children:e.name},e.id))})]})]}),c&&(0,i.jsx)(V,{context:c,onConfirm:e=>{console.log("item",e),t([{item:e,context:c}]),m(!1)}})]})]})},V=e=>{var s,t,l,n,c;let{context:o,onConfirm:u}=e,[m,x]=(0,a.useState)(void 0),{loading:h,data:p,refetch:j,previousData:v,error:f}=(0,r.aM)((0,d.P3)(o.id,[]),{fetchPolicy:"no-cache",nextFetchPolicy:"network-only",skip:!o.id,variables:{context:o.id,page:1,limit:10,sort:{field:"updatedAt",direction:"DESC"},filters:{archived:{ne:!0},...m?{name:{contains:"".concat(m)}}:{}}}});return(0,i.jsxs)(B.mY,{className:"rounded-lg border shadow-md md:min-w-[450px]",children:[(0,i.jsx)(B.sZ,{onValueChange:e=>x(e),placeholder:"Type a command or search..."}),(0,i.jsx)(B.e8,{children:(0,i.jsxs)(B.fu,{heading:"Items",children:[!v&&h&&(0,i.jsx)(B.di,{children:(0,i.jsx)(O.g,{})},"loading"),!h&&!(null==p?void 0:null===(t=p[o.id+d.Md])||void 0===t?void 0:null===(s=t.items)||void 0===s?void 0:s.length)&&(0,i.jsx)(B.rb,{children:"No items found."}),null===(c=p||v)||void 0===c?void 0:null===(n=c[o.id+d.Md])||void 0===n?void 0:null===(l=n.items)||void 0===l?void 0:l.map(e=>(0,i.jsx)(B.di,{onSelect:()=>{u(e)},children:e.name},e.id))]})})]})};var W=t(6374);function q(e){var s,t,f,D,L,F,B,V;let{project:q}=e,[X,Y]=(0,a.useState)(!1),[Q,G]=(0,a.useState)(!1),[$,H]=(0,a.useState)(!1),[J,ee]=(0,a.useState)(""),[es,et]=(0,a.useState)("overview"),{user:ei}=(0,a.useContext)(T.S),ea=(0,l.useRouter)(),[el,en]=(0,a.useState)({deleteItems:!1,deleteSessions:!1}),[er,ec]=(0,a.useState)({name:q.name||"",description:q.description||"",custom_instructions:q.custom_instructions||""}),{toast:ed}=(0,M.pm)(),[eo,eu]=(0,a.useState)({rights_mode:q.rights_mode,users:null===(s=q.RBAC)||void 0===s?void 0:s.users,roles:null===(t=q.RBAC)||void 0===t?void 0:t.roles,projects:null===(f=q.RBAC)||void 0===f?void 0:f.projects}),[em,ex]=(0,a.useState)(q.project_items||[]),[eh,{loading:ep}]=(0,n.D)(d.b2),[ej]=(0,n.D)(d.Yr),[ev,ef]=(0,a.useState)(!1),{data:eg,loading:ey,refetch:eN}=(0,r.aM)(d.GJ,{variables:{page:1,limit:50,filters:[{project:{eq:q.id}}]}}),{data:ew,loading:eb}=(0,r.aM)(d.ym,{variables:{page:1,limit:100,filters:[],sort:{field:"updatedAt",direction:"DESC"}}}),ek=(0,c.x)(),[eC,{loading:eZ}]=(0,n.D)(d.fB),[eS,{loading:e_}]=(0,n.D)(d.MU),[ez,{loading:eA}]=(0,n.D)(d.S9),eE=(null==eg?void 0:null===(D=eg.agent_sessionsPagination)||void 0===D?void 0:D.items)||[],eM=(null==ew?void 0:null===(L=ew.agentsPagination)||void 0===L?void 0:L.items)||[],eO=a.useMemo(()=>J?eM.filter(e=>e.name.toLowerCase().includes(J.toLowerCase())):eM,[eM,J]),eP=async()=>{if(!er.name.trim()){ed({title:"Validation Error",description:"Project name is required.",variant:"destructive"});return}try{await eh({variables:{id:q.id,input:{name:er.name.trim(),description:er.description.trim()||null,custom_instructions:er.custom_instructions.trim()||null}}}),ed({title:"Success",description:"Project updated successfully!"}),Y(!1)}catch(e){console.error("Error updating project:",e),ed({title:"Error",description:e.message||"Failed to update project. Please try again.",variant:"destructive"})}},eT=async e=>{try{var s,t,i;let a=await eC({variables:{title:"New session with ".concat(e.name),agent:e.id,project:q.id,rights_mode:"projects",RBAC:{projects:[{id:q.id,rights:"read"}]}}}),l=null===(i=a.data)||void 0===i?void 0:null===(t=i.agent_sessionsCreateOne)||void 0===t?void 0:null===(s=t.item)||void 0===s?void 0:s.id;l&&(ed({title:"Success",description:"Session created successfully! Sessions started in a project are accessible for viewing by project members."}),H(!1),ee(""),ea.push("/chat/".concat(e.id,"/").concat(l)))}catch(e){console.error("Error creating session:",e),ed({title:"Error",description:e.message||"Failed to create session. Please try again.",variant:"destructive"})}},eI=async()=>{try{ef(!0),el.deleteItems&&await Promise.all(em.map(async e=>{var s,t;let i=e.split("/")[0],a=e.split("/")[1];if(!i||!a)return;let{data:l}=await ek.mutate({mutation:(0,d.mN)(i,"files_default_context"===i?["s3key"]:[]),variables:{id:a}});if(null===(s=l["".concat(i,"_itemsRemoveOneById")])||void 0===s?void 0:s.s3key)try{await W.QZ.delete(null===(t=l["".concat(i,"_itemsRemoveOneById")])||void 0===t?void 0:t.s3key)}catch(e){console.error("[EXULU] Error deleting file from s3 storage:",e)}})),await Promise.all(eE.map(async e=>{el.deleteSessions?await ez({variables:{id:e.id}}):await eS({variables:{id:e.id,project:null}})})),await ej({variables:{id:q.id}}),ed({title:"Success",description:'Project "'.concat(q.name,'" has been deleted successfully.')}),G(!1),ef(!1),ea.push("/projects")}catch(e){ef(!1),console.error("Error deleting project:",e),ed({title:"Error",description:e.message||"Failed to delete project. Please try again.",variant:"destructive"})}};return(0,i.jsxs)("div",{className:"flex-1 p-6 mt-20",children:[(0,i.jsx)("div",{className:"max-w-5xl mx-auto space-y-6",children:(0,i.jsxs)("div",{className:"flex gap-6 h-full",children:[(0,i.jsxs)("div",{className:"w-80 space-y-4",children:[(0,i.jsx)(h.Zb,{children:(0,i.jsx)(h.aY,{className:"p-4",children:(0,i.jsxs)("div",{className:"space-y-3",children:[(0,i.jsx)("h3",{className:"font-semibold text-lg",children:q.name}),(0,i.jsx)("p",{className:"text-muted-foreground text-sm leading-relaxed",children:q.description||"No description provided."})]})})}),(0,i.jsxs)("div",{className:"space-y-2",children:[(0,i.jsxs)(o.z,{variant:"overview"===es?"default":"ghost",className:"w-full justify-start",onClick:()=>et("overview"),children:[(0,i.jsx)(g,{className:"h-4 w-4 mr-2"}),"Project information"]}),(0,i.jsxs)(o.z,{variant:"context"===es?"default":"ghost",className:"w-full justify-start",onClick:()=>et("context"),children:[(0,i.jsx)(y,{className:"h-4 w-4 mr-2"}),"Project files"]}),(0,i.jsxs)(o.z,{variant:"sessions"===es?"default":"ghost",className:"w-full justify-start",onClick:()=>et("sessions"),children:[(0,i.jsx)(N.Z,{className:"h-4 w-4 mr-2"}),"Project sessions"]}),(0,i.jsxs)(o.z,{variant:"access"===es?"default":"ghost",className:"w-full justify-start",onClick:()=>et("access"),children:[(0,i.jsx)(w.Z,{className:"h-4 w-4 mr-2"}),"Access control"]}),(0,i.jsxs)(o.z,{variant:"settings"===es?"default":"ghost",className:"w-full justify-start",onClick:()=>et("settings"),children:[(0,i.jsx)(g,{className:"h-4 w-4 mr-2"}),"Project settings"]})]})]}),(0,i.jsxs)("div",{className:"flex-1",children:["overview"===es&&(0,i.jsx)("div",{className:"space-y-6",children:(0,i.jsxs)(h.Zb,{children:[(0,i.jsxs)(h.Ol,{children:[(0,i.jsx)(h.ll,{children:"Project Information"}),(0,i.jsx)(h.SZ,{children:"Basic information about this project"})]}),(0,i.jsxs)(h.aY,{className:"space-y-4",children:[(0,i.jsx)("div",{className:"grid gap-4",children:(0,i.jsxs)("div",{className:"space-y-2",children:[(0,i.jsx)(m._,{htmlFor:"name",children:"Project Name"}),X?(0,i.jsx)(u.I,{id:"name",value:er.name,onChange:e=>ec({...er,name:e.target.value})}):(0,i.jsx)("p",{className:"text-sm",children:q.name})]})}),(0,i.jsxs)("div",{className:"space-y-2",children:[(0,i.jsx)(m._,{htmlFor:"description",children:"Description"}),X?(0,i.jsx)(x.g,{id:"description",value:er.description,onChange:e=>ec({...er,description:e.target.value}),rows:3}):(0,i.jsx)("p",{className:"text-sm",children:q.description||"No description provided"})]}),(0,i.jsxs)("div",{className:"space-y-2",children:[(0,i.jsx)(m._,{htmlFor:"instructions",children:"Custom Instructions"}),X?(0,i.jsx)(x.g,{id:"instructions",value:er.custom_instructions,onChange:e=>ec({...er,custom_instructions:e.target.value}),rows:4,placeholder:"Enter custom instructions for sessions in this project..."}):(0,i.jsx)("p",{className:"text-sm",children:q.custom_instructions||"No custom instructions set"})]})]}),(0,i.jsx)(h.eW,{children:(0,i.jsx)("div",{className:"flex items-center justify-between",children:(0,i.jsx)("div",{className:"flex gap-2",children:X?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(o.z,{variant:"outline",onClick:()=>{q&&ec({name:q.name||"",description:q.description||"",custom_instructions:q.custom_instructions||""}),Y(!1)},children:"Cancel"}),(0,i.jsxs)(o.z,{onClick:eP,children:[(0,i.jsx)("span",{children:"Save changes"}),ep&&(0,i.jsx)(O.g,{className:"mr-2"})]})]}):(0,i.jsxs)(o.z,{variant:"outline",onClick:()=>Y(!0),children:[(0,i.jsx)(b.Z,{className:"h-4 w-4 mr-2"}),"Edit"]})})})})]})}),"context"===es&&(0,i.jsx)("div",{className:"space-y-6 w-full",children:(0,i.jsxs)(h.Zb,{children:[(0,i.jsxs)(h.Ol,{children:[(0,i.jsx)(h.ll,{children:"Project context items"}),(0,i.jsx)(h.SZ,{children:"Items that provide context for sessions in this project (max 15 items). Note that different agents may have different file types supported."})]}),(0,i.jsx)(h.aY,{children:(0,i.jsxs)("div",{className:"space-y-4",children:[(0,i.jsx)(U,{onConfirm:e=>{let s=[...em,...e.map(e=>"".concat(e.context.id,"/").concat(e.item.id))];console.log("update",s),ex(s),eh({variables:{id:q.id,input:{project_items:s}}})}}),(0,i.jsx)("div",{className:"space-y-2",children:(0,i.jsxs)("div",{className:"space-y-2",children:[(null==em?void 0:em.length)===0&&(0,i.jsxs)("div",{className:"text-center py-8 text-muted-foreground",children:[(0,i.jsx)(y,{className:"h-12 w-12 mx-auto mb-2 opacity-50"}),(0,i.jsx)("p",{children:"No items added to the project context yet."})]}),(0,i.jsx)("div",{className:"grid grid-cols-3 sm:grid-cols-4 gap-3",children:null==em?void 0:em.map(e=>(0,i.jsx)(K,{gid:e,onRemove:e=>{let s=em.filter(s=>s!==e);ex(s),eh({variables:{id:q.id,input:{project_items:s}}})}},e))})]})})]})})]})}),"sessions"===es&&(0,i.jsx)("div",{className:"space-y-6",children:(0,i.jsxs)(h.Zb,{children:[(0,i.jsxs)(h.Ol,{children:[(0,i.jsx)(h.ll,{children:"Project sessions"}),(0,i.jsx)(h.SZ,{children:"Sessions associated with this project"})]}),(0,i.jsx)(h.aY,{children:(0,i.jsxs)("div",{className:"space-y-4",children:[(0,i.jsxs)(o.z,{onClick:()=>{H(!0)},className:"w-full",variant:"outline",children:[(0,i.jsx)(k.Z,{className:"h-4 w-4 mr-2"}),"Start new session"]}),(0,i.jsx)("div",{className:"space-y-2",children:eE.map(e=>{let s=(0,P.I)(e,ei);return(0,i.jsxs)("div",{className:"flex items-center justify-between p-3 border rounded-lg",children:[(0,i.jsxs)("div",{className:"flex items-center gap-3",children:[(0,i.jsx)(N.Z,{className:"h-4 w-4"}),(0,i.jsx)("div",{children:(0,i.jsx)(I.default,{href:"/chat/".concat(e.agent,"/").concat(e.id),children:(0,i.jsx)("p",{className:"font-medium max-w-[80%] truncate",children:e.title})})})]}),(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsxs)(R.u,{children:[(0,i.jsx)(R.aJ,{asChild:!0,children:(0,i.jsx)(o.z,{disabled:!s||e_,variant:"ghost",size:"sm",onClick:()=>{e_||(eS({variables:{id:e.id,project:null}}),eN())},children:(0,i.jsx)(C,{className:"h-4 w-4"})})}),(0,i.jsx)(R._v,{children:(0,i.jsx)("p",{children:"Remove session from project."})})]}),(0,i.jsxs)(R.u,{children:[(0,i.jsx)(R.aJ,{asChild:!0,children:(0,i.jsx)(o.z,{disabled:!s||eA,variant:"ghost",size:"sm",onClick:()=>{eA||(ez({variables:{id:e.id}}),eN())},children:(0,i.jsx)(Z.Z,{className:"h-4 w-4"})})}),(0,i.jsx)(R._v,{children:(0,i.jsx)("p",{children:"Delete session completely."})})]})]})]},e.id)})}),0===eE.length&&!ey&&(0,i.jsxs)("div",{className:"text-center py-8 text-muted-foreground",children:[(0,i.jsx)(N.Z,{className:"h-12 w-12 mx-auto mb-2 opacity-50"}),(0,i.jsx)("p",{children:"No sessions found"})]}),ey&&(0,i.jsxs)("div",{className:"text-center py-8 text-muted-foreground",children:[(0,i.jsx)(N.Z,{className:"h-12 w-12 mx-auto mb-2 opacity-50"}),(0,i.jsx)("p",{children:"Loading sessions..."})]})]})})]})}),"access"===es&&(0,i.jsx)("div",{className:"space-y-6",children:(0,i.jsxs)(h.Zb,{children:[(0,i.jsxs)(h.Ol,{children:[(0,i.jsx)(h.ll,{children:"Access Control"}),(0,i.jsx)(h.SZ,{children:"Control who can access this project"})]}),(0,i.jsx)(h.aY,{children:(0,i.jsx)(A.P,{allowedModes:["private","users","roles"],initialRightsMode:q.rights_mode||"private",initialUsers:null===(F=q.RBAC)||void 0===F?void 0:F.users,initialRoles:null===(B=q.RBAC)||void 0===B?void 0:B.roles,initialProjects:null===(V=q.RBAC)||void 0===V?void 0:V.projects,onChange:(e,s,t,i)=>{eu({rights_mode:e,users:s,roles:t,projects:i})}})}),(0,i.jsx)(h.eW,{children:(0,i.jsxs)(o.z,{onClick:()=>{eh({variables:{id:q.id,input:{rights_mode:eo.rights_mode,RBAC:{users:eo.users,roles:eo.roles,projects:eo.projects}}}})},children:[(0,i.jsx)("span",{children:"Save access rights"}),ep&&(0,i.jsx)(O.g,{className:"ml-2"})]})})]})}),"settings"===es&&(0,i.jsx)("div",{className:"space-y-6",children:(0,i.jsxs)(h.Zb,{children:[(0,i.jsxs)(h.Ol,{children:[(0,i.jsx)(h.ll,{children:"Danger Zone"}),(0,i.jsx)(h.SZ,{children:"Permanently delete this project and all associated data"})]}),(0,i.jsx)(h.aY,{children:(0,i.jsxs)("div",{className:"space-y-4",children:[(0,i.jsxs)("div",{className:"flex items-start gap-3 p-4 border border-destructive/20 rounded-lg bg-destructive/5",children:[(0,i.jsx)(S.Z,{className:"h-5 w-5 text-destructive mt-0.5"}),(0,i.jsxs)("div",{className:"flex-1",children:[(0,i.jsx)("h4",{className:"font-medium text-destructive",children:"Delete Project"}),(0,i.jsx)("p",{className:"text-sm text-muted-foreground mt-1",children:"This action cannot be undone. This will permanently delete the project and optionally remove all associated context files and sessions."})]})]}),(0,i.jsxs)(j.Vq,{open:Q,onOpenChange:G,children:[(0,i.jsx)(j.hg,{asChild:!0,children:(0,i.jsxs)(o.z,{variant:"destructive",children:[(0,i.jsx)(Z.Z,{className:"h-4 w-4 mr-2"}),"Delete Project"]})}),(0,i.jsxs)(j.cZ,{className:"sm:max-w-md",children:[(0,i.jsxs)(j.fK,{children:[(0,i.jsx)(j.$N,{children:"Delete Project"}),(0,i.jsxs)(j.Be,{children:['Are you sure you want to delete "',q.name,'"? This action cannot be undone.']})]}),(0,i.jsxs)("div",{className:"space-y-4",children:[(0,i.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,i.jsx)(v.X,{id:"delete-items",checked:el.deleteItems,onCheckedChange:e=>en(s=>({...s,deleteItems:e}))}),(0,i.jsxs)("label",{htmlFor:"delete-items",className:"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",children:["Also delete all context items (",null==em?void 0:em.length," items)"]})]}),(0,i.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,i.jsx)(v.X,{id:"delete-sessions",checked:el.deleteSessions,onCheckedChange:e=>en(s=>({...s,deleteSessions:e}))}),(0,i.jsxs)("label",{htmlFor:"delete-sessions",className:"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",children:["Also delete all sessions (",eE.length," sessions)"]})]}),(el.deleteItems||el.deleteSessions)&&(0,i.jsxs)("div",{className:"flex items-start gap-2 p-3 border border-amber-200 rounded-lg bg-amber-50",children:[(0,i.jsx)(S.Z,{className:"h-4 w-4 text-amber-600 mt-0.5"}),(0,i.jsx)("p",{className:"text-sm text-amber-800",children:el.deleteItems&&el.deleteSessions?"All context items and sessions will be permanently deleted.":el.deleteItems?"All context items will be permanently deleted.":"All sessions will be permanently deleted."})]})]}),(0,i.jsxs)(j.cN,{className:"sm:justify-start",children:[(0,i.jsx)(o.z,{variant:"outline",onClick:()=>G(!1),children:"Cancel"}),(0,i.jsxs)(o.z,{disabled:ev,variant:"destructive",onClick:eI,children:[ev?(0,i.jsx)(O.g,{className:"mr-2 w-4 h-4"}):(0,i.jsx)(Z.Z,{className:"h-4 w-4 mr-2"}),"Delete Project"]})]})]})]})]})})]})})]})]})}),(0,i.jsx)(j.Vq,{open:$,onOpenChange:H,children:(0,i.jsxs)(j.cZ,{className:"sm:max-w-4xl",children:[(0,i.jsxs)(j.fK,{children:[(0,i.jsx)(j.$N,{children:"Select an Agent"}),(0,i.jsx)(j.Be,{children:"Choose an agent to start a new chat session. Sessions started in a project are accessible for viewing by project members."})]}),(0,i.jsxs)("div",{className:"space-y-4",children:[(0,i.jsxs)("div",{className:"relative",children:[(0,i.jsx)(_.Z,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-muted-foreground"}),(0,i.jsx)(u.I,{placeholder:"Search agents...",value:J,onChange:e=>ee(e.target.value),className:"pl-10"})]}),(0,i.jsx)("div",{className:"max-h-96 overflow-y-auto",children:eb?(0,i.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[...Array(6)].map((e,s)=>(0,i.jsx)("div",{className:"p-4 border rounded-lg",children:(0,i.jsxs)("div",{className:"flex items-center gap-3",children:[(0,i.jsx)(E.O,{className:"h-12 w-12 rounded-full"}),(0,i.jsxs)("div",{className:"space-y-2 flex-1",children:[(0,i.jsx)(E.O,{className:"h-4 w-3/4"}),(0,i.jsx)(E.O,{className:"h-3 w-1/2"})]})]})},s))}):eO.length>0?(0,i.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:eO.map(e=>(0,i.jsx)("div",{className:"p-4 border rounded-lg hover:border-primary cursor-pointer transition-colors",onClick:()=>eT(e),children:(0,i.jsxs)("div",{className:"flex items-center gap-3",children:[(0,i.jsx)("div",{className:"h-12 w-12 rounded-full bg-primary/10 flex items-center justify-center",children:e.image?(0,i.jsx)("img",{src:e.image,alt:e.name,className:"h-12 w-12 rounded-full object-cover"}):(0,i.jsx)(z.Z,{className:"h-6 w-6"})}),(0,i.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,i.jsx)("p",{className:"font-medium truncate",children:e.name}),(0,i.jsx)("p",{className:"text-sm text-muted-foreground truncate",children:e.description||"".concat(e.type," agent")}),(0,i.jsxs)("div",{className:"flex items-center gap-2 mt-1",children:[(0,i.jsx)(p.C,{variant:e.active?"default":"secondary",className:"text-xs",children:e.active?"Active":"Inactive"}),(0,i.jsx)(p.C,{variant:"outline",className:"text-xs",children:e.type})]})]})]})},e.id))}):(0,i.jsxs)("div",{className:"text-center py-8 text-muted-foreground",children:[(0,i.jsx)(z.Z,{className:"h-12 w-12 mx-auto mb-2 opacity-50"}),(0,i.jsx)("p",{children:J?"No agents found matching your search":"No agents available"})]})})]}),(0,i.jsx)(j.cN,{children:(0,i.jsx)(o.z,{variant:"outline",onClick:()=>H(!1),children:"Cancel"})})]})})]})}function K(e){let{gid:s,onRemove:t}=e,a=s.split("/")[0],l=s.split("/")[1];if(!a||!l)return null;let{data:n,loading:c}=(0,r.aM)((0,d.A1)(a,"files_default_context"===a?["s3key"]:[]),{variables:{id:l}});if(console.log("data",n),c)return null;let o=null==n?void 0:n[a+"_itemsById"];if(!o)return null;let u=Object.values(o||{}).filter(e=>"_s3key"===e);return u.length?(0,i.jsx)(i.Fragment,{children:u.map(e=>(0,i.jsx)(D.jU,{s3Key:e,onRemove:()=>{t(s)},active:!1,disabled:!1}))}):null}var X=t(65613),Y=t(20653);function Q(){let e=(0,l.useParams)(),s=null==e?void 0:e.project,{data:t,loading:a,error:n}=(0,r.aM)(d.jL,{variables:{id:s}});return a?(0,i.jsx)("div",{children:(0,i.jsx)(E.O,{className:"w-full h-full"})}):n?(0,i.jsxs)(X.bZ,{variant:"destructive",children:[(0,i.jsx)(Y.LPM,{className:"size-4"}),(0,i.jsx)(X.Cd,{children:"Error"}),(0,i.jsx)(X.X,{children:"Error loading project."})]}):(null==t?void 0:t.projectById)?(0,i.jsx)(q,{project:t.projectById}):(0,i.jsxs)(X.bZ,{variant:"destructive",children:[(0,i.jsx)(Y.LPM,{className:"size-4"}),(0,i.jsx)(X.Cd,{children:"Error"}),(0,i.jsx)(X.X,{children:"Project not found."})]})}},65613:function(e,s,t){"use strict";t.d(s,{Cd:function(){return d},X:function(){return o},bZ:function(){return c}});var i=t(57437),a=t(90535),l=t(2265),n=t(94508);let r=(0,a.j)("relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive",info:"border-info/50 text-info dark:border-info [&>svg]:text-info"}},defaultVariants:{variant:"default"}}),c=l.forwardRef((e,s)=>{let{className:t,variant:a,...l}=e;return(0,i.jsx)("div",{ref:s,role:"alert",className:(0,n.cn)(r({variant:a}),t),...l})});c.displayName="Alert";let d=l.forwardRef((e,s)=>{let{className:t,...a}=e;return(0,i.jsx)("h5",{ref:s,className:(0,n.cn)("mb-1 font-medium leading-none tracking-tight",t),...a})});d.displayName="AlertTitle";let o=l.forwardRef((e,s)=>{let{className:t,...a}=e;return(0,i.jsx)("div",{ref:s,className:(0,n.cn)("text-sm [&_p]:leading-relaxed",t),...a})});o.displayName="AlertDescription"},19060:function(e,s,t){"use strict";t.d(s,{X:function(){return c}});var i=t(57437),a=t(9270),l=t(30401),n=t(2265),r=t(94508);let c=n.forwardRef((e,s)=>{let{className:t,...n}=e;return(0,i.jsx)(a.fC,{ref:s,className:(0,r.cn)("peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",t),...n,children:(0,i.jsx)(a.z$,{className:(0,r.cn)("flex items-center justify-center text-current"),children:(0,i.jsx)(l.Z,{className:"size-4"})})})});c.displayName=a.fC.displayName},10492:function(e,s,t){"use strict";t.d(s,{g:function(){return l}});var i=t(57437),a=t(94508);let l=e=>{let{className:s}=e;return(0,i.jsxs)("svg",{"aria-hidden":"true",role:"status",className:(0,a.cn)("inline w-4 h-4 text-white animate-spin fill-inherit",s),viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,i.jsx)("path",{d:"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z",className:"fill-inherit opacity-20"}),(0,i.jsx)("path",{d:"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z",className:"fill-inherit"})]})}},77992:function(e,s,t){"use strict";t.d(s,{Am:function(){return u},pm:function(){return m}});var i=t(2265);let a=0,l=new Map,n=e=>{if(l.has(e))return;let s=setTimeout(()=>{l.delete(e),o({type:"REMOVE_TOAST",toastId:e})},1e6);l.set(e,s)},r=(e,s)=>{switch(s.type){case"ADD_TOAST":return{...e,toasts:[s.toast,...e.toasts].slice(0,1)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(e=>e.id===s.toast.id?{...e,...s.toast}:e)};case"DISMISS_TOAST":{let{toastId:t}=s;return t?n(t):e.toasts.forEach(e=>{n(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===t||void 0===t?{...e,open:!1}:e)}}case"REMOVE_TOAST":if(void 0===s.toastId)return{...e,toasts:[]};return{...e,toasts:e.toasts.filter(e=>e.id!==s.toastId)}}},c=[],d={toasts:[]};function o(e){d=r(d,e),c.forEach(e=>{e(d)})}function u(e){let{...s}=e,t=(a=(a+1)%Number.MAX_SAFE_INTEGER).toString(),i=()=>o({type:"DISMISS_TOAST",toastId:t});return o({type:"ADD_TOAST",toast:{...s,id:t,open:!0,onOpenChange:e=>{e||i()}}}),{id:t,dismiss:i,update:e=>o({type:"UPDATE_TOAST",toast:{...e,id:t}})}}function m(){let[e,s]=i.useState(d);return i.useEffect(()=>(c.push(s),()=>{let e=c.indexOf(s);e>-1&&c.splice(e,1)}),[e]),{...e,toast:u,dismiss:e=>o({type:"DISMISS_TOAST",toastId:e})}}},78361:function(e,s,t){"use strict";t.d(s,{jF:function(){return O},jU:function(){return I},ZP:function(){return P},NF:function(){return D}});var i=t(57437),a=t(2265),l=t(47632),n=t(1109);t(46693),t(51832);var r=t(6374),c=t(44045);let d=async e=>{var s;if(!e.backend)throw Error("No backend set.");let{callbacks:t,maxNumberOfFiles:i,uppyOptions:a}=e||{},{uploadSuccess:c}=t||{},{allowedFileTypes:d,id:o}=a||{},u=await (0,r.LP)(),m=new l.Z({autoProceed:!0,debug:!1,id:o||"uppy",restrictions:{maxNumberOfFiles:i||5,allowedFileTypes:d||[".heic",".jpg",".jpeg",".png",".webp",".svg"]}}).use(n.Z,{id:"Exulu",endpoint:e.backend,headers:{Authorization:"Bearer ".concat(u),Session:null!==(s=localStorage.getItem("session"))&&void 0!==s?s:""}}).on("file-added",async e=>{console.debug("added",e)}).on("upload-error",(e,s)=>{(null==e?void 0:e.id)&&(m.removeFile(null==e?void 0:e.id),console.error("error",s))}).on("upload-success",(e,s)=>{s.uploadURL&&c&&(console.log("response",s),c({file:e,key:s.uploadURL.split("/").pop()||"",url:s.uploadURL}))});return m};var o=function(e){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],t=(0,a.useContext)(c.E),[i,l]=(0,a.useState)(void 0);return(0,a.useEffect)(()=>((async()=>{l(await d({...e,backend:(null==t?void 0:t.backend)||""}))})(),()=>{i&&(i.destroy(),l(void 0))}),[...s]),i},u=t(80007),m=t(92735),x=t(88964),h=t(30044),p=t(92451),j=t(10407),v=t(48736),f=t(53113),g=t(69658),y=t(99397),N=t(32489),w=t(15001),b=t(62869),k=t(26110),C=t(19378),Z=t(78298),S=t(11713),_=t(21770),z=t(95186),A=t(20653),E=t(66070),M=t(93022);function O(e){let{s3key:s,children:t}=e,{data:l,isLoading:n,error:c,refetch:d}=(0,S.a)({queryKey:["fileObject",s],queryFn:async()=>s?await r.QZ.object(s):null,enabled:null!=s});if((0,a.useEffect)(()=>{s&&d()},[s]),!s)return(0,i.jsx)(E.Zb,{children:(0,i.jsxs)(E.aY,{className:"p-3 flex",children:[(0,i.jsx)("p",{className:"text-sm text-muted-foreground m-auto",children:"No file selected"}),t]})});let o=s,u="";if(s.includes("[bucket:")){var x,h;u=(null===(x=s.split("[bucket:")[1])||void 0===x?void 0:x.split("]")[0])||"",(null==(o=(null===(h=s.split("[bucket:")[1])||void 0===h?void 0:h.split("]")[0])||"")?void 0:o.length)&&(o=s.split("]")[1]||"")}return o=o.split("_EXULU_").pop()||"",(0,i.jsxs)(E.Zb,{children:[(0,i.jsx)(E.Ol,{className:"pb-3",children:(0,i.jsx)(E.ll,{className:"text-sm max-w-[500px] truncate",children:o})}),(0,i.jsxs)(E.aY,{className:"pt-0",children:[n&&(0,i.jsxs)("div",{className:"space-y-2",children:[(0,i.jsx)(M.O,{className:"h-4 w-full"}),(0,i.jsx)(M.O,{className:"h-4 w-2/3"})]}),!n&&l&&(0,i.jsxs)("div",{className:"space-y-2",children:[(0,i.jsxs)("div",{className:"flex items-center justify-between text-xs text-muted-foreground",children:[(0,i.jsxs)("span",{className:"capitalize",children:[null==l?void 0:l.ContentType.split("/").pop(),u&&" [Bucket: ".concat(u,"]")]}),(0,i.jsxs)("span",{children:[((null==l?void 0:l.ContentLength)/1024/1024).toFixed(2)," MB"]})]}),(0,i.jsxs)("div",{className:"flex items-center justify-between text-xs text-muted-foreground",children:[(0,i.jsxs)("span",{children:["Last modified: ",new Date(null==l?void 0:l.LastModified).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric",hour:"2-digit",minute:"2-digit"})]}),(0,i.jsxs)(b.z,{variant:"secondary",size:"sm",type:"button",className:"h-7 px-2",onClick:()=>{r.QZ.download(s).then(async e=>{console.log("res",e);let s=await e.json();console.log("res",s);let t=s.url;window.open(t,"_blank")})},children:[(0,i.jsx)("span",{className:"mr-1 text-xs",children:"View"}),(0,i.jsx)(m.Z,{className:"h-3 w-3"})]})]})]}),!n&&c&&(0,i.jsx)("p",{className:"text-xs text-muted-foreground",children:c.message}),t]})]})}function P(e){let{id:s,allowedFileTypes:t,dependencies:l,onConfirm:n,selectionLimit:r,buttonText:c}=e,[d,o]=(0,a.useState)(!1);return(0,i.jsxs)(k.Vq,{open:d,onOpenChange:o,children:[(0,i.jsx)(k.hg,{asChild:!0,children:(0,i.jsxs)(b.z,{variant:"outline",children:[c&&(0,i.jsx)("span",{className:"mr-2",children:c}),(0,i.jsx)(x.Z,{className:"h-4 w-4"})]})}),(0,i.jsxs)(k.cZ,{className:"sm:max-w-[900px]",children:[(0,i.jsxs)(k.fK,{children:[(0,i.jsx)(k.$N,{children:"File Gallery"}),(0,i.jsx)(k.Be,{children:"Browse your previously uploaded files or upload new ones."})]}),(0,i.jsx)(T,{id:s,allowedFileTypes:t,dependencies:l,selectionLimit:r,onConfirm:e=>{n(e),o(!1)}})]})]})}let T=e=>{var s,t;let{id:l,allowedFileTypes:n,dependencies:d,onConfirm:m,selectionLimit:x}=e;n||(n=[".png",".jpg",".jpeg",".gif",".webp",".pdf",".docx",".xlsx",".xls",".csv",".pptx",".ppt",".mp3",".wav",".m4a",".mp4",".mpeg",".mp4",".m4a",".mp3",".mpeg",".wav"]);let[v,f]=(0,a.useState)(void 0),[g,y]=(0,a.useState)(void 0),[N,w]=(0,a.useState)(void 0),k=(0,a.useContext)(c.E),[E,O]=(0,a.useState)([]),P=e=>{if(E.includes(e)){O(E.filter(s=>s!==e));return}if(1===x){O([e]);return}E.length>=x||O([...E,e])},T=(0,_.D)({mutationFn:async e=>{let{key:s}=e;await r.QZ.delete(s),F()}}),{data:R,isLoading:D,error:L,refetch:F}=(0,S.a)({queryKey:["filesQuery",v,N],staleTime:3e4,queryFn:async()=>r.QZ.list({search:v,continuationToken:N})});console.log("!! data !!",R);let{theme:B}=(0,Z.F)(),U=o({backend:(null==k?void 0:k.backend)||"",uppyOptions:{id:l,allowedFileTypes:n},callbacks:{uploadSuccess:async e=>{console.log("data",e)}},maxNumberOfFiles:10},d);return((0,a.useEffect)(()=>{F()},[v,N]),U)?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4 mt-4",children:[(0,i.jsxs)("div",{className:"border rounded-lg p-4",children:[(0,i.jsx)("h3",{className:"text-sm font-medium mb-3",children:"Previously Uploaded Files"}),(0,i.jsx)(z.I,{placeholder:"Search files...",value:v,onChange:e=>f(e.target.value),className:"mb-3"}),(0,i.jsxs)("div",{className:"flex items-center justify-between text-xs text-muted-foreground pb-2",children:[(0,i.jsxs)("span",{children:[E.length," / ",x," files selected"]}),(0,i.jsxs)("span",{children:["Allowed file types: ",null==n?void 0:n.map(e=>e).join(", ")]})]}),(0,i.jsxs)(C.x,{children:[D&&(0,i.jsxs)("div",{className:"flex items-center justify-center h-full w-full grid grid-cols-2 sm:grid-cols-3 gap-3",children:[(0,i.jsx)(M.O,{className:"h-[120px] w-full"}),(0,i.jsx)(M.O,{className:"h-[120px] w-full"}),(0,i.jsx)(M.O,{className:"h-[120px] w-full"}),(0,i.jsx)(M.O,{className:"h-[120px] w-full"}),(0,i.jsx)(M.O,{className:"h-[120px] w-full"}),(0,i.jsx)(M.O,{className:"h-[120px] w-full"}),(0,i.jsx)(M.O,{className:"h-[120px] w-full"}),(0,i.jsx)(M.O,{className:"h-[120px] w-full"}),(0,i.jsx)(M.O,{className:"h-[120px] w-full"})]}),(0,i.jsxs)("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-3",children:[!D&&!(null==R?void 0:null===(s=R.Contents)||void 0===s?void 0:s.length)&&(0,i.jsxs)("div",{className:"col-span-full flex flex-col items-center justify-center py-12 text-center",children:[(0,i.jsx)(h.Z,{className:"h-12 w-12 text-muted-foreground/50 mb-3"}),(0,i.jsx)("p",{className:"text-sm font-medium text-muted-foreground",children:"Nothing to see here... yet!"}),(0,i.jsx)("p",{className:"text-xs text-muted-foreground/75 mt-1",children:"Upload some files to get started"})]}),null==R?void 0:null===(t=R.Contents)||void 0===t?void 0:t.map(e=>(0,i.jsx)(I,{s3Key:e.Key,onSelect:P,active:E.some(s=>s===e.Key),onRemove:()=>{T.mutate({key:e.Key})},disabled:!!n&&!(null==n?void 0:n.some(s=>e.Key.endsWith(s)))}))]}),(0,i.jsx)("div",{className:"flex items-center space-x-6 lg:space-x-8 pt-3",children:(0,i.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,i.jsxs)(b.z,{variant:"outline",className:"hidden size-8 p-0 lg:flex",onClick:()=>{w(void 0)},disabled:!N||D,children:[(0,i.jsx)("span",{className:"sr-only",children:"Go to first page"}),(0,i.jsx)(A.kRt,{className:"size-4"})]}),(0,i.jsxs)(b.z,{variant:"outline",className:"size-8 p-0",onClick:()=>{w(g)},disabled:!N||D,children:[(0,i.jsx)("span",{className:"sr-only",children:"Go to previous page"}),(0,i.jsx)(p.Z,{className:"size-4"})]}),(0,i.jsxs)(b.z,{variant:"outline",className:"size-8 p-0",onClick:()=>{y(N),w(null==R?void 0:R.NextContinuationToken)},disabled:!(null==R?void 0:R.NextContinuationToken)||D,children:[(0,i.jsx)("span",{className:"sr-only",children:"Go to next page"}),(0,i.jsx)(j.Z,{className:"size-4"})]})]})})]})]}),(0,i.jsxs)("div",{className:"border rounded-lg p-4",children:[(0,i.jsx)("h3",{className:"text-sm font-medium mb-3",children:"Upload New Files"}),(0,i.jsx)(u.A,{uppy:U,theme:"dark"===B?"dark":"light"})]})]}),(0,i.jsx)("div",{className:"flex justify-end",children:(0,i.jsx)(b.z,{variant:"outline",onClick:()=>{m(E),O([])},children:"Confirm"})})]}):null},I=e=>{let{s3Key:s,onSelect:t,onRemove:a,active:l,disabled:n,addToContext:c}=e;return(0,i.jsxs)("div",{className:"".concat(n?"opacity-50":""," group relative rounded-lg p-2 hover:bg-muted transition-colors cursor-pointer ").concat(l?"border border-purple-500":"border"),onClick:()=>{!n&&t&&t(s)},children:[(0,i.jsx)("div",{className:"aspect-square relative mb-2 bg-muted/50 rounded-md overflow-hidden flex items-center justify-center",children:s&&(s.toLowerCase().endsWith("jpg")||s.toLowerCase().endsWith("jpeg")||s.toLowerCase().endsWith("png")||s.toLowerCase().endsWith("svg"))?(0,i.jsx)(L,{fileKey:s}):(0,i.jsxs)("div",{className:"flex flex-col items-center justify-center h-full",children:[s?s.toLowerCase().endsWith("jpg")||s.toLowerCase().endsWith("jpeg")||s.toLowerCase().endsWith("png")||s.toLowerCase().endsWith("svg")?(0,i.jsx)(f.Z,{className:"h-6 w-6 text-blue-500"}):s.endsWith("pdf")?(0,i.jsx)(g.Z,{className:"h-6 w-6 text-red-500"}):s.endsWith("xls")||s.endsWith("xlsx")||s.endsWith("csv")?(0,i.jsx)(v.Z,{className:"h-6 w-6 text-green-500"}):s.endsWith("ppt")||s.endsWith("pptx")?(0,i.jsx)(v.Z,{className:"h-6 w-6 text-orange-500"}):(0,i.jsx)(v.Z,{className:"h-6 w-6 text-gray-500"}):(0,i.jsx)(v.Z,{className:"h-6 w-6 text-gray-500"}),(0,i.jsx)("span",{className:"text-xs text-muted-foreground mt-1 text-center",children:s?s.split("_EXULU_").pop():s})]})}),(0,i.jsx)("p",{className:"text-xs truncate",children:s?s.split("_EXULU_").pop():s}),(0,i.jsxs)("div",{className:"opacity-0 group-hover:opacity-100 flex absolute top-1 right-1",children:[c&&(0,i.jsxs)(b.z,{variant:"ghost",size:"icon",type:"button",className:"h-6 w-6 bg-background/80 hover:bg-background",onClick:()=>{c(s)},children:[(0,i.jsx)(y.Z,{className:"h-3 w-3"}),(0,i.jsx)("span",{className:"sr-only",children:"Add"})]}),(0,i.jsxs)(b.z,{variant:"ghost",size:"icon",type:"button",className:"h-6 w-6 bg-background/80 hover:bg-background",onClick:()=>{r.QZ.download(s).then(async e=>{console.log("res",e);let s=await e.json();console.log("res",s);let t=s.url;window.open(t,"_blank")})},children:[(0,i.jsx)(m.Z,{className:"h-3 w-3"}),(0,i.jsx)("span",{className:"sr-only",children:"View"})]}),a&&(0,i.jsxs)(b.z,{onClick:e=>{e.stopPropagation(),a(s)},variant:"ghost",type:"button",size:"icon",className:"h-6 w-6 opacity-0 group-hover:opacity-100 bg-background/80 hover:bg-background ml-1",children:[(0,i.jsx)(N.Z,{className:"h-3 w-3"}),(0,i.jsx)("span",{className:"sr-only",children:"Remove"})]})]})]},s)},R={},D=async e=>{if(R[e]){if(!(R[e].expiresAt<Date.now()))return R[e].url;delete R[e]}let s=await r.QZ.download(e),t=await s.json();return console.log("json",t),R[e]={url:t.url,expiresAt:Date.now()+6e4},t.url},L=e=>{let{fileKey:s}=e;console.log("key",s);let t=(0,S.a)({queryKey:["imageQuery",s],staleTime:3e4,queryFn:async()=>D(s)});return t.isLoading?(0,i.jsx)("div",{children:(0,i.jsx)(w.Z,{})}):t.isLoading||t.data?(0,i.jsx)("img",{src:t.data,alt:s,className:"object-cover w-full h-full"}):(0,i.jsx)("div",{children:(0,i.jsx)(h.Z,{})})}},36399:function(e,s,t){"use strict";t.d(s,{t:function(){return l}});var i=t(27689),a=t(7211);let l=()=>(0,a.aM)(i.uw,{variables:{limit:20}})},87393:function(e,s,t){"use strict";t.d(s,{I:function(){return i}});let i=(e,s)=>{var t,i,a,l,n,r;let c="private"===e.rights_mode,d="public"===e.rights_mode,o="users"===e.rights_mode,u="roles"===e.rights_mode,m=s.super_admin,x=e.created_by===s.id.toString(),h=!1;return c&&x&&(h=!0),d&&(h=!0),o&&(h=(null===(a=e.RBAC)||void 0===a?void 0:null===(i=a.users)||void 0===i?void 0:null===(t=i.find(e=>e.id===s.id))||void 0===t?void 0:t.rights)==="write"),u&&(h=(null===(r=e.RBAC)||void 0===r?void 0:null===(n=r.roles)||void 0===n?void 0:null===(l=n.find(e=>{var t;return e.id===(null===(t=s.role)||void 0===t?void 0:t.id)}))||void 0===l?void 0:l.rights)==="write"),m&&(h=!0),h}},63639:function(e,s,t){"use strict";t.d(s,{Z:function(){return i}});let i=(0,t(39763).Z)("AlertTriangle",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z",key:"c3ski4"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},24156:function(e,s,t){"use strict";t.d(s,{Z:function(){return i}});let i=(0,t(39763).Z)("ChevronsUpDown",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]])},14924:function(e,s,t){"use strict";t.d(s,{Z:function(){return i}});let i=(0,t(39763).Z)("Folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]])},29202:function(e,s,t){"use strict";t.d(s,{Z:function(){return i}});let i=(0,t(39763).Z)("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]])},66337:function(e,s,t){"use strict";t.d(s,{Z:function(){return i}});let i=(0,t(39763).Z)("Lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]])},53417:function(e,s,t){"use strict";t.d(s,{Z:function(){return i}});let i=(0,t(39763).Z)("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]])},45675:function(e,s,t){"use strict";t.d(s,{Z:function(){return i}});let i=(0,t(39763).Z)("Pencil",[["path",{d:"M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z",key:"5qss01"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]])},88906:function(e,s,t){"use strict";t.d(s,{Z:function(){return i}});let i=(0,t(39763).Z)("Shield",[["path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10",key:"1irkt0"}]])},9270:function(e,s,t){"use strict";t.d(s,{fC:function(){return N},z$:function(){return b}});var i=t(2265),a=t(98575),l=t(73966),n=t(6741),r=t(80886),c=t(6718),d=t(90420),o=t(71599),u=t(66840),m=t(57437),x="Checkbox",[h,p]=(0,l.b)(x),[j,v]=h(x);function f(e){let{__scopeCheckbox:s,checked:t,children:a,defaultChecked:l,disabled:n,form:c,name:d,onCheckedChange:o,required:u,value:h="on",internal_do_not_use_render:p}=e,[v,f]=(0,r.T)({prop:t,defaultProp:null!=l&&l,onChange:o,caller:x}),[g,y]=i.useState(null),[N,w]=i.useState(null),b=i.useRef(!1),k=!g||!!c||!!g.closest("form"),C={checked:v,disabled:n,setChecked:f,control:g,setControl:y,name:d,form:c,value:h,hasConsumerStoppedPropagationRef:b,required:u,defaultChecked:!Z(l)&&l,isFormControl:k,bubbleInput:N,setBubbleInput:w};return(0,m.jsx)(j,{scope:s,...C,children:"function"==typeof p?p(C):a})}var g="CheckboxTrigger",y=i.forwardRef((e,s)=>{let{__scopeCheckbox:t,onKeyDown:l,onClick:r,...c}=e,{control:d,value:o,disabled:x,checked:h,required:p,setControl:j,setChecked:f,hasConsumerStoppedPropagationRef:y,isFormControl:N,bubbleInput:w}=v(g,t),b=(0,a.e)(s,j),k=i.useRef(h);return i.useEffect(()=>{let e=null==d?void 0:d.form;if(e){let s=()=>f(k.current);return e.addEventListener("reset",s),()=>e.removeEventListener("reset",s)}},[d,f]),(0,m.jsx)(u.WV.button,{type:"button",role:"checkbox","aria-checked":Z(h)?"mixed":h,"aria-required":p,"data-state":S(h),"data-disabled":x?"":void 0,disabled:x,value:o,...c,ref:b,onKeyDown:(0,n.M)(l,e=>{"Enter"===e.key&&e.preventDefault()}),onClick:(0,n.M)(r,e=>{f(e=>!!Z(e)||!e),w&&N&&(y.current=e.isPropagationStopped(),y.current||e.stopPropagation())})})});y.displayName=g;var N=i.forwardRef((e,s)=>{let{__scopeCheckbox:t,name:i,checked:a,defaultChecked:l,required:n,disabled:r,value:c,onCheckedChange:d,form:o,...u}=e;return(0,m.jsx)(f,{__scopeCheckbox:t,checked:a,defaultChecked:l,disabled:r,required:n,onCheckedChange:d,name:i,form:o,value:c,internal_do_not_use_render:e=>{let{isFormControl:i}=e;return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(y,{...u,ref:s,__scopeCheckbox:t}),i&&(0,m.jsx)(C,{__scopeCheckbox:t})]})}})});N.displayName=x;var w="CheckboxIndicator",b=i.forwardRef((e,s)=>{let{__scopeCheckbox:t,forceMount:i,...a}=e,l=v(w,t);return(0,m.jsx)(o.z,{present:i||Z(l.checked)||!0===l.checked,children:(0,m.jsx)(u.WV.span,{"data-state":S(l.checked),"data-disabled":l.disabled?"":void 0,...a,ref:s,style:{pointerEvents:"none",...e.style}})})});b.displayName=w;var k="CheckboxBubbleInput",C=i.forwardRef((e,s)=>{let{__scopeCheckbox:t,...l}=e,{control:n,hasConsumerStoppedPropagationRef:r,checked:o,defaultChecked:x,required:h,disabled:p,name:j,value:f,form:g,bubbleInput:y,setBubbleInput:N}=v(k,t),w=(0,a.e)(s,N),b=(0,c.D)(o),C=(0,d.t)(n);i.useEffect(()=>{if(!y)return;let e=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set,s=!r.current;if(b!==o&&e){let t=new Event("click",{bubbles:s});y.indeterminate=Z(o),e.call(y,!Z(o)&&o),y.dispatchEvent(t)}},[y,b,o,r]);let S=i.useRef(!Z(o)&&o);return(0,m.jsx)(u.WV.input,{type:"checkbox","aria-hidden":!0,defaultChecked:null!=x?x:S.current,required:h,disabled:p,name:j,value:f,form:g,...l,tabIndex:-1,ref:w,style:{...l.style,...C,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});function Z(e){return"indeterminate"===e}function S(e){return Z(e)?"indeterminate":e?"checked":"unchecked"}C.displayName=k},6394:function(e,s,t){"use strict";t.d(s,{f:function(){return r}});var i=t(2265),a=t(66840),l=t(57437),n=i.forwardRef((e,s)=>(0,l.jsx)(a.WV.label,{...e,ref:s,onMouseDown:s=>{var t;s.target.closest("button, input, select, textarea")||(null===(t=e.onMouseDown)||void 0===t||t.call(e,s),!s.defaultPrevented&&s.detail>1&&s.preventDefault())}}));n.displayName="Label";var r=n}},function(e){e.O(0,[6840,8310,9851,7629,7093,6148,847,1942,7648,7823,8068,5799,605,4567,1206,5338,1785,5110,3171,1713,4811,6373,3832,8030,2971,2117,1744],function(){return e(e.s=62839)}),_N_E=e.O()}]);
|
|
2
|
-
//# sourceMappingURL=page-bc859da58d8505f7.js.map
|
package/dist/.next/static/chunks/app/(application)/projects/[project]/page-bc859da58d8505f7.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static/chunks/app/(application)/projects/[project]/page-bc859da58d8505f7.js","mappings":"qFAAAA,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAC,IAAA,CAAAD,EAAA,2QCaM,IAAAE,EAAYC,CAAAA,EAAAA,EAAAA,CAAAA,EAAiB,YAAa,CAC9C,CAAC,OAAQ,CAAEC,EAAG,WAAYC,IAAK,UAAU,CACzC,CAAC,OAAQ,CAAED,EAAG,WAAYC,IAAK,UAAU,CACzC,CAAC,SAAU,CAAEC,GAAI,KAAMC,GAAI,KAAMC,EAAG,IAAKH,IAAK,UAAU,CACxD,CAAC,SAAU,CAAEC,GAAI,IAAKC,GAAI,IAAKC,EAAG,IAAKH,IAAK,UAAU,CACvD,ECLKI,EAAQN,CAAAA,EAAAA,EAAAA,CAAAA,EAAiB,QAAS,CACtC,CACE,OACA,CACEC,EAAG,oIACHC,IAAK,QACP,EACF,CACA,CAAC,OAAQ,CAAED,EAAG,+CAAgDC,IAAK,UAAU,CAC7E,CAAC,OAAQ,CAAED,EAAG,YAAaC,IAAK,UAAU,CAC3C,kDCVK,IAAAK,EAAeP,CAAAA,EAAAA,EAAAA,CAAAA,EAAiB,eAAgB,CACpD,CAAC,OAAQ,CAAEC,EAAG,WAAYC,IAAK,UAAU,CACzC,CACE,OACA,CACED,EAAG,8GACHC,IAAK,QACP,EACF,CACA,CAAC,OAAQ,CAAED,EAAG,mBAAoBC,IAAK,UAAU,CACjD,CAAC,WAAY,CAAEM,OAAQ,uBAAwBN,IAAK,UAAU,CAC9D,CAAC,OAAQ,CAAEO,GAAI,KAAMC,GAAI,KAAMC,GAAI,KAAMC,GAAI,KAAMV,IAAK,UAAU,CACnE,+JCZK,IAAAW,EAAab,CAAAA,EAAAA,EAAAA,CAAAA,EAAiB,aAAc,CAChD,CAAC,OAAQ,CAAEc,MAAO,KAAMC,OAAQ,KAAMC,EAAG,IAAKC,EAAG,IAAKC,GAAI,IAAKhB,IAAK,UAAU,CAC9E,CAAC,OAAQ,CAAED,EAAG,UAAWC,IAAK,UAAU,CACxC,CAAC,OAAQ,CAAED,EAAG,UAAWC,IAAK,UAAU,CACzC,iBCSM,IAAMiB,EAAsB,QAqCCC,KArCA,CAAEC,UAAAA,CAAS,CAK9C,CAAAC,EAGS,CAAEF,KAAAA,CAAI,CAAEG,QAAAA,CAAO,CAAEC,MAAAA,CAAK,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,CAAAA,IAC3B,CAACC,EAASC,EAAW,CAAGC,CAAAA,EAAAA,EAAAA,QAAAA,EAA8BC,KAAAA,GACtD,CAACC,EAAMC,EAAQ,CAAGH,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IAEjC,MAAQ,GAAAI,EAAAC,IAAA,EAACC,EAAAA,EAAMA,CAAAA,CAACJ,KAAMA,EAAMK,aAAc,IACtCJ,EAAQK,GACRT,EAAWE,KAAAA,EACf,YACI,GAAAG,EAAAK,GAAA,EAACC,EAAAA,EAAaA,CAAAA,CAACC,QAAO,YAClB,GAAAP,EAAAC,IAAA,EAACO,EAAAA,CAAMA,CAAAA,CAACC,UAAU,SAASC,QAAQ,oBAC/B,GAAAV,EAAAK,GAAA,EAACM,EAAcA,CAACF,UAAU,iBAAiB,mFAKnD,GAAAT,EAAAC,IAAA,EAACW,EAAAA,EAAaA,CAAAA,CAACH,UAAU,6BACrB,GAAAT,EAAAC,IAAA,EAACY,EAAAA,EAAYA,CAAAA,WACT,GAAAb,EAAAK,GAAA,EAACS,EAAAA,EAAWA,CAAAA,UAAC,mBACb,GAAAd,EAAAK,GAAA,EAACU,EAAAA,EAAiBA,CAAAA,UAAC,iDAGnB,CAACrB,GACG,GAAAM,EAAAC,IAAA,EAACe,EAAAA,EAAOA,CAAAA,CAACP,UAAU,yDACf,GAAAT,EAAAK,GAAA,EAACY,EAAAA,EAAYA,CAAAA,CAACC,YAAY,gCAC1B,GAAAlB,EAAAC,IAAA,EAACkB,EAAAA,EAAWA,CAAAA,WACR,GAAAnB,EAAAK,GAAA,EAACe,EAAAA,EAAYA,CAAAA,UAAC,sBAEd,GAAApB,EAAAK,GAAA,EAACgB,EAAAA,EAAYA,CAAAA,CAACC,QAAQ,oBAEdlC,MAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAMmC,QAAQ,GAAdnC,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgBoC,KAAK,CAACC,GAAG,CAAC,GACtB,GAAAzB,EAAAK,GAAA,EAACqB,EAAAA,EAAWA,CAAAA,CAAkBC,SAAU,KACpChC,EAAWD,EACf,WACKA,EAAQkC,IAAI,EAHClC,EAAQmC,EAAE,WAcpDnC,GACI,GAAAM,EAAAK,GAAA,EAACyB,EAAAA,CAAUpC,QAASA,EAASL,UAAW,IACpC0C,QAAQC,GAAG,CAAC,OAAQC,GACpB5C,EAAU,CAAC,CACP4C,KAAAA,EACAvC,QAAAA,CACJ,EAAE,EACFK,EAAQ,GACZ,SAKpB,EAEM+B,EAAY,QA+CmB1C,EAAAA,EAIhB8C,EAAAC,EAAC/C,KAnDH,CAAEM,QAAAA,CAAO,CAAEL,UAAAA,CAAS,CAAyD,CAAAC,EACtF,CAAC8C,EAAQC,EAAU,CAAGzC,CAAAA,EAAAA,EAAAA,QAAAA,EAA6BC,KAAAA,GACrD,CAAEN,QAAAA,CAAO,CAAEH,KAAAA,CAAI,CAAEkD,QAAAA,CAAO,CAAEC,aAAcC,CAAI,CAAEhD,MAAAA,CAAK,CAAE,CAAGiD,CAAAA,EAAAA,EAAAA,EAAAA,EAWzDC,CAAAA,EAAAA,EAAAA,EAAAA,EAAUhD,EAAQmC,EAAE,CAAE,EAAE,EAAG,CAC1Bc,YAAa,WACbC,gBAAiB,eACjBC,KAAM,CAACnD,EAAQmC,EAAE,CACjBiB,UAAW,CACPpD,QAASA,EAAQmC,EAAE,CACnBkB,KAAM,EACNC,MAAO,GACPC,KAAM,CACFC,MAAO,YACPC,UAAW,MACf,EACAC,QAAS,CACLC,SAAU,CACNC,GAAI,EACR,EACA,GAAIlB,EAAS,CAAER,KAAM,CAAE2B,SAAU,GAAUC,MAAA,CAAPpB,EAAS,CAAE,EAAI,CAAC,CAAC,CAE7D,CACJ,GAEA,MACI,GAAApC,EAAAC,IAAA,EAACe,EAAAA,EAAOA,CAAAA,CAACP,UAAU,yDACf,GAAAT,EAAAK,GAAA,EAACY,EAAAA,EAAYA,CAAAA,CAACwC,cAAe,GAAUpB,EAAUjD,GAAO8B,YAAY,gCACpE,GAAAlB,EAAAK,GAAA,EAACc,EAAAA,EAAWA,CAAAA,UACR,GAAAnB,EAAAC,IAAA,EAACoB,EAAAA,EAAYA,CAAAA,CAACC,QAAQ,kBAEd,CAACkB,GAAQjD,GACL,GAAAS,EAAAK,GAAA,EAACqB,EAAAA,EAAWA,CAAAA,UACR,GAAA1B,EAAAK,GAAA,EAACqD,EAAAA,CAAOA,CAAAA,CAAAA,IADM,WAMtB,CAACnE,GAAW,CAACH,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,CAAM,CAACM,EAAQmC,EAAE,CAAG8B,EAAAA,EAAkBA,CAAC,GAAvCvE,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAyCoC,KAAK,GAA9CpC,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgDwE,MAAM,GAC/D,GAAA5D,EAAAK,GAAA,EAACe,EAAAA,EAAYA,CAAAA,UAAC,oBAGZoB,OAARpD,CAAAA,EAAAA,GAAQoD,CAAAA,GAARpD,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,OAAD+C,CAAAA,EAAA0B,CAAgB,CAACnE,EAAQmC,EAAE,CAAG8B,EAAAA,EAAkBA,CAAC,GAAjDxB,KAAA,IAAAA,EAAA,cAAAD,CAAAA,EAAAC,EAAmDX,KAAK,GAAxDU,KAAA,IAAAA,EAAA,OAAAA,EAA0DT,GAAG,CAAC,GAC3D,GAAAzB,EAAAK,GAAA,EAACqB,EAAAA,EAAWA,CAAAA,CAAeC,SAAU,KACjCtC,EAAU4C,EACd,WAAIA,EAAKL,IAAI,EAFKK,EAAKJ,EAAE,UAQjD,gBCjHO,SAASiC,EAAexE,CAAgC,MAqBpDyE,EACAA,EACGA,EAkCyBC,EACbC,EAoeUF,EACAA,EACGA,KAhiBR,CAAEA,QAAAA,CAAO,CAAuB,CAAhCzE,EACvB,CAAC4E,EAAWC,EAAa,CAAGvE,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IACrC,CAACwE,EAAoBC,EAAsB,CAAGzE,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IACvD,CAAC0E,EAAsBC,EAAwB,CAAG3E,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IAC3D,CAAC4E,EAAaC,GAAe,CAAG7E,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IACzC,CAAC8E,GAAYC,GAAc,CAAG/E,CAAAA,EAAAA,EAAAA,QAAAA,EAAsE,YACpG,CAAEgF,KAAAA,EAAI,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,UAAAA,EAAWC,EAAAA,CAAWA,EACjCC,GAASC,CAAAA,EAAAA,EAAAA,SAAAA,IACT,CAACC,GAAeC,GAAiB,CAAGtF,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,CACjDuF,YAAa,GACbC,eAAgB,EAClB,GACM,CAACC,GAAUC,GAAY,CAAG1F,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,CACvCgC,KAAMmC,EAAQnC,IAAI,EAAI,GACtB2D,YAAaxB,EAAQwB,WAAW,EAAI,GACpCC,oBAAqBzB,EAAQyB,mBAAmB,EAAI,EACtD,GACM,CAAEC,MAAAA,EAAK,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,IAEZ,CAACC,GAAMC,GAAQ,CAAGhG,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,CAC/BiG,YAAa9B,EAAQ8B,WAAW,CAChCC,MAAK,OAAE/B,CAAAA,EAAAA,EAAQgC,IAAI,GAAZhC,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAc+B,KAAK,CAC1BE,MAAK,OAAEjC,CAAAA,EAAAA,EAAQgC,IAAI,GAAZhC,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAciC,KAAK,CAC1BC,SAAQ,OAAElC,CAAAA,EAAAA,EAAQgC,IAAI,GAAZhC,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAckC,QAAQ,GAG5B,CAACC,GAAcC,GAAgB,CAAGvG,CAAAA,EAAAA,EAAAA,QAAAA,EAAmBmE,EAAQqC,aAAa,EAAI,EAAE,EAChF,CAACC,GAAe,CAAE9G,QAAS+G,EAAQ,CAAE,CAAC,CAAGC,CAAAA,EAAAA,EAAAA,CAAAA,EAAYC,EAAAA,EAAcA,EACnE,CAACC,GAAc,CAAGF,CAAAA,EAAAA,EAAAA,CAAAA,EAAYG,EAAAA,EAAcA,EAC5C,CAACC,GAAiBC,GAAmB,CAAGhH,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IACjD,CAAER,KAAM4E,EAAY,CAAEzE,QAASsH,EAAe,CAAEvE,QAASwE,EAAe,CAAE,CAAGrE,CAAAA,EAAAA,EAAAA,EAAAA,EAASsE,EAAAA,EAAkBA,CAAE,CAC9GjE,UAAW,CACTC,KAAM,EACNC,MAAO,GACPI,QAAS,CACP,CAAEW,QAAS,CAAEiD,GAAIjD,EAAQlC,EAAE,CAAG,EAC/B,CAEL,GAEM,CAAEzC,KAAM6E,EAAU,CAAE1E,QAAS0H,EAAa,CAAE,CAAGxE,CAAAA,EAAAA,EAAAA,EAAAA,EAASyE,EAAAA,EAAUA,CAAE,CACxEpE,UAAW,CACTC,KAAM,EACNC,MAAO,IACPI,QAAS,EAAE,CACXH,KAAM,CAAEC,MAAO,YAAaC,UAAW,MAAO,CAChD,CACF,GAEMgE,GAAeC,CAAAA,EAAAA,EAAAA,CAAAA,IAEf,CAACC,GAAoB,CAAE9H,QAAS+H,EAAiB,CAAE,CAAC,CAAGf,CAAAA,EAAAA,EAAAA,CAAAA,EAAYgB,EAAAA,EAAoBA,EAEvF,CAACC,GAAoB,CAAEjI,QAASkI,EAAiB,CAAE,CAAC,CAAGlB,CAAAA,EAAAA,EAAAA,CAAAA,EAAYmB,EAAAA,EAA4BA,EAE/F,CAACC,GAAe,CAAEpI,QAASqI,EAAiB,CAAE,CAAC,CAAGrB,CAAAA,EAAAA,EAAAA,CAAAA,EAAYsB,EAAAA,EAA0BA,EAExFC,GAA+B9D,CAAAA,MAAAA,GAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,GAAc+D,wBAAwB,GAAtC/D,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAwCxC,KAAK,GAAI,EAAE,CAClFwG,GAAkB/D,CAAAA,MAAAA,GAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,GAAYgE,gBAAgB,GAA5BhE,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA8BzC,KAAK,GAAI,EAAE,CAE3D0G,GAAiBC,EAAAA,OAAa,CAAC,IACnC,EACOH,GAAOI,MAAM,CAACC,GACnBA,EAAMzG,IAAI,CAAC0G,WAAW,GAAGC,QAAQ,CAAC/D,EAAY8D,WAAW,KAFlCN,GAIxB,CAACA,GAAQxD,EAAY,EAElBgE,GAAa,UACjB,GAAI,CAACnD,GAASzD,IAAI,CAAC6G,IAAI,GAAI,CACzBhD,GAAM,CACJiD,MAAO,mBACPnD,YAAa,4BACb7E,QAAS,aACX,GACA,MACF,CAEA,GAAI,CACF,MAAM2F,GAAc,CAClBvD,UAAW,CACTjB,GAAIkC,EAAQlC,EAAE,CACd8G,MAAO,CACL/G,KAAMyD,GAASzD,IAAI,CAAC6G,IAAI,GACxBlD,YAAaF,GAASE,WAAW,CAACkD,IAAI,IAAM,KAC5CjD,oBAAqBH,GAASG,mBAAmB,CAACiD,IAAI,IAAM,IAC9D,CACF,CACF,GAEAhD,GAAM,CACJiD,MAAO,UACPnD,YAAa,+BACf,GAEApB,EAAa,GACf,CAAE,MAAO3E,EAAY,CACnBuC,QAAQvC,KAAK,CAAC,0BAA2BA,GACzCiG,GAAM,CACJiD,MAAO,QACPnD,YAAa/F,EAAMoJ,OAAO,EAAI,8CAC9BlI,QAAS,aACX,EACF,CACF,EAiBMmI,GAAoB,MAAOR,IAC/B,GAAI,KAagBS,EAAAA,EAAAA,EAZlB,IAAMA,EAAS,MAAMzB,GAAmB,CACtCvE,UAAW,CACT4F,MAAO,oBAA+BlF,MAAA,CAAX6E,EAAMzG,IAAI,EACrCyG,MAAOA,EAAMxG,EAAE,CACfkC,QAASA,EAAQlC,EAAE,CACnBgE,YAAa,WACbE,KAAM,CACJE,SAAU,CAAC,CAAEpE,GAAIkC,EAAQlC,EAAE,CAAEkH,OAAQ,MAAO,EAAE,CAElD,CACF,GAEMC,EAAAA,OAAYF,CAAAA,EAAAA,EAAO1J,IAAI,GAAX0J,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAaG,uBAAuB,GAApCH,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAsC7G,IAAI,GAA1C6G,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA4CjH,EAAE,CAE5DmH,IACFvD,GAAM,CACJiD,MAAO,UACPnD,YAAa,4GACf,GAEAhB,EAAwB,IACxBE,GAAe,IAEfM,GAAOmE,IAAI,CAAC,SAAqBF,MAAAA,CAAZX,EAAMxG,EAAE,CAAC,KAAa2B,MAAA,CAAVwF,IAErC,CAAE,MAAOxJ,EAAY,CACnBuC,QAAQvC,KAAK,CAAC,0BAA2BA,GACzCiG,GAAM,CACJiD,MAAO,QACPnD,YAAa/F,EAAMoJ,OAAO,EAAI,8CAC9BlI,QAAS,aACX,EACF,CACF,EAEMyI,GAAsB,UAC1B,GAAI,CACFvC,GAAmB,IACf3B,GAAcE,WAAW,EAC3B,MAAMzH,QAAQ0L,GAAG,CAAClD,GAAazE,GAAG,CAAC,MAAOQ,QASpC7C,EAEmBA,EAVvB,IAAMM,EAAUuC,EAAKoH,KAAK,CAAC,IAAI,CAAC,EAAE,CAC5BxH,EAAKI,EAAKoH,KAAK,CAAC,IAAI,CAAC,EAAE,CAC7B,GAAI,CAAC3J,GAAW,CAACmC,EAAI,OACrB,GAAM,CAAEzC,KAAAA,CAAI,CAAE,CAAG,MAAM+H,GAAamC,MAAM,CAAC,CACzCC,SAAUC,CAAAA,EAAAA,EAAAA,EAAAA,EAAY9J,EAASA,0BAAAA,EAAsC,CAAC,QAAQ,CAAG,EAAE,EACnFoD,UAAW,CAAEjB,GAAAA,CAAG,CAClB,GAEA,UAAIzC,CAAAA,EAAAA,CAAI,CAAC,GAAWoE,MAAA,CAAR9D,EAAQ,uBAAqB,GAArCN,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAuCqK,KAAK,CAC9C,GAAI,CACF,MAAMC,EAAAA,EAAKA,CAACC,MAAM,QAACvK,CAAAA,EAAAA,CAAI,CAAC,GAAWoE,MAAA,CAAR9D,EAAQ,uBAAqB,GAArCN,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAuCqK,KAAK,CACjE,CAAE,MAAOjK,EAAY,CACnBuC,QAAQvC,KAAK,CAAC,+CAAgDA,EAChE,CAGJ,IAGF,MAAM9B,QAAQ0L,GAAG,CAACtB,GAAarG,GAAG,CAAC,MAAOmI,IACpC3E,GAAcG,cAAc,CAC9B,MAAMuC,GAAc,CAClB7E,UAAW,CAAEjB,GAAI+H,EAAQ/H,EAAE,CAC7B,GAEA,MAAM2F,GAAmB,CACvB1E,UAAW,CAAEjB,GAAI+H,EAAQ/H,EAAE,CAAEkC,QAAS,IAAK,CAC7C,EAEJ,IAEA,MAAM0C,GAAc,CAClB3D,UAAW,CAAEjB,GAAIkC,EAAQlC,EAAE,CAC7B,GAEA4D,GAAM,CACJiD,MAAO,UACPnD,YAAa,YAAyB/B,MAAA,CAAbO,EAAQnC,IAAI,CAAC,mCACxC,GAGAyC,EAAsB,IACtBuC,GAAmB,IACnB7B,GAAOmE,IAAI,CAAC,YACd,CAAE,MAAO1J,EAAY,CACnBoH,GAAmB,IACnB7E,QAAQvC,KAAK,CAAC,0BAA2BA,GACzCiG,GAAM,CACJiD,MAAO,QACPnD,YAAa/F,EAAMoJ,OAAO,EAAI,8CAC9BlI,QAAS,aACX,EACF,CACF,EAEA,MACE,GAAAV,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,6BACb,GAAAT,EAAAK,GAAA,EAACwJ,MAAAA,CAAIpJ,UAAU,uCACb,GAAAT,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,8BACb,GAAAT,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,2BACb,GAAAT,EAAAK,GAAA,EAACyJ,EAAAA,EAAIA,CAAAA,UACH,GAAA9J,EAAAK,GAAA,EAAC0J,EAAAA,EAAWA,CAAAA,CAACtJ,UAAU,eACrB,GAAAT,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,sBACb,GAAAT,EAAAK,GAAA,EAAC2J,KAAAA,CAAGvJ,UAAU,iCAAyBsD,EAAQnC,IAAI,GACnD,GAAA5B,EAAAK,GAAA,EAAC4J,IAAAA,CAAExJ,UAAU,yDACVsD,EAAQwB,WAAW,EAAI,oCAOhC,GAAAvF,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,sBACb,GAAAT,EAAAC,IAAA,EAACO,EAAAA,CAAMA,CAAAA,CACLE,QAASgE,aAAAA,GAA4B,UAAY,QACjDjE,UAAU,uBACVyJ,QAAS,IAAMvF,GAAc,sBAE7B,GAAA3E,EAAAK,GAAA,EAACtC,EAASA,CAAC0C,UAAU,iBAAiB,yBAGxC,GAAAT,EAAAC,IAAA,EAACO,EAAAA,CAAMA,CAAAA,CACLE,QAASgE,YAAAA,GAA2B,UAAY,QAChDjE,UAAU,uBACVyJ,QAAS,IAAMvF,GAAc,qBAE7B,GAAA3E,EAAAK,GAAA,EAAC/B,EAAKA,CAACmC,UAAU,iBAAiB,mBAGpC,GAAAT,EAAAC,IAAA,EAACO,EAAAA,CAAMA,CAAAA,CACLE,QAASgE,aAAAA,GAA4B,UAAY,QACjDjE,UAAU,uBACVyJ,QAAS,IAAMvF,GAAc,sBAE7B,GAAA3E,EAAAK,GAAA,EAAC8J,EAAAA,CAAaA,CAAAA,CAAC1J,UAAU,iBAAiB,sBAG5C,GAAAT,EAAAC,IAAA,EAACO,EAAAA,CAAMA,CAAAA,CACLE,QAASgE,WAAAA,GAA0B,UAAY,QAC/CjE,UAAU,uBACVyJ,QAAS,IAAMvF,GAAc,oBAE7B,GAAA3E,EAAAK,GAAA,EAAC+J,EAAAA,CAAMA,CAAAA,CAAC3J,UAAU,iBAAiB,oBAGrC,GAAAT,EAAAC,IAAA,EAACO,EAAAA,CAAMA,CAAAA,CACLE,QAASgE,aAAAA,GAA4B,UAAY,QACjDjE,UAAU,uBACVyJ,QAAS,IAAMvF,GAAc,sBAE7B,GAAA3E,EAAAK,GAAA,EAACtC,EAASA,CAAC0C,UAAU,iBAAiB,4BAO5C,GAAAT,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,mBACZiE,aAAAA,IACC,GAAA1E,EAAAK,GAAA,EAACwJ,MAAAA,CAAIpJ,UAAU,qBACb,GAAAT,EAAAC,IAAA,EAAC6J,EAAAA,EAAIA,CAAAA,WACH,GAAA9J,EAAAC,IAAA,EAACoK,EAAAA,EAAUA,CAAAA,WACT,GAAArK,EAAAK,GAAA,EAACiK,EAAAA,EAASA,CAAAA,UAAC,wBACX,GAAAtK,EAAAK,GAAA,EAACkK,EAAAA,EAAeA,CAAAA,UAAC,4CAInB,GAAAvK,EAAAC,IAAA,EAAC8J,EAAAA,EAAWA,CAAAA,CAACtJ,UAAU,sBACrB,GAAAT,EAAAK,GAAA,EAACwJ,MAAAA,CAAIpJ,UAAU,sBACb,GAAAT,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,sBACb,GAAAT,EAAAK,GAAA,EAACmK,EAAAA,CAAKA,CAAAA,CAACC,QAAQ,gBAAO,iBACrBvG,EACC,GAAAlE,EAAAK,GAAA,EAACqK,EAAAA,CAAKA,CAAAA,CACJ7I,GAAG,OACHzB,MAAOiF,GAASzD,IAAI,CACpB+I,SAAU,GAAOrF,GAAY,CAAE,GAAGD,EAAQ,CAAEzD,KAAMgJ,EAAEC,MAAM,CAACzK,KAAK,KAGlE,GAAAJ,EAAAK,GAAA,EAAC4J,IAAAA,CAAExJ,UAAU,mBAAWsD,EAAQnC,IAAI,QAI1C,GAAA5B,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,sBACb,GAAAT,EAAAK,GAAA,EAACmK,EAAAA,CAAKA,CAAAA,CAACC,QAAQ,uBAAc,gBAC5BvG,EACC,GAAAlE,EAAAK,GAAA,EAACyK,EAAAA,CAAQA,CAAAA,CACPjJ,GAAG,cACHzB,MAAOiF,GAASE,WAAW,CAC3BoF,SAAU,GAAOrF,GAAY,CAAE,GAAGD,EAAQ,CAAEE,YAAaqF,EAAEC,MAAM,CAACzK,KAAK,GACvE2K,KAAM,IAGR,GAAA/K,EAAAK,GAAA,EAAC4J,IAAAA,CAAExJ,UAAU,mBAAWsD,EAAQwB,WAAW,EAAI,+BAGnD,GAAAvF,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,sBACb,GAAAT,EAAAK,GAAA,EAACmK,EAAAA,CAAKA,CAAAA,CAACC,QAAQ,wBAAe,wBAC7BvG,EACC,GAAAlE,EAAAK,GAAA,EAACyK,EAAAA,CAAQA,CAAAA,CACPjJ,GAAG,eACHzB,MAAOiF,GAASG,mBAAmB,CACnCmF,SAAU,GAAOrF,GAAY,CAAE,GAAGD,EAAQ,CAAEG,oBAAqBoF,EAAEC,MAAM,CAACzK,KAAK,GAC/E2K,KAAM,EACN7J,YAAY,8DAGd,GAAAlB,EAAAK,GAAA,EAAC4J,IAAAA,CAAExJ,UAAU,mBAAWsD,EAAQyB,mBAAmB,EAAI,qCAK7D,GAAAxF,EAAAK,GAAA,EAAC2K,EAAAA,EAAUA,CAAAA,UACT,GAAAhL,EAAAK,GAAA,EAACwJ,MAAAA,CAAIpJ,UAAU,6CACb,GAAAT,EAAAK,GAAA,EAACwJ,MAAAA,CAAIpJ,UAAU,sBACZyD,EACC,GAAAlE,EAAAC,IAAA,EAAAD,EAAAiL,QAAA,YACE,GAAAjL,EAAAK,GAAA,EAACG,EAAAA,CAAMA,CAAAA,CAACE,QAAQ,UAAUwJ,QAzO/B,KACfnG,GACFuB,GAAY,CACV1D,KAAMmC,EAAQnC,IAAI,EAAI,GACtB2D,YAAaxB,EAAQwB,WAAW,EAAI,GACpCC,oBAAqBzB,EAAQyB,mBAAmB,EAAI,EACtD,GAEFrB,EAAa,GACf,WAgO2E,WAGjD,GAAAnE,EAAAC,IAAA,EAACO,EAAAA,CAAMA,CAAAA,CAAC0J,QAAS1B,aACf,GAAAxI,EAAAK,GAAA,EAAC6K,OAAAA,UAAK,iBAEJ5E,IACE,GAAAtG,EAAAK,GAAA,EAACqD,EAAAA,CAAOA,CAAAA,CAACjD,UAAU,eAM3B,GAAAT,EAAAC,IAAA,EAACO,EAAAA,CAAMA,CAAAA,CAACE,QAAQ,UAAUwJ,QAAS,IAAM/F,EAAa,cACpD,GAAAnE,EAAAK,GAAA,EAAC8K,EAAAA,CAAMA,CAAAA,CAAC1K,UAAU,iBAAiB,qBAWlDiE,YAAAA,IACC,GAAA1E,EAAAK,GAAA,EAACwJ,MAAAA,CAAIpJ,UAAU,4BACb,GAAAT,EAAAC,IAAA,EAAC6J,EAAAA,EAAIA,CAAAA,WACH,GAAA9J,EAAAC,IAAA,EAACoK,EAAAA,EAAUA,CAAAA,WACT,GAAArK,EAAAK,GAAA,EAACiK,EAAAA,EAASA,CAAAA,UAAC,0BACX,GAAAtK,EAAAK,GAAA,EAACkK,EAAAA,EAAeA,CAAAA,UAAC,mJAKnB,GAAAvK,EAAAK,GAAA,EAAC0J,EAAAA,EAAWA,CAAAA,UACV,GAAA/J,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,sBACb,GAAAT,EAAAK,GAAA,EAAClB,EAAmBA,CAACE,UAAW,IAC9B,IAAM+L,EAAS,IAAIlF,MAAiB9G,EAAKqC,GAAG,CAAC,GAAO,GAAmBzC,MAAAA,CAAhBA,EAAEU,OAAO,CAACmC,EAAE,CAAC,KAAa2B,MAAA,CAAVxE,EAAEiD,IAAI,CAACJ,EAAE,GAAI,CACpFE,QAAQC,GAAG,CAAC,SAAUoJ,GACtBjF,GAAgBiF,GAChB/E,GAAc,CACZvD,UAAW,CACTjB,GAAIkC,EAAQlC,EAAE,CACd8G,MAAO,CACLvC,cAAegF,CACjB,CACF,CACF,EACF,IAGA,GAAApL,EAAAK,GAAA,EAACwJ,MAAAA,CAAIpJ,UAAU,qBAEX,GAAAT,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,sBAEXyF,CAAAA,MAAAA,GAAAA,KAAAA,EAAAA,GAActC,MAAM,IAAK,GACvB,GAAA5D,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,mDACb,GAAAT,EAAAK,GAAA,EAAC/B,EAAKA,CAACmC,UAAU,sCACjB,GAAAT,EAAAK,GAAA,EAAC4J,IAAAA,UAAE,kDAIT,GAAAjK,EAAAK,GAAA,EAACwJ,MAAAA,CAAIpJ,UAAU,iDACZyF,MAAAA,GAAAA,KAAAA,EAAAA,GAAczE,GAAG,CAAC,GACjB,GAAAzB,EAAAK,GAAA,EAACgL,EAAAA,CAAsBC,IAAKA,EAAKC,SAAU,IACzC,IAAMH,EAASlF,GAAakC,MAAM,CAAC,GAAOoD,IAAMF,GAChDnF,GAAgBiF,GAChB/E,GAAc,CACZvD,UAAW,CACTjB,GAAIkC,EAAQlC,EAAE,CACd8G,MAAO,CACLvC,cAAegF,CACjB,CACF,CACF,EACF,GAXkBE,qBAuBrC5G,aAAAA,IACC,GAAA1E,EAAAK,GAAA,EAACwJ,MAAAA,CAAIpJ,UAAU,qBACb,GAAAT,EAAAC,IAAA,EAAC6J,EAAAA,EAAIA,CAAAA,WACH,GAAA9J,EAAAC,IAAA,EAACoK,EAAAA,EAAUA,CAAAA,WACT,GAAArK,EAAAK,GAAA,EAACiK,EAAAA,EAASA,CAAAA,UAAC,qBACX,GAAAtK,EAAAK,GAAA,EAACkK,EAAAA,EAAeA,CAAAA,UAAC,6CAInB,GAAAvK,EAAAK,GAAA,EAAC0J,EAAAA,EAAWA,CAAAA,UACV,GAAA/J,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,sBACb,GAAAT,EAAAC,IAAA,EAACO,EAAAA,CAAMA,CAAAA,CAAC0J,QAjUC,KAC3B3F,EAAwB,GAC1B,EA+T2D9D,UAAU,SAASC,QAAQ,oBAChE,GAAAV,EAAAK,GAAA,EAACoL,EAAAA,CAAIA,CAAAA,CAAChL,UAAU,iBAAiB,uBAInC,GAAAT,EAAAK,GAAA,EAACwJ,MAAAA,CAAIpJ,UAAU,qBACZqH,GAAarG,GAAG,CAAC,IAChB,IAAMiK,EAAcC,CAAAA,EAAAA,EAAAA,CAAAA,EAA4B/B,EAAShF,IACzD,MACE,GAAA5E,EAAAC,IAAA,EAAC4J,MAAAA,CAAqBpJ,UAAU,oEAC9B,GAAAT,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,oCACb,GAAAT,EAAAK,GAAA,EAAC8J,EAAAA,CAAaA,CAAAA,CAAC1J,UAAU,YACzB,GAAAT,EAAAK,GAAA,EAACwJ,MAAAA,UACC,GAAA7J,EAAAK,GAAA,EAACuL,EAAAA,OAAIA,CAAAA,CAACC,KAAM,SAA0BjC,MAAAA,CAAjBA,EAAQvB,KAAK,CAAC,KAAc7E,MAAA,CAAXoG,EAAQ/H,EAAE,WAC9C,GAAA7B,EAAAK,GAAA,EAAC4J,IAAAA,CAAExJ,UAAU,4CAAoCmJ,EAAQlB,KAAK,UAIpE,GAAA1I,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,oCACb,GAAAT,EAAAC,IAAA,EAAC6L,EAAAA,CAAOA,CAAAA,WACN,GAAA9L,EAAAK,GAAA,EAAC0L,EAAAA,EAAcA,CAAAA,CAACxL,QAAO,YACrB,GAAAP,EAAAK,GAAA,EAACG,EAAAA,CAAMA,CAAAA,CACLwL,SAAU,CAACN,GAAejE,GAC1B/G,QAAQ,QACRuL,KAAK,KACL/B,QAAS,KACHzC,KACJD,GAAmB,CACjB1E,UAAW,CACTjB,GAAI+H,EAAQ/H,EAAE,CACdkC,QAAS,IACX,CACF,GACA+C,KACF,WACA,GAAA9G,EAAAK,GAAA,EAAC9B,EAAYA,CAACkC,UAAU,gBAG5B,GAAAT,EAAAK,GAAA,EAAC6L,EAAAA,EAAcA,CAAAA,UACb,GAAAlM,EAAAK,GAAA,EAAC4J,IAAAA,UAAE,sCAIP,GAAAjK,EAAAC,IAAA,EAAC6L,EAAAA,CAAOA,CAAAA,WACN,GAAA9L,EAAAK,GAAA,EAAC0L,EAAAA,EAAcA,CAAAA,CAACxL,QAAO,YACrB,GAAAP,EAAAK,GAAA,EAACG,EAAAA,CAAMA,CAAAA,CACLwL,SAAU,CAACN,GAAe9D,GAC1BlH,QAAQ,QACRuL,KAAK,KACL/B,QAAS,KACHtC,KACJD,GAAc,CACZ7E,UAAW,CACTjB,GAAI+H,EAAQ/H,EAAE,CAElB,GACAiF,KACF,WAEA,GAAA9G,EAAAK,GAAA,EAAC8L,EAAAA,CAAMA,CAAAA,CAAC1L,UAAU,gBAGtB,GAAAT,EAAAK,GAAA,EAAC6L,EAAAA,EAAcA,CAAAA,UACb,GAAAlM,EAAAK,GAAA,EAAC4J,IAAAA,UAAE,yCAtDDL,EAAQ/H,EAAE,CA4DxB,KAIDiG,IAAAA,GAAalE,MAAM,EAAU,CAACiD,IAC7B,GAAA7G,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,mDACb,GAAAT,EAAAK,GAAA,EAAC8J,EAAAA,CAAaA,CAAAA,CAAC1J,UAAU,sCACzB,GAAAT,EAAAK,GAAA,EAAC4J,IAAAA,UAAE,yBAINpD,IACC,GAAA7G,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,mDACb,GAAAT,EAAAK,GAAA,EAAC8J,EAAAA,CAAaA,CAAAA,CAAC1J,UAAU,sCACzB,GAAAT,EAAAK,GAAA,EAAC4J,IAAAA,UAAE,qCAShBvF,WAAAA,IACC,GAAA1E,EAAAK,GAAA,EAACwJ,MAAAA,CAAIpJ,UAAU,qBACb,GAAAT,EAAAC,IAAA,EAAC6J,EAAAA,EAAIA,CAAAA,WACH,GAAA9J,EAAAC,IAAA,EAACoK,EAAAA,EAAUA,CAAAA,WACT,GAAArK,EAAAK,GAAA,EAACiK,EAAAA,EAASA,CAAAA,UAAC,mBACX,GAAAtK,EAAAK,GAAA,EAACkK,EAAAA,EAAeA,CAAAA,UAAC,2CAInB,GAAAvK,EAAAK,GAAA,EAAC0J,EAAAA,EAAWA,CAAAA,UACV,GAAA/J,EAAAK,GAAA,EAAC+L,EAAAA,CAAWA,CAAAA,CACVC,aAAc,CAAC,UAAW,QAAS,QAAQ,CAC3CC,kBAAmBvI,EAAQ8B,WAAW,EAAI,UAC1C0G,aAAY,OAAExI,CAAAA,EAAAA,EAAQgC,IAAI,GAAZhC,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAc+B,KAAK,CACjC0G,aAAY,OAAEzI,CAAAA,EAAAA,EAAQgC,IAAI,GAAZhC,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAciC,KAAK,CACjCyG,gBAAe,OAAE1I,CAAAA,EAAAA,EAAQgC,IAAI,GAAZhC,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAckC,QAAQ,CACvC0E,SAAU,CAAC9E,EAAaC,EAAOE,EAAOC,KACpCL,GAAQ,CACNC,YAAAA,EACAC,MAAAA,EACAE,MAAAA,EACAC,SAAAA,CACF,EACF,MAGJ,GAAAjG,EAAAK,GAAA,EAAC2K,EAAAA,EAAUA,CAAAA,UACT,GAAAhL,EAAAC,IAAA,EAACO,EAAAA,CAAMA,CAAAA,CAAC0J,QAAS,KACf7D,GAAc,CACZvD,UAAW,CACTjB,GAAIkC,EAAQlC,EAAE,CACd8G,MAAO,CACL9C,YAAaF,GAAKE,WAAW,CAC7BE,KAAM,CACJD,MAAOH,GAAKG,KAAK,CACjBE,MAAOL,GAAKK,KAAK,CACjBC,SAAUN,GAAKM,QAAQ,CAE3B,CACF,CACF,EACF,YACE,GAAAjG,EAAAK,GAAA,EAAC6K,OAAAA,UAAK,uBACL5E,IAAY,GAAAtG,EAAAK,GAAA,EAACqD,EAAAA,CAAOA,CAAAA,CAACjD,UAAU,mBAOzCiE,aAAAA,IACC,GAAA1E,EAAAK,GAAA,EAACwJ,MAAAA,CAAIpJ,UAAU,qBACb,GAAAT,EAAAC,IAAA,EAAC6J,EAAAA,EAAIA,CAAAA,WACH,GAAA9J,EAAAC,IAAA,EAACoK,EAAAA,EAAUA,CAAAA,WACT,GAAArK,EAAAK,GAAA,EAACiK,EAAAA,EAASA,CAAAA,UAAC,gBACX,GAAAtK,EAAAK,GAAA,EAACkK,EAAAA,EAAeA,CAAAA,UAAC,+DAInB,GAAAvK,EAAAK,GAAA,EAAC0J,EAAAA,EAAWA,CAAAA,UACV,GAAA/J,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,sBACb,GAAAT,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,gGACb,GAAAT,EAAAK,GAAA,EAACqM,EAAAA,CAAaA,CAAAA,CAACjM,UAAU,oCACzB,GAAAT,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,mBACb,GAAAT,EAAAK,GAAA,EAACsM,KAAAA,CAAGlM,UAAU,wCAA+B,mBAC7C,GAAAT,EAAAK,GAAA,EAAC4J,IAAAA,CAAExJ,UAAU,8CAAqC,kJAMtD,GAAAT,EAAAC,IAAA,EAACC,EAAAA,EAAMA,CAAAA,CAACJ,KAAMsE,EAAoBjE,aAAckE,YAC9C,GAAArE,EAAAK,GAAA,EAACC,EAAAA,EAAaA,CAAAA,CAACC,QAAO,YACpB,GAAAP,EAAAC,IAAA,EAACO,EAAAA,CAAMA,CAAAA,CAACE,QAAQ,wBACd,GAAAV,EAAAK,GAAA,EAAC8L,EAAAA,CAAMA,CAAAA,CAAC1L,UAAU,iBAAiB,sBAIvC,GAAAT,EAAAC,IAAA,EAACW,EAAAA,EAAaA,CAAAA,CAACH,UAAU,wBACvB,GAAAT,EAAAC,IAAA,EAACY,EAAAA,EAAYA,CAAAA,WACX,GAAAb,EAAAK,GAAA,EAACS,EAAAA,EAAWA,CAAAA,UAAC,mBACb,GAAAd,EAAAC,IAAA,EAACc,EAAAA,EAAiBA,CAAAA,WAAC,oCACiBgD,EAAQnC,IAAI,CAAC,yCAGnD,GAAA5B,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,sBACb,GAAAT,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,wCACb,GAAAT,EAAAK,GAAA,EAACuM,EAAAA,CAAQA,CAAAA,CACP/K,GAAG,eACHgL,QAAS5H,GAAcE,WAAW,CAClC2H,gBAAiB,GACf5H,GAAiB1C,GAAS,EAAE,GAAGA,CAAI,CAAE2C,YAAa0H,CAAmB,MAGzE,GAAA7M,EAAAC,IAAA,EAAC8M,QAAAA,CAAMtC,QAAQ,eAAehK,UAAU,uGAA6F,kCACnGyF,MAAAA,GAAAA,KAAAA,EAAAA,GAActC,MAAM,CAAC,gBAGzD,GAAA5D,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,wCACb,GAAAT,EAAAK,GAAA,EAACuM,EAAAA,CAAQA,CAAAA,CACP/K,GAAG,kBACHgL,QAAS5H,GAAcG,cAAc,CACrC0H,gBAAiB,GACf5H,GAAiB1C,GAAS,EAAE,GAAGA,CAAI,CAAE4C,eAAgByH,CAAmB,MAG5E,GAAA7M,EAAAC,IAAA,EAAC8M,QAAAA,CAAMtC,QAAQ,kBAAkBhK,UAAU,uGAA6F,6BAC3GqH,GAAalE,MAAM,CAAC,mBAGjDqB,CAAAA,GAAcE,WAAW,EAAIF,GAAcG,cAAc,GACzD,GAAApF,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,sFACb,GAAAT,EAAAK,GAAA,EAACqM,EAAAA,CAAaA,CAAAA,CAACjM,UAAU,kCACzB,GAAAT,EAAAK,GAAA,EAAC4J,IAAAA,CAAExJ,UAAU,kCACVwE,GAAcE,WAAW,EAAIF,GAAcG,cAAc,CACtD,8DACAH,GAAcE,WAAW,CACvB,iDACA,oDAMd,GAAAnF,EAAAC,IAAA,EAAC+M,EAAAA,EAAYA,CAAAA,CAACvM,UAAU,6BACtB,GAAAT,EAAAK,GAAA,EAACG,EAAAA,CAAMA,CAAAA,CAACE,QAAQ,UAAUwJ,QAAS,IAAM7F,EAAsB,aAAQ,WAGvE,GAAArE,EAAAC,IAAA,EAACO,EAAAA,CAAMA,CAAAA,CAACwL,SAAUrF,GAAiBjG,QAAQ,cAAcwJ,QAASf,aAE9DxC,GACE,GAAA3G,EAAAK,GAAA,EAACqD,EAAAA,CAAOA,CAAAA,CAACjD,UAAU,iBAEnB,GAAAT,EAAAK,GAAA,EAAC8L,EAAAA,CAAMA,CAAAA,CAAC1L,UAAU,iBAErB,+CAgBzB,GAAAT,EAAAK,GAAA,EAACH,EAAAA,EAAMA,CAAAA,CAACJ,KAAMwE,EAAsBnE,aAAcoE,WAChD,GAAAvE,EAAAC,IAAA,EAACW,EAAAA,EAAaA,CAAAA,CAACH,UAAU,yBACvB,GAAAT,EAAAC,IAAA,EAACY,EAAAA,EAAYA,CAAAA,WACX,GAAAb,EAAAK,GAAA,EAACS,EAAAA,EAAWA,CAAAA,UAAC,oBACb,GAAAd,EAAAK,GAAA,EAACU,EAAAA,EAAiBA,CAAAA,UAAC,iIAKrB,GAAAf,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,sBAEb,GAAAT,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,qBACb,GAAAT,EAAAK,GAAA,EAAC4M,EAAAA,CAAMA,CAAAA,CAACxM,UAAU,qFAClB,GAAAT,EAAAK,GAAA,EAACqK,EAAAA,CAAKA,CAAAA,CACJxJ,YAAY,mBACZd,MAAOoE,EACPmG,SAAU,GAAOlG,GAAemG,EAAEC,MAAM,CAACzK,KAAK,EAC9CK,UAAU,aAKd,GAAAT,EAAAK,GAAA,EAACwJ,MAAAA,CAAIpJ,UAAU,oCACZwG,GACC,GAAAjH,EAAAK,GAAA,EAACwJ,MAAAA,CAAIpJ,UAAU,iDACZ,IAAIyM,MAAM,GAAG,CAACzL,GAAG,CAAC,CAACU,EAAGgL,IACrB,GAAAnN,EAAAK,GAAA,EAACwJ,MAAAA,CAAYpJ,UAAU,iCACrB,GAAAT,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,oCACb,GAAAT,EAAAK,GAAA,EAAC+M,EAAAA,CAAQA,CAAAA,CAAC3M,UAAU,2BACpB,GAAAT,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,6BACb,GAAAT,EAAAK,GAAA,EAAC+M,EAAAA,CAAQA,CAAAA,CAAC3M,UAAU,cACpB,GAAAT,EAAAK,GAAA,EAAC+M,EAAAA,CAAQA,CAAAA,CAAC3M,UAAU,qBALhB0M,MAWZjF,GAAetE,MAAM,CAAG,EAC1B,GAAA5D,EAAAK,GAAA,EAACwJ,MAAAA,CAAIpJ,UAAU,iDACZyH,GAAezG,GAAG,CAAC,GAClB,GAAAzB,EAAAK,GAAA,EAACwJ,MAAAA,CAECpJ,UAAU,8EACVyJ,QAAS,IAAMrB,GAAkBR,YAEjC,GAAArI,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,oCACb,GAAAT,EAAAK,GAAA,EAACwJ,MAAAA,CAAIpJ,UAAU,iFACZ4H,EAAMgF,KAAK,CACV,GAAArN,EAAAK,GAAA,EAACiN,MAAAA,CACCC,IAAKlF,EAAMgF,KAAK,CAChBG,IAAKnF,EAAMzG,IAAI,CACfnB,UAAU,wCAGZ,GAAAT,EAAAK,GAAA,EAACoN,EAAAA,CAAGA,CAAAA,CAAChN,UAAU,cAGnB,GAAAT,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,2BACb,GAAAT,EAAAK,GAAA,EAAC4J,IAAAA,CAAExJ,UAAU,gCAAwB4H,EAAMzG,IAAI,GAC/C,GAAA5B,EAAAK,GAAA,EAAC4J,IAAAA,CAAExJ,UAAU,kDACV4H,EAAM9C,WAAW,EAAI,GAAc/B,MAAA,CAAX6E,EAAMqF,IAAI,CAAC,YAEtC,GAAA1N,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,yCACb,GAAAT,EAAAK,GAAA,EAACsN,EAAAA,CAAKA,CAAAA,CAACjN,QAAS2H,EAAMuF,MAAM,CAAG,UAAY,YAAanN,UAAU,mBAC/D4H,EAAMuF,MAAM,CAAG,SAAW,aAE7B,GAAA5N,EAAAK,GAAA,EAACsN,EAAAA,CAAKA,CAAAA,CAACjN,QAAQ,UAAUD,UAAU,mBAChC4H,EAAMqF,IAAI,aA1BdrF,EAAMxG,EAAE,KAmCnB,GAAA7B,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,mDACb,GAAAT,EAAAK,GAAA,EAACoN,EAAAA,CAAGA,CAAAA,CAAChN,UAAU,sCACf,GAAAT,EAAAK,GAAA,EAAC4J,IAAAA,UAAGzF,EAAc,uCAAyC,gCAMnE,GAAAxE,EAAAK,GAAA,EAAC2M,EAAAA,EAAYA,CAAAA,UACX,GAAAhN,EAAAK,GAAA,EAACG,EAAAA,CAAMA,CAAAA,CAACE,QAAQ,UAAUwJ,QAAS,IAAM3F,EAAwB,aAAQ,oBAQrF,CAEA,SAAS8G,EAAY/L,CAAmE,KAAnE,CAAEgM,IAAAA,CAAG,CAAEC,SAAAA,CAAQ,CAAoD,CAAnEjM,EAEbI,EAAU4L,EAAIjC,KAAK,CAAC,IAAI,CAAC,EAAE,CAC3BxH,EAAKyJ,EAAIjC,KAAK,CAAC,IAAI,CAAC,EAAE,CAC5B,GAAI,CAAC3J,GACD,CAACmC,EADS,OAAO,KAGrB,GAAM,CAAEzC,KAAAA,CAAI,CAAEG,QAAAA,CAAO,CAAE,CAAGkD,CAAAA,EAAAA,EAAAA,EAAAA,EAGrBoL,CAAAA,EAAAA,EAAAA,EAAAA,EAAenO,EAASA,0BAAAA,EAAsC,CAC/D,QACD,CAAG,EAAE,EAAG,CACPoD,UAAW,CACTjB,GAAAA,CACF,CACF,GAIF,GAFAE,QAAQC,GAAG,CAAC,OAAQ5C,GAEhBG,EAAS,OAAO,KACpB,IAAM0C,EAAO7C,MAAAA,EAAAA,KAAAA,EAAAA,CAAM,CAACM,EAAU,aAAa,CAC3C,GAAI,CAACuC,EAAM,OAAO,KAElB,IAAMyH,EAAQoE,OADQC,MAAM,CAAC9L,GAAQ,CAAC,GACjBmG,MAAM,CAACpJ,GAAKA,WAAAA,UAEjC,EAAW4E,MAAM,CAEV,GAAA5D,EAAAK,GAAA,EAAAL,EAAAiL,QAAA,WACJvB,EAAMjI,GAAG,CAACuM,GACT,GAAAhO,EAAAK,GAAA,EAAC4N,EAAAA,EAAQA,CAAAA,CAACC,MAAOF,EAAMzC,SAAU,KAC/BA,EAASD,EACX,EAAGsC,OAAQ,GAAO5B,SAAU,QANN,IAS5B,2BCv0Be,SAASmC,IACpB,IAAMC,EAASC,CAAAA,EAAAA,EAAAA,SAAAA,IACTC,EAAYF,MAAAA,EAAAA,KAAAA,EAAAA,EAAQrK,OAAO,CAE3B,CAAE3E,KAAAA,CAAI,CAAEG,QAAAA,CAAO,CAAEC,MAAAA,CAAK,CAAE,CAAGiD,CAAAA,EAAAA,EAAAA,EAAAA,EAAS8L,EAAAA,EAAiBA,CAAE,CACzDzL,UAAW,CAAEjB,GAAIyM,CAAU,CAC/B,UAGA,EACW,GAAAtO,EAAAK,GAAA,EAACwJ,MAAAA,UACJ,GAAA7J,EAAAK,GAAA,EAAC+M,EAAAA,CAAQA,CAAAA,CAAC3M,UAAU,oBAIxBjB,EACO,GAAAQ,EAAAC,IAAA,EAACuO,EAAAA,EAAKA,CAAAA,CAAC9N,QAAQ,wBAClB,GAAAV,EAAAK,GAAA,EAACoO,EAAAA,GAAuBA,CAAAA,CAAChO,UAAU,WACnC,GAAAT,EAAAK,GAAA,EAACqO,EAAAA,EAAUA,CAAAA,UAAC,UACZ,GAAA1O,EAAAK,GAAA,EAACsO,EAAAA,CAAgBA,CAAAA,UAAC,8BAMrBvP,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAMwP,WAAW,EAUf,GAAA5O,EAAAK,GAAA,EAACyD,EAAcA,CAACC,QAAS3E,EAAKwP,WAAW,GATrC,GAAA5O,EAAAC,IAAA,EAACuO,EAAAA,EAAKA,CAAAA,CAAC9N,QAAQ,wBAClB,GAAAV,EAAAK,GAAA,EAACoO,EAAAA,GAAuBA,CAAAA,CAAChO,UAAU,WACnC,GAAAT,EAAAK,GAAA,EAACqO,EAAAA,EAAUA,CAAAA,UAAC,UACZ,GAAA1O,EAAAK,GAAA,EAACsO,EAAAA,CAAgBA,CAAAA,UAAC,yBAO9B,qKC1CA,IAAME,EAAgBC,CAAAA,EAAAA,EAAAA,CAAAA,EACpB,4JACA,CACEC,SAAU,CACRrO,QAAS,CACPsO,QAAS,gCACTC,YACE,0FACFC,KAAM,6DACR,CACF,EACAC,gBAAiB,CACfzO,QAAS,SACX,CACF,GAGI8N,EAAQrG,EAAAA,UAAgB,CAG5B,CAAA7I,EAAmC8P,QAAlC,CAAE3O,UAAAA,CAAS,CAAEC,QAAAA,CAAO,CAAE,GAAG2O,EAAO,CAAA/P,QACjC,GAAAgQ,EAAAjP,GAAA,EAACwJ,MAAAA,CACCuF,IAAKA,EACLG,KAAK,QACL9O,UAAW+O,CAAAA,EAAAA,EAAAA,EAAAA,EAAGX,EAAc,CAAEnO,QAAAA,CAAQ,GAAID,GACzC,GAAG4O,CAAK,IAGbb,CAAAA,EAAMiB,WAAW,CAAG,QAEpB,IAAMf,EAAavG,EAAAA,UAAgB,CAGjC,CAAA7I,EAA0B8P,QAAzB,CAAE3O,UAAAA,CAAS,CAAE,GAAG4O,EAAO,CAAA/P,QACxB,GAAAgQ,EAAAjP,GAAA,EAACqP,KAAAA,CACCN,IAAKA,EACL3O,UAAW+O,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,+CAAgD/O,GAC7D,GAAG4O,CAAK,IAGbX,CAAAA,EAAWe,WAAW,CAAG,aAEzB,IAAMd,EAAmBxG,EAAAA,UAAgB,CAGvC,CAAA7I,EAA0B8P,QAAzB,CAAE3O,UAAAA,CAAS,CAAE,GAAG4O,EAAO,CAAA/P,QACxB,GAAAgQ,EAAAjP,GAAA,EAACwJ,MAAAA,CACCuF,IAAKA,EACL3O,UAAW+O,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,gCAAiC/O,GAC9C,GAAG4O,CAAK,IAGbV,CAAAA,EAAiBc,WAAW,CAAG,gJCjD/B,IAAM7C,EAAWzE,EAAAA,UAAgB,CAG/B,CAAA7I,EAA0B8P,QAAzB,CAAE3O,UAAAA,CAAS,CAAE,GAAG4O,EAAO,CAAA/P,QACxB,GAAAgQ,EAAAjP,GAAA,EAACsP,EAAAA,EAAsB,EACrBP,IAAKA,EACL3O,UAAW+O,CAAAA,EAAAA,EAAAA,EAAAA,EACT,iTACA/O,GAED,GAAG4O,CAAK,UAET,GAAAC,EAAAjP,GAAA,EAACsP,EAAAA,EAA2B,EAC1BlP,UAAW+O,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,0DAEd,GAAAF,EAAAjP,GAAA,EAACuP,EAAAA,CAAKA,CAAAA,CAACnP,UAAU,gBAIvBmM,CAAAA,EAAS6C,WAAW,CAAGE,EAAAA,EAAsB,CAACF,WAAW,+FCzBlD,IAAM/L,EAAU,OAAC,CAAEjD,UAAAA,CAAS,CAAiC,CAAAnB,EAClE,MACE,GAAAgQ,EAAArP,IAAA,EAAC4P,MAAAA,CACCC,cAAY,OACZP,KAAK,SACL9O,UAAW+O,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,sDAAuD/O,GACrEsP,QAAQ,cACRC,KAAK,OACLC,MAAM,uCAEN,GAAAX,EAAAjP,GAAA,EAAC6P,OAAAA,CACCjS,EAAE,+WACFwC,UAAU,4BAEZ,GAAA6O,EAAAjP,GAAA,EAAC6P,OAAAA,CACCjS,EAAE,glBACFwC,UAAU,mBAIlB,6GCEA,IAAI0P,EAAQ,EA+BNC,EAAgB,IAAIC,IAEpBC,EAAmB,IACvB,GAAIF,EAAcG,GAAG,CAACC,GACpB,OAGF,IAAMC,EAAUC,WAAW,KACzBN,EAAczG,MAAM,CAAC6G,GACrBG,EAAS,CACPjD,KAAM,eACN8C,QAASA,CACX,EACF,EA5DyB,KA8DzBJ,EAAcQ,GAAG,CAACJ,EAASC,EAC7B,EAEaI,EAAU,CAACC,EAAcC,KACpC,OAAQA,EAAOrD,IAAI,EACjB,IAAK,YACH,MAAO,CACL,GAAGoD,CAAK,CACRE,OAAQ,CAACD,EAAOtL,KAAK,IAAKqL,EAAME,MAAM,CAAC,CAACC,KAAK,CAAC,EAvElC,EAwEd,CAEF,KAAK,eACH,MAAO,CACL,GAAGH,CAAK,CACRE,OAAQF,EAAME,MAAM,CAACvP,GAAG,CAAC,GACvByP,EAAErP,EAAE,GAAKkP,EAAOtL,KAAK,CAAC5D,EAAE,CAAG,CAAE,GAAGqP,CAAC,CAAE,GAAGH,EAAOtL,KAAK,EAAKyL,EAE3D,CAEF,KAAK,gBAAiB,CACpB,GAAM,CAAEV,QAAAA,CAAO,CAAE,CAAGO,EAYpB,OARIP,EACFF,EAAiBE,GAEjBM,EAAME,MAAM,CAACG,OAAO,CAAC,IACnBb,EAAiB7K,EAAM5D,EAAE,CAC3B,GAGK,CACL,GAAGiP,CAAK,CACRE,OAAQF,EAAME,MAAM,CAACvP,GAAG,CAAC,GACvByP,EAAErP,EAAE,GAAK2O,GAAWA,KAAY3Q,IAAZ2Q,EAChB,CACE,GAAGU,CAAC,CACJpR,KAAM,EACR,EACAoR,EAER,CACF,CACA,IAAK,eACH,GAAIH,KAAmBlR,IAAnBkR,EAAOP,OAAO,CAChB,MAAO,CACL,GAAGM,CAAK,CACRE,OAAQ,EAAE,EAGd,MAAO,CACL,GAAGF,CAAK,CACRE,OAAQF,EAAME,MAAM,CAAC5I,MAAM,CAAC,GAAO8I,EAAErP,EAAE,GAAKkP,EAAOP,OAAO,CAC5D,CACJ,CACF,EAEMY,EAA2C,EAAE,CAE/CC,EAAqB,CAAEL,OAAQ,EAAE,EAErC,SAASL,EAASI,CAAc,EAC9BM,EAAcR,EAAQQ,EAAaN,GACnCK,EAAUD,OAAO,CAAC,IAChBG,EAASD,EACX,EACF,CAIA,SAAS5L,EAAMnG,CAAmB,KAAnB,CAAE,GAAG+P,EAAc,CAAnB/P,EACPuC,EAlHCsO,CADPA,EAAQ,CAACA,EAAQ,GAAKoB,OAAOC,gBAAgB,EAChCC,QAAQ,GAyHfC,EAAU,IAAMf,EAAS,CAAEjD,KAAM,gBAAiB8C,QAAS3O,CAAG,GAcpE,OAZA8O,EAAS,CACPjD,KAAM,YACNjI,MAAO,CACL,GAAG4J,CAAK,CACRxN,GAAAA,EACA/B,KAAM,GACNK,aAAc,IACPL,GAAM4R,GACb,CACF,CACF,GAEO,CACL7P,GAAIA,EACJ6P,QAAAA,EACAtG,OAtBa,GACbuF,EAAS,CACPjD,KAAM,eACNjI,MAAO,CAAE,GAAG4J,CAAK,CAAExN,GAAAA,CAAG,CACxB,EAmBF,CACF,CAEA,SAAS6D,IACP,GAAM,CAACoL,EAAOa,EAAS,CAAGxJ,EAAAA,QAAc,CAAQkJ,GAYhD,OAVAlJ,EAAAA,SAAe,CAAC,KACdiJ,EAAUlI,IAAI,CAACyI,GACR,KACL,IAAMC,EAAQR,EAAUS,OAAO,CAACF,GAC5BC,EAAQ,IACVR,EAAUU,MAAM,CAACF,EAAO,EAE5B,GACC,CAACd,EAAM,EAEH,CACL,GAAGA,CAAK,CACRrL,MAAAA,EACAiM,QAAS,GAAsBf,EAAS,CAAEjD,KAAM,gBAAiB8C,QAAAA,CAAQ,EAC3E,CACF,wOC/JO,IAAMuB,EAAiB,MAAOC,QAuBZC,EAtBrB,GAAI,CAACD,EAAQE,OAAO,CAChB,MAAM,MAAU,mBAEpB,GAAM,CAAEC,UAAAA,CAAS,CAAEC,iBAAAA,CAAgB,CAAEC,YAAAA,CAAW,CAAE,CAAGL,GAAW,CAAC,EAC3D,CAAEM,cAAAA,CAAa,CAAE,CAAGH,GAAa,CAAC,EAClC,CAAEI,iBAAAA,CAAgB,CAAE1Q,GAAAA,CAAE,CAAE,CAAGwQ,GAAe,CAAC,EAC3CG,EAAQ,MAAMC,CAAAA,EAAAA,EAAAA,EAAAA,IAEdC,EAAO,IAAIC,EAAAA,CAAIA,CAAC,CAClBC,YAAa,GACbC,MAAO,GACPhR,GAAIA,GAAM,OACViR,aAAc,CACVV,iBAAkBA,GAAoB,EACtCG,iBAAkBA,GAAoB,CAAC,QAAS,OAAQ,QAAS,OAAQ,QAAS,OAAO,CAEjG,GACKQ,GAAG,CAACC,EAAAA,CAAKA,CAAE,CACRnR,GAAI,QACJoR,SAAUjB,EAAQE,OAAO,CACzBgB,QAAS,CACLC,cAAe,UAAgB3P,MAAA,CAANgP,GACzBY,QAASnB,OAAAA,CAAAA,EAAAA,aAAaoB,OAAO,CAAC,aAArBpB,KAAAA,IAAAA,EAAAA,EAAmC,EAChD,CACJ,GACCqB,EAAE,CAAC,aAAc,MAAOtF,IACrBjM,QAAQ8Q,KAAK,CAAC,QAAS7E,EAC3B,GACCsF,EAAE,CAAC,eAAgB,CAACtF,EAAMxO,KAClBwO,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAMnM,EAAE,IAGb6Q,EAAKa,UAAU,CAACvF,MAAAA,EAAAA,KAAAA,EAAAA,EAAMnM,EAAE,EACxBE,QAAQvC,KAAK,CAAC,QAASA,GAC3B,GACC8T,EAAE,CAAC,iBAAkB,CAACtF,EAAMwF,KACpBA,EAASC,SAAS,EAGnBnB,IACAvQ,QAAQC,GAAG,CAAC,WAAYwR,GACxBlB,EAAc,CACVtE,KAAMA,EACN9P,IAAKsV,EAASC,SAAS,CAACpK,KAAK,CAAC,KAAKqK,GAAG,IAAM,GAC5CC,IAAKH,EAASC,SAAS,GAGnC,GAEJ,OAAOf,CACX,EAyBA,IAAAkB,EAvBA,SAAiB5B,CAA0B,MAAE6B,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAc,EAAE,CACnDC,EAAgBjP,CAAAA,EAAAA,EAAAA,UAAAA,EAAWkP,EAAAA,CAAaA,EACxC,CAACrB,EAAMsB,EAAQ,CAAGpU,CAAAA,EAAAA,EAAAA,QAAAA,EAA2BC,KAAAA,GAkBnD,MAjBAoU,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KAQNC,CAPiB,UAKbF,EAJqB,MAAMjC,EAAe,CACtC,GAAGC,CAAO,CACVE,QAAS4B,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAe5B,OAAO,GAAI,EACvC,GAEJ,KAEO,KACCQ,IACAA,EAAKyB,OAAO,GACZH,EAAQnU,KAAAA,GAEhB,GACD,IAAIgU,EAAK,EAELnB,CACX,oPC5EO,SAAS0B,EAAa9U,CAAkE,KAAlE,CAAEmK,MAAAA,CAAK,CAAE4K,SAAAA,CAAQ,CAAiD,CAAlE/U,EACrB,CAAEF,KAAAA,CAAI,CAAEkV,UAAAA,CAAS,CAAE9U,MAAAA,CAAK,CAAE8C,QAAAA,CAAO,CAAE,CAAGiS,CAAAA,EAAAA,EAAAA,CAAAA,EAAiB,CAC3DC,SAAU,CAAC,aAAc/K,EAAM,CAC/BgL,QAAS,SACP,EAGe,MAAM/K,EAAAA,EAAKA,CAACgL,MAAM,CAACjL,GAFzB,KAKXkL,QAASlL,MAAAA,CACX,GAQA,GANAwK,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACJxK,GACFnH,GAEJ,EAAG,CAACmH,EAAM,EAEN,CAACA,EACH,MAAO,GAAAzJ,EAAAK,GAAA,EAACyJ,EAAAA,EAAIA,CAAAA,UACV,GAAA9J,EAAAC,IAAA,EAAC8J,EAAAA,EAAWA,CAAAA,CAACtJ,UAAU,qBACrB,GAAAT,EAAAK,GAAA,EAAC4J,IAAAA,CAAExJ,UAAU,gDAAuC,qBACnD4T,OAMP,IAAIzS,EAAO6H,EACPmL,EAAS,GACb,GAAInL,EAAMlB,QAAQ,CAAC,YAAa,KACrBkB,EACFA,EADPmL,EAASnL,CAAAA,OAAAA,CAAAA,EAAAA,EAAMJ,KAAK,CAAC,WAAW,CAAC,EAAE,GAA1BI,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA4BJ,KAAK,CAAC,IAAI,CAAC,EAAE,GAAI,GAElDzH,CAAAA,MADJA,CAAAA,EAAO6H,CAAAA,OAAAA,CAAAA,EAAAA,EAAMJ,KAAK,CAAC,WAAW,CAAC,EAAE,GAA1BI,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA4BJ,KAAK,CAAC,IAAI,CAAC,EAAE,GAAI,IAChDzH,KAAAA,EAAAA,EAAMgC,MAAM,GACdhC,CAAAA,EAAO6H,EAAMJ,KAAK,CAAC,IAAI,CAAC,EAAE,EAAI,GAElC,CAIA,OAFAzH,EAAOA,EAAKyH,KAAK,CAAC,WAAWqK,GAAG,IAAM,GAE/B,GAAA1T,EAAAC,IAAA,EAAC6J,EAAAA,EAAIA,CAAAA,WACV,GAAA9J,EAAAK,GAAA,EAACgK,EAAAA,EAAUA,CAAAA,CAAC5J,UAAU,gBACpB,GAAAT,EAAAK,GAAA,EAACiK,EAAAA,EAASA,CAAAA,CAAC7J,UAAU,0CAClBmB,MAGL,GAAA5B,EAAAC,IAAA,EAAC8J,EAAAA,EAAWA,CAAAA,CAACtJ,UAAU,iBAEnB6T,GACE,GAAAtU,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,sBACb,GAAAT,EAAAK,GAAA,EAAC+M,EAAAA,CAAQA,CAAAA,CAAC3M,UAAU,eACpB,GAAAT,EAAAK,GAAA,EAAC+M,EAAAA,CAAQA,CAAAA,CAAC3M,UAAU,iBAIzB,CAAC6T,GAAalV,GACb,GAAAY,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,sBACb,GAAAT,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,4EACb,GAAAT,EAAAC,IAAA,EAACiL,OAAAA,CAAKzK,UAAU,uBACbrB,MAAAA,EAAAA,KAAAA,EAAAA,EAAMyV,WAAW,CAACxL,KAAK,CAAC,KAAKqK,GAAG,GAChCkB,GAAU,aAAoBpR,MAAA,CAAPoR,EAAO,QAEjC,GAAA5U,EAAAC,IAAA,EAACiL,OAAAA,WAAO9L,CAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAM0V,aAAa,EAAG,KAAO,MAAMC,OAAO,CAAC,GAAG,YAExD,GAAA/U,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,4EACb,GAAAT,EAAAC,IAAA,EAACiL,OAAAA,WAAK,kBAAgB,IAAI8J,KAAK5V,MAAAA,EAAAA,KAAAA,EAAAA,EAAM6V,YAAY,EAAEC,kBAAkB,CAAC,QAAS,CAAEC,KAAM,UAAWC,MAAO,OAAQC,IAAK,UAAWC,KAAM,UAAWC,OAAQ,SAAU,MACpK,GAAAvV,EAAAC,IAAA,EAACO,EAAAA,CAAMA,CAAAA,CACLE,QAAQ,YACRuL,KAAK,KACLyB,KAAK,SACLjN,UAAU,WACVyJ,QAAS,KACPR,EAAAA,EAAKA,CAAC8L,QAAQ,CAAC/L,GAAO7L,IAAI,CAAC,MAAM6X,IAC/B1T,QAAQC,GAAG,CAAC,MAAOyT,GACnB,IAAMC,EAAO,MAAMD,EAAIC,IAAI,GAC3B3T,QAAQC,GAAG,CAAC,MAAO0T,GACnB,IAAMC,EAAcD,EAAK/B,GAAG,CAC5BiC,OAAO9V,IAAI,CAAC6V,EAAa,SAE3B,EACF,YACA,GAAA3V,EAAAK,GAAA,EAAC6K,OAAAA,CAAKzK,UAAU,wBAAe,SAC/B,GAAAT,EAAAK,GAAA,EAACwV,EAAAA,CAAQA,CAAAA,CAACpV,UAAU,qBAM1B,CAAC6T,GAAa9U,GACZ,GAAAQ,EAAAK,GAAA,EAAC4J,IAAAA,CAAExJ,UAAU,yCAAiCjB,EAAMoJ,OAAO,GAG9DyL,OAGP,CAEe,SAASyB,EAAcxW,CAOrC,KAPqC,CAAEuC,GAAAA,CAAE,CAAE0Q,iBAAAA,CAAgB,CAAEwD,aAAAA,CAAY,CAAE1W,UAAAA,CAAS,CAAE2W,eAAAA,CAAc,CAAEC,WAAAA,CAAU,CAOhH,CAPqC3W,EAQ9B,CAACQ,EAAMC,EAAQ,CAAGH,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IACjC,MAAO,GAAAI,EAAAC,IAAA,EAACC,EAAAA,EAAMA,CAAAA,CAACJ,KAAMA,EAAMK,aAAcJ,YACvC,GAAAC,EAAAK,GAAA,EAACC,EAAAA,EAAaA,CAAAA,CAACC,QAAO,YACpB,GAAAP,EAAAC,IAAA,EAACO,EAAAA,CAAMA,CAAAA,CAACE,QAAQ,oBACbuV,GACC,GAAAjW,EAAAK,GAAA,EAAC6K,OAAAA,CAAKzK,UAAU,gBAAQwV,IAG1B,GAAAjW,EAAAK,GAAA,EAAC6V,EAAAA,CAAQA,CAAAA,CAACzV,UAAU,iBAGxB,GAAAT,EAAAC,IAAA,EAACW,EAAAA,EAAaA,CAAAA,CAACH,UAAU,6BACvB,GAAAT,EAAAC,IAAA,EAACY,EAAAA,EAAYA,CAAAA,WACX,GAAAb,EAAAK,GAAA,EAACS,EAAAA,EAAWA,CAAAA,UAAC,iBACb,GAAAd,EAAAK,GAAA,EAACU,EAAAA,EAAiBA,CAAAA,UAAC,iEAErB,GAAAf,EAAAK,GAAA,EAAC8V,EAAAA,CACCtU,GAAIA,EACJ0Q,iBAAkBA,EAClBwD,aAAcA,EACdC,eAAgBA,EAChB3W,UAAW,IACTA,EAAUD,GACVW,EAAQ,GACV,SAIR,CAEO,IAAMoW,EAAuB,QAkJT/W,EAQdA,KA1JwB,CAAEyC,GAAAA,CAAE,CAAE0Q,iBAAAA,CAAgB,CAAEwD,aAAAA,CAAY,CAAE1W,UAAAA,CAAS,CAAE2W,eAAAA,CAAc,CAMnG,CAAA1W,EAEMiT,GACHA,CAAAA,EAAmB,CACjB,OACA,OACA,QACA,OACA,QACA,OACA,QACA,QACA,OACA,OACA,QACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,OACA,OACA,QACA,OACD,EAGH,GAAM,CAACnQ,EAAQC,EAAU,CAAGzC,CAAAA,EAAAA,EAAAA,QAAAA,EAA6BC,KAAAA,GACnD,CAACuW,EAA2BC,EAA6B,CAAGzW,CAAAA,EAAAA,EAAAA,QAAAA,EAA6BC,KAAAA,GACzF,CAACyW,EAA0BC,EAA4B,CAAG3W,CAAAA,EAAAA,EAAAA,QAAAA,EAA6BC,KAAAA,GACvFiU,EAAgBjP,CAAAA,EAAAA,EAAAA,UAAAA,EAAWkP,EAAAA,CAAaA,EACxC,CAACyC,EAAUC,EAAY,CAAG7W,CAAAA,EAAAA,EAAAA,QAAAA,EAAmB,EAAE,EAE/C8W,EAAc,IAClB,GAAIF,EAASjO,QAAQ,CAACrK,GAAM,CAC1BuY,EAAYD,EAASpO,MAAM,CAAC,GAAOuO,IAAMzY,IACzC,MACF,CACA,GAAI8X,IAAAA,EAAsB,CACxBS,EAAY,CAACvY,EAAI,EACjB,MACF,CACIsY,EAAS5S,MAAM,EAAIoS,GAGvBS,EAAY,IAAID,EAAUtY,EAAI,CAChC,EAEM0Y,EAAaC,CAAAA,EAAAA,EAAAA,CAAAA,EAAoB,CACrCC,WAAY,MAAAxX,OAAO,CAAEpB,IAAAA,CAAG,CAAmB,CAAAoB,CACzC,OAAMoK,EAAAA,EAAKA,CAACC,MAAM,CAACzL,GACnBoE,GAEF,CACF,GAEM,CAAElD,KAAAA,CAAI,CAAEkV,UAAW/U,CAAO,CAAEC,MAAAA,CAAK,CAAE8C,QAAAA,CAAO,CAAE,CAAGiS,CAAAA,EAAAA,EAAAA,CAAAA,EAAiB,CACpEC,SAAU,CAAC,aAAcpS,EAAQkU,EAAyB,CAC1DS,UAAW,IACXtC,QAAS,SACA/K,EAAAA,EAAKA,CAACsN,IAAI,CAAC,CAChB5U,OAAAA,EACA6U,kBAAmBX,CACrB,EAEJ,GAEAvU,QAAQC,GAAG,CAAC,aAAc5C,GAE1B,GAAM,CAAE8X,MAAAA,CAAK,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,CAAAA,IACZzE,EAAO0E,EACX,CACElF,QAAS4B,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAe5B,OAAO,GAAI,GACnCG,YAAa,CACXxQ,GAAAA,EACA0Q,iBAAAA,CACF,EACAJ,UAAW,CACTG,cAAe,MAAOlT,IACpB2C,QAAQC,GAAG,CAAC,OAAQ5C,EAUtB,CACF,EACAgT,iBAAkB,EACpB,EACA2D,SAQF,CALA9B,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACR3R,GACF,EAAG,CAACF,EAAQkU,EAAyB,EAGhC5D,GAIE,GAAA1S,EAAAC,IAAA,EAAAD,EAAAiL,QAAA,YACL,GAAAjL,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,uDAEb,GAAAT,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,kCACb,GAAAT,EAAAK,GAAA,EAAC2J,KAAAA,CAAGvJ,UAAU,oCAA2B,8BAGzC,GAAAT,EAAAK,GAAA,EAACqK,EAAAA,CAAKA,CAAAA,CACJxJ,YAAY,kBACZd,MAAOgC,EACPuI,SAAU,GAAOtI,EAAUuI,EAAEC,MAAM,CAACzK,KAAK,EACzCK,UAAU,SAEZ,GAAAT,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,iFACb,GAAAT,EAAAC,IAAA,EAACiL,OAAAA,WAAMsL,EAAS5S,MAAM,CAAC,MAAIoS,EAAe,qBAC1C,GAAAhW,EAAAC,IAAA,EAACiL,OAAAA,WAAK,uBAAqBqH,MAAAA,EAAAA,KAAAA,EAAAA,EAAkB9Q,GAAG,CAAC,GAAUiM,GAAM2J,IAAI,CAAC,YAExE,GAAArX,EAAAC,IAAA,EAACqX,EAAAA,CAAUA,CAAAA,WACR/X,GACC,GAAAS,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,iGACb,GAAAT,EAAAK,GAAA,EAAC+M,EAAAA,CAAQA,CAAAA,CAAC3M,UAAU,qBACpB,GAAAT,EAAAK,GAAA,EAAC+M,EAAAA,CAAQA,CAAAA,CAAC3M,UAAU,qBACpB,GAAAT,EAAAK,GAAA,EAAC+M,EAAAA,CAAQA,CAAAA,CAAC3M,UAAU,qBACpB,GAAAT,EAAAK,GAAA,EAAC+M,EAAAA,CAAQA,CAAAA,CAAC3M,UAAU,qBACpB,GAAAT,EAAAK,GAAA,EAAC+M,EAAAA,CAAQA,CAAAA,CAAC3M,UAAU,qBACpB,GAAAT,EAAAK,GAAA,EAAC+M,EAAAA,CAAQA,CAAAA,CAAC3M,UAAU,qBACpB,GAAAT,EAAAK,GAAA,EAAC+M,EAAAA,CAAQA,CAAAA,CAAC3M,UAAU,qBACpB,GAAAT,EAAAK,GAAA,EAAC+M,EAAAA,CAAQA,CAAAA,CAAC3M,UAAU,qBACpB,GAAAT,EAAAK,GAAA,EAAC+M,EAAAA,CAAQA,CAAAA,CAAC3M,UAAU,wBAGxB,GAAAT,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,kDAEX,CAAClB,GAAW,CAACH,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAMmY,QAAQ,GAAdnY,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgBwE,MAAM,GACjC,GAAA5D,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,sFACb,GAAAT,EAAAK,GAAA,EAACmX,EAAAA,CAAWA,CAAAA,CAAC/W,UAAU,4CACvB,GAAAT,EAAAK,GAAA,EAAC4J,IAAAA,CAAExJ,UAAU,qDAA4C,gCACzD,GAAAT,EAAAK,GAAA,EAAC4J,IAAAA,CAAExJ,UAAU,iDAAwC,wCAI1DrB,MAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAMmY,QAAQ,GAAdnY,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgBqC,GAAG,CAAC,GAEjB,GAAAzB,EAAAK,GAAA,EAAC4N,EAAAA,CAASC,MAAOjM,EAAKwV,GAAG,CAAE9V,SAAU+U,EAAa9I,OAAQ4I,EAASkB,IAAI,CAAC,GAAOf,IAAM1U,EAAKwV,GAAG,EAAGlM,SAAU,KACxGqL,EAAWtN,MAAM,CAAC,CAChBpL,IAAK+D,EAAKwV,GAAG,EAEjB,EAAGzL,SAAU,EAACuG,GAA2B,CAACA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAkBmF,IAAI,CAAC,GAAUzV,EAAKwV,GAAG,CAACE,QAAQ,CAACjK,GAAAA,QAKnG,GAAA1N,EAAAK,GAAA,EAACwJ,MAAAA,CAAIpJ,UAAU,yDACb,GAAAT,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,wCACb,GAAAT,EAAAC,IAAA,EAACO,EAAAA,CAAMA,CAAAA,CACLE,QAAQ,UACRD,UAAU,4BACVyJ,QAAS,KACPqM,EAA4B1W,KAAAA,EAC9B,EACAmM,SACE,CAACsK,GACD/W,YAGF,GAAAS,EAAAK,GAAA,EAAC6K,OAAAA,CAAKzK,UAAU,mBAAU,qBAC1B,GAAAT,EAAAK,GAAA,EAACuX,EAAAA,GAAmBA,CAAAA,CAACnX,UAAU,cAEjC,GAAAT,EAAAC,IAAA,EAACO,EAAAA,CAAMA,CAAAA,CACLE,QAAQ,UACRD,UAAU,aACVyJ,QAAS,KACPqM,EAA4BH,EAC9B,EACApK,SACE,CAACsK,GACD/W,YAGF,GAAAS,EAAAK,GAAA,EAAC6K,OAAAA,CAAKzK,UAAU,mBAAU,wBAC1B,GAAAT,EAAAK,GAAA,EAACwX,EAAAA,CAAeA,CAAAA,CAACpX,UAAU,cAE7B,GAAAT,EAAAC,IAAA,EAACO,EAAAA,CAAMA,CAAAA,CACLE,QAAQ,UACRD,UAAU,aACVyJ,QAAS,KACPmM,EAA6BC,GAC7BC,EAA4BnX,MAAAA,EAAAA,KAAAA,EAAAA,EAAM0Y,qBAAqB,CACzD,EACA9L,SACE,CAAC5M,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAM0Y,qBAAqB,GAC5BvY,YAEF,GAAAS,EAAAK,GAAA,EAAC6K,OAAAA,CAAKzK,UAAU,mBAAU,oBAC1B,GAAAT,EAAAK,GAAA,EAAC0X,EAAAA,CAAgBA,CAAAA,CAACtX,UAAU,yBAOtC,GAAAT,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,kCACb,GAAAT,EAAAK,GAAA,EAAC2J,KAAAA,CAAGvJ,UAAU,oCAA2B,qBACzC,GAAAT,EAAAK,GAAA,EAAC2X,EAAAA,CAASA,CAAAA,CAACtF,KAAMA,EAAMwE,MAAOA,SAAAA,EAAmB,OAAS,gBAG9D,GAAAlX,EAAAK,GAAA,EAACwJ,MAAAA,CAAIpJ,UAAU,4BACb,GAAAT,EAAAK,GAAA,EAACG,EAAAA,CAAMA,CAAAA,CAACE,QAAQ,UAAUwJ,QAAS,KACjC7K,EAAUmX,GACVC,EAAY,EAAE,CAChB,WAAG,iBAjHE,IAsHX,EAEaxI,EAAW,OAAC,CAAEC,MAAAA,CAAK,CAAEvM,SAAAA,CAAQ,CAAE4J,SAAAA,CAAQ,CAAEqC,OAAAA,CAAM,CAAE5B,SAAAA,CAAQ,CAAEiM,aAAAA,CAAY,CAOnF,CAAA3Y,EAuBC,MACE,GAAAU,EAAAC,IAAA,EAAC4J,MAAAA,CAECpJ,UAAW,GAAiHmN,MAAAA,CAA9G5B,EAAW,aAAe,GAAG,mFAAgIxI,MAAA,CAA/CoK,EAAS,2BAA6B,UAClK1D,QAAS,KACH,CAAC8B,GAAYrK,GACfA,EAASuM,EAEb,YACA,GAAAlO,EAAAK,GAAA,EAACwJ,MAAAA,CAAIpJ,UAAU,+GACZyN,GAEGA,CAAAA,EAAM5F,WAAW,GAAGqP,QAAQ,CAAC,QAC7BzJ,EAAM5F,WAAW,GAAGqP,QAAQ,CAAC,SAC7BzJ,EAAM5F,WAAW,GAAGqP,QAAQ,CAAC,QAC7BzJ,EAAM5F,WAAW,GAAGqP,QAAQ,CAAC,QAG/B,GAAA3X,EAAAK,GAAA,EAAC6X,EAAAA,CAA2BC,QAASjK,IAErC,GAAAlO,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,6DAzCrB,EAIEyN,EAAM5F,WAAW,GAAGqP,QAAQ,CAAC,QAC7BzJ,EAAM5F,WAAW,GAAGqP,QAAQ,CAAC,SAC7BzJ,EAAM5F,WAAW,GAAGqP,QAAQ,CAAC,QAC7BzJ,EAAM5F,WAAW,GAAGqP,QAAQ,CAAC,OAEtB,GAAA3X,EAAAK,GAAA,EAAC+X,EAAAA,CAASA,CAAAA,CAAC3X,UAAU,0BACnByN,EAAMyJ,QAAQ,CAAC,OACjB,GAAA3X,EAAAK,GAAA,EAACgY,EAAAA,CAAIA,CAAAA,CAAC5X,UAAU,yBACdyN,EAAMyJ,QAAQ,CAAC,QAAUzJ,EAAMyJ,QAAQ,CAAC,SAAWzJ,EAAMyJ,QAAQ,CAAC,OACpE,GAAA3X,EAAAK,GAAA,EAACiY,EAAAA,CAAQA,CAAAA,CAAC7X,UAAU,2BAClByN,EAAMyJ,QAAQ,CAAC,QAAUzJ,EAAMyJ,QAAQ,CAAC,QAC1C,GAAA3X,EAAAK,GAAA,EAACiY,EAAAA,CAAQA,CAAAA,CAAC7X,UAAU,4BAEpB,GAAAT,EAAAK,GAAA,EAACiY,EAAAA,CAAQA,CAAAA,CAAC7X,UAAU,0BAhBpB,GAAAT,EAAAK,GAAA,EAACiY,EAAAA,CAAQA,CAAAA,CAAC7X,UAAU,0BA0CrB,GAAAT,EAAAK,GAAA,EAAC6K,OAAAA,CAAKzK,UAAU,0DAAkDyN,EAAQA,EAAM7E,KAAK,CAAC,WAAWqK,GAAG,GAAKxF,SAI/G,GAAAlO,EAAAK,GAAA,EAAC4J,IAAAA,CAAExJ,UAAU,4BAAoByN,EAAQA,EAAM7E,KAAK,CAAC,WAAWqK,GAAG,GAAKxF,IACxE,GAAAlO,EAAAC,IAAA,EAAC4J,MAAAA,CAAIpJ,UAAU,0EAEZwX,GACC,GAAAjY,EAAAC,IAAA,EAACO,EAAAA,CAAMA,CAAAA,CAACE,QAAQ,QAAQuL,KAAK,OAAOyB,KAAK,SAASjN,UAAU,+CAA+CyJ,QAAS,KAClH+N,EAAa/J,EACf,YACE,GAAAlO,EAAAK,GAAA,EAACkY,EAAAA,CAAQA,CAAAA,CAAC9X,UAAU,YACpB,GAAAT,EAAAK,GAAA,EAAC6K,OAAAA,CAAKzK,UAAU,mBAAU,WAI9B,GAAAT,EAAAC,IAAA,EAACO,EAAAA,CAAMA,CAAAA,CACLE,QAAQ,QACRuL,KAAK,OACLyB,KAAK,SACLjN,UAAU,+CACVyJ,QAAS,KACPR,EAAAA,EAAKA,CAAC8L,QAAQ,CAACtH,GAAOtQ,IAAI,CAAC,MAAM6X,IAC/B1T,QAAQC,GAAG,CAAC,MAAOyT,GACnB,IAAMC,EAAO,MAAMD,EAAIC,IAAI,GAC3B3T,QAAQC,GAAG,CAAC,MAAO0T,GACnB,IAAMC,EAAcD,EAAK/B,GAAG,CAC5BiC,OAAO9V,IAAI,CAAC6V,EAAa,SAE3B,EACF,YACA,GAAA3V,EAAAK,GAAA,EAACwV,EAAAA,CAAQA,CAAAA,CAACpV,UAAU,YACpB,GAAAT,EAAAK,GAAA,EAAC6K,OAAAA,CAAKzK,UAAU,mBAAU,YAG3B8K,GACC,GAAAvL,EAAAC,IAAA,EAACO,EAAAA,CAAMA,CAAAA,CACL0J,QAAS,IACPU,EAAE4N,eAAe,GACjBjN,EAAS2C,EACX,EACAxN,QAAQ,QACRgN,KAAK,SACLzB,KAAK,OACLxL,UAAU,gGACV,GAAAT,EAAAK,GAAA,EAACoY,EAAAA,CAACA,CAAAA,CAAChY,UAAU,YACb,GAAAT,EAAAK,GAAA,EAAC6K,OAAAA,CAAKzK,UAAU,mBAAU,mBAlE3ByN,EAwEX,EAEIwK,EAKA,CAAC,EAEQC,EAAkB,MAAOR,IACpC,GAAIO,CAAc,CAACP,EAAQ,CAAE,CAC3B,IAAIO,CAAAA,CAAc,CAACP,EAAQ,CAACS,SAAS,CAAG5D,KAAK6D,GAAG,IAG9C,OAAOH,CAAc,CAACP,EAAQ,CAACxE,GAAG,QAF3B+E,CAAc,CAACP,EAAQ,CAKlC,IAAM3E,EAAW,MAAM9J,EAAAA,EAAKA,CAAC8L,QAAQ,CAAC2C,GAChCzC,EAAO,MAAMlC,EAASkC,IAAI,GAMhC,OALA3T,QAAQC,GAAG,CAAC,OAAQ0T,GACpBgD,CAAc,CAACP,EAAQ,CAAG,CACxBxE,IAAK+B,EAAK/B,GAAG,CACbiF,UAAW5D,KAAK6D,GAAG,GAAK,GAC1B,EACOnD,EAAK/B,GAAG,EAGXuE,EAA6B,OAAC,CAAEC,QAAAA,CAAO,CAAuB,CAAA7Y,EAElEyC,QAAQC,GAAG,CAAC,MAAOmW,GACnB,IAAMW,EAAQvE,CAAAA,EAAAA,EAAAA,CAAAA,EAAiB,CAC7BC,SAAU,CAAC,aAAc2D,EAAQ,CACjCpB,UAAW,IACXtC,QAAS,SACAkE,EAAgBR,EAE3B,UAEA,EAAU7D,SAAS,CACV,GAAAtU,EAAAK,GAAA,EAACwJ,MAAAA,UAAI,GAAA7J,EAAAK,GAAA,EAAC0Y,EAAAA,CAAUA,CAAAA,CAAAA,KAGrB,EAAOzE,SAAS,EAAKwE,EAAM1Z,IAAI,CAI3B,GAAAY,EAAAK,GAAA,EAACiN,MAAAA,CACPC,IAAKuL,EAAM1Z,IAAI,CACfoO,IAAK2K,EACL1X,UAAU,+BANH,GAAAT,EAAAK,GAAA,EAACwJ,MAAAA,UAAI,GAAA7J,EAAAK,GAAA,EAACmX,EAAAA,CAAWA,CAAAA,CAAAA,IAS5B,+FCjiBO,IAAM/X,EAAc,IAChBgD,CAAAA,EAAAA,EAAAA,EAAAA,EAA6CuW,EAAAA,EAAYA,CAAE,CAC9DlW,UAAW,CACPE,MAAO,EACX,CACJ,uECNG,IAAM2I,EAA8B,CAAC/B,EAAuBhF,SAgB/CgF,EAAAA,EAAAA,EAGAA,EAAAA,EAAAA,EAlBhB,IAAMqP,EAAYrP,YAAAA,EAAQ/D,WAAW,CAC/BqT,EAAWtP,WAAAA,EAAQ/D,WAAW,CAC9BsT,EAAUvP,UAAAA,EAAQ/D,WAAW,CAC7BuT,EAAUxP,UAAAA,EAAQ/D,WAAW,CAC7BwT,EAAUzU,EAAK0U,WAAW,CAC1BC,EAAY3P,EAAQ4P,UAAU,GAAK5U,EAAK/C,EAAE,CAAC4P,QAAQ,GAErD/F,EAAc,GAgBlB,OAfIuN,GAAaM,GACf7N,CAAAA,EAAc,IAEZwN,GACFxN,CAAAA,EAAc,IAEZyN,GACFzN,CAAAA,EAAc9B,CAAAA,OAAAA,CAAAA,EAAAA,EAAQ7D,IAAI,GAAZ6D,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAc9D,KAAK,GAAnB8D,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAqB6P,IAAI,CAACC,GAAKA,EAAE7X,EAAE,GAAK+C,EAAK/C,EAAE,IAA/C+H,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAkDb,MAAM,IAAK,SAEzEqQ,GACF1N,CAAAA,EAAc9B,CAAAA,OAAAA,CAAAA,EAAAA,EAAQ7D,IAAI,GAAZ6D,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAc5D,KAAK,GAAnB4D,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAqB6P,IAAI,CAACpb,QAAcuG,SAATvG,EAAEwD,EAAE,WAAK+C,CAAAA,EAAAA,EAAK2K,IAAI,GAAT3K,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAW/C,EAAE,MAArD+H,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAwDb,MAAM,IAAK,SAE/EsQ,GACF3N,CAAAA,EAAc,IAETA,CACX,sECfM,IAAAgB,EAAgB1O,CAAAA,EAAAA,SAAAA,CAAAA,EAAiB,gBAAiB,CACtD,CACE,OACA,CACEC,EAAG,4EACHC,IAAK,QACP,EACF,CACA,CAAC,OAAQ,CAAED,EAAG,UAAWC,IAAK,UAAU,CACxC,CAAC,OAAQ,CAAED,EAAG,aAAcC,IAAK,UAAU,CAC5C,sECVK,IAAAyb,EAAiB3b,CAAAA,EAAAA,SAAAA,CAAAA,EAAiB,iBAAkB,CACxD,CAAC,OAAQ,CAAEC,EAAG,gBAAiBC,IAAK,UAAU,CAC9C,CAAC,OAAQ,CAAED,EAAG,eAAgBC,IAAK,UAAU,CAC9C,sECHK,IAAA0b,EAAS5b,CAAAA,EAAAA,SAAAA,CAAAA,EAAiB,SAAU,CACxC,CACE,OACA,CACEC,EAAG,yHACHC,IAAK,QACP,EACF,CACD,sECRK,IAAA2b,EAAQ7b,CAAAA,EAAAA,SAAAA,CAAAA,EAAiB,QAAS,CACtC,CAAC,SAAU,CAAEG,GAAI,KAAMC,GAAI,KAAMC,EAAG,KAAMH,IAAK,UAAU,CACzD,CAAC,OAAQ,CAAED,EAAG,kDAAmDC,IAAK,UAAU,CAChF,CAAC,OAAQ,CAAED,EAAG,WAAYC,IAAK,UAAU,CAC1C,sECJK,IAAA4b,EAAO9b,CAAAA,EAAAA,SAAAA,CAAAA,EAAiB,OAAQ,CACpC,CAAC,OAAQ,CAAEc,MAAO,KAAMC,OAAQ,KAAMC,EAAG,IAAKC,EAAG,KAAMC,GAAI,IAAK6a,GAAI,IAAK7b,IAAK,UAAU,CACxF,CAAC,OAAQ,CAAED,EAAG,2BAA4BC,IAAK,UAAU,CAC1D,sECHK,IAAAiM,EAAgBnM,CAAAA,EAAAA,SAAAA,CAAAA,EAAiB,gBAAiB,CACtD,CAAC,OAAQ,CAAEC,EAAG,gEAAiEC,IAAK,UAAU,CAC/F,sECFK,IAAAiN,EAASnN,CAAAA,EAAAA,SAAAA,CAAAA,EAAiB,SAAU,CACxC,CAAC,OAAQ,CAAEC,EAAG,mDAAoDC,IAAK,UAAU,CACjF,CAAC,OAAQ,CAAED,EAAG,YAAaC,IAAK,UAAU,CAC3C,sECHK,IAAAkM,EAASpM,CAAAA,EAAAA,SAAAA,CAAAA,EAAiB,SAAU,CACxC,CAAC,OAAQ,CAAEC,EAAG,6CAA8CC,IAAK,UAAU,CAC5E,6MCHK8b,EAAgB,WAGhB,CAACC,EAAuBC,EAAmB,CAAIC,CAAAA,EAAAA,EAAAA,CAAAA,EAAmBH,GAqBlE,CAACI,EAAsBC,EAAkB,CAC7CJ,EAA4CD,GAkB9C,SAASM,EACPjL,CAAA,EAEA,GAAM,CACJkL,gBAAAA,CAAA,CACA1N,QAAS2N,CAAA,CACTnG,SAAAA,CAAA,CACAoG,eAAAA,CAAA,CACAzO,SAAAA,CAAA,CACA0O,KAAAA,CAAA,CACA9Y,KAAAA,CAAA,CACAkL,gBAAAA,CAAA,CACA6N,SAAAA,CAAA,CACAva,MAAAA,EAAQ,KAERwa,2BAAAA,CAAA,CACF,CAAIvL,EAEE,CAACxC,EAASgO,EAAU,CAAIC,CAAAA,EAAAA,EAAAA,CAAAA,EAAqB,CACjDC,KAAMP,EACNQ,YAAaP,MAAAA,GAAAA,EACb9P,SAAUmC,EACVmO,OAAQjB,CACV,GACM,CAACkB,EAASC,EAAU,CAAUhT,EAAAA,QAAA,CAAmC,MACjE,CAACiT,EAAaC,EAAc,CAAUlT,EAAAA,QAAA,CAAkC,MACxEmT,EAAyCnT,EAAAA,MAAA,CAAO,IAChDoT,EAAgBL,CAAAA,GAClB,CAAC,CAACR,GAAQ,CAAC,CAACQ,EAAQM,OAAA,CAAQ,QAI1B9b,EAAuC,CAC3CmN,QAAAA,EACAb,SAAAA,EACA6O,WAAAA,EACAK,QAAAA,EACAC,WAAAA,EACAvZ,KAAAA,EACA8Y,KAAAA,EACAta,MAAAA,EACAkb,iCAAAA,EACAX,SAAAA,EACAF,eAAgBgB,CAAAA,EAAgBhB,IAA0BA,EAC1Dc,cAAAA,EACAH,YAAAA,EACAC,eAAAA,CACF,EAEA,MACEhb,CAAAA,EAAAA,EAAAA,GAAAA,EAAC+Z,EAAA,CACCsB,MAAOnB,EACN,GAAI7a,CAAA,CAEJ2U,SAAAsH,YA8QE,OA9QSf,EAA8BA,EAA2Blb,GAAW2U,CAAA,EAGtF,CAMA,IAAMuH,EAAe,kBAUfC,EAAwB1T,EAAAA,UAAA,CAC5B,CAAA7I,EAEEwc,QADA,CAAEvB,gBAAAA,CAAA,CAAiBwB,UAAAA,CAAA,CAAW7R,QAAAA,CAAA,CAAS,GAAG8R,EAAc,CAAA1c,EAGlD,CACJ4b,QAAAA,CAAA,CACA9a,MAAAA,CAAA,CACA4L,SAAAA,CAAA,CACAa,QAAAA,CAAA,CACA8N,SAAAA,CAAA,CACAQ,WAAAA,CAAA,CACAN,WAAAA,CAAA,CACAS,iCAAAA,CAAA,CACAC,cAAAA,CAAA,CACAH,YAAAA,CAAA,CACF,CAAIf,EAAmBuB,EAAcrB,GAC/B0B,EAAeC,CAAAA,EAAAA,EAAAA,CAAAA,EAAgBJ,EAAcX,GAE7CgB,EAA+BhU,EAAAA,MAAA,CAAO0E,GAU5C,OATM1E,EAAAA,SAAA,CAAU,KACd,IAAMuS,EAAOQ,MAAAA,EAAAA,KAAAA,EAAAA,EAASR,IAAA,CACtB,GAAIA,EAAM,CACR,IAAM0B,EAAQ,IAAMvB,EAAWsB,EAAuBE,OAAO,EAE7D,OADA3B,EAAK4B,gBAAA,CAAiB,QAASF,GACxB,IAAM1B,EAAK6B,mBAAA,CAAoB,QAASH,EACjD,CACF,EAAG,CAAClB,EAASL,EAAW,EAGtBxa,CAAAA,EAAAA,EAAAA,GAAAA,EAACmc,EAAAA,EAASA,CAACC,MAAA,CAAV,CACC/O,KAAK,SACL6B,KAAK,WACL,eAAckM,EAAgB5O,GAAW,QAAUA,EACnD,gBAAe8N,EACf,aAAY+B,EAAS7P,GACrB,gBAAeb,EAAW,GAAK,OAC/BA,SAAAA,EACA5L,MAAAA,EACC,GAAG4b,CAAA,CACJ5M,IAAK6M,EACLF,UAAWY,CAAAA,EAAAA,EAAAA,CAAAA,EAAqBZ,EAAW,IAEvB,UAAda,EAAM1e,GAAA,EAAiB0e,EAAMC,cAAA,EACnC,GACA3S,QAASyS,CAAAA,EAAAA,EAAAA,CAAAA,EAAqBzS,EAAS,IACrC2Q,EAAW,GAAkBY,EAAAA,EAAgBqB,IAAsB,CAACA,GAChE1B,GAAeG,IACjBD,EAAiCe,OAAA,CAAUO,EAAMG,oBAAA,GAM5CzB,EAAiCe,OAAA,EAASO,EAAMpE,eAAA,GAEzD,EAAC,EAGP,EAGFqD,CAAAA,EAAgBpM,WAAA,CAAcmM,EAe9B,IAAMhP,EAAiBzE,EAAAA,UAAA,CACrB,CAACkH,EAAmCyM,KAClC,GAAM,CACJvB,gBAAAA,CAAA,CACA3Y,KAAAA,CAAA,CACAiL,QAAAA,CAAA,CACA4N,eAAAA,CAAA,CACAE,SAAAA,CAAA,CACA3O,SAAAA,CAAA,CACA5L,MAAAA,CAAA,CACA0M,gBAAAA,CAAA,CACA4N,KAAAA,CAAA,CACA,GAAGsB,EACL,CAAI3M,EAEJ,MACEhP,CAAAA,EAAAA,EAAAA,GAAAA,EAACia,EAAA,CACCC,gBAAAA,EACA1N,QAAAA,EACA4N,eAAAA,EACAzO,SAAAA,EACA2O,SAAAA,EACA7N,gBAAAA,EACAlL,KAAAA,EACA8Y,KAAAA,EACAta,MAAAA,EAEAwa,2BAA4B,OAAC,CAAEW,cAAAA,CAAA,CAAc,CAAAjc,QAC3CW,CAAAA,EAAAA,EAAAA,IAAAA,EAAAgL,EAAAA,QAAAA,CAAA,CACEoJ,SAAA,CAAAhU,CAAAA,EAAAA,EAAAA,GAAAA,EAACwb,EAAA,CACE,GAAGG,CAAA,CACJ5M,IAAK0M,EAELvB,gBAAAA,CAAA,GAEDgB,GACClb,CAAAA,EAAAA,EAAAA,GAAAA,EAAC2c,EAAA,CAECzC,gBAAAA,CAAA,GACF,GAEJ,EAIR,EAGF3N,CAAAA,EAAS6C,WAAA,CAAcuK,EAMvB,IAAMiD,EAAiB,oBAYjBC,EAA0B/U,EAAAA,UAAA,CAC9B,CAACkH,EAA4CyM,KAC3C,GAAM,CAAEvB,gBAAAA,CAAA,CAAiB4C,WAAAA,CAAA,CAAY,GAAGC,EAAe,CAAI/N,EACrD3P,EAAU2a,EAAmB4C,EAAgB1C,GACnD,MACEla,CAAAA,EAAAA,EAAAA,GAAAA,EAACgd,EAAAA,CAAQA,CAAR,CACCC,QAASH,GAAc1B,EAAgB/b,EAAQmN,OAAO,GAAKnN,CAAoB,IAApBA,EAAQmN,OAAA,CAEnEwH,SAAAhU,CAAAA,EAAAA,EAAAA,GAAAA,EAACmc,EAAAA,EAASA,CAACtR,IAAA,CAAV,CACC,aAAYwR,EAAShd,EAAQmN,OAAO,EACpC,gBAAenN,EAAQsM,QAAA,CAAW,GAAK,OACtC,GAAGoR,CAAA,CACJhO,IAAK0M,EACLyB,MAAO,CAAEC,cAAe,OAAQ,GAAGnO,EAAMkO,KAAA,CAAM,EACjD,EAGN,EAGFL,CAAAA,EAAkBzN,WAAA,CAAcwN,EAMhC,IAAMQ,EAAoB,sBAKpBT,EAA4B7U,EAAAA,UAAA,CAChC,CAAA7I,EAAuEwc,QAAtE,CAAEvB,gBAAAA,CAAA,CAAiB,GAAGlL,EAAM,CAAA/P,EACrB,CACJ4b,QAAAA,CAAA,CACAI,iCAAAA,CAAA,CACAzO,QAAAA,CAAA,CACA4N,eAAAA,CAAA,CACAE,SAAAA,CAAA,CACA3O,SAAAA,CAAA,CACApK,KAAAA,CAAA,CACAxB,MAAAA,CAAA,CACAsa,KAAAA,CAAA,CACAU,YAAAA,CAAA,CACAC,eAAAA,CAAA,CACF,CAAIhB,EAAmBoD,EAAmBlD,GAEpC0B,EAAeC,CAAAA,EAAAA,EAAAA,CAAAA,EAAgBJ,EAAcT,GAC7CyB,EAAcY,CAAAA,EAAAA,EAAAA,CAAAA,EAAY7Q,GAC1B8Q,EAAcC,CAAAA,EAAAA,EAAAA,CAAAA,EAAQ1C,GAGtB/S,EAAAA,SAAA,CAAU,KAEd,GAAI,CADUiT,EACF,OAOZ,IAAMP,EAAagD,OAJOC,wBAAA,CADPlI,OAAOmI,gBAAA,CAAiBC,SAAA,CAGzC,WAE4BpN,GAAA,CAExBqN,EAAU,CAAC3C,EAAiCe,OAAA,CAClD,GAAIS,IAAgBjQ,GAAWgO,EAAY,CACzC,IAAM+B,EAAQ,IAAIsB,MAAM,QAAS,CAAED,QAAAA,CAAQ,EAC3CtV,CAbYyS,EAaN+C,aAAA,CAAgB1C,EAAgB5O,GACtCgO,EAAWuD,IAAA,CAdChD,EAcWK,CAAAA,EAAgB5O,IAAmBA,GAC1DlE,EAAM0V,aAAA,CAAczB,EACtB,CACF,EAAG,CAACxB,EAAa0B,EAAajQ,EAASyO,EAAiC,EAExE,IAAMgD,EAA0BnW,EAAAA,MAAA,CAAOsT,CAAAA,EAAgB5O,IAAmBA,GAC1E,MACExM,CAAAA,EAAAA,EAAAA,GAAAA,EAACmc,EAAAA,EAASA,CAAC7T,KAAA,CAAV,CACC+E,KAAK,WACL,cAAW,GACX+M,eAAgBA,MAAAA,EAAAA,EAAkB6D,EAAkBjC,OAAA,CACpD1B,SAAAA,EACA3O,SAAAA,EACApK,KAAAA,EACAxB,MAAAA,EACAsa,KAAAA,EACC,GAAGrL,CAAA,CACJkP,SAAU,GACVnP,IAAK6M,EACLsB,MAAO,CACL,GAAGlO,EAAMkO,KAAA,CACT,GAAGI,CAAA,CACHa,SAAU,WACVhB,cAAe,OACfiB,QAAS,EACTC,OAAQ,EAIRC,UAAW,mBACb,GAGN,GAWF,SAASlD,EAAgB5O,CAAA,EACvB,MAAOA,kBAAAA,CACT,CAEA,SAAS6P,EAAS7P,CAAA,EAChB,OAAO4O,EAAgB5O,GAAW,gBAAkBA,EAAU,UAAY,WAC5E,CAdAmQ,EAAoBvN,WAAA,CAAcgO,yGCzW5BjT,EAAcrC,EAAAA,UAAA,CAAqC,CAACkH,EAAOyM,IAE7Dzb,CAAAA,EAAAA,EAAAA,GAAAA,EAACmc,EAAAA,EAASA,CAACzP,KAAA,CAAV,CACE,GAAGsC,CAAA,CACJD,IAAK0M,EACL8C,YAAa,QAKXvP,EAFIxE,EADiBA,MAAA,CACV2Q,OAAA,CAAQ,qCAEb,OAANnM,CAAAA,EAAAA,EAAMuP,WAAA,GAANvP,KAAAA,IAAAA,GAAAA,EAAAA,IAAAA,CAAAA,EAAoBuN,GAEhB,CAACA,EAAMiC,gBAAA,EAAoBjC,EAAMkC,MAAA,CAAS,GAAGlC,EAAMC,cAAA,GACzD,IAKNrS,CAAAA,EAAMiF,WAAA,CAxBO,QA4Bb,IAAMsP,EAAOvU","sources":["webpack://_N_E/?ef07","webpack://_N_E/../../../src/icons/settings-2.ts","webpack://_N_E/../../../src/icons/files.ts","webpack://_N_E/../../../src/icons/package-minus.ts","webpack://_N_E/../../../src/icons/plus-square.ts","webpack://_N_E/./components/items-selection-modal.tsx","webpack://_N_E/./components/project-details.tsx","webpack://_N_E/./app/(application)/projects/[project]/page.tsx","webpack://_N_E/./components/ui/alert.tsx","webpack://_N_E/./components/ui/checkbox.tsx","webpack://_N_E/./components/ui/loading.tsx","webpack://_N_E/./components/ui/use-toast.ts","webpack://_N_E/./hooks/use-uppy.tsx","webpack://_N_E/./components/uppy-dashboard.tsx","webpack://_N_E/./hooks/contexts.tsx","webpack://_N_E/./lib/check-chat-session-write-access.ts","webpack://_N_E/../../../src/icons/alert-triangle.ts","webpack://_N_E/../../../src/icons/chevrons-up-down.ts","webpack://_N_E/../../../src/icons/folder.ts","webpack://_N_E/../../../src/icons/globe.ts","webpack://_N_E/../../../src/icons/lock.ts","webpack://_N_E/../../../src/icons/message-square.ts","webpack://_N_E/../../../src/icons/pencil.ts","webpack://_N_E/../../../src/icons/shield.ts","webpack://_N_E/../src/checkbox.tsx","webpack://_N_E/../src/label.tsx"],"sourcesContent":["import(/* webpackMode: \"eager\" */ \"/home/runner/work/exulu-frontend/exulu-frontend/app/(application)/projects/[project]/page.tsx\");\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Settings2\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/settings-2\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Settings2 = createLucideIcon('Settings2', [\n ['path', { d: 'M20 7h-9', key: '3s1dr2' }],\n ['path', { d: 'M14 17H5', key: 'gfn3mx' }],\n ['circle', { cx: '17', cy: '17', r: '3', key: '18b49y' }],\n ['circle', { cx: '7', cy: '7', r: '3', key: 'dfmy0x' }],\n]);\n\nexport default Settings2;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Files\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/files\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Files = createLucideIcon('Files', [\n [\n 'path',\n {\n d: 'M15.5 2H8.6c-.4 0-.8.2-1.1.5-.3.3-.5.7-.5 1.1v12.8c0 .4.2.8.5 1.1.3.3.7.5 1.1.5h9.8c.4 0 .8-.2 1.1-.5.3-.3.5-.7.5-1.1V6.5L15.5 2z',\n key: 'cennsq',\n },\n ],\n ['path', { d: 'M3 7.6v12.8c0 .4.2.8.5 1.1.3.3.7.5 1.1.5h9.8', key: 'ms809a' }],\n ['path', { d: 'M15 2v5h5', key: 'qq6kwv' }],\n]);\n\nexport default Files;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name PackageMinus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/package-minus\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst PackageMinus = createLucideIcon('PackageMinus', [\n ['path', { d: 'M16 16h6', key: '100bgy' }],\n [\n 'path',\n {\n d: 'M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14',\n key: 'e7tb2h',\n },\n ],\n ['path', { d: 'm7.5 4.27 9 5.15', key: '1c824w' }],\n ['polyline', { points: '3.29 7 12 12 20.71 7', key: 'ousv84' }],\n ['line', { x1: '12', x2: '12', y1: '22', y2: '12', key: 'a4e8g8' }],\n]);\n\nexport default PackageMinus;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name PlusSquare\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/plus-square\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst PlusSquare = createLucideIcon('PlusSquare', [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', key: 'afitv7' }],\n ['path', { d: 'M8 12h8', key: '1wcyev' }],\n ['path', { d: 'M12 8v8', key: 'napkw2' }],\n]);\n\nexport default PlusSquare;\n","import { Context } from \"@/types/models/context\";\nimport { useContexts } from \"@/hooks/contexts\";\nimport { useState } from \"react\"\nimport { PlusSquareIcon } from \"lucide-react\"\nimport { Button } from \"@/components/ui/button\"\nimport { useQuery } from \"@apollo/client\";\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/components/ui/command\"\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from \"@/components/ui/dialog\"\nimport { Item } from \"@/types/models/item\";\nimport { GET_ITEMS, PAGINATION_POSTFIX } from \"@/queries/queries\";\nimport { Loading } from \"./ui/loading\";\n\nexport const ItemsSelectionModal = ({ onConfirm }: {\n onConfirm: (data: {\n item: Item,\n context: Context\n }[]) => void\n}) => {\n // Shows a modal that first shows a list of all contexts\n\n const { data, loading, error } = useContexts();\n const [context, setContext] = useState<Context | undefined>(undefined);\n const [open, setOpen] = useState(false);\n\n return (<Dialog open={open} onOpenChange={(value) => {\n setOpen(value)\n setContext(undefined)\n }}>\n <DialogTrigger asChild>\n <Button className=\"w-full\" variant=\"outline\">\n <PlusSquareIcon className=\"h-4 w-4 mr-2\" />\n Select items from knowledge sources\n to add to the project, or upload files.\n </Button>\n </DialogTrigger>\n <DialogContent className=\"sm:max-w-[900px]\">\n <DialogHeader>\n <DialogTitle>Item selection</DialogTitle>\n <DialogDescription>Browse through contexts and select items.</DialogDescription>\n </DialogHeader>\n {\n !context && (\n <Command className=\"rounded-lg border shadow-md md:min-w-[450px]\">\n <CommandInput placeholder=\"Type a command or search...\" />\n <CommandList>\n <CommandEmpty>No results found.</CommandEmpty>\n\n <CommandGroup heading=\"Contexts\">\n {\n data?.contexts?.items.map((context: Context) => (\n <CommandItem key={context.id} onSelect={() => {\n setContext(context)\n }}>\n {context.name}\n </CommandItem>\n ))\n }\n </CommandGroup>\n\n </CommandList>\n </Command>\n )\n }\n {\n context && (\n <ItemsList context={context} onConfirm={(item) => {\n console.log(\"item\", item)\n onConfirm([{\n item,\n context\n }])\n setOpen(false)\n }} />\n )\n }\n </DialogContent>\n </Dialog>)\n}\n\nconst ItemsList = ({ context, onConfirm }: { context: Context, onConfirm: (item: Item) => void }) => {\n const [search, setSearch] = useState<string | undefined>(undefined)\n let { loading, data, refetch, previousData: prev, error } = useQuery<{\n [key: string]: {\n pageInfo: {\n pageCount: number;\n itemCount: number;\n currentPage: number;\n hasPreviousPage: boolean;\n hasNextPage: boolean;\n };\n items: Item[];\n }\n }>(GET_ITEMS(context.id, []), {\n fetchPolicy: \"no-cache\",\n nextFetchPolicy: \"network-only\",\n skip: !context.id,\n variables: {\n context: context.id,\n page: 1,\n limit: 10,\n sort: {\n field: \"updatedAt\",\n direction: \"DESC\",\n },\n filters: {\n archived: {\n ne: true\n },\n ...(search ? { name: { contains: `${search}` } } : {}),\n },\n },\n });\n\n return (\n <Command className=\"rounded-lg border shadow-md md:min-w-[450px]\">\n <CommandInput onValueChange={(data) => setSearch(data)} placeholder=\"Type a command or search...\" />\n <CommandList>\n <CommandGroup heading=\"Items\">\n {\n !prev && loading && (\n <CommandItem key={\"loading\"}>\n <Loading />\n </CommandItem>\n )\n }\n {\n !loading && !data?.[context.id + PAGINATION_POSTFIX]?.items?.length && (\n <CommandEmpty>No items found.</CommandEmpty>\n )\n }\n {(data || prev)?.[context.id + PAGINATION_POSTFIX]?.items?.map((item: Item) => (\n <CommandItem key={item.id} onSelect={() => {\n onConfirm(item)\n }}>{item.name}</CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </Command>\n )\n}","\"use client\";\n\nimport * as React from \"react\";\nimport { useState, useContext } from \"react\";\nimport { useQuery, useMutation, useApolloClient } from \"@apollo/client\";\nimport { UPDATE_PROJECT, DELETE_PROJECT, GET_AGENT_SESSIONS, GET_AGENTS, CREATE_AGENT_SESSION, GET_ITEM_BY_ID, UPDATE_AGENT_SESSION_PROJECT, REMOVE_AGENT_SESSION_BY_ID, DELETE_ITEM } from \"@/queries/queries\";\nimport { Button } from \"@/components/ui/button\";\nimport { Input } from \"@/components/ui/input\";\nimport { Label } from \"@/components/ui/label\";\nimport { Textarea } from \"@/components/ui/textarea\";\nimport { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from \"@/components/ui/card\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from \"@/components/ui/dialog\";\nimport { Checkbox } from \"@/components/ui/checkbox\";\nimport { Trash2, Plus, MessageSquare, Settings2, Files, AlertTriangle, Shield, Pencil, Search, Bot, PackageMinus } from \"lucide-react\";\nimport { RBACControl } from \"@/components/rbac\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\nimport { useToast } from \"@/components/ui/use-toast\";\nimport { Loading } from \"./ui/loading\";\nimport { Agent } from \"@/types/models/agent\";\nimport { useRouter } from \"next/navigation\";\nimport { AgentSession } from \"@/types/models/agent-session\";\nimport { Project } from \"@/types/models/project\";\nimport { checkChatSessionWriteAccess } from \"@/lib/check-chat-session-write-access\";\nimport { UserContext } from \"@/app/(application)/authenticated\";\nimport Link from \"next/link\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"@/components/ui/tooltip\";\nimport { Item } from \"@/types/models/item\";\nimport { FileItem } from \"./uppy-dashboard\";\nimport { ItemsSelectionModal } from \"./items-selection-modal\";\nimport { files } from \"@/util/api\";\n\ninterface ProjectDetailsProps {\n project: Project;\n}\n\nexport function ProjectDetails({ project }: ProjectDetailsProps) {\n const [isEditing, setIsEditing] = useState(false);\n const [isDeleteDialogOpen, setIsDeleteDialogOpen] = useState(false);\n const [isAgentSelectionOpen, setIsAgentSelectionOpen] = useState(false);\n const [agentSearch, setAgentSearch] = useState(\"\");\n const [activeView, setActiveView] = useState<'overview' | 'context' | 'sessions' | 'access' | 'settings'>('overview');\n const { user } = useContext(UserContext);\n const router = useRouter();\n const [deleteOptions, setDeleteOptions] = useState({\n deleteItems: false,\n deleteSessions: false,\n });\n const [formData, setFormData] = useState({\n name: project.name || \"\",\n description: project.description || \"\",\n custom_instructions: project.custom_instructions || \"\",\n });\n const { toast } = useToast();\n\n const [rbac, setRbac] = useState({\n rights_mode: project.rights_mode,\n users: project.RBAC?.users,\n roles: project.RBAC?.roles,\n projects: project.RBAC?.projects\n })\n\n const [projectItems, setProjectItems] = useState<string[]>(project.project_items || []);\n const [updateProject, { loading: isSaving }] = useMutation(UPDATE_PROJECT);\n const [deleteProject] = useMutation(DELETE_PROJECT);\n const [deletingProject, setDeletingProject] = useState(false);\n const { data: sessionsData, loading: sessionsLoading, refetch: refetchSessions } = useQuery(GET_AGENT_SESSIONS, {\n variables: {\n page: 1,\n limit: 50,\n filters: [\n { project: { eq: project.id } }\n ]\n }\n });\n\n const { data: agentsData, loading: agentsLoading } = useQuery(GET_AGENTS, {\n variables: {\n page: 1,\n limit: 100,\n filters: [],\n sort: { field: \"updatedAt\", direction: \"DESC\" }\n }\n });\n\n const apolloClient = useApolloClient()\n\n const [createAgentSession, { loading: isCreatingSession }] = useMutation(CREATE_AGENT_SESSION);\n\n const [updateAgentSession, { loading: isUpdatingSession }] = useMutation(UPDATE_AGENT_SESSION_PROJECT);\n\n const [deleteSession, { loading: isDeletingSession }] = useMutation(REMOVE_AGENT_SESSION_BY_ID);\n\n const chatSessions: AgentSession[] = sessionsData?.agent_sessionsPagination?.items || [];\n const agents: Agent[] = agentsData?.agentsPagination?.items || [];\n\n const filteredAgents = React.useMemo(() => {\n if (!agentSearch) return agents;\n return agents.filter(agent =>\n agent.name.toLowerCase().includes(agentSearch.toLowerCase())\n );\n }, [agents, agentSearch]);\n\n const handleSave = async () => {\n if (!formData.name.trim()) {\n toast({\n title: \"Validation Error\",\n description: \"Project name is required.\",\n variant: \"destructive\",\n });\n return;\n }\n\n try {\n await updateProject({\n variables: {\n id: project.id,\n input: {\n name: formData.name.trim(),\n description: formData.description.trim() || null,\n custom_instructions: formData.custom_instructions.trim() || null,\n },\n },\n });\n\n toast({\n title: \"Success\",\n description: \"Project updated successfully!\",\n });\n\n setIsEditing(false);\n } catch (error: any) {\n console.error(\"Error updating project:\", error);\n toast({\n title: \"Error\",\n description: error.message || \"Failed to update project. Please try again.\",\n variant: \"destructive\",\n });\n }\n };\n\n const handleCancel = () => {\n if (project) {\n setFormData({\n name: project.name || \"\",\n description: project.description || \"\",\n custom_instructions: project.custom_instructions || \"\",\n });\n }\n setIsEditing(false);\n };\n\n const handleNewChatSession = () => {\n setIsAgentSelectionOpen(true);\n };\n\n const handleAgentSelect = async (agent: Agent) => {\n try {\n const result = await createAgentSession({\n variables: {\n title: `New session with ${agent.name}`,\n agent: agent.id,\n project: project.id,\n rights_mode: \"projects\",\n RBAC: {\n projects: [{ id: project.id, rights: \"read\" }]\n }\n },\n });\n\n const sessionId = result.data?.agent_sessionsCreateOne?.item?.id;\n\n if (sessionId) {\n toast({\n title: \"Success\",\n description: \"Session created successfully! Sessions started in a project are accessible for viewing by project members.\",\n });\n\n setIsAgentSelectionOpen(false);\n setAgentSearch(\"\");\n\n router.push(`/chat/${agent.id}/${sessionId}`);\n }\n } catch (error: any) {\n console.error(\"Error creating session:\", error);\n toast({\n title: \"Error\",\n description: error.message || \"Failed to create session. Please try again.\",\n variant: \"destructive\",\n });\n }\n };\n\n const handleDeleteProject = async () => {\n try {\n setDeletingProject(true);\n if (deleteOptions.deleteItems) {\n await Promise.all(projectItems.map(async (item) => {\n const context = item.split(\"/\")[0];\n const id = item.split(\"/\")[1];\n if (!context || !id) return;\n const { data } = await apolloClient.mutate({\n mutation: DELETE_ITEM(context, context === \"files_default_context\" ? [\"s3key\"] : []),\n variables: { id },\n });\n\n if (data[`${context}_itemsRemoveOneById`]?.s3key) {\n try {\n await files.delete(data[`${context}_itemsRemoveOneById`]?.s3key)\n } catch (error: any) {\n console.error(\"[EXULU] Error deleting file from s3 storage:\", error);\n }\n }\n\n }));\n }\n\n await Promise.all(chatSessions.map(async (session) => {\n if (deleteOptions.deleteSessions) {\n await deleteSession({\n variables: { id: session.id },\n });\n } else {\n await updateAgentSession({\n variables: { id: session.id, project: null },\n });\n }\n }))\n\n await deleteProject({\n variables: { id: project.id },\n });\n\n toast({\n title: \"Success\",\n description: `Project \"${project.name}\" has been deleted successfully.`,\n });\n\n // Navigate back to projects list or close modal\n setIsDeleteDialogOpen(false);\n setDeletingProject(false);\n router.push('/projects');\n } catch (error: any) {\n setDeletingProject(false);\n console.error(\"Error deleting project:\", error);\n toast({\n title: \"Error\",\n description: error.message || \"Failed to delete project. Please try again.\",\n variant: \"destructive\",\n });\n }\n };\n\n return (\n <div className=\"flex-1 p-6 mt-20\">\n <div className=\"max-w-5xl mx-auto space-y-6\">\n <div className=\"flex gap-6 h-full\">\n <div className=\"w-80 space-y-4\">\n <Card>\n <CardContent className=\"p-4\">\n <div className=\"space-y-3\">\n <h3 className=\"font-semibold text-lg\">{project.name}</h3>\n <p className=\"text-muted-foreground text-sm leading-relaxed\">\n {project.description || \"No description provided.\"}\n </p>\n </div>\n </CardContent>\n </Card>\n\n {/* Navigation Buttons */}\n <div className=\"space-y-2\">\n <Button\n variant={activeView === 'overview' ? 'default' : 'ghost'}\n className=\"w-full justify-start\"\n onClick={() => setActiveView('overview')}\n >\n <Settings2 className=\"h-4 w-4 mr-2\" />\n Project information\n </Button>\n <Button\n variant={activeView === 'context' ? 'default' : 'ghost'}\n className=\"w-full justify-start\"\n onClick={() => setActiveView('context')}\n >\n <Files className=\"h-4 w-4 mr-2\" />\n Project files\n </Button>\n <Button\n variant={activeView === 'sessions' ? 'default' : 'ghost'}\n className=\"w-full justify-start\"\n onClick={() => setActiveView('sessions')}\n >\n <MessageSquare className=\"h-4 w-4 mr-2\" />\n Project sessions\n </Button>\n <Button\n variant={activeView === 'access' ? 'default' : 'ghost'}\n className=\"w-full justify-start\"\n onClick={() => setActiveView('access')}\n >\n <Shield className=\"h-4 w-4 mr-2\" />\n Access control\n </Button>\n <Button\n variant={activeView === 'settings' ? 'default' : 'ghost'}\n className=\"w-full justify-start\"\n onClick={() => setActiveView('settings')}\n >\n <Settings2 className=\"h-4 w-4 mr-2\" />\n Project settings\n </Button>\n </div>\n </div>\n\n {/* Main Content Area */}\n <div className=\"flex-1\">\n {activeView === 'overview' && (\n <div className=\"space-y-6\">\n <Card>\n <CardHeader>\n <CardTitle>Project Information</CardTitle>\n <CardDescription>\n Basic information about this project\n </CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"grid gap-4\">\n <div className=\"space-y-2\">\n <Label htmlFor=\"name\">Project Name</Label>\n {isEditing ? (\n <Input\n id=\"name\"\n value={formData.name}\n onChange={(e) => setFormData({ ...formData, name: e.target.value })}\n />\n ) : (\n <p className=\"text-sm\">{project.name}</p>\n )}\n </div>\n </div>\n <div className=\"space-y-2\">\n <Label htmlFor=\"description\">Description</Label>\n {isEditing ? (\n <Textarea\n id=\"description\"\n value={formData.description}\n onChange={(e) => setFormData({ ...formData, description: e.target.value })}\n rows={3}\n />\n ) : (\n <p className=\"text-sm\">{project.description || \"No description provided\"}</p>\n )}\n </div>\n <div className=\"space-y-2\">\n <Label htmlFor=\"instructions\">Custom Instructions</Label>\n {isEditing ? (\n <Textarea\n id=\"instructions\"\n value={formData.custom_instructions}\n onChange={(e) => setFormData({ ...formData, custom_instructions: e.target.value })}\n rows={4}\n placeholder=\"Enter custom instructions for sessions in this project...\"\n />\n ) : (\n <p className=\"text-sm\">{project.custom_instructions || \"No custom instructions set\"}</p>\n )}\n </div>\n </CardContent>\n\n <CardFooter>\n <div className=\"flex items-center justify-between\">\n <div className=\"flex gap-2\">\n {isEditing ? (\n <>\n <Button variant=\"outline\" onClick={handleCancel}>\n Cancel\n </Button>\n <Button onClick={handleSave}>\n <span>Save changes</span>\n {\n isSaving && (\n <Loading className=\"mr-2\" />\n )\n }\n </Button>\n </>\n ) : (\n <Button variant=\"outline\" onClick={() => setIsEditing(true)}>\n <Pencil className=\"h-4 w-4 mr-2\" />\n Edit\n </Button>\n )}\n </div>\n </div>\n </CardFooter>\n </Card>\n </div>\n )}\n\n {activeView === 'context' && (\n <div className=\"space-y-6 w-full\">\n <Card>\n <CardHeader>\n <CardTitle>Project context items</CardTitle>\n <CardDescription>\n Items that provide context for sessions in this project (max 15 items). Note that different\n agents may have different file types supported.\n </CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-4\">\n <ItemsSelectionModal onConfirm={(data) => {\n const update = [...projectItems, ...data.map((x) => `${x.context.id}/${x.item.id}`)];\n console.log(\"update\", update);\n setProjectItems(update);\n updateProject({\n variables: {\n id: project.id,\n input: {\n project_items: update\n }\n }\n })\n }} />\n\n {/* List of items */}\n <div className=\"space-y-2\">\n {\n <div className=\"space-y-2\">\n {\n projectItems?.length === 0 && (\n <div className=\"text-center py-8 text-muted-foreground\">\n <Files className=\"h-12 w-12 mx-auto mb-2 opacity-50\" />\n <p>No items added to the project context yet.</p>\n </div>\n )\n }\n <div className=\"grid grid-cols-3 sm:grid-cols-4 gap-3\">\n {projectItems?.map((gid) => (\n <ProjectItem key={gid} gid={gid} onRemove={(gid) => {\n const update = projectItems.filter((g) => g !== gid)\n setProjectItems(update)\n updateProject({\n variables: {\n id: project.id,\n input: {\n project_items: update\n }\n }\n })\n }} />\n ))}\n </div>\n </div>\n }\n </div>\n </div>\n </CardContent>\n </Card>\n </div>\n )}\n\n {activeView === 'sessions' && (\n <div className=\"space-y-6\">\n <Card>\n <CardHeader>\n <CardTitle>Project sessions</CardTitle>\n <CardDescription>\n Sessions associated with this project\n </CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-4\">\n <Button onClick={handleNewChatSession} className=\"w-full\" variant=\"outline\">\n <Plus className=\"h-4 w-4 mr-2\" />\n Start new session\n </Button>\n\n <div className=\"space-y-2\">\n {chatSessions.map((session) => {\n const writeAccess = checkChatSessionWriteAccess(session, user);\n return (\n <div key={session.id} className=\"flex items-center justify-between p-3 border rounded-lg\">\n <div className=\"flex items-center gap-3\">\n <MessageSquare className=\"h-4 w-4\" />\n <div>\n <Link href={`/chat/${session.agent}/${session.id}`}>\n <p className=\"font-medium max-w-[80%] truncate\">{session.title}</p>\n </Link>\n </div>\n </div>\n <div className=\"flex items-center gap-2\">\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n disabled={!writeAccess || isUpdatingSession}\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => {\n if (isUpdatingSession) return;\n updateAgentSession({\n variables: {\n id: session.id,\n project: null\n }\n })\n refetchSessions();\n }}>\n <PackageMinus className=\"h-4 w-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>\n <p>Remove session from project.</p>\n </TooltipContent>\n </Tooltip>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n disabled={!writeAccess || isDeletingSession}\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => {\n if (isDeletingSession) return;\n deleteSession({\n variables: {\n id: session.id\n }\n })\n refetchSessions();\n }}\n >\n <Trash2 className=\"h-4 w-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>\n <p>Delete session completely.</p>\n </TooltipContent>\n </Tooltip>\n </div>\n </div>\n )\n }\n )}\n </div>\n\n {chatSessions.length === 0 && !sessionsLoading && (\n <div className=\"text-center py-8 text-muted-foreground\">\n <MessageSquare className=\"h-12 w-12 mx-auto mb-2 opacity-50\" />\n <p>No sessions found</p>\n </div>\n )}\n\n {sessionsLoading && (\n <div className=\"text-center py-8 text-muted-foreground\">\n <MessageSquare className=\"h-12 w-12 mx-auto mb-2 opacity-50\" />\n <p>Loading sessions...</p>\n </div>\n )}\n </div>\n </CardContent>\n </Card>\n </div>\n )}\n\n {activeView === 'access' && (\n <div className=\"space-y-6\">\n <Card>\n <CardHeader>\n <CardTitle>Access Control</CardTitle>\n <CardDescription>\n Control who can access this project\n </CardDescription>\n </CardHeader>\n <CardContent>\n <RBACControl\n allowedModes={['private', 'users', 'roles']}\n initialRightsMode={project.rights_mode || 'private'}\n initialUsers={project.RBAC?.users}\n initialRoles={project.RBAC?.roles}\n initialProjects={project.RBAC?.projects}\n onChange={(rights_mode, users, roles, projects) => {\n setRbac({\n rights_mode,\n users,\n roles,\n projects\n })\n }}\n />\n </CardContent>\n <CardFooter>\n <Button onClick={() => {\n updateProject({\n variables: {\n id: project.id,\n input: {\n rights_mode: rbac.rights_mode,\n RBAC: {\n users: rbac.users,\n roles: rbac.roles,\n projects: rbac.projects\n }\n }\n }\n })\n }}>\n <span>Save access rights</span>\n {isSaving && <Loading className=\"ml-2\" />}\n </Button>\n </CardFooter>\n </Card>\n </div>\n )}\n\n {activeView === 'settings' && (\n <div className=\"space-y-6\">\n <Card>\n <CardHeader>\n <CardTitle>Danger Zone</CardTitle>\n <CardDescription>\n Permanently delete this project and all associated data\n </CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-4\">\n <div className=\"flex items-start gap-3 p-4 border border-destructive/20 rounded-lg bg-destructive/5\">\n <AlertTriangle className=\"h-5 w-5 text-destructive mt-0.5\" />\n <div className=\"flex-1\">\n <h4 className=\"font-medium text-destructive\">Delete Project</h4>\n <p className=\"text-sm text-muted-foreground mt-1\">\n This action cannot be undone. This will permanently delete the project and optionally remove all associated context files and sessions.\n </p>\n </div>\n </div>\n\n <Dialog open={isDeleteDialogOpen} onOpenChange={setIsDeleteDialogOpen}>\n <DialogTrigger asChild>\n <Button variant=\"destructive\">\n <Trash2 className=\"h-4 w-4 mr-2\" />\n Delete Project\n </Button>\n </DialogTrigger>\n <DialogContent className=\"sm:max-w-md\">\n <DialogHeader>\n <DialogTitle>Delete Project</DialogTitle>\n <DialogDescription>\n Are you sure you want to delete \"{project.name}\"? This action cannot be undone.\n </DialogDescription>\n </DialogHeader>\n <div className=\"space-y-4\">\n <div className=\"flex items-center space-x-2\">\n <Checkbox\n id=\"delete-items\"\n checked={deleteOptions.deleteItems}\n onCheckedChange={(checked) =>\n setDeleteOptions(prev => ({ ...prev, deleteItems: checked as boolean }))\n }\n />\n <label htmlFor=\"delete-items\" className=\"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\">\n Also delete all context items ({projectItems?.length} items)\n </label>\n </div>\n <div className=\"flex items-center space-x-2\">\n <Checkbox\n id=\"delete-sessions\"\n checked={deleteOptions.deleteSessions}\n onCheckedChange={(checked) =>\n setDeleteOptions(prev => ({ ...prev, deleteSessions: checked as boolean }))\n }\n />\n <label htmlFor=\"delete-sessions\" className=\"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\">\n Also delete all sessions ({chatSessions.length} sessions)\n </label>\n </div>\n {(deleteOptions.deleteItems || deleteOptions.deleteSessions) && (\n <div className=\"flex items-start gap-2 p-3 border border-amber-200 rounded-lg bg-amber-50\">\n <AlertTriangle className=\"h-4 w-4 text-amber-600 mt-0.5\" />\n <p className=\"text-sm text-amber-800\">\n {deleteOptions.deleteItems && deleteOptions.deleteSessions\n ? \"All context items and sessions will be permanently deleted.\"\n : deleteOptions.deleteItems\n ? \"All context items will be permanently deleted.\"\n : \"All sessions will be permanently deleted.\"\n }\n </p>\n </div>\n )}\n </div>\n <DialogFooter className=\"sm:justify-start\">\n <Button variant=\"outline\" onClick={() => setIsDeleteDialogOpen(false)}>\n Cancel\n </Button>\n <Button disabled={deletingProject} variant=\"destructive\" onClick={handleDeleteProject}>\n {\n deletingProject ? (\n <Loading className=\"mr-2 w-4 h-4\" />\n ) : (\n <Trash2 className=\"h-4 w-4 mr-2\" />\n )\n }\n Delete Project\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n </div>\n </CardContent>\n </Card>\n </div>\n )}\n </div>\n </div>\n </div>\n\n {/* Agent Selection Modal */}\n <Dialog open={isAgentSelectionOpen} onOpenChange={setIsAgentSelectionOpen}>\n <DialogContent className=\"sm:max-w-4xl\">\n <DialogHeader>\n <DialogTitle>Select an Agent</DialogTitle>\n <DialogDescription>\n Choose an agent to start a new chat session. Sessions started in a project are accessible for viewing by project members.\n </DialogDescription>\n </DialogHeader>\n\n <div className=\"space-y-4\">\n {/* Search Input */}\n <div className=\"relative\">\n <Search className=\"absolute left-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-muted-foreground\" />\n <Input\n placeholder=\"Search agents...\"\n value={agentSearch}\n onChange={(e) => setAgentSearch(e.target.value)}\n className=\"pl-10\"\n />\n </div>\n\n {/* Agents Grid */}\n <div className=\"max-h-96 overflow-y-auto\">\n {agentsLoading ? (\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n {[...Array(6)].map((_, i) => (\n <div key={i} className=\"p-4 border rounded-lg\">\n <div className=\"flex items-center gap-3\">\n <Skeleton className=\"h-12 w-12 rounded-full\" />\n <div className=\"space-y-2 flex-1\">\n <Skeleton className=\"h-4 w-3/4\" />\n <Skeleton className=\"h-3 w-1/2\" />\n </div>\n </div>\n </div>\n ))}\n </div>\n ) : filteredAgents.length > 0 ? (\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n {filteredAgents.map((agent) => (\n <div\n key={agent.id}\n className=\"p-4 border rounded-lg hover:border-primary cursor-pointer transition-colors\"\n onClick={() => handleAgentSelect(agent)}\n >\n <div className=\"flex items-center gap-3\">\n <div className=\"h-12 w-12 rounded-full bg-primary/10 flex items-center justify-center\">\n {agent.image ? (\n <img\n src={agent.image}\n alt={agent.name}\n className=\"h-12 w-12 rounded-full object-cover\"\n />\n ) : (\n <Bot className=\"h-6 w-6\" />\n )}\n </div>\n <div className=\"flex-1 min-w-0\">\n <p className=\"font-medium truncate\">{agent.name}</p>\n <p className=\"text-sm text-muted-foreground truncate\">\n {agent.description || `${agent.type} agent`}\n </p>\n <div className=\"flex items-center gap-2 mt-1\">\n <Badge variant={agent.active ? \"default\" : \"secondary\"} className=\"text-xs\">\n {agent.active ? \"Active\" : \"Inactive\"}\n </Badge>\n <Badge variant=\"outline\" className=\"text-xs\">\n {agent.type}\n </Badge>\n </div>\n </div>\n </div>\n </div>\n ))}\n </div>\n ) : (\n <div className=\"text-center py-8 text-muted-foreground\">\n <Bot className=\"h-12 w-12 mx-auto mb-2 opacity-50\" />\n <p>{agentSearch ? \"No agents found matching your search\" : \"No agents available\"}</p>\n </div>\n )}\n </div>\n </div>\n\n <DialogFooter>\n <Button variant=\"outline\" onClick={() => setIsAgentSelectionOpen(false)}>\n Cancel\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n </div>\n );\n}\n\nfunction ProjectItem({ gid, onRemove }: { gid: string, onRemove: (gid: string) => void }) {\n\n const context = gid.split(\"/\")[0];\n const id = gid.split(\"/\")[1];\n if (!context) return null;\n if (!id) return null;\n\n const { data, loading } = useQuery<\n {\n [key: string]: Item\n }>(GET_ITEM_BY_ID(context, context === \"files_default_context\" ? [\n \"s3key\"\n ] : []), {\n variables: {\n id\n }\n });\n\n console.log(\"data\", data);\n\n if (loading) return null;\n const item = data?.[context + \"_itemsById\"];\n if (!item) return null;\n const fields = Object.values(item || {})\n const files = fields.filter(x => x === \"_s3key\");\n\n if (!files.length) return null;\n\n return <>\n {files.map(file => (\n <FileItem s3Key={file} onRemove={() => {\n onRemove(gid)\n }} active={false} disabled={false} />\n ))}\n </>\n}","\"use client\";\n\nimport * as React from \"react\";\nimport { useParams } from \"next/navigation\";\nimport { ProjectDetails } from \"@/components/project-details\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\nimport { Alert, AlertDescription, AlertTitle } from \"@/components/ui/alert\";\nimport { useQuery } from \"@apollo/client\";\nimport { GET_PROJECT_BY_ID } from \"@/queries/queries\";\nimport { ExclamationTriangleIcon } from \"@radix-ui/react-icons\";\n\nexport default function ProjectPage() {\n const params = useParams();\n const projectId = params?.project as string;\n\n const { data, loading, error } = useQuery(GET_PROJECT_BY_ID, {\n variables: { id: projectId }\n });\n\n\n if (loading) {\n return <div>\n <Skeleton className=\"w-full h-full\" />\n </div>\n }\n\n if (error) {\n return <Alert variant=\"destructive\">\n <ExclamationTriangleIcon className=\"size-4\" />\n <AlertTitle>Error</AlertTitle>\n <AlertDescription>\n Error loading project.\n </AlertDescription>\n </Alert>\n }\n\n if (!data?.projectById) {\n return <Alert variant=\"destructive\">\n <ExclamationTriangleIcon className=\"size-4\" />\n <AlertTitle>Error</AlertTitle>\n <AlertDescription>\n Project not found.\n </AlertDescription>\n </Alert>\n }\n\n return <ProjectDetails project={data.projectById} />;\n}","import { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst alertVariants = cva(\n \"relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground\",\n {\n variants: {\n variant: {\n default: \"bg-background text-foreground\",\n destructive:\n \"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive\",\n info: \"border-info/50 text-info dark:border-info [&>svg]:text-info\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nconst Alert = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>\n>(({ className, variant, ...props }, ref) => (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n));\nAlert.displayName = \"Alert\";\n\nconst AlertTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h5\n ref={ref}\n className={cn(\"mb-1 font-medium leading-none tracking-tight\", className)}\n {...props}\n />\n));\nAlertTitle.displayName = \"AlertTitle\";\n\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"text-sm [&_p]:leading-relaxed\", className)}\n {...props}\n />\n));\nAlertDescription.displayName = \"AlertDescription\";\n\nexport { Alert, AlertTitle, AlertDescription };\n","\"use client\";\n\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport { Check } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n \"peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground\",\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n className={cn(\"flex items-center justify-center text-current\")}\n >\n <Check className=\"size-4\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n));\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\n\nexport { Checkbox };\n","import { cn } from \"@/lib/utils\";\n\nexport const Loading = ({ className }: { className?: null | string }) => {\n return (\n <svg\n aria-hidden=\"true\"\n role=\"status\"\n className={cn(\"inline w-4 h-4 text-white animate-spin fill-inherit\", className)}\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z\"\n className=\"fill-inherit opacity-20\"\n ></path>\n <path\n d=\"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z\"\n className=\"fill-inherit\"\n ></path>\n </svg>\n );\n};\n","\"use client\";\n\n// Inspired by react-hot-toast library\nimport * as React from \"react\";\n\nimport type { ToastActionElement, ToastProps } from \"@/components/ui/toast\";\n\nconst TOAST_LIMIT = 1;\nconst TOAST_REMOVE_DELAY = 1000000;\n\ntype ToasterToast = ToastProps & {\n id: string;\n title?: React.ReactNode;\n description?: React.ReactNode;\n action?: ToastActionElement;\n};\n\nconst actionTypes = {\n ADD_TOAST: \"ADD_TOAST\",\n UPDATE_TOAST: \"UPDATE_TOAST\",\n DISMISS_TOAST: \"DISMISS_TOAST\",\n REMOVE_TOAST: \"REMOVE_TOAST\",\n} as const;\n\nlet count = 0;\n\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER;\n return count.toString();\n}\n\ntype ActionType = typeof actionTypes;\n\ntype Action =\n | {\n type: ActionType[\"ADD_TOAST\"];\n toast: ToasterToast;\n }\n | {\n type: ActionType[\"UPDATE_TOAST\"];\n toast: Partial<ToasterToast>;\n }\n | {\n type: ActionType[\"DISMISS_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n }\n | {\n type: ActionType[\"REMOVE_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n };\n\ninterface State {\n toasts: ToasterToast[];\n}\n\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>();\n\nconst addToRemoveQueue = (toastId: string) => {\n if (toastTimeouts.has(toastId)) {\n return;\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId);\n dispatch({\n type: \"REMOVE_TOAST\",\n toastId: toastId,\n });\n }, TOAST_REMOVE_DELAY);\n\n toastTimeouts.set(toastId, timeout);\n};\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case \"ADD_TOAST\":\n return {\n ...state,\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\n };\n\n case \"UPDATE_TOAST\":\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === action.toast.id ? { ...t, ...action.toast } : t,\n ),\n };\n\n case \"DISMISS_TOAST\": {\n const { toastId } = action;\n\n // ! Side effects ! - This could be extracted into a dismissToast() action,\n // but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId);\n } else {\n state.toasts.forEach((toast) => {\n addToRemoveQueue(toast.id);\n });\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === toastId || toastId === undefined\n ? {\n ...t,\n open: false,\n }\n : t,\n ),\n };\n }\n case \"REMOVE_TOAST\":\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: [],\n };\n }\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== action.toastId),\n };\n }\n};\n\nconst listeners: Array<(state: State) => void> = [];\n\nlet memoryState: State = { toasts: [] };\n\nfunction dispatch(action: Action) {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener) => {\n listener(memoryState);\n });\n}\n\ntype Toast = Omit<ToasterToast, \"id\">;\n\nfunction toast({ ...props }: Toast) {\n const id = genId();\n\n const update = (props: ToasterToast) =>\n dispatch({\n type: \"UPDATE_TOAST\",\n toast: { ...props, id },\n });\n const dismiss = () => dispatch({ type: \"DISMISS_TOAST\", toastId: id });\n\n dispatch({\n type: \"ADD_TOAST\",\n toast: {\n ...props,\n id,\n open: true,\n onOpenChange: (open) => {\n if (!open) dismiss();\n },\n },\n });\n\n return {\n id: id,\n dismiss,\n update,\n };\n}\n\nfunction useToast() {\n const [state, setState] = React.useState<State>(memoryState);\n\n React.useEffect(() => {\n listeners.push(setState);\n return () => {\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n }, [state]);\n\n return {\n ...state,\n toast,\n dismiss: (toastId?: string) => dispatch({ type: \"DISMISS_TOAST\", toastId }),\n };\n}\n\nexport { useToast, toast };\n","import { useEffect, useState, useContext } from \"react\";\nimport Uppy from \"@uppy/core\";\nimport AwsS3 from \"@uppy/aws-s3\";\nimport \"@uppy/core/dist/style.min.css\";\nimport \"@uppy/dashboard/dist/style.min.css\";\nimport '@uppy/core/dist/style.min.css';\nimport '@uppy/dashboard/dist/style.min.css';\nimport { getToken } from \"@/util/api\";\nimport { ConfigContext } from \"@/components/config-context\";\n\ninterface InitializeOptions {\n backend: string;\n callbacks?: {\n uploadSuccess?: (response: {\n file: any | null;\n url: string\n key: string\n }) => void;\n };\n fileKey?: string;\n fileKeyPrefix?: string;\n maxNumberOfFiles?: number;\n uppyOptions?: {\n id?: string;\n allowedFileTypes: string[];\n };\n useName?: boolean;\n}\n\nexport const initializeUppy = async (options: InitializeOptions): Promise<Uppy> => {\n if (!options.backend) {\n throw new Error(\"No backend set.\")\n }\n const { callbacks, maxNumberOfFiles, uppyOptions } = options || {};\n const { uploadSuccess } = callbacks || {};\n const { allowedFileTypes, id } = uppyOptions || {};\n const token = await getToken()\n\n const uppy = new Uppy({\n autoProceed: true,\n debug: false,\n id: id || \"uppy\",\n restrictions: {\n maxNumberOfFiles: maxNumberOfFiles || 5,\n allowedFileTypes: allowedFileTypes || [\".heic\", \".jpg\", \".jpeg\", \".png\", \".webp\", \".svg\"],\n }\n })\n .use(AwsS3, {\n id: \"Exulu\",\n endpoint: options.backend,\n headers: { \n Authorization: `Bearer ${token}`,\n Session: localStorage.getItem(\"session\") ?? \"\",\n }\n })\n .on(\"file-added\", async (file) => {\n console.debug(\"added\", file);\n })\n .on(\"upload-error\", (file, error) => {\n if (!file?.id) {\n return;\n }\n uppy.removeFile(file?.id);\n console.error(\"error\", error);\n })\n .on(\"upload-success\", (file, response) => {\n if (!response.uploadURL) {\n return;\n }\n if (uploadSuccess) {\n console.log(\"response\", response)\n uploadSuccess({\n file: file,\n key: response.uploadURL.split(\"/\").pop() || \"\",\n url: response.uploadURL,\n });\n }\n });\n\n return uppy;\n};\n\nfunction useUppy(options: InitializeOptions, deps: any[] = []) {\n const configContext = useContext(ConfigContext);\n const [uppy, setUppy] = useState<Uppy | undefined>(undefined);\n useEffect(() => {\n const initUppy = async () => {\n const uppyInstance = await initializeUppy({\n ...options,\n backend: configContext?.backend || \"\",\n });\n setUppy(uppyInstance);\n };\n initUppy()\n return () => {\n if (uppy) {\n uppy.destroy();\n setUppy(undefined);\n }\n };\n }, [...deps]);\n\n return uppy;\n}\n\nexport default useUppy;\n","import useUppy from \"@/hooks/use-uppy\";\nimport { Dashboard } from '@uppy/react';\nimport { useContext, useEffect, useState } from \"react\"\nimport { X, File, ImageIcon, FileText, FilePlus, Download, LoaderIcon, FileWarning, Upload, PlusSquareIcon, EyeIcon, PlusIcon, ChevronRightIcon, ChevronLeftIcon } from \"lucide-react\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from \"@/components/ui/dialog\"\nimport { ScrollArea } from \"@/components/ui/scroll-area\"\nimport '@uppy/core/dist/style.min.css';\nimport '@uppy/dashboard/dist/style.min.css';\nimport { files, S3FileListOutput } from \"@/util/api\"\nimport { useTheme } from \"next-themes\";\nimport { ConfigContext } from \"./config-context\";\nimport { useQuery as useTanstackQuery, useMutation as useTanstackMutation } from \"@tanstack/react-query\";\nimport { Loading } from \"./ui/loading\";\nimport { allFileTypes } from \"@/types/models/agent\";\nimport { Input } from \"./ui/input\";\nimport { DoubleArrowLeftIcon } from \"@radix-ui/react-icons\";\nimport { Card, CardContent, CardHeader, CardTitle } from \"./ui/card\";\nimport { Skeleton } from \"./ui/skeleton\";\n\nexport function FileDataCard({ s3key, children }: { s3key: string, children?: React.ReactNode }) {\n const { data, isLoading, error, refetch } = useTanstackQuery({\n queryKey: ['fileObject', s3key],\n queryFn: async () => {\n if (!s3key) {\n return null;\n }\n const result = await files.object(s3key);\n return result;\n },\n enabled: s3key !== undefined && s3key !== null,\n })\n\n useEffect(() => {\n if (s3key) {\n refetch();\n }\n }, [s3key]);\n\n if (!s3key) {\n return <Card>\n <CardContent className=\"p-3 flex\">\n <p className=\"text-sm text-muted-foreground m-auto\">No file selected</p>\n {children}\n </CardContent>\n </Card>;\n }\n\n // also filter out [bucket:name] from the key if [bucket:name] is present\n let name = s3key;\n let bucket = \"\";\n if (s3key.includes(\"[bucket:\")) {\n bucket = s3key.split(\"[bucket:\")[1]?.split(\"]\")[0] || \"\";\n name = s3key.split(\"[bucket:\")[1]?.split(\"]\")[0] || \"\";\n if (name?.length) {\n name = s3key.split(\"]\")[1] || \"\";\n }\n }\n // Get the part after _EXULU_\n name = name.split(\"_EXULU_\").pop() || \"\";\n\n return <Card>\n <CardHeader className=\"pb-3\">\n <CardTitle className=\"text-sm max-w-[500px] truncate\">\n {name}\n </CardTitle>\n </CardHeader>\n <CardContent className=\"pt-0\">\n {\n isLoading && (\n <div className=\"space-y-2\">\n <Skeleton className=\"h-4 w-full\" />\n <Skeleton className=\"h-4 w-2/3\" />\n </div>\n )\n }\n {!isLoading && data && (\n <div className=\"space-y-2\">\n <div className=\"flex items-center justify-between text-xs text-muted-foreground\">\n <span className=\"capitalize\">\n {data?.ContentType.split(\"/\").pop()}\n {bucket && ` [Bucket: ${bucket}]`}\n </span>\n <span>{(data?.ContentLength / 1024 / 1024).toFixed(2)} MB</span>\n </div>\n <div className=\"flex items-center justify-between text-xs text-muted-foreground\">\n <span>Last modified: {new Date(data?.LastModified).toLocaleDateString(\"en-US\", { year: \"numeric\", month: \"long\", day: \"numeric\", hour: \"2-digit\", minute: \"2-digit\" })}</span>\n <Button\n variant=\"secondary\"\n size=\"sm\"\n type=\"button\"\n className=\"h-7 px-2\"\n onClick={() => {\n files.download(s3key).then(async res => {\n console.log(\"res\", res);\n const json = await res.json()\n console.log(\"res\", json);\n const downloadUrl = json.url;\n window.open(downloadUrl, '_blank');\n return;\n })\n }}>\n <span className=\"mr-1 text-xs\">View</span>\n <Download className=\"h-3 w-3\" />\n </Button>\n </div>\n </div>\n )}\n {\n !isLoading && error && (\n <p className=\"text-xs text-muted-foreground\">{error.message}</p>\n )\n }\n {children}\n </CardContent>\n </Card>\n}\n\nexport default function UppyDashboard({ id, allowedFileTypes, dependencies, onConfirm, selectionLimit, buttonText }: {\n id: string,\n buttonText?: string,\n allowedFileTypes?: allFileTypes[],\n selectionLimit: number,\n dependencies: any[],\n onConfirm: (keys: string[]) => void\n}) {\n const [open, setOpen] = useState(false)\n return <Dialog open={open} onOpenChange={setOpen}>\n <DialogTrigger asChild>\n <Button variant=\"outline\">\n {buttonText && (\n <span className=\"mr-2\">{buttonText}</span>\n )\n }\n <FilePlus className=\"h-4 w-4\" />\n </Button>\n </DialogTrigger>\n <DialogContent className=\"sm:max-w-[900px]\">\n <DialogHeader>\n <DialogTitle>File Gallery</DialogTitle>\n <DialogDescription>Browse your previously uploaded files or upload new ones.</DialogDescription>\n </DialogHeader>\n <FileGalleryAndUpload\n id={id}\n allowedFileTypes={allowedFileTypes}\n dependencies={dependencies}\n selectionLimit={selectionLimit}\n onConfirm={(data) => {\n onConfirm(data)\n setOpen(false)\n }}\n />\n </DialogContent>\n </Dialog>;\n}\n\nexport const FileGalleryAndUpload = ({ id, allowedFileTypes, dependencies, onConfirm, selectionLimit }: {\n id: string,\n allowedFileTypes?: allFileTypes[],\n dependencies: any[],\n selectionLimit: number,\n onConfirm: (keys: string[]) => void\n}) => {\n\n if (!allowedFileTypes) {\n allowedFileTypes = [\n '.png',\n '.jpg',\n '.jpeg',\n '.gif',\n '.webp',\n '.pdf',\n '.docx',\n '.xlsx',\n '.xls',\n '.csv',\n '.pptx',\n '.ppt',\n '.mp3',\n '.wav',\n '.m4a',\n '.mp4',\n '.mpeg',\n '.mp4',\n '.m4a',\n '.mp3',\n '.mpeg',\n '.wav'\n ]\n }\n\n const [search, setSearch] = useState<string | undefined>(undefined)\n const [previousContinuationToken, setPreviousContinuationToken] = useState<string | undefined>(undefined)\n const [currentContinuationToken, setCurrentContinuationToken] = useState<string | undefined>(undefined)\n const configContext = useContext(ConfigContext);\n const [selected, setSelected] = useState<string[]>([])\n\n const addSelected = (key: string) => {\n if (selected.includes(key)) {\n setSelected(selected.filter((s) => s !== key))\n return;\n }\n if (selectionLimit === 1) {\n setSelected([key])\n return;\n }\n if (selected.length >= selectionLimit) {\n return;\n }\n setSelected([...selected, key])\n }\n\n const deleteFile = useTanstackMutation({\n mutationFn: async ({ key }: { key: string }) => {\n await files.delete(key)\n refetch();\n return;\n }\n })\n\n const { data, isLoading: loading, error, refetch } = useTanstackQuery({\n queryKey: ['filesQuery', search, currentContinuationToken],\n staleTime: 30000,\n queryFn: async (): Promise<S3FileListOutput> => {\n return files.list({\n search,\n continuationToken: currentContinuationToken\n })\n },\n })\n\n console.log(\"!! data !!\", data)\n\n const { theme } = useTheme()\n const uppy = useUppy(\n {\n backend: configContext?.backend || \"\",\n uppyOptions: {\n id,\n allowedFileTypes\n },\n callbacks: {\n uploadSuccess: async (data) => {\n console.log(\"data\", data)\n /* \n We no longer create items automatically for files uploaded via uppy.\n const item = {\n name: data.file.name,\n type: data.file.type,\n rights_mode: \"private\",\n s3key: `${user?.id}/${data.key}`\n }\n await createItemMutation({ variables: { input: item } }) */\n },\n },\n maxNumberOfFiles: 10,\n },\n dependencies,\n );\n\n useEffect(() => {\n refetch();\n }, [search, currentContinuationToken]);\n\n // Loading state\n if (!uppy) {\n return null;\n }\n\n return <>\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4 mt-4\">\n {/* Left side - Gallery of previously uploaded files */}\n <div className=\"border rounded-lg p-4\">\n <h3 className=\"text-sm font-medium mb-3\">Previously Uploaded Files</h3>\n\n {/* search */}\n <Input\n placeholder=\"Search files...\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n className=\"mb-3\"\n />\n <div className=\"flex items-center justify-between text-xs text-muted-foreground pb-2\">\n <span>{selected.length} / {selectionLimit} files selected</span>\n <span>Allowed file types: {allowedFileTypes?.map((type) => type).join(\", \")}</span>\n </div>\n <ScrollArea>\n {loading && (\n <div className=\"flex items-center justify-center h-full w-full grid grid-cols-2 sm:grid-cols-3 gap-3\">\n <Skeleton className=\"h-[120px] w-full\" />\n <Skeleton className=\"h-[120px] w-full\" />\n <Skeleton className=\"h-[120px] w-full\" />\n <Skeleton className=\"h-[120px] w-full\" />\n <Skeleton className=\"h-[120px] w-full\" />\n <Skeleton className=\"h-[120px] w-full\" />\n <Skeleton className=\"h-[120px] w-full\" />\n <Skeleton className=\"h-[120px] w-full\" />\n <Skeleton className=\"h-[120px] w-full\" />\n </div>\n )}\n <div className=\"grid grid-cols-2 sm:grid-cols-3 gap-3\">\n {\n !loading && !data?.Contents?.length && (\n <div className=\"col-span-full flex flex-col items-center justify-center py-12 text-center\">\n <FileWarning className=\"h-12 w-12 text-muted-foreground/50 mb-3\" />\n <p className=\"text-sm font-medium text-muted-foreground\">Nothing to see here... yet!</p>\n <p className=\"text-xs text-muted-foreground/75 mt-1\">Upload some files to get started</p>\n </div>\n )\n }\n {data?.Contents?.map((item: S3FileListOutput[\"Contents\"][0]) => {\n return (\n <FileItem s3Key={item.Key} onSelect={addSelected} active={selected.some((s) => s === item.Key)} onRemove={() => {\n deleteFile.mutate({\n key: item.Key\n })\n }} disabled={!allowedFileTypes ? false : !allowedFileTypes?.some((type) => item.Key.endsWith(type))} />\n )\n })}\n </div>\n\n <div className=\"flex items-center space-x-6 lg:space-x-8 pt-3\">\n <div className=\"flex items-center space-x-2\">\n <Button\n variant=\"outline\"\n className=\"hidden size-8 p-0 lg:flex\"\n onClick={() => {\n setCurrentContinuationToken(undefined)\n }}\n disabled={\n !currentContinuationToken ||\n loading\n }\n >\n <span className=\"sr-only\">Go to first page</span>\n <DoubleArrowLeftIcon className=\"size-4\" />\n </Button>\n <Button\n variant=\"outline\"\n className=\"size-8 p-0\"\n onClick={() => {\n setCurrentContinuationToken(previousContinuationToken)\n }}\n disabled={\n !currentContinuationToken ||\n loading\n }\n >\n <span className=\"sr-only\">Go to previous page</span>\n <ChevronLeftIcon className=\"size-4\" />\n </Button>\n <Button\n variant=\"outline\"\n className=\"size-8 p-0\"\n onClick={() => {\n setPreviousContinuationToken(currentContinuationToken)\n setCurrentContinuationToken(data?.NextContinuationToken)\n }}\n disabled={\n !data?.NextContinuationToken ||\n loading\n }>\n <span className=\"sr-only\">Go to next page</span>\n <ChevronRightIcon className=\"size-4\" />\n </Button>\n </div>\n </div>\n </ScrollArea>\n </div>\n {/* Right side - Upload area */}\n <div className=\"border rounded-lg p-4\">\n <h3 className=\"text-sm font-medium mb-3\">Upload New Files</h3>\n <Dashboard uppy={uppy} theme={theme === \"dark\" ? \"dark\" : \"light\"} />\n </div>\n </div>\n <div className=\"flex justify-end\">\n <Button variant=\"outline\" onClick={() => {\n onConfirm(selected)\n setSelected([])\n }}>\n Confirm\n </Button>\n </div>\n </>\n}\n\nexport const FileItem = ({ s3Key, onSelect, onRemove, active, disabled, addToContext }: {\n s3Key: string,\n onSelect?: (key: string) => void,\n onRemove?: (key: string) => void,\n active: boolean,\n disabled: boolean,\n addToContext?: (key: string) => void\n}) => {\n const getFileIcon = (s3Key: string) => {\n if (!s3Key) {\n return <FileText className=\"h-6 w-6 text-gray-500\" />\n }\n if (\n s3Key.toLowerCase().endsWith(\"jpg\") ||\n s3Key.toLowerCase().endsWith(\"jpeg\") ||\n s3Key.toLowerCase().endsWith(\"png\") ||\n s3Key.toLowerCase().endsWith(\"svg\")\n ) {\n return <ImageIcon className=\"h-6 w-6 text-blue-500\" />\n } else if (s3Key.endsWith(\"pdf\")) {\n return <File className=\"h-6 w-6 text-red-500\" />\n } else if (s3Key.endsWith(\"xls\") || s3Key.endsWith(\"xlsx\") || s3Key.endsWith(\"csv\")) {\n return <FileText className=\"h-6 w-6 text-green-500\" />\n } else if (s3Key.endsWith(\"ppt\") || s3Key.endsWith(\"pptx\")) {\n return <FileText className=\"h-6 w-6 text-orange-500\" />\n } else {\n return <FileText className=\"h-6 w-6 text-gray-500\" />\n }\n }\n\n return (\n <div\n key={s3Key}\n className={`${disabled ? 'opacity-50' : ''} group relative rounded-lg p-2 hover:bg-muted transition-colors cursor-pointer ${active ? 'border border-purple-500' : 'border'}`}\n onClick={() => {\n if (!disabled && onSelect) {\n onSelect(s3Key)\n }\n }}>\n <div className=\"aspect-square relative mb-2 bg-muted/50 rounded-md overflow-hidden flex items-center justify-center\">\n {(\n s3Key && (\n s3Key.toLowerCase().endsWith(\"jpg\") ||\n s3Key.toLowerCase().endsWith(\"jpeg\") ||\n s3Key.toLowerCase().endsWith(\"png\") ||\n s3Key.toLowerCase().endsWith(\"svg\")\n )\n ) ? (\n <SecureImageRenderComponent fileKey={s3Key} />\n ) : (\n <div className=\"flex flex-col items-center justify-center h-full\">\n {getFileIcon(s3Key)}\n <span className=\"text-xs text-muted-foreground mt-1 text-center\">{s3Key ? s3Key.split(\"_EXULU_\").pop() : s3Key}</span>\n </div>\n )}\n </div>\n <p className=\"text-xs truncate\">{s3Key ? s3Key.split(\"_EXULU_\").pop() : s3Key}</p>\n <div className=\"opacity-0 group-hover:opacity-100 flex absolute top-1 right-1\">\n\n {addToContext && (\n <Button variant=\"ghost\" size=\"icon\" type=\"button\" className=\"h-6 w-6 bg-background/80 hover:bg-background\" onClick={() => {\n addToContext(s3Key)\n }}>\n <PlusIcon className=\"h-3 w-3\" />\n <span className=\"sr-only\">Add</span>\n </Button>\n )}\n\n <Button\n variant=\"ghost\"\n size=\"icon\"\n type=\"button\"\n className=\"h-6 w-6 bg-background/80 hover:bg-background\"\n onClick={() => {\n files.download(s3Key).then(async res => {\n console.log(\"res\", res);\n const json = await res.json()\n console.log(\"res\", json);\n const downloadUrl = json.url;\n window.open(downloadUrl, '_blank');\n return;\n })\n }}>\n <Download className=\"h-3 w-3\" />\n <span className=\"sr-only\">View</span>\n </Button>\n\n {onRemove && (\n <Button\n onClick={(e) => {\n e.stopPropagation()\n onRemove(s3Key)\n }}\n variant=\"ghost\"\n type=\"button\"\n size=\"icon\"\n className=\"h-6 w-6 opacity-0 group-hover:opacity-100 bg-background/80 hover:bg-background ml-1\">\n <X className=\"h-3 w-3\" />\n <span className=\"sr-only\">Remove</span>\n </Button>\n )}\n </div>\n </div>\n )\n}\n\nlet signedUrlCache: {\n [key: string]: {\n url: string;\n expiresAt: number;\n }\n} = {};\n\nexport const getPresignedUrl = async (fileKey: string) => {\n if (signedUrlCache[fileKey]) {\n if (signedUrlCache[fileKey].expiresAt < Date.now()) {\n delete signedUrlCache[fileKey];\n } else {\n return signedUrlCache[fileKey].url;\n }\n }\n const response = await files.download(fileKey)\n const json = await response.json();\n console.log(\"json\", json)\n signedUrlCache[fileKey] = {\n url: json.url,\n expiresAt: Date.now() + 60 * 1000, // 1 minute\n }\n return json.url;\n}\n\nconst SecureImageRenderComponent = ({ fileKey }: { fileKey: string }) => {\n // Gets a signed key to show the image\n console.log(\"key\", fileKey)\n const query = useTanstackQuery({\n queryKey: ['imageQuery', fileKey],\n staleTime: 30000,\n queryFn: async () => {\n return getPresignedUrl(fileKey)\n },\n })\n\n if (query.isLoading) {\n return <div><LoaderIcon /></div>\n }\n\n if (!query.isLoading && !query.data) {\n return <div><FileWarning /></div>\n }\n\n return (<img\n src={query.data}\n alt={fileKey}\n className=\"object-cover w-full h-full\"\n />)\n\n}","import { GET_CONTEXTS } from \"@/queries/queries\";\nimport { Context } from \"@/types/models/context\";\nimport { useQuery } from \"@apollo/client\";\n\nexport const useContexts = () => {\n return useQuery<{ contexts: { items: Context[] } }>(GET_CONTEXTS, {\n variables: {\n limit: 20\n }\n })\n};","import { AgentSession } from \"@/types/models/agent-session\";\nimport { UserWithRole } from \"@/types/models/user\";\n\nexport const checkChatSessionWriteAccess = (session: AgentSession, user: UserWithRole) => {\n const isPrivate = session.rights_mode === 'private';\n const isPublic = session.rights_mode === 'public';\n const byUsers = session.rights_mode === 'users';\n const byRoles = session.rights_mode === 'roles';\n const isAdmin = user.super_admin;\n const isCreator = session.created_by === user.id.toString();\n \n let writeAccess = false;\n if (isPrivate && isCreator) {\n writeAccess = true;\n }\n if (isPublic) {\n writeAccess = true;\n }\n if (byUsers) {\n writeAccess = session.RBAC?.users?.find(u => u.id === user.id)?.rights === 'write';\n }\n if (byRoles) {\n writeAccess = session.RBAC?.roles?.find(r => r.id === user.role?.id)?.rights === 'write';\n }\n if (isAdmin) {\n writeAccess = true;\n }\n return writeAccess;\n}","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name AlertTriangle\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/alert-triangle\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst AlertTriangle = createLucideIcon('AlertTriangle', [\n [\n 'path',\n {\n d: 'm21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z',\n key: 'c3ski4',\n },\n ],\n ['path', { d: 'M12 9v4', key: 'juzpu7' }],\n ['path', { d: 'M12 17h.01', key: 'p32p05' }],\n]);\n\nexport default AlertTriangle;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ChevronsUpDown\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/chevrons-up-down\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronsUpDown = createLucideIcon('ChevronsUpDown', [\n ['path', { d: 'm7 15 5 5 5-5', key: '1hf1tw' }],\n ['path', { d: 'm7 9 5-5 5 5', key: 'sgt6xg' }],\n]);\n\nexport default ChevronsUpDown;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Folder\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/folder\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Folder = createLucideIcon('Folder', [\n [\n 'path',\n {\n d: 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z',\n key: '1kt360',\n },\n ],\n]);\n\nexport default Folder;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Globe\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/globe\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Globe = createLucideIcon('Globe', [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20', key: '13o1zl' }],\n ['path', { d: 'M2 12h20', key: '9i4pu4' }],\n]);\n\nexport default Globe;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Lock\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/lock\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Lock = createLucideIcon('Lock', [\n ['rect', { width: '18', height: '11', x: '3', y: '11', rx: '2', ry: '2', key: '1w4ew1' }],\n ['path', { d: 'M7 11V7a5 5 0 0 1 10 0v4', key: 'fwvmzm' }],\n]);\n\nexport default Lock;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name MessageSquare\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/message-square\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst MessageSquare = createLucideIcon('MessageSquare', [\n ['path', { d: 'M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z', key: '1lielz' }],\n]);\n\nexport default MessageSquare;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Pencil\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/pencil\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Pencil = createLucideIcon('Pencil', [\n ['path', { d: 'M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z', key: '5qss01' }],\n ['path', { d: 'm15 5 4 4', key: '1mk7zo' }],\n]);\n\nexport default Pencil;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Shield\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/shield\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Shield = createLucideIcon('Shield', [\n ['path', { d: 'M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10', key: '1irkt0' }],\n]);\n\nexport default Shield;\n","import * as React from 'react';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { usePrevious } from '@radix-ui/react-use-previous';\nimport { useSize } from '@radix-ui/react-use-size';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\n\nimport type { Scope } from '@radix-ui/react-context';\n\nconst CHECKBOX_NAME = 'Checkbox';\n\ntype ScopedProps<P> = P & { __scopeCheckbox?: Scope };\nconst [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);\n\ntype CheckedState = boolean | 'indeterminate';\n\ntype CheckboxContextValue<State extends CheckedState | boolean = CheckedState> = {\n checked: State | boolean;\n setChecked: React.Dispatch<React.SetStateAction<State | boolean>>;\n disabled: boolean | undefined;\n control: HTMLButtonElement | null;\n setControl: React.Dispatch<React.SetStateAction<HTMLButtonElement | null>>;\n name: string | undefined;\n form: string | undefined;\n value: string | number | readonly string[];\n hasConsumerStoppedPropagationRef: React.RefObject<boolean>;\n required: boolean | undefined;\n defaultChecked: boolean | undefined;\n isFormControl: boolean;\n bubbleInput: HTMLInputElement | null;\n setBubbleInput: React.Dispatch<React.SetStateAction<HTMLInputElement | null>>;\n};\n\nconst [CheckboxProviderImpl, useCheckboxContext] =\n createCheckboxContext<CheckboxContextValue>(CHECKBOX_NAME);\n\n/* -------------------------------------------------------------------------------------------------\n * CheckboxProvider\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CheckboxProviderProps<State extends CheckedState = CheckedState> {\n checked?: State | boolean;\n defaultChecked?: State | boolean;\n required?: boolean;\n onCheckedChange?(checked: State | boolean): void;\n name?: string;\n form?: string;\n disabled?: boolean;\n value?: string | number | readonly string[];\n children?: React.ReactNode;\n}\n\nfunction CheckboxProvider<State extends CheckedState = CheckedState>(\n props: ScopedProps<CheckboxProviderProps<State>>\n) {\n const {\n __scopeCheckbox,\n checked: checkedProp,\n children,\n defaultChecked,\n disabled,\n form,\n name,\n onCheckedChange,\n required,\n value = 'on',\n // @ts-expect-error\n internal_do_not_use_render,\n } = props;\n\n const [checked, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked ?? false,\n onChange: onCheckedChange,\n caller: CHECKBOX_NAME,\n });\n const [control, setControl] = React.useState<HTMLButtonElement | null>(null);\n const [bubbleInput, setBubbleInput] = React.useState<HTMLInputElement | null>(null);\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = control\n ? !!form || !!control.closest('form')\n : // We set this to true by default so that events bubble to forms without JS (SSR)\n true;\n\n const context: CheckboxContextValue<State> = {\n checked: checked,\n disabled: disabled,\n setChecked: setChecked,\n control: control,\n setControl: setControl,\n name: name,\n form: form,\n value: value,\n hasConsumerStoppedPropagationRef: hasConsumerStoppedPropagationRef,\n required: required,\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked,\n isFormControl: isFormControl,\n bubbleInput,\n setBubbleInput,\n };\n\n return (\n <CheckboxProviderImpl\n scope={__scopeCheckbox}\n {...(context as unknown as CheckboxContextValue<CheckedState>)}\n >\n {isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children}\n </CheckboxProviderImpl>\n );\n}\n\n/* -------------------------------------------------------------------------------------------------\n * CheckboxTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'CheckboxTrigger';\n\ninterface CheckboxTriggerProps\n extends Omit<\n React.ComponentPropsWithoutRef<typeof Primitive.button>,\n keyof CheckboxProviderProps\n > {\n children?: React.ReactNode;\n}\n\nconst CheckboxTrigger = React.forwardRef<HTMLButtonElement, CheckboxTriggerProps>(\n (\n { __scopeCheckbox, onKeyDown, onClick, ...checkboxProps }: ScopedProps<CheckboxTriggerProps>,\n forwardedRef\n ) => {\n const {\n control,\n value,\n disabled,\n checked,\n required,\n setControl,\n setChecked,\n hasConsumerStoppedPropagationRef,\n isFormControl,\n bubbleInput,\n } = useCheckboxContext(TRIGGER_NAME, __scopeCheckbox);\n const composedRefs = useComposedRefs(forwardedRef, setControl);\n\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const form = control?.form;\n if (form) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n form.addEventListener('reset', reset);\n return () => form.removeEventListener('reset', reset);\n }\n }, [control, setChecked]);\n\n return (\n <Primitive.button\n type=\"button\"\n role=\"checkbox\"\n aria-checked={isIndeterminate(checked) ? 'mixed' : checked}\n aria-required={required}\n data-state={getState(checked)}\n data-disabled={disabled ? '' : undefined}\n disabled={disabled}\n value={value}\n {...checkboxProps}\n ref={composedRefs}\n onKeyDown={composeEventHandlers(onKeyDown, (event) => {\n // According to WAI ARIA, Checkboxes don't activate on enter keypress\n if (event.key === 'Enter') event.preventDefault();\n })}\n onClick={composeEventHandlers(onClick, (event) => {\n setChecked((prevChecked) => (isIndeterminate(prevChecked) ? true : !prevChecked));\n if (bubbleInput && isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n // if checkbox has a bubble input and is a form control, stop\n // propagation from the button so that we only propagate one click\n // event (from the input). We propagate changes from an input so\n // that native form validation works and form events reflect\n // checkbox updates.\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })}\n />\n );\n }\n);\n\nCheckboxTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * Checkbox\n * -----------------------------------------------------------------------------------------------*/\n\ntype CheckboxElement = React.ComponentRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface CheckboxProps extends Omit<PrimitiveButtonProps, 'checked' | 'defaultChecked'> {\n checked?: CheckedState;\n defaultChecked?: CheckedState;\n required?: boolean;\n onCheckedChange?(checked: CheckedState): void;\n}\n\nconst Checkbox = React.forwardRef<CheckboxElement, CheckboxProps>(\n (props: ScopedProps<CheckboxProps>, forwardedRef) => {\n const {\n __scopeCheckbox,\n name,\n checked,\n defaultChecked,\n required,\n disabled,\n value,\n onCheckedChange,\n form,\n ...checkboxProps\n } = props;\n\n return (\n <CheckboxProvider\n __scopeCheckbox={__scopeCheckbox}\n checked={checked}\n defaultChecked={defaultChecked}\n disabled={disabled}\n required={required}\n onCheckedChange={onCheckedChange}\n name={name}\n form={form}\n value={value}\n // @ts-expect-error\n internal_do_not_use_render={({ isFormControl }: CheckboxContextValue) => (\n <>\n <CheckboxTrigger\n {...checkboxProps}\n ref={forwardedRef}\n // @ts-expect-error\n __scopeCheckbox={__scopeCheckbox}\n />\n {isFormControl && (\n <CheckboxBubbleInput\n // @ts-expect-error\n __scopeCheckbox={__scopeCheckbox}\n />\n )}\n </>\n )}\n />\n );\n }\n);\n\nCheckbox.displayName = CHECKBOX_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * CheckboxIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst INDICATOR_NAME = 'CheckboxIndicator';\n\ntype CheckboxIndicatorElement = React.ComponentRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = React.ComponentPropsWithoutRef<typeof Primitive.span>;\ninterface CheckboxIndicatorProps extends PrimitiveSpanProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst CheckboxIndicator = React.forwardRef<CheckboxIndicatorElement, CheckboxIndicatorProps>(\n (props: ScopedProps<CheckboxIndicatorProps>, forwardedRef) => {\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return (\n <Presence\n present={forceMount || isIndeterminate(context.checked) || context.checked === true}\n >\n <Primitive.span\n data-state={getState(context.checked)}\n data-disabled={context.disabled ? '' : undefined}\n {...indicatorProps}\n ref={forwardedRef}\n style={{ pointerEvents: 'none', ...props.style }}\n />\n </Presence>\n );\n }\n);\n\nCheckboxIndicator.displayName = INDICATOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * CheckboxBubbleInput\n * -----------------------------------------------------------------------------------------------*/\n\nconst BUBBLE_INPUT_NAME = 'CheckboxBubbleInput';\n\ntype InputProps = React.ComponentPropsWithoutRef<typeof Primitive.input>;\ninterface CheckboxBubbleInputProps extends Omit<InputProps, 'checked'> {}\n\nconst CheckboxBubbleInput = React.forwardRef<HTMLInputElement, CheckboxBubbleInputProps>(\n ({ __scopeCheckbox, ...props }: ScopedProps<CheckboxBubbleInputProps>, forwardedRef) => {\n const {\n control,\n hasConsumerStoppedPropagationRef,\n checked,\n defaultChecked,\n required,\n disabled,\n name,\n value,\n form,\n bubbleInput,\n setBubbleInput,\n } = useCheckboxContext(BUBBLE_INPUT_NAME, __scopeCheckbox);\n\n const composedRefs = useComposedRefs(forwardedRef, setBubbleInput);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n\n // Bubble checked change to parents (e.g form change event)\n React.useEffect(() => {\n const input = bubbleInput;\n if (!input) return;\n\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n 'checked'\n ) as PropertyDescriptor;\n const setChecked = descriptor.set;\n\n const bubbles = !hasConsumerStoppedPropagationRef.current;\n if (prevChecked !== checked && setChecked) {\n const event = new Event('click', { bubbles });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [bubbleInput, prevChecked, checked, hasConsumerStoppedPropagationRef]);\n\n const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : checked);\n return (\n <Primitive.input\n type=\"checkbox\"\n aria-hidden\n defaultChecked={defaultChecked ?? defaultCheckedRef.current}\n required={required}\n disabled={disabled}\n name={name}\n value={value}\n form={form}\n {...props}\n tabIndex={-1}\n ref={composedRefs}\n style={{\n ...props.style,\n ...controlSize,\n position: 'absolute',\n pointerEvents: 'none',\n opacity: 0,\n margin: 0,\n // We transform because the input is absolutely positioned but we have\n // rendered it **after** the button. This pulls it back to sit on top\n // of the button.\n transform: 'translateX(-100%)',\n }}\n />\n );\n }\n);\n\nCheckboxBubbleInput.displayName = BUBBLE_INPUT_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\nfunction isFunction(value: unknown): value is (...args: any[]) => any {\n return typeof value === 'function';\n}\n\nfunction isIndeterminate(checked?: CheckedState): checked is 'indeterminate' {\n return checked === 'indeterminate';\n}\n\nfunction getState(checked: CheckedState) {\n return isIndeterminate(checked) ? 'indeterminate' : checked ? 'checked' : 'unchecked';\n}\n\nexport {\n createCheckboxScope,\n //\n Checkbox,\n CheckboxProvider,\n CheckboxTrigger,\n CheckboxIndicator,\n CheckboxBubbleInput,\n //\n Checkbox as Root,\n CheckboxProvider as Provider,\n CheckboxTrigger as Trigger,\n CheckboxIndicator as Indicator,\n CheckboxBubbleInput as BubbleInput,\n};\nexport type {\n CheckboxProps,\n CheckboxProviderProps,\n CheckboxTriggerProps,\n CheckboxIndicatorProps,\n CheckboxBubbleInputProps,\n CheckedState,\n};\n","import * as React from 'react';\nimport { Primitive } from '@radix-ui/react-primitive';\n\n/* -------------------------------------------------------------------------------------------------\n * Label\n * -----------------------------------------------------------------------------------------------*/\n\nconst NAME = 'Label';\n\ntype LabelElement = React.ComponentRef<typeof Primitive.label>;\ntype PrimitiveLabelProps = React.ComponentPropsWithoutRef<typeof Primitive.label>;\ninterface LabelProps extends PrimitiveLabelProps {}\n\nconst Label = React.forwardRef<LabelElement, LabelProps>((props, forwardedRef) => {\n return (\n <Primitive.label\n {...props}\n ref={forwardedRef}\n onMouseDown={(event) => {\n // only prevent text selection if clicking inside the label itself\n const target = event.target as HTMLElement;\n if (target.closest('button, input, select, textarea')) return;\n\n props.onMouseDown?.(event);\n // prevent text selection when double clicking label\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }}\n />\n );\n});\n\nLabel.displayName = NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = Label;\n\nexport {\n Label,\n //\n Root,\n};\nexport type { LabelProps };\n"],"names":["Promise","resolve","then","__webpack_require__","bind","Settings2","createLucideIcon","d","key","cx","cy","r","Files","PackageMinus","points","x1","x2","y1","y2","PlusSquare","width","height","x","y","rx","ItemsSelectionModal","data","onConfirm","param","loading","error","useContexts","context","setContext","useState","undefined","open","setOpen","jsx_runtime","jsxs","Dialog","onOpenChange","value","jsx","DialogTrigger","asChild","Button","className","variant","PlusSquareIcon","DialogContent","DialogHeader","DialogTitle","DialogDescription","Command","CommandInput","placeholder","CommandList","CommandEmpty","CommandGroup","heading","contexts","items","map","CommandItem","onSelect","name","id","ItemsList","console","log","item","__items","_","search","setSearch","refetch","previousData","prev","useQuery","GET_ITEMS","fetchPolicy","nextFetchPolicy","skip","variables","page","limit","sort","field","direction","filters","archived","ne","contains","concat","onValueChange","Loading","PAGINATION_POSTFIX","length","_this","ProjectDetails","project","sessionsData","agentsData","isEditing","setIsEditing","isDeleteDialogOpen","setIsDeleteDialogOpen","isAgentSelectionOpen","setIsAgentSelectionOpen","agentSearch","setAgentSearch","activeView","setActiveView","user","useContext","UserContext","router","useRouter","deleteOptions","setDeleteOptions","deleteItems","deleteSessions","formData","setFormData","description","custom_instructions","toast","useToast","rbac","setRbac","rights_mode","users","RBAC","roles","projects","projectItems","setProjectItems","project_items","updateProject","isSaving","useMutation","UPDATE_PROJECT","deleteProject","DELETE_PROJECT","deletingProject","setDeletingProject","sessionsLoading","refetchSessions","GET_AGENT_SESSIONS","eq","agentsLoading","GET_AGENTS","apolloClient","useApolloClient","createAgentSession","isCreatingSession","CREATE_AGENT_SESSION","updateAgentSession","isUpdatingSession","UPDATE_AGENT_SESSION_PROJECT","deleteSession","isDeletingSession","REMOVE_AGENT_SESSION_BY_ID","chatSessions","agent_sessionsPagination","agents","agentsPagination","filteredAgents","React","filter","agent","toLowerCase","includes","handleSave","trim","title","input","message","handleAgentSelect","result","rights","sessionId","agent_sessionsCreateOne","push","handleDeleteProject","all","split","mutate","mutation","DELETE_ITEM","s3key","files","delete","session","div","Card","CardContent","h3","p","onClick","MessageSquare","Shield","CardHeader","CardTitle","CardDescription","Label","htmlFor","Input","onChange","e","target","Textarea","rows","CardFooter","Fragment","span","Pencil","update","ProjectItem","gid","onRemove","g","Plus","writeAccess","checkChatSessionWriteAccess","Link","href","Tooltip","TooltipTrigger","disabled","size","TooltipContent","Trash2","RBACControl","allowedModes","initialRightsMode","initialUsers","initialRoles","initialProjects","AlertTriangle","h4","Checkbox","checked","onCheckedChange","label","DialogFooter","Search","Array","i","Skeleton","image","img","src","alt","Bot","type","Badge","active","GET_ITEM_BY_ID","fields","values","file","FileItem","s3Key","ProjectPage","params","useParams","projectId","GET_PROJECT_BY_ID","Alert","ExclamationTriangleIcon","AlertTitle","AlertDescription","projectById","alertVariants","cva","variants","default","destructive","info","defaultVariants","ref","props","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","role","cn","displayName","h5","CheckboxPrimitive","Check","svg","aria-hidden","viewBox","fill","xmlns","path","count","toastTimeouts","Map","addToRemoveQueue","has","toastId","timeout","setTimeout","dispatch","set","reducer","state","action","toasts","slice","t","forEach","listeners","memoryState","listener","Number","MAX_SAFE_INTEGER","toString","dismiss","setState","index","indexOf","splice","initializeUppy","options","localStorage","backend","callbacks","maxNumberOfFiles","uppyOptions","uploadSuccess","allowedFileTypes","token","getToken","uppy","Uppy","autoProceed","debug","restrictions","use","AwsS3","endpoint","headers","Authorization","Session","getItem","on","removeFile","response","uploadURL","pop","url","use_uppy","deps","configContext","ConfigContext","setUppy","useEffect","initUppy","destroy","FileDataCard","children","isLoading","useTanstackQuery","queryKey","queryFn","object","enabled","bucket","ContentType","ContentLength","toFixed","Date","LastModified","toLocaleDateString","year","month","day","hour","minute","download","res","json","downloadUrl","window","Download","UppyDashboard","dependencies","selectionLimit","buttonText","FilePlus","FileGalleryAndUpload","previousContinuationToken","setPreviousContinuationToken","currentContinuationToken","setCurrentContinuationToken","selected","setSelected","addSelected","s","deleteFile","useTanstackMutation","mutationFn","staleTime","list","continuationToken","theme","useTheme","useUppy","join","ScrollArea","Contents","FileWarning","Key","some","endsWith","DoubleArrowLeftIcon","ChevronLeftIcon","NextContinuationToken","ChevronRightIcon","Dashboard","addToContext","SecureImageRenderComponent","fileKey","ImageIcon","File","FileText","PlusIcon","stopPropagation","X","signedUrlCache","getPresignedUrl","expiresAt","now","query","LoaderIcon","GET_CONTEXTS","isPrivate","isPublic","byUsers","byRoles","isAdmin","super_admin","isCreator","created_by","find","u","ChevronsUpDown","Folder","Globe","Lock","ry","CHECKBOX_NAME","createCheckboxContext","createCheckboxScope","createContextScope","CheckboxProviderImpl","useCheckboxContext","CheckboxProvider","__scopeCheckbox","checkedProp","defaultChecked","form","required","internal_do_not_use_render","setChecked","useControllableState","prop","defaultProp","caller","control","setControl","bubbleInput","setBubbleInput","hasConsumerStoppedPropagationRef","isFormControl","closest","isIndeterminate","scope","isFunction","TRIGGER_NAME","CheckboxTrigger","forwardedRef","onKeyDown","checkboxProps","composedRefs","useComposedRefs","initialCheckedStateRef","reset","current","addEventListener","removeEventListener","Primitive","button","getState","composeEventHandlers","event","preventDefault","prevChecked","isPropagationStopped","CheckboxBubbleInput","INDICATOR_NAME","CheckboxIndicator","forceMount","indicatorProps","Presence","present","style","pointerEvents","BUBBLE_INPUT_NAME","usePrevious","controlSize","useSize","descriptor","getOwnPropertyDescriptor","HTMLInputElement","prototype","bubbles","Event","indeterminate","call","dispatchEvent","defaultCheckedRef","tabIndex","position","opacity","margin","transform","onMouseDown","defaultPrevented","detail","Root"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4901],{6563:function(e,t,s){Promise.resolve().then(s.bind(s,62081))},62081:function(e,t,s){"use strict";s.r(t),s.d(t,{default:function(){return j},dynamic:function(){return v}});var a=s(57437),n=s(2265),r=s(13832),l=s(62869),i=s(95186),c=s(99397),d=s(73247),o=s(92451),u=s(10407),m=s(12194),x=s(76367),h=s(35283),f=s(84190);function p(e){var t;let{sortBy:s,onSortChange:n}=e,r=[{value:"updatedAt",label:"Recently Updated"},{value:"createdAt",label:"Recently Created"},{value:"favorite_count",label:"Most Favorited"},{value:"usage_count",label:"Most Used"},{value:"name",label:"Alphabetical"}];return(0,a.jsxs)(f.h_,{children:[(0,a.jsx)(f.$F,{asChild:!0,children:(0,a.jsxs)(l.z,{variant:"secondary",children:["Sort:"," ",(null===(t=r.find(e=>e.value===s))||void 0===t?void 0:t.label)||"Recently Updated"]})}),(0,a.jsxs)(f.AW,{align:"end",className:"w-56",children:[(0,a.jsx)(f.Ju,{children:"Sort By"}),(0,a.jsx)(f.VD,{}),(0,a.jsx)(f._x,{value:s,onValueChange:n,children:r.map(e=>(0,a.jsx)(f.qB,{value:e.value,children:e.label},e.value))})]})]})}let v="force-dynamic";function j(){var e,t;let{user:s}=(0,n.useContext)(r.S),[f,v]=(0,n.useState)(""),[j,g]=(0,n.useState)(!1),[y,N]=(0,n.useState)("updatedAt"),[b,C]=(0,n.useState)(1),[w]=(0,n.useState)(12);(0,n.useEffect)(()=>{C(1)},[f,y]);let k=[];f&&k.push({name:{contains:f}});let{data:P,loading:S,error:_,refetch:Z}=(0,m.Sh)({page:b,limit:w,filters:k,sort:{field:y,direction:"DESC"}}),z=(null==P?void 0:null===(e=P.prompt_libraryPagination)||void 0===e?void 0:e.items)||[],M=null==P?void 0:null===(t=P.prompt_libraryPagination)||void 0===t?void 0:t.pageInfo;return(0,a.jsxs)("div",{className:"h-full flex-1 flex-col space-y-8 p-8",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between space-y-2",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h2",{className:"text-2xl font-bold tracking-tight",children:"Prompt Library"}),(0,a.jsx)("p",{className:"text-muted-foreground",children:"Create, organize, and share AI prompts with your team."})]}),(0,a.jsxs)(l.z,{onClick:()=>g(!0),children:[(0,a.jsx)(c.Z,{className:"mr-2 h-4 w-4"}),"Create Prompt"]})]}),(0,a.jsx)("div",{className:"flex flex-col gap-4",children:(0,a.jsxs)("div",{className:"flex items-center gap-4",children:[(0,a.jsxs)("div",{className:"relative flex-1 max-w-md",children:[(0,a.jsx)(d.Z,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),(0,a.jsx)(i.I,{placeholder:"Search prompts by name...",value:f,onChange:e=>v(e.target.value),className:"pl-10"})]}),(0,a.jsx)(p,{sortBy:y,onSortChange:N})]})}),S?(0,a.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,a.jsx)("div",{className:"text-muted-foreground",children:"Loading prompts..."})}):_?(0,a.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,a.jsx)("div",{className:"text-destructive",children:"Error loading prompts"})}):0===z.length?(0,a.jsx)("div",{className:"flex flex-col items-center justify-center py-12 border-2 border-dashed rounded-lg",children:(0,a.jsxs)("div",{className:"text-center space-y-2",children:[(0,a.jsx)("h3",{className:"text-lg font-medium",children:"No prompts found"}),(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:f?"Try adjusting your search":"Get started by creating your first prompt"}),!f&&(0,a.jsxs)(l.z,{onClick:()=>g(!0),variant:"outline",className:"mt-4",children:[(0,a.jsx)(c.Z,{className:"mr-2 h-4 w-4"}),"Create Prompt"]})]})}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"grid gap-4 md:grid-cols-2 lg:grid-cols-3",children:z.map(e=>(0,a.jsx)(x.$,{prompt:e,user:s,onUpdate:Z},e.id))}),M&&M.pageCount>1&&(0,a.jsxs)("div",{className:"flex items-center justify-between border-t pt-4",children:[(0,a.jsxs)("div",{className:"text-sm text-muted-foreground",children:["Page ",M.currentPage," of ",M.pageCount," (",M.itemCount," total items)"]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsxs)(l.z,{variant:"outline",size:"sm",onClick:()=>C(e=>Math.max(1,e-1)),disabled:!M.hasPreviousPage,children:[(0,a.jsx)(o.Z,{className:"h-4 w-4 mr-1"}),"Previous"]}),(0,a.jsxs)(l.z,{variant:"outline",size:"sm",onClick:()=>C(e=>e+1),disabled:!M.hasNextPage,children:["Next",(0,a.jsx)(u.Z,{className:"h-4 w-4 ml-1"})]})]})]})]}),(0,a.jsx)(h.D,{open:j,onOpenChange:g,onSuccess:Z,user:s})]})}},74928:function(e,t,s){"use strict";s.d(t,{Fw:function(){return l},wy:function(){return r},zF:function(){return n}});var a=s(88985);let n=a.fC,r=a.wy,l=a.Fw},92451:function(e,t,s){"use strict";s.d(t,{Z:function(){return a}});let a=(0,s(39763).Z)("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]])},78867:function(e,t,s){"use strict";s.d(t,{Z:function(){return a}});let a=(0,s(39763).Z)("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]])},99397:function(e,t,s){"use strict";s.d(t,{Z:function(){return a}});let a=(0,s(39763).Z)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},6394:function(e,t,s){"use strict";s.d(t,{f:function(){return i}});var a=s(2265),n=s(66840),r=s(57437),l=a.forwardRef((e,t)=>(0,r.jsx)(n.WV.label,{...e,ref:t,onMouseDown:t=>{var s;t.target.closest("button, input, select, textarea")||(null===(s=e.onMouseDown)||void 0===s||s.call(e,t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));l.displayName="Label";var i=l}},function(e){e.O(0,[9851,7629,7093,6148,847,1942,7648,7823,8068,5799,605,4567,1206,5338,3825,1785,5110,3171,7598,5282,6373,3832,8030,6367,2971,2117,1744],function(){return e(e.s=6563)}),_N_E=e.O()}]);
|
|
2
|
-
//# sourceMappingURL=page-d2f36ff149385efd.js.map
|