dexto 1.1.1 → 1.1.3

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.
Files changed (114) hide show
  1. package/README.md +270 -160
  2. package/agents/agent-registry.json +16 -2
  3. package/agents/agent-template.yml +6 -12
  4. package/agents/default-agent.yml +6 -16
  5. package/agents/nano-banana-agent/README.md +200 -0
  6. package/agents/nano-banana-agent/nano-banana-agent.yml +68 -0
  7. package/agents/podcast-agent/README.md +168 -0
  8. package/agents/podcast-agent/podcast-agent.yml +167 -0
  9. package/agents/triage-demo/billing-agent.yml +2 -2
  10. package/agents/triage-demo/product-info-agent.yml +2 -3
  11. package/agents/triage-demo/technical-support-agent.yml +2 -3
  12. package/dist/src/app/{chunk-OIBH674O.js → chunk-BKF5BGLX.js} +318 -35
  13. package/dist/src/app/{chunk-FVWAYUL4.js → chunk-N7FUUBGT.js} +1 -1
  14. package/dist/src/app/{chunk-UG5P4DIL.js → chunk-OONTQZRM.js} +2 -2
  15. package/dist/src/app/{cli-confirmation-handler-7BZ6BMSE.js → cli-confirmation-handler-7235V7GL.js} +1 -1
  16. package/dist/src/app/{errors-EYGUMLKB.js → errors-YCS63OK6.js} +1 -1
  17. package/dist/src/app/index.js +33 -13
  18. package/dist/src/app/{loader-LJJQ4NDP.js → loader-PVRMNHST.js} +2 -2
  19. package/dist/src/app/{path-O5L5AW7V.js → path-DJ5C7EUS.js} +1 -1
  20. package/dist/src/app/{registry-HIVAEL5E.js → registry-KOOLQYP4.js} +3 -3
  21. package/dist/src/app/{sqlite-backend-FK7U4D6Z.js → sqlite-backend-NCFS7FN6.js} +1 -1
  22. package/dist/src/app/webui/.next/standalone/.next/static/chunks/122-4d4c8aa883d114a2.js +1 -0
  23. package/dist/src/app/webui/.next/standalone/.next/static/chunks/216-f5dbf2145a48ae92.js +1 -0
  24. package/dist/src/app/webui/.next/standalone/.next/static/chunks/43-4f3d01c7feaf132f.js +1 -0
  25. package/dist/src/app/webui/.next/standalone/.next/static/chunks/app/{layout-43f98b6d34953fcf.js → layout-36c240720861a312.js} +1 -1
  26. package/dist/src/app/webui/.next/standalone/.next/static/chunks/app/page-ca08c66042cb54c8.js +1 -0
  27. package/dist/src/app/webui/.next/standalone/.next/static/chunks/app/playground/{page-c51bb3cc58225dc3.js → page-07a79d22b26d37f4.js} +1 -1
  28. package/dist/src/app/webui/.next/standalone/.next/static/css/c1d26dc78adbeb53.css +3 -0
  29. package/dist/src/app/webui/.next/standalone/package.json +4 -1
  30. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/BUILD_ID +1 -1
  31. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/app-build-manifest.json +9 -9
  32. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/build-manifest.json +2 -2
  33. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/prerender-manifest.json +3 -3
  34. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/required-server-files.json +1 -1
  35. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  36. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/server/app/page.js +3 -4
  37. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/server/app/page.js.nft.json +1 -1
  38. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/server/app/page_client-reference-manifest.js +1 -1
  39. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/server/app/playground/page.js +2 -2
  40. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/server/app/playground/page.js.nft.json +1 -1
  41. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/server/app/playground/page_client-reference-manifest.js +1 -1
  42. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/server/chunks/213.js +1 -1
  43. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/server/chunks/489.js +1 -0
  44. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/server/pages/500.html +1 -1
  45. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/server/server-reference-manifest.json +1 -1
  46. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/static/chunks/122-4d4c8aa883d114a2.js +1 -0
  47. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/static/chunks/216-f5dbf2145a48ae92.js +1 -0
  48. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/static/chunks/255-e3bf15caf1f1e0f9.js +1 -0
  49. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/static/chunks/43-4f3d01c7feaf132f.js +1 -0
  50. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/static/chunks/4bd1b696-c023c6e3521b1417.js +1 -0
  51. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/static/chunks/537-e9370c6b1caa3c4d.js +1 -0
  52. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/static/chunks/app/_not-found/page-c1f5892714709ca9.js +1 -0
  53. package/dist/src/app/webui/.next/{static/chunks/app/layout-43f98b6d34953fcf.js → standalone/src/app/webui/.next/static/chunks/app/layout-36c240720861a312.js} +1 -1
  54. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/static/chunks/app/page-ca08c66042cb54c8.js +1 -0
  55. package/dist/src/app/webui/.next/{static/chunks/app/playground/page-c51bb3cc58225dc3.js → standalone/src/app/webui/.next/static/chunks/app/playground/page-07a79d22b26d37f4.js} +1 -1
  56. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/static/chunks/framework-b1e5f14688f9ffe6.js +1 -0
  57. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/static/chunks/main-app-d6c11d319efbfbca.js +1 -0
  58. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/static/chunks/main-b51c5c951595aa0b.js +1 -0
  59. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/static/chunks/pages/_app-7d307437aca18ad4.js +1 -0
  60. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/static/chunks/pages/_error-cb2a52f75f2162e2.js +1 -0
  61. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  62. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/static/chunks/webpack-e19b73beaa89095d.js +1 -0
  63. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/static/css/c1d26dc78adbeb53.css +3 -0
  64. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/static/media/569ce4b8f30dc480-s.p.woff2 +0 -0
  65. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/static/media/747892c23ea88013-s.woff2 +0 -0
  66. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/static/media/8d697b304b401681-s.woff2 +0 -0
  67. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/static/media/93f479601ee12b01-s.p.woff2 +0 -0
  68. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/static/media/9610d9e46709d722-s.woff2 +0 -0
  69. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/static/media/ba015fad6dcf6784-s.woff2 +0 -0
  70. package/dist/src/app/webui/.next/standalone/src/app/webui/public/favicon2.ico +0 -0
  71. package/dist/src/app/webui/.next/standalone/src/app/webui/public/logos/anthropic.svg +1 -0
  72. package/dist/src/app/webui/.next/standalone/src/app/webui/public/logos/claude-color.svg +1 -0
  73. package/dist/src/app/webui/.next/standalone/src/app/webui/public/logos/cohere-color.svg +1 -0
  74. package/dist/src/app/webui/.next/standalone/src/app/webui/public/logos/dexto_logo.svg +1 -0
  75. package/dist/src/app/webui/.next/standalone/src/app/webui/public/logos/dexto_logo_light.svg +18 -0
  76. package/dist/src/app/webui/.next/standalone/src/app/webui/public/logos/dexto_logo_no_text.png +0 -0
  77. package/dist/src/app/webui/.next/standalone/src/app/webui/public/logos/gemini-color.svg +1 -0
  78. package/dist/src/app/webui/.next/standalone/src/app/webui/public/logos/grok.svg +1 -0
  79. package/dist/src/app/webui/.next/standalone/src/app/webui/public/logos/groq.svg +1 -0
  80. package/dist/src/app/webui/.next/standalone/src/app/webui/public/logos/ollama.svg +1 -0
  81. package/dist/src/app/webui/.next/standalone/src/app/webui/public/logos/openai.svg +1 -0
  82. package/dist/src/app/webui/.next/standalone/src/app/webui/server.js +1 -1
  83. package/dist/src/app/webui/.next/static/RkBbxCa0lrWNsf3yPd4rX/_buildManifest.js +1 -0
  84. package/dist/src/app/webui/.next/static/RkBbxCa0lrWNsf3yPd4rX/_ssgManifest.js +1 -0
  85. package/dist/src/app/webui/.next/static/chunks/122-4d4c8aa883d114a2.js +1 -0
  86. package/dist/src/app/webui/.next/static/chunks/216-f5dbf2145a48ae92.js +1 -0
  87. package/dist/src/app/webui/.next/static/chunks/43-4f3d01c7feaf132f.js +1 -0
  88. package/dist/src/app/webui/.next/static/chunks/app/layout-36c240720861a312.js +1 -0
  89. package/dist/src/app/webui/.next/static/chunks/app/page-ca08c66042cb54c8.js +1 -0
  90. package/dist/src/app/webui/.next/static/chunks/app/playground/page-07a79d22b26d37f4.js +1 -0
  91. package/dist/src/app/webui/.next/static/css/c1d26dc78adbeb53.css +3 -0
  92. package/dist/src/app/webui/server.js +25 -12
  93. package/dist/src/core/{chunk-2O5JENNA.js → chunk-XABD32T2.js} +318 -35
  94. package/dist/src/core/index.cjs +320 -35
  95. package/dist/src/core/index.d.cts +3 -0
  96. package/dist/src/core/index.d.ts +3 -0
  97. package/dist/src/core/index.js +1 -1
  98. package/dist/src/core/{sqlite-backend-4KSJRUVL.js → sqlite-backend-3VNBKYIT.js} +1 -1
  99. package/package.json +4 -1
  100. package/dist/src/app/webui/.next/standalone/.next/static/chunks/262-807eb8fa558ce992.js +0 -1
  101. package/dist/src/app/webui/.next/standalone/.next/static/chunks/42-ae0665ff0534f075.js +0 -1
  102. package/dist/src/app/webui/.next/standalone/.next/static/chunks/500-99efaae6ea436094.js +0 -1
  103. package/dist/src/app/webui/.next/standalone/.next/static/chunks/app/page-77c27b87857033eb.js +0 -1
  104. package/dist/src/app/webui/.next/standalone/.next/static/css/3d91ad5ec330296f.css +0 -3
  105. package/dist/src/app/webui/.next/standalone/src/app/webui/.next/server/chunks/950.js +0 -1
  106. package/dist/src/app/webui/.next/static/chunks/262-807eb8fa558ce992.js +0 -1
  107. package/dist/src/app/webui/.next/static/chunks/42-ae0665ff0534f075.js +0 -1
  108. package/dist/src/app/webui/.next/static/chunks/500-99efaae6ea436094.js +0 -1
  109. package/dist/src/app/webui/.next/static/chunks/app/page-77c27b87857033eb.js +0 -1
  110. package/dist/src/app/webui/.next/static/css/3d91ad5ec330296f.css +0 -3
  111. /package/dist/src/app/webui/.next/standalone/.next/static/{bJ5SqDBPKFEnZArCs2k9v → RkBbxCa0lrWNsf3yPd4rX}/_buildManifest.js +0 -0
  112. /package/dist/src/app/webui/.next/standalone/.next/static/{bJ5SqDBPKFEnZArCs2k9v → RkBbxCa0lrWNsf3yPd4rX}/_ssgManifest.js +0 -0
  113. /package/dist/src/app/webui/.next/{static/bJ5SqDBPKFEnZArCs2k9v → standalone/src/app/webui/.next/static/RkBbxCa0lrWNsf3yPd4rX}/_buildManifest.js +0 -0
  114. /package/dist/src/app/webui/.next/{static/bJ5SqDBPKFEnZArCs2k9v → standalone/src/app/webui/.next/static/RkBbxCa0lrWNsf3yPd4rX}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[974],{1579:(e,t,s)=>{"use strict";s.d(t,{default:()=>tb});var r,a=s(5155),n=s(2115),l=s(9119),i=s(5016),o=s(6855),c=s(2056),d=s(2108),m=s(4033),u=s(5229),h=s(5917),x=s(5426),p=s(2758);function f(e){let{delayDuration:t=0,...s}=e;return(0,a.jsx)(p.Kq,{"data-slot":"tooltip-provider",delayDuration:t,...s})}function g(e){let{...t}=e;return(0,a.jsx)(f,{children:(0,a.jsx)(p.bL,{"data-slot":"tooltip",...t})})}function v(e){let{...t}=e;return(0,a.jsx)(p.l9,{"data-slot":"tooltip-trigger",...t})}function j(e){let{className:t,sideOffset:s=0,children:r,...n}=e;return(0,a.jsx)(p.ZL,{children:(0,a.jsxs)(p.UC,{"data-slot":"tooltip-content",sideOffset:s,className:(0,i.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",t),...n,children:[r,(0,a.jsx)(p.i3,{className:"bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]"})]})})}var b=s(7003);let y=(0,n.forwardRef)((e,t)=>{let{children:s,tooltip:r,side:n="bottom",className:l,...o}=e;return(0,a.jsxs)(g,{children:[(0,a.jsx)(v,{asChild:!0,children:(0,a.jsxs)(b.$,{variant:"ghost",size:"icon",...o,className:(0,i.cn)("size-6 p-1",l),ref:t,children:[s,(0,a.jsx)("span",{className:"sr-only",children:r})]})}),(0,a.jsx)(j,{side:n,children:r})]})});function N(e){let{value:t,tooltip:s="Copy",copiedTooltip:r="Copied!",className:l,size:i=12}=e,[o,c]=(0,n.useState)(!1);return(0,a.jsx)(y,{tooltip:o?r:s,onClick:()=>{navigator.clipboard.writeText(t).then(()=>{c(!0),setTimeout(()=>c(!1),2e3)}).catch(()=>{})},className:l,children:o?(0,a.jsx)(h.A,{size:i}):(0,a.jsx)(x.A,{size:i})})}y.displayName="TooltipIconButton";var w=s(9e3),k=s(5130);class C{get supported(){return"speechSynthesis"in window&&"SpeechSynthesisUtterance"in window}isSpeaking(){return this._speaking}subscribe(e){return this.subscribers.add(e),()=>{this.subscribers.delete(e)}}subscribeVoices(e){return this.voiceSubscribers.add(e),()=>{this.voiceSubscribers.delete(e)}}notify(){for(let e of this.subscribers)try{e()}catch(e){}}stop(){if(this.supported){try{window.speechSynthesis.cancel()}catch(e){}this.utterance=null,this._speaking&&(this._speaking=!1,this.notify())}}speak(e,t){if(!this.supported||!e||!e.trim())return;this.stop();let s=new window.SpeechSynthesisUtterance(e);(null==t?void 0:t.rate)!=null&&(s.rate=t.rate),(null==t?void 0:t.pitch)!=null&&(s.pitch=t.pitch);let r=this.resolveVoice();if(r)try{s.voice=r,(null==t?void 0:t.lang)?s.lang=t.lang:r.lang&&(s.lang=r.lang)}catch(e){}else(null==t?void 0:t.lang)&&(s.lang=t.lang);s.onstart=()=>{this.utterance===s&&(this._speaking=!0,this.notify())};let a=()=>{this.utterance===s&&(this._speaking=!1,this.utterance=null,this.notify())};s.onend=a,s.onerror=a;try{this.utterance=s,window.speechSynthesis.speak(s),this._speaking||(this._speaking=!0,this.notify())}catch(e){a()}}getVoices(){return this.voices}setPreferredVoice(e){this.preferredVoiceName=e&&e.length?e:null;try{this.preferredVoiceName?window.localStorage.setItem("ttsVoiceName",this.preferredVoiceName):window.localStorage.removeItem("ttsVoiceName")}catch(e){}this.voiceSubscribers.forEach(e=>e())}getPreferredVoiceName(){return this.preferredVoiceName}resolveVoice(){if(!this.voices.length)return null;let e=this.preferredVoiceName?this.voices.find(e=>e.name===this.preferredVoiceName):null;if(e)return e;let t=this.voices.find(e=>{var t;return"google uk english female"===e.name.toLowerCase()||e.name.toLowerCase().includes("google uk english female")&&(null==(t=e.lang)?void 0:t.toLowerCase().startsWith("en-gb"))});if(t)return t;let s=e=>{var t;let s=e.name.toLowerCase(),r=(null!=(t=e.lang)?t:"").toLowerCase(),a=0;return("en"===r||r.startsWith("en-"))&&(a+=3),s.includes("google")&&(a+=5),(s.includes("microsoft")||s.includes("azure"))&&(a+=4),(s.includes("natural")||s.includes("neural")||s.includes("premium"))&&(a+=4),s.includes("siri")&&(a+=3),s.includes("female")&&(a+=1),a};return[...this.voices].sort((e,t)=>s(t)-s(e))[0]||this.voices[0]||null}constructor(){if(this._speaking=!1,this.subscribers=new Set,this.utterance=null,this.voices=[],this.voiceSubscribers=new Set,this.preferredVoiceName=null,this.supported){try{let e=window.localStorage.getItem("ttsVoiceName");this.preferredVoiceName=e&&e.length?e:null}catch(e){}let e=()=>{try{let e=window.speechSynthesis.getVoices()||[];(e.length!==this.voices.length||e.some((e,t)=>{var s;return e.name!==(null==(s=this.voices[t])?void 0:s.name)}))&&(this.voices=e,this.voiceSubscribers.forEach(e=>e()))}catch(e){}};e();try{window.speechSynthesis.addEventListener("voiceschanged",e)}catch(e){}}}}let S=globalThis,A=null!=(r=S.__speechController)?r:S.__speechController=new C;function E(e){let{value:t,tooltip:s="Speak",stopTooltip:r="Stop",className:l,rate:i=1,pitch:o=1,lang:c}=e,[d,m]=(0,n.useState)(!1),u=A.supported,h=(null!=t?t:"").trim().length>0;return(0,n.useEffect)(()=>(m(A.isSpeaking()),A.subscribe(()=>m(A.isSpeaking()))),[]),(0,a.jsx)(y,{tooltip:d?r:s,onClick:()=>{if(u&&h){if(d)return A.stop();A.speak(t,{rate:i,pitch:o,lang:c})}},className:l,disabled:!u||!h,children:d?(0,a.jsx)(w.A,{size:12}):(0,a.jsx)(k.A,{size:12})})}function T(e){var t;let{error:s,onDismiss:r}=e,[l,i]=(0,n.useState)(!1),o=null==(t=s.detailedIssues)?void 0:t[0],h=(null==o?void 0:o.context)&&"object"==typeof o.context&&"detailedIssues"in o.context?o.context.detailedIssues:[],x=h.length>0?"".concat(s.message,"\n\nDetails:\n").concat(h.map(e=>{let t=e.message;if(e.context){let s="string"==typeof e.context?e.context:JSON.stringify(e.context,null,2);t+="\nContext: ".concat(s)}return t}).join("\n\n")):s.message;return(0,a.jsx)("div",{className:"w-full rounded-lg p-4 mb-4 border shadow-sm bg-destructive/10 border-destructive/40",children:(0,a.jsxs)("div",{className:"flex items-start gap-3",children:[(0,a.jsx)(c.A,{className:"h-5 w-5 text-destructive mt-0.5 flex-shrink-0"}),(0,a.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("h3",{className:"text-sm font-medium text-destructive",children:"Error"}),s.context&&(0,a.jsx)("span",{className:"text-xs bg-destructive/15 text-destructive px-2 py-0.5 rounded-full",children:s.context})]}),(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[h.length>0&&(0,a.jsx)("button",{onClick:()=>i(!l),className:"p-1 hover:bg-destructive/15 rounded text-destructive",title:l?"Collapse":"Expand",children:l?(0,a.jsx)(d.A,{className:"h-4 w-4"}):(0,a.jsx)(m.A,{className:"h-4 w-4"})}),(0,a.jsx)(N,{value:x,tooltip:"Copy error",className:"p-1 hover:bg-destructive/15 rounded text-destructive",size:16}),(0,a.jsx)(E,{value:x,tooltip:"Read error",className:"p-1 hover:bg-destructive/15 rounded text-destructive"}),(0,a.jsx)("button",{onClick:r,className:"p-1 hover:bg-destructive/15 rounded text-destructive",title:"Dismiss",children:(0,a.jsx)(u.A,{className:"h-4 w-4"})})]})]}),(0,a.jsx)("div",{className:"mt-2 text-sm text-destructive",children:s.message}),l&&h.length>0&&(0,a.jsx)("div",{className:"mt-3",children:(0,a.jsx)("div",{className:"text-xs text-destructive bg-destructive/10 p-3 rounded border border-destructive/30 overflow-auto max-h-60",children:h.map((e,t)=>(0,a.jsxs)("div",{className:"mb-2 last:mb-0",children:[(0,a.jsx)("div",{className:"font-medium",children:e.message}),null!=e.context&&(0,a.jsx)("div",{className:"text-destructive/70 mt-1",children:"string"==typeof e.context?e.context:JSON.stringify(e.context,null,2)})]},t))})})]})]})})}var D=s(508),R=s(8192),I=s(3842),F=s(1473),L=s(7937),O=s(2529),P=s(5299),z=s(1682),U=s(2001),q=s(2196),M=s(4904),K=s(6504),V=s(4514);let J=(0,n.memo)(e=>{let{children:t}=e;return(0,a.jsx)("div",{className:"prose max-w-none dark:prose-invert [&>p]:my-5 [&>p]:leading-7 [&>p]:first:mt-0 [&>p]:last:mb-0 [&>h1]:mb-8 [&>h1]:text-4xl [&>h1]:font-extrabold [&>h1]:tracking-tight [&>h1]:last:mb-0 [&>h2]:mb-4 [&>h2]:mt-8 [&>h2]:text-3xl [&>h2]:font-semibold [&>h2]:tracking-tight [&>h2]:first:mt-0 [&>h2]:last:mb-0 [&>h3]:mb-4 [&>h3]:mt-6 [&>h3]:text-2xl [&>h3]:font-semibold [&>h3]:tracking-tight [&>h3]:first:mt-0 [&>h3]:last:mb-0 [&>h4]:mb-4 [&>h4]:mt-6 [&>h4]:text-xl [&>h4]:font-semibold [&>h4]:tracking-tight [&>h4]:first:mt-0 [&>h4]:last:mb-0 [&>ul]:my-5 [&>ul]:ml-6 [&>ul]:list-disc [&>ul>li]:mt-2 [&>ol]:my-5 [&>ol]:ml-6 [&>ol]:list-decimal [&>ol>li]:mt-2 [&_ul]:my-5 [&_ul]:ml-6 [&_ul]:list-disc [&_ul>li]:mt-2 [&_ol]:my-5 [&_ol]:ml-6 [&_ol]:list-decimal [&_ol>li]:mt-2 [&>blockquote]:border-l-2 [&>blockquote]:pl-6 [&>blockquote]:italic [&>hr]:my-5 [&>hr]:border-b",children:(0,a.jsx)(K.oz,{remarkPlugins:[V.A],skipHtml:!0,components:{table:e=>{let{className:t,children:s,...r}=e;return(0,a.jsx)("div",{className:"my-4 overflow-x-auto -mx-1 px-1",children:(0,a.jsx)("table",{className:["w-full border-separate border-spacing-0",t].filter(Boolean).join(" "),...r,children:s})})},thead:e=>{let{className:t,...s}=e;return(0,a.jsx)("thead",{className:t,...s})},tr:e=>{let{className:t,...s}=e;return(0,a.jsx)("tr",{className:["m-0 border-b first:border-t","[&:last-child>td:first-child]:rounded-bl-lg [&:last-child>td:last-child]:rounded-br-lg",t].filter(Boolean).join(" "),...s})},th:e=>{let{className:t,...s}=e;return(0,a.jsx)("th",{className:["bg-muted text-left font-bold align-top","px-4 py-2 first:rounded-tl-lg last:rounded-tr-lg","[&[align=center]]:text-center [&[align=right]]:text-right",t].filter(Boolean).join(" "),...s})},td:e=>{let{className:t,...s}=e;return(0,a.jsx)("td",{className:["border-b border-l last:border-r text-left align-top","px-4 py-2 whitespace-normal break-words","[&[align=center]]:text-center [&[align=right]]:text-right",t].filter(Boolean).join(" "),...s})},code:e=>{let{className:t,children:s,...r}=e,[l,i]=(0,n.useState)(!1),o=String(null!=s?s:"").replace(/\n$/,"");return t?(0,a.jsxs)("div",{className:"relative group my-4",children:[(0,a.jsx)(y,{tooltip:l?"Copied!":"Copy code",onClick:()=>{navigator.clipboard.writeText(o).then(()=>{i(!0),setTimeout(()=>i(!1),2e3)}).catch(()=>{})},className:"absolute right-2 top-2 z-10 opacity-70 hover:opacity-100 transition-opacity bg-background/80 hover:bg-background",children:l?(0,a.jsx)(h.A,{size:14}):(0,a.jsx)(x.A,{size:14})}),(0,a.jsx)("pre",{className:"overflow-auto bg-muted p-3 rounded-lg text-sm",children:(0,a.jsx)("code",{className:t,children:o})})]}):(0,a.jsx)("code",{className:"text-xs px-1.5 py-0.5 bg-muted rounded font-mono",...r,children:s})}},children:t})})});function _(e){return/^data:image\/(png|jpeg|jpg|gif|webp|svg\+xml);base64,[A-Za-z0-9+/]+={0,2}$/i.test(e)}function $(e){try{let t=new URL(e);return("https:"===t.protocol||"http:"===t.protocol)&&"localhost"!==t.hostname}catch(e){return!1}}function B(e){var t,s;if(e.base64&&e.mimeType)return"data:".concat(e.mimeType,";base64,").concat(e.base64);if("string"==typeof e.base64)return e.base64;let r=null!=(s=null!=(t=e.url)?t:e.image)?s:e.audio;return"string"==typeof r?r:""}function G(e){let{messages:t,activeError:s,onDismissError:r,outerRef:l}=e,h=(0,n.useRef)(null),[x,p]=(0,n.useState)({}),[f,b]=(0,n.useState)({}),[y,w]=(0,n.useState)(null);(0,n.useRef)(null);let[C,S]=(0,n.useState)({isOpen:!1,src:"",alt:""});if((0,n.useEffect)(()=>{let e=document.createElement("style");return e.textContent="\n .audio-controls-container audio {\n max-width: 100% !important;\n width: 100% !important;\n height: auto !important;\n min-height: 32px;\n }\n .audio-controls-container audio::-webkit-media-controls-panel {\n max-width: 100% !important;\n }\n .audio-controls-container audio::-webkit-media-controls-timeline {\n max-width: 100% !important;\n }\n ",document.head.appendChild(e),()=>{document.head.removeChild(e)}},[]),!t||0===t.length)return null;let A=e=>"string"==typeof e.content?e.content:Array.isArray(e.content)?e.content.map(e=>(0,o.PI)(e)?e.text:"").filter(Boolean).join("\n"):e.content&&"object"==typeof e.content?JSON.stringify(e.content,null,2):"",K=e=>e?(0,o.KU)(e)?"object"==typeof e.error?JSON.stringify(e.error,null,2):String(e.error):(0,o.P2)(e)?e.content.map(e=>(0,o.PI)(e)?e.text:"object"==typeof e?"":String(e)).filter(Boolean).join("\n"):"object"==typeof e?JSON.stringify(e,null,2):String(e):"";return(0,a.jsxs)("div",{id:"message-list-container",ref:l,className:"flex flex-col space-y-3 px-4 py-2",children:[t.map((e,n)=>{var l,u,h,y;let w=null!=(u=e.id)?u:"msg-".concat(n),C="user"===e.role,V="assistant"===e.role,G="system"===e.role,H=n===t.length-1,W=!!(e.toolName&&e.toolArgs),Q=!!(e.toolName&&e.toolResult),Y=W||Q,Z=Y&&H||!!x[w],X=[],ee=[];Q&&e.toolResult&&(0,o.P2)(e.toolResult)&&e.toolResult.content.forEach((e,t)=>{if((0,o.j0)(e)){let s=B(e);s&&(s.startsWith("data:")&&_(s)||s.startsWith("blob:")||$(s))&&X.push({src:s,alt:"Tool result image ".concat(t+1),index:t})}else if((0,o.kz)(e)){let s=B(e);s&&(s.startsWith("data:audio/")||s.startsWith("blob:")||$(s))&&ee.push({src:s,filename:e.filename,index:t})}});let et=C?D.A:R.A,es=(0,i.cn)(C?"grid w-full grid-cols-[1fr_auto] gap-x-2 items-start":"grid w-full grid-cols-[auto_1fr] gap-x-2 items-start"),er=(0,i.cn)("tool"===e.role?"w-full text-muted-foreground/70 bg-secondary border border-muted/30 rounded-md text-base":C?"p-3 rounded-xl shadow-sm w-fit max-w-[75%] bg-primary text-primary-foreground rounded-br-none text-base break-normal hyphens-none":V?"p-3 rounded-xl shadow-sm w-fit max-w-[90%] bg-card text-card-foreground border border-border rounded-bl-none text-base break-normal hyphens-none":G?"p-3 shadow-none w-full bg-transparent text-xs text-muted-foreground italic text-center border-none":""),ea=new Date(e.createdAt).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),en=!!(s&&s.anchorMessageId===e.id);return(0,a.jsxs)("div",{className:"w-full","data-role":e.role,id:e.id?"message-".concat(e.id):void 0,children:[(0,a.jsxs)("div",{className:es,children:[V&&(0,a.jsx)(et,{className:"h-7 w-7 mt-1 text-muted-foreground col-start-1"}),"tool"===e.role&&(0,a.jsx)(I.A,{className:"h-7 w-7 p-1 mt-1 rounded-full border border-border text-muted-foreground col-start-1"}),(0,a.jsxs)("div",{className:(0,i.cn)("flex flex-col group w-full",G?"col-span-2 items-center":C?"col-start-1 justify-self-end items-end":"col-start-2 justify-self-start items-start"),children:[(0,a.jsx)("div",{className:er,children:(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[V&&"string"==typeof e.reasoning&&e.reasoning.trim().length>0&&(0,a.jsxs)("div",{className:"mb-3 border border-orange-200/50 dark:border-orange-400/20 rounded-lg bg-gradient-to-br from-orange-50/30 to-amber-50/20 dark:from-orange-900/20 dark:to-amber-900/10",children:[(0,a.jsxs)("div",{className:"px-3 py-2 border-b border-orange-200/30 dark:border-orange-400/20 bg-orange-100/50 dark:bg-orange-900/30 rounded-t-lg flex items-center justify-between",children:[(0,a.jsxs)("button",{type:"button",className:"flex items-center gap-2 text-xs font-medium text-orange-700 dark:text-orange-300 hover:text-orange-800 dark:hover:text-orange-200 transition-colors group",onClick:()=>b(t=>({...t,[e.id]:!t[e.id]})),children:[(0,a.jsx)(F.A,{className:"h-3.5 w-3.5"}),(0,a.jsx)("span",{children:"AI Reasoning"}),null==(h=f[e.id])||h?(0,a.jsx)(d.A,{className:"h-3 w-3 group-hover:scale-110 transition-transform"}):(0,a.jsx)(m.A,{className:"h-3 w-3 group-hover:scale-110 transition-transform"})]}),(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.jsx)(N,{value:e.reasoning,tooltip:"Copy reasoning",copiedTooltip:"Copied!",className:"opacity-70 hover:opacity-100 transition-opacity"}),(0,a.jsx)(E,{value:e.reasoning,tooltip:"Speak reasoning",stopTooltip:"Stop",className:"opacity-70 hover:opacity-100 transition-opacity"})]})]}),(null==(y=f[e.id])||y)&&(0,a.jsx)("div",{className:"px-3 py-2",children:(0,a.jsx)("pre",{className:"whitespace-pre-wrap break-words text-xs text-orange-800/80 dark:text-orange-200/70 leading-relaxed font-mono",children:e.reasoning})})]}),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:()=>{Y&&p(e=>({...e,[w]:!e[w]}))},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:[Z?(0,a.jsx)(d.A,{className:"h-4 w-4 mr-2 text-primary"}):(0,a.jsx)(L.A,{className:"h-4 w-4 mr-2 text-primary"}),"Tool: ",e.toolName]}),e.toolResult?(0,o.KU)(e.toolResult)?(0,a.jsx)(c.A,{className:"mx-2 h-4 w-4 text-red-500"}):(0,a.jsx)(O.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"})]}),Z&&(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 break-words 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.jsxs)("div",{className:"text-xs font-medium flex items-center justify-between",onClick:e=>e.stopPropagation(),children:[(0,a.jsx)("span",{children:"Result:"}),(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.jsx)(N,{value:K(e.toolResult),tooltip:"Copy result",copiedTooltip:"Copied!",className:"opacity-70 hover:opacity-100 transition-opacity"}),(0,a.jsx)(E,{value:K(e.toolResult),tooltip:"Speak result",stopTooltip:"Stop",className:"opacity-70 hover:opacity-100 transition-opacity"})]})]}),(0,o.KU)(e.toolResult)?(0,a.jsx)("pre",{className:"whitespace-pre-wrap break-words 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,o.P2)(e.toolResult)?e.toolResult.content.map((e,t)=>(0,o.j0)(e)||(0,o.kz)(e)?null:(0,o.PI)(e)?(0,a.jsx)("pre",{className:"whitespace-pre-wrap break-words overflow-auto bg-background/50 p-2 rounded text-xs text-muted-foreground my-1",children:e.text},t):(0,o.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)(z.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,")"]})]},t):(0,a.jsx)("pre",{className:"whitespace-pre-wrap break-words 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)},t)):(0,a.jsx)("pre",{className:"whitespace-pre-wrap break-words overflow-auto bg-background/50 p-2 rounded text-xs text-muted-foreground",children:"string"==typeof e.toolResult&&e.toolResult.startsWith("data:image")?_(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)("div",{className:"relative",children:C?(0,a.jsx)("p",{className:"text-base whitespace-pre-line break-normal",children:e.content}):(0,a.jsx)(J,{children:e.content})}),e.content&&"object"==typeof e.content&&!Array.isArray(e.content)&&(0,a.jsx)("pre",{className:"whitespace-pre-wrap break-words 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,t)=>{let s="".concat(w,"-part-").concat(t);if("text"===e.type)return(0,a.jsx)("div",{className:"relative",children:C?(0,a.jsx)("p",{className:"text-base whitespace-pre-line break-normal",children:e.text}):(0,a.jsx)(J,{children:e.text})},s);if((0,o.EQ)(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)(U.A,{className:(0,i.cn)("h-5 w-5",C?void 0:"text-muted-foreground")}),(0,a.jsx)("span",{className:(0,i.cn)("text-sm font-medium",void 0),children:e.filename||"".concat(e.mimeType," file")}),(0,a.jsx)("span",{className:(0,i.cn)("text-xs",C?"text-primary-foreground/70":"text-muted-foreground"),children:e.mimeType})]},s);{let t="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)(z.A,{className:(0,i.cn)("h-5 w-5",C?void 0:"text-muted-foreground")}),(0,a.jsx)("audio",{controls:!0,src:t,className:"flex-1 h-8"}),e.filename&&(0,a.jsx)("span",{className:(0,i.cn)("text-sm truncate max-w-[120px]",C?"text-primary-foreground/80":"text-muted-foreground"),children:e.filename})]},s)}}return null}),G&&!e.content&&(0,a.jsx)("p",{className:"italic",children:"System message"})]}),e.imageData&&!Array.isArray(e.content)&&(()=>{let t="data:".concat(e.imageData.mimeType,";base64,").concat(e.imageData.base64);return _(t)?(0,a.jsx)("img",{src:t,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:"relative w-fit border border-border rounded-lg p-2 bg-muted/50 flex items-center gap-2 group",children:[(0,a.jsx)(z.A,{className:"h-4 w-4"}),(0,a.jsx)("audio",{controls:!0,src:"data:".concat(e.fileData.mimeType,";base64,").concat(e.fileData.base64),className:"h-8"})]}):(0,a.jsxs)("div",{className:"flex items-center gap-2 p-3 rounded-lg border border-border bg-muted/50",children:[(0,a.jsx)(U.A,{className:"h-5 w-5"}),(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-primary-foreground/70",children:e.fileData.mimeType})]})})]})}),!G&&!Y&&(0,a.jsxs)("div",{className:"text-xs text-muted-foreground mt-1 px-1 flex items-center justify-between",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{children:ea}),V&&(null==(l=e.tokenUsage)?void 0:l.totalTokens)!==void 0&&(0,a.jsxs)(g,{children:[(0,a.jsx)(v,{asChild:!0,children:(0,a.jsxs)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full bg-muted/50 text-xs cursor-default",children:[(0,a.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-green-500"}),e.tokenUsage.totalTokens," tokens"]})}),(0,a.jsx)(j,{side:"bottom",children:(0,a.jsxs)("div",{className:"flex flex-col gap-0.5",children:[void 0!==e.tokenUsage.inputTokens&&(0,a.jsxs)("div",{children:["Input: ",e.tokenUsage.inputTokens]}),void 0!==e.tokenUsage.outputTokens&&(0,a.jsxs)("div",{children:["Output: ",e.tokenUsage.outputTokens]}),void 0!==e.tokenUsage.reasoningTokens&&(0,a.jsxs)("div",{children:["Reasoning: ",e.tokenUsage.reasoningTokens]}),(0,a.jsxs)("div",{className:"font-medium mt-0.5",children:["Total: ",e.tokenUsage.totalTokens]})]})})]}),V&&e.model&&(0,a.jsxs)(g,{children:[(0,a.jsx)(v,{children:(0,a.jsx)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full bg-muted/30 text-xs cursor-default",children:e.model})}),(0,a.jsx)(j,{side:"bottom",children:(0,a.jsxs)("div",{className:"space-y-1",children:[(0,a.jsxs)("div",{className:"font-medium",children:["Model: ",e.model]}),e.provider&&(0,a.jsxs)("div",{className:"font-medium",children:["Provider: ",e.provider]}),e.router&&(0,a.jsxs)("div",{className:"font-medium",children:["Router: ",e.router]})]})})]})]}),(V||C)&&(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.jsx)(N,{value:A(e),tooltip:"Copy message",copiedTooltip:"Copied!",className:"opacity-70 hover:opacity-100 transition-opacity"}),(0,a.jsx)(E,{value:A(e),tooltip:"Speak",stopTooltip:"Stop",className:"opacity-70 hover:opacity-100 transition-opacity"})]})]})]}),C&&(0,a.jsx)(et,{className:"h-7 w-7 mt-1 text-muted-foreground col-start-2"})]}),X.map((e,t)=>(0,a.jsx)("div",{className:"w-full mt-2",children:(0,a.jsxs)("div",{className:"flex items-end w-full justify-start",children:[(0,a.jsx)(q.A,{className:"h-7 w-7 mr-2 mb-1 text-muted-foreground self-start flex-shrink-0"}),(0,a.jsxs)("div",{className:"flex flex-col items-start",children:[(0,a.jsx)("div",{className:"p-3 rounded-xl shadow-sm max-w-[75%] bg-card text-card-foreground border border-border rounded-bl-none text-sm",children:(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,a.jsx)(q.A,{className:"h-3 w-3"}),(0,a.jsx)("span",{children:"Tool Result Image"})]}),(0,a.jsxs)("div",{className:"relative group cursor-pointer",onClick:()=>{S({isOpen:!0,src:e.src,alt:e.alt})},children:[(0,a.jsx)("img",{src:e.src,alt:e.alt,className:"max-h-80 w-auto rounded border border-border object-contain transition-transform group-hover:scale-[1.02]"}),(0,a.jsx)("div",{className:"absolute inset-0 bg-black/0 group-hover:bg-black/10 transition-colors rounded border border-border flex items-center justify-center",children:(0,a.jsx)(M.A,{className:"h-8 w-8 text-white opacity-0 group-hover:opacity-100 transition-opacity drop-shadow-lg"})})]})]})}),(0,a.jsx)("div",{className:"text-xs text-muted-foreground mt-1 px-1",children:(0,a.jsx)("span",{children:ea})})]})]})},"".concat(w,"-image-").concat(t))),ee.map((e,t)=>(0,a.jsx)("div",{className:"w-full mt-2",children:(0,a.jsxs)("div",{className:"flex items-end w-full justify-start",children:[(0,a.jsx)(k.A,{className:"h-7 w-7 mr-2 mb-1 text-muted-foreground self-start flex-shrink-0"}),(0,a.jsxs)("div",{className:"flex flex-col items-start",children:[(0,a.jsx)("div",{className:"p-3 rounded-xl shadow-sm max-w-[75%] bg-card text-card-foreground border border-border rounded-bl-none text-sm overflow-hidden",children:(0,a.jsxs)("div",{className:"flex flex-col gap-2 min-w-0",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,a.jsx)(k.A,{className:"h-3 w-3"}),(0,a.jsx)("span",{children:"Tool Result Audio"})]}),(0,a.jsxs)("div",{className:"flex flex-col gap-2 p-2 rounded border border-border bg-muted/30 min-w-0 audio-controls-container",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,a.jsx)(z.A,{className:"h-4 w-4 text-muted-foreground flex-shrink-0"}),(0,a.jsx)("audio",{controls:!0,src:e.src,className:"flex-1 min-w-0"})]}),e.filename&&(0,a.jsx)("div",{className:"flex items-center gap-2 min-w-0",children:(0,a.jsx)("span",{className:"text-xs text-muted-foreground truncate",children:e.filename})})]})]})}),(0,a.jsx)("div",{className:"text-xs text-muted-foreground mt-1 px-1",children:(0,a.jsx)("span",{children:ea})})]})]})},"".concat(w,"-audio-").concat(t))),en&&(0,a.jsx)("div",{className:"mt-2 ml-12 mr-4",children:(0,a.jsx)(T,{error:s,onDismiss:r||(()=>{})})})]},w)}),(0,a.jsx)("div",{ref:h,className:"h-px"},"end-anchor"),C.isOpen&&(0,a.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/80 backdrop-blur-sm",children:(0,a.jsxs)("div",{className:"relative max-w-[90vw] max-h-[90vh] bg-background rounded-lg shadow-2xl border border-border",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between p-4 border-b border-border",children:[(0,a.jsx)("h3",{className:"text-lg font-semibold",children:"Tool Result Image"}),(0,a.jsx)("button",{onClick:()=>{S({isOpen:!1,src:"",alt:""})},className:"p-2 hover:bg-muted rounded-md transition-colors","aria-label":"Close modal",children:(0,a.jsx)(u.A,{className:"h-5 w-5"})})]}),(0,a.jsx)("div",{className:"p-4 flex items-center justify-center",children:(0,a.jsx)("img",{src:C.src,alt:C.alt,className:"max-w-full max-h-[70vh] object-contain rounded"})}),(0,a.jsx)("div",{className:"p-4 border-t border-border text-sm text-muted-foreground",children:(0,a.jsx)("p",{children:C.alt})})]})})]})}var H=s(1048);function W(e){let{children:t,className:s}=e;return(0,a.jsx)("div",{className:(0,i.cn)("relative","w-full","flex flex-col overflow-hidden","max-h-[max(35svh,5rem)]","border-2 border-border/50","bg-background","rounded-3xl shadow-sm","transition-all duration-200",s),children:t})}function Q(e){let{leftButtons:t,rightButtons:s,className:r}=e;return(0,a.jsxs)("div",{className:(0,i.cn)("flex items-center justify-between","h-12 px-2",r),children:[(0,a.jsx)("div",{className:"flex items-center gap-2",children:t}),(0,a.jsx)("div",{className:"flex items-center gap-2",children:s})]})}var Y=s(6154),Z=s(7599);let X=n.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,a.jsx)(Z.bL,{className:(0,i.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",s),...r,ref:t,children:(0,a.jsx)(Z.zi,{className:(0,i.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")})})});function ee(e){let{isStreaming:t,onStreamingChange:s,className:r}=e;return(0,a.jsx)(f,{children:(0,a.jsxs)(g,{children:[(0,a.jsx)(v,{asChild:!0,children:(0,a.jsxs)("div",{className:"flex items-center gap-1.5 cursor-pointer ".concat(r||""),children:[(0,a.jsx)(Y.A,{className:"h-3 w-3 ".concat(t?"text-blue-500":"text-muted-foreground")}),(0,a.jsx)(X,{checked:t,onCheckedChange:s,className:"scale-75","aria-label":"Toggle streaming"})]})}),(0,a.jsxs)(j,{side:"bottom",children:[(0,a.jsx)("p",{children:t?"Streaming enabled":"Streaming disabled"}),(0,a.jsx)("p",{className:"text-xs opacity-75",children:t?"Responses will stream in real-time":"Responses will arrive all at once"})]})]})})}X.displayName=Z.bL.displayName;var et=s(4285),es=s(2286);function er(e){let{...t}=e;return(0,a.jsx)(es.bL,{"data-slot":"popover",...t})}function ea(e){let{className:t,align:s="center",sideOffset:r=4,...n}=e;return(0,a.jsx)(es.ZL,{children:(0,a.jsx)(es.UC,{"data-slot":"popover-content",align:s,sideOffset:r,className:(0,i.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",t),...n})})}let en=e=>{let{children:t,...s}=e;return(0,a.jsx)(er,{...s,children:t})},el=function(e){let{...t}=e;return(0,a.jsx)(es.l9,{"data-slot":"popover-trigger",...t})},ei=n.forwardRef((e,t)=>{let{className:s,align:r="end",sideOffset:n=4,...l}=e;return(0,a.jsx)(ea,{ref:t,align:r,sideOffset:n,className:(0,i.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",s),...l})});ei.displayName="DropdownMenuContent";let eo=n.forwardRef((e,t)=>{let{className:s,disabled:r,...n}=e;return(0,a.jsx)("div",{ref:t,className:(0,i.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",s),...n})});eo.displayName="DropdownMenuItem";let ec=n.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,a.jsx)("div",{ref:t,className:(0,i.cn)("-mx-1 my-1 h-px bg-muted",s),...r})});function ed(e){let{onImageAttach:t,onPdfAttach:s,onAudioAttach:r,className:l,supports:i}=e,[o,c]=n.useState(!1),d=(null==i?void 0:i.image)!==!1,m=(null==i?void 0:i.pdf)!==!1,u=(null==i?void 0:i.audio)!==!1;return(0,a.jsxs)(en,{open:o,onOpenChange:c,children:[(0,a.jsx)(el,{asChild:!0,children:(0,a.jsxs)(b.$,{variant:"ghost",size:"sm",className:"h-8 px-3 text-sm text-muted-foreground hover:text-foreground rounded-full ".concat(l||""),"aria-label":"Attach File",children:[(0,a.jsx)(et.A,{className:"h-3 w-3 mr-1.5"}),"Attach"]})}),(0,a.jsxs)(ei,{side:"top",align:"start",children:[(0,a.jsx)(eo,{onClick:()=>{d&&(t(),c(!1))},className:d?void 0:"opacity-50 cursor-not-allowed","aria-disabled":!d,children:(0,a.jsx)(f,{children:(0,a.jsxs)(g,{children:[(0,a.jsx)(v,{asChild:!0,children:(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)(et.A,{className:"h-4 w-4 mr-2"})," Image"]})}),!d&&(0,a.jsx)(j,{side:"bottom",children:"Unsupported for this model"})]})})}),(0,a.jsx)(eo,{onClick:()=>{m&&(s(),c(!1))},className:m?void 0:"opacity-50 cursor-not-allowed","aria-disabled":!m,children:(0,a.jsx)(f,{children:(0,a.jsxs)(g,{children:[(0,a.jsx)(v,{asChild:!0,children:(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)(U.A,{className:"h-4 w-4 mr-2"})," PDF"]})}),!m&&(0,a.jsx)(j,{side:"bottom",children:"Unsupported for this model"})]})})}),(0,a.jsx)(eo,{onClick:()=>{u&&(r(),c(!1))},className:u?void 0:"opacity-50 cursor-not-allowed","aria-disabled":!u,children:(0,a.jsx)(f,{children:(0,a.jsxs)(g,{children:[(0,a.jsx)(v,{asChild:!0,children:(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)(z.A,{className:"h-4 w-4 mr-2"})," Audio file"]})}),!u&&(0,a.jsx)(j,{side:"bottom",children:"Unsupported for this model"})]})})})]})]})}ec.displayName="DropdownMenuSeparator";var em=s(1410),eu=s(9142);function eh(e){let{isRecording:t,onToggleRecording:s,className:r,disabled:n}=e,l=(0,a.jsxs)(b.$,{variant:"ghost",size:"sm",onClick:()=>{n||s()},className:"h-8 px-3 text-sm rounded-full ".concat(n?"opacity-50 cursor-not-allowed":"text-muted-foreground hover:text-foreground"," ").concat(r||""),"aria-label":t?"Stop recording":"Record audio","aria-disabled":!!n||void 0,children:[t?(0,a.jsx)(em.A,{className:"h-3 w-3 mr-1.5 text-red-500"}):(0,a.jsx)(eu.A,{className:"h-3 w-3 mr-1.5"}),t?"Stop":"Record"]});return n?(0,a.jsx)(f,{children:(0,a.jsxs)(g,{children:[(0,a.jsx)(v,{asChild:!0,children:l}),(0,a.jsx)(j,{side:"bottom",children:"Unsupported for this model"})]})}):l}var ex=s(5239),ep=s(4679),ef=s(235),eg=s(2559),ev=s(7507),ej=s(6170);function eb(e){let{open:t,onOpenChange:s,provider:r,primaryEnvVar:l,onSaved:i}=e,[o,c]=(0,n.useState)(""),[d,m]=(0,n.useState)(!1),[u,h]=(0,n.useState)(null),x=async()=>{if(!o.trim())return void h("API key is required");m(!0),h(null);try{let e=await fetch("/api/llm/key",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:r,apiKey:o})}),t=await e.json();if(!e.ok||"object"!=typeof t||null===t)throw Error("Failed to save API key");if(!t.ok||!t.provider||!t.envVar)throw Error("Unexpected response while saving API key");i({provider:t.provider,envVar:t.envVar}),s(!1),c("")}catch(e){h(e instanceof Error?e.message:"Failed to save API key")}finally{m(!1)}};return(0,a.jsx)(ep.lG,{open:t,onOpenChange:s,children:(0,a.jsxs)(ep.Cf,{className:"max-w-md",children:[(0,a.jsxs)(ep.c7,{children:[(0,a.jsxs)(ep.L3,{children:["Set ",r," API Key"]}),(0,a.jsxs)(ep.rr,{children:["This key will be stored in your .env (env var ",l,"). It is not shared with the client."]})]}),u&&(0,a.jsx)(eg.Fc,{variant:"destructive",children:(0,a.jsx)(eg.TN,{children:u})}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(ef.J,{htmlFor:"apiKey",children:"API Key"}),(0,a.jsx)(ej.p,{id:"apiKey",type:"password",value:o,onChange:e=>c(e.target.value),placeholder:"Enter ".concat(r," API key")})]}),(0,a.jsxs)(ep.Es,{children:[(0,a.jsx)(b.$,{variant:"outline",onClick:()=>s(!1),disabled:d,children:"Cancel"}),(0,a.jsx)(b.$,{onClick:x,disabled:d,children:d?"Saving...":"Save"})]})]})})}var ey=s(21),eN=s(9347),ew=s(6651);function ek(e){let{value:t,onChange:s,placeholder:r="Search providers or models",autoFocus:l=!1}=e,i=(0,n.useRef)(null);return(0,n.useEffect)(()=>{l&&i.current&&setTimeout(()=>{var e;null==(e=i.current)||e.focus()},100)},[l]),(0,a.jsxs)("div",{className:"flex items-center gap-2 mb-4",children:[(0,a.jsx)(ew.A,{className:"h-4 w-4 text-muted-foreground"}),(0,a.jsx)(ej.p,{ref:i,placeholder:r,value:t,onChange:e=>s(e.target.value),className:"focus:ring-0 focus:ring-offset-0 focus-visible:ring-0 focus-visible:ring-offset-0"})]})}var eC=s(7812),eS=s(4374),eA=s(5740);let eE={openai:"/logos/openai.svg",anthropic:"/logos/claude-color.svg",google:"/logos/gemini-color.svg",groq:"/logos/groq.svg",xai:"/logos/grok.svg","openai-compatible":"/logos/openai.svg",cohere:"/logos/cohere-color.svg"},eT={openai:"https://platform.openai.com/docs/pricing",anthropic:"https://www.anthropic.com/pricing#api",google:"https://ai.google.dev/gemini-api/docs/pricing",groq:"https://groq.com/pricing/",xai:"https://docs.x.ai/docs/models",cohere:"https://cohere.com/pricing"};function eD(e){if(!e)return[];let t="USD"===(e.currency||"USD")?"$":"",s=[];return s.push("Cost: ".concat(t).concat(e.inputPerM.toFixed(2)," in / ").concat(t).concat(e.outputPerM.toFixed(2)," out per 1M tokens")),null!=e.cacheReadPerM&&s.push("Cache read: ".concat(t).concat(e.cacheReadPerM.toFixed(2)," per 1M tokens")),null!=e.cacheWritePerM&&s.push("Cache write: ".concat(t).concat(e.cacheWritePerM.toFixed(2)," per 1M tokens")),s}let eR=["google","cohere","anthropic"],eI=e=>!eR.includes(e),eF={image:(0,a.jsx)("span",{className:"text-sm",children:"\uD83D\uDDBC️"}),audio:(0,a.jsx)("span",{className:"text-sm",children:"\uD83C\uDFB5"}),pdf:(0,a.jsx)("span",{className:"text-sm",children:"\uD83D\uDCC4"}),reasoning:(0,a.jsx)("span",{className:"text-sm",children:"\uD83E\uDDE0"}),experimental:(0,a.jsx)(eS.A,{className:"h-3.5 w-3.5 text-muted-foreground hover:text-amber-500 transition-colors cursor-help"}),new:(0,a.jsx)(eA.A,{className:"h-3.5 w-3.5 text-muted-foreground hover:text-yellow-500 transition-colors cursor-help"}),realtime:(0,a.jsx)(Y.A,{className:"h-3.5 w-3.5 text-muted-foreground hover:text-blue-500 transition-colors cursor-help"})};var eL=s(9708);function eO(e){let{supportedFileTypes:t,hasApiKey:s,className:r}=e;return(0,a.jsxs)("div",{className:"flex items-center gap-1.5 flex-shrink-0 ".concat(r||""),children:[t.includes("pdf")&&(0,a.jsxs)(g,{children:[(0,a.jsx)(v,{asChild:!0,children:(0,a.jsx)("div",{className:"transition-transform hover:scale-125",children:eF.pdf})}),(0,a.jsx)(j,{side:"top",children:(0,a.jsx)("span",{children:"PDF support"})})]}),t.includes("audio")&&(0,a.jsxs)(g,{children:[(0,a.jsx)(v,{asChild:!0,children:(0,a.jsx)("div",{className:"transition-transform hover:scale-125",children:eF.audio})}),(0,a.jsx)(j,{side:"top",children:(0,a.jsx)("span",{children:"Audio support"})})]}),t.includes("image")&&(0,a.jsxs)(g,{children:[(0,a.jsx)(v,{asChild:!0,children:(0,a.jsx)("div",{className:"transition-transform hover:scale-125",children:eF.image})}),(0,a.jsx)(j,{side:"top",children:(0,a.jsx)("span",{children:"Image support"})})]}),!s&&(0,a.jsxs)(g,{children:[(0,a.jsx)(v,{asChild:!0,children:(0,a.jsx)("div",{className:"transition-transform hover:scale-125",children:(0,a.jsx)(eL.A,{className:"h-3.5 w-3.5 text-amber-500 hover:text-amber-400 transition-colors cursor-help"})})}),(0,a.jsx)(j,{side:"top",children:(0,a.jsx)("span",{children:"API key required"})})]})]})}function eP(e){let{providerId:t,provider:s,models:r,favorites:n,currentModel:l,onToggleFavorite:o,onUse:c}=e;return 0===r.length?null:(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("div",{className:"w-5 h-5 flex items-center justify-center",children:eE[t]?(0,a.jsx)(ex.default,{src:eE[t],alt:"".concat(t," logo"),width:20,height:20,className:(0,i.cn)("object-contain",eI(t)&&"dark:invert dark:brightness-0 dark:contrast-200")}):(0,a.jsx)(ey.A,{className:"h-4 w-4 text-muted-foreground"})}),(0,a.jsx)("span",{className:"text-base font-medium",children:s.name})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[s.supportedRouters.map(e=>(0,a.jsx)(eC.E,{variant:"outline",className:"capitalize text-xs",children:e},e)),s.supportsBaseURL&&(0,a.jsx)(eC.E,{variant:"secondary",className:"text-xs",children:"baseURL"}),!s.hasApiKey&&(0,a.jsx)(f,{children:(0,a.jsxs)(g,{children:[(0,a.jsx)(v,{asChild:!0,children:(0,a.jsx)(eC.E,{variant:"destructive",className:"text-xs cursor-default",children:"API Key Required"})}),(0,a.jsxs)(j,{children:["Click any ",s.name," model to set up the API key"]})]})}),eT[t]&&(0,a.jsx)("a",{href:eT[t],target:"_blank",rel:"noopener noreferrer",className:"text-muted-foreground hover:underline",title:"View provider pricing",children:"Pricing ↗"})]})]}),(0,a.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3",children:r.map(e=>{let r,d,m=e.displayName||e.name,u=(r=e.name,(null==l?void 0:l.provider)===t&&(null==l?void 0:l.model)===r),h=(d=e.name,n.includes("".concat(t,"|").concat(d))),x=s.hasApiKey,p=eD(e.pricing||void 0),b=["Max tokens: ".concat(e.maxInputTokens.toLocaleString()),e.supportedFileTypes.length>0&&"Supports: ".concat(e.supportedFileTypes.join(", ")),e.default&&"Default model",!x&&"⚠️ API key required",...p].filter(Boolean);return(0,a.jsx)(f,{children:(0,a.jsxs)(g,{children:[(0,a.jsx)(v,{asChild:!0,children:(0,a.jsxs)("div",{onClick:()=>c(t,e),onKeyDown:s=>{let r=s.target;if(r&&r.closest("button"))return;let a="Enter"===s.key,n=" "===s.key||"Spacebar"===s.key||"Space"===s.code;n&&s.preventDefault(),(a||n)&&c(t,e)},className:(0,i.cn)("group relative flex items-center gap-3 px-3 py-2.5 rounded-lg border transition-all duration-100 cursor-pointer outline-none","hover:bg-accent hover:border-accent-foreground/20 hover:shadow-sm","focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50",u&&"bg-accent border-accent-foreground/20 shadow-sm ring-1 ring-accent-foreground/10",!x&&"opacity-60"),role:"button",tabIndex:0,children:[(0,a.jsx)("div",{className:"flex-1 text-left",children:(0,a.jsx)("div",{className:"flex items-center gap-2",children:(0,a.jsx)("span",{className:"text-sm font-medium",children:m})})}),(0,a.jsx)(eO,{supportedFileTypes:e.supportedFileTypes,hasApiKey:x}),(0,a.jsx)(f,{children:(0,a.jsxs)(g,{children:[(0,a.jsx)(v,{asChild:!0,children:(0,a.jsx)("button",{onKeyDown:e=>{let t=" "===e.key||"Spacebar"===e.key||"Space"===e.code;("Enter"===e.key||t)&&(e.stopPropagation(),t&&e.preventDefault())},onClick:s=>{s.stopPropagation(),o(t,e.name)},className:"flex-shrink-0 text-muted-foreground hover:text-foreground transition-colors","aria-label":h?"Remove from favorites":"Add to favorites",children:(0,a.jsx)(eN.A,{className:(0,i.cn)("h-4 w-4",h&&"fill-current text-yellow-500")})})}),(0,a.jsx)(j,{side:"top",children:(0,a.jsx)("span",{children:h?"Remove from favorites":"Add to favorites"})})]})}),u&&(0,a.jsx)("div",{className:"absolute inset-y-0 left-0 w-0.5 bg-primary rounded-l-lg"})]})}),(0,a.jsx)(j,{side:"bottom",className:"max-w-xs",children:(0,a.jsx)("div",{className:"text-xs space-y-0.5",children:b.map((e,t)=>(0,a.jsx)("div",{children:e},t))})})]})},e.name)})})]})}function ez(e,t){return"".concat(e,"|").concat(t)}let eU="dexto:modelFavorites";function eq(e){let{provider:t,model:s,providerInfo:r,isFavorite:n,isActive:l,onClick:o,onToggleFavorite:c}=e,d=s.displayName||s.name,m=r.hasApiKey,u=eD(s.pricing||void 0),h=["Max tokens: ".concat(s.maxInputTokens.toLocaleString()),s.supportedFileTypes.length>0&&"Supports: ".concat(s.supportedFileTypes.join(", ")),!m&&"⚠️ API key required",...u].filter(Boolean);return(0,a.jsx)(f,{children:(0,a.jsxs)(g,{children:[(0,a.jsx)(v,{asChild:!0,children:(0,a.jsxs)("div",{onClick:o,className:(0,i.cn)("w-full flex items-center gap-4 px-4 py-3 rounded-xl transition-all duration-150 cursor-pointer group","hover:bg-accent/50 hover:shadow-md hover:scale-[1.01]",l&&"bg-primary/10 shadow-md ring-2 ring-primary/20 scale-[1.01]",!m&&"opacity-60"),role:"button",tabIndex:0,children:[(0,a.jsx)("div",{className:"w-6 h-6 flex-shrink-0 flex items-center justify-center",children:eE[t]?(0,a.jsx)(ex.default,{src:eE[t],alt:"".concat(t," logo"),width:24,height:24,className:(0,i.cn)("object-contain",eI(t)&&"dark:invert dark:brightness-0 dark:contrast-200")}):(0,a.jsx)(ey.A,{className:"h-5 w-5 text-muted-foreground"})}),(0,a.jsxs)("div",{className:"flex-1 text-left min-w-0",children:[(0,a.jsx)("div",{className:"text-sm font-semibold text-foreground truncate",children:d}),(0,a.jsx)("div",{className:"text-xs text-muted-foreground",children:t})]}),(0,a.jsx)(eO,{supportedFileTypes:s.supportedFileTypes,hasApiKey:m}),(0,a.jsx)(f,{children:(0,a.jsxs)(g,{children:[(0,a.jsx)(v,{asChild:!0,children:(0,a.jsx)("button",{onClick:e=>{e.stopPropagation(),c()},className:(0,i.cn)("flex-shrink-0 transition-all duration-200","hover:scale-110 active:scale-95",n?"text-yellow-500 hover:text-yellow-400":"text-muted-foreground hover:text-yellow-500"),"aria-label":n?"Remove from favorites":"Add to favorites",children:(0,a.jsx)(eN.A,{className:(0,i.cn)("h-4 w-4",n&&"fill-current")})})}),(0,a.jsx)(j,{side:"top",children:(0,a.jsx)("span",{children:n?"Remove from favorites":"Add to favorites"})})]})})]})}),(0,a.jsx)(j,{side:"right",className:"max-w-xs",children:(0,a.jsx)("div",{className:"text-xs space-y-0.5",children:h.map((e,t)=>(0,a.jsx)("div",{children:e},t))})})]})})}function eM(){var e;let[t,s]=(0,n.useState)(!1),[r,o]=(0,n.useState)(!1),[c,u]=(0,n.useState)(null),[h,x]=(0,n.useState)({}),[p,f]=(0,n.useState)(""),[g,v]=(0,n.useState)(!1),[j,y]=(0,n.useState)(""),[N,w]=(0,n.useState)(""),[k,C]=(0,n.useState)(!1),[S,A]=(0,n.useState)(!1),[E,T]=(0,n.useState)(!1),[D,I]=(0,n.useState)(!1),[F,L]=(0,n.useState)(null),[O,z]=(0,n.useState)(null),{currentSessionId:U,currentLLM:q,refreshCurrentLLM:M}=(0,l.v)();(0,n.useEffect)(()=>{t&&q&&(y(q.router||"vercel"),w(q.baseURL||""))},[t,q]),(0,n.useEffect)(()=>{if(!t)return;let e=!1;return async function(){o(!0),u(null);try{let t=await fetch("/api/llm/catalog");if(!e&&t.ok){let e=await t.json();x(e.providers||{})}}catch(t){e||u("Failed to load catalog")}finally{e||o(!1)}}(),()=>{e=!0}},[t]);let[K,V]=(0,n.useState)([]);(0,n.useEffect)(()=>{if(t)try{let e=localStorage.getItem(eU);V(e?JSON.parse(e):[])}catch(e){V([])}},[t]);let J=(0,n.useCallback)((e,t)=>{let s=ez(e,t);V(e=>{let t=e.includes(s)?e.filter(e=>e!==s):[...e,s];return localStorage.setItem(eU,JSON.stringify(t)),t})},[]);async function _(e,t,r){C(!0),u(null);try{var a,n;let l=function(e,t){var s,r,a;let n=(null==q?void 0:q.router)||"vercel",l=null!=(r=null==(s=h[e])?void 0:s.supportedRouters)?r:["vercel"],i=null!=(a=t.supportedRouters)?a:l,o=j||n;return i.includes(o)?o:i[0]||l[0]||"vercel"}(e,t),i={provider:e,model:t.name,router:l};r&&(null==(a=h[e])?void 0:a.supportsBaseURL)&&(i.baseURL=r),U&&(i.sessionId=U);let o=await fetch("/api/llm/switch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)}),c=await o.json().catch(()=>({}));if(!o.ok){let e=(null==c?void 0:c.issues)&&(null==(n=c.issues[0])?void 0:n.message)||"Failed to switch model";u(e);return}await M(),s(!1)}catch(e){u("Network error while switching")}finally{C(!1)}}function $(e,t){let s=h[e];if(s){if(s.supportsBaseURL&&N){let e=function(e){let t=e.trim();if(!t.length)return{isValid:!0};try{let e=new URL(t);if(!["http:","https:"].includes(e.protocol))return{isValid:!1,error:"URL must use http:// or https://"};if(!e.pathname.includes("/v1"))return{isValid:!1,error:"URL must include /v1 for compatibility"};return{isValid:!0}}catch(e){return{isValid:!1,error:"Invalid URL format"}}}(N);if(!e.isValid)return void u(e.error||"Invalid base URL")}if(!s.hasApiKey){z({provider:e,model:t.name}),L(e),I(!0);return}_(e,t,N)}}let B=Object.keys(h),G=(null==q?void 0:q.displayName)||(null==q?void 0:q.model)||"Choose Model",H=(0,n.useMemo)(()=>K.map(e=>{let[t,s]=e.split("|"),r=h[t],a=null==r?void 0:r.models.find(e=>e.name===s);return r&&a?{providerId:t,provider:r,model:a}:null}).filter(Boolean),[K,h]),W=(0,n.useMemo)(()=>{if(!p)return h;let e={};return B.forEach(t=>{let s=h[t].models.filter(e=>(function(e,t){var s,r,a,n;let l=p.trim().toLowerCase();return!l||t.name.toLowerCase().includes(l)||null!=(a=null==(s=t.displayName)?void 0:s.toLowerCase().includes(l))&&a||e.toLowerCase().includes(l)||null!=(n=null==(r=h[e])?void 0:r.name.toLowerCase().includes(l))&&n})(t,e));s.length>0&&(e[t]={...h[t],models:s})}),e},[h,p,B]);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(ep.lG,{open:t,onOpenChange:s,children:[(0,a.jsx)(ep.zM,{asChild:!0,children:(0,a.jsxs)(b.$,{variant:"ghost",size:"sm",className:"hidden lg:flex items-center gap-2 cursor-pointer",title:"Choose model",children:[(null==q?void 0:q.provider)&&eE[q.provider]?(0,a.jsx)(ex.default,{src:eE[q.provider],alt:"".concat(q.provider," logo"),width:16,height:16,className:(0,i.cn)("object-contain",eI(q.provider)&&"dark:invert dark:brightness-0 dark:contrast-200")}):(0,a.jsx)(R.A,{className:"h-4 w-4"}),(0,a.jsx)("span",{className:"text-sm",children:G}),(0,a.jsx)(m.A,{className:"h-3 w-3"})]})}),(0,a.jsxs)(ep.Cf,{className:"max-w-4xl max-h-[85vh] flex flex-col",children:[(0,a.jsxs)(ep.c7,{className:"pb-4 flex-shrink-0",children:[(0,a.jsx)(ep.L3,{className:"text-xl",children:"Select Model"}),(0,a.jsx)(ep.rr,{className:"text-sm text-muted-foreground",children:"Choose from your favorite models or explore all available options"})]}),(0,a.jsxs)("div",{className:"flex flex-col min-h-0 flex-1 space-y-6",children:[(0,a.jsxs)("div",{className:"flex-shrink-0 space-y-4",children:[c&&(0,a.jsx)(eg.Fc,{variant:"destructive",children:(0,a.jsx)(eg.TN,{children:c})}),(0,a.jsx)(ek,{value:p,onChange:f,placeholder:"Search models, providers..."})]}),H.length>0&&!p&&(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsxs)(b.$,{variant:"ghost",size:"sm",onClick:()=>T(!E),className:"flex items-center justify-between w-full p-0 h-auto hover:bg-transparent",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(eN.A,{className:"h-4 w-4 text-yellow-500 fill-current"}),(0,a.jsx)("span",{className:"text-sm font-medium",children:"Favorites"}),(0,a.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",H.length,")"]})]}),E?(0,a.jsx)(m.A,{className:"h-4 w-4"}):(0,a.jsx)(d.A,{className:"h-4 w-4"})]}),!E&&(0,a.jsxs)("div",{className:"space-y-1",children:[(0,a.jsx)("div",{className:"max-h-[280px] overflow-y-auto px-1 py-1 space-y-1",children:H.map(e=>{let t,{providerId:s,provider:r,model:n}=e;return(0,a.jsx)(eq,{provider:s,model:n,providerInfo:r,isFavorite:!0,isActive:(t=n.name,(null==q?void 0:q.provider)===s&&(null==q?void 0:q.model)===t),onClick:()=>$(s,n),onToggleFavorite:()=>J(s,n.name)},ez(s,n.name))})}),H.length>6&&(0,a.jsxs)("div",{className:"text-xs text-muted-foreground text-center",children:["Scroll to see all ",H.length," favorites"]})]})]}),!p&&(0,a.jsx)(b.$,{variant:"ghost",size:"sm",onClick:()=>A(!S),className:"w-full justify-center gap-2",children:S?(0,a.jsxs)(a.Fragment,{children:["Hide All Models ",(0,a.jsx)(d.A,{className:"h-4 w-4"})]}):(0,a.jsxs)(a.Fragment,{children:["Show All Models ",(0,a.jsx)(m.A,{className:"h-4 w-4"})]})}),(S||p)&&(0,a.jsx)("div",{className:"flex-1 overflow-auto px-1 min-h-0",children:(0,a.jsx)("div",{className:"space-y-6 pb-2",children:r?(0,a.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,a.jsx)(P.A,{className:"h-4 w-4 animate-spin"})," Loading models..."]}):0===Object.keys(W).length?(0,a.jsx)("div",{className:"text-sm text-muted-foreground text-center py-8",children:p?"No models found matching your search":"No providers available"}):Object.entries(W).map(e=>{let[t,s]=e;return(0,a.jsx)(eP,{providerId:t,provider:s,models:s.models,favorites:K,currentModel:q||void 0,onToggleFavorite:J,onUse:$},t)})})})]}),(0,a.jsxs)("div",{className:"flex-shrink-0 space-y-3 border-t pt-4 mt-4",children:[(0,a.jsxs)(b.$,{variant:"ghost",size:"sm",onClick:()=>v(!g),className:"flex items-center justify-between w-full p-0 h-auto hover:bg-transparent",children:[(0,a.jsx)("span",{className:"text-sm font-medium text-muted-foreground",children:"Advanced Options"}),g?(0,a.jsx)(d.A,{className:"h-4 w-4"}):(0,a.jsx)(m.A,{className:"h-4 w-4"})]}),g&&(0,a.jsxs)("div",{className:"space-y-4 pl-4 border-l-2 border-muted",children:[(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(ef.J,{className:"text-sm font-medium",children:"Router"}),(0,a.jsxs)(ev.l6,{value:j,onValueChange:e=>y(e),children:[(0,a.jsx)(ev.bq,{children:(0,a.jsx)(ev.yv,{placeholder:"Select router"})}),(0,a.jsx)(ev.gC,{children:Array.from(new Set(B.flatMap(e=>h[e].supportedRouters))).map(e=>(0,a.jsx)(ev.eb,{value:e,children:(0,a.jsx)("span",{className:"capitalize",children:e})},e))})]})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(ef.J,{className:"text-sm font-medium",children:"Custom Base URL"}),(0,a.jsx)(ej.p,{value:N,onChange:e=>w(e.target.value),placeholder:"https://api.openai.com/v1",className:"text-sm"}),(0,a.jsx)("div",{className:"text-xs text-muted-foreground",children:"Only used for providers that support baseURL."})]})]})]})]})]}),F&&(0,a.jsx)(eb,{open:D,onOpenChange:I,provider:F,primaryEnvVar:(null==(e=h[F])?void 0:e.primaryEnvVar)||"",onSaved:function(e){if(x(t=>({...t,[e.provider]:t[e.provider]?{...t[e.provider],hasApiKey:!0}:t[e.provider]})),I(!1),O){var t;let{provider:e,model:s}=O,r=null==(t=h[e])?void 0:t.models.find(e=>e.name===s);r&&_(e,r,N),z(null)}}})]})}var eK=s(6132),eV=s(7188);function eJ(e){let{onSend:t,isSending:s,variant:r="chat"}=e,[o,c]=(0,n.useState)(""),d=(0,n.useRef)(null),[m,h]=(0,n.useState)(null),[x,p]=(0,n.useState)(null),f=(0,n.useRef)(null),g=(0,n.useRef)(null),v=(0,n.useRef)(null),j=function(){let[e,t]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{if("undefined"==typeof document)return;let e=document;if(!e.fonts||!e.fonts.ready)return void t(!0);let s=!1;return e.fonts.ready.then(()=>{s||t(!0)}),()=>{s=!0}},[]),e}(),[y,N]=(0,n.useState)(!1),k=(0,n.useRef)(null),{currentSessionId:C,isStreaming:S,setStreaming:A,cancel:E,processing:T,currentLLM:D}=(0,l.v)(),[R,I]=(0,n.useState)(null),[F,L]=(0,n.useState)(!1),[O,q]=(0,n.useState)(null),[M,K]=(0,n.useState)(null),[V,J]=(0,n.useState)([]),_=[{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"}],$=e=>{K(e),setTimeout(()=>K(null),5e3)};(0,n.useEffect)(()=>{(async()=>{try{let e=await fetch(C?"/api/llm/current?sessionId=".concat(C):"/api/llm/current");if(e.ok){let t=await e.json(),s=_.find(e=>e.model===t.config.model);s?I(s):I({name:"".concat(t.config.provider,"/").concat(t.config.model),provider:t.config.provider,model:t.config.model})}}catch(e){console.error("Failed to fetch current model:",e),I(null)}})()},[C]),(0,n.useEffect)(()=>{(async()=>{try{let e=await fetch("/api/llm/catalog?mode=flat");if(!e.ok)return;let t=(await e.json()).models||[],s=null==D?void 0:D.provider,r=null==D?void 0:D.model;if(!s||!r)return;let a=t.find(e=>e.provider===s&&e.name===r);J((null==a?void 0:a.supportedFileTypes)||[])}catch(e){J([])}})()},[null==D?void 0:D.provider,null==D?void 0:D.model]);let B=()=>{let e=o.trim();(e||m||x)&&(t(e,null!=m?m:void 0,null!=x?x:void 0),c(""),h(null),p(null))},G=e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),B())},Y=e=>{let t=e.clipboardData.getData("text/plain");if(t&&!(t.length<=2e4))if(e.preventDefault(),window.confirm("Large text detected. Attach as a file instead of inflating the input?\n(OK = attach as file, Cancel = paste truncated preview)"))p({base64:(e=>{try{return btoa(unescape(encodeURIComponent(e)))}catch(t){return btoa(e)}})(t),mimeType:"text/plain",filename:"pasted.txt"});else{let e=t.slice(0,2e4);c(t=>t+e)}},Z=async()=>{try{let e=await navigator.mediaDevices.getUserMedia({audio:!0}),t=new MediaRecorder(e);k.current=t;let s=[];t.ondataavailable=e=>{e.data.size>0&&s.push(e.data)},t.onstop=()=>{let r=new Blob(s,{type:t.mimeType}),a=new FileReader;a.onloadend=()=>{try{let e=a.result,s=e.indexOf(","),r=e.substring(s+1),n=t.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";p({base64:r,mimeType:n,filename:"recording.".concat(l)})}catch(e){$("Failed to process audio recording. Please try again."),p(null)}},a.readAsDataURL(r),e.getTracks().forEach(e=>e.stop())},t.start(),N(!0)}catch(e){$("Failed to start audio recording. Please check microphone permissions.")}};return(0,n.useEffect)(()=>{o&&O&&q(null),o&&M&&K(null)},[o,O]),o.length,(0,a.jsxs)("div",{id:"input-area",className:"flex flex-col gap-2 w-full",children:[O&&(0,a.jsxs)(eg.Fc,{variant:"destructive",className:"mb-2",children:[(0,a.jsx)(eK.A,{className:"h-4 w-4"}),(0,a.jsxs)(eg.TN,{className:"flex items-center justify-between",children:[(0,a.jsx)("span",{children:O}),(0,a.jsx)(b.$,{variant:"ghost",size:"sm",onClick:()=>q(null),className:"h-auto p-1 ml-2",children:(0,a.jsx)(u.A,{className:"h-3 w-3"})})]})]}),M&&(0,a.jsxs)(eg.Fc,{variant:"destructive",className:"mb-2",children:[(0,a.jsx)(eK.A,{className:"h-4 w-4"}),(0,a.jsxs)(eg.TN,{className:"flex items-center justify-between",children:[(0,a.jsx)("span",{children:M}),(0,a.jsx)(b.$,{variant:"ghost",size:"sm",onClick:()=>K(null),className:"h-auto p-1 ml-2",children:(0,a.jsx)(u.A,{className:"h-3 w-3"})})]})]}),(0,a.jsxs)("div",{className:"w-full",children:[(0,a.jsx)("form",{onSubmit:e=>{e.preventDefault(),B()},children:(0,a.jsxs)(W,{children:[(m||x)&&(0,a.jsx)("div",{className:"px-4 pt-4",children:(0,a.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[m&&(0,a.jsxs)("div",{className:"relative w-fit border border-border rounded-lg p-1 bg-muted/50 group",children:[(0,a.jsx)("img",{src:"data:".concat(m.mimeType,";base64,").concat(m.base64),alt:"preview",className:"h-12 w-auto rounded-md"}),(0,a.jsx)(b.$,{variant:"destructive",size:"icon",onClick:()=>h(null),className:"absolute -top-1 -right-1 h-4 w-4 rounded-full bg-destructive text-destructive-foreground opacity-100 group-hover:opacity-100 transition-opacity duration-150 shadow-md","aria-label":"Remove image",children:(0,a.jsx)(u.A,{className:"h-2 w-2"})})]}),x&&(0,a.jsxs)("div",{className:"relative w-fit border border-border rounded-lg p-2 bg-muted/50 flex items-center gap-2 group",children:[x.mimeType.startsWith("audio")?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(z.A,{className:"h-4 w-4"}),(0,a.jsx)("audio",{controls:!0,src:"data:".concat(x.mimeType,";base64,").concat(x.base64),className:"h-8"})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(U.A,{className:"h-4 w-4"}),(0,a.jsx)("span",{className:"text-xs font-medium max-w-[160px] truncate",children:x.filename||"attachment"})]}),(0,a.jsx)(b.$,{variant:"destructive",size:"icon",onClick:()=>p(null),className:"absolute -top-1 -right-1 h-4 w-4 rounded-full bg-destructive text-destructive-foreground opacity-100 group-hover:opacity-100 transition-opacity duration-150 shadow-md","aria-label":"Remove attachment",children:(0,a.jsx)(u.A,{className:"h-2 w-2"})})]})]})}),(0,a.jsx)("div",{className:"flex-auto overflow-y-auto",children:j?(0,a.jsx)(H.A,{ref:d,value:o,onChange:e=>c(e.target.value),onKeyDown:G,onPaste:Y,placeholder:"Ask Dexto anything...",minRows:1,maxRows:8,className:"w-full px-4 pt-4 pb-1 text-lg leading-7 placeholder:text-lg bg-transparent border-none resize-none outline-none ring-0 ring-offset-0 focus:ring-0 focus-visible:ring-0 focus-visible:ring-offset-0 focus:outline-none max-h-full"}):(0,a.jsx)("textarea",{ref:d,rows:1,value:o,onChange:e=>c(e.target.value),onKeyDown:G,onPaste:Y,placeholder:"Ask Dexto anything...",className:"w-full px-4 pt-4 pb-1 text-lg leading-7 placeholder:text-lg bg-transparent border-none resize-none outline-none ring-0 ring-offset-0 focus:ring-0 focus-visible:ring-0 focus-visible:ring-offset-0 focus:outline-none"})}),(0,a.jsx)(Q,{leftButtons:(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(ed,{onImageAttach:()=>{var e;return null==(e=f.current)?void 0:e.click()},onPdfAttach:()=>{var e;return null==(e=g.current)?void 0:e.click()},onAudioAttach:()=>{var e;return null==(e=v.current)?void 0:e.click()},supports:{image:V.length?V.includes("image"):void 0,pdf:V.length?V.includes("pdf"):void 0,audio:V.length?V.includes("audio"):void 0}}),(0,a.jsx)(eh,{isRecording:y,onToggleRecording:y?()=>{var e;null==(e=k.current)||e.stop(),N(!1)}:Z,disabled:!V.includes("audio")})]}),rightButtons:(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(ee,{isStreaming:S,onStreamingChange:A}),(0,a.jsx)(eM,{}),(0,a.jsx)(b.$,{type:T?"button":"submit",onClick:T?()=>E(C||void 0):void 0,disabled:!T&&(!o.trim()&&!m&&!x||s),className:(0,i.cn)("h-10 w-10 p-0 rounded-full transition-all duration-200",T?"bg-secondary/80 text-secondary-foreground hover:bg-secondary shadow-sm hover:shadow-md border border-border/50":"bg-primary text-primary-foreground hover:bg-primary/90 shadow-sm hover:shadow-lg"),"aria-label":T?"Stop":"Send message",title:T?"Stop":"Send",children:T?(0,a.jsx)(w.A,{className:"h-3.5 w-3.5 fill-current"}):s?(0,a.jsx)(P.A,{className:"h-4 w-4 animate-spin"}):(0,a.jsx)(eV.A,{className:"h-4 w-4"})})]})})]})}),(0,a.jsx)("input",{ref:f,type:"file",id:"image-upload",accept:"image/*",className:"hidden",onChange:e=>{var t;let s=null==(t=e.target.files)?void 0:t[0];if(!s)return;if(s.size>0x4000000){$("Image file too large. Maximum size is 64MB."),e.target.value="";return}if(!s.type.startsWith("image/")){$("Please select a valid image file."),e.target.value="";return}let r=new FileReader;r.onloadend=()=>{try{let e=r.result,t=e.indexOf(",");if(-1===t)throw Error("Invalid Data URL format");let a=e.substring(0,t),n=e.substring(t+1),l=a.match(/data:(.*);base64/),i=l?l[1]:s.type;if(!i)throw Error("Could not determine MIME type");h({base64:n,mimeType:i}),K(null)}catch(e){$("Failed to process image file. Please try again."),h(null)}},r.onerror=e=>{$("Failed to read image file. Please try again."),h(null)},r.readAsDataURL(s),e.target.value=""}}),(0,a.jsx)("input",{ref:g,type:"file",id:"pdf-upload",accept:"application/pdf",className:"hidden",onChange:e=>{var t;let s=null==(t=e.target.files)?void 0:t[0];if(!s)return;if(s.size>0x4000000){$("PDF file too large. Maximum size is 64MB."),e.target.value="";return}if("application/pdf"!==s.type){$("Please select a valid PDF file."),e.target.value="";return}let r=new FileReader;r.onloadend=()=>{try{let e=r.result,t=e.indexOf(","),a=e.substring(t+1);p({base64:a,mimeType:"application/pdf",filename:s.name}),K(null)}catch(e){$("Failed to process PDF file. Please try again."),p(null)}},r.onerror=e=>{$("Failed to read PDF file. Please try again."),p(null)},r.readAsDataURL(s),e.target.value=""}}),(0,a.jsx)("input",{ref:v,type:"file",id:"audio-upload",accept:"audio/*",className:"hidden",onChange:e=>{var t;let s=null==(t=e.target.files)?void 0:t[0];if(!s)return;if(s.size>0x4000000){$("Audio file too large. Maximum size is 64MB."),e.target.value="";return}if(!s.type.startsWith("audio/")){$("Please select a valid audio file."),e.target.value="";return}let r=new FileReader;r.onloadend=()=>{try{let e=r.result,t=e.indexOf(","),a=e.substring(t+1);p({base64:a,mimeType:s.type,filename:s.name}),K(null)}catch(e){$("Failed to process audio file. Please try again."),p(null)}},r.onerror=e=>{$("Failed to read audio file. Please try again."),p(null)},r.readAsDataURL(s),e.target.value=""}})]})]})}var e_=s(4432);class e${static getInstance(){return e$.instance||(e$.instance=new e$),e$.instance}async initialize(){this.isInitialized||(this.registryEntries=this.getBuiltinEntries(),await this.loadCustomEntries(),this.isInitialized=!0)}async getEntries(e){var t;await this.initialize();let s=[...this.registryEntries];if((null==e?void 0:e.category)&&(s=s.filter(t=>t.category===e.category)),(null==e||null==(t=e.tags)?void 0:t.length)&&(s=s.filter(t=>e.tags.some(e=>t.tags.includes(e)))),null==e?void 0:e.search){let t=e.search.toLowerCase();s=s.filter(e=>e.name.toLowerCase().includes(t)||e.description.toLowerCase().includes(t)||e.tags.some(e=>e.toLowerCase().includes(t)))}return(null==e?void 0:e.installed)!==void 0&&(s=s.filter(t=>t.isInstalled===e.installed)),(null==e?void 0:e.official)!==void 0&&(s=s.filter(t=>t.isOfficial===e.official)),s.sort((e,t)=>e.isInstalled!==t.isInstalled?e.isInstalled?-1:1:e.isOfficial!==t.isOfficial?e.isOfficial?-1:1:e.popularity!==t.popularity?(t.popularity||0)-(e.popularity||0):e.name.localeCompare(t.name))}async addCustomEntry(e){let t={...e,id:"custom-".concat(Date.now(),"-").concat(Math.random().toString(36).substr(2,9)),isOfficial:!1,lastUpdated:new Date};return this.registryEntries.push(t),await this.saveCustomEntries(),t}async updateEntry(e,t){let s=this.registryEntries.findIndex(t=>t.id===e);return -1!==s&&(this.registryEntries[s]={...this.registryEntries[s],...t,lastUpdated:new Date},await this.saveCustomEntries(),!0)}async setInstalled(e,t){return this.updateEntry(e,{isInstalled:t})}async getServerConfig(e){return await this.initialize(),this.registryEntries.find(t=>t.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 t=JSON.parse(e);this.registryEntries.push(...t)}catch(e){console.warn("Failed to load custom server entries:",e)}}}constructor(){this.registryEntries=[],this.isInitialized=!1}}let eB=e$.getInstance();var eG=s(7001),eH=s(6191),eW=s(6046),eQ=s(1566);function eY(e){let{isOpen:t,onClose:s,onAddServer:r}=e,[l,i]=(0,n.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,n.useState)(""),[d,m]=(0,n.useState)(""),[u,h]=(0,n.useState)(""),[x,p]=(0,n.useState)([]),[f,g]=(0,n.useState)(""),[v,j]=(0,n.useState)(null),[y,N]=(0,n.useState)(!1),w=async e=>{e.preventDefault(),j(null),N(!0);try{let e=o.split(",").map(e=>e.trim()).filter(Boolean),t=d.split(",").map(e=>e.trim()).filter(Boolean),a=f.split(",").map(e=>e.trim()).filter(Boolean),n={};if(u.trim())for(let e of u.split("\n")){let t=e.trim();if(!t)continue;let s=t.indexOf("=");if(s>0){let e=t.substring(0,s).trim(),r=t.substring(s+1).trim();e&&(n[e]=r)}}let v={};if(x.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:n,headers:v},tags:t,requirements:{...l.requirements,dependencies:a}};await r(j),s(),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(""),h(""),p([]),g("")}catch(e){j(e.message||"Failed to add custom server")}finally{N(!1)}},k=e=>{let{name:t,value:s}=e.target;i(e=>({...e,config:{...e.config,[t]:s}}))};return(0,a.jsx)(ep.lG,{open:t,onOpenChange:e=>!e&&s(),children:(0,a.jsxs)(ep.Cf,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[(0,a.jsxs)(ep.c7,{children:[(0,a.jsxs)(ep.L3,{className:"flex items-center gap-2",children:[(0,a.jsx)(eH.A,{className:"h-5 w-5"}),"Add Custom Server to Registry"]}),(0,a.jsx)(ep.rr,{children:"Add your own custom MCP server configuration to the registry for easy reuse."})]}),(0,a.jsxs)("form",{onSubmit:w,className:"space-y-4",children:[v&&(0,a.jsx)(eg.Fc,{variant:"destructive",children:(0,a.jsx)(eg.TN,{children:v})}),(0,a.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)(ef.J,{htmlFor:"name",children:"Server Name *"}),(0,a.jsx)(ej.p,{id:"name",value:l.name,onChange:e=>i(t=>({...t,name:e.target.value})),placeholder:"My Custom Server",required:!0})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)(ef.J,{htmlFor:"category",children:"Category"}),(0,a.jsxs)(ev.l6,{value:l.category,onValueChange:e=>i(t=>({...t,category:e})),children:[(0,a.jsx)(ev.bq,{id:"category",children:(0,a.jsx)(ev.yv,{})}),(0,a.jsx)(ev.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)(ev.eb,{value:e.value,children:e.label},e.value))})]})]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)(ef.J,{htmlFor:"description",children:"Description *"}),(0,a.jsx)(eG.T,{id:"description",value:l.description,onChange:e=>i(t=>({...t,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)(ef.J,{htmlFor:"serverType",children:"Server Type"}),(0,a.jsxs)(ev.l6,{value:l.config.type,onValueChange:e=>i(t=>({...t,config:{...t.config,type:e}})),children:[(0,a.jsx)(ev.bq,{id:"serverType",children:(0,a.jsx)(ev.yv,{})}),(0,a.jsxs)(ev.gC,{children:[(0,a.jsx)(ev.eb,{value:"stdio",children:"stdio"}),(0,a.jsx)(ev.eb,{value:"sse",children:"sse"}),(0,a.jsx)(ev.eb,{value:"http",children:"http"})]})]})]}),"stdio"===l.config.type?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{children:[(0,a.jsx)(ef.J,{htmlFor:"command",children:"Command *"}),(0,a.jsx)(ej.p,{id:"command",value:l.config.command,onChange:e=>i(t=>({...t,config:{...t.config,command:e.target.value}})),placeholder:"npx or python",required:!0})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)(ef.J,{htmlFor:"args",children:"Arguments"}),(0,a.jsx)(ej.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)(ef.J,{htmlFor:"url",children:"URL *"}),(0,a.jsx)(ej.p,{id:"url",name:"url",value:l.config.url,onChange:k,placeholder:"http://localhost:8080/sse",required:!0})]}):(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(ef.J,{htmlFor:"url",children:"URL *"}),(0,a.jsx)(ej.p,{id:"url",name:"url",value:l.config.url,onChange:k,placeholder:"https://example.com",required:!0})]}),"stdio"===l.config.type&&(0,a.jsxs)("div",{children:[(0,a.jsx)(ef.J,{htmlFor:"env",children:"Environment Variables"}),(0,a.jsx)(eG.T,{id:"env",value:u,onChange:e=>h(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)(eQ.w,{label:"Headers",pairs:x,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)(ef.J,{htmlFor:"tags",children:"Tags"}),(0,a.jsx)(ej.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)(ef.J,{htmlFor:"icon",children:"Icon (Emoji)"}),(0,a.jsx)(ej.p,{id:"icon",value:l.icon,onChange:e=>i(t=>({...t,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)(ef.J,{htmlFor:"version",children:"Version"}),(0,a.jsx)(ej.p,{id:"version",value:l.version,onChange:e=>i(t=>({...t,version:e.target.value})),placeholder:"1.0.0"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)(ef.J,{htmlFor:"author",children:"Author"}),(0,a.jsx)(ej.p,{id:"author",value:l.author,onChange:e=>i(t=>({...t,author:e.target.value})),placeholder:"Your Name"})]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)(ef.J,{htmlFor:"homepage",children:"Homepage URL"}),(0,a.jsx)(ej.p,{id:"homepage",value:l.homepage,onChange:e=>i(t=>({...t,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)(ef.J,{htmlFor:"platform",children:"Platform"}),(0,a.jsxs)(ev.l6,{value:l.requirements.platform,onValueChange:e=>i(t=>({...t,requirements:{...t.requirements,platform:e}})),children:[(0,a.jsx)(ev.bq,{id:"platform",children:(0,a.jsx)(ev.yv,{})}),(0,a.jsx)(ev.gC,{children:[{value:"all",label:"All Platforms"},{value:"win32",label:"Windows"},{value:"darwin",label:"macOS"},{value:"linux",label:"Linux"}].map(e=>(0,a.jsx)(ev.eb,{value:e.value,children:e.label},e.value))})]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)(ef.J,{htmlFor:"dependencies",children:"Dependencies"}),(0,a.jsx)(ej.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)(ef.J,{htmlFor:"nodeVersion",children:"Node.js Version"}),(0,a.jsx)(ej.p,{id:"nodeVersion",value:l.requirements.node,onChange:e=>i(t=>({...t,requirements:{...t.requirements,node:e.target.value}})),placeholder:">=16.0.0"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)(ef.J,{htmlFor:"pythonVersion",children:"Python Version"}),(0,a.jsx)(ej.p,{id:"pythonVersion",value:l.requirements.python,onChange:e=>i(t=>({...t,requirements:{...t.requirements,python:e.target.value}})),placeholder:">=3.8"})]})]})]}),(0,a.jsxs)(ep.Es,{className:"flex gap-2",children:[(0,a.jsx)(b.$,{type:"button",variant:"outline",onClick:s,children:"Cancel"}),(0,a.jsx)(b.$,{type:"submit",disabled:y,children:y?"Adding...":(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(eW.A,{className:"h-4 w-4 mr-2"}),"Add to Registry"]})})]})]})]})})}var eZ=s(4172);function eX(e){let{isOpen:t,onClose:s,onInstallServer:r}=e,[l,o]=(0,n.useState)([]),[c,d]=(0,n.useState)([]),[m,u]=(0,n.useState)(!1),[h,x]=(0,n.useState)(null),[p,f]=(0,n.useState)(null),[g,v]=(0,n.useState)(!1),[j,y]=(0,n.useState)({}),[N,w]=(0,n.useState)(""),k=(0,n.useRef)(null),C=(0,n.useRef)(!0),S=(0,n.useRef)(null);(0,n.useEffect)(()=>(C.current=!0,()=>{C.current=!1,k.current&&clearTimeout(k.current),S.current&&S.current.abort()}),[]),(0,n.useEffect)(()=>{t&&(async()=>{S.current&&S.current.abort();let e=new AbortController;if(S.current=e,C.current){u(!0),x(null);try{let t=await eB.getEntries();C.current&&!e.signal.aborted&&(o(t),d(t))}catch(t){C.current&&!e.signal.aborted&&x(t instanceof Error?t.message:"Failed to load server registry")}finally{C.current&&!e.signal.aborted&&u(!1)}}})()},[t]);let A=(0,n.useCallback)(async(e,t)=>{if(C.current)try{let s=await eB.getEntries({...e,search:t||void 0});C.current&&d(s)}catch(e){C.current&&x(e instanceof Error?e.message:"Failed to filter entries")}},[]);(0,n.useEffect)(()=>(k.current&&clearTimeout(k.current),k.current=setTimeout(()=>{A(j,N)},300),()=>{k.current&&clearTimeout(k.current)}),[j,N,l,A]);let E=async e=>{if(C.current){f(e.id);try{await r(e),await eB.setInstalled(e.id,!0),C.current&&o(t=>t.map(t=>t.id===e.id?{...t,isInstalled:!0}:t))}catch(e){C.current&&x(e instanceof Error?e.message:"Failed to install server")}finally{C.current&&f(null)}}},T=async e=>{if(C.current)try{let t=await eB.addCustomEntry(e);C.current&&(o(e=>[t,...e]),v(!1))}catch(e){C.current&&x(e instanceof Error?e.message:"Failed to add custom server")}};return(0,a.jsxs)(ep.lG,{open:t,onOpenChange:e=>!e&&s(),children:[(0,a.jsxs)(ep.Cf,{className:"max-w-2xl max-h-[70vh] overflow-hidden flex flex-col border-0 shadow-2xl",children:[(0,a.jsxs)(ep.c7,{className:"pb-6",children:[(0,a.jsxs)(ep.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)(eZ.A,{className:"h-5 w-5 text-primary"})}),"Browse Tools"]}),(0,a.jsx)(ep.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)(ew.A,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),(0,a.jsx)(ej.p,{placeholder:"Search for tools and integrations...",value:N,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:[h&&(0,a.jsx)(eg.Fc,{variant:"destructive",className:"mb-4",children:(0,a.jsx)(eg.TN,{children:h})}),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)(eZ.A,{className:"h-8 w-8 text-muted-foreground"})}),(0,a.jsx)("div",{className:"text-muted-foreground",children:0===l.length?"No tools available in the registry":"No tools match your search"}),N&&(0,a.jsx)(b.$,{variant:"ghost",size:"sm",onClick:()=>w(""),className:"mt-2",children:"Clear search"})]}):(0,a.jsx)("div",{className:"space-y-3",children:c.map((e,t)=>(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*t,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)(eC.E,{variant:"secondary",className:"text-xs font-medium px-2",children:"Official"}),e.isInstalled&&(0,a.jsx)(eC.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)(b.$,{onClick:()=>E(e),disabled:e.isInstalled||p===e.id,size:"sm",variant:e.isInstalled?"outline":"default",className:(0,i.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)(eY,{isOpen:g,onClose:()=>v(!1),onAddServer:T})]})}var e0=s(9559),e1=s(6826),e2=s(6617),e4=s(1360),e5=s(5159);let e3="/api";function e8(e){let{isOpen:t,onClose:s,onOpenConnectModal:r,variant:l="overlay",refreshTrigger:o}=e,[d,h]=(0,n.useState)([]),[x,p]=(0,n.useState)(null),[f,g]=(0,n.useState)([]),[v,j]=(0,n.useState)(!1),[y,N]=(0,n.useState)(!1),[w,k]=(0,n.useState)(null),[C,S]=(0,n.useState)(null),[A,E]=(0,n.useState)(!1),[T,D]=(0,n.useState)(null),[R,I]=(0,n.useState)(!1),F=(e,t)=>{console.error("ServersPanel Error (".concat(t,"):"),e),"servers"===t&&k(e),"tools"===t&&S(e)},L=(0,n.useCallback)(async e=>{j(!0),k(null),h([]),p(null),g([]),S(null);try{let t=await fetch("".concat(e3,"/mcp/servers"),e?{signal:e}:{});if(!t.ok){let e=await t.json().catch(()=>({error:"Failed to fetch servers"}));throw Error(e.message||e.error||"Server List: ".concat(t.statusText))}let s=(await t.json()).servers||[];if(h(s),s.length>0){let e=s.find(e=>"connected"===e.status);e?p(e.id):s.length>0&&p(s[0].id)}else console.log("No MCP servers found or returned from API.")}catch(e){"AbortError"!==e.name&&F(e.message,"servers")}finally{(null==e?void 0:e.aborted)||j(!1)}},[]),O=async e=>{I(!1);let t={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 s=await fetch("/api/connect-server",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e.name,config:t})}),r=await s.json();if(!s.ok)throw Error(r.error||"Server returned status ".concat(s.status));await L()}catch(e){throw Error(e.message||"Failed to install server")}},P=async e=>{let t=d.find(t=>t.id===e);if(t&&window.confirm('Are you sure you want to remove server "'.concat(t.name,'"?'))){D(e),k(null);try{let t=await fetch("".concat(e3,"/mcp/servers/").concat(e),{method:"DELETE"});if(!t.ok){let e=await t.json().catch(()=>({error:"Failed to remove server"}));throw Error(e.message||e.error||"Server Removal: ".concat(t.statusText))}x===e&&(p(null),g([])),await L()}catch(e){F(e.message,"servers")}finally{D(null)}}};(0,n.useEffect)(()=>{if(!t)return;let e=new AbortController;return L(e.signal),D(null),()=>{e.abort()}},[t,L]),(0,n.useEffect)(()=>{if(o&&t){let e=new AbortController;return L(e.signal),()=>{e.abort()}}},[o,t,L]);let z=(0,n.useCallback)(async(e,t)=>{let s=d.find(t=>t.id===e);if(g([]),S(null),!s||"connected"!==s.status)return void console.warn('Server "'.concat((null==s?void 0:s.name)||e,'" is not connected or not found. Cannot fetch tools.'));N(!0);try{let r=await fetch("".concat(e3,"/mcp/servers/").concat(e,"/tools"),t?{signal:t}:{});if(!r.ok){let e=await r.json().catch(()=>({error:"Failed to fetch tools for ".concat(s.name)}));throw Error(e.message||e.error||"Tool List (".concat(s.name,"): ").concat(r.statusText))}let a=await r.json();(null==t?void 0:t.aborted)||g(a.tools||[]),a.tools&&0!==a.tools.length||console.log('No tools found for server "'.concat(s.name,'".'))}catch(e){"AbortError"!==e.name&&F(e.message,"tools")}finally{(null==t?void 0:t.aborted)||N(!1)}},[d]);(0,n.useEffect)(()=>{if(!x)return;let e=new AbortController;return z(x,e.signal),()=>{e.abort()}},[x,z]);let U=d.find(e=>e.id===x);if("overlay"===l&&!t)return null;let q=(0,i.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",t?"translate-x-0":"translate-x-full"),M=(0,i.cn)("h-full w-full flex flex-col bg-card");return(0,a.jsxs)("aside",{className:"overlay"===l?q:M,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)(b.$,{variant:"ghost",size:"sm",onClick:()=>L(),disabled:v,className:"h-8 w-8 p-0",children:(0,a.jsx)(e0.A,{className:(0,i.cn)("h-3.5 w-3.5",v&&"animate-spin")})}),"overlay"===l&&(0,a.jsx)(b.$,{variant:"ghost",size:"sm",onClick:s,className:"h-8 w-8 p-0",children:(0,a.jsx)(u.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)(b.$,{onClick:r,className:"w-full h-9 text-sm font-medium",size:"sm",children:[(0,a.jsx)(e1.A,{className:"mr-2 h-4 w-4"}),"Connect Server"]}),(0,a.jsxs)(b.$,{onClick:()=>I(!0),variant:"outline",className:"w-full h-9 text-sm font-medium",size:"sm",children:[(0,a.jsx)(e2.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 (",d.length,")"]})}),v&&(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)(e0.A,{className:"h-5 w-5 animate-spin text-muted-foreground"}),(0,a.jsx)("span",{className:"text-xs text-muted-foreground",children:"Loading servers..."})]})}),w&&(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)(c.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:w})]})]})}),!v&&0===d.length&&!w&&(0,a.jsxs)("div",{className:"text-center py-8",children:[(0,a.jsx)(eZ.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"})]}),d.map(e=>(0,a.jsx)("div",{onClick:()=>p(e.id),className:(0,i.cn)("p-3 rounded-lg border cursor-pointer transition-all duration-200 mb-2 last:mb-0",x===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,i.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})]}),T===e.id?(0,a.jsx)(e0.A,{className:"h-4 w-4 animate-spin text-muted-foreground"}):(0,a.jsx)(b.$,{variant:"ghost",size:"sm",onClick:t=>{t.stopPropagation(),P(e.id)},className:"h-8 w-8 p-0 text-muted-foreground hover:text-destructive",children:(0,a.jsx)(e4.A,{className:"h-3.5 w-3.5"})})]})},e.id))]}),U&&(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:()=>E(!A),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)(m.A,{className:(0,i.cn)("h-3.5 w-3.5 transition-transform text-muted-foreground",A&&"rotate-180")})]})}),A&&(0,a.jsxs)("div",{className:"flex-1 overflow-y-auto px-4 py-3",children:[y&&(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)(e0.A,{className:"h-4 w-4 animate-spin text-muted-foreground"}),(0,a.jsx)("span",{className:"text-xs text-muted-foreground",children:"Loading tools..."})]})}),C&&(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)(c.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:C})]})]})}),!y&&0===f.length&&!C&&"connected"===U.status&&(0,a.jsxs)("div",{className:"text-center py-6",children:[(0,a.jsx)(e5.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"!==U.status&&(0,a.jsxs)("div",{className:"text-center py-6",children:[(0,a.jsx)(c.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"})]}),f.map(e=>{var t;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==(t=e.inputSchema)?void 0:t.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)(eX,{isOpen:R,onClose:()=>I(!1),onInstallServer:O})]})}let e6=n.forwardRef((e,t)=>{let{className:s,children:r,...n}=e;return(0,a.jsx)("div",{ref:t,className:(0,i.cn)("relative overflow-auto",s),...n,children:r})});e6.displayName="ScrollArea";var e7=s(4485),e9=s(7107),te=s(6983),tt=s(6485);let ts=function(e){let{onClick:t,className:s,variant:r="outline",side:n="bottom"}=e;return(0,a.jsx)(f,{children:(0,a.jsxs)(g,{children:[(0,a.jsx)(v,{asChild:!0,children:(0,a.jsx)(b.$,{variant:r,size:"sm",onClick:t,className:["h-8 w-8 p-0",s].filter(Boolean).join(" "),"aria-label":"New chat",children:(0,a.jsx)(eH.A,{className:"h-4 w-4"})})}),(0,a.jsx)(j,{side:n,children:"New Chat (⌘K)"})]})})};function tr(e){let{isOpen:t,onClose:s,currentSessionId:r,onSessionChange:l,returnToWelcome:o,variant:d="modal",onSearchOpen:m,onNewChat:u}=e,[h,x]=(0,n.useState)([]),[p,y]=(0,n.useState)(!1),[N,w]=(0,n.useState)(null),[k,C]=(0,n.useState)(!1),[S,A]=(0,n.useState)(""),[E,T]=(0,n.useState)(null),[D,R]=(0,n.useState)(!1),[I,F]=(0,n.useState)(null),[L,O]=(0,n.useState)(!1),P=(0,n.useCallback)(async()=>{y(!0),w(null);try{let e=await fetch("/api/sessions");if(!e.ok)throw Error("Failed to fetch sessions");let t=await e.json();x(t.sessions||[])}catch(e){console.error("Error fetching sessions:",e),w(e instanceof Error?e.message:"Failed to fetch sessions")}finally{y(!1)}},[]);(0,n.useEffect)(()=>{t&&P()},[t,P]),(0,n.useEffect)(()=>{let e=()=>{t&&P()},s=()=>{t&&P()};return window.addEventListener("dexto:message",e),window.addEventListener("dexto:response",s),()=>{window.removeEventListener("dexto:message",e),window.removeEventListener("dexto:response",s)}},[t,P]);let z=async()=>{try{let e=await fetch("/api/sessions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:S.trim()||void 0})});if(!e.ok){let t=await e.json();throw Error(t.error||"Failed to create session")}let t=await e.json();x(e=>[...e,t.session]),A(""),C(!1),l(t.session.id)}catch(e){console.error("Error creating session:",e),w(e instanceof Error?e.message:"Failed to create session")}},U=async e=>{T(e);try{let t=await fetch("/api/sessions/".concat(e),{method:"DELETE"});if(!t.ok){let e=await t.json();throw Error(e.error||"Failed to delete session")}x(t=>t.filter(t=>t.id!==e)),r===e&&o()}catch(e){console.error("Error deleting session:",e),w(e instanceof Error?e.message:"Failed to delete session")}finally{T(null)}},q=async()=>{if(I){O(!0);try{if(!(await fetch("/api/sessions/".concat(I),{method:"DELETE",headers:{"Content-Type":"application/json"}})).ok)throw Error("Failed to delete conversation");x(e=>e.filter(e=>e.id!==I)),r===I&&o(),R(!1),F(null)}catch(e){console.error("Error deleting conversation:",e),w(e instanceof Error?e.message:"Failed to delete conversation")}finally{O(!1)}}},M=(0,a.jsxs)("div",{className:"flex flex-col h-full",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between p-3 border-b border-border/50",children:[(0,a.jsx)("div",{className:"flex items-center space-x-2",children:(0,a.jsx)("h2",{className:"text-base font-semibold",children:"Chat History"})}),(0,a.jsxs)("div",{className:"flex items-center space-x-1",children:[m&&(0,a.jsx)(f,{children:(0,a.jsxs)(g,{children:[(0,a.jsx)(v,{asChild:!0,children:(0,a.jsx)(b.$,{variant:"outline",size:"sm",onClick:m,className:"h-7 w-7 p-0","aria-label":"Search conversations",children:(0,a.jsx)(ew.A,{className:"h-3.5 w-3.5"})})}),(0,a.jsx)(j,{children:"Search conversations (⌘⇧S)"})]})}),u&&(0,a.jsx)(ts,{onClick:u,variant:"outline"})]})]}),N&&(0,a.jsx)("div",{className:"p-4",children:(0,a.jsxs)(eg.Fc,{variant:"destructive",children:[(0,a.jsx)(c.A,{className:"h-4 w-4"}),(0,a.jsx)(eg.TN,{children:N})]})}),(0,a.jsx)(e6,{className:"flex-1 p-4",children:(0,a.jsx)("div",{className:"space-y-2",children:p?(0,a.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,a.jsx)(e0.A,{className:"h-6 w-6 animate-spin"})}):0===h.length?(0,a.jsxs)("div",{className:"text-center py-8 text-muted-foreground",children:[(0,a.jsx)(e7.A,{className:"h-8 w-8 mx-auto mb-2 opacity-50"}),(0,a.jsx)("p",{children:"No chat history"}),(0,a.jsx)("p",{className:"text-sm",children:"Start a conversation to see it here"})]}):h.map(e=>(0,a.jsx)("div",{className:(0,i.cn)("group p-3 rounded-lg border border-border/50 bg-card hover:bg-muted/50 transition-all cursor-pointer",r===e.id&&"ring-2 ring-primary bg-primary/5"),onClick:()=>l(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}),r===e.id&&(0,a.jsx)(eC.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)(e9.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)(te.A,{className:"h-3 w-3"}),(0,a.jsx)("span",{children:(e=>{if(!e)return"Unknown";let t=new Date(e),s=new Date().getTime()-t.getTime(),r=Math.floor(s/6e4),a=Math.floor(s/36e5),n=Math.floor(s/864e5);return r<1?"Just now":r<60?"".concat(r,"m ago"):a<24?"".concat(a,"h ago"):"".concat(n,"d ago")})(e.lastActivity)})]})]}),e.createdAt&&(0,a.jsxs)("div",{className:"flex items-center space-x-1",children:[(0,a.jsx)(tt.A,{className:"h-3 w-3"}),(0,a.jsxs)("span",{children:["Created ",(e=>{if(!e)return"Unknown";let t=new Date(e);return t.toLocaleDateString()+" "+t.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})})(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)(b.$,{variant:"ghost",size:"sm",onClick:t=>{t.stopPropagation(),F(e.id),R(!0)},className:"h-8 w-8 p-0",title:"Delete Conversation",children:(0,a.jsx)(e4.A,{className:"h-4 w-4 text-destructive"})})}),0===e.messageCount&&(0,a.jsx)(b.$,{variant:"ghost",size:"sm",onClick:t=>{t.stopPropagation(),U(e.id)},disabled:E===e.id,className:"h-8 w-8 p-0",title:"Delete Session",children:(0,a.jsx)(e4.A,{className:"h-4 w-4 text-destructive"})})]})]})},e.id))})}),(0,a.jsx)(ep.lG,{open:k,onOpenChange:C,children:(0,a.jsxs)(ep.Cf,{className:"sm:max-w-md",children:[(0,a.jsx)(ep.c7,{children:(0,a.jsx)(ep.L3,{children:"Start New Chat"})}),(0,a.jsx)("div",{className:"space-y-4",children:(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(ef.J,{htmlFor:"sessionId",children:"Chat ID"}),(0,a.jsx)(ej.p,{id:"sessionId",value:S,onChange:e=>A(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)(ep.Es,{children:[(0,a.jsx)(b.$,{variant:"outline",onClick:()=>C(!1),children:"Cancel"}),(0,a.jsx)(b.$,{onClick:z,children:"Start Chat"})]})]})}),(0,a.jsx)(ep.lG,{open:D,onOpenChange:R,children:(0,a.jsxs)(ep.Cf,{className:"sm:max-w-md",children:[(0,a.jsxs)(ep.c7,{children:[(0,a.jsxs)(ep.L3,{className:"flex items-center space-x-2",children:[(0,a.jsx)(e4.A,{className:"h-5 w-5 text-destructive"}),(0,a.jsx)("span",{children:"Delete Conversation"})]}),(0,a.jsxs)(ep.rr,{children:["This will permanently delete this conversation and all its messages. This action cannot be undone.",I&&(0,a.jsxs)("span",{className:"block mt-2 font-medium",children:["Session: ",(0,a.jsx)("span",{className:"font-mono",children:I})]})]})]}),(0,a.jsxs)(ep.Es,{children:[(0,a.jsx)(b.$,{variant:"outline",onClick:()=>R(!1),children:"Cancel"}),(0,a.jsxs)(b.$,{variant:"destructive",onClick:q,disabled:L,className:"flex items-center space-x-2",children:[(0,a.jsx)(e4.A,{className:"h-4 w-4"}),(0,a.jsx)("span",{children:L?"Deleting...":"Delete Conversation"})]})]})]})})]});return"inline"===d?(0,a.jsx)("div",{className:"h-full",children:M}):(0,a.jsx)(ep.lG,{open:t,onOpenChange:s,children:(0,a.jsx)(ep.Cf,{className:"sm:max-w-lg h-[600px] flex flex-col p-0",children:M})})}var ta=s(4916);function tn(e){let{websocket:t}=e,[s,r]=(0,n.useState)(null),[i,o]=(0,n.useState)(!1),[d,m]=(0,n.useState)(!1),{currentSessionId:u}=(0,l.v)(),h=n.useRef([]);(0,n.useEffect)(()=>{if(!t)return;let e=e=>{try{let s=JSON.parse(e.data);if("toolConfirmationRequest"===s.event){var t;let e=null==s||null==(t=s.data)?void 0:t.sessionId;if(!e||e!==u)return;let a={...s.data,timestamp:new Date(s.data.timestamp)};console.debug("[WebUI] Received toolConfirmationRequest",a),d?h.current.push(a):(r(a),m(!0),o(!1))}}catch(e){console.error("Error parsing WebSocket message:",e)}};return t.addEventListener("message",e),()=>{t.removeEventListener("message",e)}},[t,d,u]);let x=(0,n.useCallback)(e=>{if(!s||!t)return;let a={type:"toolConfirmationResponse",data:{executionId:s.executionId,approved:e,rememberChoice:i,sessionId:s.sessionId}};if(console.debug("[WebUI] Sending toolConfirmationResponse",a),t.send(JSON.stringify(a)),m(!1),r(null),o(!1),h.current.length>0){let e=h.current.shift();setTimeout(()=>{r(e),m(!0)},0)}},[s,i,t]);return((0,n.useEffect)(()=>{if(!d)return;let e=setTimeout(()=>{x(!1)},12e4);return()=>clearTimeout(e)},[d,x]),s)?(0,a.jsx)(ep.lG,{open:d,onOpenChange:e=>{e||x(!1)},children:(0,a.jsxs)(ep.Cf,{className:"sm:max-w-[800px] max-w-[95vw] max-h-[90vh] overflow-hidden flex flex-col",children:[(0,a.jsx)(ep.c7,{children:(0,a.jsxs)(ep.L3,{className:"flex items-center gap-2",children:[(0,a.jsx)(c.A,{className:"h-5 w-5 text-yellow-500"}),"Tool Execution Confirmation"]})}),(0,a.jsxs)("div",{className:"space-y-4 overflow-y-auto flex-1 min-h-0",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(I.A,{className:"h-4 w-4 text-blue-500"}),(0,a.jsx)("span",{className:"font-medium",children:"Tool:"}),(0,a.jsx)(eC.E,{variant:"outline",children:s.toolName})]}),s.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:s.description})]}),(0,a.jsxs)("div",{className:"flex flex-col",children:[(0,a.jsx)("span",{className:"font-medium mb-2",children:"Arguments:"}),(0,a.jsx)("div",{className:"bg-background/50 p-3 rounded-md text-xs overflow-auto max-h-80 min-h-16 text-muted-foreground border",children:(0,a.jsx)("pre",{className:"whitespace-pre-wrap break-words font-mono",children:(e=>{if(!e)return"No arguments";try{return JSON.stringify(e,null,2)}catch(t){return String(e)}})(s.args)})})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2 text-sm text-gray-500",children:[(0,a.jsx)(te.A,{className:"h-4 w-4"}),(0,a.jsxs)("span",{children:["Requested at: ",s.timestamp.toLocaleString()]})]}),(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,a.jsx)(ta.S,{id:"remember",checked:i,onCheckedChange:e=>o(!0===e),className:"ml-1"}),(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)(ep.Es,{className:"gap-2 flex-shrink-0 mt-4 pt-4 border-t",children:[(0,a.jsx)(b.$,{variant:"outline",onClick:()=>x(!1),className:"bg-red-50 hover:bg-red-100 text-red-700 border-red-200",children:"Deny"}),(0,a.jsx)(b.$,{onClick:()=>x(!0),className:"bg-green-600 hover:bg-green-700",children:"Approve"})]})]})}):null}var tl=s(5870),ti=s(7586);function to(e){let{isOpen:t,onClose:s,onNavigateToSession:r}=e,[l,o]=(0,n.useState)(""),[c,d]=(0,n.useState)([]),[m,u]=(0,n.useState)(!1),[h,x]=(0,n.useState)(null),[p,f]=(0,n.useState)(0),g=(0,n.useCallback)(async e=>{if(!e.trim()){d([]),x(null);return}u(!0),x(null);try{let t=new URLSearchParams({q:e,limit:"10",offset:"0"}),s=await fetch("/api/search/messages?".concat(t));if(!s.ok){let e=await s.text();throw Error("Search failed: ".concat(s.status," ").concat(e))}let r=await s.json();d(r.results),f(0)}catch(e){console.error("Search error:",e),d([]),x(e instanceof Error?e.message:"Search failed")}finally{u(!1)}},[]);(0,n.useEffect)(()=>{let e=setTimeout(()=>{g(l)},300);return()=>clearTimeout(e)},[l,g]),(0,n.useEffect)(()=>{t&&(o(""),d([]),x(null),f(0))},[t]),(0,n.useEffect)(()=>{if(!t)return;let e=e=>{if(t&&(!e.ctrlKey&&!e.metaKey||!e.shiftKey||"S"!==e.key))switch(e.key){case"ArrowDown":e.preventDefault(),e.stopPropagation(),f(e=>Math.min(e+1,c.length-1));break;case"ArrowUp":e.preventDefault(),e.stopPropagation(),f(e=>Math.max(e-1,0));break;case"Enter":e.preventDefault(),e.stopPropagation(),c[p]&&v(c[p]);break;case"Escape":e.preventDefault(),e.stopPropagation(),s()}};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[t,c,p,s]);let v=e=>{r(e.sessionId,e.messageIndex),s()};return(0,a.jsx)(ep.lG,{open:t,onOpenChange:e=>!e&&s(),children:(0,a.jsxs)(ep.Cf,{className:"max-w-2xl p-0 top-[20%] transform translate-y-0",children:[(0,a.jsx)(ep.c7,{children:(0,a.jsx)(ep.L3,{className:"sr-only",children:"Search Conversations"})}),(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)(ew.A,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 w-5 h-5 text-muted-foreground"}),(0,a.jsx)(ej.p,{placeholder:"Search conversations...",value:l,onChange:e=>o(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:m?(0,a.jsxs)("div",{className:"flex items-center justify-center py-12",children:[(0,a.jsx)(e0.A,{className:"h-6 w-6 animate-spin mr-3"}),(0,a.jsx)("span",{className:"text-muted-foreground",children:"Searching..."})]}):h?(0,a.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,a.jsxs)("div",{className:"text-center",children:[(0,a.jsx)(ew.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:h}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground mt-2",children:"Try again or check your connection."})]})}):(0,a.jsx)(e6,{className:"h-full",children:(0,a.jsx)("div",{className:"p-2",children:c.length>0?(0,a.jsx)("div",{className:"space-y-1",children:c.map((e,t)=>(0,a.jsxs)("div",{className:(0,i.cn)("flex items-start gap-3 p-3 rounded-lg cursor-pointer transition-colors",t===p?"bg-accent text-accent-foreground":"hover:bg-accent/50"),onClick:()=>v(e),children:[(0,a.jsx)("div",{className:"flex-shrink-0 mt-1",children:(0,a.jsx)(eC.E,{className:(0,i.cn)("text-xs",(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"}})(e.message.role)),children:(e=>{switch(e){case"user":return(0,a.jsx)(D.A,{className:"w-4 h-4"});case"assistant":return(0,a.jsx)(R.A,{className:"w-4 h-4"});case"system":return(0,a.jsx)(tl.A,{className:"w-4 h-4"});default:return(0,a.jsx)(ti.A,{className:"w-4 h-4"})}})(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:((e,t)=>{if(!t)return e;let s=t.replace(/[.*+?^${}()|\[\]\\]/g,"\\$&"),r=RegExp("(".concat(s,")"),"gi");return e.split(r).map((e,t)=>r.test(e)?(0,a.jsx)("mark",{className:"bg-yellow-200 dark:bg-yellow-800 font-medium rounded px-1",children:e},t):e)})(e.context,l)})]}),(0,a.jsx)(L.A,{className:"w-4 h-4 text-muted-foreground flex-shrink-0 mt-1"})]},t))}):l?(0,a.jsxs)("div",{className:"text-center py-12",children:[(0,a.jsx)(ew.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)(ew.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 tc=s(7931),td=s(7772),tm=s(9867),tu=s(6482),th=s(2619),tx=s.n(th),tp=s(7494),tf=s(9427);function tg(){let{theme:e,toggleTheme:t}=function(){let[e,t]=(0,n.useState)(()=>"undefined"!=typeof document?document.documentElement.classList.contains("dark")?"dark":"light":"dark");return(0,n.useEffect)(()=>{if("undefined"!=typeof document){document.documentElement.classList.toggle("dark","dark"===e);try{var t;localStorage.setItem("theme",e);let s=(null==(t=window.location)?void 0:t.protocol)==="https:";document.cookie="theme=".concat(encodeURIComponent(e),"; path=/; max-age=31536000; SameSite=Lax").concat(s?"; Secure":"")}catch(e){}}},[e]),{theme:e,toggleTheme:e=>{t(e?"dark":"light")},hasMounted:!0}}(),[s,r]=(0,n.useState)(!1);(0,n.useEffect)(()=>{r(!0)},[]);let l="dark"===e;return s?(0,a.jsx)(f,{children:(0,a.jsxs)(g,{children:[(0,a.jsx)(v,{asChild:!0,children:(0,a.jsx)(Z.bL,{checked:l,onCheckedChange:t,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 theme",children:(0,a.jsx)(Z.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:l?(0,a.jsx)(tp.A,{className:"w-3.5 h-3.5 text-gray-700"}):(0,a.jsx)(tf.A,{className:"w-3.5 h-3.5 text-yellow-500"})})})}),(0,a.jsx)(j,{children:l?"Switch to light mode":"Switch to dark mode"})]})}):(0,a.jsx)("div",{className:"w-12 h-6 bg-gray-300 dark:bg-gray-700 rounded-full"})}function tv(e){let{active:t=!1}=e,{voices:s,selected:r,setSelected:l}=function(){let[e,t]=(0,n.useState)(A.getVoices()),[s,r]=(0,n.useState)(A.getPreferredVoiceName());return(0,n.useEffect)(()=>{let e=A.subscribeVoices(()=>{t(A.getVoices()),r(A.getPreferredVoiceName())});return()=>e()},[]),{voices:e,selected:s,setSelected:e=>{A.setPreferredVoice(e),r(A.getPreferredVoiceName())}}}(),[i,o]=(0,n.useState)(!1);return((0,n.useEffect)(()=>{if(!t)return void o(!1);let e=window.requestIdleCallback?window.requestIdleCallback(()=>o(!0)):setTimeout(()=>o(!0),0);return()=>{window.cancelIdleCallback&&"number"==typeof e?window.cancelIdleCallback(e):clearTimeout(e)}},[t]),t)?(0,a.jsxs)(ev.l6,{value:null!=r?r:"auto",onValueChange:e=>{l("auto"===e?null:e)},children:[(0,a.jsx)(ev.bq,{className:"h-8 w-[12rem] text-xs",children:(0,a.jsx)(ev.yv,{placeholder:"Voice"})}),(0,a.jsxs)(ev.gC,{children:[(0,a.jsx)(ev.eb,{value:"auto",children:"Auto (best available)"}),i&&s.map(e=>(0,a.jsxs)(ev.eb,{value:e.name,children:[e.name," (",e.lang,")"]},"".concat(e.name,"-").concat(e.lang)))]})]}):null}function tj(e){let{isOpen:t,onClose:s}=e;return(0,a.jsx)(ep.lG,{open:t,onOpenChange:e=>!e&&s(),children:(0,a.jsxs)(ep.Cf,{className:"sm:max-w-lg",children:[(0,a.jsxs)(ep.c7,{children:[(0,a.jsx)(ep.L3,{children:"Settings"}),(0,a.jsx)(ep.rr,{children:"Configure preferences for speech and more."})]}),(0,a.jsx)("div",{className:"space-y-6 py-2",children:(0,a.jsxs)("section",{className:"space-y-2",children:[(0,a.jsx)(ef.J,{className:"text-xs uppercase text-muted-foreground",children:"Voice"}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:"Choose a preferred text-to-speech voice. “Auto” selects the best available voice on your device."}),(0,a.jsx)(tv,{active:t})]})})]})})}function tb(){let{messages:e,sendMessage:t,currentSessionId:s,switchSession:r,isWelcomeState:o,returnToWelcome:d,websocket:u,activeError:h,clearError:x,processing:p,cancel:f}=(0,l.v)(),[y,N]=(0,n.useState)(!1),[w,k]=(0,n.useState)(!1),[C,S]=(0,n.useState)(!1),[A,E]=(0,n.useState)(!1),[T,D]=(0,n.useState)(!1),[R,F]=(0,n.useState)(!1),[L,O]=(0,n.useState)(!1),[P,z]=(0,n.useState)("dexto-config"),[U,q]=(0,n.useState)(null),[M,K]=(0,n.useState)(""),[V,J]=(0,n.useState)(!1),[_,$]=(0,n.useState)(!1),[B,H]=(0,n.useState)(!1),[W,Q]=(0,n.useState)(null),[Y,Z]=(0,n.useState)(!1),[X,ee]=(0,n.useState)(!1),[et,es]=(0,n.useState)(""),er=n.useRef(null),ea=n.useRef(null),[ed,em]=(0,n.useState)(!0),[eu,eh]=(0,n.useState)(!1),[ex,ev]=(0,n.useState)(!1),eb=n.useRef(0),[ey,eN]=(0,n.useState)(!1),ew=n.useRef(null),[ek,eA]=(0,n.useState)(0),eE=(0,n.useCallback)(()=>{let e=er.current;e&&em(e.scrollHeight-e.scrollTop<=e.clientHeight+1)},[]),eT=(0,n.useCallback)(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"auto",t=er.current;t&&(eh(!0),t.scrollTo({top:t.scrollHeight,behavior:e}),requestAnimationFrame(()=>eh(!1)))},[]);(0,n.useEffect)(()=>{let e=er.current;if(!e)return;let t=()=>{let t=eb.current,s=e.scrollTop;!eu&&ex&&s<t&&ev(!1),eb.current=s,eE(),e.scrollHeight-e.scrollTop<=e.clientHeight+1?(eN(!1),ew.current&&(window.clearTimeout(ew.current),ew.current=null)):(eN(!1),ew.current&&window.clearTimeout(ew.current),ew.current=window.setTimeout(()=>{eN(!0)},180))};return e.addEventListener("scroll",t),eE(),()=>e.removeEventListener("scroll",t)},[eE,ex,eu,o]),(0,n.useEffect)(()=>{let e=ea.current;if(!e)return;let t=new ResizeObserver(()=>{!eu&&(ex||ed)&&eT("auto")});return t.observe(e),()=>t.disconnect()},[ed,eu,ex,eT,o]),(0,n.useEffect)(()=>{ex&&eT("auto")},[ex,e,eT]);let eD=(0,n.useCallback)(()=>{let e=er.current;if(!e)return;let t=e.querySelectorAll('[data-role="user"]'),s=t[t.length-1];if(!s)return void eT("auto");let r=e.getBoundingClientRect(),a=Math.max(s.getBoundingClientRect().top-r.top+e.scrollTop-16,0);eh(!0),e.scrollTo({top:a,behavior:"auto"}),requestAnimationFrame(()=>eh(!1))},[eT]);(0,n.useEffect)(()=>{R?fetch(s?"/api/config.yaml?sessionId=".concat(s):"/api/config.yaml").then(e=>{if(!e.ok)throw Error("Failed to fetch configuration");return e.text()}).then(e=>{K(e),q(null)}).catch(e=>{console.error("Preview fetch failed:",e),q(e instanceof Error?e.message:"Preview fetch failed")}):(K(""),q(null),J(!1))},[R,s]);let eR=(0,n.useCallback)(async()=>{try{let e=s?"/api/config.yaml?sessionId=".concat(s):"/api/config.yaml",t=await fetch(e);if(!t.ok)throw Error("Failed to fetch configuration");let r=await t.text(),a=new Blob([r],{type:"application/x-yaml"}),n=URL.createObjectURL(a),l=document.createElement("a");l.href=n,l.download=s?"".concat(P,"-").concat(s,".yml"):"".concat(P,".yml"),document.body.appendChild(l),l.click(),document.body.removeChild(l),URL.revokeObjectURL(n)}catch(e){console.error("Download failed:",e),q(e instanceof Error?e.message:"Download failed")}},[P,s]),eI=(0,n.useCallback)(async()=>{try{await navigator.clipboard.writeText(M),J(!0),setTimeout(()=>J(!1),2e3)}catch(e){console.error("Copy failed:",e),q("Failed to copy to clipboard")}},[M]),eF=(0,n.useCallback)(async(e,s,r)=>{$(!0),Q(null);try{await t(e,s,r),setTimeout(()=>{eD(),ev(!0)},0)}catch(e){console.error("Failed to send message:",e),Q(e instanceof Error?e.message:"Failed to send message"),setTimeout(()=>Q(null),5e3)}finally{$(!1)}},[t,eD]);(0,n.useEffect)(()=>{let e=()=>ev(!0),t=()=>ev(!1);return window.addEventListener("dexto:message",e),window.addEventListener("dexto:response",t),()=>{window.removeEventListener("dexto:message",e),window.removeEventListener("dexto:response",t)}},[]);let eL=(0,n.useCallback)(e=>{r(e),E(!1)},[r]),eO=(0,n.useCallback)(async e=>{try{if(!(await fetch("/api/mcp/install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({serverId:e.id})})).ok)throw Error("Failed to install server");k(!1),eA(e=>e+1)}catch(e){console.error("Failed to install server:",e),Q(e instanceof Error?e.message:"Failed to install server"),setTimeout(()=>Q(null),5e3)}},[C]),eP=(0,n.useCallback)(async()=>{if(s){ee(!0);try{if(!(await fetch("/api/sessions/".concat(s),{method:"DELETE"})).ok)throw Error("Failed to delete conversation");Z(!1),d()}catch(e){console.error("Failed to delete conversation:",e),Q(e instanceof Error?e.message:"Failed to delete conversation"),setTimeout(()=>Q(null),5e3)}finally{ee(!1)}}},[s,d]);(0,n.useCallback)(e=>{e.preventDefault(),et.trim()&&(eF(et.trim()),es(""))},[et,eF]);let ez=(0,n.useCallback)(async()=>{try{let e=await fetch("/api/sessions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})});if(!e.ok){let t="HTTP ".concat(e.status,": ").concat(e.statusText);try{let s=await e.json();t=s.message||s.error||t}catch(e){}throw Error(t)}let t=await e.json();eL(t.session.id)}catch(e){console.error("Error creating new session:",e),Q("Failed to create new session. Please try again."),setTimeout(()=>Q(null),5e3)}},[eL]),eU=[{title:"Help me get started",description:"Show me what you can do",action:()=>eF("I'm new to Dexto. Can you show me your capabilities and help me understand how to work with you effectively?"),icon:"\uD83D\uDE80"},{title:"Create Snake Game",description:"Build a game and open it",action:()=>eF("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:()=>S(!0),icon:"\uD83D\uDD27"},{title:"Demonstrate tools",description:"Show me your capabilities",action:()=>eF("Pick one of your most interesting tools and demonstrate it with a practical example. Show me what it can do."),icon:"⚡"}];return(0,n.useEffect)(()=>{let e=e=>{(e.ctrlKey||e.metaKey)&&!e.shiftKey&&"h"===e.key&&(e.preventDefault(),E(e=>!e)),(e.ctrlKey||e.metaKey)&&!e.shiftKey&&"k"===e.key&&(e.preventDefault(),ez()),(e.ctrlKey||e.metaKey)&&!e.shiftKey&&"j"===e.key&&(e.preventDefault(),S(e=>!e)),(e.ctrlKey||e.metaKey)&&e.shiftKey&&"s"===e.key&&(e.preventDefault(),e.stopPropagation(),D(!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(),F(!0)),(e.ctrlKey||e.metaKey)&&!e.shiftKey&&"/"===e.key&&(e.preventDefault(),H(!0)),"Escape"===e.key&&(C?S(!1):A?E(!1):w?k(!1):R?F(!1):B?H(!1):Y?Z(!1):W?Q(null):p&&f(s||void 0))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[C,A,T,w,R,B,Y,W,D]),(0,a.jsxs)("div",{className:"flex h-screen bg-background",children:[(0,a.jsx)("div",{className:(0,i.cn)("shrink-0 transition-all duration-300 ease-in-out border-r border-border/50 bg-card/50 backdrop-blur-sm",A?"w-80":"w-0 overflow-hidden"),children:A&&(0,a.jsx)(tr,{isOpen:A,onClose:()=>E(!1),currentSessionId:s,onSessionChange:eL,returnToWelcome:d,variant:"inline",onSearchOpen:()=>D(!0),onNewChat:ez})}),(0,a.jsxs)("main",{className:"flex-1 flex flex-col relative",style:{"--thread-max-width":"54rem"},children:[null,(0,a.jsx)("header",{className:"shrink-0 border-b border-border/50 bg-background/95 backdrop-blur-xl shadow-sm",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)(g,{children:[(0,a.jsx)(v,{asChild:!0,children:(0,a.jsx)(b.$,{variant:"ghost",size:"sm",onClick:()=>E(!A),className:(0,i.cn)("h-8 w-8 p-0 transition-colors",A&&"bg-muted"),children:(0,a.jsx)(tc.A,{className:"h-4 w-4"})})}),(0,a.jsx)(j,{children:"Chat History (⌘H)"})]}),!A&&(0,a.jsx)(ts,{onClick:ez}),(0,a.jsxs)("a",{href:"https://dexto.ai",target:"_blank",rel:"noopener noreferrer",className:"flex items-center space-x-3 hover:opacity-80 transition-opacity",children:[(0,a.jsx)("img",{src:"/logos/dexto_logo_light.svg",alt:"Dexto",className:"h-8 w-auto dark:hidden"}),(0,a.jsx)("img",{src:"/logos/dexto_logo.svg",alt:"Dexto",className:"h-8 w-auto hidden dark:block"}),(0,a.jsx)("span",{className:"sr-only",children:"Dexto"})]}),s&&!o&&(0,a.jsx)("div",{className:"flex items-center space-x-2",children:(0,a.jsx)(eC.E,{variant:"secondary",className:"text-xs bg-muted/50 border-border/30",children:s})})]}),(0,a.jsxs)("div",{className:"flex items-center space-x-1",children:[(0,a.jsx)(tg,{}),(0,a.jsxs)(g,{children:[(0,a.jsx)(v,{asChild:!0,children:(0,a.jsx)(b.$,{variant:"ghost",size:"sm",onClick:()=>O(!0),className:"h-8 w-8 p-0","aria-label":"Open settings",children:(0,a.jsx)(tl.A,{className:"h-3.5 w-3.5"})})}),(0,a.jsx)(j,{children:"Settings"})]}),(0,a.jsxs)(g,{children:[(0,a.jsx)(v,{asChild:!0,children:(0,a.jsxs)(b.$,{variant:"ghost",size:"sm",onClick:()=>S(!C),className:(0,i.cn)("h-8 px-2 text-sm transition-colors",C&&"bg-muted"),children:[(0,a.jsx)(I.A,{className:"h-3.5 w-3.5"}),(0,a.jsx)("span",{className:"hidden sm:inline ml-1.5",children:"Tools"})]})}),(0,a.jsx)(j,{children:"Toggle tools panel (⌘J)"})]}),(0,a.jsxs)(g,{children:[(0,a.jsx)(v,{asChild:!0,children:(0,a.jsx)(b.$,{variant:"ghost",size:"sm",asChild:!0,className:"h-8 px-2 text-sm",children:(0,a.jsxs)(tx(),{href:"/playground",target:"_blank",rel:"noopener noreferrer",children:[(0,a.jsx)(eS.A,{className:"h-3.5 w-3.5"}),(0,a.jsx)("span",{className:"hidden sm:inline ml-1.5",children:"Playground"})]})})}),(0,a.jsx)(j,{children:"Open MCP playground (⌘L)"})]}),(0,a.jsxs)(en,{children:[(0,a.jsx)(el,{asChild:!0,children:(0,a.jsx)(b.$,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",children:(0,a.jsx)(td.A,{className:"h-3.5 w-3.5"})})}),(0,a.jsxs)(ei,{align:"end",children:[(0,a.jsxs)(eo,{onClick:()=>k(!0),children:[(0,a.jsx)(eZ.A,{className:"h-4 w-4 mr-2"}),"Browse MCP Registry"]}),(0,a.jsxs)(eo,{onClick:()=>F(!0),children:[(0,a.jsx)(tm.A,{className:"h-4 w-4 mr-2"}),"Export Config"]}),(0,a.jsxs)(eo,{onClick:()=>H(!0),children:[(0,a.jsx)(tu.A,{className:"h-4 w-4 mr-2"}),"Shortcuts"]}),s&&!o&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(ec,{}),(0,a.jsxs)(eo,{onClick:()=>Z(!0),className:"text-destructive focus:text-destructive",children:[(0,a.jsx)(e4.A,{className:"h-4 w-4 mr-2"}),"Delete Conversation"]})]})]})]})]})]})}),(0,a.jsxs)("div",{className:"flex-1 flex overflow-hidden",children:[W&&(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:W}),(0,a.jsx)("div",{className:"flex-1 flex flex-col min-h-0",children:o||0===e.length?(0,a.jsx)("div",{className:"flex-1 flex items-center justify-center p-6 -mt-20",children:(0,a.jsxs)("div",{className:"w-full max-w-[var(--thread-max-width)] mx-auto space-y-6",children:[(0,a.jsxs)("div",{className:"text-center space-y-3",children:[(0,a.jsxs)("div",{className:"flex items-center justify-center gap-3",children:[(0,a.jsx)("img",{src:"/logos/dexto_logo_no_text.png",alt:"Dexto",className:"h-8 w-auto invert dark:invert-0"}),(0,a.jsx)("h2",{className:"text-2xl font-bold font-mono tracking-tight bg-gradient-to-r from-primary to-primary/70 bg-clip-text text-transparent",children:"Welcome to Dexto"})]}),(0,a.jsx)("p",{className:"text-base text-muted-foreground max-w-xl mx-auto leading-relaxed",children:"Your AI assistant with powerful tools. Ask anything or connect new capabilities."})]}),(0,a.jsx)("div",{className:"flex flex-wrap justify-center gap-2 max-w-[var(--thread-max-width)] mx-auto",children:eU.map((e,t)=>(0,a.jsx)("button",{onClick:e.action,className:"group px-3 py-2 text-left rounded-full bg-primary/5 hover:bg-primary/10 transition-all duration-200 hover:shadow-sm hover:scale-105",children:(0,a.jsxs)("div",{className:"flex items-center space-x-1.5",children:[(0,a.jsx)("span",{className:"text-sm",children:e.icon}),(0,a.jsx)("span",{className:"font-medium text-sm text-primary group-hover:text-primary/80 transition-colors",children:e.title})]})},t))}),(0,a.jsx)("div",{className:"max-w-[var(--thread-max-width)] mx-auto",children:(0,a.jsx)(eJ,{onSend:eF,isSending:_,variant:"welcome"})}),(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 py-0.5 bg-muted rounded text-xs",children:"⌘K"})," for new chat, ",(0,a.jsx)("kbd",{className:"px-1 py-0.5 bg-muted rounded text-xs",children:"⌘J"})," for tools, ",(0,a.jsx)("kbd",{className:"px-1 py-0.5 bg-muted rounded text-xs",children:"⌘L"})," for playground, ",(0,a.jsx)("kbd",{className:"px-1 py-0.5 bg-muted rounded text-xs",children:"⌘/"})," for shortcuts"]})})]})}):(0,a.jsx)("div",{className:"flex-1 min-h-0 overflow-hidden",children:(0,a.jsx)("div",{ref:er,className:"h-full overflow-y-auto overscroll-contain relative",children:(0,a.jsxs)("div",{className:"min-h-full grid grid-rows-[1fr_auto]",children:[(0,a.jsx)("div",{className:"w-full max-w-[var(--thread-max-width)] mx-auto",children:(0,a.jsx)(G,{messages:e,activeError:h,onDismissError:x,outerRef:ea})}),(0,a.jsxs)("div",{className:"sticky bottom-0 z-10 px-4 pt-2 pb-[calc(env(safe-area-inset-bottom)+16px)] bg-background relative",children:[ey&&(0,a.jsx)("div",{className:"absolute left-1/2 -translate-x-1/2 -top-3 z-20 pointer-events-none",children:(0,a.jsxs)("button",{onClick:()=>{eN(!1),eT("smooth")},className:"pointer-events-auto px-3 py-1.5 rounded-full shadow-sm bg-background/95 border border-border/60 backdrop-blur supports-[backdrop-filter]:bg-background/80 text-sm text-muted-foreground hover:text-foreground transition-colors inline-flex items-center gap-1.5",children:[(0,a.jsx)("span",{children:"Scroll to bottom"}),(0,a.jsx)(m.A,{className:"h-3.5 w-3.5"})]})}),(0,a.jsx)("div",{className:"w-full max-w-[var(--thread-max-width)] mx-auto pointer-events-auto",children:(0,a.jsx)(eJ,{onSend:eF,isSending:_,variant:"chat"})})]})]})})})}),(0,a.jsx)("div",{className:(0,i.cn)("shrink-0 transition-all duration-300 ease-in-out border-l border-border/50 bg-card/50 backdrop-blur-sm",C?"w-80":"w-0 overflow-hidden"),children:C&&(0,a.jsx)(e8,{isOpen:C,onClose:()=>S(!1),onOpenConnectModal:()=>N(!0),variant:"inline",refreshTrigger:ek})})]}),(0,a.jsx)(e_.A,{isOpen:y,onClose:()=>N(!1),onServerConnected:()=>{eA(e=>e+1)}}),(0,a.jsx)(eX,{isOpen:w,onClose:()=>k(!1),onInstallServer:eO}),(0,a.jsx)(ep.lG,{open:R,onOpenChange:F,children:(0,a.jsxs)(ep.Cf,{className:"sm:max-w-2xl",children:[(0,a.jsxs)(ep.c7,{children:[(0,a.jsxs)(ep.L3,{className:"flex items-center space-x-2",children:[(0,a.jsx)(tm.A,{className:"h-5 w-5"}),(0,a.jsx)("span",{children:"Export Configuration"})]}),(0,a.jsxs)(ep.rr,{children:["Download your tool configuration for Claude Desktop or other MCP clients",s&&(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:s})]})]})]}),(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(ef.J,{htmlFor:"filename",children:"File name"}),(0,a.jsx)(ej.p,{id:"filename",value:P,onChange:e=>z(e.target.value),placeholder:"dexto-config",className:"font-mono"})]}),U&&(0,a.jsxs)(eg.Fc,{variant:"destructive",children:[(0,a.jsx)(c.A,{className:"h-4 w-4"}),(0,a.jsx)(eg.XL,{children:"Export Error"}),(0,a.jsx)(eg.TN,{children:U})]}),M&&(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(ef.J,{children:"Configuration Preview"}),(0,a.jsx)(eG.T,{value:M,readOnly:!0,className:"h-32 font-mono text-xs bg-muted/30"})]})]}),(0,a.jsxs)(ep.Es,{children:[(0,a.jsx)(b.$,{variant:"outline",onClick:eI,className:"flex items-center space-x-2",children:(0,a.jsx)("span",{children:V?"Copied!":"Copy"})}),(0,a.jsxs)(b.$,{onClick:eR,className:"flex items-center space-x-2",children:[(0,a.jsx)(tm.A,{className:"h-4 w-4"}),(0,a.jsx)("span",{children:"Download"})]})]})]})}),(0,a.jsx)(tj,{isOpen:L,onClose:()=>O(!1)}),(0,a.jsx)(ep.lG,{open:Y,onOpenChange:Z,children:(0,a.jsxs)(ep.Cf,{className:"sm:max-w-md",children:[(0,a.jsxs)(ep.c7,{children:[(0,a.jsxs)(ep.L3,{className:"flex items-center space-x-2",children:[(0,a.jsx)(e4.A,{className:"h-5 w-5 text-destructive"}),(0,a.jsx)("span",{children:"Delete Conversation"})]}),(0,a.jsxs)(ep.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)(ep.Es,{children:[(0,a.jsx)(b.$,{variant:"outline",onClick:()=>Z(!1),children:"Cancel"}),(0,a.jsxs)(b.$,{variant:"destructive",onClick:eP,disabled:X,className:"flex items-center space-x-2",children:[(0,a.jsx)(e4.A,{className:"h-4 w-4"}),(0,a.jsx)("span",{children:X?"Deleting...":"Delete Conversation"})]})]})]})}),(0,a.jsx)(ep.lG,{open:B,onOpenChange:H,children:(0,a.jsxs)(ep.Cf,{className:"sm:max-w-md",children:[(0,a.jsx)(ep.c7,{children:(0,a.jsxs)(ep.L3,{className:"flex items-center space-x-2",children:[(0,a.jsx)(tu.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 chat history panel"},{key:"⌘K",desc:"Create new chat"},{key:"⌘J",desc:"Toggle tools panel"},{key:"⌘⇧S",desc:"Search conversations"},{key:"⌘L",desc:"Open MCP playground"},{key:"⌘⇧E",desc:"Export config"},{key:"⌘/",desc:"Show shortcuts"},{key:"Esc",desc:"Close panels"}].map((e,t)=>(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)(eC.E,{variant:"outline",className:"font-mono text-xs",children:e.key})]},t))}),(0,a.jsx)(ep.Es,{children:(0,a.jsx)(ep.HM,{asChild:!0,children:(0,a.jsx)(b.$,{variant:"outline",children:"Close"})})})]})})]}),(0,a.jsx)(to,{isOpen:T,onClose:()=>D(!1),onNavigateToSession:(e,t)=>{r(e),D(!1)}}),(0,a.jsx)(tn,{websocket:u})]})}},8958:(e,t,s)=>{Promise.resolve().then(s.bind(s,1579))}},e=>{e.O(0,[537,262,42,500,441,255,358],()=>e(e.s=8958)),_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.12 | MIT License | https://tailwindcss.com */@import "https://fonts.googleapis.com/css2?family=Nunito+Sans:wght@200;300;400;500;600;700;800&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-border-spacing-x:0;--tw-border-spacing-y:0;--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-50:oklch(98% .016 73.684);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-200:oklch(90.1% .076 70.697);--color-orange-300:oklch(83.7% .128 66.29);--color-orange-400:oklch(75% .183 55.934);--color-orange-700:oklch(55.3% .195 38.402);--color-orange-800:oklch(47% .157 37.304);--color-orange-900:oklch(40.8% .123 38.172);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-900:oklch(41.4% .112 45.904);--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-xs:20rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-4xl:56rem;--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-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--tracking-tight:-.025em;--tracking-wide:.025em;--leading-relaxed:1.625;--radius-xs:.125rem;--radius-3xl:1.5rem;--drop-shadow-lg:0 4px 4px #00000026;--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}::-webkit-calendar-picker-indicator{line-height:1}:-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-family:Nunito Sans,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,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)}@supports (color:color-mix(in lab,red,red)){.glass-card{border-color:color-mix(in oklab,var(--border)50%,transparent)}}.glass-card{background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){.glass-card{background-color:color-mix(in oklab,var(--background)80%,transparent)}}.glass-card{--tw-backdrop-blur:blur(var(--blur-xl));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,)}.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-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.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)}.inset-y-0{inset-block:calc(var(--spacing)*0)}.-top-1{top:calc(var(--spacing)*-1)}.-top-3{top:calc(var(--spacing)*-3)}.top-0{top:calc(var(--spacing)*0)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing)*2)}.top-4{top:calc(var(--spacing)*4)}.top-\[20\%\]{top:20%}.top-\[50\%\]{top:50%}.-right-1{right:calc(var(--spacing)*-1)}.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)}.left-0{left:calc(var(--spacing)*0)}.left-1\/2{left:50%}.left-3{left:calc(var(--spacing)*3)}.left-\[50\%\]{left:50%}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.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-1{grid-column-start:1}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing)*0)}.m-420{margin:calc(var(--spacing)*420)}.m-774{margin:calc(var(--spacing)*774)}.m-1330{margin:calc(var(--spacing)*1330)}.m-2225{margin:calc(var(--spacing)*2225)}.-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)}.my-4{margin-block:calc(var(--spacing)*4)}.-mt-20{margin-top:calc(var(--spacing)*-20)}.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\.5{margin-right:calc(var(--spacing)*1.5)}.mr-2{margin-right:calc(var(--spacing)*2)}.mr-3{margin-right:calc(var(--spacing)*3)}.mr-4{margin-right:calc(var(--spacing)*4)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.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)}.ml-12{margin-left:calc(var(--spacing)*12)}.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}.table{display:table}.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-6{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.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-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-80{max-height:calc(var(--spacing)*80)}.max-h-96{max-height:calc(var(--spacing)*96)}.max-h-\[70vh\]{max-height:70vh}.max-h-\[80vh\]{max-height:80vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[280px\]{max-height:280px}.max-h-\[max\(35svh\,5rem\)\]{max-height:max(35svh,5rem)}.max-h-full{max-height:100%}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-4{min-height:calc(var(--spacing)*4)}.min-h-16{min-height:calc(var(--spacing)*16)}.min-h-\[100px\]{min-height:100px}.min-h-\[600px\]{min-height:600px}.min-h-full{min-height:100%}.w-0{width:calc(var(--spacing)*0)}.w-0\.5{width:calc(var(--spacing)*.5)}.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-10{width:calc(var(--spacing)*10)}.w-11{width:calc(var(--spacing)*11)}.w-12{width:calc(var(--spacing)*12)}.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-\[12rem\]{width:12rem}.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-4xl{max-width:var(--container-4xl)}.max-w-24{max-width:calc(var(--spacing)*24)}.max-w-\[75\%\]{max-width:75%}.max-w-\[90\%\]{max-width:90%}.max-w-\[90vw\]{max-width:90vw}.max-w-\[95vw\]{max-width:95vw}.max-w-\[120px\]{max-width:120px}.max-w-\[160px\]{max-width:160px}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-\[var\(--thread-max-width\)\]{max-width:var(--thread-max-width)}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.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-auto{flex:auto}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.border-separate{border-collapse:separate}.border-spacing-0{--tw-border-spacing-x:calc(var(--spacing)*0);--tw-border-spacing-y:calc(var(--spacing)*0);border-spacing:var(--tw-border-spacing-x)var(--tw-border-spacing-y)}.origin-\(--radix-popover-content-transform-origin\){transform-origin:var(--radix-popover-content-transform-origin)}.origin-\(--radix-select-content-transform-origin\){transform-origin:var(--radix-select-content-transform-origin)}.origin-\(--radix-tooltip-content-transform-origin\){transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-1\/2{--tw-translate-x:calc(calc(1/2*100%)*-1)}.-translate-x-1\/2,.translate-x-0{translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing)*0)}.translate-x-0\.5{--tw-translate-x:calc(var(--spacing)*.5)}.translate-x-0\.5,.translate-x-\[-50\%\]{translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-\[-50\%\]{--tw-translate-x:-50%}.translate-x-full{--tw-translate-x:100%}.-translate-y-1\/2,.translate-x-full{translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1/2*100%)*-1)}.translate-y-0{--tw-translate-y:calc(var(--spacing)*0)}.translate-y-0,.translate-y-\[-50\%\]{translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%}.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)}.scale-\[1\.01\]{scale:1.01}.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-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.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-cols-\[1fr_auto\]{grid-template-columns:1fr auto}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.grid-rows-\[1fr_auto\]{grid-template-rows:1fr auto}.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-start{justify-content:flex-start}.justify-items-start{justify-items:start}.gap-0\.5{gap:calc(var(--spacing)*.5)}.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-0\.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-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)))}.gap-x-2{-moz-column-gap:calc(var(--spacing)*2);column-gap:calc(var(--spacing)*2)}: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-1\.5>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*1.5)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*1.5)*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}.justify-self-start{justify-self:flex-start}.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}.overscroll-contain{overscroll-behavior:contain}.rounded{border-radius:.25rem}.rounded-3xl{border-radius:var(--radius-3xl)}.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-t-lg{border-top-right-radius:calc(var(--radius) + 2px)}.rounded-l-lg,.rounded-t-lg{border-top-left-radius:calc(var(--radius) + 2px)}.rounded-l-lg{border-bottom-left-radius:calc(var(--radius) + 2px)}.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-accent-foreground\/20{border-color:var(--accent-foreground)}@supports (color:color-mix(in lab,red,red)){.border-accent-foreground\/20{border-color:color-mix(in oklab,var(--accent-foreground)20%,transparent)}}.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-border\/60{border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.border-border\/60{border-color:color-mix(in oklab,var(--border)60%,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\/30{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.border-destructive\/30{border-color:color-mix(in oklab,var(--destructive)30%,transparent)}}.border-destructive\/40{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.border-destructive\/40{border-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.border-destructive\/50{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.border-destructive\/50{border-color:color-mix(in oklab,var(--destructive)50%,transparent)}}.border-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-orange-200\/30{border-color:#ffd7a84d}@supports (color:color-mix(in lab,red,red)){.border-orange-200\/30{border-color:color-mix(in oklab,var(--color-orange-200)30%,transparent)}}.border-orange-200\/50{border-color:#ffd7a880}@supports (color:color-mix(in lab,red,red)){.border-orange-200\/50{border-color:color-mix(in oklab,var(--color-orange-200)50%,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-background\/95{background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){.bg-background\/95{background-color:color-mix(in oklab,var(--background)95%,transparent)}}.bg-black\/0{background-color:#0000}@supports (color:color-mix(in lab,red,red)){.bg-black\/0{background-color:color-mix(in oklab,var(--color-black)0%,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-black\/80{background-color:#000c}@supports (color:color-mix(in lab,red,red)){.bg-black\/80{background-color:color-mix(in oklab,var(--color-black)80%,transparent)}}.bg-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-destructive\/15{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/15{background-color:color-mix(in oklab,var(--destructive)15%,transparent)}}.bg-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-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-orange-100\/50{background-color:#ffedd580}@supports (color:color-mix(in lab,red,red)){.bg-orange-100\/50{background-color:color-mix(in oklab,var(--color-orange-100)50%,transparent)}}.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,.bg-secondary\/80{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.bg-secondary\/80{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}}.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-br{--tw-gradient-position:to bottom right in oklab}.bg-gradient-to-br,.bg-gradient-to-r{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab}.from-orange-50\/30{--tw-gradient-from:#fff7ed4d}@supports (color:color-mix(in lab,red,red)){.from-orange-50\/30{--tw-gradient-from:color-mix(in oklab,var(--color-orange-50)30%,transparent)}}.from-orange-50\/30{--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))}.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-amber-50\/20{--tw-gradient-to:#fffbeb33}@supports (color:color-mix(in lab,red,red)){.to-amber-50\/20{--tw-gradient-to:color-mix(in oklab,var(--color-amber-50)20%,transparent)}}.to-amber-50\/20{--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)}@supports (color:color-mix(in lab,red,red)){.to-primary\/70{--tw-gradient-to:color-mix(in oklab,var(--primary)70%,transparent)}}.to-primary\/70{--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))}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.fill-current{fill:currentColor}.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{padding-block:calc(var(--spacing)*0)}.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-2{padding-top:calc(var(--spacing)*2)}.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)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pb-6{padding-bottom:calc(var(--spacing)*6)}.pb-\[calc\(env\(safe-area-inset-bottom\)\+16px\)\]{padding-bottom:calc(env(safe-area-inset-bottom) + 16px)}.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}.align-top{vertical-align:top}.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-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.leading-7{--tw-leading:calc(var(--spacing)*7);line-height:calc(var(--spacing)*7)}.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-normal{overflow-wrap:normal;word-break:normal}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.hyphens-none{hyphens:none}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-accent-foreground{color:var(--accent-foreground)}.text-amber-500{color:var(--color-amber-500)}.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\/70{color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.text-destructive\/70{color:color-mix(in oklab,var(--destructive)70%,transparent)}}.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-700{color:var(--color-orange-700)}.text-orange-800{color:var(--color-orange-800)}.text-orange-800\/80{color:#9f2d00cc}@supports (color:color-mix(in lab,red,red)){.text-orange-800\/80{color:color-mix(in oklab,var(--color-orange-800)80%,transparent)}}.text-pink-800{color:var(--color-pink-800)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground,.text-primary-foreground\/70{color:var(--primary-foreground)}@supports (color:color-mix(in lab,red,red)){.text-primary-foreground\/70{color:color-mix(in oklab,var(--primary-foreground)70%,transparent)}}.text-primary-foreground\/80{color:var(--primary-foreground)}@supports (color:color-mix(in lab,red,red)){.text-primary-foreground\/80{color:color-mix(in oklab,var(--primary-foreground)80%,transparent)}}.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}.opacity-100{opacity:1}.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-1{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-accent-foreground\/10{--tw-ring-color:var(--accent-foreground)}@supports (color:color-mix(in lab,red,red)){.ring-accent-foreground\/10{--tw-ring-color:color-mix(in oklab,var(--accent-foreground)10%,transparent)}}.ring-destructive{--tw-ring-color:var(--destructive)}.ring-primary,.ring-primary\/20{--tw-ring-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.ring-primary\/20{--tw-ring-color:color-mix(in oklab,var(--primary)20%,transparent)}}.ring-offset-0{--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)}.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}.drop-shadow-lg{--tw-drop-shadow-size:drop-shadow(0 4px 4px var(--tw-drop-shadow-color,#00000026));--tw-drop-shadow:drop-shadow(var(--drop-shadow-lg))}.drop-shadow-lg,.invert{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,)}.invert{--tw-invert:invert(100%)}.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{--tw-backdrop-blur:blur(8px)}.backdrop-blur,.backdrop-blur-sm{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-sm{--tw-backdrop-blur:blur(var(--blur-sm))}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition-\[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-100{--tw-duration:.1s;transition-duration:.1s}.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\:scale-110:is(:where(.group):hover *){--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\:scale-\[1\.02\]:is(:where(.group):hover *){scale:1.02}.group-hover\:bg-black\/10:is(:where(.group):hover *){background-color:#0000001a}@supports (color:color-mix(in lab,red,red)){.group-hover\:bg-black\/10:is(:where(.group):hover *){background-color:color-mix(in oklab,var(--color-black)10%,transparent)}}.group-hover\:text-primary:is(:where(.group):hover *),.group-hover\:text-primary\/80:is(:where(.group):hover *){color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.group-hover\:text-primary\/80:is(:where(.group):hover *){color:color-mix(in oklab,var(--primary)80%,transparent)}}.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-lg::-moz-placeholder{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.placeholder\:text-lg::placeholder{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.placeholder\:text-muted-foreground::-moz-placeholder{color:var(--muted-foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.first\:rounded-tl-lg:first-child{border-top-left-radius:calc(var(--radius) + 2px)}.first\:border-t:first-child{border-top-style:var(--tw-border-style);border-top-width:1px}.last\:mb-0:last-child{margin-bottom:calc(var(--spacing)*0)}.last\:rounded-tr-lg:last-child{border-top-right-radius:calc(var(--radius) + 2px)}.last\:border-r:last-child{border-right-style:var(--tw-border-style);border-right-width:1px}@media (hover:hover){.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:scale-125:hover{--tw-scale-x:125%;--tw-scale-y:125%;--tw-scale-z:125%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:scale-\[1\.01\]:hover{scale:1.01}.hover\:border-accent-foreground\/20:hover{border-color:var(--accent-foreground)}@supports (color:color-mix(in lab,red,red)){.hover\:border-accent-foreground\/20:hover{border-color:color-mix(in oklab,var(--accent-foreground)20%,transparent)}}.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-background:hover{background-color:var(--background)}.hover\:bg-card:hover{background-color:var(--card)}.hover\:bg-destructive\/15:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/15:hover{background-color:color-mix(in oklab,var(--destructive)15%,transparent)}}.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\/10:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/10:hover{background-color:color-mix(in oklab,var(--primary)10%,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:hover,.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}}.hover\:bg-transparent:hover{background-color:#0000}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-amber-400:hover{color:var(--color-amber-400)}.hover\:text-amber-500:hover{color:var(--color-amber-500)}.hover\:text-blue-500:hover{color:var(--color-blue-500)}.hover\:text-destructive:hover{color:var(--destructive)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-orange-800:hover{color:var(--color-orange-800)}.hover\:text-primary:hover{color:var(--primary)}.hover\:text-yellow-400:hover{color:var(--color-yellow-400)}.hover\:text-yellow-500:hover{color:var(--color-yellow-500)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a)}.hover\:shadow-lg:hover,.hover\:shadow-md:hover{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a)}.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-0:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor)}.focus\:ring-0:focus,.focus\:ring-2:focus{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor)}.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-offset-0:focus{--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\: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-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}.active\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.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)}@supports (backdrop-filter:var(--tw )){.supports-\[backdrop-filter\]\:bg-background\/80{background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){.supports-\[backdrop-filter\]\:bg-background\/80{background-color:color-mix(in oklab,var(--background)80%,transparent)}}}@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-\[800px\]{max-width:800px}.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\:block:is(.dark *){display:block}.dark\:hidden:is(.dark *){display:none}.dark\:border-green-800:is(.dark *){border-color:var(--color-green-800)}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:border-orange-400\/20:is(.dark *){border-color:#ff8b1a33}@supports (color:color-mix(in lab,red,red)){.dark\:border-orange-400\/20:is(.dark *){border-color:color-mix(in oklab,var(--color-orange-400)20%,transparent)}}.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-orange-900\/30:is(.dark *){background-color:#7e2a0c4d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-orange-900\/30:is(.dark *){background-color:color-mix(in oklab,var(--color-orange-900)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\:from-orange-900\/20:is(.dark *){--tw-gradient-from:#7e2a0c33}@supports (color:color-mix(in lab,red,red)){.dark\:from-orange-900\/20:is(.dark *){--tw-gradient-from:color-mix(in oklab,var(--color-orange-900)20%,transparent)}}.dark\:from-orange-900\/20:is(.dark *){--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))}.dark\:to-amber-900\/10:is(.dark *){--tw-gradient-to:#7b33061a}@supports (color:color-mix(in lab,red,red)){.dark\:to-amber-900\/10:is(.dark *){--tw-gradient-to:color-mix(in oklab,var(--color-amber-900)10%,transparent)}}.dark\:to-amber-900\/10:is(.dark *){--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))}.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-orange-200\/70:is(.dark *){color:#ffd7a8b3}@supports (color:color-mix(in lab,red,red)){.dark\:text-orange-200\/70:is(.dark *){color:color-mix(in oklab,var(--color-orange-200)70%,transparent)}}.dark\:text-orange-300:is(.dark *){color:var(--color-orange-300)}.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)}.dark\:brightness-0:is(.dark *){--tw-brightness:brightness(0%);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,)}.dark\:contrast-200:is(.dark *){--tw-contrast:contrast(200%);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,)}.dark\:invert:is(.dark *){--tw-invert:invert(100%);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,)}.dark\:invert-0:is(.dark *){--tw-invert:invert(0%);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,)}@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\:hover\:text-orange-200:is(.dark *):hover{color:var(--color-orange-200)}}.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)}.\[\&_ol\]\:my-5 ol{margin-block:calc(var(--spacing)*5)}.\[\&_ol\]\:ml-6 ol{margin-left:calc(var(--spacing)*6)}.\[\&_ol\]\:list-decimal ol{list-style-type:decimal}.\[\&_ol\>li\]\:mt-2 ol>li{margin-top:calc(var(--spacing)*2)}.\[\&_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)}.\[\&_ul\]\:my-5 ul{margin-block:calc(var(--spacing)*5)}.\[\&_ul\]\:ml-6 ul{margin-left:calc(var(--spacing)*6)}.\[\&_ul\]\:list-disc ul{list-style-type:disc}.\[\&_ul\>li\]\:mt-2 ul>li{margin-top:calc(var(--spacing)*2)}.\[\.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)}.\[\&\:last-child\>td\:first-child\]\:rounded-bl-lg:last-child>td:first-child{border-bottom-left-radius:calc(var(--radius) + 2px)}.\[\&\:last-child\>td\:last-child\]\:rounded-br-lg:last-child>td:last-child{border-bottom-right-radius:calc(var(--radius) + 2px)}.\[\&\>blockquote\]\:border-l-2>blockquote{border-left-style:var(--tw-border-style);border-left-width:2px}.\[\&\>blockquote\]\:pl-6>blockquote{padding-left:calc(var(--spacing)*6)}.\[\&\>blockquote\]\:italic>blockquote{font-style:italic}.\[\&\>h1\]\:mb-8>h1{margin-bottom:calc(var(--spacing)*8)}.\[\&\>h1\]\:text-4xl>h1{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.\[\&\>h1\]\:font-extrabold>h1{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.\[\&\>h1\]\:tracking-tight>h1{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.\[\&\>h1\]\:last\:mb-0>h1:last-child{margin-bottom:calc(var(--spacing)*0)}.\[\&\>h2\]\:mt-8>h2{margin-top:calc(var(--spacing)*8)}.\[\&\>h2\]\:mb-4>h2{margin-bottom:calc(var(--spacing)*4)}.\[\&\>h2\]\:text-3xl>h2{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.\[\&\>h2\]\:font-semibold>h2{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.\[\&\>h2\]\:tracking-tight>h2{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.\[\&\>h2\]\:first\:mt-0>h2:first-child{margin-top:calc(var(--spacing)*0)}.\[\&\>h2\]\:last\:mb-0>h2:last-child{margin-bottom:calc(var(--spacing)*0)}.\[\&\>h3\]\:mt-6>h3{margin-top:calc(var(--spacing)*6)}.\[\&\>h3\]\:mb-4>h3{margin-bottom:calc(var(--spacing)*4)}.\[\&\>h3\]\:text-2xl>h3{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.\[\&\>h3\]\:font-semibold>h3{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.\[\&\>h3\]\:tracking-tight>h3{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.\[\&\>h3\]\:first\:mt-0>h3:first-child{margin-top:calc(var(--spacing)*0)}.\[\&\>h3\]\:last\:mb-0>h3:last-child{margin-bottom:calc(var(--spacing)*0)}.\[\&\>h4\]\:mt-6>h4{margin-top:calc(var(--spacing)*6)}.\[\&\>h4\]\:mb-4>h4{margin-bottom:calc(var(--spacing)*4)}.\[\&\>h4\]\:text-xl>h4{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.\[\&\>h4\]\:font-semibold>h4{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.\[\&\>h4\]\:tracking-tight>h4{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.\[\&\>h4\]\:first\:mt-0>h4:first-child{margin-top:calc(var(--spacing)*0)}.\[\&\>h4\]\:last\:mb-0>h4:last-child{margin-bottom:calc(var(--spacing)*0)}.\[\&\>hr\]\:my-5>hr{margin-block:calc(var(--spacing)*5)}.\[\&\>hr\]\:border-b>hr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&\>ol\]\:my-5>ol{margin-block:calc(var(--spacing)*5)}.\[\&\>ol\]\:ml-6>ol{margin-left:calc(var(--spacing)*6)}.\[\&\>ol\]\:list-decimal>ol{list-style-type:decimal}.\[\&\>ol\>li\]\:mt-2>ol>li{margin-top:calc(var(--spacing)*2)}.\[\&\>p\]\:my-5>p{margin-block:calc(var(--spacing)*5)}.\[\&\>p\]\:leading-7>p{--tw-leading:calc(var(--spacing)*7);line-height:calc(var(--spacing)*7)}.\[\&\>p\]\:first\:mt-0>p:first-child{margin-top:calc(var(--spacing)*0)}.\[\&\>p\]\:last\:mb-0>p:last-child{margin-bottom:calc(var(--spacing)*0)}.\[\&\>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}.\[\&\>ul\]\:my-5>ul{margin-block:calc(var(--spacing)*5)}.\[\&\>ul\]\:ml-6>ul{margin-left:calc(var(--spacing)*6)}.\[\&\>ul\]\:list-disc>ul{list-style-type:disc}.\[\&\>ul\>li\]\:mt-2>ul>li{margin-top:calc(var(--spacing)*2)}.\[\&\[align\=center\]\]\:text-center[align=center]{text-align:center}.\[\&\[align\=right\]\]\:text-right[align=right]{text-align:right}}: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:#0f0f0f;--foreground:#fafafa;--card:#141414;--card-foreground:#fafafa;--popover:#141414;--popover-foreground:#fafafa;--primary:#fafafa;--primary-foreground:#0f0f0f;--secondary:#262626;--secondary-foreground:#fafafa;--muted:#262626;--muted-foreground:#a1a1aa;--accent:#262626;--accent-foreground:#fafafa;--destructive:#dc2626;--destructive-foreground:#fafafa;--border:#525252;--input:#262626;--ring:#d4d4d8;--chart-1:#3b82f6;--chart-2:#10b981;--chart-3:#f59e0b;--chart-4:#ef4444;--chart-5:#8b5cf6;--sidebar:#141414;--sidebar-foreground:#fafafa;--sidebar-primary:#fafafa;--sidebar-primary-foreground:#0f0f0f;--sidebar-accent:#262626;--sidebar-accent-foreground:#fafafa;--sidebar-border:#525252;--sidebar-ring:#d4d4d8}@property --tw-border-spacing-x{syntax:"<length>";inherits:false;initial-value:0}@property --tw-border-spacing-y{syntax:"<length>";inherits:false;initial-value:0}@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)}}