dexto 1.0.2 → 1.1.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/README.md +1 -1
- package/agents/agent-registry.json +53 -0
- package/agents/database-agent/README.md +35 -0
- package/agents/database-agent/data/example.db +0 -0
- package/agents/database-agent/database-agent-example.sql +98 -0
- package/agents/database-agent/database-agent.yml +116 -0
- package/agents/database-agent/setup-database.sh +64 -0
- package/agents/{agent.yml → default-agent.yml} +1 -1
- package/agents/image-editor-agent/Lenna.webp +0 -0
- package/agents/image-editor-agent/README.md +435 -0
- package/agents/image-editor-agent/image-editor-agent.yml +45 -0
- package/agents/music-agent/README.md +294 -0
- package/agents/music-agent/music-agent.yml +43 -0
- package/agents/product-name-researcher/README.md +98 -0
- package/agents/product-name-researcher/product-name-researcher.yml +161 -0
- package/agents/talk2pdf-agent/README.md +166 -0
- package/agents/talk2pdf-agent/talk2pdf-agent.yml +42 -0
- package/agents/triage-demo/README.md +337 -0
- package/agents/triage-demo/billing-agent.yml +76 -0
- package/agents/triage-demo/docs/billing-policies.md +246 -0
- package/agents/triage-demo/docs/company-overview.md +94 -0
- package/agents/triage-demo/docs/escalation-policies.md +301 -0
- package/agents/triage-demo/docs/product-features.md +253 -0
- package/agents/triage-demo/docs/technical-documentation.md +226 -0
- package/agents/triage-demo/escalation-agent.yml +82 -0
- package/agents/triage-demo/product-info-agent.yml +86 -0
- package/agents/triage-demo/technical-support-agent.yml +71 -0
- package/agents/triage-demo/test-scenarios.md +209 -0
- package/agents/triage-demo/triage-agent.yml +172 -0
- package/dist/src/app/chunk-CLDYRNV6.js +10139 -0
- package/dist/src/app/chunk-DYNVXGAH.js +137 -0
- package/dist/src/app/chunk-PW2PHCHR.js +83 -0
- package/dist/src/app/chunk-R4Q522DR.js +205 -0
- package/dist/src/app/chunk-UXCBS3TR.js +281 -0
- package/dist/src/app/chunk-X6LEX724.js +108 -0
- package/dist/src/app/chunk-Y33BS5SA.js +39 -0
- package/dist/src/app/{cli-confirmation-handler-EZF6AMUS.js → cli-confirmation-handler-GJHPLGOL.js} +4 -1
- package/dist/src/app/errors-5MNETGOV.js +8 -0
- package/dist/src/app/index.js +1604 -8978
- package/dist/src/app/loader-EFMKWNNQ.js +20 -0
- package/dist/src/app/path-7FT4SZMO.js +23 -0
- package/dist/src/app/{postgres-backend-7HVVW3RL.js → postgres-backend-U5MIIMUY.js} +12 -1
- package/dist/src/app/{redis-backend-2YBZSSSV.js → redis-backend-NGI67ILT.js} +38 -9
- package/dist/src/app/registry-RALMVM3P.js +14 -0
- package/dist/src/app/sqlite-backend-752UUBD4.js +245 -0
- package/dist/src/app/webui/.next/standalone/.next/BUILD_ID +1 -1
- package/dist/src/app/webui/.next/standalone/.next/app-build-manifest.json +20 -21
- package/dist/src/app/webui/.next/standalone/.next/app-path-routes-manifest.json +0 -1
- package/dist/src/app/webui/.next/standalone/.next/build-manifest.json +4 -4
- package/dist/src/app/webui/.next/standalone/.next/prerender-manifest.json +4 -82
- package/dist/src/app/webui/.next/standalone/.next/required-server-files.json +2 -3
- package/dist/src/app/webui/.next/standalone/.next/routes-manifest.json +0 -6
- package/dist/src/app/webui/.next/standalone/.next/server/app/_not-found/page.js +1 -1
- package/dist/src/app/webui/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/dist/src/app/webui/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/src/app/webui/.next/standalone/.next/server/app/page.js +7 -3
- package/dist/src/app/webui/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/dist/src/app/webui/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/src/app/webui/.next/standalone/.next/server/app/playground/page.js +8 -8
- package/dist/src/app/webui/.next/standalone/.next/server/app/playground/page.js.nft.json +1 -1
- package/dist/src/app/webui/.next/standalone/.next/server/app/playground/page_client-reference-manifest.js +1 -1
- package/dist/src/app/webui/.next/standalone/.next/server/app-paths-manifest.json +0 -1
- package/dist/src/app/webui/.next/standalone/.next/server/chunks/176.js +1 -0
- package/dist/src/app/webui/.next/standalone/.next/server/chunks/195.js +24 -0
- package/dist/src/app/webui/.next/standalone/.next/server/chunks/620.js +1 -0
- package/dist/src/app/webui/.next/standalone/.next/server/chunks/80.js +5 -0
- package/dist/src/app/webui/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
- package/dist/src/app/webui/.next/standalone/.next/server/pages/500.html +1 -1
- package/dist/src/app/webui/.next/standalone/.next/server/pages-manifest.json +1 -2
- package/dist/src/app/webui/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/dist/src/app/webui/.next/standalone/.next/server/webpack-runtime.js +1 -1
- package/dist/src/app/webui/.next/standalone/.next/static/chunks/190-b897ef36fde616bf.js +1 -0
- package/dist/src/app/webui/.next/standalone/.next/static/chunks/487-a77054bd2c64c79c.js +1 -0
- package/dist/src/app/webui/.next/standalone/.next/static/chunks/588-dbe47a44489742dd.js +1 -0
- package/dist/src/app/webui/.next/standalone/.next/static/chunks/62-35030b5cb176bd7b.js +1 -0
- package/dist/src/app/webui/.next/standalone/.next/static/chunks/app/layout-91c0cb9eb1ee327a.js +1 -0
- package/dist/src/app/webui/.next/standalone/.next/static/chunks/app/page-3279aaf14db87f45.js +1 -0
- package/dist/src/app/webui/.next/standalone/.next/static/chunks/app/playground/page-200aad53af9ca53f.js +1 -0
- package/dist/src/app/webui/.next/standalone/.next/static/css/af71306827be150e.css +3 -0
- package/dist/src/app/webui/.next/standalone/.next/static/tpCURR82LyyGfdALJ4Qvl/_buildManifest.js +1 -0
- package/dist/src/app/webui/.next/standalone/package.json +4 -3
- package/dist/src/app/webui/.next/standalone/public/favicon2.ico +0 -0
- package/dist/src/app/webui/.next/standalone/public/logo.svg +1 -0
- package/dist/src/app/webui/.next/standalone/public/logo_no_text.png +0 -0
- package/dist/src/app/webui/.next/standalone/server.js +1 -1
- package/dist/src/app/webui/.next/static/chunks/190-b897ef36fde616bf.js +1 -0
- package/dist/src/app/webui/.next/static/chunks/487-a77054bd2c64c79c.js +1 -0
- package/dist/src/app/webui/.next/static/chunks/588-dbe47a44489742dd.js +1 -0
- package/dist/src/app/webui/.next/static/chunks/62-35030b5cb176bd7b.js +1 -0
- package/dist/src/app/webui/.next/static/chunks/app/layout-91c0cb9eb1ee327a.js +1 -0
- package/dist/src/app/webui/.next/static/chunks/app/page-3279aaf14db87f45.js +1 -0
- package/dist/src/app/webui/.next/static/chunks/app/playground/page-200aad53af9ca53f.js +1 -0
- package/dist/src/app/webui/.next/static/css/af71306827be150e.css +3 -0
- package/dist/src/app/webui/.next/static/tpCURR82LyyGfdALJ4Qvl/_buildManifest.js +1 -0
- package/dist/src/app/webui/package.json +4 -3
- package/dist/src/app/webui/public/favicon2.ico +0 -0
- package/dist/src/app/webui/public/logo.svg +1 -0
- package/dist/src/app/webui/public/logo_no_text.png +0 -0
- package/dist/src/core/chunk-7A6NQKQ3.js +193 -0
- package/dist/src/core/chunk-CZIXQNMZ.js +12191 -0
- package/dist/src/core/index.cjs +10605 -8030
- package/dist/src/core/index.d.cts +4339 -3927
- package/dist/src/core/index.d.ts +4339 -3927
- package/dist/src/core/index.js +113 -8381
- package/dist/src/core/{postgres-backend-ERZ6DP76.js → postgres-backend-LOLKTD2T.js} +9 -2
- package/dist/src/core/{redis-backend-46O7Y44C.js → redis-backend-APZ576PJ.js} +35 -10
- package/dist/src/core/sqlite-backend-KQ75DPR7.js +245 -0
- package/package.json +18 -11
- package/dist/src/app/chunk-W7G44EAE.js +0 -463
- package/dist/src/app/sqlite-backend-VRXGIKHQ.js +0 -180
- package/dist/src/app/webui/.next/standalone/.next/server/app/_not-found.html +0 -1
- package/dist/src/app/webui/.next/standalone/.next/server/app/_not-found.meta +0 -8
- package/dist/src/app/webui/.next/standalone/.next/server/app/_not-found.rsc +0 -21
- package/dist/src/app/webui/.next/standalone/.next/server/app/favicon.ico/route.js +0 -1
- package/dist/src/app/webui/.next/standalone/.next/server/app/favicon.ico/route.js.nft.json +0 -1
- package/dist/src/app/webui/.next/standalone/.next/server/app/favicon.ico.body +0 -0
- package/dist/src/app/webui/.next/standalone/.next/server/app/favicon.ico.meta +0 -1
- package/dist/src/app/webui/.next/standalone/.next/server/app/index.html +0 -1
- package/dist/src/app/webui/.next/standalone/.next/server/app/index.meta +0 -7
- package/dist/src/app/webui/.next/standalone/.next/server/app/index.rsc +0 -22
- package/dist/src/app/webui/.next/standalone/.next/server/app/playground.html +0 -1
- package/dist/src/app/webui/.next/standalone/.next/server/app/playground.meta +0 -7
- package/dist/src/app/webui/.next/standalone/.next/server/app/playground.rsc +0 -25
- package/dist/src/app/webui/.next/standalone/.next/server/chunks/447.js +0 -20
- package/dist/src/app/webui/.next/standalone/.next/server/chunks/504.js +0 -1
- package/dist/src/app/webui/.next/standalone/.next/server/chunks/54.js +0 -5
- package/dist/src/app/webui/.next/standalone/.next/server/chunks/624.js +0 -1
- package/dist/src/app/webui/.next/standalone/.next/server/chunks/985.js +0 -5
- package/dist/src/app/webui/.next/standalone/.next/server/pages/404.html +0 -1
- package/dist/src/app/webui/.next/standalone/.next/static/L4341-2-iEIknMYuTWeoz/_buildManifest.js +0 -1
- package/dist/src/app/webui/.next/standalone/.next/static/chunks/125-9b34ec01f112cdb2.js +0 -1
- package/dist/src/app/webui/.next/standalone/.next/static/chunks/487-c6ea8b63ca68db1c.js +0 -1
- package/dist/src/app/webui/.next/standalone/.next/static/chunks/588-20dc7f3a8664c387.js +0 -1
- package/dist/src/app/webui/.next/standalone/.next/static/chunks/687-3e614f30982093f6.js +0 -1
- package/dist/src/app/webui/.next/standalone/.next/static/chunks/879-cf875984faa0b72f.js +0 -1
- package/dist/src/app/webui/.next/standalone/.next/static/chunks/app/layout-ed56660b7ecaf47b.js +0 -1
- package/dist/src/app/webui/.next/standalone/.next/static/chunks/app/page-b05580de36ce0e36.js +0 -1
- package/dist/src/app/webui/.next/standalone/.next/static/chunks/app/playground/page-ac5443cddbe824aa.js +0 -1
- package/dist/src/app/webui/.next/standalone/.next/static/css/d44f09bc2605dc76.css +0 -3
- package/dist/src/app/webui/.next/standalone/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js +0 -19
- package/dist/src/app/webui/.next/standalone/public/favicon.svg +0 -26
- package/dist/src/app/webui/.next/standalone/public/logo.png +0 -0
- package/dist/src/app/webui/.next/static/L4341-2-iEIknMYuTWeoz/_buildManifest.js +0 -1
- package/dist/src/app/webui/.next/static/chunks/125-9b34ec01f112cdb2.js +0 -1
- package/dist/src/app/webui/.next/static/chunks/487-c6ea8b63ca68db1c.js +0 -1
- package/dist/src/app/webui/.next/static/chunks/588-20dc7f3a8664c387.js +0 -1
- package/dist/src/app/webui/.next/static/chunks/687-3e614f30982093f6.js +0 -1
- package/dist/src/app/webui/.next/static/chunks/879-cf875984faa0b72f.js +0 -1
- package/dist/src/app/webui/.next/static/chunks/app/layout-ed56660b7ecaf47b.js +0 -1
- package/dist/src/app/webui/.next/static/chunks/app/page-b05580de36ce0e36.js +0 -1
- package/dist/src/app/webui/.next/static/chunks/app/playground/page-ac5443cddbe824aa.js +0 -1
- package/dist/src/app/webui/.next/static/css/d44f09bc2605dc76.css +0 -3
- package/dist/src/app/webui/public/favicon.svg +0 -26
- package/dist/src/app/webui/public/logo.png +0 -0
- package/dist/src/core/chunk-6VYPSHEV.js +0 -2153
- package/dist/src/core/chunk-BYHW25EA.js +0 -41
- package/dist/src/core/sqlite-backend-M2ZPSSIZ.js +0 -184
- /package/dist/src/app/webui/.next/standalone/.next/static/chunks/{4bd1b696-2df85d4b3b58aed5.js → 4bd1b696-c95fa02060335229.js} +0 -0
- /package/dist/src/app/webui/.next/standalone/.next/static/chunks/{684-058c08971e023037.js → 684-2e7175657246b549.js} +0 -0
- /package/dist/src/app/webui/.next/standalone/.next/static/chunks/app/_not-found/{page-7b137d85f9de4771.js → page-b63df5a8d3225455.js} +0 -0
- /package/dist/src/app/webui/.next/standalone/.next/static/{L4341-2-iEIknMYuTWeoz → tpCURR82LyyGfdALJ4Qvl}/_ssgManifest.js +0 -0
- /package/dist/src/app/webui/.next/static/chunks/{4bd1b696-2df85d4b3b58aed5.js → 4bd1b696-c95fa02060335229.js} +0 -0
- /package/dist/src/app/webui/.next/static/chunks/{684-058c08971e023037.js → 684-2e7175657246b549.js} +0 -0
- /package/dist/src/app/webui/.next/static/chunks/app/_not-found/{page-7b137d85f9de4771.js → page-b63df5a8d3225455.js} +0 -0
- /package/dist/src/app/webui/.next/static/{L4341-2-iEIknMYuTWeoz → tpCURR82LyyGfdALJ4Qvl}/_ssgManifest.js +0 -0
package/dist/src/app/webui/.next/standalone/.next/static/chunks/app/page-b05580de36ce0e36.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[974],{7432:(e,s,t)=>{"use strict";t.d(s,{default:()=>eL});var a=t(5155),r=t(2115),n=t(6487),l=t(3999),i=t(8188),o=t(1007),c=t(5657),d=t(8313),m=t(7863),u=t(3052),x=t(1243),h=t(646),p=t(1154),f=t(5517),g=t(9890);let v=e=>new Date(e).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});function j(e){return/^data:image\/(png|jpeg|jpg|gif|webp|svg\+xml);base64,[A-Za-z0-9+/]+={0,2}$/i.test(e)}function y(e){let{messages:s}=e,t=(0,r.useRef)(null),[n,y]=(0,r.useState)({}),b=(0,r.useRef)(null);return((0,r.useEffect)(()=>{var e;null==(e=t.current)||e.scrollIntoView({behavior:"smooth"}),b.current&&(b.current.scrollTop=b.current.scrollHeight)},[s]),s&&0!==s.length)?(0,a.jsxs)("div",{id:"message-list-container",className:"flex flex-col space-y-3 px-4 py-2",children:[s.map((e,t)=>{var r;let b=null!=(r=e.id)?r:"msg-".concat(t),N="user"===e.role,w="assistant"===e.role,k="system"===e.role,C=t===s.length-1,S=!!(e.toolName&&e.toolArgs),A=!!(e.toolName&&e.toolResult),E=S||A,T=E&&C||!!n[e.id],D=N?o.A:c.A,F=(0,l.cn)("flex items-end w-full",N?"justify-end":"justify-start",k&&"justify-center"),O=(0,l.cn)("tool"===e.role?"w-full text-muted-foreground/70 bg-secondary border border-muted/30 rounded-md text-sm":N?"p-3 rounded-xl shadow-sm max-w-[75%] bg-primary text-primary-foreground rounded-br-none text-sm":w?"p-3 rounded-xl shadow-sm max-w-[75%] bg-card text-card-foreground border border-border rounded-bl-none text-sm":k?"p-3 shadow-none w-full bg-transparent text-xs text-muted-foreground italic text-center border-none":""),I=v(e.createdAt);return(0,a.jsxs)("div",{className:F,children:[w&&(0,a.jsx)(D,{className:"h-7 w-7 mr-2 mb-1 text-muted-foreground self-start flex-shrink-0"}),"tool"===e.role&&(0,a.jsx)(d.A,{className:"h-7 w-7 p-1 mr-3 mt-1 rounded-full border border-border text-muted-foreground self-start flex-shrink-0"}),(0,a.jsxs)("div",{className:(0,l.cn)("flex flex-col",N?"items-end":"items-start",k&&"w-full items-center"),children:[(0,a.jsx)("div",{className:O,children:(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[e.toolName?(0,a.jsxs)("div",{className:"p-2 rounded border border-border bg-muted/30 hover:bg-muted/60 cursor-pointer w-full",onClick:()=>{E&&y(s=>({...s,[e.id]:!s[e.id]}))},children:[(0,a.jsxs)("div",{className:"flex items-center justify-between text-xs font-medium",children:[(0,a.jsxs)("span",{className:"flex items-center",children:[T?(0,a.jsx)(m.A,{className:"h-4 w-4 mr-2 text-primary"}):(0,a.jsx)(u.A,{className:"h-4 w-4 mr-2 text-primary"}),"Tool: ",e.toolName]}),e.toolResult?(0,i.KU)(e.toolResult)?(0,a.jsx)(x.A,{className:"mx-2 h-4 w-4 text-red-500"}):(0,a.jsx)(h.A,{className:"mx-2 h-4 w-4 text-green-500"}):(0,a.jsx)(p.A,{className:"mx-2 h-4 w-4 animate-spin text-muted-foreground"})]}),T&&(0,a.jsxs)("div",{className:"mt-2 space-y-2",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-xs font-medium",children:"Arguments:"}),(0,a.jsx)("pre",{className:"whitespace-pre-wrap overflow-auto bg-background/50 p-2 rounded text-xs text-muted-foreground",children:JSON.stringify(e.toolArgs,null,2)})]}),e.toolResult&&(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-xs font-medium",children:"Result:"}),(0,i.KU)(e.toolResult)?(0,a.jsx)("pre",{className:"whitespace-pre-wrap overflow-auto bg-red-100 text-red-700 p-2 rounded text-xs",children:"object"==typeof e.toolResult.error?JSON.stringify(e.toolResult.error,null,2):String(e.toolResult.error)}):(0,i.P2)(e.toolResult)?e.toolResult.content.map((e,s)=>{if((0,i.j0)(e)){let t=e.base64&&e.mimeType?"data:".concat(e.mimeType,";base64,").concat(e.base64):e.base64;return t&&t.startsWith("data:")&&!j(t)?null:(0,a.jsx)("img",{src:t,alt:"Tool result image",className:"my-1 max-h-48 w-auto rounded border border-border"},s)}return(0,i.PI)(e)?(0,a.jsx)("pre",{className:"whitespace-pre-wrap overflow-auto bg-background/50 p-2 rounded text-xs text-muted-foreground my-1",children:e.text},s):(0,i.EQ)(e)?(0,a.jsxs)("div",{className:"my-1 flex items-center gap-2 p-2 rounded border border-border bg-muted/50",children:[(0,a.jsx)(f.A,{className:"h-4 w-4 text-muted-foreground"}),(0,a.jsxs)("span",{className:"text-xs text-muted-foreground",children:[e.filename||"File attachment"," (",e.mimeType,")"]})]},s):(0,a.jsx)("pre",{className:"whitespace-pre-wrap overflow-auto bg-background/50 p-2 rounded text-xs text-muted-foreground my-1",children:"object"==typeof e?JSON.stringify(e,null,2):String(e)},s)}):(0,a.jsx)("pre",{className:"whitespace-pre-wrap overflow-auto bg-background/50 p-2 rounded text-xs text-muted-foreground",children:"string"==typeof e.toolResult&&e.toolResult.startsWith("data:image")?j(e.toolResult)?(0,a.jsx)("img",{src:e.toolResult,alt:"Tool result image",className:"my-1 max-h-48 w-auto rounded border border-border"}):"Invalid image data":"object"==typeof e.toolResult?JSON.stringify(e.toolResult,null,2):String(e.toolResult)})]})]})]}):(0,a.jsxs)(a.Fragment,{children:["string"==typeof e.content&&""!==e.content.trim()&&(0,a.jsx)("p",{className:"whitespace-pre-wrap",children:e.content}),e.content&&"object"==typeof e.content&&!Array.isArray(e.content)&&(0,a.jsx)("pre",{className:"whitespace-pre-wrap overflow-auto bg-background/50 p-2 rounded text-xs text-muted-foreground",children:JSON.stringify(e.content,null,2)}),Array.isArray(e.content)&&e.content.map((e,s)=>{let t="".concat(b,"-part-").concat(s);if("text"===e.type)return(0,a.jsx)("p",{className:"whitespace-pre-wrap",children:e.text},t);if("image"===e.type&&"base64"in e&&"mimeType"in e){let s="data:".concat(e.mimeType,";base64,").concat(e.base64);return j(s)?(0,a.jsx)("img",{src:s,alt:"attachment",className:"my-2 max-h-60 w-full rounded-lg border border-border object-contain"},t):null}if("file"===e.type&&"data"in e&&"mimeType"in e){if(!e.mimeType.startsWith("audio/"))return(0,a.jsxs)("div",{className:"my-2 flex items-center gap-2 p-3 rounded-lg border border-border bg-muted/50",children:[(0,a.jsx)(g.A,{className:"h-5 w-5 text-muted-foreground"}),(0,a.jsx)("span",{className:"text-sm font-medium",children:e.filename||"".concat(e.mimeType," file")}),(0,a.jsx)("span",{className:"text-xs text-muted-foreground",children:e.mimeType})]},t);{let s="data:".concat(e.mimeType,";base64,").concat(e.data);return(0,a.jsxs)("div",{className:"my-2 flex items-center gap-2 p-3 rounded-lg border border-border bg-muted/50",children:[(0,a.jsx)(f.A,{className:"h-5 w-5 text-muted-foreground"}),(0,a.jsx)("audio",{controls:!0,src:s,className:"flex-1 h-8"}),e.filename&&(0,a.jsx)("span",{className:"text-sm text-muted-foreground truncate max-w-[120px]",children:e.filename})]},t)}}return null}),k&&!e.content&&(0,a.jsx)("p",{className:"italic",children:"System message"})]}),e.imageData&&!Array.isArray(e.content)&&(()=>{let s="data:".concat(e.imageData.mimeType,";base64,").concat(e.imageData.base64);return j(s)?(0,a.jsx)("img",{src:s,alt:"attachment",className:"mt-2 max-h-60 w-full rounded-lg border border-border object-contain"}):null})(),e.fileData&&!Array.isArray(e.content)&&(0,a.jsx)("div",{className:"mt-2",children:e.fileData.mimeType.startsWith("audio/")?(0,a.jsxs)("div",{className:"flex items-center gap-2 p-3 rounded-lg border border-border bg-muted/50",children:[(0,a.jsx)(f.A,{className:"h-5 w-5 text-muted-foreground"}),(0,a.jsx)("audio",{controls:!0,src:"data:".concat(e.fileData.mimeType,";base64,").concat(e.fileData.base64),className:"flex-1 h-8"}),e.fileData.filename&&(0,a.jsx)("span",{className:"text-sm text-muted-foreground truncate max-w-[120px]",children:e.fileData.filename})]}):(0,a.jsxs)("div",{className:"flex items-center gap-2 p-3 rounded-lg border border-border bg-muted/50",children:[(0,a.jsx)(g.A,{className:"h-5 w-5 text-muted-foreground"}),(0,a.jsx)("span",{className:"text-sm font-medium",children:e.fileData.filename||"".concat(e.fileData.mimeType," file")}),(0,a.jsx)("span",{className:"text-xs text-muted-foreground",children:e.fileData.mimeType})]})})]})}),!k&&!E&&(0,a.jsxs)("div",{className:"text-xs text-muted-foreground mt-1 px-1 flex items-center gap-2",children:[(0,a.jsx)("span",{children:I}),w&&e.tokenCount&&(0,a.jsxs)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full bg-muted/50 text-xs",children:[(0,a.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-green-500"}),e.tokenCount," tokens"]}),w&&e.model&&(0,a.jsx)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full bg-muted/30 text-xs",children:e.model})]})]}),N&&(0,a.jsx)(D,{className:"h-7 w-7 ml-2 mb-1 text-muted-foreground self-start flex-shrink-0"})]},b)}),(0,a.jsx)("div",{ref:t,className:"h-px"},"end-anchor")]}):null}var b=t(9474),N=t(7168),w=t(9956);function k(e){let{...s}=e;return(0,a.jsx)(w.bL,{"data-slot":"popover",...s})}function C(e){let{className:s,align:t="center",sideOffset:r=4,...n}=e;return(0,a.jsx)(w.ZL,{children:(0,a.jsx)(w.UC,{"data-slot":"popover-content",align:t,sideOffset:r,className:(0,l.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",s),...n})})}let S=e=>{let{children:s,...t}=e;return(0,a.jsx)(k,{...t,children:s})},A=function(e){let{...s}=e;return(0,a.jsx)(w.l9,{"data-slot":"popover-trigger",...s})},E=r.forwardRef((e,s)=>{let{className:t,align:r="end",sideOffset:n=4,...i}=e;return(0,a.jsx)(C,{ref:s,align:r,sideOffset:n,className:(0,l.cn)("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md","data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",t),...i})});E.displayName="DropdownMenuContent";let T=r.forwardRef((e,s)=>{let{className:t,disabled:r,...n}=e;return(0,a.jsx)("div",{ref:s,className:(0,l.cn)("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",r&&"pointer-events-none opacity-50",!r&&"hover:bg-accent hover:text-accent-foreground cursor-pointer",t),...n})});T.displayName="DropdownMenuItem";let D=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("div",{ref:s,className:(0,l.cn)("-mx-1 my-1 h-px bg-muted",t),...r})});D.displayName="DropdownMenuSeparator";var F=t(5339),O=t(4416),I=t(492),L=t(2431),R=t(9588),P=t(1539),z=t(6474),q=t(429),U=t(9026),$=t(6440);let J=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)($.bL,{className:(0,l.cn)("peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",t),...r,ref:s,children:(0,a.jsx)($.zi,{className:(0,l.cn)("pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0")})})});J.displayName=$.bL.displayName;var K=t(6811);function M(e){let{delayDuration:s=0,...t}=e;return(0,a.jsx)(K.Kq,{"data-slot":"tooltip-provider",delayDuration:s,...t})}function B(e){let{...s}=e;return(0,a.jsx)(M,{children:(0,a.jsx)(K.bL,{"data-slot":"tooltip",...s})})}function G(e){let{...s}=e;return(0,a.jsx)(K.l9,{"data-slot":"tooltip-trigger",...s})}function _(e){let{className:s,sideOffset:t=0,children:r,...n}=e;return(0,a.jsx)(K.ZL,{children:(0,a.jsxs)(K.UC,{"data-slot":"tooltip-content",sideOffset:t,className:(0,l.cn)("bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",s),...n,children:[r,(0,a.jsx)(K.i3,{className:"bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]"})]})})}function H(e){let{onSend:s,isSending:t}=e,[l,i]=(0,r.useState)(""),o=(0,r.useRef)(null),[d,m]=(0,r.useState)(null),[u,x]=(0,r.useState)(null),h=(0,r.useRef)(null),v=(0,r.useRef)(null),j=(0,r.useRef)(null),[y,w]=(0,r.useState)(!1),k=(0,r.useRef)(null),{currentSessionId:C,isStreaming:$,setStreaming:K}=(0,n.v)(),[H,W]=(0,r.useState)("Loading..."),[V,Y]=(0,r.useState)(!1),[Q,Z]=(0,r.useState)(null),[X,ee]=(0,r.useState)(null),es=[{name:"Claude 4 Sonnet",provider:"anthropic",model:"claude-4-sonnet-20250514"},{name:"GPT-4o",provider:"openai",model:"gpt-4o"},{name:"GPT-4.1 Mini",provider:"openai",model:"gpt-4.1-mini"},{name:"Gemini 2.5 Pro",provider:"google",model:"gemini-2.5-pro"}],et=e=>{ee(e),setTimeout(()=>ee(null),5e3)};(0,r.useEffect)(()=>{(async()=>{try{let e=await fetch(C?"/api/llm/current?sessionId=".concat(C):"/api/llm/current");if(e.ok){let s=await e.json(),t=es.find(e=>e.model===s.config.model);t?W(t.name):W("".concat(s.config.provider,"/").concat(s.config.model))}}catch(e){console.error("Failed to fetch current model:",e),W("Unknown")}})()},[C]);let ea=(0,r.useCallback)(()=>{if(o.current){o.current.style.height="auto";let e=o.current.scrollHeight;o.current.style.height="".concat(Math.min(e,120),"px"),o.current.style.overflowY=e>120?"auto":"hidden"}},[]);(0,r.useEffect)(()=>{ea()},[l,ea]);let er=()=>{let e=l.trim();(e||d||u)&&(s(e,null!=d?d:void 0,null!=u?u:void 0),i(""),m(null),x(null),o.current&&(o.current.style.height="auto",o.current.style.overflowY="hidden"))},en=async()=>{try{let e=await navigator.mediaDevices.getUserMedia({audio:!0}),s=new MediaRecorder(e);k.current=s;let t=[];s.ondataavailable=e=>{e.data.size>0&&t.push(e.data)},s.onstop=()=>{let a=new Blob(t,{type:s.mimeType}),r=new FileReader;r.onloadend=()=>{try{let e=r.result,t=e.indexOf(","),a=e.substring(t+1),n=s.mimeType||"audio/webm",l={"audio/mp3":"mp3","audio/mpeg":"mp3","audio/wav":"wav","audio/x-wav":"wav","audio/wave":"wav","audio/webm":"webm","audio/ogg":"ogg","audio/m4a":"m4a","audio/aac":"aac"}[n]||n.split("/")[1]||"webm";x({base64:a,mimeType:n,filename:"recording.".concat(l)})}catch(e){et("Failed to process audio recording. Please try again."),x(null)}},r.readAsDataURL(a),e.getTracks().forEach(e=>e.stop())},s.start(),w(!0)}catch(e){et("Failed to start audio recording. Please check microphone permissions.")}},el=async e=>{Y(!0),Z(null);try{let s={provider:e.provider,model:e.model,router:"vercel"};C&&(s.sessionId=C);let t=await fetch("/api/llm/switch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)}),a=await t.json();if(a.ok)W(e.name),Z(null);else{let e="Failed to switch model";if(a.issues&&a.issues.length>0){let s=a.issues.filter(e=>"error"===e.severity);s.length>0&&(e=s[0].message)}else a.error&&(e=a.error);console.error("Failed to switch model:",e),Z(e),setTimeout(()=>Z(null),1e4)}}catch(e){console.error("Network error while switching model:",e),Z("Network error while switching model"),setTimeout(()=>Z(null),1e4)}finally{Y(!1)}};(0,r.useEffect)(()=>{l&&Q&&Z(null),l&&X&&ee(null)},[l,Q]);let ei=l.length>0||!!d||!!u;return(0,a.jsxs)("div",{id:"input-area",className:"flex flex-col gap-2 w-full",children:[Q&&(0,a.jsxs)(U.Fc,{variant:"destructive",className:"mb-2",children:[(0,a.jsx)(F.A,{className:"h-4 w-4"}),(0,a.jsxs)(U.TN,{className:"flex items-center justify-between",children:[(0,a.jsx)("span",{children:Q}),(0,a.jsx)(N.$,{variant:"ghost",size:"sm",onClick:()=>Z(null),className:"h-auto p-1 ml-2",children:(0,a.jsx)(O.A,{className:"h-3 w-3"})})]})]}),X&&(0,a.jsxs)(U.Fc,{variant:"destructive",className:"mb-2",children:[(0,a.jsx)(F.A,{className:"h-4 w-4"}),(0,a.jsxs)(U.TN,{className:"flex items-center justify-between",children:[(0,a.jsx)("span",{children:X}),(0,a.jsx)(N.$,{variant:"ghost",size:"sm",onClick:()=>ee(null),className:"h-auto p-1 ml-2",children:(0,a.jsx)(O.A,{className:"h-3 w-3"})})]})]}),(0,a.jsxs)("div",{className:"flex items-end gap-2 w-full",children:[(0,a.jsxs)(S,{children:[(0,a.jsx)(A,{asChild:!0,children:(0,a.jsx)(N.$,{variant:"outline",size:"icon",className:"flex-shrink-0 text-muted-foreground hover:text-primary rounded-full p-2","aria-label":"Attach File",children:(0,a.jsx)(I.A,{className:"h-8 w-8"})})}),(0,a.jsxs)(E,{side:"top",align:"start",children:[(0,a.jsxs)(T,{onClick:()=>{var e;return null==(e=h.current)?void 0:e.click()},children:[(0,a.jsx)(I.A,{className:"h-4 w-4 mr-2"})," Image"]}),(0,a.jsxs)(T,{onClick:()=>{var e;return null==(e=v.current)?void 0:e.click()},children:[(0,a.jsx)(g.A,{className:"h-4 w-4 mr-2"})," PDF"]}),(0,a.jsxs)(T,{onClick:()=>{var e;return null==(e=j.current)?void 0:e.click()},children:[(0,a.jsx)(f.A,{className:"h-4 w-4 mr-2"})," Audio file"]})]})]}),(0,a.jsx)(N.$,{variant:"outline",size:"icon",onClick:y?()=>{var e;null==(e=k.current)||e.stop(),w(!1)}:en,className:"flex-shrink-0 text-muted-foreground hover:text-primary rounded-full p-2","aria-label":y?"Stop recording":"Record audio",children:y?(0,a.jsx)(L.A,{className:"h-8 w-8 text-red-500"}):(0,a.jsx)(R.A,{className:"h-8 w-8"})}),(0,a.jsx)("input",{ref:h,type:"file",id:"image-upload",accept:"image/*",className:"hidden",onChange:e=>{var s;let t=null==(s=e.target.files)?void 0:s[0];if(!t)return;if(t.size>0x4000000){et("Image file too large. Maximum size is 64MB."),e.target.value="";return}if(!t.type.startsWith("image/")){et("Please select a valid image file."),e.target.value="";return}let a=new FileReader;a.onloadend=()=>{try{let e=a.result,s=e.indexOf(",");if(-1===s)throw Error("Invalid Data URL format");let r=e.substring(0,s),n=e.substring(s+1),l=r.match(/data:(.*);base64/),i=l?l[1]:t.type;if(!i)throw Error("Could not determine MIME type");m({base64:n,mimeType:i}),ee(null)}catch(e){et("Failed to process image file. Please try again."),m(null)}},a.onerror=e=>{et("Failed to read image file. Please try again."),m(null)},a.readAsDataURL(t),e.target.value=""}}),(0,a.jsx)("input",{ref:v,type:"file",id:"pdf-upload",accept:"application/pdf",className:"hidden",onChange:e=>{var s;let t=null==(s=e.target.files)?void 0:s[0];if(!t)return;if(t.size>0x4000000){et("PDF file too large. Maximum size is 64MB."),e.target.value="";return}if("application/pdf"!==t.type){et("Please select a valid PDF file."),e.target.value="";return}let a=new FileReader;a.onloadend=()=>{try{let e=a.result,s=e.indexOf(","),r=e.substring(s+1);x({base64:r,mimeType:"application/pdf",filename:t.name}),ee(null)}catch(e){et("Failed to process PDF file. Please try again."),x(null)}},a.onerror=e=>{et("Failed to read PDF file. Please try again."),x(null)},a.readAsDataURL(t),e.target.value=""}}),(0,a.jsx)("input",{ref:j,type:"file",id:"audio-upload",accept:"audio/*",className:"hidden",onChange:e=>{var s;let t=null==(s=e.target.files)?void 0:s[0];if(!t)return;if(t.size>0x4000000){et("Audio file too large. Maximum size is 64MB."),e.target.value="";return}if(!t.type.startsWith("audio/")){et("Please select a valid audio file."),e.target.value="";return}let a=new FileReader;a.onloadend=()=>{try{let e=a.result,s=e.indexOf(","),r=e.substring(s+1);x({base64:r,mimeType:t.type,filename:t.name}),ee(null)}catch(e){et("Failed to process audio file. Please try again."),x(null)}},a.onerror=e=>{et("Failed to read audio file. Please try again."),x(null)},a.readAsDataURL(t),e.target.value=""}}),(0,a.jsxs)("div",{className:"flex-1 flex flex-col w-full",children:[d&&(0,a.jsxs)("div",{className:"relative mb-1.5 w-fit border border-border rounded-lg p-1 bg-muted/50 group",children:[(0,a.jsx)("img",{src:"data:".concat(d.mimeType,";base64,").concat(d.base64),alt:"preview",className:"h-20 w-auto rounded-md"}),(0,a.jsx)(N.$,{variant:"destructive",size:"icon",onClick:()=>m(null),className:"absolute -top-2 -right-2 h-5 w-5 rounded-full bg-destructive text-destructive-foreground opacity-0 group-hover:opacity-100 transition-opacity duration-150 shadow-md","aria-label":"Remove image",children:(0,a.jsx)(O.A,{className:"h-3 w-3"})})]}),u&&(0,a.jsxs)("div",{className:"relative mb-1.5 w-fit border border-border rounded-lg p-2 bg-muted/50 group flex items-center gap-2",children:[u.mimeType.startsWith("audio")?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(f.A,{className:"h-6 w-6"}),(0,a.jsx)("audio",{controls:!0,src:"data:".concat(u.mimeType,";base64,").concat(u.base64),className:"h-10"})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(g.A,{className:"h-6 w-6"}),(0,a.jsx)("span",{className:"text-sm font-medium max-w-[120px] truncate",children:u.filename||"attachment"})]}),(0,a.jsx)(N.$,{variant:"destructive",size:"icon",onClick:()=>x(null),className:"absolute -top-2 -right-2 h-5 w-5 rounded-full bg-destructive text-destructive-foreground opacity-0 group-hover:opacity-100 transition-opacity duration-150 shadow-md","aria-label":"Remove attachment",children:(0,a.jsx)(O.A,{className:"h-3 w-3"})})]}),(0,a.jsxs)("div",{className:"relative",children:[(0,a.jsx)(b.T,{ref:o,value:l,onChange:e=>i(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),er())},placeholder:"Ask Dexto anything...",rows:1,className:"resize-none min-h-[42px] w-full border-input bg-transparent focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-0 rounded-lg p-2.5 pr-32 text-sm"}),(0,a.jsxs)("div",{className:"absolute bottom-1.5 right-2 flex items-center gap-2",children:[(0,a.jsx)(M,{children:(0,a.jsxs)(B,{children:[(0,a.jsx)(G,{asChild:!0,children:(0,a.jsxs)("div",{className:"flex items-center gap-1.5 cursor-pointer",children:[(0,a.jsx)(P.A,{className:"h-3 w-3 ".concat($?"text-blue-500":"text-muted-foreground")}),(0,a.jsx)(J,{checked:$,onCheckedChange:K,className:"scale-75","aria-label":"Toggle streaming"})]})}),(0,a.jsxs)(_,{side:"top",children:[(0,a.jsx)("p",{children:$?"Streaming enabled":"Streaming disabled"}),(0,a.jsx)("p",{className:"text-xs opacity-75",children:$?"Responses will stream in real-time":"Responses will arrive all at once"})]})]})}),(0,a.jsxs)(S,{children:[(0,a.jsx)(A,{asChild:!0,children:(0,a.jsxs)(N.$,{variant:"ghost",size:"sm",className:"h-6 px-2 text-xs text-muted-foreground hover:text-foreground hover:bg-muted/50",disabled:V,children:[(0,a.jsx)(c.A,{className:"h-3 w-3 mr-1"}),(0,a.jsx)("span",{className:"hidden sm:inline",children:V?"...":H}),(0,a.jsx)(z.A,{className:"h-3 w-3 ml-1"})]})}),(0,a.jsxs)(E,{align:"end",children:[es.map(e=>(0,a.jsxs)(T,{onClick:()=>el(e),children:[(0,a.jsx)(c.A,{className:"h-4 w-4 mr-2"}),e.name]},e.model)),(0,a.jsx)(D,{}),(0,a.jsx)(T,{onClick:()=>{console.log("View all models clicked")},children:"View all models"})]})]})]})]})]}),(0,a.jsx)(N.$,{type:"submit",size:"icon",onClick:er,disabled:!l.trim()&&!d&&!u,className:"flex-shrink-0 bg-primary text-primary-foreground hover:bg-primary/90 rounded-full p-2 disabled:bg-muted disabled:text-muted-foreground disabled:opacity-70","aria-label":"Send message",children:(0,a.jsx)(q.A,{className:"h-5 w-5"})}),ei&&!t&&(0,a.jsx)(N.$,{variant:"ghost",size:"icon",onClick:()=>{i(""),m(null),x(null),o.current&&(o.current.style.height="auto",o.current.style.overflowY="hidden")},className:"flex-shrink-0 text-muted-foreground hover:text-destructive rounded-full p-2 ml-1","aria-label":"Clear input",children:(0,a.jsx)(O.A,{className:"h-5 w-5"})}),t&&(0,a.jsx)("div",{className:"flex-shrink-0 p-2 ml-1",children:(0,a.jsx)(p.A,{className:"h-5 w-5 animate-spin text-muted-foreground"})})]})]})}var W=t(8861);class V{static getInstance(){return V.instance||(V.instance=new V),V.instance}async initialize(){this.isInitialized||(this.registryEntries=this.getBuiltinEntries(),await this.loadCustomEntries(),this.isInitialized=!0)}async getEntries(e){var s;await this.initialize();let t=[...this.registryEntries];if((null==e?void 0:e.category)&&(t=t.filter(s=>s.category===e.category)),(null==e||null==(s=e.tags)?void 0:s.length)&&(t=t.filter(s=>e.tags.some(e=>s.tags.includes(e)))),null==e?void 0:e.search){let s=e.search.toLowerCase();t=t.filter(e=>e.name.toLowerCase().includes(s)||e.description.toLowerCase().includes(s)||e.tags.some(e=>e.toLowerCase().includes(s)))}return(null==e?void 0:e.installed)!==void 0&&(t=t.filter(s=>s.isInstalled===e.installed)),(null==e?void 0:e.official)!==void 0&&(t=t.filter(s=>s.isOfficial===e.official)),t.sort((e,s)=>e.isInstalled!==s.isInstalled?e.isInstalled?-1:1:e.isOfficial!==s.isOfficial?e.isOfficial?-1:1:e.popularity!==s.popularity?(s.popularity||0)-(e.popularity||0):e.name.localeCompare(s.name))}async addCustomEntry(e){let s={...e,id:"custom-".concat(Date.now(),"-").concat(Math.random().toString(36).substr(2,9)),isOfficial:!1,lastUpdated:new Date};return this.registryEntries.push(s),await this.saveCustomEntries(),s}async updateEntry(e,s){let t=this.registryEntries.findIndex(s=>s.id===e);return -1!==t&&(this.registryEntries[t]={...this.registryEntries[t],...s,lastUpdated:new Date},await this.saveCustomEntries(),!0)}async setInstalled(e,s){return this.updateEntry(e,{isInstalled:s})}async getServerConfig(e){return await this.initialize(),this.registryEntries.find(s=>s.id===e)||null}getBuiltinEntries(){return[{id:"filesystem",name:"File System",description:"Secure file operations with configurable access controls for reading and writing files",category:"productivity",icon:"\uD83D\uDCC1",config:{type:"stdio",command:"npx",args:["-y","@modelcontextprotocol/server-filesystem","/path/to/allowed/directory"],timeout:3e4},tags:["file","directory","filesystem","io"],isOfficial:!0,isInstalled:!1,popularity:95,lastUpdated:new Date,requirements:{platform:"all",node:">=18.0.0"},author:"Anthropic",version:"0.6.0",homepage:"https://github.com/modelcontextprotocol/servers"},{id:"github",name:"GitHub",description:"Repository management, file operations, search repositories, manage issues and pull requests",category:"development",icon:"\uD83D\uDC19",config:{type:"stdio",command:"npx",args:["-y","@modelcontextprotocol/server-github"],env:{GITHUB_PERSONAL_ACCESS_TOKEN:""},timeout:3e4},tags:["git","repository","version-control","issues","pr"],isOfficial:!0,isInstalled:!1,popularity:92,lastUpdated:new Date,requirements:{platform:"all",node:">=18.0.0"},author:"GitHub",version:"0.6.0",homepage:"https://github.com/modelcontextprotocol/servers"},{id:"brave-search",name:"Brave Search",description:"Web and local search using Brave's Search API for real-time information retrieval",category:"research",icon:"\uD83D\uDD0D",config:{type:"stdio",command:"npx",args:["-y","@modelcontextprotocol/server-brave-search"],env:{BRAVE_SEARCH_API_KEY:""},timeout:3e4},tags:["search","web","research","information"],isOfficial:!0,isInstalled:!1,popularity:88,lastUpdated:new Date,requirements:{platform:"all",node:">=18.0.0"},author:"Anthropic",version:"0.6.0",homepage:"https://github.com/modelcontextprotocol/servers"},{id:"sqlite",name:"SQLite",description:"Database interaction and business intelligence capabilities for SQLite databases",category:"data",icon:"\uD83D\uDDC4️",config:{type:"stdio",command:"npx",args:["-y","@modelcontextprotocol/server-sqlite","/path/to/database.db"],timeout:3e4},tags:["database","sql","sqlite","query"],isOfficial:!0,isInstalled:!1,popularity:85,lastUpdated:new Date,requirements:{platform:"all",node:">=18.0.0"},author:"Anthropic",version:"0.6.0",homepage:"https://github.com/modelcontextprotocol/servers"},{id:"puppeteer",name:"Puppeteer",description:"Browser automation and web scraping with Puppeteer for automated testing and data extraction",category:"research",icon:"\uD83C\uDFAD",config:{type:"stdio",command:"npx",args:["-y","@modelcontextprotocol/server-puppeteer"],timeout:3e4},tags:["browser","automation","scraping","web","testing"],isOfficial:!0,isInstalled:!1,popularity:80,lastUpdated:new Date,requirements:{platform:"all",node:">=18.0.0"},author:"Anthropic",version:"0.6.0",homepage:"https://github.com/modelcontextprotocol/servers"},{id:"postgresql",name:"PostgreSQL",description:"Read-only database access with schema inspection for PostgreSQL databases",category:"data",icon:"\uD83D\uDC18",config:{type:"stdio",command:"npx",args:["-y","@modelcontextprotocol/server-postgres","postgresql://localhost/mydb"],timeout:3e4},tags:["database","sql","postgresql","postgres","query"],isOfficial:!0,isInstalled:!1,popularity:83,lastUpdated:new Date,requirements:{platform:"all",node:">=18.0.0"},author:"Anthropic",version:"0.6.0",homepage:"https://github.com/modelcontextprotocol/servers"},{id:"slack",name:"Slack",description:"Channel management and messaging capabilities for Slack workspaces",category:"communication",icon:"\uD83D\uDCAC",config:{type:"stdio",command:"npx",args:["-y","@modelcontextprotocol/server-slack"],env:{SLACK_BOT_TOKEN:""},timeout:3e4},tags:["slack","messaging","team","communication","channels"],isOfficial:!0,isInstalled:!1,popularity:75,lastUpdated:new Date,requirements:{platform:"all",node:">=18.0.0"},author:"Anthropic",version:"0.6.0",homepage:"https://github.com/modelcontextprotocol/servers"},{id:"fetch",name:"Fetch",description:"Web content fetching and conversion for efficient LLM usage",category:"research",icon:"\uD83C\uDF10",config:{type:"stdio",command:"npx",args:["-y","@modelcontextprotocol/server-fetch"],timeout:3e4},tags:["web","fetch","content","http","download"],isOfficial:!0,isInstalled:!1,popularity:78,lastUpdated:new Date,requirements:{platform:"all",node:">=18.0.0"},author:"Anthropic",version:"0.6.0",homepage:"https://github.com/modelcontextprotocol/servers"},{id:"http-example",name:"HTTP MCP Server",description:"Example HTTP-based MCP server for API integrations",category:"development",icon:"\uD83C\uDF10",config:{type:"http",baseUrl:"http://localhost:8080",headers:{Authorization:"Bearer your-api-key","Content-Type":"application/json"},timeout:3e4},tags:["http","api","integration","web"],isOfficial:!1,isInstalled:!1,popularity:70,lastUpdated:new Date,requirements:{platform:"all"},author:"Community",version:"1.0.0",homepage:"https://github.com/modelcontextprotocol/servers"},{id:"memory",name:"Memory",description:"Knowledge graph-based persistent memory system for storing and retrieving information",category:"productivity",icon:"\uD83E\uDDE0",config:{type:"stdio",command:"npx",args:["-y","@modelcontextprotocol/server-memory"],timeout:3e4},tags:["memory","knowledge","graph","persistence","storage"],isOfficial:!0,isInstalled:!1,popularity:87,lastUpdated:new Date,requirements:{platform:"all",node:">=18.0.0"},author:"Anthropic",version:"0.6.0",homepage:"https://github.com/modelcontextprotocol/servers"},{id:"google-drive",name:"Google Drive",description:"File access and search capabilities for Google Drive integration",category:"productivity",icon:"\uD83D\uDCCB",config:{type:"stdio",command:"npx",args:["-y","@modelcontextprotocol/server-gdrive"],env:{GOOGLE_APPLICATION_CREDENTIALS:""},timeout:3e4},tags:["google","drive","files","cloud","storage"],isOfficial:!0,isInstalled:!1,popularity:82,lastUpdated:new Date,requirements:{platform:"all",node:">=18.0.0"},author:"Anthropic",version:"0.6.0",homepage:"https://github.com/modelcontextprotocol/servers"},{id:"git",name:"Git",description:"Tools to read, search, and manipulate Git repositories",category:"development",icon:"\uD83C\uDF3F",config:{type:"stdio",command:"uvx",args:["mcp-server-git","--repository","/path/to/git/repo"],timeout:3e4},tags:["git","version-control","repository","commits","diff"],isOfficial:!0,isInstalled:!1,popularity:90,lastUpdated:new Date,requirements:{platform:"all",python:">=3.8"},author:"Anthropic",version:"0.6.0",homepage:"https://github.com/modelcontextprotocol/servers"}]}async saveCustomEntries(){let e=this.registryEntries.filter(e=>!e.isOfficial);localStorage.setItem("mcp-custom-servers",JSON.stringify(e))}async loadCustomEntries(){{let e=localStorage.getItem("mcp-custom-servers");if(e)try{let s=JSON.parse(e);this.registryEntries.push(...s)}catch(e){console.warn("Failed to load custom server entries:",e)}}}constructor(){this.registryEntries=[],this.isInitialized=!1}}let Y=V.getInstance();var Q=t(9840),Z=t(9852),X=t(2714),ee=t(5784),es=t(4616),et=t(4229),ea=t(7617);function er(e){let{isOpen:s,onClose:t,onAddServer:n}=e,[l,i]=(0,r.useState)({name:"",description:"",category:"custom",icon:"",version:"",author:"",homepage:"",config:{type:"stdio",command:"",args:[],url:"",env:{},headers:{},timeout:3e4},tags:[],isInstalled:!1,requirements:{platform:"all",node:"",python:"",dependencies:[]}}),[o,c]=(0,r.useState)(""),[d,m]=(0,r.useState)(""),[u,x]=(0,r.useState)(""),[h,p]=(0,r.useState)([]),[f,g]=(0,r.useState)(""),[v,j]=(0,r.useState)(null),[y,w]=(0,r.useState)(!1),k=async e=>{e.preventDefault(),j(null),w(!0);try{let e=o.split(",").map(e=>e.trim()).filter(Boolean),s=d.split(",").map(e=>e.trim()).filter(Boolean),a=f.split(",").map(e=>e.trim()).filter(Boolean),r={};if(u.trim())for(let e of u.split("\n")){let s=e.trim();if(!s)continue;let t=s.indexOf("=");if(t>0){let e=s.substring(0,t).trim(),a=s.substring(t+1).trim();e&&(r[e]=a)}}let v={};if(h.forEach(e=>{e.key.trim()&&e.value.trim()&&(v[e.key.trim()]=e.value.trim())}),!l.name.trim())throw Error("Server name is required");if(!l.description.trim())throw Error("Description is required");if("stdio"===l.config.type&&!l.config.command.trim())throw Error("Command is required for stdio servers");if("sse"===l.config.type&&!l.config.url.trim())throw Error("URL is required for SSE servers");if("http"===l.config.type&&!l.config.url.trim())throw Error("URL is required for HTTP servers");let j={...l,config:{...l.config,args:e,env:r,headers:v},tags:s,requirements:{...l.requirements,dependencies:a}};await n(j),t(),i({name:"",description:"",category:"custom",icon:"",version:"",author:"",homepage:"",config:{type:"stdio",command:"",args:[],url:"",env:{},headers:{},timeout:3e4},tags:[],isInstalled:!1,requirements:{platform:"all",node:"",python:"",dependencies:[]}}),c(""),m(""),x(""),p([]),g("")}catch(e){j(e.message||"Failed to add custom server")}finally{w(!1)}},C=e=>{let{name:s,value:t}=e.target;i(e=>({...e,config:{...e.config,[s]:t}}))};return(0,a.jsx)(Q.lG,{open:s,onOpenChange:t,children:(0,a.jsxs)(Q.Cf,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[(0,a.jsxs)(Q.c7,{children:[(0,a.jsxs)(Q.L3,{className:"flex items-center gap-2",children:[(0,a.jsx)(es.A,{className:"h-5 w-5"}),"Add Custom Server to Registry"]}),(0,a.jsx)(Q.rr,{children:"Add your own custom MCP server configuration to the registry for easy reuse."})]}),(0,a.jsxs)("form",{onSubmit:k,className:"space-y-4",children:[v&&(0,a.jsx)(U.Fc,{variant:"destructive",children:(0,a.jsx)(U.TN,{children:v})}),(0,a.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)(X.J,{htmlFor:"name",children:"Server Name *"}),(0,a.jsx)(Z.p,{id:"name",value:l.name,onChange:e=>i(s=>({...s,name:e.target.value})),placeholder:"My Custom Server",required:!0})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)(X.J,{htmlFor:"category",children:"Category"}),(0,a.jsxs)(ee.l6,{value:l.category,onValueChange:e=>i(s=>({...s,category:e})),children:[(0,a.jsx)(ee.bq,{id:"category",children:(0,a.jsx)(ee.yv,{})}),(0,a.jsx)(ee.gC,{children:[{value:"productivity",label:"Productivity"},{value:"development",label:"Development"},{value:"research",label:"Research"},{value:"creative",label:"Creative"},{value:"data",label:"Data"},{value:"communication",label:"Communication"},{value:"custom",label:"Custom"}].map(e=>(0,a.jsx)(ee.eb,{value:e.value,children:e.label},e.value))})]})]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)(X.J,{htmlFor:"description",children:"Description *"}),(0,a.jsx)(b.T,{id:"description",value:l.description,onChange:e=>i(s=>({...s,description:e.target.value})),placeholder:"Describe what this server does...",required:!0})]}),(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsx)("h3",{className:"text-sm font-medium",children:"Server Configuration"}),(0,a.jsxs)("div",{children:[(0,a.jsx)(X.J,{htmlFor:"serverType",children:"Server Type"}),(0,a.jsxs)(ee.l6,{value:l.config.type,onValueChange:e=>i(s=>({...s,config:{...s.config,type:e}})),children:[(0,a.jsx)(ee.bq,{id:"serverType",children:(0,a.jsx)(ee.yv,{})}),(0,a.jsxs)(ee.gC,{children:[(0,a.jsx)(ee.eb,{value:"stdio",children:"stdio"}),(0,a.jsx)(ee.eb,{value:"sse",children:"sse"}),(0,a.jsx)(ee.eb,{value:"http",children:"http"})]})]})]}),"stdio"===l.config.type?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{children:[(0,a.jsx)(X.J,{htmlFor:"command",children:"Command *"}),(0,a.jsx)(Z.p,{id:"command",value:l.config.command,onChange:e=>i(s=>({...s,config:{...s.config,command:e.target.value}})),placeholder:"npx or python",required:!0})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)(X.J,{htmlFor:"args",children:"Arguments"}),(0,a.jsx)(Z.p,{id:"args",value:o,onChange:e=>c(e.target.value),placeholder:"Comma-separated: -m,script.py,--port,8080"})]})]}):"sse"===l.config.type?(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(X.J,{htmlFor:"url",children:"URL *"}),(0,a.jsx)(Z.p,{id:"url",name:"url",value:l.config.url,onChange:C,placeholder:"http://localhost:8080/sse",required:!0})]}):(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(X.J,{htmlFor:"url",children:"URL *"}),(0,a.jsx)(Z.p,{id:"url",name:"url",value:l.config.url,onChange:C,placeholder:"https://example.com",required:!0})]}),"stdio"===l.config.type&&(0,a.jsxs)("div",{children:[(0,a.jsx)(X.J,{htmlFor:"env",children:"Environment Variables"}),(0,a.jsx)(b.T,{id:"env",value:u,onChange:e=>x(e.target.value),placeholder:"KEY1=value1\nKEY2=value2",rows:3})]}),("sse"===l.config.type||"http"===l.config.type)&&(0,a.jsx)("div",{className:"space-y-4",children:(0,a.jsx)(ea.w,{label:"Headers",pairs:h,onChange:p,placeholder:{key:"Authorization",value:"Bearer your-token"},keyLabel:"Header",valueLabel:"Value"})})]}),(0,a.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)(X.J,{htmlFor:"tags",children:"Tags"}),(0,a.jsx)(Z.p,{id:"tags",value:d,onChange:e=>m(e.target.value),placeholder:"Comma-separated: file, database, api"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)(X.J,{htmlFor:"icon",children:"Icon (Emoji)"}),(0,a.jsx)(Z.p,{id:"icon",value:l.icon,onChange:e=>i(s=>({...s,icon:e.target.value})),placeholder:"⚡",maxLength:2})]})]}),(0,a.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)(X.J,{htmlFor:"version",children:"Version"}),(0,a.jsx)(Z.p,{id:"version",value:l.version,onChange:e=>i(s=>({...s,version:e.target.value})),placeholder:"1.0.0"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)(X.J,{htmlFor:"author",children:"Author"}),(0,a.jsx)(Z.p,{id:"author",value:l.author,onChange:e=>i(s=>({...s,author:e.target.value})),placeholder:"Your Name"})]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)(X.J,{htmlFor:"homepage",children:"Homepage URL"}),(0,a.jsx)(Z.p,{id:"homepage",value:l.homepage,onChange:e=>i(s=>({...s,homepage:e.target.value})),placeholder:"https://github.com/youruser/yourserver"})]}),(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsx)("h3",{className:"text-sm font-medium",children:"Requirements"}),(0,a.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)(X.J,{htmlFor:"platform",children:"Platform"}),(0,a.jsxs)(ee.l6,{value:l.requirements.platform,onValueChange:e=>i(s=>({...s,requirements:{...s.requirements,platform:e}})),children:[(0,a.jsx)(ee.bq,{id:"platform",children:(0,a.jsx)(ee.yv,{})}),(0,a.jsx)(ee.gC,{children:[{value:"all",label:"All Platforms"},{value:"win32",label:"Windows"},{value:"darwin",label:"macOS"},{value:"linux",label:"Linux"}].map(e=>(0,a.jsx)(ee.eb,{value:e.value,children:e.label},e.value))})]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)(X.J,{htmlFor:"dependencies",children:"Dependencies"}),(0,a.jsx)(Z.p,{id:"dependencies",value:f,onChange:e=>g(e.target.value),placeholder:"Comma-separated: package1, package2"})]})]}),(0,a.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)(X.J,{htmlFor:"nodeVersion",children:"Node.js Version"}),(0,a.jsx)(Z.p,{id:"nodeVersion",value:l.requirements.node,onChange:e=>i(s=>({...s,requirements:{...s.requirements,node:e.target.value}})),placeholder:">=16.0.0"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)(X.J,{htmlFor:"pythonVersion",children:"Python Version"}),(0,a.jsx)(Z.p,{id:"pythonVersion",value:l.requirements.python,onChange:e=>i(s=>({...s,requirements:{...s.requirements,python:e.target.value}})),placeholder:">=3.8"})]})]})]}),(0,a.jsxs)(Q.Es,{className:"flex gap-2",children:[(0,a.jsx)(N.$,{type:"button",variant:"outline",onClick:t,children:"Cancel"}),(0,a.jsx)(N.$,{type:"submit",disabled:y,children:y?"Adding...":(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(et.A,{className:"h-4 w-4 mr-2"}),"Add to Registry"]})})]})]})]})})}var en=t(8145),el=t(5487),ei=t(5543);function eo(e){let{isOpen:s,onClose:t,onInstallServer:n}=e,[i,o]=(0,r.useState)([]),[c,d]=(0,r.useState)([]),[m,u]=(0,r.useState)(!1),[x,h]=(0,r.useState)(null),[p,f]=(0,r.useState)(null),[g,v]=(0,r.useState)(!1),[j,y]=(0,r.useState)({}),[b,w]=(0,r.useState)(""),k=(0,r.useRef)(null),C=(0,r.useRef)(!0),S=(0,r.useRef)(null);(0,r.useEffect)(()=>(C.current=!0,()=>{C.current=!1,k.current&&clearTimeout(k.current),S.current&&S.current.abort()}),[]),(0,r.useEffect)(()=>{s&&(async()=>{S.current&&S.current.abort();let e=new AbortController;if(S.current=e,C.current){u(!0),h(null);try{let s=await Y.getEntries();C.current&&!e.signal.aborted&&(o(s),d(s))}catch(s){C.current&&!e.signal.aborted&&h(s instanceof Error?s.message:"Failed to load server registry")}finally{C.current&&!e.signal.aborted&&u(!1)}}})()},[s]);let A=(0,r.useCallback)(async(e,s)=>{if(C.current)try{let t=await Y.getEntries({...e,search:s||void 0});C.current&&d(t)}catch(e){C.current&&h(e instanceof Error?e.message:"Failed to filter entries")}},[]);(0,r.useEffect)(()=>(k.current&&clearTimeout(k.current),k.current=setTimeout(()=>{A(j,b)},300),()=>{k.current&&clearTimeout(k.current)}),[j,b,i,A]);let E=async e=>{if(C.current){f(e.id);try{await n(e),await Y.setInstalled(e.id,!0),C.current&&o(s=>s.map(s=>s.id===e.id?{...s,isInstalled:!0}:s))}catch(e){C.current&&h(e instanceof Error?e.message:"Failed to install server")}finally{C.current&&f(null)}}},T=async e=>{if(C.current)try{let s=await Y.addCustomEntry(e);C.current&&(o(e=>[s,...e]),v(!1))}catch(e){C.current&&h(e instanceof Error?e.message:"Failed to add custom server")}};return(0,a.jsxs)(Q.lG,{open:s,onOpenChange:t,children:[(0,a.jsxs)(Q.Cf,{className:"max-w-2xl max-h-[70vh] overflow-hidden flex flex-col border-0 shadow-2xl",children:[(0,a.jsxs)(Q.c7,{className:"pb-6",children:[(0,a.jsxs)(Q.L3,{className:"flex items-center gap-3 text-lg",children:[(0,a.jsx)("div",{className:"p-2 rounded-lg bg-primary/10",children:(0,a.jsx)(el.A,{className:"h-5 w-5 text-primary"})}),"Browse Tools"]}),(0,a.jsx)(Q.rr,{className:"text-muted-foreground",children:"Discover and add new capabilities to your AI assistant"})]}),(0,a.jsxs)("div",{className:"relative mb-6",children:[(0,a.jsx)(ei.A,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),(0,a.jsx)(Z.p,{placeholder:"Search for tools and integrations...",value:b,onChange:e=>w(e.target.value),className:"pl-10 h-11 border-border/50 focus:border-primary/50 bg-background/50"})]}),(0,a.jsxs)("div",{className:"flex-1 overflow-y-auto -mx-1 px-1",children:[x&&(0,a.jsx)(U.Fc,{variant:"destructive",className:"mb-4",children:(0,a.jsx)(U.TN,{children:x})}),m?(0,a.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,a.jsxs)("div",{className:"flex flex-col items-center space-y-3",children:[(0,a.jsx)("div",{className:"h-8 w-8 border-2 border-primary/20 border-t-primary rounded-full animate-spin"}),(0,a.jsx)("div",{className:"text-sm text-muted-foreground",children:"Discovering tools..."})]})}):0===c.length?(0,a.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[(0,a.jsx)("div",{className:"p-3 rounded-full bg-muted/50 mb-4",children:(0,a.jsx)(el.A,{className:"h-8 w-8 text-muted-foreground"})}),(0,a.jsx)("div",{className:"text-muted-foreground",children:0===i.length?"No tools available in the registry":"No tools match your search"}),b&&(0,a.jsx)(N.$,{variant:"ghost",size:"sm",onClick:()=>w(""),className:"mt-2",children:"Clear search"})]}):(0,a.jsx)("div",{className:"space-y-3",children:c.map((e,s)=>(0,a.jsxs)("div",{className:"group relative flex items-center justify-between p-4 border border-border/50 rounded-xl hover:border-border hover:shadow-sm bg-card/50 hover:bg-card transition-all duration-200",style:{animationDelay:"".concat(Math.min(50*s,500),"ms")},children:[(0,a.jsxs)("div",{className:"flex items-center gap-4 flex-1 min-w-0",children:[(0,a.jsx)("div",{className:"flex-shrink-0 text-2xl p-2 rounded-lg bg-primary/5 border border-primary/10",children:e.icon||"⚡"}),(0,a.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,a.jsx)("h3",{className:"font-semibold text-sm text-foreground group-hover:text-primary transition-colors",children:e.name}),e.isOfficial&&(0,a.jsx)(en.E,{variant:"secondary",className:"text-xs font-medium px-2",children:"Official"}),e.isInstalled&&(0,a.jsx)(en.E,{className:"text-xs font-medium px-2 bg-green-100 text-green-800 border-green-200",children:"Added"})]}),(0,a.jsx)("p",{className:"text-sm text-muted-foreground line-clamp-1 leading-relaxed",children:e.description})]})]}),(0,a.jsx)(N.$,{onClick:()=>E(e),disabled:e.isInstalled||p===e.id,size:"sm",variant:e.isInstalled?"outline":"default",className:(0,l.cn)("flex-shrink-0 ml-3 min-w-[80px] transition-all",!e.isInstalled&&"hover:shadow-sm",p===e.id&&"opacity-70"),children:p===e.id?(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("div",{className:"h-3 w-3 border border-current border-t-transparent rounded-full animate-spin"}),(0,a.jsx)("span",{children:"Adding..."})]}):e.isInstalled?"Added":"Add"})]},e.id))})]})]}),(0,a.jsx)(er,{isOpen:g,onClose:()=>v(!1),onAddServer:T})]})}var ec=t(3904),ed=t(9103),em=t(7108),eu=t(2525),ex=t(142);let eh="/api";function ep(e){let{isOpen:s,onClose:t,onOpenConnectModal:n,variant:i="overlay"}=e,[o,c]=(0,r.useState)([]),[d,m]=(0,r.useState)(null),[u,h]=(0,r.useState)([]),[p,f]=(0,r.useState)(!1),[g,v]=(0,r.useState)(!1),[j,y]=(0,r.useState)(null),[b,w]=(0,r.useState)(null),[k,C]=(0,r.useState)(!1),[S,A]=(0,r.useState)(null),[E,T]=(0,r.useState)(!1),D=(e,s)=>{console.error("ServersPanel Error (".concat(s,"):"),e),"servers"===s&&y(e),"tools"===s&&w(e)},F=(0,r.useCallback)(async e=>{f(!0),y(null),c([]),m(null),h([]),w(null);try{let s=await fetch("".concat(eh,"/mcp/servers"),e?{signal:e}:{});if(!s.ok){let e=await s.json().catch(()=>({error:"Failed to fetch servers"}));throw Error(e.message||e.error||"Server List: ".concat(s.statusText))}let t=(await s.json()).servers||[];if(c(t),t.length>0){let e=t.find(e=>"connected"===e.status);e?m(e.id):t.length>0&&m(t[0].id)}else console.log("No MCP servers found or returned from API.")}catch(e){"AbortError"!==e.name&&D(e.message,"servers")}finally{(null==e?void 0:e.aborted)||f(!1)}},[]),I=async e=>{T(!1);let s={type:e.config.type,command:e.config.command,args:e.config.args||[],url:e.config.url,env:e.config.env||{},headers:e.config.headers||{},timeout:e.config.timeout||3e4};try{let t=await fetch("/api/connect-server",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e.name,config:s})}),a=await t.json();if(!t.ok)throw Error(a.error||"Server returned status ".concat(t.status));await F()}catch(e){throw Error(e.message||"Failed to install server")}},L=async e=>{let s=o.find(s=>s.id===e);if(s&&window.confirm('Are you sure you want to remove server "'.concat(s.name,'"?'))){A(e),y(null);try{let s=await fetch("".concat(eh,"/mcp/servers/").concat(e),{method:"DELETE"});if(!s.ok){let e=await s.json().catch(()=>({error:"Failed to remove server"}));throw Error(e.message||e.error||"Server Removal: ".concat(s.statusText))}d===e&&(m(null),h([])),await F()}catch(e){D(e.message,"servers")}finally{A(null)}}};(0,r.useEffect)(()=>{if(!s)return;let e=new AbortController;return F(e.signal),A(null),()=>{e.abort()}},[s,F]);let R=(0,r.useCallback)(async(e,s)=>{let t=o.find(s=>s.id===e);if(h([]),w(null),!t||"connected"!==t.status)return void console.warn('Server "'.concat((null==t?void 0:t.name)||e,'" is not connected or not found. Cannot fetch tools.'));v(!0);try{let a=await fetch("".concat(eh,"/mcp/servers/").concat(e,"/tools"),s?{signal:s}:{});if(!a.ok){let e=await a.json().catch(()=>({error:"Failed to fetch tools for ".concat(t.name)}));throw Error(e.message||e.error||"Tool List (".concat(t.name,"): ").concat(a.statusText))}let r=await a.json();(null==s?void 0:s.aborted)||h(r.tools||[]),r.tools&&0!==r.tools.length||console.log('No tools found for server "'.concat(t.name,'".'))}catch(e){"AbortError"!==e.name&&D(e.message,"tools")}finally{(null==s?void 0:s.aborted)||v(!1)}},[o]);(0,r.useEffect)(()=>{if(!d)return;let e=new AbortController;return R(d,e.signal),()=>{e.abort()}},[d,R]);let P=o.find(e=>e.id===d);if("overlay"===i&&!s)return null;let q=(0,l.cn)("fixed top-0 right-0 z-40 h-screen w-80 bg-card border-l border-border shadow-xl transition-transform transform flex flex-col",s?"translate-x-0":"translate-x-full"),U=(0,l.cn)("h-full w-full flex flex-col bg-card");return(0,a.jsxs)("aside",{className:"overlay"===i?q:U,children:[(0,a.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-border/50 bg-card/50 backdrop-blur-sm",children:[(0,a.jsx)("h2",{className:"text-sm font-semibold text-foreground",children:"Tools & Servers"}),(0,a.jsxs)("div",{className:"flex items-center space-x-1",children:[(0,a.jsx)(N.$,{variant:"ghost",size:"sm",onClick:()=>F(),disabled:p,className:"h-8 w-8 p-0",children:(0,a.jsx)(ec.A,{className:(0,l.cn)("h-3.5 w-3.5",p&&"animate-spin")})}),"overlay"===i&&(0,a.jsx)(N.$,{variant:"ghost",size:"sm",onClick:t,className:"h-8 w-8 p-0",children:(0,a.jsx)(O.A,{className:"h-3.5 w-3.5"})})]})]}),(0,a.jsxs)("div",{className:"px-4 py-3 space-y-2 border-b border-border/30",children:[(0,a.jsxs)(N.$,{onClick:n,className:"w-full h-9 text-sm font-medium",size:"sm",children:[(0,a.jsx)(ed.A,{className:"mr-2 h-4 w-4"}),"Connect Server"]}),(0,a.jsxs)(N.$,{onClick:()=>T(!0),variant:"outline",className:"w-full h-9 text-sm font-medium",size:"sm",children:[(0,a.jsx)(em.A,{className:"mr-2 h-4 w-4"}),"Browse Registry"]})]}),(0,a.jsxs)("div",{className:"flex-1 overflow-hidden flex flex-col",children:[(0,a.jsxs)("div",{className:"p-4 border-b border-border/30",children:[(0,a.jsx)("div",{className:"flex items-center justify-between mb-3",children:(0,a.jsxs)("h3",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide",children:["Connected Servers (",o.length,")"]})}),p&&(0,a.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,a.jsxs)("div",{className:"flex flex-col items-center space-y-2",children:[(0,a.jsx)(ec.A,{className:"h-5 w-5 animate-spin text-muted-foreground"}),(0,a.jsx)("span",{className:"text-xs text-muted-foreground",children:"Loading servers..."})]})}),j&&(0,a.jsx)("div",{className:"p-3 rounded-lg bg-destructive/10 border border-destructive/20 mb-3",children:(0,a.jsxs)("div",{className:"flex items-start space-x-2",children:[(0,a.jsx)(x.A,{className:"h-4 w-4 text-destructive flex-shrink-0 mt-0.5"}),(0,a.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,a.jsx)("p",{className:"text-xs font-medium text-destructive",children:"Connection Error"}),(0,a.jsx)("p",{className:"text-xs text-destructive/80 mt-1",children:j})]})]})}),!p&&0===o.length&&!j&&(0,a.jsxs)("div",{className:"text-center py-8",children:[(0,a.jsx)(el.A,{className:"h-8 w-8 text-muted-foreground/50 mx-auto mb-2"}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:"No servers connected"}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground/70 mt-1",children:"Connect or browse the registry"})]}),o.map(e=>(0,a.jsx)("div",{onClick:()=>m(e.id),className:(0,l.cn)("p-3 rounded-lg border cursor-pointer transition-all duration-200 mb-2 last:mb-0",d===e.id?"bg-primary/5 border-primary/20 shadow-sm":"bg-background hover:bg-muted/50 border-border/50 hover:border-border"),children:(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,a.jsx)("div",{className:(0,l.cn)("w-2 h-2 rounded-full flex-shrink-0","connected"===e.status?"bg-green-500":"error"===e.status?"bg-red-500":"bg-yellow-500")}),(0,a.jsx)("h4",{className:"text-sm font-medium truncate",children:e.name})]}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground mt-1 capitalize",children:e.status})]}),S===e.id?(0,a.jsx)(ec.A,{className:"h-4 w-4 animate-spin text-muted-foreground"}):(0,a.jsx)(N.$,{variant:"ghost",size:"sm",onClick:s=>{s.stopPropagation(),L(e.id)},className:"h-8 w-8 p-0 text-muted-foreground hover:text-destructive",children:(0,a.jsx)(eu.A,{className:"h-3.5 w-3.5"})})]})},e.id))]}),P&&(0,a.jsxs)("div",{className:"flex-1 overflow-hidden flex flex-col",children:[(0,a.jsx)("div",{className:"px-4 py-3 border-b border-border/30",children:(0,a.jsxs)("button",{onClick:()=>C(!k),className:"flex items-center justify-between w-full text-left",children:[(0,a.jsx)("h3",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide",children:"Available Tools"}),(0,a.jsx)(z.A,{className:(0,l.cn)("h-3.5 w-3.5 transition-transform text-muted-foreground",k&&"rotate-180")})]})}),k&&(0,a.jsxs)("div",{className:"flex-1 overflow-y-auto px-4 py-3",children:[g&&(0,a.jsx)("div",{className:"flex items-center justify-center py-6",children:(0,a.jsxs)("div",{className:"flex flex-col items-center space-y-2",children:[(0,a.jsx)(ec.A,{className:"h-4 w-4 animate-spin text-muted-foreground"}),(0,a.jsx)("span",{className:"text-xs text-muted-foreground",children:"Loading tools..."})]})}),b&&(0,a.jsx)("div",{className:"p-3 rounded-lg bg-destructive/10 border border-destructive/20 mb-3",children:(0,a.jsxs)("div",{className:"flex items-start space-x-2",children:[(0,a.jsx)(x.A,{className:"h-4 w-4 text-destructive flex-shrink-0 mt-0.5"}),(0,a.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,a.jsx)("p",{className:"text-xs font-medium text-destructive",children:"Tools Error"}),(0,a.jsx)("p",{className:"text-xs text-destructive/80 mt-1",children:b})]})]})}),!g&&0===u.length&&!b&&"connected"===P.status&&(0,a.jsxs)("div",{className:"text-center py-6",children:[(0,a.jsx)(ex.A,{className:"h-6 w-6 text-muted-foreground/50 mx-auto mb-2"}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:"No tools available"})]}),"connected"!==P.status&&(0,a.jsxs)("div",{className:"text-center py-6",children:[(0,a.jsx)(x.A,{className:"h-6 w-6 text-muted-foreground/50 mx-auto mb-2"}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:"Server not connected"}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground/70 mt-1",children:"Tools unavailable"})]}),u.map(e=>{var s;return(0,a.jsxs)("div",{className:"p-3 rounded-lg border border-border/50 bg-background hover:bg-muted/30 transition-colors mb-2 last:mb-0",children:[(0,a.jsx)("h4",{className:"text-sm font-medium mb-1",children:e.name}),e.description&&(0,a.jsx)("p",{className:"text-xs text-muted-foreground line-clamp-2 mb-2",children:e.description}),(null==(s=e.inputSchema)?void 0:s.properties)&&(0,a.jsxs)("div",{className:"flex flex-wrap gap-1 mt-2",children:[Object.keys(e.inputSchema.properties).slice(0,3).map(e=>(0,a.jsx)("span",{className:"inline-flex items-center px-2 py-1 rounded-md bg-muted text-xs font-medium",children:e},e)),Object.keys(e.inputSchema.properties).length>3&&(0,a.jsxs)("span",{className:"text-xs text-muted-foreground",children:["+",Object.keys(e.inputSchema.properties).length-3," more"]})]})]},e.name)})]})]})]}),(0,a.jsx)(eo,{isOpen:E,onClose:()=>T(!1),onInstallServer:I})]})}let ef=r.forwardRef((e,s)=>{let{className:t,children:r,...n}=e;return(0,a.jsx)("div",{ref:s,className:(0,l.cn)("relative overflow-auto",t),...n,children:r})});ef.displayName="ScrollArea";var eg=t(1497),ev=t(5448),ej=t(4186),ey=t(9074);function eb(e){let{isOpen:s,onClose:t,currentSessionId:n,onSessionChange:i,returnToWelcome:o,variant:c="modal"}=e,[d,m]=(0,r.useState)([]),[u,h]=(0,r.useState)(!1),[p,f]=(0,r.useState)(null),[g,v]=(0,r.useState)(!1),[j,y]=(0,r.useState)(""),[b,w]=(0,r.useState)(null),[k,C]=(0,r.useState)(!1),[S,A]=(0,r.useState)(null),[E,T]=(0,r.useState)(!1),D=(0,r.useCallback)(async()=>{h(!0),f(null);try{let e=await fetch("/api/sessions");if(!e.ok)throw Error("Failed to fetch sessions");let s=await e.json();m(s.sessions||[])}catch(e){console.error("Error fetching sessions:",e),f(e instanceof Error?e.message:"Failed to fetch sessions")}finally{h(!1)}},[]);(0,r.useEffect)(()=>{s&&D()},[s,D]),(0,r.useEffect)(()=>{let e=()=>{s&&D()},t=()=>{s&&D()};return window.addEventListener("dexto:message",e),window.addEventListener("dexto:response",t),()=>{window.removeEventListener("dexto:message",e),window.removeEventListener("dexto:response",t)}},[s,D]);let F=async()=>{try{let e=await fetch("/api/sessions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:j.trim()||void 0})});if(!e.ok){let s=await e.json();throw Error(s.error||"Failed to create session")}let s=await e.json();m(e=>[...e,s.session]),y(""),v(!1),i(s.session.id)}catch(e){console.error("Error creating session:",e),f(e instanceof Error?e.message:"Failed to create session")}},O=async e=>{w(e);try{let s=await fetch("/api/sessions/".concat(e),{method:"DELETE"});if(!s.ok){let e=await s.json();throw Error(e.error||"Failed to delete session")}m(s=>s.filter(s=>s.id!==e)),n===e&&o()}catch(e){console.error("Error deleting session:",e),f(e instanceof Error?e.message:"Failed to delete session")}finally{w(null)}},I=async()=>{if(S){T(!0);try{if(!(await fetch("/api/sessions/".concat(S),{method:"DELETE",headers:{"Content-Type":"application/json"}})).ok)throw Error("Failed to delete conversation");m(e=>e.filter(e=>e.id!==S)),n===S&&o(),C(!1),A(null)}catch(e){console.error("Error deleting conversation:",e),f(e instanceof Error?e.message:"Failed to delete conversation")}finally{T(!1)}}},L=e=>{if(!e)return"Unknown";let s=new Date(e);return s.toLocaleDateString()+" "+s.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})},R=e=>{if(!e)return"Unknown";let s=new Date(e),t=new Date().getTime()-s.getTime(),a=Math.floor(t/6e4),r=Math.floor(t/36e5),n=Math.floor(t/864e5);return a<1?"Just now":a<60?"".concat(a,"m ago"):r<24?"".concat(r,"h ago"):"".concat(n,"d ago")},P=(0,a.jsxs)("div",{className:"flex flex-col h-full",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between p-4 border-b border-border/50",children:[(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,a.jsx)(eg.A,{className:"h-5 w-5"}),(0,a.jsx)("h2",{className:"text-lg font-semibold",children:"Sessions"})]}),(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,a.jsx)(N.$,{variant:"ghost",size:"sm",onClick:D,disabled:u,className:"h-8 w-8 p-0",children:(0,a.jsx)(ec.A,{className:(0,l.cn)("h-4 w-4",u&&"animate-spin")})}),(0,a.jsxs)(N.$,{variant:"outline",size:"sm",onClick:()=>v(!0),className:"h-8",children:[(0,a.jsx)(es.A,{className:"h-4 w-4 mr-1"}),"New Session"]})]})]}),p&&(0,a.jsx)("div",{className:"p-4",children:(0,a.jsxs)(U.Fc,{variant:"destructive",children:[(0,a.jsx)(x.A,{className:"h-4 w-4"}),(0,a.jsx)(U.TN,{children:p})]})}),(0,a.jsx)(ef,{className:"flex-1 p-4",children:(0,a.jsx)("div",{className:"space-y-2",children:u?(0,a.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,a.jsx)(ec.A,{className:"h-6 w-6 animate-spin"})}):0===d.length?(0,a.jsxs)("div",{className:"text-center py-8 text-muted-foreground",children:[(0,a.jsx)(eg.A,{className:"h-8 w-8 mx-auto mb-2 opacity-50"}),(0,a.jsx)("p",{children:"No active sessions"}),(0,a.jsx)("p",{className:"text-sm",children:"Create a new session to get started"})]}):d.map(e=>(0,a.jsx)("div",{className:(0,l.cn)("group p-3 rounded-lg border border-border/50 bg-card hover:bg-muted/50 transition-all cursor-pointer",n===e.id&&"ring-2 ring-primary bg-primary/5"),onClick:()=>i(e.id),children:(0,a.jsxs)("div",{className:"flex items-start justify-between",children:[(0,a.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,a.jsxs)("div",{className:"flex items-center space-x-2 mb-2",children:[(0,a.jsx)("h3",{className:"font-medium text-sm truncate",children:e.id}),n===e.id&&(0,a.jsx)(en.E,{variant:"secondary",className:"text-xs",children:"Active"})]}),(0,a.jsxs)("div",{className:"space-y-1 text-xs text-muted-foreground",children:[(0,a.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,a.jsxs)("div",{className:"flex items-center space-x-1",children:[(0,a.jsx)(ev.A,{className:"h-3 w-3"}),(0,a.jsxs)("span",{children:[e.messageCount," messages"]})]}),(0,a.jsxs)("div",{className:"flex items-center space-x-1",children:[(0,a.jsx)(ej.A,{className:"h-3 w-3"}),(0,a.jsx)("span",{children:R(e.lastActivity)})]})]}),e.createdAt&&(0,a.jsxs)("div",{className:"flex items-center space-x-1",children:[(0,a.jsx)(ey.A,{className:"h-3 w-3"}),(0,a.jsxs)("span",{children:["Created ",L(e.createdAt)]})]})]})]}),(0,a.jsxs)("div",{className:"flex items-center space-x-1",children:[e.messageCount>0&&(0,a.jsx)(a.Fragment,{children:(0,a.jsx)(N.$,{variant:"ghost",size:"sm",onClick:s=>{s.stopPropagation(),A(e.id),C(!0)},className:"h-8 w-8 p-0",title:"Delete Conversation",children:(0,a.jsx)(eu.A,{className:"h-4 w-4 text-destructive"})})}),0===e.messageCount&&(0,a.jsx)(N.$,{variant:"ghost",size:"sm",onClick:s=>{s.stopPropagation(),O(e.id)},disabled:b===e.id,className:"h-8 w-8 p-0",title:"Delete Session",children:(0,a.jsx)(eu.A,{className:"h-4 w-4 text-destructive"})})]})]})},e.id))})}),(0,a.jsx)(Q.lG,{open:g,onOpenChange:v,children:(0,a.jsxs)(Q.Cf,{className:"sm:max-w-md",children:[(0,a.jsx)(Q.c7,{children:(0,a.jsx)(Q.L3,{children:"Create New Session"})}),(0,a.jsx)("div",{className:"space-y-4",children:(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(X.J,{htmlFor:"sessionId",children:"Session ID"}),(0,a.jsx)(Z.p,{id:"sessionId",value:j,onChange:e=>y(e.target.value),placeholder:"e.g., user-123, project-alpha",className:"font-mono"}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:"Leave empty to auto-generate a unique ID"})]})}),(0,a.jsxs)(Q.Es,{children:[(0,a.jsx)(N.$,{variant:"outline",onClick:()=>v(!1),children:"Cancel"}),(0,a.jsx)(N.$,{onClick:F,children:"Create Session"})]})]})}),(0,a.jsx)(Q.lG,{open:k,onOpenChange:C,children:(0,a.jsxs)(Q.Cf,{className:"sm:max-w-md",children:[(0,a.jsxs)(Q.c7,{children:[(0,a.jsxs)(Q.L3,{className:"flex items-center space-x-2",children:[(0,a.jsx)(eu.A,{className:"h-5 w-5 text-destructive"}),(0,a.jsx)("span",{children:"Delete Conversation"})]}),(0,a.jsxs)(Q.rr,{children:["This will permanently delete this conversation and all its messages. This action cannot be undone.",S&&(0,a.jsxs)("span",{className:"block mt-2 font-medium",children:["Session: ",(0,a.jsx)("span",{className:"font-mono",children:S})]})]})]}),(0,a.jsxs)(Q.Es,{children:[(0,a.jsx)(N.$,{variant:"outline",onClick:()=>C(!1),children:"Cancel"}),(0,a.jsxs)(N.$,{variant:"destructive",onClick:I,disabled:E,className:"flex items-center space-x-2",children:[(0,a.jsx)(eu.A,{className:"h-4 w-4"}),(0,a.jsx)("span",{children:E?"Deleting...":"Delete Conversation"})]})]})]})})]});return"inline"===c?(0,a.jsx)("div",{className:"h-full",children:P}):(0,a.jsx)(Q.lG,{open:s,onOpenChange:t,children:(0,a.jsx)(Q.Cf,{className:"sm:max-w-lg h-[600px] flex flex-col p-0",children:P})})}var eN=t(5139);function ew(e){let{websocket:s}=e,[t,n]=(0,r.useState)(null),[l,i]=(0,r.useState)(!1),[o,c]=(0,r.useState)(!1),m=r.useRef([]);(0,r.useEffect)(()=>{if(!s)return;let e=e=>{try{let s=JSON.parse(e.data);if("toolConfirmationRequest"===s.event){let e={...s.data,timestamp:new Date(s.data.timestamp)};console.debug("[WebUI] Received toolConfirmationRequest",e),o?m.current.push(e):(n(e),c(!0),i(!1))}}catch(e){console.error("Error parsing WebSocket message:",e)}};return s.addEventListener("message",e),()=>{s.removeEventListener("message",e)}},[s,o]);let u=(0,r.useCallback)(e=>{if(!t||!s)return;let a={type:"toolConfirmationResponse",data:{executionId:t.executionId,approved:e,rememberChoice:l,sessionId:t.sessionId}};if(console.debug("[WebUI] Sending toolConfirmationResponse",a),s.send(JSON.stringify(a)),c(!1),n(null),i(!1),m.current.length>0){let e=m.current.shift();setTimeout(()=>{n(e),c(!0)},0)}},[t,l,s]);return((0,r.useEffect)(()=>{if(!o)return;let e=setTimeout(()=>{u(!1)},12e4);return()=>clearTimeout(e)},[o,u]),t)?(0,a.jsx)(Q.lG,{open:o,onOpenChange:e=>{e||u(!1)},children:(0,a.jsxs)(Q.Cf,{className:"sm:max-w-[600px]",children:[(0,a.jsx)(Q.c7,{children:(0,a.jsxs)(Q.L3,{className:"flex items-center gap-2",children:[(0,a.jsx)(x.A,{className:"h-5 w-5 text-yellow-500"}),"Tool Execution Confirmation"]})}),(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(d.A,{className:"h-4 w-4 text-blue-500"}),(0,a.jsx)("span",{className:"font-medium",children:"Tool:"}),(0,a.jsx)(en.E,{variant:"outline",children:t.toolName})]}),t.description&&(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"font-medium",children:"Description:"}),(0,a.jsx)("p",{className:"text-sm text-gray-600 mt-1",children:t.description})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"font-medium",children:"Arguments:"}),(0,a.jsx)("pre",{className:"bg-background/50 p-3 rounded-md text-xs overflow-auto max-h-48 mt-1 text-muted-foreground",children:(e=>{if(!e)return"No arguments";try{return JSON.stringify(e,null,2)}catch(s){return String(e)}})(t.args)})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2 text-sm text-gray-500",children:[(0,a.jsx)(ej.A,{className:"h-4 w-4"}),(0,a.jsxs)("span",{children:["Requested at: ",t.timestamp.toLocaleString()]})]}),(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,a.jsx)(eN.S,{id:"remember",checked:l,onCheckedChange:e=>i(!0===e)}),(0,a.jsx)("label",{htmlFor:"remember",className:"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",children:"Approve future executions of this tool for this session"})]}),(0,a.jsx)("div",{className:"bg-yellow-50 p-3 rounded-md",children:(0,a.jsxs)("p",{className:"text-sm text-yellow-800",children:[(0,a.jsx)("strong",{children:"Security Notice:"})," Only approve tools you trust. Tools can access your system and data according to their permissions."]})})]}),(0,a.jsxs)(Q.Es,{className:"gap-2",children:[(0,a.jsx)(N.$,{variant:"outline",onClick:()=>u(!1),className:"bg-red-50 hover:bg-red-100 text-red-700 border-red-200",children:"Deny"}),(0,a.jsx)(N.$,{onClick:()=>u(!0),className:"bg-green-600 hover:bg-green-700",children:"Approve"})]})]})}):null}var ek=t(381);function eC(e){let{isOpen:s,onClose:t,onNavigateToSession:n}=e,[i,d]=(0,r.useState)(""),[m,x]=(0,r.useState)([]),[h,p]=(0,r.useState)(!1),[f,g]=(0,r.useState)(null),[v,j]=(0,r.useState)(0),y=(0,r.useCallback)(async e=>{if(!e.trim()){x([]),g(null);return}p(!0),g(null);try{let s=new URLSearchParams({q:e,limit:"10",offset:"0"}),t=await fetch("/api/search/messages?".concat(s));if(!t.ok){let e=await t.text();throw Error("Search failed: ".concat(t.status," ").concat(e))}let a=await t.json();x(a.results),j(0)}catch(e){console.error("Search error:",e),x([]),g(e instanceof Error?e.message:"Search failed")}finally{p(!1)}},[]);(0,r.useEffect)(()=>{let e=setTimeout(()=>{y(i)},300);return()=>clearTimeout(e)},[i,y]),(0,r.useEffect)(()=>{s&&(d(""),x([]),g(null),j(0))},[s]),(0,r.useEffect)(()=>{if(!s)return;let e=e=>{if(s&&(!e.ctrlKey&&!e.metaKey||!e.shiftKey||"S"!==e.key))switch(e.key){case"ArrowDown":e.preventDefault(),e.stopPropagation(),j(e=>Math.min(e+1,m.length-1));break;case"ArrowUp":e.preventDefault(),e.stopPropagation(),j(e=>Math.max(e-1,0));break;case"Enter":e.preventDefault(),e.stopPropagation(),m[v]&&b(m[v]);break;case"Escape":e.preventDefault(),e.stopPropagation(),t()}};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[s,m,v,t]);let b=e=>{n(e.sessionId,e.messageIndex),t()},N=e=>{switch(e){case"user":return(0,a.jsx)(o.A,{className:"w-4 h-4"});case"assistant":return(0,a.jsx)(c.A,{className:"w-4 h-4"});case"system":return(0,a.jsx)(ek.A,{className:"w-4 h-4"});default:return(0,a.jsx)(eg.A,{className:"w-4 h-4"})}},w=e=>{switch(e){case"user":return"bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200";case"assistant":return"bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200";case"system":return"bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-200";default:return"bg-gray-100 text-gray-800 dark:bg-gray-800 dark:text-gray-200"}},k=(e,s)=>{if(!s)return e;let t=s.replace(/[.*+?^${}()|\[\]\\]/g,"\\$&"),r=RegExp("(".concat(t,")"),"gi");return e.split(r).map((e,s)=>r.test(e)?(0,a.jsx)("mark",{className:"bg-yellow-200 dark:bg-yellow-800 font-medium rounded px-1",children:e},s):e)};return(0,a.jsx)(Q.lG,{open:s,onOpenChange:t,children:(0,a.jsx)(Q.Cf,{className:"max-w-2xl p-0 top-[20%] transform translate-y-0",children:(0,a.jsxs)("div",{className:"flex flex-col max-h-[70vh]",children:[(0,a.jsx)("div",{className:"p-6 pb-4",children:(0,a.jsxs)("div",{className:"relative",children:[(0,a.jsx)(ei.A,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 w-5 h-5 text-muted-foreground"}),(0,a.jsx)(Z.p,{placeholder:"Search conversations...",value:i,onChange:e=>d(e.target.value),className:"pl-12 text-lg border-0 shadow-none focus-visible:ring-0 bg-transparent",autoFocus:!0})]})}),(0,a.jsx)("div",{className:"flex-1 overflow-hidden border-t",children:h?(0,a.jsxs)("div",{className:"flex items-center justify-center py-12",children:[(0,a.jsx)(ec.A,{className:"h-6 w-6 animate-spin mr-3"}),(0,a.jsx)("span",{className:"text-muted-foreground",children:"Searching..."})]}):f?(0,a.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,a.jsxs)("div",{className:"text-center",children:[(0,a.jsx)(ei.A,{className:"w-12 h-12 mx-auto mb-4 text-destructive opacity-50"}),(0,a.jsx)("p",{className:"text-destructive font-medium",children:"Search Error"}),(0,a.jsx)("p",{className:"text-sm text-muted-foreground mt-2",children:f}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground mt-2",children:"Try again or check your connection."})]})}):(0,a.jsx)(ef,{className:"h-full",children:(0,a.jsx)("div",{className:"p-2",children:m.length>0?(0,a.jsx)("div",{className:"space-y-1",children:m.map((e,s)=>(0,a.jsxs)("div",{className:(0,l.cn)("flex items-start gap-3 p-3 rounded-lg cursor-pointer transition-colors",s===v?"bg-accent text-accent-foreground":"hover:bg-accent/50"),onClick:()=>b(e),children:[(0,a.jsx)("div",{className:"flex-shrink-0 mt-1",children:(0,a.jsx)(en.E,{className:(0,l.cn)("text-xs",w(e.message.role)),children:N(e.message.role)})}),(0,a.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,a.jsx)("span",{className:"text-sm font-medium",children:e.sessionId.length>20?"".concat(e.sessionId.slice(0,20),"..."):e.sessionId}),(0,a.jsx)("span",{className:"text-xs text-muted-foreground",children:e.message.role})]}),(0,a.jsx)("div",{className:"text-sm text-muted-foreground line-clamp-2",children:k(e.context,i)})]}),(0,a.jsx)(u.A,{className:"w-4 h-4 text-muted-foreground flex-shrink-0 mt-1"})]},s))}):i?(0,a.jsxs)("div",{className:"text-center py-12",children:[(0,a.jsx)(ei.A,{className:"w-12 h-12 mx-auto mb-4 text-muted-foreground opacity-50"}),(0,a.jsx)("p",{className:"text-muted-foreground",children:"No messages found matching your search."}),(0,a.jsx)("p",{className:"text-sm text-muted-foreground mt-2",children:"Try different keywords."})]}):(0,a.jsxs)("div",{className:"text-center py-12",children:[(0,a.jsx)(ei.A,{className:"w-12 h-12 mx-auto mb-4 text-muted-foreground opacity-50"}),(0,a.jsx)("p",{className:"text-muted-foreground",children:"Start typing to search your conversations."}),(0,a.jsxs)("div",{className:"flex items-center justify-center gap-4 mt-4 text-xs text-muted-foreground",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.jsx)("kbd",{className:"px-2 py-1 bg-muted rounded text-xs",children:"↑"}),(0,a.jsx)("kbd",{className:"px-2 py-1 bg-muted rounded text-xs",children:"↓"}),(0,a.jsx)("span",{children:"to navigate"})]}),(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.jsx)("kbd",{className:"px-2 py-1 bg-muted rounded text-xs",children:"Enter"}),(0,a.jsx)("span",{children:"to select"})]}),(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.jsx)("kbd",{className:"px-2 py-1 bg-muted rounded text-xs",children:"Esc"}),(0,a.jsx)("span",{children:"to close"})]})]})]})})})})]})})})}var eS=t(5623),eA=t(1788),eE=t(5133),eT=t(6874),eD=t.n(eT),eF=t(3509),eO=t(2098);function eI(){let{theme:e,toggleTheme:s,hasMounted:t}=function(){let[e,s]=(0,r.useState)("light"),[t,a]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{var e,t,r,n;try{let a=localStorage.getItem("theme"),r=null==(e=(t=window).matchMedia)?void 0:e.call(t,"(prefers-color-scheme: dark)").matches,n=("light"===a||"dark"===a?a:null)||(r?"dark":"light");s(n),document.documentElement.classList.toggle("dark","dark"===n)}catch(t){console.error("Failed to access localStorage for theme:",t);let e=(null==(r=(n=window).matchMedia)?void 0:r.call(n,"(prefers-color-scheme: dark)").matches)?"dark":"light";s(e),document.documentElement.classList.toggle("dark","dark"===e)}finally{a(!0)}},[]),(0,r.useEffect)(()=>{t&&(localStorage.setItem("theme",e),document.documentElement.classList.toggle("dark","dark"===e))},[e,t]),{theme:e,toggleTheme:e=>{s(e?"dark":"light")},hasMounted:t}}();if(!t)return null;let n="dark"===e;return(0,a.jsx)($.bL,{checked:n,onCheckedChange:s,className:"w-12 h-6 bg-gray-300 dark:bg-gray-700 rounded-full relative transition-colors flex items-center px-0.5","aria-label":"Toggle dark mode",children:(0,a.jsx)($.zi,{className:"\n w-5 h-5 rounded-full shadow flex items-center justify-center\n transition-transform transform\n translate-x-0.5 data-[state=checked]:translate-x-[1.375rem]\n bg-white dark:bg-gray-100\n ",children:n?(0,a.jsx)(eF.A,{className:"w-3.5 h-3.5 text-gray-700"}):(0,a.jsx)(eO.A,{className:"w-3.5 h-3.5 text-yellow-500"})})})}function eL(){let{messages:e,sendMessage:s,currentSessionId:t,switchSession:i,isWelcomeState:o,returnToWelcome:c,websocket:m}=(0,n.v)(),[u,h]=(0,r.useState)(!1),[p,f]=(0,r.useState)(!1),[g,v]=(0,r.useState)(!1),[j,w]=(0,r.useState)(!1),[k,C]=(0,r.useState)(!1),[F,O]=(0,r.useState)(!1),[I,L]=(0,r.useState)("dexto-config"),[R,P]=(0,r.useState)(null),[z,q]=(0,r.useState)(""),[$,J]=(0,r.useState)(!1),[K,M]=(0,r.useState)(!1),[V,Y]=(0,r.useState)(!1),[ee,es]=(0,r.useState)(null),[et,ea]=(0,r.useState)(!1),[er,ec]=(0,r.useState)(!1);(0,r.useEffect)(()=>{F?fetch(t?"/api/config.yaml?sessionId=".concat(t):"/api/config.yaml").then(e=>{if(!e.ok)throw Error("Failed to fetch configuration");return e.text()}).then(e=>{q(e),P(null)}).catch(e=>{console.error("Preview fetch failed:",e),P(e instanceof Error?e.message:"Preview fetch failed")}):(q(""),P(null),J(!1))},[F,t]);let ed=(0,r.useCallback)(async()=>{try{let e=t?"/api/config.yaml?sessionId=".concat(t):"/api/config.yaml",s=await fetch(e);if(!s.ok)throw Error("Failed to fetch configuration");let a=await s.text(),r=new Blob([a],{type:"application/x-yaml"}),n=URL.createObjectURL(r),l=document.createElement("a");l.href=n,l.download=t?"".concat(I,"-").concat(t,".yml"):"".concat(I,".yml"),document.body.appendChild(l),l.click(),document.body.removeChild(l),URL.revokeObjectURL(n),O(!1),P(null)}catch(e){console.error("Export failed:",e),P(e instanceof Error?e.message:"Export failed")}},[I,t]),em=(0,r.useCallback)(async()=>{try{let e=t?"/api/config.yaml?sessionId=".concat(t):"/api/config.yaml",s=await fetch(e);if(!s.ok)throw Error("Failed to fetch configuration");let a=await s.text();await navigator.clipboard.writeText(a),J(!0),setTimeout(()=>J(!1),2e3),P(null)}catch(e){console.error("Copy failed:",e),P(e instanceof Error?e.message:"Copy failed")}},[J,P,t]),ex=(0,r.useCallback)(async e=>{console.log("Installing server:",e),f(!1)},[]),eh=(0,r.useCallback)(async(e,t,a)=>{M(!0);try{await s(e,t,a)}catch(e){console.error("Error sending message:",e)}finally{M(!1)}},[s]),ef=(0,r.useCallback)(async e=>{try{await i(e),w(!1)}catch(e){console.error("Error switching session:",e)}},[i]),ev=(0,r.useCallback)(async()=>{if(t){ec(!0);try{if(!(await fetch("/api/sessions/".concat(t),{method:"DELETE",headers:{"Content-Type":"application/json"}})).ok)throw Error("Failed to delete conversation");ea(!1),c()}catch(e){console.error("Error deleting conversation:",e)}finally{ec(!1)}}},[t,c]),ej=[{title:"What can you do?",description:"See current capabilities",action:()=>eh("What tools and capabilities do you have available right now?"),icon:"\uD83E\uDD14"},{title:"Create Snake Game",description:"Build a game and open it",action:()=>eh("Create a snake game in a new directory with HTML, CSS, and JavaScript, then open it in the browser for me to play."),icon:"\uD83D\uDC0D"},{title:"Connect new tools",description:"Browse and add MCP servers",action:()=>v(!0),icon:"\uD83D\uDD27"},{title:"Test existing tools",description:"Try out connected capabilities",action:()=>eh("Show me how to use one of your available tools. Pick an interesting one and demonstrate it."),icon:"\uD83E\uDDEA"}];return(0,r.useEffect)(()=>{let e=e=>{(e.ctrlKey||e.metaKey)&&!e.shiftKey&&"h"===e.key&&(e.preventDefault(),w(e=>!e)),(e.ctrlKey||e.metaKey)&&!e.shiftKey&&"k"===e.key&&(e.preventDefault(),fetch("/api/sessions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})}).then(e=>e.json()).then(e=>ef(e.session.id)).catch(e=>{console.error("Error creating new session:",e),es("Failed to create new session. Please try again."),setTimeout(()=>es(null),5e3)})),(e.ctrlKey||e.metaKey)&&!e.shiftKey&&"j"===e.key&&(e.preventDefault(),v(e=>!e)),(e.ctrlKey||e.metaKey)&&e.shiftKey&&"s"===e.key&&(e.preventDefault(),e.stopPropagation(),C(!0)),(e.ctrlKey||e.metaKey)&&!e.shiftKey&&"l"===e.key&&(e.preventDefault(),window.open("/playground","_blank")),(e.ctrlKey||e.metaKey)&&e.shiftKey&&"e"===e.key&&(e.preventDefault(),O(!0)),(e.ctrlKey||e.metaKey)&&!e.shiftKey&&"/"===e.key&&(e.preventDefault(),Y(!0)),"Escape"===e.key&&(g?v(!1):j?w(!1):p?f(!1):F?O(!1):V?Y(!1):et?ea(!1):ee&&es(null))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[g,j,k,p,F,V,et,ee,C]),(0,a.jsxs)("div",{className:"flex h-screen bg-background",children:[(0,a.jsxs)("main",{className:"flex-1 flex flex-col relative",children:[(0,a.jsx)("header",{className:"shrink-0 border-b border-border/50 bg-background/80 backdrop-blur-xl",children:(0,a.jsxs)("div",{className:"flex justify-between items-center px-4 py-3",children:[(0,a.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,a.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,a.jsx)("div",{className:"flex items-center justify-center w-7 h-7 rounded-lg border border-border/50 text-primary-foreground",children:(0,a.jsx)("img",{src:"/logo.png",alt:"Dexto",className:"w-4 h-4"})}),(0,a.jsx)("h1",{className:"text-base font-semibold tracking-tight",children:"Dexto"})]}),t&&!o&&(0,a.jsx)("div",{className:"flex items-center space-x-2",children:(0,a.jsx)(en.E,{variant:"outline",className:"text-xs",children:t})})]}),(0,a.jsxs)("div",{className:"flex items-center space-x-1",children:[(0,a.jsx)(eI,{}),(0,a.jsxs)(B,{children:[(0,a.jsx)(G,{asChild:!0,children:(0,a.jsxs)(N.$,{variant:"ghost",size:"sm",onClick:()=>C(!0),className:"h-8 px-2 text-xs transition-colors",children:[(0,a.jsx)(ei.A,{className:"h-3.5 w-3.5"}),(0,a.jsx)("span",{className:"hidden sm:inline ml-1.5",children:"Search"})]})}),(0,a.jsx)(_,{children:"Search conversations (⌘⇧S)"})]}),(0,a.jsxs)(B,{children:[(0,a.jsx)(G,{asChild:!0,children:(0,a.jsxs)(N.$,{variant:"ghost",size:"sm",onClick:()=>w(!j),className:(0,l.cn)("h-8 px-2 text-xs transition-colors",j&&"bg-muted"),children:[(0,a.jsx)(eg.A,{className:"h-3.5 w-3.5"}),(0,a.jsx)("span",{className:"hidden sm:inline ml-1.5",children:"Sessions"})]})}),(0,a.jsx)(_,{children:"Toggle sessions panel (⌘H)"})]}),(0,a.jsxs)(B,{children:[(0,a.jsx)(G,{asChild:!0,children:(0,a.jsxs)(N.$,{variant:"ghost",size:"sm",onClick:()=>v(!g),className:(0,l.cn)("h-8 px-2 text-xs transition-colors",g&&"bg-muted"),children:[(0,a.jsx)(el.A,{className:"h-3.5 w-3.5"}),(0,a.jsx)("span",{className:"hidden sm:inline ml-1.5",children:"MCP Servers"})]})}),(0,a.jsx)(_,{children:"Toggle tools panel (⌘J)"})]}),(0,a.jsxs)(B,{children:[(0,a.jsx)(G,{asChild:!0,children:(0,a.jsx)(N.$,{variant:"ghost",size:"sm",asChild:!0,className:"h-8 px-2 text-xs",children:(0,a.jsxs)(eD(),{href:"/playground",target:"_blank",children:[(0,a.jsx)(d.A,{className:"h-3.5 w-3.5"}),(0,a.jsx)("span",{className:"hidden sm:inline ml-1.5",children:"MCP Playground"})]})})}),(0,a.jsx)(_,{children:"Open playground (⌘L)"})]}),(0,a.jsxs)(S,{children:[(0,a.jsx)(A,{asChild:!0,children:(0,a.jsx)(N.$,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",children:(0,a.jsx)(eS.A,{className:"h-3.5 w-3.5"})})}),(0,a.jsxs)(E,{align:"end",children:[(0,a.jsxs)(T,{onClick:()=>f(!0),children:[(0,a.jsx)(el.A,{className:"h-4 w-4 mr-2"}),"Browse MCP Registry"]}),(0,a.jsxs)(T,{onClick:()=>O(!0),children:[(0,a.jsx)(eA.A,{className:"h-4 w-4 mr-2"}),"Export Config"]}),(0,a.jsxs)(T,{onClick:()=>Y(!0),children:[(0,a.jsx)(eE.A,{className:"h-4 w-4 mr-2"}),"Shortcuts"]}),t&&!o&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(D,{}),(0,a.jsxs)(T,{onClick:()=>ea(!0),className:"text-destructive focus:text-destructive",children:[(0,a.jsx)(eu.A,{className:"h-4 w-4 mr-2"}),"Delete Conversation"]})]})]})]})]})]})}),(0,a.jsxs)("div",{className:"flex-1 flex overflow-hidden",children:[ee&&(0,a.jsx)("div",{className:"absolute top-4 right-4 z-50 bg-destructive text-destructive-foreground px-4 py-2 rounded-md shadow-lg",children:ee}),(0,a.jsxs)("div",{className:"flex-1 flex flex-col",children:[o||0===e.length?(0,a.jsx)("div",{className:"flex-1 flex items-center justify-center p-6",children:(0,a.jsxs)("div",{className:"w-full max-w-md space-y-8",children:[(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsx)("div",{className:"flex items-center justify-center w-16 h-16 mx-auto rounded-2xl bg-primary/10 text-primary",children:(0,a.jsx)("img",{src:"/logo.png",alt:"Dexto",className:"w-8 h-8"})}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)("h2",{className:"text-2xl font-semibold tracking-tight font-mono bg-gradient-to-r from-primary to-primary/70 bg-clip-text text-transparent text-center",children:"Hello, Welcome to Dexto!"}),(0,a.jsx)("p",{className:"text-muted-foreground text-base text-center",children:"Ask anything or connect new tools to expand what you can do."})]})]}),(0,a.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4 max-w-lg mx-auto",children:ej.map((e,s)=>(0,a.jsx)("button",{onClick:e.action,className:"group p-4 text-left rounded-xl border border-border/50 bg-card hover:bg-muted/50 transition-all duration-200 hover:border-border hover:shadow-minimal",children:(0,a.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,a.jsx)("span",{className:"text-lg",children:e.icon}),(0,a.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,a.jsx)("h3",{className:"font-medium text-sm group-hover:text-foreground transition-colors",children:e.title}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground mt-1 line-clamp-2",children:e.description})]})]})},s))}),(0,a.jsx)("div",{className:"text-xs text-muted-foreground space-y-1 text-center",children:(0,a.jsxs)("p",{children:["\uD83D\uDCA1 Try ",(0,a.jsx)("kbd",{className:"px-1.5 py-0.5 bg-muted rounded text-xs",children:"⌘K"})," for new chat, ",(0,a.jsx)("kbd",{className:"px-1.5 py-0.5 bg-muted rounded text-xs",children:"⌘J"})," for tools, ",(0,a.jsx)("kbd",{className:"px-1.5 py-0.5 bg-muted rounded text-xs",children:"⌘L"})," for playground, ",(0,a.jsx)("kbd",{className:"px-1.5 py-0.5 bg-muted rounded text-xs",children:"⌘/"})," for shortcuts"]})})]})}):(0,a.jsx)("div",{className:"flex-1 overflow-hidden",children:(0,a.jsx)("div",{className:"h-full overflow-y-auto",children:(0,a.jsx)(y,{messages:e})})}),(0,a.jsx)("div",{className:"shrink-0 border-t border-border/50 bg-background/80 backdrop-blur-xl",children:(0,a.jsx)("div",{className:"p-4",children:(0,a.jsx)(H,{onSend:eh,isSending:K})})})]}),(0,a.jsx)("div",{className:(0,l.cn)("shrink-0 transition-all duration-300 ease-in-out border-l border-border/50 bg-card",j?"w-80":"w-0 overflow-hidden"),children:j&&(0,a.jsx)(eb,{isOpen:j,onClose:()=>w(!1),currentSessionId:t,onSessionChange:ef,returnToWelcome:c,variant:"inline"})}),(0,a.jsx)("div",{className:(0,l.cn)("shrink-0 transition-all duration-300 ease-in-out border-l border-border/50 bg-card",g?"w-80":"w-0 overflow-hidden"),children:g&&(0,a.jsx)(ep,{isOpen:g,onClose:()=>v(!1),onOpenConnectModal:()=>h(!0),variant:"inline"})})]}),(0,a.jsx)(W.A,{isOpen:u,onClose:()=>h(!1)}),(0,a.jsx)(eo,{isOpen:p,onClose:()=>f(!1),onInstallServer:ex}),(0,a.jsx)(Q.lG,{open:F,onOpenChange:O,children:(0,a.jsxs)(Q.Cf,{className:"sm:max-w-2xl",children:[(0,a.jsxs)(Q.c7,{children:[(0,a.jsxs)(Q.L3,{className:"flex items-center space-x-2",children:[(0,a.jsx)(eA.A,{className:"h-5 w-5"}),(0,a.jsx)("span",{children:"Export Configuration"})]}),(0,a.jsxs)(Q.rr,{children:["Download your tool configuration for Claude Desktop or other MCP clients",t&&(0,a.jsxs)("span",{className:"block mt-1 text-sm text-muted-foreground",children:["Including session-specific settings for: ",(0,a.jsx)("span",{className:"font-mono",children:t})]})]})]}),(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(X.J,{htmlFor:"filename",children:"File name"}),(0,a.jsx)(Z.p,{id:"filename",value:I,onChange:e=>L(e.target.value),placeholder:"dexto-config",className:"font-mono"})]}),R&&(0,a.jsxs)(U.Fc,{variant:"destructive",children:[(0,a.jsx)(x.A,{className:"h-4 w-4"}),(0,a.jsx)(U.XL,{children:"Export Error"}),(0,a.jsx)(U.TN,{children:R})]}),z&&(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(X.J,{children:"Configuration Preview"}),(0,a.jsx)(b.T,{value:z,readOnly:!0,className:"h-32 font-mono text-xs bg-muted/30"})]})]}),(0,a.jsxs)(Q.Es,{children:[(0,a.jsx)(N.$,{variant:"outline",onClick:em,className:"flex items-center space-x-2",children:(0,a.jsx)("span",{children:$?"Copied!":"Copy"})}),(0,a.jsxs)(N.$,{onClick:ed,className:"flex items-center space-x-2",children:[(0,a.jsx)(eA.A,{className:"h-4 w-4"}),(0,a.jsx)("span",{children:"Download"})]})]})]})}),(0,a.jsx)(Q.lG,{open:et,onOpenChange:ea,children:(0,a.jsxs)(Q.Cf,{className:"sm:max-w-md",children:[(0,a.jsxs)(Q.c7,{children:[(0,a.jsxs)(Q.L3,{className:"flex items-center space-x-2",children:[(0,a.jsx)(eu.A,{className:"h-5 w-5 text-destructive"}),(0,a.jsx)("span",{children:"Delete Conversation"})]}),(0,a.jsxs)(Q.rr,{children:["This will permanently delete this conversation and all its messages. This action cannot be undone.",t&&(0,a.jsxs)("span",{className:"block mt-2 font-medium",children:["Session: ",(0,a.jsx)("span",{className:"font-mono",children:t})]})]})]}),(0,a.jsxs)(Q.Es,{children:[(0,a.jsx)(N.$,{variant:"outline",onClick:()=>ea(!1),children:"Cancel"}),(0,a.jsxs)(N.$,{variant:"destructive",onClick:ev,disabled:er,className:"flex items-center space-x-2",children:[(0,a.jsx)(eu.A,{className:"h-4 w-4"}),(0,a.jsx)("span",{children:er?"Deleting...":"Delete Conversation"})]})]})]})}),(0,a.jsx)(Q.lG,{open:V,onOpenChange:Y,children:(0,a.jsxs)(Q.Cf,{className:"sm:max-w-md",children:[(0,a.jsx)(Q.c7,{children:(0,a.jsxs)(Q.L3,{className:"flex items-center space-x-2",children:[(0,a.jsx)(eE.A,{className:"h-5 w-5"}),(0,a.jsx)("span",{children:"Keyboard Shortcuts"})]})}),(0,a.jsx)("div",{className:"space-y-3",children:[{key:"⌘H",desc:"Toggle sessions panel"},{key:"⌘K",desc:"Create new session"},{key:"⌘J",desc:"Toggle tools panel"},{key:"⌘⇧S",desc:"Search conversations"},{key:"⌘L",desc:"Open playground"},{key:"⌘⇧E",desc:"Export config"},{key:"⌘/",desc:"Show shortcuts"},{key:"Esc",desc:"Close panels"}].map((e,s)=>(0,a.jsxs)("div",{className:"flex justify-between items-center py-1",children:[(0,a.jsx)("span",{className:"text-sm text-muted-foreground",children:e.desc}),(0,a.jsx)(en.E,{variant:"outline",className:"font-mono text-xs",children:e.key})]},s))}),(0,a.jsx)(Q.Es,{children:(0,a.jsx)(Q.HM,{asChild:!0,children:(0,a.jsx)(N.$,{variant:"outline",children:"Close"})})})]})})]}),(0,a.jsx)(eC,{isOpen:k,onClose:()=>C(!1),onNavigateToSession:(e,s)=>{i(e),C(!1)}}),(0,a.jsx)(ew,{websocket:m})]})}},8958:(e,s,t)=>{Promise.resolve().then(t.bind(t,7432))}},e=>{var s=s=>e(e.s=s);e.O(0,[687,125,588,487,441,684,358],()=>s(8958)),_N_E=e.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[882],{704:(e,t,r)=>{Promise.resolve().then(r.bind(r,840))},840:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>C});var s=r(5155),a=r(2115),n=r(6874),o=r.n(n),l=r(7550),i=r(4186),c=r(646),d=r(4861),m=r(1243),u=r(4357),p=r(6516),x=r(8861),h=r(8240),f=r(4823),g=r(9852),b=r(5139),y=r(5784),v=r(9474),j=r(2714),N=r(7168),w=r(8145),S=r(9026);function k(){var e,t,r,n,k,C,T;let[A,O]=(0,a.useState)([]),[E,J]=(0,a.useState)(null),[z,D]=(0,a.useState)([]),[_,F]=(0,a.useState)(null),[P,q]=(0,a.useState)({}),[R,I]=(0,a.useState)(null),[$,M]=(0,a.useState)(!1),[W,L]=(0,a.useState)(null),[Z,Q]=(0,a.useState)({}),[U,B]=(0,a.useState)(!1),[V,G]=(0,a.useState)(null),[H,K]=(0,a.useState)([]),[X]=(0,a.useState)(Date.now()),[Y]=(0,a.useState)([{name:"Quick Test",description:"Fill with test values",apply:e=>{var t;let r={};return(null==(t=e.inputSchema)?void 0:t.properties)&&Object.entries(e.inputSchema.properties).forEach(e=>{let[t,s]=e;"string"===s.type?r[t]="test-".concat(t):"number"===s.type?r[t]=42:"boolean"===s.type?r[t]=!0:"object"===s.type?r[t]='{"example": "value"}':"array"===s.type&&(r[t]='["example"]')}),r}},{name:"Empty Form",description:"Clear all fields",apply:()=>({})},{name:"Required Only",description:"Fill only required fields",apply:e=>{var t,r;let s={};return(null==(t=e.inputSchema)?void 0:t.properties)&&(null==(r=e.inputSchema)?void 0:r.required)&&e.inputSchema.required.forEach(t=>{let r=e.inputSchema.properties[t];"string"===r.type||"number"===r.type?s[t]="":"boolean"===r.type?s[t]=!1:"object"===r.type?s[t]="{}":"array"===r.type&&(s[t]="[]")}),s}}]),ee="/api",et=(0,a.useRef)(null),er=(0,a.useRef)(null);(0,a.useEffect)(()=>()=>{var e;null==(e=et.current)||e.abort()},[]);let es=(e,t)=>{console.error("Playground Error (".concat(t||"general","):"),e),"input"!==t&&L(e)},ea=(0,a.useCallback)(async()=>{M(!0),L(null);try{let e=await fetch("".concat(ee,"/mcp/servers"));if(!e.ok){let t=await e.json().catch(()=>({error:"Failed to fetch servers"}));throw Error(t.error||"Server List: ".concat(e.statusText))}let t=await e.json();O(t.servers||[]),t.servers&&0!==t.servers.length||console.log("No MCP servers found or returned from API.")}catch(e){es(e.message,"servers"),O([])}finally{M(!1)}},[]);(0,a.useEffect)(()=>{ea()},[ea]);let en=(0,a.useCallback)(async e=>{var t;null==(t=et.current)||t.abort();let r=new AbortController;if(et.current=r,J(e),F(null),I(null),D([]),L(null),Q({}),"connected"!==e.status)return void console.warn('Server "'.concat(e.name,'" is ').concat(e.status,". Cannot fetch tools."));M(!0);try{let t=await fetch("".concat(ee,"/mcp/servers/").concat(e.id,"/tools"),{signal:r.signal});if(!t.ok){let r=await t.json().catch(()=>({error:"Failed to fetch tools for ".concat(e.name)}));throw Error(r.error||"Tool List (".concat(e.name,"): ").concat(t.statusText))}let s=await t.json();if(r.signal.aborted)return;D(s.tools||[]),s.tools&&0!==s.tools.length||console.log('No tools found for server "'.concat(e.name,'".'))}catch(e){"AbortError"!==e.name&&(es(e.message,"tools"),D([]))}finally{r.signal.aborted||M(!1)}},[]),eo=(0,a.useCallback)(e=>{F(e),I(null),L(null),Q({});let t={};if(e.inputSchema&&e.inputSchema.properties)for(let r in e.inputSchema.properties){let s=e.inputSchema.properties[r];void 0!==s.default?t[r]=s.default:"boolean"===s.type?t[r]=!1:("number"===s.type||"integer"===s.type||"object"===s.type||s.type,t[r]="")}q(t)},[]),el=(0,a.useCallback)((e,t,r)=>{if((q(r=>({...r,[e]:t})),Z[e]&&Q(t=>({...t,[e]:""})),"object"===r||"array"===r)&&""!==t)try{JSON.parse(t)}catch(t){Q(t=>({...t,[e]:"Invalid JSON format"}));return}},[Z]),ei=()=>{if(!_||!_.inputSchema||!_.inputSchema.properties)return!0;let e={},t=!0;for(let s in _.inputSchema.properties){var r;let a=_.inputSchema.properties[s],n=P[s];if((null==(r=_.inputSchema.required)?void 0:r.includes(s))&&(void 0===n||""===n||"boolean"===a.type&&"boolean"!=typeof n)){e[s]="This field is required.",t=!1;continue}if(("number"===a.type||"integer"===a.type)&&""!==n&&isNaN(Number(n))&&(e[s]="Must be a valid number.",t=!1),("object"===a.type||"array"===a.type)&&""!==n)try{JSON.parse(n)}catch(r){e[s]="Invalid JSON format.",t=!1}}return Q(e),t},ec=(0,a.useCallback)(async()=>{var e;if(!E||!_)return void es("No server or tool selected for execution.","execution");null==(e=er.current)||e.abort();let t=new AbortController;if(er.current=t,L(null),I(null),!ei())return void es("Please correct the input errors.","input");let r=Date.now(),s="exec_".concat(Date.now(),"_").concat(Math.random().toString(36).substr(2,9));M(!0);try{let e={};if(_.inputSchema&&_.inputSchema.properties)for(let t in _.inputSchema.properties){let r=_.inputSchema.properties[t],s=P[t];if("number"===r.type)s=""===s?void 0:Number(s);else if("integer"===r.type)if(""===s)s=void 0;else{let e=Number(s);if(!Number.isInteger(e)){Q(e=>({...e,[t]:"Must be a valid integer."})),M(!1);return}s=e}else if("boolean"===r.type)s="string"==typeof s?"true"===s:!!s;else if(("object"===r.type||"array"===r.type)&&"string"==typeof s&&""!==s.trim())try{s=JSON.parse(s)}catch(e){Q(e=>({...e,[t]:"Invalid JSON before sending."})),M(!1);return}else("object"===r.type||"array"===r.type)&&(void 0===s||""===s)&&(s=void 0);void 0!==s&&(e[t]=s)}let a=await fetch("".concat(ee,"/mcp/servers/").concat(E.id,"/tools/").concat(_.id,"/execute"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e),signal:t.signal}),n=await a.json();if(!a.ok)throw Error(n.error||"Tool Execution (".concat(_.name,"): ").concat(a.statusText));let o=Date.now()-r;I(n),K(e=>[{id:s,toolName:_.name,timestamp:new Date,success:!0,duration:o},...e.slice(0,9)])}catch(e){if("AbortError"!==e.name){let t=Date.now()-r;es(e.message,"execution"),e.message&&(!R||R.success||R.error!==e.message)&&I({success:!1,error:e.message}),K(e=>[{id:s,toolName:(null==_?void 0:_.name)||"Unknown",timestamp:new Date,success:!1,duration:t},...e.slice(0,9)])}}finally{t.signal.aborted||M(!1)}},[E,_,P,ei,R]),ed=async(e,t)=>{try{await navigator.clipboard.writeText(e),G({message:t||"Copied to clipboard",type:"success"}),setTimeout(()=>G(null),3e3)}catch(e){G({message:"Failed to copy to clipboard. Please check browser permissions.",type:"error"}),setTimeout(()=>G(null),5e3),console.error("Failed to copy to clipboard:",e)}};return(0,s.jsxs)("div",{className:"flex h-screen bg-muted/40 text-foreground antialiased",children:[(0,s.jsxs)("aside",{className:"w-72 flex-shrink-0 border-r border-border bg-background p-4 flex flex-col rounded-r-lg shadow-md",children:[(0,s.jsx)("div",{className:"flex items-center justify-between pb-3 mb-3 border-b border-border",children:(0,s.jsx)(o(),{href:"/",children:(0,s.jsx)(N.$,{variant:"outline",size:"sm",className:"pl-2 pr-3",asChild:!0,children:(0,s.jsxs)("span",{children:[(0,s.jsx)(l.A,{className:"h-4 w-4 mr-1.5"}),"Back to Chat"]})})})}),(0,s.jsxs)("div",{className:"flex justify-between items-center mb-2",children:[(0,s.jsx)("h2",{className:"text-lg font-semibold text-foreground px-1",children:"MCP Servers"}),$&&0===A.length&&(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"Loading..."})]}),W&&0===A.length&&!$&&(0,s.jsxs)("p",{className:"text-destructive text-sm p-2 bg-destructive/10 rounded-md",children:["Error: ",W]}),0===A.length&&!$&&!W&&(0,s.jsx)("p",{className:"text-muted-foreground text-sm px-1",children:"No servers available."}),(0,s.jsx)("div",{className:"flex-grow overflow-y-auto space-y-1 pr-1 -mr-1",children:A.length>0&&(0,s.jsx)("ul",{className:"space-y-1",children:A.map(e=>(0,s.jsx)("li",{className:"p-2.5 rounded-md cursor-pointer hover:bg-muted transition-colors group \n ".concat((null==E?void 0:E.id)===e.id?"bg-primary text-primary-foreground hover:bg-primary/90":"text-foreground hover:text-primary","\n ").concat("connected"!==e.status?"opacity-60 cursor-not-allowed":""),onClick:()=>"connected"===e.status&&en(e),title:"connected"!==e.status?"".concat(e.name," is ").concat(e.status):e.name,children:(0,s.jsxs)("div",{className:"flex justify-between items-center",children:[(0,s.jsx)("span",{className:"font-medium truncate group-hover:text-primary-foreground_conditional",children:e.name}),(0,s.jsx)("span",{className:"text-xs px-2 py-0.5 rounded-full \n ".concat("connected"===e.status?"bg-green-100 text-green-700 dark:bg-green-700/20 dark:text-green-400":"disconnected"===e.status?"bg-slate-100 text-slate-600 dark:bg-slate-700/20 dark:text-slate-400":"bg-yellow-100 text-yellow-700 dark:bg-yellow-700/20 dark:text-yellow-400"),children:e.status})]})},e.id))})}),(0,s.jsx)(N.$,{onClick:()=>B(!0),variant:"outline",className:"mt-auto w-full sticky bottom-0 left-0 right-0 bg-background hover:bg-muted py-3",children:"Connect New Server"})]}),(0,s.jsxs)("section",{className:"w-80 flex-shrink-0 border-r border-border bg-background p-4 flex flex-col rounded-l-none shadow-md",children:[(0,s.jsxs)("div",{className:"flex justify-between items-center pb-3 mb-3 border-b border-border",children:[(0,s.jsx)("h2",{className:"text-lg font-semibold text-foreground px-1",children:"Tools"}),E&&"connected"===E.status&&$&&0===z.length&&(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"Loading..."})]}),(0,s.jsxs)("div",{className:"flex-grow overflow-y-auto space-y-1 pr-1 -mr-1",children:[!E&&(0,s.jsx)("p",{className:"text-muted-foreground text-sm px-1",children:"Select a connected server to view tools."}),E&&"connected"!==E.status&&(0,s.jsxs)("p",{className:"text-muted-foreground text-sm px-1",children:['Server "',E.name,'" is ',E.status,". Tools unavailable."]}),E&&"connected"===E.status&&!$&&0===z.length&&!W&&(0,s.jsxs)("p",{className:"text-muted-foreground text-sm px-1",children:["No tools found for ",E.name,"."]}),W&&(null==E?void 0:E.status)==="connected"&&0===z.length&&!$&&(0,s.jsxs)("p",{className:"text-destructive text-sm p-2 bg-destructive/10 rounded-md",children:["Error loading tools: ",W]}),z.length>0&&(0,s.jsx)("ul",{className:"space-y-1",children:z.map(e=>(0,s.jsxs)("li",{className:"p-3 rounded-md cursor-pointer hover:bg-muted transition-colors group\n ".concat((null==_?void 0:_.id)===e.id?"bg-primary text-primary-foreground shadow-sm hover:bg-primary/90":"text-foreground hover:text-primary"),onClick:()=>eo(e),children:[(0,s.jsx)("h3",{className:"font-medium truncate group-hover:text-primary-foreground_conditional",children:e.name}),e.description&&(0,s.jsx)("p",{className:"text-sm text-muted-foreground mt-0.5 group-hover:text-primary-foreground_conditional/80",children:e.description})]},e.id))})]})]}),(0,s.jsxs)("main",{className:"flex-1 p-6 flex flex-col bg-zinc-50 dark:bg-zinc-900 overflow-y-auto",children:[(0,s.jsx)("div",{className:"pb-3 mb-4 border-b border-border",children:(0,s.jsxs)("div",{className:"flex justify-between items-start",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h2",{className:"text-lg font-semibold text-foreground",children:"Tool Runner"}),H.length>0&&(0,s.jsxs)("div",{className:"flex items-center space-x-4 mt-2 text-sm text-muted-foreground",children:[(0,s.jsxs)("div",{className:"flex items-center space-x-1",children:[(0,s.jsx)(i.A,{className:"h-3 w-3"}),(0,s.jsxs)("span",{children:[H.length," executions this session"]})]}),(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,s.jsxs)("div",{className:"flex items-center space-x-1",children:[(0,s.jsx)(c.A,{className:"h-3 w-3 text-green-500"}),(0,s.jsx)("span",{children:H.filter(e=>e.success).length})]}),(0,s.jsxs)("div",{className:"flex items-center space-x-1",children:[(0,s.jsx)(d.A,{className:"h-3 w-3 text-red-500"}),(0,s.jsx)("span",{children:H.filter(e=>!e.success).length})]})]})]})]}),H.length>0&&(0,s.jsxs)("div",{className:"hidden lg:block",children:[(0,s.jsx)("p",{className:"text-xs text-muted-foreground mb-2",children:"Recent executions"}),(0,s.jsx)("div",{className:"flex space-x-1",children:H.slice(0,5).map(e=>(0,s.jsxs)(w.E,{variant:e.success?"secondary":"destructive",className:"text-xs px-2 py-1 truncate max-w-24",title:"".concat(e.toolName," - ").concat(e.success?"Success":"Failed"," (").concat(e.duration,"ms)"),children:[e.toolName.slice(0,8),e.toolName.length>8&&"..."]},e.id))})]})]})}),W&&_&&(!R||!R.success)&&(0,s.jsxs)("div",{className:"mb-4 p-3 border border-destructive/50 bg-destructive/10 rounded-md text-destructive text-sm",children:[(0,s.jsx)("p",{className:"font-medium",children:"Error:"}),(0,s.jsx)("p",{children:W})]}),V&&(0,s.jsxs)(S.Fc,{variant:"error"===V.type?"destructive":"default",className:"mb-4 ".concat("success"===V.type?"border-green-200 bg-green-50 text-green-800 dark:border-green-800 dark:bg-green-950 dark:text-green-400":""),children:["error"===V.type&&(0,s.jsx)(m.A,{className:"h-4 w-4"}),"success"===V.type&&(0,s.jsx)(c.A,{className:"h-4 w-4"}),(0,s.jsx)(S.TN,{children:V.message})]}),!_&&(0,s.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,s.jsxs)("div",{className:"text-center max-w-md",children:[(0,s.jsx)("div",{className:"mb-4",children:(0,s.jsx)(l.A,{className:"h-12 w-12 mx-auto text-muted-foreground opacity-50"})}),(0,s.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Select a Tool"}),(0,s.jsx)("p",{className:"text-muted-foreground",children:"Choose a tool from the left panel to start testing and experimenting with MCP capabilities."})]})}),_&&(0,s.jsxs)("div",{className:"space-y-6",children:[(0,s.jsx)("div",{className:"p-4 border border-border rounded-lg bg-card shadow-sm",children:(0,s.jsxs)("div",{className:"flex justify-between items-start",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-base font-semibold text-primary mb-1",children:_.name}),_.description&&(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:_.description})]}),(0,s.jsxs)("div",{className:"text-right text-xs text-muted-foreground",children:[(0,s.jsxs)("p",{children:["Server: ",null==E?void 0:E.name]}),H.filter(e=>e.toolName===_.name).length>0&&(0,s.jsxs)("p",{children:["Runs: ",H.filter(e=>e.toolName===_.name).length]})]})]})}),(0,s.jsxs)("form",{onSubmit:e=>{e.preventDefault(),ei()&&ec()},className:"space-y-5 p-4 border border-border rounded-lg bg-card shadow-sm",children:[_&&(null==(e=_.inputSchema)?void 0:e.properties)&&Object.keys(_.inputSchema.properties).length>0&&(0,s.jsxs)("div",{className:"border-b border-border pb-4",children:[(0,s.jsx)("h4",{className:"text-sm font-medium mb-2 text-muted-foreground",children:"Quick Fill Templates"}),(0,s.jsx)("div",{className:"flex flex-wrap gap-2",children:Y.map((e,t)=>(0,s.jsx)(N.$,{type:"button",variant:"outline",size:"sm",onClick:()=>{q(e.apply(_)),Q({})},className:"text-xs",title:e.description,children:e.name},t))})]}),_&&_.inputSchema&&_.inputSchema.properties?Object.entries(_.inputSchema.properties).map(e=>{var t,r;let a,[n,o]=e,l=null==(r=_.inputSchema)||null==(t=r.required)?void 0:t.includes(n),i=Z[n],c="w-full ".concat(i?"border-destructive focus-visible:ring-destructive":"border-input");if(o.enum&&Array.isArray(o.enum)){let e=o.enum.every(e=>"boolean"==typeof e),t=o.enum.every(e=>"number"==typeof e);a=(0,s.jsxs)(y.l6,{value:void 0===P[n]&&void 0!==o.default?String(o.default):String(P[n]||""),onValueChange:r=>{let s=r;e?s="true"===r:t&&(s=Number(r)),el(n,s,o.type)},disabled:$,children:[(0,s.jsx)(y.bq,{id:n,className:c,children:(0,s.jsx)(y.yv,{placeholder:"Select ".concat(o.description||n).concat(l?"":" (optional)","...")})}),(0,s.jsx)(y.gC,{children:o.enum.map(e=>(0,s.jsx)(y.eb,{value:String(e),children:String(e)},String(e)))})]})}else if("boolean"===o.type)a=(0,s.jsx)(b.S,{id:n,checked:void 0===P[n]&&void 0!==o.default?!!o.default:!!P[n],onCheckedChange:e=>el(n,e,o.type),disabled:$,className:"".concat(i?"border-destructive ring-destructive":"")});else if("object"===o.type||"array"===o.type)a=(0,s.jsx)(v.T,{id:n,value:void 0===P[n]&&void 0!==o.default?JSON.stringify(o.default,null,2):P[n]||"",onChange:e=>el(n,e.target.value,o.type),rows:5,className:"".concat(c," font-mono text-sm min-h-[100px] resize-y"),placeholder:"Enter JSON for ".concat(o.description||n),disabled:$});else{let e="text";("number"===o.type||"integer"===o.type)&&(e="number"),"date-time"===o.format&&(e="datetime-local"),"date"===o.format&&(e="date"),"email"===o.format&&(e="email"),"uri"===o.format&&(e="url"),"password"===o.format&&(e="password"),a=(0,s.jsx)(g.p,{type:e,id:n,value:void 0===P[n]&&void 0!==o.default?String(o.default):String(P[n]||""),onChange:e=>el(n,e.target.value,o.type),className:c,placeholder:o.description||"Enter ".concat(n),disabled:$,step:"number"===o.type||"integer"===o.type?"any":void 0})}return(0,s.jsxs)("div",{className:"grid gap-1.5",children:[(0,s.jsxs)("div",{className:"flex ".concat("boolean"===o.type?"flex-row items-center space-x-3":"flex-col"),children:[(0,s.jsxs)(j.J,{htmlFor:n,className:"".concat("boolean"===o.type?"leading-none cursor-pointer peer-disabled:cursor-not-allowed peer-disabled:opacity-70":"capitalize font-medium"),children:[o.description||n.replace(/([A-Z]+(?=[A-Z][a-z]))|([A-Z][a-z])/g," $&").trim().replace(/_/g," "),l&&(0,s.jsx)("span",{className:"text-destructive text-lg ml-0.5",children:"*"})]}),"boolean"===o.type?a:(0,s.jsx)("div",{className:"w-full",children:a})]}),i&&(0,s.jsx)("p",{className:"text-xs text-destructive",children:i})]},n)}):(0,s.jsx)("p",{className:"text-sm text-muted-foreground py-2",children:"This tool does not require any inputs, or its input schema is not defined."}),_&&(0,s.jsx)(N.$,{type:"submit",disabled:$||E&&"connected"!==E.status||Object.keys(Z).some(e=>""!==Z[e]),className:"w-full sm:w-auto mt-3 py-2.5 px-6",children:$?"Executing...":"Run Tool"}),_&&Object.keys(P).length>0&&(0,s.jsxs)("div",{className:"flex gap-2 mt-4 pt-4 border-t border-border",children:[(0,s.jsxs)(N.$,{type:"button",variant:"outline",size:"sm",onClick:()=>{_&&E&&ed(JSON.stringify({server:E.name,tool:_.name,inputs:P,timestamp:new Date().toISOString()},null,2),"Tool configuration copied!")},className:"flex items-center gap-2",children:[(0,s.jsx)(u.A,{className:"h-3 w-3"}),"Copy Config"]}),(0,s.jsxs)(N.$,{type:"button",variant:"outline",size:"sm",onClick:()=>{if(!_||!E)return;E.name,_.name;let e="Check out this Dexto tool configuration:\n\nServer: ".concat(E.name,"\nTool: ").concat(_.name,"\nInputs: ").concat(JSON.stringify(P,null,2));navigator.share?navigator.share({title:"Dexto Tool: ".concat(_.name),text:e}):ed(e,"Tool configuration copied for sharing!")},className:"flex items-center gap-2",children:[(0,s.jsx)(p.A,{className:"h-3 w-3"}),"Share"]})]})]}),R&&(0,s.jsxs)("div",{className:"mt-6 p-4 border border-border rounded-lg bg-muted/30",children:[(0,s.jsxs)("div",{className:"flex justify-between items-center mb-3",children:[(0,s.jsxs)("h3",{className:"text-lg font-semibold text-foreground",children:["Tool Result for ",(0,s.jsx)("span",{className:"font-bold text-primary",children:null==_?void 0:_.name})]}),(0,s.jsxs)(N.$,{variant:"outline",size:"sm",onClick:()=>{R&&ed("object"==typeof R.data?JSON.stringify(R.data,null,2):String(R.data),"Tool result copied!")},className:"flex items-center gap-2",children:[(0,s.jsx)(u.A,{className:"h-3 w-3"}),"Copy Result"]})]}),R.success?(0,s.jsx)("div",{className:"space-y-3 text-sm",children:((null==(r=R.metadata)||null==(t=r.mimeType)?void 0:t.startsWith("image/"))||(null==(k=R.metadata)||null==(n=k.type)?void 0:n.startsWith("image"))||R.data&&"object"==typeof R.data&&Array.isArray(R.data.content))&&R.data?(()=>{var e;let t="",r=null,a=null==(e=R.metadata)?void 0:e.mimeType,n=[];if(Array.isArray(R.data))(r=R.data.find(e=>e&&"image"===e.type))&&"string"==typeof r.data&&r.mimeType&&(t="data:".concat(r.mimeType,";base64,").concat(r.data));else if(R.data&&"object"==typeof R.data&&Array.isArray(R.data.content)){let e=R.data.content;if((r=e.find(e=>e&&"image"===e.type))&&"string"==typeof r.data){let e=r.mimeType||a;e&&(t="data:".concat(e,";base64,").concat(r.data))}n=e.filter(e=>e&&"image"!==e.type)}else"string"==typeof R.data&&(R.data.startsWith("data:image")?t=R.data:a?t="data:".concat(a,";base64,").concat(R.data):(R.data.startsWith("http://")||R.data.startsWith("https://"))&&(t=R.data));return t?(0,s.jsx)("img",{src:t,alt:"Tool result image",className:"my-2 max-h-96 w-auto rounded border border-input shadow-sm"}):n.length>0?(0,s.jsx)("div",{className:"space-y-3",children:n.map((e,t)=>(0,s.jsx)("pre",{className:"whitespace-pre-wrap text-sm bg-background p-3 rounded-md border border-input font-mono overflow-x-auto max-h-64",children:"object"==typeof e?JSON.stringify(e,null,2):String(e)},t))}):(0,s.jsxs)("p",{className:"text-xs text-destructive",children:["Image data is not in a recognized format. Data: ",JSON.stringify(R.data)]})})():(null==(C=R.metadata)?void 0:C.type)==="markdown"&&R.data?(0,s.jsx)("div",{className:"prose prose-sm dark:prose-invert max-w-none p-3 bg-background rounded border border-input leading-relaxed",children:(0,s.jsx)(h.oz,{remarkPlugins:[f.A],children:"string"==typeof R.data?R.data:JSON.stringify(R.data,null,2)})}):(null==(T=R.metadata)?void 0:T.type)==="json"&&R.data?(0,s.jsx)("pre",{className:"whitespace-pre-wrap text-sm bg-background p-3 rounded-md border border-input font-mono",children:"string"==typeof R.data?R.data:JSON.stringify(R.data,null,2)}):(0,s.jsx)("pre",{className:"whitespace-pre-wrap text-sm bg-background p-3 rounded-md border border-input",children:"object"==typeof R.data?JSON.stringify(R.data,null,2):String(R.data)})}):(0,s.jsxs)("div",{className:"p-3 bg-destructive/10 rounded-md",children:[(0,s.jsx)("p",{className:"text-sm text-destructive font-semibold",children:"Error executing tool:"}),(0,s.jsx)("pre",{className:"mt-1 text-xs text-destructive whitespace-pre-wrap break-all",children:R.error||"Unknown error"})]})]})]})]}),(0,s.jsx)(x.A,{isOpen:U,onClose:()=>{B(!1),ea()}})]})}function C(){return(0,s.jsx)(k,{})}}},e=>{var t=t=>e(e.s=t);e.O(0,[687,879,588,441,684,358],()=>t(704)),_N_E=e.O()}]);
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8d697b304b401681-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba015fad6dcf6784-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/569ce4b8f30dc480-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.00%;size-adjust:104.76%}.__className_5cfdac{font-family:Geist,Geist Fallback;font-style:normal}.__variable_5cfdac{--font-geist-sans:"Geist","Geist Fallback"}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/9610d9e46709d722-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/747892c23ea88013-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/93f479601ee12b01-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Mono Fallback;src:local("Arial");ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.00%;size-adjust:134.59%}.__className_9a8899{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.__variable_9a8899{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}
|
|
2
|
-
|
|
3
|
-
/*! tailwindcss v4.1.5 | MIT License | https://tailwindcss.com */@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&display=swap";@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:host,:root{--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-500:oklch(63.7% .237 25.331);--color-red-700:oklch(50.5% .213 27.518);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-800:oklch(47% .157 37.304);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-700:oklch(55.4% .135 66.442);--color-yellow-800:oklch(47.6% .114 61.907);--color-yellow-900:oklch(42.1% .095 57.708);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-green-900:oklch(39.3% .095 152.535);--color-green-950:oklch(26.6% .065 152.934);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-indigo-100:oklch(93% .034 272.788);--color-indigo-800:oklch(39.8% .195 277.366);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-800:oklch(43.8% .218 303.724);--color-pink-100:oklch(94.8% .028 342.258);--color-pink-800:oklch(45.9% .187 3.815);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-zinc-50:oklch(98.5% 0 0);--color-zinc-900:oklch(21% .006 285.885);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-lg:32rem;--container-2xl:42rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--leading-relaxed:1.625;--radius-xs:.125rem;--radius-2xl:1rem;--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--blur-sm:8px;--blur-xl:24px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-geist-sans);--default-mono-font-family:var(--font-geist-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}html{font-feature-settings:"cv11","ss01";font-variation-settings:"opsz" 32;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-weight:400}*{border-color:var(--border)}body{background-color:var(--background);color:var(--foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"rlig" 1,"calt" 1}:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color:var(--ring);--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-offset-color:var(--background);--tw-outline-style:none;outline-style:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background-color:#0000}::-webkit-scrollbar-thumb{background-color:var(--border);border-radius:3.40282e+38px}::-webkit-scrollbar-thumb:hover{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){::-webkit-scrollbar-thumb:hover{background-color:color-mix(in oklab,var(--muted-foreground)50%,transparent)}}.animate-in{animation:animateIn .2s}.animate-out{animation:animateOut .15s}@keyframes animateIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes animateOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-4px)}}h1,h2,h3,h4,h5,h6{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.font-mono,code,pre{font-feature-settings:"liga" 1,"calt" 1;font-family:JetBrains Mono,ui-monospace,monospace}.btn-minimal-hover{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;transition-duration:.15s}@media (hover:hover){.btn-minimal-hover:hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.btn-minimal-hover:hover{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}}.glass-card{border-style:var(--tw-border-style);border-width:1px;border-color:var(--border);background-color:var(--background);--tw-backdrop-blur:blur(var(--blur-xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}@supports (color:color-mix(in lab,red,red)){.glass-card{border-color:color-mix(in oklab,var(--border)50%,transparent);background-color:color-mix(in oklab,var(--background)80%,transparent)}}.shadow-minimal{box-shadow:0 1px 2px #0000000d}.shadow-minimal-lg{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.dark .shadow-minimal{box-shadow:0 1px 2px #0000004d}.dark .shadow-minimal-lg{box-shadow:0 4px 6px -1px #0006,0 2px 4px -2px #0003}}@layer components;@layer utilities{.\@container\/card-header{container:card-header/inline-size}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden}.absolute,.sr-only{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.-top-2{top:calc(var(--spacing)*-2)}.top-0{top:calc(var(--spacing)*0)}.top-1\/2{top:50%}.top-4{top:calc(var(--spacing)*4)}.top-\[20\%\]{top:20%}.top-\[50\%\]{top:50%}.-right-2{right:calc(var(--spacing)*-2)}.right-0{right:calc(var(--spacing)*0)}.right-2{right:calc(var(--spacing)*2)}.right-4{right:calc(var(--spacing)*4)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-1\.5{bottom:calc(var(--spacing)*1.5)}.left-0{left:calc(var(--spacing)*0)}.left-3{left:calc(var(--spacing)*3)}.left-\[50\%\]{left:50%}.z-40{z-index:40}.z-50{z-index:50}.col-span-1{grid-column:span 1/span 1}.col-span-3{grid-column:span 3/span 3}.col-span-5{grid-column:span 5/span 5}.col-span-6{grid-column:span 6/span 6}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.-mx-1{margin-inline:calc(var(--spacing)*-1)}.mx-2{margin-inline:calc(var(--spacing)*2)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing)*1)}.my-2{margin-block:calc(var(--spacing)*2)}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-auto{margin-top:auto}.-mr-1{margin-right:calc(var(--spacing)*-1)}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-1\.5{margin-right:calc(var(--spacing)*1.5)}.mr-2{margin-right:calc(var(--spacing)*2)}.mr-3{margin-right:calc(var(--spacing)*3)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-1\.5{margin-bottom:calc(var(--spacing)*1.5)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.ml-0\.5{margin-left:calc(var(--spacing)*.5)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-1\.5{margin-left:calc(var(--spacing)*1.5)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-3{margin-left:calc(var(--spacing)*3)}.line-clamp-1{-webkit-line-clamp:1}.line-clamp-1,.line-clamp-2{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.field-sizing-content{field-sizing:content}.size-2\.5{width:calc(var(--spacing)*2.5);height:calc(var(--spacing)*2.5)}.size-3\.5{width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-9{width:calc(var(--spacing)*9);height:calc(var(--spacing)*9)}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-3{height:calc(var(--spacing)*3)}.h-3\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-11{height:calc(var(--spacing)*11)}.h-12{height:calc(var(--spacing)*12)}.h-16{height:calc(var(--spacing)*16)}.h-20{height:calc(var(--spacing)*20)}.h-32{height:calc(var(--spacing)*32)}.h-\[1px\]{height:1px}.h-\[80vh\]{height:80vh}.h-\[600px\]{height:600px}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-\(--radix-select-content-available-height\){max-height:var(--radix-select-content-available-height)}.max-h-48{max-height:calc(var(--spacing)*48)}.max-h-60{max-height:calc(var(--spacing)*60)}.max-h-64{max-height:calc(var(--spacing)*64)}.max-h-96{max-height:calc(var(--spacing)*96)}.max-h-\[70vh\]{max-height:70vh}.max-h-\[80vh\]{max-height:80vh}.min-h-4{min-height:calc(var(--spacing)*4)}.min-h-16{min-height:calc(var(--spacing)*16)}.min-h-\[42px\]{min-height:42px}.min-h-\[100px\]{min-height:100px}.min-h-\[600px\]{min-height:600px}.w-0{width:calc(var(--spacing)*0)}.w-1\.5{width:calc(var(--spacing)*1.5)}.w-2{width:calc(var(--spacing)*2)}.w-3{width:calc(var(--spacing)*3)}.w-3\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-11{width:calc(var(--spacing)*11)}.w-12{width:calc(var(--spacing)*12)}.w-16{width:calc(var(--spacing)*16)}.w-28{width:calc(var(--spacing)*28)}.w-72{width:calc(var(--spacing)*72)}.w-80{width:calc(var(--spacing)*80)}.w-\[1px\]{width:1px}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-screen{width:100vw}.max-w-2xl{max-width:var(--container-2xl)}.max-w-24{max-width:calc(var(--spacing)*24)}.max-w-\[75\%\]{max-width:75%}.max-w-\[120px\]{max-width:120px}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-\[8rem\]{min-width:8rem}.min-w-\[80px\]{min-width:80px}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.origin-\(--radix-popover-content-transform-origin\){transform-origin:var(--radix-popover-content-transform-origin)}.origin-\(--radix-select-content-transform-origin\){transform-origin:var(--radix-select-content-transform-origin)}.origin-\(--radix-tooltip-content-transform-origin\){transform-origin:var(--radix-tooltip-content-transform-origin)}.translate-x-0{--tw-translate-x:calc(var(--spacing)*0)}.translate-x-0,.translate-x-0\.5{translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-0\.5{--tw-translate-x:calc(var(--spacing)*.5)}.translate-x-\[-50\%\]{--tw-translate-x:-50%}.translate-x-\[-50\%\],.translate-x-full{translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%}.-translate-y-1\/2{--tw-translate-y:calc(calc(1/2*100%)*-1)}.-translate-y-1\/2,.translate-y-0{translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-0{--tw-translate-y:calc(var(--spacing)*0)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[calc\(-50\%_-_2px\)\]{--tw-translate-y:calc(-50% - 2px);translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-75{--tw-scale-x:75%;--tw-scale-y:75%;--tw-scale-z:75%;scale:var(--tw-scale-x)var(--tw-scale-y)}.rotate-45{rotate:45deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.resize-y{resize:vertical}.scroll-my-1{scroll-margin-block:calc(var(--spacing)*1)}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-cols-\[0_1fr\]{grid-template-columns:0 1fr}.grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.justify-items-start{justify-items:start}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*8)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*8)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-1>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*1)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-3>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*3)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*4)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-x-reverse)))}.gap-y-0\.5{row-gap:calc(var(--spacing)*.5)}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\[2px\]{border-radius:2px}.rounded-\[4px\]{border-radius:4px}.rounded-full{border-radius:3.40282e+38px}.rounded-lg{border-radius:calc(var(--radius) + 2px)}.rounded-md{border-radius:var(--radius)}.rounded-sm{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:calc(var(--radius) + 6px)}.rounded-xs{border-radius:var(--radius-xs)}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-r-lg{border-top-right-radius:calc(var(--radius) + 2px);border-bottom-right-radius:calc(var(--radius) + 2px)}.rounded-br-none{border-bottom-right-radius:0}.rounded-bl-none{border-bottom-left-radius:0}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-none{--tw-border-style:none;border-style:none}.border-border,.border-border\/30{border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.border-border\/30{border-color:color-mix(in oklab,var(--border)30%,transparent)}}.border-border\/50{border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.border-border\/50{border-color:color-mix(in oklab,var(--border)50%,transparent)}}.border-current{border-color:currentColor}.border-destructive,.border-destructive\/20{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.border-destructive\/20{border-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.border-destructive\/50{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.border-destructive\/50{border-color:color-mix(in oklab,var(--destructive)50%,transparent)}}.border-green-200{border-color:var(--color-green-200)}.border-input{border-color:var(--input)}.border-muted,.border-muted\/30{border-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.border-muted\/30{border-color:color-mix(in oklab,var(--muted)30%,transparent)}}.border-primary\/10{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/10{border-color:color-mix(in oklab,var(--primary)10%,transparent)}}.border-primary\/20{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/20{border-color:color-mix(in oklab,var(--primary)20%,transparent)}}.border-red-200{border-color:var(--color-red-200)}.border-transparent{border-color:#0000}.border-t-primary{border-top-color:var(--primary)}.border-t-transparent{border-top-color:#0000}.bg-accent{background-color:var(--accent)}.bg-background,.bg-background\/50{background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){.bg-background\/50{background-color:color-mix(in oklab,var(--background)50%,transparent)}}.bg-background\/80{background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){.bg-background\/80{background-color:color-mix(in oklab,var(--background)80%,transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-blue-100{background-color:var(--color-blue-100)}.bg-border{background-color:var(--border)}.bg-card,.bg-card\/50{background-color:var(--card)}@supports (color:color-mix(in lab,red,red)){.bg-card\/50{background-color:color-mix(in oklab,var(--card)50%,transparent)}}.bg-destructive,.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/10{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-50\/50{background-color:#f0fdf480}@supports (color:color-mix(in lab,red,red)){.bg-green-50\/50{background-color:color-mix(in oklab,var(--color-green-50)50%,transparent)}}.bg-green-100{background-color:var(--color-green-100)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-600{background-color:var(--color-green-600)}.bg-indigo-100{background-color:var(--color-indigo-100)}.bg-muted,.bg-muted\/20{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/20{background-color:color-mix(in oklab,var(--muted)20%,transparent)}}.bg-muted\/30{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/30{background-color:color-mix(in oklab,var(--muted)30%,transparent)}}.bg-muted\/40{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/40{background-color:color-mix(in oklab,var(--muted)40%,transparent)}}.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/50{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.bg-orange-100{background-color:var(--color-orange-100)}.bg-pink-100{background-color:var(--color-pink-100)}.bg-popover{background-color:var(--popover)}.bg-primary,.bg-primary\/5{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/5{background-color:color-mix(in oklab,var(--primary)5%,transparent)}}.bg-primary\/10{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/10{background-color:color-mix(in oklab,var(--primary)10%,transparent)}}.bg-purple-100{background-color:var(--color-purple-100)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-500{background-color:var(--color-red-500)}.bg-secondary{background-color:var(--secondary)}.bg-slate-100{background-color:var(--color-slate-100)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-yellow-50{background-color:var(--color-yellow-50)}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-yellow-200{background-color:var(--color-yellow-200)}.bg-yellow-500{background-color:var(--color-yellow-500)}.bg-zinc-50{background-color:var(--color-zinc-50)}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-primary{--tw-gradient-from:var(--primary);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-primary\/70{--tw-gradient-to:var(--primary);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}@supports (color:color-mix(in lab,red,red)){.to-primary\/70{--tw-gradient-to:color-mix(in oklab,var(--primary)70%,transparent)}}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.fill-primary{fill:var(--primary)}.object-contain{-o-object-fit:contain;object-fit:contain}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-2\.5{padding:calc(var(--spacing)*2.5)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.px-0\.5{padding-inline:calc(var(--spacing)*.5)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.py-8{padding-block:calc(var(--spacing)*8)}.py-12{padding-block:calc(var(--spacing)*12)}.pt-4{padding-top:calc(var(--spacing)*4)}.pr-1{padding-right:calc(var(--spacing)*1)}.pr-3{padding-right:calc(var(--spacing)*3)}.pr-8{padding-right:calc(var(--spacing)*8)}.pr-32{padding-right:calc(var(--spacing)*32)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pb-6{padding-bottom:calc(var(--spacing)*6)}.pl-2{padding-left:calc(var(--spacing)*2)}.pl-4{padding-left:calc(var(--spacing)*4)}.pl-10{padding-left:calc(var(--spacing)*10)}.pl-12{padding-left:calc(var(--spacing)*12)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-geist-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.text-balance{text-wrap:balance}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-accent-foreground{color:var(--accent-foreground)}.text-blue-500{color:var(--color-blue-500)}.text-blue-800{color:var(--color-blue-800)}.text-card-foreground{color:var(--card-foreground)}.text-current{color:currentColor}.text-destructive,.text-destructive\/80{color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.text-destructive\/80{color:color-mix(in oklab,var(--destructive)80%,transparent)}}.text-foreground{color:var(--foreground)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-green-500{color:var(--color-green-500)}.text-green-700{color:var(--color-green-700)}.text-green-800{color:var(--color-green-800)}.text-indigo-800{color:var(--color-indigo-800)}.text-muted-foreground,.text-muted-foreground\/50{color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/50{color:color-mix(in oklab,var(--muted-foreground)50%,transparent)}}.text-muted-foreground\/70{color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/70{color:color-mix(in oklab,var(--muted-foreground)70%,transparent)}}.text-orange-800{color:var(--color-orange-800)}.text-pink-800{color:var(--color-pink-800)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-purple-800{color:var(--color-purple-800)}.text-red-500{color:var(--color-red-500)}.text-red-700{color:var(--color-red-700)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-slate-600{color:var(--color-slate-600)}.text-transparent{color:#0000}.text-white{color:var(--color-white)}.text-yellow-500{color:var(--color-yellow-500)}.text-yellow-700{color:var(--color-yellow-700)}.text-yellow-800{color:var(--color-yellow-800)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}.shadow,.shadow-2xl{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a)}.shadow-lg,.shadow-md{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a)}.shadow-none{--tw-shadow:0 0 #0000}.shadow-none,.shadow-sm{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a)}.shadow-xl,.shadow-xs{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor)}.ring-0,.ring-2{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor)}.ring-destructive{--tw-ring-color:var(--destructive)}.ring-primary{--tw-ring-color:var(--primary)}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm))}.backdrop-blur-sm,.backdrop-blur-xl{-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl))}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-none{transition-property:none}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}@media (hover:hover){.group-hover\:text-foreground:is(:where(.group):hover *){color:var(--foreground)}.group-hover\:text-primary:is(:where(.group):hover *){color:var(--primary)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled=true] *){opacity:.5}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.peer-disabled\:opacity-70:is(:where(.peer):disabled~*){opacity:.7}.selection\:bg-primary ::-moz-selection{background-color:var(--primary)}.selection\:bg-primary ::selection{background-color:var(--primary)}.selection\:bg-primary::-moz-selection{background-color:var(--primary)}.selection\:bg-primary::selection{background-color:var(--primary)}.selection\:text-primary-foreground ::-moz-selection{color:var(--primary-foreground)}.selection\:text-primary-foreground ::selection{color:var(--primary-foreground)}.selection\:text-primary-foreground::-moz-selection{color:var(--primary-foreground)}.selection\:text-primary-foreground::selection{color:var(--primary-foreground)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:calc(var(--spacing)*7)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::-moz-placeholder{color:var(--muted-foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.last\:mb-0:last-child{margin-bottom:calc(var(--spacing)*0)}@media (hover:hover){.hover\:border-border:hover{border-color:var(--border)}.hover\:bg-accent:hover,.hover\:bg-accent\/50:hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/50:hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.hover\:bg-card:hover{background-color:var(--card)}.hover\:bg-destructive\/80:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/80:hover{background-color:color-mix(in oklab,var(--destructive)80%,transparent)}}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}.hover\:bg-green-700:hover{background-color:var(--color-green-700)}.hover\:bg-muted:hover,.hover\:bg-muted\/30:hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/30:hover{background-color:color-mix(in oklab,var(--muted)30%,transparent)}}.hover\:bg-muted\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.hover\:bg-muted\/60:hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/60:hover{background-color:color-mix(in oklab,var(--muted)60%,transparent)}}.hover\:bg-primary\/80:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/80:hover{background-color:color-mix(in oklab,var(--primary)80%,transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}.hover\:bg-red-100:hover{background-color:var(--color-red-100)}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-destructive:hover{color:var(--destructive)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-primary:hover{color:var(--primary)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\:border-primary\/50:focus{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.focus\:border-primary\/50:focus{border-color:color-mix(in oklab,var(--primary)50%,transparent)}}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus\:text-destructive:focus{color:var(--destructive)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-0:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-destructive:focus-visible,.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.focus-visible\:ring-ring:focus-visible,.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.focus-visible\:ring-offset-0:focus-visible{--tw-ring-offset-width:0px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:var(--background)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-muted:disabled{background-color:var(--muted)}.disabled\:text-muted-foreground:disabled{color:var(--muted-foreground)}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-70:disabled{opacity:.7}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-\[\>svg\]\:grid-cols-\[calc\(var\(--spacing\)\*4\)_1fr\]:has(>svg){grid-template-columns:calc(var(--spacing)*4)1fr}.has-\[\>svg\]\:gap-x-3:has(>svg){-moz-column-gap:calc(var(--spacing)*3);column-gap:calc(var(--spacing)*3)}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing)*2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing)*3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing)*4)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[size\=default\]\:h-9[data-size=default]{height:calc(var(--spacing)*9)}.data-\[size\=sm\]\:h-8[data-size=sm]{height:calc(var(--spacing)*8)}:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:color-mix(in oklab,var(--destructive)90%,transparent)}}:is(.\*\:data-\[slot\=select-value\]\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.\*\:data-\[slot\=select-value\]\:flex>*)[data-slot=select-value]{display:flex}:is(.\*\:data-\[slot\=select-value\]\:items-center>*)[data-slot=select-value]{align-items:center}:is(.\*\:data-\[slot\=select-value\]\:gap-2>*)[data-slot=select-value]{gap:calc(var(--spacing)*2)}.data-\[state\=checked\]\:translate-x-5[data-state=checked]{--tw-translate-x:calc(var(--spacing)*5);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[state\=checked\]\:translate-x-\[1\.375rem\][data-state=checked]{--tw-translate-x:1.375rem;translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[state\=checked\]\:border-primary[data-state=checked]{border-color:var(--primary)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--primary)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:var(--primary-foreground)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--accent)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--muted-foreground)}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:var(--input)}@media (min-width:40rem){.sm\:inline{display:inline}.sm\:w-auto{width:auto}.sm\:max-w-2xl{max-width:var(--container-2xl)}.sm\:max-w-\[480px\]{max-width:480px}.sm\:max-w-\[600px\]{max-width:600px}.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:max-w-md{max-width:var(--container-md)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:text-left{text-align:left}}@media (min-width:48rem){.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media (min-width:64rem){.lg\:block{display:block}.lg\:flex{display:flex}}.dark\:border-green-800:is(.dark *){border-color:var(--color-green-800)}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:bg-blue-900:is(.dark *){background-color:var(--color-blue-900)}.dark\:bg-destructive\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-destructive\/60:is(.dark *){background-color:color-mix(in oklab,var(--destructive)60%,transparent)}}.dark\:bg-gray-100:is(.dark *){background-color:var(--color-gray-100)}.dark\:bg-gray-700:is(.dark *){background-color:var(--color-gray-700)}.dark\:bg-gray-800:is(.dark *){background-color:var(--color-gray-800)}.dark\:bg-green-700\/20:is(.dark *){background-color:#00813833}@supports (color:color-mix(in lab,red,red)){.dark\:bg-green-700\/20:is(.dark *){background-color:color-mix(in oklab,var(--color-green-700)20%,transparent)}}.dark\:bg-green-900:is(.dark *){background-color:var(--color-green-900)}.dark\:bg-green-950:is(.dark *){background-color:var(--color-green-950)}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:bg-slate-700\/20:is(.dark *){background-color:#31415833}@supports (color:color-mix(in lab,red,red)){.dark\:bg-slate-700\/20:is(.dark *){background-color:color-mix(in oklab,var(--color-slate-700)20%,transparent)}}.dark\:bg-yellow-700\/20:is(.dark *){background-color:#a3610033}@supports (color:color-mix(in lab,red,red)){.dark\:bg-yellow-700\/20:is(.dark *){background-color:color-mix(in oklab,var(--color-yellow-700)20%,transparent)}}.dark\:bg-yellow-800:is(.dark *){background-color:var(--color-yellow-800)}.dark\:bg-yellow-900:is(.dark *){background-color:var(--color-yellow-900)}.dark\:bg-zinc-900:is(.dark *){background-color:var(--color-zinc-900)}.dark\:text-blue-200:is(.dark *){color:var(--color-blue-200)}.dark\:text-gray-200:is(.dark *){color:var(--color-gray-200)}.dark\:text-green-200:is(.dark *){color:var(--color-green-200)}.dark\:text-green-400:is(.dark *){color:var(--color-green-400)}.dark\:text-slate-400:is(.dark *){color:var(--color-slate-400)}.dark\:text-yellow-200:is(.dark *){color:var(--color-yellow-200)}.dark\:text-yellow-400:is(.dark *){color:var(--color-yellow-400)}@media (hover:hover){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input)50%,transparent)}}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:data-\[state\=checked\]\:bg-primary:is(.dark *)[data-state=checked]{background-color:var(--primary)}.\[\&_p\]\:leading-relaxed p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*=text-]){color:var(--muted-foreground)}.\[\.border-b\]\:pb-6.border-b{padding-bottom:calc(var(--spacing)*6)}.\[\.border-t\]\:pt-6.border-t{padding-top:calc(var(--spacing)*6)}:is(.\*\:\[span\]\:last\:flex>*):is(span):last-child{display:flex}:is(.\*\:\[span\]\:last\:items-center>*):is(span):last-child{align-items:center}:is(.\*\:\[span\]\:last\:gap-2>*):is(span):last-child{gap:calc(var(--spacing)*2)}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&\>svg\]\:translate-y-0\.5>svg{--tw-translate-y:calc(var(--spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.\[\&\>svg\]\:text-current>svg{color:currentColor}}:root{--radius:.5rem;--background:#fafafa;--foreground:#0a0a0a;--card:#fff;--card-foreground:#0a0a0a;--popover:#fff;--popover-foreground:#0a0a0a;--primary:#0a0a0a;--primary-foreground:#fafafa;--secondary:#f4f4f5;--secondary-foreground:#0a0a0a;--muted:#f4f4f5;--muted-foreground:#737373;--accent:#f4f4f5;--accent-foreground:#0a0a0a;--destructive:#ef4444;--destructive-foreground:#fafafa;--border:#e4e4e7;--input:#fff;--ring:#0a0a0a;--chart-1:#3b82f6;--chart-2:#10b981;--chart-3:#f59e0b;--chart-4:#ef4444;--chart-5:#8b5cf6;--sidebar:#fff;--sidebar-foreground:#0a0a0a;--sidebar-primary:#0a0a0a;--sidebar-primary-foreground:#fafafa;--sidebar-accent:#f4f4f5;--sidebar-accent-foreground:#0a0a0a;--sidebar-border:#e4e4e7;--sidebar-ring:#0a0a0a}.dark{--background:#0a0a0a;--foreground:#fafafa;--card:#111;--card-foreground:#fafafa;--popover:#111;--popover-foreground:#fafafa;--primary:#fafafa;--primary-foreground:#0a0a0a;--secondary:#1a1a1a;--secondary-foreground:#fafafa;--muted:#1a1a1a;--muted-foreground:#a1a1aa;--accent:#1a1a1a;--accent-foreground:#fafafa;--destructive:#dc2626;--destructive-foreground:#fafafa;--border:#262626;--input:#1a1a1a;--ring:#d4d4d8;--chart-1:#3b82f6;--chart-2:#10b981;--chart-3:#f59e0b;--chart-4:#ef4444;--chart-5:#8b5cf6;--sidebar:#111;--sidebar-foreground:#fafafa;--sidebar-primary:#fafafa;--sidebar-primary-foreground:#0a0a0a;--sidebar-accent:#1a1a1a;--sidebar-accent-foreground:#fafafa;--sidebar-border:#262626;--sidebar-ring:#d4d4d8}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(1turn)}}
|