diff --git a/astro-src/pages/welcome.astro b/astro-src/pages/welcome.astro new file mode 100644 index 00000000..e67800be --- /dev/null +++ b/astro-src/pages/welcome.astro @@ -0,0 +1,377 @@ +--- +import Layout from '../layouts/Layout.astro'; +import PostHogInit from '../../src/components/PostHogInit'; +import NavigationLandingPage from '../../src/components/NavigationLandingPage'; +import Footer from '../../src/components/Footer'; +--- + + + + +
+ + +
+
+ + +
+
+ +
+
+
+
+ + + + +
+
+ +

+ Desktop Commander Installed! +

+

+ You're ready to supercharge Claude Desktop +

+
+ + +
+ + +
+
+ +
+ +
+
+
+ + + +
+
+ Start Here +

Try Your First Command

+
+
+ +

+ Copy this into Claude Desktop: +

+ +
+
+ Organize my Downloads folder by file type +
+ +
+
+ + +
+ +
+
+
+ + +
+
+
+ + + + + +
+

Having Issues?

+
+ +

+ Quick fixes for common setup problems: +

+ + +
+
+ + +
+ +
+ + +
+
+ +
+ + + + + +
+
+ + + + +
+ +

Level Up Your Automations

+

+ Get weekly tips, new prompt ideas, and be first to know about new features. +

+ +
+ +
+
+

+ Privacy Policy Β· No spam, unsubscribe anytime +

+
+ +
+ + + + +
+
+ +
+
+ + + + +
diff --git a/docs/404.html b/docs/404.html index 0774f7e5..c026f4b2 100644 --- a/docs/404.html +++ b/docs/404.html @@ -22,7 +22,7 @@
App Launching Soonβ€’Join Waitlist

Loading animation...

One Chat, Full Stack

Give AI direct access to your system and terminal

Transform your workflow today

From simple file operations to complex deployment pipelines, Desktop Commander handles it all through natural conversation

Install Desktop Commander and see how it handles these use cases

Tell us what you want to automate – we'll help set it up

Describe your repetitive tasks and we'll help you automate them with Desktop Commander. From deployment pipelines to file management workflows.

Custom automation β€’ No commitment

Trusted by the AI community

9.52/10
User Rating
26k+
Weekly Downloads
4.3k+
GitHub Stars
n
naranbaz
04/07/2025, 15:58
It is a great tool, thank you, I like using it, as it gives claude an ability to do surgical edits, making it more like a human developer.
p
play365alltime
07/08/2025, 17:22
Life saver! I was paying for both Claude + Cursor which felt duplicated. This solves that perfectly. With MCP + web search, it writes code with the latest updates. So good when Cursor doesn't work or fast requests run out.
d
dependablecalls
09/09/2025, 18:38
I had 76 errors in 23 files in my Svelte 5 project. Used desktop-commander, sequentialthinking, and tree-sitter to fix them all. Never resolved type errors this quickly with AI before!
DP
Dhiego Pagotto
03/06/2025, 19:14
I'm the one who is grateful for this, which is the best MCP that exists!
U
Uloi
12/09/2025, 12:44
Just joined I absolutely love this thing
GF
Geoff F
08/08/2025, 19:06
happy command coding everyone - god I love this tool
C
Creedo
17/06/2025, 12:06
Wow, I've been building something similar. This makes my project so much easier to build now. I'm truly grateful. Thank you!
DP
Damian Pastorini
09/07/2025, 19:39
btw @DC Dmitry , thanks for such great MCP πŸ™‚ I'm loving it πŸ™‚
j
jesseburstrom5920
22/09/2025, 10:11
Switched from Windsurf to Claude MCP and love it! No more token limits or cascade issues. Can code as much as I want without worrying about costs. This is much more than just code editing!
BM
Bjorn Melin
04/06/2025, 21:39
Been using this MCP daily for a couple of months now and onboarded a bunch of buddies onto it as well, a go to in my arsenal, great work!!
e
eszpee
10/09/2025, 19:02
Played with DesktopCommander today, replaced FileServer and continued my project. The diff-based editing is awesome - could continue longer in the same chat before hitting limits. Great!
n
naranbaz
04/07/2025, 15:58
It is a great tool, thank you, I like using it, as it gives claude an ability to do surgical edits, making it more like a human developer.
p
play365alltime
07/08/2025, 17:22
Life saver! I was paying for both Claude + Cursor which felt duplicated. This solves that perfectly. With MCP + web search, it writes code with the latest updates. So good when Cursor doesn't work or fast requests run out.
d
dependablecalls
09/09/2025, 18:38
I had 76 errors in 23 files in my Svelte 5 project. Used desktop-commander, sequentialthinking, and tree-sitter to fix them all. Never resolved type errors this quickly with AI before!
DP
Dhiego Pagotto
03/06/2025, 19:14
I'm the one who is grateful for this, which is the best MCP that exists!
U
Uloi
12/09/2025, 12:44
Just joined I absolutely love this thing
GF
Geoff F
08/08/2025, 19:06
happy command coding everyone - god I love this tool
C
Creedo
17/06/2025, 12:06
Wow, I've been building something similar. This makes my project so much easier to build now. I'm truly grateful. Thank you!
DP
Damian Pastorini
09/07/2025, 19:39
btw @DC Dmitry , thanks for such great MCP πŸ™‚ I'm loving it πŸ™‚
j
jesseburstrom5920
22/09/2025, 10:11
Switched from Windsurf to Claude MCP and love it! No more token limits or cascade issues. Can code as much as I want without worrying about costs. This is much more than just code editing!
BM
Bjorn Melin
04/06/2025, 21:39
Been using this MCP daily for a couple of months now and onboarded a bunch of buddies onto it as well, a go to in my arsenal, great work!!
e
eszpee
10/09/2025, 19:02
Played with DesktopCommander today, replaced FileServer and continued my project. The diff-based editing is awesome - could continue longer in the same chat before hitting limits. Great!

Try it out for yourself or browse our prompt library!

Explore Prompt Library

60+ prompts organized by workflow - from codebase exploration to task automation

Browse All Prompts

60+ workflows across development, automation, and optimization

Installation

MCP server for LLM clients

Installation Options

Bash Install

MacOSClaude Desktop

Run this in Terminal:

curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install.sh | bash

NPX Install

WindowsMacOSClaude Desktop

Run this in Terminal/Command Prompt:

npx @wonderwhy-er/desktop-commander@latest setup

Getting Started

Simply ask Claude or your LLM: "What can I do with Desktop Commander?" and you'll get guided tutorials and examples to discover what's possible.

Hear from our founders

Follow our team on YouTube and Medium to see our latest thinking

Join Our Community

Connect with other users and contributors to share ideas, get help, and contribute to the project.

GitHub

Star the repository, report issues, and contribute code.

Discord

Join our Discord server to chat with the community in real-time.

YouTube Channel

Follow us on YouTube and vibe code with us.

Frequently Asked Questions

Got questions? We've got answers. Find everything you need to know about Desktop Commander.

Need More Details?

View our comprehensive FAQ document on GitHub for more detailed answers and troubleshooting guides.

Complete FAQ on GitHub
\ No newline at end of file +
App Launching Soonβ€’Join Waitlist

Loading animation...

One Chat, Full Stack

Give AI direct access to your system and terminal

Transform your workflow today

From simple file operations to complex deployment pipelines, Desktop Commander handles it all through natural conversation

Install Desktop Commander and see how it handles these use cases

Tell us what you want to automate – we'll help set it up

Describe your repetitive tasks and we'll help you automate them with Desktop Commander. From deployment pipelines to file management workflows.

Custom automation β€’ No commitment

Trusted by the AI community

9.52/10
User Rating
26k+
Weekly Downloads
4.3k+
GitHub Stars
n
naranbaz
04/07/2025, 15:58
It is a great tool, thank you, I like using it, as it gives claude an ability to do surgical edits, making it more like a human developer.
p
play365alltime
07/08/2025, 17:22
Life saver! I was paying for both Claude + Cursor which felt duplicated. This solves that perfectly. With MCP + web search, it writes code with the latest updates. So good when Cursor doesn't work or fast requests run out.
d
dependablecalls
09/09/2025, 18:38
I had 76 errors in 23 files in my Svelte 5 project. Used desktop-commander, sequentialthinking, and tree-sitter to fix them all. Never resolved type errors this quickly with AI before!
DP
Dhiego Pagotto
03/06/2025, 19:14
I'm the one who is grateful for this, which is the best MCP that exists!
U
Uloi
12/09/2025, 12:44
Just joined I absolutely love this thing
GF
Geoff F
08/08/2025, 19:06
happy command coding everyone - god I love this tool
C
Creedo
17/06/2025, 12:06
Wow, I've been building something similar. This makes my project so much easier to build now. I'm truly grateful. Thank you!
DP
Damian Pastorini
09/07/2025, 19:39
btw @DC Dmitry , thanks for such great MCP πŸ™‚ I'm loving it πŸ™‚
j
jesseburstrom5920
22/09/2025, 10:11
Switched from Windsurf to Claude MCP and love it! No more token limits or cascade issues. Can code as much as I want without worrying about costs. This is much more than just code editing!
BM
Bjorn Melin
04/06/2025, 21:39
Been using this MCP daily for a couple of months now and onboarded a bunch of buddies onto it as well, a go to in my arsenal, great work!!
e
eszpee
10/09/2025, 19:02
Played with DesktopCommander today, replaced FileServer and continued my project. The diff-based editing is awesome - could continue longer in the same chat before hitting limits. Great!
n
naranbaz
04/07/2025, 15:58
It is a great tool, thank you, I like using it, as it gives claude an ability to do surgical edits, making it more like a human developer.
p
play365alltime
07/08/2025, 17:22
Life saver! I was paying for both Claude + Cursor which felt duplicated. This solves that perfectly. With MCP + web search, it writes code with the latest updates. So good when Cursor doesn't work or fast requests run out.
d
dependablecalls
09/09/2025, 18:38
I had 76 errors in 23 files in my Svelte 5 project. Used desktop-commander, sequentialthinking, and tree-sitter to fix them all. Never resolved type errors this quickly with AI before!
DP
Dhiego Pagotto
03/06/2025, 19:14
I'm the one who is grateful for this, which is the best MCP that exists!
U
Uloi
12/09/2025, 12:44
Just joined I absolutely love this thing
GF
Geoff F
08/08/2025, 19:06
happy command coding everyone - god I love this tool
C
Creedo
17/06/2025, 12:06
Wow, I've been building something similar. This makes my project so much easier to build now. I'm truly grateful. Thank you!
DP
Damian Pastorini
09/07/2025, 19:39
btw @DC Dmitry , thanks for such great MCP πŸ™‚ I'm loving it πŸ™‚
j
jesseburstrom5920
22/09/2025, 10:11
Switched from Windsurf to Claude MCP and love it! No more token limits or cascade issues. Can code as much as I want without worrying about costs. This is much more than just code editing!
BM
Bjorn Melin
04/06/2025, 21:39
Been using this MCP daily for a couple of months now and onboarded a bunch of buddies onto it as well, a go to in my arsenal, great work!!
e
eszpee
10/09/2025, 19:02
Played with DesktopCommander today, replaced FileServer and continued my project. The diff-based editing is awesome - could continue longer in the same chat before hitting limits. Great!

Try it out for yourself or browse our prompt library!

Explore Prompt Library

60+ prompts organized by workflow - from codebase exploration to task automation

Browse All Prompts

60+ workflows across development, automation, and optimization

Installation

MCP server for LLM clients

Installation Options

Bash Install

MacOSClaude Desktop

Run this in Terminal:

curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install.sh | bash

NPX Install

WindowsMacOSClaude Desktop

Run this in Terminal/Command Prompt:

npx @wonderwhy-er/desktop-commander@latest setup

Getting Started

Simply ask Claude or your LLM: "What can I do with Desktop Commander?" and you'll get guided tutorials and examples to discover what's possible.

Hear from our founders

Follow our team on YouTube and Medium to see our latest thinking

Join Our Community

Connect with other users and contributors to share ideas, get help, and contribute to the project.

GitHub

Star the repository, report issues, and contribute code.

Discord

Join our Discord server to chat with the community in real-time.

YouTube Channel

Follow us on YouTube and vibe code with us.

Frequently Asked Questions

Got questions? We've got answers. Find everything you need to know about Desktop Commander.

Need More Details?

View our comprehensive FAQ document on GitHub for more detailed answers and troubleshooting guides.

Complete FAQ on GitHub
\ No newline at end of file diff --git a/docs/assets/ADComparisonSection.DDFEx_eY.js b/docs/assets/ADComparisonSection.DeQLoj--.js similarity index 90% rename from docs/assets/ADComparisonSection.DDFEx_eY.js rename to docs/assets/ADComparisonSection.DeQLoj--.js index b4977752..1a229ff4 100644 --- a/docs/assets/ADComparisonSection.DDFEx_eY.js +++ b/docs/assets/ADComparisonSection.DeQLoj--.js @@ -1,4 +1,4 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{c as t}from"./createLucideIcon.CJ67VFfW.js";import{M as a}from"./message-square.bamY-dpJ.js";import{C as n}from"./code.BOyVoLRs.js";import{S as l}from"./sparkles.sp_Qnyce.js";import"./index.yBjzXJbu.js";import"./index.BaMLtrTp.js";/** +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{c as t}from"./createLucideIcon.DnxMVFvH.js";import{M as a}from"./message-square.O0_WvyiX.js";import{C as n}from"./code.Bsz77KQU.js";import{S as l}from"./sparkles.DoaLSLnS.js";import"./index.yBjzXJbu.js";import"./index.D_oLZvzW.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/ADExamplesSection.CahijvWc.js b/docs/assets/ADExamplesSection.9V_p83XX.js similarity index 88% rename from docs/assets/ADExamplesSection.CahijvWc.js rename to docs/assets/ADExamplesSection.9V_p83XX.js index 4be08aac..89a9a20a 100644 --- a/docs/assets/ADExamplesSection.CahijvWc.js +++ b/docs/assets/ADExamplesSection.9V_p83XX.js @@ -1,4 +1,4 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as a}from"./button.nz_ACiet.js";import{S as o}from"./search.CTWaWu2N.js";import{c as i}from"./createLucideIcon.CJ67VFfW.js";import{R as n}from"./refresh-cw.3-55pmhE.js";import{A as d}from"./arrow-right.B_EnXtAw.js";import"./index.yBjzXJbu.js";import"./index.BaMLtrTp.js";import"./utils.XhT4HDO9.js";/** +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as a}from"./button.D-OtCHTj.js";import{S as o}from"./search.DStwv__K.js";import{c as i}from"./createLucideIcon.DnxMVFvH.js";import{R as n}from"./refresh-cw.BaAeNbsO.js";import{A as d}from"./arrow-right.DSKvTJYC.js";import"./index.yBjzXJbu.js";import"./index.D_oLZvzW.js";import"./utils.9Q5QEYED.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/ADFinalCTASection.DnsWQMG4.js b/docs/assets/ADFinalCTASection.BOyaVziW.js similarity index 87% rename from docs/assets/ADFinalCTASection.DnsWQMG4.js rename to docs/assets/ADFinalCTASection.BOyaVziW.js index 343496d9..d970a6b0 100644 --- a/docs/assets/ADFinalCTASection.DnsWQMG4.js +++ b/docs/assets/ADFinalCTASection.BOyaVziW.js @@ -1 +1 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as s}from"./button.nz_ACiet.js";import{A as r}from"./arrow-right.B_EnXtAw.js";import"./index.yBjzXJbu.js";import"./index.BaMLtrTp.js";import"./utils.XhT4HDO9.js";import"./createLucideIcon.CJ67VFfW.js";const x=()=>e.jsx("section",{className:"py-16 md:py-24",children:e.jsx("div",{className:"container mx-auto max-w-4xl px-4 sm:px-6",children:e.jsxs("div",{className:"bg-gradient-to-br from-primary/10 via-primary/5 to-transparent rounded-2xl border border-primary/20 p-8 md:p-12 text-center",children:[e.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-6",children:"Your spreadsheets have answers. Start asking questions."}),e.jsx("p",{className:"text-lg md:text-xl text-muted-foreground mb-8 max-w-2xl mx-auto",children:"Desktop Commander gives you Python's power without Python's learning curve."}),e.jsx("div",{className:"flex flex-col sm:flex-row gap-4 justify-center mb-8",children:e.jsx(s,{size:"lg",asChild:!0,className:"group",children:e.jsxs("a",{href:"/product/early-access/",children:["Join the Waitlist",e.jsx(r,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})})}),e.jsx("div",{className:"flex flex-col items-center gap-4 text-sm text-muted-foreground",children:e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx("span",{children:"Analyze locally"}),e.jsx("span",{className:"w-1 h-1 rounded-full bg-muted-foreground/50"}),e.jsx("span",{children:"Get accurate results"})]})})]})})});export{x as default}; +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as s}from"./button.D-OtCHTj.js";import{A as r}from"./arrow-right.DSKvTJYC.js";import"./index.yBjzXJbu.js";import"./index.D_oLZvzW.js";import"./utils.9Q5QEYED.js";import"./createLucideIcon.DnxMVFvH.js";const x=()=>e.jsx("section",{className:"py-16 md:py-24",children:e.jsx("div",{className:"container mx-auto max-w-4xl px-4 sm:px-6",children:e.jsxs("div",{className:"bg-gradient-to-br from-primary/10 via-primary/5 to-transparent rounded-2xl border border-primary/20 p-8 md:p-12 text-center",children:[e.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-6",children:"Your spreadsheets have answers. Start asking questions."}),e.jsx("p",{className:"text-lg md:text-xl text-muted-foreground mb-8 max-w-2xl mx-auto",children:"Desktop Commander gives you Python's power without Python's learning curve."}),e.jsx("div",{className:"flex flex-col sm:flex-row gap-4 justify-center mb-8",children:e.jsx(s,{size:"lg",asChild:!0,className:"group",children:e.jsxs("a",{href:"/product/early-access/",children:["Join the Waitlist",e.jsx(r,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})})}),e.jsx("div",{className:"flex flex-col items-center gap-4 text-sm text-muted-foreground",children:e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx("span",{children:"Analyze locally"}),e.jsx("span",{className:"w-1 h-1 rounded-full bg-muted-foreground/50"}),e.jsx("span",{children:"Get accurate results"})]})})]})})});export{x as default}; diff --git a/docs/assets/ADHeroSection.nMetkELr.js b/docs/assets/ADHeroSection.Ct5Q-1xl.js similarity index 90% rename from docs/assets/ADHeroSection.nMetkELr.js rename to docs/assets/ADHeroSection.Ct5Q-1xl.js index 6f4b2883..af8165f8 100644 --- a/docs/assets/ADHeroSection.nMetkELr.js +++ b/docs/assets/ADHeroSection.Ct5Q-1xl.js @@ -1 +1 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as r}from"./button.nz_ACiet.js";import{A as s}from"./arrow-right.B_EnXtAw.js";import"./index.yBjzXJbu.js";import"./index.BaMLtrTp.js";import"./utils.XhT4HDO9.js";import"./createLucideIcon.CJ67VFfW.js";const x=()=>e.jsx("section",{className:"pt-32 pb-16 md:pt-40 md:pb-20",children:e.jsx("div",{className:"container mx-auto max-w-6xl px-4 sm:px-6",children:e.jsxs("div",{className:"flex flex-col items-center text-center space-y-8",children:[e.jsxs("h1",{className:"text-4xl sm:text-5xl lg:text-6xl font-bold tracking-tight max-w-4xl",children:["Analyze data ",e.jsx("span",{className:"text-primary",children:"in natural language"})]}),e.jsx("p",{className:"text-lg sm:text-xl text-muted-foreground max-w-3xl leading-relaxed",children:"Process large files, find patterns, and automate reportsβ€”without learning Python or watching AI hallucinate your numbers."}),e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-3 pt-2",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:"Works with:"}),e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-2",children:[e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"CSV"}),e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"Excel"}),e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"JSON"}),e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"Python"}),e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"Pandas"})]})]}),e.jsx("div",{className:"flex flex-col sm:flex-row gap-4 pt-4",children:e.jsx(r,{size:"lg",asChild:!0,className:"group",children:e.jsxs("a",{href:"/product/early-access/",children:["Join the Waitlist",e.jsx(s,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})})})]})})});export{x as default}; +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as r}from"./button.D-OtCHTj.js";import{A as s}from"./arrow-right.DSKvTJYC.js";import"./index.yBjzXJbu.js";import"./index.D_oLZvzW.js";import"./utils.9Q5QEYED.js";import"./createLucideIcon.DnxMVFvH.js";const x=()=>e.jsx("section",{className:"pt-32 pb-16 md:pt-40 md:pb-20",children:e.jsx("div",{className:"container mx-auto max-w-6xl px-4 sm:px-6",children:e.jsxs("div",{className:"flex flex-col items-center text-center space-y-8",children:[e.jsxs("h1",{className:"text-4xl sm:text-5xl lg:text-6xl font-bold tracking-tight max-w-4xl",children:["Analyze data ",e.jsx("span",{className:"text-primary",children:"in natural language"})]}),e.jsx("p",{className:"text-lg sm:text-xl text-muted-foreground max-w-3xl leading-relaxed",children:"Process large files, find patterns, and automate reportsβ€”without learning Python or watching AI hallucinate your numbers."}),e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-3 pt-2",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:"Works with:"}),e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-2",children:[e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"CSV"}),e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"Excel"}),e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"JSON"}),e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"Python"}),e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"Pandas"})]})]}),e.jsx("div",{className:"flex flex-col sm:flex-row gap-4 pt-4",children:e.jsx(r,{size:"lg",asChild:!0,className:"group",children:e.jsxs("a",{href:"/product/early-access/",children:["Join the Waitlist",e.jsx(s,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})})})]})})});export{x as default}; diff --git a/docs/assets/ADPersonasSection.CXf906_w.js b/docs/assets/ADPersonasSection.CnmAvyPe.js similarity index 90% rename from docs/assets/ADPersonasSection.CXf906_w.js rename to docs/assets/ADPersonasSection.CnmAvyPe.js index d1781ac9..843491bb 100644 --- a/docs/assets/ADPersonasSection.CXf906_w.js +++ b/docs/assets/ADPersonasSection.CnmAvyPe.js @@ -1 +1 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{R as a}from"./rocket.DJM_PiJ5.js";import{C as c}from"./chart-column.BMc3CsP9.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.CJ67VFfW.js";import"./index.BaMLtrTp.js";const g=()=>{const r=[{icon:a,title:"Business operators & founders",color:"blue",useCases:["Analyze customer data without waiting for engineering","Get answers from spreadsheets in minutes, not days","Make data-backed decisions without hiring analysts"]},{icon:c,title:"Analysts hitting tool limits",color:"purple",useCases:["Process files too large for Excel","Automate repetitive report generation","Skip the copy-paste-into-AI workflow"]}],l=s=>{const o={blue:{bg:"bg-blue-500/5",border:"border-blue-500/30",iconBg:"bg-blue-500/20",iconColor:"text-blue-400",titleColor:"text-blue-400"},purple:{bg:"bg-purple-500/5",border:"border-purple-500/30",iconBg:"bg-purple-500/20",iconColor:"text-purple-400",titleColor:"text-purple-400"}};return o[s]||o.blue};return e.jsx("section",{className:"py-16 md:py-24 bg-gradient-to-b from-background to-dc-card/30",children:e.jsxs("div",{className:"container mx-auto max-w-4xl px-4 sm:px-6",children:[e.jsx("div",{className:"text-center mb-16",children:e.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-4",children:"Who This Is For"})}),e.jsx("div",{className:"grid md:grid-cols-2 gap-8",children:r.map((s,o)=>{const t=l(s.color);return e.jsxs("div",{className:`p-6 rounded-xl ${t.bg} border-2 ${t.border}`,children:[e.jsx("div",{className:`w-12 h-12 rounded-xl ${t.iconBg} flex items-center justify-center mb-4`,children:e.jsx(s.icon,{className:`w-6 h-6 ${t.iconColor}`})}),e.jsx("h3",{className:`text-xl font-semibold mb-4 ${t.titleColor}`,children:s.title}),e.jsx("ul",{className:"space-y-2 text-muted-foreground",children:s.useCases.map((i,n)=>e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx("span",{className:`w-1.5 h-1.5 rounded-full ${t.iconBg} mt-2 shrink-0`}),e.jsx("span",{children:i})]},n))})]},o)})})]})})};export{g as default}; +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{R as a}from"./rocket.DnXnYW1j.js";import{C as c}from"./chart-column.OLWkJ9on.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.DnxMVFvH.js";import"./index.D_oLZvzW.js";const g=()=>{const r=[{icon:a,title:"Business operators & founders",color:"blue",useCases:["Analyze customer data without waiting for engineering","Get answers from spreadsheets in minutes, not days","Make data-backed decisions without hiring analysts"]},{icon:c,title:"Analysts hitting tool limits",color:"purple",useCases:["Process files too large for Excel","Automate repetitive report generation","Skip the copy-paste-into-AI workflow"]}],l=s=>{const o={blue:{bg:"bg-blue-500/5",border:"border-blue-500/30",iconBg:"bg-blue-500/20",iconColor:"text-blue-400",titleColor:"text-blue-400"},purple:{bg:"bg-purple-500/5",border:"border-purple-500/30",iconBg:"bg-purple-500/20",iconColor:"text-purple-400",titleColor:"text-purple-400"}};return o[s]||o.blue};return e.jsx("section",{className:"py-16 md:py-24 bg-gradient-to-b from-background to-dc-card/30",children:e.jsxs("div",{className:"container mx-auto max-w-4xl px-4 sm:px-6",children:[e.jsx("div",{className:"text-center mb-16",children:e.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-4",children:"Who This Is For"})}),e.jsx("div",{className:"grid md:grid-cols-2 gap-8",children:r.map((s,o)=>{const t=l(s.color);return e.jsxs("div",{className:`p-6 rounded-xl ${t.bg} border-2 ${t.border}`,children:[e.jsx("div",{className:`w-12 h-12 rounded-xl ${t.iconBg} flex items-center justify-center mb-4`,children:e.jsx(s.icon,{className:`w-6 h-6 ${t.iconColor}`})}),e.jsx("h3",{className:`text-xl font-semibold mb-4 ${t.titleColor}`,children:s.title}),e.jsx("ul",{className:"space-y-2 text-muted-foreground",children:s.useCases.map((i,n)=>e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx("span",{className:`w-1.5 h-1.5 rounded-full ${t.iconBg} mt-2 shrink-0`}),e.jsx("span",{children:i})]},n))})]},o)})})]})})};export{g as default}; diff --git a/docs/assets/ADProblemSection.C9sozcIz.js b/docs/assets/ADProblemSection.C7jXel3r.js similarity index 89% rename from docs/assets/ADProblemSection.C9sozcIz.js rename to docs/assets/ADProblemSection.C7jXel3r.js index 75363cef..167a955d 100644 --- a/docs/assets/ADProblemSection.C9sozcIz.js +++ b/docs/assets/ADProblemSection.C7jXel3r.js @@ -1 +1 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{C as t}from"./circle-alert.BAM225Eq.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.CJ67VFfW.js";import"./index.BaMLtrTp.js";const i=()=>e.jsx("section",{className:"py-16 md:py-20",children:e.jsx("div",{className:"container mx-auto max-w-5xl px-4 sm:px-6",children:e.jsxs("div",{className:"bg-gradient-to-br from-dc-card to-dc-surface rounded-2xl border border-dc-border p-8 md:p-12",children:[e.jsxs("div",{className:"flex items-start gap-4 mb-6",children:[e.jsx("div",{className:"p-3 rounded-xl bg-destructive/10 border border-destructive/20",children:e.jsx(t,{className:"w-6 h-6 text-destructive"})}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold",children:"Data analysis shouldn't take so much time and effort."})]}),e.jsx("p",{className:"text-xl text-muted-foreground leading-relaxed",children:"You have spreadsheets full of answersβ€”but getting them out is painful. Excel breaks on large files. ChatGPT hallucinates when you paste data in. Learning Python and Pandas takes weeks. So you either do it manually, hire someone, or make decisions without the full picture."})]})})});export{i as default}; +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{C as t}from"./circle-alert.DXvzqdgU.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.DnxMVFvH.js";import"./index.D_oLZvzW.js";const i=()=>e.jsx("section",{className:"py-16 md:py-20",children:e.jsx("div",{className:"container mx-auto max-w-5xl px-4 sm:px-6",children:e.jsxs("div",{className:"bg-gradient-to-br from-dc-card to-dc-surface rounded-2xl border border-dc-border p-8 md:p-12",children:[e.jsxs("div",{className:"flex items-start gap-4 mb-6",children:[e.jsx("div",{className:"p-3 rounded-xl bg-destructive/10 border border-destructive/20",children:e.jsx(t,{className:"w-6 h-6 text-destructive"})}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold",children:"Data analysis shouldn't take so much time and effort."})]}),e.jsx("p",{className:"text-xl text-muted-foreground leading-relaxed",children:"You have spreadsheets full of answersβ€”but getting them out is painful. Excel breaks on large files. ChatGPT hallucinates when you paste data in. Learning Python and Pandas takes weeks. So you either do it manually, hire someone, or make decisions without the full picture."})]})})});export{i as default}; diff --git a/docs/assets/ADSolutionSection.CSlLn9nQ.js b/docs/assets/ADSolutionSection.C59DDdgD.js similarity index 95% rename from docs/assets/ADSolutionSection.CSlLn9nQ.js rename to docs/assets/ADSolutionSection.C59DDdgD.js index 4efe02f4..7b0524ee 100644 --- a/docs/assets/ADSolutionSection.CSlLn9nQ.js +++ b/docs/assets/ADSolutionSection.C59DDdgD.js @@ -1,4 +1,4 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{D as s}from"./database.BD9zb1Qc.js";import{c as o}from"./createLucideIcon.CJ67VFfW.js";import{Z as n}from"./zap.D6vbqF2e.js";import"./index.yBjzXJbu.js";import"./index.BaMLtrTp.js";/** +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{D as s}from"./database.CpdIqL8j.js";import{c as o}from"./createLucideIcon.DnxMVFvH.js";import{Z as n}from"./zap.DaqacrRs.js";import"./index.yBjzXJbu.js";import"./index.D_oLZvzW.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/ADWaitlistSection.Bd-TgQvT.js b/docs/assets/ADWaitlistSection.A-kggHKC.js similarity index 91% rename from docs/assets/ADWaitlistSection.Bd-TgQvT.js rename to docs/assets/ADWaitlistSection.A-kggHKC.js index c2367f62..e0757a1d 100644 --- a/docs/assets/ADWaitlistSection.Bd-TgQvT.js +++ b/docs/assets/ADWaitlistSection.A-kggHKC.js @@ -1 +1 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as r}from"./button.nz_ACiet.js";import{A as i}from"./arrow-right.B_EnXtAw.js";import"./index.yBjzXJbu.js";import"./index.BaMLtrTp.js";import"./utils.XhT4HDO9.js";import"./createLucideIcon.CJ67VFfW.js";const p=()=>{const a=[{number:"1",title:"Join the Early Access Program",description:"Sign up to get priority access when Desktop Commander launches. Be among the first to experience AI-powered data analysis."},{number:"2",title:"Describe what you need",description:'"Analyze this CSV and find the top trends" or "Create a weekly report from my sales data" β€” just type it naturally.'},{number:"3",title:"Done",description:"Desktop Commander writes and runs Python scripts on your actual files. Real calculations, accurate results β€” all privately on your machine."}];return e.jsx("section",{id:"get-started",className:"py-16 md:py-24 bg-dc-card/30 scroll-mt-20",children:e.jsxs("div",{className:"container mx-auto max-w-5xl px-4 sm:px-6",children:[e.jsxs("div",{className:"text-center mb-16",children:[e.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-4",children:"How It Works"}),e.jsx("p",{className:"text-lg md:text-xl text-muted-foreground max-w-3xl mx-auto",children:"Desktop Commander makes data analysis as simple as asking a question"})]}),e.jsx("div",{className:"space-y-8 md:space-y-12",children:a.map((t,s)=>e.jsxs("div",{className:"flex gap-6 items-start",children:[e.jsx("div",{className:"shrink-0 w-14 h-14 rounded-full bg-primary/10 border-2 border-primary flex items-center justify-center",children:e.jsx("span",{className:"text-2xl font-bold text-primary",children:t.number})}),e.jsxs("div",{className:"flex-1 pt-2",children:[e.jsx("h3",{className:"text-2xl font-semibold mb-3",children:t.title}),e.jsx("p",{className:"text-lg text-muted-foreground leading-relaxed mb-4",children:t.description}),s===0&&e.jsx("div",{className:"mt-6",children:e.jsx(r,{size:"lg",className:"group",asChild:!0,children:e.jsxs("a",{href:"/product/early-access/",children:["Join the Waitlist",e.jsx(i,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})})})]})]},s))})]})})};export{p as default}; +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as r}from"./button.D-OtCHTj.js";import{A as i}from"./arrow-right.DSKvTJYC.js";import"./index.yBjzXJbu.js";import"./index.D_oLZvzW.js";import"./utils.9Q5QEYED.js";import"./createLucideIcon.DnxMVFvH.js";const p=()=>{const a=[{number:"1",title:"Join the Early Access Program",description:"Sign up to get priority access when Desktop Commander launches. Be among the first to experience AI-powered data analysis."},{number:"2",title:"Describe what you need",description:'"Analyze this CSV and find the top trends" or "Create a weekly report from my sales data" β€” just type it naturally.'},{number:"3",title:"Done",description:"Desktop Commander writes and runs Python scripts on your actual files. Real calculations, accurate results β€” all privately on your machine."}];return e.jsx("section",{id:"get-started",className:"py-16 md:py-24 bg-dc-card/30 scroll-mt-20",children:e.jsxs("div",{className:"container mx-auto max-w-5xl px-4 sm:px-6",children:[e.jsxs("div",{className:"text-center mb-16",children:[e.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-4",children:"How It Works"}),e.jsx("p",{className:"text-lg md:text-xl text-muted-foreground max-w-3xl mx-auto",children:"Desktop Commander makes data analysis as simple as asking a question"})]}),e.jsx("div",{className:"space-y-8 md:space-y-12",children:a.map((t,s)=>e.jsxs("div",{className:"flex gap-6 items-start",children:[e.jsx("div",{className:"shrink-0 w-14 h-14 rounded-full bg-primary/10 border-2 border-primary flex items-center justify-center",children:e.jsx("span",{className:"text-2xl font-bold text-primary",children:t.number})}),e.jsxs("div",{className:"flex-1 pt-2",children:[e.jsx("h3",{className:"text-2xl font-semibold mb-3",children:t.title}),e.jsx("p",{className:"text-lg text-muted-foreground leading-relaxed mb-4",children:t.description}),s===0&&e.jsx("div",{className:"mt-6",children:e.jsx(r,{size:"lg",className:"group",asChild:!0,children:e.jsxs("a",{href:"/product/early-access/",children:["Join the Waitlist",e.jsx(i,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})})})]})]},s))})]})})};export{p as default}; diff --git a/docs/assets/ADWhyDifferentSection.BjzpUcDj.js b/docs/assets/ADWhyDifferentSection.BJRUSLg0.js similarity index 86% rename from docs/assets/ADWhyDifferentSection.BjzpUcDj.js rename to docs/assets/ADWhyDifferentSection.BJRUSLg0.js index 7bd6ff86..5a886156 100644 --- a/docs/assets/ADWhyDifferentSection.BjzpUcDj.js +++ b/docs/assets/ADWhyDifferentSection.BJRUSLg0.js @@ -1 +1 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{H as o}from"./hard-drive.BOIAI7X-.js";import{C as i}from"./code.BOyVoLRs.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.CJ67VFfW.js";import"./index.BaMLtrTp.js";const p=()=>{const t=[{icon:o,title:"Files stay on your machine",description:"No uploading spreadsheets to websites. DC reads your files locally and runs Python scripts right on your computerβ€”no context window limits."},{icon:i,title:"Real code, real calculations",description:"DC doesn't guess at your dataβ€”it writes Python scripts that run actual computations. You can see the code, verify the logic, and reuse it."}];return e.jsx("section",{className:"py-16 md:py-24 bg-gradient-to-b from-dc-card/30 to-background",children:e.jsx("div",{className:"container mx-auto max-w-4xl px-4 sm:px-6",children:e.jsx("div",{className:"grid md:grid-cols-2 gap-8",children:t.map((r,s)=>e.jsxs("div",{className:"p-6 rounded-xl border border-dc-border bg-dc-card hover:border-primary/30 transition-all",children:[e.jsx("div",{className:"w-12 h-12 rounded-xl bg-primary/10 border border-primary/20 flex items-center justify-center mb-4",children:e.jsx(r.icon,{className:"w-6 h-6 text-primary"})}),e.jsx("h3",{className:"text-xl font-semibold mb-3",children:r.title}),e.jsx("p",{className:"text-muted-foreground leading-relaxed",children:r.description})]},s))})})})};export{p as default}; +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{H as o}from"./hard-drive.DFcIH-f-.js";import{C as i}from"./code.Bsz77KQU.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.DnxMVFvH.js";import"./index.D_oLZvzW.js";const p=()=>{const t=[{icon:o,title:"Files stay on your machine",description:"No uploading spreadsheets to websites. DC reads your files locally and runs Python scripts right on your computerβ€”no context window limits."},{icon:i,title:"Real code, real calculations",description:"DC doesn't guess at your dataβ€”it writes Python scripts that run actual computations. You can see the code, verify the logic, and reuse it."}];return e.jsx("section",{className:"py-16 md:py-24 bg-gradient-to-b from-dc-card/30 to-background",children:e.jsx("div",{className:"container mx-auto max-w-4xl px-4 sm:px-6",children:e.jsx("div",{className:"grid md:grid-cols-2 gap-8",children:t.map((r,s)=>e.jsxs("div",{className:"p-6 rounded-xl border border-dc-border bg-dc-card hover:border-primary/30 transition-all",children:[e.jsx("div",{className:"w-12 h-12 rounded-xl bg-primary/10 border border-primary/20 flex items-center justify-center mb-4",children:e.jsx(r.icon,{className:"w-6 h-6 text-primary"})}),e.jsx("h3",{className:"text-xl font-semibold mb-3",children:r.title}),e.jsx("p",{className:"text-muted-foreground leading-relaxed",children:r.description})]},s))})})})};export{p as default}; diff --git a/docs/assets/BPCloudComparisonSection.bggvxlrF.js b/docs/assets/BPCloudComparisonSection.Cq8uvXOP.js similarity index 95% rename from docs/assets/BPCloudComparisonSection.bggvxlrF.js rename to docs/assets/BPCloudComparisonSection.Cq8uvXOP.js index 4bcd0a8b..4601a0b1 100644 --- a/docs/assets/BPCloudComparisonSection.bggvxlrF.js +++ b/docs/assets/BPCloudComparisonSection.Cq8uvXOP.js @@ -1,4 +1,4 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{c as r}from"./createLucideIcon.CJ67VFfW.js";import{F as i}from"./folder-open.xHIhBzFI.js";import{M as l}from"./message-square.bamY-dpJ.js";import"./index.yBjzXJbu.js";import"./index.BaMLtrTp.js";/** +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{c as r}from"./createLucideIcon.DnxMVFvH.js";import{F as i}from"./folder-open.Z1dzfNLE.js";import{M as l}from"./message-square.O0_WvyiX.js";import"./index.yBjzXJbu.js";import"./index.D_oLZvzW.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/BPComparisonSection.DJsSk-WK.js b/docs/assets/BPComparisonSection.CtpV9cpm.js similarity index 92% rename from docs/assets/BPComparisonSection.DJsSk-WK.js rename to docs/assets/BPComparisonSection.CtpV9cpm.js index a98c60e1..a4b9775b 100644 --- a/docs/assets/BPComparisonSection.DJsSk-WK.js +++ b/docs/assets/BPComparisonSection.CtpV9cpm.js @@ -1 +1 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{C as r}from"./circle-check-big.DKhWBpjr.js";import{C as a}from"./circle-x.C5ZnEmA8.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.CJ67VFfW.js";import"./index.BaMLtrTp.js";const h=()=>{const l=["Describe what you want in plain English","Get working code in minutes",'Iterate instantlyβ€”"make the button blue," "add a login page"','Git tracking and rollbackβ€”"commit this version," "roll back to yesterday"','Connect tools and servicesβ€”"set up Google Analytics for my project"',"Build locally, deploy when ready"],i=["Learn syntax, frameworks, and CLI commands first","Hours of tutorials and writing code manually","Copy-paste from Stack Overflow and pray it works","Manual Git commands (or no version control at all)"];return e.jsx("section",{className:"py-16 md:py-24",children:e.jsxs("div",{className:"container mx-auto max-w-6xl px-4 sm:px-6",children:[e.jsx("div",{className:"text-center mb-16",children:e.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-4",children:"With Desktop Commander vs. Without"})}),e.jsxs("div",{className:"grid lg:grid-cols-2 gap-8",children:[e.jsxs("div",{className:"flex items-start gap-4 p-6 rounded-xl bg-green-500/5 border-2 border-green-500/20",children:[e.jsx("div",{className:"shrink-0 w-12 h-12 rounded-full bg-green-500/10 flex items-center justify-center",children:e.jsx(r,{className:"w-6 h-6 text-green-400"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold mb-4 text-green-400",children:"With Desktop Commander"}),e.jsx("ul",{className:"space-y-3 text-muted-foreground",children:l.map((s,t)=>e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(r,{className:"w-4 h-4 text-green-400 mt-1 shrink-0"}),e.jsx("span",{children:s})]},t))})]})]}),e.jsxs("div",{className:"flex items-start gap-4 p-6 rounded-xl bg-red-500/5 border-2 border-red-500/20",children:[e.jsx("div",{className:"shrink-0 w-12 h-12 rounded-full bg-red-500/10 flex items-center justify-center",children:e.jsx(a,{className:"w-6 h-6 text-red-400"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold mb-4 text-red-400",children:"Without Desktop Commander"}),e.jsx("ul",{className:"space-y-3 text-muted-foreground",children:i.map((s,t)=>e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(a,{className:"w-4 h-4 text-red-400 mt-1 shrink-0"}),e.jsx("span",{children:s})]},t))})]})]})]})]})})};export{h as default}; +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{C as r}from"./circle-check-big.B7sFB_G4.js";import{C as a}from"./circle-x.FG6uLdJu.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.DnxMVFvH.js";import"./index.D_oLZvzW.js";const h=()=>{const l=["Describe what you want in plain English","Get working code in minutes",'Iterate instantlyβ€”"make the button blue," "add a login page"','Git tracking and rollbackβ€”"commit this version," "roll back to yesterday"','Connect tools and servicesβ€”"set up Google Analytics for my project"',"Build locally, deploy when ready"],i=["Learn syntax, frameworks, and CLI commands first","Hours of tutorials and writing code manually","Copy-paste from Stack Overflow and pray it works","Manual Git commands (or no version control at all)"];return e.jsx("section",{className:"py-16 md:py-24",children:e.jsxs("div",{className:"container mx-auto max-w-6xl px-4 sm:px-6",children:[e.jsx("div",{className:"text-center mb-16",children:e.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-4",children:"With Desktop Commander vs. Without"})}),e.jsxs("div",{className:"grid lg:grid-cols-2 gap-8",children:[e.jsxs("div",{className:"flex items-start gap-4 p-6 rounded-xl bg-green-500/5 border-2 border-green-500/20",children:[e.jsx("div",{className:"shrink-0 w-12 h-12 rounded-full bg-green-500/10 flex items-center justify-center",children:e.jsx(r,{className:"w-6 h-6 text-green-400"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold mb-4 text-green-400",children:"With Desktop Commander"}),e.jsx("ul",{className:"space-y-3 text-muted-foreground",children:l.map((s,t)=>e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(r,{className:"w-4 h-4 text-green-400 mt-1 shrink-0"}),e.jsx("span",{children:s})]},t))})]})]}),e.jsxs("div",{className:"flex items-start gap-4 p-6 rounded-xl bg-red-500/5 border-2 border-red-500/20",children:[e.jsx("div",{className:"shrink-0 w-12 h-12 rounded-full bg-red-500/10 flex items-center justify-center",children:e.jsx(a,{className:"w-6 h-6 text-red-400"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold mb-4 text-red-400",children:"Without Desktop Commander"}),e.jsx("ul",{className:"space-y-3 text-muted-foreground",children:i.map((s,t)=>e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(a,{className:"w-4 h-4 text-red-400 mt-1 shrink-0"}),e.jsx("span",{children:s})]},t))})]})]})]})]})})};export{h as default}; diff --git a/docs/assets/BPExamplesSection.Dp1TbhbL.js b/docs/assets/BPExamplesSection.DGHfYdgJ.js similarity index 87% rename from docs/assets/BPExamplesSection.Dp1TbhbL.js rename to docs/assets/BPExamplesSection.DGHfYdgJ.js index f2760352..f1ceb090 100644 --- a/docs/assets/BPExamplesSection.Dp1TbhbL.js +++ b/docs/assets/BPExamplesSection.DGHfYdgJ.js @@ -1,4 +1,4 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as a}from"./button.nz_ACiet.js";import{c as s}from"./createLucideIcon.CJ67VFfW.js";import{T as i}from"./terminal.CvJQ-WtW.js";import{L as n}from"./link.ILvXdQ4c.js";import{S as c}from"./server.pwsPfNtl.js";import{A as d}from"./arrow-right.B_EnXtAw.js";import"./index.yBjzXJbu.js";import"./index.BaMLtrTp.js";import"./utils.XhT4HDO9.js";/** +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as a}from"./button.D-OtCHTj.js";import{c as s}from"./createLucideIcon.DnxMVFvH.js";import{T as i}from"./terminal.BX6Ycj7A.js";import{L as n}from"./link.Coz5prEd.js";import{S as c}from"./server.2PNbSf_A.js";import{A as d}from"./arrow-right.DSKvTJYC.js";import"./index.yBjzXJbu.js";import"./index.D_oLZvzW.js";import"./utils.9Q5QEYED.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/BPFinalCTASection.BJT6Kw-S.js b/docs/assets/BPFinalCTASection.De_OxUJF.js similarity index 87% rename from docs/assets/BPFinalCTASection.BJT6Kw-S.js rename to docs/assets/BPFinalCTASection.De_OxUJF.js index e15f1f2f..361c46a5 100644 --- a/docs/assets/BPFinalCTASection.BJT6Kw-S.js +++ b/docs/assets/BPFinalCTASection.De_OxUJF.js @@ -1 +1 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as r}from"./button.nz_ACiet.js";import{A as t}from"./arrow-right.B_EnXtAw.js";import"./index.yBjzXJbu.js";import"./index.BaMLtrTp.js";import"./utils.XhT4HDO9.js";import"./createLucideIcon.CJ67VFfW.js";const x=()=>e.jsx("section",{className:"py-16 md:py-24",children:e.jsx("div",{className:"container mx-auto max-w-4xl px-4 sm:px-6",children:e.jsxs("div",{className:"bg-gradient-to-br from-primary/10 via-primary/5 to-transparent rounded-2xl border border-primary/20 p-8 md:p-12 text-center",children:[e.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-6",children:"Build things you never thought you could."}),e.jsx("p",{className:"text-lg md:text-xl text-muted-foreground mb-8 max-w-2xl mx-auto",children:"Desktop Commander removes the technical barriers between your concepts and working software."}),e.jsx("div",{className:"flex flex-col sm:flex-row gap-4 justify-center mb-8",children:e.jsx(r,{size:"lg",asChild:!0,className:"group",children:e.jsxs("a",{href:"/product/early-access/",children:["Join the Waitlist",e.jsx(t,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})})}),e.jsx("div",{className:"flex flex-col items-center gap-4 text-sm text-muted-foreground",children:e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx("span",{children:"Build locally"}),e.jsx("span",{className:"w-1 h-1 rounded-full bg-muted-foreground/50"}),e.jsx("span",{children:"Ship anywhere"})]})})]})})});export{x as default}; +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as r}from"./button.D-OtCHTj.js";import{A as t}from"./arrow-right.DSKvTJYC.js";import"./index.yBjzXJbu.js";import"./index.D_oLZvzW.js";import"./utils.9Q5QEYED.js";import"./createLucideIcon.DnxMVFvH.js";const x=()=>e.jsx("section",{className:"py-16 md:py-24",children:e.jsx("div",{className:"container mx-auto max-w-4xl px-4 sm:px-6",children:e.jsxs("div",{className:"bg-gradient-to-br from-primary/10 via-primary/5 to-transparent rounded-2xl border border-primary/20 p-8 md:p-12 text-center",children:[e.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-6",children:"Build things you never thought you could."}),e.jsx("p",{className:"text-lg md:text-xl text-muted-foreground mb-8 max-w-2xl mx-auto",children:"Desktop Commander removes the technical barriers between your concepts and working software."}),e.jsx("div",{className:"flex flex-col sm:flex-row gap-4 justify-center mb-8",children:e.jsx(r,{size:"lg",asChild:!0,className:"group",children:e.jsxs("a",{href:"/product/early-access/",children:["Join the Waitlist",e.jsx(t,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})})}),e.jsx("div",{className:"flex flex-col items-center gap-4 text-sm text-muted-foreground",children:e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx("span",{children:"Build locally"}),e.jsx("span",{className:"w-1 h-1 rounded-full bg-muted-foreground/50"}),e.jsx("span",{children:"Ship anywhere"})]})})]})})});export{x as default}; diff --git a/docs/assets/BPHeroSection.DdTuKaQZ.js b/docs/assets/BPHeroSection.BILB6rsu.js similarity index 90% rename from docs/assets/BPHeroSection.DdTuKaQZ.js rename to docs/assets/BPHeroSection.BILB6rsu.js index becfeca1..dac12e8d 100644 --- a/docs/assets/BPHeroSection.DdTuKaQZ.js +++ b/docs/assets/BPHeroSection.BILB6rsu.js @@ -1 +1 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as r}from"./button.nz_ACiet.js";import{A as s}from"./arrow-right.B_EnXtAw.js";import"./index.yBjzXJbu.js";import"./index.BaMLtrTp.js";import"./utils.XhT4HDO9.js";import"./createLucideIcon.CJ67VFfW.js";const n=()=>e.jsx("section",{className:"pt-32 pb-16 md:pt-40 md:pb-20",children:e.jsx("div",{className:"container mx-auto max-w-6xl px-4 sm:px-6",children:e.jsxs("div",{className:"flex flex-col items-center text-center space-y-8",children:[e.jsxs("h1",{className:"text-4xl sm:text-5xl lg:text-6xl font-bold tracking-tight max-w-4xl",children:["Build software ",e.jsx("span",{className:"text-primary",children:"without learning how to code"})]}),e.jsx("p",{className:"text-lg sm:text-xl text-muted-foreground max-w-3xl leading-relaxed",children:"Describe what you want to buildβ€”AI writes the code, saves it locally, and you own every file."}),e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-3 pt-2",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:"Works with:"}),e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-2",children:[e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"Python"}),e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"JavaScript"}),e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"HTML/CSS"}),e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"Git"}),e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"Terminal"})]})]}),e.jsx("div",{className:"flex flex-col sm:flex-row gap-4 pt-4",children:e.jsx(r,{size:"lg",asChild:!0,className:"group",children:e.jsxs("a",{href:"/product/early-access/",children:["Join the Waitlist",e.jsx(s,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})})})]})})});export{n as default}; +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as r}from"./button.D-OtCHTj.js";import{A as s}from"./arrow-right.DSKvTJYC.js";import"./index.yBjzXJbu.js";import"./index.D_oLZvzW.js";import"./utils.9Q5QEYED.js";import"./createLucideIcon.DnxMVFvH.js";const n=()=>e.jsx("section",{className:"pt-32 pb-16 md:pt-40 md:pb-20",children:e.jsx("div",{className:"container mx-auto max-w-6xl px-4 sm:px-6",children:e.jsxs("div",{className:"flex flex-col items-center text-center space-y-8",children:[e.jsxs("h1",{className:"text-4xl sm:text-5xl lg:text-6xl font-bold tracking-tight max-w-4xl",children:["Build software ",e.jsx("span",{className:"text-primary",children:"without learning how to code"})]}),e.jsx("p",{className:"text-lg sm:text-xl text-muted-foreground max-w-3xl leading-relaxed",children:"Describe what you want to buildβ€”AI writes the code, saves it locally, and you own every file."}),e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-3 pt-2",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:"Works with:"}),e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-2",children:[e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"Python"}),e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"JavaScript"}),e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"HTML/CSS"}),e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"Git"}),e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"Terminal"})]})]}),e.jsx("div",{className:"flex flex-col sm:flex-row gap-4 pt-4",children:e.jsx(r,{size:"lg",asChild:!0,className:"group",children:e.jsxs("a",{href:"/product/early-access/",children:["Join the Waitlist",e.jsx(s,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})})})]})})});export{n as default}; diff --git a/docs/assets/BPPersonasSection.BIYAJlxQ.js b/docs/assets/BPPersonasSection.5v4XbeH6.js similarity index 94% rename from docs/assets/BPPersonasSection.BIYAJlxQ.js rename to docs/assets/BPPersonasSection.5v4XbeH6.js index e69722ed..957a3ae3 100644 --- a/docs/assets/BPPersonasSection.BIYAJlxQ.js +++ b/docs/assets/BPPersonasSection.5v4XbeH6.js @@ -1,4 +1,4 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{R as n}from"./rocket.DJM_PiJ5.js";import{B as a}from"./briefcase.DXgbkgD4.js";import{c as d}from"./createLucideIcon.CJ67VFfW.js";import"./index.yBjzXJbu.js";import"./index.BaMLtrTp.js";/** +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{R as n}from"./rocket.DnXnYW1j.js";import{B as a}from"./briefcase.BgtLLFHo.js";import{c as d}from"./createLucideIcon.DnxMVFvH.js";import"./index.yBjzXJbu.js";import"./index.D_oLZvzW.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/BPProblemSection.Id6WOGBS.js b/docs/assets/BPProblemSection.BJ1Lybz2.js similarity index 88% rename from docs/assets/BPProblemSection.Id6WOGBS.js rename to docs/assets/BPProblemSection.BJ1Lybz2.js index 21e3cb91..3716321b 100644 --- a/docs/assets/BPProblemSection.Id6WOGBS.js +++ b/docs/assets/BPProblemSection.BJ1Lybz2.js @@ -1 +1 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{C as s}from"./circle-alert.BAM225Eq.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.CJ67VFfW.js";import"./index.BaMLtrTp.js";const i=()=>e.jsx("section",{className:"py-16 md:py-20",children:e.jsx("div",{className:"container mx-auto max-w-5xl px-4 sm:px-6",children:e.jsxs("div",{className:"bg-gradient-to-br from-dc-card to-dc-surface rounded-2xl border border-dc-border p-8 md:p-12",children:[e.jsxs("div",{className:"flex items-start gap-4 mb-6",children:[e.jsx("div",{className:"p-3 rounded-xl bg-destructive/10 border border-destructive/20",children:e.jsx(s,{className:"w-6 h-6 text-destructive"})}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold",children:"Technical barriers shouldn't stop you from building stuff."})]}),e.jsx("p",{className:"text-xl text-muted-foreground leading-relaxed",children:"Every founder has automation ideas, app concepts, and workflows that could save hours. But CLIs feel cryptic, deployment seems scary, and hiring a developer for a quick script doesn't make sense. So the ideas stay ideas."})]})})});export{i as default}; +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{C as s}from"./circle-alert.DXvzqdgU.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.DnxMVFvH.js";import"./index.D_oLZvzW.js";const i=()=>e.jsx("section",{className:"py-16 md:py-20",children:e.jsx("div",{className:"container mx-auto max-w-5xl px-4 sm:px-6",children:e.jsxs("div",{className:"bg-gradient-to-br from-dc-card to-dc-surface rounded-2xl border border-dc-border p-8 md:p-12",children:[e.jsxs("div",{className:"flex items-start gap-4 mb-6",children:[e.jsx("div",{className:"p-3 rounded-xl bg-destructive/10 border border-destructive/20",children:e.jsx(s,{className:"w-6 h-6 text-destructive"})}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold",children:"Technical barriers shouldn't stop you from building stuff."})]}),e.jsx("p",{className:"text-xl text-muted-foreground leading-relaxed",children:"Every founder has automation ideas, app concepts, and workflows that could save hours. But CLIs feel cryptic, deployment seems scary, and hiring a developer for a quick script doesn't make sense. So the ideas stay ideas."})]})})});export{i as default}; diff --git a/docs/assets/BPSolutionSection.2cFPr8ZQ.js b/docs/assets/BPSolutionSection.jjsMlvdE.js similarity index 93% rename from docs/assets/BPSolutionSection.2cFPr8ZQ.js rename to docs/assets/BPSolutionSection.jjsMlvdE.js index 47a3cfe8..9fc2bd47 100644 --- a/docs/assets/BPSolutionSection.2cFPr8ZQ.js +++ b/docs/assets/BPSolutionSection.jjsMlvdE.js @@ -1 +1 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{C as s}from"./code.BOyVoLRs.js";import{L as a}from"./link.ILvXdQ4c.js";import{R as i}from"./rocket.DJM_PiJ5.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.CJ67VFfW.js";import"./index.BaMLtrTp.js";const x=()=>{const o=[{title:"Build without learning to code",description:"Create functional apps, sites, and scriptsβ€”skip the technical learning curve and just build.",icon:s},{title:"Connect the services you need",description:"Integrate APIs, databases, and third-party appsβ€”just describe what should talk to what.",icon:a},{title:"Deploy without the complexity",description:"Track changes in Git, deploy to GitHub Pages or anywhere elseβ€”no commands to memorize.",icon:i}];return e.jsx("section",{className:"py-16 md:py-24 bg-gradient-to-b from-background to-dc-card/30",children:e.jsxs("div",{className:"container mx-auto max-w-6xl px-4 sm:px-6",children:[e.jsxs("div",{className:"text-center mb-16",children:[e.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-6",children:"Desktop Commander turns plain English into working code on your machine."}),e.jsx("p",{className:"text-xl text-muted-foreground max-w-3xl mx-auto",children:"It fills the gaps in your technical skills and lets you build like a full-stack developer."})]}),e.jsx("div",{className:"grid md:grid-cols-3 gap-8 mb-12",children:o.map((t,r)=>e.jsxs("div",{className:"p-8 rounded-2xl bg-gradient-to-b from-dc-surface to-dc-card border-2 border-dc-border hover:border-primary/50 transition-colors text-center",children:[e.jsx("div",{className:"w-16 h-16 rounded-2xl bg-primary/10 border border-primary/20 flex items-center justify-center mx-auto mb-6",children:e.jsx(t.icon,{className:"w-8 h-8 text-primary"})}),e.jsx("h3",{className:"text-xl font-semibold mb-3",children:t.title}),e.jsx("p",{className:"text-muted-foreground leading-relaxed",children:t.description})]},r))}),e.jsx("div",{className:"text-center mb-16 p-6 rounded-xl bg-primary/5 border border-primary/20",children:e.jsxs("p",{className:"text-xl md:text-2xl font-medium",children:[e.jsx("span",{className:"text-primary font-bold",children:"70% of users"})," save 3+ hours per week with Desktop Commander"]})}),e.jsx("div",{className:"relative aspect-video rounded-xl border border-dc-border bg-dc-surface overflow-hidden max-w-4xl mx-auto shadow-lg",children:e.jsxs("video",{className:"w-full h-full object-cover",autoPlay:!0,loop:!0,muted:!0,playsInline:!0,"aria-label":"Desktop Commander build prototype demo - showing how to create software using natural language",title:"Build software with natural language - Desktop Commander demo",children:[e.jsx("source",{src:"/videos/build-prototype-demo.mov",type:"video/quicktime"}),e.jsx("source",{src:"/videos/build-prototype-demo.mov",type:"video/mp4"}),e.jsxs("p",{className:"text-muted-foreground",children:["Your browser does not support the video tag. ",e.jsx("a",{href:"/videos/build-prototype-demo.mov",className:"text-primary hover:underline",children:"Download the demo video"})]})]})})]})})};export{x as default}; +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{C as s}from"./code.Bsz77KQU.js";import{L as a}from"./link.Coz5prEd.js";import{R as i}from"./rocket.DnXnYW1j.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.DnxMVFvH.js";import"./index.D_oLZvzW.js";const x=()=>{const o=[{title:"Build without learning to code",description:"Create functional apps, sites, and scriptsβ€”skip the technical learning curve and just build.",icon:s},{title:"Connect the services you need",description:"Integrate APIs, databases, and third-party appsβ€”just describe what should talk to what.",icon:a},{title:"Deploy without the complexity",description:"Track changes in Git, deploy to GitHub Pages or anywhere elseβ€”no commands to memorize.",icon:i}];return e.jsx("section",{className:"py-16 md:py-24 bg-gradient-to-b from-background to-dc-card/30",children:e.jsxs("div",{className:"container mx-auto max-w-6xl px-4 sm:px-6",children:[e.jsxs("div",{className:"text-center mb-16",children:[e.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-6",children:"Desktop Commander turns plain English into working code on your machine."}),e.jsx("p",{className:"text-xl text-muted-foreground max-w-3xl mx-auto",children:"It fills the gaps in your technical skills and lets you build like a full-stack developer."})]}),e.jsx("div",{className:"grid md:grid-cols-3 gap-8 mb-12",children:o.map((t,r)=>e.jsxs("div",{className:"p-8 rounded-2xl bg-gradient-to-b from-dc-surface to-dc-card border-2 border-dc-border hover:border-primary/50 transition-colors text-center",children:[e.jsx("div",{className:"w-16 h-16 rounded-2xl bg-primary/10 border border-primary/20 flex items-center justify-center mx-auto mb-6",children:e.jsx(t.icon,{className:"w-8 h-8 text-primary"})}),e.jsx("h3",{className:"text-xl font-semibold mb-3",children:t.title}),e.jsx("p",{className:"text-muted-foreground leading-relaxed",children:t.description})]},r))}),e.jsx("div",{className:"text-center mb-16 p-6 rounded-xl bg-primary/5 border border-primary/20",children:e.jsxs("p",{className:"text-xl md:text-2xl font-medium",children:[e.jsx("span",{className:"text-primary font-bold",children:"70% of users"})," save 3+ hours per week with Desktop Commander"]})}),e.jsx("div",{className:"relative aspect-video rounded-xl border border-dc-border bg-dc-surface overflow-hidden max-w-4xl mx-auto shadow-lg",children:e.jsxs("video",{className:"w-full h-full object-cover",autoPlay:!0,loop:!0,muted:!0,playsInline:!0,"aria-label":"Desktop Commander build prototype demo - showing how to create software using natural language",title:"Build software with natural language - Desktop Commander demo",children:[e.jsx("source",{src:"/videos/build-prototype-demo.mov",type:"video/quicktime"}),e.jsx("source",{src:"/videos/build-prototype-demo.mov",type:"video/mp4"}),e.jsxs("p",{className:"text-muted-foreground",children:["Your browser does not support the video tag. ",e.jsx("a",{href:"/videos/build-prototype-demo.mov",className:"text-primary hover:underline",children:"Download the demo video"})]})]})})]})})};export{x as default}; diff --git a/docs/assets/BPWhyDifferentSection._bBFGqiF.js b/docs/assets/BPWhyDifferentSection.ClpmdNyW.js similarity index 91% rename from docs/assets/BPWhyDifferentSection._bBFGqiF.js rename to docs/assets/BPWhyDifferentSection.ClpmdNyW.js index 3bb94cb5..ca5a1054 100644 --- a/docs/assets/BPWhyDifferentSection._bBFGqiF.js +++ b/docs/assets/BPWhyDifferentSection.ClpmdNyW.js @@ -1,4 +1,4 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{H as a}from"./hard-drive.BOIAI7X-.js";import{G as i}from"./git-branch.CCosX0mk.js";import{c as s}from"./createLucideIcon.CJ67VFfW.js";import"./index.yBjzXJbu.js";import"./index.BaMLtrTp.js";/** +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{H as a}from"./hard-drive.DFcIH-f-.js";import{G as i}from"./git-branch.B8v1eTjD.js";import{c as s}from"./createLucideIcon.DnxMVFvH.js";import"./index.yBjzXJbu.js";import"./index.D_oLZvzW.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/Blog.1eFW1YFV.js b/docs/assets/Blog.CfoikpaK.js similarity index 98% rename from docs/assets/Blog.1eFW1YFV.js rename to docs/assets/Blog.CfoikpaK.js index ff8c330f..9815089b 100644 --- a/docs/assets/Blog.1eFW1YFV.js +++ b/docs/assets/Blog.CfoikpaK.js @@ -1,4 +1,4 @@ -import{j as v}from"./jsx-runtime.D3GSbgeI.js";import{C as de,c as me}from"./card.BQ_O-TaV.js";import{r as P}from"./index.BaMLtrTp.js";import{g as pe}from"./assets.3QAGYiLk.js";import{f as he}from"./tracking.znU5Ou_b.js";import{a as ht}from"./utils.XhT4HDO9.js";import{B as qt}from"./button.nz_ACiet.js";import{c as ge}from"./createLucideIcon.CJ67VFfW.js";import{A as be}from"./arrow-right.B_EnXtAw.js";import{E as xe}from"./external-link.BigcEWhC.js";import"./index.yBjzXJbu.js";/** +import{j as v}from"./jsx-runtime.D3GSbgeI.js";import{C as de,c as me}from"./card.tb19JS-_.js";import{r as P}from"./index.D_oLZvzW.js";import{g as pe}from"./assets.3QAGYiLk.js";import{f as he}from"./tracking.znU5Ou_b.js";import{a as ht}from"./utils.9Q5QEYED.js";import{B as qt}from"./button.D-OtCHTj.js";import{c as ge}from"./createLucideIcon.DnxMVFvH.js";import{A as be}from"./arrow-right.DSKvTJYC.js";import{E as xe}from"./external-link.DsSVi18J.js";import"./index.yBjzXJbu.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/CAComparisonSection.DLfOC3rE.js b/docs/assets/CAComparisonSection.DXDN9EIc.js similarity index 91% rename from docs/assets/CAComparisonSection.DLfOC3rE.js rename to docs/assets/CAComparisonSection.DXDN9EIc.js index 098a9ed1..a5771b07 100644 --- a/docs/assets/CAComparisonSection.DLfOC3rE.js +++ b/docs/assets/CAComparisonSection.DXDN9EIc.js @@ -1 +1 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{C as r}from"./circle-check-big.DKhWBpjr.js";import{C as a}from"./circle-x.C5ZnEmA8.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.CJ67VFfW.js";import"./index.BaMLtrTp.js";const h=()=>{const l=["One conversation to control all your tools","Ask for data in plain English","Save 3+ hours every week on dashboard navigation","Automate across services without code","No UI to learn, no tabs to manage"],o=["Switch between 10+ dashboards daily","Click through menus to find what you need","Export/import data between tools manually","Learn each platform's interface separately"];return e.jsx("section",{className:"py-16 md:py-24 bg-gradient-to-b from-background to-dc-card/30",children:e.jsxs("div",{className:"container mx-auto max-w-6xl px-4 sm:px-6",children:[e.jsx("div",{className:"text-center mb-16",children:e.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-4",children:"With Desktop Commander vs. Without"})}),e.jsxs("div",{className:"grid lg:grid-cols-2 gap-8",children:[e.jsxs("div",{className:"flex items-start gap-4 p-6 rounded-xl bg-green-500/5 border-2 border-green-500/20",children:[e.jsx("div",{className:"shrink-0 w-12 h-12 rounded-full bg-green-500/10 flex items-center justify-center",children:e.jsx(r,{className:"w-6 h-6 text-green-400"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold mb-4 text-green-400",children:"With Desktop Commander"}),e.jsx("ul",{className:"space-y-3 text-muted-foreground",children:l.map((s,t)=>e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(r,{className:"w-4 h-4 text-green-400 mt-1 shrink-0"}),e.jsx("span",{children:s})]},t))})]})]}),e.jsxs("div",{className:"flex items-start gap-4 p-6 rounded-xl bg-red-500/5 border-2 border-red-500/20",children:[e.jsx("div",{className:"shrink-0 w-12 h-12 rounded-full bg-red-500/10 flex items-center justify-center",children:e.jsx(a,{className:"w-6 h-6 text-red-400"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold mb-4 text-red-400",children:"Without Desktop Commander"}),e.jsx("ul",{className:"space-y-3 text-muted-foreground",children:o.map((s,t)=>e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(a,{className:"w-4 h-4 text-red-400 mt-1 shrink-0"}),e.jsx("span",{children:s})]},t))})]})]})]})]})})};export{h as default}; +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{C as r}from"./circle-check-big.B7sFB_G4.js";import{C as a}from"./circle-x.FG6uLdJu.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.DnxMVFvH.js";import"./index.D_oLZvzW.js";const h=()=>{const l=["One conversation to control all your tools","Ask for data in plain English","Save 3+ hours every week on dashboard navigation","Automate across services without code","No UI to learn, no tabs to manage"],o=["Switch between 10+ dashboards daily","Click through menus to find what you need","Export/import data between tools manually","Learn each platform's interface separately"];return e.jsx("section",{className:"py-16 md:py-24 bg-gradient-to-b from-background to-dc-card/30",children:e.jsxs("div",{className:"container mx-auto max-w-6xl px-4 sm:px-6",children:[e.jsx("div",{className:"text-center mb-16",children:e.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-4",children:"With Desktop Commander vs. Without"})}),e.jsxs("div",{className:"grid lg:grid-cols-2 gap-8",children:[e.jsxs("div",{className:"flex items-start gap-4 p-6 rounded-xl bg-green-500/5 border-2 border-green-500/20",children:[e.jsx("div",{className:"shrink-0 w-12 h-12 rounded-full bg-green-500/10 flex items-center justify-center",children:e.jsx(r,{className:"w-6 h-6 text-green-400"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold mb-4 text-green-400",children:"With Desktop Commander"}),e.jsx("ul",{className:"space-y-3 text-muted-foreground",children:l.map((s,t)=>e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(r,{className:"w-4 h-4 text-green-400 mt-1 shrink-0"}),e.jsx("span",{children:s})]},t))})]})]}),e.jsxs("div",{className:"flex items-start gap-4 p-6 rounded-xl bg-red-500/5 border-2 border-red-500/20",children:[e.jsx("div",{className:"shrink-0 w-12 h-12 rounded-full bg-red-500/10 flex items-center justify-center",children:e.jsx(a,{className:"w-6 h-6 text-red-400"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold mb-4 text-red-400",children:"Without Desktop Commander"}),e.jsx("ul",{className:"space-y-3 text-muted-foreground",children:o.map((s,t)=>e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(a,{className:"w-4 h-4 text-red-400 mt-1 shrink-0"}),e.jsx("span",{children:s})]},t))})]})]})]})]})})};export{h as default}; diff --git a/docs/assets/CAExamplesSection.BPHv1C80.js b/docs/assets/CAExamplesSection.C-iuVTWx.js similarity index 84% rename from docs/assets/CAExamplesSection.BPHv1C80.js rename to docs/assets/CAExamplesSection.C-iuVTWx.js index d6ccc426..246f43cf 100644 --- a/docs/assets/CAExamplesSection.BPHv1C80.js +++ b/docs/assets/CAExamplesSection.C-iuVTWx.js @@ -1 +1 @@ -import{j as t}from"./jsx-runtime.D3GSbgeI.js";import{B as o}from"./button.nz_ACiet.js";import{I as a}from"./info.BKH_R1lK.js";import{U as i}from"./users.DbVrsKHo.js";import{F as n}from"./file-text.DlCSEU1L.js";import{C as d}from"./chart-column.BMc3CsP9.js";import{G as c}from"./git-branch.CCosX0mk.js";import{A as m}from"./arrow-right.B_EnXtAw.js";import"./index.yBjzXJbu.js";import"./index.BaMLtrTp.js";import"./utils.XhT4HDO9.js";import"./createLucideIcon.CJ67VFfW.js";const v=()=>{const r=[{title:"Manage your CRM without opening HubSpot",description:"Create contacts, update deals, pull reports β€” all from chat.",command:"Show me all deals closing this month over $10k",icon:i},{title:"Publish content without touching WordPress",description:"Write, edit, and publish β€” without navigating the admin panel.",command:"Publish my draft post about product updates and schedule it for Monday 9am",icon:n},{title:"Get analytics insights without the dashboards",description:"Ask questions about your data instead of building reports.",command:"What were my top 5 traffic sources last week?",icon:d},{title:"Version control without learning Git commands",description:"Commit, branch, and push β€” in plain English.",command:"Commit these changes with message 'Fixed pricing page' and push to main",icon:c}];return t.jsx("section",{className:"py-16 md:py-24 bg-gradient-to-b from-dc-card/30 to-background",children:t.jsxs("div",{className:"container mx-auto max-w-4xl px-4 sm:px-6",children:[t.jsxs("div",{className:"text-center mb-12",children:[t.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-4",children:"What You Can Do"}),t.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-2 rounded-full bg-dc-surface border border-dc-border text-sm text-muted-foreground",children:[t.jsx(a,{className:"w-4 h-4"}),t.jsx("span",{children:"Install an integration, then control it through chat"})]})]}),t.jsx("div",{className:"space-y-8",children:r.map((e,s)=>t.jsxs("div",{className:"p-8 rounded-2xl border border-dc-border bg-dc-card",children:[t.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[t.jsx("div",{className:"p-2.5 rounded-lg bg-primary/10 border border-primary/20",children:t.jsx(e.icon,{className:"w-5 h-5 text-primary"})}),t.jsx("h3",{className:"text-2xl font-semibold",children:e.title})]}),t.jsx("p",{className:"text-lg text-muted-foreground mb-6",children:e.description}),t.jsxs("div",{className:"p-4 rounded-lg bg-dc-surface border border-dc-border font-mono text-sm",children:['"',e.command,'"']})]},s))}),t.jsx("div",{className:"text-center pt-12",children:t.jsx(o,{variant:"outline",size:"lg",asChild:!0,className:"group",children:t.jsxs("a",{href:"/library/",children:["Explore More Commands",t.jsx(m,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})})})]})})};export{v as default}; +import{j as t}from"./jsx-runtime.D3GSbgeI.js";import{B as o}from"./button.D-OtCHTj.js";import{I as a}from"./info.DkfeuojL.js";import{U as i}from"./users.8W-rffO0.js";import{F as n}from"./file-text.CAYOOP65.js";import{C as d}from"./chart-column.OLWkJ9on.js";import{G as c}from"./git-branch.B8v1eTjD.js";import{A as m}from"./arrow-right.DSKvTJYC.js";import"./index.yBjzXJbu.js";import"./index.D_oLZvzW.js";import"./utils.9Q5QEYED.js";import"./createLucideIcon.DnxMVFvH.js";const v=()=>{const r=[{title:"Manage your CRM without opening HubSpot",description:"Create contacts, update deals, pull reports β€” all from chat.",command:"Show me all deals closing this month over $10k",icon:i},{title:"Publish content without touching WordPress",description:"Write, edit, and publish β€” without navigating the admin panel.",command:"Publish my draft post about product updates and schedule it for Monday 9am",icon:n},{title:"Get analytics insights without the dashboards",description:"Ask questions about your data instead of building reports.",command:"What were my top 5 traffic sources last week?",icon:d},{title:"Version control without learning Git commands",description:"Commit, branch, and push β€” in plain English.",command:"Commit these changes with message 'Fixed pricing page' and push to main",icon:c}];return t.jsx("section",{className:"py-16 md:py-24 bg-gradient-to-b from-dc-card/30 to-background",children:t.jsxs("div",{className:"container mx-auto max-w-4xl px-4 sm:px-6",children:[t.jsxs("div",{className:"text-center mb-12",children:[t.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-4",children:"What You Can Do"}),t.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-2 rounded-full bg-dc-surface border border-dc-border text-sm text-muted-foreground",children:[t.jsx(a,{className:"w-4 h-4"}),t.jsx("span",{children:"Install an integration, then control it through chat"})]})]}),t.jsx("div",{className:"space-y-8",children:r.map((e,s)=>t.jsxs("div",{className:"p-8 rounded-2xl border border-dc-border bg-dc-card",children:[t.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[t.jsx("div",{className:"p-2.5 rounded-lg bg-primary/10 border border-primary/20",children:t.jsx(e.icon,{className:"w-5 h-5 text-primary"})}),t.jsx("h3",{className:"text-2xl font-semibold",children:e.title})]}),t.jsx("p",{className:"text-lg text-muted-foreground mb-6",children:e.description}),t.jsxs("div",{className:"p-4 rounded-lg bg-dc-surface border border-dc-border font-mono text-sm",children:['"',e.command,'"']})]},s))}),t.jsx("div",{className:"text-center pt-12",children:t.jsx(o,{variant:"outline",size:"lg",asChild:!0,className:"group",children:t.jsxs("a",{href:"/library/",children:["Explore More Commands",t.jsx(m,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})})})]})})};export{v as default}; diff --git a/docs/assets/CAFinalCTASection.BUOcoyd3.js b/docs/assets/CAFinalCTASection.DEweKb47.js similarity index 87% rename from docs/assets/CAFinalCTASection.BUOcoyd3.js rename to docs/assets/CAFinalCTASection.DEweKb47.js index 47e45b33..1ffc9715 100644 --- a/docs/assets/CAFinalCTASection.BUOcoyd3.js +++ b/docs/assets/CAFinalCTASection.DEweKb47.js @@ -1 +1 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as r}from"./button.nz_ACiet.js";import{A as t}from"./arrow-right.B_EnXtAw.js";import"./index.yBjzXJbu.js";import"./index.BaMLtrTp.js";import"./utils.XhT4HDO9.js";import"./createLucideIcon.CJ67VFfW.js";const x=()=>e.jsx("section",{className:"py-16 md:py-24",children:e.jsx("div",{className:"container mx-auto max-w-4xl px-4 sm:px-6",children:e.jsxs("div",{className:"bg-gradient-to-br from-primary/10 via-primary/5 to-transparent rounded-2xl border border-primary/20 p-8 md:p-12 text-center",children:[e.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-6",children:"Stop switching tabs. Start saving hours."}),e.jsx("p",{className:"text-lg md:text-xl text-muted-foreground mb-8 max-w-2xl mx-auto",children:"70% of Desktop Commander users save 3+ hours per week. Connect your tools and control your entire stack through conversation."}),e.jsx("div",{className:"flex flex-col sm:flex-row gap-4 justify-center mb-8",children:e.jsx(r,{size:"lg",asChild:!0,className:"group",children:e.jsxs("a",{href:"/product/early-access/",children:["Join the Waitlist",e.jsx(t,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})})}),e.jsx("div",{className:"flex flex-col items-center gap-4 text-sm text-muted-foreground",children:e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx("span",{children:"One chat"}),e.jsx("span",{className:"w-1 h-1 rounded-full bg-muted-foreground/50"}),e.jsx("span",{children:"All your tools"})]})})]})})});export{x as default}; +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as r}from"./button.D-OtCHTj.js";import{A as t}from"./arrow-right.DSKvTJYC.js";import"./index.yBjzXJbu.js";import"./index.D_oLZvzW.js";import"./utils.9Q5QEYED.js";import"./createLucideIcon.DnxMVFvH.js";const x=()=>e.jsx("section",{className:"py-16 md:py-24",children:e.jsx("div",{className:"container mx-auto max-w-4xl px-4 sm:px-6",children:e.jsxs("div",{className:"bg-gradient-to-br from-primary/10 via-primary/5 to-transparent rounded-2xl border border-primary/20 p-8 md:p-12 text-center",children:[e.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-6",children:"Stop switching tabs. Start saving hours."}),e.jsx("p",{className:"text-lg md:text-xl text-muted-foreground mb-8 max-w-2xl mx-auto",children:"70% of Desktop Commander users save 3+ hours per week. Connect your tools and control your entire stack through conversation."}),e.jsx("div",{className:"flex flex-col sm:flex-row gap-4 justify-center mb-8",children:e.jsx(r,{size:"lg",asChild:!0,className:"group",children:e.jsxs("a",{href:"/product/early-access/",children:["Join the Waitlist",e.jsx(t,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})})}),e.jsx("div",{className:"flex flex-col items-center gap-4 text-sm text-muted-foreground",children:e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx("span",{children:"One chat"}),e.jsx("span",{className:"w-1 h-1 rounded-full bg-muted-foreground/50"}),e.jsx("span",{children:"All your tools"})]})})]})})});export{x as default}; diff --git a/docs/assets/CAHeroSection.B76qJCB_.js b/docs/assets/CAHeroSection.BudrxasX.js similarity index 91% rename from docs/assets/CAHeroSection.B76qJCB_.js rename to docs/assets/CAHeroSection.BudrxasX.js index 09fb77bb..b03f371e 100644 --- a/docs/assets/CAHeroSection.B76qJCB_.js +++ b/docs/assets/CAHeroSection.BudrxasX.js @@ -1 +1 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as r}from"./button.nz_ACiet.js";import{A as s}from"./arrow-right.B_EnXtAw.js";import"./index.yBjzXJbu.js";import"./index.BaMLtrTp.js";import"./utils.XhT4HDO9.js";import"./createLucideIcon.CJ67VFfW.js";const m=()=>e.jsx("section",{className:"pt-32 pb-16 md:pt-40 md:pb-20",children:e.jsx("div",{className:"container mx-auto max-w-6xl px-4 sm:px-6",children:e.jsxs("div",{className:"flex flex-col items-center text-center space-y-8",children:[e.jsxs("h1",{className:"text-4xl sm:text-5xl lg:text-6xl font-bold tracking-tight max-w-4xl",children:["Control your apps and services ",e.jsx("span",{className:"text-primary",children:"through chat"})]}),e.jsx("p",{className:"text-lg sm:text-xl text-muted-foreground max-w-3xl leading-relaxed",children:"Connect Desktop Commander to 100+ tools you already use. Manage your CRM, publish content, check analytics, and more β€” all in natural language."}),e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-3 pt-2",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:"Works with:"}),e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-2",children:[e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"HubSpot"}),e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"WordPress"}),e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"Google Analytics"}),e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"GitHub"}),e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"Ahrefs"}),e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"+ 100 more"})]})]}),e.jsx("div",{className:"flex flex-col sm:flex-row gap-4 pt-4",children:e.jsx(r,{size:"lg",asChild:!0,className:"group",children:e.jsxs("a",{href:"/product/early-access/",children:["Join the Waitlist",e.jsx(s,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})})})]})})});export{m as default}; +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as r}from"./button.D-OtCHTj.js";import{A as s}from"./arrow-right.DSKvTJYC.js";import"./index.yBjzXJbu.js";import"./index.D_oLZvzW.js";import"./utils.9Q5QEYED.js";import"./createLucideIcon.DnxMVFvH.js";const m=()=>e.jsx("section",{className:"pt-32 pb-16 md:pt-40 md:pb-20",children:e.jsx("div",{className:"container mx-auto max-w-6xl px-4 sm:px-6",children:e.jsxs("div",{className:"flex flex-col items-center text-center space-y-8",children:[e.jsxs("h1",{className:"text-4xl sm:text-5xl lg:text-6xl font-bold tracking-tight max-w-4xl",children:["Control your apps and services ",e.jsx("span",{className:"text-primary",children:"through chat"})]}),e.jsx("p",{className:"text-lg sm:text-xl text-muted-foreground max-w-3xl leading-relaxed",children:"Connect Desktop Commander to 100+ tools you already use. Manage your CRM, publish content, check analytics, and more β€” all in natural language."}),e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-3 pt-2",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:"Works with:"}),e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-2",children:[e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"HubSpot"}),e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"WordPress"}),e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"Google Analytics"}),e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"GitHub"}),e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"Ahrefs"}),e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"+ 100 more"})]})]}),e.jsx("div",{className:"flex flex-col sm:flex-row gap-4 pt-4",children:e.jsx(r,{size:"lg",asChild:!0,className:"group",children:e.jsxs("a",{href:"/product/early-access/",children:["Join the Waitlist",e.jsx(s,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})})})]})})});export{m as default}; diff --git a/docs/assets/CAHowItWorksSection.hAHiZQ8j.js b/docs/assets/CAHowItWorksSection.BvU1hqFz.js similarity index 90% rename from docs/assets/CAHowItWorksSection.hAHiZQ8j.js rename to docs/assets/CAHowItWorksSection.BvU1hqFz.js index 9ebb9d74..55e669eb 100644 --- a/docs/assets/CAHowItWorksSection.hAHiZQ8j.js +++ b/docs/assets/CAHowItWorksSection.BvU1hqFz.js @@ -1 +1 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as a}from"./button.nz_ACiet.js";import{A as i}from"./arrow-right.B_EnXtAw.js";import"./index.yBjzXJbu.js";import"./index.BaMLtrTp.js";import"./utils.XhT4HDO9.js";import"./createLucideIcon.CJ67VFfW.js";const p=()=>{const r=[{number:"1",title:"Join the Waitlist",description:"Get early access when we launch. Be among the first to experience AI-powered app control."},{number:"2",title:"Connect your services",description:"Install integrations for HubSpot, WordPress, GitHub, Google Analytics β€” whatever you use."},{number:"3",title:"Work in natural language",description:'"Show me..." "Update..." "Create..." β€” just describe what you need and it happens.'}];return e.jsx("section",{id:"get-started",className:"py-16 md:py-24 bg-dc-card/30 scroll-mt-20",children:e.jsxs("div",{className:"container mx-auto max-w-5xl px-4 sm:px-6",children:[e.jsxs("div",{className:"text-center mb-16",children:[e.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-4",children:"How It Works"}),e.jsx("p",{className:"text-lg md:text-xl text-muted-foreground max-w-3xl mx-auto",children:"Three steps to control your entire stack"})]}),e.jsx("div",{className:"space-y-8 md:space-y-12",children:r.map((t,s)=>e.jsxs("div",{className:"flex gap-6 items-start",children:[e.jsx("div",{className:"shrink-0 w-14 h-14 rounded-full bg-primary/10 border-2 border-primary flex items-center justify-center",children:e.jsx("span",{className:"text-2xl font-bold text-primary",children:t.number})}),e.jsxs("div",{className:"flex-1 pt-2",children:[e.jsx("h3",{className:"text-2xl font-semibold mb-3",children:t.title}),e.jsx("p",{className:"text-lg text-muted-foreground leading-relaxed mb-4",children:t.description}),s===0&&e.jsx("div",{className:"mt-6",children:e.jsx(a,{size:"lg",className:"group",asChild:!0,children:e.jsxs("a",{href:"/product/early-access/",children:["Join the Waitlist",e.jsx(i,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})})})]})]},s))})]})})};export{p as default}; +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as a}from"./button.D-OtCHTj.js";import{A as i}from"./arrow-right.DSKvTJYC.js";import"./index.yBjzXJbu.js";import"./index.D_oLZvzW.js";import"./utils.9Q5QEYED.js";import"./createLucideIcon.DnxMVFvH.js";const p=()=>{const r=[{number:"1",title:"Join the Waitlist",description:"Get early access when we launch. Be among the first to experience AI-powered app control."},{number:"2",title:"Connect your services",description:"Install integrations for HubSpot, WordPress, GitHub, Google Analytics β€” whatever you use."},{number:"3",title:"Work in natural language",description:'"Show me..." "Update..." "Create..." β€” just describe what you need and it happens.'}];return e.jsx("section",{id:"get-started",className:"py-16 md:py-24 bg-dc-card/30 scroll-mt-20",children:e.jsxs("div",{className:"container mx-auto max-w-5xl px-4 sm:px-6",children:[e.jsxs("div",{className:"text-center mb-16",children:[e.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-4",children:"How It Works"}),e.jsx("p",{className:"text-lg md:text-xl text-muted-foreground max-w-3xl mx-auto",children:"Three steps to control your entire stack"})]}),e.jsx("div",{className:"space-y-8 md:space-y-12",children:r.map((t,s)=>e.jsxs("div",{className:"flex gap-6 items-start",children:[e.jsx("div",{className:"shrink-0 w-14 h-14 rounded-full bg-primary/10 border-2 border-primary flex items-center justify-center",children:e.jsx("span",{className:"text-2xl font-bold text-primary",children:t.number})}),e.jsxs("div",{className:"flex-1 pt-2",children:[e.jsx("h3",{className:"text-2xl font-semibold mb-3",children:t.title}),e.jsx("p",{className:"text-lg text-muted-foreground leading-relaxed mb-4",children:t.description}),s===0&&e.jsx("div",{className:"mt-6",children:e.jsx(a,{size:"lg",className:"group",asChild:!0,children:e.jsxs("a",{href:"/product/early-access/",children:["Join the Waitlist",e.jsx(i,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})})})]})]},s))})]})})};export{p as default}; diff --git a/docs/assets/CAIntegrationsSection.jvf7-mOS.js b/docs/assets/CAIntegrationsSection.Bqlpz0i2.js similarity index 85% rename from docs/assets/CAIntegrationsSection.jvf7-mOS.js rename to docs/assets/CAIntegrationsSection.Bqlpz0i2.js index 97279df0..6c469087 100644 --- a/docs/assets/CAIntegrationsSection.jvf7-mOS.js +++ b/docs/assets/CAIntegrationsSection.Bqlpz0i2.js @@ -1 +1 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{F as o}from"./file-text.DlCSEU1L.js";import{C as a}from"./chart-column.BMc3CsP9.js";import{U as n}from"./users.DbVrsKHo.js";import{G as i}from"./git-branch.CCosX0mk.js";import{S as d}from"./search.CTWaWu2N.js";import{P as c}from"./plus.DA_zqKdq.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.CJ67VFfW.js";import"./index.BaMLtrTp.js";const N=()=>{const s=[{name:"WordPress",description:"Publish posts, edit themes, manage plugins β€” without touching the admin panel.",icon:o},{name:"Google Analytics",description:"Get traffic insights and reports in plain English β€” no dashboard navigation.",icon:a},{name:"HubSpot",description:"Manage contacts, deals, and pipelines through conversation.",icon:n},{name:"GitHub",description:"Commits, branches, PRs β€” version control without CLI commands.",icon:i},{name:"Ahrefs",description:"Check rankings, analyze competitors, pull SEO data β€” just ask.",icon:d}];return e.jsx("section",{className:"py-16 md:py-24",children:e.jsxs("div",{className:"container mx-auto max-w-6xl px-4 sm:px-6",children:[e.jsxs("div",{className:"text-center mb-16",children:[e.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-4",children:"Featured Integrations"}),e.jsx("p",{className:"text-lg md:text-xl text-muted-foreground max-w-3xl mx-auto",children:"Connect once, control forever. Here are some of the most popular integrations."})]}),e.jsxs("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6 mb-12",children:[s.map((r,t)=>e.jsxs("div",{className:"p-6 rounded-xl border border-dc-border bg-dc-card hover:border-primary/30 transition-all",children:[e.jsx("div",{className:"w-12 h-12 rounded-xl bg-primary/10 border border-primary/20 flex items-center justify-center mb-4",children:e.jsx(r.icon,{className:"w-6 h-6 text-primary"})}),e.jsx("h3",{className:"text-xl font-semibold mb-2",children:r.name}),e.jsx("p",{className:"text-muted-foreground leading-relaxed",children:r.description})]},t)),e.jsxs("div",{className:"p-6 rounded-xl border-2 border-dashed border-dc-border bg-dc-card/50 hover:border-primary/30 transition-all flex flex-col items-center justify-center text-center",children:[e.jsx("div",{className:"w-12 h-12 rounded-xl bg-dc-surface border border-dc-border flex items-center justify-center mb-4",children:e.jsx(c,{className:"w-6 h-6 text-muted-foreground"})}),e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"+ 100 more"}),e.jsx("p",{className:"text-muted-foreground leading-relaxed",children:"Connect the tools you already use."})]})]})]})})};export{N as default}; +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{F as o}from"./file-text.CAYOOP65.js";import{C as a}from"./chart-column.OLWkJ9on.js";import{U as n}from"./users.8W-rffO0.js";import{G as i}from"./git-branch.B8v1eTjD.js";import{S as d}from"./search.DStwv__K.js";import{P as c}from"./plus.B9QqORzJ.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.DnxMVFvH.js";import"./index.D_oLZvzW.js";const N=()=>{const s=[{name:"WordPress",description:"Publish posts, edit themes, manage plugins β€” without touching the admin panel.",icon:o},{name:"Google Analytics",description:"Get traffic insights and reports in plain English β€” no dashboard navigation.",icon:a},{name:"HubSpot",description:"Manage contacts, deals, and pipelines through conversation.",icon:n},{name:"GitHub",description:"Commits, branches, PRs β€” version control without CLI commands.",icon:i},{name:"Ahrefs",description:"Check rankings, analyze competitors, pull SEO data β€” just ask.",icon:d}];return e.jsx("section",{className:"py-16 md:py-24",children:e.jsxs("div",{className:"container mx-auto max-w-6xl px-4 sm:px-6",children:[e.jsxs("div",{className:"text-center mb-16",children:[e.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-4",children:"Featured Integrations"}),e.jsx("p",{className:"text-lg md:text-xl text-muted-foreground max-w-3xl mx-auto",children:"Connect once, control forever. Here are some of the most popular integrations."})]}),e.jsxs("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6 mb-12",children:[s.map((r,t)=>e.jsxs("div",{className:"p-6 rounded-xl border border-dc-border bg-dc-card hover:border-primary/30 transition-all",children:[e.jsx("div",{className:"w-12 h-12 rounded-xl bg-primary/10 border border-primary/20 flex items-center justify-center mb-4",children:e.jsx(r.icon,{className:"w-6 h-6 text-primary"})}),e.jsx("h3",{className:"text-xl font-semibold mb-2",children:r.name}),e.jsx("p",{className:"text-muted-foreground leading-relaxed",children:r.description})]},t)),e.jsxs("div",{className:"p-6 rounded-xl border-2 border-dashed border-dc-border bg-dc-card/50 hover:border-primary/30 transition-all flex flex-col items-center justify-center text-center",children:[e.jsx("div",{className:"w-12 h-12 rounded-xl bg-dc-surface border border-dc-border flex items-center justify-center mb-4",children:e.jsx(c,{className:"w-6 h-6 text-muted-foreground"})}),e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"+ 100 more"}),e.jsx("p",{className:"text-muted-foreground leading-relaxed",children:"Connect the tools you already use."})]})]})]})})};export{N as default}; diff --git a/docs/assets/CAPersonasSection.Cb-fMfsK.js b/docs/assets/CAPersonasSection.Due1le_f.js similarity index 93% rename from docs/assets/CAPersonasSection.Cb-fMfsK.js rename to docs/assets/CAPersonasSection.Due1le_f.js index f96657f5..ddb60cec 100644 --- a/docs/assets/CAPersonasSection.Cb-fMfsK.js +++ b/docs/assets/CAPersonasSection.Due1le_f.js @@ -1,4 +1,4 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{R as c}from"./rocket.DJM_PiJ5.js";import{c as i}from"./createLucideIcon.CJ67VFfW.js";import{C as d}from"./code.BOyVoLRs.js";import"./index.yBjzXJbu.js";import"./index.BaMLtrTp.js";/** +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{R as c}from"./rocket.DnXnYW1j.js";import{c as i}from"./createLucideIcon.DnxMVFvH.js";import{C as d}from"./code.Bsz77KQU.js";import"./index.yBjzXJbu.js";import"./index.D_oLZvzW.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/CAProblemSection.CoFebd2h.js b/docs/assets/CAProblemSection.DHsMMVU7.js similarity index 88% rename from docs/assets/CAProblemSection.CoFebd2h.js rename to docs/assets/CAProblemSection.DHsMMVU7.js index c88938a6..182f43ea 100644 --- a/docs/assets/CAProblemSection.CoFebd2h.js +++ b/docs/assets/CAProblemSection.DHsMMVU7.js @@ -1 +1 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{C as t}from"./circle-alert.BAM225Eq.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.CJ67VFfW.js";import"./index.BaMLtrTp.js";const i=()=>e.jsx("section",{className:"py-16 md:py-20",children:e.jsx("div",{className:"container mx-auto max-w-5xl px-4 sm:px-6",children:e.jsxs("div",{className:"bg-gradient-to-br from-dc-card to-dc-surface rounded-2xl border border-dc-border p-8 md:p-12",children:[e.jsxs("div",{className:"flex items-start gap-4 mb-6",children:[e.jsx("div",{className:"p-3 rounded-xl bg-destructive/10 border border-destructive/20",children:e.jsx(t,{className:"w-6 h-6 text-destructive"})}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold",children:"You're spending more time in dashboards than doing actual work."})]}),e.jsx("p",{className:"text-xl text-muted-foreground leading-relaxed",children:"Every tool has its own interface to learn, its own menus to navigate. You spend hours clicking through settings, switching tabs, and copying data between platforms. The tools meant to help you are slowing you down."})]})})});export{i as default}; +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{C as t}from"./circle-alert.DXvzqdgU.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.DnxMVFvH.js";import"./index.D_oLZvzW.js";const i=()=>e.jsx("section",{className:"py-16 md:py-20",children:e.jsx("div",{className:"container mx-auto max-w-5xl px-4 sm:px-6",children:e.jsxs("div",{className:"bg-gradient-to-br from-dc-card to-dc-surface rounded-2xl border border-dc-border p-8 md:p-12",children:[e.jsxs("div",{className:"flex items-start gap-4 mb-6",children:[e.jsx("div",{className:"p-3 rounded-xl bg-destructive/10 border border-destructive/20",children:e.jsx(t,{className:"w-6 h-6 text-destructive"})}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold",children:"You're spending more time in dashboards than doing actual work."})]}),e.jsx("p",{className:"text-xl text-muted-foreground leading-relaxed",children:"Every tool has its own interface to learn, its own menus to navigate. You spend hours clicking through settings, switching tabs, and copying data between platforms. The tools meant to help you are slowing you down."})]})})});export{i as default}; diff --git a/docs/assets/CASolutionSection.9DkYjJ2z.js b/docs/assets/CASolutionSection.Bp8OMVPi.js similarity index 94% rename from docs/assets/CASolutionSection.9DkYjJ2z.js rename to docs/assets/CASolutionSection.Bp8OMVPi.js index 2ce277d9..120646b1 100644 --- a/docs/assets/CASolutionSection.9DkYjJ2z.js +++ b/docs/assets/CASolutionSection.Bp8OMVPi.js @@ -1,4 +1,4 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{C as s}from"./clock.YdwQlIOd.js";import{L as i}from"./link.ILvXdQ4c.js";import{c as a}from"./createLucideIcon.CJ67VFfW.js";import"./index.yBjzXJbu.js";import"./index.BaMLtrTp.js";/** +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{C as s}from"./clock.0f4SrxU_.js";import{L as i}from"./link.Coz5prEd.js";import{c as a}from"./createLucideIcon.DnxMVFvH.js";import"./index.yBjzXJbu.js";import"./index.D_oLZvzW.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/CAWhyDifferentSection.Dr9-4omr.js b/docs/assets/CAWhyDifferentSection.BISluIa7.js similarity index 92% rename from docs/assets/CAWhyDifferentSection.Dr9-4omr.js rename to docs/assets/CAWhyDifferentSection.BISluIa7.js index b3ed1fe2..92c03f7f 100644 --- a/docs/assets/CAWhyDifferentSection.Dr9-4omr.js +++ b/docs/assets/CAWhyDifferentSection.BISluIa7.js @@ -1,4 +1,4 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{c as a}from"./createLucideIcon.CJ67VFfW.js";import{H as o}from"./hard-drive.BOIAI7X-.js";import{Z as i}from"./zap.D6vbqF2e.js";import"./index.yBjzXJbu.js";import"./index.BaMLtrTp.js";/** +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{c as a}from"./createLucideIcon.DnxMVFvH.js";import{H as o}from"./hard-drive.DFcIH-f-.js";import{Z as i}from"./zap.DaqacrRs.js";import"./index.yBjzXJbu.js";import"./index.D_oLZvzW.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/Community.DPi1bKB8.js b/docs/assets/Community.CWWSwhUA.js similarity index 93% rename from docs/assets/Community.DPi1bKB8.js rename to docs/assets/Community.CWWSwhUA.js index 001a0ca4..1a6fcef7 100644 --- a/docs/assets/Community.DPi1bKB8.js +++ b/docs/assets/Community.CWWSwhUA.js @@ -1,4 +1,4 @@ -import{j as t}from"./jsx-runtime.D3GSbgeI.js";import{B as s}from"./button.nz_ACiet.js";import{r as o}from"./index.BaMLtrTp.js";import{u as c}from"./useAnalyticsAstro.CR8fdMXS.js";import{G as d}from"./github.BkBM2DcL.js";import{M as m}from"./message-circle.f_pivL_s.js";import{c as h}from"./createLucideIcon.CJ67VFfW.js";import"./index.yBjzXJbu.js";import"./utils.XhT4HDO9.js";import"./tracking.znU5Ou_b.js";/** +import{j as t}from"./jsx-runtime.D3GSbgeI.js";import{B as s}from"./button.D-OtCHTj.js";import{r as o}from"./index.D_oLZvzW.js";import{u as c}from"./useAnalyticsAstro.DaPc9vxZ.js";import{G as d}from"./github.xZ1f8Ld5.js";import{M as m}from"./message-circle.8UVeSDYv.js";import{c as h}from"./createLucideIcon.DnxMVFvH.js";import"./index.yBjzXJbu.js";import"./utils.9Q5QEYED.js";import"./tracking.znU5Ou_b.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/FAQ.BKG2iCrB.js b/docs/assets/FAQ.DKtQaNEP.js similarity index 93% rename from docs/assets/FAQ.BKG2iCrB.js rename to docs/assets/FAQ.DKtQaNEP.js index 17887aa9..d9caba48 100644 --- a/docs/assets/FAQ.BKG2iCrB.js +++ b/docs/assets/FAQ.DKtQaNEP.js @@ -1 +1 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{A as l,a as c,b as d,c as m}from"./accordion.DUa7MtCh.js";import{r as a}from"./index.BaMLtrTp.js";import{E as u}from"./external-link.BigcEWhC.js";import"./index.yBjzXJbu.js";import"./index.vFQDSFae.js";import"./utils.XhT4HDO9.js";import"./index.BlsO67so.js";import"./index.BbTPjBLC.js";import"./chevron-down.B6Si1q7U.js";import"./createLucideIcon.CJ67VFfW.js";const j=()=>{const[o,n]=a.useState(!1),t=a.useRef(null);a.useEffect(()=>{const s=new IntersectionObserver(([r])=>{r.isIntersecting&&n(!0)},{threshold:.1});return t.current&&s.observe(t.current),()=>{t.current&&s.unobserve(t.current)}},[]);const i=[{question:"What is Desktop Commander?",answer:"Desktop Commander is an MCP (Model Context Protocol) tool that allows Claude Desktop or other MCP clients to access and control your computer's file system and terminal. It enables LLMs to explore, read, and write files, execute commands, and manage processes - expanding their capabilities beyond just conversation to become a comprehensive assistant that can work with your entire operating system."},{question:"How does it differ from coding tools like Cursor or Windsurf?",answer:"Unlike tools like Cursor or Windsurf which are primarily designed as coding IDEs, Desktop Commander works with Claude to provide a more flexible, solution-centric approach. It's not confined to a coding box - it can handle coding tasks but also excels at exploring codebases, drawing diagrams, running automation processes, and working with multiple projects simultaneously."},{question:"What is an MCP?",answer:"MCP stands for Model Context Protocol. It's a framework that allows AI language models like Claude to interact with external tools and services. MCPs give Claude the ability to perform actions in the real world - in this case, to read and write files, execute terminal commands, and manage processes on your computer."},{question:"How much does it cost to use Desktop Commander?",answer:"Desktop Commander itself is free and open-source. However, to use it, you need a Claude Pro subscription, which costs $20/month. There are no additional charges beyond this subscription fee."},{question:"Which operating systems does it support?",answer:"Desktop Commander works with Windows, macOS, and Linux, with ongoing improvements for better cross-platform support."},{question:"How does Desktop Commander collect feedback and usage data?",answer:"It has three systems: local usage analytics (always active, stays on your machine), anonymous telemetry (can be disabled), and optional feedback system (user controlled)."},{question:"Is it safe to give Claude access to my file system?",answer:"Claude operates within safety boundaries - it typically only works with files you direct it to, can only perform actions your user account has permission for, and no data is sent to external servers beyond Claude conversations."},{question:"I'm having trouble installing or using the tool. Where can I get help?",answer:"Join our Discord server for community support, check the GitHub issues for known problems, or review our comprehensive FAQ for troubleshooting tips. If you encounter a new issue, please consider opening a GitHub issue with details about your problem."}];return e.jsx("section",{ref:t,id:"faq",className:"py-20 bg-muted/30",children:e.jsxs("div",{className:"container mx-auto px-4",children:[e.jsxs("div",{className:`text-center mb-16 transition-all duration-1000 ${o?"opacity-100 translate-y-0":"opacity-0 translate-y-8"}`,children:[e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"Frequently Asked Questions"}),e.jsx("p",{className:"text-xl text-muted-foreground max-w-2xl mx-auto",children:"Got questions? We've got answers. Find everything you need to know about Desktop Commander."})]}),e.jsxs("div",{className:`max-w-3xl mx-auto transition-all duration-1000 delay-300 ${o?"opacity-100 translate-y-0":"opacity-0 translate-y-8"}`,children:[e.jsx(l,{type:"single",collapsible:!0,className:"space-y-4",children:i.map((s,r)=>e.jsxs(c,{value:`item-${r}`,className:`bg-background border rounded-lg px-6 py-2 transition-all duration-700 hover:shadow-lg hover:scale-[1.01] transform ${o?"opacity-100 translate-y-0":"opacity-0 translate-y-4"}`,style:{transitionDelay:o?`${500+r*100}ms`:"0ms"},children:[e.jsx(d,{className:"text-left hover:no-underline transition-colors duration-300 hover:text-primary",children:e.jsx("span",{className:"font-semibold",children:s.question})}),e.jsx(m,{className:"text-muted-foreground leading-relaxed",children:s.answer})]},r))}),e.jsx("div",{className:`mt-12 text-center transition-all duration-1000 delay-1200 ${o?"opacity-100 translate-y-0":"opacity-0 translate-y-8"}`,children:e.jsxs("div",{className:"bg-background border rounded-lg p-6 transition-all duration-300 hover:shadow-lg hover:scale-[1.02] transform",children:[e.jsx("h3",{className:"text-lg font-semibold mb-2",children:"Need More Details?"}),e.jsx("p",{className:"text-muted-foreground mb-4",children:"View our comprehensive FAQ document on GitHub for more detailed answers and troubleshooting guides."}),e.jsxs("a",{href:"https://github.com/wonderwhy-er/DesktopCommanderMCP/blob/main/FAQ.md",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 text-primary hover:underline font-medium transition-all duration-300 hover:scale-105 group",children:["Complete FAQ on GitHub",e.jsx(u,{className:"h-4 w-4 transition-transform duration-300 group-hover:translate-x-1"})]})]})})]})]})})};export{j as default}; +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{A as l,a as c,b as d,c as m}from"./accordion.Dl6n-tLy.js";import{r as a}from"./index.D_oLZvzW.js";import{E as u}from"./external-link.DsSVi18J.js";import"./index.yBjzXJbu.js";import"./index.DO6kBsrn.js";import"./utils.9Q5QEYED.js";import"./index.5q9h5iS_.js";import"./index.BbTPjBLC.js";import"./chevron-down.BAQmmeQZ.js";import"./createLucideIcon.DnxMVFvH.js";const j=()=>{const[o,n]=a.useState(!1),t=a.useRef(null);a.useEffect(()=>{const s=new IntersectionObserver(([r])=>{r.isIntersecting&&n(!0)},{threshold:.1});return t.current&&s.observe(t.current),()=>{t.current&&s.unobserve(t.current)}},[]);const i=[{question:"What is Desktop Commander?",answer:"Desktop Commander is an MCP (Model Context Protocol) tool that allows Claude Desktop or other MCP clients to access and control your computer's file system and terminal. It enables LLMs to explore, read, and write files, execute commands, and manage processes - expanding their capabilities beyond just conversation to become a comprehensive assistant that can work with your entire operating system."},{question:"How does it differ from coding tools like Cursor or Windsurf?",answer:"Unlike tools like Cursor or Windsurf which are primarily designed as coding IDEs, Desktop Commander works with Claude to provide a more flexible, solution-centric approach. It's not confined to a coding box - it can handle coding tasks but also excels at exploring codebases, drawing diagrams, running automation processes, and working with multiple projects simultaneously."},{question:"What is an MCP?",answer:"MCP stands for Model Context Protocol. It's a framework that allows AI language models like Claude to interact with external tools and services. MCPs give Claude the ability to perform actions in the real world - in this case, to read and write files, execute terminal commands, and manage processes on your computer."},{question:"How much does it cost to use Desktop Commander?",answer:"Desktop Commander itself is free and open-source. However, to use it, you need a Claude Pro subscription, which costs $20/month. There are no additional charges beyond this subscription fee."},{question:"Which operating systems does it support?",answer:"Desktop Commander works with Windows, macOS, and Linux, with ongoing improvements for better cross-platform support."},{question:"How does Desktop Commander collect feedback and usage data?",answer:"It has three systems: local usage analytics (always active, stays on your machine), anonymous telemetry (can be disabled), and optional feedback system (user controlled)."},{question:"Is it safe to give Claude access to my file system?",answer:"Claude operates within safety boundaries - it typically only works with files you direct it to, can only perform actions your user account has permission for, and no data is sent to external servers beyond Claude conversations."},{question:"I'm having trouble installing or using the tool. Where can I get help?",answer:"Join our Discord server for community support, check the GitHub issues for known problems, or review our comprehensive FAQ for troubleshooting tips. If you encounter a new issue, please consider opening a GitHub issue with details about your problem."}];return e.jsx("section",{ref:t,id:"faq",className:"py-20 bg-muted/30",children:e.jsxs("div",{className:"container mx-auto px-4",children:[e.jsxs("div",{className:`text-center mb-16 transition-all duration-1000 ${o?"opacity-100 translate-y-0":"opacity-0 translate-y-8"}`,children:[e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"Frequently Asked Questions"}),e.jsx("p",{className:"text-xl text-muted-foreground max-w-2xl mx-auto",children:"Got questions? We've got answers. Find everything you need to know about Desktop Commander."})]}),e.jsxs("div",{className:`max-w-3xl mx-auto transition-all duration-1000 delay-300 ${o?"opacity-100 translate-y-0":"opacity-0 translate-y-8"}`,children:[e.jsx(l,{type:"single",collapsible:!0,className:"space-y-4",children:i.map((s,r)=>e.jsxs(c,{value:`item-${r}`,className:`bg-background border rounded-lg px-6 py-2 transition-all duration-700 hover:shadow-lg hover:scale-[1.01] transform ${o?"opacity-100 translate-y-0":"opacity-0 translate-y-4"}`,style:{transitionDelay:o?`${500+r*100}ms`:"0ms"},children:[e.jsx(d,{className:"text-left hover:no-underline transition-colors duration-300 hover:text-primary",children:e.jsx("span",{className:"font-semibold",children:s.question})}),e.jsx(m,{className:"text-muted-foreground leading-relaxed",children:s.answer})]},r))}),e.jsx("div",{className:`mt-12 text-center transition-all duration-1000 delay-1200 ${o?"opacity-100 translate-y-0":"opacity-0 translate-y-8"}`,children:e.jsxs("div",{className:"bg-background border rounded-lg p-6 transition-all duration-300 hover:shadow-lg hover:scale-[1.02] transform",children:[e.jsx("h3",{className:"text-lg font-semibold mb-2",children:"Need More Details?"}),e.jsx("p",{className:"text-muted-foreground mb-4",children:"View our comprehensive FAQ document on GitHub for more detailed answers and troubleshooting guides."}),e.jsxs("a",{href:"https://github.com/wonderwhy-er/DesktopCommanderMCP/blob/main/FAQ.md",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 text-primary hover:underline font-medium transition-all duration-300 hover:scale-105 group",children:["Complete FAQ on GitHub",e.jsx(u,{className:"h-4 w-4 transition-transform duration-300 group-hover:translate-x-1"})]})]})})]})]})})};export{j as default}; diff --git a/docs/assets/FileManagementHero.BB6XjL4q.js b/docs/assets/FileManagementHero.Dhaemspt.js similarity index 87% rename from docs/assets/FileManagementHero.BB6XjL4q.js rename to docs/assets/FileManagementHero.Dhaemspt.js index 18195bf3..9236def3 100644 --- a/docs/assets/FileManagementHero.BB6XjL4q.js +++ b/docs/assets/FileManagementHero.Dhaemspt.js @@ -1 +1 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as s}from"./button.nz_ACiet.js";import{S as r}from"./shield.Dnfnq1p4.js";import{A as a}from"./arrow-right.B_EnXtAw.js";import"./index.yBjzXJbu.js";import"./index.BaMLtrTp.js";import"./utils.XhT4HDO9.js";import"./createLucideIcon.CJ67VFfW.js";const c=()=>e.jsx("section",{className:"pt-32 pb-16 md:pt-40 md:pb-20",children:e.jsx("div",{className:"container mx-auto max-w-6xl px-4 sm:px-6",children:e.jsxs("div",{className:"flex flex-col items-center text-center space-y-8",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-2 rounded-full bg-dc-surface border border-dc-border text-sm text-muted-foreground",children:[e.jsx(r,{className:"w-4 h-4 text-primary"}),e.jsx("span",{children:"AI Processing β€’ No Random Sites"})]}),e.jsxs("h1",{className:"text-4xl sm:text-5xl lg:text-6xl font-bold tracking-tight max-w-4xl",children:["Your personal file organizer β€”"," ",e.jsx("span",{className:"text-primary",children:"move, edit, convert files in natural language"})]}),e.jsx("p",{className:"text-lg sm:text-xl text-muted-foreground max-w-3xl leading-relaxed",children:"Manage files by simply describing what you want. Desktop Commander connects your AI directly to your filesβ€”no random conversion websites, no manual workflows."}),e.jsx("div",{className:"flex flex-col sm:flex-row gap-4 pt-4",children:e.jsx(s,{size:"lg",asChild:!0,className:"group",children:e.jsxs("a",{href:"/product/early-access/",children:["Join the Waitlist",e.jsx(a,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})})}),e.jsxs("div",{className:"flex items-center gap-4 text-sm text-muted-foreground pt-2",children:[e.jsx("span",{children:"Save time"}),e.jsx("span",{className:"w-1 h-1 rounded-full bg-muted-foreground/50"}),e.jsx("span",{children:"Keep files safe"}),e.jsx("span",{className:"w-1 h-1 rounded-full bg-muted-foreground/50"}),e.jsx("span",{children:"Manage all in natural language"})]})]})})});export{c as default}; +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as s}from"./button.D-OtCHTj.js";import{S as r}from"./shield.Cc9GR1lK.js";import{A as a}from"./arrow-right.DSKvTJYC.js";import"./index.yBjzXJbu.js";import"./index.D_oLZvzW.js";import"./utils.9Q5QEYED.js";import"./createLucideIcon.DnxMVFvH.js";const c=()=>e.jsx("section",{className:"pt-32 pb-16 md:pt-40 md:pb-20",children:e.jsx("div",{className:"container mx-auto max-w-6xl px-4 sm:px-6",children:e.jsxs("div",{className:"flex flex-col items-center text-center space-y-8",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-2 rounded-full bg-dc-surface border border-dc-border text-sm text-muted-foreground",children:[e.jsx(r,{className:"w-4 h-4 text-primary"}),e.jsx("span",{children:"AI Processing β€’ No Random Sites"})]}),e.jsxs("h1",{className:"text-4xl sm:text-5xl lg:text-6xl font-bold tracking-tight max-w-4xl",children:["Your personal file organizer β€”"," ",e.jsx("span",{className:"text-primary",children:"move, edit, convert files in natural language"})]}),e.jsx("p",{className:"text-lg sm:text-xl text-muted-foreground max-w-3xl leading-relaxed",children:"Manage files by simply describing what you want. Desktop Commander connects your AI directly to your filesβ€”no random conversion websites, no manual workflows."}),e.jsx("div",{className:"flex flex-col sm:flex-row gap-4 pt-4",children:e.jsx(s,{size:"lg",asChild:!0,className:"group",children:e.jsxs("a",{href:"/product/early-access/",children:["Join the Waitlist",e.jsx(a,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})})}),e.jsxs("div",{className:"flex items-center gap-4 text-sm text-muted-foreground pt-2",children:[e.jsx("span",{children:"Save time"}),e.jsx("span",{className:"w-1 h-1 rounded-full bg-muted-foreground/50"}),e.jsx("span",{children:"Keep files safe"}),e.jsx("span",{className:"w-1 h-1 rounded-full bg-muted-foreground/50"}),e.jsx("span",{children:"Manage all in natural language"})]})]})})});export{c as default}; diff --git a/docs/assets/FinalCTASection.CerAQQtu.js b/docs/assets/FinalCTASection.Bid--WEq.js similarity index 86% rename from docs/assets/FinalCTASection.CerAQQtu.js rename to docs/assets/FinalCTASection.Bid--WEq.js index 97fc21ea..e03b6795 100644 --- a/docs/assets/FinalCTASection.CerAQQtu.js +++ b/docs/assets/FinalCTASection.Bid--WEq.js @@ -1 +1 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as s}from"./button.nz_ACiet.js";import{A as r}from"./arrow-right.B_EnXtAw.js";import{C as t}from"./check.eE7yIrYi.js";import"./index.yBjzXJbu.js";import"./index.BaMLtrTp.js";import"./utils.XhT4HDO9.js";import"./createLucideIcon.CJ67VFfW.js";const d=()=>e.jsx("section",{className:"py-16 md:py-24",children:e.jsx("div",{className:"container mx-auto max-w-4xl px-4 sm:px-6",children:e.jsxs("div",{className:"bg-gradient-to-br from-primary/10 via-primary/5 to-transparent rounded-2xl border border-primary/20 p-8 md:p-12 text-center",children:[e.jsxs("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-6",children:["Your files are on your computer. ",e.jsx("br",{}),e.jsx("span",{className:"text-primary",children:"Managing them should be simple."})]}),e.jsx("p",{className:"text-lg md:text-xl text-muted-foreground mb-8 max-w-2xl mx-auto",children:"Desktop Commander is the file organizer that works the way you thinkβ€”through natural language instead of complex commands."}),e.jsx("div",{className:"flex flex-col sm:flex-row gap-4 justify-center mb-8",children:e.jsx(s,{size:"lg",asChild:!0,className:"group",children:e.jsxs("a",{href:"/product/early-access/",children:["Join the Waitlist",e.jsx(r,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})})}),e.jsxs("div",{className:"flex flex-col items-center gap-4 text-sm text-muted-foreground",children:[e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx("span",{children:"Works on Mac"}),e.jsx("span",{className:"w-1 h-1 rounded-full bg-muted-foreground/50"}),e.jsx("span",{children:"Windows"}),e.jsx("span",{className:"w-1 h-1 rounded-full bg-muted-foreground/50"}),e.jsx("span",{children:"Linux"})]}),e.jsxs("div",{className:"flex items-center gap-2 text-primary",children:[e.jsx(t,{className:"w-4 h-4"}),e.jsx("span",{children:"Direct file access β€’ No sketchy websites"})]})]})]})})});export{d as default}; +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as s}from"./button.D-OtCHTj.js";import{A as r}from"./arrow-right.DSKvTJYC.js";import{C as t}from"./check.BxIsZM2Y.js";import"./index.yBjzXJbu.js";import"./index.D_oLZvzW.js";import"./utils.9Q5QEYED.js";import"./createLucideIcon.DnxMVFvH.js";const d=()=>e.jsx("section",{className:"py-16 md:py-24",children:e.jsx("div",{className:"container mx-auto max-w-4xl px-4 sm:px-6",children:e.jsxs("div",{className:"bg-gradient-to-br from-primary/10 via-primary/5 to-transparent rounded-2xl border border-primary/20 p-8 md:p-12 text-center",children:[e.jsxs("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-6",children:["Your files are on your computer. ",e.jsx("br",{}),e.jsx("span",{className:"text-primary",children:"Managing them should be simple."})]}),e.jsx("p",{className:"text-lg md:text-xl text-muted-foreground mb-8 max-w-2xl mx-auto",children:"Desktop Commander is the file organizer that works the way you thinkβ€”through natural language instead of complex commands."}),e.jsx("div",{className:"flex flex-col sm:flex-row gap-4 justify-center mb-8",children:e.jsx(s,{size:"lg",asChild:!0,className:"group",children:e.jsxs("a",{href:"/product/early-access/",children:["Join the Waitlist",e.jsx(r,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})})}),e.jsxs("div",{className:"flex flex-col items-center gap-4 text-sm text-muted-foreground",children:[e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx("span",{children:"Works on Mac"}),e.jsx("span",{className:"w-1 h-1 rounded-full bg-muted-foreground/50"}),e.jsx("span",{children:"Windows"}),e.jsx("span",{className:"w-1 h-1 rounded-full bg-muted-foreground/50"}),e.jsx("span",{children:"Linux"})]}),e.jsxs("div",{className:"flex items-center gap-2 text-primary",children:[e.jsx(t,{className:"w-4 h-4"}),e.jsx("span",{children:"Direct file access β€’ No sketchy websites"})]})]})]})})});export{d as default}; diff --git a/docs/assets/Footer.B2WaeTxu.js b/docs/assets/Footer.BazqTTJP.js similarity index 96% rename from docs/assets/Footer.B2WaeTxu.js rename to docs/assets/Footer.BazqTTJP.js index a1cae8d0..afa87f17 100644 --- a/docs/assets/Footer.B2WaeTxu.js +++ b/docs/assets/Footer.BazqTTJP.js @@ -1,4 +1,4 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as r}from"./button.nz_ACiet.js";import{u as s}from"./useAnalyticsAstro.CR8fdMXS.js";import{G as n}from"./github.BkBM2DcL.js";import{M as a}from"./message-circle.f_pivL_s.js";import{c as o}from"./createLucideIcon.CJ67VFfW.js";import"./index.yBjzXJbu.js";import"./index.BaMLtrTp.js";import"./utils.XhT4HDO9.js";import"./tracking.znU5Ou_b.js";/** +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as r}from"./button.D-OtCHTj.js";import{u as s}from"./useAnalyticsAstro.DaPc9vxZ.js";import{G as n}from"./github.xZ1f8Ld5.js";import{M as a}from"./message-circle.8UVeSDYv.js";import{c as o}from"./createLucideIcon.DnxMVFvH.js";import"./index.yBjzXJbu.js";import"./index.D_oLZvzW.js";import"./utils.9Q5QEYED.js";import"./tracking.znU5Ou_b.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/HeroAstro.1mCLI5W1.js b/docs/assets/HeroAstro.5xuG3CX2.js similarity index 94% rename from docs/assets/HeroAstro.1mCLI5W1.js rename to docs/assets/HeroAstro.5xuG3CX2.js index 2f23fc2f..f03876f9 100644 --- a/docs/assets/HeroAstro.1mCLI5W1.js +++ b/docs/assets/HeroAstro.5xuG3CX2.js @@ -1,4 +1,4 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as h}from"./button.nz_ACiet.js";import{r as t}from"./index.BaMLtrTp.js";import{P as N}from"./index.BlsO67so.js";import{g as i}from"./assets.3QAGYiLk.js";import{c as g}from"./createLucideIcon.CJ67VFfW.js";import{T as p}from"./terminal.CvJQ-WtW.js";import{A as k}from"./arrow-right.B_EnXtAw.js";import{M as R}from"./message-circle.f_pivL_s.js";import{D as E}from"./download.B9D7xAuS.js";import{S as C}from"./star.B1d6f3gm.js";import"./index.yBjzXJbu.js";import"./utils.XhT4HDO9.js";import"./index.BbTPjBLC.js";/** +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as h}from"./button.D-OtCHTj.js";import{r as t}from"./index.D_oLZvzW.js";import{P as N}from"./index.5q9h5iS_.js";import{g as i}from"./assets.3QAGYiLk.js";import{c as g}from"./createLucideIcon.DnxMVFvH.js";import{T as p}from"./terminal.BX6Ycj7A.js";import{A as k}from"./arrow-right.DSKvTJYC.js";import{M as R}from"./message-circle.8UVeSDYv.js";import{D as E}from"./download.DXDz0qZS.js";import{S as C}from"./star.B5F53nve.js";import"./index.yBjzXJbu.js";import"./utils.9Q5QEYED.js";import"./index.BbTPjBLC.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/HowItWorksSimple.LjFP2Dcr.js b/docs/assets/HowItWorksSimple.CJfwHAUL.js similarity index 82% rename from docs/assets/HowItWorksSimple.LjFP2Dcr.js rename to docs/assets/HowItWorksSimple.CJfwHAUL.js index f7e89c2b..ae11f8ce 100644 --- a/docs/assets/HowItWorksSimple.LjFP2Dcr.js +++ b/docs/assets/HowItWorksSimple.CJfwHAUL.js @@ -1 +1 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as a}from"./button.nz_ACiet.js";import{D as i}from"./download.B9D7xAuS.js";import{M as l}from"./message-square.bamY-dpJ.js";import{S as o}from"./sparkles.sp_Qnyce.js";import{A as n}from"./arrow-right.B_EnXtAw.js";import"./index.yBjzXJbu.js";import"./index.BaMLtrTp.js";import"./utils.XhT4HDO9.js";import"./createLucideIcon.CJ67VFfW.js";const y=()=>{const r=[{icon:i,title:"Install and open Desktop Commander",description:"One-time setup takes less than a minute"},{icon:l,title:"Ask in natural language what you need",description:"Just describe what you want in plain English"},{icon:o,title:"See everything done automatically on your computer",description:"Files organized, converted, or analyzedβ€”instantly"}];return e.jsx("section",{className:"py-16 md:py-24",children:e.jsxs("div",{className:"container mx-auto max-w-6xl px-4 sm:px-6",children:[e.jsxs("div",{className:"text-center mb-16",children:[e.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-4",children:"How It Works"}),e.jsx("p",{className:"text-lg md:text-xl text-muted-foreground max-w-3xl mx-auto",children:"Three simple steps to manage your files"})]}),e.jsx("div",{className:"grid md:grid-cols-3 gap-8 relative",children:r.map((t,s)=>e.jsx("div",{className:"relative",children:e.jsxs("div",{className:"flex flex-col items-center text-center",children:[e.jsx("div",{className:"w-20 h-20 rounded-full bg-primary/10 border-2 border-primary flex items-center justify-center mb-6",children:e.jsx(t.icon,{className:"w-10 h-10 text-primary"})}),e.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 -translate-y-1/2 w-8 h-8 rounded-full bg-primary text-primary-foreground flex items-center justify-center font-bold text-sm",children:s+1}),e.jsx("h3",{className:"text-xl font-semibold mb-3",children:t.title}),e.jsx("p",{className:"text-muted-foreground",children:t.description})]})},s))}),e.jsx("div",{className:"flex justify-center mt-12",children:e.jsx(a,{size:"lg",asChild:!0,className:"group",children:e.jsxs("a",{href:"/product/early-access/",children:["Join the Waitlist",e.jsx(n,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})})})]})})};export{y as default}; +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as a}from"./button.D-OtCHTj.js";import{D as i}from"./download.DXDz0qZS.js";import{M as l}from"./message-square.O0_WvyiX.js";import{S as o}from"./sparkles.DoaLSLnS.js";import{A as n}from"./arrow-right.DSKvTJYC.js";import"./index.yBjzXJbu.js";import"./index.D_oLZvzW.js";import"./utils.9Q5QEYED.js";import"./createLucideIcon.DnxMVFvH.js";const y=()=>{const r=[{icon:i,title:"Install and open Desktop Commander",description:"One-time setup takes less than a minute"},{icon:l,title:"Ask in natural language what you need",description:"Just describe what you want in plain English"},{icon:o,title:"See everything done automatically on your computer",description:"Files organized, converted, or analyzedβ€”instantly"}];return e.jsx("section",{className:"py-16 md:py-24",children:e.jsxs("div",{className:"container mx-auto max-w-6xl px-4 sm:px-6",children:[e.jsxs("div",{className:"text-center mb-16",children:[e.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-4",children:"How It Works"}),e.jsx("p",{className:"text-lg md:text-xl text-muted-foreground max-w-3xl mx-auto",children:"Three simple steps to manage your files"})]}),e.jsx("div",{className:"grid md:grid-cols-3 gap-8 relative",children:r.map((t,s)=>e.jsx("div",{className:"relative",children:e.jsxs("div",{className:"flex flex-col items-center text-center",children:[e.jsx("div",{className:"w-20 h-20 rounded-full bg-primary/10 border-2 border-primary flex items-center justify-center mb-6",children:e.jsx(t.icon,{className:"w-10 h-10 text-primary"})}),e.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 -translate-y-1/2 w-8 h-8 rounded-full bg-primary text-primary-foreground flex items-center justify-center font-bold text-sm",children:s+1}),e.jsx("h3",{className:"text-xl font-semibold mb-3",children:t.title}),e.jsx("p",{className:"text-muted-foreground",children:t.description})]})},s))}),e.jsx("div",{className:"flex justify-center mt-12",children:e.jsx(a,{size:"lg",asChild:!0,className:"group",children:e.jsxs("a",{href:"/product/early-access/",children:["Join the Waitlist",e.jsx(n,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})})})]})})};export{y as default}; diff --git a/docs/assets/Installation.C1PX4ZFc.js b/docs/assets/Installation.BUICZV69.js similarity index 97% rename from docs/assets/Installation.C1PX4ZFc.js rename to docs/assets/Installation.BUICZV69.js index a8546260..a6f052a8 100644 --- a/docs/assets/Installation.C1PX4ZFc.js +++ b/docs/assets/Installation.BUICZV69.js @@ -1,4 +1,4 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{C as p}from"./card.BQ_O-TaV.js";import{B as a}from"./button.nz_ACiet.js";import{A as C,a as u,b as g,c as b}from"./accordion.DUa7MtCh.js";import{C as o,D as _,e as D,a as S,b as P,c as I}from"./dialog.ov7dtrSg.js";import{r as i}from"./index.BaMLtrTp.js";import{u as M}from"./useAnalyticsAstro.CR8fdMXS.js";import{C as f}from"./check.eE7yIrYi.js";import{A as j}from"./arrow-right.B_EnXtAw.js";import{C as T}from"./chevron-right.BwvlrKau.js";import"./index.yBjzXJbu.js";import"./utils.XhT4HDO9.js";import"./index.vFQDSFae.js";import"./index.BlsO67so.js";import"./index.BbTPjBLC.js";import"./chevron-down.B6Si1q7U.js";import"./createLucideIcon.CJ67VFfW.js";import"./index.lqPDcyCD.js";import"./index.CyN3cLSG.js";import"./x.B1hOxjOp.js";import"./tracking.znU5Ou_b.js";const R=[{text:"Node.js version >= v18.0.0",downloadUrl:"https://nodejs.org/en/download"},{text:"Claude Desktop",downloadUrl:"https://claude.ai/download"}],L=[{platform:["MacOS"],method:"Bash Install",description:"Run this in Terminal:",command:"curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install.sh | bash",available:!0,buttonText:"Copy and run this in Terminal"},{platform:["Windows","MacOS"],method:"NPX Install",description:"Run this in Terminal/Command Prompt:",command:"npx @wonderwhy-er/desktop-commander@latest setup",available:!0,buttonText:"Copy and run this in Command Center / Terminal"}],$=r=>[{name:"Install via Smithery",description:"Install through Smithery",content:e.jsxs("div",{className:"space-y-4",children:[e.jsx("p",{className:"text-muted-foreground",children:"Install via the Smithery web interface:"}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("span",{className:"flex-shrink-0 w-6 h-6 bg-primary/10 rounded-full flex items-center justify-center text-xs font-bold text-primary",children:"1"}),e.jsxs("div",{children:[e.jsx("strong",{className:"text-foreground",children:"Visit the Smithery page:"}),e.jsx("div",{className:"mt-1",children:e.jsx("a",{href:"https://smithery.ai/server/@wonderwhy-er/desktop-commander",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline break-all",children:"https://smithery.ai/server/@wonderwhy-er/desktop-commander"})})]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("span",{className:"flex-shrink-0 w-6 h-6 bg-primary/10 rounded-full flex items-center justify-center text-xs font-bold text-primary",children:"2"}),e.jsxs("div",{children:[e.jsx("strong",{className:"text-foreground",children:"Login to Smithery"})," if you haven't already"]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("span",{className:"flex-shrink-0 w-6 h-6 bg-primary/10 rounded-full flex items-center justify-center text-xs font-bold text-primary",children:"3"}),e.jsxs("div",{children:[e.jsx("strong",{className:"text-foreground",children:"Select your client"})," (Claude Desktop) on the right side"]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("span",{className:"flex-shrink-0 w-6 h-6 bg-primary/10 rounded-full flex items-center justify-center text-xs font-bold text-primary",children:"4"}),e.jsxs("div",{children:[e.jsx("strong",{className:"text-foreground",children:"Install with the provided key"})," that appears after selecting your client"]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("span",{className:"flex-shrink-0 w-6 h-6 bg-primary/10 rounded-full flex items-center justify-center text-xs font-bold text-primary",children:"5"}),e.jsx("div",{children:e.jsx("strong",{className:"text-foreground",children:"Restart Claude Desktop"})})]})]})]})},{name:"Install in Cursor",description:"Setup in Cursor IDE",content:e.jsxs("div",{className:"space-y-4",children:[e.jsx("p",{className:"text-muted-foreground",children:"Install Desktop Commander in Cursor with one click:"}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("span",{className:"flex-shrink-0 w-6 h-6 bg-primary/10 rounded-full flex items-center justify-center text-xs font-bold text-primary",children:"1"}),e.jsxs("div",{className:"flex-1",children:[e.jsx("strong",{className:"text-foreground",children:"Click the installation link:"}),e.jsx("div",{className:"mt-2",children:e.jsxs("a",{href:"cursor://anysphere.cursor-deeplink/mcp/install?name=desktop-commander&config=eyJjb21tYW5kIjoibnB4IC15IEB3b25kZXJ3aHktZXIvZGVza3RvcC1jb21tYW5kZXJAbGF0ZXN0In0%3D",className:"inline-flex items-center gap-2 px-4 py-2 bg-primary text-primary-foreground rounded-lg hover:bg-primary/90 transition-colors text-sm font-medium",children:["Install in Cursor",e.jsx(j,{className:"h-4 w-4"})]})})]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("span",{className:"flex-shrink-0 w-6 h-6 bg-primary/10 rounded-full flex items-center justify-center text-xs font-bold text-primary",children:"2"}),e.jsxs("div",{children:[e.jsx("strong",{className:"text-foreground",children:"Allow Cursor to open"})," when prompted by your browser"]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("span",{className:"flex-shrink-0 w-6 h-6 bg-primary/10 rounded-full flex items-center justify-center text-xs font-bold text-primary",children:"3"}),e.jsxs("div",{children:[e.jsx("strong",{className:"text-foreground",children:"Confirm installation"})," in Cursor when the dialog appears"]})]})]}),e.jsx("div",{className:"bg-blue-500/10 border border-blue-500/20 rounded-lg p-4",children:e.jsxs("p",{className:"text-sm text-blue-400",children:[e.jsx("strong",{children:"Note:"})," Make sure you have Cursor IDE installed before clicking the installation link."]})})]})},{name:"Install using Docker",description:"Deploy using Docker containers",content:e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold text-foreground mb-2 flex items-center gap-2",children:"🐳 Docker Installation"}),e.jsx("p",{className:"text-muted-foreground mb-2",children:e.jsx("strong",{className:"text-foreground",children:"Perfect for complete isolation and no Node.js required!"})}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Desktop Commander runs in a sandboxed Docker container with persistent development environment."})]}),e.jsxs("div",{children:[e.jsx("h4",{className:"font-semibold text-foreground mb-2",children:"Prerequisites"}),e.jsxs("ul",{className:"text-sm text-muted-foreground space-y-1",children:[e.jsxs("li",{children:["β€’ Docker Desktop installed ",e.jsx("strong",{children:"and running"})]}),e.jsx("li",{children:"β€’ Claude Desktop app installed"})]})]}),e.jsxs("div",{children:[e.jsx("h4",{className:"font-semibold text-foreground mb-3",children:"Automated Installation (Recommended)"}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium text-foreground mb-2",children:"macOS/Linux:"}),e.jsxs("div",{className:"bg-background border border-dc-border rounded-lg p-3 font-mono text-sm relative",children:[e.jsx("code",{className:"text-primary break-all pr-8 block",children:"bash <(curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.sh)"}),e.jsx(a,{variant:"ghost",size:"sm",className:"absolute top-2 right-2 h-5 w-5 p-0 hover:bg-muted",onClick:()=>{navigator.clipboard.writeText("bash <(curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.sh)"),r("copy_command_clicked",{button_text:"Copy",button_location:"docker_install_macos",installation_method:"Docker",command:"bash <(curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.sh)"})},children:e.jsx(o,{className:"h-3 w-3"})})]})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium text-foreground mb-2",children:"Windows PowerShell:"}),e.jsxs("div",{className:"bg-background border border-dc-border rounded-lg p-3 font-mono text-sm relative",children:[e.jsx("code",{className:"text-primary break-all pr-8 block",children:"iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.ps1'))"}),e.jsx(a,{variant:"ghost",size:"sm",className:"absolute top-2 right-2 h-5 w-5 p-0 hover:bg-muted",onClick:()=>{navigator.clipboard.writeText("iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.ps1'))"),r("copy_command_clicked",{button_text:"Copy",button_location:"docker_install_windows",installation_method:"Docker",command:"PowerShell Docker Install"})},children:e.jsx(o,{className:"h-3 w-3"})})]})]})]})]}),e.jsxs("div",{children:[e.jsx("h4",{className:"font-semibold text-foreground mb-2",children:"How Docker Persistence Works"}),e.jsx("p",{className:"text-sm text-muted-foreground mb-3",children:"Desktop Commander creates a persistent work environment that remembers everything between sessions:"}),e.jsxs("ul",{className:"text-sm text-muted-foreground space-y-1",children:[e.jsxs("li",{children:["β€’ ",e.jsx("strong",{className:"text-foreground",children:"Your development tools:"})," Any software you install stays installed"]}),e.jsxs("li",{children:["β€’ ",e.jsx("strong",{className:"text-foreground",children:"Your configurations:"})," Git settings, SSH keys, shell preferences preserved"]}),e.jsxs("li",{children:["β€’ ",e.jsx("strong",{className:"text-foreground",children:"Your work files:"})," Projects and files in workspace persist across restarts"]}),e.jsxs("li",{children:["β€’ ",e.jsx("strong",{className:"text-foreground",children:"Package caches:"})," Downloaded packages cached for faster installs"]})]})]}),e.jsxs("div",{children:[e.jsx("h4",{className:"font-semibold text-foreground mb-3",children:"Manual Docker Configuration"}),e.jsx("p",{className:"text-sm text-muted-foreground mb-3",children:"If you prefer manual setup, add this to your claude_desktop_config.json:"}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium text-foreground mb-2",children:"Basic setup (no file access):"}),e.jsxs("div",{className:"bg-background border border-dc-border rounded-lg p-3 font-mono text-xs relative overflow-x-auto",children:[e.jsx("code",{className:"text-primary whitespace-pre pr-8 block",children:`{ +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{C as p}from"./card.tb19JS-_.js";import{B as a}from"./button.D-OtCHTj.js";import{A as C,a as u,b as g,c as b}from"./accordion.Dl6n-tLy.js";import{C as o,D as _,e as D,a as S,b as P,c as I}from"./dialog.CeUsCtfh.js";import{r as i}from"./index.D_oLZvzW.js";import{u as M}from"./useAnalyticsAstro.DaPc9vxZ.js";import{C as f}from"./check.BxIsZM2Y.js";import{A as j}from"./arrow-right.DSKvTJYC.js";import{C as T}from"./chevron-right.D8b_fnk7.js";import"./index.yBjzXJbu.js";import"./utils.9Q5QEYED.js";import"./index.DO6kBsrn.js";import"./index.5q9h5iS_.js";import"./index.BbTPjBLC.js";import"./chevron-down.BAQmmeQZ.js";import"./createLucideIcon.DnxMVFvH.js";import"./index.DAP1SQuk.js";import"./index.xUA8L87E.js";import"./x.C6Iw0U2F.js";import"./tracking.znU5Ou_b.js";const R=[{text:"Node.js version >= v18.0.0",downloadUrl:"https://nodejs.org/en/download"},{text:"Claude Desktop",downloadUrl:"https://claude.ai/download"}],L=[{platform:["MacOS"],method:"Bash Install",description:"Run this in Terminal:",command:"curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install.sh | bash",available:!0,buttonText:"Copy and run this in Terminal"},{platform:["Windows","MacOS"],method:"NPX Install",description:"Run this in Terminal/Command Prompt:",command:"npx @wonderwhy-er/desktop-commander@latest setup",available:!0,buttonText:"Copy and run this in Command Center / Terminal"}],$=r=>[{name:"Install via Smithery",description:"Install through Smithery",content:e.jsxs("div",{className:"space-y-4",children:[e.jsx("p",{className:"text-muted-foreground",children:"Install via the Smithery web interface:"}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("span",{className:"flex-shrink-0 w-6 h-6 bg-primary/10 rounded-full flex items-center justify-center text-xs font-bold text-primary",children:"1"}),e.jsxs("div",{children:[e.jsx("strong",{className:"text-foreground",children:"Visit the Smithery page:"}),e.jsx("div",{className:"mt-1",children:e.jsx("a",{href:"https://smithery.ai/server/@wonderwhy-er/desktop-commander",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline break-all",children:"https://smithery.ai/server/@wonderwhy-er/desktop-commander"})})]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("span",{className:"flex-shrink-0 w-6 h-6 bg-primary/10 rounded-full flex items-center justify-center text-xs font-bold text-primary",children:"2"}),e.jsxs("div",{children:[e.jsx("strong",{className:"text-foreground",children:"Login to Smithery"})," if you haven't already"]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("span",{className:"flex-shrink-0 w-6 h-6 bg-primary/10 rounded-full flex items-center justify-center text-xs font-bold text-primary",children:"3"}),e.jsxs("div",{children:[e.jsx("strong",{className:"text-foreground",children:"Select your client"})," (Claude Desktop) on the right side"]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("span",{className:"flex-shrink-0 w-6 h-6 bg-primary/10 rounded-full flex items-center justify-center text-xs font-bold text-primary",children:"4"}),e.jsxs("div",{children:[e.jsx("strong",{className:"text-foreground",children:"Install with the provided key"})," that appears after selecting your client"]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("span",{className:"flex-shrink-0 w-6 h-6 bg-primary/10 rounded-full flex items-center justify-center text-xs font-bold text-primary",children:"5"}),e.jsx("div",{children:e.jsx("strong",{className:"text-foreground",children:"Restart Claude Desktop"})})]})]})]})},{name:"Install in Cursor",description:"Setup in Cursor IDE",content:e.jsxs("div",{className:"space-y-4",children:[e.jsx("p",{className:"text-muted-foreground",children:"Install Desktop Commander in Cursor with one click:"}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("span",{className:"flex-shrink-0 w-6 h-6 bg-primary/10 rounded-full flex items-center justify-center text-xs font-bold text-primary",children:"1"}),e.jsxs("div",{className:"flex-1",children:[e.jsx("strong",{className:"text-foreground",children:"Click the installation link:"}),e.jsx("div",{className:"mt-2",children:e.jsxs("a",{href:"cursor://anysphere.cursor-deeplink/mcp/install?name=desktop-commander&config=eyJjb21tYW5kIjoibnB4IC15IEB3b25kZXJ3aHktZXIvZGVza3RvcC1jb21tYW5kZXJAbGF0ZXN0In0%3D",className:"inline-flex items-center gap-2 px-4 py-2 bg-primary text-primary-foreground rounded-lg hover:bg-primary/90 transition-colors text-sm font-medium",children:["Install in Cursor",e.jsx(j,{className:"h-4 w-4"})]})})]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("span",{className:"flex-shrink-0 w-6 h-6 bg-primary/10 rounded-full flex items-center justify-center text-xs font-bold text-primary",children:"2"}),e.jsxs("div",{children:[e.jsx("strong",{className:"text-foreground",children:"Allow Cursor to open"})," when prompted by your browser"]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("span",{className:"flex-shrink-0 w-6 h-6 bg-primary/10 rounded-full flex items-center justify-center text-xs font-bold text-primary",children:"3"}),e.jsxs("div",{children:[e.jsx("strong",{className:"text-foreground",children:"Confirm installation"})," in Cursor when the dialog appears"]})]})]}),e.jsx("div",{className:"bg-blue-500/10 border border-blue-500/20 rounded-lg p-4",children:e.jsxs("p",{className:"text-sm text-blue-400",children:[e.jsx("strong",{children:"Note:"})," Make sure you have Cursor IDE installed before clicking the installation link."]})})]})},{name:"Install using Docker",description:"Deploy using Docker containers",content:e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold text-foreground mb-2 flex items-center gap-2",children:"🐳 Docker Installation"}),e.jsx("p",{className:"text-muted-foreground mb-2",children:e.jsx("strong",{className:"text-foreground",children:"Perfect for complete isolation and no Node.js required!"})}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Desktop Commander runs in a sandboxed Docker container with persistent development environment."})]}),e.jsxs("div",{children:[e.jsx("h4",{className:"font-semibold text-foreground mb-2",children:"Prerequisites"}),e.jsxs("ul",{className:"text-sm text-muted-foreground space-y-1",children:[e.jsxs("li",{children:["β€’ Docker Desktop installed ",e.jsx("strong",{children:"and running"})]}),e.jsx("li",{children:"β€’ Claude Desktop app installed"})]})]}),e.jsxs("div",{children:[e.jsx("h4",{className:"font-semibold text-foreground mb-3",children:"Automated Installation (Recommended)"}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium text-foreground mb-2",children:"macOS/Linux:"}),e.jsxs("div",{className:"bg-background border border-dc-border rounded-lg p-3 font-mono text-sm relative",children:[e.jsx("code",{className:"text-primary break-all pr-8 block",children:"bash <(curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.sh)"}),e.jsx(a,{variant:"ghost",size:"sm",className:"absolute top-2 right-2 h-5 w-5 p-0 hover:bg-muted",onClick:()=>{navigator.clipboard.writeText("bash <(curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.sh)"),r("copy_command_clicked",{button_text:"Copy",button_location:"docker_install_macos",installation_method:"Docker",command:"bash <(curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.sh)"})},children:e.jsx(o,{className:"h-3 w-3"})})]})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium text-foreground mb-2",children:"Windows PowerShell:"}),e.jsxs("div",{className:"bg-background border border-dc-border rounded-lg p-3 font-mono text-sm relative",children:[e.jsx("code",{className:"text-primary break-all pr-8 block",children:"iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.ps1'))"}),e.jsx(a,{variant:"ghost",size:"sm",className:"absolute top-2 right-2 h-5 w-5 p-0 hover:bg-muted",onClick:()=>{navigator.clipboard.writeText("iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.ps1'))"),r("copy_command_clicked",{button_text:"Copy",button_location:"docker_install_windows",installation_method:"Docker",command:"PowerShell Docker Install"})},children:e.jsx(o,{className:"h-3 w-3"})})]})]})]})]}),e.jsxs("div",{children:[e.jsx("h4",{className:"font-semibold text-foreground mb-2",children:"How Docker Persistence Works"}),e.jsx("p",{className:"text-sm text-muted-foreground mb-3",children:"Desktop Commander creates a persistent work environment that remembers everything between sessions:"}),e.jsxs("ul",{className:"text-sm text-muted-foreground space-y-1",children:[e.jsxs("li",{children:["β€’ ",e.jsx("strong",{className:"text-foreground",children:"Your development tools:"})," Any software you install stays installed"]}),e.jsxs("li",{children:["β€’ ",e.jsx("strong",{className:"text-foreground",children:"Your configurations:"})," Git settings, SSH keys, shell preferences preserved"]}),e.jsxs("li",{children:["β€’ ",e.jsx("strong",{className:"text-foreground",children:"Your work files:"})," Projects and files in workspace persist across restarts"]}),e.jsxs("li",{children:["β€’ ",e.jsx("strong",{className:"text-foreground",children:"Package caches:"})," Downloaded packages cached for faster installs"]})]})]}),e.jsxs("div",{children:[e.jsx("h4",{className:"font-semibold text-foreground mb-3",children:"Manual Docker Configuration"}),e.jsx("p",{className:"text-sm text-muted-foreground mb-3",children:"If you prefer manual setup, add this to your claude_desktop_config.json:"}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium text-foreground mb-2",children:"Basic setup (no file access):"}),e.jsxs("div",{className:"bg-background border border-dc-border rounded-lg p-3 font-mono text-xs relative overflow-x-auto",children:[e.jsx("code",{className:"text-primary whitespace-pre pr-8 block",children:`{ "mcpServers": { "desktop-commander-docker": { "command": "docker", diff --git a/docs/assets/KMFinalCTASection.B4KvldVO.js b/docs/assets/KMFinalCTASection.DBNEnFOj.js similarity index 88% rename from docs/assets/KMFinalCTASection.B4KvldVO.js rename to docs/assets/KMFinalCTASection.DBNEnFOj.js index 22055d58..390cd2cb 100644 --- a/docs/assets/KMFinalCTASection.B4KvldVO.js +++ b/docs/assets/KMFinalCTASection.DBNEnFOj.js @@ -1 +1 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as r}from"./button.nz_ACiet.js";import{A as s}from"./arrow-right.B_EnXtAw.js";import{C as a}from"./check.eE7yIrYi.js";import"./index.yBjzXJbu.js";import"./index.BaMLtrTp.js";import"./utils.XhT4HDO9.js";import"./createLucideIcon.CJ67VFfW.js";const x=()=>e.jsx("section",{className:"py-16 md:py-24",children:e.jsx("div",{className:"container mx-auto max-w-4xl px-4 sm:px-6",children:e.jsxs("div",{className:"bg-gradient-to-br from-primary/10 via-primary/5 to-transparent rounded-2xl border border-primary/20 p-8 md:p-12 text-center",children:[e.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-6",children:"Your knowledge deserves better than copy-paste."}),e.jsx("p",{className:"text-lg md:text-xl text-muted-foreground mb-8 max-w-2xl mx-auto",children:"Desktop Commander transforms AI conversations into permanent, organized knowledge. Stop losing valuable insights to closed browser tabsβ€”build a knowledge base that maintains itself."}),e.jsx("div",{className:"flex flex-col sm:flex-row gap-4 justify-center mb-8",children:e.jsx(r,{size:"lg",asChild:!0,className:"group",children:e.jsxs("a",{href:"/product/early-access/",children:["Join the Waitlist",e.jsx(s,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})})}),e.jsxs("div",{className:"flex flex-col items-center gap-4 text-sm text-muted-foreground",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-2",children:[e.jsx("span",{children:"Works with:"}),e.jsx("span",{className:"px-2 py-1 rounded bg-dc-surface border border-dc-border",children:"Obsidian"}),e.jsx("span",{className:"px-2 py-1 rounded bg-dc-surface border border-dc-border",children:"Google Drive"}),e.jsx("span",{className:"px-2 py-1 rounded bg-dc-surface border border-dc-border",children:"VS Code"}),e.jsx("span",{className:"px-2 py-1 rounded bg-dc-surface border border-dc-border",children:"Local Files"})]}),e.jsxs("div",{className:"flex items-center gap-2 text-primary",children:[e.jsx(a,{className:"w-4 h-4"}),e.jsx("span",{children:"Turn conversations into knowledge. Automatically."})]})]})]})})});export{x as default}; +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as r}from"./button.D-OtCHTj.js";import{A as s}from"./arrow-right.DSKvTJYC.js";import{C as a}from"./check.BxIsZM2Y.js";import"./index.yBjzXJbu.js";import"./index.D_oLZvzW.js";import"./utils.9Q5QEYED.js";import"./createLucideIcon.DnxMVFvH.js";const x=()=>e.jsx("section",{className:"py-16 md:py-24",children:e.jsx("div",{className:"container mx-auto max-w-4xl px-4 sm:px-6",children:e.jsxs("div",{className:"bg-gradient-to-br from-primary/10 via-primary/5 to-transparent rounded-2xl border border-primary/20 p-8 md:p-12 text-center",children:[e.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-6",children:"Your knowledge deserves better than copy-paste."}),e.jsx("p",{className:"text-lg md:text-xl text-muted-foreground mb-8 max-w-2xl mx-auto",children:"Desktop Commander transforms AI conversations into permanent, organized knowledge. Stop losing valuable insights to closed browser tabsβ€”build a knowledge base that maintains itself."}),e.jsx("div",{className:"flex flex-col sm:flex-row gap-4 justify-center mb-8",children:e.jsx(r,{size:"lg",asChild:!0,className:"group",children:e.jsxs("a",{href:"/product/early-access/",children:["Join the Waitlist",e.jsx(s,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})})}),e.jsxs("div",{className:"flex flex-col items-center gap-4 text-sm text-muted-foreground",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-2",children:[e.jsx("span",{children:"Works with:"}),e.jsx("span",{className:"px-2 py-1 rounded bg-dc-surface border border-dc-border",children:"Obsidian"}),e.jsx("span",{className:"px-2 py-1 rounded bg-dc-surface border border-dc-border",children:"Google Drive"}),e.jsx("span",{className:"px-2 py-1 rounded bg-dc-surface border border-dc-border",children:"VS Code"}),e.jsx("span",{className:"px-2 py-1 rounded bg-dc-surface border border-dc-border",children:"Local Files"})]}),e.jsxs("div",{className:"flex items-center gap-2 text-primary",children:[e.jsx(a,{className:"w-4 h-4"}),e.jsx("span",{children:"Turn conversations into knowledge. Automatically."})]})]})]})})});export{x as default}; diff --git a/docs/assets/KMGitNativeSection.CEF0Zfj4.js b/docs/assets/KMGitNativeSection.BgsFh9EG.js similarity index 88% rename from docs/assets/KMGitNativeSection.CEF0Zfj4.js rename to docs/assets/KMGitNativeSection.BgsFh9EG.js index 0724cbd6..68b2d6bf 100644 --- a/docs/assets/KMGitNativeSection.CEF0Zfj4.js +++ b/docs/assets/KMGitNativeSection.BgsFh9EG.js @@ -1 +1 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{G as a}from"./git-branch.CCosX0mk.js";import{C as o}from"./circle-check-big.DKhWBpjr.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.CJ67VFfW.js";import"./index.BaMLtrTp.js";const p=()=>{const r=["Every change can be committed and tracked","Push to GitHub for backup without proprietary sync","Use existing developer workflows for documentation","Collaborate through pull requests, not permission settings","Roll back changes using Git history, not app-specific versions"];return e.jsx("section",{className:"py-16 md:py-24 bg-gradient-to-b from-background to-dc-card/30",children:e.jsx("div",{className:"container mx-auto max-w-5xl px-4 sm:px-6",children:e.jsx("div",{className:"bg-gradient-to-br from-dc-card to-dc-surface rounded-2xl border border-dc-border p-8 md:p-12",children:e.jsxs("div",{className:"flex flex-col md:flex-row items-start gap-6",children:[e.jsx("div",{className:"p-4 rounded-2xl bg-primary/10 border-2 border-primary/20 shrink-0",children:e.jsx(a,{className:"w-10 h-10 text-primary"})}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"Git-Native Knowledge Management"}),e.jsx("p",{className:"text-lg text-muted-foreground mb-6",children:"Unlike cloud-based tools, Desktop Commander's markdown approach is Git-friendly:"}),e.jsx("div",{className:"grid sm:grid-cols-2 gap-4",children:r.map((s,t)=>e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(o,{className:"w-5 h-5 text-primary mt-0.5 shrink-0"}),e.jsx("span",{className:"text-foreground",children:s})]},t))})]})]})})})})};export{p as default}; +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{G as a}from"./git-branch.B8v1eTjD.js";import{C as o}from"./circle-check-big.B7sFB_G4.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.DnxMVFvH.js";import"./index.D_oLZvzW.js";const p=()=>{const r=["Every change can be committed and tracked","Push to GitHub for backup without proprietary sync","Use existing developer workflows for documentation","Collaborate through pull requests, not permission settings","Roll back changes using Git history, not app-specific versions"];return e.jsx("section",{className:"py-16 md:py-24 bg-gradient-to-b from-background to-dc-card/30",children:e.jsx("div",{className:"container mx-auto max-w-5xl px-4 sm:px-6",children:e.jsx("div",{className:"bg-gradient-to-br from-dc-card to-dc-surface rounded-2xl border border-dc-border p-8 md:p-12",children:e.jsxs("div",{className:"flex flex-col md:flex-row items-start gap-6",children:[e.jsx("div",{className:"p-4 rounded-2xl bg-primary/10 border-2 border-primary/20 shrink-0",children:e.jsx(a,{className:"w-10 h-10 text-primary"})}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"Git-Native Knowledge Management"}),e.jsx("p",{className:"text-lg text-muted-foreground mb-6",children:"Unlike cloud-based tools, Desktop Commander's markdown approach is Git-friendly:"}),e.jsx("div",{className:"grid sm:grid-cols-2 gap-4",children:r.map((s,t)=>e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(o,{className:"w-5 h-5 text-primary mt-0.5 shrink-0"}),e.jsx("span",{className:"text-foreground",children:s})]},t))})]})]})})})})};export{p as default}; diff --git a/docs/assets/KMPersonasSection.CXPdFtTK.js b/docs/assets/KMPersonasSection.CFbveCyB.js similarity index 90% rename from docs/assets/KMPersonasSection.CXPdFtTK.js rename to docs/assets/KMPersonasSection.CFbveCyB.js index c733f718..8a9e6888 100644 --- a/docs/assets/KMPersonasSection.CXPdFtTK.js +++ b/docs/assets/KMPersonasSection.CFbveCyB.js @@ -1 +1 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{C as i}from"./code.BOyVoLRs.js";import{B as c}from"./briefcase.DXgbkgD4.js";import{U as d}from"./users.DbVrsKHo.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.CJ67VFfW.js";import"./index.BaMLtrTp.js";const h=()=>{const t=[{icon:i,title:"Developers",color:"blue",useCases:["Generate documentation from codebases","Update README files after code changes","Create architecture notes from existing code","Maintain technical specs alongside development"]},{icon:c,title:"Knowledge Workers",color:"purple",useCases:["Build and maintain project context documents","Transform meeting notes into actionable documentation","Create knowledge bases from scattered information","Organize Obsidian vaults and markdown files automatically"]},{icon:d,title:"Teams",color:"green",useCases:["Keep shared documentation current","Synchronize knowledge across tools","Create project overviews from scattered files","Maintain decision logs from discussions"]}],s=r=>{switch(r){case"blue":return{bg:"bg-blue-500/10",border:"border-blue-500/30",iconBg:"bg-blue-500/20",iconColor:"text-blue-400",titleColor:"text-blue-400"};case"purple":return{bg:"bg-purple-500/10",border:"border-purple-500/30",iconBg:"bg-purple-500/20",iconColor:"text-purple-400",titleColor:"text-purple-400"};case"green":return{bg:"bg-green-500/10",border:"border-green-500/30",iconBg:"bg-green-500/20",iconColor:"text-green-400",titleColor:"text-green-400"};default:return{bg:"bg-primary/10",border:"border-primary/30",iconBg:"bg-primary/20",iconColor:"text-primary",titleColor:"text-primary"}}};return e.jsx("section",{className:"py-16 md:py-24 bg-gradient-to-b from-background to-dc-card/30",children:e.jsxs("div",{className:"container mx-auto max-w-6xl px-4 sm:px-6",children:[e.jsx("div",{className:"text-center mb-16",children:e.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-4",children:"What Our Users Do with Desktop Commander"})}),e.jsx("div",{className:"grid md:grid-cols-3 gap-6",children:t.map((r,l)=>{const o=s(r.color);return e.jsxs("div",{className:`p-6 rounded-2xl ${o.bg} border-2 ${o.border} transition-all hover:scale-[1.02]`,children:[e.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[e.jsx("div",{className:`w-12 h-12 rounded-full ${o.iconBg} flex items-center justify-center`,children:e.jsx(r.icon,{className:`w-6 h-6 ${o.iconColor}`})}),e.jsx("h3",{className:`text-xl font-bold ${o.titleColor}`,children:r.title})]}),e.jsx("ul",{className:"space-y-2",children:r.useCases.map((n,a)=>e.jsxs("li",{className:"flex items-start gap-2 text-foreground",children:[e.jsx("span",{className:`${o.iconColor} mt-1.5`,children:"β€’"}),e.jsx("span",{children:n})]},a))})]},l)})})]})})};export{h as default}; +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{C as i}from"./code.Bsz77KQU.js";import{B as c}from"./briefcase.BgtLLFHo.js";import{U as d}from"./users.8W-rffO0.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.DnxMVFvH.js";import"./index.D_oLZvzW.js";const h=()=>{const t=[{icon:i,title:"Developers",color:"blue",useCases:["Generate documentation from codebases","Update README files after code changes","Create architecture notes from existing code","Maintain technical specs alongside development"]},{icon:c,title:"Knowledge Workers",color:"purple",useCases:["Build and maintain project context documents","Transform meeting notes into actionable documentation","Create knowledge bases from scattered information","Organize Obsidian vaults and markdown files automatically"]},{icon:d,title:"Teams",color:"green",useCases:["Keep shared documentation current","Synchronize knowledge across tools","Create project overviews from scattered files","Maintain decision logs from discussions"]}],s=r=>{switch(r){case"blue":return{bg:"bg-blue-500/10",border:"border-blue-500/30",iconBg:"bg-blue-500/20",iconColor:"text-blue-400",titleColor:"text-blue-400"};case"purple":return{bg:"bg-purple-500/10",border:"border-purple-500/30",iconBg:"bg-purple-500/20",iconColor:"text-purple-400",titleColor:"text-purple-400"};case"green":return{bg:"bg-green-500/10",border:"border-green-500/30",iconBg:"bg-green-500/20",iconColor:"text-green-400",titleColor:"text-green-400"};default:return{bg:"bg-primary/10",border:"border-primary/30",iconBg:"bg-primary/20",iconColor:"text-primary",titleColor:"text-primary"}}};return e.jsx("section",{className:"py-16 md:py-24 bg-gradient-to-b from-background to-dc-card/30",children:e.jsxs("div",{className:"container mx-auto max-w-6xl px-4 sm:px-6",children:[e.jsx("div",{className:"text-center mb-16",children:e.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-4",children:"What Our Users Do with Desktop Commander"})}),e.jsx("div",{className:"grid md:grid-cols-3 gap-6",children:t.map((r,l)=>{const o=s(r.color);return e.jsxs("div",{className:`p-6 rounded-2xl ${o.bg} border-2 ${o.border} transition-all hover:scale-[1.02]`,children:[e.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[e.jsx("div",{className:`w-12 h-12 rounded-full ${o.iconBg} flex items-center justify-center`,children:e.jsx(r.icon,{className:`w-6 h-6 ${o.iconColor}`})}),e.jsx("h3",{className:`text-xl font-bold ${o.titleColor}`,children:r.title})]}),e.jsx("ul",{className:"space-y-2",children:r.useCases.map((n,a)=>e.jsxs("li",{className:"flex items-start gap-2 text-foreground",children:[e.jsx("span",{className:`${o.iconColor} mt-1.5`,children:"β€’"}),e.jsx("span",{children:n})]},a))})]},l)})})]})})};export{h as default}; diff --git a/docs/assets/KMProblemSection.BTNnyPuQ.js b/docs/assets/KMProblemSection.BcznS92E.js similarity index 88% rename from docs/assets/KMProblemSection.BTNnyPuQ.js rename to docs/assets/KMProblemSection.BcznS92E.js index ffbb9551..b4e9f269 100644 --- a/docs/assets/KMProblemSection.BTNnyPuQ.js +++ b/docs/assets/KMProblemSection.BcznS92E.js @@ -1 +1 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{C as t}from"./circle-alert.BAM225Eq.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.CJ67VFfW.js";import"./index.BaMLtrTp.js";const l=()=>e.jsx("section",{className:"py-16 md:py-20",children:e.jsx("div",{className:"container mx-auto max-w-5xl px-4 sm:px-6",children:e.jsxs("div",{className:"bg-gradient-to-br from-dc-card to-dc-surface rounded-2xl border border-dc-border p-8 md:p-12",children:[e.jsxs("div",{className:"flex items-start gap-4 mb-6",children:[e.jsx("div",{className:"p-3 rounded-xl bg-destructive/10 border border-destructive/20",children:e.jsx(t,{className:"w-6 h-6 text-destructive"})}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold",children:"Without organized context, AI tools can't deliver their full value."})]}),e.jsx("p",{className:"text-xl text-muted-foreground leading-relaxed",children:"Each AI conversation could build on the last. Instead, insights disappear when tabs close. Documentation goes stale. The same questions get asked repeatedly because the context that would make AI truly powerful remains fragmented across tools."})]})})});export{l as default}; +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{C as t}from"./circle-alert.DXvzqdgU.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.DnxMVFvH.js";import"./index.D_oLZvzW.js";const l=()=>e.jsx("section",{className:"py-16 md:py-20",children:e.jsx("div",{className:"container mx-auto max-w-5xl px-4 sm:px-6",children:e.jsxs("div",{className:"bg-gradient-to-br from-dc-card to-dc-surface rounded-2xl border border-dc-border p-8 md:p-12",children:[e.jsxs("div",{className:"flex items-start gap-4 mb-6",children:[e.jsx("div",{className:"p-3 rounded-xl bg-destructive/10 border border-destructive/20",children:e.jsx(t,{className:"w-6 h-6 text-destructive"})}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold",children:"Without organized context, AI tools can't deliver their full value."})]}),e.jsx("p",{className:"text-xl text-muted-foreground leading-relaxed",children:"Each AI conversation could build on the last. Instead, insights disappear when tabs close. Documentation goes stale. The same questions get asked repeatedly because the context that would make AI truly powerful remains fragmented across tools."})]})})});export{l as default}; diff --git a/docs/assets/KMSolutionSection.CwuFTOvz.js b/docs/assets/KMSolutionSection.C9HYrZcj.js similarity index 94% rename from docs/assets/KMSolutionSection.CwuFTOvz.js rename to docs/assets/KMSolutionSection.C9HYrZcj.js index 08abf411..6491062f 100644 --- a/docs/assets/KMSolutionSection.CwuFTOvz.js +++ b/docs/assets/KMSolutionSection.C9HYrZcj.js @@ -1,4 +1,4 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as m}from"./button.nz_ACiet.js";import{r as s}from"./index.BaMLtrTp.js";import{D as h}from"./download.B9D7xAuS.js";import{F as x}from"./folder-open.xHIhBzFI.js";import{M as p}from"./message-square.bamY-dpJ.js";import{c as o}from"./createLucideIcon.CJ67VFfW.js";import{A as u}from"./arrow-right.B_EnXtAw.js";import{S as g}from"./sparkles.sp_Qnyce.js";import{B as f}from"./book-open.BcQsGvDd.js";import{R as b}from"./refresh-cw.3-55pmhE.js";import"./index.yBjzXJbu.js";import"./utils.XhT4HDO9.js";/** +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as m}from"./button.D-OtCHTj.js";import{r as s}from"./index.D_oLZvzW.js";import{D as h}from"./download.DXDz0qZS.js";import{F as x}from"./folder-open.Z1dzfNLE.js";import{M as p}from"./message-square.O0_WvyiX.js";import{c as o}from"./createLucideIcon.DnxMVFvH.js";import{A as u}from"./arrow-right.DSKvTJYC.js";import{S as g}from"./sparkles.DoaLSLnS.js";import{B as f}from"./book-open.DUQscRpC.js";import{R as b}from"./refresh-cw.BaAeNbsO.js";import"./index.yBjzXJbu.js";import"./utils.9Q5QEYED.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/KMToolsSection.D8i3wd7N.js b/docs/assets/KMToolsSection.caDNVEBB.js similarity index 93% rename from docs/assets/KMToolsSection.D8i3wd7N.js rename to docs/assets/KMToolsSection.caDNVEBB.js index 7cee9a61..824c3c03 100644 --- a/docs/assets/KMToolsSection.D8i3wd7N.js +++ b/docs/assets/KMToolsSection.caDNVEBB.js @@ -1 +1 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{C as i}from"./circle-check-big.DKhWBpjr.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.CJ67VFfW.js";import"./index.BaMLtrTp.js";const x=()=>{const t=[{name:"Obsidian",icon:"πŸ““",features:["Writes new notes directly to your vault","Updates existing notes with new information","Creates backlinks and tags automatically"]},{name:"VS Code & Codebases",icon:"πŸ’»",features:["Generates documentation from code","Updates README files automatically","Creates architecture notes from your codebase"]},{name:"Google Drive",icon:"☁️",features:["Edits documents in place","Organizes files across folders","Creates summary documents"]},{name:"Local Markdown Files",icon:"πŸ“",features:["Complete privacyβ€”everything stays on your machine","Works with any markdown-based system","Git-friendly for version control"]}];return e.jsx("section",{className:"py-16 md:py-24",children:e.jsxs("div",{className:"container mx-auto max-w-6xl px-4 sm:px-6",children:[e.jsxs("div",{className:"text-center mb-16",children:[e.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-4",children:"Works With Your Existing Tools"}),e.jsx("p",{className:"text-lg md:text-xl text-muted-foreground max-w-3xl mx-auto",children:"Desktop Commander enhances the tools you already use, without replacing them"})]}),e.jsx("div",{className:"grid md:grid-cols-2 gap-6",children:t.map((s,a)=>e.jsxs("div",{className:"p-6 rounded-2xl border border-dc-border bg-dc-card hover:border-primary/30 transition-all",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[e.jsx("span",{className:"text-3xl",children:s.icon}),e.jsxs("h3",{className:"text-xl font-bold",children:["With ",s.name]})]}),e.jsx("ul",{className:"space-y-2",children:s.features.map((r,o)=>e.jsxs("li",{className:"flex items-start gap-2 text-muted-foreground",children:[e.jsx(i,{className:"w-4 h-4 text-primary mt-1 shrink-0"}),e.jsx("span",{children:r})]},o))})]},a))})]})})};export{x as default}; +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{C as i}from"./circle-check-big.B7sFB_G4.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.DnxMVFvH.js";import"./index.D_oLZvzW.js";const x=()=>{const t=[{name:"Obsidian",icon:"πŸ““",features:["Writes new notes directly to your vault","Updates existing notes with new information","Creates backlinks and tags automatically"]},{name:"VS Code & Codebases",icon:"πŸ’»",features:["Generates documentation from code","Updates README files automatically","Creates architecture notes from your codebase"]},{name:"Google Drive",icon:"☁️",features:["Edits documents in place","Organizes files across folders","Creates summary documents"]},{name:"Local Markdown Files",icon:"πŸ“",features:["Complete privacyβ€”everything stays on your machine","Works with any markdown-based system","Git-friendly for version control"]}];return e.jsx("section",{className:"py-16 md:py-24",children:e.jsxs("div",{className:"container mx-auto max-w-6xl px-4 sm:px-6",children:[e.jsxs("div",{className:"text-center mb-16",children:[e.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-4",children:"Works With Your Existing Tools"}),e.jsx("p",{className:"text-lg md:text-xl text-muted-foreground max-w-3xl mx-auto",children:"Desktop Commander enhances the tools you already use, without replacing them"})]}),e.jsx("div",{className:"grid md:grid-cols-2 gap-6",children:t.map((s,a)=>e.jsxs("div",{className:"p-6 rounded-2xl border border-dc-border bg-dc-card hover:border-primary/30 transition-all",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[e.jsx("span",{className:"text-3xl",children:s.icon}),e.jsxs("h3",{className:"text-xl font-bold",children:["With ",s.name]})]}),e.jsx("ul",{className:"space-y-2",children:s.features.map((r,o)=>e.jsxs("li",{className:"flex items-start gap-2 text-muted-foreground",children:[e.jsx(i,{className:"w-4 h-4 text-primary mt-1 shrink-0"}),e.jsx("span",{children:r})]},o))})]},a))})]})})};export{x as default}; diff --git a/docs/assets/KMWhyDifferentSection.Bm0nGp7t.js b/docs/assets/KMWhyDifferentSection.BnqP5TxB.js similarity index 92% rename from docs/assets/KMWhyDifferentSection.Bm0nGp7t.js rename to docs/assets/KMWhyDifferentSection.BnqP5TxB.js index 5bc3fce2..e09aa854 100644 --- a/docs/assets/KMWhyDifferentSection.Bm0nGp7t.js +++ b/docs/assets/KMWhyDifferentSection.BnqP5TxB.js @@ -1 +1 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{C as n}from"./circle-x.C5ZnEmA8.js";import{C as l}from"./circle-check-big.DKhWBpjr.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.CJ67VFfW.js";import"./index.BaMLtrTp.js";const h=()=>{const r=["Upload or paste context files every session","Re-explain project background each time","Copy valuable answers before tab closes",'Manually maintain what the AI should "remember"',"Start from zero in the next conversation"],a=['Point to knowledge base folder once: "Use ~/Documents/ProjectContext"',"AI automatically finds relevant context for each question","Answers build on existing knowledge","Updates context files as work progresses","Every conversation starts where the last one ended"];return e.jsx("section",{className:"py-16 md:py-24",children:e.jsxs("div",{className:"container mx-auto max-w-6xl px-4 sm:px-6",children:[e.jsx("div",{className:"text-center mb-16",children:e.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-4",children:"Why Desktop Commander is Different"})}),e.jsxs("div",{className:"mb-12",children:[e.jsx("h3",{className:"text-2xl md:text-3xl font-bold text-center mb-8",children:"Context That Persists Across Conversations"}),e.jsxs("div",{className:"grid lg:grid-cols-2 gap-8",children:[e.jsxs("div",{className:"flex items-start gap-4 p-6 rounded-xl bg-red-500/5 border-2 border-red-500/20",children:[e.jsx("div",{className:"shrink-0 w-12 h-12 rounded-full bg-red-500/10 flex items-center justify-center",children:e.jsx(n,{className:"w-6 h-6 text-red-400"})}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-xl font-semibold mb-4 text-red-400",children:"Traditional AI Chat"}),e.jsx("ul",{className:"space-y-3 text-muted-foreground",children:r.map((t,s)=>e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsxs("span",{className:"text-red-400 font-mono text-sm mt-0.5",children:[s+1,"."]}),e.jsx("span",{children:t})]},s))})]})]}),e.jsxs("div",{className:"flex items-start gap-4 p-6 rounded-xl bg-green-500/5 border-2 border-green-500/20",children:[e.jsx("div",{className:"shrink-0 w-12 h-12 rounded-full bg-green-500/10 flex items-center justify-center",children:e.jsx(l,{className:"w-6 h-6 text-green-400"})}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-xl font-semibold mb-4 text-green-400",children:"With Desktop Commander"}),e.jsx("ul",{className:"space-y-3 text-muted-foreground",children:a.map((t,s)=>e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsxs("span",{className:"text-green-400 font-mono text-sm mt-0.5",children:[s+1,"."]}),e.jsx("span",{children:t})]},s))})]})]})]})]})]})})};export{h as default}; +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{C as n}from"./circle-x.FG6uLdJu.js";import{C as l}from"./circle-check-big.B7sFB_G4.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.DnxMVFvH.js";import"./index.D_oLZvzW.js";const h=()=>{const r=["Upload or paste context files every session","Re-explain project background each time","Copy valuable answers before tab closes",'Manually maintain what the AI should "remember"',"Start from zero in the next conversation"],a=['Point to knowledge base folder once: "Use ~/Documents/ProjectContext"',"AI automatically finds relevant context for each question","Answers build on existing knowledge","Updates context files as work progresses","Every conversation starts where the last one ended"];return e.jsx("section",{className:"py-16 md:py-24",children:e.jsxs("div",{className:"container mx-auto max-w-6xl px-4 sm:px-6",children:[e.jsx("div",{className:"text-center mb-16",children:e.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-4",children:"Why Desktop Commander is Different"})}),e.jsxs("div",{className:"mb-12",children:[e.jsx("h3",{className:"text-2xl md:text-3xl font-bold text-center mb-8",children:"Context That Persists Across Conversations"}),e.jsxs("div",{className:"grid lg:grid-cols-2 gap-8",children:[e.jsxs("div",{className:"flex items-start gap-4 p-6 rounded-xl bg-red-500/5 border-2 border-red-500/20",children:[e.jsx("div",{className:"shrink-0 w-12 h-12 rounded-full bg-red-500/10 flex items-center justify-center",children:e.jsx(n,{className:"w-6 h-6 text-red-400"})}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-xl font-semibold mb-4 text-red-400",children:"Traditional AI Chat"}),e.jsx("ul",{className:"space-y-3 text-muted-foreground",children:r.map((t,s)=>e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsxs("span",{className:"text-red-400 font-mono text-sm mt-0.5",children:[s+1,"."]}),e.jsx("span",{children:t})]},s))})]})]}),e.jsxs("div",{className:"flex items-start gap-4 p-6 rounded-xl bg-green-500/5 border-2 border-green-500/20",children:[e.jsx("div",{className:"shrink-0 w-12 h-12 rounded-full bg-green-500/10 flex items-center justify-center",children:e.jsx(l,{className:"w-6 h-6 text-green-400"})}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-xl font-semibold mb-4 text-green-400",children:"With Desktop Commander"}),e.jsx("ul",{className:"space-y-3 text-muted-foreground",children:a.map((t,s)=>e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsxs("span",{className:"text-green-400 font-mono text-sm mt-0.5",children:[s+1,"."]}),e.jsx("span",{children:t})]},s))})]})]})]})]})]})})};export{h as default}; diff --git a/docs/assets/KnowledgeManagementHero.COFe7Rp0.js b/docs/assets/KnowledgeManagementHero.CqqXM7Bv.js similarity index 90% rename from docs/assets/KnowledgeManagementHero.COFe7Rp0.js rename to docs/assets/KnowledgeManagementHero.CqqXM7Bv.js index 8b4cda01..283a4c97 100644 --- a/docs/assets/KnowledgeManagementHero.COFe7Rp0.js +++ b/docs/assets/KnowledgeManagementHero.CqqXM7Bv.js @@ -1 +1 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as s}from"./button.nz_ACiet.js";import{A as r}from"./arrow-right.B_EnXtAw.js";import"./index.yBjzXJbu.js";import"./index.BaMLtrTp.js";import"./utils.XhT4HDO9.js";import"./createLucideIcon.CJ67VFfW.js";const c=()=>e.jsx("section",{className:"pt-32 pb-16 md:pt-40 md:pb-20",children:e.jsx("div",{className:"container mx-auto max-w-6xl px-4 sm:px-6",children:e.jsxs("div",{className:"flex flex-col items-center text-center space-y-8",children:[e.jsxs("h1",{className:"text-4xl sm:text-5xl lg:text-6xl font-bold tracking-tight max-w-4xl",children:["Your AI knowledge assistant β€”"," ",e.jsx("span",{className:"text-primary",children:"organize your knowledge in local filesystem by talking with AI"})]}),e.jsx("p",{className:"text-lg sm:text-xl text-muted-foreground max-w-3xl leading-relaxed",children:"Keep your knowledge base up-to-date automatically by directly managing your markdown files, documentation, and notes."}),e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-3 pt-2",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:"Works with:"}),e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-2",children:[e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"Obsidian"}),e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"Google Drive"}),e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"VS Code"}),e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"Local Files"})]})]}),e.jsx("div",{className:"flex flex-col sm:flex-row gap-4 pt-4",children:e.jsx(s,{size:"lg",asChild:!0,className:"group",children:e.jsxs("a",{href:"/product/early-access/",children:["Join the Waitlist",e.jsx(r,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})})})]})})});export{c as default}; +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as s}from"./button.D-OtCHTj.js";import{A as r}from"./arrow-right.DSKvTJYC.js";import"./index.yBjzXJbu.js";import"./index.D_oLZvzW.js";import"./utils.9Q5QEYED.js";import"./createLucideIcon.DnxMVFvH.js";const c=()=>e.jsx("section",{className:"pt-32 pb-16 md:pt-40 md:pb-20",children:e.jsx("div",{className:"container mx-auto max-w-6xl px-4 sm:px-6",children:e.jsxs("div",{className:"flex flex-col items-center text-center space-y-8",children:[e.jsxs("h1",{className:"text-4xl sm:text-5xl lg:text-6xl font-bold tracking-tight max-w-4xl",children:["Your AI knowledge assistant β€”"," ",e.jsx("span",{className:"text-primary",children:"organize your knowledge in local filesystem by talking with AI"})]}),e.jsx("p",{className:"text-lg sm:text-xl text-muted-foreground max-w-3xl leading-relaxed",children:"Keep your knowledge base up-to-date automatically by directly managing your markdown files, documentation, and notes."}),e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-3 pt-2",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:"Works with:"}),e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-2",children:[e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"Obsidian"}),e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"Google Drive"}),e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"VS Code"}),e.jsx("span",{className:"px-3 py-1.5 rounded-full bg-dc-surface border border-dc-border text-sm font-medium",children:"Local Files"})]})]}),e.jsx("div",{className:"flex flex-col sm:flex-row gap-4 pt-4",children:e.jsx(s,{size:"lg",asChild:!0,className:"group",children:e.jsxs("a",{href:"/product/early-access/",children:["Join the Waitlist",e.jsx(r,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})})})]})})});export{c as default}; diff --git a/docs/assets/NavigationAstro.BtK2cZNx.js b/docs/assets/NavigationAstro.BtK2cZNx.js deleted file mode 100644 index 6f2a9f31..00000000 --- a/docs/assets/NavigationAstro.BtK2cZNx.js +++ /dev/null @@ -1 +0,0 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as r}from"./button.nz_ACiet.js";import{B as n}from"./circle.KGuz404-.js";import{d,D as x,a as u,b as g,c as a,S as f,e as b,M as j,f as C}from"./dc-logo.CKbgGFVq.js";import{r as N}from"./index.BaMLtrTp.js";import{u as k}from"./useAnalyticsAstro.CR8fdMXS.js";import{C as y}from"./chevron-down.B6Si1q7U.js";import{E as i}from"./external-link.BigcEWhC.js";import{T as l}from"./terminal.CvJQ-WtW.js";import"./index.yBjzXJbu.js";import"./utils.XhT4HDO9.js";import"./index.BlsO67so.js";import"./index.BbTPjBLC.js";import"./index.vFQDSFae.js";import"./index.CyN3cLSG.js";import"./createLucideIcon.CJ67VFfW.js";import"./index.lqPDcyCD.js";import"./index.C9IP8clr.js";import"./chevron-right.BwvlrKau.js";import"./check.eE7yIrYi.js";import"./x.B1hOxjOp.js";import"./tracking.znU5Ou_b.js";const J=()=>{const[m,o]=N.useState(!1),{trackNavigation:s}=k(),t=(c,h,p="internal")=>{s(c,h,p),o(!1)};return e.jsx("nav",{className:"fixed left-0 right-0 z-50 border-b border-dc-border bg-background/80 backdrop-blur-md transition-all duration-300",style:{top:"var(--banner-height, 0px)"},children:e.jsx("div",{className:"container mx-auto max-w-7xl px-4 sm:px-6 py-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-8",children:[e.jsx("a",{href:"https://desktopcommander.app",className:"hover:opacity-80 transition-opacity flex-shrink-0",children:e.jsx("img",{src:d.src,alt:"Desktop Commander",className:"h-7 sm:h-8 w-auto min-w-[270px]",width:"200",height:"32"})}),e.jsxs("div",{className:"hidden lg:flex items-center gap-6",children:[e.jsx(r,{variant:"ghost",size:"sm",asChild:!0,children:e.jsx("a",{href:"/#use-cases",className:"text-white hover:text-white/80 font-medium",onClick:()=>s("Use Cases","/#use-cases","internal"),children:"Use Cases"})}),e.jsx(r,{variant:"ghost",size:"sm",asChild:!0,children:e.jsx("a",{href:"/library",className:"text-white hover:text-white/80 font-medium",onClick:()=>s("Prompts","/library","internal"),children:"Prompts"})}),e.jsx(r,{variant:"ghost",size:"sm",asChild:!0,children:e.jsx("a",{href:"/#community",className:"text-white hover:text-white/80 font-medium",onClick:()=>s("Community","/#community","internal"),children:"Community"})}),e.jsx(r,{variant:"ghost",size:"sm",asChild:!0,children:e.jsxs("a",{href:"/careers",className:"text-white hover:text-white/80 font-medium relative pr-12",onClick:()=>s("Careers","/careers","internal"),children:["Careers",e.jsx(n,{variant:"default",className:"absolute -top-1 right-2 bg-green-600 hover:bg-green-700 text-white text-[9px] px-1.5 py-0.5",children:"Hiring"})]})}),e.jsx(r,{variant:"ghost",size:"sm",asChild:!0,children:e.jsx("a",{href:"https://desktopcommander.app/blog/",target:"_blank",rel:"noopener noreferrer",className:"text-white hover:text-white/80 font-medium",onClick:()=>s("Blog","https://desktopcommander.app/blog/","external"),children:"Blog"})}),e.jsxs(x,{children:[e.jsx(u,{asChild:!0,children:e.jsxs(r,{variant:"ghost",size:"sm",className:"text-white hover:text-white/80 font-medium",children:["Resources",e.jsx(y,{className:"ml-1 h-3 w-3"})]})}),e.jsxs(g,{align:"start",className:"w-48",children:[e.jsx(a,{asChild:!0,children:e.jsx("a",{href:"https://blog.desktopcommander.app/about/",target:"_blank",rel:"noopener noreferrer",className:"flex items-center cursor-pointer",children:"About"})}),e.jsx(a,{asChild:!0,children:e.jsx("a",{href:"https://blog.desktopcommander.app/contact/",target:"_blank",rel:"noopener noreferrer",className:"flex items-center cursor-pointer",children:"Contact"})}),e.jsx(a,{asChild:!0,children:e.jsx("a",{href:"/#faq",className:"flex items-center cursor-pointer",children:"FAQ"})}),e.jsx(a,{asChild:!0,children:e.jsxs("a",{href:"https://github.com/wonderwhy-er/DesktopCommanderMCP",target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-2 cursor-pointer",children:["GitHub",e.jsx(i,{className:"ml-auto h-3 w-3"})]})})]})]})]})]}),e.jsx("div",{className:"hidden lg:flex items-center gap-3",children:e.jsx(r,{size:"default",asChild:!0,className:"bg-blue-600 hover:bg-blue-700 text-white px-6 py-2",children:e.jsxs("a",{href:"/#installation",className:"flex items-center gap-2",onClick:()=>s("Install","/#installation","internal"),children:[e.jsx(l,{className:"h-4 w-4"}),"Install"]})})}),e.jsxs(f,{open:m,onOpenChange:o,children:[e.jsx(b,{asChild:!0,children:e.jsx(r,{variant:"ghost",size:"icon",className:"lg:hidden",children:e.jsx(j,{className:"h-5 w-5"})})}),e.jsx(C,{side:"right",className:"w-[300px] sm:w-[400px]",children:e.jsxs("nav",{className:"flex flex-col gap-4 mt-8",children:[e.jsx("a",{href:"/#use-cases",onClick:()=>t("Use Cases","/#use-cases"),className:"text-lg font-medium px-2 py-1 hover:text-primary transition-colors",children:"Use Cases"}),e.jsx("a",{href:"/library",onClick:()=>t("Prompts","/library"),className:"text-lg font-medium px-2 py-1 hover:text-primary transition-colors",children:"Prompts"}),e.jsx("a",{href:"/#community",onClick:()=>t("Community","/#community"),className:"text-lg font-medium px-2 py-1 hover:text-primary transition-colors",children:"Community"}),e.jsxs("a",{href:"/careers",onClick:()=>t("Careers","/careers"),className:"text-lg font-medium px-2 py-1 hover:text-primary transition-colors flex items-center gap-2",children:["Careers",e.jsx(n,{variant:"default",className:"bg-green-600 text-white text-[9px] px-1.5 py-0.5",children:"Hiring"})]}),e.jsx("a",{href:"https://desktopcommander.app/blog/",target:"_blank",rel:"noopener noreferrer",onClick:()=>t("Blog","https://desktopcommander.app/blog/","external"),className:"text-lg font-medium px-2 py-1 hover:text-primary transition-colors",children:"Blog"}),e.jsx("div",{className:"border-t border-border my-2"}),e.jsx("a",{href:"https://blog.desktopcommander.app/about/",target:"_blank",rel:"noopener noreferrer",onClick:()=>t("About","https://blog.desktopcommander.app/about/","external"),className:"text-lg font-medium px-2 py-1 hover:text-primary transition-colors",children:"About"}),e.jsx("a",{href:"https://blog.desktopcommander.app/contact/",target:"_blank",rel:"noopener noreferrer",onClick:()=>t("Contact","https://blog.desktopcommander.app/contact/","external"),className:"text-lg font-medium px-2 py-1 hover:text-primary transition-colors",children:"Contact"}),e.jsx("a",{href:"/#faq",onClick:()=>t("FAQ","/#faq"),className:"text-lg font-medium px-2 py-1 hover:text-primary transition-colors",children:"FAQ"}),e.jsxs("a",{href:"https://github.com/wonderwhy-er/DesktopCommanderMCP",target:"_blank",rel:"noopener noreferrer",onClick:()=>t("GitHub","https://github.com/wonderwhy-er/DesktopCommanderMCP","external"),className:"text-lg font-medium px-2 py-1 hover:text-primary transition-colors flex items-center gap-2",children:["GitHub",e.jsx(i,{className:"h-4 w-4"})]}),e.jsx(r,{size:"default",asChild:!0,className:"mt-4 bg-blue-600 hover:bg-blue-700 text-white",children:e.jsxs("a",{href:"/#installation",className:"flex items-center gap-2",onClick:()=>t("Install","/#installation"),children:[e.jsx(l,{className:"h-4 w-4"}),"Install"]})})]})})]})]})})})};export{J as default}; diff --git a/docs/assets/NavigationAstro.Ir-dIPbk.js b/docs/assets/NavigationAstro.Ir-dIPbk.js new file mode 100644 index 00000000..5fa30890 --- /dev/null +++ b/docs/assets/NavigationAstro.Ir-dIPbk.js @@ -0,0 +1 @@ +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as r}from"./button.D-OtCHTj.js";import{B as n}from"./index.DNo0B2hs.js";import{d,D as x,a as u,b as g,c as a,S as f,e as b,M as j,f as C}from"./dc-logo.Cpkmi9_C.js";import{r as N}from"./index.D_oLZvzW.js";import{u as k}from"./useAnalyticsAstro.DaPc9vxZ.js";import{C as y}from"./chevron-down.BAQmmeQZ.js";import{E as i}from"./external-link.DsSVi18J.js";import{T as l}from"./terminal.BX6Ycj7A.js";import"./index.yBjzXJbu.js";import"./utils.9Q5QEYED.js";import"./createLucideIcon.DnxMVFvH.js";import"./index.5q9h5iS_.js";import"./index.BbTPjBLC.js";import"./index.DO6kBsrn.js";import"./index.xUA8L87E.js";import"./index.DAP1SQuk.js";import"./index.CKNnz_F1.js";import"./chevron-right.D8b_fnk7.js";import"./check.BxIsZM2Y.js";import"./x.C6Iw0U2F.js";import"./tracking.znU5Ou_b.js";const J=()=>{const[m,o]=N.useState(!1),{trackNavigation:s}=k(),t=(c,h,p="internal")=>{s(c,h,p),o(!1)};return e.jsx("nav",{className:"fixed left-0 right-0 z-50 border-b border-dc-border bg-background/80 backdrop-blur-md transition-all duration-300",style:{top:"var(--banner-height, 0px)"},children:e.jsx("div",{className:"container mx-auto max-w-7xl px-4 sm:px-6 py-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-8",children:[e.jsx("a",{href:"https://desktopcommander.app",className:"hover:opacity-80 transition-opacity flex-shrink-0",children:e.jsx("img",{src:d.src,alt:"Desktop Commander",className:"h-7 sm:h-8 w-auto min-w-[270px]",width:"200",height:"32"})}),e.jsxs("div",{className:"hidden lg:flex items-center gap-6",children:[e.jsx(r,{variant:"ghost",size:"sm",asChild:!0,children:e.jsx("a",{href:"/#use-cases",className:"text-white hover:text-white/80 font-medium",onClick:()=>s("Use Cases","/#use-cases","internal"),children:"Use Cases"})}),e.jsx(r,{variant:"ghost",size:"sm",asChild:!0,children:e.jsx("a",{href:"/library",className:"text-white hover:text-white/80 font-medium",onClick:()=>s("Prompts","/library","internal"),children:"Prompts"})}),e.jsx(r,{variant:"ghost",size:"sm",asChild:!0,children:e.jsx("a",{href:"/#community",className:"text-white hover:text-white/80 font-medium",onClick:()=>s("Community","/#community","internal"),children:"Community"})}),e.jsx(r,{variant:"ghost",size:"sm",asChild:!0,children:e.jsxs("a",{href:"/careers",className:"text-white hover:text-white/80 font-medium relative pr-12",onClick:()=>s("Careers","/careers","internal"),children:["Careers",e.jsx(n,{variant:"default",className:"absolute -top-1 right-2 bg-green-600 hover:bg-green-700 text-white text-[9px] px-1.5 py-0.5",children:"Hiring"})]})}),e.jsx(r,{variant:"ghost",size:"sm",asChild:!0,children:e.jsx("a",{href:"https://desktopcommander.app/blog/",target:"_blank",rel:"noopener noreferrer",className:"text-white hover:text-white/80 font-medium",onClick:()=>s("Blog","https://desktopcommander.app/blog/","external"),children:"Blog"})}),e.jsxs(x,{children:[e.jsx(u,{asChild:!0,children:e.jsxs(r,{variant:"ghost",size:"sm",className:"text-white hover:text-white/80 font-medium",children:["Resources",e.jsx(y,{className:"ml-1 h-3 w-3"})]})}),e.jsxs(g,{align:"start",className:"w-48",children:[e.jsx(a,{asChild:!0,children:e.jsx("a",{href:"https://blog.desktopcommander.app/about/",target:"_blank",rel:"noopener noreferrer",className:"flex items-center cursor-pointer",children:"About"})}),e.jsx(a,{asChild:!0,children:e.jsx("a",{href:"https://blog.desktopcommander.app/contact/",target:"_blank",rel:"noopener noreferrer",className:"flex items-center cursor-pointer",children:"Contact"})}),e.jsx(a,{asChild:!0,children:e.jsx("a",{href:"/#faq",className:"flex items-center cursor-pointer",children:"FAQ"})}),e.jsx(a,{asChild:!0,children:e.jsxs("a",{href:"https://github.com/wonderwhy-er/DesktopCommanderMCP",target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-2 cursor-pointer",children:["GitHub",e.jsx(i,{className:"ml-auto h-3 w-3"})]})})]})]})]})]}),e.jsx("div",{className:"hidden lg:flex items-center gap-3",children:e.jsx(r,{size:"default",asChild:!0,className:"bg-blue-600 hover:bg-blue-700 text-white px-6 py-2",children:e.jsxs("a",{href:"/#installation",className:"flex items-center gap-2",onClick:()=>s("Install","/#installation","internal"),children:[e.jsx(l,{className:"h-4 w-4"}),"Install"]})})}),e.jsxs(f,{open:m,onOpenChange:o,children:[e.jsx(b,{asChild:!0,children:e.jsx(r,{variant:"ghost",size:"icon",className:"lg:hidden",children:e.jsx(j,{className:"h-5 w-5"})})}),e.jsx(C,{side:"right",className:"w-[300px] sm:w-[400px]",children:e.jsxs("nav",{className:"flex flex-col gap-4 mt-8",children:[e.jsx("a",{href:"/#use-cases",onClick:()=>t("Use Cases","/#use-cases"),className:"text-lg font-medium px-2 py-1 hover:text-primary transition-colors",children:"Use Cases"}),e.jsx("a",{href:"/library",onClick:()=>t("Prompts","/library"),className:"text-lg font-medium px-2 py-1 hover:text-primary transition-colors",children:"Prompts"}),e.jsx("a",{href:"/#community",onClick:()=>t("Community","/#community"),className:"text-lg font-medium px-2 py-1 hover:text-primary transition-colors",children:"Community"}),e.jsxs("a",{href:"/careers",onClick:()=>t("Careers","/careers"),className:"text-lg font-medium px-2 py-1 hover:text-primary transition-colors flex items-center gap-2",children:["Careers",e.jsx(n,{variant:"default",className:"bg-green-600 text-white text-[9px] px-1.5 py-0.5",children:"Hiring"})]}),e.jsx("a",{href:"https://desktopcommander.app/blog/",target:"_blank",rel:"noopener noreferrer",onClick:()=>t("Blog","https://desktopcommander.app/blog/","external"),className:"text-lg font-medium px-2 py-1 hover:text-primary transition-colors",children:"Blog"}),e.jsx("div",{className:"border-t border-border my-2"}),e.jsx("a",{href:"https://blog.desktopcommander.app/about/",target:"_blank",rel:"noopener noreferrer",onClick:()=>t("About","https://blog.desktopcommander.app/about/","external"),className:"text-lg font-medium px-2 py-1 hover:text-primary transition-colors",children:"About"}),e.jsx("a",{href:"https://blog.desktopcommander.app/contact/",target:"_blank",rel:"noopener noreferrer",onClick:()=>t("Contact","https://blog.desktopcommander.app/contact/","external"),className:"text-lg font-medium px-2 py-1 hover:text-primary transition-colors",children:"Contact"}),e.jsx("a",{href:"/#faq",onClick:()=>t("FAQ","/#faq"),className:"text-lg font-medium px-2 py-1 hover:text-primary transition-colors",children:"FAQ"}),e.jsxs("a",{href:"https://github.com/wonderwhy-er/DesktopCommanderMCP",target:"_blank",rel:"noopener noreferrer",onClick:()=>t("GitHub","https://github.com/wonderwhy-er/DesktopCommanderMCP","external"),className:"text-lg font-medium px-2 py-1 hover:text-primary transition-colors flex items-center gap-2",children:["GitHub",e.jsx(i,{className:"h-4 w-4"})]}),e.jsx(r,{size:"default",asChild:!0,className:"mt-4 bg-blue-600 hover:bg-blue-700 text-white",children:e.jsxs("a",{href:"/#installation",className:"flex items-center gap-2",onClick:()=>t("Install","/#installation"),children:[e.jsx(l,{className:"h-4 w-4"}),"Install"]})})]})})]})]})})})};export{J as default}; diff --git a/docs/assets/NavigationLandingPage.CeWKbe75.js b/docs/assets/NavigationLandingPage.CeWKbe75.js new file mode 100644 index 00000000..3a7345a4 --- /dev/null +++ b/docs/assets/NavigationLandingPage.CeWKbe75.js @@ -0,0 +1 @@ +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as t}from"./button.D-OtCHTj.js";import{B as l}from"./index.DNo0B2hs.js";import{d as b,D as d,a as m,b as c,c as i,S as w,e as k,M as C,f as N}from"./dc-logo.Cpkmi9_C.js";import{r as v}from"./index.D_oLZvzW.js";import{u as y}from"./useAnalyticsAstro.DaPc9vxZ.js";import{C as h}from"./chevron-down.BAQmmeQZ.js";import{E as a}from"./external-link.DsSVi18J.js";import{A as p}from"./arrow-right.DSKvTJYC.js";import"./index.yBjzXJbu.js";import"./utils.9Q5QEYED.js";import"./createLucideIcon.DnxMVFvH.js";import"./index.5q9h5iS_.js";import"./index.BbTPjBLC.js";import"./index.DO6kBsrn.js";import"./index.xUA8L87E.js";import"./index.DAP1SQuk.js";import"./index.CKNnz_F1.js";import"./chevron-right.D8b_fnk7.js";import"./check.BxIsZM2Y.js";import"./x.C6Iw0U2F.js";import"./tracking.znU5Ou_b.js";const U=()=>{const[x,o]=v.useState(!1),{trackNavigation:r,trackCustomEvent:u}=y(),s=(g,f,j="internal")=>{r(g,f,j),o(!1)},n=()=>{u("download_cta_clicked",{location:"navigation",button_text:"Download DC"})};return e.jsx("nav",{className:"fixed left-0 right-0 z-50 border-b border-dc-border bg-background/80 backdrop-blur-md transition-all duration-300",style:{top:"var(--banner-height, 0px)"},children:e.jsx("div",{className:"container mx-auto max-w-7xl px-4 sm:px-6 py-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-8",children:[e.jsx("a",{href:"https://desktopcommander.app",className:"hover:opacity-80 transition-opacity flex-shrink-0",children:e.jsx("img",{src:b.src,alt:"Desktop Commander",className:"h-7 sm:h-8 w-auto min-w-[270px]",width:"200",height:"32"})}),e.jsxs("div",{className:"hidden lg:flex items-center gap-6",children:[e.jsx(t,{variant:"ghost",size:"sm",asChild:!0,children:e.jsx("a",{href:"/library/",className:"text-white hover:text-white/80 font-medium",onClick:()=>r("Prompts","/library/","internal"),children:"Prompts"})}),e.jsxs(d,{children:[e.jsx(m,{asChild:!0,children:e.jsxs(t,{variant:"ghost",size:"sm",className:"text-white hover:text-white/80 font-medium",children:["Community",e.jsx(h,{className:"ml-1 h-4 w-4"})]})}),e.jsxs(c,{align:"start",className:"bg-dc-card border-dc-border",children:[e.jsx(i,{asChild:!0,children:e.jsxs("a",{href:"https://discord.gg/desktop-commander",target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-between cursor-pointer",onClick:()=>r("Discord","https://discord.gg/desktop-commander","external"),children:["Discord",e.jsx(a,{className:"ml-2 h-3 w-3"})]})}),e.jsx(i,{asChild:!0,children:e.jsxs("a",{href:"https://www.reddit.com/r/DesktopCommander/",target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-between cursor-pointer",onClick:()=>r("Reddit","https://www.reddit.com/r/DesktopCommander/","external"),children:["Reddit",e.jsx(a,{className:"ml-2 h-3 w-3"})]})})]})]}),e.jsxs(d,{children:[e.jsx(m,{asChild:!0,children:e.jsxs(t,{variant:"ghost",size:"sm",className:"text-white hover:text-white/80 font-medium",children:["Resources",e.jsx(h,{className:"ml-1 h-4 w-4"})]})}),e.jsxs(c,{align:"start",className:"bg-dc-card border-dc-border",children:[e.jsx(i,{asChild:!0,children:e.jsxs("a",{href:"https://github.com/desktop-commander/desktop-commander",target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-between cursor-pointer",onClick:()=>r("GitHub","https://github.com/desktop-commander/desktop-commander","external"),children:["GitHub",e.jsx(a,{className:"ml-2 h-3 w-3"})]})}),e.jsx(i,{asChild:!0,children:e.jsxs("a",{href:"/careers/",className:"cursor-pointer",onClick:()=>r("Careers","/careers/","internal"),children:["Careers",e.jsx(l,{variant:"secondary",className:"ml-2 bg-green-500/10 text-green-400 border-green-500/20 text-xs px-1.5 py-0",children:"Hiring"})]})})]})]}),e.jsx(t,{variant:"ghost",size:"sm",asChild:!0,children:e.jsx("a",{href:"https://desktopcommander.app/blog",className:"text-white hover:text-white/80 font-medium",onClick:()=>r("Blog","https://desktopcommander.app/blog","internal"),children:"Blog"})}),e.jsx(t,{variant:"ghost",size:"sm",asChild:!0,children:e.jsx("a",{href:"https://blog.desktopcommander.app/about/",className:"text-white hover:text-white/80 font-medium",onClick:()=>r("About","https://blog.desktopcommander.app/about/","internal"),children:"About"})})]})]}),e.jsx("div",{className:"hidden lg:flex items-center gap-3",children:e.jsx(t,{size:"sm",className:"shadow-lg shadow-primary/20 group",asChild:!0,children:e.jsxs("a",{href:"/product/early-access/",onClick:n,children:["Join the Waitlist",e.jsx(p,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})})}),e.jsx("div",{className:"lg:hidden",children:e.jsxs(w,{open:x,onOpenChange:o,children:[e.jsx(k,{asChild:!0,children:e.jsx(t,{variant:"ghost",size:"sm",children:e.jsx(C,{className:"h-5 w-5"})})}),e.jsx(N,{side:"right",className:"w-full sm:w-[400px] bg-dc-card border-dc-border",children:e.jsxs("div",{className:"flex flex-col gap-4 mt-8",children:[e.jsx(t,{variant:"ghost",size:"sm",asChild:!0,children:e.jsx("a",{href:"/library/",className:"text-white hover:text-white/80 font-medium justify-start",onClick:()=>s("Prompts","/library/","internal"),children:"Prompts"})}),e.jsxs("div",{className:"border-t border-dc-border pt-4",children:[e.jsx("p",{className:"text-sm font-medium text-muted-foreground mb-2 px-3",children:"Community"}),e.jsx(t,{variant:"ghost",size:"sm",asChild:!0,children:e.jsxs("a",{href:"https://discord.gg/desktop-commander",target:"_blank",rel:"noopener noreferrer",className:"text-white hover:text-white/80 font-medium justify-start w-full",onClick:()=>s("Discord","https://discord.gg/desktop-commander","external"),children:["Discord",e.jsx(a,{className:"ml-2 h-3 w-3"})]})}),e.jsx(t,{variant:"ghost",size:"sm",asChild:!0,children:e.jsxs("a",{href:"https://www.reddit.com/r/DesktopCommander/",target:"_blank",rel:"noopener noreferrer",className:"text-white hover:text-white/80 font-medium justify-start w-full",onClick:()=>s("Reddit","https://www.reddit.com/r/DesktopCommander/","external"),children:["Reddit",e.jsx(a,{className:"ml-2 h-3 w-3"})]})})]}),e.jsxs("div",{className:"border-t border-dc-border pt-4",children:[e.jsx("p",{className:"text-sm font-medium text-muted-foreground mb-2 px-3",children:"Resources"}),e.jsx(t,{variant:"ghost",size:"sm",asChild:!0,children:e.jsxs("a",{href:"https://github.com/desktop-commander/desktop-commander",target:"_blank",rel:"noopener noreferrer",className:"text-white hover:text-white/80 font-medium justify-start w-full",onClick:()=>s("GitHub","https://github.com/desktop-commander/desktop-commander","external"),children:["GitHub",e.jsx(a,{className:"ml-2 h-3 w-3"})]})}),e.jsx(t,{variant:"ghost",size:"sm",asChild:!0,children:e.jsxs("a",{href:"/careers/",className:"text-white hover:text-white/80 font-medium justify-start w-full",onClick:()=>s("Careers","/careers/","internal"),children:["Careers",e.jsx(l,{variant:"secondary",className:"ml-2 bg-green-500/10 text-green-400 border-green-500/20 text-xs",children:"Hiring"})]})})]}),e.jsxs("div",{className:"border-t border-dc-border pt-4",children:[e.jsx(t,{variant:"ghost",size:"sm",asChild:!0,children:e.jsx("a",{href:"https://desktopcommander.app/blog",className:"text-white hover:text-white/80 font-medium justify-start w-full",onClick:()=>s("Blog","https://desktopcommander.app/blog","internal"),children:"Blog"})}),e.jsx(t,{variant:"ghost",size:"sm",asChild:!0,children:e.jsx("a",{href:"https://blog.desktopcommander.app/about/",className:"text-white hover:text-white/80 font-medium justify-start w-full",onClick:()=>s("About","https://blog.desktopcommander.app/about/","internal"),children:"About"})})]}),e.jsx("div",{className:"border-t border-dc-border pt-4 mt-4",children:e.jsx(t,{size:"lg",className:"w-full shadow-lg shadow-primary/20 group",asChild:!0,children:e.jsxs("a",{href:"/product/early-access/",onClick:()=>{n(),o(!1)},children:["Join the Waitlist",e.jsx(p,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})})})]})})]})})]})})})};export{U as default}; diff --git a/docs/assets/NavigationLandingPage.CmSumtVC.js b/docs/assets/NavigationLandingPage.CmSumtVC.js deleted file mode 100644 index c3981a57..00000000 --- a/docs/assets/NavigationLandingPage.CmSumtVC.js +++ /dev/null @@ -1 +0,0 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as t}from"./button.nz_ACiet.js";import{B as l}from"./circle.KGuz404-.js";import{d as b,D as d,a as m,b as c,c as i,S as w,e as k,M as C,f as N}from"./dc-logo.CKbgGFVq.js";import{r as v}from"./index.BaMLtrTp.js";import{u as y}from"./useAnalyticsAstro.CR8fdMXS.js";import{C as h}from"./chevron-down.B6Si1q7U.js";import{E as a}from"./external-link.BigcEWhC.js";import{A as p}from"./arrow-right.B_EnXtAw.js";import"./index.yBjzXJbu.js";import"./utils.XhT4HDO9.js";import"./index.BlsO67so.js";import"./index.BbTPjBLC.js";import"./index.vFQDSFae.js";import"./index.CyN3cLSG.js";import"./createLucideIcon.CJ67VFfW.js";import"./index.lqPDcyCD.js";import"./index.C9IP8clr.js";import"./chevron-right.BwvlrKau.js";import"./check.eE7yIrYi.js";import"./x.B1hOxjOp.js";import"./tracking.znU5Ou_b.js";const U=()=>{const[x,o]=v.useState(!1),{trackNavigation:r,trackCustomEvent:u}=y(),s=(g,f,j="internal")=>{r(g,f,j),o(!1)},n=()=>{u("download_cta_clicked",{location:"navigation",button_text:"Download DC"})};return e.jsx("nav",{className:"fixed left-0 right-0 z-50 border-b border-dc-border bg-background/80 backdrop-blur-md transition-all duration-300",style:{top:"var(--banner-height, 0px)"},children:e.jsx("div",{className:"container mx-auto max-w-7xl px-4 sm:px-6 py-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-8",children:[e.jsx("a",{href:"https://desktopcommander.app",className:"hover:opacity-80 transition-opacity flex-shrink-0",children:e.jsx("img",{src:b.src,alt:"Desktop Commander",className:"h-7 sm:h-8 w-auto min-w-[270px]",width:"200",height:"32"})}),e.jsxs("div",{className:"hidden lg:flex items-center gap-6",children:[e.jsx(t,{variant:"ghost",size:"sm",asChild:!0,children:e.jsx("a",{href:"/library/",className:"text-white hover:text-white/80 font-medium",onClick:()=>r("Prompts","/library/","internal"),children:"Prompts"})}),e.jsxs(d,{children:[e.jsx(m,{asChild:!0,children:e.jsxs(t,{variant:"ghost",size:"sm",className:"text-white hover:text-white/80 font-medium",children:["Community",e.jsx(h,{className:"ml-1 h-4 w-4"})]})}),e.jsxs(c,{align:"start",className:"bg-dc-card border-dc-border",children:[e.jsx(i,{asChild:!0,children:e.jsxs("a",{href:"https://discord.gg/desktop-commander",target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-between cursor-pointer",onClick:()=>r("Discord","https://discord.gg/desktop-commander","external"),children:["Discord",e.jsx(a,{className:"ml-2 h-3 w-3"})]})}),e.jsx(i,{asChild:!0,children:e.jsxs("a",{href:"https://www.reddit.com/r/DesktopCommander/",target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-between cursor-pointer",onClick:()=>r("Reddit","https://www.reddit.com/r/DesktopCommander/","external"),children:["Reddit",e.jsx(a,{className:"ml-2 h-3 w-3"})]})})]})]}),e.jsxs(d,{children:[e.jsx(m,{asChild:!0,children:e.jsxs(t,{variant:"ghost",size:"sm",className:"text-white hover:text-white/80 font-medium",children:["Resources",e.jsx(h,{className:"ml-1 h-4 w-4"})]})}),e.jsxs(c,{align:"start",className:"bg-dc-card border-dc-border",children:[e.jsx(i,{asChild:!0,children:e.jsxs("a",{href:"https://github.com/desktop-commander/desktop-commander",target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-between cursor-pointer",onClick:()=>r("GitHub","https://github.com/desktop-commander/desktop-commander","external"),children:["GitHub",e.jsx(a,{className:"ml-2 h-3 w-3"})]})}),e.jsx(i,{asChild:!0,children:e.jsxs("a",{href:"/careers/",className:"cursor-pointer",onClick:()=>r("Careers","/careers/","internal"),children:["Careers",e.jsx(l,{variant:"secondary",className:"ml-2 bg-green-500/10 text-green-400 border-green-500/20 text-xs px-1.5 py-0",children:"Hiring"})]})})]})]}),e.jsx(t,{variant:"ghost",size:"sm",asChild:!0,children:e.jsx("a",{href:"https://desktopcommander.app/blog",className:"text-white hover:text-white/80 font-medium",onClick:()=>r("Blog","https://desktopcommander.app/blog","internal"),children:"Blog"})}),e.jsx(t,{variant:"ghost",size:"sm",asChild:!0,children:e.jsx("a",{href:"https://blog.desktopcommander.app/about/",className:"text-white hover:text-white/80 font-medium",onClick:()=>r("About","https://blog.desktopcommander.app/about/","internal"),children:"About"})})]})]}),e.jsx("div",{className:"hidden lg:flex items-center gap-3",children:e.jsx(t,{size:"sm",className:"shadow-lg shadow-primary/20 group",asChild:!0,children:e.jsxs("a",{href:"/product/early-access/",onClick:n,children:["Join the Waitlist",e.jsx(p,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})})}),e.jsx("div",{className:"lg:hidden",children:e.jsxs(w,{open:x,onOpenChange:o,children:[e.jsx(k,{asChild:!0,children:e.jsx(t,{variant:"ghost",size:"sm",children:e.jsx(C,{className:"h-5 w-5"})})}),e.jsx(N,{side:"right",className:"w-full sm:w-[400px] bg-dc-card border-dc-border",children:e.jsxs("div",{className:"flex flex-col gap-4 mt-8",children:[e.jsx(t,{variant:"ghost",size:"sm",asChild:!0,children:e.jsx("a",{href:"/library/",className:"text-white hover:text-white/80 font-medium justify-start",onClick:()=>s("Prompts","/library/","internal"),children:"Prompts"})}),e.jsxs("div",{className:"border-t border-dc-border pt-4",children:[e.jsx("p",{className:"text-sm font-medium text-muted-foreground mb-2 px-3",children:"Community"}),e.jsx(t,{variant:"ghost",size:"sm",asChild:!0,children:e.jsxs("a",{href:"https://discord.gg/desktop-commander",target:"_blank",rel:"noopener noreferrer",className:"text-white hover:text-white/80 font-medium justify-start w-full",onClick:()=>s("Discord","https://discord.gg/desktop-commander","external"),children:["Discord",e.jsx(a,{className:"ml-2 h-3 w-3"})]})}),e.jsx(t,{variant:"ghost",size:"sm",asChild:!0,children:e.jsxs("a",{href:"https://www.reddit.com/r/DesktopCommander/",target:"_blank",rel:"noopener noreferrer",className:"text-white hover:text-white/80 font-medium justify-start w-full",onClick:()=>s("Reddit","https://www.reddit.com/r/DesktopCommander/","external"),children:["Reddit",e.jsx(a,{className:"ml-2 h-3 w-3"})]})})]}),e.jsxs("div",{className:"border-t border-dc-border pt-4",children:[e.jsx("p",{className:"text-sm font-medium text-muted-foreground mb-2 px-3",children:"Resources"}),e.jsx(t,{variant:"ghost",size:"sm",asChild:!0,children:e.jsxs("a",{href:"https://github.com/desktop-commander/desktop-commander",target:"_blank",rel:"noopener noreferrer",className:"text-white hover:text-white/80 font-medium justify-start w-full",onClick:()=>s("GitHub","https://github.com/desktop-commander/desktop-commander","external"),children:["GitHub",e.jsx(a,{className:"ml-2 h-3 w-3"})]})}),e.jsx(t,{variant:"ghost",size:"sm",asChild:!0,children:e.jsxs("a",{href:"/careers/",className:"text-white hover:text-white/80 font-medium justify-start w-full",onClick:()=>s("Careers","/careers/","internal"),children:["Careers",e.jsx(l,{variant:"secondary",className:"ml-2 bg-green-500/10 text-green-400 border-green-500/20 text-xs",children:"Hiring"})]})})]}),e.jsxs("div",{className:"border-t border-dc-border pt-4",children:[e.jsx(t,{variant:"ghost",size:"sm",asChild:!0,children:e.jsx("a",{href:"https://desktopcommander.app/blog",className:"text-white hover:text-white/80 font-medium justify-start w-full",onClick:()=>s("Blog","https://desktopcommander.app/blog","internal"),children:"Blog"})}),e.jsx(t,{variant:"ghost",size:"sm",asChild:!0,children:e.jsx("a",{href:"https://blog.desktopcommander.app/about/",className:"text-white hover:text-white/80 font-medium justify-start w-full",onClick:()=>s("About","https://blog.desktopcommander.app/about/","internal"),children:"About"})})]}),e.jsx("div",{className:"border-t border-dc-border pt-4 mt-4",children:e.jsx(t,{size:"lg",className:"w-full shadow-lg shadow-primary/20 group",asChild:!0,children:e.jsxs("a",{href:"/product/early-access/",onClick:()=>{n(),o(!1)},children:["Join the Waitlist",e.jsx(p,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})})})]})})]})})]})})})};export{U as default}; diff --git a/docs/assets/PostHogInit.BjKfPHah.js b/docs/assets/PostHogInit.CEjomZpU.js similarity index 97% rename from docs/assets/PostHogInit.BjKfPHah.js rename to docs/assets/PostHogInit.CEjomZpU.js index a418bb75..fdc1ba74 100644 --- a/docs/assets/PostHogInit.BjKfPHah.js +++ b/docs/assets/PostHogInit.CEjomZpU.js @@ -1 +1 @@ -import{r as i}from"./index.BaMLtrTp.js";import{C as e}from"./module.C-PkBFPJ.js";import"./index.yBjzXJbu.js";const r={apiKey:"phc_SmlF1mKK199Blt4hUNL6V19IWydNNJ9o7Qbym2Y4zQa",apiHost:"https://eu.i.posthog.com"},a=()=>{const o=document.referrer,n=new URLSearchParams(window.location.search);if(o.includes("/blog")||o.includes("blog.desktopcommander.app")||o.includes("rk7f8a7274b9330-haqfg.wpcomstaging.com")){console.log("🎯 User arrived from blog:",o);const t={referrer_url:o,landing_page:window.location.href,landing_path:window.location.pathname,landing_hash:window.location.hash,landing_search:window.location.search,timestamp:new Date().toISOString(),session_start:!0};window.posthog&&e.__loaded&&(e.capture("arrived_from_blog",t),e.setPersonProperties({last_blog_referrer:o,came_from_blog:!0,last_blog_visit:new Date().toISOString()}),console.log("βœ… PostHog: Tracked blog arrival",t)),window.gtag&&(window.gtag("event","arrived_from_blog",t),console.log("βœ… GA4: Tracked blog arrival",t))}(()=>{const t=n.get("utm_source");(o.includes("google.com")||o.includes("bing.com")||o.includes("duckduckgo.com"))&&t==="blog"&&window.posthog&&e.__loaded&&(e.capture("organic_search_via_blog",{search_engine:o.includes("google")?"google":o.includes("bing")?"bing":"other",utm_source:t,landing_page:window.location.href}),console.log("βœ… PostHog: Tracked organic journey via blog"))})()};function _(){return i.useEffect(()=>{if(typeof window<"u"&&(window.posthog=e),e.__loaded){console.log("PostHog already initialized");return}const o=window.location.hostname==="localhost"?"development":"production";e.init(r.apiKey,{api_host:r.apiHost,cross_subdomain_cookie:!0,session_recording:{enabled:!0,record_console:o==="development",record_network:o==="development"},autocapture:{dom_event_allowlist:["click","change","submit"],mask_all_element_attributes:!1,mask_all_text:!1},loaded:n=>{o==="development"&&n.debug(!0),console.log("βœ… PostHog initialized for "+o+" environment with cross-domain tracking"),a()},respect_dnt:!0,disable_session_recording:!1}),e.register({environment:o,website_section:"main_site",domain:"desktopcommander.app",timestamp:new Date().toISOString()})},[]),null}export{_ as default}; +import{r as i}from"./index.D_oLZvzW.js";import{C as e}from"./module.C-PkBFPJ.js";import"./index.yBjzXJbu.js";const r={apiKey:"phc_SmlF1mKK199Blt4hUNL6V19IWydNNJ9o7Qbym2Y4zQa",apiHost:"https://eu.i.posthog.com"},a=()=>{const o=document.referrer,n=new URLSearchParams(window.location.search);if(o.includes("/blog")||o.includes("blog.desktopcommander.app")||o.includes("rk7f8a7274b9330-haqfg.wpcomstaging.com")){console.log("🎯 User arrived from blog:",o);const t={referrer_url:o,landing_page:window.location.href,landing_path:window.location.pathname,landing_hash:window.location.hash,landing_search:window.location.search,timestamp:new Date().toISOString(),session_start:!0};window.posthog&&e.__loaded&&(e.capture("arrived_from_blog",t),e.setPersonProperties({last_blog_referrer:o,came_from_blog:!0,last_blog_visit:new Date().toISOString()}),console.log("βœ… PostHog: Tracked blog arrival",t)),window.gtag&&(window.gtag("event","arrived_from_blog",t),console.log("βœ… GA4: Tracked blog arrival",t))}(()=>{const t=n.get("utm_source");(o.includes("google.com")||o.includes("bing.com")||o.includes("duckduckgo.com"))&&t==="blog"&&window.posthog&&e.__loaded&&(e.capture("organic_search_via_blog",{search_engine:o.includes("google")?"google":o.includes("bing")?"bing":"other",utm_source:t,landing_page:window.location.href}),console.log("βœ… PostHog: Tracked organic journey via blog"))})()};function _(){return i.useEffect(()=>{if(typeof window<"u"&&(window.posthog=e),e.__loaded){console.log("PostHog already initialized");return}const o=window.location.hostname==="localhost"?"development":"production";e.init(r.apiKey,{api_host:r.apiHost,cross_subdomain_cookie:!0,session_recording:{enabled:!0,record_console:o==="development",record_network:o==="development"},autocapture:{dom_event_allowlist:["click","change","submit"],mask_all_element_attributes:!1,mask_all_text:!1},loaded:n=>{o==="development"&&n.debug(!0),console.log("βœ… PostHog initialized for "+o+" environment with cross-domain tracking"),a()},respect_dnt:!0,disable_session_recording:!1}),e.register({environment:o,website_section:"main_site",domain:"desktopcommander.app",timestamp:new Date().toISOString()})},[]),null}export{_ as default}; diff --git a/docs/assets/PrivacyDiagramSection.MTaEFVbS.js b/docs/assets/PrivacyDiagramSection.BRQcfaMl.js similarity index 96% rename from docs/assets/PrivacyDiagramSection.MTaEFVbS.js rename to docs/assets/PrivacyDiagramSection.BRQcfaMl.js index 1d145e85..e78b7647 100644 --- a/docs/assets/PrivacyDiagramSection.MTaEFVbS.js +++ b/docs/assets/PrivacyDiagramSection.BRQcfaMl.js @@ -1 +1 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{S as a}from"./shield.Dnfnq1p4.js";import{C as s}from"./circle-check-big.DKhWBpjr.js";import{C as r}from"./circle-x.C5ZnEmA8.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.CJ67VFfW.js";import"./index.BaMLtrTp.js";const x=()=>e.jsx("section",{className:"py-16 md:py-24 bg-gradient-to-b from-background to-dc-card/30",children:e.jsxs("div",{className:"container mx-auto max-w-6xl px-4 sm:px-6",children:[e.jsxs("div",{className:"text-center mb-16",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-2 rounded-full bg-primary/10 border border-primary/20 text-sm font-medium text-primary mb-6",children:[e.jsx(a,{className:"w-4 h-4"}),e.jsx("span",{children:"AI Processing β€’ No Random Sites"})]}),e.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-4",children:"Connect AI to Your Files"}),e.jsx("p",{className:"text-lg md:text-xl text-muted-foreground max-w-3xl mx-auto",children:"Desktop Commander connects your AI assistant directly to your files. File processing happens through your trusted AI providerβ€”no sketchy third-party websites."})]}),e.jsxs("div",{className:"grid lg:grid-cols-2 gap-8 lg:gap-12 items-center",children:[e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-start gap-4 p-6 rounded-xl bg-green-500/5 border-2 border-green-500/20",children:[e.jsx("div",{className:"shrink-0 w-12 h-12 rounded-full bg-green-500/10 flex items-center justify-center",children:e.jsx(s,{className:"w-6 h-6 text-green-400"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold mb-2 text-green-400",children:"With Desktop Commander"}),e.jsxs("ul",{className:"space-y-2 text-muted-foreground",children:[e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(s,{className:"w-4 h-4 text-green-400 mt-1 shrink-0"}),e.jsx("span",{children:"Direct access to files on your computer"})]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(s,{className:"w-4 h-4 text-green-400 mt-1 shrink-0"}),e.jsx("span",{children:"Processed by Claude, ChatGPT, Gemini, or Qwen"})]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(s,{className:"w-4 h-4 text-green-400 mt-1 shrink-0"}),e.jsx("span",{children:"No random third-party conversion websites"})]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(s,{className:"w-4 h-4 text-green-400 mt-1 shrink-0"}),e.jsx("span",{children:"You control what files your AI accesses"})]})]})]})]}),e.jsxs("div",{className:"flex items-start gap-4 p-6 rounded-xl bg-red-500/5 border-2 border-red-500/20",children:[e.jsx("div",{className:"shrink-0 w-12 h-12 rounded-full bg-red-500/10 flex items-center justify-center",children:e.jsx(r,{className:"w-6 h-6 text-red-400"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold mb-2 text-red-400",children:"Random Online Tools"}),e.jsxs("ul",{className:"space-y-2 text-muted-foreground",children:[e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(r,{className:"w-4 h-4 text-red-400 mt-1 shrink-0"}),e.jsx("span",{children:"Files uploaded to unknown third-party servers"})]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(r,{className:"w-4 h-4 text-red-400 mt-1 shrink-0"}),e.jsx("span",{children:"Sketchy websites with malware risks"})]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(r,{className:"w-4 h-4 text-red-400 mt-1 shrink-0"}),e.jsx("span",{children:"Unknown data handling and privacy policies"})]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(r,{className:"w-4 h-4 text-red-400 mt-1 shrink-0"}),e.jsx("span",{children:"Manual download and re-upload workflows"})]})]})]})]})]}),e.jsx("div",{className:"relative",children:e.jsxs("div",{className:"bg-gradient-to-br from-dc-card to-dc-surface rounded-2xl border border-dc-border p-8",children:[e.jsxs("div",{className:"text-center mb-8",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-20 h-20 rounded-full bg-primary/10 border-2 border-primary mb-4",children:e.jsx("span",{className:"text-4xl",children:"πŸ’»"})}),e.jsx("h4",{className:"text-lg font-semibold",children:"Your Computer"}),e.jsx("p",{className:"text-sm text-muted-foreground mb-6",children:"Desktop Commander accesses files here"}),e.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[e.jsx("div",{className:"text-center",children:e.jsx("div",{className:"w-14 h-14 rounded-lg bg-blue-500/10 border border-blue-500/20 flex items-center justify-center mx-auto",children:e.jsx("span",{className:"text-2xl",children:"πŸ“„"})})}),e.jsx("div",{className:"text-center",children:e.jsx("div",{className:"w-14 h-14 rounded-lg bg-purple-500/10 border border-purple-500/20 flex items-center justify-center mx-auto",children:e.jsx("span",{className:"text-2xl",children:"πŸ–ΌοΈ"})})}),e.jsx("div",{className:"text-center",children:e.jsx("div",{className:"w-14 h-14 rounded-lg bg-green-500/10 border border-green-500/20 flex items-center justify-center mx-auto",children:e.jsx("span",{className:"text-2xl",children:"πŸ“Š"})})})]})]}),e.jsxs("div",{className:"relative py-6 mb-8",children:[e.jsx("div",{className:"absolute inset-0 flex items-center",children:e.jsx("div",{className:"w-full border-t-2 border-dashed border-primary/30"})}),e.jsx("div",{className:"relative flex justify-center",children:e.jsx("div",{className:"bg-dc-card px-4 py-2 rounded-full border-2 border-primary flex items-center gap-2",children:e.jsx("span",{className:"text-sm font-semibold text-primary",children:"Directly Processed By"})})})]}),e.jsxs("div",{className:"text-center",children:[e.jsx("div",{className:"relative inline-flex items-center justify-center w-16 h-16 rounded-full bg-primary/10 border-2 border-primary mb-3",children:e.jsx("span",{className:"text-3xl",children:"πŸ€–"})}),e.jsx("p",{className:"text-sm font-medium mb-2",children:"Your AI Provider"}),e.jsxs("div",{className:"flex flex-wrap justify-center gap-2 text-xs text-muted-foreground",children:[e.jsx("span",{className:"px-2 py-1 rounded bg-dc-surface border border-dc-border",children:"Claude"}),e.jsx("span",{className:"px-2 py-1 rounded bg-dc-surface border border-dc-border",children:"ChatGPT"}),e.jsx("span",{className:"px-2 py-1 rounded bg-dc-surface border border-dc-border",children:"Gemini"}),e.jsx("span",{className:"px-2 py-1 rounded bg-dc-surface border border-dc-border",children:"Qwen"})]})]})]})})]}),e.jsx("div",{className:"mt-16 p-6 md:p-8 rounded-2xl bg-primary/5 border border-primary/20",children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:"p-2 rounded-lg bg-primary/10 shrink-0",children:e.jsx(a,{className:"w-5 h-5 text-primary"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-lg font-medium mb-2",children:"How data is handled"}),e.jsx("p",{className:"text-muted-foreground",children:"Desktop Commander connects your AI directly to files on your computer. Your files are processed by your chosen AI provider (Claude, ChatGPT, Gemini, or Qwen)β€”not random third-party websites. You get AI-powered file management without the risk."})]})]})})]})});export{x as default}; +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{S as a}from"./shield.Cc9GR1lK.js";import{C as s}from"./circle-check-big.B7sFB_G4.js";import{C as r}from"./circle-x.FG6uLdJu.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.DnxMVFvH.js";import"./index.D_oLZvzW.js";const x=()=>e.jsx("section",{className:"py-16 md:py-24 bg-gradient-to-b from-background to-dc-card/30",children:e.jsxs("div",{className:"container mx-auto max-w-6xl px-4 sm:px-6",children:[e.jsxs("div",{className:"text-center mb-16",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-2 rounded-full bg-primary/10 border border-primary/20 text-sm font-medium text-primary mb-6",children:[e.jsx(a,{className:"w-4 h-4"}),e.jsx("span",{children:"AI Processing β€’ No Random Sites"})]}),e.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-4",children:"Connect AI to Your Files"}),e.jsx("p",{className:"text-lg md:text-xl text-muted-foreground max-w-3xl mx-auto",children:"Desktop Commander connects your AI assistant directly to your files. File processing happens through your trusted AI providerβ€”no sketchy third-party websites."})]}),e.jsxs("div",{className:"grid lg:grid-cols-2 gap-8 lg:gap-12 items-center",children:[e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-start gap-4 p-6 rounded-xl bg-green-500/5 border-2 border-green-500/20",children:[e.jsx("div",{className:"shrink-0 w-12 h-12 rounded-full bg-green-500/10 flex items-center justify-center",children:e.jsx(s,{className:"w-6 h-6 text-green-400"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold mb-2 text-green-400",children:"With Desktop Commander"}),e.jsxs("ul",{className:"space-y-2 text-muted-foreground",children:[e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(s,{className:"w-4 h-4 text-green-400 mt-1 shrink-0"}),e.jsx("span",{children:"Direct access to files on your computer"})]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(s,{className:"w-4 h-4 text-green-400 mt-1 shrink-0"}),e.jsx("span",{children:"Processed by Claude, ChatGPT, Gemini, or Qwen"})]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(s,{className:"w-4 h-4 text-green-400 mt-1 shrink-0"}),e.jsx("span",{children:"No random third-party conversion websites"})]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(s,{className:"w-4 h-4 text-green-400 mt-1 shrink-0"}),e.jsx("span",{children:"You control what files your AI accesses"})]})]})]})]}),e.jsxs("div",{className:"flex items-start gap-4 p-6 rounded-xl bg-red-500/5 border-2 border-red-500/20",children:[e.jsx("div",{className:"shrink-0 w-12 h-12 rounded-full bg-red-500/10 flex items-center justify-center",children:e.jsx(r,{className:"w-6 h-6 text-red-400"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold mb-2 text-red-400",children:"Random Online Tools"}),e.jsxs("ul",{className:"space-y-2 text-muted-foreground",children:[e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(r,{className:"w-4 h-4 text-red-400 mt-1 shrink-0"}),e.jsx("span",{children:"Files uploaded to unknown third-party servers"})]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(r,{className:"w-4 h-4 text-red-400 mt-1 shrink-0"}),e.jsx("span",{children:"Sketchy websites with malware risks"})]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(r,{className:"w-4 h-4 text-red-400 mt-1 shrink-0"}),e.jsx("span",{children:"Unknown data handling and privacy policies"})]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(r,{className:"w-4 h-4 text-red-400 mt-1 shrink-0"}),e.jsx("span",{children:"Manual download and re-upload workflows"})]})]})]})]})]}),e.jsx("div",{className:"relative",children:e.jsxs("div",{className:"bg-gradient-to-br from-dc-card to-dc-surface rounded-2xl border border-dc-border p-8",children:[e.jsxs("div",{className:"text-center mb-8",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-20 h-20 rounded-full bg-primary/10 border-2 border-primary mb-4",children:e.jsx("span",{className:"text-4xl",children:"πŸ’»"})}),e.jsx("h4",{className:"text-lg font-semibold",children:"Your Computer"}),e.jsx("p",{className:"text-sm text-muted-foreground mb-6",children:"Desktop Commander accesses files here"}),e.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[e.jsx("div",{className:"text-center",children:e.jsx("div",{className:"w-14 h-14 rounded-lg bg-blue-500/10 border border-blue-500/20 flex items-center justify-center mx-auto",children:e.jsx("span",{className:"text-2xl",children:"πŸ“„"})})}),e.jsx("div",{className:"text-center",children:e.jsx("div",{className:"w-14 h-14 rounded-lg bg-purple-500/10 border border-purple-500/20 flex items-center justify-center mx-auto",children:e.jsx("span",{className:"text-2xl",children:"πŸ–ΌοΈ"})})}),e.jsx("div",{className:"text-center",children:e.jsx("div",{className:"w-14 h-14 rounded-lg bg-green-500/10 border border-green-500/20 flex items-center justify-center mx-auto",children:e.jsx("span",{className:"text-2xl",children:"πŸ“Š"})})})]})]}),e.jsxs("div",{className:"relative py-6 mb-8",children:[e.jsx("div",{className:"absolute inset-0 flex items-center",children:e.jsx("div",{className:"w-full border-t-2 border-dashed border-primary/30"})}),e.jsx("div",{className:"relative flex justify-center",children:e.jsx("div",{className:"bg-dc-card px-4 py-2 rounded-full border-2 border-primary flex items-center gap-2",children:e.jsx("span",{className:"text-sm font-semibold text-primary",children:"Directly Processed By"})})})]}),e.jsxs("div",{className:"text-center",children:[e.jsx("div",{className:"relative inline-flex items-center justify-center w-16 h-16 rounded-full bg-primary/10 border-2 border-primary mb-3",children:e.jsx("span",{className:"text-3xl",children:"πŸ€–"})}),e.jsx("p",{className:"text-sm font-medium mb-2",children:"Your AI Provider"}),e.jsxs("div",{className:"flex flex-wrap justify-center gap-2 text-xs text-muted-foreground",children:[e.jsx("span",{className:"px-2 py-1 rounded bg-dc-surface border border-dc-border",children:"Claude"}),e.jsx("span",{className:"px-2 py-1 rounded bg-dc-surface border border-dc-border",children:"ChatGPT"}),e.jsx("span",{className:"px-2 py-1 rounded bg-dc-surface border border-dc-border",children:"Gemini"}),e.jsx("span",{className:"px-2 py-1 rounded bg-dc-surface border border-dc-border",children:"Qwen"})]})]})]})})]}),e.jsx("div",{className:"mt-16 p-6 md:p-8 rounded-2xl bg-primary/5 border border-primary/20",children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:"p-2 rounded-lg bg-primary/10 shrink-0",children:e.jsx(a,{className:"w-5 h-5 text-primary"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-lg font-medium mb-2",children:"How data is handled"}),e.jsx("p",{className:"text-muted-foreground",children:"Desktop Commander connects your AI directly to files on your computer. Your files are processed by your chosen AI provider (Claude, ChatGPT, Gemini, or Qwen)β€”not random third-party websites. You get AI-powered file management without the risk."})]})]})})]})});export{x as default}; diff --git a/docs/assets/ProblemSection.CxxI9tsT.js b/docs/assets/ProblemSection.BFa8J33H.js similarity index 88% rename from docs/assets/ProblemSection.CxxI9tsT.js rename to docs/assets/ProblemSection.BFa8J33H.js index 5c53710c..f57d4c88 100644 --- a/docs/assets/ProblemSection.CxxI9tsT.js +++ b/docs/assets/ProblemSection.BFa8J33H.js @@ -1 +1 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{C as t}from"./circle-alert.BAM225Eq.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.CJ67VFfW.js";import"./index.BaMLtrTp.js";const i=()=>e.jsx("section",{className:"py-16 md:py-20",children:e.jsx("div",{className:"container mx-auto max-w-5xl px-4 sm:px-6",children:e.jsxs("div",{className:"bg-gradient-to-br from-dc-card to-dc-surface rounded-2xl border border-dc-border p-8 md:p-12",children:[e.jsxs("div",{className:"flex items-start gap-4 mb-6",children:[e.jsx("div",{className:"p-3 rounded-xl bg-destructive/10 border border-destructive/20",children:e.jsx(t,{className:"w-6 h-6 text-destructive"})}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold",children:"You shouldn't have to upload files to random websites to get things done."})]}),e.jsx("p",{className:"text-xl text-muted-foreground leading-relaxed",children:"Every time you upload a file to convert it, organize it, or analyze it, you're trusting a random website with your data. Your personal documents, photos, and sensitive files deserve better than sketchy online tools."})]})})});export{i as default}; +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{C as t}from"./circle-alert.DXvzqdgU.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.DnxMVFvH.js";import"./index.D_oLZvzW.js";const i=()=>e.jsx("section",{className:"py-16 md:py-20",children:e.jsx("div",{className:"container mx-auto max-w-5xl px-4 sm:px-6",children:e.jsxs("div",{className:"bg-gradient-to-br from-dc-card to-dc-surface rounded-2xl border border-dc-border p-8 md:p-12",children:[e.jsxs("div",{className:"flex items-start gap-4 mb-6",children:[e.jsx("div",{className:"p-3 rounded-xl bg-destructive/10 border border-destructive/20",children:e.jsx(t,{className:"w-6 h-6 text-destructive"})}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold",children:"You shouldn't have to upload files to random websites to get things done."})]}),e.jsx("p",{className:"text-xl text-muted-foreground leading-relaxed",children:"Every time you upload a file to convert it, organize it, or analyze it, you're trusting a random website with your data. Your personal documents, photos, and sensitive files deserve better than sketchy online tools."})]})})});export{i as default}; diff --git a/docs/assets/PromptDetailPage.4NhylVt5.js b/docs/assets/PromptDetailPage.4NhylVt5.js new file mode 100644 index 00000000..01bfa7e6 --- /dev/null +++ b/docs/assets/PromptDetailPage.4NhylVt5.js @@ -0,0 +1 @@ +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{e as U,d as B,A as F,a as L,T as M,b as R,S as z,v as A,f as I,B as $,g as O,U as C,E as W,P as H,h as V,i as q,j as G,k as J,l as K,m as Q,n as X,o as Y,q as f,p as Z}from"./UsePromptWizard.DnO32Lw7.js";import{B as m}from"./button.D-OtCHTj.js";import{B as l}from"./index.DNo0B2hs.js";import{r as o}from"./index.D_oLZvzW.js";import{S as ee}from"./search.DStwv__K.js";import{R as te}from"./refresh-cw.BaAeNbsO.js";import{C as re}from"./clock.0f4SrxU_.js";import{D as se}from"./database.CpdIqL8j.js";import{S as ae}from"./shield.Cc9GR1lK.js";import{F as oe}from"./file-text.CAYOOP65.js";import{C as ie}from"./chart-column.OLWkJ9on.js";import{C as j}from"./code.Bsz77KQU.js";import{F as ne}from"./folder-open.Z1dzfNLE.js";import{F as le}from"./folder-search.Cl-IbVIe.js";import{S as ce}from"./sparkles.DoaLSLnS.js";import{I as u}from"./info.DkfeuojL.js";import{R as de}from"./rocket.DnXnYW1j.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.DnxMVFvH.js";import"./utils.9Q5QEYED.js";import"./index.DO6kBsrn.js";import"./index.DAP1SQuk.js";import"./index.5q9h5iS_.js";import"./index.BbTPjBLC.js";import"./index.xUA8L87E.js";import"./x.C6Iw0U2F.js";import"./dialog.CeUsCtfh.js";import"./index.CKNnz_F1.js";import"./module.C-PkBFPJ.js";import"./external-link.DsSVi18J.js";import"./message-square.O0_WvyiX.js";import"./terminal.BX6Ycj7A.js";import"./check.BxIsZM2Y.js";const me={FolderSearch:le,FolderOrganize:ne,Code:j,BarChart3:ie,Settings:z,FileText:oe,Archive:R,Shield:ae,Database:se,TestTube:M,Clock:re,RefreshCw:te,ArrowRightLeft:L,Activity:F,Search:ee},pe=t=>{if(!t)return!1;const c=new Date(t),i=Math.abs(new Date().getTime()-c.getTime());return Math.ceil(i/(1e3*60*60*24))<=14},Je=({useCase:t})=>{const[c,b]=o.useState(!1),[i,n]=o.useState(!1),[v,p]=o.useState(!1),[w,x]=o.useState(!1),{toast:h}=U(),[xe,g]=o.useState(0),d=B();o.useEffect(()=>{if(!t)return;const r=`useCase_uses_${t.id}`,s=localStorage.getItem(r),a=s?Number(s):0;g(Number.isFinite(a)?a:0),d.capture("prompt_page_viewed",{prompt_id:t.id,prompt_title:t.title,prompt_slug:t.slug,prompt_categories:t.categories,prompt_session_type:t.sessionType,source_page:"direct_url",url_type:"seo_friendly"})},[t?.id,d]);const y=()=>{if(!t)return;const r=`useCase_uses_${t.id}`;g(s=>{const a=s+1;return localStorage.setItem(r,String(a)),a})};if(!t)return null;const N=me[t.icon]||j,k=pe(t.dateAdded),_=()=>{p(!0),y()},S=()=>{window.location.href=f("/library/prompts")},T=r=>{switch(r){case"Instant output":return"session-instant-output";case"Step-by-step flow":return"session-step-by-step-flow";default:return"session-instant-output"}},P=(r="share_button")=>{const s=new URL(f(`/library/prompts/${t.slug}`),window.location.origin);return s.searchParams.set("utm_source","desktop_commander"),s.searchParams.set("utm_medium",r),s.searchParams.set("utm_campaign","prompt_sharing"),s.searchParams.set("utm_content",t.slug||""),s.searchParams.set("shared_at",Date.now().toString()),s.toString()},D=async()=>{const r=typeof navigator<"u"&&(/(Mobi|Android|iPhone|iPad|iPod)/i.test(navigator.userAgent)||typeof window<"u"&&window.matchMedia&&window.matchMedia("(pointer: coarse)").matches),s=r&&navigator.share?"native_share":"clipboard_copy",a=P(s),E=`Prompt: ${t.title}`;d.capture("share_button_clicked",{prompt_id:t.id,prompt_title:t.title,share_method:s,source_page:"prompt_detail_page"});try{if(r&&navigator.share){await navigator.share({title:E,text:"Check out this Desktop Commander prompt",url:a});return}await navigator.clipboard.writeText(a),x(!0),setTimeout(()=>x(!1),1500),h({title:"Link copied",description:"Share it with your team.",action:e.jsx(Z,{altText:"Open link",onClick:()=>window.open(a,"_blank","noopener,noreferrer"),children:"Open"})})}catch{h({title:"Share failed",description:"Could not share or copy the link.",variant:"destructive"})}};return e.jsx(A,{children:e.jsxs(I,{children:[e.jsx("div",{className:"min-h-screen bg-background mt-20",children:e.jsxs("div",{className:"container mx-auto px-4 py-8 max-w-4xl",children:[e.jsxs(m,{variant:"ghost",onClick:S,className:"mb-6 -ml-2 text-muted-foreground hover:text-foreground",children:[e.jsx("svg",{className:"h-4 w-4 mr-2",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"})}),"Back to Library"]}),e.jsxs("div",{className:"flex items-start gap-4 mb-8",children:[e.jsx("div",{className:"p-3 bg-dc-surface-elevated rounded-lg flex-shrink-0",children:e.jsx(N,{className:"h-6 w-6 text-primary"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("h1",{className:"text-2xl font-bold mb-3 break-words flex items-start gap-2",children:[t.title,k&&e.jsxs(l,{variant:"outline",className:"text-xs bg-primary/10 text-primary border-primary/20 flex-shrink-0",children:[e.jsx(ce,{className:"h-3 w-3 mr-1"}),"New"]})]}),e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[t.verified&&e.jsxs("span",{className:"inline-flex items-center gap-1 text-xs rounded-full border border-primary/20 bg-primary/10 text-primary px-2 py-0.5",children:[e.jsx($,{className:"h-3 w-3"}),"Verified by DC team"]}),e.jsxs("div",{className:"relative inline-block",children:[e.jsxs(l,{className:`difficulty-badge ${T(t.sessionType)} text-xs flex items-center gap-1 cursor-pointer hover:opacity-90 transition-opacity`,onClick:()=>n(!i),children:[e.jsx("span",{children:t.sessionType}),e.jsx(u,{className:"h-3 w-3"})]}),i&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>n(!1)}),e.jsxs("div",{className:"absolute top-full left-0 mt-2 z-50 w-72 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg shadow-lg p-3 animate-in fade-in-0 zoom-in-95 duration-200",children:[e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx("div",{className:"w-2 h-2 rounded-full bg-blue-500 mt-1 flex-shrink-0"}),e.jsx("div",{className:"flex-1",children:e.jsx("p",{className:"text-sm text-gray-700 dark:text-gray-300 leading-relaxed",children:O[t.sessionType]})}),e.jsx("button",{onClick:r=>{r.stopPropagation(),n(!1)},className:"text-gray-400 hover:text-gray-600 dark:hover:text-gray-200 transition-colors",children:"βœ•"})]}),e.jsx("div",{className:"absolute -top-2 left-4 w-4 h-4 bg-white dark:bg-gray-800 border-l border-t border-gray-200 dark:border-gray-700 rotate-45"})]})]})]}),e.jsx("div",{className:"flex flex-wrap gap-1",children:t.categories.map((r,s)=>e.jsx(l,{variant:"outline",className:"text-xs",children:r},s))}),e.jsxs("div",{className:"flex items-center gap-1 text-sm text-muted-foreground",children:[e.jsx(C,{className:"h-4 w-4"}),e.jsx("span",{className:"truncate",children:t.author})]})]})]}),e.jsxs("div",{className:"shrink-0 flex items-center gap-2",children:[e.jsx(W,{count:t.votes+(c?1:0)}),e.jsxs(H,{children:[e.jsx(V,{asChild:!0,children:e.jsx("button",{type:"button","aria-label":`Exact uses: ${t.votes} (all-time)`,className:"inline-flex items-center justify-center text-muted-foreground hover:text-foreground",children:e.jsx(u,{className:"h-4 w-4"})})}),e.jsxs(q,{align:"end",side:"bottom",children:["Exact uses: ",t.votes," (all-time)"]})]})]})]}),e.jsxs("div",{className:"space-y-8 mb-8",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold mb-2",children:"Description"}),e.jsx("p",{className:"text-base text-muted-foreground leading-relaxed break-words",children:t.description})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold mb-3",children:"Target Roles"}),e.jsx("div",{className:"flex flex-wrap gap-2",children:t.targetRoles.map(r=>e.jsx(l,{variant:"secondary",className:"role-tag text-xs",children:r},r))})]}),e.jsx(G,{}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold mb-4",children:"Complete Prompt"}),e.jsx("div",{className:"p-6 bg-dc-surface-elevated rounded-lg border max-h-96 overflow-y-auto",children:e.jsx("pre",{className:"text-sm text-foreground whitespace-pre-wrap font-mono leading-relaxed",children:t.prompt})})]})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row justify-end gap-3",children:[e.jsxs(J,{children:[e.jsx(K,{asChild:!0,children:e.jsxs(m,{variant:"outline",onClick:D,"aria-label":"Share this prompt",className:"flex items-center gap-2",children:[e.jsx(Q,{className:"h-4 w-4"}),e.jsx("span",{children:w?"Copied":"Share"})]})}),e.jsx(X,{children:"Copy link to share"})]}),e.jsxs(m,{className:"dc-button-primary flex items-center gap-2",onClick:_,children:[e.jsx(de,{className:"h-4 w-4"}),e.jsx("span",{children:"Use Prompt"})]})]})]})}),e.jsx(Y,{isOpen:v,onClose:()=>p(!1),prompt:t.prompt,promptTitle:t.title})]})})};export{Je as default}; diff --git a/docs/assets/PromptDetailPage.B4SnnVp8.js b/docs/assets/PromptDetailPage.B4SnnVp8.js deleted file mode 100644 index 2903f619..00000000 --- a/docs/assets/PromptDetailPage.B4SnnVp8.js +++ /dev/null @@ -1 +0,0 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{e as U,d as B,A as F,a as L,T as M,b as R,S as z,v as A,f as I,B as $,g as O,U as C,E as W,P as H,h as V,i as q,j as G,k as J,l as K,m as Q,n as X,o as Y,q as f,p as Z}from"./UsePromptWizard.BX52If9i.js";import{B as m}from"./button.nz_ACiet.js";import{B as l}from"./circle.KGuz404-.js";import{r as o}from"./index.BaMLtrTp.js";import{S as ee}from"./search.CTWaWu2N.js";import{R as te}from"./refresh-cw.3-55pmhE.js";import{C as re}from"./clock.YdwQlIOd.js";import{D as se}from"./database.BD9zb1Qc.js";import{S as ae}from"./shield.Dnfnq1p4.js";import{F as oe}from"./file-text.DlCSEU1L.js";import{C as ie}from"./chart-column.BMc3CsP9.js";import{C as j}from"./code.BOyVoLRs.js";import{F as ne}from"./folder-open.xHIhBzFI.js";import{F as le}from"./folder-search.DcGsVAUM.js";import{S as ce}from"./sparkles.sp_Qnyce.js";import{I as u}from"./info.BKH_R1lK.js";import{R as de}from"./rocket.DJM_PiJ5.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.CJ67VFfW.js";import"./utils.XhT4HDO9.js";import"./index.vFQDSFae.js";import"./index.lqPDcyCD.js";import"./index.BlsO67so.js";import"./index.BbTPjBLC.js";import"./index.CyN3cLSG.js";import"./x.B1hOxjOp.js";import"./dialog.ov7dtrSg.js";import"./index.C9IP8clr.js";import"./module.C-PkBFPJ.js";import"./external-link.BigcEWhC.js";import"./message-square.bamY-dpJ.js";import"./terminal.CvJQ-WtW.js";import"./check.eE7yIrYi.js";const me={FolderSearch:le,FolderOrganize:ne,Code:j,BarChart3:ie,Settings:z,FileText:oe,Archive:R,Shield:ae,Database:se,TestTube:M,Clock:re,RefreshCw:te,ArrowRightLeft:L,Activity:F,Search:ee},pe=t=>{if(!t)return!1;const c=new Date(t),i=Math.abs(new Date().getTime()-c.getTime());return Math.ceil(i/(1e3*60*60*24))<=14},Je=({useCase:t})=>{const[c,b]=o.useState(!1),[i,n]=o.useState(!1),[v,p]=o.useState(!1),[w,x]=o.useState(!1),{toast:h}=U(),[xe,g]=o.useState(0),d=B();o.useEffect(()=>{if(!t)return;const r=`useCase_uses_${t.id}`,s=localStorage.getItem(r),a=s?Number(s):0;g(Number.isFinite(a)?a:0),d.capture("prompt_page_viewed",{prompt_id:t.id,prompt_title:t.title,prompt_slug:t.slug,prompt_categories:t.categories,prompt_session_type:t.sessionType,source_page:"direct_url",url_type:"seo_friendly"})},[t?.id,d]);const y=()=>{if(!t)return;const r=`useCase_uses_${t.id}`;g(s=>{const a=s+1;return localStorage.setItem(r,String(a)),a})};if(!t)return null;const N=me[t.icon]||j,k=pe(t.dateAdded),_=()=>{p(!0),y()},S=()=>{window.location.href=f("/library/prompts")},T=r=>{switch(r){case"Instant output":return"session-instant-output";case"Step-by-step flow":return"session-step-by-step-flow";default:return"session-instant-output"}},P=(r="share_button")=>{const s=new URL(f(`/library/prompts/${t.slug}`),window.location.origin);return s.searchParams.set("utm_source","desktop_commander"),s.searchParams.set("utm_medium",r),s.searchParams.set("utm_campaign","prompt_sharing"),s.searchParams.set("utm_content",t.slug||""),s.searchParams.set("shared_at",Date.now().toString()),s.toString()},D=async()=>{const r=typeof navigator<"u"&&(/(Mobi|Android|iPhone|iPad|iPod)/i.test(navigator.userAgent)||typeof window<"u"&&window.matchMedia&&window.matchMedia("(pointer: coarse)").matches),s=r&&navigator.share?"native_share":"clipboard_copy",a=P(s),E=`Prompt: ${t.title}`;d.capture("share_button_clicked",{prompt_id:t.id,prompt_title:t.title,share_method:s,source_page:"prompt_detail_page"});try{if(r&&navigator.share){await navigator.share({title:E,text:"Check out this Desktop Commander prompt",url:a});return}await navigator.clipboard.writeText(a),x(!0),setTimeout(()=>x(!1),1500),h({title:"Link copied",description:"Share it with your team.",action:e.jsx(Z,{altText:"Open link",onClick:()=>window.open(a,"_blank","noopener,noreferrer"),children:"Open"})})}catch{h({title:"Share failed",description:"Could not share or copy the link.",variant:"destructive"})}};return e.jsx(A,{children:e.jsxs(I,{children:[e.jsx("div",{className:"min-h-screen bg-background mt-20",children:e.jsxs("div",{className:"container mx-auto px-4 py-8 max-w-4xl",children:[e.jsxs(m,{variant:"ghost",onClick:S,className:"mb-6 -ml-2 text-muted-foreground hover:text-foreground",children:[e.jsx("svg",{className:"h-4 w-4 mr-2",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"})}),"Back to Library"]}),e.jsxs("div",{className:"flex items-start gap-4 mb-8",children:[e.jsx("div",{className:"p-3 bg-dc-surface-elevated rounded-lg flex-shrink-0",children:e.jsx(N,{className:"h-6 w-6 text-primary"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("h1",{className:"text-2xl font-bold mb-3 break-words flex items-start gap-2",children:[t.title,k&&e.jsxs(l,{variant:"outline",className:"text-xs bg-primary/10 text-primary border-primary/20 flex-shrink-0",children:[e.jsx(ce,{className:"h-3 w-3 mr-1"}),"New"]})]}),e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[t.verified&&e.jsxs("span",{className:"inline-flex items-center gap-1 text-xs rounded-full border border-primary/20 bg-primary/10 text-primary px-2 py-0.5",children:[e.jsx($,{className:"h-3 w-3"}),"Verified by DC team"]}),e.jsxs("div",{className:"relative inline-block",children:[e.jsxs(l,{className:`difficulty-badge ${T(t.sessionType)} text-xs flex items-center gap-1 cursor-pointer hover:opacity-90 transition-opacity`,onClick:()=>n(!i),children:[e.jsx("span",{children:t.sessionType}),e.jsx(u,{className:"h-3 w-3"})]}),i&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>n(!1)}),e.jsxs("div",{className:"absolute top-full left-0 mt-2 z-50 w-72 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg shadow-lg p-3 animate-in fade-in-0 zoom-in-95 duration-200",children:[e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx("div",{className:"w-2 h-2 rounded-full bg-blue-500 mt-1 flex-shrink-0"}),e.jsx("div",{className:"flex-1",children:e.jsx("p",{className:"text-sm text-gray-700 dark:text-gray-300 leading-relaxed",children:O[t.sessionType]})}),e.jsx("button",{onClick:r=>{r.stopPropagation(),n(!1)},className:"text-gray-400 hover:text-gray-600 dark:hover:text-gray-200 transition-colors",children:"βœ•"})]}),e.jsx("div",{className:"absolute -top-2 left-4 w-4 h-4 bg-white dark:bg-gray-800 border-l border-t border-gray-200 dark:border-gray-700 rotate-45"})]})]})]}),e.jsx("div",{className:"flex flex-wrap gap-1",children:t.categories.map((r,s)=>e.jsx(l,{variant:"outline",className:"text-xs",children:r},s))}),e.jsxs("div",{className:"flex items-center gap-1 text-sm text-muted-foreground",children:[e.jsx(C,{className:"h-4 w-4"}),e.jsx("span",{className:"truncate",children:t.author})]})]})]}),e.jsxs("div",{className:"shrink-0 flex items-center gap-2",children:[e.jsx(W,{count:t.votes+(c?1:0)}),e.jsxs(H,{children:[e.jsx(V,{asChild:!0,children:e.jsx("button",{type:"button","aria-label":`Exact uses: ${t.votes} (all-time)`,className:"inline-flex items-center justify-center text-muted-foreground hover:text-foreground",children:e.jsx(u,{className:"h-4 w-4"})})}),e.jsxs(q,{align:"end",side:"bottom",children:["Exact uses: ",t.votes," (all-time)"]})]})]})]}),e.jsxs("div",{className:"space-y-8 mb-8",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold mb-2",children:"Description"}),e.jsx("p",{className:"text-base text-muted-foreground leading-relaxed break-words",children:t.description})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold mb-3",children:"Target Roles"}),e.jsx("div",{className:"flex flex-wrap gap-2",children:t.targetRoles.map(r=>e.jsx(l,{variant:"secondary",className:"role-tag text-xs",children:r},r))})]}),e.jsx(G,{}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold mb-4",children:"Complete Prompt"}),e.jsx("div",{className:"p-6 bg-dc-surface-elevated rounded-lg border max-h-96 overflow-y-auto",children:e.jsx("pre",{className:"text-sm text-foreground whitespace-pre-wrap font-mono leading-relaxed",children:t.prompt})})]})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row justify-end gap-3",children:[e.jsxs(J,{children:[e.jsx(K,{asChild:!0,children:e.jsxs(m,{variant:"outline",onClick:D,"aria-label":"Share this prompt",className:"flex items-center gap-2",children:[e.jsx(Q,{className:"h-4 w-4"}),e.jsx("span",{children:w?"Copied":"Share"})]})}),e.jsx(X,{children:"Copy link to share"})]}),e.jsxs(m,{className:"dc-button-primary flex items-center gap-2",onClick:_,children:[e.jsx(de,{className:"h-4 w-4"}),e.jsx("span",{children:"Use Prompt"})]})]})]})}),e.jsx(Y,{isOpen:v,onClose:()=>p(!1),prompt:t.prompt,promptTitle:t.title})]})})};export{Je as default}; diff --git a/docs/assets/PromptLibrary.DyEu4m-i.js b/docs/assets/PromptLibrary.BO6l1uEk.js similarity index 93% rename from docs/assets/PromptLibrary.DyEu4m-i.js rename to docs/assets/PromptLibrary.BO6l1uEk.js index 68fd8a34..43a16be3 100644 --- a/docs/assets/PromptLibrary.DyEu4m-i.js +++ b/docs/assets/PromptLibrary.BO6l1uEk.js @@ -1,4 +1,4 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as W}from"./button.nz_ACiet.js";import{r as p}from"./index.BaMLtrTp.js";import{c as Z,b as x,P as q,e as X,f as J,d as Q}from"./index.vFQDSFae.js";import{c as I,R as Y,I as ee}from"./index.C9IP8clr.js";import{P as y}from"./index.BlsO67so.js";import{a as v}from"./utils.XhT4HDO9.js";import{u as te}from"./useAnalyticsAstro.CR8fdMXS.js";import{c as b}from"./createLucideIcon.CJ67VFfW.js";import{S as re}from"./search.CTWaWu2N.js";import{F as w}from"./file-text.DlCSEU1L.js";import{D as j}from"./database.BD9zb1Qc.js";import{S as _}from"./server.pwsPfNtl.js";import{B as N}from"./book-open.BcQsGvDd.js";import{F as oe}from"./folder-open.xHIhBzFI.js";import{Z as ae}from"./zap.D6vbqF2e.js";import{C as k}from"./chart-column.BMc3CsP9.js";import{A as T}from"./arrow-right.B_EnXtAw.js";import"./index.yBjzXJbu.js";import"./index.CyN3cLSG.js";import"./index.BbTPjBLC.js";import"./tracking.znU5Ou_b.js";/** +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as W}from"./button.D-OtCHTj.js";import{r as p}from"./index.D_oLZvzW.js";import{c as Z,b as x,P as q,e as X,f as J,d as Q}from"./index.DO6kBsrn.js";import{c as I,R as Y,I as ee}from"./index.CKNnz_F1.js";import{P as y}from"./index.5q9h5iS_.js";import{a as v}from"./utils.9Q5QEYED.js";import{u as te}from"./useAnalyticsAstro.DaPc9vxZ.js";import{c as b}from"./createLucideIcon.DnxMVFvH.js";import{S as re}from"./search.DStwv__K.js";import{F as w}from"./file-text.CAYOOP65.js";import{D as j}from"./database.CpdIqL8j.js";import{S as _}from"./server.2PNbSf_A.js";import{B as N}from"./book-open.DUQscRpC.js";import{F as oe}from"./folder-open.Z1dzfNLE.js";import{Z as ae}from"./zap.DaqacrRs.js";import{C as k}from"./chart-column.OLWkJ9on.js";import{A as T}from"./arrow-right.DSKvTJYC.js";import"./index.yBjzXJbu.js";import"./index.xUA8L87E.js";import"./index.BbTPjBLC.js";import"./tracking.znU5Ou_b.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/PromptsLibraryAstro.Mi_ZWW01.js b/docs/assets/PromptsLibraryAstro.CRwDfzHw.js similarity index 96% rename from docs/assets/PromptsLibraryAstro.Mi_ZWW01.js rename to docs/assets/PromptsLibraryAstro.CRwDfzHw.js index 149a9a03..2cdf7f09 100644 --- a/docs/assets/PromptsLibraryAstro.Mi_ZWW01.js +++ b/docs/assets/PromptsLibraryAstro.CRwDfzHw.js @@ -1,4 +1,4 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{r as n}from"./index.BaMLtrTp.js";import{A as Le,a as Be,T as Ve,b as Fe,S as Ue,E as He,u as $t,V as zt,c as Gt,r as Jt,s as Yt,d as We,e as qt,f as Ke,B as Zt,g as Xt,U as Qt,P as eo,h as to,i as oo,j as so,k as no,l as ro,m as ao,n as io,o as lo,p as Ee,q as $e,t as De}from"./UsePromptWizard.BX52If9i.js";import{C as co,a as po,b as mo,c as uo,d as fo}from"./card.BQ_O-TaV.js";import{B as Q,c as ze,A as ho,C as xo,R as go,a as vo}from"./circle.KGuz404-.js";import{S as Ie}from"./search.CTWaWu2N.js";import{R as Ge}from"./refresh-cw.3-55pmhE.js";import{C as Je}from"./clock.YdwQlIOd.js";import{D as Ye}from"./database.BD9zb1Qc.js";import{S as qe}from"./shield.Dnfnq1p4.js";import{F as Ze}from"./file-text.DlCSEU1L.js";import{C as Xe}from"./chart-column.BMc3CsP9.js";import{C as he}from"./code.BOyVoLRs.js";import{F as Qe}from"./folder-open.xHIhBzFI.js";import{F as et}from"./folder-search.DcGsVAUM.js";import{S as tt}from"./sparkles.sp_Qnyce.js";import{Z as wo}from"./zap.D6vbqF2e.js";import{P as W,r as ot}from"./index.BlsO67so.js";import{c as _o,a as yo,b as A,u as oe,d as Pe,e as So,f as Me}from"./index.vFQDSFae.js";import{u as Z,c as bo,a as H}from"./utils.XhT4HDO9.js";import{P as No,h as jo,u as To,R as Co,F as Io,D as Po}from"./index.lqPDcyCD.js";import{u as ko}from"./index.CyN3cLSG.js";import{C as ke}from"./chevron-down.B6Si1q7U.js";import{c as Ro}from"./createLucideIcon.CJ67VFfW.js";import{C as Eo}from"./check.eE7yIrYi.js";import{B as te}from"./button.nz_ACiet.js";import{X as st}from"./x.B1hOxjOp.js";import{P as Do}from"./plus.DA_zqKdq.js";import{E as nt}from"./external-link.BigcEWhC.js";import{D as Mo,a as Oo,b as Ao,c as Lo,d as Bo}from"./dialog.ov7dtrSg.js";import{I as Oe}from"./info.BKH_R1lK.js";import{R as Vo}from"./rocket.DJM_PiJ5.js";import"./index.yBjzXJbu.js";import"./index.C9IP8clr.js";import"./module.C-PkBFPJ.js";import"./message-square.bamY-dpJ.js";import"./terminal.CvJQ-WtW.js";import"./index.BbTPjBLC.js";/** +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{r as n}from"./index.D_oLZvzW.js";import{A as Le,a as Be,T as Ve,b as Fe,S as Ue,E as He,u as $t,V as zt,c as Gt,r as Jt,s as Yt,d as We,e as qt,f as Ke,B as Zt,g as Xt,U as Qt,P as eo,h as to,i as oo,j as so,k as no,l as ro,m as ao,n as io,o as lo,p as Ee,q as $e,t as De}from"./UsePromptWizard.DnO32Lw7.js";import{C as co,a as po,b as mo,c as uo,d as fo}from"./card.tb19JS-_.js";import{B as Q,c as ze,A as ho,C as xo,R as go,a as vo}from"./index.DNo0B2hs.js";import{S as Ie}from"./search.DStwv__K.js";import{R as Ge}from"./refresh-cw.BaAeNbsO.js";import{C as Je}from"./clock.0f4SrxU_.js";import{D as Ye}from"./database.CpdIqL8j.js";import{S as qe}from"./shield.Cc9GR1lK.js";import{F as Ze}from"./file-text.CAYOOP65.js";import{C as Xe}from"./chart-column.OLWkJ9on.js";import{C as he}from"./code.Bsz77KQU.js";import{F as Qe}from"./folder-open.Z1dzfNLE.js";import{F as et}from"./folder-search.Cl-IbVIe.js";import{S as tt}from"./sparkles.DoaLSLnS.js";import{Z as wo}from"./zap.DaqacrRs.js";import{P as W,r as ot}from"./index.5q9h5iS_.js";import{c as _o,a as yo,b as A,u as oe,d as Pe,e as So,f as Me}from"./index.DO6kBsrn.js";import{u as Z,c as bo,a as H}from"./utils.9Q5QEYED.js";import{P as No,h as jo,u as To,R as Co,F as Io,D as Po}from"./index.DAP1SQuk.js";import{u as ko}from"./index.xUA8L87E.js";import{C as ke}from"./chevron-down.BAQmmeQZ.js";import{c as Ro}from"./createLucideIcon.DnxMVFvH.js";import{C as Eo}from"./check.BxIsZM2Y.js";import{B as te}from"./button.D-OtCHTj.js";import{X as st}from"./x.C6Iw0U2F.js";import{P as Do}from"./plus.B9QqORzJ.js";import{E as nt}from"./external-link.DsSVi18J.js";import{D as Mo,a as Oo,b as Ao,c as Lo,d as Bo}from"./dialog.CeUsCtfh.js";import{I as Oe}from"./info.DkfeuojL.js";import{R as Vo}from"./rocket.DnXnYW1j.js";import"./index.yBjzXJbu.js";import"./index.CKNnz_F1.js";import"./module.C-PkBFPJ.js";import"./message-square.O0_WvyiX.js";import"./terminal.BX6Ycj7A.js";import"./index.BbTPjBLC.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/SolutionSection.CD-5zjDp.js b/docs/assets/SolutionSection.VTyngQD6.js similarity index 96% rename from docs/assets/SolutionSection.CD-5zjDp.js rename to docs/assets/SolutionSection.VTyngQD6.js index 99a7ff75..abf56e05 100644 --- a/docs/assets/SolutionSection.CD-5zjDp.js +++ b/docs/assets/SolutionSection.VTyngQD6.js @@ -1,4 +1,4 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{F as s}from"./folder-search.DcGsVAUM.js";import{c as a}from"./createLucideIcon.CJ67VFfW.js";import{F as d}from"./folder.CuC5tYjw.js";import{D as l}from"./database.BD9zb1Qc.js";import"./index.yBjzXJbu.js";import"./index.BaMLtrTp.js";/** +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{F as s}from"./folder-search.Cl-IbVIe.js";import{c as a}from"./createLucideIcon.DnxMVFvH.js";import{F as d}from"./folder.DUWx0hf3.js";import{D as l}from"./database.CpdIqL8j.js";import"./index.yBjzXJbu.js";import"./index.D_oLZvzW.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/TrustedBy.PTwQ1jRd.js b/docs/assets/TrustedBy.CI-Jg2XQ.js similarity index 95% rename from docs/assets/TrustedBy.PTwQ1jRd.js rename to docs/assets/TrustedBy.CI-Jg2XQ.js index aa7683e0..4da63d27 100644 --- a/docs/assets/TrustedBy.PTwQ1jRd.js +++ b/docs/assets/TrustedBy.CI-Jg2XQ.js @@ -1 +1 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as x}from"./button.nz_ACiet.js";import{r as h}from"./index.BaMLtrTp.js";import{S as N}from"./star.B1d6f3gm.js";import{D as C}from"./download.B9D7xAuS.js";import{G as k}from"./github.BkBM2DcL.js";import{T as D}from"./terminal.CvJQ-WtW.js";import"./index.yBjzXJbu.js";import"./utils.XhT4HDO9.js";import"./createLucideIcon.CJ67VFfW.js";const S=({testimonials:o})=>{const m=({testimonial:a,index:s})=>{const d=s%4===0?"rotate-2":s%4===1?"-rotate-2":s%4===2?"rotate-4":"-rotate-4",i=r=>{let t=0;for(let c=0;c{let t=0;for(let u=0;u>>16,t=Math.abs(t);const n=[{month:4,days:30},{month:5,days:31},{month:6,days:30},{month:7,days:31},{month:8,days:31},{month:9,days:30}],c=t%n.length,p=n[c],y=(t>>>3)%p.days+1,g=(t>>>8)%12+10,f=(t>>>12)%60,b=y.toString().padStart(2,"0"),v=p.month.toString().padStart(2,"0"),j=g.toString().padStart(2,"0"),w=f.toString().padStart(2,"0");return`${b}/${v}/2025, ${j}:${w}`};return e.jsx("div",{className:`flex-shrink-0 w-80 p-4 ${d} hover:rotate-0 transition-transform duration-300`,children:e.jsxs("div",{className:"bg-gray-800 rounded-lg p-4 shadow-lg h-56 flex flex-col",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-3 flex-shrink-0",children:[e.jsx("div",{className:`w-9 h-9 ${i(a.author)} rounded-full flex items-center justify-center`,children:e.jsx("span",{className:"text-white text-sm font-bold",children:a.author.split(" ").map(r=>r[0]).join("").slice(0,2)})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-white font-medium text-sm",children:a.author}),e.jsx("div",{className:"text-gray-400 text-xs",children:l(a.author)})]})]}),e.jsx("div",{className:"text-white text-sm leading-relaxed flex-1 overflow-y-auto scrollbar-thin scrollbar-track-gray-700 scrollbar-thumb-gray-500 hover:scrollbar-thumb-gray-400",children:a.quote})]})})};return e.jsx("div",{className:"w-full overflow-hidden",children:e.jsx("div",{className:"flex pt-4 pb-4",children:e.jsxs("div",{className:"flex gap-5 animate-marquee-right",children:[o.map((a,s)=>e.jsx(m,{testimonial:a,index:s},`testimonial-${s}`)),o.map((a,s)=>e.jsx(m,{testimonial:a,index:s+o.length},`testimonial-dup-${s}`))]})})})},z=()=>{const[o,m]=h.useState(!1),a=h.useRef(null);h.useEffect(()=>{const i=new IntersectionObserver(l=>{l[0].isIntersecting&&m(!0)},{threshold:.1,rootMargin:"-50px"});return a.current&&i.observe(a.current),()=>i.disconnect()},[]);const s=[{icon:N,value:"9.52/10",label:"User Rating",description:"Developer satisfaction"},{icon:C,value:"26k+",label:"Weekly Downloads",description:"Active installations"},{icon:k,value:"4.3k+",label:"GitHub Stars",description:"Community trust"}],d=[{quote:"It is a great tool, thank you, I like using it, as it gives claude an ability to do surgical edits, making it more like a human developer.",author:"naranbaz",role:"Developer",company:"Community"},{quote:"Life saver! I was paying for both Claude + Cursor which felt duplicated. This solves that perfectly. With MCP + web search, it writes code with the latest updates. So good when Cursor doesn't work or fast requests run out.",author:"play365alltime",role:"Developer",company:"Community"},{quote:"I had 76 errors in 23 files in my Svelte 5 project. Used desktop-commander, sequentialthinking, and tree-sitter to fix them all. Never resolved type errors this quickly with AI before!",author:"dependablecalls",role:"Developer",company:"Community"},{quote:"I'm the one who is grateful for this, which is the best MCP that exists!",author:"Dhiego Pagotto",role:"Developer",company:"Community"},{quote:"Just joined I absolutely love this thing",author:"Uloi",role:"Developer",company:"Community"},{quote:"happy command coding everyone - god I love this tool",author:"Geoff F",role:"Developer",company:"Community"},{quote:"Wow, I've been building something similar. This makes my project so much easier to build now. I'm truly grateful. Thank you!",author:"Creedo",role:"Developer",company:"Community"},{quote:"btw @DC Dmitry , thanks for such great MCP πŸ™‚ I'm loving it πŸ™‚",author:"Damian Pastorini",role:"Developer",company:"COLY"},{quote:"Switched from Windsurf to Claude MCP and love it! No more token limits or cascade issues. Can code as much as I want without worrying about costs. This is much more than just code editing!",author:"jesseburstrom5920",role:"Developer",company:"Community"},{quote:"Been using this MCP daily for a couple of months now and onboarded a bunch of buddies onto it as well, a go to in my arsenal, great work!!",author:"Bjorn Melin",role:"Developer",company:"Community"},{quote:"Played with DesktopCommander today, replaced FileServer and continued my project. The diff-based editing is awesome - could continue longer in the same chat before hitting limits. Great!",author:"eszpee",role:"Developer",company:"Community"}];return e.jsxs("section",{ref:a,className:"py-12 md:py-16 bg-white",children:[e.jsxs("div",{className:"container mx-auto max-w-7xl px-4 sm:px-6",children:[e.jsx("div",{className:`text-center mb-8 md:mb-12 transition-all duration-1000 ${o?"opacity-100 translate-y-0":"opacity-0 translate-y-8"}`,children:e.jsx("h2",{className:"text-3xl sm:text-4xl md:text-5xl font-bold text-slate-900 mb-4 md:mb-6 leading-tight",children:"Trusted by the AI community"})}),e.jsx("div",{className:`grid grid-cols-1 sm:grid-cols-3 gap-6 md:gap-8 mb-8 transition-all duration-1000 delay-300 ${o?"opacity-100 translate-y-0":"opacity-0 translate-y-8"}`,children:s.map((i,l)=>{const r=i.icon;return e.jsxs("div",{className:`flex flex-col sm:flex-row items-center justify-center sm:justify-start gap-3 sm:gap-4 group transition-all duration-700 p-4 sm:p-0 ${o?"opacity-100 translate-x-0":"opacity-0 -translate-x-8"}`,style:{transitionDelay:o?`${500+l*200}ms`:"0ms"},children:[e.jsx("div",{className:"flex items-center justify-center w-12 h-12 bg-dc-blue/10 rounded-xl group-hover:bg-dc-blue/20 group-hover:scale-110 transition-all duration-300 flex-shrink-0",children:e.jsx(r,{className:"h-6 w-6 text-dc-blue transition-transform duration-300 group-hover:rotate-12"})}),e.jsxs("div",{className:"text-center sm:text-left",children:[e.jsx("div",{className:"text-2xl sm:text-3xl font-bold text-slate-900",children:i.value}),e.jsx("div",{className:"text-sm text-slate-600",children:i.label})]})]},l)})})]}),e.jsx("div",{className:`mb-6 transition-all duration-1000 delay-1000 ${o?"opacity-100 translate-y-0":"opacity-0 translate-y-8"}`,children:e.jsx(S,{testimonials:d})}),e.jsx("div",{className:"container mx-auto max-w-7xl px-4 sm:px-6",children:e.jsxs("div",{className:`text-center transition-all duration-1000 delay-1200 ${o?"opacity-100 translate-y-0":"opacity-0 translate-y-8"}`,children:[e.jsx("p",{className:"text-lg sm:text-xl text-slate-600 mb-6 px-4 sm:px-0",children:"Try it out for yourself or browse our prompt library!"}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center items-center px-4 sm:px-0",children:[e.jsx(x,{variant:"hero",size:"lg",className:"w-full sm:w-auto transition-all duration-300 hover:scale-105 active:scale-95",asChild:!0,children:e.jsxs("a",{href:"./#installation",className:"flex items-center justify-center gap-2",children:[e.jsx(D,{className:"h-5 w-5"}),"Install Desktop Commander"]})}),e.jsx(x,{variant:"outline",size:"lg",className:"w-full sm:w-auto transition-all duration-300 hover:scale-105 active:scale-95",asChild:!0,children:e.jsx("a",{href:"/library",className:"flex items-center justify-center gap-2",children:"Browse Prompt Library"})})]})]})})]})};export{z as default}; +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as x}from"./button.D-OtCHTj.js";import{r as h}from"./index.D_oLZvzW.js";import{S as N}from"./star.B5F53nve.js";import{D as C}from"./download.DXDz0qZS.js";import{G as k}from"./github.xZ1f8Ld5.js";import{T as D}from"./terminal.BX6Ycj7A.js";import"./index.yBjzXJbu.js";import"./utils.9Q5QEYED.js";import"./createLucideIcon.DnxMVFvH.js";const S=({testimonials:o})=>{const m=({testimonial:a,index:s})=>{const d=s%4===0?"rotate-2":s%4===1?"-rotate-2":s%4===2?"rotate-4":"-rotate-4",i=r=>{let t=0;for(let c=0;c{let t=0;for(let u=0;u>>16,t=Math.abs(t);const n=[{month:4,days:30},{month:5,days:31},{month:6,days:30},{month:7,days:31},{month:8,days:31},{month:9,days:30}],c=t%n.length,p=n[c],y=(t>>>3)%p.days+1,g=(t>>>8)%12+10,f=(t>>>12)%60,b=y.toString().padStart(2,"0"),v=p.month.toString().padStart(2,"0"),j=g.toString().padStart(2,"0"),w=f.toString().padStart(2,"0");return`${b}/${v}/2025, ${j}:${w}`};return e.jsx("div",{className:`flex-shrink-0 w-80 p-4 ${d} hover:rotate-0 transition-transform duration-300`,children:e.jsxs("div",{className:"bg-gray-800 rounded-lg p-4 shadow-lg h-56 flex flex-col",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-3 flex-shrink-0",children:[e.jsx("div",{className:`w-9 h-9 ${i(a.author)} rounded-full flex items-center justify-center`,children:e.jsx("span",{className:"text-white text-sm font-bold",children:a.author.split(" ").map(r=>r[0]).join("").slice(0,2)})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-white font-medium text-sm",children:a.author}),e.jsx("div",{className:"text-gray-400 text-xs",children:l(a.author)})]})]}),e.jsx("div",{className:"text-white text-sm leading-relaxed flex-1 overflow-y-auto scrollbar-thin scrollbar-track-gray-700 scrollbar-thumb-gray-500 hover:scrollbar-thumb-gray-400",children:a.quote})]})})};return e.jsx("div",{className:"w-full overflow-hidden",children:e.jsx("div",{className:"flex pt-4 pb-4",children:e.jsxs("div",{className:"flex gap-5 animate-marquee-right",children:[o.map((a,s)=>e.jsx(m,{testimonial:a,index:s},`testimonial-${s}`)),o.map((a,s)=>e.jsx(m,{testimonial:a,index:s+o.length},`testimonial-dup-${s}`))]})})})},z=()=>{const[o,m]=h.useState(!1),a=h.useRef(null);h.useEffect(()=>{const i=new IntersectionObserver(l=>{l[0].isIntersecting&&m(!0)},{threshold:.1,rootMargin:"-50px"});return a.current&&i.observe(a.current),()=>i.disconnect()},[]);const s=[{icon:N,value:"9.52/10",label:"User Rating",description:"Developer satisfaction"},{icon:C,value:"26k+",label:"Weekly Downloads",description:"Active installations"},{icon:k,value:"4.3k+",label:"GitHub Stars",description:"Community trust"}],d=[{quote:"It is a great tool, thank you, I like using it, as it gives claude an ability to do surgical edits, making it more like a human developer.",author:"naranbaz",role:"Developer",company:"Community"},{quote:"Life saver! I was paying for both Claude + Cursor which felt duplicated. This solves that perfectly. With MCP + web search, it writes code with the latest updates. So good when Cursor doesn't work or fast requests run out.",author:"play365alltime",role:"Developer",company:"Community"},{quote:"I had 76 errors in 23 files in my Svelte 5 project. Used desktop-commander, sequentialthinking, and tree-sitter to fix them all. Never resolved type errors this quickly with AI before!",author:"dependablecalls",role:"Developer",company:"Community"},{quote:"I'm the one who is grateful for this, which is the best MCP that exists!",author:"Dhiego Pagotto",role:"Developer",company:"Community"},{quote:"Just joined I absolutely love this thing",author:"Uloi",role:"Developer",company:"Community"},{quote:"happy command coding everyone - god I love this tool",author:"Geoff F",role:"Developer",company:"Community"},{quote:"Wow, I've been building something similar. This makes my project so much easier to build now. I'm truly grateful. Thank you!",author:"Creedo",role:"Developer",company:"Community"},{quote:"btw @DC Dmitry , thanks for such great MCP πŸ™‚ I'm loving it πŸ™‚",author:"Damian Pastorini",role:"Developer",company:"COLY"},{quote:"Switched from Windsurf to Claude MCP and love it! No more token limits or cascade issues. Can code as much as I want without worrying about costs. This is much more than just code editing!",author:"jesseburstrom5920",role:"Developer",company:"Community"},{quote:"Been using this MCP daily for a couple of months now and onboarded a bunch of buddies onto it as well, a go to in my arsenal, great work!!",author:"Bjorn Melin",role:"Developer",company:"Community"},{quote:"Played with DesktopCommander today, replaced FileServer and continued my project. The diff-based editing is awesome - could continue longer in the same chat before hitting limits. Great!",author:"eszpee",role:"Developer",company:"Community"}];return e.jsxs("section",{ref:a,className:"py-12 md:py-16 bg-white",children:[e.jsxs("div",{className:"container mx-auto max-w-7xl px-4 sm:px-6",children:[e.jsx("div",{className:`text-center mb-8 md:mb-12 transition-all duration-1000 ${o?"opacity-100 translate-y-0":"opacity-0 translate-y-8"}`,children:e.jsx("h2",{className:"text-3xl sm:text-4xl md:text-5xl font-bold text-slate-900 mb-4 md:mb-6 leading-tight",children:"Trusted by the AI community"})}),e.jsx("div",{className:`grid grid-cols-1 sm:grid-cols-3 gap-6 md:gap-8 mb-8 transition-all duration-1000 delay-300 ${o?"opacity-100 translate-y-0":"opacity-0 translate-y-8"}`,children:s.map((i,l)=>{const r=i.icon;return e.jsxs("div",{className:`flex flex-col sm:flex-row items-center justify-center sm:justify-start gap-3 sm:gap-4 group transition-all duration-700 p-4 sm:p-0 ${o?"opacity-100 translate-x-0":"opacity-0 -translate-x-8"}`,style:{transitionDelay:o?`${500+l*200}ms`:"0ms"},children:[e.jsx("div",{className:"flex items-center justify-center w-12 h-12 bg-dc-blue/10 rounded-xl group-hover:bg-dc-blue/20 group-hover:scale-110 transition-all duration-300 flex-shrink-0",children:e.jsx(r,{className:"h-6 w-6 text-dc-blue transition-transform duration-300 group-hover:rotate-12"})}),e.jsxs("div",{className:"text-center sm:text-left",children:[e.jsx("div",{className:"text-2xl sm:text-3xl font-bold text-slate-900",children:i.value}),e.jsx("div",{className:"text-sm text-slate-600",children:i.label})]})]},l)})})]}),e.jsx("div",{className:`mb-6 transition-all duration-1000 delay-1000 ${o?"opacity-100 translate-y-0":"opacity-0 translate-y-8"}`,children:e.jsx(S,{testimonials:d})}),e.jsx("div",{className:"container mx-auto max-w-7xl px-4 sm:px-6",children:e.jsxs("div",{className:`text-center transition-all duration-1000 delay-1200 ${o?"opacity-100 translate-y-0":"opacity-0 translate-y-8"}`,children:[e.jsx("p",{className:"text-lg sm:text-xl text-slate-600 mb-6 px-4 sm:px-0",children:"Try it out for yourself or browse our prompt library!"}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center items-center px-4 sm:px-0",children:[e.jsx(x,{variant:"hero",size:"lg",className:"w-full sm:w-auto transition-all duration-300 hover:scale-105 active:scale-95",asChild:!0,children:e.jsxs("a",{href:"./#installation",className:"flex items-center justify-center gap-2",children:[e.jsx(D,{className:"h-5 w-5"}),"Install Desktop Commander"]})}),e.jsx(x,{variant:"outline",size:"lg",className:"w-full sm:w-auto transition-all duration-300 hover:scale-105 active:scale-95",asChild:!0,children:e.jsx("a",{href:"/library",className:"flex items-center justify-center gap-2",children:"Browse Prompt Library"})})]})]})})]})};export{z as default}; diff --git a/docs/assets/UseCases.R7nfrFLU.js b/docs/assets/UseCases.Cg2Pdc5f.js similarity index 92% rename from docs/assets/UseCases.R7nfrFLU.js rename to docs/assets/UseCases.Cg2Pdc5f.js index 3314fe4e..83e247b2 100644 --- a/docs/assets/UseCases.R7nfrFLU.js +++ b/docs/assets/UseCases.Cg2Pdc5f.js @@ -1 +1 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{c as b,C as d}from"./card.BQ_O-TaV.js";import{B as c}from"./button.nz_ACiet.js";import{r as o}from"./index.BaMLtrTp.js";import{u as w}from"./useAnalyticsAstro.CR8fdMXS.js";import{S as y}from"./shield.Dnfnq1p4.js";import{F as v}from"./file-text.DlCSEU1L.js";import{Z as m}from"./zap.D6vbqF2e.js";import{A as x}from"./arrow-right.B_EnXtAw.js";import{T as j}from"./terminal.CvJQ-WtW.js";import"./index.yBjzXJbu.js";import"./utils.XhT4HDO9.js";import"./tracking.znU5Ou_b.js";import"./createLucideIcon.CJ67VFfW.js";const F=()=>{const[s,h]=o.useState(!1),a=o.useRef(null),{trackCustomEvent:u}=w(),f=()=>{u("automation_cta_clicked",{location:"use_cases_section",cta_text:"Tell us what you want to automate"}),window.open("https://tally.so/r/mOR6Yp","_blank","noopener,noreferrer")};o.useEffect(()=>{const t=new IntersectionObserver(r=>{r[0].isIntersecting&&h(!0)},{threshold:.1,rootMargin:"-50px"});return a.current&&t.observe(a.current),()=>t.disconnect()},[]);const p=[{icon:y,title:"Organize and manage your files",description:"Move, convert, and organize files in natural language. No random websites, everything stays local.",href:"/use-cases/file-management/",linkText:"See how it works"},{icon:v,title:"Build and maintain your knowledge base",description:"Write, edit, and organize markdown files by talking to AI. Works with Obsidian, VS Code, and local files.",href:"/use-cases/knowledge-management/",linkText:"See how it works"},{icon:m,title:"Build software without coding",description:"Describe what you wantβ€”AI writes the code and saves it locally. You own every file.",href:"/use-cases/build-prototype/",linkText:"See how it works"}];return e.jsx("section",{ref:a,id:"use-cases",className:"py-16 md:py-24 bg-dc-surface/30",children:e.jsxs("div",{className:"container mx-auto max-w-7xl px-4 sm:px-6",children:[e.jsxs("div",{className:`text-center mb-12 md:mb-16 transition-all duration-1000 ${s?"opacity-100 translate-y-0":"opacity-0 translate-y-8"}`,children:[e.jsx("h2",{className:"text-3xl sm:text-4xl md:text-5xl font-bold text-foreground mb-4 md:mb-6 leading-tight",children:"Transform your workflow today"}),e.jsx("p",{className:"text-lg sm:text-xl text-muted-foreground max-w-3xl mx-auto leading-relaxed px-4 sm:px-0",children:"From simple file operations to complex deployment pipelines, Desktop Commander handles it all through natural conversation"})]}),e.jsx("div",{className:"grid gap-6 sm:gap-8 md:grid-cols-2 lg:grid-cols-3",children:p.map((t,r)=>{const g=t.icon,l=e.jsxs(b,{className:"p-6 sm:p-8 h-full flex flex-col",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-start gap-3 sm:gap-4 mb-4",children:[e.jsx("div",{className:"flex items-center justify-center w-12 h-12 bg-dc-surface border border-dc-border rounded-xl group-hover:border-dc-blue/30 group-hover:bg-dc-blue/5 transition-all duration-300 flex-shrink-0 mx-auto sm:mx-0",children:e.jsx(g,{className:"h-6 w-6 text-foreground group-hover:text-dc-blue transition-colors duration-300"})}),e.jsx("h3",{className:"text-lg sm:text-xl font-semibold text-foreground text-center sm:text-left leading-tight",children:t.title})]}),e.jsx("p",{className:"text-muted-foreground leading-relaxed text-center sm:text-left flex-grow",children:t.description}),t.href&&t.linkText&&e.jsx("div",{className:"mt-4 text-center sm:text-left",children:e.jsxs("span",{className:"text-primary text-sm font-medium group-hover:underline inline-flex items-center gap-1",children:[t.linkText,e.jsx(x,{className:"h-3 w-3 group-hover:translate-x-1 transition-transform"})]})})]}),n=`group bg-background/50 border-dc-border hover:border-dc-blue/20 hover:bg-dc-blue/3 transition-all duration-300 hover:shadow-md hover:shadow-dc-blue/5 ${s?"opacity-100 translate-y-0":"opacity-0 translate-y-8"} ${t.href?"cursor-pointer":""}`,i={transitionDelay:s?`${200+r*150}ms`:"0ms"};return t.href?e.jsx("a",{href:t.href,className:"block h-full",children:e.jsx(d,{className:`${n} h-full`,style:i,children:l})},r):e.jsx(d,{className:n,style:i,children:l},r)})}),e.jsxs("div",{className:`text-center mt-12 md:mt-16 transition-all duration-1000 delay-1000 ${s?"opacity-100 translate-y-0":"opacity-0 translate-y-8"}`,children:[e.jsx("p",{className:"text-base sm:text-lg text-muted-foreground mb-6 px-4 sm:px-0",children:"Install Desktop Commander and see how it handles these use cases"}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center items-center px-4 sm:px-0",children:[e.jsx(c,{variant:"hero",size:"lg",className:"w-full sm:w-auto transition-all duration-300 hover:scale-105 active:scale-95",asChild:!0,children:e.jsxs("a",{href:"./#installation",className:"flex items-center justify-center gap-2",children:[e.jsx(j,{className:"h-5 w-5"}),"Start Building"]})}),e.jsx("a",{href:"/library",rel:"noopener noreferrer",className:"w-full sm:w-auto inline-flex items-center justify-center gap-2 px-6 py-3 border border-dc-border text-foreground rounded-lg font-medium hover:bg-dc-surface/50 transition-all duration-300 hover:scale-105 active:scale-95 text-center",children:"Browse 60+ Prompts to use with DC"})]})]}),e.jsx("div",{className:`mt-12 md:mt-16 transition-all duration-1000 delay-1200 ${s?"opacity-100 translate-y-0":"opacity-0 translate-y-8"}`,children:e.jsx("div",{className:"bg-gradient-to-br from-dc-surface/50 to-dc-surface/30 border border-dc-border rounded-2xl p-6 md:p-8 shadow-elegant hover:shadow-xl transition-all duration-300",children:e.jsxs("div",{className:"flex flex-col md:flex-row md:items-center gap-6 md:gap-8",children:[e.jsx("div",{className:"flex-1",children:e.jsxs("div",{className:"flex items-start gap-4 md:gap-6",children:[e.jsx("div",{className:"flex items-center justify-center w-12 h-12 md:w-14 md:h-14 bg-dc-accent/10 border border-dc-accent/20 rounded-xl flex-shrink-0",children:e.jsx(m,{className:"h-6 w-6 md:h-7 md:w-7 text-dc-accent"})}),e.jsxs("div",{className:"flex-1",children:[e.jsx("h3",{className:"text-2xl md:text-3xl font-bold text-foreground mb-2 md:mb-3 leading-tight",children:"Tell us what you want to automate – we'll help set it up"}),e.jsx("p",{className:"text-base md:text-lg text-muted-foreground mb-4 md:mb-0 leading-relaxed",children:"Describe your repetitive tasks and we'll help you automate them with Desktop Commander. From deployment pipelines to file management workflows."})]})]})}),e.jsxs("div",{className:"md:flex-shrink-0",children:[e.jsxs(c,{size:"lg",className:"w-full md:w-auto bg-dc-accent hover:bg-dc-accent/90 text-white px-6 py-3 md:px-8 md:py-4 text-base md:text-lg font-semibold rounded-xl transition-all duration-300 hover:scale-105 hover:shadow-lg hover:shadow-dc-accent/20 transform active:scale-95 group whitespace-nowrap",onClick:f,children:["Submit Request",e.jsx(x,{className:"h-5 w-5 ml-2 transition-transform duration-300 group-hover:translate-x-1"})]}),e.jsx("p",{className:"text-xs text-muted-foreground mt-3 text-center md:text-left",children:"Custom automation β€’ No commitment"})]})]})})})]})})};export{F as default}; +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{c as b,C as d}from"./card.tb19JS-_.js";import{B as c}from"./button.D-OtCHTj.js";import{r as o}from"./index.D_oLZvzW.js";import{u as w}from"./useAnalyticsAstro.DaPc9vxZ.js";import{S as y}from"./shield.Cc9GR1lK.js";import{F as v}from"./file-text.CAYOOP65.js";import{Z as m}from"./zap.DaqacrRs.js";import{A as x}from"./arrow-right.DSKvTJYC.js";import{T as j}from"./terminal.BX6Ycj7A.js";import"./index.yBjzXJbu.js";import"./utils.9Q5QEYED.js";import"./tracking.znU5Ou_b.js";import"./createLucideIcon.DnxMVFvH.js";const F=()=>{const[s,h]=o.useState(!1),a=o.useRef(null),{trackCustomEvent:u}=w(),f=()=>{u("automation_cta_clicked",{location:"use_cases_section",cta_text:"Tell us what you want to automate"}),window.open("https://tally.so/r/mOR6Yp","_blank","noopener,noreferrer")};o.useEffect(()=>{const t=new IntersectionObserver(r=>{r[0].isIntersecting&&h(!0)},{threshold:.1,rootMargin:"-50px"});return a.current&&t.observe(a.current),()=>t.disconnect()},[]);const p=[{icon:y,title:"Organize and manage your files",description:"Move, convert, and organize files in natural language. No random websites, everything stays local.",href:"/use-cases/file-management/",linkText:"See how it works"},{icon:v,title:"Build and maintain your knowledge base",description:"Write, edit, and organize markdown files by talking to AI. Works with Obsidian, VS Code, and local files.",href:"/use-cases/knowledge-management/",linkText:"See how it works"},{icon:m,title:"Build software without coding",description:"Describe what you wantβ€”AI writes the code and saves it locally. You own every file.",href:"/use-cases/build-prototype/",linkText:"See how it works"}];return e.jsx("section",{ref:a,id:"use-cases",className:"py-16 md:py-24 bg-dc-surface/30",children:e.jsxs("div",{className:"container mx-auto max-w-7xl px-4 sm:px-6",children:[e.jsxs("div",{className:`text-center mb-12 md:mb-16 transition-all duration-1000 ${s?"opacity-100 translate-y-0":"opacity-0 translate-y-8"}`,children:[e.jsx("h2",{className:"text-3xl sm:text-4xl md:text-5xl font-bold text-foreground mb-4 md:mb-6 leading-tight",children:"Transform your workflow today"}),e.jsx("p",{className:"text-lg sm:text-xl text-muted-foreground max-w-3xl mx-auto leading-relaxed px-4 sm:px-0",children:"From simple file operations to complex deployment pipelines, Desktop Commander handles it all through natural conversation"})]}),e.jsx("div",{className:"grid gap-6 sm:gap-8 md:grid-cols-2 lg:grid-cols-3",children:p.map((t,r)=>{const g=t.icon,l=e.jsxs(b,{className:"p-6 sm:p-8 h-full flex flex-col",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-start gap-3 sm:gap-4 mb-4",children:[e.jsx("div",{className:"flex items-center justify-center w-12 h-12 bg-dc-surface border border-dc-border rounded-xl group-hover:border-dc-blue/30 group-hover:bg-dc-blue/5 transition-all duration-300 flex-shrink-0 mx-auto sm:mx-0",children:e.jsx(g,{className:"h-6 w-6 text-foreground group-hover:text-dc-blue transition-colors duration-300"})}),e.jsx("h3",{className:"text-lg sm:text-xl font-semibold text-foreground text-center sm:text-left leading-tight",children:t.title})]}),e.jsx("p",{className:"text-muted-foreground leading-relaxed text-center sm:text-left flex-grow",children:t.description}),t.href&&t.linkText&&e.jsx("div",{className:"mt-4 text-center sm:text-left",children:e.jsxs("span",{className:"text-primary text-sm font-medium group-hover:underline inline-flex items-center gap-1",children:[t.linkText,e.jsx(x,{className:"h-3 w-3 group-hover:translate-x-1 transition-transform"})]})})]}),n=`group bg-background/50 border-dc-border hover:border-dc-blue/20 hover:bg-dc-blue/3 transition-all duration-300 hover:shadow-md hover:shadow-dc-blue/5 ${s?"opacity-100 translate-y-0":"opacity-0 translate-y-8"} ${t.href?"cursor-pointer":""}`,i={transitionDelay:s?`${200+r*150}ms`:"0ms"};return t.href?e.jsx("a",{href:t.href,className:"block h-full",children:e.jsx(d,{className:`${n} h-full`,style:i,children:l})},r):e.jsx(d,{className:n,style:i,children:l},r)})}),e.jsxs("div",{className:`text-center mt-12 md:mt-16 transition-all duration-1000 delay-1000 ${s?"opacity-100 translate-y-0":"opacity-0 translate-y-8"}`,children:[e.jsx("p",{className:"text-base sm:text-lg text-muted-foreground mb-6 px-4 sm:px-0",children:"Install Desktop Commander and see how it handles these use cases"}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center items-center px-4 sm:px-0",children:[e.jsx(c,{variant:"hero",size:"lg",className:"w-full sm:w-auto transition-all duration-300 hover:scale-105 active:scale-95",asChild:!0,children:e.jsxs("a",{href:"./#installation",className:"flex items-center justify-center gap-2",children:[e.jsx(j,{className:"h-5 w-5"}),"Start Building"]})}),e.jsx("a",{href:"/library",rel:"noopener noreferrer",className:"w-full sm:w-auto inline-flex items-center justify-center gap-2 px-6 py-3 border border-dc-border text-foreground rounded-lg font-medium hover:bg-dc-surface/50 transition-all duration-300 hover:scale-105 active:scale-95 text-center",children:"Browse 60+ Prompts to use with DC"})]})]}),e.jsx("div",{className:`mt-12 md:mt-16 transition-all duration-1000 delay-1200 ${s?"opacity-100 translate-y-0":"opacity-0 translate-y-8"}`,children:e.jsx("div",{className:"bg-gradient-to-br from-dc-surface/50 to-dc-surface/30 border border-dc-border rounded-2xl p-6 md:p-8 shadow-elegant hover:shadow-xl transition-all duration-300",children:e.jsxs("div",{className:"flex flex-col md:flex-row md:items-center gap-6 md:gap-8",children:[e.jsx("div",{className:"flex-1",children:e.jsxs("div",{className:"flex items-start gap-4 md:gap-6",children:[e.jsx("div",{className:"flex items-center justify-center w-12 h-12 md:w-14 md:h-14 bg-dc-accent/10 border border-dc-accent/20 rounded-xl flex-shrink-0",children:e.jsx(m,{className:"h-6 w-6 md:h-7 md:w-7 text-dc-accent"})}),e.jsxs("div",{className:"flex-1",children:[e.jsx("h3",{className:"text-2xl md:text-3xl font-bold text-foreground mb-2 md:mb-3 leading-tight",children:"Tell us what you want to automate – we'll help set it up"}),e.jsx("p",{className:"text-base md:text-lg text-muted-foreground mb-4 md:mb-0 leading-relaxed",children:"Describe your repetitive tasks and we'll help you automate them with Desktop Commander. From deployment pipelines to file management workflows."})]})]})}),e.jsxs("div",{className:"md:flex-shrink-0",children:[e.jsxs(c,{size:"lg",className:"w-full md:w-auto bg-dc-accent hover:bg-dc-accent/90 text-white px-6 py-3 md:px-8 md:py-4 text-base md:text-lg font-semibold rounded-xl transition-all duration-300 hover:scale-105 hover:shadow-lg hover:shadow-dc-accent/20 transform active:scale-95 group whitespace-nowrap",onClick:f,children:["Submit Request",e.jsx(x,{className:"h-5 w-5 ml-2 transition-transform duration-300 group-hover:translate-x-1"})]}),e.jsx("p",{className:"text-xs text-muted-foreground mt-3 text-center md:text-left",children:"Custom automation β€’ No commitment"})]})]})})})]})})};export{F as default}; diff --git a/docs/assets/UseCasesHub.DFUdkXzq.js b/docs/assets/UseCasesHub.CqaqEVgd.js similarity index 90% rename from docs/assets/UseCasesHub.DFUdkXzq.js rename to docs/assets/UseCasesHub.CqaqEVgd.js index 01226b6c..2d6543ec 100644 --- a/docs/assets/UseCasesHub.DFUdkXzq.js +++ b/docs/assets/UseCasesHub.CqaqEVgd.js @@ -1,4 +1,4 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{F as s}from"./folder.CuC5tYjw.js";import{D as o}from"./database.BD9zb1Qc.js";import{c as i}from"./createLucideIcon.CJ67VFfW.js";import{L as n}from"./link.ILvXdQ4c.js";import{B as l}from"./book-open.BcQsGvDd.js";import{A as m}from"./arrow-right.B_EnXtAw.js";import"./index.yBjzXJbu.js";import"./index.BaMLtrTp.js";/** +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{F as s}from"./folder.DUWx0hf3.js";import{D as o}from"./database.CpdIqL8j.js";import{c as i}from"./createLucideIcon.DnxMVFvH.js";import{L as n}from"./link.Coz5prEd.js";import{B as l}from"./book-open.DUQscRpC.js";import{A as m}from"./arrow-right.DSKvTJYC.js";import"./index.yBjzXJbu.js";import"./index.D_oLZvzW.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/UsePromptWizard.BX52If9i.js b/docs/assets/UsePromptWizard.DnO32Lw7.js similarity index 99% rename from docs/assets/UsePromptWizard.BX52If9i.js rename to docs/assets/UsePromptWizard.DnO32Lw7.js index 0e55e911..c5a088cf 100644 --- a/docs/assets/UsePromptWizard.BX52If9i.js +++ b/docs/assets/UsePromptWizard.DnO32Lw7.js @@ -1,4 +1,4 @@ -import{c as ie}from"./createLucideIcon.CJ67VFfW.js";import{j as i}from"./jsx-runtime.D3GSbgeI.js";import{b as fo,u as ne,a as W,c as yo}from"./utils.XhT4HDO9.js";import{r,R as m}from"./index.BaMLtrTp.js";import{c as ye,P as Se,d as Mn,f as Fe,b as O,a as vo,u as wo,e as bo}from"./index.vFQDSFae.js";import{D as On,B as Co,a as xo,P as Nn,h as ko,R as So,u as Po,F as Do}from"./index.lqPDcyCD.js";import{c as We,C as zn,R as Fn,A as rn,a as Wn,u as Ao,b as To}from"./circle.KGuz404-.js";import{P as F,r as Io,d as Ro,v as Eo}from"./index.BlsO67so.js";import{u as Ne}from"./index.CyN3cLSG.js";import{c as _n,B as Ie}from"./button.nz_ACiet.js";import{X as jo}from"./x.B1hOxjOp.js";import{D as Mo,a as Oo,C as No}from"./dialog.ov7dtrSg.js";import{c as Ln,R as zo,I as Fo}from"./index.C9IP8clr.js";import{C as qn}from"./module.C-PkBFPJ.js";import{E as Wo}from"./external-link.BigcEWhC.js";import{M as _o}from"./message-square.bamY-dpJ.js";import{T as Re}from"./terminal.CvJQ-WtW.js";import{C as Lo}from"./check.eE7yIrYi.js";/** +import{c as ie}from"./createLucideIcon.DnxMVFvH.js";import{j as i}from"./jsx-runtime.D3GSbgeI.js";import{e as fo,u as ne,a as W,c as yo}from"./utils.9Q5QEYED.js";import{r,a as m}from"./index.D_oLZvzW.js";import{c as ye,P as Se,d as Mn,f as Fe,b as O,a as vo,u as wo,e as bo}from"./index.DO6kBsrn.js";import{D as On,B as Co,f as xo,P as Nn,h as ko,R as So,u as Po,F as Do}from"./index.DAP1SQuk.js";import{c as We,C as zn,R as Fn,A as rn,a as Wn,u as Ao,b as To}from"./index.DNo0B2hs.js";import{P as F,r as Io,d as Ro,v as Eo}from"./index.5q9h5iS_.js";import{u as Ne}from"./index.xUA8L87E.js";import{c as _n,B as Ie}from"./button.D-OtCHTj.js";import{X as jo}from"./x.C6Iw0U2F.js";import{D as Mo,a as Oo,C as No}from"./dialog.CeUsCtfh.js";import{c as Ln,R as zo,I as Fo}from"./index.CKNnz_F1.js";import{C as qn}from"./module.C-PkBFPJ.js";import{E as Wo}from"./external-link.DsSVi18J.js";import{M as _o}from"./message-square.O0_WvyiX.js";import{T as Re}from"./terminal.BX6Ycj7A.js";import{C as Lo}from"./check.BxIsZM2Y.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/WaitlistBanner.c_RIhRUP.js b/docs/assets/WaitlistBanner.DQbbGqod.js similarity index 90% rename from docs/assets/WaitlistBanner.c_RIhRUP.js rename to docs/assets/WaitlistBanner.DQbbGqod.js index ef0c785f..241aef32 100644 --- a/docs/assets/WaitlistBanner.c_RIhRUP.js +++ b/docs/assets/WaitlistBanner.DQbbGqod.js @@ -1 +1 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{r as t}from"./index.BaMLtrTp.js";import{S as m}from"./sparkles.sp_Qnyce.js";import{A as c}from"./arrow-right.B_EnXtAw.js";import{X as d}from"./x.B1hOxjOp.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.CJ67VFfW.js";const v=()=>{const[r,s]=t.useState(!0),[a,o]=t.useState(!1);t.useEffect(()=>(r&&document.documentElement.style.setProperty("--banner-height","64px"),()=>{document.documentElement.style.setProperty("--banner-height","0px")}),[r]);const n=l=>{l.stopPropagation(),o(!0),setTimeout(()=>{s(!1),localStorage.setItem("waitlist-banner-dismissed","true"),document.documentElement.style.setProperty("--banner-height","0px")},300)},i=()=>{window.location.href="/product/early-access/"};return r?e.jsx("div",{className:`fixed top-0 left-0 right-0 z-[60] transition-all duration-300 ${a?"opacity-0 -translate-y-full":"opacity-100 translate-y-0"}`,children:e.jsx("div",{className:"bg-gradient-to-r from-amber-500/20 via-orange-500/25 to-amber-500/20 border-b-2 border-amber-400/60 backdrop-blur-md cursor-pointer hover:border-amber-400/80 hover:from-amber-500/25 hover:via-orange-500/30 hover:to-amber-500/25 transition-all duration-300 group hover:shadow-lg hover:shadow-amber-500/20",onClick:i,children:e.jsx("div",{className:"container mx-auto max-w-7xl px-4 sm:px-6",children:e.jsxs("div",{className:"flex items-center justify-center py-6 gap-3 relative",children:[e.jsxs("div",{className:"flex items-center gap-2 sm:gap-3",children:[e.jsx(m,{className:"h-5 w-5 text-amber-500 flex-shrink-0 group-hover:scale-110 transition-transform drop-shadow-sm"}),e.jsxs("span",{className:"text-sm sm:text-base",children:[e.jsx("span",{className:"font-bold text-amber-600 dark:text-amber-400 group-hover:text-amber-700 dark:group-hover:text-amber-300 transition-colors",children:"App Launching Soon"}),e.jsx("span",{className:"hidden sm:inline text-foreground/90 font-medium",children:" β€” Get early beta access"}),e.jsx("span",{className:"mx-1.5 text-foreground/70",children:"β€’"}),e.jsx("span",{className:"font-bold text-orange-600 dark:text-orange-400 group-hover:text-orange-700 dark:group-hover:text-orange-300 transition-colors",children:"Join Waitlist"})]}),e.jsx(c,{className:"h-4 w-4 sm:h-5 sm:w-5 text-orange-600 dark:text-orange-400 group-hover:translate-x-1 group-hover:scale-110 transition-all drop-shadow-sm"})]}),e.jsx("button",{onClick:n,className:"absolute right-2 sm:right-4 p-1 hover:bg-dc-surface/50 rounded transition-colors text-muted-foreground hover:text-foreground","aria-label":"Dismiss banner",children:e.jsx(d,{className:"h-3.5 w-3.5"})})]})})})}):null};export{v as default}; +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{r as t}from"./index.D_oLZvzW.js";import{S as m}from"./sparkles.DoaLSLnS.js";import{A as c}from"./arrow-right.DSKvTJYC.js";import{X as d}from"./x.C6Iw0U2F.js";import"./index.yBjzXJbu.js";import"./createLucideIcon.DnxMVFvH.js";const v=()=>{const[r,s]=t.useState(!0),[a,o]=t.useState(!1);t.useEffect(()=>(r&&document.documentElement.style.setProperty("--banner-height","64px"),()=>{document.documentElement.style.setProperty("--banner-height","0px")}),[r]);const n=l=>{l.stopPropagation(),o(!0),setTimeout(()=>{s(!1),localStorage.setItem("waitlist-banner-dismissed","true"),document.documentElement.style.setProperty("--banner-height","0px")},300)},i=()=>{window.location.href="/product/early-access/"};return r?e.jsx("div",{className:`fixed top-0 left-0 right-0 z-[60] transition-all duration-300 ${a?"opacity-0 -translate-y-full":"opacity-100 translate-y-0"}`,children:e.jsx("div",{className:"bg-gradient-to-r from-amber-500/20 via-orange-500/25 to-amber-500/20 border-b-2 border-amber-400/60 backdrop-blur-md cursor-pointer hover:border-amber-400/80 hover:from-amber-500/25 hover:via-orange-500/30 hover:to-amber-500/25 transition-all duration-300 group hover:shadow-lg hover:shadow-amber-500/20",onClick:i,children:e.jsx("div",{className:"container mx-auto max-w-7xl px-4 sm:px-6",children:e.jsxs("div",{className:"flex items-center justify-center py-6 gap-3 relative",children:[e.jsxs("div",{className:"flex items-center gap-2 sm:gap-3",children:[e.jsx(m,{className:"h-5 w-5 text-amber-500 flex-shrink-0 group-hover:scale-110 transition-transform drop-shadow-sm"}),e.jsxs("span",{className:"text-sm sm:text-base",children:[e.jsx("span",{className:"font-bold text-amber-600 dark:text-amber-400 group-hover:text-amber-700 dark:group-hover:text-amber-300 transition-colors",children:"App Launching Soon"}),e.jsx("span",{className:"hidden sm:inline text-foreground/90 font-medium",children:" β€” Get early beta access"}),e.jsx("span",{className:"mx-1.5 text-foreground/70",children:"β€’"}),e.jsx("span",{className:"font-bold text-orange-600 dark:text-orange-400 group-hover:text-orange-700 dark:group-hover:text-orange-300 transition-colors",children:"Join Waitlist"})]}),e.jsx(c,{className:"h-4 w-4 sm:h-5 sm:w-5 text-orange-600 dark:text-orange-400 group-hover:translate-x-1 group-hover:scale-110 transition-all drop-shadow-sm"})]}),e.jsx("button",{onClick:n,className:"absolute right-2 sm:right-4 p-1 hover:bg-dc-surface/50 rounded transition-colors text-muted-foreground hover:text-foreground","aria-label":"Dismiss banner",children:e.jsx(d,{className:"h-3.5 w-3.5"})})]})})})}):null};export{v as default}; diff --git a/docs/assets/WaitlistSection.DZIaP3iH.js b/docs/assets/WaitlistSection.Dz_IMivC.js similarity index 91% rename from docs/assets/WaitlistSection.DZIaP3iH.js rename to docs/assets/WaitlistSection.Dz_IMivC.js index fad9430c..dace07ab 100644 --- a/docs/assets/WaitlistSection.DZIaP3iH.js +++ b/docs/assets/WaitlistSection.Dz_IMivC.js @@ -1 +1 @@ -import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as a}from"./button.nz_ACiet.js";import{A as i}from"./arrow-right.B_EnXtAw.js";import"./index.yBjzXJbu.js";import"./index.BaMLtrTp.js";import"./utils.XhT4HDO9.js";import"./createLucideIcon.CJ67VFfW.js";const p=()=>{const r=[{number:"1",title:"Join the Early Access Program",description:"Sign up to get priority access when Desktop Commander launches. Be among the first to experience AI-native file management."},{number:"2",title:"Describe what you need",description:'"Organize my Downloads by file type" or "Create a markdown summary of this folder" β€” just type it naturally.'},{number:"3",title:"Done",description:"Desktop Commander handles it instantly. Your files are organized, converted, or found β€” all privately on your machine."}];return e.jsx("section",{id:"get-started",className:"py-16 md:py-24 bg-dc-card/30 scroll-mt-20",children:e.jsxs("div",{className:"container mx-auto max-w-5xl px-4 sm:px-6",children:[e.jsxs("div",{className:"text-center mb-16",children:[e.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-4",children:"How It Works"}),e.jsx("p",{className:"text-lg md:text-xl text-muted-foreground max-w-3xl mx-auto",children:"Desktop Commander makes file management as simple as having a conversation"})]}),e.jsx("div",{className:"space-y-8 md:space-y-12",children:r.map((t,s)=>e.jsxs("div",{className:"flex gap-6 items-start",children:[e.jsx("div",{className:"shrink-0 w-14 h-14 rounded-full bg-primary/10 border-2 border-primary flex items-center justify-center",children:e.jsx("span",{className:"text-2xl font-bold text-primary",children:t.number})}),e.jsxs("div",{className:"flex-1 pt-2",children:[e.jsx("h3",{className:"text-2xl font-semibold mb-3",children:t.title}),e.jsx("p",{className:"text-lg text-muted-foreground leading-relaxed mb-4",children:t.description}),s===0&&e.jsx("div",{className:"mt-6",children:e.jsx(a,{size:"lg",className:"group",asChild:!0,children:e.jsxs("a",{href:"/product/early-access/",children:["Join the Waitlist",e.jsx(i,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})})})]})]},s))})]})})};export{p as default}; +import{j as e}from"./jsx-runtime.D3GSbgeI.js";import{B as a}from"./button.D-OtCHTj.js";import{A as i}from"./arrow-right.DSKvTJYC.js";import"./index.yBjzXJbu.js";import"./index.D_oLZvzW.js";import"./utils.9Q5QEYED.js";import"./createLucideIcon.DnxMVFvH.js";const p=()=>{const r=[{number:"1",title:"Join the Early Access Program",description:"Sign up to get priority access when Desktop Commander launches. Be among the first to experience AI-native file management."},{number:"2",title:"Describe what you need",description:'"Organize my Downloads by file type" or "Create a markdown summary of this folder" β€” just type it naturally.'},{number:"3",title:"Done",description:"Desktop Commander handles it instantly. Your files are organized, converted, or found β€” all privately on your machine."}];return e.jsx("section",{id:"get-started",className:"py-16 md:py-24 bg-dc-card/30 scroll-mt-20",children:e.jsxs("div",{className:"container mx-auto max-w-5xl px-4 sm:px-6",children:[e.jsxs("div",{className:"text-center mb-16",children:[e.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold mb-4",children:"How It Works"}),e.jsx("p",{className:"text-lg md:text-xl text-muted-foreground max-w-3xl mx-auto",children:"Desktop Commander makes file management as simple as having a conversation"})]}),e.jsx("div",{className:"space-y-8 md:space-y-12",children:r.map((t,s)=>e.jsxs("div",{className:"flex gap-6 items-start",children:[e.jsx("div",{className:"shrink-0 w-14 h-14 rounded-full bg-primary/10 border-2 border-primary flex items-center justify-center",children:e.jsx("span",{className:"text-2xl font-bold text-primary",children:t.number})}),e.jsxs("div",{className:"flex-1 pt-2",children:[e.jsx("h3",{className:"text-2xl font-semibold mb-3",children:t.title}),e.jsx("p",{className:"text-lg text-muted-foreground leading-relaxed mb-4",children:t.description}),s===0&&e.jsx("div",{className:"mt-6",children:e.jsx(a,{size:"lg",className:"group",asChild:!0,children:e.jsxs("a",{href:"/product/early-access/",children:["Join the Waitlist",e.jsx(i,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})})})]})]},s))})]})})};export{p as default}; diff --git a/docs/assets/_id_.8bx3l3E3.css b/docs/assets/_id_.8bx3l3E3.css deleted file mode 100644 index d2f94722..00000000 --- a/docs/assets/_id_.8bx3l3E3.css +++ /dev/null @@ -1 +0,0 @@ -*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 222 24% 8%;--foreground: 210 40% 98%;--card: 222 20% 12%;--card-foreground: 210 40% 98%;--popover: 222 20% 12%;--popover-foreground: 210 40% 98%;--primary: 218 100% 72%;--primary-foreground: 222 24% 8%;--secondary: 222 16% 18%;--secondary-foreground: 210 40% 98%;--muted: 222 16% 16%;--muted-foreground: 215 20% 65%;--accent: 218 100% 72%;--accent-foreground: 222 24% 8%;--destructive: 0 84% 60%;--destructive-foreground: 210 40% 98%;--border: 222 16% 20%;--input: 222 16% 16%;--ring: 218 100% 72%;--radius: .75rem;--dc-blue: 218 100% 72%;--dc-blue-glow: 218 100% 82%;--dc-dark: 222 24% 8%;--dc-card: 222 20% 12%;--dc-surface: 222 16% 18%;--dc-border: 222 16% 20%;--gradient-primary: linear-gradient(135deg, hsl(var(--dc-blue)), hsl(var(--dc-blue-glow)));--gradient-subtle: linear-gradient(180deg, hsl(var(--dc-card)), hsl(var(--dc-surface)));--shadow-elegant: 0 10px 30px -10px hsl(var(--dc-blue) / .2);--shadow-glow: 0 0 40px hsl(var(--dc-blue) / .3);--transition-smooth: all .24s cubic-bezier(.4, 0, .2, 1);--sidebar-background: 0 0% 98%;--sidebar-foreground: 240 5.3% 26.1%;--sidebar-primary: 240 5.9% 10%;--sidebar-primary-foreground: 0 0% 98%;--sidebar-accent: 240 4.8% 95.9%;--sidebar-accent-foreground: 240 5.9% 10%;--sidebar-border: 220 13% 91%;--sidebar-ring: 217.2 91.2% 59.8%}*{border-color:hsl(var(--border))}html{scroll-behavior:smooth;overflow-x:hidden;scrollbar-gutter:stable;overflow-y:scroll}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-feature-settings:"rlig" 1,"calt" 1;overflow-x:hidden;min-height:100vh;width:100%;margin:0;padding:0}*{box-sizing:border-box;max-width:100%}[data-radix-popper-content-wrapper]{z-index:50}[data-radix-dropdown-menu-content]{max-width:calc(100vw - 2rem)}.container{width:100%;max-width:100%}img,video,iframe,embed,object{max-width:100%;height:auto}.grid,.flex{min-width:0}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}@media(min-width:1400px){.container{max-width:1400px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.-bottom-12{bottom:-3rem}.-left-12{left:-3rem}.-left-4{left:-1rem}.-right-12{right:-3rem}.-right-2{right:-.5rem}.-right-4{right:-1rem}.-top-1{top:-.25rem}.-top-12{top:-3rem}.-top-2{top:-.5rem}.bottom-0{bottom:0}.bottom-2{bottom:.5rem}.bottom-4{bottom:1rem}.left-0{left:0}.left-1{left:.25rem}.left-1\/2{left:50%}.left-2{left:.5rem}.left-3{left:.75rem}.left-4{left:1rem}.left-\[50\%\]{left:50%}.left-full{left:100%}.right-0{right:0}.right-1{right:.25rem}.right-2{right:.5rem}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.top-1{top:.25rem}.top-1\.5{top:.375rem}.top-1\/2{top:50%}.top-12{top:3rem}.top-2{top:.5rem}.top-2\.5{top:.625rem}.top-3{top:.75rem}.top-3\.5{top:.875rem}.top-4{top:1rem}.top-\[1px\]{top:1px}.top-\[50\%\]{top:50%}.top-\[60\%\]{top:60%}.top-full{top:100%}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[1\]{z-index:1}.z-\[60\]{z-index:60}.order-1{order:1}.order-2{order:2}.order-3{order:3}.col-span-1{grid-column:span 1 / span 1}.col-span-2{grid-column:span 2 / span 2}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-1\.5{margin-left:.375rem;margin-right:.375rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3\.5{margin-left:.875rem;margin-right:.875rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-16{margin-top:4rem;margin-bottom:4rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.-ml-2{margin-left:-.5rem}.-ml-3{margin-left:-.75rem}.-ml-4{margin-left:-1rem}.-mt-4{margin-top:-1rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-20{margin-bottom:5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-20{margin-top:5rem}.mt-24{margin-top:6rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.line-clamp-4{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1 / 1}.aspect-video{aspect-ratio:16 / 9}.size-4{width:1rem;height:1rem}.h-0{height:0px}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-24{height:6rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-56{height:14rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[1px\]{height:1px}.h-\[calc\(100\%-12rem\)\]{height:calc(100% - 12rem)}.h-\[var\(--radix-navigation-menu-viewport-height\)\]{height:var(--radix-navigation-menu-viewport-height)}.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-svh{height:100svh}.max-h-32{max-height:8rem}.max-h-40{max-height:10rem}.max-h-96{max-height:24rem}.max-h-\[300px\]{max-height:300px}.max-h-\[70vh\]{max-height:70vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.max-h-screen{max-height:100vh}.min-h-0{min-height:0px}.min-h-\[2\.5rem\]{min-height:2.5rem}.min-h-\[32px\]{min-height:32px}.min-h-\[36px\]{min-height:36px}.min-h-\[3rem\]{min-height:3rem}.min-h-\[48px\]{min-height:48px}.min-h-\[80px\]{min-height:80px}.min-h-\[80vh\]{min-height:80vh}.min-h-screen{min-height:100vh}.min-h-svh{min-height:100svh}.w-0{width:0px}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-\[--sidebar-width\]{width:var(--sidebar-width)}.w-\[100px\]{width:100px}.w-\[1px\]{width:1px}.w-\[300px\]{width:300px}.w-\[95vw\]{width:95vw}.w-\[calc\(100\%-8px\)\]{width:calc(100% - 8px)}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-5{min-width:1.25rem}.min-w-\[12rem\]{min-width:12rem}.min-w-\[200px\]{min-width:200px}.min-w-\[270px\]{min-width:270px}.min-w-\[2rem\]{min-width:2rem}.min-w-\[8rem\]{min-width:8rem}.min-w-\[90px\]{min-width:90px}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-w-\[--skeleton-width\]{max-width:var(--skeleton-width)}.max-w-lg{max-width:32rem}.max-w-max{max-width:-moz-max-content;max-width:max-content}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-full{flex-basis:100%}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-8{--tw-translate-x: -2rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-px{--tw-translate-x: -1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-4{--tw-translate-x: 1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-px{--tw-translate-x: 1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-4{--tw-translate-y: 1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-8{--tw-translate-y: 2rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-2{--tw-rotate: -2deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-2{--tw-rotate: 2deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-90{--tw-scale-x: .9;--tw-scale-y: .9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes marquee-right{0%{transform:translate(-50%)}to{transform:translate(0)}}.animate-marquee-right{animation:marquee-right 50s linear infinite}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-text{-webkit-user-select:text;-moz-user-select:text;user-select:text}.resize{resize:both}.scroll-mt-20{scroll-margin-top:5rem}.scroll-mt-24{scroll-margin-top:6rem}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-12{gap:3rem}.gap-16{gap:4rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-10>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2.5rem * var(--tw-space-y-reverse))}.space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(3rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.justify-self-center{justify-self:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.rounded-t-\[10px\]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-t-lg{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.rounded-tl-sm{border-top-left-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-2{border-width:2px}.border-\[1\.5px\]{border-width:1.5px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-b-\[16px\]{border-bottom-width:16px}.border-l{border-left-width:1px}.border-l-\[28px\]{border-left-width:28px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-t-\[16px\]{border-top-width:16px}.border-dashed{border-style:dashed}.border-\[--color-border\]{border-color:var(--color-border)}.border-amber-400\/60{border-color:#fbbf2499}.border-background{border-color:hsl(var(--background))}.border-blue-500\/20{border-color:#3b82f633}.border-blue-500\/30{border-color:#3b82f64d}.border-blue-600{--tw-border-opacity: 1;border-color:rgb(37 99 235 / var(--tw-border-opacity, 1))}.border-border{border-color:hsl(var(--border))}.border-border\/50{border-color:hsl(var(--border) / .5)}.border-dc-blue\/20{border-color:hsl(var(--dc-blue) / .2)}.border-dc-border{border-color:hsl(var(--dc-border))}.border-dc-border\/50{border-color:hsl(var(--dc-border) / .5)}.border-destructive{border-color:hsl(var(--destructive))}.border-destructive\/20{border-color:hsl(var(--destructive) / .2)}.border-destructive\/50{border-color:hsl(var(--destructive) / .5)}.border-foreground\/20{border-color:hsl(var(--foreground) / .2)}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-green-500\/20{border-color:#22c55e33}.border-green-500\/30{border-color:#22c55e4d}.border-input{border-color:hsl(var(--input))}.border-muted-foreground\/20{border-color:hsl(var(--muted-foreground) / .2)}.border-primary{border-color:hsl(var(--primary))}.border-primary\/20{border-color:hsl(var(--primary) / .2)}.border-primary\/30{border-color:hsl(var(--primary) / .3)}.border-purple-500\/20{border-color:#a855f733}.border-purple-500\/30{border-color:#a855f74d}.border-red-500\/20{border-color:#ef444433}.border-sidebar-border{border-color:hsl(var(--sidebar-border))}.border-slate-700\/50{border-color:#33415580}.border-slate-800{--tw-border-opacity: 1;border-color:rgb(30 41 59 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-white\/20{border-color:#fff3}.border-b-transparent{border-bottom-color:transparent}.border-l-primary{border-left-color:hsl(var(--primary))}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-\[--color-bg\]{background-color:var(--color-bg)}.bg-accent{background-color:hsl(var(--accent))}.bg-accent\/50{background-color:hsl(var(--accent) / .5)}.bg-amber-600{--tw-bg-opacity: 1;background-color:rgb(217 119 6 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-background\/50{background-color:hsl(var(--background) / .5)}.bg-background\/80{background-color:hsl(var(--background) / .8)}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\/0{background-color:#0000}.bg-black\/80{background-color:#000c}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-500\/10{background-color:#3b82f61a}.bg-blue-500\/20{background-color:#3b82f633}.bg-blue-500\/5{background-color:#3b82f60d}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.bg-blue-600\/10{background-color:#2563eb1a}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-cyan-600{--tw-bg-opacity: 1;background-color:rgb(8 145 178 / var(--tw-bg-opacity, 1))}.bg-dc-blue\/10{background-color:hsl(var(--dc-blue) / .1)}.bg-dc-border{background-color:hsl(var(--dc-border))}.bg-dc-card{background-color:hsl(var(--dc-card))}.bg-dc-card\/30{background-color:hsl(var(--dc-card) / .3)}.bg-dc-card\/50{background-color:hsl(var(--dc-card) / .5)}.bg-dc-surface{background-color:hsl(var(--dc-surface))}.bg-dc-surface\/30{background-color:hsl(var(--dc-surface) / .3)}.bg-dc-surface\/50{background-color:hsl(var(--dc-surface) / .5)}.bg-dc-surface\/80{background-color:hsl(var(--dc-surface) / .8)}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive) / .1)}.bg-emerald-600{--tw-bg-opacity: 1;background-color:rgb(5 150 105 / var(--tw-bg-opacity, 1))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-500\/10{background-color:#6b72801a}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-500\/10{background-color:#22c55e1a}.bg-green-500\/20{background-color:#22c55e33}.bg-green-500\/5{background-color:#22c55e0d}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.bg-indigo-600{--tw-bg-opacity: 1;background-color:rgb(79 70 229 / var(--tw-bg-opacity, 1))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground\/50{background-color:hsl(var(--muted-foreground) / .5)}.bg-muted\/20{background-color:hsl(var(--muted) / .2)}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-orange-500\/10{background-color:#f973161a}.bg-orange-600{--tw-bg-opacity: 1;background-color:rgb(234 88 12 / var(--tw-bg-opacity, 1))}.bg-pink-600{--tw-bg-opacity: 1;background-color:rgb(219 39 119 / var(--tw-bg-opacity, 1))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-primary\/20{background-color:hsl(var(--primary) / .2)}.bg-primary\/5{background-color:hsl(var(--primary) / .05)}.bg-purple-500\/10{background-color:#a855f71a}.bg-purple-500\/20{background-color:#a855f733}.bg-purple-500\/5{background-color:#a855f70d}.bg-purple-600{--tw-bg-opacity: 1;background-color:rgb(147 51 234 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-500\/10{background-color:#ef44441a}.bg-red-500\/5{background-color:#ef44440d}.bg-rose-600{--tw-bg-opacity: 1;background-color:rgb(225 29 72 / var(--tw-bg-opacity, 1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-sidebar{background-color:hsl(var(--sidebar-background))}.bg-sidebar-border{background-color:hsl(var(--sidebar-border))}.bg-sky-600{--tw-bg-opacity: 1;background-color:rgb(2 132 199 / var(--tw-bg-opacity, 1))}.bg-slate-600{--tw-bg-opacity: 1;background-color:rgb(71 85 105 / var(--tw-bg-opacity, 1))}.bg-slate-900\/80{background-color:#0f172acc}.bg-stone-600{--tw-bg-opacity: 1;background-color:rgb(87 83 78 / var(--tw-bg-opacity, 1))}.bg-teal-600{--tw-bg-opacity: 1;background-color:rgb(13 148 136 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-amber-500\/20{--tw-gradient-from: rgb(245 158 11 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(245 158 11 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-background{--tw-gradient-from: hsl(var(--background)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--background) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-dc-card{--tw-gradient-from: hsl(var(--dc-card)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--dc-card) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-dc-card\/30{--tw-gradient-from: hsl(var(--dc-card) / .3) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--dc-card) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-dc-surface{--tw-gradient-from: hsl(var(--dc-surface)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--dc-surface) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-dc-surface\/50{--tw-gradient-from: hsl(var(--dc-surface) / .5) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--dc-surface) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-foreground{--tw-gradient-from: hsl(var(--foreground)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--foreground) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary\/10{--tw-gradient-from: hsl(var(--primary) / .1) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary\/5{--tw-gradient-from: hsl(var(--primary) / .05) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-900{--tw-gradient-from: #0f172a var(--tw-gradient-from-position);--tw-gradient-to: rgb(15 23 42 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-background{--tw-gradient-to: hsl(var(--background) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(var(--background)) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-orange-500\/25{--tw-gradient-to: rgb(249 115 22 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(249 115 22 / .25) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-primary\/5{--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(var(--primary) / .05) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-slate-800{--tw-gradient-to: rgb(30 41 59 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #1e293b var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-amber-500\/20{--tw-gradient-to: rgb(245 158 11 / .2) var(--tw-gradient-to-position)}.to-background{--tw-gradient-to: hsl(var(--background)) var(--tw-gradient-to-position)}.to-dc-card{--tw-gradient-to: hsl(var(--dc-card)) var(--tw-gradient-to-position)}.to-dc-card\/30{--tw-gradient-to: hsl(var(--dc-card) / .3) var(--tw-gradient-to-position)}.to-dc-surface{--tw-gradient-to: hsl(var(--dc-surface)) var(--tw-gradient-to-position)}.to-dc-surface\/30{--tw-gradient-to: hsl(var(--dc-surface) / .3) var(--tw-gradient-to-position)}.to-foreground\/70{--tw-gradient-to: hsl(var(--foreground) / .7) var(--tw-gradient-to-position)}.to-muted\/20{--tw-gradient-to: hsl(var(--muted) / .2) var(--tw-gradient-to-position)}.to-primary\/10{--tw-gradient-to: hsl(var(--primary) / .1) var(--tw-gradient-to-position)}.to-slate-950{--tw-gradient-to: #020617 var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.bg-\[size\:50px_50px\]{background-size:50px 50px}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.fill-current{fill:currentColor}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-12{padding:3rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[1px\]{padding:1px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-24{padding-top:6rem;padding-bottom:6rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-16{padding-bottom:4rem}.pb-20{padding-bottom:5rem}.pb-24{padding-bottom:6rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pl-10{padding-left:2.5rem}.pl-2\.5{padding-left:.625rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-8{padding-left:2rem}.pr-10{padding-right:2.5rem}.pr-12{padding-right:3rem}.pr-2{padding-right:.5rem}.pr-2\.5{padding-right:.625rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-12{padding-top:3rem}.pt-2{padding-top:.5rem}.pt-20{padding-top:5rem}.pt-3{padding-top:.75rem}.pt-32{padding-top:8rem}.pt-4{padding-top:1rem}.pt-40{padding-top:10rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-\[0\.8rem\]{font-size:.8rem}.text-\[10px\]{font-size:10px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-\[1\.1\]{line-height:1.1}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-dc-blue{color:hsl(var(--dc-blue))}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/50{color:hsl(var(--foreground) / .5)}.text-foreground\/70{color:hsl(var(--foreground) / .7)}.text-foreground\/90{color:hsl(var(--foreground) / .9)}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/50{color:hsl(var(--muted-foreground) / .5)}.text-muted-foreground\/60{color:hsl(var(--muted-foreground) / .6)}.text-orange-500{--tw-text-opacity: 1;color:rgb(249 115 22 / var(--tw-text-opacity, 1))}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-pink-500{--tw-text-opacity: 1;color:rgb(236 72 153 / var(--tw-text-opacity, 1))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-primary\/10{color:hsl(var(--primary) / .1)}.text-primary\/60{color:hsl(var(--primary) / .6)}.text-purple-400{--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.text-purple-500{--tw-text-opacity: 1;color:rgb(168 85 247 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-sidebar-foreground{color:hsl(var(--sidebar-foreground))}.text-sidebar-foreground\/70{color:hsl(var(--sidebar-foreground) / .7)}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-500{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\]{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-border));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-primary\/20{--tw-shadow-color: hsl(var(--primary) / .2);--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-ring{--tw-ring-color: hsl(var(--ring))}.ring-sidebar-ring{--tw-ring-color: hsl(var(--sidebar-ring))}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.drop-shadow-sm{--tw-drop-shadow: drop-shadow(0 1px 1px rgb(0 0 0 / .05));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)}.grayscale{--tw-grayscale: grayscale(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)}.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-md{--tw-backdrop-blur: blur(12px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);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{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[left\,right\,width\]{transition-property:left,right,width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[margin\,opa\]{transition-property:margin,opa;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,height\,padding\]{transition-property:width,height,padding;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.delay-1000{transition-delay:1s}.delay-200{transition-delay:.2s}.delay-300{transition-delay:.3s}.delay-500{transition-delay:.5s}.delay-700{transition-delay:.7s}.duration-1000{transition-duration:1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-700{transition-duration:.7s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{transition-timing-function:linear}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.fade-in-0{--tw-enter-opacity: 0}.fade-in-80{--tw-enter-opacity: .8}.zoom-in-95{--tw-enter-scale: .95}.duration-1000{animation-duration:1s}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.duration-500{animation-duration:.5s}.duration-700{animation-duration:.7s}.delay-1000{animation-delay:1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-500{animation-delay:.5s}.delay-700{animation-delay:.7s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{animation-timing-function:linear}.running{animation-play-state:running}.shadow-elegant{box-shadow:var(--shadow-elegant)}.transition-smooth{transition:var(--transition-smooth)}@media(min-width:640px){.sm\:flex{min-width:0}}@media(min-width:768px){.md\:flex{min-width:0}}@media(min-width:1024px){.lg\:grid,.lg\:flex{min-width:0}}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.after\:pointer-events-none:after{content:var(--tw-content);pointer-events:none}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);inset:-.5rem}.after\:inset-y-0:after{content:var(--tw-content);top:0;bottom:0}.after\:bottom-3:after{content:var(--tw-content);bottom:.75rem}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:right-3:after{content:var(--tw-content);right:.75rem}.after\:w-1:after{content:var(--tw-content);width:.25rem}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.after\:-translate-x-1\/2:after{content:var(--tw-content);--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.after\:text-xs:after{content:var(--tw-content);font-size:.75rem;line-height:1rem}.after\:text-muted-foreground\/70:after{content:var(--tw-content);color:hsl(var(--muted-foreground) / .7)}.after\:transition-colors:after{content:var(--tw-content);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.after\:transition-transform:after{content:var(--tw-content);transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.after\:duration-200:after{content:var(--tw-content);transition-duration:.2s}.after\:content-\[\'β†—\'\]:after{--tw-content: "β†—";content:var(--tw-content)}.after\:duration-200:after{content:var(--tw-content);animation-duration:.2s}.first\:rounded-l-md:first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.first\:border-l:first-child{border-left-width:1px}.last\:rounded-r-md:last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.focus-within\:relative:focus-within{position:relative}.focus-within\:z-20:focus-within{z-index:20}.hover\:-translate-y-1:hover{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:rotate-0:hover{--tw-rotate: 0deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-105:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-110:hover{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-\[1\.01\]:hover{--tw-scale-x: 1.01;--tw-scale-y: 1.01;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-\[1\.02\]:hover{--tw-scale-x: 1.02;--tw-scale-y: 1.02;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.hover\:animate-pulse:hover{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.hover\:border-amber-400\/80:hover{border-color:#fbbf24cc}.hover\:border-border:hover{border-color:hsl(var(--border))}.hover\:border-border\/60:hover{border-color:hsl(var(--border) / .6)}.hover\:border-dc-blue\/20:hover{border-color:hsl(var(--dc-blue) / .2)}.hover\:border-dc-blue\/30:hover{border-color:hsl(var(--dc-blue) / .3)}.hover\:border-primary\/30:hover{border-color:hsl(var(--primary) / .3)}.hover\:border-primary\/40:hover{border-color:hsl(var(--primary) / .4)}.hover\:border-primary\/50:hover{border-color:hsl(var(--primary) / .5)}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-accent\/50:hover{background-color:hsl(var(--accent) / .5)}.hover\:bg-black\/90:hover{background-color:#000000e6}.hover\:bg-blue-500:hover{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-700:hover{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity, 1))}.hover\:bg-dc-blue\/5:hover{background-color:hsl(var(--dc-blue) / .05)}.hover\:bg-dc-border:hover{background-color:hsl(var(--dc-border))}.hover\:bg-dc-surface:hover{background-color:hsl(var(--dc-surface))}.hover\:bg-dc-surface\/50:hover{background-color:hsl(var(--dc-surface) / .5)}.hover\:bg-dc-surface\/80:hover{background-color:hsl(var(--dc-surface) / .8)}.hover\:bg-destructive\/80:hover{background-color:hsl(var(--destructive) / .8)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-gray-800:hover{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-primary:hover{background-color:hsl(var(--primary))}.hover\:bg-primary\/10:hover{background-color:hsl(var(--primary) / .1)}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-sidebar-accent:hover{background-color:hsl(var(--sidebar-accent))}.hover\:bg-transparent:hover{background-color:transparent}.hover\:from-amber-500\/25:hover{--tw-gradient-from: rgb(245 158 11 / .25) var(--tw-gradient-from-position);--tw-gradient-to: rgb(245 158 11 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:via-orange-500\/30:hover{--tw-gradient-to: rgb(249 115 22 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(249 115 22 / .3) var(--tw-gradient-via-position), var(--tw-gradient-to)}.hover\:to-amber-500\/25:hover{--tw-gradient-to: rgb(245 158 11 / .25) var(--tw-gradient-to-position)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-blue-700:hover{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-gray-600:hover{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.hover\:text-muted-foreground:hover{color:hsl(var(--muted-foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:text-primary-foreground:hover{color:hsl(var(--primary-foreground))}.hover\:text-sidebar-accent-foreground:hover{color:hsl(var(--sidebar-accent-foreground))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:text-white\/80:hover{color:#fffc}.hover\:underline:hover{text-decoration-line:underline}.hover\:no-underline:hover{text-decoration-line:none}.hover\:opacity-100:hover{opacity:1}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\]:hover{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-accent));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-lg:hover{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-xl:hover{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-amber-500\/20:hover{--tw-shadow-color: rgb(245 158 11 / .2);--tw-shadow: var(--tw-shadow-colored)}.hover\:shadow-dc-blue\/5:hover{--tw-shadow-color: hsl(var(--dc-blue) / .05);--tw-shadow: var(--tw-shadow-colored)}.hover\:shadow-primary\/20:hover{--tw-shadow-color: hsl(var(--primary) / .2);--tw-shadow: var(--tw-shadow-colored)}.hover\:ring-2:hover{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.hover\:ring-primary\/30:hover{--tw-ring-color: hsl(var(--primary) / .3)}.hover\:after\:-translate-y-0\.5:hover:after{content:var(--tw-content);--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:after\:translate-x-0\.5:hover:after{content:var(--tw-content);--tw-translate-x: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:hsl(var(--sidebar-border))}.hover\:after\:text-primary:hover:after{content:var(--tw-content);color:hsl(var(--primary))}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:bg-primary:focus{background-color:hsl(var(--primary))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:text-primary-foreground:focus{color:hsl(var(--primary-foreground))}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-primary\/50:focus{--tw-ring-color: hsl(var(--primary) / .5)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-sidebar-ring:focus-visible{--tw-ring-color: hsl(var(--sidebar-ring))}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width: 1px}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color: hsl(var(--background))}.active\:scale-95:active{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:bg-sidebar-accent:active{background-color:hsl(var(--sidebar-accent))}.active\:text-sidebar-accent-foreground:active{color:hsl(var(--sidebar-accent-foreground))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group\/menu-item:focus-within .group-focus-within\/menu-item\:opacity-100{opacity:1}.group:hover .group-hover\:translate-x-1{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:translate-x-2{--tw-translate-x: .5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:translate-y-1{--tw-translate-y: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:rotate-12{--tw-rotate: 12deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:border-dc-blue\/30{border-color:hsl(var(--dc-blue) / .3)}.group:hover .group-hover\:bg-black\/10{background-color:#0000001a}.group:hover .group-hover\:bg-black\/90{background-color:#000000e6}.group:hover .group-hover\:bg-dc-blue\/20{background-color:hsl(var(--dc-blue) / .2)}.group:hover .group-hover\:bg-dc-blue\/5{background-color:hsl(var(--dc-blue) / .05)}.group:hover .group-hover\:bg-primary\/20{background-color:hsl(var(--primary) / .2)}.group:hover .group-hover\:text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-dc-blue{color:hsl(var(--dc-blue))}.group:hover .group-hover\:text-foreground{color:hsl(var(--foreground))}.group:hover .group-hover\:text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-orange-700{--tw-text-opacity: 1;color:rgb(194 65 12 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-primary{color:hsl(var(--primary))}.group:hover .group-hover\:underline{text-decoration-line:underline}.group\/menu-item:hover .group-hover\/menu-item\:opacity-100,.group:hover .group-hover\:opacity-100{opacity:1}.group:hover .group-hover\:shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group.destructive .group-\[\.destructive\]\:border-muted\/40{border-color:hsl(var(--muted) / .4)}.group.toaster .group-\[\.toaster\]\:border-border{border-color:hsl(var(--border))}.group.toast .group-\[\.toast\]\:bg-muted{background-color:hsl(var(--muted))}.group.toast .group-\[\.toast\]\:bg-primary{background-color:hsl(var(--primary))}.group.toaster .group-\[\.toaster\]\:bg-background{background-color:hsl(var(--background))}.group.destructive .group-\[\.destructive\]\:text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.group.toast .group-\[\.toast\]\:text-muted-foreground{color:hsl(var(--muted-foreground))}.group.toast .group-\[\.toast\]\:text-primary-foreground{color:hsl(var(--primary-foreground))}.group.toaster .group-\[\.toaster\]\:text-foreground{color:hsl(var(--foreground))}.group.toaster .group-\[\.toaster\]\:shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group.destructive .group-\[\.destructive\]\:hover\:border-destructive\/30:hover{border-color:hsl(var(--destructive) / .3)}.group.destructive .group-\[\.destructive\]\:hover\:bg-destructive:hover{background-color:hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:hover\:text-destructive-foreground:hover{color:hsl(var(--destructive-foreground))}.group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover{--tw-text-opacity: 1;color:rgb(254 242 242 / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-destructive:focus{--tw-ring-color: hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:focus\:ring-red-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-red-600:focus{--tw-ring-offset-color: #dc2626}.peer\/menu-button:hover~.peer-hover\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.has-\[\[data-variant\=inset\]\]\:bg-sidebar:has([data-variant=inset]){background-color:hsl(var(--sidebar-background))}.has-\[\:disabled\]\:opacity-50:has(:disabled){opacity:.5}.group\/menu-item:has([data-sidebar=menu-action]) .group-has-\[\[data-sidebar\=menu-action\]\]\/menu-item\:pr-8{padding-right:2rem}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-selected\:bg-accent[aria-selected=true]{background-color:hsl(var(--accent))}.aria-selected\:bg-accent\/50[aria-selected=true]{background-color:hsl(var(--accent) / .5)}.aria-selected\:text-accent-foreground[aria-selected=true]{color:hsl(var(--accent-foreground))}.aria-selected\:text-muted-foreground[aria-selected=true]{color:hsl(var(--muted-foreground))}.aria-selected\:opacity-100[aria-selected=true]{opacity:1}.aria-selected\:opacity-30[aria-selected=true]{opacity:.3}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[panel-group-direction\=vertical\]\:h-px[data-panel-group-direction=vertical]{height:1px}.data-\[panel-group-direction\=vertical\]\:w-full[data-panel-group-direction=vertical]{width:100%}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:translate-x-5[data-state=checked]{--tw-translate-x: 1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked],.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x: var(--radix-toast-swipe-end-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x: var(--radix-toast-swipe-move-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:accordion-up .2s ease-out}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:accordion-down .2s ease-out}.data-\[panel-group-direction\=vertical\]\:flex-col[data-panel-group-direction=vertical]{flex-direction:column}.data-\[active\=true\]\:bg-sidebar-accent[data-active=true]{background-color:hsl(var(--sidebar-accent))}.data-\[active\]\:bg-accent\/50[data-active]{background-color:hsl(var(--accent) / .5)}.data-\[selected\=\'true\'\]\:bg-accent[data-selected=true]{background-color:hsl(var(--accent))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=active\]\:bg-primary[data-state=active],.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=on\]\:bg-accent[data-state=on],.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:hsl(var(--accent) / .5)}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:hsl(var(--secondary))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[active\=true\]\:font-medium[data-active=true]{font-weight:500}.data-\[active\=true\]\:text-sidebar-accent-foreground[data-active=true]{color:hsl(var(--sidebar-accent-foreground))}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:hsl(var(--accent-foreground))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=active\]\:text-primary-foreground[data-state=active],.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}.data-\[state\=on\]\:text-accent-foreground[data-state=on],.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:hsl(var(--accent-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}.data-\[state\=closed\]\:duration-300[data-state=closed]{transition-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{transition-duration:.5s}.data-\[motion\^\=from-\]\:animate-in[data-motion^=from-],.data-\[state\=open\]\:animate-in[data-state=open],.data-\[state\=visible\]\:animate-in[data-state=visible]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[motion\^\=to-\]\:animate-out[data-motion^=to-],.data-\[state\=closed\]\:animate-out[data-state=closed],.data-\[state\=hidden\]\:animate-out[data-state=hidden],.data-\[swipe\=end\]\:animate-out[data-swipe=end]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[motion\^\=from-\]\:fade-in[data-motion^=from-]{--tw-enter-opacity: 0}.data-\[motion\^\=to-\]\:fade-out[data-motion^=to-],.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\[state\=closed\]\:fade-out-80[data-state=closed]{--tw-exit-opacity: .8}.data-\[state\=hidden\]\:fade-out[data-state=hidden]{--tw-exit-opacity: 0}.data-\[state\=open\]\:fade-in-0[data-state=open],.data-\[state\=visible\]\:fade-in[data-state=visible]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-90[data-state=open]{--tw-enter-scale: .9}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[motion\=from-end\]\:slide-in-from-right-52[data-motion=from-end]{--tw-enter-translate-x: 13rem}.data-\[motion\=from-start\]\:slide-in-from-left-52[data-motion=from-start]{--tw-enter-translate-x: -13rem}.data-\[motion\=to-end\]\:slide-out-to-right-52[data-motion=to-end]{--tw-exit-translate-x: 13rem}.data-\[motion\=to-start\]\:slide-out-to-left-52[data-motion=to-start]{--tw-exit-translate-x: -13rem}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y: 100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x: -100%}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50%}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed],.data-\[state\=closed\]\:slide-out-to-right-full[data-state=closed]{--tw-exit-translate-x: 100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y: -100%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y: 100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x: -100%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x: 100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y: -100%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-top-full[data-state=open]{--tw-enter-translate-y: -100%}.data-\[state\=closed\]\:duration-300[data-state=closed]{animation-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{animation-duration:.5s}.data-\[panel-group-direction\=vertical\]\:after\:left-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);left:0}.data-\[panel-group-direction\=vertical\]\:after\:h-1[data-panel-group-direction=vertical]:after{content:var(--tw-content);height:.25rem}.data-\[panel-group-direction\=vertical\]\:after\:w-full[data-panel-group-direction=vertical]:after{content:var(--tw-content);width:100%}.data-\[panel-group-direction\=vertical\]\:after\:-translate-y-1\/2[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[panel-group-direction\=vertical\]\:after\:translate-x-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=open\]\:hover\:bg-sidebar-accent:hover[data-state=open]{background-color:hsl(var(--sidebar-accent))}.data-\[state\=open\]\:hover\:text-sidebar-accent-foreground:hover[data-state=open]{color:hsl(var(--sidebar-accent-foreground))}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\]{left:calc(var(--sidebar-width) * -1)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\]{right:calc(var(--sidebar-width) * -1)}.group[data-side=left] .group-data-\[side\=left\]\:-right-4{right:-1rem}.group[data-side=right] .group-data-\[side\=right\]\:left-0{left:0}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:-mt-8{margin-top:-2rem}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:hidden{display:none}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!size-8{width:2rem!important;height:2rem!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[--sidebar-width-icon\]{width:var(--sidebar-width-icon)}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)\)\]{width:calc(var(--sidebar-width-icon) + 1rem)}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)_\+2px\)\]{width:calc(var(--sidebar-width-icon) + 1rem + 2px)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:w-0{width:0px}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-side=right] .group-data-\[side\=right\]\:rotate-180,.group[data-state=open] .group-data-\[state\=open\]\:rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:overflow-hidden{overflow:hidden}.group[data-variant=floating] .group-data-\[variant\=floating\]\:rounded-lg{border-radius:var(--radius)}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border{border-width:1px}.group[data-side=left] .group-data-\[side\=left\]\:border-r{border-right-width:1px}.group[data-side=right] .group-data-\[side\=right\]\:border-l{border-left-width:1px}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border-sidebar-border{border-color:hsl(var(--sidebar-border))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!p-0{padding:0!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!p-2{padding:.5rem!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:opacity-0{opacity:0}.group[data-variant=floating] .group-data-\[variant\=floating\]\:shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:after\:left-full:after{content:var(--tw-content);left:100%}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:hover\:bg-sidebar:hover{background-color:hsl(var(--sidebar-background))}.peer\/menu-button[data-size=default]~.peer-data-\[size\=default\]\/menu-button\:top-1\.5{top:.375rem}.peer\/menu-button[data-size=lg]~.peer-data-\[size\=lg\]\/menu-button\:top-2\.5{top:.625rem}.peer\/menu-button[data-size=sm]~.peer-data-\[size\=sm\]\/menu-button\:top-1{top:.25rem}.peer[data-variant=inset]~.peer-data-\[variant\=inset\]\:min-h-\[calc\(100svh-theme\(spacing\.4\)\)\]{min-height:calc(100svh - 1rem)}.peer\/menu-button[data-active=true]~.peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}.dark\:border-destructive:is(.dark *){border-color:hsl(var(--destructive))}.dark\:border-gray-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:text-amber-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.dark\:text-gray-300:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.dark\:text-orange-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.dark\:hover\:text-gray-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.group:hover .dark\:group-hover\:text-amber-300:is(.dark *){--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity, 1))}.group:hover .dark\:group-hover\:text-orange-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity, 1))}@media(min-width:640px){.sm\:-left-8{left:-2rem}.sm\:-right-8{right:-2rem}.sm\:bottom-0{bottom:0}.sm\:right-0{right:0}.sm\:right-4{right:1rem}.sm\:top-4{top:1rem}.sm\:top-auto{top:auto}.sm\:order-1{order:1}.sm\:order-3{order:3}.sm\:col-span-2{grid-column:span 2 / span 2}.sm\:mx-0{margin-left:0;margin-right:0}.sm\:mb-2{margin-bottom:.5rem}.sm\:mb-3{margin-bottom:.75rem}.sm\:mb-4{margin-bottom:1rem}.sm\:mt-0{margin-top:0}.sm\:mt-4{margin-top:1rem}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:h-12{height:3rem}.sm\:h-4{height:1rem}.sm\:h-5{height:1.25rem}.sm\:h-6{height:1.5rem}.sm\:h-8{height:2rem}.sm\:w-4{width:1rem}.sm\:w-5{width:1.25rem}.sm\:w-6{width:1.5rem}.sm\:w-8{width:2rem}.sm\:w-\[400px\]{width:400px}.sm\:w-auto{width:auto}.sm\:min-w-\[160px\]{min-width:160px}.sm\:max-w-2xl{max-width:42rem}.sm\:max-w-sm{max-width:24rem}.sm\:basis-1\/2{flex-basis:50%}.sm\:basis-full{flex-basis:100%}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:flex-wrap{flex-wrap:wrap}.sm\:items-start{align-items:flex-start}.sm\:items-center{align-items:center}.sm\:justify-start{justify-content:flex-start}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2{gap:.5rem}.sm\:gap-2\.5{gap:.625rem}.sm\:gap-3{gap:.75rem}.sm\:gap-4{gap:1rem}.sm\:gap-6{gap:1.5rem}.sm\:gap-8{gap:2rem}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.sm\:space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:p-0{padding:0}.sm\:p-1{padding:.25rem}.sm\:p-10{padding:2.5rem}.sm\:p-3{padding:.75rem}.sm\:p-4{padding:1rem}.sm\:p-6{padding:1.5rem}.sm\:p-8{padding:2rem}.sm\:px-0{padding-left:0;padding-right:0}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pr-12{padding-right:3rem}.sm\:pr-8{padding-right:2rem}.sm\:text-left{text-align:left}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-5xl{font-size:3rem;line-height:1}.sm\:text-6xl{font-size:3.75rem;line-height:1}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}.sm\:text-xs{font-size:.75rem;line-height:1rem}.data-\[state\=open\]\:sm\:slide-in-from-bottom-full[data-state=open]{--tw-enter-translate-y: 100%}}@media(min-width:768px){.md\:absolute{position:absolute}.md\:-ml-4{margin-left:-1rem}.md\:mb-0{margin-bottom:0}.md\:mb-10{margin-bottom:2.5rem}.md\:mb-12{margin-bottom:3rem}.md\:mb-14{margin-bottom:3.5rem}.md\:mb-16{margin-bottom:4rem}.md\:mb-3{margin-bottom:.75rem}.md\:mb-4{margin-bottom:1rem}.md\:mb-6{margin-bottom:1.5rem}.md\:mb-8{margin-bottom:2rem}.md\:mt-12{margin-top:3rem}.md\:mt-16{margin-top:4rem}.md\:block{display:block}.md\:flex{display:flex}.md\:h-14{height:3.5rem}.md\:h-7{height:1.75rem}.md\:w-14{width:3.5rem}.md\:w-7{width:1.75rem}.md\:w-\[var\(--radix-navigation-menu-viewport-width\)\]{width:var(--radix-navigation-menu-viewport-width)}.md\:w-auto{width:auto}.md\:max-w-\[420px\]{max-width:420px}.md\:flex-shrink-0{flex-shrink:0}.md\:basis-1\/2{flex-basis:50%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}.md\:gap-4{gap:1rem}.md\:gap-6{gap:1.5rem}.md\:gap-8{gap:2rem}.md\:space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(3rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3rem * var(--tw-space-y-reverse))}.md\:p-12{padding:3rem}.md\:p-16{padding:4rem}.md\:p-8{padding:2rem}.md\:px-8{padding-left:2rem;padding-right:2rem}.md\:py-16{padding-top:4rem;padding-bottom:4rem}.md\:py-20{padding-top:5rem;padding-bottom:5rem}.md\:py-24{padding-top:6rem;padding-bottom:6rem}.md\:py-4{padding-top:1rem;padding-bottom:1rem}.md\:pb-20{padding-bottom:5rem}.md\:pb-24{padding-bottom:6rem}.md\:pb-32{padding-bottom:8rem}.md\:pl-4{padding-left:1rem}.md\:pt-40{padding-top:10rem}.md\:pt-48{padding-top:12rem}.md\:pt-56{padding-top:14rem}.md\:pt-8{padding-top:2rem}.md\:text-left{text-align:left}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-6xl{font-size:3.75rem;line-height:1}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}.md\:opacity-0{opacity:0}.after\:md\:hidden:after{content:var(--tw-content);display:none}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:m-2{margin:.5rem}.peer[data-state=collapsed][data-variant=inset]~.md\:peer-data-\[state\=collapsed\]\:peer-data-\[variant\=inset\]\:ml-2{margin-left:.5rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:ml-0{margin-left:0}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:rounded-xl{border-radius:.75rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}}@media(min-width:1024px){.lg\:order-1{order:1}.lg\:order-2{order:2}.lg\:col-span-1{grid-column:span 1 / span 1}.lg\:col-span-6{grid-column:span 6 / span 6}.lg\:mx-0{margin-left:0;margin-right:0}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:grid{display:grid}.lg\:hidden{display:none}.lg\:max-w-4xl{max-width:56rem}.lg\:max-w-none{max-width:none}.lg\:basis-1\/3{flex-basis:33.333333%}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:items-center{align-items:center}.lg\:justify-start{justify-content:flex-start}.lg\:justify-end{justify-content:flex-end}.lg\:gap-12{gap:3rem}.lg\:gap-16{gap:4rem}.lg\:gap-20{gap:5rem}.lg\:justify-self-auto{justify-self:auto}.lg\:rounded-2xl{border-radius:1rem}.lg\:text-left{text-align:left}.lg\:text-5xl{font-size:3rem;line-height:1}.lg\:text-6xl{font-size:3.75rem;line-height:1}.lg\:text-7xl{font-size:4.5rem;line-height:1}}.\[\&\:has\(\[aria-selected\]\)\]\:bg-accent:has([aria-selected]){background-color:hsl(var(--accent))}.first\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-l-md:has([aria-selected]):first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.last\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-r-md:has([aria-selected]):last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[aria-selected\]\.day-outside\)\]\:bg-accent\/50:has([aria-selected].day-outside){background-color:hsl(var(--accent) / .5)}.\[\&\:has\(\[aria-selected\]\.day-range-end\)\]\:rounded-r-md:has([aria-selected].day-range-end){border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>span\:last-child\]\:truncate>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y: -3px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:left-4>svg{left:1rem}.\[\&\>svg\]\:top-4>svg{top:1rem}.\[\&\>svg\]\:size-3\.5>svg{width:.875rem;height:.875rem}.\[\&\>svg\]\:size-4>svg{width:1rem;height:1rem}.\[\&\>svg\]\:h-2\.5>svg{height:.625rem}.\[\&\>svg\]\:h-3>svg{height:.75rem}.\[\&\>svg\]\:w-2\.5>svg{width:.625rem}.\[\&\>svg\]\:w-3>svg{width:.75rem}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:text-destructive>svg{color:hsl(var(--destructive))}.\[\&\>svg\]\:text-foreground>svg{color:hsl(var(--foreground))}.\[\&\>svg\]\:text-muted-foreground>svg{color:hsl(var(--muted-foreground))}.\[\&\>svg\]\:text-sidebar-accent-foreground>svg{color:hsl(var(--sidebar-accent-foreground))}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:1.75rem}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0px}.\[\&\[data-panel-group-direction\=vertical\]\>div\]\:rotate-90[data-panel-group-direction=vertical]>div{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:hsl(var(--muted-foreground))}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke="#ccc"]{stroke:hsl(var(--border) / .5)}.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:hsl(var(--border))}.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-layer\]\:outline-none .recharts-layer{outline:2px solid transparent;outline-offset:2px}.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector,.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:hsl(var(--muted))}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-sector\]\:outline-none .recharts-sector,.\[\&_\.recharts-surface\]\:outline-none .recharts-surface{outline:2px solid transparent;outline-offset:2px}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-top:.75rem;padding-bottom:.75rem}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:1.25rem}.\[\&_p\]\:leading-relaxed p{line-height:1.625}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{right:-.5rem}[data-side=left][data-state=collapsed] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize{cursor:e-resize}[data-side=left] .\[\[data-side\=left\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-side=right][data-collapsible=offcanvas] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2{left:-.5rem}[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-side=right] .\[\[data-side\=right\]_\&\]\:cursor-e-resize{cursor:e-resize} diff --git a/docs/assets/_id_.COvqFfLA.css b/docs/assets/_id_.COvqFfLA.css new file mode 100644 index 00000000..9809069e --- /dev/null +++ b/docs/assets/_id_.COvqFfLA.css @@ -0,0 +1 @@ +*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 222 24% 8%;--foreground: 210 40% 98%;--card: 222 20% 12%;--card-foreground: 210 40% 98%;--popover: 222 20% 12%;--popover-foreground: 210 40% 98%;--primary: 218 100% 72%;--primary-foreground: 222 24% 8%;--secondary: 222 16% 18%;--secondary-foreground: 210 40% 98%;--muted: 222 16% 16%;--muted-foreground: 215 20% 65%;--accent: 218 100% 72%;--accent-foreground: 222 24% 8%;--destructive: 0 84% 60%;--destructive-foreground: 210 40% 98%;--border: 222 16% 20%;--input: 222 16% 16%;--ring: 218 100% 72%;--radius: .75rem;--dc-blue: 218 100% 72%;--dc-blue-glow: 218 100% 82%;--dc-dark: 222 24% 8%;--dc-card: 222 20% 12%;--dc-surface: 222 16% 18%;--dc-border: 222 16% 20%;--gradient-primary: linear-gradient(135deg, hsl(var(--dc-blue)), hsl(var(--dc-blue-glow)));--gradient-subtle: linear-gradient(180deg, hsl(var(--dc-card)), hsl(var(--dc-surface)));--shadow-elegant: 0 10px 30px -10px hsl(var(--dc-blue) / .2);--shadow-glow: 0 0 40px hsl(var(--dc-blue) / .3);--transition-smooth: all .24s cubic-bezier(.4, 0, .2, 1);--sidebar-background: 0 0% 98%;--sidebar-foreground: 240 5.3% 26.1%;--sidebar-primary: 240 5.9% 10%;--sidebar-primary-foreground: 0 0% 98%;--sidebar-accent: 240 4.8% 95.9%;--sidebar-accent-foreground: 240 5.9% 10%;--sidebar-border: 220 13% 91%;--sidebar-ring: 217.2 91.2% 59.8%}*{border-color:hsl(var(--border))}html{scroll-behavior:smooth;overflow-x:hidden;scrollbar-gutter:stable;overflow-y:scroll}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-feature-settings:"rlig" 1,"calt" 1;overflow-x:hidden;min-height:100vh;width:100%;margin:0;padding:0}*{box-sizing:border-box;max-width:100%}[data-radix-popper-content-wrapper]{z-index:50}[data-radix-dropdown-menu-content]{max-width:calc(100vw - 2rem)}.container{width:100%;max-width:100%}img,video,iframe,embed,object{max-width:100%;height:auto}.grid,.flex{min-width:0}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}@media(min-width:1400px){.container{max-width:1400px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-2{inset:.5rem}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.-bottom-12{bottom:-3rem}.-left-12{left:-3rem}.-left-4{left:-1rem}.-right-12{right:-3rem}.-right-2{right:-.5rem}.-right-20{right:-5rem}.-right-4{right:-1rem}.-top-1{top:-.25rem}.-top-12{top:-3rem}.-top-2{top:-.5rem}.-top-20{top:-5rem}.bottom-0{bottom:0}.bottom-2{bottom:.5rem}.bottom-4{bottom:1rem}.left-0{left:0}.left-1{left:.25rem}.left-1\/2{left:50%}.left-2{left:.5rem}.left-3{left:.75rem}.left-4{left:1rem}.left-\[50\%\]{left:50%}.left-full{left:100%}.right-0{right:0}.right-1{right:.25rem}.right-2{right:.5rem}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.top-1{top:.25rem}.top-1\.5{top:.375rem}.top-1\/2{top:50%}.top-12{top:3rem}.top-2{top:.5rem}.top-2\.5{top:.625rem}.top-3{top:.75rem}.top-3\.5{top:.875rem}.top-4{top:1rem}.top-\[1px\]{top:1px}.top-\[50\%\]{top:50%}.top-\[60\%\]{top:60%}.top-full{top:100%}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[1\]{z-index:1}.z-\[60\]{z-index:60}.order-1{order:1}.order-2{order:2}.order-3{order:3}.col-span-1{grid-column:span 1 / span 1}.col-span-2{grid-column:span 2 / span 2}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-1\.5{margin-left:.375rem;margin-right:.375rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3\.5{margin-left:.875rem;margin-right:.875rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-16{margin-top:4rem;margin-bottom:4rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.-ml-2{margin-left:-.5rem}.-ml-3{margin-left:-.75rem}.-ml-4{margin-left:-1rem}.-mt-4{margin-top:-1rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-20{margin-bottom:5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-20{margin-top:5rem}.mt-24{margin-top:6rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.line-clamp-4{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1 / 1}.aspect-video{aspect-ratio:16 / 9}.size-4{width:1rem;height:1rem}.h-0{height:0px}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-24{height:6rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-40{height:10rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-56{height:14rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[1px\]{height:1px}.h-\[calc\(100\%-12rem\)\]{height:calc(100% - 12rem)}.h-\[var\(--radix-navigation-menu-viewport-height\)\]{height:var(--radix-navigation-menu-viewport-height)}.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-svh{height:100svh}.max-h-32{max-height:8rem}.max-h-40{max-height:10rem}.max-h-96{max-height:24rem}.max-h-\[300px\]{max-height:300px}.max-h-\[70vh\]{max-height:70vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.max-h-screen{max-height:100vh}.min-h-0{min-height:0px}.min-h-\[2\.5rem\]{min-height:2.5rem}.min-h-\[32px\]{min-height:32px}.min-h-\[36px\]{min-height:36px}.min-h-\[3rem\]{min-height:3rem}.min-h-\[48px\]{min-height:48px}.min-h-\[80px\]{min-height:80px}.min-h-\[80vh\]{min-height:80vh}.min-h-screen{min-height:100vh}.min-h-svh{min-height:100svh}.w-0{width:0px}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-4{width:1rem}.w-40{width:10rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-\[--sidebar-width\]{width:var(--sidebar-width)}.w-\[100px\]{width:100px}.w-\[1px\]{width:1px}.w-\[300px\]{width:300px}.w-\[95vw\]{width:95vw}.w-\[calc\(100\%-8px\)\]{width:calc(100% - 8px)}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-5{min-width:1.25rem}.min-w-\[12rem\]{min-width:12rem}.min-w-\[200px\]{min-width:200px}.min-w-\[270px\]{min-width:270px}.min-w-\[2rem\]{min-width:2rem}.min-w-\[8rem\]{min-width:8rem}.min-w-\[90px\]{min-width:90px}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-w-\[--skeleton-width\]{max-width:var(--skeleton-width)}.max-w-lg{max-width:32rem}.max-w-max{max-width:-moz-max-content;max-width:max-content}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-full{flex-basis:100%}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-8{--tw-translate-x: -2rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-px{--tw-translate-x: -1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-4{--tw-translate-x: 1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-px{--tw-translate-x: 1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-4{--tw-translate-y: 1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-8{--tw-translate-y: 2rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-2{--tw-rotate: -2deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-2{--tw-rotate: 2deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-90{--tw-scale-x: .9;--tw-scale-y: .9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes marquee-right{0%{transform:translate(-50%)}to{transform:translate(0)}}.animate-marquee-right{animation:marquee-right 50s linear infinite}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-text{-webkit-user-select:text;-moz-user-select:text;user-select:text}.resize{resize:both}.scroll-mt-20{scroll-margin-top:5rem}.scroll-mt-24{scroll-margin-top:6rem}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-12{gap:3rem}.gap-16{gap:4rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-10>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2.5rem * var(--tw-space-y-reverse))}.space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(3rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.justify-self-center{justify-self:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.rounded-t-\[10px\]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-t-lg{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.rounded-tl-sm{border-top-left-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-2{border-width:2px}.border-\[1\.5px\]{border-width:1.5px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-b-\[16px\]{border-bottom-width:16px}.border-l{border-left-width:1px}.border-l-\[28px\]{border-left-width:28px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-t-\[16px\]{border-top-width:16px}.border-dashed{border-style:dashed}.border-\[--color-border\]{border-color:var(--color-border)}.border-amber-400\/60{border-color:#fbbf2499}.border-background{border-color:hsl(var(--background))}.border-blue-500\/20{border-color:#3b82f633}.border-blue-500\/30{border-color:#3b82f64d}.border-blue-600{--tw-border-opacity: 1;border-color:rgb(37 99 235 / var(--tw-border-opacity, 1))}.border-border{border-color:hsl(var(--border))}.border-border\/50{border-color:hsl(var(--border) / .5)}.border-dc-blue\/20{border-color:hsl(var(--dc-blue) / .2)}.border-dc-border{border-color:hsl(var(--dc-border))}.border-dc-border\/50{border-color:hsl(var(--dc-border) / .5)}.border-destructive{border-color:hsl(var(--destructive))}.border-destructive\/20{border-color:hsl(var(--destructive) / .2)}.border-destructive\/50{border-color:hsl(var(--destructive) / .5)}.border-foreground\/20{border-color:hsl(var(--foreground) / .2)}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-green-500\/20{border-color:#22c55e33}.border-green-500\/30{border-color:#22c55e4d}.border-input{border-color:hsl(var(--input))}.border-muted-foreground\/20{border-color:hsl(var(--muted-foreground) / .2)}.border-primary{border-color:hsl(var(--primary))}.border-primary\/20{border-color:hsl(var(--primary) / .2)}.border-primary\/30{border-color:hsl(var(--primary) / .3)}.border-primary\/40{border-color:hsl(var(--primary) / .4)}.border-purple-500\/20{border-color:#a855f733}.border-purple-500\/30{border-color:#a855f74d}.border-red-500\/20{border-color:#ef444433}.border-sidebar-border{border-color:hsl(var(--sidebar-border))}.border-slate-700\/50{border-color:#33415580}.border-slate-800{--tw-border-opacity: 1;border-color:rgb(30 41 59 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-white\/20{border-color:#fff3}.border-b-transparent{border-bottom-color:transparent}.border-l-primary{border-left-color:hsl(var(--primary))}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-\[--color-bg\]{background-color:var(--color-bg)}.bg-accent{background-color:hsl(var(--accent))}.bg-accent\/50{background-color:hsl(var(--accent) / .5)}.bg-amber-600{--tw-bg-opacity: 1;background-color:rgb(217 119 6 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-background\/50{background-color:hsl(var(--background) / .5)}.bg-background\/80{background-color:hsl(var(--background) / .8)}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\/0{background-color:#0000}.bg-black\/80{background-color:#000c}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-500\/10{background-color:#3b82f61a}.bg-blue-500\/20{background-color:#3b82f633}.bg-blue-500\/5{background-color:#3b82f60d}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.bg-blue-600\/10{background-color:#2563eb1a}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-cyan-600{--tw-bg-opacity: 1;background-color:rgb(8 145 178 / var(--tw-bg-opacity, 1))}.bg-dc-blue\/10{background-color:hsl(var(--dc-blue) / .1)}.bg-dc-border{background-color:hsl(var(--dc-border))}.bg-dc-card{background-color:hsl(var(--dc-card))}.bg-dc-card\/30{background-color:hsl(var(--dc-card) / .3)}.bg-dc-card\/50{background-color:hsl(var(--dc-card) / .5)}.bg-dc-surface{background-color:hsl(var(--dc-surface))}.bg-dc-surface\/30{background-color:hsl(var(--dc-surface) / .3)}.bg-dc-surface\/50{background-color:hsl(var(--dc-surface) / .5)}.bg-dc-surface\/80{background-color:hsl(var(--dc-surface) / .8)}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive) / .1)}.bg-emerald-600{--tw-bg-opacity: 1;background-color:rgb(5 150 105 / var(--tw-bg-opacity, 1))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-500\/10{background-color:#6b72801a}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-500\/10{background-color:#22c55e1a}.bg-green-500\/20{background-color:#22c55e33}.bg-green-500\/5{background-color:#22c55e0d}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.bg-indigo-600{--tw-bg-opacity: 1;background-color:rgb(79 70 229 / var(--tw-bg-opacity, 1))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground\/50{background-color:hsl(var(--muted-foreground) / .5)}.bg-muted\/20{background-color:hsl(var(--muted) / .2)}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-orange-500\/10{background-color:#f973161a}.bg-orange-600{--tw-bg-opacity: 1;background-color:rgb(234 88 12 / var(--tw-bg-opacity, 1))}.bg-pink-600{--tw-bg-opacity: 1;background-color:rgb(219 39 119 / var(--tw-bg-opacity, 1))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-primary\/20{background-color:hsl(var(--primary) / .2)}.bg-primary\/30{background-color:hsl(var(--primary) / .3)}.bg-primary\/5{background-color:hsl(var(--primary) / .05)}.bg-purple-500\/10{background-color:#a855f71a}.bg-purple-500\/20{background-color:#a855f733}.bg-purple-500\/5{background-color:#a855f70d}.bg-purple-600{--tw-bg-opacity: 1;background-color:rgb(147 51 234 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-500\/10{background-color:#ef44441a}.bg-red-500\/5{background-color:#ef44440d}.bg-rose-600{--tw-bg-opacity: 1;background-color:rgb(225 29 72 / var(--tw-bg-opacity, 1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-sidebar{background-color:hsl(var(--sidebar-background))}.bg-sidebar-border{background-color:hsl(var(--sidebar-border))}.bg-sky-600{--tw-bg-opacity: 1;background-color:rgb(2 132 199 / var(--tw-bg-opacity, 1))}.bg-slate-600{--tw-bg-opacity: 1;background-color:rgb(71 85 105 / var(--tw-bg-opacity, 1))}.bg-slate-900\/80{background-color:#0f172acc}.bg-stone-600{--tw-bg-opacity: 1;background-color:rgb(87 83 78 / var(--tw-bg-opacity, 1))}.bg-teal-600{--tw-bg-opacity: 1;background-color:rgb(13 148 136 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-amber-500\/20{--tw-gradient-from: rgb(245 158 11 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(245 158 11 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-background{--tw-gradient-from: hsl(var(--background)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--background) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-dc-card{--tw-gradient-from: hsl(var(--dc-card)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--dc-card) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-dc-card\/30{--tw-gradient-from: hsl(var(--dc-card) / .3) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--dc-card) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-dc-surface{--tw-gradient-from: hsl(var(--dc-surface)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--dc-surface) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-dc-surface\/50{--tw-gradient-from: hsl(var(--dc-surface) / .5) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--dc-surface) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-foreground{--tw-gradient-from: hsl(var(--foreground)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--foreground) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary\/10{--tw-gradient-from: hsl(var(--primary) / .1) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary\/15{--tw-gradient-from: hsl(var(--primary) / .15) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary\/5{--tw-gradient-from: hsl(var(--primary) / .05) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-900{--tw-gradient-from: #0f172a var(--tw-gradient-from-position);--tw-gradient-to: rgb(15 23 42 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-background{--tw-gradient-to: hsl(var(--background) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(var(--background)) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-orange-500\/25{--tw-gradient-to: rgb(249 115 22 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(249 115 22 / .25) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-primary\/10{--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(var(--primary) / .1) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-primary\/5{--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(var(--primary) / .05) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-slate-800{--tw-gradient-to: rgb(30 41 59 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #1e293b var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-amber-500\/20{--tw-gradient-to: rgb(245 158 11 / .2) var(--tw-gradient-to-position)}.to-background{--tw-gradient-to: hsl(var(--background)) var(--tw-gradient-to-position)}.to-dc-card{--tw-gradient-to: hsl(var(--dc-card)) var(--tw-gradient-to-position)}.to-dc-card\/30{--tw-gradient-to: hsl(var(--dc-card) / .3) var(--tw-gradient-to-position)}.to-dc-card\/50{--tw-gradient-to: hsl(var(--dc-card) / .5) var(--tw-gradient-to-position)}.to-dc-surface{--tw-gradient-to: hsl(var(--dc-surface)) var(--tw-gradient-to-position)}.to-dc-surface\/30{--tw-gradient-to: hsl(var(--dc-surface) / .3) var(--tw-gradient-to-position)}.to-foreground\/70{--tw-gradient-to: hsl(var(--foreground) / .7) var(--tw-gradient-to-position)}.to-muted\/20{--tw-gradient-to: hsl(var(--muted) / .2) var(--tw-gradient-to-position)}.to-primary\/10{--tw-gradient-to: hsl(var(--primary) / .1) var(--tw-gradient-to-position)}.to-slate-950{--tw-gradient-to: #020617 var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.bg-\[size\:50px_50px\]{background-size:50px 50px}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.fill-current{fill:currentColor}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-12{padding:3rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[1px\]{padding:1px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-24{padding-top:6rem;padding-bottom:6rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-16{padding-bottom:4rem}.pb-20{padding-bottom:5rem}.pb-24{padding-bottom:6rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pl-10{padding-left:2.5rem}.pl-2\.5{padding-left:.625rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-8{padding-left:2rem}.pr-10{padding-right:2.5rem}.pr-12{padding-right:3rem}.pr-2{padding-right:.5rem}.pr-2\.5{padding-right:.625rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-12{padding-top:3rem}.pt-2{padding-top:.5rem}.pt-20{padding-top:5rem}.pt-24{padding-top:6rem}.pt-3{padding-top:.75rem}.pt-32{padding-top:8rem}.pt-4{padding-top:1rem}.pt-40{padding-top:10rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-\[0\.8rem\]{font-size:.8rem}.text-\[10px\]{font-size:10px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-\[1\.1\]{line-height:1.1}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-dc-blue{color:hsl(var(--dc-blue))}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/50{color:hsl(var(--foreground) / .5)}.text-foreground\/70{color:hsl(var(--foreground) / .7)}.text-foreground\/90{color:hsl(var(--foreground) / .9)}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/50{color:hsl(var(--muted-foreground) / .5)}.text-muted-foreground\/60{color:hsl(var(--muted-foreground) / .6)}.text-orange-500{--tw-text-opacity: 1;color:rgb(249 115 22 / var(--tw-text-opacity, 1))}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-pink-500{--tw-text-opacity: 1;color:rgb(236 72 153 / var(--tw-text-opacity, 1))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-primary\/10{color:hsl(var(--primary) / .1)}.text-primary\/60{color:hsl(var(--primary) / .6)}.text-purple-400{--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.text-purple-500{--tw-text-opacity: 1;color:rgb(168 85 247 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-sidebar-foreground{color:hsl(var(--sidebar-foreground))}.text-sidebar-foreground\/70{color:hsl(var(--sidebar-foreground) / .7)}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-500{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\]{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-border));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-primary\/20{--tw-shadow-color: hsl(var(--primary) / .2);--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-ring{--tw-ring-color: hsl(var(--ring))}.ring-sidebar-ring{--tw-ring-color: hsl(var(--sidebar-ring))}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.blur-3xl{--tw-blur: blur(64px);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)}.drop-shadow-sm{--tw-drop-shadow: drop-shadow(0 1px 1px rgb(0 0 0 / .05));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)}.grayscale{--tw-grayscale: grayscale(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)}.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-md{--tw-backdrop-blur: blur(12px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);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{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[left\,right\,width\]{transition-property:left,right,width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[margin\,opa\]{transition-property:margin,opa;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,height\,padding\]{transition-property:width,height,padding;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.delay-1000{transition-delay:1s}.delay-200{transition-delay:.2s}.delay-300{transition-delay:.3s}.delay-500{transition-delay:.5s}.delay-700{transition-delay:.7s}.duration-1000{transition-duration:1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-700{transition-duration:.7s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{transition-timing-function:linear}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.fade-in-0{--tw-enter-opacity: 0}.fade-in-80{--tw-enter-opacity: .8}.zoom-in-95{--tw-enter-scale: .95}.duration-1000{animation-duration:1s}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.duration-500{animation-duration:.5s}.duration-700{animation-duration:.7s}.delay-1000{animation-delay:1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-500{animation-delay:.5s}.delay-700{animation-delay:.7s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{animation-timing-function:linear}.ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.running{animation-play-state:running}.shadow-elegant{box-shadow:var(--shadow-elegant)}.transition-smooth{transition:var(--transition-smooth)}@media(min-width:640px){.sm\:flex{min-width:0}}@media(min-width:768px){.md\:flex{min-width:0}}@media(min-width:1024px){.lg\:grid,.lg\:flex{min-width:0}}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.after\:pointer-events-none:after{content:var(--tw-content);pointer-events:none}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);inset:-.5rem}.after\:inset-y-0:after{content:var(--tw-content);top:0;bottom:0}.after\:bottom-3:after{content:var(--tw-content);bottom:.75rem}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:right-3:after{content:var(--tw-content);right:.75rem}.after\:w-1:after{content:var(--tw-content);width:.25rem}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.after\:-translate-x-1\/2:after{content:var(--tw-content);--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.after\:text-xs:after{content:var(--tw-content);font-size:.75rem;line-height:1rem}.after\:text-muted-foreground\/70:after{content:var(--tw-content);color:hsl(var(--muted-foreground) / .7)}.after\:transition-colors:after{content:var(--tw-content);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.after\:transition-transform:after{content:var(--tw-content);transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.after\:duration-200:after{content:var(--tw-content);transition-duration:.2s}.after\:content-\[\'β†—\'\]:after{--tw-content: "β†—";content:var(--tw-content)}.after\:duration-200:after{content:var(--tw-content);animation-duration:.2s}.first\:rounded-l-md:first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.first\:border-l:first-child{border-left-width:1px}.last\:rounded-r-md:last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.focus-within\:relative:focus-within{position:relative}.focus-within\:z-20:focus-within{z-index:20}.hover\:-translate-y-1:hover{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:rotate-0:hover{--tw-rotate: 0deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-105:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-110:hover{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-\[1\.01\]:hover{--tw-scale-x: 1.01;--tw-scale-y: 1.01;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-\[1\.02\]:hover{--tw-scale-x: 1.02;--tw-scale-y: 1.02;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.hover\:animate-pulse:hover{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.hover\:border-amber-400\/80:hover{border-color:#fbbf24cc}.hover\:border-border:hover{border-color:hsl(var(--border))}.hover\:border-border\/60:hover{border-color:hsl(var(--border) / .6)}.hover\:border-dc-blue\/20:hover{border-color:hsl(var(--dc-blue) / .2)}.hover\:border-dc-blue\/30:hover{border-color:hsl(var(--dc-blue) / .3)}.hover\:border-primary\/30:hover{border-color:hsl(var(--primary) / .3)}.hover\:border-primary\/40:hover{border-color:hsl(var(--primary) / .4)}.hover\:border-primary\/50:hover{border-color:hsl(var(--primary) / .5)}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-accent\/50:hover{background-color:hsl(var(--accent) / .5)}.hover\:bg-black\/90:hover{background-color:#000000e6}.hover\:bg-blue-500:hover{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-700:hover{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity, 1))}.hover\:bg-dc-blue\/5:hover{background-color:hsl(var(--dc-blue) / .05)}.hover\:bg-dc-border:hover{background-color:hsl(var(--dc-border))}.hover\:bg-dc-card:hover{background-color:hsl(var(--dc-card))}.hover\:bg-dc-card\/60:hover{background-color:hsl(var(--dc-card) / .6)}.hover\:bg-dc-card\/80:hover{background-color:hsl(var(--dc-card) / .8)}.hover\:bg-dc-surface:hover{background-color:hsl(var(--dc-surface))}.hover\:bg-dc-surface\/50:hover{background-color:hsl(var(--dc-surface) / .5)}.hover\:bg-dc-surface\/80:hover{background-color:hsl(var(--dc-surface) / .8)}.hover\:bg-destructive\/80:hover{background-color:hsl(var(--destructive) / .8)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-gray-800:hover{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-primary:hover{background-color:hsl(var(--primary))}.hover\:bg-primary\/10:hover{background-color:hsl(var(--primary) / .1)}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-sidebar-accent:hover{background-color:hsl(var(--sidebar-accent))}.hover\:bg-transparent:hover{background-color:transparent}.hover\:from-amber-500\/25:hover{--tw-gradient-from: rgb(245 158 11 / .25) var(--tw-gradient-from-position);--tw-gradient-to: rgb(245 158 11 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:via-orange-500\/30:hover{--tw-gradient-to: rgb(249 115 22 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(249 115 22 / .3) var(--tw-gradient-via-position), var(--tw-gradient-to)}.hover\:to-amber-500\/25:hover{--tw-gradient-to: rgb(245 158 11 / .25) var(--tw-gradient-to-position)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-blue-700:hover{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-gray-600:hover{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.hover\:text-muted-foreground:hover{color:hsl(var(--muted-foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:text-primary-foreground:hover{color:hsl(var(--primary-foreground))}.hover\:text-primary\/80:hover{color:hsl(var(--primary) / .8)}.hover\:text-sidebar-accent-foreground:hover{color:hsl(var(--sidebar-accent-foreground))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:text-white\/80:hover{color:#fffc}.hover\:underline:hover{text-decoration-line:underline}.hover\:no-underline:hover{text-decoration-line:none}.hover\:opacity-100:hover{opacity:1}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\]:hover{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-accent));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-lg:hover{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-xl:hover{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-amber-500\/20:hover{--tw-shadow-color: rgb(245 158 11 / .2);--tw-shadow: var(--tw-shadow-colored)}.hover\:shadow-dc-blue\/5:hover{--tw-shadow-color: hsl(var(--dc-blue) / .05);--tw-shadow: var(--tw-shadow-colored)}.hover\:shadow-primary\/20:hover{--tw-shadow-color: hsl(var(--primary) / .2);--tw-shadow: var(--tw-shadow-colored)}.hover\:ring-2:hover{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.hover\:ring-primary\/30:hover{--tw-ring-color: hsl(var(--primary) / .3)}.hover\:after\:-translate-y-0\.5:hover:after{content:var(--tw-content);--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:after\:translate-x-0\.5:hover:after{content:var(--tw-content);--tw-translate-x: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:hsl(var(--sidebar-border))}.hover\:after\:text-primary:hover:after{content:var(--tw-content);color:hsl(var(--primary))}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:bg-primary:focus{background-color:hsl(var(--primary))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:text-primary-foreground:focus{color:hsl(var(--primary-foreground))}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-primary\/50:focus{--tw-ring-color: hsl(var(--primary) / .5)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-sidebar-ring:focus-visible{--tw-ring-color: hsl(var(--sidebar-ring))}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width: 1px}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color: hsl(var(--background))}.active\:scale-95:active{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:bg-sidebar-accent:active{background-color:hsl(var(--sidebar-accent))}.active\:text-sidebar-accent-foreground:active{color:hsl(var(--sidebar-accent-foreground))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group\/menu-item:focus-within .group-focus-within\/menu-item\:opacity-100{opacity:1}.group:hover .group-hover\:translate-x-1{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:translate-x-2{--tw-translate-x: .5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:translate-y-1{--tw-translate-y: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:rotate-12{--tw-rotate: 12deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:border-dc-blue\/30{border-color:hsl(var(--dc-blue) / .3)}.group:hover .group-hover\:bg-black\/10{background-color:#0000001a}.group:hover .group-hover\:bg-black\/90{background-color:#000000e6}.group:hover .group-hover\:bg-dc-blue\/20{background-color:hsl(var(--dc-blue) / .2)}.group:hover .group-hover\:bg-dc-blue\/5{background-color:hsl(var(--dc-blue) / .05)}.group:hover .group-hover\:bg-primary\/20{background-color:hsl(var(--primary) / .2)}.group:hover .group-hover\:text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-dc-blue{color:hsl(var(--dc-blue))}.group:hover .group-hover\:text-foreground{color:hsl(var(--foreground))}.group:hover .group-hover\:text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-orange-700{--tw-text-opacity: 1;color:rgb(194 65 12 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-primary{color:hsl(var(--primary))}.group:hover .group-hover\:underline{text-decoration-line:underline}.group\/menu-item:hover .group-hover\/menu-item\:opacity-100,.group:hover .group-hover\:opacity-100{opacity:1}.group:hover .group-hover\:shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group.destructive .group-\[\.destructive\]\:border-muted\/40{border-color:hsl(var(--muted) / .4)}.group.toaster .group-\[\.toaster\]\:border-border{border-color:hsl(var(--border))}.group.toast .group-\[\.toast\]\:bg-muted{background-color:hsl(var(--muted))}.group.toast .group-\[\.toast\]\:bg-primary{background-color:hsl(var(--primary))}.group.toaster .group-\[\.toaster\]\:bg-background{background-color:hsl(var(--background))}.group.destructive .group-\[\.destructive\]\:text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.group.toast .group-\[\.toast\]\:text-muted-foreground{color:hsl(var(--muted-foreground))}.group.toast .group-\[\.toast\]\:text-primary-foreground{color:hsl(var(--primary-foreground))}.group.toaster .group-\[\.toaster\]\:text-foreground{color:hsl(var(--foreground))}.group.toaster .group-\[\.toaster\]\:shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group.destructive .group-\[\.destructive\]\:hover\:border-destructive\/30:hover{border-color:hsl(var(--destructive) / .3)}.group.destructive .group-\[\.destructive\]\:hover\:bg-destructive:hover{background-color:hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:hover\:text-destructive-foreground:hover{color:hsl(var(--destructive-foreground))}.group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover{--tw-text-opacity: 1;color:rgb(254 242 242 / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-destructive:focus{--tw-ring-color: hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:focus\:ring-red-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-red-600:focus{--tw-ring-offset-color: #dc2626}.peer\/menu-button:hover~.peer-hover\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.has-\[\[data-variant\=inset\]\]\:bg-sidebar:has([data-variant=inset]){background-color:hsl(var(--sidebar-background))}.has-\[\:disabled\]\:opacity-50:has(:disabled){opacity:.5}.group\/menu-item:has([data-sidebar=menu-action]) .group-has-\[\[data-sidebar\=menu-action\]\]\/menu-item\:pr-8{padding-right:2rem}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-selected\:bg-accent[aria-selected=true]{background-color:hsl(var(--accent))}.aria-selected\:bg-accent\/50[aria-selected=true]{background-color:hsl(var(--accent) / .5)}.aria-selected\:text-accent-foreground[aria-selected=true]{color:hsl(var(--accent-foreground))}.aria-selected\:text-muted-foreground[aria-selected=true]{color:hsl(var(--muted-foreground))}.aria-selected\:opacity-100[aria-selected=true]{opacity:1}.aria-selected\:opacity-30[aria-selected=true]{opacity:.3}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[panel-group-direction\=vertical\]\:h-px[data-panel-group-direction=vertical]{height:1px}.data-\[panel-group-direction\=vertical\]\:w-full[data-panel-group-direction=vertical]{width:100%}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:translate-x-5[data-state=checked]{--tw-translate-x: 1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked],.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x: var(--radix-toast-swipe-end-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x: var(--radix-toast-swipe-move-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:accordion-up .2s ease-out}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:accordion-down .2s ease-out}.data-\[panel-group-direction\=vertical\]\:flex-col[data-panel-group-direction=vertical]{flex-direction:column}.data-\[active\=true\]\:bg-sidebar-accent[data-active=true]{background-color:hsl(var(--sidebar-accent))}.data-\[active\]\:bg-accent\/50[data-active]{background-color:hsl(var(--accent) / .5)}.data-\[selected\=\'true\'\]\:bg-accent[data-selected=true]{background-color:hsl(var(--accent))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=active\]\:bg-primary[data-state=active],.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=on\]\:bg-accent[data-state=on],.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:hsl(var(--accent) / .5)}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:hsl(var(--secondary))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[active\=true\]\:font-medium[data-active=true]{font-weight:500}.data-\[active\=true\]\:text-sidebar-accent-foreground[data-active=true]{color:hsl(var(--sidebar-accent-foreground))}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:hsl(var(--accent-foreground))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=active\]\:text-primary-foreground[data-state=active],.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}.data-\[state\=on\]\:text-accent-foreground[data-state=on],.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:hsl(var(--accent-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}.data-\[state\=closed\]\:duration-300[data-state=closed]{transition-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{transition-duration:.5s}.data-\[motion\^\=from-\]\:animate-in[data-motion^=from-],.data-\[state\=open\]\:animate-in[data-state=open],.data-\[state\=visible\]\:animate-in[data-state=visible]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[motion\^\=to-\]\:animate-out[data-motion^=to-],.data-\[state\=closed\]\:animate-out[data-state=closed],.data-\[state\=hidden\]\:animate-out[data-state=hidden],.data-\[swipe\=end\]\:animate-out[data-swipe=end]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[motion\^\=from-\]\:fade-in[data-motion^=from-]{--tw-enter-opacity: 0}.data-\[motion\^\=to-\]\:fade-out[data-motion^=to-],.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\[state\=closed\]\:fade-out-80[data-state=closed]{--tw-exit-opacity: .8}.data-\[state\=hidden\]\:fade-out[data-state=hidden]{--tw-exit-opacity: 0}.data-\[state\=open\]\:fade-in-0[data-state=open],.data-\[state\=visible\]\:fade-in[data-state=visible]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-90[data-state=open]{--tw-enter-scale: .9}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[motion\=from-end\]\:slide-in-from-right-52[data-motion=from-end]{--tw-enter-translate-x: 13rem}.data-\[motion\=from-start\]\:slide-in-from-left-52[data-motion=from-start]{--tw-enter-translate-x: -13rem}.data-\[motion\=to-end\]\:slide-out-to-right-52[data-motion=to-end]{--tw-exit-translate-x: 13rem}.data-\[motion\=to-start\]\:slide-out-to-left-52[data-motion=to-start]{--tw-exit-translate-x: -13rem}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y: 100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x: -100%}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50%}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed],.data-\[state\=closed\]\:slide-out-to-right-full[data-state=closed]{--tw-exit-translate-x: 100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y: -100%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y: 100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x: -100%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x: 100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y: -100%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-top-full[data-state=open]{--tw-enter-translate-y: -100%}.data-\[state\=closed\]\:duration-300[data-state=closed]{animation-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{animation-duration:.5s}.data-\[panel-group-direction\=vertical\]\:after\:left-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);left:0}.data-\[panel-group-direction\=vertical\]\:after\:h-1[data-panel-group-direction=vertical]:after{content:var(--tw-content);height:.25rem}.data-\[panel-group-direction\=vertical\]\:after\:w-full[data-panel-group-direction=vertical]:after{content:var(--tw-content);width:100%}.data-\[panel-group-direction\=vertical\]\:after\:-translate-y-1\/2[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[panel-group-direction\=vertical\]\:after\:translate-x-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=open\]\:hover\:bg-sidebar-accent:hover[data-state=open]{background-color:hsl(var(--sidebar-accent))}.data-\[state\=open\]\:hover\:text-sidebar-accent-foreground:hover[data-state=open]{color:hsl(var(--sidebar-accent-foreground))}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\]{left:calc(var(--sidebar-width) * -1)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\]{right:calc(var(--sidebar-width) * -1)}.group[data-side=left] .group-data-\[side\=left\]\:-right-4{right:-1rem}.group[data-side=right] .group-data-\[side\=right\]\:left-0{left:0}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:-mt-8{margin-top:-2rem}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:hidden{display:none}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!size-8{width:2rem!important;height:2rem!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[--sidebar-width-icon\]{width:var(--sidebar-width-icon)}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)\)\]{width:calc(var(--sidebar-width-icon) + 1rem)}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)_\+2px\)\]{width:calc(var(--sidebar-width-icon) + 1rem + 2px)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:w-0{width:0px}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-side=right] .group-data-\[side\=right\]\:rotate-180,.group[data-state=open] .group-data-\[state\=open\]\:rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:overflow-hidden{overflow:hidden}.group[data-variant=floating] .group-data-\[variant\=floating\]\:rounded-lg{border-radius:var(--radius)}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border{border-width:1px}.group[data-side=left] .group-data-\[side\=left\]\:border-r{border-right-width:1px}.group[data-side=right] .group-data-\[side\=right\]\:border-l{border-left-width:1px}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border-sidebar-border{border-color:hsl(var(--sidebar-border))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!p-0{padding:0!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!p-2{padding:.5rem!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:opacity-0{opacity:0}.group[data-variant=floating] .group-data-\[variant\=floating\]\:shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:after\:left-full:after{content:var(--tw-content);left:100%}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:hover\:bg-sidebar:hover{background-color:hsl(var(--sidebar-background))}.peer\/menu-button[data-size=default]~.peer-data-\[size\=default\]\/menu-button\:top-1\.5{top:.375rem}.peer\/menu-button[data-size=lg]~.peer-data-\[size\=lg\]\/menu-button\:top-2\.5{top:.625rem}.peer\/menu-button[data-size=sm]~.peer-data-\[size\=sm\]\/menu-button\:top-1{top:.25rem}.peer[data-variant=inset]~.peer-data-\[variant\=inset\]\:min-h-\[calc\(100svh-theme\(spacing\.4\)\)\]{min-height:calc(100svh - 1rem)}.peer\/menu-button[data-active=true]~.peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}.dark\:border-destructive:is(.dark *){border-color:hsl(var(--destructive))}.dark\:border-gray-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:text-amber-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.dark\:text-gray-300:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.dark\:text-orange-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.dark\:hover\:text-gray-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.group:hover .dark\:group-hover\:text-amber-300:is(.dark *){--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity, 1))}.group:hover .dark\:group-hover\:text-orange-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity, 1))}@media(min-width:640px){.sm\:-left-8{left:-2rem}.sm\:-right-8{right:-2rem}.sm\:bottom-0{bottom:0}.sm\:right-0{right:0}.sm\:right-4{right:1rem}.sm\:top-4{top:1rem}.sm\:top-auto{top:auto}.sm\:order-1{order:1}.sm\:order-3{order:3}.sm\:col-span-2{grid-column:span 2 / span 2}.sm\:mx-0{margin-left:0;margin-right:0}.sm\:mb-2{margin-bottom:.5rem}.sm\:mb-3{margin-bottom:.75rem}.sm\:mb-4{margin-bottom:1rem}.sm\:mt-0{margin-top:0}.sm\:mt-4{margin-top:1rem}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:h-12{height:3rem}.sm\:h-4{height:1rem}.sm\:h-5{height:1.25rem}.sm\:h-6{height:1.5rem}.sm\:h-8{height:2rem}.sm\:w-4{width:1rem}.sm\:w-5{width:1.25rem}.sm\:w-6{width:1.5rem}.sm\:w-8{width:2rem}.sm\:w-\[400px\]{width:400px}.sm\:w-auto{width:auto}.sm\:min-w-\[160px\]{min-width:160px}.sm\:max-w-2xl{max-width:42rem}.sm\:max-w-sm{max-width:24rem}.sm\:basis-1\/2{flex-basis:50%}.sm\:basis-full{flex-basis:100%}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:flex-wrap{flex-wrap:wrap}.sm\:items-start{align-items:flex-start}.sm\:items-center{align-items:center}.sm\:justify-start{justify-content:flex-start}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2{gap:.5rem}.sm\:gap-2\.5{gap:.625rem}.sm\:gap-3{gap:.75rem}.sm\:gap-4{gap:1rem}.sm\:gap-6{gap:1.5rem}.sm\:gap-8{gap:2rem}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.sm\:space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:p-0{padding:0}.sm\:p-1{padding:.25rem}.sm\:p-10{padding:2.5rem}.sm\:p-3{padding:.75rem}.sm\:p-4{padding:1rem}.sm\:p-6{padding:1.5rem}.sm\:p-8{padding:2rem}.sm\:px-0{padding-left:0;padding-right:0}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pr-12{padding-right:3rem}.sm\:pr-8{padding-right:2rem}.sm\:text-left{text-align:left}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-5xl{font-size:3rem;line-height:1}.sm\:text-6xl{font-size:3.75rem;line-height:1}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}.sm\:text-xs{font-size:.75rem;line-height:1rem}.data-\[state\=open\]\:sm\:slide-in-from-bottom-full[data-state=open]{--tw-enter-translate-y: 100%}}@media(min-width:768px){.md\:absolute{position:absolute}.md\:-ml-4{margin-left:-1rem}.md\:mb-0{margin-bottom:0}.md\:mb-10{margin-bottom:2.5rem}.md\:mb-12{margin-bottom:3rem}.md\:mb-14{margin-bottom:3.5rem}.md\:mb-16{margin-bottom:4rem}.md\:mb-3{margin-bottom:.75rem}.md\:mb-4{margin-bottom:1rem}.md\:mb-6{margin-bottom:1.5rem}.md\:mb-8{margin-bottom:2rem}.md\:mt-12{margin-top:3rem}.md\:mt-16{margin-top:4rem}.md\:block{display:block}.md\:flex{display:flex}.md\:h-14{height:3.5rem}.md\:h-7{height:1.75rem}.md\:w-14{width:3.5rem}.md\:w-2\/5{width:40%}.md\:w-3\/5{width:60%}.md\:w-7{width:1.75rem}.md\:w-\[var\(--radix-navigation-menu-viewport-width\)\]{width:var(--radix-navigation-menu-viewport-width)}.md\:w-auto{width:auto}.md\:max-w-\[420px\]{max-width:420px}.md\:flex-shrink-0{flex-shrink:0}.md\:basis-1\/2{flex-basis:50%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}.md\:gap-4{gap:1rem}.md\:gap-6{gap:1.5rem}.md\:gap-8{gap:2rem}.md\:space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(3rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3rem * var(--tw-space-y-reverse))}.md\:p-12{padding:3rem}.md\:p-16{padding:4rem}.md\:p-8{padding:2rem}.md\:px-8{padding-left:2rem;padding-right:2rem}.md\:py-16{padding-top:4rem;padding-bottom:4rem}.md\:py-20{padding-top:5rem;padding-bottom:5rem}.md\:py-24{padding-top:6rem;padding-bottom:6rem}.md\:py-4{padding-top:1rem;padding-bottom:1rem}.md\:pb-20{padding-bottom:5rem}.md\:pb-24{padding-bottom:6rem}.md\:pb-32{padding-bottom:8rem}.md\:pl-4{padding-left:1rem}.md\:pt-28{padding-top:7rem}.md\:pt-40{padding-top:10rem}.md\:pt-48{padding-top:12rem}.md\:pt-56{padding-top:14rem}.md\:pt-8{padding-top:2rem}.md\:text-left{text-align:left}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-6xl{font-size:3.75rem;line-height:1}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}.md\:opacity-0{opacity:0}.after\:md\:hidden:after{content:var(--tw-content);display:none}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:m-2{margin:.5rem}.peer[data-state=collapsed][data-variant=inset]~.md\:peer-data-\[state\=collapsed\]\:peer-data-\[variant\=inset\]\:ml-2{margin-left:.5rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:ml-0{margin-left:0}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:rounded-xl{border-radius:.75rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}}@media(min-width:1024px){.lg\:order-1{order:1}.lg\:order-2{order:2}.lg\:col-span-1{grid-column:span 1 / span 1}.lg\:col-span-6{grid-column:span 6 / span 6}.lg\:mx-0{margin-left:0;margin-right:0}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:grid{display:grid}.lg\:hidden{display:none}.lg\:max-w-4xl{max-width:56rem}.lg\:max-w-none{max-width:none}.lg\:basis-1\/3{flex-basis:33.333333%}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:items-center{align-items:center}.lg\:justify-start{justify-content:flex-start}.lg\:justify-end{justify-content:flex-end}.lg\:gap-12{gap:3rem}.lg\:gap-16{gap:4rem}.lg\:gap-20{gap:5rem}.lg\:justify-self-auto{justify-self:auto}.lg\:rounded-2xl{border-radius:1rem}.lg\:text-left{text-align:left}.lg\:text-5xl{font-size:3rem;line-height:1}.lg\:text-6xl{font-size:3.75rem;line-height:1}.lg\:text-7xl{font-size:4.5rem;line-height:1}}.\[\&\:has\(\[aria-selected\]\)\]\:bg-accent:has([aria-selected]){background-color:hsl(var(--accent))}.first\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-l-md:has([aria-selected]):first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.last\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-r-md:has([aria-selected]):last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[aria-selected\]\.day-outside\)\]\:bg-accent\/50:has([aria-selected].day-outside){background-color:hsl(var(--accent) / .5)}.\[\&\:has\(\[aria-selected\]\.day-range-end\)\]\:rounded-r-md:has([aria-selected].day-range-end){border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>span\:last-child\]\:truncate>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y: -3px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:left-4>svg{left:1rem}.\[\&\>svg\]\:top-4>svg{top:1rem}.\[\&\>svg\]\:size-3\.5>svg{width:.875rem;height:.875rem}.\[\&\>svg\]\:size-4>svg{width:1rem;height:1rem}.\[\&\>svg\]\:h-2\.5>svg{height:.625rem}.\[\&\>svg\]\:h-3>svg{height:.75rem}.\[\&\>svg\]\:w-2\.5>svg{width:.625rem}.\[\&\>svg\]\:w-3>svg{width:.75rem}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:text-destructive>svg{color:hsl(var(--destructive))}.\[\&\>svg\]\:text-foreground>svg{color:hsl(var(--foreground))}.\[\&\>svg\]\:text-muted-foreground>svg{color:hsl(var(--muted-foreground))}.\[\&\>svg\]\:text-sidebar-accent-foreground>svg{color:hsl(var(--sidebar-accent-foreground))}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:1.75rem}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0px}.\[\&\[data-panel-group-direction\=vertical\]\>div\]\:rotate-90[data-panel-group-direction=vertical]>div{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:hsl(var(--muted-foreground))}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke="#ccc"]{stroke:hsl(var(--border) / .5)}.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:hsl(var(--border))}.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-layer\]\:outline-none .recharts-layer{outline:2px solid transparent;outline-offset:2px}.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector,.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:hsl(var(--muted))}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-sector\]\:outline-none .recharts-sector,.\[\&_\.recharts-surface\]\:outline-none .recharts-surface{outline:2px solid transparent;outline-offset:2px}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-top:.75rem;padding-bottom:.75rem}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:1.25rem}.\[\&_p\]\:leading-relaxed p{line-height:1.625}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{right:-.5rem}[data-side=left][data-state=collapsed] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize{cursor:e-resize}[data-side=left] .\[\[data-side\=left\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-side=right][data-collapsible=offcanvas] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2{left:-.5rem}[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-side=right] .\[\[data-side\=right\]_\&\]\:cursor-e-resize{cursor:e-resize} diff --git a/docs/assets/accordion.DUa7MtCh.js b/docs/assets/accordion.Dl6n-tLy.js similarity index 82% rename from docs/assets/accordion.DUa7MtCh.js rename to docs/assets/accordion.Dl6n-tLy.js index 1ac2a6da..3d57e10d 100644 --- a/docs/assets/accordion.DUa7MtCh.js +++ b/docs/assets/accordion.Dl6n-tLy.js @@ -1 +1 @@ -import{j as a}from"./jsx-runtime.D3GSbgeI.js";import{r as d,R as f}from"./index.BaMLtrTp.js";import{c as K,f as T,d as F,b as z,P as pe,u as ue,a as fe,e as me}from"./index.vFQDSFae.js";import{u as B,a as k}from"./utils.XhT4HDO9.js";import{P as I}from"./index.BlsO67so.js";import{C as ve}from"./chevron-down.B6Si1q7U.js";var _="Collapsible",[Ce,U]=K(_),[xe,M]=Ce(_),q=d.forwardRef((e,r)=>{const{__scopeCollapsible:o,open:t,defaultOpen:s,disabled:n,onOpenChange:c,...l}=e,[p,u]=T({prop:t,defaultProp:s??!1,onChange:c,caller:_});return a.jsx(xe,{scope:o,disabled:n,contentId:F(),open:p,onOpenToggle:d.useCallback(()=>u(m=>!m),[u]),children:a.jsx(I.div,{"data-state":V(p),"data-disabled":n?"":void 0,...l,ref:r})})});q.displayName=_;var Y="CollapsibleTrigger",J=d.forwardRef((e,r)=>{const{__scopeCollapsible:o,...t}=e,s=M(Y,o);return a.jsx(I.button,{type:"button","aria-controls":s.contentId,"aria-expanded":s.open||!1,"data-state":V(s.open),"data-disabled":s.disabled?"":void 0,disabled:s.disabled,...t,ref:r,onClick:z(e.onClick,s.onOpenToggle)})});J.displayName=Y;var $="CollapsibleContent",Q=d.forwardRef((e,r)=>{const{forceMount:o,...t}=e,s=M($,e.__scopeCollapsible);return a.jsx(pe,{present:o||s.open,children:({present:n})=>a.jsx(be,{...t,ref:r,present:n})})});Q.displayName=$;var be=d.forwardRef((e,r)=>{const{__scopeCollapsible:o,present:t,children:s,...n}=e,c=M($,o),[l,p]=d.useState(t),u=d.useRef(null),m=B(r,u),v=d.useRef(0),h=v.current,x=d.useRef(0),w=x.current,b=c.open||l,g=d.useRef(b),A=d.useRef(void 0);return d.useEffect(()=>{const i=requestAnimationFrame(()=>g.current=!1);return()=>cancelAnimationFrame(i)},[]),ue(()=>{const i=u.current;if(i){A.current=A.current||{transitionDuration:i.style.transitionDuration,animationName:i.style.animationName},i.style.transitionDuration="0s",i.style.animationName="none";const R=i.getBoundingClientRect();v.current=R.height,x.current=R.width,g.current||(i.style.transitionDuration=A.current.transitionDuration,i.style.animationName=A.current.animationName),p(t)}},[c.open,t]),a.jsx(I.div,{"data-state":V(c.open),"data-disabled":c.disabled?"":void 0,id:c.contentId,hidden:!b,...n,ref:m,style:{"--radix-collapsible-content-height":h?`${h}px`:void 0,"--radix-collapsible-content-width":w?`${w}px`:void 0,...e.style},children:b&&s})});function V(e){return e?"open":"closed"}var ge=q,Ae=J,he=Q,C="Accordion",Re=["Home","End","ArrowDown","ArrowUp","ArrowLeft","ArrowRight"],[H,Ie,we]=fe(C),[y]=K(C,[we,U]),L=U(),W=f.forwardRef((e,r)=>{const{type:o,...t}=e,s=t,n=t;return a.jsx(H.Provider,{scope:e.__scopeAccordion,children:o==="multiple"?a.jsx(Pe,{...n,ref:r}):a.jsx(ye,{...s,ref:r})})});W.displayName=C;var[X,Ne]=y(C),[Z,_e]=y(C,{collapsible:!1}),ye=f.forwardRef((e,r)=>{const{value:o,defaultValue:t,onValueChange:s=()=>{},collapsible:n=!1,...c}=e,[l,p]=T({prop:o,defaultProp:t??"",onChange:s,caller:C});return a.jsx(X,{scope:e.__scopeAccordion,value:f.useMemo(()=>l?[l]:[],[l]),onItemOpen:p,onItemClose:f.useCallback(()=>n&&p(""),[n,p]),children:a.jsx(Z,{scope:e.__scopeAccordion,collapsible:n,children:a.jsx(ee,{...c,ref:r})})})}),Pe=f.forwardRef((e,r)=>{const{value:o,defaultValue:t,onValueChange:s=()=>{},...n}=e,[c,l]=T({prop:o,defaultProp:t??[],onChange:s,caller:C}),p=f.useCallback(m=>l((v=[])=>[...v,m]),[l]),u=f.useCallback(m=>l((v=[])=>v.filter(h=>h!==m)),[l]);return a.jsx(X,{scope:e.__scopeAccordion,value:c,onItemOpen:p,onItemClose:u,children:a.jsx(Z,{scope:e.__scopeAccordion,collapsible:!0,children:a.jsx(ee,{...n,ref:r})})})}),[je,P]=y(C),ee=f.forwardRef((e,r)=>{const{__scopeAccordion:o,disabled:t,dir:s,orientation:n="vertical",...c}=e,l=f.useRef(null),p=B(l,r),u=Ie(o),v=me(s)==="ltr",h=z(e.onKeyDown,x=>{if(!Re.includes(x.key))return;const w=x.target,b=u().filter(S=>!S.ref.current?.disabled),g=b.findIndex(S=>S.ref.current===w),A=b.length;if(g===-1)return;x.preventDefault();let i=g;const R=0,j=A-1,E=()=>{i=g+1,i>j&&(i=R)},O=()=>{i=g-1,i{const{__scopeAccordion:o,value:t,...s}=e,n=P(N,o),c=Ne(N,o),l=L(o),p=F(),u=t&&c.value.includes(t)||!1,m=n.disabled||e.disabled;return a.jsx(Ee,{scope:o,open:u,disabled:m,triggerId:p,children:a.jsx(ge,{"data-orientation":n.orientation,"data-state":ce(u),...l,...s,ref:r,disabled:m,open:u,onOpenChange:v=>{v?c.onItemOpen(t):c.onItemClose(t)}})})});oe.displayName=N;var te="AccordionHeader",ne=f.forwardRef((e,r)=>{const{__scopeAccordion:o,...t}=e,s=P(C,o),n=G(te,o);return a.jsx(I.h3,{"data-orientation":s.orientation,"data-state":ce(n.open),"data-disabled":n.disabled?"":void 0,...t,ref:r})});ne.displayName=te;var D="AccordionTrigger",re=f.forwardRef((e,r)=>{const{__scopeAccordion:o,...t}=e,s=P(C,o),n=G(D,o),c=_e(D,o),l=L(o);return a.jsx(H.ItemSlot,{scope:o,children:a.jsx(Ae,{"aria-disabled":n.open&&!c.collapsible||void 0,"data-orientation":s.orientation,id:n.triggerId,...l,...t,ref:r})})});re.displayName=D;var ae="AccordionContent",se=f.forwardRef((e,r)=>{const{__scopeAccordion:o,...t}=e,s=P(C,o),n=G(ae,o),c=L(o);return a.jsx(he,{role:"region","aria-labelledby":n.triggerId,"data-orientation":s.orientation,...c,...t,ref:r,style:{"--radix-accordion-content-height":"var(--radix-collapsible-content-height)","--radix-accordion-content-width":"var(--radix-collapsible-content-width)",...e.style}})});se.displayName=ae;function ce(e){return e?"open":"closed"}var Oe=W,Se=oe,De=ne,ie=re,le=se;const Fe=Oe,Te=d.forwardRef(({className:e,...r},o)=>a.jsx(Se,{ref:o,className:k("border-b",e),...r}));Te.displayName="AccordionItem";const ke=d.forwardRef(({className:e,children:r,...o},t)=>a.jsx(De,{className:"flex",children:a.jsxs(ie,{ref:t,className:k("flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",e),...o,children:[r,a.jsx(ve,{className:"h-4 w-4 shrink-0 transition-transform duration-200"})]})}));ke.displayName=ie.displayName;const Me=d.forwardRef(({className:e,children:r,...o},t)=>a.jsx(le,{ref:t,className:"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",...o,children:a.jsx("div",{className:k("pb-4 pt-0",e),children:r})}));Me.displayName=le.displayName;export{Fe as A,Te as a,ke as b,Me as c}; +import{j as a}from"./jsx-runtime.D3GSbgeI.js";import{r as d,a as f}from"./index.D_oLZvzW.js";import{c as K,f as T,d as F,b as z,P as pe,u as ue,a as fe,e as me}from"./index.DO6kBsrn.js";import{u as B,a as k}from"./utils.9Q5QEYED.js";import{P as R}from"./index.5q9h5iS_.js";import{C as ve}from"./chevron-down.BAQmmeQZ.js";var _="Collapsible",[Ce,U]=K(_),[xe,M]=Ce(_),q=d.forwardRef((e,r)=>{const{__scopeCollapsible:o,open:t,defaultOpen:s,disabled:n,onOpenChange:c,...l}=e,[p,u]=T({prop:t,defaultProp:s??!1,onChange:c,caller:_});return a.jsx(xe,{scope:o,disabled:n,contentId:F(),open:p,onOpenToggle:d.useCallback(()=>u(m=>!m),[u]),children:a.jsx(R.div,{"data-state":V(p),"data-disabled":n?"":void 0,...l,ref:r})})});q.displayName=_;var Y="CollapsibleTrigger",J=d.forwardRef((e,r)=>{const{__scopeCollapsible:o,...t}=e,s=M(Y,o);return a.jsx(R.button,{type:"button","aria-controls":s.contentId,"aria-expanded":s.open||!1,"data-state":V(s.open),"data-disabled":s.disabled?"":void 0,disabled:s.disabled,...t,ref:r,onClick:z(e.onClick,s.onOpenToggle)})});J.displayName=Y;var $="CollapsibleContent",Q=d.forwardRef((e,r)=>{const{forceMount:o,...t}=e,s=M($,e.__scopeCollapsible);return a.jsx(pe,{present:o||s.open,children:({present:n})=>a.jsx(be,{...t,ref:r,present:n})})});Q.displayName=$;var be=d.forwardRef((e,r)=>{const{__scopeCollapsible:o,present:t,children:s,...n}=e,c=M($,o),[l,p]=d.useState(t),u=d.useRef(null),m=B(r,u),v=d.useRef(0),h=v.current,x=d.useRef(0),w=x.current,b=c.open||l,g=d.useRef(b),A=d.useRef(void 0);return d.useEffect(()=>{const i=requestAnimationFrame(()=>g.current=!1);return()=>cancelAnimationFrame(i)},[]),ue(()=>{const i=u.current;if(i){A.current=A.current||{transitionDuration:i.style.transitionDuration,animationName:i.style.animationName},i.style.transitionDuration="0s",i.style.animationName="none";const I=i.getBoundingClientRect();v.current=I.height,x.current=I.width,g.current||(i.style.transitionDuration=A.current.transitionDuration,i.style.animationName=A.current.animationName),p(t)}},[c.open,t]),a.jsx(R.div,{"data-state":V(c.open),"data-disabled":c.disabled?"":void 0,id:c.contentId,hidden:!b,...n,ref:m,style:{"--radix-collapsible-content-height":h?`${h}px`:void 0,"--radix-collapsible-content-width":w?`${w}px`:void 0,...e.style},children:b&&s})});function V(e){return e?"open":"closed"}var ge=q,Ae=J,he=Q,C="Accordion",Ie=["Home","End","ArrowDown","ArrowUp","ArrowLeft","ArrowRight"],[H,Re,we]=fe(C),[y]=K(C,[we,U]),L=U(),W=f.forwardRef((e,r)=>{const{type:o,...t}=e,s=t,n=t;return a.jsx(H.Provider,{scope:e.__scopeAccordion,children:o==="multiple"?a.jsx(Pe,{...n,ref:r}):a.jsx(ye,{...s,ref:r})})});W.displayName=C;var[X,Ne]=y(C),[Z,_e]=y(C,{collapsible:!1}),ye=f.forwardRef((e,r)=>{const{value:o,defaultValue:t,onValueChange:s=()=>{},collapsible:n=!1,...c}=e,[l,p]=T({prop:o,defaultProp:t??"",onChange:s,caller:C});return a.jsx(X,{scope:e.__scopeAccordion,value:f.useMemo(()=>l?[l]:[],[l]),onItemOpen:p,onItemClose:f.useCallback(()=>n&&p(""),[n,p]),children:a.jsx(Z,{scope:e.__scopeAccordion,collapsible:n,children:a.jsx(ee,{...c,ref:r})})})}),Pe=f.forwardRef((e,r)=>{const{value:o,defaultValue:t,onValueChange:s=()=>{},...n}=e,[c,l]=T({prop:o,defaultProp:t??[],onChange:s,caller:C}),p=f.useCallback(m=>l((v=[])=>[...v,m]),[l]),u=f.useCallback(m=>l((v=[])=>v.filter(h=>h!==m)),[l]);return a.jsx(X,{scope:e.__scopeAccordion,value:c,onItemOpen:p,onItemClose:u,children:a.jsx(Z,{scope:e.__scopeAccordion,collapsible:!0,children:a.jsx(ee,{...n,ref:r})})})}),[je,P]=y(C),ee=f.forwardRef((e,r)=>{const{__scopeAccordion:o,disabled:t,dir:s,orientation:n="vertical",...c}=e,l=f.useRef(null),p=B(l,r),u=Re(o),v=me(s)==="ltr",h=z(e.onKeyDown,x=>{if(!Ie.includes(x.key))return;const w=x.target,b=u().filter(S=>!S.ref.current?.disabled),g=b.findIndex(S=>S.ref.current===w),A=b.length;if(g===-1)return;x.preventDefault();let i=g;const I=0,j=A-1,E=()=>{i=g+1,i>j&&(i=I)},O=()=>{i=g-1,i{const{__scopeAccordion:o,value:t,...s}=e,n=P(N,o),c=Ne(N,o),l=L(o),p=F(),u=t&&c.value.includes(t)||!1,m=n.disabled||e.disabled;return a.jsx(Ee,{scope:o,open:u,disabled:m,triggerId:p,children:a.jsx(ge,{"data-orientation":n.orientation,"data-state":ce(u),...l,...s,ref:r,disabled:m,open:u,onOpenChange:v=>{v?c.onItemOpen(t):c.onItemClose(t)}})})});oe.displayName=N;var te="AccordionHeader",ne=f.forwardRef((e,r)=>{const{__scopeAccordion:o,...t}=e,s=P(C,o),n=G(te,o);return a.jsx(R.h3,{"data-orientation":s.orientation,"data-state":ce(n.open),"data-disabled":n.disabled?"":void 0,...t,ref:r})});ne.displayName=te;var D="AccordionTrigger",re=f.forwardRef((e,r)=>{const{__scopeAccordion:o,...t}=e,s=P(C,o),n=G(D,o),c=_e(D,o),l=L(o);return a.jsx(H.ItemSlot,{scope:o,children:a.jsx(Ae,{"aria-disabled":n.open&&!c.collapsible||void 0,"data-orientation":s.orientation,id:n.triggerId,...l,...t,ref:r})})});re.displayName=D;var ae="AccordionContent",se=f.forwardRef((e,r)=>{const{__scopeAccordion:o,...t}=e,s=P(C,o),n=G(ae,o),c=L(o);return a.jsx(he,{role:"region","aria-labelledby":n.triggerId,"data-orientation":s.orientation,...c,...t,ref:r,style:{"--radix-accordion-content-height":"var(--radix-collapsible-content-height)","--radix-accordion-content-width":"var(--radix-collapsible-content-width)",...e.style}})});se.displayName=ae;function ce(e){return e?"open":"closed"}var Oe=W,Se=oe,De=ne,ie=re,le=se;const Fe=Oe,Te=d.forwardRef(({className:e,...r},o)=>a.jsx(Se,{ref:o,className:k("border-b",e),...r}));Te.displayName="AccordionItem";const ke=d.forwardRef(({className:e,children:r,...o},t)=>a.jsx(De,{className:"flex",children:a.jsxs(ie,{ref:t,className:k("flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",e),...o,children:[r,a.jsx(ve,{className:"h-4 w-4 shrink-0 transition-transform duration-200"})]})}));ke.displayName=ie.displayName;const Me=d.forwardRef(({className:e,children:r,...o},t)=>a.jsx(le,{ref:t,className:"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",...o,children:a.jsx("div",{className:k("pb-4 pt-0",e),children:r})}));Me.displayName=le.displayName;export{Fe as A,Te as a,ke as b,Me as c}; diff --git a/docs/assets/arrow-right.B_EnXtAw.js b/docs/assets/arrow-right.DSKvTJYC.js similarity index 84% rename from docs/assets/arrow-right.B_EnXtAw.js rename to docs/assets/arrow-right.DSKvTJYC.js index 17bffd00..26ecf04c 100644 --- a/docs/assets/arrow-right.B_EnXtAw.js +++ b/docs/assets/arrow-right.DSKvTJYC.js @@ -1,4 +1,4 @@ -import{c as r}from"./createLucideIcon.CJ67VFfW.js";/** +import{c as r}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/book-open.BcQsGvDd.js b/docs/assets/book-open.DUQscRpC.js similarity index 87% rename from docs/assets/book-open.BcQsGvDd.js rename to docs/assets/book-open.DUQscRpC.js index 7df1195f..ab83c603 100644 --- a/docs/assets/book-open.BcQsGvDd.js +++ b/docs/assets/book-open.DUQscRpC.js @@ -1,4 +1,4 @@ -import{c as a}from"./createLucideIcon.CJ67VFfW.js";/** +import{c as a}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/briefcase.DXgbkgD4.js b/docs/assets/briefcase.BgtLLFHo.js similarity index 86% rename from docs/assets/briefcase.DXgbkgD4.js rename to docs/assets/briefcase.BgtLLFHo.js index 442cd45b..cf42a123 100644 --- a/docs/assets/briefcase.DXgbkgD4.js +++ b/docs/assets/briefcase.BgtLLFHo.js @@ -1,4 +1,4 @@ -import{c as e}from"./createLucideIcon.CJ67VFfW.js";/** +import{c as e}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/button.nz_ACiet.js b/docs/assets/button.D-OtCHTj.js similarity index 94% rename from docs/assets/button.nz_ACiet.js rename to docs/assets/button.D-OtCHTj.js index 7eae693e..57a04363 100644 --- a/docs/assets/button.nz_ACiet.js +++ b/docs/assets/button.D-OtCHTj.js @@ -1 +1 @@ -import{j as y}from"./jsx-runtime.D3GSbgeI.js";import{r as V}from"./index.BaMLtrTp.js";import{e as w,S as N,a as j}from"./utils.XhT4HDO9.js";const f=r=>typeof r=="boolean"?`${r}`:r===0?"0":r,g=w,k=(r,n)=>e=>{var i;if(n?.variants==null)return g(r,e?.class,e?.className);const{variants:l,defaultVariants:o}=n,u=Object.keys(l).map(t=>{const s=e?.[t],d=o?.[t];if(s===null)return null;const a=f(s)||f(d);return l[t][a]}),v=e&&Object.entries(e).reduce((t,s)=>{let[d,a]=s;return a===void 0||(t[d]=a),t},{}),m=n==null||(i=n.compoundVariants)===null||i===void 0?void 0:i.reduce((t,s)=>{let{class:d,className:a,...h}=s;return Object.entries(h).every(x=>{let[b,c]=x;return Array.isArray(c)?c.includes({...o,...v}[b]):{...o,...v}[b]===c})?[...t,d,a]:t},[]);return g(r,u,m,e?.class,e?.className)},C=k("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-lg text-sm font-medium transition-smooth focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90 shadow-elegant",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-dc-border bg-background hover:bg-dc-surface hover:text-foreground hover:border-primary/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-dc-surface hover:text-foreground",link:"text-primary underline-offset-4 hover:underline",hero:"bg-blue-600 text-white hover:bg-blue-500 shadow-lg hover:shadow-xl font-semibold",subtle:"bg-dc-surface text-foreground hover:bg-dc-border border border-dc-border/50"},size:{default:"h-11 px-6 py-3",sm:"h-9 rounded-lg px-4",lg:"h-14 rounded-lg px-10 text-base",icon:"h-11 w-11"}},defaultVariants:{variant:"default",size:"default"}}),_=V.forwardRef(({className:r,variant:n,size:e,asChild:i=!1,...l},o)=>{const u=i?N:"button";return y.jsx(u,{className:j(C({variant:n,size:e,className:r})),ref:o,...l})});_.displayName="Button";export{_ as B,k as c}; +import{j as y}from"./jsx-runtime.D3GSbgeI.js";import{r as V}from"./index.D_oLZvzW.js";import{d as w,S as N,a as j}from"./utils.9Q5QEYED.js";const f=r=>typeof r=="boolean"?`${r}`:r===0?"0":r,g=w,k=(r,n)=>e=>{var i;if(n?.variants==null)return g(r,e?.class,e?.className);const{variants:l,defaultVariants:o}=n,u=Object.keys(l).map(t=>{const s=e?.[t],d=o?.[t];if(s===null)return null;const a=f(s)||f(d);return l[t][a]}),v=e&&Object.entries(e).reduce((t,s)=>{let[d,a]=s;return a===void 0||(t[d]=a),t},{}),m=n==null||(i=n.compoundVariants)===null||i===void 0?void 0:i.reduce((t,s)=>{let{class:d,className:a,...h}=s;return Object.entries(h).every(x=>{let[b,c]=x;return Array.isArray(c)?c.includes({...o,...v}[b]):{...o,...v}[b]===c})?[...t,d,a]:t},[]);return g(r,u,m,e?.class,e?.className)},C=k("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-lg text-sm font-medium transition-smooth focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90 shadow-elegant",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-dc-border bg-background hover:bg-dc-surface hover:text-foreground hover:border-primary/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-dc-surface hover:text-foreground",link:"text-primary underline-offset-4 hover:underline",hero:"bg-blue-600 text-white hover:bg-blue-500 shadow-lg hover:shadow-xl font-semibold",subtle:"bg-dc-surface text-foreground hover:bg-dc-border border border-dc-border/50"},size:{default:"h-11 px-6 py-3",sm:"h-9 rounded-lg px-4",lg:"h-14 rounded-lg px-10 text-base",icon:"h-11 w-11"}},defaultVariants:{variant:"default",size:"default"}}),_=V.forwardRef(({className:r,variant:n,size:e,asChild:i=!1,...l},o)=>{const u=i?N:"button";return y.jsx(u,{className:j(C({variant:n,size:e,className:r})),ref:o,...l})});_.displayName="Button";export{_ as B,k as c}; diff --git a/docs/assets/card.BQ_O-TaV.js b/docs/assets/card.tb19JS-_.js similarity index 93% rename from docs/assets/card.BQ_O-TaV.js rename to docs/assets/card.tb19JS-_.js index 4f48dc33..b7181f28 100644 --- a/docs/assets/card.BQ_O-TaV.js +++ b/docs/assets/card.tb19JS-_.js @@ -1 +1 @@ -import{j as s}from"./jsx-runtime.D3GSbgeI.js";import{r as d}from"./index.BaMLtrTp.js";import{a as t}from"./utils.XhT4HDO9.js";const o=d.forwardRef(({className:a,...e},r)=>s.jsx("div",{ref:r,className:t("rounded-lg border bg-card text-card-foreground shadow-sm",a),...e}));o.displayName="Card";const i=d.forwardRef(({className:a,...e},r)=>s.jsx("div",{ref:r,className:t("flex flex-col space-y-1.5 p-6",a),...e}));i.displayName="CardHeader";const m=d.forwardRef(({className:a,...e},r)=>s.jsx("h3",{ref:r,className:t("text-2xl font-semibold leading-none tracking-tight",a),...e}));m.displayName="CardTitle";const c=d.forwardRef(({className:a,...e},r)=>s.jsx("p",{ref:r,className:t("text-sm text-muted-foreground",a),...e}));c.displayName="CardDescription";const n=d.forwardRef(({className:a,...e},r)=>s.jsx("div",{ref:r,className:t("p-6 pt-0",a),...e}));n.displayName="CardContent";const l=d.forwardRef(({className:a,...e},r)=>s.jsx("div",{ref:r,className:t("flex items-center p-6 pt-0",a),...e}));l.displayName="CardFooter";export{o as C,i as a,m as b,n as c,c as d}; +import{j as s}from"./jsx-runtime.D3GSbgeI.js";import{r as d}from"./index.D_oLZvzW.js";import{a as t}from"./utils.9Q5QEYED.js";const o=d.forwardRef(({className:a,...e},r)=>s.jsx("div",{ref:r,className:t("rounded-lg border bg-card text-card-foreground shadow-sm",a),...e}));o.displayName="Card";const i=d.forwardRef(({className:a,...e},r)=>s.jsx("div",{ref:r,className:t("flex flex-col space-y-1.5 p-6",a),...e}));i.displayName="CardHeader";const m=d.forwardRef(({className:a,...e},r)=>s.jsx("h3",{ref:r,className:t("text-2xl font-semibold leading-none tracking-tight",a),...e}));m.displayName="CardTitle";const c=d.forwardRef(({className:a,...e},r)=>s.jsx("p",{ref:r,className:t("text-sm text-muted-foreground",a),...e}));c.displayName="CardDescription";const n=d.forwardRef(({className:a,...e},r)=>s.jsx("div",{ref:r,className:t("p-6 pt-0",a),...e}));n.displayName="CardContent";const l=d.forwardRef(({className:a,...e},r)=>s.jsx("div",{ref:r,className:t("flex items-center p-6 pt-0",a),...e}));l.displayName="CardFooter";export{o as C,i as a,m as b,n as c,c as d}; diff --git a/docs/assets/careers.49ptJCka.css b/docs/assets/careers.49ptJCka.css new file mode 100644 index 00000000..d700664d --- /dev/null +++ b/docs/assets/careers.49ptJCka.css @@ -0,0 +1 @@ +*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 222 24% 8%;--foreground: 210 40% 98%;--card: 222 20% 12%;--card-foreground: 210 40% 98%;--popover: 222 20% 12%;--popover-foreground: 210 40% 98%;--primary: 218 100% 72%;--primary-foreground: 222 24% 8%;--secondary: 222 16% 18%;--secondary-foreground: 210 40% 98%;--muted: 222 16% 16%;--muted-foreground: 215 20% 65%;--accent: 218 100% 72%;--accent-foreground: 222 24% 8%;--destructive: 0 84% 60%;--destructive-foreground: 210 40% 98%;--border: 222 16% 20%;--input: 222 16% 16%;--ring: 218 100% 72%;--radius: .75rem;--dc-blue: 218 100% 72%;--dc-blue-glow: 218 100% 82%;--dc-dark: 222 24% 8%;--dc-card: 222 20% 12%;--dc-surface: 222 16% 18%;--dc-border: 222 16% 20%;--gradient-primary: linear-gradient(135deg, hsl(var(--dc-blue)), hsl(var(--dc-blue-glow)));--gradient-subtle: linear-gradient(180deg, hsl(var(--dc-card)), hsl(var(--dc-surface)));--shadow-elegant: 0 10px 30px -10px hsl(var(--dc-blue) / .2);--shadow-glow: 0 0 40px hsl(var(--dc-blue) / .3);--transition-smooth: all .24s cubic-bezier(.4, 0, .2, 1);--sidebar-background: 0 0% 98%;--sidebar-foreground: 240 5.3% 26.1%;--sidebar-primary: 240 5.9% 10%;--sidebar-primary-foreground: 0 0% 98%;--sidebar-accent: 240 4.8% 95.9%;--sidebar-accent-foreground: 240 5.9% 10%;--sidebar-border: 220 13% 91%;--sidebar-ring: 217.2 91.2% 59.8%}*{border-color:hsl(var(--border))}html{scroll-behavior:smooth;overflow-x:hidden;scrollbar-gutter:stable;overflow-y:scroll}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-feature-settings:"rlig" 1,"calt" 1;overflow-x:hidden;min-height:100vh;width:100%;margin:0;padding:0}*{box-sizing:border-box;max-width:100%}[data-radix-popper-content-wrapper]{z-index:50}[data-radix-dropdown-menu-content]{max-width:calc(100vw - 2rem)}.container{width:100%;max-width:100%}img,video,iframe,embed,object{max-width:100%;height:auto}.grid,.flex{min-width:0}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}@media(min-width:1400px){.container{max-width:1400px}}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-2{inset:.5rem}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.-bottom-12{bottom:-3rem}.-left-12{left:-3rem}.-left-4{left:-1rem}.-right-12{right:-3rem}.-right-2{right:-.5rem}.-right-20{right:-5rem}.-right-4{right:-1rem}.-top-1{top:-.25rem}.-top-12{top:-3rem}.-top-2{top:-.5rem}.-top-20{top:-5rem}.bottom-0{bottom:0}.bottom-2{bottom:.5rem}.bottom-4{bottom:1rem}.left-0{left:0}.left-1{left:.25rem}.left-1\/2{left:50%}.left-2{left:.5rem}.left-3{left:.75rem}.left-4{left:1rem}.left-\[50\%\]{left:50%}.left-full{left:100%}.right-0{right:0}.right-1{right:.25rem}.right-2{right:.5rem}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.top-1{top:.25rem}.top-1\.5{top:.375rem}.top-1\/2{top:50%}.top-12{top:3rem}.top-2{top:.5rem}.top-2\.5{top:.625rem}.top-3{top:.75rem}.top-3\.5{top:.875rem}.top-4{top:1rem}.top-\[1px\]{top:1px}.top-\[50\%\]{top:50%}.top-\[60\%\]{top:60%}.top-full{top:100%}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[1\]{z-index:1}.z-\[60\]{z-index:60}.order-1{order:1}.order-2{order:2}.order-3{order:3}.col-span-1{grid-column:span 1 / span 1}.col-span-2{grid-column:span 2 / span 2}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-1\.5{margin-left:.375rem;margin-right:.375rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3\.5{margin-left:.875rem;margin-right:.875rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-16{margin-top:4rem;margin-bottom:4rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.-ml-2{margin-left:-.5rem}.-ml-3{margin-left:-.75rem}.-ml-4{margin-left:-1rem}.-mt-4{margin-top:-1rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-20{margin-bottom:5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-20{margin-top:5rem}.mt-24{margin-top:6rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.line-clamp-4{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1 / 1}.aspect-video{aspect-ratio:16 / 9}.size-4{width:1rem;height:1rem}.h-0{height:0px}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-24{height:6rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-40{height:10rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-56{height:14rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[1px\]{height:1px}.h-\[calc\(100\%-12rem\)\]{height:calc(100% - 12rem)}.h-\[var\(--radix-navigation-menu-viewport-height\)\]{height:var(--radix-navigation-menu-viewport-height)}.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-svh{height:100svh}.max-h-32{max-height:8rem}.max-h-40{max-height:10rem}.max-h-96{max-height:24rem}.max-h-\[300px\]{max-height:300px}.max-h-\[70vh\]{max-height:70vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.max-h-screen{max-height:100vh}.min-h-0{min-height:0px}.min-h-\[2\.5rem\]{min-height:2.5rem}.min-h-\[32px\]{min-height:32px}.min-h-\[36px\]{min-height:36px}.min-h-\[3rem\]{min-height:3rem}.min-h-\[48px\]{min-height:48px}.min-h-\[80px\]{min-height:80px}.min-h-\[80vh\]{min-height:80vh}.min-h-screen{min-height:100vh}.min-h-svh{min-height:100svh}.w-0{width:0px}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-4{width:1rem}.w-40{width:10rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-\[--sidebar-width\]{width:var(--sidebar-width)}.w-\[100px\]{width:100px}.w-\[1px\]{width:1px}.w-\[300px\]{width:300px}.w-\[95vw\]{width:95vw}.w-\[calc\(100\%-8px\)\]{width:calc(100% - 8px)}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-5{min-width:1.25rem}.min-w-\[12rem\]{min-width:12rem}.min-w-\[200px\]{min-width:200px}.min-w-\[270px\]{min-width:270px}.min-w-\[2rem\]{min-width:2rem}.min-w-\[8rem\]{min-width:8rem}.min-w-\[90px\]{min-width:90px}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-w-\[--skeleton-width\]{max-width:var(--skeleton-width)}.max-w-lg{max-width:32rem}.max-w-max{max-width:-moz-max-content;max-width:max-content}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-full{flex-basis:100%}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-8{--tw-translate-x: -2rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-px{--tw-translate-x: -1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-4{--tw-translate-x: 1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-px{--tw-translate-x: 1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-4{--tw-translate-y: 1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-8{--tw-translate-y: 2rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-2{--tw-rotate: -2deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-2{--tw-rotate: 2deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-90{--tw-scale-x: .9;--tw-scale-y: .9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes marquee-right{0%{transform:translate(-50%)}to{transform:translate(0)}}.animate-marquee-right{animation:marquee-right 50s linear infinite}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-text{-webkit-user-select:text;-moz-user-select:text;user-select:text}.resize{resize:both}.scroll-mt-20{scroll-margin-top:5rem}.scroll-mt-24{scroll-margin-top:6rem}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-12{gap:3rem}.gap-16{gap:4rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-10>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2.5rem * var(--tw-space-y-reverse))}.space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(3rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.justify-self-center{justify-self:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.rounded-t-\[10px\]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-t-lg{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.rounded-tl-sm{border-top-left-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-2{border-width:2px}.border-\[1\.5px\]{border-width:1.5px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-b-\[16px\]{border-bottom-width:16px}.border-l{border-left-width:1px}.border-l-\[28px\]{border-left-width:28px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-t-\[16px\]{border-top-width:16px}.border-dashed{border-style:dashed}.border-\[--color-border\]{border-color:var(--color-border)}.border-amber-400\/60{border-color:#fbbf2499}.border-background{border-color:hsl(var(--background))}.border-blue-500\/20{border-color:#3b82f633}.border-blue-500\/30{border-color:#3b82f64d}.border-blue-600{--tw-border-opacity: 1;border-color:rgb(37 99 235 / var(--tw-border-opacity, 1))}.border-border{border-color:hsl(var(--border))}.border-border\/50{border-color:hsl(var(--border) / .5)}.border-dc-blue\/20{border-color:hsl(var(--dc-blue) / .2)}.border-dc-border{border-color:hsl(var(--dc-border))}.border-dc-border\/50{border-color:hsl(var(--dc-border) / .5)}.border-destructive{border-color:hsl(var(--destructive))}.border-destructive\/20{border-color:hsl(var(--destructive) / .2)}.border-destructive\/50{border-color:hsl(var(--destructive) / .5)}.border-foreground\/20{border-color:hsl(var(--foreground) / .2)}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-green-500\/20{border-color:#22c55e33}.border-green-500\/30{border-color:#22c55e4d}.border-input{border-color:hsl(var(--input))}.border-muted-foreground\/20{border-color:hsl(var(--muted-foreground) / .2)}.border-primary{border-color:hsl(var(--primary))}.border-primary\/20{border-color:hsl(var(--primary) / .2)}.border-primary\/30{border-color:hsl(var(--primary) / .3)}.border-primary\/40{border-color:hsl(var(--primary) / .4)}.border-purple-500\/20{border-color:#a855f733}.border-purple-500\/30{border-color:#a855f74d}.border-red-500\/20{border-color:#ef444433}.border-sidebar-border{border-color:hsl(var(--sidebar-border))}.border-slate-700\/50{border-color:#33415580}.border-slate-800{--tw-border-opacity: 1;border-color:rgb(30 41 59 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-white\/20{border-color:#fff3}.border-b-transparent{border-bottom-color:transparent}.border-l-primary{border-left-color:hsl(var(--primary))}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-\[--color-bg\]{background-color:var(--color-bg)}.bg-accent{background-color:hsl(var(--accent))}.bg-accent\/50{background-color:hsl(var(--accent) / .5)}.bg-amber-600{--tw-bg-opacity: 1;background-color:rgb(217 119 6 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-background\/50{background-color:hsl(var(--background) / .5)}.bg-background\/80{background-color:hsl(var(--background) / .8)}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\/0{background-color:#0000}.bg-black\/80{background-color:#000c}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-500\/10{background-color:#3b82f61a}.bg-blue-500\/20{background-color:#3b82f633}.bg-blue-500\/5{background-color:#3b82f60d}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.bg-blue-600\/10{background-color:#2563eb1a}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-cyan-600{--tw-bg-opacity: 1;background-color:rgb(8 145 178 / var(--tw-bg-opacity, 1))}.bg-dc-blue\/10{background-color:hsl(var(--dc-blue) / .1)}.bg-dc-border{background-color:hsl(var(--dc-border))}.bg-dc-card{background-color:hsl(var(--dc-card))}.bg-dc-card\/30{background-color:hsl(var(--dc-card) / .3)}.bg-dc-card\/50{background-color:hsl(var(--dc-card) / .5)}.bg-dc-surface{background-color:hsl(var(--dc-surface))}.bg-dc-surface\/30{background-color:hsl(var(--dc-surface) / .3)}.bg-dc-surface\/50{background-color:hsl(var(--dc-surface) / .5)}.bg-dc-surface\/80{background-color:hsl(var(--dc-surface) / .8)}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive) / .1)}.bg-emerald-600{--tw-bg-opacity: 1;background-color:rgb(5 150 105 / var(--tw-bg-opacity, 1))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-500\/10{background-color:#6b72801a}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-500\/10{background-color:#22c55e1a}.bg-green-500\/20{background-color:#22c55e33}.bg-green-500\/5{background-color:#22c55e0d}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.bg-indigo-600{--tw-bg-opacity: 1;background-color:rgb(79 70 229 / var(--tw-bg-opacity, 1))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground\/50{background-color:hsl(var(--muted-foreground) / .5)}.bg-muted\/20{background-color:hsl(var(--muted) / .2)}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-orange-500\/10{background-color:#f973161a}.bg-orange-600{--tw-bg-opacity: 1;background-color:rgb(234 88 12 / var(--tw-bg-opacity, 1))}.bg-pink-600{--tw-bg-opacity: 1;background-color:rgb(219 39 119 / var(--tw-bg-opacity, 1))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-primary\/20{background-color:hsl(var(--primary) / .2)}.bg-primary\/30{background-color:hsl(var(--primary) / .3)}.bg-primary\/5{background-color:hsl(var(--primary) / .05)}.bg-purple-500\/10{background-color:#a855f71a}.bg-purple-500\/20{background-color:#a855f733}.bg-purple-500\/5{background-color:#a855f70d}.bg-purple-600{--tw-bg-opacity: 1;background-color:rgb(147 51 234 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-500\/10{background-color:#ef44441a}.bg-red-500\/5{background-color:#ef44440d}.bg-rose-600{--tw-bg-opacity: 1;background-color:rgb(225 29 72 / var(--tw-bg-opacity, 1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-sidebar{background-color:hsl(var(--sidebar-background))}.bg-sidebar-border{background-color:hsl(var(--sidebar-border))}.bg-sky-600{--tw-bg-opacity: 1;background-color:rgb(2 132 199 / var(--tw-bg-opacity, 1))}.bg-slate-600{--tw-bg-opacity: 1;background-color:rgb(71 85 105 / var(--tw-bg-opacity, 1))}.bg-slate-900\/80{background-color:#0f172acc}.bg-stone-600{--tw-bg-opacity: 1;background-color:rgb(87 83 78 / var(--tw-bg-opacity, 1))}.bg-teal-600{--tw-bg-opacity: 1;background-color:rgb(13 148 136 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-amber-500\/20{--tw-gradient-from: rgb(245 158 11 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(245 158 11 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-background{--tw-gradient-from: hsl(var(--background)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--background) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-dc-card{--tw-gradient-from: hsl(var(--dc-card)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--dc-card) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-dc-card\/30{--tw-gradient-from: hsl(var(--dc-card) / .3) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--dc-card) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-dc-surface{--tw-gradient-from: hsl(var(--dc-surface)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--dc-surface) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-dc-surface\/50{--tw-gradient-from: hsl(var(--dc-surface) / .5) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--dc-surface) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-foreground{--tw-gradient-from: hsl(var(--foreground)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--foreground) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary\/10{--tw-gradient-from: hsl(var(--primary) / .1) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary\/15{--tw-gradient-from: hsl(var(--primary) / .15) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary\/5{--tw-gradient-from: hsl(var(--primary) / .05) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-900{--tw-gradient-from: #0f172a var(--tw-gradient-from-position);--tw-gradient-to: rgb(15 23 42 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-background{--tw-gradient-to: hsl(var(--background) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(var(--background)) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-orange-500\/25{--tw-gradient-to: rgb(249 115 22 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(249 115 22 / .25) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-primary\/10{--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(var(--primary) / .1) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-primary\/5{--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(var(--primary) / .05) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-slate-800{--tw-gradient-to: rgb(30 41 59 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #1e293b var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-amber-500\/20{--tw-gradient-to: rgb(245 158 11 / .2) var(--tw-gradient-to-position)}.to-background{--tw-gradient-to: hsl(var(--background)) var(--tw-gradient-to-position)}.to-dc-card{--tw-gradient-to: hsl(var(--dc-card)) var(--tw-gradient-to-position)}.to-dc-card\/30{--tw-gradient-to: hsl(var(--dc-card) / .3) var(--tw-gradient-to-position)}.to-dc-card\/50{--tw-gradient-to: hsl(var(--dc-card) / .5) var(--tw-gradient-to-position)}.to-dc-surface{--tw-gradient-to: hsl(var(--dc-surface)) var(--tw-gradient-to-position)}.to-dc-surface\/30{--tw-gradient-to: hsl(var(--dc-surface) / .3) var(--tw-gradient-to-position)}.to-foreground\/70{--tw-gradient-to: hsl(var(--foreground) / .7) var(--tw-gradient-to-position)}.to-muted\/20{--tw-gradient-to: hsl(var(--muted) / .2) var(--tw-gradient-to-position)}.to-primary\/10{--tw-gradient-to: hsl(var(--primary) / .1) var(--tw-gradient-to-position)}.to-slate-950{--tw-gradient-to: #020617 var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.bg-\[size\:50px_50px\]{background-size:50px 50px}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.fill-current{fill:currentColor}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-12{padding:3rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[1px\]{padding:1px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-24{padding-top:6rem;padding-bottom:6rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-16{padding-bottom:4rem}.pb-20{padding-bottom:5rem}.pb-24{padding-bottom:6rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pl-10{padding-left:2.5rem}.pl-2\.5{padding-left:.625rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-8{padding-left:2rem}.pr-10{padding-right:2.5rem}.pr-12{padding-right:3rem}.pr-2{padding-right:.5rem}.pr-2\.5{padding-right:.625rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-12{padding-top:3rem}.pt-2{padding-top:.5rem}.pt-20{padding-top:5rem}.pt-24{padding-top:6rem}.pt-3{padding-top:.75rem}.pt-32{padding-top:8rem}.pt-4{padding-top:1rem}.pt-40{padding-top:10rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-\[0\.8rem\]{font-size:.8rem}.text-\[10px\]{font-size:10px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-\[1\.1\]{line-height:1.1}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-dc-blue{color:hsl(var(--dc-blue))}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/50{color:hsl(var(--foreground) / .5)}.text-foreground\/70{color:hsl(var(--foreground) / .7)}.text-foreground\/90{color:hsl(var(--foreground) / .9)}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/50{color:hsl(var(--muted-foreground) / .5)}.text-muted-foreground\/60{color:hsl(var(--muted-foreground) / .6)}.text-orange-500{--tw-text-opacity: 1;color:rgb(249 115 22 / var(--tw-text-opacity, 1))}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-pink-500{--tw-text-opacity: 1;color:rgb(236 72 153 / var(--tw-text-opacity, 1))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-primary\/10{color:hsl(var(--primary) / .1)}.text-primary\/60{color:hsl(var(--primary) / .6)}.text-purple-400{--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.text-purple-500{--tw-text-opacity: 1;color:rgb(168 85 247 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-sidebar-foreground{color:hsl(var(--sidebar-foreground))}.text-sidebar-foreground\/70{color:hsl(var(--sidebar-foreground) / .7)}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-500{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\]{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-border));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-primary\/20{--tw-shadow-color: hsl(var(--primary) / .2);--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-ring{--tw-ring-color: hsl(var(--ring))}.ring-sidebar-ring{--tw-ring-color: hsl(var(--sidebar-ring))}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.blur-3xl{--tw-blur: blur(64px);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)}.drop-shadow-sm{--tw-drop-shadow: drop-shadow(0 1px 1px rgb(0 0 0 / .05));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)}.grayscale{--tw-grayscale: grayscale(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)}.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-md{--tw-backdrop-blur: blur(12px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);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{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[left\,right\,width\]{transition-property:left,right,width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[margin\,opa\]{transition-property:margin,opa;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,height\,padding\]{transition-property:width,height,padding;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.delay-1000{transition-delay:1s}.delay-200{transition-delay:.2s}.delay-300{transition-delay:.3s}.delay-500{transition-delay:.5s}.delay-700{transition-delay:.7s}.duration-1000{transition-duration:1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-700{transition-duration:.7s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{transition-timing-function:linear}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.fade-in-0{--tw-enter-opacity: 0}.fade-in-80{--tw-enter-opacity: .8}.zoom-in-95{--tw-enter-scale: .95}.duration-1000{animation-duration:1s}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.duration-500{animation-duration:.5s}.duration-700{animation-duration:.7s}.delay-1000{animation-delay:1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-500{animation-delay:.5s}.delay-700{animation-delay:.7s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{animation-timing-function:linear}.ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.running{animation-play-state:running}.shadow-elegant{box-shadow:var(--shadow-elegant)}.transition-smooth{transition:var(--transition-smooth)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.line-clamp-4{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}@media(min-width:640px){.sm\:flex{min-width:0}}@media(min-width:768px){.md\:flex{min-width:0}}@media(min-width:1024px){.lg\:grid,.lg\:flex{min-width:0}}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.after\:pointer-events-none:after{content:var(--tw-content);pointer-events:none}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);inset:-.5rem}.after\:inset-y-0:after{content:var(--tw-content);top:0;bottom:0}.after\:bottom-3:after{content:var(--tw-content);bottom:.75rem}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:right-3:after{content:var(--tw-content);right:.75rem}.after\:w-1:after{content:var(--tw-content);width:.25rem}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.after\:-translate-x-1\/2:after{content:var(--tw-content);--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.after\:text-xs:after{content:var(--tw-content);font-size:.75rem;line-height:1rem}.after\:text-muted-foreground\/70:after{content:var(--tw-content);color:hsl(var(--muted-foreground) / .7)}.after\:transition-colors:after{content:var(--tw-content);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.after\:transition-transform:after{content:var(--tw-content);transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.after\:duration-200:after{content:var(--tw-content);transition-duration:.2s}.after\:content-\[\'β†—\'\]:after{--tw-content: "β†—";content:var(--tw-content)}.after\:duration-200:after{content:var(--tw-content);animation-duration:.2s}.first\:rounded-l-md:first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.first\:border-l:first-child{border-left-width:1px}.last\:rounded-r-md:last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.focus-within\:relative:focus-within{position:relative}.focus-within\:z-20:focus-within{z-index:20}.hover\:-translate-y-1:hover{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:rotate-0:hover{--tw-rotate: 0deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-105:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-110:hover{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-\[1\.01\]:hover{--tw-scale-x: 1.01;--tw-scale-y: 1.01;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-\[1\.02\]:hover{--tw-scale-x: 1.02;--tw-scale-y: 1.02;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.hover\:animate-pulse:hover{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.hover\:border-amber-400\/80:hover{border-color:#fbbf24cc}.hover\:border-border:hover{border-color:hsl(var(--border))}.hover\:border-border\/60:hover{border-color:hsl(var(--border) / .6)}.hover\:border-dc-blue\/20:hover{border-color:hsl(var(--dc-blue) / .2)}.hover\:border-dc-blue\/30:hover{border-color:hsl(var(--dc-blue) / .3)}.hover\:border-primary\/30:hover{border-color:hsl(var(--primary) / .3)}.hover\:border-primary\/40:hover{border-color:hsl(var(--primary) / .4)}.hover\:border-primary\/50:hover{border-color:hsl(var(--primary) / .5)}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-accent\/50:hover{background-color:hsl(var(--accent) / .5)}.hover\:bg-black\/90:hover{background-color:#000000e6}.hover\:bg-blue-500:hover{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-700:hover{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity, 1))}.hover\:bg-dc-blue\/5:hover{background-color:hsl(var(--dc-blue) / .05)}.hover\:bg-dc-border:hover{background-color:hsl(var(--dc-border))}.hover\:bg-dc-card:hover{background-color:hsl(var(--dc-card))}.hover\:bg-dc-card\/60:hover{background-color:hsl(var(--dc-card) / .6)}.hover\:bg-dc-card\/80:hover{background-color:hsl(var(--dc-card) / .8)}.hover\:bg-dc-surface:hover{background-color:hsl(var(--dc-surface))}.hover\:bg-dc-surface\/50:hover{background-color:hsl(var(--dc-surface) / .5)}.hover\:bg-dc-surface\/80:hover{background-color:hsl(var(--dc-surface) / .8)}.hover\:bg-destructive\/80:hover{background-color:hsl(var(--destructive) / .8)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-gray-800:hover{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-primary:hover{background-color:hsl(var(--primary))}.hover\:bg-primary\/10:hover{background-color:hsl(var(--primary) / .1)}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-sidebar-accent:hover{background-color:hsl(var(--sidebar-accent))}.hover\:bg-transparent:hover{background-color:transparent}.hover\:from-amber-500\/25:hover{--tw-gradient-from: rgb(245 158 11 / .25) var(--tw-gradient-from-position);--tw-gradient-to: rgb(245 158 11 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:via-orange-500\/30:hover{--tw-gradient-to: rgb(249 115 22 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(249 115 22 / .3) var(--tw-gradient-via-position), var(--tw-gradient-to)}.hover\:to-amber-500\/25:hover{--tw-gradient-to: rgb(245 158 11 / .25) var(--tw-gradient-to-position)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-blue-700:hover{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-gray-600:hover{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.hover\:text-muted-foreground:hover{color:hsl(var(--muted-foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:text-primary-foreground:hover{color:hsl(var(--primary-foreground))}.hover\:text-primary\/80:hover{color:hsl(var(--primary) / .8)}.hover\:text-sidebar-accent-foreground:hover{color:hsl(var(--sidebar-accent-foreground))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:text-white\/80:hover{color:#fffc}.hover\:underline:hover{text-decoration-line:underline}.hover\:no-underline:hover{text-decoration-line:none}.hover\:opacity-100:hover{opacity:1}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\]:hover{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-accent));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-lg:hover{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-xl:hover{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-amber-500\/20:hover{--tw-shadow-color: rgb(245 158 11 / .2);--tw-shadow: var(--tw-shadow-colored)}.hover\:shadow-dc-blue\/5:hover{--tw-shadow-color: hsl(var(--dc-blue) / .05);--tw-shadow: var(--tw-shadow-colored)}.hover\:shadow-primary\/20:hover{--tw-shadow-color: hsl(var(--primary) / .2);--tw-shadow: var(--tw-shadow-colored)}.hover\:ring-2:hover{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.hover\:ring-primary\/30:hover{--tw-ring-color: hsl(var(--primary) / .3)}.hover\:after\:-translate-y-0\.5:hover:after{content:var(--tw-content);--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:after\:translate-x-0\.5:hover:after{content:var(--tw-content);--tw-translate-x: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:hsl(var(--sidebar-border))}.hover\:after\:text-primary:hover:after{content:var(--tw-content);color:hsl(var(--primary))}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:bg-primary:focus{background-color:hsl(var(--primary))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:text-primary-foreground:focus{color:hsl(var(--primary-foreground))}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-primary\/50:focus{--tw-ring-color: hsl(var(--primary) / .5)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-sidebar-ring:focus-visible{--tw-ring-color: hsl(var(--sidebar-ring))}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width: 1px}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color: hsl(var(--background))}.active\:scale-95:active{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:bg-sidebar-accent:active{background-color:hsl(var(--sidebar-accent))}.active\:text-sidebar-accent-foreground:active{color:hsl(var(--sidebar-accent-foreground))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group\/menu-item:focus-within .group-focus-within\/menu-item\:opacity-100{opacity:1}.group:hover .group-hover\:translate-x-1{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:translate-x-2{--tw-translate-x: .5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:translate-y-1{--tw-translate-y: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:rotate-12{--tw-rotate: 12deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:border-dc-blue\/30{border-color:hsl(var(--dc-blue) / .3)}.group:hover .group-hover\:bg-black\/10{background-color:#0000001a}.group:hover .group-hover\:bg-black\/90{background-color:#000000e6}.group:hover .group-hover\:bg-dc-blue\/20{background-color:hsl(var(--dc-blue) / .2)}.group:hover .group-hover\:bg-dc-blue\/5{background-color:hsl(var(--dc-blue) / .05)}.group:hover .group-hover\:bg-primary\/20{background-color:hsl(var(--primary) / .2)}.group:hover .group-hover\:text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-dc-blue{color:hsl(var(--dc-blue))}.group:hover .group-hover\:text-foreground{color:hsl(var(--foreground))}.group:hover .group-hover\:text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-orange-700{--tw-text-opacity: 1;color:rgb(194 65 12 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-primary{color:hsl(var(--primary))}.group:hover .group-hover\:underline{text-decoration-line:underline}.group\/menu-item:hover .group-hover\/menu-item\:opacity-100,.group:hover .group-hover\:opacity-100{opacity:1}.group:hover .group-hover\:shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group.destructive .group-\[\.destructive\]\:border-muted\/40{border-color:hsl(var(--muted) / .4)}.group.toaster .group-\[\.toaster\]\:border-border{border-color:hsl(var(--border))}.group.toast .group-\[\.toast\]\:bg-muted{background-color:hsl(var(--muted))}.group.toast .group-\[\.toast\]\:bg-primary{background-color:hsl(var(--primary))}.group.toaster .group-\[\.toaster\]\:bg-background{background-color:hsl(var(--background))}.group.destructive .group-\[\.destructive\]\:text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.group.toast .group-\[\.toast\]\:text-muted-foreground{color:hsl(var(--muted-foreground))}.group.toast .group-\[\.toast\]\:text-primary-foreground{color:hsl(var(--primary-foreground))}.group.toaster .group-\[\.toaster\]\:text-foreground{color:hsl(var(--foreground))}.group.toaster .group-\[\.toaster\]\:shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group.destructive .group-\[\.destructive\]\:hover\:border-destructive\/30:hover{border-color:hsl(var(--destructive) / .3)}.group.destructive .group-\[\.destructive\]\:hover\:bg-destructive:hover{background-color:hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:hover\:text-destructive-foreground:hover{color:hsl(var(--destructive-foreground))}.group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover{--tw-text-opacity: 1;color:rgb(254 242 242 / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-destructive:focus{--tw-ring-color: hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:focus\:ring-red-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-red-600:focus{--tw-ring-offset-color: #dc2626}.peer\/menu-button:hover~.peer-hover\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.has-\[\[data-variant\=inset\]\]\:bg-sidebar:has([data-variant=inset]){background-color:hsl(var(--sidebar-background))}.has-\[\:disabled\]\:opacity-50:has(:disabled){opacity:.5}.group\/menu-item:has([data-sidebar=menu-action]) .group-has-\[\[data-sidebar\=menu-action\]\]\/menu-item\:pr-8{padding-right:2rem}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-selected\:bg-accent[aria-selected=true]{background-color:hsl(var(--accent))}.aria-selected\:bg-accent\/50[aria-selected=true]{background-color:hsl(var(--accent) / .5)}.aria-selected\:text-accent-foreground[aria-selected=true]{color:hsl(var(--accent-foreground))}.aria-selected\:text-muted-foreground[aria-selected=true]{color:hsl(var(--muted-foreground))}.aria-selected\:opacity-100[aria-selected=true]{opacity:1}.aria-selected\:opacity-30[aria-selected=true]{opacity:.3}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[panel-group-direction\=vertical\]\:h-px[data-panel-group-direction=vertical]{height:1px}.data-\[panel-group-direction\=vertical\]\:w-full[data-panel-group-direction=vertical]{width:100%}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:translate-x-5[data-state=checked]{--tw-translate-x: 1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked],.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x: var(--radix-toast-swipe-end-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x: var(--radix-toast-swipe-move-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:accordion-up .2s ease-out}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:accordion-down .2s ease-out}.data-\[panel-group-direction\=vertical\]\:flex-col[data-panel-group-direction=vertical]{flex-direction:column}.data-\[active\=true\]\:bg-sidebar-accent[data-active=true]{background-color:hsl(var(--sidebar-accent))}.data-\[active\]\:bg-accent\/50[data-active]{background-color:hsl(var(--accent) / .5)}.data-\[selected\=\'true\'\]\:bg-accent[data-selected=true]{background-color:hsl(var(--accent))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=active\]\:bg-primary[data-state=active],.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=on\]\:bg-accent[data-state=on],.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:hsl(var(--accent) / .5)}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:hsl(var(--secondary))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[active\=true\]\:font-medium[data-active=true]{font-weight:500}.data-\[active\=true\]\:text-sidebar-accent-foreground[data-active=true]{color:hsl(var(--sidebar-accent-foreground))}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:hsl(var(--accent-foreground))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=active\]\:text-primary-foreground[data-state=active],.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}.data-\[state\=on\]\:text-accent-foreground[data-state=on],.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:hsl(var(--accent-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}.data-\[state\=closed\]\:duration-300[data-state=closed]{transition-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{transition-duration:.5s}.data-\[motion\^\=from-\]\:animate-in[data-motion^=from-],.data-\[state\=open\]\:animate-in[data-state=open],.data-\[state\=visible\]\:animate-in[data-state=visible]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[motion\^\=to-\]\:animate-out[data-motion^=to-],.data-\[state\=closed\]\:animate-out[data-state=closed],.data-\[state\=hidden\]\:animate-out[data-state=hidden],.data-\[swipe\=end\]\:animate-out[data-swipe=end]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[motion\^\=from-\]\:fade-in[data-motion^=from-]{--tw-enter-opacity: 0}.data-\[motion\^\=to-\]\:fade-out[data-motion^=to-],.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\[state\=closed\]\:fade-out-80[data-state=closed]{--tw-exit-opacity: .8}.data-\[state\=hidden\]\:fade-out[data-state=hidden]{--tw-exit-opacity: 0}.data-\[state\=open\]\:fade-in-0[data-state=open],.data-\[state\=visible\]\:fade-in[data-state=visible]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-90[data-state=open]{--tw-enter-scale: .9}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[motion\=from-end\]\:slide-in-from-right-52[data-motion=from-end]{--tw-enter-translate-x: 13rem}.data-\[motion\=from-start\]\:slide-in-from-left-52[data-motion=from-start]{--tw-enter-translate-x: -13rem}.data-\[motion\=to-end\]\:slide-out-to-right-52[data-motion=to-end]{--tw-exit-translate-x: 13rem}.data-\[motion\=to-start\]\:slide-out-to-left-52[data-motion=to-start]{--tw-exit-translate-x: -13rem}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y: 100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x: -100%}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50%}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed],.data-\[state\=closed\]\:slide-out-to-right-full[data-state=closed]{--tw-exit-translate-x: 100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y: -100%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y: 100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x: -100%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x: 100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y: -100%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-top-full[data-state=open]{--tw-enter-translate-y: -100%}.data-\[state\=closed\]\:duration-300[data-state=closed]{animation-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{animation-duration:.5s}.data-\[panel-group-direction\=vertical\]\:after\:left-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);left:0}.data-\[panel-group-direction\=vertical\]\:after\:h-1[data-panel-group-direction=vertical]:after{content:var(--tw-content);height:.25rem}.data-\[panel-group-direction\=vertical\]\:after\:w-full[data-panel-group-direction=vertical]:after{content:var(--tw-content);width:100%}.data-\[panel-group-direction\=vertical\]\:after\:-translate-y-1\/2[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[panel-group-direction\=vertical\]\:after\:translate-x-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=open\]\:hover\:bg-sidebar-accent:hover[data-state=open]{background-color:hsl(var(--sidebar-accent))}.data-\[state\=open\]\:hover\:text-sidebar-accent-foreground:hover[data-state=open]{color:hsl(var(--sidebar-accent-foreground))}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\]{left:calc(var(--sidebar-width) * -1)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\]{right:calc(var(--sidebar-width) * -1)}.group[data-side=left] .group-data-\[side\=left\]\:-right-4{right:-1rem}.group[data-side=right] .group-data-\[side\=right\]\:left-0{left:0}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:-mt-8{margin-top:-2rem}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:hidden{display:none}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!size-8{width:2rem!important;height:2rem!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[--sidebar-width-icon\]{width:var(--sidebar-width-icon)}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)\)\]{width:calc(var(--sidebar-width-icon) + 1rem)}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)_\+2px\)\]{width:calc(var(--sidebar-width-icon) + 1rem + 2px)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:w-0{width:0px}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-side=right] .group-data-\[side\=right\]\:rotate-180,.group[data-state=open] .group-data-\[state\=open\]\:rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:overflow-hidden{overflow:hidden}.group[data-variant=floating] .group-data-\[variant\=floating\]\:rounded-lg{border-radius:var(--radius)}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border{border-width:1px}.group[data-side=left] .group-data-\[side\=left\]\:border-r{border-right-width:1px}.group[data-side=right] .group-data-\[side\=right\]\:border-l{border-left-width:1px}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border-sidebar-border{border-color:hsl(var(--sidebar-border))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!p-0{padding:0!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!p-2{padding:.5rem!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:opacity-0{opacity:0}.group[data-variant=floating] .group-data-\[variant\=floating\]\:shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:after\:left-full:after{content:var(--tw-content);left:100%}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:hover\:bg-sidebar:hover{background-color:hsl(var(--sidebar-background))}.peer\/menu-button[data-size=default]~.peer-data-\[size\=default\]\/menu-button\:top-1\.5{top:.375rem}.peer\/menu-button[data-size=lg]~.peer-data-\[size\=lg\]\/menu-button\:top-2\.5{top:.625rem}.peer\/menu-button[data-size=sm]~.peer-data-\[size\=sm\]\/menu-button\:top-1{top:.25rem}.peer[data-variant=inset]~.peer-data-\[variant\=inset\]\:min-h-\[calc\(100svh-theme\(spacing\.4\)\)\]{min-height:calc(100svh - 1rem)}.peer\/menu-button[data-active=true]~.peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}.dark\:border-destructive:is(.dark *){border-color:hsl(var(--destructive))}.dark\:border-gray-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:text-amber-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.dark\:text-gray-300:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.dark\:text-orange-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.dark\:hover\:text-gray-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.group:hover .dark\:group-hover\:text-amber-300:is(.dark *){--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity, 1))}.group:hover .dark\:group-hover\:text-orange-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity, 1))}@media(min-width:640px){.sm\:-left-8{left:-2rem}.sm\:-right-8{right:-2rem}.sm\:bottom-0{bottom:0}.sm\:right-0{right:0}.sm\:right-4{right:1rem}.sm\:top-4{top:1rem}.sm\:top-auto{top:auto}.sm\:order-1{order:1}.sm\:order-3{order:3}.sm\:col-span-2{grid-column:span 2 / span 2}.sm\:mx-0{margin-left:0;margin-right:0}.sm\:mb-2{margin-bottom:.5rem}.sm\:mb-3{margin-bottom:.75rem}.sm\:mb-4{margin-bottom:1rem}.sm\:mt-0{margin-top:0}.sm\:mt-4{margin-top:1rem}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:h-12{height:3rem}.sm\:h-4{height:1rem}.sm\:h-5{height:1.25rem}.sm\:h-6{height:1.5rem}.sm\:h-8{height:2rem}.sm\:w-4{width:1rem}.sm\:w-5{width:1.25rem}.sm\:w-6{width:1.5rem}.sm\:w-8{width:2rem}.sm\:w-\[400px\]{width:400px}.sm\:w-auto{width:auto}.sm\:min-w-\[160px\]{min-width:160px}.sm\:max-w-2xl{max-width:42rem}.sm\:max-w-sm{max-width:24rem}.sm\:basis-1\/2{flex-basis:50%}.sm\:basis-full{flex-basis:100%}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:flex-wrap{flex-wrap:wrap}.sm\:items-start{align-items:flex-start}.sm\:items-center{align-items:center}.sm\:justify-start{justify-content:flex-start}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2{gap:.5rem}.sm\:gap-2\.5{gap:.625rem}.sm\:gap-3{gap:.75rem}.sm\:gap-4{gap:1rem}.sm\:gap-6{gap:1.5rem}.sm\:gap-8{gap:2rem}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.sm\:space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:p-0{padding:0}.sm\:p-1{padding:.25rem}.sm\:p-10{padding:2.5rem}.sm\:p-3{padding:.75rem}.sm\:p-4{padding:1rem}.sm\:p-6{padding:1.5rem}.sm\:p-8{padding:2rem}.sm\:px-0{padding-left:0;padding-right:0}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pr-12{padding-right:3rem}.sm\:pr-8{padding-right:2rem}.sm\:text-left{text-align:left}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-5xl{font-size:3rem;line-height:1}.sm\:text-6xl{font-size:3.75rem;line-height:1}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}.sm\:text-xs{font-size:.75rem;line-height:1rem}.data-\[state\=open\]\:sm\:slide-in-from-bottom-full[data-state=open]{--tw-enter-translate-y: 100%}}@media(min-width:768px){.md\:absolute{position:absolute}.md\:-ml-4{margin-left:-1rem}.md\:mb-0{margin-bottom:0}.md\:mb-10{margin-bottom:2.5rem}.md\:mb-12{margin-bottom:3rem}.md\:mb-14{margin-bottom:3.5rem}.md\:mb-16{margin-bottom:4rem}.md\:mb-3{margin-bottom:.75rem}.md\:mb-4{margin-bottom:1rem}.md\:mb-6{margin-bottom:1.5rem}.md\:mb-8{margin-bottom:2rem}.md\:mt-12{margin-top:3rem}.md\:mt-16{margin-top:4rem}.md\:block{display:block}.md\:flex{display:flex}.md\:h-14{height:3.5rem}.md\:h-7{height:1.75rem}.md\:w-14{width:3.5rem}.md\:w-2\/5{width:40%}.md\:w-3\/5{width:60%}.md\:w-7{width:1.75rem}.md\:w-\[var\(--radix-navigation-menu-viewport-width\)\]{width:var(--radix-navigation-menu-viewport-width)}.md\:w-auto{width:auto}.md\:max-w-\[420px\]{max-width:420px}.md\:flex-shrink-0{flex-shrink:0}.md\:basis-1\/2{flex-basis:50%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}.md\:gap-4{gap:1rem}.md\:gap-6{gap:1.5rem}.md\:gap-8{gap:2rem}.md\:space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(3rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3rem * var(--tw-space-y-reverse))}.md\:p-12{padding:3rem}.md\:p-16{padding:4rem}.md\:p-8{padding:2rem}.md\:px-8{padding-left:2rem;padding-right:2rem}.md\:py-16{padding-top:4rem;padding-bottom:4rem}.md\:py-20{padding-top:5rem;padding-bottom:5rem}.md\:py-24{padding-top:6rem;padding-bottom:6rem}.md\:py-4{padding-top:1rem;padding-bottom:1rem}.md\:pb-20{padding-bottom:5rem}.md\:pb-24{padding-bottom:6rem}.md\:pb-32{padding-bottom:8rem}.md\:pl-4{padding-left:1rem}.md\:pt-28{padding-top:7rem}.md\:pt-40{padding-top:10rem}.md\:pt-48{padding-top:12rem}.md\:pt-56{padding-top:14rem}.md\:pt-8{padding-top:2rem}.md\:text-left{text-align:left}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-6xl{font-size:3.75rem;line-height:1}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}.md\:opacity-0{opacity:0}.after\:md\:hidden:after{content:var(--tw-content);display:none}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:m-2{margin:.5rem}.peer[data-state=collapsed][data-variant=inset]~.md\:peer-data-\[state\=collapsed\]\:peer-data-\[variant\=inset\]\:ml-2{margin-left:.5rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:ml-0{margin-left:0}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:rounded-xl{border-radius:.75rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}}@media(min-width:1024px){.lg\:order-1{order:1}.lg\:order-2{order:2}.lg\:col-span-1{grid-column:span 1 / span 1}.lg\:col-span-6{grid-column:span 6 / span 6}.lg\:mx-0{margin-left:0;margin-right:0}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:grid{display:grid}.lg\:hidden{display:none}.lg\:max-w-4xl{max-width:56rem}.lg\:max-w-none{max-width:none}.lg\:basis-1\/3{flex-basis:33.333333%}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:items-center{align-items:center}.lg\:justify-start{justify-content:flex-start}.lg\:justify-end{justify-content:flex-end}.lg\:gap-12{gap:3rem}.lg\:gap-16{gap:4rem}.lg\:gap-20{gap:5rem}.lg\:justify-self-auto{justify-self:auto}.lg\:rounded-2xl{border-radius:1rem}.lg\:text-left{text-align:left}.lg\:text-5xl{font-size:3rem;line-height:1}.lg\:text-6xl{font-size:3.75rem;line-height:1}.lg\:text-7xl{font-size:4.5rem;line-height:1}}.\[\&\:has\(\[aria-selected\]\)\]\:bg-accent:has([aria-selected]){background-color:hsl(var(--accent))}.first\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-l-md:has([aria-selected]):first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.last\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-r-md:has([aria-selected]):last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[aria-selected\]\.day-outside\)\]\:bg-accent\/50:has([aria-selected].day-outside){background-color:hsl(var(--accent) / .5)}.\[\&\:has\(\[aria-selected\]\.day-range-end\)\]\:rounded-r-md:has([aria-selected].day-range-end){border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>span\:last-child\]\:truncate>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y: -3px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:left-4>svg{left:1rem}.\[\&\>svg\]\:top-4>svg{top:1rem}.\[\&\>svg\]\:size-3\.5>svg{width:.875rem;height:.875rem}.\[\&\>svg\]\:size-4>svg{width:1rem;height:1rem}.\[\&\>svg\]\:h-2\.5>svg{height:.625rem}.\[\&\>svg\]\:h-3>svg{height:.75rem}.\[\&\>svg\]\:w-2\.5>svg{width:.625rem}.\[\&\>svg\]\:w-3>svg{width:.75rem}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:text-destructive>svg{color:hsl(var(--destructive))}.\[\&\>svg\]\:text-foreground>svg{color:hsl(var(--foreground))}.\[\&\>svg\]\:text-muted-foreground>svg{color:hsl(var(--muted-foreground))}.\[\&\>svg\]\:text-sidebar-accent-foreground>svg{color:hsl(var(--sidebar-accent-foreground))}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:1.75rem}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0px}.\[\&\[data-panel-group-direction\=vertical\]\>div\]\:rotate-90[data-panel-group-direction=vertical]>div{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:hsl(var(--muted-foreground))}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke="#ccc"]{stroke:hsl(var(--border) / .5)}.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:hsl(var(--border))}.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-layer\]\:outline-none .recharts-layer{outline:2px solid transparent;outline-offset:2px}.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector,.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:hsl(var(--muted))}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-sector\]\:outline-none .recharts-sector,.\[\&_\.recharts-surface\]\:outline-none .recharts-surface{outline:2px solid transparent;outline-offset:2px}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-top:.75rem;padding-bottom:.75rem}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:1.25rem}.\[\&_p\]\:leading-relaxed p{line-height:1.625}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{right:-.5rem}[data-side=left][data-state=collapsed] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize{cursor:e-resize}[data-side=left] .\[\[data-side\=left\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-side=right][data-collapsible=offcanvas] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2{left:-.5rem}[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-side=right] .\[\[data-side\=right\]_\&\]\:cursor-e-resize{cursor:e-resize} diff --git a/docs/assets/careers.CF1DsxFi.css b/docs/assets/careers.CF1DsxFi.css deleted file mode 100644 index fa0669ea..00000000 --- a/docs/assets/careers.CF1DsxFi.css +++ /dev/null @@ -1 +0,0 @@ -*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 222 24% 8%;--foreground: 210 40% 98%;--card: 222 20% 12%;--card-foreground: 210 40% 98%;--popover: 222 20% 12%;--popover-foreground: 210 40% 98%;--primary: 218 100% 72%;--primary-foreground: 222 24% 8%;--secondary: 222 16% 18%;--secondary-foreground: 210 40% 98%;--muted: 222 16% 16%;--muted-foreground: 215 20% 65%;--accent: 218 100% 72%;--accent-foreground: 222 24% 8%;--destructive: 0 84% 60%;--destructive-foreground: 210 40% 98%;--border: 222 16% 20%;--input: 222 16% 16%;--ring: 218 100% 72%;--radius: .75rem;--dc-blue: 218 100% 72%;--dc-blue-glow: 218 100% 82%;--dc-dark: 222 24% 8%;--dc-card: 222 20% 12%;--dc-surface: 222 16% 18%;--dc-border: 222 16% 20%;--gradient-primary: linear-gradient(135deg, hsl(var(--dc-blue)), hsl(var(--dc-blue-glow)));--gradient-subtle: linear-gradient(180deg, hsl(var(--dc-card)), hsl(var(--dc-surface)));--shadow-elegant: 0 10px 30px -10px hsl(var(--dc-blue) / .2);--shadow-glow: 0 0 40px hsl(var(--dc-blue) / .3);--transition-smooth: all .24s cubic-bezier(.4, 0, .2, 1);--sidebar-background: 0 0% 98%;--sidebar-foreground: 240 5.3% 26.1%;--sidebar-primary: 240 5.9% 10%;--sidebar-primary-foreground: 0 0% 98%;--sidebar-accent: 240 4.8% 95.9%;--sidebar-accent-foreground: 240 5.9% 10%;--sidebar-border: 220 13% 91%;--sidebar-ring: 217.2 91.2% 59.8%}*{border-color:hsl(var(--border))}html{scroll-behavior:smooth;overflow-x:hidden;scrollbar-gutter:stable;overflow-y:scroll}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-feature-settings:"rlig" 1,"calt" 1;overflow-x:hidden;min-height:100vh;width:100%;margin:0;padding:0}*{box-sizing:border-box;max-width:100%}[data-radix-popper-content-wrapper]{z-index:50}[data-radix-dropdown-menu-content]{max-width:calc(100vw - 2rem)}.container{width:100%;max-width:100%}img,video,iframe,embed,object{max-width:100%;height:auto}.grid,.flex{min-width:0}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}@media(min-width:1400px){.container{max-width:1400px}}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.-bottom-12{bottom:-3rem}.-left-12{left:-3rem}.-left-4{left:-1rem}.-right-12{right:-3rem}.-right-2{right:-.5rem}.-right-4{right:-1rem}.-top-1{top:-.25rem}.-top-12{top:-3rem}.-top-2{top:-.5rem}.bottom-0{bottom:0}.bottom-2{bottom:.5rem}.bottom-4{bottom:1rem}.left-0{left:0}.left-1{left:.25rem}.left-1\/2{left:50%}.left-2{left:.5rem}.left-3{left:.75rem}.left-4{left:1rem}.left-\[50\%\]{left:50%}.left-full{left:100%}.right-0{right:0}.right-1{right:.25rem}.right-2{right:.5rem}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.top-1{top:.25rem}.top-1\.5{top:.375rem}.top-1\/2{top:50%}.top-12{top:3rem}.top-2{top:.5rem}.top-2\.5{top:.625rem}.top-3{top:.75rem}.top-3\.5{top:.875rem}.top-4{top:1rem}.top-\[1px\]{top:1px}.top-\[50\%\]{top:50%}.top-\[60\%\]{top:60%}.top-full{top:100%}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[1\]{z-index:1}.z-\[60\]{z-index:60}.order-1{order:1}.order-2{order:2}.order-3{order:3}.col-span-1{grid-column:span 1 / span 1}.col-span-2{grid-column:span 2 / span 2}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-1\.5{margin-left:.375rem;margin-right:.375rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3\.5{margin-left:.875rem;margin-right:.875rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-16{margin-top:4rem;margin-bottom:4rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.-ml-2{margin-left:-.5rem}.-ml-3{margin-left:-.75rem}.-ml-4{margin-left:-1rem}.-mt-4{margin-top:-1rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-20{margin-bottom:5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-20{margin-top:5rem}.mt-24{margin-top:6rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.line-clamp-4{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1 / 1}.aspect-video{aspect-ratio:16 / 9}.size-4{width:1rem;height:1rem}.h-0{height:0px}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-24{height:6rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-56{height:14rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[1px\]{height:1px}.h-\[calc\(100\%-12rem\)\]{height:calc(100% - 12rem)}.h-\[var\(--radix-navigation-menu-viewport-height\)\]{height:var(--radix-navigation-menu-viewport-height)}.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-svh{height:100svh}.max-h-32{max-height:8rem}.max-h-40{max-height:10rem}.max-h-96{max-height:24rem}.max-h-\[300px\]{max-height:300px}.max-h-\[70vh\]{max-height:70vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.max-h-screen{max-height:100vh}.min-h-0{min-height:0px}.min-h-\[2\.5rem\]{min-height:2.5rem}.min-h-\[32px\]{min-height:32px}.min-h-\[36px\]{min-height:36px}.min-h-\[3rem\]{min-height:3rem}.min-h-\[48px\]{min-height:48px}.min-h-\[80px\]{min-height:80px}.min-h-\[80vh\]{min-height:80vh}.min-h-screen{min-height:100vh}.min-h-svh{min-height:100svh}.w-0{width:0px}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-\[--sidebar-width\]{width:var(--sidebar-width)}.w-\[100px\]{width:100px}.w-\[1px\]{width:1px}.w-\[300px\]{width:300px}.w-\[95vw\]{width:95vw}.w-\[calc\(100\%-8px\)\]{width:calc(100% - 8px)}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-5{min-width:1.25rem}.min-w-\[12rem\]{min-width:12rem}.min-w-\[200px\]{min-width:200px}.min-w-\[270px\]{min-width:270px}.min-w-\[2rem\]{min-width:2rem}.min-w-\[8rem\]{min-width:8rem}.min-w-\[90px\]{min-width:90px}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-w-\[--skeleton-width\]{max-width:var(--skeleton-width)}.max-w-lg{max-width:32rem}.max-w-max{max-width:-moz-max-content;max-width:max-content}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-full{flex-basis:100%}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-8{--tw-translate-x: -2rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-px{--tw-translate-x: -1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-4{--tw-translate-x: 1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-px{--tw-translate-x: 1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-4{--tw-translate-y: 1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-8{--tw-translate-y: 2rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-2{--tw-rotate: -2deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-2{--tw-rotate: 2deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-90{--tw-scale-x: .9;--tw-scale-y: .9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes marquee-right{0%{transform:translate(-50%)}to{transform:translate(0)}}.animate-marquee-right{animation:marquee-right 50s linear infinite}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-text{-webkit-user-select:text;-moz-user-select:text;user-select:text}.resize{resize:both}.scroll-mt-20{scroll-margin-top:5rem}.scroll-mt-24{scroll-margin-top:6rem}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-12{gap:3rem}.gap-16{gap:4rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-10>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2.5rem * var(--tw-space-y-reverse))}.space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(3rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.justify-self-center{justify-self:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.rounded-t-\[10px\]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-t-lg{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.rounded-tl-sm{border-top-left-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-2{border-width:2px}.border-\[1\.5px\]{border-width:1.5px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-b-\[16px\]{border-bottom-width:16px}.border-l{border-left-width:1px}.border-l-\[28px\]{border-left-width:28px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-t-\[16px\]{border-top-width:16px}.border-dashed{border-style:dashed}.border-\[--color-border\]{border-color:var(--color-border)}.border-amber-400\/60{border-color:#fbbf2499}.border-background{border-color:hsl(var(--background))}.border-blue-500\/20{border-color:#3b82f633}.border-blue-500\/30{border-color:#3b82f64d}.border-blue-600{--tw-border-opacity: 1;border-color:rgb(37 99 235 / var(--tw-border-opacity, 1))}.border-border{border-color:hsl(var(--border))}.border-border\/50{border-color:hsl(var(--border) / .5)}.border-dc-blue\/20{border-color:hsl(var(--dc-blue) / .2)}.border-dc-border{border-color:hsl(var(--dc-border))}.border-dc-border\/50{border-color:hsl(var(--dc-border) / .5)}.border-destructive{border-color:hsl(var(--destructive))}.border-destructive\/20{border-color:hsl(var(--destructive) / .2)}.border-destructive\/50{border-color:hsl(var(--destructive) / .5)}.border-foreground\/20{border-color:hsl(var(--foreground) / .2)}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-green-500\/20{border-color:#22c55e33}.border-green-500\/30{border-color:#22c55e4d}.border-input{border-color:hsl(var(--input))}.border-muted-foreground\/20{border-color:hsl(var(--muted-foreground) / .2)}.border-primary{border-color:hsl(var(--primary))}.border-primary\/20{border-color:hsl(var(--primary) / .2)}.border-primary\/30{border-color:hsl(var(--primary) / .3)}.border-purple-500\/20{border-color:#a855f733}.border-purple-500\/30{border-color:#a855f74d}.border-red-500\/20{border-color:#ef444433}.border-sidebar-border{border-color:hsl(var(--sidebar-border))}.border-slate-700\/50{border-color:#33415580}.border-slate-800{--tw-border-opacity: 1;border-color:rgb(30 41 59 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-white\/20{border-color:#fff3}.border-b-transparent{border-bottom-color:transparent}.border-l-primary{border-left-color:hsl(var(--primary))}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-\[--color-bg\]{background-color:var(--color-bg)}.bg-accent{background-color:hsl(var(--accent))}.bg-accent\/50{background-color:hsl(var(--accent) / .5)}.bg-amber-600{--tw-bg-opacity: 1;background-color:rgb(217 119 6 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-background\/50{background-color:hsl(var(--background) / .5)}.bg-background\/80{background-color:hsl(var(--background) / .8)}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\/0{background-color:#0000}.bg-black\/80{background-color:#000c}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-500\/10{background-color:#3b82f61a}.bg-blue-500\/20{background-color:#3b82f633}.bg-blue-500\/5{background-color:#3b82f60d}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.bg-blue-600\/10{background-color:#2563eb1a}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-cyan-600{--tw-bg-opacity: 1;background-color:rgb(8 145 178 / var(--tw-bg-opacity, 1))}.bg-dc-blue\/10{background-color:hsl(var(--dc-blue) / .1)}.bg-dc-border{background-color:hsl(var(--dc-border))}.bg-dc-card{background-color:hsl(var(--dc-card))}.bg-dc-card\/30{background-color:hsl(var(--dc-card) / .3)}.bg-dc-card\/50{background-color:hsl(var(--dc-card) / .5)}.bg-dc-surface{background-color:hsl(var(--dc-surface))}.bg-dc-surface\/30{background-color:hsl(var(--dc-surface) / .3)}.bg-dc-surface\/50{background-color:hsl(var(--dc-surface) / .5)}.bg-dc-surface\/80{background-color:hsl(var(--dc-surface) / .8)}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive) / .1)}.bg-emerald-600{--tw-bg-opacity: 1;background-color:rgb(5 150 105 / var(--tw-bg-opacity, 1))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-500\/10{background-color:#6b72801a}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-500\/10{background-color:#22c55e1a}.bg-green-500\/20{background-color:#22c55e33}.bg-green-500\/5{background-color:#22c55e0d}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.bg-indigo-600{--tw-bg-opacity: 1;background-color:rgb(79 70 229 / var(--tw-bg-opacity, 1))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground\/50{background-color:hsl(var(--muted-foreground) / .5)}.bg-muted\/20{background-color:hsl(var(--muted) / .2)}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-orange-500\/10{background-color:#f973161a}.bg-orange-600{--tw-bg-opacity: 1;background-color:rgb(234 88 12 / var(--tw-bg-opacity, 1))}.bg-pink-600{--tw-bg-opacity: 1;background-color:rgb(219 39 119 / var(--tw-bg-opacity, 1))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-primary\/20{background-color:hsl(var(--primary) / .2)}.bg-primary\/5{background-color:hsl(var(--primary) / .05)}.bg-purple-500\/10{background-color:#a855f71a}.bg-purple-500\/20{background-color:#a855f733}.bg-purple-500\/5{background-color:#a855f70d}.bg-purple-600{--tw-bg-opacity: 1;background-color:rgb(147 51 234 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-500\/10{background-color:#ef44441a}.bg-red-500\/5{background-color:#ef44440d}.bg-rose-600{--tw-bg-opacity: 1;background-color:rgb(225 29 72 / var(--tw-bg-opacity, 1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-sidebar{background-color:hsl(var(--sidebar-background))}.bg-sidebar-border{background-color:hsl(var(--sidebar-border))}.bg-sky-600{--tw-bg-opacity: 1;background-color:rgb(2 132 199 / var(--tw-bg-opacity, 1))}.bg-slate-600{--tw-bg-opacity: 1;background-color:rgb(71 85 105 / var(--tw-bg-opacity, 1))}.bg-slate-900\/80{background-color:#0f172acc}.bg-stone-600{--tw-bg-opacity: 1;background-color:rgb(87 83 78 / var(--tw-bg-opacity, 1))}.bg-teal-600{--tw-bg-opacity: 1;background-color:rgb(13 148 136 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-amber-500\/20{--tw-gradient-from: rgb(245 158 11 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(245 158 11 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-background{--tw-gradient-from: hsl(var(--background)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--background) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-dc-card{--tw-gradient-from: hsl(var(--dc-card)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--dc-card) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-dc-card\/30{--tw-gradient-from: hsl(var(--dc-card) / .3) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--dc-card) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-dc-surface{--tw-gradient-from: hsl(var(--dc-surface)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--dc-surface) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-dc-surface\/50{--tw-gradient-from: hsl(var(--dc-surface) / .5) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--dc-surface) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-foreground{--tw-gradient-from: hsl(var(--foreground)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--foreground) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary\/10{--tw-gradient-from: hsl(var(--primary) / .1) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary\/5{--tw-gradient-from: hsl(var(--primary) / .05) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-900{--tw-gradient-from: #0f172a var(--tw-gradient-from-position);--tw-gradient-to: rgb(15 23 42 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-background{--tw-gradient-to: hsl(var(--background) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(var(--background)) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-orange-500\/25{--tw-gradient-to: rgb(249 115 22 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(249 115 22 / .25) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-primary\/5{--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(var(--primary) / .05) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-slate-800{--tw-gradient-to: rgb(30 41 59 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #1e293b var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-amber-500\/20{--tw-gradient-to: rgb(245 158 11 / .2) var(--tw-gradient-to-position)}.to-background{--tw-gradient-to: hsl(var(--background)) var(--tw-gradient-to-position)}.to-dc-card{--tw-gradient-to: hsl(var(--dc-card)) var(--tw-gradient-to-position)}.to-dc-card\/30{--tw-gradient-to: hsl(var(--dc-card) / .3) var(--tw-gradient-to-position)}.to-dc-surface{--tw-gradient-to: hsl(var(--dc-surface)) var(--tw-gradient-to-position)}.to-dc-surface\/30{--tw-gradient-to: hsl(var(--dc-surface) / .3) var(--tw-gradient-to-position)}.to-foreground\/70{--tw-gradient-to: hsl(var(--foreground) / .7) var(--tw-gradient-to-position)}.to-muted\/20{--tw-gradient-to: hsl(var(--muted) / .2) var(--tw-gradient-to-position)}.to-primary\/10{--tw-gradient-to: hsl(var(--primary) / .1) var(--tw-gradient-to-position)}.to-slate-950{--tw-gradient-to: #020617 var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.bg-\[size\:50px_50px\]{background-size:50px 50px}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.fill-current{fill:currentColor}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-12{padding:3rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[1px\]{padding:1px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-24{padding-top:6rem;padding-bottom:6rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-16{padding-bottom:4rem}.pb-20{padding-bottom:5rem}.pb-24{padding-bottom:6rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pl-10{padding-left:2.5rem}.pl-2\.5{padding-left:.625rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-8{padding-left:2rem}.pr-10{padding-right:2.5rem}.pr-12{padding-right:3rem}.pr-2{padding-right:.5rem}.pr-2\.5{padding-right:.625rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-12{padding-top:3rem}.pt-2{padding-top:.5rem}.pt-20{padding-top:5rem}.pt-3{padding-top:.75rem}.pt-32{padding-top:8rem}.pt-4{padding-top:1rem}.pt-40{padding-top:10rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-\[0\.8rem\]{font-size:.8rem}.text-\[10px\]{font-size:10px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-\[1\.1\]{line-height:1.1}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-dc-blue{color:hsl(var(--dc-blue))}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/50{color:hsl(var(--foreground) / .5)}.text-foreground\/70{color:hsl(var(--foreground) / .7)}.text-foreground\/90{color:hsl(var(--foreground) / .9)}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/50{color:hsl(var(--muted-foreground) / .5)}.text-muted-foreground\/60{color:hsl(var(--muted-foreground) / .6)}.text-orange-500{--tw-text-opacity: 1;color:rgb(249 115 22 / var(--tw-text-opacity, 1))}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-pink-500{--tw-text-opacity: 1;color:rgb(236 72 153 / var(--tw-text-opacity, 1))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-primary\/10{color:hsl(var(--primary) / .1)}.text-primary\/60{color:hsl(var(--primary) / .6)}.text-purple-400{--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.text-purple-500{--tw-text-opacity: 1;color:rgb(168 85 247 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-sidebar-foreground{color:hsl(var(--sidebar-foreground))}.text-sidebar-foreground\/70{color:hsl(var(--sidebar-foreground) / .7)}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-500{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\]{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-border));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-primary\/20{--tw-shadow-color: hsl(var(--primary) / .2);--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-ring{--tw-ring-color: hsl(var(--ring))}.ring-sidebar-ring{--tw-ring-color: hsl(var(--sidebar-ring))}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.drop-shadow-sm{--tw-drop-shadow: drop-shadow(0 1px 1px rgb(0 0 0 / .05));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)}.grayscale{--tw-grayscale: grayscale(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)}.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-md{--tw-backdrop-blur: blur(12px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);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{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[left\,right\,width\]{transition-property:left,right,width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[margin\,opa\]{transition-property:margin,opa;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,height\,padding\]{transition-property:width,height,padding;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.delay-1000{transition-delay:1s}.delay-200{transition-delay:.2s}.delay-300{transition-delay:.3s}.delay-500{transition-delay:.5s}.delay-700{transition-delay:.7s}.duration-1000{transition-duration:1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-700{transition-duration:.7s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{transition-timing-function:linear}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.fade-in-0{--tw-enter-opacity: 0}.fade-in-80{--tw-enter-opacity: .8}.zoom-in-95{--tw-enter-scale: .95}.duration-1000{animation-duration:1s}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.duration-500{animation-duration:.5s}.duration-700{animation-duration:.7s}.delay-1000{animation-delay:1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-500{animation-delay:.5s}.delay-700{animation-delay:.7s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{animation-timing-function:linear}.running{animation-play-state:running}.shadow-elegant{box-shadow:var(--shadow-elegant)}.transition-smooth{transition:var(--transition-smooth)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.line-clamp-4{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}@media(min-width:640px){.sm\:flex{min-width:0}}@media(min-width:768px){.md\:flex{min-width:0}}@media(min-width:1024px){.lg\:grid,.lg\:flex{min-width:0}}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.after\:pointer-events-none:after{content:var(--tw-content);pointer-events:none}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);inset:-.5rem}.after\:inset-y-0:after{content:var(--tw-content);top:0;bottom:0}.after\:bottom-3:after{content:var(--tw-content);bottom:.75rem}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:right-3:after{content:var(--tw-content);right:.75rem}.after\:w-1:after{content:var(--tw-content);width:.25rem}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.after\:-translate-x-1\/2:after{content:var(--tw-content);--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.after\:text-xs:after{content:var(--tw-content);font-size:.75rem;line-height:1rem}.after\:text-muted-foreground\/70:after{content:var(--tw-content);color:hsl(var(--muted-foreground) / .7)}.after\:transition-colors:after{content:var(--tw-content);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.after\:transition-transform:after{content:var(--tw-content);transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.after\:duration-200:after{content:var(--tw-content);transition-duration:.2s}.after\:content-\[\'β†—\'\]:after{--tw-content: "β†—";content:var(--tw-content)}.after\:duration-200:after{content:var(--tw-content);animation-duration:.2s}.first\:rounded-l-md:first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.first\:border-l:first-child{border-left-width:1px}.last\:rounded-r-md:last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.focus-within\:relative:focus-within{position:relative}.focus-within\:z-20:focus-within{z-index:20}.hover\:-translate-y-1:hover{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:rotate-0:hover{--tw-rotate: 0deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-105:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-110:hover{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-\[1\.01\]:hover{--tw-scale-x: 1.01;--tw-scale-y: 1.01;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-\[1\.02\]:hover{--tw-scale-x: 1.02;--tw-scale-y: 1.02;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.hover\:animate-pulse:hover{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.hover\:border-amber-400\/80:hover{border-color:#fbbf24cc}.hover\:border-border:hover{border-color:hsl(var(--border))}.hover\:border-border\/60:hover{border-color:hsl(var(--border) / .6)}.hover\:border-dc-blue\/20:hover{border-color:hsl(var(--dc-blue) / .2)}.hover\:border-dc-blue\/30:hover{border-color:hsl(var(--dc-blue) / .3)}.hover\:border-primary\/30:hover{border-color:hsl(var(--primary) / .3)}.hover\:border-primary\/40:hover{border-color:hsl(var(--primary) / .4)}.hover\:border-primary\/50:hover{border-color:hsl(var(--primary) / .5)}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-accent\/50:hover{background-color:hsl(var(--accent) / .5)}.hover\:bg-black\/90:hover{background-color:#000000e6}.hover\:bg-blue-500:hover{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-700:hover{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity, 1))}.hover\:bg-dc-blue\/5:hover{background-color:hsl(var(--dc-blue) / .05)}.hover\:bg-dc-border:hover{background-color:hsl(var(--dc-border))}.hover\:bg-dc-surface:hover{background-color:hsl(var(--dc-surface))}.hover\:bg-dc-surface\/50:hover{background-color:hsl(var(--dc-surface) / .5)}.hover\:bg-dc-surface\/80:hover{background-color:hsl(var(--dc-surface) / .8)}.hover\:bg-destructive\/80:hover{background-color:hsl(var(--destructive) / .8)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-gray-800:hover{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-primary:hover{background-color:hsl(var(--primary))}.hover\:bg-primary\/10:hover{background-color:hsl(var(--primary) / .1)}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-sidebar-accent:hover{background-color:hsl(var(--sidebar-accent))}.hover\:bg-transparent:hover{background-color:transparent}.hover\:from-amber-500\/25:hover{--tw-gradient-from: rgb(245 158 11 / .25) var(--tw-gradient-from-position);--tw-gradient-to: rgb(245 158 11 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:via-orange-500\/30:hover{--tw-gradient-to: rgb(249 115 22 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(249 115 22 / .3) var(--tw-gradient-via-position), var(--tw-gradient-to)}.hover\:to-amber-500\/25:hover{--tw-gradient-to: rgb(245 158 11 / .25) var(--tw-gradient-to-position)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-blue-700:hover{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-gray-600:hover{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.hover\:text-muted-foreground:hover{color:hsl(var(--muted-foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:text-primary-foreground:hover{color:hsl(var(--primary-foreground))}.hover\:text-sidebar-accent-foreground:hover{color:hsl(var(--sidebar-accent-foreground))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:text-white\/80:hover{color:#fffc}.hover\:underline:hover{text-decoration-line:underline}.hover\:no-underline:hover{text-decoration-line:none}.hover\:opacity-100:hover{opacity:1}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\]:hover{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-accent));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-lg:hover{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-xl:hover{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-amber-500\/20:hover{--tw-shadow-color: rgb(245 158 11 / .2);--tw-shadow: var(--tw-shadow-colored)}.hover\:shadow-dc-blue\/5:hover{--tw-shadow-color: hsl(var(--dc-blue) / .05);--tw-shadow: var(--tw-shadow-colored)}.hover\:shadow-primary\/20:hover{--tw-shadow-color: hsl(var(--primary) / .2);--tw-shadow: var(--tw-shadow-colored)}.hover\:ring-2:hover{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.hover\:ring-primary\/30:hover{--tw-ring-color: hsl(var(--primary) / .3)}.hover\:after\:-translate-y-0\.5:hover:after{content:var(--tw-content);--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:after\:translate-x-0\.5:hover:after{content:var(--tw-content);--tw-translate-x: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:hsl(var(--sidebar-border))}.hover\:after\:text-primary:hover:after{content:var(--tw-content);color:hsl(var(--primary))}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:bg-primary:focus{background-color:hsl(var(--primary))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:text-primary-foreground:focus{color:hsl(var(--primary-foreground))}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-primary\/50:focus{--tw-ring-color: hsl(var(--primary) / .5)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-sidebar-ring:focus-visible{--tw-ring-color: hsl(var(--sidebar-ring))}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width: 1px}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color: hsl(var(--background))}.active\:scale-95:active{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:bg-sidebar-accent:active{background-color:hsl(var(--sidebar-accent))}.active\:text-sidebar-accent-foreground:active{color:hsl(var(--sidebar-accent-foreground))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group\/menu-item:focus-within .group-focus-within\/menu-item\:opacity-100{opacity:1}.group:hover .group-hover\:translate-x-1{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:translate-x-2{--tw-translate-x: .5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:translate-y-1{--tw-translate-y: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:rotate-12{--tw-rotate: 12deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:border-dc-blue\/30{border-color:hsl(var(--dc-blue) / .3)}.group:hover .group-hover\:bg-black\/10{background-color:#0000001a}.group:hover .group-hover\:bg-black\/90{background-color:#000000e6}.group:hover .group-hover\:bg-dc-blue\/20{background-color:hsl(var(--dc-blue) / .2)}.group:hover .group-hover\:bg-dc-blue\/5{background-color:hsl(var(--dc-blue) / .05)}.group:hover .group-hover\:bg-primary\/20{background-color:hsl(var(--primary) / .2)}.group:hover .group-hover\:text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-dc-blue{color:hsl(var(--dc-blue))}.group:hover .group-hover\:text-foreground{color:hsl(var(--foreground))}.group:hover .group-hover\:text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-orange-700{--tw-text-opacity: 1;color:rgb(194 65 12 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-primary{color:hsl(var(--primary))}.group:hover .group-hover\:underline{text-decoration-line:underline}.group\/menu-item:hover .group-hover\/menu-item\:opacity-100,.group:hover .group-hover\:opacity-100{opacity:1}.group:hover .group-hover\:shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group.destructive .group-\[\.destructive\]\:border-muted\/40{border-color:hsl(var(--muted) / .4)}.group.toaster .group-\[\.toaster\]\:border-border{border-color:hsl(var(--border))}.group.toast .group-\[\.toast\]\:bg-muted{background-color:hsl(var(--muted))}.group.toast .group-\[\.toast\]\:bg-primary{background-color:hsl(var(--primary))}.group.toaster .group-\[\.toaster\]\:bg-background{background-color:hsl(var(--background))}.group.destructive .group-\[\.destructive\]\:text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.group.toast .group-\[\.toast\]\:text-muted-foreground{color:hsl(var(--muted-foreground))}.group.toast .group-\[\.toast\]\:text-primary-foreground{color:hsl(var(--primary-foreground))}.group.toaster .group-\[\.toaster\]\:text-foreground{color:hsl(var(--foreground))}.group.toaster .group-\[\.toaster\]\:shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group.destructive .group-\[\.destructive\]\:hover\:border-destructive\/30:hover{border-color:hsl(var(--destructive) / .3)}.group.destructive .group-\[\.destructive\]\:hover\:bg-destructive:hover{background-color:hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:hover\:text-destructive-foreground:hover{color:hsl(var(--destructive-foreground))}.group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover{--tw-text-opacity: 1;color:rgb(254 242 242 / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-destructive:focus{--tw-ring-color: hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:focus\:ring-red-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-red-600:focus{--tw-ring-offset-color: #dc2626}.peer\/menu-button:hover~.peer-hover\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.has-\[\[data-variant\=inset\]\]\:bg-sidebar:has([data-variant=inset]){background-color:hsl(var(--sidebar-background))}.has-\[\:disabled\]\:opacity-50:has(:disabled){opacity:.5}.group\/menu-item:has([data-sidebar=menu-action]) .group-has-\[\[data-sidebar\=menu-action\]\]\/menu-item\:pr-8{padding-right:2rem}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-selected\:bg-accent[aria-selected=true]{background-color:hsl(var(--accent))}.aria-selected\:bg-accent\/50[aria-selected=true]{background-color:hsl(var(--accent) / .5)}.aria-selected\:text-accent-foreground[aria-selected=true]{color:hsl(var(--accent-foreground))}.aria-selected\:text-muted-foreground[aria-selected=true]{color:hsl(var(--muted-foreground))}.aria-selected\:opacity-100[aria-selected=true]{opacity:1}.aria-selected\:opacity-30[aria-selected=true]{opacity:.3}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[panel-group-direction\=vertical\]\:h-px[data-panel-group-direction=vertical]{height:1px}.data-\[panel-group-direction\=vertical\]\:w-full[data-panel-group-direction=vertical]{width:100%}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:translate-x-5[data-state=checked]{--tw-translate-x: 1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked],.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x: var(--radix-toast-swipe-end-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x: var(--radix-toast-swipe-move-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:accordion-up .2s ease-out}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:accordion-down .2s ease-out}.data-\[panel-group-direction\=vertical\]\:flex-col[data-panel-group-direction=vertical]{flex-direction:column}.data-\[active\=true\]\:bg-sidebar-accent[data-active=true]{background-color:hsl(var(--sidebar-accent))}.data-\[active\]\:bg-accent\/50[data-active]{background-color:hsl(var(--accent) / .5)}.data-\[selected\=\'true\'\]\:bg-accent[data-selected=true]{background-color:hsl(var(--accent))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=active\]\:bg-primary[data-state=active],.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=on\]\:bg-accent[data-state=on],.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:hsl(var(--accent) / .5)}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:hsl(var(--secondary))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[active\=true\]\:font-medium[data-active=true]{font-weight:500}.data-\[active\=true\]\:text-sidebar-accent-foreground[data-active=true]{color:hsl(var(--sidebar-accent-foreground))}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:hsl(var(--accent-foreground))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=active\]\:text-primary-foreground[data-state=active],.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}.data-\[state\=on\]\:text-accent-foreground[data-state=on],.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:hsl(var(--accent-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}.data-\[state\=closed\]\:duration-300[data-state=closed]{transition-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{transition-duration:.5s}.data-\[motion\^\=from-\]\:animate-in[data-motion^=from-],.data-\[state\=open\]\:animate-in[data-state=open],.data-\[state\=visible\]\:animate-in[data-state=visible]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[motion\^\=to-\]\:animate-out[data-motion^=to-],.data-\[state\=closed\]\:animate-out[data-state=closed],.data-\[state\=hidden\]\:animate-out[data-state=hidden],.data-\[swipe\=end\]\:animate-out[data-swipe=end]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[motion\^\=from-\]\:fade-in[data-motion^=from-]{--tw-enter-opacity: 0}.data-\[motion\^\=to-\]\:fade-out[data-motion^=to-],.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\[state\=closed\]\:fade-out-80[data-state=closed]{--tw-exit-opacity: .8}.data-\[state\=hidden\]\:fade-out[data-state=hidden]{--tw-exit-opacity: 0}.data-\[state\=open\]\:fade-in-0[data-state=open],.data-\[state\=visible\]\:fade-in[data-state=visible]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-90[data-state=open]{--tw-enter-scale: .9}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[motion\=from-end\]\:slide-in-from-right-52[data-motion=from-end]{--tw-enter-translate-x: 13rem}.data-\[motion\=from-start\]\:slide-in-from-left-52[data-motion=from-start]{--tw-enter-translate-x: -13rem}.data-\[motion\=to-end\]\:slide-out-to-right-52[data-motion=to-end]{--tw-exit-translate-x: 13rem}.data-\[motion\=to-start\]\:slide-out-to-left-52[data-motion=to-start]{--tw-exit-translate-x: -13rem}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y: 100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x: -100%}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50%}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed],.data-\[state\=closed\]\:slide-out-to-right-full[data-state=closed]{--tw-exit-translate-x: 100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y: -100%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y: 100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x: -100%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x: 100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y: -100%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-top-full[data-state=open]{--tw-enter-translate-y: -100%}.data-\[state\=closed\]\:duration-300[data-state=closed]{animation-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{animation-duration:.5s}.data-\[panel-group-direction\=vertical\]\:after\:left-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);left:0}.data-\[panel-group-direction\=vertical\]\:after\:h-1[data-panel-group-direction=vertical]:after{content:var(--tw-content);height:.25rem}.data-\[panel-group-direction\=vertical\]\:after\:w-full[data-panel-group-direction=vertical]:after{content:var(--tw-content);width:100%}.data-\[panel-group-direction\=vertical\]\:after\:-translate-y-1\/2[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[panel-group-direction\=vertical\]\:after\:translate-x-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=open\]\:hover\:bg-sidebar-accent:hover[data-state=open]{background-color:hsl(var(--sidebar-accent))}.data-\[state\=open\]\:hover\:text-sidebar-accent-foreground:hover[data-state=open]{color:hsl(var(--sidebar-accent-foreground))}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\]{left:calc(var(--sidebar-width) * -1)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\]{right:calc(var(--sidebar-width) * -1)}.group[data-side=left] .group-data-\[side\=left\]\:-right-4{right:-1rem}.group[data-side=right] .group-data-\[side\=right\]\:left-0{left:0}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:-mt-8{margin-top:-2rem}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:hidden{display:none}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!size-8{width:2rem!important;height:2rem!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[--sidebar-width-icon\]{width:var(--sidebar-width-icon)}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)\)\]{width:calc(var(--sidebar-width-icon) + 1rem)}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)_\+2px\)\]{width:calc(var(--sidebar-width-icon) + 1rem + 2px)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:w-0{width:0px}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-side=right] .group-data-\[side\=right\]\:rotate-180,.group[data-state=open] .group-data-\[state\=open\]\:rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:overflow-hidden{overflow:hidden}.group[data-variant=floating] .group-data-\[variant\=floating\]\:rounded-lg{border-radius:var(--radius)}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border{border-width:1px}.group[data-side=left] .group-data-\[side\=left\]\:border-r{border-right-width:1px}.group[data-side=right] .group-data-\[side\=right\]\:border-l{border-left-width:1px}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border-sidebar-border{border-color:hsl(var(--sidebar-border))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!p-0{padding:0!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!p-2{padding:.5rem!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:opacity-0{opacity:0}.group[data-variant=floating] .group-data-\[variant\=floating\]\:shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:after\:left-full:after{content:var(--tw-content);left:100%}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:hover\:bg-sidebar:hover{background-color:hsl(var(--sidebar-background))}.peer\/menu-button[data-size=default]~.peer-data-\[size\=default\]\/menu-button\:top-1\.5{top:.375rem}.peer\/menu-button[data-size=lg]~.peer-data-\[size\=lg\]\/menu-button\:top-2\.5{top:.625rem}.peer\/menu-button[data-size=sm]~.peer-data-\[size\=sm\]\/menu-button\:top-1{top:.25rem}.peer[data-variant=inset]~.peer-data-\[variant\=inset\]\:min-h-\[calc\(100svh-theme\(spacing\.4\)\)\]{min-height:calc(100svh - 1rem)}.peer\/menu-button[data-active=true]~.peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}.dark\:border-destructive:is(.dark *){border-color:hsl(var(--destructive))}.dark\:border-gray-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:text-amber-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.dark\:text-gray-300:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.dark\:text-orange-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.dark\:hover\:text-gray-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.group:hover .dark\:group-hover\:text-amber-300:is(.dark *){--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity, 1))}.group:hover .dark\:group-hover\:text-orange-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity, 1))}@media(min-width:640px){.sm\:-left-8{left:-2rem}.sm\:-right-8{right:-2rem}.sm\:bottom-0{bottom:0}.sm\:right-0{right:0}.sm\:right-4{right:1rem}.sm\:top-4{top:1rem}.sm\:top-auto{top:auto}.sm\:order-1{order:1}.sm\:order-3{order:3}.sm\:col-span-2{grid-column:span 2 / span 2}.sm\:mx-0{margin-left:0;margin-right:0}.sm\:mb-2{margin-bottom:.5rem}.sm\:mb-3{margin-bottom:.75rem}.sm\:mb-4{margin-bottom:1rem}.sm\:mt-0{margin-top:0}.sm\:mt-4{margin-top:1rem}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:h-12{height:3rem}.sm\:h-4{height:1rem}.sm\:h-5{height:1.25rem}.sm\:h-6{height:1.5rem}.sm\:h-8{height:2rem}.sm\:w-4{width:1rem}.sm\:w-5{width:1.25rem}.sm\:w-6{width:1.5rem}.sm\:w-8{width:2rem}.sm\:w-\[400px\]{width:400px}.sm\:w-auto{width:auto}.sm\:min-w-\[160px\]{min-width:160px}.sm\:max-w-2xl{max-width:42rem}.sm\:max-w-sm{max-width:24rem}.sm\:basis-1\/2{flex-basis:50%}.sm\:basis-full{flex-basis:100%}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:flex-wrap{flex-wrap:wrap}.sm\:items-start{align-items:flex-start}.sm\:items-center{align-items:center}.sm\:justify-start{justify-content:flex-start}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2{gap:.5rem}.sm\:gap-2\.5{gap:.625rem}.sm\:gap-3{gap:.75rem}.sm\:gap-4{gap:1rem}.sm\:gap-6{gap:1.5rem}.sm\:gap-8{gap:2rem}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.sm\:space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:p-0{padding:0}.sm\:p-1{padding:.25rem}.sm\:p-10{padding:2.5rem}.sm\:p-3{padding:.75rem}.sm\:p-4{padding:1rem}.sm\:p-6{padding:1.5rem}.sm\:p-8{padding:2rem}.sm\:px-0{padding-left:0;padding-right:0}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pr-12{padding-right:3rem}.sm\:pr-8{padding-right:2rem}.sm\:text-left{text-align:left}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-5xl{font-size:3rem;line-height:1}.sm\:text-6xl{font-size:3.75rem;line-height:1}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}.sm\:text-xs{font-size:.75rem;line-height:1rem}.data-\[state\=open\]\:sm\:slide-in-from-bottom-full[data-state=open]{--tw-enter-translate-y: 100%}}@media(min-width:768px){.md\:absolute{position:absolute}.md\:-ml-4{margin-left:-1rem}.md\:mb-0{margin-bottom:0}.md\:mb-10{margin-bottom:2.5rem}.md\:mb-12{margin-bottom:3rem}.md\:mb-14{margin-bottom:3.5rem}.md\:mb-16{margin-bottom:4rem}.md\:mb-3{margin-bottom:.75rem}.md\:mb-4{margin-bottom:1rem}.md\:mb-6{margin-bottom:1.5rem}.md\:mb-8{margin-bottom:2rem}.md\:mt-12{margin-top:3rem}.md\:mt-16{margin-top:4rem}.md\:block{display:block}.md\:flex{display:flex}.md\:h-14{height:3.5rem}.md\:h-7{height:1.75rem}.md\:w-14{width:3.5rem}.md\:w-7{width:1.75rem}.md\:w-\[var\(--radix-navigation-menu-viewport-width\)\]{width:var(--radix-navigation-menu-viewport-width)}.md\:w-auto{width:auto}.md\:max-w-\[420px\]{max-width:420px}.md\:flex-shrink-0{flex-shrink:0}.md\:basis-1\/2{flex-basis:50%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}.md\:gap-4{gap:1rem}.md\:gap-6{gap:1.5rem}.md\:gap-8{gap:2rem}.md\:space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(3rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3rem * var(--tw-space-y-reverse))}.md\:p-12{padding:3rem}.md\:p-16{padding:4rem}.md\:p-8{padding:2rem}.md\:px-8{padding-left:2rem;padding-right:2rem}.md\:py-16{padding-top:4rem;padding-bottom:4rem}.md\:py-20{padding-top:5rem;padding-bottom:5rem}.md\:py-24{padding-top:6rem;padding-bottom:6rem}.md\:py-4{padding-top:1rem;padding-bottom:1rem}.md\:pb-20{padding-bottom:5rem}.md\:pb-24{padding-bottom:6rem}.md\:pb-32{padding-bottom:8rem}.md\:pl-4{padding-left:1rem}.md\:pt-40{padding-top:10rem}.md\:pt-48{padding-top:12rem}.md\:pt-56{padding-top:14rem}.md\:pt-8{padding-top:2rem}.md\:text-left{text-align:left}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-6xl{font-size:3.75rem;line-height:1}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}.md\:opacity-0{opacity:0}.after\:md\:hidden:after{content:var(--tw-content);display:none}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:m-2{margin:.5rem}.peer[data-state=collapsed][data-variant=inset]~.md\:peer-data-\[state\=collapsed\]\:peer-data-\[variant\=inset\]\:ml-2{margin-left:.5rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:ml-0{margin-left:0}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:rounded-xl{border-radius:.75rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}}@media(min-width:1024px){.lg\:order-1{order:1}.lg\:order-2{order:2}.lg\:col-span-1{grid-column:span 1 / span 1}.lg\:col-span-6{grid-column:span 6 / span 6}.lg\:mx-0{margin-left:0;margin-right:0}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:grid{display:grid}.lg\:hidden{display:none}.lg\:max-w-4xl{max-width:56rem}.lg\:max-w-none{max-width:none}.lg\:basis-1\/3{flex-basis:33.333333%}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:items-center{align-items:center}.lg\:justify-start{justify-content:flex-start}.lg\:justify-end{justify-content:flex-end}.lg\:gap-12{gap:3rem}.lg\:gap-16{gap:4rem}.lg\:gap-20{gap:5rem}.lg\:justify-self-auto{justify-self:auto}.lg\:rounded-2xl{border-radius:1rem}.lg\:text-left{text-align:left}.lg\:text-5xl{font-size:3rem;line-height:1}.lg\:text-6xl{font-size:3.75rem;line-height:1}.lg\:text-7xl{font-size:4.5rem;line-height:1}}.\[\&\:has\(\[aria-selected\]\)\]\:bg-accent:has([aria-selected]){background-color:hsl(var(--accent))}.first\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-l-md:has([aria-selected]):first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.last\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-r-md:has([aria-selected]):last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[aria-selected\]\.day-outside\)\]\:bg-accent\/50:has([aria-selected].day-outside){background-color:hsl(var(--accent) / .5)}.\[\&\:has\(\[aria-selected\]\.day-range-end\)\]\:rounded-r-md:has([aria-selected].day-range-end){border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>span\:last-child\]\:truncate>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y: -3px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:left-4>svg{left:1rem}.\[\&\>svg\]\:top-4>svg{top:1rem}.\[\&\>svg\]\:size-3\.5>svg{width:.875rem;height:.875rem}.\[\&\>svg\]\:size-4>svg{width:1rem;height:1rem}.\[\&\>svg\]\:h-2\.5>svg{height:.625rem}.\[\&\>svg\]\:h-3>svg{height:.75rem}.\[\&\>svg\]\:w-2\.5>svg{width:.625rem}.\[\&\>svg\]\:w-3>svg{width:.75rem}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:text-destructive>svg{color:hsl(var(--destructive))}.\[\&\>svg\]\:text-foreground>svg{color:hsl(var(--foreground))}.\[\&\>svg\]\:text-muted-foreground>svg{color:hsl(var(--muted-foreground))}.\[\&\>svg\]\:text-sidebar-accent-foreground>svg{color:hsl(var(--sidebar-accent-foreground))}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:1.75rem}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0px}.\[\&\[data-panel-group-direction\=vertical\]\>div\]\:rotate-90[data-panel-group-direction=vertical]>div{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:hsl(var(--muted-foreground))}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke="#ccc"]{stroke:hsl(var(--border) / .5)}.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:hsl(var(--border))}.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-layer\]\:outline-none .recharts-layer{outline:2px solid transparent;outline-offset:2px}.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector,.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:hsl(var(--muted))}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-sector\]\:outline-none .recharts-sector,.\[\&_\.recharts-surface\]\:outline-none .recharts-surface{outline:2px solid transparent;outline-offset:2px}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-top:.75rem;padding-bottom:.75rem}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:1.25rem}.\[\&_p\]\:leading-relaxed p{line-height:1.625}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{right:-.5rem}[data-side=left][data-state=collapsed] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize{cursor:e-resize}[data-side=left] .\[\[data-side\=left\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-side=right][data-collapsible=offcanvas] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2{left:-.5rem}[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-side=right] .\[\[data-side\=right\]_\&\]\:cursor-e-resize{cursor:e-resize} diff --git a/docs/assets/chart-column.BMc3CsP9.js b/docs/assets/chart-column.OLWkJ9on.js similarity index 87% rename from docs/assets/chart-column.BMc3CsP9.js rename to docs/assets/chart-column.OLWkJ9on.js index 4e3ed2a0..91c4cdb8 100644 --- a/docs/assets/chart-column.BMc3CsP9.js +++ b/docs/assets/chart-column.OLWkJ9on.js @@ -1,4 +1,4 @@ -import{c as a}from"./createLucideIcon.CJ67VFfW.js";/** +import{c as a}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/check.eE7yIrYi.js b/docs/assets/check.BxIsZM2Y.js similarity index 83% rename from docs/assets/check.eE7yIrYi.js rename to docs/assets/check.BxIsZM2Y.js index d9ef3ea7..1e95e38f 100644 --- a/docs/assets/check.eE7yIrYi.js +++ b/docs/assets/check.BxIsZM2Y.js @@ -1,4 +1,4 @@ -import{c}from"./createLucideIcon.CJ67VFfW.js";/** +import{c}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/chevron-down.B6Si1q7U.js b/docs/assets/chevron-down.BAQmmeQZ.js similarity index 82% rename from docs/assets/chevron-down.B6Si1q7U.js rename to docs/assets/chevron-down.BAQmmeQZ.js index fc421c5e..b5372600 100644 --- a/docs/assets/chevron-down.B6Si1q7U.js +++ b/docs/assets/chevron-down.BAQmmeQZ.js @@ -1,4 +1,4 @@ -import{c as o}from"./createLucideIcon.CJ67VFfW.js";/** +import{c as o}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/chevron-right.BwvlrKau.js b/docs/assets/chevron-right.D8b_fnk7.js similarity index 82% rename from docs/assets/chevron-right.BwvlrKau.js rename to docs/assets/chevron-right.D8b_fnk7.js index 7fdfe7a3..9a9c302a 100644 --- a/docs/assets/chevron-right.BwvlrKau.js +++ b/docs/assets/chevron-right.D8b_fnk7.js @@ -1,4 +1,4 @@ -import{c as t}from"./createLucideIcon.CJ67VFfW.js";/** +import{c as t}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/circle-alert.BAM225Eq.js b/docs/assets/circle-alert.DXvzqdgU.js similarity index 87% rename from docs/assets/circle-alert.BAM225Eq.js rename to docs/assets/circle-alert.DXvzqdgU.js index 54398f12..e9ef8851 100644 --- a/docs/assets/circle-alert.BAM225Eq.js +++ b/docs/assets/circle-alert.DXvzqdgU.js @@ -1,4 +1,4 @@ -import{c as e}from"./createLucideIcon.CJ67VFfW.js";/** +import{c as e}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/circle-check-big.DKhWBpjr.js b/docs/assets/circle-check-big.B7sFB_G4.js similarity index 86% rename from docs/assets/circle-check-big.DKhWBpjr.js rename to docs/assets/circle-check-big.B7sFB_G4.js index 162ab5d2..686358d9 100644 --- a/docs/assets/circle-check-big.DKhWBpjr.js +++ b/docs/assets/circle-check-big.B7sFB_G4.js @@ -1,4 +1,4 @@ -import{c}from"./createLucideIcon.CJ67VFfW.js";/** +import{c}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/circle-x.C5ZnEmA8.js b/docs/assets/circle-x.FG6uLdJu.js similarity index 86% rename from docs/assets/circle-x.C5ZnEmA8.js rename to docs/assets/circle-x.FG6uLdJu.js index b521701c..cd33d660 100644 --- a/docs/assets/circle-x.C5ZnEmA8.js +++ b/docs/assets/circle-x.FG6uLdJu.js @@ -1,4 +1,4 @@ -import{c}from"./createLucideIcon.CJ67VFfW.js";/** +import{c}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/circle.KGuz404-.js b/docs/assets/circle.KGuz404-.js deleted file mode 100644 index c61da1bb..00000000 --- a/docs/assets/circle.KGuz404-.js +++ /dev/null @@ -1,6 +0,0 @@ -import{j}from"./jsx-runtime.D3GSbgeI.js";import{c as Ae}from"./button.nz_ACiet.js";import{a as Re,u as Xt}from"./utils.XhT4HDO9.js";import{r as R}from"./index.BaMLtrTp.js";import{r as Se,P as Rt}from"./index.BlsO67so.js";import{u as yt,c as Ce}from"./index.vFQDSFae.js";import{u as Pe}from"./index.CyN3cLSG.js";import{c as Oe}from"./createLucideIcon.CJ67VFfW.js";const Ee=Ae("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function oo({className:t,variant:e,...n}){return j.jsx("div",{className:Re(Ee({variant:e}),t),...n})}const Le=["top","right","bottom","left"],Z=Math.min,W=Math.max,at=Math.round,ct=Math.floor,I=t=>({x:t,y:t}),De={left:"right",right:"left",bottom:"top",top:"bottom"},Me={start:"end",end:"start"};function vt(t,e,n){return W(t,Z(e,n))}function q(t,e){return typeof t=="function"?t(e):t}function U(t){return t.split("-")[0]}function tt(t){return t.split("-")[1]}function St(t){return t==="x"?"y":"x"}function Ct(t){return t==="y"?"height":"width"}const Te=new Set(["top","bottom"]);function V(t){return Te.has(U(t))?"y":"x"}function Pt(t){return St(V(t))}function $e(t,e,n){n===void 0&&(n=!1);const o=tt(t),r=Pt(t),i=Ct(r);let s=r==="x"?o===(n?"end":"start")?"right":"left":o==="start"?"bottom":"top";return e.reference[i]>e.floating[i]&&(s=ft(s)),[s,ft(s)]}function ke(t){const e=ft(t);return[bt(t),e,bt(e)]}function bt(t){return t.replace(/start|end/g,e=>Me[e])}const kt=["left","right"],Ft=["right","left"],Fe=["top","bottom"],Ne=["bottom","top"];function We(t,e,n){switch(t){case"top":case"bottom":return n?e?Ft:kt:e?kt:Ft;case"left":case"right":return e?Fe:Ne;default:return[]}}function He(t,e,n,o){const r=tt(t);let i=We(U(t),n==="start",o);return r&&(i=i.map(s=>s+"-"+r),e&&(i=i.concat(i.map(bt)))),i}function ft(t){return t.replace(/left|right|bottom|top/g,e=>De[e])}function Be(t){return{top:0,right:0,bottom:0,left:0,...t}}function Yt(t){return typeof t!="number"?Be(t):{top:t,right:t,bottom:t,left:t}}function ut(t){const{x:e,y:n,width:o,height:r}=t;return{width:o,height:r,top:n,left:e,right:e+o,bottom:n+r,x:e,y:n}}function Nt(t,e,n){let{reference:o,floating:r}=t;const i=V(e),s=Pt(e),c=Ct(s),l=U(e),a=i==="y",f=o.x+o.width/2-r.width/2,u=o.y+o.height/2-r.height/2,m=o[c]/2-r[c]/2;let d;switch(l){case"top":d={x:f,y:o.y-r.height};break;case"bottom":d={x:f,y:o.y+o.height};break;case"right":d={x:o.x+o.width,y:u};break;case"left":d={x:o.x-r.width,y:u};break;default:d={x:o.x,y:o.y}}switch(tt(e)){case"start":d[s]-=m*(n&&a?-1:1);break;case"end":d[s]+=m*(n&&a?-1:1);break}return d}const _e=async(t,e,n)=>{const{placement:o="bottom",strategy:r="absolute",middleware:i=[],platform:s}=n,c=i.filter(Boolean),l=await(s.isRTL==null?void 0:s.isRTL(e));let a=await s.getElementRects({reference:t,floating:e,strategy:r}),{x:f,y:u}=Nt(a,o,l),m=o,d={},p=0;for(let h=0;h({name:"arrow",options:t,async fn(e){const{x:n,y:o,placement:r,rects:i,platform:s,elements:c,middlewareData:l}=e,{element:a,padding:f=0}=q(t,e)||{};if(a==null)return{};const u=Yt(f),m={x:n,y:o},d=Pt(r),p=Ct(d),h=await s.getDimensions(a),w=d==="y",g=w?"top":"left",x=w?"bottom":"right",b=w?"clientHeight":"clientWidth",y=i.reference[p]+i.reference[d]-m[d]-i.floating[p],v=m[d]-i.reference[d],C=await(s.getOffsetParent==null?void 0:s.getOffsetParent(a));let S=C?C[b]:0;(!S||!await(s.isElement==null?void 0:s.isElement(C)))&&(S=c.floating[b]||i.floating[p]);const M=y/2-v/2,F=S/2-h[p]/2-1,D=Z(u[g],F),$=Z(u[x],F),k=D,O=S-h[p]-$,P=S/2-h[p]/2+M,N=vt(k,P,O),E=!l.arrow&&tt(r)!=null&&P!==N&&i.reference[p]/2-(PP<=0)){var $,k;const P=((($=i.flip)==null?void 0:$.index)||0)+1,N=S[P];if(N&&(!(u==="alignment"?x!==V(N):!1)||D.every(A=>V(A.placement)===x?A.overflows[0]>0:!0)))return{data:{index:P,overflows:D},reset:{placement:N}};let E=(k=D.filter(L=>L.overflows[0]<=0).sort((L,A)=>L.overflows[1]-A.overflows[1])[0])==null?void 0:k.placement;if(!E)switch(d){case"bestFit":{var O;const L=(O=D.filter(A=>{if(C){const T=V(A.placement);return T===x||T==="y"}return!0}).map(A=>[A.placement,A.overflows.filter(T=>T>0).reduce((T,z)=>T+z,0)]).sort((A,T)=>A[1]-T[1])[0])==null?void 0:O[0];L&&(E=L);break}case"initialPlacement":E=c;break}if(r!==E)return{reset:{placement:E}}}return{}}}};function Wt(t,e){return{top:t.top-e.height,right:t.right-e.width,bottom:t.bottom-e.height,left:t.left-e.width}}function Ht(t){return Le.some(e=>t[e]>=0)}const je=function(t){return t===void 0&&(t={}),{name:"hide",options:t,async fn(e){const{rects:n}=e,{strategy:o="referenceHidden",...r}=q(t,e);switch(o){case"referenceHidden":{const i=await ot(e,{...r,elementContext:"reference"}),s=Wt(i,n.reference);return{data:{referenceHiddenOffsets:s,referenceHidden:Ht(s)}}}case"escaped":{const i=await ot(e,{...r,altBoundary:!0}),s=Wt(i,n.floating);return{data:{escapedOffsets:s,escaped:Ht(s)}}}default:return{}}}}},qt=new Set(["left","top"]);async function Ie(t,e){const{placement:n,platform:o,elements:r}=t,i=await(o.isRTL==null?void 0:o.isRTL(r.floating)),s=U(n),c=tt(n),l=V(n)==="y",a=qt.has(s)?-1:1,f=i&&l?-1:1,u=q(e,t);let{mainAxis:m,crossAxis:d,alignmentAxis:p}=typeof u=="number"?{mainAxis:u,crossAxis:0,alignmentAxis:null}:{mainAxis:u.mainAxis||0,crossAxis:u.crossAxis||0,alignmentAxis:u.alignmentAxis};return c&&typeof p=="number"&&(d=c==="end"?p*-1:p),l?{x:d*f,y:m*a}:{x:m*a,y:d*f}}const Xe=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(e){var n,o;const{x:r,y:i,placement:s,middlewareData:c}=e,l=await Ie(e,t);return s===((n=c.offset)==null?void 0:n.placement)&&(o=c.arrow)!=null&&o.alignmentOffset?{}:{x:r+l.x,y:i+l.y,data:{...l,placement:s}}}}},Ye=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(e){const{x:n,y:o,placement:r}=e,{mainAxis:i=!0,crossAxis:s=!1,limiter:c={fn:w=>{let{x:g,y:x}=w;return{x:g,y:x}}},...l}=q(t,e),a={x:n,y:o},f=await ot(e,l),u=V(U(r)),m=St(u);let d=a[m],p=a[u];if(i){const w=m==="y"?"top":"left",g=m==="y"?"bottom":"right",x=d+f[w],b=d-f[g];d=vt(x,d,b)}if(s){const w=u==="y"?"top":"left",g=u==="y"?"bottom":"right",x=p+f[w],b=p-f[g];p=vt(x,p,b)}const h=c.fn({...e,[m]:d,[u]:p});return{...h,data:{x:h.x-n,y:h.y-o,enabled:{[m]:i,[u]:s}}}}}},qe=function(t){return t===void 0&&(t={}),{options:t,fn(e){const{x:n,y:o,placement:r,rects:i,middlewareData:s}=e,{offset:c=0,mainAxis:l=!0,crossAxis:a=!0}=q(t,e),f={x:n,y:o},u=V(r),m=St(u);let d=f[m],p=f[u];const h=q(c,e),w=typeof h=="number"?{mainAxis:h,crossAxis:0}:{mainAxis:0,crossAxis:0,...h};if(l){const b=m==="y"?"height":"width",y=i.reference[m]-i.floating[b]+w.mainAxis,v=i.reference[m]+i.reference[b]-w.mainAxis;dv&&(d=v)}if(a){var g,x;const b=m==="y"?"width":"height",y=qt.has(U(r)),v=i.reference[u]-i.floating[b]+(y&&((g=s.offset)==null?void 0:g[u])||0)+(y?0:w.crossAxis),C=i.reference[u]+i.reference[b]+(y?0:((x=s.offset)==null?void 0:x[u])||0)-(y?w.crossAxis:0);pC&&(p=C)}return{[m]:d,[u]:p}}}},Ue=function(t){return t===void 0&&(t={}),{name:"size",options:t,async fn(e){var n,o;const{placement:r,rects:i,platform:s,elements:c}=e,{apply:l=()=>{},...a}=q(t,e),f=await ot(e,a),u=U(r),m=tt(r),d=V(r)==="y",{width:p,height:h}=i.floating;let w,g;u==="top"||u==="bottom"?(w=u,g=m===(await(s.isRTL==null?void 0:s.isRTL(c.floating))?"start":"end")?"left":"right"):(g=u,w=m==="end"?"top":"bottom");const x=h-f.top-f.bottom,b=p-f.left-f.right,y=Z(h-f[w],x),v=Z(p-f[g],b),C=!e.middlewareData.shift;let S=y,M=v;if((n=e.middlewareData.shift)!=null&&n.enabled.x&&(M=b),(o=e.middlewareData.shift)!=null&&o.enabled.y&&(S=x),C&&!m){const D=W(f.left,0),$=W(f.right,0),k=W(f.top,0),O=W(f.bottom,0);d?M=p-2*(D!==0||$!==0?D+$:W(f.left,f.right)):S=h-2*(k!==0||O!==0?k+O:W(f.top,f.bottom))}await l({...e,availableWidth:M,availableHeight:S});const F=await s.getDimensions(c.floating);return p!==F.width||h!==F.height?{reset:{rects:!0}}:{}}}};function pt(){return typeof window<"u"}function et(t){return Ut(t)?(t.nodeName||"").toLowerCase():"#document"}function H(t){var e;return(t==null||(e=t.ownerDocument)==null?void 0:e.defaultView)||window}function Y(t){var e;return(e=(Ut(t)?t.ownerDocument:t.document)||window.document)==null?void 0:e.documentElement}function Ut(t){return pt()?t instanceof Node||t instanceof H(t).Node:!1}function B(t){return pt()?t instanceof Element||t instanceof H(t).Element:!1}function X(t){return pt()?t instanceof HTMLElement||t instanceof H(t).HTMLElement:!1}function Bt(t){return!pt()||typeof ShadowRoot>"u"?!1:t instanceof ShadowRoot||t instanceof H(t).ShadowRoot}const Ze=new Set(["inline","contents"]);function it(t){const{overflow:e,overflowX:n,overflowY:o,display:r}=_(t);return/auto|scroll|overlay|hidden|clip/.test(e+o+n)&&!Ze.has(r)}const Ke=new Set(["table","td","th"]);function Ge(t){return Ke.has(et(t))}const Je=[":popover-open",":modal"];function mt(t){return Je.some(e=>{try{return t.matches(e)}catch{return!1}})}const Qe=["transform","translate","scale","rotate","perspective"],tn=["transform","translate","scale","rotate","perspective","filter"],en=["paint","layout","strict","content"];function Ot(t){const e=Et(),n=B(t)?_(t):t;return Qe.some(o=>n[o]?n[o]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!e&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!e&&(n.filter?n.filter!=="none":!1)||tn.some(o=>(n.willChange||"").includes(o))||en.some(o=>(n.contain||"").includes(o))}function nn(t){let e=K(t);for(;X(e)&&!Q(e);){if(Ot(e))return e;if(mt(e))return null;e=K(e)}return null}function Et(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const on=new Set(["html","body","#document"]);function Q(t){return on.has(et(t))}function _(t){return H(t).getComputedStyle(t)}function ht(t){return B(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function K(t){if(et(t)==="html")return t;const e=t.assignedSlot||t.parentNode||Bt(t)&&t.host||Y(t);return Bt(e)?e.host:e}function Zt(t){const e=K(t);return Q(e)?t.ownerDocument?t.ownerDocument.body:t.body:X(e)&&it(e)?e:Zt(e)}function rt(t,e,n){var o;e===void 0&&(e=[]),n===void 0&&(n=!0);const r=Zt(t),i=r===((o=t.ownerDocument)==null?void 0:o.body),s=H(r);if(i){const c=At(s);return e.concat(s,s.visualViewport||[],it(r)?r:[],c&&n?rt(c):[])}return e.concat(r,rt(r,[],n))}function At(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function Kt(t){const e=_(t);let n=parseFloat(e.width)||0,o=parseFloat(e.height)||0;const r=X(t),i=r?t.offsetWidth:n,s=r?t.offsetHeight:o,c=at(n)!==i||at(o)!==s;return c&&(n=i,o=s),{width:n,height:o,$:c}}function Lt(t){return B(t)?t:t.contextElement}function J(t){const e=Lt(t);if(!X(e))return I(1);const n=e.getBoundingClientRect(),{width:o,height:r,$:i}=Kt(e);let s=(i?at(n.width):n.width)/o,c=(i?at(n.height):n.height)/r;return(!s||!Number.isFinite(s))&&(s=1),(!c||!Number.isFinite(c))&&(c=1),{x:s,y:c}}const rn=I(0);function Gt(t){const e=H(t);return!Et()||!e.visualViewport?rn:{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}}function sn(t,e,n){return e===void 0&&(e=!1),!n||e&&n!==H(t)?!1:e}function G(t,e,n,o){e===void 0&&(e=!1),n===void 0&&(n=!1);const r=t.getBoundingClientRect(),i=Lt(t);let s=I(1);e&&(o?B(o)&&(s=J(o)):s=J(t));const c=sn(i,n,o)?Gt(i):I(0);let l=(r.left+c.x)/s.x,a=(r.top+c.y)/s.y,f=r.width/s.x,u=r.height/s.y;if(i){const m=H(i),d=o&&B(o)?H(o):o;let p=m,h=At(p);for(;h&&o&&d!==p;){const w=J(h),g=h.getBoundingClientRect(),x=_(h),b=g.left+(h.clientLeft+parseFloat(x.paddingLeft))*w.x,y=g.top+(h.clientTop+parseFloat(x.paddingTop))*w.y;l*=w.x,a*=w.y,f*=w.x,u*=w.y,l+=b,a+=y,p=H(h),h=At(p)}}return ut({width:f,height:u,x:l,y:a})}function gt(t,e){const n=ht(t).scrollLeft;return e?e.left+n:G(Y(t)).left+n}function Jt(t,e){const n=t.getBoundingClientRect(),o=n.left+e.scrollLeft-gt(t,n),r=n.top+e.scrollTop;return{x:o,y:r}}function cn(t){let{elements:e,rect:n,offsetParent:o,strategy:r}=t;const i=r==="fixed",s=Y(o),c=e?mt(e.floating):!1;if(o===s||c&&i)return n;let l={scrollLeft:0,scrollTop:0},a=I(1);const f=I(0),u=X(o);if((u||!u&&!i)&&((et(o)!=="body"||it(s))&&(l=ht(o)),X(o))){const d=G(o);a=J(o),f.x=d.x+o.clientLeft,f.y=d.y+o.clientTop}const m=s&&!u&&!i?Jt(s,l):I(0);return{width:n.width*a.x,height:n.height*a.y,x:n.x*a.x-l.scrollLeft*a.x+f.x+m.x,y:n.y*a.y-l.scrollTop*a.y+f.y+m.y}}function ln(t){return Array.from(t.getClientRects())}function an(t){const e=Y(t),n=ht(t),o=t.ownerDocument.body,r=W(e.scrollWidth,e.clientWidth,o.scrollWidth,o.clientWidth),i=W(e.scrollHeight,e.clientHeight,o.scrollHeight,o.clientHeight);let s=-n.scrollLeft+gt(t);const c=-n.scrollTop;return _(o).direction==="rtl"&&(s+=W(e.clientWidth,o.clientWidth)-r),{width:r,height:i,x:s,y:c}}const _t=25;function fn(t,e){const n=H(t),o=Y(t),r=n.visualViewport;let i=o.clientWidth,s=o.clientHeight,c=0,l=0;if(r){i=r.width,s=r.height;const f=Et();(!f||f&&e==="fixed")&&(c=r.offsetLeft,l=r.offsetTop)}const a=gt(o);if(a<=0){const f=o.ownerDocument,u=f.body,m=getComputedStyle(u),d=f.compatMode==="CSS1Compat"&&parseFloat(m.marginLeft)+parseFloat(m.marginRight)||0,p=Math.abs(o.clientWidth-u.clientWidth-d);p<=_t&&(i-=p)}else a<=_t&&(i+=a);return{width:i,height:s,x:c,y:l}}const un=new Set(["absolute","fixed"]);function dn(t,e){const n=G(t,!0,e==="fixed"),o=n.top+t.clientTop,r=n.left+t.clientLeft,i=X(t)?J(t):I(1),s=t.clientWidth*i.x,c=t.clientHeight*i.y,l=r*i.x,a=o*i.y;return{width:s,height:c,x:l,y:a}}function zt(t,e,n){let o;if(e==="viewport")o=fn(t,n);else if(e==="document")o=an(Y(t));else if(B(e))o=dn(e,n);else{const r=Gt(t);o={x:e.x-r.x,y:e.y-r.y,width:e.width,height:e.height}}return ut(o)}function Qt(t,e){const n=K(t);return n===e||!B(n)||Q(n)?!1:_(n).position==="fixed"||Qt(n,e)}function pn(t,e){const n=e.get(t);if(n)return n;let o=rt(t,[],!1).filter(c=>B(c)&&et(c)!=="body"),r=null;const i=_(t).position==="fixed";let s=i?K(t):t;for(;B(s)&&!Q(s);){const c=_(s),l=Ot(s);!l&&c.position==="fixed"&&(r=null),(i?!l&&!r:!l&&c.position==="static"&&!!r&&un.has(r.position)||it(s)&&!l&&Qt(t,s))?o=o.filter(f=>f!==s):r=c,s=K(s)}return e.set(t,o),o}function mn(t){let{element:e,boundary:n,rootBoundary:o,strategy:r}=t;const s=[...n==="clippingAncestors"?mt(e)?[]:pn(e,this._c):[].concat(n),o],c=s[0],l=s.reduce((a,f)=>{const u=zt(e,f,r);return a.top=W(u.top,a.top),a.right=Z(u.right,a.right),a.bottom=Z(u.bottom,a.bottom),a.left=W(u.left,a.left),a},zt(e,c,r));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}}function hn(t){const{width:e,height:n}=Kt(t);return{width:e,height:n}}function gn(t,e,n){const o=X(e),r=Y(e),i=n==="fixed",s=G(t,!0,i,e);let c={scrollLeft:0,scrollTop:0};const l=I(0);function a(){l.x=gt(r)}if(o||!o&&!i)if((et(e)!=="body"||it(r))&&(c=ht(e)),o){const d=G(e,!0,i,e);l.x=d.x+e.clientLeft,l.y=d.y+e.clientTop}else r&&a();i&&!o&&r&&a();const f=r&&!o&&!i?Jt(r,c):I(0),u=s.left+c.scrollLeft-l.x-f.x,m=s.top+c.scrollTop-l.y-f.y;return{x:u,y:m,width:s.width,height:s.height}}function wt(t){return _(t).position==="static"}function Vt(t,e){if(!X(t)||_(t).position==="fixed")return null;if(e)return e(t);let n=t.offsetParent;return Y(t)===n&&(n=n.ownerDocument.body),n}function te(t,e){const n=H(t);if(mt(t))return n;if(!X(t)){let r=K(t);for(;r&&!Q(r);){if(B(r)&&!wt(r))return r;r=K(r)}return n}let o=Vt(t,e);for(;o&&Ge(o)&&wt(o);)o=Vt(o,e);return o&&Q(o)&&wt(o)&&!Ot(o)?n:o||nn(t)||n}const wn=async function(t){const e=this.getOffsetParent||te,n=this.getDimensions,o=await n(t.floating);return{reference:gn(t.reference,await e(t.floating),t.strategy),floating:{x:0,y:0,width:o.width,height:o.height}}};function xn(t){return _(t).direction==="rtl"}const yn={convertOffsetParentRelativeRectToViewportRelativeRect:cn,getDocumentElement:Y,getClippingRect:mn,getOffsetParent:te,getElementRects:wn,getClientRects:ln,getDimensions:hn,getScale:J,isElement:B,isRTL:xn};function ee(t,e){return t.x===e.x&&t.y===e.y&&t.width===e.width&&t.height===e.height}function vn(t,e){let n=null,o;const r=Y(t);function i(){var c;clearTimeout(o),(c=n)==null||c.disconnect(),n=null}function s(c,l){c===void 0&&(c=!1),l===void 0&&(l=1),i();const a=t.getBoundingClientRect(),{left:f,top:u,width:m,height:d}=a;if(c||e(),!m||!d)return;const p=ct(u),h=ct(r.clientWidth-(f+m)),w=ct(r.clientHeight-(u+d)),g=ct(f),b={rootMargin:-p+"px "+-h+"px "+-w+"px "+-g+"px",threshold:W(0,Z(1,l))||1};let y=!0;function v(C){const S=C[0].intersectionRatio;if(S!==l){if(!y)return s();S?s(!1,S):o=setTimeout(()=>{s(!1,1e-7)},1e3)}S===1&&!ee(a,t.getBoundingClientRect())&&s(),y=!1}try{n=new IntersectionObserver(v,{...b,root:r.ownerDocument})}catch{n=new IntersectionObserver(v,b)}n.observe(t)}return s(!0),i}function bn(t,e,n,o){o===void 0&&(o={});const{ancestorScroll:r=!0,ancestorResize:i=!0,elementResize:s=typeof ResizeObserver=="function",layoutShift:c=typeof IntersectionObserver=="function",animationFrame:l=!1}=o,a=Lt(t),f=r||i?[...a?rt(a):[],...rt(e)]:[];f.forEach(g=>{r&&g.addEventListener("scroll",n,{passive:!0}),i&&g.addEventListener("resize",n)});const u=a&&c?vn(a,n):null;let m=-1,d=null;s&&(d=new ResizeObserver(g=>{let[x]=g;x&&x.target===a&&d&&(d.unobserve(e),cancelAnimationFrame(m),m=requestAnimationFrame(()=>{var b;(b=d)==null||b.observe(e)})),n()}),a&&!l&&d.observe(a),d.observe(e));let p,h=l?G(t):null;l&&w();function w(){const g=G(t);h&&!ee(h,g)&&n(),h=g,p=requestAnimationFrame(w)}return n(),()=>{var g;f.forEach(x=>{r&&x.removeEventListener("scroll",n),i&&x.removeEventListener("resize",n)}),u?.(),(g=d)==null||g.disconnect(),d=null,l&&cancelAnimationFrame(p)}}const An=Xe,Rn=Ye,Sn=Ve,Cn=Ue,Pn=je,jt=ze,On=qe,En=(t,e,n)=>{const o=new Map,r={platform:yn,...n},i={...r.platform,_c:o};return _e(t,e,{...r,platform:i})};var Ln=typeof document<"u",Dn=function(){},lt=Ln?R.useLayoutEffect:Dn;function dt(t,e){if(t===e)return!0;if(typeof t!=typeof e)return!1;if(typeof t=="function"&&t.toString()===e.toString())return!0;let n,o,r;if(t&&e&&typeof t=="object"){if(Array.isArray(t)){if(n=t.length,n!==e.length)return!1;for(o=n;o--!==0;)if(!dt(t[o],e[o]))return!1;return!0}if(r=Object.keys(t),n=r.length,n!==Object.keys(e).length)return!1;for(o=n;o--!==0;)if(!{}.hasOwnProperty.call(e,r[o]))return!1;for(o=n;o--!==0;){const i=r[o];if(!(i==="_owner"&&t.$$typeof)&&!dt(t[i],e[i]))return!1}return!0}return t!==t&&e!==e}function ne(t){return typeof window>"u"?1:(t.ownerDocument.defaultView||window).devicePixelRatio||1}function It(t,e){const n=ne(t);return Math.round(e*n)/n}function xt(t){const e=R.useRef(t);return lt(()=>{e.current=t}),e}function Mn(t){t===void 0&&(t={});const{placement:e="bottom",strategy:n="absolute",middleware:o=[],platform:r,elements:{reference:i,floating:s}={},transform:c=!0,whileElementsMounted:l,open:a}=t,[f,u]=R.useState({x:0,y:0,strategy:n,placement:e,middlewareData:{},isPositioned:!1}),[m,d]=R.useState(o);dt(m,o)||d(o);const[p,h]=R.useState(null),[w,g]=R.useState(null),x=R.useCallback(A=>{A!==C.current&&(C.current=A,h(A))},[]),b=R.useCallback(A=>{A!==S.current&&(S.current=A,g(A))},[]),y=i||p,v=s||w,C=R.useRef(null),S=R.useRef(null),M=R.useRef(f),F=l!=null,D=xt(l),$=xt(r),k=xt(a),O=R.useCallback(()=>{if(!C.current||!S.current)return;const A={placement:e,strategy:n,middleware:m};$.current&&(A.platform=$.current),En(C.current,S.current,A).then(T=>{const z={...T,isPositioned:k.current!==!1};P.current&&!dt(M.current,z)&&(M.current=z,Se.flushSync(()=>{u(z)}))})},[m,e,n,$,k]);lt(()=>{a===!1&&M.current.isPositioned&&(M.current.isPositioned=!1,u(A=>({...A,isPositioned:!1})))},[a]);const P=R.useRef(!1);lt(()=>(P.current=!0,()=>{P.current=!1}),[]),lt(()=>{if(y&&(C.current=y),v&&(S.current=v),y&&v){if(D.current)return D.current(y,v,O);O()}},[y,v,O,D,F]);const N=R.useMemo(()=>({reference:C,floating:S,setReference:x,setFloating:b}),[x,b]),E=R.useMemo(()=>({reference:y,floating:v}),[y,v]),L=R.useMemo(()=>{const A={position:n,left:0,top:0};if(!E.floating)return A;const T=It(E.floating,f.x),z=It(E.floating,f.y);return c?{...A,transform:"translate("+T+"px, "+z+"px)",...ne(E.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:T,top:z}},[n,c,E.floating,f.x,f.y]);return R.useMemo(()=>({...f,update:O,refs:N,elements:E,floatingStyles:L}),[f,O,N,E,L])}const Tn=t=>{function e(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:t,fn(n){const{element:o,padding:r}=typeof t=="function"?t(n):t;return o&&e(o)?o.current!=null?jt({element:o.current,padding:r}).fn(n):{}:o?jt({element:o,padding:r}).fn(n):{}}}},$n=(t,e)=>({...An(t),options:[t,e]}),kn=(t,e)=>({...Rn(t),options:[t,e]}),Fn=(t,e)=>({...On(t),options:[t,e]}),Nn=(t,e)=>({...Sn(t),options:[t,e]}),Wn=(t,e)=>({...Cn(t),options:[t,e]}),Hn=(t,e)=>({...Pn(t),options:[t,e]}),Bn=(t,e)=>({...Tn(t),options:[t,e]});var _n="Arrow",oe=R.forwardRef((t,e)=>{const{children:n,width:o=10,height:r=5,...i}=t;return j.jsx(Rt.svg,{...i,ref:e,width:o,height:r,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:t.asChild?n:j.jsx("polygon",{points:"0,0 30,0 15,10"})})});oe.displayName=_n;var zn=oe;function Vn(t){const[e,n]=R.useState(void 0);return yt(()=>{if(t){n({width:t.offsetWidth,height:t.offsetHeight});const o=new ResizeObserver(r=>{if(!Array.isArray(r)||!r.length)return;const i=r[0];let s,c;if("borderBoxSize"in i){const l=i.borderBoxSize,a=Array.isArray(l)?l[0]:l;s=a.inlineSize,c=a.blockSize}else s=t.offsetWidth,c=t.offsetHeight;n({width:s,height:c})});return o.observe(t,{box:"border-box"}),()=>o.unobserve(t)}else n(void 0)},[t]),e}var Dt="Popper",[re,ro]=Ce(Dt),[jn,ie]=re(Dt),se=t=>{const{__scopePopper:e,children:n}=t,[o,r]=R.useState(null);return j.jsx(jn,{scope:e,anchor:o,onAnchorChange:r,children:n})};se.displayName=Dt;var ce="PopperAnchor",le=R.forwardRef((t,e)=>{const{__scopePopper:n,virtualRef:o,...r}=t,i=ie(ce,n),s=R.useRef(null),c=Xt(e,s),l=R.useRef(null);return R.useEffect(()=>{const a=l.current;l.current=o?.current||s.current,a!==l.current&&i.onAnchorChange(l.current)}),o?null:j.jsx(Rt.div,{...r,ref:c})});le.displayName=ce;var Mt="PopperContent",[In,Xn]=re(Mt),ae=R.forwardRef((t,e)=>{const{__scopePopper:n,side:o="bottom",sideOffset:r=0,align:i="center",alignOffset:s=0,arrowPadding:c=0,avoidCollisions:l=!0,collisionBoundary:a=[],collisionPadding:f=0,sticky:u="partial",hideWhenDetached:m=!1,updatePositionStrategy:d="optimized",onPlaced:p,...h}=t,w=ie(Mt,n),[g,x]=R.useState(null),b=Xt(e,nt=>x(nt)),[y,v]=R.useState(null),C=Vn(y),S=C?.width??0,M=C?.height??0,F=o+(i!=="center"?"-"+i:""),D=typeof f=="number"?f:{top:0,right:0,bottom:0,left:0,...f},$=Array.isArray(a)?a:[a],k=$.length>0,O={padding:D,boundary:$.filter(qn),altBoundary:k},{refs:P,floatingStyles:N,placement:E,isPositioned:L,middlewareData:A}=Mn({strategy:"fixed",placement:F,whileElementsMounted:(...nt)=>bn(...nt,{animationFrame:d==="always"}),elements:{reference:w.anchor},middleware:[$n({mainAxis:r+M,alignmentAxis:s}),l&&kn({mainAxis:!0,crossAxis:!1,limiter:u==="partial"?Fn():void 0,...O}),l&&Nn({...O}),Wn({...O,apply:({elements:nt,rects:$t,availableWidth:xe,availableHeight:ye})=>{const{width:ve,height:be}=$t.reference,st=nt.floating.style;st.setProperty("--radix-popper-available-width",`${xe}px`),st.setProperty("--radix-popper-available-height",`${ye}px`),st.setProperty("--radix-popper-anchor-width",`${ve}px`),st.setProperty("--radix-popper-anchor-height",`${be}px`)}}),y&&Bn({element:y,padding:c}),Un({arrowWidth:S,arrowHeight:M}),m&&Hn({strategy:"referenceHidden",...O})]}),[T,z]=de(E),Tt=Pe(p);yt(()=>{L&&Tt?.()},[L,Tt]);const pe=A.arrow?.x,me=A.arrow?.y,he=A.arrow?.centerOffset!==0,[ge,we]=R.useState();return yt(()=>{g&&we(window.getComputedStyle(g).zIndex)},[g]),j.jsx("div",{ref:P.setFloating,"data-radix-popper-content-wrapper":"",style:{...N,transform:L?N.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:ge,"--radix-popper-transform-origin":[A.transformOrigin?.x,A.transformOrigin?.y].join(" "),...A.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:t.dir,children:j.jsx(In,{scope:n,placedSide:T,onArrowChange:v,arrowX:pe,arrowY:me,shouldHideArrow:he,children:j.jsx(Rt.div,{"data-side":T,"data-align":z,...h,ref:b,style:{...h.style,animation:L?void 0:"none"}})})})});ae.displayName=Mt;var fe="PopperArrow",Yn={top:"bottom",right:"left",bottom:"top",left:"right"},ue=R.forwardRef(function(e,n){const{__scopePopper:o,...r}=e,i=Xn(fe,o),s=Yn[i.placedSide];return j.jsx("span",{ref:i.onArrowChange,style:{position:"absolute",left:i.arrowX,top:i.arrowY,[s]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[i.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[i.placedSide],visibility:i.shouldHideArrow?"hidden":void 0},children:j.jsx(zn,{...r,ref:n,style:{...r.style,display:"block"}})})});ue.displayName=fe;function qn(t){return t!==null}var Un=t=>({name:"transformOrigin",options:t,fn(e){const{placement:n,rects:o,middlewareData:r}=e,s=r.arrow?.centerOffset!==0,c=s?0:t.arrowWidth,l=s?0:t.arrowHeight,[a,f]=de(n),u={start:"0%",center:"50%",end:"100%"}[f],m=(r.arrow?.x??0)+c/2,d=(r.arrow?.y??0)+l/2;let p="",h="";return a==="bottom"?(p=s?u:`${m}px`,h=`${-l}px`):a==="top"?(p=s?u:`${m}px`,h=`${o.floating.height+l}px`):a==="right"?(p=`${-l}px`,h=s?u:`${d}px`):a==="left"&&(p=`${o.floating.width+l}px`,h=s?u:`${d}px`),{data:{x:p,y:h}}}});function de(t){const[e,n="center"]=t.split("-");return[e,n]}var io=se,so=le,co=ae,lo=ue;/** - * @license lucide-react v0.462.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ao=Oe("Circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);export{so as A,oo as B,co as C,io as R,lo as a,ao as b,ro as c,Vn as u}; diff --git a/docs/assets/client.DLPy3n08.js b/docs/assets/client.Sd4Y9N7t.js similarity index 96% rename from docs/assets/client.DLPy3n08.js rename to docs/assets/client.Sd4Y9N7t.js index 85cc52e9..3f16b129 100644 --- a/docs/assets/client.DLPy3n08.js +++ b/docs/assets/client.Sd4Y9N7t.js @@ -1 +1 @@ -import{r as o}from"./index.BaMLtrTp.js";import{r as b}from"./index.BbTPjBLC.js";import"./index.yBjzXJbu.js";var s={},p;function g(){if(p)return s;p=1;var t=b();return s.createRoot=t.createRoot,s.hydrateRoot=t.hydrateRoot,s}var E=g();const v=({value:t,name:e,hydrate:r=!0})=>{if(!t)return null;const a=r?"astro-slot":"astro-static-slot";return o.createElement(a,{name:e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:t}})};v.shouldComponentUpdate=()=>!1;var N=v;function C(t){for(const e in t)if(e.startsWith("__reactContainer"))return e}function R(t){let e={};for(const r of t.attributes)e[r.name]=r.value;return t.firstChild===null?o.createElement(t.localName,e):o.createElement(t.localName,e,Array.from(t.childNodes).map(r=>r.nodeType===Node.TEXT_NODE?r.data:r.nodeType===Node.ELEMENT_NODE?R(r):void 0).filter(r=>!!r))}function O(t,e){if(e&&t){let r=[],a=document.createElement("template");a.innerHTML=t;for(let u of a.content.children)r.push(R(u));return r}else return t?o.createElement(N,{value:t}):void 0}let y=new WeakMap;const h=(t,e)=>{let r=y.get(t);return r||(r=e(),y.set(t,r)),r};var L=t=>(e,r,{default:a,...u},{client:A})=>{if(!t.hasAttribute("ssr"))return;const d=t.getAttribute("data-action-key"),l=t.getAttribute("data-action-name"),f=t.getAttribute("data-action-result"),T=d&&l&&f?[JSON.parse(f),d,l]:void 0,_={identifierPrefix:t.getAttribute("prefix"),formState:T};for(const[i,n]of Object.entries(u))r[i]=o.createElement(N,{value:n,name:i});const c=o.createElement(e,r,O(a,t.hasAttribute("data-react-children"))),m=C(t);if(m&&delete t[m],A==="only")return o.startTransition(()=>{h(t,()=>{const n=E.createRoot(t);return t.addEventListener("astro:unmount",()=>n.unmount(),{once:!0}),n}).render(c)});o.startTransition(()=>{h(t,()=>{const n=E.hydrateRoot(t,c,_);return t.addEventListener("astro:unmount",()=>n.unmount(),{once:!0}),n}).render(c)})};export{L as default}; +import{r as o}from"./index.D_oLZvzW.js";import{r as b}from"./index.BbTPjBLC.js";import"./index.yBjzXJbu.js";var s={},p;function g(){if(p)return s;p=1;var t=b();return s.createRoot=t.createRoot,s.hydrateRoot=t.hydrateRoot,s}var E=g();const v=({value:t,name:e,hydrate:r=!0})=>{if(!t)return null;const a=r?"astro-slot":"astro-static-slot";return o.createElement(a,{name:e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:t}})};v.shouldComponentUpdate=()=>!1;var N=v;function C(t){for(const e in t)if(e.startsWith("__reactContainer"))return e}function R(t){let e={};for(const r of t.attributes)e[r.name]=r.value;return t.firstChild===null?o.createElement(t.localName,e):o.createElement(t.localName,e,Array.from(t.childNodes).map(r=>r.nodeType===Node.TEXT_NODE?r.data:r.nodeType===Node.ELEMENT_NODE?R(r):void 0).filter(r=>!!r))}function O(t,e){if(e&&t){let r=[],a=document.createElement("template");a.innerHTML=t;for(let u of a.content.children)r.push(R(u));return r}else return t?o.createElement(N,{value:t}):void 0}let y=new WeakMap;const h=(t,e)=>{let r=y.get(t);return r||(r=e(),y.set(t,r)),r};var L=t=>(e,r,{default:a,...u},{client:A})=>{if(!t.hasAttribute("ssr"))return;const d=t.getAttribute("data-action-key"),l=t.getAttribute("data-action-name"),f=t.getAttribute("data-action-result"),T=d&&l&&f?[JSON.parse(f),d,l]:void 0,_={identifierPrefix:t.getAttribute("prefix"),formState:T};for(const[i,n]of Object.entries(u))r[i]=o.createElement(N,{value:n,name:i});const c=o.createElement(e,r,O(a,t.hasAttribute("data-react-children"))),m=C(t);if(m&&delete t[m],A==="only")return o.startTransition(()=>{h(t,()=>{const n=E.createRoot(t);return t.addEventListener("astro:unmount",()=>n.unmount(),{once:!0}),n}).render(c)});o.startTransition(()=>{h(t,()=>{const n=E.hydrateRoot(t,c,_);return t.addEventListener("astro:unmount",()=>n.unmount(),{once:!0}),n}).render(c)})};export{L as default}; diff --git a/docs/assets/clock.YdwQlIOd.js b/docs/assets/clock.0f4SrxU_.js similarity index 86% rename from docs/assets/clock.YdwQlIOd.js rename to docs/assets/clock.0f4SrxU_.js index 2f3686ad..591add9c 100644 --- a/docs/assets/clock.YdwQlIOd.js +++ b/docs/assets/clock.0f4SrxU_.js @@ -1,4 +1,4 @@ -import{c}from"./createLucideIcon.CJ67VFfW.js";/** +import{c}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/code.BOyVoLRs.js b/docs/assets/code.Bsz77KQU.js similarity index 84% rename from docs/assets/code.BOyVoLRs.js rename to docs/assets/code.Bsz77KQU.js index e7ba8f49..3ace0305 100644 --- a/docs/assets/code.BOyVoLRs.js +++ b/docs/assets/code.Bsz77KQU.js @@ -1,4 +1,4 @@ -import{c as e}from"./createLucideIcon.CJ67VFfW.js";/** +import{c as e}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/createLucideIcon.CJ67VFfW.js b/docs/assets/createLucideIcon.DnxMVFvH.js similarity index 97% rename from docs/assets/createLucideIcon.CJ67VFfW.js rename to docs/assets/createLucideIcon.DnxMVFvH.js index c0fe2b32..1acab84f 100644 --- a/docs/assets/createLucideIcon.CJ67VFfW.js +++ b/docs/assets/createLucideIcon.DnxMVFvH.js @@ -1,4 +1,4 @@ -import{r as a}from"./index.BaMLtrTp.js";/** +import{r as a}from"./index.D_oLZvzW.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/database.BD9zb1Qc.js b/docs/assets/database.CpdIqL8j.js similarity index 86% rename from docs/assets/database.BD9zb1Qc.js rename to docs/assets/database.CpdIqL8j.js index 3a10ef0e..b9b8dcea 100644 --- a/docs/assets/database.BD9zb1Qc.js +++ b/docs/assets/database.CpdIqL8j.js @@ -1,4 +1,4 @@ -import{c as e}from"./createLucideIcon.CJ67VFfW.js";/** +import{c as e}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/dc-logo.CKbgGFVq.js b/docs/assets/dc-logo.CKbgGFVq.js deleted file mode 100644 index a6f512e1..00000000 --- a/docs/assets/dc-logo.CKbgGFVq.js +++ /dev/null @@ -1,6 +0,0 @@ -import{c as bt}from"./createLucideIcon.CJ67VFfW.js";import{j as r}from"./jsx-runtime.D3GSbgeI.js";import{r as s}from"./index.BaMLtrTp.js";import{c as me,b as h,a as Nt,P as z,e as Dt,f as St,d as pe}from"./index.vFQDSFae.js";import{d as ge,u as L,c as It,a as _}from"./utils.XhT4HDO9.js";import{P,d as Pt}from"./index.BlsO67so.js";import{P as Et,u as jt,R as Tt,F as At,D as Ot,h as kt,O as he,b as Lt,C as xe,c as Ft,T as ve,d as we,e as Gt,f as Kt}from"./index.lqPDcyCD.js";import{c as Me,A as $t,C as Ut,R as Bt,a as Vt,b as zt}from"./circle.KGuz404-.js";import{c as Ce,I as Xt,R as Yt}from"./index.C9IP8clr.js";import{u as _e}from"./index.CyN3cLSG.js";import{C as Ht}from"./chevron-right.BwvlrKau.js";import{C as Wt}from"./check.eE7yIrYi.js";import{c as Zt}from"./button.nz_ACiet.js";import{X as qt}from"./x.B1hOxjOp.js";var Q=["Enter"," "],Jt=["ArrowDown","PageUp","Home"],ye=["ArrowUp","PageDown","End"],Qt=[...Jt,...ye],eo={ltr:[...Q,"ArrowRight"],rtl:[...Q,"ArrowLeft"]},to={ltr:["ArrowLeft"],rtl:["ArrowRight"]},F="Menu",[O,oo,no]=Nt(F),[R,Re]=me(F,[no,Me,Ce]),X=Me(),be=Ce(),[ro,b]=R(F),[ao,G]=R(F),Ne=e=>{const{__scopeMenu:o,open:t=!1,children:n,dir:a,onOpenChange:c,modal:d=!0}=e,l=X(o),[m,g]=s.useState(null),p=s.useRef(!1),i=_e(c),f=Dt(a);return s.useEffect(()=>{const M=()=>{p.current=!0,document.addEventListener("pointerdown",x,{capture:!0,once:!0}),document.addEventListener("pointermove",x,{capture:!0,once:!0})},x=()=>p.current=!1;return document.addEventListener("keydown",M,{capture:!0}),()=>{document.removeEventListener("keydown",M,{capture:!0}),document.removeEventListener("pointerdown",x,{capture:!0}),document.removeEventListener("pointermove",x,{capture:!0})}},[]),r.jsx(Bt,{...l,children:r.jsx(ro,{scope:o,open:t,onOpenChange:i,content:m,onContentChange:g,children:r.jsx(ao,{scope:o,onClose:s.useCallback(()=>i(!1),[i]),isUsingKeyboardRef:p,dir:f,modal:d,children:n})})})};Ne.displayName=F;var so="MenuAnchor",ee=s.forwardRef((e,o)=>{const{__scopeMenu:t,...n}=e,a=X(t);return r.jsx($t,{...a,...n,ref:o})});ee.displayName=so;var te="MenuPortal",[co,De]=R(te,{forceMount:void 0}),Se=e=>{const{__scopeMenu:o,forceMount:t,children:n,container:a}=e,c=b(te,o);return r.jsx(co,{scope:o,forceMount:t,children:r.jsx(z,{present:t||c.open,children:r.jsx(Et,{asChild:!0,container:a,children:n})})})};Se.displayName=te;var C="MenuContent",[io,oe]=R(C),Ie=s.forwardRef((e,o)=>{const t=De(C,e.__scopeMenu),{forceMount:n=t.forceMount,...a}=e,c=b(C,e.__scopeMenu),d=G(C,e.__scopeMenu);return r.jsx(O.Provider,{scope:e.__scopeMenu,children:r.jsx(z,{present:n||c.open,children:r.jsx(O.Slot,{scope:e.__scopeMenu,children:d.modal?r.jsx(uo,{...a,ref:o}):r.jsx(lo,{...a,ref:o})})})})}),uo=s.forwardRef((e,o)=>{const t=b(C,e.__scopeMenu),n=s.useRef(null),a=L(o,n);return s.useEffect(()=>{const c=n.current;if(c)return kt(c)},[]),r.jsx(ne,{...e,ref:a,trapFocus:t.open,disableOutsidePointerEvents:t.open,disableOutsideScroll:!0,onFocusOutside:h(e.onFocusOutside,c=>c.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>t.onOpenChange(!1)})}),lo=s.forwardRef((e,o)=>{const t=b(C,e.__scopeMenu);return r.jsx(ne,{...e,ref:o,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>t.onOpenChange(!1)})}),po=It("MenuContent.ScrollLock"),ne=s.forwardRef((e,o)=>{const{__scopeMenu:t,loop:n=!1,trapFocus:a,onOpenAutoFocus:c,onCloseAutoFocus:d,disableOutsidePointerEvents:l,onEntryFocus:m,onEscapeKeyDown:g,onPointerDownOutside:p,onFocusOutside:i,onInteractOutside:f,onDismiss:M,disableOutsideScroll:x,...N}=e,E=b(C,t),D=G(C,t),xt=X(t),vt=be(t),ce=oo(t),[wt,ie]=s.useState(null),K=s.useRef(null),Mt=L(o,K,E.onContentChange),$=s.useRef(0),U=s.useRef(""),Ct=s.useRef(0),W=s.useRef(null),ue=s.useRef("right"),Z=s.useRef(0),_t=x?Tt:s.Fragment,yt=x?{as:po,allowPinchZoom:!0}:void 0,Rt=u=>{const I=U.current+u,y=ce().filter(w=>!w.disabled),j=document.activeElement,q=y.find(w=>w.ref.current===j)?.textValue,J=y.map(w=>w.textValue),de=Ro(J,I,q),T=y.find(w=>w.textValue===de)?.ref.current;(function w(le){U.current=le,window.clearTimeout($.current),le!==""&&($.current=window.setTimeout(()=>w(""),1e3))})(I),T&&setTimeout(()=>T.focus())};s.useEffect(()=>()=>window.clearTimeout($.current),[]),jt();const S=s.useCallback(u=>ue.current===W.current?.side&&No(u,W.current?.area),[]);return r.jsx(io,{scope:t,searchRef:U,onItemEnter:s.useCallback(u=>{S(u)&&u.preventDefault()},[S]),onItemLeave:s.useCallback(u=>{S(u)||(K.current?.focus(),ie(null))},[S]),onTriggerLeave:s.useCallback(u=>{S(u)&&u.preventDefault()},[S]),pointerGraceTimerRef:Ct,onPointerGraceIntentChange:s.useCallback(u=>{W.current=u},[]),children:r.jsx(_t,{...yt,children:r.jsx(At,{asChild:!0,trapped:a,onMountAutoFocus:h(c,u=>{u.preventDefault(),K.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:d,children:r.jsx(Ot,{asChild:!0,disableOutsidePointerEvents:l,onEscapeKeyDown:g,onPointerDownOutside:p,onFocusOutside:i,onInteractOutside:f,onDismiss:M,children:r.jsx(Yt,{asChild:!0,...vt,dir:D.dir,orientation:"vertical",loop:n,currentTabStopId:wt,onCurrentTabStopIdChange:ie,onEntryFocus:h(m,u=>{D.isUsingKeyboardRef.current||u.preventDefault()}),preventScrollOnEntryFocus:!0,children:r.jsx(Ut,{role:"menu","aria-orientation":"vertical","data-state":ze(E.open),"data-radix-menu-content":"",dir:D.dir,...xt,...N,ref:Mt,style:{outline:"none",...N.style},onKeyDown:h(N.onKeyDown,u=>{const y=u.target.closest("[data-radix-menu-content]")===u.currentTarget,j=u.ctrlKey||u.altKey||u.metaKey,q=u.key.length===1;y&&(u.key==="Tab"&&u.preventDefault(),!j&&q&&Rt(u.key));const J=K.current;if(u.target!==J||!Qt.includes(u.key))return;u.preventDefault();const T=ce().filter(w=>!w.disabled).map(w=>w.ref.current);ye.includes(u.key)&&T.reverse(),_o(T)}),onBlur:h(e.onBlur,u=>{u.currentTarget.contains(u.target)||(window.clearTimeout($.current),U.current="")}),onPointerMove:h(e.onPointerMove,k(u=>{const I=u.target,y=Z.current!==u.clientX;if(u.currentTarget.contains(I)&&y){const j=u.clientX>Z.current?"right":"left";ue.current=j,Z.current=u.clientX}}))})})})})})})});Ie.displayName=C;var fo="MenuGroup",re=s.forwardRef((e,o)=>{const{__scopeMenu:t,...n}=e;return r.jsx(P.div,{role:"group",...n,ref:o})});re.displayName=fo;var mo="MenuLabel",Pe=s.forwardRef((e,o)=>{const{__scopeMenu:t,...n}=e;return r.jsx(P.div,{...n,ref:o})});Pe.displayName=mo;var B="MenuItem",fe="menu.itemSelect",Y=s.forwardRef((e,o)=>{const{disabled:t=!1,onSelect:n,...a}=e,c=s.useRef(null),d=G(B,e.__scopeMenu),l=oe(B,e.__scopeMenu),m=L(o,c),g=s.useRef(!1),p=()=>{const i=c.current;if(!t&&i){const f=new CustomEvent(fe,{bubbles:!0,cancelable:!0});i.addEventListener(fe,M=>n?.(M),{once:!0}),Pt(i,f),f.defaultPrevented?g.current=!1:d.onClose()}};return r.jsx(Ee,{...a,ref:m,disabled:t,onClick:h(e.onClick,p),onPointerDown:i=>{e.onPointerDown?.(i),g.current=!0},onPointerUp:h(e.onPointerUp,i=>{g.current||i.currentTarget?.click()}),onKeyDown:h(e.onKeyDown,i=>{const f=l.searchRef.current!=="";t||f&&i.key===" "||Q.includes(i.key)&&(i.currentTarget.click(),i.preventDefault())})})});Y.displayName=B;var Ee=s.forwardRef((e,o)=>{const{__scopeMenu:t,disabled:n=!1,textValue:a,...c}=e,d=oe(B,t),l=be(t),m=s.useRef(null),g=L(o,m),[p,i]=s.useState(!1),[f,M]=s.useState("");return s.useEffect(()=>{const x=m.current;x&&M((x.textContent??"").trim())},[c.children]),r.jsx(O.ItemSlot,{scope:t,disabled:n,textValue:a??f,children:r.jsx(Xt,{asChild:!0,...l,focusable:!n,children:r.jsx(P.div,{role:"menuitem","data-highlighted":p?"":void 0,"aria-disabled":n||void 0,"data-disabled":n?"":void 0,...c,ref:g,onPointerMove:h(e.onPointerMove,k(x=>{n?d.onItemLeave(x):(d.onItemEnter(x),x.defaultPrevented||x.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:h(e.onPointerLeave,k(x=>d.onItemLeave(x))),onFocus:h(e.onFocus,()=>i(!0)),onBlur:h(e.onBlur,()=>i(!1))})})})}),go="MenuCheckboxItem",je=s.forwardRef((e,o)=>{const{checked:t=!1,onCheckedChange:n,...a}=e;return r.jsx(Le,{scope:e.__scopeMenu,checked:t,children:r.jsx(Y,{role:"menuitemcheckbox","aria-checked":V(t)?"mixed":t,...a,ref:o,"data-state":se(t),onSelect:h(a.onSelect,()=>n?.(V(t)?!0:!t),{checkForDefaultPrevented:!1})})})});je.displayName=go;var Te="MenuRadioGroup",[ho,xo]=R(Te,{value:void 0,onValueChange:()=>{}}),Ae=s.forwardRef((e,o)=>{const{value:t,onValueChange:n,...a}=e,c=_e(n);return r.jsx(ho,{scope:e.__scopeMenu,value:t,onValueChange:c,children:r.jsx(re,{...a,ref:o})})});Ae.displayName=Te;var Oe="MenuRadioItem",ke=s.forwardRef((e,o)=>{const{value:t,...n}=e,a=xo(Oe,e.__scopeMenu),c=t===a.value;return r.jsx(Le,{scope:e.__scopeMenu,checked:c,children:r.jsx(Y,{role:"menuitemradio","aria-checked":c,...n,ref:o,"data-state":se(c),onSelect:h(n.onSelect,()=>a.onValueChange?.(t),{checkForDefaultPrevented:!1})})})});ke.displayName=Oe;var ae="MenuItemIndicator",[Le,vo]=R(ae,{checked:!1}),Fe=s.forwardRef((e,o)=>{const{__scopeMenu:t,forceMount:n,...a}=e,c=vo(ae,t);return r.jsx(z,{present:n||V(c.checked)||c.checked===!0,children:r.jsx(P.span,{...a,ref:o,"data-state":se(c.checked)})})});Fe.displayName=ae;var wo="MenuSeparator",Ge=s.forwardRef((e,o)=>{const{__scopeMenu:t,...n}=e;return r.jsx(P.div,{role:"separator","aria-orientation":"horizontal",...n,ref:o})});Ge.displayName=wo;var Mo="MenuArrow",Ke=s.forwardRef((e,o)=>{const{__scopeMenu:t,...n}=e,a=X(t);return r.jsx(Vt,{...a,...n,ref:o})});Ke.displayName=Mo;var Co="MenuSub",[kn,$e]=R(Co),A="MenuSubTrigger",Ue=s.forwardRef((e,o)=>{const t=b(A,e.__scopeMenu),n=G(A,e.__scopeMenu),a=$e(A,e.__scopeMenu),c=oe(A,e.__scopeMenu),d=s.useRef(null),{pointerGraceTimerRef:l,onPointerGraceIntentChange:m}=c,g={__scopeMenu:e.__scopeMenu},p=s.useCallback(()=>{d.current&&window.clearTimeout(d.current),d.current=null},[]);return s.useEffect(()=>p,[p]),s.useEffect(()=>{const i=l.current;return()=>{window.clearTimeout(i),m(null)}},[l,m]),r.jsx(ee,{asChild:!0,...g,children:r.jsx(Ee,{id:a.triggerId,"aria-haspopup":"menu","aria-expanded":t.open,"aria-controls":a.contentId,"data-state":ze(t.open),...e,ref:ge(o,a.onTriggerChange),onClick:i=>{e.onClick?.(i),!(e.disabled||i.defaultPrevented)&&(i.currentTarget.focus(),t.open||t.onOpenChange(!0))},onPointerMove:h(e.onPointerMove,k(i=>{c.onItemEnter(i),!i.defaultPrevented&&!e.disabled&&!t.open&&!d.current&&(c.onPointerGraceIntentChange(null),d.current=window.setTimeout(()=>{t.onOpenChange(!0),p()},100))})),onPointerLeave:h(e.onPointerLeave,k(i=>{p();const f=t.content?.getBoundingClientRect();if(f){const M=t.content?.dataset.side,x=M==="right",N=x?-5:5,E=f[x?"left":"right"],D=f[x?"right":"left"];c.onPointerGraceIntentChange({area:[{x:i.clientX+N,y:i.clientY},{x:E,y:f.top},{x:D,y:f.top},{x:D,y:f.bottom},{x:E,y:f.bottom}],side:M}),window.clearTimeout(l.current),l.current=window.setTimeout(()=>c.onPointerGraceIntentChange(null),300)}else{if(c.onTriggerLeave(i),i.defaultPrevented)return;c.onPointerGraceIntentChange(null)}})),onKeyDown:h(e.onKeyDown,i=>{const f=c.searchRef.current!=="";e.disabled||f&&i.key===" "||eo[n.dir].includes(i.key)&&(t.onOpenChange(!0),t.content?.focus(),i.preventDefault())})})})});Ue.displayName=A;var Be="MenuSubContent",Ve=s.forwardRef((e,o)=>{const t=De(C,e.__scopeMenu),{forceMount:n=t.forceMount,...a}=e,c=b(C,e.__scopeMenu),d=G(C,e.__scopeMenu),l=$e(Be,e.__scopeMenu),m=s.useRef(null),g=L(o,m);return r.jsx(O.Provider,{scope:e.__scopeMenu,children:r.jsx(z,{present:n||c.open,children:r.jsx(O.Slot,{scope:e.__scopeMenu,children:r.jsx(ne,{id:l.contentId,"aria-labelledby":l.triggerId,...a,ref:g,align:"start",side:d.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:p=>{d.isUsingKeyboardRef.current&&m.current?.focus(),p.preventDefault()},onCloseAutoFocus:p=>p.preventDefault(),onFocusOutside:h(e.onFocusOutside,p=>{p.target!==l.trigger&&c.onOpenChange(!1)}),onEscapeKeyDown:h(e.onEscapeKeyDown,p=>{d.onClose(),p.preventDefault()}),onKeyDown:h(e.onKeyDown,p=>{const i=p.currentTarget.contains(p.target),f=to[d.dir].includes(p.key);i&&f&&(c.onOpenChange(!1),l.trigger?.focus(),p.preventDefault())})})})})})});Ve.displayName=Be;function ze(e){return e?"open":"closed"}function V(e){return e==="indeterminate"}function se(e){return V(e)?"indeterminate":e?"checked":"unchecked"}function _o(e){const o=document.activeElement;for(const t of e)if(t===o||(t.focus(),document.activeElement!==o))return}function yo(e,o){return e.map((t,n)=>e[(o+n)%e.length])}function Ro(e,o,t){const a=o.length>1&&Array.from(o).every(g=>g===o[0])?o[0]:o,c=t?e.indexOf(t):-1;let d=yo(e,Math.max(c,0));a.length===1&&(d=d.filter(g=>g!==t));const m=d.find(g=>g.toLowerCase().startsWith(a.toLowerCase()));return m!==t?m:void 0}function bo(e,o){const{x:t,y:n}=e;let a=!1;for(let c=0,d=o.length-1;cn!=f>n&&t<(i-g)*(n-p)/(f-p)+g&&(a=!a)}return a}function No(e,o){if(!o)return!1;const t={x:e.clientX,y:e.clientY};return bo(t,o)}function k(e){return o=>o.pointerType==="mouse"?e(o):void 0}var Do=Ne,So=ee,Io=Se,Po=Ie,Eo=re,jo=Pe,To=Y,Ao=je,Oo=Ae,ko=ke,Lo=Fe,Fo=Ge,Go=Ke,Ko=Ue,$o=Ve,H="DropdownMenu",[Uo]=me(H,[Re]),v=Re(),[Bo,Xe]=Uo(H),Ye=e=>{const{__scopeDropdownMenu:o,children:t,dir:n,open:a,defaultOpen:c,onOpenChange:d,modal:l=!0}=e,m=v(o),g=s.useRef(null),[p,i]=St({prop:a,defaultProp:c??!1,onChange:d,caller:H});return r.jsx(Bo,{scope:o,triggerId:pe(),triggerRef:g,contentId:pe(),open:p,onOpenChange:i,onOpenToggle:s.useCallback(()=>i(f=>!f),[i]),modal:l,children:r.jsx(Do,{...m,open:p,onOpenChange:i,dir:n,modal:l,children:t})})};Ye.displayName=H;var He="DropdownMenuTrigger",We=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,disabled:n=!1,...a}=e,c=Xe(He,t),d=v(t);return r.jsx(So,{asChild:!0,...d,children:r.jsx(P.button,{type:"button",id:c.triggerId,"aria-haspopup":"menu","aria-expanded":c.open,"aria-controls":c.open?c.contentId:void 0,"data-state":c.open?"open":"closed","data-disabled":n?"":void 0,disabled:n,...a,ref:ge(o,c.triggerRef),onPointerDown:h(e.onPointerDown,l=>{!n&&l.button===0&&l.ctrlKey===!1&&(c.onOpenToggle(),c.open||l.preventDefault())}),onKeyDown:h(e.onKeyDown,l=>{n||(["Enter"," "].includes(l.key)&&c.onOpenToggle(),l.key==="ArrowDown"&&c.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(l.key)&&l.preventDefault())})})})});We.displayName=He;var Vo="DropdownMenuPortal",Ze=e=>{const{__scopeDropdownMenu:o,...t}=e,n=v(o);return r.jsx(Io,{...n,...t})};Ze.displayName=Vo;var qe="DropdownMenuContent",Je=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,a=Xe(qe,t),c=v(t),d=s.useRef(!1);return r.jsx(Po,{id:a.contentId,"aria-labelledby":a.triggerId,...c,...n,ref:o,onCloseAutoFocus:h(e.onCloseAutoFocus,l=>{d.current||a.triggerRef.current?.focus(),d.current=!1,l.preventDefault()}),onInteractOutside:h(e.onInteractOutside,l=>{const m=l.detail.originalEvent,g=m.button===0&&m.ctrlKey===!0,p=m.button===2||g;(!a.modal||p)&&(d.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});Je.displayName=qe;var zo="DropdownMenuGroup",Xo=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,a=v(t);return r.jsx(Eo,{...a,...n,ref:o})});Xo.displayName=zo;var Yo="DropdownMenuLabel",Qe=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,a=v(t);return r.jsx(jo,{...a,...n,ref:o})});Qe.displayName=Yo;var Ho="DropdownMenuItem",et=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,a=v(t);return r.jsx(To,{...a,...n,ref:o})});et.displayName=Ho;var Wo="DropdownMenuCheckboxItem",tt=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,a=v(t);return r.jsx(Ao,{...a,...n,ref:o})});tt.displayName=Wo;var Zo="DropdownMenuRadioGroup",qo=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,a=v(t);return r.jsx(Oo,{...a,...n,ref:o})});qo.displayName=Zo;var Jo="DropdownMenuRadioItem",ot=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,a=v(t);return r.jsx(ko,{...a,...n,ref:o})});ot.displayName=Jo;var Qo="DropdownMenuItemIndicator",nt=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,a=v(t);return r.jsx(Lo,{...a,...n,ref:o})});nt.displayName=Qo;var en="DropdownMenuSeparator",rt=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,a=v(t);return r.jsx(Fo,{...a,...n,ref:o})});rt.displayName=en;var tn="DropdownMenuArrow",on=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,a=v(t);return r.jsx(Go,{...a,...n,ref:o})});on.displayName=tn;var nn="DropdownMenuSubTrigger",at=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,a=v(t);return r.jsx(Ko,{...a,...n,ref:o})});at.displayName=nn;var rn="DropdownMenuSubContent",st=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,a=v(t);return r.jsx($o,{...a,...n,ref:o,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});st.displayName=rn;var an=Ye,sn=We,cn=Ze,ct=Je,it=Qe,ut=et,dt=tt,lt=ot,pt=nt,ft=rt,mt=at,gt=st;/** - * @license lucide-react v0.462.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Ln=bt("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]]),Fn=an,Gn=sn,un=s.forwardRef(({className:e,inset:o,children:t,...n},a)=>r.jsxs(mt,{ref:a,className:_("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[state=open]:bg-accent focus:bg-accent",o&&"pl-8",e),...n,children:[t,r.jsx(Ht,{className:"ml-auto h-4 w-4"})]}));un.displayName=mt.displayName;const dn=s.forwardRef(({className:e,...o},t)=>r.jsx(gt,{ref:t,className:_("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...o}));dn.displayName=gt.displayName;const ln=s.forwardRef(({className:e,sideOffset:o=4,...t},n)=>r.jsx(cn,{children:r.jsx(ct,{ref:n,sideOffset:o,className:_("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...t})}));ln.displayName=ct.displayName;const pn=s.forwardRef(({className:e,inset:o,...t},n)=>r.jsx(ut,{ref:n,className:_("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground",o&&"pl-8",e),...t}));pn.displayName=ut.displayName;const fn=s.forwardRef(({className:e,children:o,checked:t,...n},a)=>r.jsxs(dt,{ref:a,className:_("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground",e),checked:t,...n,children:[r.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:r.jsx(pt,{children:r.jsx(Wt,{className:"h-4 w-4"})})}),o]}));fn.displayName=dt.displayName;const mn=s.forwardRef(({className:e,children:o,...t},n)=>r.jsxs(lt,{ref:n,className:_("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground",e),...t,children:[r.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:r.jsx(pt,{children:r.jsx(zt,{className:"h-2 w-2 fill-current"})})}),o]}));mn.displayName=lt.displayName;const gn=s.forwardRef(({className:e,inset:o,...t},n)=>r.jsx(it,{ref:n,className:_("px-2 py-1.5 text-sm font-semibold",o&&"pl-8",e),...t}));gn.displayName=it.displayName;const hn=s.forwardRef(({className:e,...o},t)=>r.jsx(ft,{ref:t,className:_("-mx-1 my-1 h-px bg-muted",e),...o}));hn.displayName=ft.displayName;const Kn=Gt,$n=Kt,xn=Lt,ht=s.forwardRef(({className:e,...o},t)=>r.jsx(he,{className:_("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...o,ref:t}));ht.displayName=he.displayName;const vn=Zt("fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500",{variants:{side:{top:"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",bottom:"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",left:"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",right:"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"}},defaultVariants:{side:"right"}}),wn=s.forwardRef(({side:e="right",className:o,children:t,...n},a)=>r.jsxs(xn,{children:[r.jsx(ht,{}),r.jsxs(xe,{ref:a,className:_(vn({side:e}),o),...n,children:[t,r.jsxs(Ft,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity data-[state=open]:bg-secondary hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none",children:[r.jsx(qt,{className:"h-4 w-4"}),r.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));wn.displayName=xe.displayName;const Mn=s.forwardRef(({className:e,...o},t)=>r.jsx(ve,{ref:t,className:_("text-lg font-semibold text-foreground",e),...o}));Mn.displayName=ve.displayName;const Cn=s.forwardRef(({className:e,...o},t)=>r.jsx(we,{ref:t,className:_("text-sm text-muted-foreground",e),...o}));Cn.displayName=we.displayName;const Un={src:"/assets/dc-logo.BtymwVD4.png"};export{Fn as D,Ln as M,Kn as S,Gn as a,ln as b,pn as c,Un as d,$n as e,wn as f}; diff --git a/docs/assets/dc-logo.Cpkmi9_C.js b/docs/assets/dc-logo.Cpkmi9_C.js new file mode 100644 index 00000000..6e929348 --- /dev/null +++ b/docs/assets/dc-logo.Cpkmi9_C.js @@ -0,0 +1,6 @@ +import{c as bt}from"./createLucideIcon.DnxMVFvH.js";import{j as r}from"./jsx-runtime.D3GSbgeI.js";import{r as s}from"./index.D_oLZvzW.js";import{c as me,b as h,a as Nt,P as z,e as Dt,f as St,d as pe}from"./index.DO6kBsrn.js";import{b as ge,u as L,c as It,a as _}from"./utils.9Q5QEYED.js";import{P,d as Pt}from"./index.5q9h5iS_.js";import{P as Et,u as jt,R as Tt,F as At,D as Ot,h as kt,O as he,a as Lt,C as xe,b as Ft,T as ve,c as we,d as Gt,e as Kt}from"./index.DAP1SQuk.js";import{c as Me,A as $t,C as Ut,R as Bt,a as Vt,b as zt}from"./index.DNo0B2hs.js";import{c as Ce,I as Xt,R as Yt}from"./index.CKNnz_F1.js";import{u as _e}from"./index.xUA8L87E.js";import{C as Ht}from"./chevron-right.D8b_fnk7.js";import{C as Wt}from"./check.BxIsZM2Y.js";import{c as Zt}from"./button.D-OtCHTj.js";import{X as qt}from"./x.C6Iw0U2F.js";/** + * @license lucide-react v0.462.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const kn=bt("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]]);var Q=["Enter"," "],Jt=["ArrowDown","PageUp","Home"],ye=["ArrowUp","PageDown","End"],Qt=[...Jt,...ye],eo={ltr:[...Q,"ArrowRight"],rtl:[...Q,"ArrowLeft"]},to={ltr:["ArrowLeft"],rtl:["ArrowRight"]},F="Menu",[O,oo,no]=Nt(F),[R,Re]=me(F,[no,Me,Ce]),X=Me(),be=Ce(),[ro,b]=R(F),[ao,G]=R(F),Ne=e=>{const{__scopeMenu:o,open:t=!1,children:n,dir:a,onOpenChange:c,modal:d=!0}=e,l=X(o),[m,g]=s.useState(null),p=s.useRef(!1),i=_e(c),f=Dt(a);return s.useEffect(()=>{const M=()=>{p.current=!0,document.addEventListener("pointerdown",x,{capture:!0,once:!0}),document.addEventListener("pointermove",x,{capture:!0,once:!0})},x=()=>p.current=!1;return document.addEventListener("keydown",M,{capture:!0}),()=>{document.removeEventListener("keydown",M,{capture:!0}),document.removeEventListener("pointerdown",x,{capture:!0}),document.removeEventListener("pointermove",x,{capture:!0})}},[]),r.jsx(Bt,{...l,children:r.jsx(ro,{scope:o,open:t,onOpenChange:i,content:m,onContentChange:g,children:r.jsx(ao,{scope:o,onClose:s.useCallback(()=>i(!1),[i]),isUsingKeyboardRef:p,dir:f,modal:d,children:n})})})};Ne.displayName=F;var so="MenuAnchor",ee=s.forwardRef((e,o)=>{const{__scopeMenu:t,...n}=e,a=X(t);return r.jsx($t,{...a,...n,ref:o})});ee.displayName=so;var te="MenuPortal",[co,De]=R(te,{forceMount:void 0}),Se=e=>{const{__scopeMenu:o,forceMount:t,children:n,container:a}=e,c=b(te,o);return r.jsx(co,{scope:o,forceMount:t,children:r.jsx(z,{present:t||c.open,children:r.jsx(Et,{asChild:!0,container:a,children:n})})})};Se.displayName=te;var C="MenuContent",[io,oe]=R(C),Ie=s.forwardRef((e,o)=>{const t=De(C,e.__scopeMenu),{forceMount:n=t.forceMount,...a}=e,c=b(C,e.__scopeMenu),d=G(C,e.__scopeMenu);return r.jsx(O.Provider,{scope:e.__scopeMenu,children:r.jsx(z,{present:n||c.open,children:r.jsx(O.Slot,{scope:e.__scopeMenu,children:d.modal?r.jsx(uo,{...a,ref:o}):r.jsx(lo,{...a,ref:o})})})})}),uo=s.forwardRef((e,o)=>{const t=b(C,e.__scopeMenu),n=s.useRef(null),a=L(o,n);return s.useEffect(()=>{const c=n.current;if(c)return kt(c)},[]),r.jsx(ne,{...e,ref:a,trapFocus:t.open,disableOutsidePointerEvents:t.open,disableOutsideScroll:!0,onFocusOutside:h(e.onFocusOutside,c=>c.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>t.onOpenChange(!1)})}),lo=s.forwardRef((e,o)=>{const t=b(C,e.__scopeMenu);return r.jsx(ne,{...e,ref:o,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>t.onOpenChange(!1)})}),po=It("MenuContent.ScrollLock"),ne=s.forwardRef((e,o)=>{const{__scopeMenu:t,loop:n=!1,trapFocus:a,onOpenAutoFocus:c,onCloseAutoFocus:d,disableOutsidePointerEvents:l,onEntryFocus:m,onEscapeKeyDown:g,onPointerDownOutside:p,onFocusOutside:i,onInteractOutside:f,onDismiss:M,disableOutsideScroll:x,...N}=e,E=b(C,t),D=G(C,t),xt=X(t),vt=be(t),ce=oo(t),[wt,ie]=s.useState(null),K=s.useRef(null),Mt=L(o,K,E.onContentChange),$=s.useRef(0),U=s.useRef(""),Ct=s.useRef(0),W=s.useRef(null),ue=s.useRef("right"),Z=s.useRef(0),_t=x?Tt:s.Fragment,yt=x?{as:po,allowPinchZoom:!0}:void 0,Rt=u=>{const I=U.current+u,y=ce().filter(w=>!w.disabled),j=document.activeElement,q=y.find(w=>w.ref.current===j)?.textValue,J=y.map(w=>w.textValue),de=Ro(J,I,q),T=y.find(w=>w.textValue===de)?.ref.current;(function w(le){U.current=le,window.clearTimeout($.current),le!==""&&($.current=window.setTimeout(()=>w(""),1e3))})(I),T&&setTimeout(()=>T.focus())};s.useEffect(()=>()=>window.clearTimeout($.current),[]),jt();const S=s.useCallback(u=>ue.current===W.current?.side&&No(u,W.current?.area),[]);return r.jsx(io,{scope:t,searchRef:U,onItemEnter:s.useCallback(u=>{S(u)&&u.preventDefault()},[S]),onItemLeave:s.useCallback(u=>{S(u)||(K.current?.focus(),ie(null))},[S]),onTriggerLeave:s.useCallback(u=>{S(u)&&u.preventDefault()},[S]),pointerGraceTimerRef:Ct,onPointerGraceIntentChange:s.useCallback(u=>{W.current=u},[]),children:r.jsx(_t,{...yt,children:r.jsx(At,{asChild:!0,trapped:a,onMountAutoFocus:h(c,u=>{u.preventDefault(),K.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:d,children:r.jsx(Ot,{asChild:!0,disableOutsidePointerEvents:l,onEscapeKeyDown:g,onPointerDownOutside:p,onFocusOutside:i,onInteractOutside:f,onDismiss:M,children:r.jsx(Yt,{asChild:!0,...vt,dir:D.dir,orientation:"vertical",loop:n,currentTabStopId:wt,onCurrentTabStopIdChange:ie,onEntryFocus:h(m,u=>{D.isUsingKeyboardRef.current||u.preventDefault()}),preventScrollOnEntryFocus:!0,children:r.jsx(Ut,{role:"menu","aria-orientation":"vertical","data-state":ze(E.open),"data-radix-menu-content":"",dir:D.dir,...xt,...N,ref:Mt,style:{outline:"none",...N.style},onKeyDown:h(N.onKeyDown,u=>{const y=u.target.closest("[data-radix-menu-content]")===u.currentTarget,j=u.ctrlKey||u.altKey||u.metaKey,q=u.key.length===1;y&&(u.key==="Tab"&&u.preventDefault(),!j&&q&&Rt(u.key));const J=K.current;if(u.target!==J||!Qt.includes(u.key))return;u.preventDefault();const T=ce().filter(w=>!w.disabled).map(w=>w.ref.current);ye.includes(u.key)&&T.reverse(),_o(T)}),onBlur:h(e.onBlur,u=>{u.currentTarget.contains(u.target)||(window.clearTimeout($.current),U.current="")}),onPointerMove:h(e.onPointerMove,k(u=>{const I=u.target,y=Z.current!==u.clientX;if(u.currentTarget.contains(I)&&y){const j=u.clientX>Z.current?"right":"left";ue.current=j,Z.current=u.clientX}}))})})})})})})});Ie.displayName=C;var fo="MenuGroup",re=s.forwardRef((e,o)=>{const{__scopeMenu:t,...n}=e;return r.jsx(P.div,{role:"group",...n,ref:o})});re.displayName=fo;var mo="MenuLabel",Pe=s.forwardRef((e,o)=>{const{__scopeMenu:t,...n}=e;return r.jsx(P.div,{...n,ref:o})});Pe.displayName=mo;var B="MenuItem",fe="menu.itemSelect",Y=s.forwardRef((e,o)=>{const{disabled:t=!1,onSelect:n,...a}=e,c=s.useRef(null),d=G(B,e.__scopeMenu),l=oe(B,e.__scopeMenu),m=L(o,c),g=s.useRef(!1),p=()=>{const i=c.current;if(!t&&i){const f=new CustomEvent(fe,{bubbles:!0,cancelable:!0});i.addEventListener(fe,M=>n?.(M),{once:!0}),Pt(i,f),f.defaultPrevented?g.current=!1:d.onClose()}};return r.jsx(Ee,{...a,ref:m,disabled:t,onClick:h(e.onClick,p),onPointerDown:i=>{e.onPointerDown?.(i),g.current=!0},onPointerUp:h(e.onPointerUp,i=>{g.current||i.currentTarget?.click()}),onKeyDown:h(e.onKeyDown,i=>{const f=l.searchRef.current!=="";t||f&&i.key===" "||Q.includes(i.key)&&(i.currentTarget.click(),i.preventDefault())})})});Y.displayName=B;var Ee=s.forwardRef((e,o)=>{const{__scopeMenu:t,disabled:n=!1,textValue:a,...c}=e,d=oe(B,t),l=be(t),m=s.useRef(null),g=L(o,m),[p,i]=s.useState(!1),[f,M]=s.useState("");return s.useEffect(()=>{const x=m.current;x&&M((x.textContent??"").trim())},[c.children]),r.jsx(O.ItemSlot,{scope:t,disabled:n,textValue:a??f,children:r.jsx(Xt,{asChild:!0,...l,focusable:!n,children:r.jsx(P.div,{role:"menuitem","data-highlighted":p?"":void 0,"aria-disabled":n||void 0,"data-disabled":n?"":void 0,...c,ref:g,onPointerMove:h(e.onPointerMove,k(x=>{n?d.onItemLeave(x):(d.onItemEnter(x),x.defaultPrevented||x.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:h(e.onPointerLeave,k(x=>d.onItemLeave(x))),onFocus:h(e.onFocus,()=>i(!0)),onBlur:h(e.onBlur,()=>i(!1))})})})}),go="MenuCheckboxItem",je=s.forwardRef((e,o)=>{const{checked:t=!1,onCheckedChange:n,...a}=e;return r.jsx(Le,{scope:e.__scopeMenu,checked:t,children:r.jsx(Y,{role:"menuitemcheckbox","aria-checked":V(t)?"mixed":t,...a,ref:o,"data-state":se(t),onSelect:h(a.onSelect,()=>n?.(V(t)?!0:!t),{checkForDefaultPrevented:!1})})})});je.displayName=go;var Te="MenuRadioGroup",[ho,xo]=R(Te,{value:void 0,onValueChange:()=>{}}),Ae=s.forwardRef((e,o)=>{const{value:t,onValueChange:n,...a}=e,c=_e(n);return r.jsx(ho,{scope:e.__scopeMenu,value:t,onValueChange:c,children:r.jsx(re,{...a,ref:o})})});Ae.displayName=Te;var Oe="MenuRadioItem",ke=s.forwardRef((e,o)=>{const{value:t,...n}=e,a=xo(Oe,e.__scopeMenu),c=t===a.value;return r.jsx(Le,{scope:e.__scopeMenu,checked:c,children:r.jsx(Y,{role:"menuitemradio","aria-checked":c,...n,ref:o,"data-state":se(c),onSelect:h(n.onSelect,()=>a.onValueChange?.(t),{checkForDefaultPrevented:!1})})})});ke.displayName=Oe;var ae="MenuItemIndicator",[Le,vo]=R(ae,{checked:!1}),Fe=s.forwardRef((e,o)=>{const{__scopeMenu:t,forceMount:n,...a}=e,c=vo(ae,t);return r.jsx(z,{present:n||V(c.checked)||c.checked===!0,children:r.jsx(P.span,{...a,ref:o,"data-state":se(c.checked)})})});Fe.displayName=ae;var wo="MenuSeparator",Ge=s.forwardRef((e,o)=>{const{__scopeMenu:t,...n}=e;return r.jsx(P.div,{role:"separator","aria-orientation":"horizontal",...n,ref:o})});Ge.displayName=wo;var Mo="MenuArrow",Ke=s.forwardRef((e,o)=>{const{__scopeMenu:t,...n}=e,a=X(t);return r.jsx(Vt,{...a,...n,ref:o})});Ke.displayName=Mo;var Co="MenuSub",[Ln,$e]=R(Co),A="MenuSubTrigger",Ue=s.forwardRef((e,o)=>{const t=b(A,e.__scopeMenu),n=G(A,e.__scopeMenu),a=$e(A,e.__scopeMenu),c=oe(A,e.__scopeMenu),d=s.useRef(null),{pointerGraceTimerRef:l,onPointerGraceIntentChange:m}=c,g={__scopeMenu:e.__scopeMenu},p=s.useCallback(()=>{d.current&&window.clearTimeout(d.current),d.current=null},[]);return s.useEffect(()=>p,[p]),s.useEffect(()=>{const i=l.current;return()=>{window.clearTimeout(i),m(null)}},[l,m]),r.jsx(ee,{asChild:!0,...g,children:r.jsx(Ee,{id:a.triggerId,"aria-haspopup":"menu","aria-expanded":t.open,"aria-controls":a.contentId,"data-state":ze(t.open),...e,ref:ge(o,a.onTriggerChange),onClick:i=>{e.onClick?.(i),!(e.disabled||i.defaultPrevented)&&(i.currentTarget.focus(),t.open||t.onOpenChange(!0))},onPointerMove:h(e.onPointerMove,k(i=>{c.onItemEnter(i),!i.defaultPrevented&&!e.disabled&&!t.open&&!d.current&&(c.onPointerGraceIntentChange(null),d.current=window.setTimeout(()=>{t.onOpenChange(!0),p()},100))})),onPointerLeave:h(e.onPointerLeave,k(i=>{p();const f=t.content?.getBoundingClientRect();if(f){const M=t.content?.dataset.side,x=M==="right",N=x?-5:5,E=f[x?"left":"right"],D=f[x?"right":"left"];c.onPointerGraceIntentChange({area:[{x:i.clientX+N,y:i.clientY},{x:E,y:f.top},{x:D,y:f.top},{x:D,y:f.bottom},{x:E,y:f.bottom}],side:M}),window.clearTimeout(l.current),l.current=window.setTimeout(()=>c.onPointerGraceIntentChange(null),300)}else{if(c.onTriggerLeave(i),i.defaultPrevented)return;c.onPointerGraceIntentChange(null)}})),onKeyDown:h(e.onKeyDown,i=>{const f=c.searchRef.current!=="";e.disabled||f&&i.key===" "||eo[n.dir].includes(i.key)&&(t.onOpenChange(!0),t.content?.focus(),i.preventDefault())})})})});Ue.displayName=A;var Be="MenuSubContent",Ve=s.forwardRef((e,o)=>{const t=De(C,e.__scopeMenu),{forceMount:n=t.forceMount,...a}=e,c=b(C,e.__scopeMenu),d=G(C,e.__scopeMenu),l=$e(Be,e.__scopeMenu),m=s.useRef(null),g=L(o,m);return r.jsx(O.Provider,{scope:e.__scopeMenu,children:r.jsx(z,{present:n||c.open,children:r.jsx(O.Slot,{scope:e.__scopeMenu,children:r.jsx(ne,{id:l.contentId,"aria-labelledby":l.triggerId,...a,ref:g,align:"start",side:d.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:p=>{d.isUsingKeyboardRef.current&&m.current?.focus(),p.preventDefault()},onCloseAutoFocus:p=>p.preventDefault(),onFocusOutside:h(e.onFocusOutside,p=>{p.target!==l.trigger&&c.onOpenChange(!1)}),onEscapeKeyDown:h(e.onEscapeKeyDown,p=>{d.onClose(),p.preventDefault()}),onKeyDown:h(e.onKeyDown,p=>{const i=p.currentTarget.contains(p.target),f=to[d.dir].includes(p.key);i&&f&&(c.onOpenChange(!1),l.trigger?.focus(),p.preventDefault())})})})})})});Ve.displayName=Be;function ze(e){return e?"open":"closed"}function V(e){return e==="indeterminate"}function se(e){return V(e)?"indeterminate":e?"checked":"unchecked"}function _o(e){const o=document.activeElement;for(const t of e)if(t===o||(t.focus(),document.activeElement!==o))return}function yo(e,o){return e.map((t,n)=>e[(o+n)%e.length])}function Ro(e,o,t){const a=o.length>1&&Array.from(o).every(g=>g===o[0])?o[0]:o,c=t?e.indexOf(t):-1;let d=yo(e,Math.max(c,0));a.length===1&&(d=d.filter(g=>g!==t));const m=d.find(g=>g.toLowerCase().startsWith(a.toLowerCase()));return m!==t?m:void 0}function bo(e,o){const{x:t,y:n}=e;let a=!1;for(let c=0,d=o.length-1;cn!=f>n&&t<(i-g)*(n-p)/(f-p)+g&&(a=!a)}return a}function No(e,o){if(!o)return!1;const t={x:e.clientX,y:e.clientY};return bo(t,o)}function k(e){return o=>o.pointerType==="mouse"?e(o):void 0}var Do=Ne,So=ee,Io=Se,Po=Ie,Eo=re,jo=Pe,To=Y,Ao=je,Oo=Ae,ko=ke,Lo=Fe,Fo=Ge,Go=Ke,Ko=Ue,$o=Ve,H="DropdownMenu",[Uo]=me(H,[Re]),v=Re(),[Bo,Xe]=Uo(H),Ye=e=>{const{__scopeDropdownMenu:o,children:t,dir:n,open:a,defaultOpen:c,onOpenChange:d,modal:l=!0}=e,m=v(o),g=s.useRef(null),[p,i]=St({prop:a,defaultProp:c??!1,onChange:d,caller:H});return r.jsx(Bo,{scope:o,triggerId:pe(),triggerRef:g,contentId:pe(),open:p,onOpenChange:i,onOpenToggle:s.useCallback(()=>i(f=>!f),[i]),modal:l,children:r.jsx(Do,{...m,open:p,onOpenChange:i,dir:n,modal:l,children:t})})};Ye.displayName=H;var He="DropdownMenuTrigger",We=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,disabled:n=!1,...a}=e,c=Xe(He,t),d=v(t);return r.jsx(So,{asChild:!0,...d,children:r.jsx(P.button,{type:"button",id:c.triggerId,"aria-haspopup":"menu","aria-expanded":c.open,"aria-controls":c.open?c.contentId:void 0,"data-state":c.open?"open":"closed","data-disabled":n?"":void 0,disabled:n,...a,ref:ge(o,c.triggerRef),onPointerDown:h(e.onPointerDown,l=>{!n&&l.button===0&&l.ctrlKey===!1&&(c.onOpenToggle(),c.open||l.preventDefault())}),onKeyDown:h(e.onKeyDown,l=>{n||(["Enter"," "].includes(l.key)&&c.onOpenToggle(),l.key==="ArrowDown"&&c.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(l.key)&&l.preventDefault())})})})});We.displayName=He;var Vo="DropdownMenuPortal",Ze=e=>{const{__scopeDropdownMenu:o,...t}=e,n=v(o);return r.jsx(Io,{...n,...t})};Ze.displayName=Vo;var qe="DropdownMenuContent",Je=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,a=Xe(qe,t),c=v(t),d=s.useRef(!1);return r.jsx(Po,{id:a.contentId,"aria-labelledby":a.triggerId,...c,...n,ref:o,onCloseAutoFocus:h(e.onCloseAutoFocus,l=>{d.current||a.triggerRef.current?.focus(),d.current=!1,l.preventDefault()}),onInteractOutside:h(e.onInteractOutside,l=>{const m=l.detail.originalEvent,g=m.button===0&&m.ctrlKey===!0,p=m.button===2||g;(!a.modal||p)&&(d.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});Je.displayName=qe;var zo="DropdownMenuGroup",Xo=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,a=v(t);return r.jsx(Eo,{...a,...n,ref:o})});Xo.displayName=zo;var Yo="DropdownMenuLabel",Qe=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,a=v(t);return r.jsx(jo,{...a,...n,ref:o})});Qe.displayName=Yo;var Ho="DropdownMenuItem",et=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,a=v(t);return r.jsx(To,{...a,...n,ref:o})});et.displayName=Ho;var Wo="DropdownMenuCheckboxItem",tt=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,a=v(t);return r.jsx(Ao,{...a,...n,ref:o})});tt.displayName=Wo;var Zo="DropdownMenuRadioGroup",qo=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,a=v(t);return r.jsx(Oo,{...a,...n,ref:o})});qo.displayName=Zo;var Jo="DropdownMenuRadioItem",ot=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,a=v(t);return r.jsx(ko,{...a,...n,ref:o})});ot.displayName=Jo;var Qo="DropdownMenuItemIndicator",nt=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,a=v(t);return r.jsx(Lo,{...a,...n,ref:o})});nt.displayName=Qo;var en="DropdownMenuSeparator",rt=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,a=v(t);return r.jsx(Fo,{...a,...n,ref:o})});rt.displayName=en;var tn="DropdownMenuArrow",on=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,a=v(t);return r.jsx(Go,{...a,...n,ref:o})});on.displayName=tn;var nn="DropdownMenuSubTrigger",at=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,a=v(t);return r.jsx(Ko,{...a,...n,ref:o})});at.displayName=nn;var rn="DropdownMenuSubContent",st=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,a=v(t);return r.jsx($o,{...a,...n,ref:o,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});st.displayName=rn;var an=Ye,sn=We,cn=Ze,ct=Je,it=Qe,ut=et,dt=tt,lt=ot,pt=nt,ft=rt,mt=at,gt=st;const Fn=an,Gn=sn,un=s.forwardRef(({className:e,inset:o,children:t,...n},a)=>r.jsxs(mt,{ref:a,className:_("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[state=open]:bg-accent focus:bg-accent",o&&"pl-8",e),...n,children:[t,r.jsx(Ht,{className:"ml-auto h-4 w-4"})]}));un.displayName=mt.displayName;const dn=s.forwardRef(({className:e,...o},t)=>r.jsx(gt,{ref:t,className:_("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...o}));dn.displayName=gt.displayName;const ln=s.forwardRef(({className:e,sideOffset:o=4,...t},n)=>r.jsx(cn,{children:r.jsx(ct,{ref:n,sideOffset:o,className:_("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...t})}));ln.displayName=ct.displayName;const pn=s.forwardRef(({className:e,inset:o,...t},n)=>r.jsx(ut,{ref:n,className:_("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground",o&&"pl-8",e),...t}));pn.displayName=ut.displayName;const fn=s.forwardRef(({className:e,children:o,checked:t,...n},a)=>r.jsxs(dt,{ref:a,className:_("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground",e),checked:t,...n,children:[r.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:r.jsx(pt,{children:r.jsx(Wt,{className:"h-4 w-4"})})}),o]}));fn.displayName=dt.displayName;const mn=s.forwardRef(({className:e,children:o,...t},n)=>r.jsxs(lt,{ref:n,className:_("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground",e),...t,children:[r.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:r.jsx(pt,{children:r.jsx(zt,{className:"h-2 w-2 fill-current"})})}),o]}));mn.displayName=lt.displayName;const gn=s.forwardRef(({className:e,inset:o,...t},n)=>r.jsx(it,{ref:n,className:_("px-2 py-1.5 text-sm font-semibold",o&&"pl-8",e),...t}));gn.displayName=it.displayName;const hn=s.forwardRef(({className:e,...o},t)=>r.jsx(ft,{ref:t,className:_("-mx-1 my-1 h-px bg-muted",e),...o}));hn.displayName=ft.displayName;const Kn=Gt,$n=Kt,xn=Lt,ht=s.forwardRef(({className:e,...o},t)=>r.jsx(he,{className:_("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...o,ref:t}));ht.displayName=he.displayName;const vn=Zt("fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500",{variants:{side:{top:"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",bottom:"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",left:"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",right:"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"}},defaultVariants:{side:"right"}}),wn=s.forwardRef(({side:e="right",className:o,children:t,...n},a)=>r.jsxs(xn,{children:[r.jsx(ht,{}),r.jsxs(xe,{ref:a,className:_(vn({side:e}),o),...n,children:[t,r.jsxs(Ft,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity data-[state=open]:bg-secondary hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none",children:[r.jsx(qt,{className:"h-4 w-4"}),r.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));wn.displayName=xe.displayName;const Mn=s.forwardRef(({className:e,...o},t)=>r.jsx(ve,{ref:t,className:_("text-lg font-semibold text-foreground",e),...o}));Mn.displayName=ve.displayName;const Cn=s.forwardRef(({className:e,...o},t)=>r.jsx(we,{ref:t,className:_("text-sm text-muted-foreground",e),...o}));Cn.displayName=we.displayName;const Un={src:"/assets/dc-logo.BtymwVD4.png"};export{Fn as D,kn as M,Kn as S,Gn as a,ln as b,pn as c,Un as d,$n as e,wn as f}; diff --git a/docs/assets/dialog.ov7dtrSg.js b/docs/assets/dialog.CeUsCtfh.js similarity index 87% rename from docs/assets/dialog.ov7dtrSg.js rename to docs/assets/dialog.CeUsCtfh.js index b5905941..92bf32fc 100644 --- a/docs/assets/dialog.ov7dtrSg.js +++ b/docs/assets/dialog.CeUsCtfh.js @@ -1,4 +1,4 @@ -import{c as p}from"./createLucideIcon.CJ67VFfW.js";import{j as a}from"./jsx-runtime.D3GSbgeI.js";import{r as i}from"./index.BaMLtrTp.js";import{O as d,b as f,C as n,c as g,T as r,d as l,e as x,f as u}from"./index.lqPDcyCD.js";import{a as o}from"./utils.XhT4HDO9.js";import{X as y}from"./x.B1hOxjOp.js";/** +import{c as p}from"./createLucideIcon.DnxMVFvH.js";import{j as a}from"./jsx-runtime.D3GSbgeI.js";import{r as i}from"./index.D_oLZvzW.js";import{O as d,a as f,C as n,b as g,T as r,c as l,d as x,e as u}from"./index.DAP1SQuk.js";import{a as o}from"./utils.9Q5QEYED.js";import{X as y}from"./x.C6Iw0U2F.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/download.B9D7xAuS.js b/docs/assets/download.DXDz0qZS.js similarity index 87% rename from docs/assets/download.B9D7xAuS.js rename to docs/assets/download.DXDz0qZS.js index cb9b0992..7984154d 100644 --- a/docs/assets/download.B9D7xAuS.js +++ b/docs/assets/download.DXDz0qZS.js @@ -1,4 +1,4 @@ -import{c as o}from"./createLucideIcon.CJ67VFfW.js";/** +import{c as o}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/external-link.BigcEWhC.js b/docs/assets/external-link.DsSVi18J.js similarity index 87% rename from docs/assets/external-link.BigcEWhC.js rename to docs/assets/external-link.DsSVi18J.js index 715d01ab..c27779da 100644 --- a/docs/assets/external-link.BigcEWhC.js +++ b/docs/assets/external-link.DsSVi18J.js @@ -1,4 +1,4 @@ -import{c as a}from"./createLucideIcon.CJ67VFfW.js";/** +import{c as a}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/file-text.DlCSEU1L.js b/docs/assets/file-text.CAYOOP65.js similarity index 89% rename from docs/assets/file-text.DlCSEU1L.js rename to docs/assets/file-text.CAYOOP65.js index fd4ec437..997b1e45 100644 --- a/docs/assets/file-text.DlCSEU1L.js +++ b/docs/assets/file-text.CAYOOP65.js @@ -1,4 +1,4 @@ -import{c as e}from"./createLucideIcon.CJ67VFfW.js";/** +import{c as e}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/folder-open.xHIhBzFI.js b/docs/assets/folder-open.Z1dzfNLE.js similarity index 88% rename from docs/assets/folder-open.xHIhBzFI.js rename to docs/assets/folder-open.Z1dzfNLE.js index a9340d10..707c6bd0 100644 --- a/docs/assets/folder-open.xHIhBzFI.js +++ b/docs/assets/folder-open.Z1dzfNLE.js @@ -1,4 +1,4 @@ -import{c as a}from"./createLucideIcon.CJ67VFfW.js";/** +import{c as a}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/folder-search.DcGsVAUM.js b/docs/assets/folder-search.Cl-IbVIe.js similarity index 88% rename from docs/assets/folder-search.DcGsVAUM.js rename to docs/assets/folder-search.Cl-IbVIe.js index 4a64696b..e8cd2ada 100644 --- a/docs/assets/folder-search.DcGsVAUM.js +++ b/docs/assets/folder-search.Cl-IbVIe.js @@ -1,4 +1,4 @@ -import{c as a}from"./createLucideIcon.CJ67VFfW.js";/** +import{c as a}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/folder.CuC5tYjw.js b/docs/assets/folder.DUWx0hf3.js similarity index 86% rename from docs/assets/folder.CuC5tYjw.js rename to docs/assets/folder.DUWx0hf3.js index 1fb6a445..925c69c0 100644 --- a/docs/assets/folder.CuC5tYjw.js +++ b/docs/assets/folder.DUWx0hf3.js @@ -1,4 +1,4 @@ -import{c as a}from"./createLucideIcon.CJ67VFfW.js";/** +import{c as a}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/git-branch.CCosX0mk.js b/docs/assets/git-branch.B8v1eTjD.js similarity index 88% rename from docs/assets/git-branch.CCosX0mk.js rename to docs/assets/git-branch.B8v1eTjD.js index 7bb300d0..db732849 100644 --- a/docs/assets/git-branch.CCosX0mk.js +++ b/docs/assets/git-branch.B8v1eTjD.js @@ -1,4 +1,4 @@ -import{c}from"./createLucideIcon.CJ67VFfW.js";/** +import{c}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/github.BkBM2DcL.js b/docs/assets/github.xZ1f8Ld5.js similarity index 91% rename from docs/assets/github.BkBM2DcL.js rename to docs/assets/github.xZ1f8Ld5.js index 12d842ab..26f442e4 100644 --- a/docs/assets/github.BkBM2DcL.js +++ b/docs/assets/github.xZ1f8Ld5.js @@ -1,4 +1,4 @@ -import{c}from"./createLucideIcon.CJ67VFfW.js";/** +import{c}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/hard-drive.BOIAI7X-.js b/docs/assets/hard-drive.DFcIH-f-.js similarity index 90% rename from docs/assets/hard-drive.BOIAI7X-.js rename to docs/assets/hard-drive.DFcIH-f-.js index 6c117f29..b1407357 100644 --- a/docs/assets/hard-drive.BOIAI7X-.js +++ b/docs/assets/hard-drive.DFcIH-f-.js @@ -1,4 +1,4 @@ -import{c as e}from"./createLucideIcon.CJ67VFfW.js";/** +import{c as e}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/index.BlsO67so.js b/docs/assets/index.5q9h5iS_.js similarity index 80% rename from docs/assets/index.BlsO67so.js rename to docs/assets/index.5q9h5iS_.js index 5b2da36c..24e95036 100644 --- a/docs/assets/index.BlsO67so.js +++ b/docs/assets/index.5q9h5iS_.js @@ -1 +1 @@ -import{g as c,r as f}from"./index.BaMLtrTp.js";import{r as u}from"./index.BbTPjBLC.js";import{c as v}from"./utils.XhT4HDO9.js";import{j as l}from"./jsx-runtime.D3GSbgeI.js";var o=u();const D=c(o);var d=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],P=d.reduce((t,r)=>{const s=v(`Primitive.${r}`),i=f.forwardRef((e,a)=>{const{asChild:m,...p}=e,n=m?s:r;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),l.jsx(n,{...p,ref:a})});return i.displayName=`Primitive.${r}`,{...t,[r]:i}},{});function S(t,r){t&&o.flushSync(()=>t.dispatchEvent(r))}export{P,S as d,o as r,D as v}; +import{g as c,r as f}from"./index.D_oLZvzW.js";import{r as u}from"./index.BbTPjBLC.js";import{c as v}from"./utils.9Q5QEYED.js";import{j as l}from"./jsx-runtime.D3GSbgeI.js";var o=u();const D=c(o);var d=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],P=d.reduce((t,r)=>{const s=v(`Primitive.${r}`),i=f.forwardRef((e,a)=>{const{asChild:m,...p}=e,n=m?s:r;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),l.jsx(n,{...p,ref:a})});return i.displayName=`Primitive.${r}`,{...t,[r]:i}},{});function S(t,r){t&&o.flushSync(()=>t.dispatchEvent(r))}export{P,S as d,o as r,D as v}; diff --git a/docs/assets/index.C9IP8clr.js b/docs/assets/index.CKNnz_F1.js similarity index 92% rename from docs/assets/index.C9IP8clr.js rename to docs/assets/index.CKNnz_F1.js index 53683120..bdf22d49 100644 --- a/docs/assets/index.C9IP8clr.js +++ b/docs/assets/index.CKNnz_F1.js @@ -1 +1 @@ -import{r as s}from"./index.BaMLtrTp.js";import{c as H,a as V,d as z,b as p,e as q,f as J}from"./index.vFQDSFae.js";import{u as Q}from"./utils.XhT4HDO9.js";import{P as G}from"./index.BlsO67so.js";import{u as W}from"./index.CyN3cLSG.js";import{j as d}from"./jsx-runtime.D3GSbgeI.js";var _="rovingFocusGroup.onEntryFocus",X={bubbles:!1,cancelable:!0},I="RovingFocusGroup",[y,N,Z]=V(I),[$,pe]=H(I,[Z]),[ee,oe]=$(I),O=s.forwardRef((e,r)=>d.jsx(y.Provider,{scope:e.__scopeRovingFocusGroup,children:d.jsx(y.Slot,{scope:e.__scopeRovingFocusGroup,children:d.jsx(te,{...e,ref:r})})}));O.displayName=I;var te=s.forwardRef((e,r)=>{const{__scopeRovingFocusGroup:c,orientation:o,loop:T=!1,dir:w,currentTabStopId:v,defaultCurrentTabStopId:C,onCurrentTabStopIdChange:S,onEntryFocus:m,preventScrollOnEntryFocus:a=!1,...b}=e,F=s.useRef(null),g=Q(r,F),R=q(w),[E,t]=J({prop:v,defaultProp:C??null,onChange:S,caller:I}),[i,x]=s.useState(!1),u=W(m),l=N(c),h=s.useRef(!1),[k,P]=s.useState(0);return s.useEffect(()=>{const n=F.current;if(n)return n.addEventListener(_,u),()=>n.removeEventListener(_,u)},[u]),d.jsx(ee,{scope:c,orientation:o,dir:R,loop:T,currentTabStopId:E,onItemFocus:s.useCallback(n=>t(n),[t]),onItemShiftTab:s.useCallback(()=>x(!0),[]),onFocusableItemAdd:s.useCallback(()=>P(n=>n+1),[]),onFocusableItemRemove:s.useCallback(()=>P(n=>n-1),[]),children:d.jsx(G.div,{tabIndex:i||k===0?-1:0,"data-orientation":o,...b,ref:g,style:{outline:"none",...e.style},onMouseDown:p(e.onMouseDown,()=>{h.current=!0}),onFocus:p(e.onFocus,n=>{const L=!h.current;if(n.target===n.currentTarget&&L&&!i){const D=new CustomEvent(_,X);if(n.currentTarget.dispatchEvent(D),!D.defaultPrevented){const A=l().filter(f=>f.focusable),U=A.find(f=>f.active),B=A.find(f=>f.id===E),Y=[U,B,...A].filter(Boolean).map(f=>f.ref.current);M(Y,a)}}h.current=!1}),onBlur:p(e.onBlur,()=>x(!1))})})}),K="RovingFocusGroupItem",j=s.forwardRef((e,r)=>{const{__scopeRovingFocusGroup:c,focusable:o=!0,active:T=!1,tabStopId:w,children:v,...C}=e,S=z(),m=w||S,a=oe(K,c),b=a.currentTabStopId===m,F=N(c),{onFocusableItemAdd:g,onFocusableItemRemove:R,currentTabStopId:E}=a;return s.useEffect(()=>{if(o)return g(),()=>R()},[o,g,R]),d.jsx(y.ItemSlot,{scope:c,id:m,focusable:o,active:T,children:d.jsx(G.span,{tabIndex:b?0:-1,"data-orientation":a.orientation,...C,ref:r,onMouseDown:p(e.onMouseDown,t=>{o?a.onItemFocus(m):t.preventDefault()}),onFocus:p(e.onFocus,()=>a.onItemFocus(m)),onKeyDown:p(e.onKeyDown,t=>{if(t.key==="Tab"&&t.shiftKey){a.onItemShiftTab();return}if(t.target!==t.currentTarget)return;const i=se(t,a.orientation,a.dir);if(i!==void 0){if(t.metaKey||t.ctrlKey||t.altKey||t.shiftKey)return;t.preventDefault();let u=F().filter(l=>l.focusable).map(l=>l.ref.current);if(i==="last")u.reverse();else if(i==="prev"||i==="next"){i==="prev"&&u.reverse();const l=u.indexOf(t.currentTarget);u=a.loop?ce(u,l+1):u.slice(l+1)}setTimeout(()=>M(u))}}),children:typeof v=="function"?v({isCurrentTabStop:b,hasTabStop:E!=null}):v})})});j.displayName=K;var re={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function ne(e,r){return r!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function se(e,r,c){const o=ne(e.key,c);if(!(r==="vertical"&&["ArrowLeft","ArrowRight"].includes(o))&&!(r==="horizontal"&&["ArrowUp","ArrowDown"].includes(o)))return re[o]}function M(e,r=!1){const c=document.activeElement;for(const o of e)if(o===c||(o.focus({preventScroll:r}),document.activeElement!==c))return}function ce(e,r){return e.map((c,o)=>e[(r+o)%e.length])}var ve=O,Ie=j;export{Ie as I,ve as R,pe as c}; +import{r as s}from"./index.D_oLZvzW.js";import{c as H,a as V,d as z,b as p,e as q,f as J}from"./index.DO6kBsrn.js";import{u as Q}from"./utils.9Q5QEYED.js";import{P as G}from"./index.5q9h5iS_.js";import{u as W}from"./index.xUA8L87E.js";import{j as d}from"./jsx-runtime.D3GSbgeI.js";var _="rovingFocusGroup.onEntryFocus",X={bubbles:!1,cancelable:!0},I="RovingFocusGroup",[y,N,Z]=V(I),[$,pe]=H(I,[Z]),[ee,oe]=$(I),O=s.forwardRef((e,r)=>d.jsx(y.Provider,{scope:e.__scopeRovingFocusGroup,children:d.jsx(y.Slot,{scope:e.__scopeRovingFocusGroup,children:d.jsx(te,{...e,ref:r})})}));O.displayName=I;var te=s.forwardRef((e,r)=>{const{__scopeRovingFocusGroup:c,orientation:o,loop:T=!1,dir:w,currentTabStopId:v,defaultCurrentTabStopId:C,onCurrentTabStopIdChange:S,onEntryFocus:m,preventScrollOnEntryFocus:a=!1,...b}=e,F=s.useRef(null),g=Q(r,F),R=q(w),[E,t]=J({prop:v,defaultProp:C??null,onChange:S,caller:I}),[i,x]=s.useState(!1),u=W(m),l=N(c),h=s.useRef(!1),[k,P]=s.useState(0);return s.useEffect(()=>{const n=F.current;if(n)return n.addEventListener(_,u),()=>n.removeEventListener(_,u)},[u]),d.jsx(ee,{scope:c,orientation:o,dir:R,loop:T,currentTabStopId:E,onItemFocus:s.useCallback(n=>t(n),[t]),onItemShiftTab:s.useCallback(()=>x(!0),[]),onFocusableItemAdd:s.useCallback(()=>P(n=>n+1),[]),onFocusableItemRemove:s.useCallback(()=>P(n=>n-1),[]),children:d.jsx(G.div,{tabIndex:i||k===0?-1:0,"data-orientation":o,...b,ref:g,style:{outline:"none",...e.style},onMouseDown:p(e.onMouseDown,()=>{h.current=!0}),onFocus:p(e.onFocus,n=>{const L=!h.current;if(n.target===n.currentTarget&&L&&!i){const D=new CustomEvent(_,X);if(n.currentTarget.dispatchEvent(D),!D.defaultPrevented){const A=l().filter(f=>f.focusable),U=A.find(f=>f.active),B=A.find(f=>f.id===E),Y=[U,B,...A].filter(Boolean).map(f=>f.ref.current);M(Y,a)}}h.current=!1}),onBlur:p(e.onBlur,()=>x(!1))})})}),K="RovingFocusGroupItem",j=s.forwardRef((e,r)=>{const{__scopeRovingFocusGroup:c,focusable:o=!0,active:T=!1,tabStopId:w,children:v,...C}=e,S=z(),m=w||S,a=oe(K,c),b=a.currentTabStopId===m,F=N(c),{onFocusableItemAdd:g,onFocusableItemRemove:R,currentTabStopId:E}=a;return s.useEffect(()=>{if(o)return g(),()=>R()},[o,g,R]),d.jsx(y.ItemSlot,{scope:c,id:m,focusable:o,active:T,children:d.jsx(G.span,{tabIndex:b?0:-1,"data-orientation":a.orientation,...C,ref:r,onMouseDown:p(e.onMouseDown,t=>{o?a.onItemFocus(m):t.preventDefault()}),onFocus:p(e.onFocus,()=>a.onItemFocus(m)),onKeyDown:p(e.onKeyDown,t=>{if(t.key==="Tab"&&t.shiftKey){a.onItemShiftTab();return}if(t.target!==t.currentTarget)return;const i=se(t,a.orientation,a.dir);if(i!==void 0){if(t.metaKey||t.ctrlKey||t.altKey||t.shiftKey)return;t.preventDefault();let u=F().filter(l=>l.focusable).map(l=>l.ref.current);if(i==="last")u.reverse();else if(i==="prev"||i==="next"){i==="prev"&&u.reverse();const l=u.indexOf(t.currentTarget);u=a.loop?ce(u,l+1):u.slice(l+1)}setTimeout(()=>M(u))}}),children:typeof v=="function"?v({isCurrentTabStop:b,hasTabStop:E!=null}):v})})});j.displayName=K;var re={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function ne(e,r){return r!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function se(e,r,c){const o=ne(e.key,c);if(!(r==="vertical"&&["ArrowLeft","ArrowRight"].includes(o))&&!(r==="horizontal"&&["ArrowUp","ArrowDown"].includes(o)))return re[o]}function M(e,r=!1){const c=document.activeElement;for(const o of e)if(o===c||(o.focus({preventScroll:r}),document.activeElement!==c))return}function ce(e,r){return e.map((c,o)=>e[(r+o)%e.length])}var ve=O,Ie=j;export{Ie as I,ve as R,pe as c}; diff --git a/docs/assets/index.lqPDcyCD.js b/docs/assets/index.DAP1SQuk.js similarity index 98% rename from docs/assets/index.lqPDcyCD.js rename to docs/assets/index.DAP1SQuk.js index e69c1821..4c5fd496 100644 --- a/docs/assets/index.lqPDcyCD.js +++ b/docs/assets/index.DAP1SQuk.js @@ -1,4 +1,4 @@ -import{r as i}from"./index.BaMLtrTp.js";import{b as A,u as et,c as tt,P as ie,g as nt,f as rt,d as Z}from"./index.vFQDSFae.js";import{u as _,c as ot}from"./utils.XhT4HDO9.js";import{P as T,d as at,v as it}from"./index.BlsO67so.js";import{u as j}from"./index.CyN3cLSG.js";import{j as p}from"./jsx-runtime.D3GSbgeI.js";function st(e,t=globalThis?.document){const n=j(e);i.useEffect(()=>{const r=o=>{o.key==="Escape"&&n(o)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var ct="DismissableLayer",oe="dismissableLayer.update",ut="dismissableLayer.pointerDownOutside",lt="dismissableLayer.focusOutside",de,Se=i.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),se=i.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:a,onInteractOutside:u,onDismiss:s,...y}=e,l=i.useContext(Se),[d,v]=i.useState(null),h=d?.ownerDocument??globalThis?.document,[,E]=i.useState({}),D=_(t,g=>v(g)),c=Array.from(l.layers),[f]=[...l.layersWithOutsidePointerEventsDisabled].slice(-1),m=c.indexOf(f),b=d?c.indexOf(d):-1,C=l.layersWithOutsidePointerEventsDisabled.size>0,w=b>=m,S=ft(g=>{const x=g.target,W=[...l.branches].some(z=>z.contains(x));!w||W||(o?.(g),u?.(g),g.defaultPrevented||s?.())},h),O=vt(g=>{const x=g.target;[...l.branches].some(z=>z.contains(x))||(a?.(g),u?.(g),g.defaultPrevented||s?.())},h);return st(g=>{b===l.layers.size-1&&(r?.(g),!g.defaultPrevented&&s&&(g.preventDefault(),s()))},h),i.useEffect(()=>{if(d)return n&&(l.layersWithOutsidePointerEventsDisabled.size===0&&(de=h.body.style.pointerEvents,h.body.style.pointerEvents="none"),l.layersWithOutsidePointerEventsDisabled.add(d)),l.layers.add(d),fe(),()=>{n&&l.layersWithOutsidePointerEventsDisabled.size===1&&(h.body.style.pointerEvents=de)}},[d,h,n,l]),i.useEffect(()=>()=>{d&&(l.layers.delete(d),l.layersWithOutsidePointerEventsDisabled.delete(d),fe())},[d,l]),i.useEffect(()=>{const g=()=>E({});return document.addEventListener(oe,g),()=>document.removeEventListener(oe,g)},[]),p.jsx(T.div,{...y,ref:D,style:{pointerEvents:C?w?"auto":"none":void 0,...e.style},onFocusCapture:A(e.onFocusCapture,O.onFocusCapture),onBlurCapture:A(e.onBlurCapture,O.onBlurCapture),onPointerDownCapture:A(e.onPointerDownCapture,S.onPointerDownCapture)})});se.displayName=ct;var dt="DismissableLayerBranch",De=i.forwardRef((e,t)=>{const n=i.useContext(Se),r=i.useRef(null),o=_(t,r);return i.useEffect(()=>{const a=r.current;if(a)return n.branches.add(a),()=>{n.branches.delete(a)}},[n.branches]),p.jsx(T.div,{...e,ref:o})});De.displayName=dt;function ft(e,t=globalThis?.document){const n=j(e),r=i.useRef(!1),o=i.useRef(()=>{});return i.useEffect(()=>{const a=s=>{if(s.target&&!r.current){let y=function(){Re(ut,n,l,{discrete:!0})};const l={originalEvent:s};s.pointerType==="touch"?(t.removeEventListener("click",o.current),o.current=y,t.addEventListener("click",o.current,{once:!0})):y()}else t.removeEventListener("click",o.current);r.current=!1},u=window.setTimeout(()=>{t.addEventListener("pointerdown",a)},0);return()=>{window.clearTimeout(u),t.removeEventListener("pointerdown",a),t.removeEventListener("click",o.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function vt(e,t=globalThis?.document){const n=j(e),r=i.useRef(!1);return i.useEffect(()=>{const o=a=>{a.target&&!r.current&&Re(lt,n,{originalEvent:a},{discrete:!1})};return t.addEventListener("focusin",o),()=>t.removeEventListener("focusin",o)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function fe(){const e=new CustomEvent(oe);document.dispatchEvent(e)}function Re(e,t,n,{discrete:r}){const o=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?at(o,a):o.dispatchEvent(a)}var Rn=se,Pn=De,q=0;function ht(){i.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??ve()),document.body.insertAdjacentElement("beforeend",e[1]??ve()),q++,()=>{q===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),q--}},[])}function ve(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var Q="focusScope.autoFocusOnMount",J="focusScope.autoFocusOnUnmount",he={bubbles:!1,cancelable:!0},mt="FocusScope",Pe=i.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:o,onUnmountAutoFocus:a,...u}=e,[s,y]=i.useState(null),l=j(o),d=j(a),v=i.useRef(null),h=_(t,c=>y(c)),E=i.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;i.useEffect(()=>{if(r){let c=function(C){if(E.paused||!s)return;const w=C.target;s.contains(w)?v.current=w:N(v.current,{select:!0})},f=function(C){if(E.paused||!s)return;const w=C.relatedTarget;w!==null&&(s.contains(w)||N(v.current,{select:!0}))},m=function(C){if(document.activeElement===document.body)for(const S of C)S.removedNodes.length>0&&N(s)};document.addEventListener("focusin",c),document.addEventListener("focusout",f);const b=new MutationObserver(m);return s&&b.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",c),document.removeEventListener("focusout",f),b.disconnect()}}},[r,s,E.paused]),i.useEffect(()=>{if(s){pe.add(E);const c=document.activeElement;if(!s.contains(c)){const m=new CustomEvent(Q,he);s.addEventListener(Q,l),s.dispatchEvent(m),m.defaultPrevented||(pt(Ct(Oe(s)),{select:!0}),document.activeElement===c&&N(s))}return()=>{s.removeEventListener(Q,l),setTimeout(()=>{const m=new CustomEvent(J,he);s.addEventListener(J,d),s.dispatchEvent(m),m.defaultPrevented||N(c??document.body,{select:!0}),s.removeEventListener(J,d),pe.remove(E)},0)}}},[s,l,d,E]);const D=i.useCallback(c=>{if(!n&&!r||E.paused)return;const f=c.key==="Tab"&&!c.altKey&&!c.ctrlKey&&!c.metaKey,m=document.activeElement;if(f&&m){const b=c.currentTarget,[C,w]=gt(b);C&&w?!c.shiftKey&&m===w?(c.preventDefault(),n&&N(C,{select:!0})):c.shiftKey&&m===C&&(c.preventDefault(),n&&N(w,{select:!0})):m===b&&c.preventDefault()}},[n,r,E.paused]);return p.jsx(T.div,{tabIndex:-1,...u,ref:h,onKeyDown:D})});Pe.displayName=mt;function pt(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(N(r,{select:t}),document.activeElement!==n)return}function gt(e){const t=Oe(e),n=me(t,e),r=me(t.reverse(),e);return[n,r]}function Oe(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const o=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||o?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function me(e,t){for(const n of e)if(!yt(n,{upTo:t}))return n}function yt(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function Et(e){return e instanceof HTMLInputElement&&"select"in e}function N(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&Et(e)&&t&&e.select()}}var pe=bt();function bt(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=ge(e,t),e.unshift(t)},remove(t){e=ge(e,t),e[0]?.resume()}}}function ge(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function Ct(e){return e.filter(t=>t.tagName!=="A")}var wt="Portal",xe=i.forwardRef((e,t)=>{const{container:n,...r}=e,[o,a]=i.useState(!1);et(()=>a(!0),[]);const u=n||o&&globalThis?.document?.body;return u?it.createPortal(p.jsx(T.div,{...r,ref:t}),u):null});xe.displayName=wt;var St=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},L=new WeakMap,B=new WeakMap,U={},ee=0,Te=function(e){return e&&(e.host||Te(e.parentNode))},Dt=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=Te(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},Rt=function(e,t,n,r){var o=Dt(t,Array.isArray(e)?e:[e]);U[n]||(U[n]=new WeakMap);var a=U[n],u=[],s=new Set,y=new Set(o),l=function(v){!v||s.has(v)||(s.add(v),l(v.parentNode))};o.forEach(l);var d=function(v){!v||y.has(v)||Array.prototype.forEach.call(v.children,function(h){if(s.has(h))d(h);else try{var E=h.getAttribute(r),D=E!==null&&E!=="false",c=(L.get(h)||0)+1,f=(a.get(h)||0)+1;L.set(h,c),a.set(h,f),u.push(h),c===1&&D&&B.set(h,!0),f===1&&h.setAttribute(n,"true"),D||h.setAttribute(r,"true")}catch(m){console.error("aria-hidden: cannot operate on ",h,m)}})};return d(t),s.clear(),ee++,function(){u.forEach(function(v){var h=L.get(v)-1,E=a.get(v)-1;L.set(v,h),a.set(v,E),h||(B.has(v)||v.removeAttribute(r),B.delete(v)),E||v.removeAttribute(n)}),ee--,ee||(L=new WeakMap,L=new WeakMap,B=new WeakMap,U={})}},Pt=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),o=St(e);return o?(r.push.apply(r,Array.from(o.querySelectorAll("[aria-live], script"))),Rt(r,o,n,"aria-hidden")):function(){return null}},P=function(){return P=Object.assign||function(t){for(var n,r=1,o=arguments.length;r"u")return Ht;var t=Gt(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},Yt=Le(),k="data-scroll-locked",Xt=function(e,t,n,r){var o=e.left,a=e.top,u=e.right,s=e.gap;return n===void 0&&(n="margin"),` +import{r as i}from"./index.D_oLZvzW.js";import{b as A,u as et,c as tt,P as ie,g as nt,f as rt,d as Z}from"./index.DO6kBsrn.js";import{u as _,c as ot}from"./utils.9Q5QEYED.js";import{P as T,d as at,v as it}from"./index.5q9h5iS_.js";import{u as j}from"./index.xUA8L87E.js";import{j as p}from"./jsx-runtime.D3GSbgeI.js";function st(e,t=globalThis?.document){const n=j(e);i.useEffect(()=>{const r=o=>{o.key==="Escape"&&n(o)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var ct="DismissableLayer",oe="dismissableLayer.update",ut="dismissableLayer.pointerDownOutside",lt="dismissableLayer.focusOutside",de,Se=i.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),se=i.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:a,onInteractOutside:u,onDismiss:s,...y}=e,l=i.useContext(Se),[d,v]=i.useState(null),h=d?.ownerDocument??globalThis?.document,[,E]=i.useState({}),D=_(t,g=>v(g)),c=Array.from(l.layers),[f]=[...l.layersWithOutsidePointerEventsDisabled].slice(-1),m=c.indexOf(f),b=d?c.indexOf(d):-1,C=l.layersWithOutsidePointerEventsDisabled.size>0,w=b>=m,S=ft(g=>{const x=g.target,W=[...l.branches].some(z=>z.contains(x));!w||W||(o?.(g),u?.(g),g.defaultPrevented||s?.())},h),O=vt(g=>{const x=g.target;[...l.branches].some(z=>z.contains(x))||(a?.(g),u?.(g),g.defaultPrevented||s?.())},h);return st(g=>{b===l.layers.size-1&&(r?.(g),!g.defaultPrevented&&s&&(g.preventDefault(),s()))},h),i.useEffect(()=>{if(d)return n&&(l.layersWithOutsidePointerEventsDisabled.size===0&&(de=h.body.style.pointerEvents,h.body.style.pointerEvents="none"),l.layersWithOutsidePointerEventsDisabled.add(d)),l.layers.add(d),fe(),()=>{n&&l.layersWithOutsidePointerEventsDisabled.size===1&&(h.body.style.pointerEvents=de)}},[d,h,n,l]),i.useEffect(()=>()=>{d&&(l.layers.delete(d),l.layersWithOutsidePointerEventsDisabled.delete(d),fe())},[d,l]),i.useEffect(()=>{const g=()=>E({});return document.addEventListener(oe,g),()=>document.removeEventListener(oe,g)},[]),p.jsx(T.div,{...y,ref:D,style:{pointerEvents:C?w?"auto":"none":void 0,...e.style},onFocusCapture:A(e.onFocusCapture,O.onFocusCapture),onBlurCapture:A(e.onBlurCapture,O.onBlurCapture),onPointerDownCapture:A(e.onPointerDownCapture,S.onPointerDownCapture)})});se.displayName=ct;var dt="DismissableLayerBranch",De=i.forwardRef((e,t)=>{const n=i.useContext(Se),r=i.useRef(null),o=_(t,r);return i.useEffect(()=>{const a=r.current;if(a)return n.branches.add(a),()=>{n.branches.delete(a)}},[n.branches]),p.jsx(T.div,{...e,ref:o})});De.displayName=dt;function ft(e,t=globalThis?.document){const n=j(e),r=i.useRef(!1),o=i.useRef(()=>{});return i.useEffect(()=>{const a=s=>{if(s.target&&!r.current){let y=function(){Re(ut,n,l,{discrete:!0})};const l={originalEvent:s};s.pointerType==="touch"?(t.removeEventListener("click",o.current),o.current=y,t.addEventListener("click",o.current,{once:!0})):y()}else t.removeEventListener("click",o.current);r.current=!1},u=window.setTimeout(()=>{t.addEventListener("pointerdown",a)},0);return()=>{window.clearTimeout(u),t.removeEventListener("pointerdown",a),t.removeEventListener("click",o.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function vt(e,t=globalThis?.document){const n=j(e),r=i.useRef(!1);return i.useEffect(()=>{const o=a=>{a.target&&!r.current&&Re(lt,n,{originalEvent:a},{discrete:!1})};return t.addEventListener("focusin",o),()=>t.removeEventListener("focusin",o)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function fe(){const e=new CustomEvent(oe);document.dispatchEvent(e)}function Re(e,t,n,{discrete:r}){const o=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?at(o,a):o.dispatchEvent(a)}var Rn=se,Pn=De,q=0;function ht(){i.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??ve()),document.body.insertAdjacentElement("beforeend",e[1]??ve()),q++,()=>{q===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),q--}},[])}function ve(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var Q="focusScope.autoFocusOnMount",J="focusScope.autoFocusOnUnmount",he={bubbles:!1,cancelable:!0},mt="FocusScope",Pe=i.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:o,onUnmountAutoFocus:a,...u}=e,[s,y]=i.useState(null),l=j(o),d=j(a),v=i.useRef(null),h=_(t,c=>y(c)),E=i.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;i.useEffect(()=>{if(r){let c=function(C){if(E.paused||!s)return;const w=C.target;s.contains(w)?v.current=w:N(v.current,{select:!0})},f=function(C){if(E.paused||!s)return;const w=C.relatedTarget;w!==null&&(s.contains(w)||N(v.current,{select:!0}))},m=function(C){if(document.activeElement===document.body)for(const S of C)S.removedNodes.length>0&&N(s)};document.addEventListener("focusin",c),document.addEventListener("focusout",f);const b=new MutationObserver(m);return s&&b.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",c),document.removeEventListener("focusout",f),b.disconnect()}}},[r,s,E.paused]),i.useEffect(()=>{if(s){pe.add(E);const c=document.activeElement;if(!s.contains(c)){const m=new CustomEvent(Q,he);s.addEventListener(Q,l),s.dispatchEvent(m),m.defaultPrevented||(pt(Ct(Oe(s)),{select:!0}),document.activeElement===c&&N(s))}return()=>{s.removeEventListener(Q,l),setTimeout(()=>{const m=new CustomEvent(J,he);s.addEventListener(J,d),s.dispatchEvent(m),m.defaultPrevented||N(c??document.body,{select:!0}),s.removeEventListener(J,d),pe.remove(E)},0)}}},[s,l,d,E]);const D=i.useCallback(c=>{if(!n&&!r||E.paused)return;const f=c.key==="Tab"&&!c.altKey&&!c.ctrlKey&&!c.metaKey,m=document.activeElement;if(f&&m){const b=c.currentTarget,[C,w]=gt(b);C&&w?!c.shiftKey&&m===w?(c.preventDefault(),n&&N(C,{select:!0})):c.shiftKey&&m===C&&(c.preventDefault(),n&&N(w,{select:!0})):m===b&&c.preventDefault()}},[n,r,E.paused]);return p.jsx(T.div,{tabIndex:-1,...u,ref:h,onKeyDown:D})});Pe.displayName=mt;function pt(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(N(r,{select:t}),document.activeElement!==n)return}function gt(e){const t=Oe(e),n=me(t,e),r=me(t.reverse(),e);return[n,r]}function Oe(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const o=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||o?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function me(e,t){for(const n of e)if(!yt(n,{upTo:t}))return n}function yt(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function Et(e){return e instanceof HTMLInputElement&&"select"in e}function N(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&Et(e)&&t&&e.select()}}var pe=bt();function bt(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=ge(e,t),e.unshift(t)},remove(t){e=ge(e,t),e[0]?.resume()}}}function ge(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function Ct(e){return e.filter(t=>t.tagName!=="A")}var wt="Portal",xe=i.forwardRef((e,t)=>{const{container:n,...r}=e,[o,a]=i.useState(!1);et(()=>a(!0),[]);const u=n||o&&globalThis?.document?.body;return u?it.createPortal(p.jsx(T.div,{...r,ref:t}),u):null});xe.displayName=wt;var St=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},L=new WeakMap,B=new WeakMap,U={},ee=0,Te=function(e){return e&&(e.host||Te(e.parentNode))},Dt=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=Te(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},Rt=function(e,t,n,r){var o=Dt(t,Array.isArray(e)?e:[e]);U[n]||(U[n]=new WeakMap);var a=U[n],u=[],s=new Set,y=new Set(o),l=function(v){!v||s.has(v)||(s.add(v),l(v.parentNode))};o.forEach(l);var d=function(v){!v||y.has(v)||Array.prototype.forEach.call(v.children,function(h){if(s.has(h))d(h);else try{var E=h.getAttribute(r),D=E!==null&&E!=="false",c=(L.get(h)||0)+1,f=(a.get(h)||0)+1;L.set(h,c),a.set(h,f),u.push(h),c===1&&D&&B.set(h,!0),f===1&&h.setAttribute(n,"true"),D||h.setAttribute(r,"true")}catch(m){console.error("aria-hidden: cannot operate on ",h,m)}})};return d(t),s.clear(),ee++,function(){u.forEach(function(v){var h=L.get(v)-1,E=a.get(v)-1;L.set(v,h),a.set(v,E),h||(B.has(v)||v.removeAttribute(r),B.delete(v)),E||v.removeAttribute(n)}),ee--,ee||(L=new WeakMap,L=new WeakMap,B=new WeakMap,U={})}},Pt=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),o=St(e);return o?(r.push.apply(r,Array.from(o.querySelectorAll("[aria-live], script"))),Rt(r,o,n,"aria-hidden")):function(){return null}},P=function(){return P=Object.assign||function(t){for(var n,r=1,o=arguments.length;r"u")return Ht;var t=Gt(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},Yt=Le(),k="data-scroll-locked",Xt=function(e,t,n,r){var o=e.left,a=e.top,u=e.right,s=e.gap;return n===void 0&&(n="margin"),` .`.concat(xt,` { overflow: hidden `).concat(r,`; padding-right: `).concat(s,"px ").concat(r,`; @@ -42,4 +42,4 @@ import{r as i}from"./index.BaMLtrTp.js";import{b as A,u as et,c as tt,P as ie,g If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component. -For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return i.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},gn="DialogDescriptionWarning",yn=({contentRef:e,descriptionId:t})=>{const r=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${Je(gn).contentName}}.`;return i.useEffect(()=>{const o=e.current?.getAttribute("aria-describedby");t&&o&&(document.getElementById(t)||console.warn(r))},[r,e,t]),null},xn=je,Tn=Ue,Nn=He,An=Ge,In=Ve,Ln=Xe,Fn=ze,Mn=qe;export{Pn as B,In as C,se as D,Pe as F,An as O,xe as P,_e as R,Ln as T,Rn as a,Nn as b,Mn as c,Fn as d,xn as e,Tn as f,Pt as h,ht as u}; +For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return i.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},gn="DialogDescriptionWarning",yn=({contentRef:e,descriptionId:t})=>{const r=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${Je(gn).contentName}}.`;return i.useEffect(()=>{const o=e.current?.getAttribute("aria-describedby");t&&o&&(document.getElementById(t)||console.warn(r))},[r,e,t]),null},xn=je,Tn=Ue,Nn=He,An=Ge,In=Ve,Ln=Xe,Fn=ze,Mn=qe;export{Pn as B,In as C,se as D,Pe as F,An as O,xe as P,_e as R,Ln as T,Nn as a,Mn as b,Fn as c,xn as d,Tn as e,Rn as f,Pt as h,ht as u}; diff --git a/docs/assets/index.DNo0B2hs.js b/docs/assets/index.DNo0B2hs.js new file mode 100644 index 00000000..c12cec45 --- /dev/null +++ b/docs/assets/index.DNo0B2hs.js @@ -0,0 +1,6 @@ +import{c as Ae}from"./createLucideIcon.DnxMVFvH.js";import{j}from"./jsx-runtime.D3GSbgeI.js";import{c as Re}from"./button.D-OtCHTj.js";import{a as Se,u as Xt}from"./utils.9Q5QEYED.js";import{r as R}from"./index.D_oLZvzW.js";import{r as Ce,P as Rt}from"./index.5q9h5iS_.js";import{u as yt,c as Pe}from"./index.DO6kBsrn.js";import{u as Oe}from"./index.xUA8L87E.js";/** + * @license lucide-react v0.462.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const oo=Ae("Circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),Ee=Re("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function ro({className:t,variant:e,...n}){return j.jsx("div",{className:Se(Ee({variant:e}),t),...n})}const Le=["top","right","bottom","left"],Z=Math.min,W=Math.max,at=Math.round,ct=Math.floor,I=t=>({x:t,y:t}),De={left:"right",right:"left",bottom:"top",top:"bottom"},Me={start:"end",end:"start"};function vt(t,e,n){return W(t,Z(e,n))}function q(t,e){return typeof t=="function"?t(e):t}function U(t){return t.split("-")[0]}function tt(t){return t.split("-")[1]}function St(t){return t==="x"?"y":"x"}function Ct(t){return t==="y"?"height":"width"}const Te=new Set(["top","bottom"]);function V(t){return Te.has(U(t))?"y":"x"}function Pt(t){return St(V(t))}function $e(t,e,n){n===void 0&&(n=!1);const o=tt(t),r=Pt(t),i=Ct(r);let s=r==="x"?o===(n?"end":"start")?"right":"left":o==="start"?"bottom":"top";return e.reference[i]>e.floating[i]&&(s=ft(s)),[s,ft(s)]}function ke(t){const e=ft(t);return[bt(t),e,bt(e)]}function bt(t){return t.replace(/start|end/g,e=>Me[e])}const kt=["left","right"],Ft=["right","left"],Fe=["top","bottom"],Ne=["bottom","top"];function We(t,e,n){switch(t){case"top":case"bottom":return n?e?Ft:kt:e?kt:Ft;case"left":case"right":return e?Fe:Ne;default:return[]}}function He(t,e,n,o){const r=tt(t);let i=We(U(t),n==="start",o);return r&&(i=i.map(s=>s+"-"+r),e&&(i=i.concat(i.map(bt)))),i}function ft(t){return t.replace(/left|right|bottom|top/g,e=>De[e])}function Be(t){return{top:0,right:0,bottom:0,left:0,...t}}function Yt(t){return typeof t!="number"?Be(t):{top:t,right:t,bottom:t,left:t}}function ut(t){const{x:e,y:n,width:o,height:r}=t;return{width:o,height:r,top:n,left:e,right:e+o,bottom:n+r,x:e,y:n}}function Nt(t,e,n){let{reference:o,floating:r}=t;const i=V(e),s=Pt(e),c=Ct(s),l=U(e),a=i==="y",f=o.x+o.width/2-r.width/2,u=o.y+o.height/2-r.height/2,m=o[c]/2-r[c]/2;let d;switch(l){case"top":d={x:f,y:o.y-r.height};break;case"bottom":d={x:f,y:o.y+o.height};break;case"right":d={x:o.x+o.width,y:u};break;case"left":d={x:o.x-r.width,y:u};break;default:d={x:o.x,y:o.y}}switch(tt(e)){case"start":d[s]-=m*(n&&a?-1:1);break;case"end":d[s]+=m*(n&&a?-1:1);break}return d}const _e=async(t,e,n)=>{const{placement:o="bottom",strategy:r="absolute",middleware:i=[],platform:s}=n,c=i.filter(Boolean),l=await(s.isRTL==null?void 0:s.isRTL(e));let a=await s.getElementRects({reference:t,floating:e,strategy:r}),{x:f,y:u}=Nt(a,o,l),m=o,d={},p=0;for(let h=0;h({name:"arrow",options:t,async fn(e){const{x:n,y:o,placement:r,rects:i,platform:s,elements:c,middlewareData:l}=e,{element:a,padding:f=0}=q(t,e)||{};if(a==null)return{};const u=Yt(f),m={x:n,y:o},d=Pt(r),p=Ct(d),h=await s.getDimensions(a),w=d==="y",g=w?"top":"left",x=w?"bottom":"right",b=w?"clientHeight":"clientWidth",y=i.reference[p]+i.reference[d]-m[d]-i.floating[p],v=m[d]-i.reference[d],C=await(s.getOffsetParent==null?void 0:s.getOffsetParent(a));let S=C?C[b]:0;(!S||!await(s.isElement==null?void 0:s.isElement(C)))&&(S=c.floating[b]||i.floating[p]);const M=y/2-v/2,F=S/2-h[p]/2-1,D=Z(u[g],F),$=Z(u[x],F),k=D,O=S-h[p]-$,P=S/2-h[p]/2+M,N=vt(k,P,O),E=!l.arrow&&tt(r)!=null&&P!==N&&i.reference[p]/2-(PP<=0)){var $,k;const P=((($=i.flip)==null?void 0:$.index)||0)+1,N=S[P];if(N&&(!(u==="alignment"?x!==V(N):!1)||D.every(A=>V(A.placement)===x?A.overflows[0]>0:!0)))return{data:{index:P,overflows:D},reset:{placement:N}};let E=(k=D.filter(L=>L.overflows[0]<=0).sort((L,A)=>L.overflows[1]-A.overflows[1])[0])==null?void 0:k.placement;if(!E)switch(d){case"bestFit":{var O;const L=(O=D.filter(A=>{if(C){const T=V(A.placement);return T===x||T==="y"}return!0}).map(A=>[A.placement,A.overflows.filter(T=>T>0).reduce((T,z)=>T+z,0)]).sort((A,T)=>A[1]-T[1])[0])==null?void 0:O[0];L&&(E=L);break}case"initialPlacement":E=c;break}if(r!==E)return{reset:{placement:E}}}return{}}}};function Wt(t,e){return{top:t.top-e.height,right:t.right-e.width,bottom:t.bottom-e.height,left:t.left-e.width}}function Ht(t){return Le.some(e=>t[e]>=0)}const je=function(t){return t===void 0&&(t={}),{name:"hide",options:t,async fn(e){const{rects:n}=e,{strategy:o="referenceHidden",...r}=q(t,e);switch(o){case"referenceHidden":{const i=await ot(e,{...r,elementContext:"reference"}),s=Wt(i,n.reference);return{data:{referenceHiddenOffsets:s,referenceHidden:Ht(s)}}}case"escaped":{const i=await ot(e,{...r,altBoundary:!0}),s=Wt(i,n.floating);return{data:{escapedOffsets:s,escaped:Ht(s)}}}default:return{}}}}},qt=new Set(["left","top"]);async function Ie(t,e){const{placement:n,platform:o,elements:r}=t,i=await(o.isRTL==null?void 0:o.isRTL(r.floating)),s=U(n),c=tt(n),l=V(n)==="y",a=qt.has(s)?-1:1,f=i&&l?-1:1,u=q(e,t);let{mainAxis:m,crossAxis:d,alignmentAxis:p}=typeof u=="number"?{mainAxis:u,crossAxis:0,alignmentAxis:null}:{mainAxis:u.mainAxis||0,crossAxis:u.crossAxis||0,alignmentAxis:u.alignmentAxis};return c&&typeof p=="number"&&(d=c==="end"?p*-1:p),l?{x:d*f,y:m*a}:{x:m*a,y:d*f}}const Xe=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(e){var n,o;const{x:r,y:i,placement:s,middlewareData:c}=e,l=await Ie(e,t);return s===((n=c.offset)==null?void 0:n.placement)&&(o=c.arrow)!=null&&o.alignmentOffset?{}:{x:r+l.x,y:i+l.y,data:{...l,placement:s}}}}},Ye=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(e){const{x:n,y:o,placement:r}=e,{mainAxis:i=!0,crossAxis:s=!1,limiter:c={fn:w=>{let{x:g,y:x}=w;return{x:g,y:x}}},...l}=q(t,e),a={x:n,y:o},f=await ot(e,l),u=V(U(r)),m=St(u);let d=a[m],p=a[u];if(i){const w=m==="y"?"top":"left",g=m==="y"?"bottom":"right",x=d+f[w],b=d-f[g];d=vt(x,d,b)}if(s){const w=u==="y"?"top":"left",g=u==="y"?"bottom":"right",x=p+f[w],b=p-f[g];p=vt(x,p,b)}const h=c.fn({...e,[m]:d,[u]:p});return{...h,data:{x:h.x-n,y:h.y-o,enabled:{[m]:i,[u]:s}}}}}},qe=function(t){return t===void 0&&(t={}),{options:t,fn(e){const{x:n,y:o,placement:r,rects:i,middlewareData:s}=e,{offset:c=0,mainAxis:l=!0,crossAxis:a=!0}=q(t,e),f={x:n,y:o},u=V(r),m=St(u);let d=f[m],p=f[u];const h=q(c,e),w=typeof h=="number"?{mainAxis:h,crossAxis:0}:{mainAxis:0,crossAxis:0,...h};if(l){const b=m==="y"?"height":"width",y=i.reference[m]-i.floating[b]+w.mainAxis,v=i.reference[m]+i.reference[b]-w.mainAxis;dv&&(d=v)}if(a){var g,x;const b=m==="y"?"width":"height",y=qt.has(U(r)),v=i.reference[u]-i.floating[b]+(y&&((g=s.offset)==null?void 0:g[u])||0)+(y?0:w.crossAxis),C=i.reference[u]+i.reference[b]+(y?0:((x=s.offset)==null?void 0:x[u])||0)-(y?w.crossAxis:0);pC&&(p=C)}return{[m]:d,[u]:p}}}},Ue=function(t){return t===void 0&&(t={}),{name:"size",options:t,async fn(e){var n,o;const{placement:r,rects:i,platform:s,elements:c}=e,{apply:l=()=>{},...a}=q(t,e),f=await ot(e,a),u=U(r),m=tt(r),d=V(r)==="y",{width:p,height:h}=i.floating;let w,g;u==="top"||u==="bottom"?(w=u,g=m===(await(s.isRTL==null?void 0:s.isRTL(c.floating))?"start":"end")?"left":"right"):(g=u,w=m==="end"?"top":"bottom");const x=h-f.top-f.bottom,b=p-f.left-f.right,y=Z(h-f[w],x),v=Z(p-f[g],b),C=!e.middlewareData.shift;let S=y,M=v;if((n=e.middlewareData.shift)!=null&&n.enabled.x&&(M=b),(o=e.middlewareData.shift)!=null&&o.enabled.y&&(S=x),C&&!m){const D=W(f.left,0),$=W(f.right,0),k=W(f.top,0),O=W(f.bottom,0);d?M=p-2*(D!==0||$!==0?D+$:W(f.left,f.right)):S=h-2*(k!==0||O!==0?k+O:W(f.top,f.bottom))}await l({...e,availableWidth:M,availableHeight:S});const F=await s.getDimensions(c.floating);return p!==F.width||h!==F.height?{reset:{rects:!0}}:{}}}};function pt(){return typeof window<"u"}function et(t){return Ut(t)?(t.nodeName||"").toLowerCase():"#document"}function H(t){var e;return(t==null||(e=t.ownerDocument)==null?void 0:e.defaultView)||window}function Y(t){var e;return(e=(Ut(t)?t.ownerDocument:t.document)||window.document)==null?void 0:e.documentElement}function Ut(t){return pt()?t instanceof Node||t instanceof H(t).Node:!1}function B(t){return pt()?t instanceof Element||t instanceof H(t).Element:!1}function X(t){return pt()?t instanceof HTMLElement||t instanceof H(t).HTMLElement:!1}function Bt(t){return!pt()||typeof ShadowRoot>"u"?!1:t instanceof ShadowRoot||t instanceof H(t).ShadowRoot}const Ze=new Set(["inline","contents"]);function it(t){const{overflow:e,overflowX:n,overflowY:o,display:r}=_(t);return/auto|scroll|overlay|hidden|clip/.test(e+o+n)&&!Ze.has(r)}const Ke=new Set(["table","td","th"]);function Ge(t){return Ke.has(et(t))}const Je=[":popover-open",":modal"];function mt(t){return Je.some(e=>{try{return t.matches(e)}catch{return!1}})}const Qe=["transform","translate","scale","rotate","perspective"],tn=["transform","translate","scale","rotate","perspective","filter"],en=["paint","layout","strict","content"];function Ot(t){const e=Et(),n=B(t)?_(t):t;return Qe.some(o=>n[o]?n[o]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!e&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!e&&(n.filter?n.filter!=="none":!1)||tn.some(o=>(n.willChange||"").includes(o))||en.some(o=>(n.contain||"").includes(o))}function nn(t){let e=K(t);for(;X(e)&&!Q(e);){if(Ot(e))return e;if(mt(e))return null;e=K(e)}return null}function Et(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const on=new Set(["html","body","#document"]);function Q(t){return on.has(et(t))}function _(t){return H(t).getComputedStyle(t)}function ht(t){return B(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function K(t){if(et(t)==="html")return t;const e=t.assignedSlot||t.parentNode||Bt(t)&&t.host||Y(t);return Bt(e)?e.host:e}function Zt(t){const e=K(t);return Q(e)?t.ownerDocument?t.ownerDocument.body:t.body:X(e)&&it(e)?e:Zt(e)}function rt(t,e,n){var o;e===void 0&&(e=[]),n===void 0&&(n=!0);const r=Zt(t),i=r===((o=t.ownerDocument)==null?void 0:o.body),s=H(r);if(i){const c=At(s);return e.concat(s,s.visualViewport||[],it(r)?r:[],c&&n?rt(c):[])}return e.concat(r,rt(r,[],n))}function At(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function Kt(t){const e=_(t);let n=parseFloat(e.width)||0,o=parseFloat(e.height)||0;const r=X(t),i=r?t.offsetWidth:n,s=r?t.offsetHeight:o,c=at(n)!==i||at(o)!==s;return c&&(n=i,o=s),{width:n,height:o,$:c}}function Lt(t){return B(t)?t:t.contextElement}function J(t){const e=Lt(t);if(!X(e))return I(1);const n=e.getBoundingClientRect(),{width:o,height:r,$:i}=Kt(e);let s=(i?at(n.width):n.width)/o,c=(i?at(n.height):n.height)/r;return(!s||!Number.isFinite(s))&&(s=1),(!c||!Number.isFinite(c))&&(c=1),{x:s,y:c}}const rn=I(0);function Gt(t){const e=H(t);return!Et()||!e.visualViewport?rn:{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}}function sn(t,e,n){return e===void 0&&(e=!1),!n||e&&n!==H(t)?!1:e}function G(t,e,n,o){e===void 0&&(e=!1),n===void 0&&(n=!1);const r=t.getBoundingClientRect(),i=Lt(t);let s=I(1);e&&(o?B(o)&&(s=J(o)):s=J(t));const c=sn(i,n,o)?Gt(i):I(0);let l=(r.left+c.x)/s.x,a=(r.top+c.y)/s.y,f=r.width/s.x,u=r.height/s.y;if(i){const m=H(i),d=o&&B(o)?H(o):o;let p=m,h=At(p);for(;h&&o&&d!==p;){const w=J(h),g=h.getBoundingClientRect(),x=_(h),b=g.left+(h.clientLeft+parseFloat(x.paddingLeft))*w.x,y=g.top+(h.clientTop+parseFloat(x.paddingTop))*w.y;l*=w.x,a*=w.y,f*=w.x,u*=w.y,l+=b,a+=y,p=H(h),h=At(p)}}return ut({width:f,height:u,x:l,y:a})}function gt(t,e){const n=ht(t).scrollLeft;return e?e.left+n:G(Y(t)).left+n}function Jt(t,e){const n=t.getBoundingClientRect(),o=n.left+e.scrollLeft-gt(t,n),r=n.top+e.scrollTop;return{x:o,y:r}}function cn(t){let{elements:e,rect:n,offsetParent:o,strategy:r}=t;const i=r==="fixed",s=Y(o),c=e?mt(e.floating):!1;if(o===s||c&&i)return n;let l={scrollLeft:0,scrollTop:0},a=I(1);const f=I(0),u=X(o);if((u||!u&&!i)&&((et(o)!=="body"||it(s))&&(l=ht(o)),X(o))){const d=G(o);a=J(o),f.x=d.x+o.clientLeft,f.y=d.y+o.clientTop}const m=s&&!u&&!i?Jt(s,l):I(0);return{width:n.width*a.x,height:n.height*a.y,x:n.x*a.x-l.scrollLeft*a.x+f.x+m.x,y:n.y*a.y-l.scrollTop*a.y+f.y+m.y}}function ln(t){return Array.from(t.getClientRects())}function an(t){const e=Y(t),n=ht(t),o=t.ownerDocument.body,r=W(e.scrollWidth,e.clientWidth,o.scrollWidth,o.clientWidth),i=W(e.scrollHeight,e.clientHeight,o.scrollHeight,o.clientHeight);let s=-n.scrollLeft+gt(t);const c=-n.scrollTop;return _(o).direction==="rtl"&&(s+=W(e.clientWidth,o.clientWidth)-r),{width:r,height:i,x:s,y:c}}const _t=25;function fn(t,e){const n=H(t),o=Y(t),r=n.visualViewport;let i=o.clientWidth,s=o.clientHeight,c=0,l=0;if(r){i=r.width,s=r.height;const f=Et();(!f||f&&e==="fixed")&&(c=r.offsetLeft,l=r.offsetTop)}const a=gt(o);if(a<=0){const f=o.ownerDocument,u=f.body,m=getComputedStyle(u),d=f.compatMode==="CSS1Compat"&&parseFloat(m.marginLeft)+parseFloat(m.marginRight)||0,p=Math.abs(o.clientWidth-u.clientWidth-d);p<=_t&&(i-=p)}else a<=_t&&(i+=a);return{width:i,height:s,x:c,y:l}}const un=new Set(["absolute","fixed"]);function dn(t,e){const n=G(t,!0,e==="fixed"),o=n.top+t.clientTop,r=n.left+t.clientLeft,i=X(t)?J(t):I(1),s=t.clientWidth*i.x,c=t.clientHeight*i.y,l=r*i.x,a=o*i.y;return{width:s,height:c,x:l,y:a}}function zt(t,e,n){let o;if(e==="viewport")o=fn(t,n);else if(e==="document")o=an(Y(t));else if(B(e))o=dn(e,n);else{const r=Gt(t);o={x:e.x-r.x,y:e.y-r.y,width:e.width,height:e.height}}return ut(o)}function Qt(t,e){const n=K(t);return n===e||!B(n)||Q(n)?!1:_(n).position==="fixed"||Qt(n,e)}function pn(t,e){const n=e.get(t);if(n)return n;let o=rt(t,[],!1).filter(c=>B(c)&&et(c)!=="body"),r=null;const i=_(t).position==="fixed";let s=i?K(t):t;for(;B(s)&&!Q(s);){const c=_(s),l=Ot(s);!l&&c.position==="fixed"&&(r=null),(i?!l&&!r:!l&&c.position==="static"&&!!r&&un.has(r.position)||it(s)&&!l&&Qt(t,s))?o=o.filter(f=>f!==s):r=c,s=K(s)}return e.set(t,o),o}function mn(t){let{element:e,boundary:n,rootBoundary:o,strategy:r}=t;const s=[...n==="clippingAncestors"?mt(e)?[]:pn(e,this._c):[].concat(n),o],c=s[0],l=s.reduce((a,f)=>{const u=zt(e,f,r);return a.top=W(u.top,a.top),a.right=Z(u.right,a.right),a.bottom=Z(u.bottom,a.bottom),a.left=W(u.left,a.left),a},zt(e,c,r));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}}function hn(t){const{width:e,height:n}=Kt(t);return{width:e,height:n}}function gn(t,e,n){const o=X(e),r=Y(e),i=n==="fixed",s=G(t,!0,i,e);let c={scrollLeft:0,scrollTop:0};const l=I(0);function a(){l.x=gt(r)}if(o||!o&&!i)if((et(e)!=="body"||it(r))&&(c=ht(e)),o){const d=G(e,!0,i,e);l.x=d.x+e.clientLeft,l.y=d.y+e.clientTop}else r&&a();i&&!o&&r&&a();const f=r&&!o&&!i?Jt(r,c):I(0),u=s.left+c.scrollLeft-l.x-f.x,m=s.top+c.scrollTop-l.y-f.y;return{x:u,y:m,width:s.width,height:s.height}}function wt(t){return _(t).position==="static"}function Vt(t,e){if(!X(t)||_(t).position==="fixed")return null;if(e)return e(t);let n=t.offsetParent;return Y(t)===n&&(n=n.ownerDocument.body),n}function te(t,e){const n=H(t);if(mt(t))return n;if(!X(t)){let r=K(t);for(;r&&!Q(r);){if(B(r)&&!wt(r))return r;r=K(r)}return n}let o=Vt(t,e);for(;o&&Ge(o)&&wt(o);)o=Vt(o,e);return o&&Q(o)&&wt(o)&&!Ot(o)?n:o||nn(t)||n}const wn=async function(t){const e=this.getOffsetParent||te,n=this.getDimensions,o=await n(t.floating);return{reference:gn(t.reference,await e(t.floating),t.strategy),floating:{x:0,y:0,width:o.width,height:o.height}}};function xn(t){return _(t).direction==="rtl"}const yn={convertOffsetParentRelativeRectToViewportRelativeRect:cn,getDocumentElement:Y,getClippingRect:mn,getOffsetParent:te,getElementRects:wn,getClientRects:ln,getDimensions:hn,getScale:J,isElement:B,isRTL:xn};function ee(t,e){return t.x===e.x&&t.y===e.y&&t.width===e.width&&t.height===e.height}function vn(t,e){let n=null,o;const r=Y(t);function i(){var c;clearTimeout(o),(c=n)==null||c.disconnect(),n=null}function s(c,l){c===void 0&&(c=!1),l===void 0&&(l=1),i();const a=t.getBoundingClientRect(),{left:f,top:u,width:m,height:d}=a;if(c||e(),!m||!d)return;const p=ct(u),h=ct(r.clientWidth-(f+m)),w=ct(r.clientHeight-(u+d)),g=ct(f),b={rootMargin:-p+"px "+-h+"px "+-w+"px "+-g+"px",threshold:W(0,Z(1,l))||1};let y=!0;function v(C){const S=C[0].intersectionRatio;if(S!==l){if(!y)return s();S?s(!1,S):o=setTimeout(()=>{s(!1,1e-7)},1e3)}S===1&&!ee(a,t.getBoundingClientRect())&&s(),y=!1}try{n=new IntersectionObserver(v,{...b,root:r.ownerDocument})}catch{n=new IntersectionObserver(v,b)}n.observe(t)}return s(!0),i}function bn(t,e,n,o){o===void 0&&(o={});const{ancestorScroll:r=!0,ancestorResize:i=!0,elementResize:s=typeof ResizeObserver=="function",layoutShift:c=typeof IntersectionObserver=="function",animationFrame:l=!1}=o,a=Lt(t),f=r||i?[...a?rt(a):[],...rt(e)]:[];f.forEach(g=>{r&&g.addEventListener("scroll",n,{passive:!0}),i&&g.addEventListener("resize",n)});const u=a&&c?vn(a,n):null;let m=-1,d=null;s&&(d=new ResizeObserver(g=>{let[x]=g;x&&x.target===a&&d&&(d.unobserve(e),cancelAnimationFrame(m),m=requestAnimationFrame(()=>{var b;(b=d)==null||b.observe(e)})),n()}),a&&!l&&d.observe(a),d.observe(e));let p,h=l?G(t):null;l&&w();function w(){const g=G(t);h&&!ee(h,g)&&n(),h=g,p=requestAnimationFrame(w)}return n(),()=>{var g;f.forEach(x=>{r&&x.removeEventListener("scroll",n),i&&x.removeEventListener("resize",n)}),u?.(),(g=d)==null||g.disconnect(),d=null,l&&cancelAnimationFrame(p)}}const An=Xe,Rn=Ye,Sn=Ve,Cn=Ue,Pn=je,jt=ze,On=qe,En=(t,e,n)=>{const o=new Map,r={platform:yn,...n},i={...r.platform,_c:o};return _e(t,e,{...r,platform:i})};var Ln=typeof document<"u",Dn=function(){},lt=Ln?R.useLayoutEffect:Dn;function dt(t,e){if(t===e)return!0;if(typeof t!=typeof e)return!1;if(typeof t=="function"&&t.toString()===e.toString())return!0;let n,o,r;if(t&&e&&typeof t=="object"){if(Array.isArray(t)){if(n=t.length,n!==e.length)return!1;for(o=n;o--!==0;)if(!dt(t[o],e[o]))return!1;return!0}if(r=Object.keys(t),n=r.length,n!==Object.keys(e).length)return!1;for(o=n;o--!==0;)if(!{}.hasOwnProperty.call(e,r[o]))return!1;for(o=n;o--!==0;){const i=r[o];if(!(i==="_owner"&&t.$$typeof)&&!dt(t[i],e[i]))return!1}return!0}return t!==t&&e!==e}function ne(t){return typeof window>"u"?1:(t.ownerDocument.defaultView||window).devicePixelRatio||1}function It(t,e){const n=ne(t);return Math.round(e*n)/n}function xt(t){const e=R.useRef(t);return lt(()=>{e.current=t}),e}function Mn(t){t===void 0&&(t={});const{placement:e="bottom",strategy:n="absolute",middleware:o=[],platform:r,elements:{reference:i,floating:s}={},transform:c=!0,whileElementsMounted:l,open:a}=t,[f,u]=R.useState({x:0,y:0,strategy:n,placement:e,middlewareData:{},isPositioned:!1}),[m,d]=R.useState(o);dt(m,o)||d(o);const[p,h]=R.useState(null),[w,g]=R.useState(null),x=R.useCallback(A=>{A!==C.current&&(C.current=A,h(A))},[]),b=R.useCallback(A=>{A!==S.current&&(S.current=A,g(A))},[]),y=i||p,v=s||w,C=R.useRef(null),S=R.useRef(null),M=R.useRef(f),F=l!=null,D=xt(l),$=xt(r),k=xt(a),O=R.useCallback(()=>{if(!C.current||!S.current)return;const A={placement:e,strategy:n,middleware:m};$.current&&(A.platform=$.current),En(C.current,S.current,A).then(T=>{const z={...T,isPositioned:k.current!==!1};P.current&&!dt(M.current,z)&&(M.current=z,Ce.flushSync(()=>{u(z)}))})},[m,e,n,$,k]);lt(()=>{a===!1&&M.current.isPositioned&&(M.current.isPositioned=!1,u(A=>({...A,isPositioned:!1})))},[a]);const P=R.useRef(!1);lt(()=>(P.current=!0,()=>{P.current=!1}),[]),lt(()=>{if(y&&(C.current=y),v&&(S.current=v),y&&v){if(D.current)return D.current(y,v,O);O()}},[y,v,O,D,F]);const N=R.useMemo(()=>({reference:C,floating:S,setReference:x,setFloating:b}),[x,b]),E=R.useMemo(()=>({reference:y,floating:v}),[y,v]),L=R.useMemo(()=>{const A={position:n,left:0,top:0};if(!E.floating)return A;const T=It(E.floating,f.x),z=It(E.floating,f.y);return c?{...A,transform:"translate("+T+"px, "+z+"px)",...ne(E.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:T,top:z}},[n,c,E.floating,f.x,f.y]);return R.useMemo(()=>({...f,update:O,refs:N,elements:E,floatingStyles:L}),[f,O,N,E,L])}const Tn=t=>{function e(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:t,fn(n){const{element:o,padding:r}=typeof t=="function"?t(n):t;return o&&e(o)?o.current!=null?jt({element:o.current,padding:r}).fn(n):{}:o?jt({element:o,padding:r}).fn(n):{}}}},$n=(t,e)=>({...An(t),options:[t,e]}),kn=(t,e)=>({...Rn(t),options:[t,e]}),Fn=(t,e)=>({...On(t),options:[t,e]}),Nn=(t,e)=>({...Sn(t),options:[t,e]}),Wn=(t,e)=>({...Cn(t),options:[t,e]}),Hn=(t,e)=>({...Pn(t),options:[t,e]}),Bn=(t,e)=>({...Tn(t),options:[t,e]});var _n="Arrow",oe=R.forwardRef((t,e)=>{const{children:n,width:o=10,height:r=5,...i}=t;return j.jsx(Rt.svg,{...i,ref:e,width:o,height:r,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:t.asChild?n:j.jsx("polygon",{points:"0,0 30,0 15,10"})})});oe.displayName=_n;var zn=oe;function Vn(t){const[e,n]=R.useState(void 0);return yt(()=>{if(t){n({width:t.offsetWidth,height:t.offsetHeight});const o=new ResizeObserver(r=>{if(!Array.isArray(r)||!r.length)return;const i=r[0];let s,c;if("borderBoxSize"in i){const l=i.borderBoxSize,a=Array.isArray(l)?l[0]:l;s=a.inlineSize,c=a.blockSize}else s=t.offsetWidth,c=t.offsetHeight;n({width:s,height:c})});return o.observe(t,{box:"border-box"}),()=>o.unobserve(t)}else n(void 0)},[t]),e}var Dt="Popper",[re,io]=Pe(Dt),[jn,ie]=re(Dt),se=t=>{const{__scopePopper:e,children:n}=t,[o,r]=R.useState(null);return j.jsx(jn,{scope:e,anchor:o,onAnchorChange:r,children:n})};se.displayName=Dt;var ce="PopperAnchor",le=R.forwardRef((t,e)=>{const{__scopePopper:n,virtualRef:o,...r}=t,i=ie(ce,n),s=R.useRef(null),c=Xt(e,s),l=R.useRef(null);return R.useEffect(()=>{const a=l.current;l.current=o?.current||s.current,a!==l.current&&i.onAnchorChange(l.current)}),o?null:j.jsx(Rt.div,{...r,ref:c})});le.displayName=ce;var Mt="PopperContent",[In,Xn]=re(Mt),ae=R.forwardRef((t,e)=>{const{__scopePopper:n,side:o="bottom",sideOffset:r=0,align:i="center",alignOffset:s=0,arrowPadding:c=0,avoidCollisions:l=!0,collisionBoundary:a=[],collisionPadding:f=0,sticky:u="partial",hideWhenDetached:m=!1,updatePositionStrategy:d="optimized",onPlaced:p,...h}=t,w=ie(Mt,n),[g,x]=R.useState(null),b=Xt(e,nt=>x(nt)),[y,v]=R.useState(null),C=Vn(y),S=C?.width??0,M=C?.height??0,F=o+(i!=="center"?"-"+i:""),D=typeof f=="number"?f:{top:0,right:0,bottom:0,left:0,...f},$=Array.isArray(a)?a:[a],k=$.length>0,O={padding:D,boundary:$.filter(qn),altBoundary:k},{refs:P,floatingStyles:N,placement:E,isPositioned:L,middlewareData:A}=Mn({strategy:"fixed",placement:F,whileElementsMounted:(...nt)=>bn(...nt,{animationFrame:d==="always"}),elements:{reference:w.anchor},middleware:[$n({mainAxis:r+M,alignmentAxis:s}),l&&kn({mainAxis:!0,crossAxis:!1,limiter:u==="partial"?Fn():void 0,...O}),l&&Nn({...O}),Wn({...O,apply:({elements:nt,rects:$t,availableWidth:xe,availableHeight:ye})=>{const{width:ve,height:be}=$t.reference,st=nt.floating.style;st.setProperty("--radix-popper-available-width",`${xe}px`),st.setProperty("--radix-popper-available-height",`${ye}px`),st.setProperty("--radix-popper-anchor-width",`${ve}px`),st.setProperty("--radix-popper-anchor-height",`${be}px`)}}),y&&Bn({element:y,padding:c}),Un({arrowWidth:S,arrowHeight:M}),m&&Hn({strategy:"referenceHidden",...O})]}),[T,z]=de(E),Tt=Oe(p);yt(()=>{L&&Tt?.()},[L,Tt]);const pe=A.arrow?.x,me=A.arrow?.y,he=A.arrow?.centerOffset!==0,[ge,we]=R.useState();return yt(()=>{g&&we(window.getComputedStyle(g).zIndex)},[g]),j.jsx("div",{ref:P.setFloating,"data-radix-popper-content-wrapper":"",style:{...N,transform:L?N.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:ge,"--radix-popper-transform-origin":[A.transformOrigin?.x,A.transformOrigin?.y].join(" "),...A.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:t.dir,children:j.jsx(In,{scope:n,placedSide:T,onArrowChange:v,arrowX:pe,arrowY:me,shouldHideArrow:he,children:j.jsx(Rt.div,{"data-side":T,"data-align":z,...h,ref:b,style:{...h.style,animation:L?void 0:"none"}})})})});ae.displayName=Mt;var fe="PopperArrow",Yn={top:"bottom",right:"left",bottom:"top",left:"right"},ue=R.forwardRef(function(e,n){const{__scopePopper:o,...r}=e,i=Xn(fe,o),s=Yn[i.placedSide];return j.jsx("span",{ref:i.onArrowChange,style:{position:"absolute",left:i.arrowX,top:i.arrowY,[s]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[i.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[i.placedSide],visibility:i.shouldHideArrow?"hidden":void 0},children:j.jsx(zn,{...r,ref:n,style:{...r.style,display:"block"}})})});ue.displayName=fe;function qn(t){return t!==null}var Un=t=>({name:"transformOrigin",options:t,fn(e){const{placement:n,rects:o,middlewareData:r}=e,s=r.arrow?.centerOffset!==0,c=s?0:t.arrowWidth,l=s?0:t.arrowHeight,[a,f]=de(n),u={start:"0%",center:"50%",end:"100%"}[f],m=(r.arrow?.x??0)+c/2,d=(r.arrow?.y??0)+l/2;let p="",h="";return a==="bottom"?(p=s?u:`${m}px`,h=`${-l}px`):a==="top"?(p=s?u:`${m}px`,h=`${o.floating.height+l}px`):a==="right"?(p=`${-l}px`,h=s?u:`${d}px`):a==="left"&&(p=`${o.floating.width+l}px`,h=s?u:`${d}px`),{data:{x:p,y:h}}}});function de(t){const[e,n="center"]=t.split("-");return[e,n]}var so=se,co=le,lo=ae,ao=ue;export{co as A,ro as B,lo as C,so as R,ao as a,oo as b,io as c,Vn as u}; diff --git a/docs/assets/index.vFQDSFae.js b/docs/assets/index.DO6kBsrn.js similarity index 97% rename from docs/assets/index.vFQDSFae.js rename to docs/assets/index.DO6kBsrn.js index 16e5e5d0..782e0fe7 100644 --- a/docs/assets/index.vFQDSFae.js +++ b/docs/assets/index.DO6kBsrn.js @@ -1 +1 @@ -import{r as o,a as w,R as M}from"./index.BaMLtrTp.js";import{j as I}from"./jsx-runtime.D3GSbgeI.js";import{u as h,c as O}from"./utils.XhT4HDO9.js";function G(e,t,{checkForDefaultPrevented:n=!0}={}){return function(c){if(e?.(c),n===!1||!c.defaultPrevented)return t?.(c)}}function J(e,t){const n=o.createContext(t),r=s=>{const{children:u,...i}=s,a=o.useMemo(()=>i,Object.values(i));return I.jsx(n.Provider,{value:a,children:u})};r.displayName=e+"Provider";function c(s){const u=o.useContext(n);if(u)return u;if(t!==void 0)return t;throw new Error(`\`${s}\` must be used within \`${e}\``)}return[r,c]}function _(e,t=[]){let n=[];function r(s,u){const i=o.createContext(u),a=n.length;n=[...n,u];const l=d=>{const{scope:C,children:m,...N}=d,v=C?.[e]?.[a]||i,p=o.useMemo(()=>N,Object.values(N));return I.jsx(v.Provider,{value:p,children:m})};l.displayName=s+"Provider";function f(d,C){const m=C?.[e]?.[a]||i,N=o.useContext(m);if(N)return N;if(u!==void 0)return u;throw new Error(`\`${d}\` must be used within \`${s}\``)}return[l,f]}const c=()=>{const s=n.map(u=>o.createContext(u));return function(i){const a=i?.[e]||s;return o.useMemo(()=>({[`__scope${e}`]:{...i,[e]:a}}),[i,a])}};return c.scopeName=e,[r,b(c,...t)]}function b(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(c=>({useScope:c(),scopeName:c.scopeName}));return function(s){const u=r.reduce((i,{useScope:a,scopeName:l})=>{const d=a(s)[`__scope${l}`];return{...i,...d}},{});return o.useMemo(()=>({[`__scope${t.scopeName}`]:u}),[u])}};return n.scopeName=t.scopeName,n}var P=globalThis?.document?o.useLayoutEffect:()=>{},D=w[" useInsertionEffect ".trim().toString()]||P;function K({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[c,s,u]=U({defaultProp:t,onChange:n}),i=e!==void 0,a=i?e:c;{const f=o.useRef(e!==void 0);o.useEffect(()=>{const d=f.current;d!==i&&console.warn(`${r} is changing from ${d?"controlled":"uncontrolled"} to ${i?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),f.current=i},[i,r])}const l=o.useCallback(f=>{if(i){const d=$(f)?f(e):f;d!==e&&u.current?.(d)}else s(f)},[i,e,s,u]);return[a,l]}function U({defaultProp:e,onChange:t}){const[n,r]=o.useState(e),c=o.useRef(n),s=o.useRef(t);return D(()=>{s.current=t},[t]),o.useEffect(()=>{c.current!==n&&(s.current?.(n),c.current=n)},[n,c]),[n,r,s]}function $(e){return typeof e=="function"}function Q(e){const t=e+"CollectionProvider",[n,r]=_(t),[c,s]=n(t,{collectionRef:{current:null},itemMap:new Map}),u=v=>{const{scope:p,children:E}=v,S=M.useRef(null),R=M.useRef(new Map).current;return I.jsx(c,{scope:p,itemMap:R,collectionRef:S,children:E})};u.displayName=t;const i=e+"CollectionSlot",a=O(i),l=M.forwardRef((v,p)=>{const{scope:E,children:S}=v,R=s(i,E),x=h(p,R.collectionRef);return I.jsx(a,{ref:x,children:S})});l.displayName=i;const f=e+"CollectionItemSlot",d="data-radix-collection-item",C=O(f),m=M.forwardRef((v,p)=>{const{scope:E,children:S,...R}=v,x=M.useRef(null),y=h(p,x),g=s(f,E);return M.useEffect(()=>(g.itemMap.set(x,{ref:x,...R}),()=>void g.itemMap.delete(x))),I.jsx(C,{[d]:"",ref:y,children:S})});m.displayName=f;function N(v){const p=s(e+"CollectionConsumer",v);return M.useCallback(()=>{const S=p.collectionRef.current;if(!S)return[];const R=Array.from(S.querySelectorAll(`[${d}]`));return Array.from(p.itemMap.values()).sort((g,T)=>R.indexOf(g.ref.current)-R.indexOf(T.ref.current))},[p.collectionRef,p.itemMap])}return[{Provider:u,Slot:l,ItemSlot:m},N,r]}var L=o.createContext(void 0);function X(e){const t=o.useContext(L);return e||t||"ltr"}var j=w[" useId ".trim().toString()]||(()=>{}),F=0;function Y(e){const[t,n]=o.useState(j());return P(()=>{n(r=>r??String(F++))},[e]),t?`radix-${t}`:""}function W(e,t){return o.useReducer((n,r)=>t[n][r]??n,e)}var k=e=>{const{present:t,children:n}=e,r=H(t),c=typeof n=="function"?n({present:r.isPresent}):o.Children.only(n),s=h(r.ref,V(c));return typeof n=="function"||r.isPresent?o.cloneElement(c,{ref:s}):null};k.displayName="Presence";function H(e){const[t,n]=o.useState(),r=o.useRef(null),c=o.useRef(e),s=o.useRef("none"),u=e?"mounted":"unmounted",[i,a]=W(u,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return o.useEffect(()=>{const l=A(r.current);s.current=i==="mounted"?l:"none"},[i]),P(()=>{const l=r.current,f=c.current;if(f!==e){const C=s.current,m=A(l);e?a("MOUNT"):m==="none"||l?.display==="none"?a("UNMOUNT"):a(f&&C!==m?"ANIMATION_OUT":"UNMOUNT"),c.current=e}},[e,a]),P(()=>{if(t){let l;const f=t.ownerDocument.defaultView??window,d=m=>{const v=A(r.current).includes(CSS.escape(m.animationName));if(m.target===t&&v&&(a("ANIMATION_END"),!c.current)){const p=t.style.animationFillMode;t.style.animationFillMode="forwards",l=f.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=p)})}},C=m=>{m.target===t&&(s.current=A(r.current))};return t.addEventListener("animationstart",C),t.addEventListener("animationcancel",d),t.addEventListener("animationend",d),()=>{f.clearTimeout(l),t.removeEventListener("animationstart",C),t.removeEventListener("animationcancel",d),t.removeEventListener("animationend",d)}}else a("ANIMATION_END")},[t,a]),{isPresent:["mounted","unmountSuspended"].includes(i),ref:o.useCallback(l=>{r.current=l?getComputedStyle(l):null,n(l)},[])}}function A(e){return e?.animationName||"none"}function V(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}export{k as P,Q as a,G as b,_ as c,Y as d,X as e,K as f,J as g,P as u}; +import{r as o,R as w,a as M}from"./index.D_oLZvzW.js";import{j as I}from"./jsx-runtime.D3GSbgeI.js";import{u as h,c as O}from"./utils.9Q5QEYED.js";function G(e,t,{checkForDefaultPrevented:n=!0}={}){return function(c){if(e?.(c),n===!1||!c.defaultPrevented)return t?.(c)}}function J(e,t){const n=o.createContext(t),r=s=>{const{children:u,...i}=s,a=o.useMemo(()=>i,Object.values(i));return I.jsx(n.Provider,{value:a,children:u})};r.displayName=e+"Provider";function c(s){const u=o.useContext(n);if(u)return u;if(t!==void 0)return t;throw new Error(`\`${s}\` must be used within \`${e}\``)}return[r,c]}function _(e,t=[]){let n=[];function r(s,u){const i=o.createContext(u),a=n.length;n=[...n,u];const l=d=>{const{scope:C,children:m,...N}=d,v=C?.[e]?.[a]||i,p=o.useMemo(()=>N,Object.values(N));return I.jsx(v.Provider,{value:p,children:m})};l.displayName=s+"Provider";function f(d,C){const m=C?.[e]?.[a]||i,N=o.useContext(m);if(N)return N;if(u!==void 0)return u;throw new Error(`\`${d}\` must be used within \`${s}\``)}return[l,f]}const c=()=>{const s=n.map(u=>o.createContext(u));return function(i){const a=i?.[e]||s;return o.useMemo(()=>({[`__scope${e}`]:{...i,[e]:a}}),[i,a])}};return c.scopeName=e,[r,b(c,...t)]}function b(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(c=>({useScope:c(),scopeName:c.scopeName}));return function(s){const u=r.reduce((i,{useScope:a,scopeName:l})=>{const d=a(s)[`__scope${l}`];return{...i,...d}},{});return o.useMemo(()=>({[`__scope${t.scopeName}`]:u}),[u])}};return n.scopeName=t.scopeName,n}var P=globalThis?.document?o.useLayoutEffect:()=>{},D=w[" useInsertionEffect ".trim().toString()]||P;function K({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[c,s,u]=U({defaultProp:t,onChange:n}),i=e!==void 0,a=i?e:c;{const f=o.useRef(e!==void 0);o.useEffect(()=>{const d=f.current;d!==i&&console.warn(`${r} is changing from ${d?"controlled":"uncontrolled"} to ${i?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),f.current=i},[i,r])}const l=o.useCallback(f=>{if(i){const d=$(f)?f(e):f;d!==e&&u.current?.(d)}else s(f)},[i,e,s,u]);return[a,l]}function U({defaultProp:e,onChange:t}){const[n,r]=o.useState(e),c=o.useRef(n),s=o.useRef(t);return D(()=>{s.current=t},[t]),o.useEffect(()=>{c.current!==n&&(s.current?.(n),c.current=n)},[n,c]),[n,r,s]}function $(e){return typeof e=="function"}function Q(e){const t=e+"CollectionProvider",[n,r]=_(t),[c,s]=n(t,{collectionRef:{current:null},itemMap:new Map}),u=v=>{const{scope:p,children:E}=v,S=M.useRef(null),R=M.useRef(new Map).current;return I.jsx(c,{scope:p,itemMap:R,collectionRef:S,children:E})};u.displayName=t;const i=e+"CollectionSlot",a=O(i),l=M.forwardRef((v,p)=>{const{scope:E,children:S}=v,R=s(i,E),x=h(p,R.collectionRef);return I.jsx(a,{ref:x,children:S})});l.displayName=i;const f=e+"CollectionItemSlot",d="data-radix-collection-item",C=O(f),m=M.forwardRef((v,p)=>{const{scope:E,children:S,...R}=v,x=M.useRef(null),y=h(p,x),g=s(f,E);return M.useEffect(()=>(g.itemMap.set(x,{ref:x,...R}),()=>void g.itemMap.delete(x))),I.jsx(C,{[d]:"",ref:y,children:S})});m.displayName=f;function N(v){const p=s(e+"CollectionConsumer",v);return M.useCallback(()=>{const S=p.collectionRef.current;if(!S)return[];const R=Array.from(S.querySelectorAll(`[${d}]`));return Array.from(p.itemMap.values()).sort((g,T)=>R.indexOf(g.ref.current)-R.indexOf(T.ref.current))},[p.collectionRef,p.itemMap])}return[{Provider:u,Slot:l,ItemSlot:m},N,r]}var L=o.createContext(void 0);function X(e){const t=o.useContext(L);return e||t||"ltr"}var j=w[" useId ".trim().toString()]||(()=>{}),F=0;function Y(e){const[t,n]=o.useState(j());return P(()=>{n(r=>r??String(F++))},[e]),t?`radix-${t}`:""}function W(e,t){return o.useReducer((n,r)=>t[n][r]??n,e)}var k=e=>{const{present:t,children:n}=e,r=H(t),c=typeof n=="function"?n({present:r.isPresent}):o.Children.only(n),s=h(r.ref,V(c));return typeof n=="function"||r.isPresent?o.cloneElement(c,{ref:s}):null};k.displayName="Presence";function H(e){const[t,n]=o.useState(),r=o.useRef(null),c=o.useRef(e),s=o.useRef("none"),u=e?"mounted":"unmounted",[i,a]=W(u,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return o.useEffect(()=>{const l=A(r.current);s.current=i==="mounted"?l:"none"},[i]),P(()=>{const l=r.current,f=c.current;if(f!==e){const C=s.current,m=A(l);e?a("MOUNT"):m==="none"||l?.display==="none"?a("UNMOUNT"):a(f&&C!==m?"ANIMATION_OUT":"UNMOUNT"),c.current=e}},[e,a]),P(()=>{if(t){let l;const f=t.ownerDocument.defaultView??window,d=m=>{const v=A(r.current).includes(CSS.escape(m.animationName));if(m.target===t&&v&&(a("ANIMATION_END"),!c.current)){const p=t.style.animationFillMode;t.style.animationFillMode="forwards",l=f.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=p)})}},C=m=>{m.target===t&&(s.current=A(r.current))};return t.addEventListener("animationstart",C),t.addEventListener("animationcancel",d),t.addEventListener("animationend",d),()=>{f.clearTimeout(l),t.removeEventListener("animationstart",C),t.removeEventListener("animationcancel",d),t.removeEventListener("animationend",d)}}else a("ANIMATION_END")},[t,a]),{isPresent:["mounted","unmountSuspended"].includes(i),ref:o.useCallback(l=>{r.current=l?getComputedStyle(l):null,n(l)},[])}}function A(e){return e?.animationName||"none"}function V(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}export{k as P,Q as a,G as b,_ as c,Y as d,X as e,K as f,J as g,P as u}; diff --git a/docs/assets/index.BaMLtrTp.js b/docs/assets/index.D_oLZvzW.js similarity index 88% rename from docs/assets/index.BaMLtrTp.js rename to docs/assets/index.D_oLZvzW.js index b8926794..f355bec9 100644 --- a/docs/assets/index.BaMLtrTp.js +++ b/docs/assets/index.D_oLZvzW.js @@ -1 +1 @@ -import{r as s}from"./index.yBjzXJbu.js";function f(e,n){for(var o=0;ot[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}function u(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var c=s();const l=u(c),i=f({__proto__:null,default:l},[c]);export{l as R,i as a,u as g,c as r}; +import{r as s}from"./index.yBjzXJbu.js";function f(e,n){for(var o=0;ot[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}function u(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var c=s();const l=u(c),i=f({__proto__:null,default:l},[c]);export{i as R,l as a,u as g,c as r}; diff --git a/docs/assets/index.CyN3cLSG.js b/docs/assets/index.xUA8L87E.js similarity index 62% rename from docs/assets/index.CyN3cLSG.js rename to docs/assets/index.xUA8L87E.js index 5d54ae53..ec96cd7e 100644 --- a/docs/assets/index.CyN3cLSG.js +++ b/docs/assets/index.xUA8L87E.js @@ -1 +1 @@ -import{r as e}from"./index.BaMLtrTp.js";function c(r){const t=e.useRef(r);return e.useEffect(()=>{t.current=r}),e.useMemo(()=>(...u)=>t.current?.(...u),[])}export{c as u}; +import{r as e}from"./index.D_oLZvzW.js";function c(r){const t=e.useRef(r);return e.useEffect(()=>{t.current=r}),e.useMemo(()=>(...u)=>t.current?.(...u),[])}export{c as u}; diff --git a/docs/assets/info.BKH_R1lK.js b/docs/assets/info.DkfeuojL.js similarity index 86% rename from docs/assets/info.BKH_R1lK.js rename to docs/assets/info.DkfeuojL.js index d9de968a..9c580c97 100644 --- a/docs/assets/info.BKH_R1lK.js +++ b/docs/assets/info.DkfeuojL.js @@ -1,4 +1,4 @@ -import{c}from"./createLucideIcon.CJ67VFfW.js";/** +import{c}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/link.ILvXdQ4c.js b/docs/assets/link.Coz5prEd.js similarity index 87% rename from docs/assets/link.ILvXdQ4c.js rename to docs/assets/link.Coz5prEd.js index f2afd4d7..494539bf 100644 --- a/docs/assets/link.ILvXdQ4c.js +++ b/docs/assets/link.Coz5prEd.js @@ -1,4 +1,4 @@ -import{c as a}from"./createLucideIcon.CJ67VFfW.js";/** +import{c as a}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/message-circle.f_pivL_s.js b/docs/assets/message-circle.8UVeSDYv.js similarity index 83% rename from docs/assets/message-circle.f_pivL_s.js rename to docs/assets/message-circle.8UVeSDYv.js index 12e90fa3..57983e89 100644 --- a/docs/assets/message-circle.f_pivL_s.js +++ b/docs/assets/message-circle.8UVeSDYv.js @@ -1,4 +1,4 @@ -import{c as e}from"./createLucideIcon.CJ67VFfW.js";/** +import{c as e}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/message-square.bamY-dpJ.js b/docs/assets/message-square.O0_WvyiX.js similarity index 84% rename from docs/assets/message-square.bamY-dpJ.js rename to docs/assets/message-square.O0_WvyiX.js index 6b9c1f76..1a723407 100644 --- a/docs/assets/message-square.bamY-dpJ.js +++ b/docs/assets/message-square.O0_WvyiX.js @@ -1,4 +1,4 @@ -import{c as e}from"./createLucideIcon.CJ67VFfW.js";/** +import{c as e}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/plus.DA_zqKdq.js b/docs/assets/plus.B9QqORzJ.js similarity index 83% rename from docs/assets/plus.DA_zqKdq.js rename to docs/assets/plus.B9QqORzJ.js index 60f7057f..f0024b2b 100644 --- a/docs/assets/plus.DA_zqKdq.js +++ b/docs/assets/plus.B9QqORzJ.js @@ -1,4 +1,4 @@ -import{c as e}from"./createLucideIcon.CJ67VFfW.js";/** +import{c as e}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/refresh-cw.3-55pmhE.js b/docs/assets/refresh-cw.BaAeNbsO.js similarity index 89% rename from docs/assets/refresh-cw.3-55pmhE.js rename to docs/assets/refresh-cw.BaAeNbsO.js index 63e52569..e62872bf 100644 --- a/docs/assets/refresh-cw.3-55pmhE.js +++ b/docs/assets/refresh-cw.BaAeNbsO.js @@ -1,4 +1,4 @@ -import{c as e}from"./createLucideIcon.CJ67VFfW.js";/** +import{c as e}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/rocket.DJM_PiJ5.js b/docs/assets/rocket.DnXnYW1j.js similarity index 92% rename from docs/assets/rocket.DJM_PiJ5.js rename to docs/assets/rocket.DnXnYW1j.js index 2326cbe6..98e85d9a 100644 --- a/docs/assets/rocket.DJM_PiJ5.js +++ b/docs/assets/rocket.DnXnYW1j.js @@ -1,4 +1,4 @@ -import{c}from"./createLucideIcon.CJ67VFfW.js";/** +import{c}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/search.CTWaWu2N.js b/docs/assets/search.DStwv__K.js similarity index 85% rename from docs/assets/search.CTWaWu2N.js rename to docs/assets/search.DStwv__K.js index 2072d278..d9bdf1c7 100644 --- a/docs/assets/search.CTWaWu2N.js +++ b/docs/assets/search.DStwv__K.js @@ -1,4 +1,4 @@ -import{c}from"./createLucideIcon.CJ67VFfW.js";/** +import{c}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/server.pwsPfNtl.js b/docs/assets/server.2PNbSf_A.js similarity index 89% rename from docs/assets/server.pwsPfNtl.js rename to docs/assets/server.2PNbSf_A.js index cd60b55a..cc1f7a90 100644 --- a/docs/assets/server.pwsPfNtl.js +++ b/docs/assets/server.2PNbSf_A.js @@ -1,4 +1,4 @@ -import{c as e}from"./createLucideIcon.CJ67VFfW.js";/** +import{c as e}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/shield.Dnfnq1p4.js b/docs/assets/shield.Cc9GR1lK.js similarity index 87% rename from docs/assets/shield.Dnfnq1p4.js rename to docs/assets/shield.Cc9GR1lK.js index 9b9dece1..4496df07 100644 --- a/docs/assets/shield.Dnfnq1p4.js +++ b/docs/assets/shield.Cc9GR1lK.js @@ -1,4 +1,4 @@ -import{c as a}from"./createLucideIcon.CJ67VFfW.js";/** +import{c as a}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/sparkles.sp_Qnyce.js b/docs/assets/sparkles.DoaLSLnS.js similarity index 92% rename from docs/assets/sparkles.sp_Qnyce.js rename to docs/assets/sparkles.DoaLSLnS.js index 54f80abc..e4d584cf 100644 --- a/docs/assets/sparkles.sp_Qnyce.js +++ b/docs/assets/sparkles.DoaLSLnS.js @@ -1,4 +1,4 @@ -import{c as a}from"./createLucideIcon.CJ67VFfW.js";/** +import{c as a}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/star.B1d6f3gm.js b/docs/assets/star.B5F53nve.js similarity index 91% rename from docs/assets/star.B1d6f3gm.js rename to docs/assets/star.B5F53nve.js index 44ab5960..1db0522a 100644 --- a/docs/assets/star.B1d6f3gm.js +++ b/docs/assets/star.B5F53nve.js @@ -1,4 +1,4 @@ -import{c as a}from"./createLucideIcon.CJ67VFfW.js";/** +import{c as a}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/terminal.CvJQ-WtW.js b/docs/assets/terminal.BX6Ycj7A.js similarity index 85% rename from docs/assets/terminal.CvJQ-WtW.js rename to docs/assets/terminal.BX6Ycj7A.js index 836fb027..06b21055 100644 --- a/docs/assets/terminal.CvJQ-WtW.js +++ b/docs/assets/terminal.BX6Ycj7A.js @@ -1,4 +1,4 @@ -import{c as e}from"./createLucideIcon.CJ67VFfW.js";/** +import{c as e}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/useAnalyticsAstro.CR8fdMXS.js b/docs/assets/useAnalyticsAstro.DaPc9vxZ.js similarity index 94% rename from docs/assets/useAnalyticsAstro.CR8fdMXS.js rename to docs/assets/useAnalyticsAstro.DaPc9vxZ.js index ba28f9ac..e6ace445 100644 --- a/docs/assets/useAnalyticsAstro.CR8fdMXS.js +++ b/docs/assets/useAnalyticsAstro.DaPc9vxZ.js @@ -1 +1 @@ -import{r as a}from"./index.BaMLtrTp.js";import{t as d,a as m,b as w,c as k,d as g,e as p}from"./tracking.znU5Ou_b.js";const f=l=>{a.useEffect(()=>{let c=0,o=!1;const r=()=>{o||(requestAnimationFrame(()=>{const s=window.pageYOffset,i=document.documentElement.scrollHeight-window.innerHeight,t=Math.round(s/i*100),n=[25,50,75,90].find(u=>t>=u&&cwindow.removeEventListener("scroll",r)},[l])},C=()=>{const l=a.useCallback((t,e,n)=>{d({button_text:t,button_location:e,...n})},[]),c=a.useCallback((t,e,n)=>{m({platform:t,link_location:e,link_text:n})},[]),o=a.useCallback((t,e,n)=>{w(t,e,n)},[]),r=a.useCallback((t,e)=>{k(t,e)},[]),s=a.useCallback((t,e,n="internal")=>{k("navigation_clicked",{link_text:t,destination:e,link_type:n})},[]),i=a.useCallback((t,e)=>{g({page_title:t||document.title||"Desktop Commander",page_url:window.location.href,referrer:document.referrer||void 0,...e})},[]);return{trackDownload:l,trackCommunity:c,trackCTA:o,trackCustomEvent:r,trackNavigation:s,trackPageView:i}},b=()=>(f(),C());export{b as u}; +import{r as a}from"./index.D_oLZvzW.js";import{t as d,a as m,b as w,c as k,d as g,e as p}from"./tracking.znU5Ou_b.js";const f=l=>{a.useEffect(()=>{let c=0,o=!1;const r=()=>{o||(requestAnimationFrame(()=>{const s=window.pageYOffset,i=document.documentElement.scrollHeight-window.innerHeight,t=Math.round(s/i*100),n=[25,50,75,90].find(u=>t>=u&&cwindow.removeEventListener("scroll",r)},[l])},C=()=>{const l=a.useCallback((t,e,n)=>{d({button_text:t,button_location:e,...n})},[]),c=a.useCallback((t,e,n)=>{m({platform:t,link_location:e,link_text:n})},[]),o=a.useCallback((t,e,n)=>{w(t,e,n)},[]),r=a.useCallback((t,e)=>{k(t,e)},[]),s=a.useCallback((t,e,n="internal")=>{k("navigation_clicked",{link_text:t,destination:e,link_type:n})},[]),i=a.useCallback((t,e)=>{g({page_title:t||document.title||"Desktop Commander",page_url:window.location.href,referrer:document.referrer||void 0,...e})},[]);return{trackDownload:l,trackCommunity:c,trackCTA:o,trackCustomEvent:r,trackNavigation:s,trackPageView:i}},b=()=>(f(),C());export{b as u}; diff --git a/docs/assets/users.DbVrsKHo.js b/docs/assets/users.8W-rffO0.js similarity index 88% rename from docs/assets/users.DbVrsKHo.js rename to docs/assets/users.8W-rffO0.js index 28bbb8ef..e5f17a3c 100644 --- a/docs/assets/users.DbVrsKHo.js +++ b/docs/assets/users.8W-rffO0.js @@ -1,4 +1,4 @@ -import{c as e}from"./createLucideIcon.CJ67VFfW.js";/** +import{c as e}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/utils.XhT4HDO9.js b/docs/assets/utils.9Q5QEYED.js similarity index 99% rename from docs/assets/utils.XhT4HDO9.js rename to docs/assets/utils.9Q5QEYED.js index 6dada0cb..e3d7e42d 100644 --- a/docs/assets/utils.XhT4HDO9.js +++ b/docs/assets/utils.9Q5QEYED.js @@ -1 +1 @@ -import{r as h}from"./index.BaMLtrTp.js";import{j as L}from"./jsx-runtime.D3GSbgeI.js";function Y(e,r){if(typeof e=="function")return e(r);e!=null&&(e.current=r)}function re(...e){return r=>{let t=!1;const o=e.map(s=>{const n=Y(s,r);return!t&&typeof n=="function"&&(t=!0),n});if(t)return()=>{for(let s=0;s{const{children:n,...i}=o,l=h.Children.toArray(n),c=l.find(pe);if(c){const u=c.props.children,f=l.map(y=>y===c?h.Children.count(u)>1?h.Children.only(null):h.isValidElement(u)?u.props.children:null:y);return L.jsx(r,{...i,ref:s,children:h.isValidElement(u)?h.cloneElement(u,void 0,f):null})}return L.jsx(r,{...i,ref:s,children:n})});return t.displayName=`${e}.Slot`,t}var Ke=ce("Slot");function de(e){const r=h.forwardRef((t,o)=>{const{children:s,...n}=t;if(h.isValidElement(s)){const i=be(s),l=ue(n,s.props);return s.type!==h.Fragment&&(l.ref=o?re(o,i):i),h.cloneElement(s,l)}return h.Children.count(s)>1?h.Children.only(null):null});return r.displayName=`${e}.SlotClone`,r}var te=Symbol("radix.slottable");function Qe(e){const r=({children:t})=>L.jsx(L.Fragment,{children:t});return r.displayName=`${e}.Slottable`,r.__radixId=te,r}function pe(e){return h.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===te}function ue(e,r){const t={...r};for(const o in r){const s=e[o],n=r[o];/^on[A-Z]/.test(o)?s&&n?t[o]=(...l)=>{const c=n(...l);return s(...l),c}:s&&(t[o]=s):o==="style"?t[o]={...s,...n}:o==="className"&&(t[o]=[s,n].filter(Boolean).join(" "))}return{...e,...t}}function be(e){let r=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning;return t?e.ref:(r=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}function oe(e){var r,t,o="";if(typeof e=="string"||typeof e=="number")o+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(r=0;r{const r=he(e),{conflictingClassGroups:t,conflictingClassGroupModifiers:o}=e;return{getClassGroupId:i=>{const l=i.split(U);return l[0]===""&&l.length!==1&&l.shift(),ne(l,r)||me(i)},getConflictingClassGroupIds:(i,l)=>{const c=t[i]||[];return l&&o[i]?[...c,...o[i]]:c}}},ne=(e,r)=>{if(e.length===0)return r.classGroupId;const t=e[0],o=r.nextPart.get(t),s=o?ne(e.slice(1),o):void 0;if(s)return s;if(r.validators.length===0)return;const n=e.join(U);return r.validators.find(({validator:i})=>i(n))?.classGroupId},D=/^\[(.+)\]$/,me=e=>{if(D.test(e)){const r=D.exec(e)[1],t=r?.substring(0,r.indexOf(":"));if(t)return"arbitrary.."+t}},he=e=>{const{theme:r,prefix:t}=e,o={nextPart:new Map,validators:[]};return xe(Object.entries(e.classGroups),t).forEach(([n,i])=>{F(i,o,n,r)}),o},F=(e,r,t,o)=>{e.forEach(s=>{if(typeof s=="string"){const n=s===""?r:ee(r,s);n.classGroupId=t;return}if(typeof s=="function"){if(ye(s)){F(s(o),r,t,o);return}r.validators.push({validator:s,classGroupId:t});return}Object.entries(s).forEach(([n,i])=>{F(i,ee(r,n),t,o)})})},ee=(e,r)=>{let t=e;return r.split(U).forEach(o=>{t.nextPart.has(o)||t.nextPart.set(o,{nextPart:new Map,validators:[]}),t=t.nextPart.get(o)}),t},ye=e=>e.isThemeGetter,xe=(e,r)=>r?e.map(([t,o])=>{const s=o.map(n=>typeof n=="string"?r+n:typeof n=="object"?Object.fromEntries(Object.entries(n).map(([i,l])=>[r+i,l])):n);return[t,s]}):e,we=e=>{if(e<1)return{get:()=>{},set:()=>{}};let r=0,t=new Map,o=new Map;const s=(n,i)=>{t.set(n,i),r++,r>e&&(r=0,o=t,t=new Map)};return{get(n){let i=t.get(n);if(i!==void 0)return i;if((i=o.get(n))!==void 0)return s(n,i),i},set(n,i){t.has(n)?t.set(n,i):s(n,i)}}},se="!",ve=e=>{const{separator:r,experimentalParseClassName:t}=e,o=r.length===1,s=r[0],n=r.length,i=l=>{const c=[];let u=0,f=0,y;for(let b=0;bf?y-f:void 0;return{modifiers:c,hasImportantModifier:C,baseClassName:v,maybePostfixModifierPosition:g}};return t?l=>t({className:l,parseClassName:i}):i},Ce=e=>{if(e.length<=1)return e;const r=[];let t=[];return e.forEach(o=>{o[0]==="["?(r.push(...t.sort(),o),t=[]):t.push(o)}),r.push(...t.sort()),r},ke=e=>({cache:we(e.cacheSize),parseClassName:ve(e),...ge(e)}),Se=/\s+/,ze=(e,r)=>{const{parseClassName:t,getClassGroupId:o,getConflictingClassGroupIds:s}=r,n=[],i=e.trim().split(Se);let l="";for(let c=i.length-1;c>=0;c-=1){const u=i[c],{modifiers:f,hasImportantModifier:y,baseClassName:w,maybePostfixModifierPosition:C}=t(u);let v=!!C,g=o(v?w.substring(0,C):w);if(!g){if(!v){l=u+(l.length>0?" "+l:l);continue}if(g=o(w),!g){l=u+(l.length>0?" "+l:l);continue}v=!1}const b=Ce(f).join(":"),m=y?b+se:b,x=m+g;if(n.includes(x))continue;n.push(x);const P=s(g,v);for(let R=0;R0?" "+l:l)}return l};function Ae(){let e=0,r,t,o="";for(;e{if(typeof e=="string")return e;let r,t="";for(let o=0;oy(f),e());return t=ke(u),o=t.cache.get,s=t.cache.set,n=l,l(c)}function l(c){const u=o(c);if(u)return u;const f=ze(c,t);return s(c,f),f}return function(){return n(Ae.apply(null,arguments))}}const d=e=>{const r=t=>t[e]||[];return r.isThemeGetter=!0,r},ie=/^\[(?:([a-z-]+):)?(.+)\]$/i,Ee=/^\d+\/\d+$/,Me=new Set(["px","full","screen"]),Pe=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Ie=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Ge=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,je=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Ne=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,S=e=>E(e)||Me.has(e)||Ee.test(e),z=e=>M(e,"length",Be),E=e=>!!e&&!Number.isNaN(Number(e)),B=e=>M(e,"number",E),G=e=>!!e&&Number.isInteger(Number(e)),Te=e=>e.endsWith("%")&&E(e.slice(0,-1)),a=e=>ie.test(e),A=e=>Pe.test(e),We=new Set(["length","size","percentage"]),Le=e=>M(e,We,ae),Ve=e=>M(e,"position",ae),_e=new Set(["image","url"]),Oe=e=>M(e,_e,Ue),$e=e=>M(e,"",Fe),j=()=>!0,M=(e,r,t)=>{const o=ie.exec(e);return o?o[1]?typeof r=="string"?o[1]===r:r.has(o[1]):t(o[2]):!1},Be=e=>Ie.test(e)&&!Ge.test(e),ae=()=>!1,Fe=e=>je.test(e),Ue=e=>Ne.test(e),qe=()=>{const e=d("colors"),r=d("spacing"),t=d("blur"),o=d("brightness"),s=d("borderColor"),n=d("borderRadius"),i=d("borderSpacing"),l=d("borderWidth"),c=d("contrast"),u=d("grayscale"),f=d("hueRotate"),y=d("invert"),w=d("gap"),C=d("gradientColorStops"),v=d("gradientColorStopPositions"),g=d("inset"),b=d("margin"),m=d("opacity"),x=d("padding"),P=d("saturate"),R=d("scale"),N=d("sepia"),q=d("skew"),H=d("space"),Z=d("translate"),V=()=>["auto","contain","none"],_=()=>["auto","hidden","clip","visible","scroll"],O=()=>["auto",a,r],p=()=>[a,r],J=()=>["",S,z],T=()=>["auto",E,a],X=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],W=()=>["solid","dashed","dotted","double","none"],K=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],$=()=>["start","end","center","between","around","evenly","stretch"],I=()=>["","0",a],Q=()=>["auto","avoid","all","avoid-page","page","left","right","column"],k=()=>[E,a];return{cacheSize:500,separator:":",theme:{colors:[j],spacing:[S,z],blur:["none","",A,a],brightness:k(),borderColor:[e],borderRadius:["none","","full",A,a],borderSpacing:p(),borderWidth:J(),contrast:k(),grayscale:I(),hueRotate:k(),invert:I(),gap:p(),gradientColorStops:[e],gradientColorStopPositions:[Te,z],inset:O(),margin:O(),opacity:k(),padding:p(),saturate:k(),scale:k(),sepia:I(),skew:k(),space:p(),translate:p()},classGroups:{aspect:[{aspect:["auto","square","video",a]}],container:["container"],columns:[{columns:[A]}],"break-after":[{"break-after":Q()}],"break-before":[{"break-before":Q()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...X(),a]}],overflow:[{overflow:_()}],"overflow-x":[{"overflow-x":_()}],"overflow-y":[{"overflow-y":_()}],overscroll:[{overscroll:V()}],"overscroll-x":[{"overscroll-x":V()}],"overscroll-y":[{"overscroll-y":V()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[g]}],"inset-x":[{"inset-x":[g]}],"inset-y":[{"inset-y":[g]}],start:[{start:[g]}],end:[{end:[g]}],top:[{top:[g]}],right:[{right:[g]}],bottom:[{bottom:[g]}],left:[{left:[g]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",G,a]}],basis:[{basis:O()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",a]}],grow:[{grow:I()}],shrink:[{shrink:I()}],order:[{order:["first","last","none",G,a]}],"grid-cols":[{"grid-cols":[j]}],"col-start-end":[{col:["auto",{span:["full",G,a]},a]}],"col-start":[{"col-start":T()}],"col-end":[{"col-end":T()}],"grid-rows":[{"grid-rows":[j]}],"row-start-end":[{row:["auto",{span:[G,a]},a]}],"row-start":[{"row-start":T()}],"row-end":[{"row-end":T()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",a]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",a]}],gap:[{gap:[w]}],"gap-x":[{"gap-x":[w]}],"gap-y":[{"gap-y":[w]}],"justify-content":[{justify:["normal",...$()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...$(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...$(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[x]}],px:[{px:[x]}],py:[{py:[x]}],ps:[{ps:[x]}],pe:[{pe:[x]}],pt:[{pt:[x]}],pr:[{pr:[x]}],pb:[{pb:[x]}],pl:[{pl:[x]}],m:[{m:[b]}],mx:[{mx:[b]}],my:[{my:[b]}],ms:[{ms:[b]}],me:[{me:[b]}],mt:[{mt:[b]}],mr:[{mr:[b]}],mb:[{mb:[b]}],ml:[{ml:[b]}],"space-x":[{"space-x":[H]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[H]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",a,r]}],"min-w":[{"min-w":[a,r,"min","max","fit"]}],"max-w":[{"max-w":[a,r,"none","full","min","max","fit","prose",{screen:[A]},A]}],h:[{h:[a,r,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[a,r,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[a,r,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[a,r,"auto","min","max","fit"]}],"font-size":[{text:["base",A,z]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",B]}],"font-family":[{font:[j]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",a]}],"line-clamp":[{"line-clamp":["none",E,B]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",S,a]}],"list-image":[{"list-image":["none",a]}],"list-style-type":[{list:["none","disc","decimal",a]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[m]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[m]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...W(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",S,z]}],"underline-offset":[{"underline-offset":["auto",S,a]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:p()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",a]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",a]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[m]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...X(),Ve]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",Le]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},Oe]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[v]}],"gradient-via-pos":[{via:[v]}],"gradient-to-pos":[{to:[v]}],"gradient-from":[{from:[C]}],"gradient-via":[{via:[C]}],"gradient-to":[{to:[C]}],rounded:[{rounded:[n]}],"rounded-s":[{"rounded-s":[n]}],"rounded-e":[{"rounded-e":[n]}],"rounded-t":[{"rounded-t":[n]}],"rounded-r":[{"rounded-r":[n]}],"rounded-b":[{"rounded-b":[n]}],"rounded-l":[{"rounded-l":[n]}],"rounded-ss":[{"rounded-ss":[n]}],"rounded-se":[{"rounded-se":[n]}],"rounded-ee":[{"rounded-ee":[n]}],"rounded-es":[{"rounded-es":[n]}],"rounded-tl":[{"rounded-tl":[n]}],"rounded-tr":[{"rounded-tr":[n]}],"rounded-br":[{"rounded-br":[n]}],"rounded-bl":[{"rounded-bl":[n]}],"border-w":[{border:[l]}],"border-w-x":[{"border-x":[l]}],"border-w-y":[{"border-y":[l]}],"border-w-s":[{"border-s":[l]}],"border-w-e":[{"border-e":[l]}],"border-w-t":[{"border-t":[l]}],"border-w-r":[{"border-r":[l]}],"border-w-b":[{"border-b":[l]}],"border-w-l":[{"border-l":[l]}],"border-opacity":[{"border-opacity":[m]}],"border-style":[{border:[...W(),"hidden"]}],"divide-x":[{"divide-x":[l]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[l]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[m]}],"divide-style":[{divide:W()}],"border-color":[{border:[s]}],"border-color-x":[{"border-x":[s]}],"border-color-y":[{"border-y":[s]}],"border-color-s":[{"border-s":[s]}],"border-color-e":[{"border-e":[s]}],"border-color-t":[{"border-t":[s]}],"border-color-r":[{"border-r":[s]}],"border-color-b":[{"border-b":[s]}],"border-color-l":[{"border-l":[s]}],"divide-color":[{divide:[s]}],"outline-style":[{outline:["",...W()]}],"outline-offset":[{"outline-offset":[S,a]}],"outline-w":[{outline:[S,z]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:J()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[m]}],"ring-offset-w":[{"ring-offset":[S,z]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",A,$e]}],"shadow-color":[{shadow:[j]}],opacity:[{opacity:[m]}],"mix-blend":[{"mix-blend":[...K(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":K()}],filter:[{filter:["","none"]}],blur:[{blur:[t]}],brightness:[{brightness:[o]}],contrast:[{contrast:[c]}],"drop-shadow":[{"drop-shadow":["","none",A,a]}],grayscale:[{grayscale:[u]}],"hue-rotate":[{"hue-rotate":[f]}],invert:[{invert:[y]}],saturate:[{saturate:[P]}],sepia:[{sepia:[N]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[t]}],"backdrop-brightness":[{"backdrop-brightness":[o]}],"backdrop-contrast":[{"backdrop-contrast":[c]}],"backdrop-grayscale":[{"backdrop-grayscale":[u]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[f]}],"backdrop-invert":[{"backdrop-invert":[y]}],"backdrop-opacity":[{"backdrop-opacity":[m]}],"backdrop-saturate":[{"backdrop-saturate":[P]}],"backdrop-sepia":[{"backdrop-sepia":[N]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[i]}],"border-spacing-x":[{"border-spacing-x":[i]}],"border-spacing-y":[{"border-spacing-y":[i]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",a]}],duration:[{duration:k()}],ease:[{ease:["linear","in","out","in-out",a]}],delay:[{delay:k()}],animate:[{animate:["none","spin","ping","pulse","bounce",a]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[R]}],"scale-x":[{"scale-x":[R]}],"scale-y":[{"scale-y":[R]}],rotate:[{rotate:[G,a]}],"translate-x":[{"translate-x":[Z]}],"translate-y":[{"translate-y":[Z]}],"skew-x":[{"skew-x":[q]}],"skew-y":[{"skew-y":[q]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",a]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",a]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":p()}],"scroll-mx":[{"scroll-mx":p()}],"scroll-my":[{"scroll-my":p()}],"scroll-ms":[{"scroll-ms":p()}],"scroll-me":[{"scroll-me":p()}],"scroll-mt":[{"scroll-mt":p()}],"scroll-mr":[{"scroll-mr":p()}],"scroll-mb":[{"scroll-mb":p()}],"scroll-ml":[{"scroll-ml":p()}],"scroll-p":[{"scroll-p":p()}],"scroll-px":[{"scroll-px":p()}],"scroll-py":[{"scroll-py":p()}],"scroll-ps":[{"scroll-ps":p()}],"scroll-pe":[{"scroll-pe":p()}],"scroll-pt":[{"scroll-pt":p()}],"scroll-pr":[{"scroll-pr":p()}],"scroll-pb":[{"scroll-pb":p()}],"scroll-pl":[{"scroll-pl":p()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",a]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[S,z,B]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},He=Re(qe);function Ye(...e){return He(fe(e))}export{Ke as S,Ye as a,Qe as b,ce as c,re as d,fe as e,Xe as u}; +import{r as h}from"./index.D_oLZvzW.js";import{j as L}from"./jsx-runtime.D3GSbgeI.js";function Y(e,r){if(typeof e=="function")return e(r);e!=null&&(e.current=r)}function re(...e){return r=>{let t=!1;const o=e.map(s=>{const n=Y(s,r);return!t&&typeof n=="function"&&(t=!0),n});if(t)return()=>{for(let s=0;s{const{children:n,...i}=o,l=h.Children.toArray(n),c=l.find(pe);if(c){const u=c.props.children,f=l.map(y=>y===c?h.Children.count(u)>1?h.Children.only(null):h.isValidElement(u)?u.props.children:null:y);return L.jsx(r,{...i,ref:s,children:h.isValidElement(u)?h.cloneElement(u,void 0,f):null})}return L.jsx(r,{...i,ref:s,children:n})});return t.displayName=`${e}.Slot`,t}var Ke=ce("Slot");function de(e){const r=h.forwardRef((t,o)=>{const{children:s,...n}=t;if(h.isValidElement(s)){const i=be(s),l=ue(n,s.props);return s.type!==h.Fragment&&(l.ref=o?re(o,i):i),h.cloneElement(s,l)}return h.Children.count(s)>1?h.Children.only(null):null});return r.displayName=`${e}.SlotClone`,r}var te=Symbol("radix.slottable");function Qe(e){const r=({children:t})=>L.jsx(L.Fragment,{children:t});return r.displayName=`${e}.Slottable`,r.__radixId=te,r}function pe(e){return h.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===te}function ue(e,r){const t={...r};for(const o in r){const s=e[o],n=r[o];/^on[A-Z]/.test(o)?s&&n?t[o]=(...l)=>{const c=n(...l);return s(...l),c}:s&&(t[o]=s):o==="style"?t[o]={...s,...n}:o==="className"&&(t[o]=[s,n].filter(Boolean).join(" "))}return{...e,...t}}function be(e){let r=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning;return t?e.ref:(r=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}function oe(e){var r,t,o="";if(typeof e=="string"||typeof e=="number")o+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(r=0;r{const r=he(e),{conflictingClassGroups:t,conflictingClassGroupModifiers:o}=e;return{getClassGroupId:i=>{const l=i.split(U);return l[0]===""&&l.length!==1&&l.shift(),ne(l,r)||me(i)},getConflictingClassGroupIds:(i,l)=>{const c=t[i]||[];return l&&o[i]?[...c,...o[i]]:c}}},ne=(e,r)=>{if(e.length===0)return r.classGroupId;const t=e[0],o=r.nextPart.get(t),s=o?ne(e.slice(1),o):void 0;if(s)return s;if(r.validators.length===0)return;const n=e.join(U);return r.validators.find(({validator:i})=>i(n))?.classGroupId},D=/^\[(.+)\]$/,me=e=>{if(D.test(e)){const r=D.exec(e)[1],t=r?.substring(0,r.indexOf(":"));if(t)return"arbitrary.."+t}},he=e=>{const{theme:r,prefix:t}=e,o={nextPart:new Map,validators:[]};return xe(Object.entries(e.classGroups),t).forEach(([n,i])=>{F(i,o,n,r)}),o},F=(e,r,t,o)=>{e.forEach(s=>{if(typeof s=="string"){const n=s===""?r:ee(r,s);n.classGroupId=t;return}if(typeof s=="function"){if(ye(s)){F(s(o),r,t,o);return}r.validators.push({validator:s,classGroupId:t});return}Object.entries(s).forEach(([n,i])=>{F(i,ee(r,n),t,o)})})},ee=(e,r)=>{let t=e;return r.split(U).forEach(o=>{t.nextPart.has(o)||t.nextPart.set(o,{nextPart:new Map,validators:[]}),t=t.nextPart.get(o)}),t},ye=e=>e.isThemeGetter,xe=(e,r)=>r?e.map(([t,o])=>{const s=o.map(n=>typeof n=="string"?r+n:typeof n=="object"?Object.fromEntries(Object.entries(n).map(([i,l])=>[r+i,l])):n);return[t,s]}):e,we=e=>{if(e<1)return{get:()=>{},set:()=>{}};let r=0,t=new Map,o=new Map;const s=(n,i)=>{t.set(n,i),r++,r>e&&(r=0,o=t,t=new Map)};return{get(n){let i=t.get(n);if(i!==void 0)return i;if((i=o.get(n))!==void 0)return s(n,i),i},set(n,i){t.has(n)?t.set(n,i):s(n,i)}}},se="!",ve=e=>{const{separator:r,experimentalParseClassName:t}=e,o=r.length===1,s=r[0],n=r.length,i=l=>{const c=[];let u=0,f=0,y;for(let b=0;bf?y-f:void 0;return{modifiers:c,hasImportantModifier:C,baseClassName:v,maybePostfixModifierPosition:g}};return t?l=>t({className:l,parseClassName:i}):i},Ce=e=>{if(e.length<=1)return e;const r=[];let t=[];return e.forEach(o=>{o[0]==="["?(r.push(...t.sort(),o),t=[]):t.push(o)}),r.push(...t.sort()),r},ke=e=>({cache:we(e.cacheSize),parseClassName:ve(e),...ge(e)}),Se=/\s+/,ze=(e,r)=>{const{parseClassName:t,getClassGroupId:o,getConflictingClassGroupIds:s}=r,n=[],i=e.trim().split(Se);let l="";for(let c=i.length-1;c>=0;c-=1){const u=i[c],{modifiers:f,hasImportantModifier:y,baseClassName:w,maybePostfixModifierPosition:C}=t(u);let v=!!C,g=o(v?w.substring(0,C):w);if(!g){if(!v){l=u+(l.length>0?" "+l:l);continue}if(g=o(w),!g){l=u+(l.length>0?" "+l:l);continue}v=!1}const b=Ce(f).join(":"),m=y?b+se:b,x=m+g;if(n.includes(x))continue;n.push(x);const P=s(g,v);for(let R=0;R0?" "+l:l)}return l};function Ae(){let e=0,r,t,o="";for(;e{if(typeof e=="string")return e;let r,t="";for(let o=0;oy(f),e());return t=ke(u),o=t.cache.get,s=t.cache.set,n=l,l(c)}function l(c){const u=o(c);if(u)return u;const f=ze(c,t);return s(c,f),f}return function(){return n(Ae.apply(null,arguments))}}const d=e=>{const r=t=>t[e]||[];return r.isThemeGetter=!0,r},ie=/^\[(?:([a-z-]+):)?(.+)\]$/i,Ee=/^\d+\/\d+$/,Me=new Set(["px","full","screen"]),Pe=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Ie=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Ge=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,je=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Ne=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,S=e=>E(e)||Me.has(e)||Ee.test(e),z=e=>M(e,"length",Be),E=e=>!!e&&!Number.isNaN(Number(e)),B=e=>M(e,"number",E),G=e=>!!e&&Number.isInteger(Number(e)),Te=e=>e.endsWith("%")&&E(e.slice(0,-1)),a=e=>ie.test(e),A=e=>Pe.test(e),We=new Set(["length","size","percentage"]),Le=e=>M(e,We,ae),Ve=e=>M(e,"position",ae),_e=new Set(["image","url"]),Oe=e=>M(e,_e,Ue),$e=e=>M(e,"",Fe),j=()=>!0,M=(e,r,t)=>{const o=ie.exec(e);return o?o[1]?typeof r=="string"?o[1]===r:r.has(o[1]):t(o[2]):!1},Be=e=>Ie.test(e)&&!Ge.test(e),ae=()=>!1,Fe=e=>je.test(e),Ue=e=>Ne.test(e),qe=()=>{const e=d("colors"),r=d("spacing"),t=d("blur"),o=d("brightness"),s=d("borderColor"),n=d("borderRadius"),i=d("borderSpacing"),l=d("borderWidth"),c=d("contrast"),u=d("grayscale"),f=d("hueRotate"),y=d("invert"),w=d("gap"),C=d("gradientColorStops"),v=d("gradientColorStopPositions"),g=d("inset"),b=d("margin"),m=d("opacity"),x=d("padding"),P=d("saturate"),R=d("scale"),N=d("sepia"),q=d("skew"),H=d("space"),Z=d("translate"),V=()=>["auto","contain","none"],_=()=>["auto","hidden","clip","visible","scroll"],O=()=>["auto",a,r],p=()=>[a,r],J=()=>["",S,z],T=()=>["auto",E,a],X=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],W=()=>["solid","dashed","dotted","double","none"],K=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],$=()=>["start","end","center","between","around","evenly","stretch"],I=()=>["","0",a],Q=()=>["auto","avoid","all","avoid-page","page","left","right","column"],k=()=>[E,a];return{cacheSize:500,separator:":",theme:{colors:[j],spacing:[S,z],blur:["none","",A,a],brightness:k(),borderColor:[e],borderRadius:["none","","full",A,a],borderSpacing:p(),borderWidth:J(),contrast:k(),grayscale:I(),hueRotate:k(),invert:I(),gap:p(),gradientColorStops:[e],gradientColorStopPositions:[Te,z],inset:O(),margin:O(),opacity:k(),padding:p(),saturate:k(),scale:k(),sepia:I(),skew:k(),space:p(),translate:p()},classGroups:{aspect:[{aspect:["auto","square","video",a]}],container:["container"],columns:[{columns:[A]}],"break-after":[{"break-after":Q()}],"break-before":[{"break-before":Q()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...X(),a]}],overflow:[{overflow:_()}],"overflow-x":[{"overflow-x":_()}],"overflow-y":[{"overflow-y":_()}],overscroll:[{overscroll:V()}],"overscroll-x":[{"overscroll-x":V()}],"overscroll-y":[{"overscroll-y":V()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[g]}],"inset-x":[{"inset-x":[g]}],"inset-y":[{"inset-y":[g]}],start:[{start:[g]}],end:[{end:[g]}],top:[{top:[g]}],right:[{right:[g]}],bottom:[{bottom:[g]}],left:[{left:[g]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",G,a]}],basis:[{basis:O()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",a]}],grow:[{grow:I()}],shrink:[{shrink:I()}],order:[{order:["first","last","none",G,a]}],"grid-cols":[{"grid-cols":[j]}],"col-start-end":[{col:["auto",{span:["full",G,a]},a]}],"col-start":[{"col-start":T()}],"col-end":[{"col-end":T()}],"grid-rows":[{"grid-rows":[j]}],"row-start-end":[{row:["auto",{span:[G,a]},a]}],"row-start":[{"row-start":T()}],"row-end":[{"row-end":T()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",a]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",a]}],gap:[{gap:[w]}],"gap-x":[{"gap-x":[w]}],"gap-y":[{"gap-y":[w]}],"justify-content":[{justify:["normal",...$()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...$(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...$(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[x]}],px:[{px:[x]}],py:[{py:[x]}],ps:[{ps:[x]}],pe:[{pe:[x]}],pt:[{pt:[x]}],pr:[{pr:[x]}],pb:[{pb:[x]}],pl:[{pl:[x]}],m:[{m:[b]}],mx:[{mx:[b]}],my:[{my:[b]}],ms:[{ms:[b]}],me:[{me:[b]}],mt:[{mt:[b]}],mr:[{mr:[b]}],mb:[{mb:[b]}],ml:[{ml:[b]}],"space-x":[{"space-x":[H]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[H]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",a,r]}],"min-w":[{"min-w":[a,r,"min","max","fit"]}],"max-w":[{"max-w":[a,r,"none","full","min","max","fit","prose",{screen:[A]},A]}],h:[{h:[a,r,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[a,r,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[a,r,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[a,r,"auto","min","max","fit"]}],"font-size":[{text:["base",A,z]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",B]}],"font-family":[{font:[j]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",a]}],"line-clamp":[{"line-clamp":["none",E,B]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",S,a]}],"list-image":[{"list-image":["none",a]}],"list-style-type":[{list:["none","disc","decimal",a]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[m]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[m]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...W(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",S,z]}],"underline-offset":[{"underline-offset":["auto",S,a]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:p()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",a]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",a]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[m]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...X(),Ve]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",Le]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},Oe]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[v]}],"gradient-via-pos":[{via:[v]}],"gradient-to-pos":[{to:[v]}],"gradient-from":[{from:[C]}],"gradient-via":[{via:[C]}],"gradient-to":[{to:[C]}],rounded:[{rounded:[n]}],"rounded-s":[{"rounded-s":[n]}],"rounded-e":[{"rounded-e":[n]}],"rounded-t":[{"rounded-t":[n]}],"rounded-r":[{"rounded-r":[n]}],"rounded-b":[{"rounded-b":[n]}],"rounded-l":[{"rounded-l":[n]}],"rounded-ss":[{"rounded-ss":[n]}],"rounded-se":[{"rounded-se":[n]}],"rounded-ee":[{"rounded-ee":[n]}],"rounded-es":[{"rounded-es":[n]}],"rounded-tl":[{"rounded-tl":[n]}],"rounded-tr":[{"rounded-tr":[n]}],"rounded-br":[{"rounded-br":[n]}],"rounded-bl":[{"rounded-bl":[n]}],"border-w":[{border:[l]}],"border-w-x":[{"border-x":[l]}],"border-w-y":[{"border-y":[l]}],"border-w-s":[{"border-s":[l]}],"border-w-e":[{"border-e":[l]}],"border-w-t":[{"border-t":[l]}],"border-w-r":[{"border-r":[l]}],"border-w-b":[{"border-b":[l]}],"border-w-l":[{"border-l":[l]}],"border-opacity":[{"border-opacity":[m]}],"border-style":[{border:[...W(),"hidden"]}],"divide-x":[{"divide-x":[l]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[l]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[m]}],"divide-style":[{divide:W()}],"border-color":[{border:[s]}],"border-color-x":[{"border-x":[s]}],"border-color-y":[{"border-y":[s]}],"border-color-s":[{"border-s":[s]}],"border-color-e":[{"border-e":[s]}],"border-color-t":[{"border-t":[s]}],"border-color-r":[{"border-r":[s]}],"border-color-b":[{"border-b":[s]}],"border-color-l":[{"border-l":[s]}],"divide-color":[{divide:[s]}],"outline-style":[{outline:["",...W()]}],"outline-offset":[{"outline-offset":[S,a]}],"outline-w":[{outline:[S,z]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:J()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[m]}],"ring-offset-w":[{"ring-offset":[S,z]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",A,$e]}],"shadow-color":[{shadow:[j]}],opacity:[{opacity:[m]}],"mix-blend":[{"mix-blend":[...K(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":K()}],filter:[{filter:["","none"]}],blur:[{blur:[t]}],brightness:[{brightness:[o]}],contrast:[{contrast:[c]}],"drop-shadow":[{"drop-shadow":["","none",A,a]}],grayscale:[{grayscale:[u]}],"hue-rotate":[{"hue-rotate":[f]}],invert:[{invert:[y]}],saturate:[{saturate:[P]}],sepia:[{sepia:[N]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[t]}],"backdrop-brightness":[{"backdrop-brightness":[o]}],"backdrop-contrast":[{"backdrop-contrast":[c]}],"backdrop-grayscale":[{"backdrop-grayscale":[u]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[f]}],"backdrop-invert":[{"backdrop-invert":[y]}],"backdrop-opacity":[{"backdrop-opacity":[m]}],"backdrop-saturate":[{"backdrop-saturate":[P]}],"backdrop-sepia":[{"backdrop-sepia":[N]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[i]}],"border-spacing-x":[{"border-spacing-x":[i]}],"border-spacing-y":[{"border-spacing-y":[i]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",a]}],duration:[{duration:k()}],ease:[{ease:["linear","in","out","in-out",a]}],delay:[{delay:k()}],animate:[{animate:["none","spin","ping","pulse","bounce",a]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[R]}],"scale-x":[{"scale-x":[R]}],"scale-y":[{"scale-y":[R]}],rotate:[{rotate:[G,a]}],"translate-x":[{"translate-x":[Z]}],"translate-y":[{"translate-y":[Z]}],"skew-x":[{"skew-x":[q]}],"skew-y":[{"skew-y":[q]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",a]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",a]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":p()}],"scroll-mx":[{"scroll-mx":p()}],"scroll-my":[{"scroll-my":p()}],"scroll-ms":[{"scroll-ms":p()}],"scroll-me":[{"scroll-me":p()}],"scroll-mt":[{"scroll-mt":p()}],"scroll-mr":[{"scroll-mr":p()}],"scroll-mb":[{"scroll-mb":p()}],"scroll-ml":[{"scroll-ml":p()}],"scroll-p":[{"scroll-p":p()}],"scroll-px":[{"scroll-px":p()}],"scroll-py":[{"scroll-py":p()}],"scroll-ps":[{"scroll-ps":p()}],"scroll-pe":[{"scroll-pe":p()}],"scroll-pt":[{"scroll-pt":p()}],"scroll-pr":[{"scroll-pr":p()}],"scroll-pb":[{"scroll-pb":p()}],"scroll-pl":[{"scroll-pl":p()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",a]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[S,z,B]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},He=Re(qe);function Ye(...e){return He(fe(e))}export{Ke as S,Ye as a,re as b,ce as c,fe as d,Qe as e,Xe as u}; diff --git a/docs/assets/x.B1hOxjOp.js b/docs/assets/x.C6Iw0U2F.js similarity index 83% rename from docs/assets/x.B1hOxjOp.js rename to docs/assets/x.C6Iw0U2F.js index b3723708..69fbad91 100644 --- a/docs/assets/x.B1hOxjOp.js +++ b/docs/assets/x.C6Iw0U2F.js @@ -1,4 +1,4 @@ -import{c as e}from"./createLucideIcon.CJ67VFfW.js";/** +import{c as e}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/assets/zap.D6vbqF2e.js b/docs/assets/zap.DaqacrRs.js similarity index 87% rename from docs/assets/zap.D6vbqF2e.js rename to docs/assets/zap.DaqacrRs.js index f3f98054..676dae44 100644 --- a/docs/assets/zap.D6vbqF2e.js +++ b/docs/assets/zap.DaqacrRs.js @@ -1,4 +1,4 @@ -import{c as a}from"./createLucideIcon.CJ67VFfW.js";/** +import{c as a}from"./createLucideIcon.DnxMVFvH.js";/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. diff --git a/docs/careers/index.html b/docs/careers/index.html index 55062eb1..c313ed1c 100644 --- a/docs/careers/index.html +++ b/docs/careers/index.html @@ -22,8 +22,8 @@ - +
App Launching Soonβ€’Join Waitlist

Join Our Team

+

App Launching Soonβ€’Join Waitlist

Join Our Team

We're building the future of AI-powered development tools. Join us!

Open Positions

Senior Full Stack AI Engineer

Engineering
Remote (Latvia/Portugal based team)
Full-time
October 9, 2025
Engineering

Desktop Commander, an early stage startup is seeking a Senior AI Full Stack Engineer to develop AI applications that integrate with LLMs and the Model Context Protocol (MCP) ecosystem. -You'll work at...

Responsibilities:

  • Build scalable AI assistant application integrating LLMs and MCP functionality
  • LLM Integration: Implement AI conversation flows, prompt management, streaming responses
  • Multi platform desktop architecture: Design Electron-based applications with secure IPC communication
  • MCP Integration: Develop integrations with MCP servers for enhanced AI capabilities
  • User Experience: Create intuitive interfaces for AI interactions and intelligent assistance
  • Provide technical support to customers, work with the user community and open source project

Requirements:

  • 5+ years of software development with JavaScript/TypeScript and Node.js
  • Advanced TypeScript/NodeJS expertise
  • Experience with SQL databases and REST API development
  • Experience working with streaming APIs (e.g. SSE/WebSockets) for LLM responses, implementing end-to-end token streaming from LLM to backend and frontend with minimal latency
  • AI code generation and review experience
  • Building AI-powered features in production with LLM APIs (OpenAI, Anthropic, etc.) and understanding of how to translate machine intelligence into user value
  • Hands-on experience with prompt engineering and context management
  • AI Workflow automations: Experience and understanding of building workflow automations (experience with n8n will be a plus)
  • Client-server applications or API integrations experience
  • Familiarity with AI/ML concepts and LLM APIs
  • Understanding of async programming and event-driven architectures
  • Driven, independent person who truly cares about delivering results, making an impact, and driving the company forward

Benefits:

  • You will be the first engineering hire besides the founding team, hence, the upside is as big as it can get
  • Transparent culture, where you will be exposed to working with investors and customers
  • Stock options after the trial period
  • Cutting-Edge AI Technology: Work with latest AI technologies and application development
  • Impactful Work: Build AI applications enhancing human productivity and collaboration
  • Learning Opportunities: Stay current with rapidly evolving AI/LLM landscape
  • Growth Path: Become a subject matter expert in AI client development and LLM integration
  • Competitive salary in line with market rates, your experience and impact - in the range of EUR 4500 to 6500 before taxes
View full details
\ No newline at end of file +You'll work at...

Responsibilities:

  • Build scalable AI assistant application integrating LLMs and MCP functionality
  • LLM Integration: Implement AI conversation flows, prompt management, streaming responses
  • Multi platform desktop architecture: Design Electron-based applications with secure IPC communication
  • MCP Integration: Develop integrations with MCP servers for enhanced AI capabilities
  • User Experience: Create intuitive interfaces for AI interactions and intelligent assistance
  • Provide technical support to customers, work with the user community and open source project

Requirements:

  • 5+ years of software development with JavaScript/TypeScript and Node.js
  • Advanced TypeScript/NodeJS expertise
  • Experience with SQL databases and REST API development
  • Experience working with streaming APIs (e.g. SSE/WebSockets) for LLM responses, implementing end-to-end token streaming from LLM to backend and frontend with minimal latency
  • AI code generation and review experience
  • Building AI-powered features in production with LLM APIs (OpenAI, Anthropic, etc.) and understanding of how to translate machine intelligence into user value
  • Hands-on experience with prompt engineering and context management
  • AI Workflow automations: Experience and understanding of building workflow automations (experience with n8n will be a plus)
  • Client-server applications or API integrations experience
  • Familiarity with AI/ML concepts and LLM APIs
  • Understanding of async programming and event-driven architectures
  • Driven, independent person who truly cares about delivering results, making an impact, and driving the company forward

Benefits:

  • You will be the first engineering hire besides the founding team, hence, the upside is as big as it can get
  • Transparent culture, where you will be exposed to working with investors and customers
  • Stock options after the trial period
  • Cutting-Edge AI Technology: Work with latest AI technologies and application development
  • Impactful Work: Build AI applications enhancing human productivity and collaboration
  • Learning Opportunities: Stay current with rapidly evolving AI/LLM landscape
  • Growth Path: Become a subject matter expert in AI client development and LLM integration
  • Competitive salary in line with market rates, your experience and impact - in the range of EUR 4500 to 6500 before taxes
View full details
\ No newline at end of file diff --git a/docs/careers/jobs/senior-fullstack-ai-engineer-2025/index.html b/docs/careers/jobs/senior-fullstack-ai-engineer-2025/index.html index ec521b5c..814d800e 100644 --- a/docs/careers/jobs/senior-fullstack-ai-engineer-2025/index.html +++ b/docs/careers/jobs/senior-fullstack-ai-engineer-2025/index.html @@ -38,7 +38,7 @@
+
Back to Careers

Senior Full Stack AI Engineer

Engineering Remote (Latvia/Portugal based team) Full-time Posted October 9, 2025
Apply for this Position

About the Role

Desktop Commander, an early stage startup is seeking a Senior AI Full Stack Engineer to develop AI applications that integrate with LLMs and the Model Context Protocol (MCP) ecosystem.

You'll work at the forefront of AI technology, creating intelligent applications that enable seamless human-AI collaboration. As the first technical hire outside the founding team, you'll have incredible upside and be expected to make a meaningful impact quickly.

You'll build and maintain AI applications using modern JavaScript/TypeScript, backed by our Google Cloud infrastructure. This role involves deep LLM integration, MCP implementations, and creating intuitive user experiences for AI-powered workflows.

We are looking for a driven, independent person who truly cares about delivering results, making an impact, and driving the company forward. Our team is based in Latvia and Portugal.

If you believe you are qualified but your skills don't perfectly match every item listed, we encourage you to apply anyway. We value potential, learning ability, and motivation as much as formal skill matches.


What you'll do:

  • Build scalable AI assistant application integrating LLMs and MCP functionality
  • LLM Integration: Implement AI conversation flows, prompt management, streaming responses
  • Multi platform desktop architecture: Design Electron-based applications with secure IPC communication
  • MCP Integration: Develop integrations with MCP servers for enhanced AI capabilities
  • User Experience: Create intuitive interfaces for AI interactions and intelligent assistance
  • Provide technical support to customers, work with the user community and open source project

What we're looking for:

  • 5+ years of software development with JavaScript/TypeScript and Node.js
  • Advanced TypeScript/NodeJS expertise
  • Experience with SQL databases and REST API development
  • Experience working with streaming APIs (e.g. SSE/WebSockets) for LLM responses, implementing end-to-end token streaming from LLM to backend and frontend with minimal latency
  • AI code generation and review experience
  • Building AI-powered features in production with LLM APIs (OpenAI, Anthropic, etc.) and understanding of how to translate machine intelligence into user value
  • Hands-on experience with prompt engineering and context management
  • AI Workflow automations: Experience and understanding of building workflow automations (experience with n8n will be a plus)
  • Client-server applications or API integrations experience
  • Familiarity with AI/ML concepts and LLM APIs
  • Understanding of async programming and event-driven architectures
  • Driven, independent person who truly cares about delivering results, making an impact, and driving the company forward

Nice to Have:

  • Model Context Protocol (MCP): MCP client implementation, tool calling, transport protocols (STDIO, SSE)
  • Cross-platform desktop development with Electron with IPC communication
  • Google Cloud Platform (GCP) experience
  • Docker and other containerization tools
  • Experience with internal process automation with n8n or similar tools
  • Developer Tools: Building SDKs, CLIs, or developer-facing applications
  • Knowledge about application security standards

What we offer:

  • You will be the first engineering hire besides the founding team, hence, the upside is as big as it can get
  • Transparent culture, where you will be exposed to working with investors and customers
  • Stock options after the trial period
  • Cutting-Edge AI Technology: Work with latest AI technologies and application development
  • Impactful Work: Build AI applications enhancing human productivity and collaboration
  • Learning Opportunities: Stay current with rapidly evolving AI/LLM landscape
  • Growth Path: Become a subject matter expert in AI client development and LLM integration
  • Competitive salary in line with market rates, your experience and impact - in the range of EUR 4500 to 6500 before taxes

Ready to Apply?

Join us in building the future of AI-powered development tools. -

Apply Now
\ No newline at end of file +

Apply Now
\ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 0774f7e5..c026f4b2 100644 --- a/docs/index.html +++ b/docs/index.html @@ -22,7 +22,7 @@
App Launching Soonβ€’Join Waitlist

Loading animation...

One Chat, Full Stack

Give AI direct access to your system and terminal

Transform your workflow today

From simple file operations to complex deployment pipelines, Desktop Commander handles it all through natural conversation

Install Desktop Commander and see how it handles these use cases

Tell us what you want to automate – we'll help set it up

Describe your repetitive tasks and we'll help you automate them with Desktop Commander. From deployment pipelines to file management workflows.

Custom automation β€’ No commitment

Trusted by the AI community

9.52/10
User Rating
26k+
Weekly Downloads
4.3k+
GitHub Stars
n
naranbaz
04/07/2025, 15:58
It is a great tool, thank you, I like using it, as it gives claude an ability to do surgical edits, making it more like a human developer.
p
play365alltime
07/08/2025, 17:22
Life saver! I was paying for both Claude + Cursor which felt duplicated. This solves that perfectly. With MCP + web search, it writes code with the latest updates. So good when Cursor doesn't work or fast requests run out.
d
dependablecalls
09/09/2025, 18:38
I had 76 errors in 23 files in my Svelte 5 project. Used desktop-commander, sequentialthinking, and tree-sitter to fix them all. Never resolved type errors this quickly with AI before!
DP
Dhiego Pagotto
03/06/2025, 19:14
I'm the one who is grateful for this, which is the best MCP that exists!
U
Uloi
12/09/2025, 12:44
Just joined I absolutely love this thing
GF
Geoff F
08/08/2025, 19:06
happy command coding everyone - god I love this tool
C
Creedo
17/06/2025, 12:06
Wow, I've been building something similar. This makes my project so much easier to build now. I'm truly grateful. Thank you!
DP
Damian Pastorini
09/07/2025, 19:39
btw @DC Dmitry , thanks for such great MCP πŸ™‚ I'm loving it πŸ™‚
j
jesseburstrom5920
22/09/2025, 10:11
Switched from Windsurf to Claude MCP and love it! No more token limits or cascade issues. Can code as much as I want without worrying about costs. This is much more than just code editing!
BM
Bjorn Melin
04/06/2025, 21:39
Been using this MCP daily for a couple of months now and onboarded a bunch of buddies onto it as well, a go to in my arsenal, great work!!
e
eszpee
10/09/2025, 19:02
Played with DesktopCommander today, replaced FileServer and continued my project. The diff-based editing is awesome - could continue longer in the same chat before hitting limits. Great!
n
naranbaz
04/07/2025, 15:58
It is a great tool, thank you, I like using it, as it gives claude an ability to do surgical edits, making it more like a human developer.
p
play365alltime
07/08/2025, 17:22
Life saver! I was paying for both Claude + Cursor which felt duplicated. This solves that perfectly. With MCP + web search, it writes code with the latest updates. So good when Cursor doesn't work or fast requests run out.
d
dependablecalls
09/09/2025, 18:38
I had 76 errors in 23 files in my Svelte 5 project. Used desktop-commander, sequentialthinking, and tree-sitter to fix them all. Never resolved type errors this quickly with AI before!
DP
Dhiego Pagotto
03/06/2025, 19:14
I'm the one who is grateful for this, which is the best MCP that exists!
U
Uloi
12/09/2025, 12:44
Just joined I absolutely love this thing
GF
Geoff F
08/08/2025, 19:06
happy command coding everyone - god I love this tool
C
Creedo
17/06/2025, 12:06
Wow, I've been building something similar. This makes my project so much easier to build now. I'm truly grateful. Thank you!
DP
Damian Pastorini
09/07/2025, 19:39
btw @DC Dmitry , thanks for such great MCP πŸ™‚ I'm loving it πŸ™‚
j
jesseburstrom5920
22/09/2025, 10:11
Switched from Windsurf to Claude MCP and love it! No more token limits or cascade issues. Can code as much as I want without worrying about costs. This is much more than just code editing!
BM
Bjorn Melin
04/06/2025, 21:39
Been using this MCP daily for a couple of months now and onboarded a bunch of buddies onto it as well, a go to in my arsenal, great work!!
e
eszpee
10/09/2025, 19:02
Played with DesktopCommander today, replaced FileServer and continued my project. The diff-based editing is awesome - could continue longer in the same chat before hitting limits. Great!

Try it out for yourself or browse our prompt library!

Explore Prompt Library

60+ prompts organized by workflow - from codebase exploration to task automation

Browse All Prompts

60+ workflows across development, automation, and optimization

Installation

MCP server for LLM clients

Installation Options

Bash Install

MacOSClaude Desktop

Run this in Terminal:

curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install.sh | bash

NPX Install

WindowsMacOSClaude Desktop

Run this in Terminal/Command Prompt:

npx @wonderwhy-er/desktop-commander@latest setup

Getting Started

Simply ask Claude or your LLM: "What can I do with Desktop Commander?" and you'll get guided tutorials and examples to discover what's possible.

Hear from our founders

Follow our team on YouTube and Medium to see our latest thinking

Join Our Community

Connect with other users and contributors to share ideas, get help, and contribute to the project.

GitHub

Star the repository, report issues, and contribute code.

Discord

Join our Discord server to chat with the community in real-time.

YouTube Channel

Follow us on YouTube and vibe code with us.

Frequently Asked Questions

Got questions? We've got answers. Find everything you need to know about Desktop Commander.

Need More Details?

View our comprehensive FAQ document on GitHub for more detailed answers and troubleshooting guides.

Complete FAQ on GitHub
\ No newline at end of file +
App Launching Soonβ€’Join Waitlist

Loading animation...

One Chat, Full Stack

Give AI direct access to your system and terminal

Transform your workflow today

From simple file operations to complex deployment pipelines, Desktop Commander handles it all through natural conversation

Install Desktop Commander and see how it handles these use cases

Tell us what you want to automate – we'll help set it up

Describe your repetitive tasks and we'll help you automate them with Desktop Commander. From deployment pipelines to file management workflows.

Custom automation β€’ No commitment

Trusted by the AI community

9.52/10
User Rating
26k+
Weekly Downloads
4.3k+
GitHub Stars
n
naranbaz
04/07/2025, 15:58
It is a great tool, thank you, I like using it, as it gives claude an ability to do surgical edits, making it more like a human developer.
p
play365alltime
07/08/2025, 17:22
Life saver! I was paying for both Claude + Cursor which felt duplicated. This solves that perfectly. With MCP + web search, it writes code with the latest updates. So good when Cursor doesn't work or fast requests run out.
d
dependablecalls
09/09/2025, 18:38
I had 76 errors in 23 files in my Svelte 5 project. Used desktop-commander, sequentialthinking, and tree-sitter to fix them all. Never resolved type errors this quickly with AI before!
DP
Dhiego Pagotto
03/06/2025, 19:14
I'm the one who is grateful for this, which is the best MCP that exists!
U
Uloi
12/09/2025, 12:44
Just joined I absolutely love this thing
GF
Geoff F
08/08/2025, 19:06
happy command coding everyone - god I love this tool
C
Creedo
17/06/2025, 12:06
Wow, I've been building something similar. This makes my project so much easier to build now. I'm truly grateful. Thank you!
DP
Damian Pastorini
09/07/2025, 19:39
btw @DC Dmitry , thanks for such great MCP πŸ™‚ I'm loving it πŸ™‚
j
jesseburstrom5920
22/09/2025, 10:11
Switched from Windsurf to Claude MCP and love it! No more token limits or cascade issues. Can code as much as I want without worrying about costs. This is much more than just code editing!
BM
Bjorn Melin
04/06/2025, 21:39
Been using this MCP daily for a couple of months now and onboarded a bunch of buddies onto it as well, a go to in my arsenal, great work!!
e
eszpee
10/09/2025, 19:02
Played with DesktopCommander today, replaced FileServer and continued my project. The diff-based editing is awesome - could continue longer in the same chat before hitting limits. Great!
n
naranbaz
04/07/2025, 15:58
It is a great tool, thank you, I like using it, as it gives claude an ability to do surgical edits, making it more like a human developer.
p
play365alltime
07/08/2025, 17:22
Life saver! I was paying for both Claude + Cursor which felt duplicated. This solves that perfectly. With MCP + web search, it writes code with the latest updates. So good when Cursor doesn't work or fast requests run out.
d
dependablecalls
09/09/2025, 18:38
I had 76 errors in 23 files in my Svelte 5 project. Used desktop-commander, sequentialthinking, and tree-sitter to fix them all. Never resolved type errors this quickly with AI before!
DP
Dhiego Pagotto
03/06/2025, 19:14
I'm the one who is grateful for this, which is the best MCP that exists!
U
Uloi
12/09/2025, 12:44
Just joined I absolutely love this thing
GF
Geoff F
08/08/2025, 19:06
happy command coding everyone - god I love this tool
C
Creedo
17/06/2025, 12:06
Wow, I've been building something similar. This makes my project so much easier to build now. I'm truly grateful. Thank you!
DP
Damian Pastorini
09/07/2025, 19:39
btw @DC Dmitry , thanks for such great MCP πŸ™‚ I'm loving it πŸ™‚
j
jesseburstrom5920
22/09/2025, 10:11
Switched from Windsurf to Claude MCP and love it! No more token limits or cascade issues. Can code as much as I want without worrying about costs. This is much more than just code editing!
BM
Bjorn Melin
04/06/2025, 21:39
Been using this MCP daily for a couple of months now and onboarded a bunch of buddies onto it as well, a go to in my arsenal, great work!!
e
eszpee
10/09/2025, 19:02
Played with DesktopCommander today, replaced FileServer and continued my project. The diff-based editing is awesome - could continue longer in the same chat before hitting limits. Great!

Try it out for yourself or browse our prompt library!

Explore Prompt Library

60+ prompts organized by workflow - from codebase exploration to task automation

Browse All Prompts

60+ workflows across development, automation, and optimization

Installation

MCP server for LLM clients

Installation Options

Bash Install

MacOSClaude Desktop

Run this in Terminal:

curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install.sh | bash

NPX Install

WindowsMacOSClaude Desktop

Run this in Terminal/Command Prompt:

npx @wonderwhy-er/desktop-commander@latest setup

Getting Started

Simply ask Claude or your LLM: "What can I do with Desktop Commander?" and you'll get guided tutorials and examples to discover what's possible.

Hear from our founders

Follow our team on YouTube and Medium to see our latest thinking

Join Our Community

Connect with other users and contributors to share ideas, get help, and contribute to the project.

GitHub

Star the repository, report issues, and contribute code.

Discord

Join our Discord server to chat with the community in real-time.

YouTube Channel

Follow us on YouTube and vibe code with us.

Frequently Asked Questions

Got questions? We've got answers. Find everything you need to know about Desktop Commander.

Need More Details?

View our comprehensive FAQ document on GitHub for more detailed answers and troubleshooting guides.

Complete FAQ on GitHub
\ No newline at end of file diff --git a/docs/library/index.html b/docs/library/index.html index 672315b7..e975883b 100644 --- a/docs/library/index.html +++ b/docs/library/index.html @@ -22,7 +22,7 @@
App Launching Soonβ€’Join Waitlist

Prompt Library

Discover 72+ curated prompts for Desktop Commander

Documentation

Organise my Downloads folder

Instant
Growing

Organise messy downloads folder into relevant subfolders.

Explain Codebase or Repository

Step-by-Step
Growing

Understand, analyze, and document your codebase - whether you're inheriting legacy code, joining a new project, or diving into unfamiliar technology.

Build A Feature from Scratch

Step-by-Step
Growing

Build a new feature for your app based on your existing codebase.

Extract Data from PDFs

Instant
New

Pull key information from PDF documents into structured format.

Set Up Cloud Infrastructure

Step-by-Step
New

Deploy production-ready cloud infrastructure from scratch using natural language. Define your stack and implement it step-by-step.

Set Up Local Development Environment

Instant
New

Configure complete local development environment with dependencies, databases, and development tools.

Generate Docker Configuration

Instant
New

Create optimized Docker setup with Dockerfile, docker-compose, and environment configurations for your project.

Build and Deploy Landing Page

Step-by-Step
New

Create a professional landing page with modern design and deploy it to a live server with proper hosting setup.

Manage Wordpress site in natural language

Step-by-Step
New

Install WP-CLI locally, establish SSH connection to your WordPress site, and manage your site remotely using command-line tools.

Clean Up Unused Code

Step-by-Step
Growing

Scan your codebase to find unused imports, dead functions, and redundant code that can be safely removed.

Automate Competitor Research

Step-by-Step
Emerging

Automate weekly competitive research and store your notes in one place.

Analyze My Data File

Instant
Emerging

Make sense of a data file that you have.

Build Personal Finance Tracker

Step-by-Step
Emerging

Create a complete web application from scratch and launch it locally in your browser.

Explain React Component Architecture

Instant
Emerging

Get a clear breakdown of how your React component works, including props flow, state management, and dependencies.

Create Knowledge Base Folder

Step-by-Step
Emerging

Create a strucutre for your local knowledge base.

Create Project Documentation

Step-by-Step
Emerging

Build structured knowledge repositories that capture the "why" behind your code - project specifications, architecture decisions, and technical rationale. Use them later for referring AI to your project and generate better results.

Set Up WordPress Environment

Step-by-Step
Emerging

Set up your development environment, install dependencies and configure required tools.

Create Team Onboarding Documentation

Step-by-Step
New

Generate comprehensive onboarding guide for new developers including setup, architecture overview, and contribution guidelines.

Create folder with images

Instant
New

Teach how to use Claude to create files and automate simple workflows.

Convert EDOC to DOC

Instant
New

Convert electronically signed documents on your computer.

Optimize Docker Setup

Step-by-Step
New

Generate production-ready Docker configuration tailored to your application's specific requirements and dependencies.

Build GitHub Issues Dashboard

Step-by-Step
New

Create a real-time dashboard for tracking and displaying GitHub issues.

Compare Config Files to Baseline

Instant
New

Detect configuration drift by comparing current configs to standards.

Update My CV/Resume

Instant
New

Quickly update your resume with new experience/skills.

Remove Background from Profile Picture

Instant
New

Get headshot without background for Linkedin or any other use.

Rename Bank Statements by Account

Instant
New

Fix messy financial document naming with intelligent renaming.

Find Large Receipts by Vendor

Instant
New

Locate and organize high-value receipts for expense tracking.

Consolidate Data Files into One

Instant
New

Extract and standardize data for analysis.

Get my IP address

Instant
New

Allows you to quickly get your IP address.

Analyze Error Handling Strategy

Instant
New

Understand and document the error handling and logging approaches used in your project.

Implement GitHub Issue

Step-by-Step
New

Create a working implementation for a specific GitHub issue or feature request.

Set Up New Project Structure

Step-by-Step
New

Create complete project setup with standard structure and configs.

Visualize Microservices Communication

Step-by-Step
New

Create visual diagrams showing how your microservices interact, data flows, and potential bottlenecks.

Document System Architecture

Step-by-Step
New

Get a comprehensive overview of your system's architecture and design patterns.

Generate Dev Onboarding Guide

Step-by-Step
New

Create step-by-step documentation for new developers joining your project.

Assess Scalability Challenges

Step-by-Step
New

Identify potential scaling and debugging bottlenecks in your system.

Document Dependencies and Tools

Instant
New

Get a comprehensive overview of all tools and libraries used in your project.

Plan Migration Strategy

Step-by-Step
New

Create a comprehensive plan for migrating your codebase to newer technologies.

Create Git History Presentation

Instant
New

Generate visual presentations of your team's recent development activity.

Find Error Patterns in Logs

Step-by-Step
New

Analyze log files to identify and summarize system issues.

Merge Two PDFs

Instant
New

Combine multiple PDF documents into one file.

Convert HEIC to PNG

Instant
New

Convert iPhone standard photo file type into universal PNG format.

Batch Convert and Rename Images

Instant
New

Process multiple images with format conversion and intelligent renaming.

Organize PDF Invoices by Date

Instant
New

Automatically sort and organize PDF documents by dates extracted from their content.

Remove Duplicate Contacts from Spreadsheet

Instant
New

Clean up your contact lists by automatically identifying and removing duplicate entries.

Find All TODO Comments

Instant
New

Locate and report all TODO items across your entire codebase.

Generate Tests for Missing Coverage

Step-by-Step
New

Create test files for modules that lack proper testing.

Document API endpoints

Instant
New

Transform your API endpoints into comprehensive documentation with all parameters, responses, and examples.

Assess Technical Debt

Step-by-Step
New

Get a comprehensive analysis of technical debt with prioritized remediation plan and effort estimates.

Assess Project's Security

Step-by-Step
New

Identify and document all security measures implemented in your codebase.

Find Invoices and Move Them to Folder

Instant
New

Organize your invoices into one folder that you can later share with accounting or use for tax reports.

Visualize Project Architecture

Instant
New

Create visual diagrams showing your system's components, dependencies, and data flow patterns.

Generate Architecture Diagram

Instant
New

Automatically generate Mermaid diagrams from your codebase structure and component relationships.

Document REST API Endpoints

Instant
New

Extract and document all REST API endpoints with parameters, responses, and usage examples.

Document GraphQL Schema

Instant
New

Analyze and document GraphQL endpoints, queries, mutations, and schema definitions.

Visualize Database Schema

Instant
New

Generate visual database schema diagrams showing tables, relationships, and constraints.

Create Database Schema Diagram

Instant
New

Generate Mermaid ER diagrams from your database structure and foreign key relationships.

Explain Docker Configuration

Instant
New

Analyze and document Docker setup, containers, networks, and deployment configurations.

Visualize Terraform Architecture

Instant
New

Create diagrams showing Terraform infrastructure resources, dependencies, and deployment topology.

Document Ansible Configuration

Instant
New

Explain Ansible playbooks, roles, and automation workflows with clear documentation.

Explain CI/CD Pipeline

Instant
New

Document GitHub Actions workflows, triggers, and deployment processes with optimization suggestions.

Debug Remote Server Errors

Instant
New

Investigate and resolve server errors by analyzing logs, configurations, and system status.

Optimize Database Schema

Instant
New

Analyze database design for performance issues, indexing opportunities, and structural improvements.

Set Up MySQL Database

Instant
New

Install and configure MySQL server with optimized settings and security configurations.

Set Up PostgreSQL Database

Instant
New

Install and configure PostgreSQL server with performance tuning and security best practices.

Set Up MongoDB Database

Instant
New

Install and configure MongoDB server with replica sets, sharding, and security configurations.

Set Up Redis Server

Instant
New

Install and configure Redis server for caching, sessions, and high-performance data storage.

Set Up GitHub Actions CI/CD

Instant
New

Create automated testing pipeline that runs tests on every push with proper workflow configuration.

Audit Authentication Security

Instant
New

omprehensive security review of authentication systems with vulnerability assessment and recommendations.

Analyze Test Coverage Gaps

Instant
New

Review existing tests and identify missing coverage areas with specific recommendations for improvement.

Set up Google Analytics and analyze traffic

Step-by-Step
New

Analyze your traffic data from Google Analytics in natural language. This prompt will help you install prerequisites, configure Google Cloud, enable GA4 APIs, authenticate, create a Python virtual environment, and run a test analysis script. Covers macOS, Linux, and Windows with package-manager-aware steps, pre-flight checks, and troubleshooting.

Setting up Posthog Analytics with custom events

Step-by-Step
New

Set up PostHog web analytics with event tracking, autocapture, reverse proxy configuration, and privacy compliance across marketing sites and web apps.

\ No newline at end of file +
App Launching Soonβ€’Join Waitlist

Prompt Library

Discover 72+ curated prompts for Desktop Commander

Documentation

Organise my Downloads folder

Instant
Growing

Organise messy downloads folder into relevant subfolders.

Explain Codebase or Repository

Step-by-Step
Growing

Understand, analyze, and document your codebase - whether you're inheriting legacy code, joining a new project, or diving into unfamiliar technology.

Build A Feature from Scratch

Step-by-Step
Growing

Build a new feature for your app based on your existing codebase.

Extract Data from PDFs

Instant
New

Pull key information from PDF documents into structured format.

Set Up Cloud Infrastructure

Step-by-Step
New

Deploy production-ready cloud infrastructure from scratch using natural language. Define your stack and implement it step-by-step.

Set Up Local Development Environment

Instant
New

Configure complete local development environment with dependencies, databases, and development tools.

Generate Docker Configuration

Instant
New

Create optimized Docker setup with Dockerfile, docker-compose, and environment configurations for your project.

Build and Deploy Landing Page

Step-by-Step
New

Create a professional landing page with modern design and deploy it to a live server with proper hosting setup.

Manage Wordpress site in natural language

Step-by-Step
New

Install WP-CLI locally, establish SSH connection to your WordPress site, and manage your site remotely using command-line tools.

Clean Up Unused Code

Step-by-Step
Growing

Scan your codebase to find unused imports, dead functions, and redundant code that can be safely removed.

Automate Competitor Research

Step-by-Step
Emerging

Automate weekly competitive research and store your notes in one place.

Analyze My Data File

Instant
Emerging

Make sense of a data file that you have.

Build Personal Finance Tracker

Step-by-Step
Emerging

Create a complete web application from scratch and launch it locally in your browser.

Explain React Component Architecture

Instant
Emerging

Get a clear breakdown of how your React component works, including props flow, state management, and dependencies.

Create Knowledge Base Folder

Step-by-Step
Emerging

Create a strucutre for your local knowledge base.

Create Project Documentation

Step-by-Step
Emerging

Build structured knowledge repositories that capture the "why" behind your code - project specifications, architecture decisions, and technical rationale. Use them later for referring AI to your project and generate better results.

Set Up WordPress Environment

Step-by-Step
Emerging

Set up your development environment, install dependencies and configure required tools.

Create Team Onboarding Documentation

Step-by-Step
New

Generate comprehensive onboarding guide for new developers including setup, architecture overview, and contribution guidelines.

Create folder with images

Instant
New

Teach how to use Claude to create files and automate simple workflows.

Convert EDOC to DOC

Instant
New

Convert electronically signed documents on your computer.

Optimize Docker Setup

Step-by-Step
New

Generate production-ready Docker configuration tailored to your application's specific requirements and dependencies.

Build GitHub Issues Dashboard

Step-by-Step
New

Create a real-time dashboard for tracking and displaying GitHub issues.

Compare Config Files to Baseline

Instant
New

Detect configuration drift by comparing current configs to standards.

Update My CV/Resume

Instant
New

Quickly update your resume with new experience/skills.

Remove Background from Profile Picture

Instant
New

Get headshot without background for Linkedin or any other use.

Rename Bank Statements by Account

Instant
New

Fix messy financial document naming with intelligent renaming.

Find Large Receipts by Vendor

Instant
New

Locate and organize high-value receipts for expense tracking.

Consolidate Data Files into One

Instant
New

Extract and standardize data for analysis.

Get my IP address

Instant
New

Allows you to quickly get your IP address.

Analyze Error Handling Strategy

Instant
New

Understand and document the error handling and logging approaches used in your project.

Implement GitHub Issue

Step-by-Step
New

Create a working implementation for a specific GitHub issue or feature request.

Set Up New Project Structure

Step-by-Step
New

Create complete project setup with standard structure and configs.

Visualize Microservices Communication

Step-by-Step
New

Create visual diagrams showing how your microservices interact, data flows, and potential bottlenecks.

Document System Architecture

Step-by-Step
New

Get a comprehensive overview of your system's architecture and design patterns.

Generate Dev Onboarding Guide

Step-by-Step
New

Create step-by-step documentation for new developers joining your project.

Assess Scalability Challenges

Step-by-Step
New

Identify potential scaling and debugging bottlenecks in your system.

Document Dependencies and Tools

Instant
New

Get a comprehensive overview of all tools and libraries used in your project.

Plan Migration Strategy

Step-by-Step
New

Create a comprehensive plan for migrating your codebase to newer technologies.

Create Git History Presentation

Instant
New

Generate visual presentations of your team's recent development activity.

Find Error Patterns in Logs

Step-by-Step
New

Analyze log files to identify and summarize system issues.

Merge Two PDFs

Instant
New

Combine multiple PDF documents into one file.

Convert HEIC to PNG

Instant
New

Convert iPhone standard photo file type into universal PNG format.

Batch Convert and Rename Images

Instant
New

Process multiple images with format conversion and intelligent renaming.

Organize PDF Invoices by Date

Instant
New

Automatically sort and organize PDF documents by dates extracted from their content.

Remove Duplicate Contacts from Spreadsheet

Instant
New

Clean up your contact lists by automatically identifying and removing duplicate entries.

Find All TODO Comments

Instant
New

Locate and report all TODO items across your entire codebase.

Generate Tests for Missing Coverage

Step-by-Step
New

Create test files for modules that lack proper testing.

Document API endpoints

Instant
New

Transform your API endpoints into comprehensive documentation with all parameters, responses, and examples.

Assess Technical Debt

Step-by-Step
New

Get a comprehensive analysis of technical debt with prioritized remediation plan and effort estimates.

Assess Project's Security

Step-by-Step
New

Identify and document all security measures implemented in your codebase.

Find Invoices and Move Them to Folder

Instant
New

Organize your invoices into one folder that you can later share with accounting or use for tax reports.

Visualize Project Architecture

Instant
New

Create visual diagrams showing your system's components, dependencies, and data flow patterns.

Generate Architecture Diagram

Instant
New

Automatically generate Mermaid diagrams from your codebase structure and component relationships.

Document REST API Endpoints

Instant
New

Extract and document all REST API endpoints with parameters, responses, and usage examples.

Document GraphQL Schema

Instant
New

Analyze and document GraphQL endpoints, queries, mutations, and schema definitions.

Visualize Database Schema

Instant
New

Generate visual database schema diagrams showing tables, relationships, and constraints.

Create Database Schema Diagram

Instant
New

Generate Mermaid ER diagrams from your database structure and foreign key relationships.

Explain Docker Configuration

Instant
New

Analyze and document Docker setup, containers, networks, and deployment configurations.

Visualize Terraform Architecture

Instant
New

Create diagrams showing Terraform infrastructure resources, dependencies, and deployment topology.

Document Ansible Configuration

Instant
New

Explain Ansible playbooks, roles, and automation workflows with clear documentation.

Explain CI/CD Pipeline

Instant
New

Document GitHub Actions workflows, triggers, and deployment processes with optimization suggestions.

Debug Remote Server Errors

Instant
New

Investigate and resolve server errors by analyzing logs, configurations, and system status.

Optimize Database Schema

Instant
New

Analyze database design for performance issues, indexing opportunities, and structural improvements.

Set Up MySQL Database

Instant
New

Install and configure MySQL server with optimized settings and security configurations.

Set Up PostgreSQL Database

Instant
New

Install and configure PostgreSQL server with performance tuning and security best practices.

Set Up MongoDB Database

Instant
New

Install and configure MongoDB server with replica sets, sharding, and security configurations.

Set Up Redis Server

Instant
New

Install and configure Redis server for caching, sessions, and high-performance data storage.

Set Up GitHub Actions CI/CD

Instant
New

Create automated testing pipeline that runs tests on every push with proper workflow configuration.

Audit Authentication Security

Instant
New

omprehensive security review of authentication systems with vulnerability assessment and recommendations.

Analyze Test Coverage Gaps

Instant
New

Review existing tests and identify missing coverage areas with specific recommendations for improvement.

Set up Google Analytics and analyze traffic

Step-by-Step
New

Analyze your traffic data from Google Analytics in natural language. This prompt will help you install prerequisites, configure Google Cloud, enable GA4 APIs, authenticate, create a Python virtual environment, and run a test analysis script. Covers macOS, Linux, and Windows with package-manager-aware steps, pre-flight checks, and troubleshooting.

Setting up Posthog Analytics with custom events

Step-by-Step
New

Set up PostHog web analytics with event tracking, autocapture, reverse proxy configuration, and privacy compliance across marketing sites and web apps.

\ No newline at end of file diff --git a/docs/library/prompts/analyze-error-handling-strategy/index.html b/docs/library/prompts/analyze-error-handling-strategy/index.html index 8ca80257..a079c566 100644 --- a/docs/library/prompts/analyze-error-handling-strategy/index.html +++ b/docs/library/prompts/analyze-error-handling-strategy/index.html @@ -22,7 +22,7 @@

Analyze Error Handling Strategy

Instant output
Explore codebase
Write documentation
Optimize code
DC team
New

Description

Understand and document the error handling and logging approaches used in your project.

Target Roles

Developers

Complete Prompt

What kind of error handling and logging strategies does the project at [project path] use? Document the patterns and suggest improvements.
\ No newline at end of file +

Analyze Error Handling Strategy

Instant output
Explore codebase
Write documentation
Optimize code
DC team
New

Description

Understand and document the error handling and logging approaches used in your project.

Target Roles

Developers

Complete Prompt

What kind of error handling and logging strategies does the project at [project path] use? Document the patterns and suggest improvements.
\ No newline at end of file diff --git a/docs/library/prompts/analyze-my-data-file/index.html b/docs/library/prompts/analyze-my-data-file/index.html index 946f445f..f406d5c6 100644 --- a/docs/library/prompts/analyze-my-data-file/index.html +++ b/docs/library/prompts/analyze-my-data-file/index.html @@ -22,7 +22,7 @@

Analyze My Data File

Verified by DC team
Instant output
Analyze data
DC team
Emerging

Description

Make sense of a data file that you have.

Target Roles

Professionals
Data analysts

Complete Prompt

Look for the file called 'filename' in my [folder]. Analyze this file and tell me: what data it contains, key patterns or insights, and create a simple summary report.
\ No newline at end of file +

Analyze My Data File

Verified by DC team
Instant output
Analyze data
DC team
Emerging

Description

Make sense of a data file that you have.

Target Roles

Professionals
Data analysts

Complete Prompt

Look for the file called 'filename' in my [folder]. Analyze this file and tell me: what data it contains, key patterns or insights, and create a simple summary report.
\ No newline at end of file diff --git a/docs/library/prompts/analyze-test-coverage-gaps/index.html b/docs/library/prompts/analyze-test-coverage-gaps/index.html index 1579b1bc..e885dbf6 100644 --- a/docs/library/prompts/analyze-test-coverage-gaps/index.html +++ b/docs/library/prompts/analyze-test-coverage-gaps/index.html @@ -22,7 +22,7 @@

Analyze Test Coverage Gaps

Instant output
Optimize code
Explore codebase
serg33v
New

Description

Review existing tests and identify missing coverage areas with specific recommendations for improvement.

Target Roles

Developers
DevOps

Complete Prompt

Review all tests in [project path] and provide a summary of what's covered and what needs additional test coverage.
\ No newline at end of file +

Analyze Test Coverage Gaps

Instant output
Optimize code
Explore codebase
serg33v
New

Description

Review existing tests and identify missing coverage areas with specific recommendations for improvement.

Target Roles

Developers
DevOps

Complete Prompt

Review all tests in [project path] and provide a summary of what's covered and what needs additional test coverage.
\ No newline at end of file diff --git a/docs/library/prompts/assess-projects-security/index.html b/docs/library/prompts/assess-projects-security/index.html index 65e7f4ea..45444bad 100644 --- a/docs/library/prompts/assess-projects-security/index.html +++ b/docs/library/prompts/assess-projects-security/index.html @@ -22,7 +22,7 @@

Assess Project's Security

Step-by-step flow
Optimize code
Explore codebase
DC team
New

Description

Identify and document all security measures implemented in your codebase.

Target Roles

Developers
Vibe Coders
DevOps

Complete Prompt

# Project Security Analysis Automation
+    

Assess Project's Security

Step-by-step flow
Optimize code
Explore codebase
DC team
New

Description

Identify and document all security measures implemented in your codebase.

Target Roles

Developers
Vibe Coders
DevOps

Complete Prompt

# Project Security Analysis Automation
 
 ## Mission Statement
 You are an expert cybersecurity analyst and penetration testing specialist who conducts comprehensive security assessments. Your role is to identify security mechanisms, vulnerabilities, and provide actionable security recommendations using Desktop Commander capabilities for thorough project analysis.
@@ -286,4 +286,4 @@
 3. **Threat Analysis** - Attack vectors, exploitation scenarios, and risk prioritization
 4. **Remediation Planning** - Actionable security improvements with implementation roadmap
 
-Let's identify and strengthen your project's security posture together!
\ No newline at end of file +Let's identify and strengthen your project's security posture together!
\ No newline at end of file diff --git a/docs/library/prompts/assess-scalability-challenges/index.html b/docs/library/prompts/assess-scalability-challenges/index.html index c0e8f58e..b6388032 100644 --- a/docs/library/prompts/assess-scalability-challenges/index.html +++ b/docs/library/prompts/assess-scalability-challenges/index.html @@ -22,7 +22,7 @@

Assess Scalability Challenges

Step-by-step flow
Write documentation
Explore codebase
Optimize code
DC team
New

Description

Identify potential scaling and debugging bottlenecks in your system.

Target Roles

Developers
DevOps

Complete Prompt

# Codebase Scalability & Debugging Analysis
+    

Assess Scalability Challenges

Step-by-step flow
Write documentation
Explore codebase
Optimize code
DC team
New

Description

Identify potential scaling and debugging bottlenecks in your system.

Target Roles

Developers
DevOps

Complete Prompt

# Codebase Scalability & Debugging Analysis
 
 ## Mission Statement
 You are an expert software architect and code quality specialist who identifies scalability bottlenecks, debugging challenges, and maintenance issues in codebases. Your role is to provide comprehensive technical debt analysis using systematic code examination and Desktop Commander's local file system capabilities.
@@ -264,4 +264,4 @@
 
 Once configured, start each analysis session with:
 
-**"Begin scalability analysis. Read scalability-analysis-progress.md for project context and current phase, then continue the code analysis."**
\ No newline at end of file +**"Begin scalability analysis. Read scalability-analysis-progress.md for project context and current phase, then continue the code analysis."**
\ No newline at end of file diff --git a/docs/library/prompts/assess-technical-debt/index.html b/docs/library/prompts/assess-technical-debt/index.html index e882f307..9d52d061 100644 --- a/docs/library/prompts/assess-technical-debt/index.html +++ b/docs/library/prompts/assess-technical-debt/index.html @@ -22,7 +22,7 @@

Assess Technical Debt

Step-by-step flow
Write documentation
Optimize code
DC team
New

Description

Get a comprehensive analysis of technical debt with prioritized remediation plan and effort estimates.

Target Roles

Developers
Vibe Coders
DevOps

Complete Prompt

# Technical Debt Analysis & Remediation Automation
+    

Assess Technical Debt

Step-by-step flow
Write documentation
Optimize code
DC team
New

Description

Get a comprehensive analysis of technical debt with prioritized remediation plan and effort estimates.

Target Roles

Developers
Vibe Coders
DevOps

Complete Prompt

# Technical Debt Analysis & Remediation Automation
 
 ## Mission Statement
 You are an expert software architect and technical debt specialist who systematically analyzes codebases to identify, categorize, and prioritize technical debt. Your role is to create actionable remediation roadmaps using Desktop Commander's local file analysis capabilities across multiple focused sessions.
@@ -229,4 +229,4 @@
 - **Pattern matching**: `grep` for specific code pattern detection
 - **Dependency analysis**: Package file parsing and vulnerability checking
 
-**Ready to start? Please provide your project root path and I'll begin with the Discovery Phase.**
\ No newline at end of file +**Ready to start? Please provide your project root path and I'll begin with the Discovery Phase.**
\ No newline at end of file diff --git a/docs/library/prompts/audit-authentication-security/index.html b/docs/library/prompts/audit-authentication-security/index.html index 508697e9..994026d4 100644 --- a/docs/library/prompts/audit-authentication-security/index.html +++ b/docs/library/prompts/audit-authentication-security/index.html @@ -22,7 +22,7 @@

Audit Authentication Security

Instant output
Optimize code
serg33v
New

Description

omprehensive security review of authentication systems with vulnerability assessment and recommendations.

Target Roles

Developers
DevOps

Complete Prompt

Review the authentication service at [project path] and provide a security audit summary with vulnerabilities and recommendations.
\ No newline at end of file +

Audit Authentication Security

Instant output
Optimize code
serg33v
New

Description

omprehensive security review of authentication systems with vulnerability assessment and recommendations.

Target Roles

Developers
DevOps

Complete Prompt

Review the authentication service at [project path] and provide a security audit summary with vulnerabilities and recommendations.
\ No newline at end of file diff --git a/docs/library/prompts/automate-competitor-research/index.html b/docs/library/prompts/automate-competitor-research/index.html index e5d7e2c2..22d03a7d 100644 --- a/docs/library/prompts/automate-competitor-research/index.html +++ b/docs/library/prompts/automate-competitor-research/index.html @@ -22,7 +22,7 @@

Automate Competitor Research

Verified by DC team
Step-by-step flow
Optimize workflow
Automate tasks
DC team
Emerging

Description

Automate weekly competitive research and store your notes in one place.

Target Roles

Content makers
Professionals

Complete Prompt

# Weekly Competitor Research Automation
+    

Automate Competitor Research

Verified by DC team
Step-by-step flow
Optimize workflow
Automate tasks
DC team
Emerging

Description

Automate weekly competitive research and store your notes in one place.

Target Roles

Content makers
Professionals

Complete Prompt

# Weekly Competitor Research Automation
 
 ## Mission Statement
 You are an expert competitive intelligence researcher specializing in comprehensive, systematic analysis of business competitors. Your role is to conduct thorough weekly research, generate professional reports, and maintain organized documentation on my computer using Desktop Commander capabilities.
@@ -259,4 +259,4 @@
 - Refine competitor profiles with new intelligence
 - Adjust focus areas based on market developments
 - Optimize report format based on stakeholder feedback
-- Track research ROI and strategic value delivered
\ No newline at end of file +- Track research ROI and strategic value delivered
\ No newline at end of file diff --git a/docs/library/prompts/batch-convert-and-rename-images/index.html b/docs/library/prompts/batch-convert-and-rename-images/index.html index 9cfad3e6..af82a2b7 100644 --- a/docs/library/prompts/batch-convert-and-rename-images/index.html +++ b/docs/library/prompts/batch-convert-and-rename-images/index.html @@ -22,7 +22,7 @@

Batch Convert and Rename Images

Verified by DC team
Instant output
Organize files
Optimize workflow
DC team
New

Description

Process multiple images with format conversion and intelligent renaming.

Target Roles

Developers
Vibe Coders
Content makers
Data analysts
Professionals

Complete Prompt

Convert all the images in this directory [folder path] to PNG format, and rename them to use dates from the EXIF data.
\ No newline at end of file +

Batch Convert and Rename Images

Verified by DC team
Instant output
Organize files
Optimize workflow
DC team
New

Description

Process multiple images with format conversion and intelligent renaming.

Target Roles

Developers
Vibe Coders
Content makers
Data analysts
Professionals

Complete Prompt

Convert all the images in this directory [folder path] to PNG format, and rename them to use dates from the EXIF data.
\ No newline at end of file diff --git a/docs/library/prompts/build-a-feature-from-scratch/index.html b/docs/library/prompts/build-a-feature-from-scratch/index.html index f4839b0d..fedef835 100644 --- a/docs/library/prompts/build-a-feature-from-scratch/index.html +++ b/docs/library/prompts/build-a-feature-from-scratch/index.html @@ -22,7 +22,7 @@

Build A Feature from Scratch

Verified by DC team
Step-by-step flow
Build features and products
DC team
Growing

Description

Build a new feature for your app based on your existing codebase.

Target Roles

Developers
Vibe Coders

Complete Prompt

# Feature Development Assistant
+    

Build A Feature from Scratch

Verified by DC team
Step-by-step flow
Build features and products
DC team
Growing

Description

Build a new feature for your app based on your existing codebase.

Target Roles

Developers
Vibe Coders

Complete Prompt

# Feature Development Assistant
 
 ## Mission Statement
 You are an expert full-stack developer who builds complete features from concept to implementation using Desktop Commander's file management capabilities. Your role is to analyze existing codebases, design feature architecture, implement all necessary code, and integrate seamlessly with existing systems.
@@ -348,4 +348,4 @@
 
 I'll analyze your existing codebase, design the feature architecture, and implement everything systematically while showing you progress at each step.
 
-**Ready to build your feature? Share your requirements and I'll start with Phase 1: Analysis & Design!**
\ No newline at end of file +**Ready to build your feature? Share your requirements and I'll start with Phase 1: Analysis & Design!**
\ No newline at end of file diff --git a/docs/library/prompts/build-and-deploy-landing-page/index.html b/docs/library/prompts/build-and-deploy-landing-page/index.html index 0f55d003..aa9b3be5 100644 --- a/docs/library/prompts/build-and-deploy-landing-page/index.html +++ b/docs/library/prompts/build-and-deploy-landing-page/index.html @@ -22,7 +22,7 @@

Build and Deploy Landing Page

Step-by-step flow
Build features and products
Deploy
serg33v
New

Description

Create a professional landing page with modern design and deploy it to a live server with proper hosting setup.

Target Roles

Vibe Coders
Developers
Content makers

Complete Prompt

# Modern Landing Page Development & Deployment Automation
+    

Build and Deploy Landing Page

Step-by-step flow
Build features and products
Deploy
serg33v
New

Description

Create a professional landing page with modern design and deploy it to a live server with proper hosting setup.

Target Roles

Vibe Coders
Developers
Content makers

Complete Prompt

# Modern Landing Page Development & Deployment Automation
 
 ## Mission Statement
 You are an expert web developer and DevOps specialist who creates modern, high-converting landing pages with professional deployment pipelines. Your role is to deliver complete web solutions from design to production using Desktop Commander capabilities for local development and deployment automation.
@@ -316,4 +316,4 @@
 - **Documentation**: `/docs/` contains setup guides and deployment instructions
 - **Configuration**: Root level contains build tools and project settings
 
-**Success Indicator**: You have a professional, fast-loading landing page that converts visitors into customers, deployed securely with modern web standards.
\ No newline at end of file +**Success Indicator**: You have a professional, fast-loading landing page that converts visitors into customers, deployed securely with modern web standards.
\ No newline at end of file diff --git a/docs/library/prompts/build-github-issues-dashboard/index.html b/docs/library/prompts/build-github-issues-dashboard/index.html index dfef6766..0ffff1c5 100644 --- a/docs/library/prompts/build-github-issues-dashboard/index.html +++ b/docs/library/prompts/build-github-issues-dashboard/index.html @@ -22,7 +22,7 @@

Build GitHub Issues Dashboard

Step-by-step flow
Optimize code
DC team
New

Description

Create a real-time dashboard for tracking and displaying GitHub issues.

Target Roles

Developers
DevOps

Complete Prompt

# GitHub Issues Wall Display Application
+    

Build GitHub Issues Dashboard

Step-by-step flow
Optimize code
DC team
New

Description

Create a real-time dashboard for tracking and displaying GitHub issues.

Target Roles

Developers
DevOps

Complete Prompt

# GitHub Issues Wall Display Application
 
 ## Mission Statement
 You are an expert full-stack web developer who specializes in creating data visualization dashboards and real-time web applications. Your role is to build a comprehensive GitHub issues monitoring system optimized for wall displays, with real-time updates, visual indicators, and responsive design using Desktop Commander's local development capabilities.
@@ -338,4 +338,4 @@
 
 I'll then create the `github-display-progress.md` file with these settings and begin Phase 1: Project Setup & Architecture Planning.
 
-Does this approach align with your needs, or would you like me to adjust anything before we start building your GitHub issues wall display?
\ No newline at end of file +Does this approach align with your needs, or would you like me to adjust anything before we start building your GitHub issues wall display?
\ No newline at end of file diff --git a/docs/library/prompts/build-personal-finance-tracker/index.html b/docs/library/prompts/build-personal-finance-tracker/index.html index 88baacb6..d95ccaa1 100644 --- a/docs/library/prompts/build-personal-finance-tracker/index.html +++ b/docs/library/prompts/build-personal-finance-tracker/index.html @@ -22,7 +22,7 @@

Build Personal Finance Tracker

Verified by DC team
Step-by-step flow
Build features and products
DC team
Emerging

Description

Create a complete web application from scratch and launch it locally in your browser.

Target Roles

Vibe Coders

Complete Prompt

Build me a personal finance tracker web app that lets me [add expenses, categorize spending, see monthly summaries]. Create all the necessary HTML, CSS, and JavaScript files. Do not overcomplicate it, make it simple. Set up a local server and open the app in my browser when it's ready. Make it look professional and fully functional. Open it in browser when ready.
\ No newline at end of file +

Build Personal Finance Tracker

Verified by DC team
Step-by-step flow
Build features and products
DC team
Emerging

Description

Create a complete web application from scratch and launch it locally in your browser.

Target Roles

Vibe Coders

Complete Prompt

Build me a personal finance tracker web app that lets me [add expenses, categorize spending, see monthly summaries]. Create all the necessary HTML, CSS, and JavaScript files. Do not overcomplicate it, make it simple. Set up a local server and open the app in my browser when it's ready. Make it look professional and fully functional. Open it in browser when ready.
\ No newline at end of file diff --git a/docs/library/prompts/clean-up-unused-code/index.html b/docs/library/prompts/clean-up-unused-code/index.html index db16db0a..f276c817 100644 --- a/docs/library/prompts/clean-up-unused-code/index.html +++ b/docs/library/prompts/clean-up-unused-code/index.html @@ -22,7 +22,7 @@

Clean Up Unused Code

Step-by-step flow
Explore codebase
Optimize code
DC team
Growing

Description

Scan your codebase to find unused imports, dead functions, and redundant code that can be safely removed.

Target Roles

Developers
Vibe Coders

Complete Prompt

# Code Analysis & Cleanup Workflow
+    

Clean Up Unused Code

Step-by-step flow
Explore codebase
Optimize code
DC team
Growing

Description

Scan your codebase to find unused imports, dead functions, and redundant code that can be safely removed.

Target Roles

Developers
Vibe Coders

Complete Prompt

# Code Analysis & Cleanup Workflow
 
 ## Important: Multi-Chat Workflow
 
@@ -196,4 +196,4 @@
 4. **Present cleanup plan** with step-by-step safety protocols
 5. **Execute approved changes** with full backup and rollback capabilities
 
-Ready to help you clean up your codebase safely and effectively!
\ No newline at end of file +Ready to help you clean up your codebase safely and effectively!
\ No newline at end of file diff --git a/docs/library/prompts/compare-config-files-to-baseline/index.html b/docs/library/prompts/compare-config-files-to-baseline/index.html index 7a576e1e..0236c288 100644 --- a/docs/library/prompts/compare-config-files-to-baseline/index.html +++ b/docs/library/prompts/compare-config-files-to-baseline/index.html @@ -22,7 +22,7 @@

Compare Config Files to Baseline

Instant output
Explore codebase
DC team
New

Description

Detect configuration drift by comparing current configs to standards.

Target Roles

Developers

Complete Prompt

Compare all config files in [directory] against baseline and report any differences that might cause issues.
\ No newline at end of file +

Compare Config Files to Baseline

Instant output
Explore codebase
DC team
New

Description

Detect configuration drift by comparing current configs to standards.

Target Roles

Developers

Complete Prompt

Compare all config files in [directory] against baseline and report any differences that might cause issues.
\ No newline at end of file diff --git a/docs/library/prompts/consolidate-data-files-into-one/index.html b/docs/library/prompts/consolidate-data-files-into-one/index.html index 073bd12e..5fe03293 100644 --- a/docs/library/prompts/consolidate-data-files-into-one/index.html +++ b/docs/library/prompts/consolidate-data-files-into-one/index.html @@ -22,7 +22,7 @@

Consolidate Data Files into One

Instant output
Organize files
Automate tasks
Analyze data
Optimize workflow
DC team
New

Description

Extract and standardize data for analysis.

Target Roles

Data analysts

Complete Prompt

Combine all Excel/CSV files in [folder] that have [customer data] and merge them into one standardized spreadsheet.
\ No newline at end of file +

Consolidate Data Files into One

Instant output
Organize files
Automate tasks
Analyze data
Optimize workflow
DC team
New

Description

Extract and standardize data for analysis.

Target Roles

Data analysts

Complete Prompt

Combine all Excel/CSV files in [folder] that have [customer data] and merge them into one standardized spreadsheet.
\ No newline at end of file diff --git a/docs/library/prompts/convert-edoc-to-doc/index.html b/docs/library/prompts/convert-edoc-to-doc/index.html index 6ad29810..41a94399 100644 --- a/docs/library/prompts/convert-edoc-to-doc/index.html +++ b/docs/library/prompts/convert-edoc-to-doc/index.html @@ -22,7 +22,7 @@

Convert EDOC to DOC

Verified by DC team
Instant output
Organize files
Optimize workflow
Automate tasks
DC team
New

Description

Convert electronically signed documents on your computer.

Target Roles

Developers
Vibe Coders
Content makers
Data analysts
Professionals

Complete Prompt

Find this file: [file name and/or location]. Convert this EDOC file to a standard DOC format that I can edit in Microsoft Word. Open the file when you are done.
\ No newline at end of file +

Convert EDOC to DOC

Verified by DC team
Instant output
Organize files
Optimize workflow
Automate tasks
DC team
New

Description

Convert electronically signed documents on your computer.

Target Roles

Developers
Vibe Coders
Content makers
Data analysts
Professionals

Complete Prompt

Find this file: [file name and/or location]. Convert this EDOC file to a standard DOC format that I can edit in Microsoft Word. Open the file when you are done.
\ No newline at end of file diff --git a/docs/library/prompts/convert-heic-to-png/index.html b/docs/library/prompts/convert-heic-to-png/index.html index 1cccd5bc..3cbf6132 100644 --- a/docs/library/prompts/convert-heic-to-png/index.html +++ b/docs/library/prompts/convert-heic-to-png/index.html @@ -22,7 +22,7 @@

Convert HEIC to PNG

Verified by DC team
Instant output
Organize files
Optimize workflow
Automate tasks
DC team
New

Description

Convert iPhone standard photo file type into universal PNG format.

Target Roles

Professionals
Data analysts
Content makers

Complete Prompt

Look for the file called 'filename' in my [folder]. Convert its HEIC format to PNG format. Keep the original file and create converted version. Open the folder with photos when you are done.
\ No newline at end of file +

Convert HEIC to PNG

Verified by DC team
Instant output
Organize files
Optimize workflow
Automate tasks
DC team
New

Description

Convert iPhone standard photo file type into universal PNG format.

Target Roles

Professionals
Data analysts
Content makers

Complete Prompt

Look for the file called 'filename' in my [folder]. Convert its HEIC format to PNG format. Keep the original file and create converted version. Open the folder with photos when you are done.
\ No newline at end of file diff --git a/docs/library/prompts/create-database-schema-diagram/index.html b/docs/library/prompts/create-database-schema-diagram/index.html index 77749416..ba64a829 100644 --- a/docs/library/prompts/create-database-schema-diagram/index.html +++ b/docs/library/prompts/create-database-schema-diagram/index.html @@ -22,7 +22,7 @@

Create Database Schema Diagram

Instant output
Explore codebase
Write documentation
serg33v
New

Description

Generate Mermaid ER diagrams from your database structure and foreign key relationships.

Target Roles

Developers
DevOps

Complete Prompt

Create a Mermaid ER diagram for the database schema at [project path]. Show all tables and relationships.
\ No newline at end of file +

Create Database Schema Diagram

Instant output
Explore codebase
Write documentation
serg33v
New

Description

Generate Mermaid ER diagrams from your database structure and foreign key relationships.

Target Roles

Developers
DevOps

Complete Prompt

Create a Mermaid ER diagram for the database schema at [project path]. Show all tables and relationships.
\ No newline at end of file diff --git a/docs/library/prompts/create-folder-with-images/index.html b/docs/library/prompts/create-folder-with-images/index.html index 68de8a9d..dc6f6dd5 100644 --- a/docs/library/prompts/create-folder-with-images/index.html +++ b/docs/library/prompts/create-folder-with-images/index.html @@ -22,7 +22,7 @@

Create folder with images

Verified by DC team
Instant output
Organize files
Optimize workflow
DC team
New

Description

Teach how to use Claude to create files and automate simple workflows.

Target Roles

Professionals
Content makers
Vibe Coders

Complete Prompt

Create a new folder on my Desktop and put there 2 cat images. Open the folder when you are done.
\ No newline at end of file +

Create folder with images

Verified by DC team
Instant output
Organize files
Optimize workflow
DC team
New

Description

Teach how to use Claude to create files and automate simple workflows.

Target Roles

Professionals
Content makers
Vibe Coders

Complete Prompt

Create a new folder on my Desktop and put there 2 cat images. Open the folder when you are done.
\ No newline at end of file diff --git a/docs/library/prompts/create-git-history-presentation/index.html b/docs/library/prompts/create-git-history-presentation/index.html index 1520218a..3dd714a3 100644 --- a/docs/library/prompts/create-git-history-presentation/index.html +++ b/docs/library/prompts/create-git-history-presentation/index.html @@ -22,7 +22,7 @@

Create Git History Presentation

Instant output
Explore codebase
Write documentation
DC team
New

Description

Generate visual presentations of your team's recent development activity.

Target Roles

Developers

Complete Prompt

Make me a slide deck showing the git history from the last 7 days at [project path], grouped by feature and team member.
\ No newline at end of file +

Create Git History Presentation

Instant output
Explore codebase
Write documentation
DC team
New

Description

Generate visual presentations of your team's recent development activity.

Target Roles

Developers

Complete Prompt

Make me a slide deck showing the git history from the last 7 days at [project path], grouped by feature and team member.
\ No newline at end of file diff --git a/docs/library/prompts/create-knowledge-base-folder/index.html b/docs/library/prompts/create-knowledge-base-folder/index.html index 83032888..f288f5f6 100644 --- a/docs/library/prompts/create-knowledge-base-folder/index.html +++ b/docs/library/prompts/create-knowledge-base-folder/index.html @@ -22,7 +22,7 @@

Create Knowledge Base Folder

Step-by-step flow
Write documentation
Optimize workflow
DC team
Emerging

Description

Create a strucutre for your local knowledge base.

Target Roles

Content makers
Vibe Coders
Developers
Data analysts
Professionals

Complete Prompt

I want to create a personal knowledge base by organizing copies of my existing files on this computer. Please help me:
+    

Create Knowledge Base Folder

Step-by-step flow
Write documentation
Optimize workflow
DC team
Emerging

Description

Create a strucutre for your local knowledge base.

Target Roles

Content makers
Vibe Coders
Developers
Data analysts
Professionals

Complete Prompt

I want to create a personal knowledge base by organizing copies of my existing files on this computer. Please help me:
 
 -Check my current file structure using Desktop Commander to understand what types of files and content I have
 
@@ -84,4 +84,4 @@
 
 -Create a well-structured knowledge base folder on my Desktop with appropriate subfolders
 
--Copy (never move or delete) relevant files into this new organizational structure.
\ No newline at end of file +-Copy (never move or delete) relevant files into this new organizational structure.
\ No newline at end of file diff --git a/docs/library/prompts/create-project-documentation/index.html b/docs/library/prompts/create-project-documentation/index.html index 8fc5a1b3..401c1c9e 100644 --- a/docs/library/prompts/create-project-documentation/index.html +++ b/docs/library/prompts/create-project-documentation/index.html @@ -22,7 +22,7 @@

Create Project Documentation

Verified by DC team
Step-by-step flow
Write documentation
Explore codebase
DC team
Emerging

Description

Build structured knowledge repositories that capture the "why" behind your code - project specifications, architecture decisions, and technical rationale. Use them later for referring AI to your project and generate better results.

Target Roles

DevOps
Developers

Complete Prompt

# Context Engineering Master
+    

Create Project Documentation

Verified by DC team
Step-by-step flow
Write documentation
Explore codebase
DC team
Emerging

Description

Build structured knowledge repositories that capture the "why" behind your code - project specifications, architecture decisions, and technical rationale. Use them later for referring AI to your project and generate better results.

Target Roles

DevOps
Developers

Complete Prompt

# Context Engineering Master
 
 ## Mission Statement
 You are an expert technical documentation specialist who creates structured knowledge repositories optimized for AI collaboration. Your role is to systematically analyze codebases and build "memory systems" that make every AI conversation more effective and project-aware using Desktop Commander capabilities.
@@ -377,4 +377,4 @@
 - **Documentation**: architecture/ and components/ folders with structured context
 - **Templates**: Standardized formats for consistent documentation expansion
 
-**Success Indicator: AI provides accurate, project-aware responses without re-explaining architecture, and new developers understand your system quickly using the documentation.**
\ No newline at end of file +**Success Indicator: AI provides accurate, project-aware responses without re-explaining architecture, and new developers understand your system quickly using the documentation.**
\ No newline at end of file diff --git a/docs/library/prompts/create-team-onboarding-documentation/index.html b/docs/library/prompts/create-team-onboarding-documentation/index.html index 4e368acf..dad67af4 100644 --- a/docs/library/prompts/create-team-onboarding-documentation/index.html +++ b/docs/library/prompts/create-team-onboarding-documentation/index.html @@ -22,7 +22,7 @@

Create Team Onboarding Documentation

Step-by-step flow
Write documentation
Explore codebase
DC team
New

Description

Generate comprehensive onboarding guide for new developers including setup, architecture overview, and contribution guidelines.

Target Roles

Professionals
Data analysts
Developers

Complete Prompt

# Project Onboarding Guide Automation
+    

Create Team Onboarding Documentation

Step-by-step flow
Write documentation
Explore codebase
DC team
New

Description

Generate comprehensive onboarding guide for new developers including setup, architecture overview, and contribution guidelines.

Target Roles

Professionals
Data analysts
Developers

Complete Prompt

# Project Onboarding Guide Automation
 
 ## Mission Statement
 You are an expert software development consultant who specializes in creating comprehensive onboarding documentation. Your role is to analyze entire project codebases and create practical, actionable onboarding guides that help new developers understand and contribute to projects quickly using Desktop Commander capabilities.
@@ -308,4 +308,4 @@
 4. **Maintain accuracy over time** - Clear maintenance guidelines for keeping guide current
 5. **Scale with project complexity** - Appropriate depth for project size and complexity
 
-**Validation**: New team members should be able to follow the guide independently and achieve a working development environment without additional assistance.
\ No newline at end of file +**Validation**: New team members should be able to follow the guide independently and achieve a working development environment without additional assistance.
\ No newline at end of file diff --git a/docs/library/prompts/debug-remote-server-errors/index.html b/docs/library/prompts/debug-remote-server-errors/index.html index fd3b957f..06b41108 100644 --- a/docs/library/prompts/debug-remote-server-errors/index.html +++ b/docs/library/prompts/debug-remote-server-errors/index.html @@ -22,7 +22,7 @@

Debug Remote Server Errors

Instant output
Optimize code
serg33v
New

Description

Investigate and resolve server errors by analyzing logs, configurations, and system status.

Target Roles

Developers
DevOps

Complete Prompt

Connect to [server] and investigate the nginx error. Check logs, configuration, and system status to find the cause.
\ No newline at end of file +

Debug Remote Server Errors

Instant output
Optimize code
serg33v
New

Description

Investigate and resolve server errors by analyzing logs, configurations, and system status.

Target Roles

Developers
DevOps

Complete Prompt

Connect to [server] and investigate the nginx error. Check logs, configuration, and system status to find the cause.
\ No newline at end of file diff --git a/docs/library/prompts/document-ansible-configuration/index.html b/docs/library/prompts/document-ansible-configuration/index.html index 8c7a4ec7..23d00323 100644 --- a/docs/library/prompts/document-ansible-configuration/index.html +++ b/docs/library/prompts/document-ansible-configuration/index.html @@ -22,7 +22,7 @@

Document Ansible Configuration

Instant output
Explore codebase
Write documentation
serg33v
New

Description

Explain Ansible playbooks, roles, and automation workflows with clear documentation.

Target Roles

Developers
DevOps

Complete Prompt

Document the Ansible configuration at [project path]. Explain all playbooks, roles, and automation workflows.
\ No newline at end of file +

Document Ansible Configuration

Instant output
Explore codebase
Write documentation
serg33v
New

Description

Explain Ansible playbooks, roles, and automation workflows with clear documentation.

Target Roles

Developers
DevOps

Complete Prompt

Document the Ansible configuration at [project path]. Explain all playbooks, roles, and automation workflows.
\ No newline at end of file diff --git a/docs/library/prompts/document-api-endpoints/index.html b/docs/library/prompts/document-api-endpoints/index.html index d0e6051e..42a127a4 100644 --- a/docs/library/prompts/document-api-endpoints/index.html +++ b/docs/library/prompts/document-api-endpoints/index.html @@ -22,7 +22,7 @@

Document API endpoints

Instant output
Write documentation
DC team
New

Description

Transform your API endpoints into comprehensive documentation with all parameters, responses, and examples.

Target Roles

Developers

Complete Prompt

Find this API file: [file name/path]. Generate documentation for this API endpoint including all parameters and responses.
\ No newline at end of file +

Document API endpoints

Instant output
Write documentation
DC team
New

Description

Transform your API endpoints into comprehensive documentation with all parameters, responses, and examples.

Target Roles

Developers

Complete Prompt

Find this API file: [file name/path]. Generate documentation for this API endpoint including all parameters and responses.
\ No newline at end of file diff --git a/docs/library/prompts/document-dependencies-and-tools/index.html b/docs/library/prompts/document-dependencies-and-tools/index.html index 0e5095a5..5b33623f 100644 --- a/docs/library/prompts/document-dependencies-and-tools/index.html +++ b/docs/library/prompts/document-dependencies-and-tools/index.html @@ -22,7 +22,7 @@

Document Dependencies and Tools

Instant output
Explore codebase
Write documentation
DC team
New

Description

Get a comprehensive overview of all tools and libraries used in your project.

Target Roles

Developers
DevOps

Complete Prompt

Which tools, libraries, and dependencies are used in this project at [project path]? Create a summary with versions and purposes.
\ No newline at end of file +

Document Dependencies and Tools

Instant output
Explore codebase
Write documentation
DC team
New

Description

Get a comprehensive overview of all tools and libraries used in your project.

Target Roles

Developers
DevOps

Complete Prompt

Which tools, libraries, and dependencies are used in this project at [project path]? Create a summary with versions and purposes.
\ No newline at end of file diff --git a/docs/library/prompts/document-graphql-schema/index.html b/docs/library/prompts/document-graphql-schema/index.html index 84fae0ff..e8c53555 100644 --- a/docs/library/prompts/document-graphql-schema/index.html +++ b/docs/library/prompts/document-graphql-schema/index.html @@ -22,7 +22,7 @@

Document GraphQL Schema

Instant output
Explore codebase
Write documentation
serg33v
New

Description

Analyze and document GraphQL endpoints, queries, mutations, and schema definitions.

Target Roles

Developers
DevOps

Complete Prompt

Analyze the GraphQL schema at [project path] and document all queries, mutations, and types with examples.
\ No newline at end of file +

Document GraphQL Schema

Instant output
Explore codebase
Write documentation
serg33v
New

Description

Analyze and document GraphQL endpoints, queries, mutations, and schema definitions.

Target Roles

Developers
DevOps

Complete Prompt

Analyze the GraphQL schema at [project path] and document all queries, mutations, and types with examples.
\ No newline at end of file diff --git a/docs/library/prompts/document-rest-api-endpoints/index.html b/docs/library/prompts/document-rest-api-endpoints/index.html index dc78c847..a675da85 100644 --- a/docs/library/prompts/document-rest-api-endpoints/index.html +++ b/docs/library/prompts/document-rest-api-endpoints/index.html @@ -22,7 +22,7 @@

Document REST API Endpoints

Instant output
Explore codebase
Write documentation
serg33v
New

Description

Extract and document all REST API endpoints with parameters, responses, and usage examples.

Target Roles

Developers
DevOps

Complete Prompt

Find all REST API endpoints in [project path] and create documentation with parameters, request/response examples.
\ No newline at end of file +

Document REST API Endpoints

Instant output
Explore codebase
Write documentation
serg33v
New

Description

Extract and document all REST API endpoints with parameters, responses, and usage examples.

Target Roles

Developers
DevOps

Complete Prompt

Find all REST API endpoints in [project path] and create documentation with parameters, request/response examples.
\ No newline at end of file diff --git a/docs/library/prompts/document-system-architecture/index.html b/docs/library/prompts/document-system-architecture/index.html index ed1ac643..bb676417 100644 --- a/docs/library/prompts/document-system-architecture/index.html +++ b/docs/library/prompts/document-system-architecture/index.html @@ -22,7 +22,7 @@

Document System Architecture

Step-by-step flow
Write documentation
Explore codebase
DC team
New

Description

Get a comprehensive overview of your system's architecture and design patterns.

Target Roles

Developers

Complete Prompt

Describe the main pieces of this system's architecture at [project path]. Explain how components interact and highlight the key design patterns used.
\ No newline at end of file +

Document System Architecture

Step-by-step flow
Write documentation
Explore codebase
DC team
New

Description

Get a comprehensive overview of your system's architecture and design patterns.

Target Roles

Developers

Complete Prompt

Describe the main pieces of this system's architecture at [project path]. Explain how components interact and highlight the key design patterns used.
\ No newline at end of file diff --git a/docs/library/prompts/explain-cicd-pipeline/index.html b/docs/library/prompts/explain-cicd-pipeline/index.html index af00ca90..837e0228 100644 --- a/docs/library/prompts/explain-cicd-pipeline/index.html +++ b/docs/library/prompts/explain-cicd-pipeline/index.html @@ -22,7 +22,7 @@

Explain CI/CD Pipeline

Instant output
Explore codebase
Write documentation
serg33v
New

Description

Document GitHub Actions workflows, triggers, and deployment processes with optimization suggestions.

Target Roles

Developers
DevOps

Complete Prompt

Analyze GitHub Actions at [project path] and explain the CI/CD pipeline with all workflows and triggers.
\ No newline at end of file +

Explain CI/CD Pipeline

Instant output
Explore codebase
Write documentation
serg33v
New

Description

Document GitHub Actions workflows, triggers, and deployment processes with optimization suggestions.

Target Roles

Developers
DevOps

Complete Prompt

Analyze GitHub Actions at [project path] and explain the CI/CD pipeline with all workflows and triggers.
\ No newline at end of file diff --git a/docs/library/prompts/explain-codebase-or-repository/index.html b/docs/library/prompts/explain-codebase-or-repository/index.html index f7d84e95..740cee5e 100644 --- a/docs/library/prompts/explain-codebase-or-repository/index.html +++ b/docs/library/prompts/explain-codebase-or-repository/index.html @@ -22,7 +22,7 @@

Explain Codebase or Repository

Verified by DC team
Step-by-step flow
Explore codebase
DC team
Growing

Description

Understand, analyze, and document your codebase - whether you're inheriting legacy code, joining a new project, or diving into unfamiliar technology.

Target Roles

Developers
DevOps

Complete Prompt

# Codebase Analysis & Documentation Assistant
+    

Explain Codebase or Repository

Verified by DC team
Step-by-step flow
Explore codebase
DC team
Growing

Description

Understand, analyze, and document your codebase - whether you're inheriting legacy code, joining a new project, or diving into unfamiliar technology.

Target Roles

Developers
DevOps

Complete Prompt

# Codebase Analysis & Documentation Assistant
 
 ## Mission Statement
 You are an expert software architect and code analyst who systematically explores and documents codebases using Desktop Commander's file analysis capabilities. Your role is to help developers understand unfamiliar code, analyze system architecture, and generate actionable technical documentation.
@@ -335,4 +335,4 @@
 - **Documentation**: Developer guides, troubleshooting procedures, and technical recommendations
 - **Reference materials**: Code patterns, technical standards, and improvement roadmaps
 
-**Success Indicator: You and your team can effectively understand, modify, and extend the codebase using the generated documentation and insights.**
\ No newline at end of file +**Success Indicator: You and your team can effectively understand, modify, and extend the codebase using the generated documentation and insights.**
\ No newline at end of file diff --git a/docs/library/prompts/explain-docker-configuration/index.html b/docs/library/prompts/explain-docker-configuration/index.html index d153ce4b..ad700f18 100644 --- a/docs/library/prompts/explain-docker-configuration/index.html +++ b/docs/library/prompts/explain-docker-configuration/index.html @@ -22,7 +22,7 @@

Explain Docker Configuration

Instant output
Write documentation
Explore codebase
serg33v
New

Description

Analyze and document Docker setup, containers, networks, and deployment configurations.

Target Roles

Developers
DevOps

Complete Prompt

Explain the Docker configuration at [project path]. Document all services, networks, and deployment settings.
\ No newline at end of file +

Explain Docker Configuration

Instant output
Write documentation
Explore codebase
serg33v
New

Description

Analyze and document Docker setup, containers, networks, and deployment configurations.

Target Roles

Developers
DevOps

Complete Prompt

Explain the Docker configuration at [project path]. Document all services, networks, and deployment settings.
\ No newline at end of file diff --git a/docs/library/prompts/explain-react-component-architecture/index.html b/docs/library/prompts/explain-react-component-architecture/index.html index 19319d80..fd6e23b3 100644 --- a/docs/library/prompts/explain-react-component-architecture/index.html +++ b/docs/library/prompts/explain-react-component-architecture/index.html @@ -22,7 +22,7 @@

Explain React Component Architecture

Instant output
Explore codebase
DC team
Emerging

Description

Get a clear breakdown of how your React component works, including props flow, state management, and dependencies.

Target Roles

Developers

Complete Prompt

Find this React component: [component name/path]. Analyze this React component and explain its data flow and dependencies
\ No newline at end of file +

Explain React Component Architecture

Instant output
Explore codebase
DC team
Emerging

Description

Get a clear breakdown of how your React component works, including props flow, state management, and dependencies.

Target Roles

Developers

Complete Prompt

Find this React component: [component name/path]. Analyze this React component and explain its data flow and dependencies
\ No newline at end of file diff --git a/docs/library/prompts/extract-data-from-pdfs/index.html b/docs/library/prompts/extract-data-from-pdfs/index.html index 8b6759b5..03d3f84b 100644 --- a/docs/library/prompts/extract-data-from-pdfs/index.html +++ b/docs/library/prompts/extract-data-from-pdfs/index.html @@ -22,7 +22,7 @@

Extract Data from PDFs

Verified by DC team
Instant output
Organize files
Automate tasks
Optimize workflow
DC team
New

Description

Pull key information from PDF documents into structured format.

Target Roles

Professionals
Data analysts
Content makers

Complete Prompt

Extract all data from these PDFs in [folder path]. Get the numbers, dates, and key information into a spreadsheet format.
\ No newline at end of file +

Extract Data from PDFs

Verified by DC team
Instant output
Organize files
Automate tasks
Optimize workflow
DC team
New

Description

Pull key information from PDF documents into structured format.

Target Roles

Professionals
Data analysts
Content makers

Complete Prompt

Extract all data from these PDFs in [folder path]. Get the numbers, dates, and key information into a spreadsheet format.
\ No newline at end of file diff --git a/docs/library/prompts/find-all-todo-comments/index.html b/docs/library/prompts/find-all-todo-comments/index.html index 38d4a0eb..795c1e10 100644 --- a/docs/library/prompts/find-all-todo-comments/index.html +++ b/docs/library/prompts/find-all-todo-comments/index.html @@ -22,7 +22,7 @@

Find All TODO Comments

Instant output
Explore codebase
DC team
New

Description

Locate and report all TODO items across your entire codebase.

Target Roles

Developers

Complete Prompt

Find all TODO comments across all projects in [directory] and create a prioritized report of technical debt.
\ No newline at end of file +

Find All TODO Comments

Instant output
Explore codebase
DC team
New

Description

Locate and report all TODO items across your entire codebase.

Target Roles

Developers

Complete Prompt

Find all TODO comments across all projects in [directory] and create a prioritized report of technical debt.
\ No newline at end of file diff --git a/docs/library/prompts/find-error-patterns-in-logs/index.html b/docs/library/prompts/find-error-patterns-in-logs/index.html index 09126922..4806b1d8 100644 --- a/docs/library/prompts/find-error-patterns-in-logs/index.html +++ b/docs/library/prompts/find-error-patterns-in-logs/index.html @@ -22,7 +22,7 @@

Find Error Patterns in Logs

Step-by-step flow
Explore codebase
DC team
New

Description

Analyze log files to identify and summarize system issues.

Target Roles

Developers

Complete Prompt

Find all log files with errors in the last 24 hours at [log directory] and summarize the patterns.
\ No newline at end of file +

Find Error Patterns in Logs

Step-by-step flow
Explore codebase
DC team
New

Description

Analyze log files to identify and summarize system issues.

Target Roles

Developers

Complete Prompt

Find all log files with errors in the last 24 hours at [log directory] and summarize the patterns.
\ No newline at end of file diff --git a/docs/library/prompts/find-invoices-and-move-them-to-folder/index.html b/docs/library/prompts/find-invoices-and-move-them-to-folder/index.html index 01f06f41..1eeade91 100644 --- a/docs/library/prompts/find-invoices-and-move-them-to-folder/index.html +++ b/docs/library/prompts/find-invoices-and-move-them-to-folder/index.html @@ -22,7 +22,7 @@

Find Invoices and Move Them to Folder

Verified by DC team
Instant output
Optimize workflow
Organize files
Automate tasks
DC team
New

Description

Organize your invoices into one folder that you can later share with accounting or use for tax reports.

Target Roles

Professionals

Complete Prompt

Find all my invoices from the last 3 months in Downloads and move them into a folder called 'Accounting 2025'. Then create a summary of what you found.
\ No newline at end of file +

Find Invoices and Move Them to Folder

Verified by DC team
Instant output
Optimize workflow
Organize files
Automate tasks
DC team
New

Description

Organize your invoices into one folder that you can later share with accounting or use for tax reports.

Target Roles

Professionals

Complete Prompt

Find all my invoices from the last 3 months in Downloads and move them into a folder called 'Accounting 2025'. Then create a summary of what you found.
\ No newline at end of file diff --git a/docs/library/prompts/find-large-receipts-by-vendor/index.html b/docs/library/prompts/find-large-receipts-by-vendor/index.html index 6fec73d7..446b0c3a 100644 --- a/docs/library/prompts/find-large-receipts-by-vendor/index.html +++ b/docs/library/prompts/find-large-receipts-by-vendor/index.html @@ -22,7 +22,7 @@

Find Large Receipts by Vendor

Instant output
Organize files
Automate tasks
Optimize workflow
DC team
New

Description

Locate and organize high-value receipts for expense tracking.

Target Roles

Professionals
Data analysts
Content makers

Complete Prompt

Find all receipts over $500 in [folder] and organize them by vendor for tax preparation.
\ No newline at end of file +

Find Large Receipts by Vendor

Instant output
Organize files
Automate tasks
Optimize workflow
DC team
New

Description

Locate and organize high-value receipts for expense tracking.

Target Roles

Professionals
Data analysts
Content makers

Complete Prompt

Find all receipts over $500 in [folder] and organize them by vendor for tax preparation.
\ No newline at end of file diff --git a/docs/library/prompts/generate-architecture-diagram/index.html b/docs/library/prompts/generate-architecture-diagram/index.html index 247bf45f..81ffc419 100644 --- a/docs/library/prompts/generate-architecture-diagram/index.html +++ b/docs/library/prompts/generate-architecture-diagram/index.html @@ -22,7 +22,7 @@

Generate Architecture Diagram

Instant output
Explore codebase
serg33v
New

Description

Automatically generate Mermaid diagrams from your codebase structure and component relationships.

Target Roles

Developers
DevOps

Complete Prompt

Create a Mermaid architecture diagram for the project at [project path]. Show services, databases, and data flows.
\ No newline at end of file +

Generate Architecture Diagram

Instant output
Explore codebase
serg33v
New

Description

Automatically generate Mermaid diagrams from your codebase structure and component relationships.

Target Roles

Developers
DevOps

Complete Prompt

Create a Mermaid architecture diagram for the project at [project path]. Show services, databases, and data flows.
\ No newline at end of file diff --git a/docs/library/prompts/generate-dev-onboarding-guide/index.html b/docs/library/prompts/generate-dev-onboarding-guide/index.html index d124fb25..1a713ac3 100644 --- a/docs/library/prompts/generate-dev-onboarding-guide/index.html +++ b/docs/library/prompts/generate-dev-onboarding-guide/index.html @@ -22,7 +22,7 @@

Generate Dev Onboarding Guide

Step-by-step flow
Explore codebase
Write documentation
DC team
New

Description

Create step-by-step documentation for new developers joining your project.

Target Roles

Developers

Complete Prompt

# Developer Onboarding Documentation System
+    

Generate Dev Onboarding Guide

Step-by-step flow
Explore codebase
Write documentation
DC team
New

Description

Create step-by-step documentation for new developers joining your project.

Target Roles

Developers

Complete Prompt

# Developer Onboarding Documentation System
 
 ## Mission Statement
 You are an expert developer onboarding specialist and technical documentation expert who creates comprehensive, practical onboarding experiences. Your role is to transform complex codebases into accessible learning journeys that get new developers productive quickly using Desktop Commander capabilities for hands-on setup and validation.
@@ -301,4 +301,4 @@
 3. **Hands-On Tutorial** - Guided first tasks with real code examples and validation
 4. **Development Workflow** - Team practices, tools, and collaboration processes
 
-Let's transform your codebase into an accessible, productive onboarding experience that gets new developers contributing quickly!
\ No newline at end of file +Let's transform your codebase into an accessible, productive onboarding experience that gets new developers contributing quickly!
\ No newline at end of file diff --git a/docs/library/prompts/generate-docker-configuration/index.html b/docs/library/prompts/generate-docker-configuration/index.html index b89c01c6..650bb612 100644 --- a/docs/library/prompts/generate-docker-configuration/index.html +++ b/docs/library/prompts/generate-docker-configuration/index.html @@ -22,7 +22,7 @@

Generate Docker Configuration

Instant output
Deploy
Design systems
serg33v
New

Description

Create optimized Docker setup with Dockerfile, docker-compose, and environment configurations for your project.

Target Roles

Developers
DevOps

Complete Prompt

Analyze the project at [project path] and create complete Docker configuration including Dockerfile, docker-compose, and environment setup.
\ No newline at end of file +

Generate Docker Configuration

Instant output
Deploy
Design systems
serg33v
New

Description

Create optimized Docker setup with Dockerfile, docker-compose, and environment configurations for your project.

Target Roles

Developers
DevOps

Complete Prompt

Analyze the project at [project path] and create complete Docker configuration including Dockerfile, docker-compose, and environment setup.
\ No newline at end of file diff --git a/docs/library/prompts/generate-tests-for-missing-coverage/index.html b/docs/library/prompts/generate-tests-for-missing-coverage/index.html index f486e5cc..cb42b5c9 100644 --- a/docs/library/prompts/generate-tests-for-missing-coverage/index.html +++ b/docs/library/prompts/generate-tests-for-missing-coverage/index.html @@ -22,7 +22,7 @@

Generate Tests for Missing Coverage

Step-by-step flow
Optimize code
Deploy
DC team
New

Description

Create test files for modules that lack proper testing.

Target Roles

Developers

Complete Prompt

# Test Coverage Analysis & Test File Generation
+    

Generate Tests for Missing Coverage

Step-by-step flow
Optimize code
Deploy
DC team
New

Description

Create test files for modules that lack proper testing.

Target Roles

Developers

Complete Prompt

# Test Coverage Analysis & Test File Generation
 
 ## Mission Statement
 You are an expert test automation specialist who analyzes codebases for missing test coverage and generates comprehensive test files. Your role is to systematically identify untested modules, analyze their functionality, and create appropriate test suites using Desktop Commander capabilities for local file system management.
@@ -318,4 +318,4 @@
 
 This methodical approach ensures comprehensive test coverage while maintaining code quality and avoiding context overload.
 
-Does this approach align with your testing needs, or would you like me to adjust anything before we start the analysis?
\ No newline at end of file +Does this approach align with your testing needs, or would you like me to adjust anything before we start the analysis?
\ No newline at end of file diff --git a/docs/library/prompts/get-my-ip-address/index.html b/docs/library/prompts/get-my-ip-address/index.html index 58e30c85..99d9b417 100644 --- a/docs/library/prompts/get-my-ip-address/index.html +++ b/docs/library/prompts/get-my-ip-address/index.html @@ -22,7 +22,7 @@

Get my IP address

Instant output
Automate tasks
Optimize workflow
Deploy
serg33v
New

Description

Allows you to quickly get your IP address.

Target Roles

Developers
Vibe Coders
Content makers
Data analysts
Professionals

Complete Prompt

Use DesktopCommnder to get my IP v4 and IP v6 addresses. Don't speak too much, just show me IP addresses.
\ No newline at end of file +

Get my IP address

Instant output
Automate tasks
Optimize workflow
Deploy
serg33v
New

Description

Allows you to quickly get your IP address.

Target Roles

Developers
Vibe Coders
Content makers
Data analysts
Professionals

Complete Prompt

Use DesktopCommnder to get my IP v4 and IP v6 addresses. Don't speak too much, just show me IP addresses.
\ No newline at end of file diff --git a/docs/library/prompts/implement-github-issue/index.html b/docs/library/prompts/implement-github-issue/index.html index 02875a5c..5994dedd 100644 --- a/docs/library/prompts/implement-github-issue/index.html +++ b/docs/library/prompts/implement-github-issue/index.html @@ -22,7 +22,7 @@

Implement GitHub Issue

Step-by-step flow
Deploy
DC team
New

Description

Create a working implementation for a specific GitHub issue or feature request.

Target Roles

Developers
Vibe Coders
DevOps

Complete Prompt

Implement a first draft for GitHub issue #[number] in project at [project path]. Read the issue requirements and create the necessary code changes.
\ No newline at end of file +

Implement GitHub Issue

Step-by-step flow
Deploy
DC team
New

Description

Create a working implementation for a specific GitHub issue or feature request.

Target Roles

Developers
Vibe Coders
DevOps

Complete Prompt

Implement a first draft for GitHub issue #[number] in project at [project path]. Read the issue requirements and create the necessary code changes.
\ No newline at end of file diff --git a/docs/library/prompts/index.html b/docs/library/prompts/index.html index d3a33b96..c3f31429 100644 --- a/docs/library/prompts/index.html +++ b/docs/library/prompts/index.html @@ -22,7 +22,7 @@

Prompt Library

Discover 72+ curated prompts for Desktop Commander

Documentation

Organise my Downloads folder

Instant
Growing

Organise messy downloads folder into relevant subfolders.

Explain Codebase or Repository

Step-by-Step
Growing

Understand, analyze, and document your codebase - whether you're inheriting legacy code, joining a new project, or diving into unfamiliar technology.

Build A Feature from Scratch

Step-by-Step
Growing

Build a new feature for your app based on your existing codebase.

Extract Data from PDFs

Instant
New

Pull key information from PDF documents into structured format.

Set Up Cloud Infrastructure

Step-by-Step
New

Deploy production-ready cloud infrastructure from scratch using natural language. Define your stack and implement it step-by-step.

Set Up Local Development Environment

Instant
New

Configure complete local development environment with dependencies, databases, and development tools.

Generate Docker Configuration

Instant
New

Create optimized Docker setup with Dockerfile, docker-compose, and environment configurations for your project.

Build and Deploy Landing Page

Step-by-Step
New

Create a professional landing page with modern design and deploy it to a live server with proper hosting setup.

Manage Wordpress site in natural language

Step-by-Step
New

Install WP-CLI locally, establish SSH connection to your WordPress site, and manage your site remotely using command-line tools.

Clean Up Unused Code

Step-by-Step
Growing

Scan your codebase to find unused imports, dead functions, and redundant code that can be safely removed.

Automate Competitor Research

Step-by-Step
Emerging

Automate weekly competitive research and store your notes in one place.

Analyze My Data File

Instant
Emerging

Make sense of a data file that you have.

Build Personal Finance Tracker

Step-by-Step
Emerging

Create a complete web application from scratch and launch it locally in your browser.

Explain React Component Architecture

Instant
Emerging

Get a clear breakdown of how your React component works, including props flow, state management, and dependencies.

Create Knowledge Base Folder

Step-by-Step
Emerging

Create a strucutre for your local knowledge base.

Create Project Documentation

Step-by-Step
Emerging

Build structured knowledge repositories that capture the "why" behind your code - project specifications, architecture decisions, and technical rationale. Use them later for referring AI to your project and generate better results.

Set Up WordPress Environment

Step-by-Step
Emerging

Set up your development environment, install dependencies and configure required tools.

Create Team Onboarding Documentation

Step-by-Step
New

Generate comprehensive onboarding guide for new developers including setup, architecture overview, and contribution guidelines.

Create folder with images

Instant
New

Teach how to use Claude to create files and automate simple workflows.

Convert EDOC to DOC

Instant
New

Convert electronically signed documents on your computer.

Optimize Docker Setup

Step-by-Step
New

Generate production-ready Docker configuration tailored to your application's specific requirements and dependencies.

Build GitHub Issues Dashboard

Step-by-Step
New

Create a real-time dashboard for tracking and displaying GitHub issues.

Compare Config Files to Baseline

Instant
New

Detect configuration drift by comparing current configs to standards.

Update My CV/Resume

Instant
New

Quickly update your resume with new experience/skills.

Remove Background from Profile Picture

Instant
New

Get headshot without background for Linkedin or any other use.

Rename Bank Statements by Account

Instant
New

Fix messy financial document naming with intelligent renaming.

Find Large Receipts by Vendor

Instant
New

Locate and organize high-value receipts for expense tracking.

Consolidate Data Files into One

Instant
New

Extract and standardize data for analysis.

Get my IP address

Instant
New

Allows you to quickly get your IP address.

Analyze Error Handling Strategy

Instant
New

Understand and document the error handling and logging approaches used in your project.

Implement GitHub Issue

Step-by-Step
New

Create a working implementation for a specific GitHub issue or feature request.

Set Up New Project Structure

Step-by-Step
New

Create complete project setup with standard structure and configs.

Visualize Microservices Communication

Step-by-Step
New

Create visual diagrams showing how your microservices interact, data flows, and potential bottlenecks.

Document System Architecture

Step-by-Step
New

Get a comprehensive overview of your system's architecture and design patterns.

Generate Dev Onboarding Guide

Step-by-Step
New

Create step-by-step documentation for new developers joining your project.

Assess Scalability Challenges

Step-by-Step
New

Identify potential scaling and debugging bottlenecks in your system.

Document Dependencies and Tools

Instant
New

Get a comprehensive overview of all tools and libraries used in your project.

Plan Migration Strategy

Step-by-Step
New

Create a comprehensive plan for migrating your codebase to newer technologies.

Create Git History Presentation

Instant
New

Generate visual presentations of your team's recent development activity.

Find Error Patterns in Logs

Step-by-Step
New

Analyze log files to identify and summarize system issues.

Merge Two PDFs

Instant
New

Combine multiple PDF documents into one file.

Convert HEIC to PNG

Instant
New

Convert iPhone standard photo file type into universal PNG format.

Batch Convert and Rename Images

Instant
New

Process multiple images with format conversion and intelligent renaming.

Organize PDF Invoices by Date

Instant
New

Automatically sort and organize PDF documents by dates extracted from their content.

Remove Duplicate Contacts from Spreadsheet

Instant
New

Clean up your contact lists by automatically identifying and removing duplicate entries.

Find All TODO Comments

Instant
New

Locate and report all TODO items across your entire codebase.

Generate Tests for Missing Coverage

Step-by-Step
New

Create test files for modules that lack proper testing.

Document API endpoints

Instant
New

Transform your API endpoints into comprehensive documentation with all parameters, responses, and examples.

Assess Technical Debt

Step-by-Step
New

Get a comprehensive analysis of technical debt with prioritized remediation plan and effort estimates.

Assess Project's Security

Step-by-Step
New

Identify and document all security measures implemented in your codebase.

Find Invoices and Move Them to Folder

Instant
New

Organize your invoices into one folder that you can later share with accounting or use for tax reports.

Visualize Project Architecture

Instant
New

Create visual diagrams showing your system's components, dependencies, and data flow patterns.

Generate Architecture Diagram

Instant
New

Automatically generate Mermaid diagrams from your codebase structure and component relationships.

Document REST API Endpoints

Instant
New

Extract and document all REST API endpoints with parameters, responses, and usage examples.

Document GraphQL Schema

Instant
New

Analyze and document GraphQL endpoints, queries, mutations, and schema definitions.

Visualize Database Schema

Instant
New

Generate visual database schema diagrams showing tables, relationships, and constraints.

Create Database Schema Diagram

Instant
New

Generate Mermaid ER diagrams from your database structure and foreign key relationships.

Explain Docker Configuration

Instant
New

Analyze and document Docker setup, containers, networks, and deployment configurations.

Visualize Terraform Architecture

Instant
New

Create diagrams showing Terraform infrastructure resources, dependencies, and deployment topology.

Document Ansible Configuration

Instant
New

Explain Ansible playbooks, roles, and automation workflows with clear documentation.

Explain CI/CD Pipeline

Instant
New

Document GitHub Actions workflows, triggers, and deployment processes with optimization suggestions.

Debug Remote Server Errors

Instant
New

Investigate and resolve server errors by analyzing logs, configurations, and system status.

Optimize Database Schema

Instant
New

Analyze database design for performance issues, indexing opportunities, and structural improvements.

Set Up MySQL Database

Instant
New

Install and configure MySQL server with optimized settings and security configurations.

Set Up PostgreSQL Database

Instant
New

Install and configure PostgreSQL server with performance tuning and security best practices.

Set Up MongoDB Database

Instant
New

Install and configure MongoDB server with replica sets, sharding, and security configurations.

Set Up Redis Server

Instant
New

Install and configure Redis server for caching, sessions, and high-performance data storage.

Set Up GitHub Actions CI/CD

Instant
New

Create automated testing pipeline that runs tests on every push with proper workflow configuration.

Audit Authentication Security

Instant
New

omprehensive security review of authentication systems with vulnerability assessment and recommendations.

Analyze Test Coverage Gaps

Instant
New

Review existing tests and identify missing coverage areas with specific recommendations for improvement.

Set up Google Analytics and analyze traffic

Step-by-Step
New

Analyze your traffic data from Google Analytics in natural language. This prompt will help you install prerequisites, configure Google Cloud, enable GA4 APIs, authenticate, create a Python virtual environment, and run a test analysis script. Covers macOS, Linux, and Windows with package-manager-aware steps, pre-flight checks, and troubleshooting.

Setting up Posthog Analytics with custom events

Step-by-Step
New

Set up PostHog web analytics with event tracking, autocapture, reverse proxy configuration, and privacy compliance across marketing sites and web apps.

\ No newline at end of file +

Prompt Library

Discover 72+ curated prompts for Desktop Commander

Documentation

Organise my Downloads folder

Instant
Growing

Organise messy downloads folder into relevant subfolders.

Explain Codebase or Repository

Step-by-Step
Growing

Understand, analyze, and document your codebase - whether you're inheriting legacy code, joining a new project, or diving into unfamiliar technology.

Build A Feature from Scratch

Step-by-Step
Growing

Build a new feature for your app based on your existing codebase.

Extract Data from PDFs

Instant
New

Pull key information from PDF documents into structured format.

Set Up Cloud Infrastructure

Step-by-Step
New

Deploy production-ready cloud infrastructure from scratch using natural language. Define your stack and implement it step-by-step.

Set Up Local Development Environment

Instant
New

Configure complete local development environment with dependencies, databases, and development tools.

Generate Docker Configuration

Instant
New

Create optimized Docker setup with Dockerfile, docker-compose, and environment configurations for your project.

Build and Deploy Landing Page

Step-by-Step
New

Create a professional landing page with modern design and deploy it to a live server with proper hosting setup.

Manage Wordpress site in natural language

Step-by-Step
New

Install WP-CLI locally, establish SSH connection to your WordPress site, and manage your site remotely using command-line tools.

Clean Up Unused Code

Step-by-Step
Growing

Scan your codebase to find unused imports, dead functions, and redundant code that can be safely removed.

Automate Competitor Research

Step-by-Step
Emerging

Automate weekly competitive research and store your notes in one place.

Analyze My Data File

Instant
Emerging

Make sense of a data file that you have.

Build Personal Finance Tracker

Step-by-Step
Emerging

Create a complete web application from scratch and launch it locally in your browser.

Explain React Component Architecture

Instant
Emerging

Get a clear breakdown of how your React component works, including props flow, state management, and dependencies.

Create Knowledge Base Folder

Step-by-Step
Emerging

Create a strucutre for your local knowledge base.

Create Project Documentation

Step-by-Step
Emerging

Build structured knowledge repositories that capture the "why" behind your code - project specifications, architecture decisions, and technical rationale. Use them later for referring AI to your project and generate better results.

Set Up WordPress Environment

Step-by-Step
Emerging

Set up your development environment, install dependencies and configure required tools.

Create Team Onboarding Documentation

Step-by-Step
New

Generate comprehensive onboarding guide for new developers including setup, architecture overview, and contribution guidelines.

Create folder with images

Instant
New

Teach how to use Claude to create files and automate simple workflows.

Convert EDOC to DOC

Instant
New

Convert electronically signed documents on your computer.

Optimize Docker Setup

Step-by-Step
New

Generate production-ready Docker configuration tailored to your application's specific requirements and dependencies.

Build GitHub Issues Dashboard

Step-by-Step
New

Create a real-time dashboard for tracking and displaying GitHub issues.

Compare Config Files to Baseline

Instant
New

Detect configuration drift by comparing current configs to standards.

Update My CV/Resume

Instant
New

Quickly update your resume with new experience/skills.

Remove Background from Profile Picture

Instant
New

Get headshot without background for Linkedin or any other use.

Rename Bank Statements by Account

Instant
New

Fix messy financial document naming with intelligent renaming.

Find Large Receipts by Vendor

Instant
New

Locate and organize high-value receipts for expense tracking.

Consolidate Data Files into One

Instant
New

Extract and standardize data for analysis.

Get my IP address

Instant
New

Allows you to quickly get your IP address.

Analyze Error Handling Strategy

Instant
New

Understand and document the error handling and logging approaches used in your project.

Implement GitHub Issue

Step-by-Step
New

Create a working implementation for a specific GitHub issue or feature request.

Set Up New Project Structure

Step-by-Step
New

Create complete project setup with standard structure and configs.

Visualize Microservices Communication

Step-by-Step
New

Create visual diagrams showing how your microservices interact, data flows, and potential bottlenecks.

Document System Architecture

Step-by-Step
New

Get a comprehensive overview of your system's architecture and design patterns.

Generate Dev Onboarding Guide

Step-by-Step
New

Create step-by-step documentation for new developers joining your project.

Assess Scalability Challenges

Step-by-Step
New

Identify potential scaling and debugging bottlenecks in your system.

Document Dependencies and Tools

Instant
New

Get a comprehensive overview of all tools and libraries used in your project.

Plan Migration Strategy

Step-by-Step
New

Create a comprehensive plan for migrating your codebase to newer technologies.

Create Git History Presentation

Instant
New

Generate visual presentations of your team's recent development activity.

Find Error Patterns in Logs

Step-by-Step
New

Analyze log files to identify and summarize system issues.

Merge Two PDFs

Instant
New

Combine multiple PDF documents into one file.

Convert HEIC to PNG

Instant
New

Convert iPhone standard photo file type into universal PNG format.

Batch Convert and Rename Images

Instant
New

Process multiple images with format conversion and intelligent renaming.

Organize PDF Invoices by Date

Instant
New

Automatically sort and organize PDF documents by dates extracted from their content.

Remove Duplicate Contacts from Spreadsheet

Instant
New

Clean up your contact lists by automatically identifying and removing duplicate entries.

Find All TODO Comments

Instant
New

Locate and report all TODO items across your entire codebase.

Generate Tests for Missing Coverage

Step-by-Step
New

Create test files for modules that lack proper testing.

Document API endpoints

Instant
New

Transform your API endpoints into comprehensive documentation with all parameters, responses, and examples.

Assess Technical Debt

Step-by-Step
New

Get a comprehensive analysis of technical debt with prioritized remediation plan and effort estimates.

Assess Project's Security

Step-by-Step
New

Identify and document all security measures implemented in your codebase.

Find Invoices and Move Them to Folder

Instant
New

Organize your invoices into one folder that you can later share with accounting or use for tax reports.

Visualize Project Architecture

Instant
New

Create visual diagrams showing your system's components, dependencies, and data flow patterns.

Generate Architecture Diagram

Instant
New

Automatically generate Mermaid diagrams from your codebase structure and component relationships.

Document REST API Endpoints

Instant
New

Extract and document all REST API endpoints with parameters, responses, and usage examples.

Document GraphQL Schema

Instant
New

Analyze and document GraphQL endpoints, queries, mutations, and schema definitions.

Visualize Database Schema

Instant
New

Generate visual database schema diagrams showing tables, relationships, and constraints.

Create Database Schema Diagram

Instant
New

Generate Mermaid ER diagrams from your database structure and foreign key relationships.

Explain Docker Configuration

Instant
New

Analyze and document Docker setup, containers, networks, and deployment configurations.

Visualize Terraform Architecture

Instant
New

Create diagrams showing Terraform infrastructure resources, dependencies, and deployment topology.

Document Ansible Configuration

Instant
New

Explain Ansible playbooks, roles, and automation workflows with clear documentation.

Explain CI/CD Pipeline

Instant
New

Document GitHub Actions workflows, triggers, and deployment processes with optimization suggestions.

Debug Remote Server Errors

Instant
New

Investigate and resolve server errors by analyzing logs, configurations, and system status.

Optimize Database Schema

Instant
New

Analyze database design for performance issues, indexing opportunities, and structural improvements.

Set Up MySQL Database

Instant
New

Install and configure MySQL server with optimized settings and security configurations.

Set Up PostgreSQL Database

Instant
New

Install and configure PostgreSQL server with performance tuning and security best practices.

Set Up MongoDB Database

Instant
New

Install and configure MongoDB server with replica sets, sharding, and security configurations.

Set Up Redis Server

Instant
New

Install and configure Redis server for caching, sessions, and high-performance data storage.

Set Up GitHub Actions CI/CD

Instant
New

Create automated testing pipeline that runs tests on every push with proper workflow configuration.

Audit Authentication Security

Instant
New

omprehensive security review of authentication systems with vulnerability assessment and recommendations.

Analyze Test Coverage Gaps

Instant
New

Review existing tests and identify missing coverage areas with specific recommendations for improvement.

Set up Google Analytics and analyze traffic

Step-by-Step
New

Analyze your traffic data from Google Analytics in natural language. This prompt will help you install prerequisites, configure Google Cloud, enable GA4 APIs, authenticate, create a Python virtual environment, and run a test analysis script. Covers macOS, Linux, and Windows with package-manager-aware steps, pre-flight checks, and troubleshooting.

Setting up Posthog Analytics with custom events

Step-by-Step
New

Set up PostHog web analytics with event tracking, autocapture, reverse proxy configuration, and privacy compliance across marketing sites and web apps.

\ No newline at end of file diff --git a/docs/library/prompts/manage-wordpress-site-in-natural-language/index.html b/docs/library/prompts/manage-wordpress-site-in-natural-language/index.html index f4f1fb88..ddf97ef2 100644 --- a/docs/library/prompts/manage-wordpress-site-in-natural-language/index.html +++ b/docs/library/prompts/manage-wordpress-site-in-natural-language/index.html @@ -22,7 +22,7 @@

Manage Wordpress site in natural language

Verified by DC team
Step-by-step flow
Deploy
Automate tasks
DC team
New

Description

Install WP-CLI locally, establish SSH connection to your WordPress site, and manage your site remotely using command-line tools.

Target Roles

Developers
DevOps
Content makers

Complete Prompt

I need to set up SSH access to my WordPress site and use WP-CLI for managing site, adding posts and adjusting its design. Use Desktop Commander to install WP-CLI on my local machine. When it's done, guide me through connecting to my WordPress site via SSH. Verify the SSH connection is working. Finally, show me how to use WP-CLI commands through the SSH connection to manage my WordPress site.
\ No newline at end of file +

Manage Wordpress site in natural language

Verified by DC team
Step-by-step flow
Deploy
Automate tasks
DC team
New

Description

Install WP-CLI locally, establish SSH connection to your WordPress site, and manage your site remotely using command-line tools.

Target Roles

Developers
DevOps
Content makers

Complete Prompt

I need to set up SSH access to my WordPress site and use WP-CLI for managing site, adding posts and adjusting its design. Use Desktop Commander to install WP-CLI on my local machine. When it's done, guide me through connecting to my WordPress site via SSH. Verify the SSH connection is working. Finally, show me how to use WP-CLI commands through the SSH connection to manage my WordPress site.
\ No newline at end of file diff --git a/docs/library/prompts/merge-two-pdfs/index.html b/docs/library/prompts/merge-two-pdfs/index.html index 65686b4d..961a59a8 100644 --- a/docs/library/prompts/merge-two-pdfs/index.html +++ b/docs/library/prompts/merge-two-pdfs/index.html @@ -22,7 +22,7 @@

Merge Two PDFs

Verified by DC team
Instant output
Organize files
Optimize workflow
DC team
New

Description

Combine multiple PDF documents into one file.

Target Roles

Professionals
Content makers

Complete Prompt

Find files named [filenames] in my [folder]. Merge these two PDF files into a single document. Keep the original files and create a new merged version. Open the new file when you are done.
\ No newline at end of file +

Merge Two PDFs

Verified by DC team
Instant output
Organize files
Optimize workflow
DC team
New

Description

Combine multiple PDF documents into one file.

Target Roles

Professionals
Content makers

Complete Prompt

Find files named [filenames] in my [folder]. Merge these two PDF files into a single document. Keep the original files and create a new merged version. Open the new file when you are done.
\ No newline at end of file diff --git a/docs/library/prompts/optimize-database-schema/index.html b/docs/library/prompts/optimize-database-schema/index.html index a04e671b..2cec4e85 100644 --- a/docs/library/prompts/optimize-database-schema/index.html +++ b/docs/library/prompts/optimize-database-schema/index.html @@ -22,7 +22,7 @@

Optimize Database Schema

Instant output
Optimize code
serg33v
New

Description

Analyze database design for performance issues, indexing opportunities, and structural improvements.

Target Roles

Developers
DevOps

Complete Prompt

Analyze the database schema at [project path] and identify performance issues, missing indexes, and optimization opportunities.
\ No newline at end of file +

Optimize Database Schema

Instant output
Optimize code
serg33v
New

Description

Analyze database design for performance issues, indexing opportunities, and structural improvements.

Target Roles

Developers
DevOps

Complete Prompt

Analyze the database schema at [project path] and identify performance issues, missing indexes, and optimization opportunities.
\ No newline at end of file diff --git a/docs/library/prompts/optimize-docker-setup/index.html b/docs/library/prompts/optimize-docker-setup/index.html index fd6c1458..93075a2a 100644 --- a/docs/library/prompts/optimize-docker-setup/index.html +++ b/docs/library/prompts/optimize-docker-setup/index.html @@ -22,7 +22,7 @@

Optimize Docker Setup

Step-by-step flow
Deploy
DC team
New

Description

Generate production-ready Docker configuration tailored to your application's specific requirements and dependencies.

Target Roles

Developers
DevOps
Vibe Coders

Complete Prompt

Analyze this project: [project root path]. Generate Docker configuration optimized for this application's requirements.
\ No newline at end of file +

Optimize Docker Setup

Step-by-step flow
Deploy
DC team
New

Description

Generate production-ready Docker configuration tailored to your application's specific requirements and dependencies.

Target Roles

Developers
DevOps
Vibe Coders

Complete Prompt

Analyze this project: [project root path]. Generate Docker configuration optimized for this application's requirements.
\ No newline at end of file diff --git a/docs/library/prompts/organise-my-downloads-folder/index.html b/docs/library/prompts/organise-my-downloads-folder/index.html index 831d0e7f..b3aa31a5 100644 --- a/docs/library/prompts/organise-my-downloads-folder/index.html +++ b/docs/library/prompts/organise-my-downloads-folder/index.html @@ -22,7 +22,7 @@

Organise my Downloads folder

Verified by DC team
Instant output
Organize files
DC team
Growing

Description

Organise messy downloads folder into relevant subfolders.

Target Roles

Vibe Coders
Content makers
Data analysts
Professionals
Developers

Complete Prompt

Analyze my Downloads folder and organize all files into subfolders by type (Documents, Images, Videos, Archives, etc.). Show me what you're doing and create a summary of what was organized. Open the new folder when you are done.
\ No newline at end of file +

Organise my Downloads folder

Verified by DC team
Instant output
Organize files
DC team
Growing

Description

Organise messy downloads folder into relevant subfolders.

Target Roles

Vibe Coders
Content makers
Data analysts
Professionals
Developers

Complete Prompt

Analyze my Downloads folder and organize all files into subfolders by type (Documents, Images, Videos, Archives, etc.). Show me what you're doing and create a summary of what was organized. Open the new folder when you are done.
\ No newline at end of file diff --git a/docs/library/prompts/organize-pdf-invoices-by-date/index.html b/docs/library/prompts/organize-pdf-invoices-by-date/index.html index 09c59316..1293dd0b 100644 --- a/docs/library/prompts/organize-pdf-invoices-by-date/index.html +++ b/docs/library/prompts/organize-pdf-invoices-by-date/index.html @@ -22,7 +22,7 @@

Organize PDF Invoices by Date

Verified by DC team
Instant output
Organize files
Automate tasks
Optimize workflow
DC team
New

Description

Automatically sort and organize PDF documents by dates extracted from their content.

Target Roles

Professionals
Data analysts
Content makers

Complete Prompt

Organize my PDF invoices in [folder path] by month of expenditure. Read the invoice dates and create monthly folders.
\ No newline at end of file +

Organize PDF Invoices by Date

Verified by DC team
Instant output
Organize files
Automate tasks
Optimize workflow
DC team
New

Description

Automatically sort and organize PDF documents by dates extracted from their content.

Target Roles

Professionals
Data analysts
Content makers

Complete Prompt

Organize my PDF invoices in [folder path] by month of expenditure. Read the invoice dates and create monthly folders.
\ No newline at end of file diff --git a/docs/library/prompts/plan-migration-strategy/index.html b/docs/library/prompts/plan-migration-strategy/index.html index 8c16dc67..0a94aa88 100644 --- a/docs/library/prompts/plan-migration-strategy/index.html +++ b/docs/library/prompts/plan-migration-strategy/index.html @@ -22,7 +22,7 @@

Plan Migration Strategy

Step-by-step flow
Write documentation
Explore codebase
DC team
New

Description

Create a comprehensive plan for migrating your codebase to newer technologies.

Target Roles

Developers
Vibe Coders
DevOps

Complete Prompt

# Technology Migration Automation
+    

Plan Migration Strategy

Step-by-step flow
Write documentation
Explore codebase
DC team
New

Description

Create a comprehensive plan for migrating your codebase to newer technologies.

Target Roles

Developers
Vibe Coders
DevOps

Complete Prompt

# Technology Migration Automation
 
 ## Mission Statement
 You are an expert technology migration specialist who conducts comprehensive codebase assessments and creates detailed migration strategies. Your role is to analyze existing codebases, identify migration challenges, and execute step-by-step technology upgrades using Desktop Commander's file management capabilities.
@@ -289,4 +289,4 @@
 
 I'll then create the `migration-progress.md` file with these settings and begin Phase 1: Comprehensive Codebase Assessment.
 
-Does this approach align with your needs, or would you like me to adjust anything before we start the migration analysis?
\ No newline at end of file +Does this approach align with your needs, or would you like me to adjust anything before we start the migration analysis?
\ No newline at end of file diff --git a/docs/library/prompts/remove-background-from-profile-picture/index.html b/docs/library/prompts/remove-background-from-profile-picture/index.html index c9bbcd7b..7feccbf2 100644 --- a/docs/library/prompts/remove-background-from-profile-picture/index.html +++ b/docs/library/prompts/remove-background-from-profile-picture/index.html @@ -22,7 +22,7 @@

Remove Background from Profile Picture

Verified by DC team
Instant output
Optimize workflow
DC team
New

Description

Get headshot without background for Linkedin or any other use.

Target Roles

Content makers
Vibe Coders
Professionals

Complete Prompt

Find my profile picture [file name] at [file location]. Remove the background from this picture and save it as a PNG with transparent background. Open the new picture when you are done.
\ No newline at end of file +

Remove Background from Profile Picture

Verified by DC team
Instant output
Optimize workflow
DC team
New

Description

Get headshot without background for Linkedin or any other use.

Target Roles

Content makers
Vibe Coders
Professionals

Complete Prompt

Find my profile picture [file name] at [file location]. Remove the background from this picture and save it as a PNG with transparent background. Open the new picture when you are done.
\ No newline at end of file diff --git a/docs/library/prompts/remove-duplicate-contacts-from-spreadsheet/index.html b/docs/library/prompts/remove-duplicate-contacts-from-spreadsheet/index.html index e209712f..2e453092 100644 --- a/docs/library/prompts/remove-duplicate-contacts-from-spreadsheet/index.html +++ b/docs/library/prompts/remove-duplicate-contacts-from-spreadsheet/index.html @@ -22,7 +22,7 @@

Remove Duplicate Contacts from Spreadsheet

Instant output
Organize files
Analyze data
Automate tasks
Optimize workflow
DC team
New

Description

Clean up your contact lists by automatically identifying and removing duplicate entries.

Target Roles

Data analysts

Complete Prompt

Remove all duplicate contacts from my spreadsheet at [file path]. Keep the most complete record when duplicates are found.
\ No newline at end of file +

Remove Duplicate Contacts from Spreadsheet

Instant output
Organize files
Analyze data
Automate tasks
Optimize workflow
DC team
New

Description

Clean up your contact lists by automatically identifying and removing duplicate entries.

Target Roles

Data analysts

Complete Prompt

Remove all duplicate contacts from my spreadsheet at [file path]. Keep the most complete record when duplicates are found.
\ No newline at end of file diff --git a/docs/library/prompts/rename-bank-statements-by-account/index.html b/docs/library/prompts/rename-bank-statements-by-account/index.html index da86c182..6482f3b8 100644 --- a/docs/library/prompts/rename-bank-statements-by-account/index.html +++ b/docs/library/prompts/rename-bank-statements-by-account/index.html @@ -22,7 +22,7 @@

Rename Bank Statements by Account

Instant output
Organize files
Automate tasks
Optimize workflow
DC team
New

Description

Fix messy financial document naming with intelligent renaming.

Target Roles

Professionals
Data analysts
Content makers

Complete Prompt

Rename all bank statements in [folder] to include account type and date range instead of random attachment names.
\ No newline at end of file +

Rename Bank Statements by Account

Instant output
Organize files
Automate tasks
Optimize workflow
DC team
New

Description

Fix messy financial document naming with intelligent renaming.

Target Roles

Professionals
Data analysts
Content makers

Complete Prompt

Rename all bank statements in [folder] to include account type and date range instead of random attachment names.
\ No newline at end of file diff --git a/docs/library/prompts/set-up-cloud-infrastructure/index.html b/docs/library/prompts/set-up-cloud-infrastructure/index.html index 11c3dc3c..840e8a78 100644 --- a/docs/library/prompts/set-up-cloud-infrastructure/index.html +++ b/docs/library/prompts/set-up-cloud-infrastructure/index.html @@ -22,7 +22,7 @@

Set Up Cloud Infrastructure

Verified by DC team
Step-by-step flow
Deploy
DC team
New

Description

Deploy production-ready cloud infrastructure from scratch using natural language. Define your stack and implement it step-by-step.

Target Roles

DevOps
Developers

Complete Prompt

# DevOps Infrastructure Setup Assistant
+    

Set Up Cloud Infrastructure

Verified by DC team
Step-by-step flow
Deploy
DC team
New

Description

Deploy production-ready cloud infrastructure from scratch using natural language. Define your stack and implement it step-by-step.

Target Roles

DevOps
Developers

Complete Prompt

# DevOps Infrastructure Setup Assistant
 
 ## Mission Statement
 You are an expert DevOps engineer who specializes in cloud infrastructure deployment and automation. Your role is to set up and deploy infrastructure for services from scratch on clean cloud accounts using Desktop Commander's CLI automation capabilities.
@@ -336,4 +336,4 @@
 - **Documentation**: Complete setup, maintenance, and troubleshooting guides
 - **Credentials**: Securely stored access information and connection details
 
-**Success Indicator: Your service is accessible, secure, and monitored, with clear procedures for maintenance and scaling as your needs grow.**
\ No newline at end of file +**Success Indicator: Your service is accessible, secure, and monitored, with clear procedures for maintenance and scaling as your needs grow.**
\ No newline at end of file diff --git a/docs/library/prompts/set-up-github-actions-cicd/index.html b/docs/library/prompts/set-up-github-actions-cicd/index.html index 64681326..d74db1fa 100644 --- a/docs/library/prompts/set-up-github-actions-cicd/index.html +++ b/docs/library/prompts/set-up-github-actions-cicd/index.html @@ -22,7 +22,7 @@

Set Up GitHub Actions CI/CD

Instant output
Deploy
Design systems
serg33v
New

Description

Create automated testing pipeline that runs tests on every push with proper workflow configuration.

Target Roles

Developers
DevOps

Complete Prompt

Set up GitHub Actions for [project path] to automatically run tests on every push with proper CI/CD workflow.
\ No newline at end of file +

Set Up GitHub Actions CI/CD

Instant output
Deploy
Design systems
serg33v
New

Description

Create automated testing pipeline that runs tests on every push with proper workflow configuration.

Target Roles

Developers
DevOps

Complete Prompt

Set up GitHub Actions for [project path] to automatically run tests on every push with proper CI/CD workflow.
\ No newline at end of file diff --git a/docs/library/prompts/set-up-google-analytics-and-analyze-traffic/index.html b/docs/library/prompts/set-up-google-analytics-and-analyze-traffic/index.html index f4d73f53..d7549c8d 100644 --- a/docs/library/prompts/set-up-google-analytics-and-analyze-traffic/index.html +++ b/docs/library/prompts/set-up-google-analytics-and-analyze-traffic/index.html @@ -22,7 +22,7 @@

Set up Google Analytics and analyze traffic

Step-by-step flow
Deploy
Automate tasks
DC team
New

Description

Analyze your traffic data from Google Analytics in natural language. This prompt will help you install prerequisites, configure Google Cloud, enable GA4 APIs, authenticate, create a Python virtual environment, and run a test analysis script. Covers macOS, Linux, and Windows with package-manager-aware steps, pre-flight checks, and troubleshooting.

Target Roles

Developers
Data analysts
DevOps

Complete Prompt

# πŸ€– Google Analytics Setup Agent
+    

Set up Google Analytics and analyze traffic

Step-by-step flow
Deploy
Automate tasks
DC team
New

Description

Analyze your traffic data from Google Analytics in natural language. This prompt will help you install prerequisites, configure Google Cloud, enable GA4 APIs, authenticate, create a Python virtual environment, and run a test analysis script. Covers macOS, Linux, and Windows with package-manager-aware steps, pre-flight checks, and troubleshooting.

Target Roles

Developers
Data analysts
DevOps

Complete Prompt

# πŸ€– Google Analytics Setup Agent
 You are an AI assistant with terminal and filesystem access. Guide users through Google Analytics API setup.
 
 ## πŸš€ CRITICAL: Pre-Flight Checks (Do FIRST!)
@@ -603,4 +603,4 @@
 
 ---
 
-**Key Improvement:** Windows users can now install via terminal with winget/chocolatey/scoop instead of manual downloads!
\ No newline at end of file +**Key Improvement:** Windows users can now install via terminal with winget/chocolatey/scoop instead of manual downloads!
\ No newline at end of file diff --git a/docs/library/prompts/set-up-local-development-environment/index.html b/docs/library/prompts/set-up-local-development-environment/index.html index b9073890..3ff797ed 100644 --- a/docs/library/prompts/set-up-local-development-environment/index.html +++ b/docs/library/prompts/set-up-local-development-environment/index.html @@ -22,7 +22,7 @@

Set Up Local Development Environment

Instant output
Deploy
Design systems
serg33v
New

Description

Configure complete local development environment with dependencies, databases, and development tools.

Target Roles

Developers
DevOps

Complete Prompt

Set up a complete local development environment for the project at [project path] including all dependencies and configurations.
\ No newline at end of file +

Set Up Local Development Environment

Instant output
Deploy
Design systems
serg33v
New

Description

Configure complete local development environment with dependencies, databases, and development tools.

Target Roles

Developers
DevOps

Complete Prompt

Set up a complete local development environment for the project at [project path] including all dependencies and configurations.
\ No newline at end of file diff --git a/docs/library/prompts/set-up-mongodb-database/index.html b/docs/library/prompts/set-up-mongodb-database/index.html index 6700ab3a..8937f2af 100644 --- a/docs/library/prompts/set-up-mongodb-database/index.html +++ b/docs/library/prompts/set-up-mongodb-database/index.html @@ -22,7 +22,7 @@

Set Up MongoDB Database

Instant output
Deploy
Design systems
serg33v
New

Description

Install and configure MongoDB server with replica sets, sharding, and security configurations.

Target Roles

Developers
DevOps

Complete Prompt

Set up a MongoDB database server with replica set configuration and security best practices.
\ No newline at end of file +

Set Up MongoDB Database

Instant output
Deploy
Design systems
serg33v
New

Description

Install and configure MongoDB server with replica sets, sharding, and security configurations.

Target Roles

Developers
DevOps

Complete Prompt

Set up a MongoDB database server with replica set configuration and security best practices.
\ No newline at end of file diff --git a/docs/library/prompts/set-up-mysql-database/index.html b/docs/library/prompts/set-up-mysql-database/index.html index 1ae651a4..226d9933 100644 --- a/docs/library/prompts/set-up-mysql-database/index.html +++ b/docs/library/prompts/set-up-mysql-database/index.html @@ -22,7 +22,7 @@

Set Up MySQL Database

Instant output
Deploy
Design systems
serg33v
New

Description

Install and configure MySQL server with optimized settings and security configurations.

Target Roles

Developers
DevOps

Complete Prompt

Set up a MySQL database server with optimal configuration for development and production use.
\ No newline at end of file +

Set Up MySQL Database

Instant output
Deploy
Design systems
serg33v
New

Description

Install and configure MySQL server with optimized settings and security configurations.

Target Roles

Developers
DevOps

Complete Prompt

Set up a MySQL database server with optimal configuration for development and production use.
\ No newline at end of file diff --git a/docs/library/prompts/set-up-new-project-structure/index.html b/docs/library/prompts/set-up-new-project-structure/index.html index fc5df228..72a68177 100644 --- a/docs/library/prompts/set-up-new-project-structure/index.html +++ b/docs/library/prompts/set-up-new-project-structure/index.html @@ -22,7 +22,7 @@

Set Up New Project Structure

Step-by-step flow
Deploy
Design systems
DC team
New

Description

Create complete project setup with standard structure and configs.

Target Roles

Developers
DevOps
Vibe Coders

Complete Prompt

# Project Setup Automation
+    

Set Up New Project Structure

Step-by-step flow
Deploy
Design systems
DC team
New

Description

Create complete project setup with standard structure and configs.

Target Roles

Developers
DevOps
Vibe Coders

Complete Prompt

# Project Setup Automation
 
 ## Mission Statement
 You are an expert project setup specialist who creates production-ready development environments. Your role is to establish complete project structures with all necessary configurations, development tools, and best practices using Desktop Commander capabilities.
@@ -281,4 +281,4 @@
 - **Configuration adjustments** for specific requirements
 - **Troubleshooting** setup issues or development environment problems
 - **Documentation updates** as the project grows
-- **Best practice updates** as standards evolve
\ No newline at end of file +- **Best practice updates** as standards evolve
\ No newline at end of file diff --git a/docs/library/prompts/set-up-postgresql-database/index.html b/docs/library/prompts/set-up-postgresql-database/index.html index c7214145..18133e49 100644 --- a/docs/library/prompts/set-up-postgresql-database/index.html +++ b/docs/library/prompts/set-up-postgresql-database/index.html @@ -22,7 +22,7 @@

Set Up PostgreSQL Database

Instant output
Deploy
Deploy
Design systems
serg33v
New

Description

Install and configure PostgreSQL server with performance tuning and security best practices.

Target Roles

Developers
DevOps

Complete Prompt

Set up a PostgreSQL database server with optimized configuration and security settings.
\ No newline at end of file +

Set Up PostgreSQL Database

Instant output
Deploy
Deploy
Design systems
serg33v
New

Description

Install and configure PostgreSQL server with performance tuning and security best practices.

Target Roles

Developers
DevOps

Complete Prompt

Set up a PostgreSQL database server with optimized configuration and security settings.
\ No newline at end of file diff --git a/docs/library/prompts/set-up-redis-server/index.html b/docs/library/prompts/set-up-redis-server/index.html index 82676694..53e0d43d 100644 --- a/docs/library/prompts/set-up-redis-server/index.html +++ b/docs/library/prompts/set-up-redis-server/index.html @@ -22,7 +22,7 @@

Set Up Redis Server

Instant output
Deploy
Design systems
serg33v
New

Description

Install and configure Redis server for caching, sessions, and high-performance data storage.

Target Roles

Developers
DevOps

Complete Prompt

Set up a Redis server with optimal configuration for caching and session management.
\ No newline at end of file +

Set Up Redis Server

Instant output
Deploy
Design systems
serg33v
New

Description

Install and configure Redis server for caching, sessions, and high-performance data storage.

Target Roles

Developers
DevOps

Complete Prompt

Set up a Redis server with optimal configuration for caching and session management.
\ No newline at end of file diff --git a/docs/library/prompts/set-up-wordpress-environment/index.html b/docs/library/prompts/set-up-wordpress-environment/index.html index d282075b..f6fd09fd 100644 --- a/docs/library/prompts/set-up-wordpress-environment/index.html +++ b/docs/library/prompts/set-up-wordpress-environment/index.html @@ -22,7 +22,7 @@

Set Up WordPress Environment

Step-by-step flow
Deploy
DC team
Emerging

Description

Set up your development environment, install dependencies and configure required tools.

Target Roles

Developers

Complete Prompt

## WordPress Development Environment Setup
+    

Set Up WordPress Environment

Step-by-step flow
Deploy
DC team
Emerging

Description

Set up your development environment, install dependencies and configure required tools.

Target Roles

Developers

Complete Prompt

## WordPress Development Environment Setup
 
 **WordPress environment setup requires focused approach to avoid over-engineering.**
 
@@ -152,4 +152,4 @@
    - Any specific WordPress version requirements?
    - Custom ports needed or default (8080 for WordPress) fine?
 
-**I'll start with the minimal viable setup and only add complexity you specifically request.**
\ No newline at end of file +**I'll start with the minimal viable setup and only add complexity you specifically request.**
\ No newline at end of file diff --git a/docs/library/prompts/setting-up-posthog-analytics-with-custom-events/index.html b/docs/library/prompts/setting-up-posthog-analytics-with-custom-events/index.html index 26bbf40a..93bbce39 100644 --- a/docs/library/prompts/setting-up-posthog-analytics-with-custom-events/index.html +++ b/docs/library/prompts/setting-up-posthog-analytics-with-custom-events/index.html @@ -22,7 +22,7 @@

Setting up Posthog Analytics with custom events

Verified by DC team
Step-by-step flow
Deploy
Analyze data
DC team
New

Description

Set up PostHog web analytics with event tracking, autocapture, reverse proxy configuration, and privacy compliance across marketing sites and web apps.

Target Roles

Developers
Professionals
Data analysts

Complete Prompt

# TASK NAME
+    

Setting up Posthog Analytics with custom events

Verified by DC team
Step-by-step flow
Deploy
Analyze data
DC team
New

Description

Set up PostHog web analytics with event tracking, autocapture, reverse proxy configuration, and privacy compliance across marketing sites and web apps.

Target Roles

Developers
Professionals
Data analysts

Complete Prompt

# TASK NAME
 Setting up Posthog Analytics with custom events
 
 ## Automation Mission Statement
@@ -185,4 +185,4 @@
 ---
 
 **Success Indicator:**  
-You have actionable, validated analytics tracking on your web property, with all integration and usage context fully documented and locally stored.
\ No newline at end of file +You have actionable, validated analytics tracking on your web property, with all integration and usage context fully documented and locally stored.
\ No newline at end of file diff --git a/docs/library/prompts/update-my-cvresume/index.html b/docs/library/prompts/update-my-cvresume/index.html index 93b5f667..3216591a 100644 --- a/docs/library/prompts/update-my-cvresume/index.html +++ b/docs/library/prompts/update-my-cvresume/index.html @@ -22,7 +22,7 @@

Update My CV/Resume

Verified by DC team
Instant output
Optimize workflow
DC team
New

Description

Quickly update your resume with new experience/skills.

Target Roles

Professionals
Developers
Vibe Coders
Content makers
Data analysts

Complete Prompt

Find my resume file in [folder], update my work experience section with [new job details], and save both the original and updated versions. Open the new file when you are done.
\ No newline at end of file +

Update My CV/Resume

Verified by DC team
Instant output
Optimize workflow
DC team
New

Description

Quickly update your resume with new experience/skills.

Target Roles

Professionals
Developers
Vibe Coders
Content makers
Data analysts

Complete Prompt

Find my resume file in [folder], update my work experience section with [new job details], and save both the original and updated versions. Open the new file when you are done.
\ No newline at end of file diff --git a/docs/library/prompts/visualize-database-schema/index.html b/docs/library/prompts/visualize-database-schema/index.html index 700174b7..7f07df3b 100644 --- a/docs/library/prompts/visualize-database-schema/index.html +++ b/docs/library/prompts/visualize-database-schema/index.html @@ -22,7 +22,7 @@

Visualize Database Schema

Instant output
Explore codebase
Write documentation
serg33v
New

Description

Generate visual database schema diagrams showing tables, relationships, and constraints.

Target Roles

Developers
DevOps

Complete Prompt

Analyze the database schema at [project path] and create a visual diagram showing all tables and relationships.
\ No newline at end of file +

Visualize Database Schema

Instant output
Explore codebase
Write documentation
serg33v
New

Description

Generate visual database schema diagrams showing tables, relationships, and constraints.

Target Roles

Developers
DevOps

Complete Prompt

Analyze the database schema at [project path] and create a visual diagram showing all tables and relationships.
\ No newline at end of file diff --git a/docs/library/prompts/visualize-microservices-communication/index.html b/docs/library/prompts/visualize-microservices-communication/index.html index b2dca191..bcb6d913 100644 --- a/docs/library/prompts/visualize-microservices-communication/index.html +++ b/docs/library/prompts/visualize-microservices-communication/index.html @@ -22,7 +22,7 @@

Visualize Microservices Communication

Step-by-step flow
Write documentation
Design systems
Explore codebase
DC team
New

Description

Create visual diagrams showing how your microservices interact, data flows, and potential bottlenecks.

Target Roles

Developers
DevOps

Complete Prompt

# Microservices Architecture Analysis & Visualization
+    

Visualize Microservices Communication

Step-by-step flow
Write documentation
Design systems
Explore codebase
DC team
New

Description

Create visual diagrams showing how your microservices interact, data flows, and potential bottlenecks.

Target Roles

Developers
DevOps

Complete Prompt

# Microservices Architecture Analysis & Visualization
 
 ## Mission Statement
 You are an expert software architect and systems analyst who specializes in microservices architecture analysis. Your role is to comprehensively analyze service codebases, map inter-service communication patterns, identify dependencies, and create clear visual representations of system architecture using Desktop Commander capabilities.
@@ -275,4 +275,4 @@
 5. **Actionable Insights**: Specific recommendations for architectural improvements
 6. **Documentation**: Comprehensive reports suitable for technical teams and stakeholders
 
-**Evidence of success**: Development teams can understand the complete system architecture, identify bottlenecks, and make informed architectural decisions based on the analysis and visualizations provided.
\ No newline at end of file +**Evidence of success**: Development teams can understand the complete system architecture, identify bottlenecks, and make informed architectural decisions based on the analysis and visualizations provided.
\ No newline at end of file diff --git a/docs/library/prompts/visualize-project-architecture/index.html b/docs/library/prompts/visualize-project-architecture/index.html index 4a78e951..9bae55bb 100644 --- a/docs/library/prompts/visualize-project-architecture/index.html +++ b/docs/library/prompts/visualize-project-architecture/index.html @@ -22,7 +22,7 @@

Visualize Project Architecture

Instant output
Explore codebase
serg33v
New

Description

Create visual diagrams showing your system's components, dependencies, and data flow patterns.

Target Roles

Developers
DevOps

Complete Prompt

Analyze the project at [project path] and create a visual architecture diagram showing all components and their relationships.
\ No newline at end of file +

Visualize Project Architecture

Instant output
Explore codebase
serg33v
New

Description

Create visual diagrams showing your system's components, dependencies, and data flow patterns.

Target Roles

Developers
DevOps

Complete Prompt

Analyze the project at [project path] and create a visual architecture diagram showing all components and their relationships.
\ No newline at end of file diff --git a/docs/library/prompts/visualize-terraform-architecture/index.html b/docs/library/prompts/visualize-terraform-architecture/index.html index 79bdb62d..4f478006 100644 --- a/docs/library/prompts/visualize-terraform-architecture/index.html +++ b/docs/library/prompts/visualize-terraform-architecture/index.html @@ -22,7 +22,7 @@

Visualize Terraform Architecture

Instant output
Explore codebase
Write documentation
serg33v
New

Description

Create diagrams showing Terraform infrastructure resources, dependencies, and deployment topology.

Target Roles

Developers
DevOps

Complete Prompt

Analyze the Terraform configuration at [project path] and create a visual diagram of the infrastructure.
\ No newline at end of file +

Visualize Terraform Architecture

Instant output
Explore codebase
Write documentation
serg33v
New

Description

Create diagrams showing Terraform infrastructure resources, dependencies, and deployment topology.

Target Roles

Developers
DevOps

Complete Prompt

Analyze the Terraform configuration at [project path] and create a visual diagram of the infrastructure.
\ No newline at end of file diff --git a/docs/product/early-access/index.html b/docs/product/early-access/index.html index bd8501df..328108c9 100644 --- a/docs/product/early-access/index.html +++ b/docs/product/early-access/index.html @@ -22,7 +22,7 @@ + })();

+

Take control of your machine.

Local filesystem access. Pick your own model. Infinite chats. diff --git a/docs/product/test/index.html b/docs/product/test/index.html index 24085cd8..b201c0ca 100644 --- a/docs/product/test/index.html +++ b/docs/product/test/index.html @@ -22,7 +22,7 @@

Test Page

If you can read this with proper styling, the Layout works!

\ No newline at end of file +

Test Page

If you can read this with proper styling, the Layout works!

\ No newline at end of file diff --git a/docs/sitemap.xml b/docs/sitemap.xml index 2d1af3c0..ebcc8641 100644 --- a/docs/sitemap.xml +++ b/docs/sitemap.xml @@ -3,489 +3,489 @@ https://desktopcommander.app/ - 2025-12-15 + 2025-12-19 weekly 1.0 https://desktopcommander.app/careers/ - 2025-12-15 + 2025-12-19 monthly 0.7 https://desktopcommander.app/library/ - 2025-12-15 + 2025-12-19 weekly 0.9 https://desktopcommander.app/library/prompts/ - 2025-12-15 + 2025-12-19 daily 0.9 https://desktopcommander.app/use-cases/ - 2025-12-15 + 2025-12-19 weekly 0.9 https://desktopcommander.app/use-cases/file-management/ - 2025-12-15 + 2025-12-19 weekly 0.9 https://desktopcommander.app/use-cases/knowledge-management/ - 2025-12-15 + 2025-12-19 weekly 0.9 https://desktopcommander.app/use-cases/build-prototype/ - 2025-12-15 + 2025-12-19 weekly 0.9 https://desktopcommander.app/library/prompts/build-a-feature-from-scratch/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/analyze-my-data-file/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/set-up-local-development-environment/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/clean-up-unused-code/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/explain-react-component-architecture/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/organise-my-downloads-folder/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/build-personal-finance-tracker/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/automate-competitor-research/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/analyze-error-handling-strategy/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/implement-github-issue/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/set-up-new-project-structure/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/create-knowledge-base-folder/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/visualize-microservices-communication/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/create-team-onboarding-documentation/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/optimize-docker-setup/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/document-system-architecture/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/generate-dev-onboarding-guide/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/assess-scalability-challenges/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/document-dependencies-and-tools/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/plan-migration-strategy/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/create-git-history-presentation/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/build-github-issues-dashboard/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/find-error-patterns-in-logs/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/compare-config-files-to-baseline/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/update-my-cvresume/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/remove-background-from-profile-picture/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/merge-two-pdfs/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/convert-heic-to-png/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/convert-edoc-to-doc/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/create-folder-with-images/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/batch-convert-and-rename-images/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/organize-pdf-invoices-by-date/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/extract-data-from-pdfs/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/rename-bank-statements-by-account/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/find-large-receipts-by-vendor/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/consolidate-data-files-into-one/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/remove-duplicate-contacts-from-spreadsheet/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/find-all-todo-comments/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/generate-tests-for-missing-coverage/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/get-my-ip-address/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/set-up-cloud-infrastructure/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/set-up-wordpress-environment/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/document-api-endpoints/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/assess-technical-debt/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/assess-projects-security/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/explain-codebase-or-repository/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/create-project-documentation/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/find-invoices-and-move-them-to-folder/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/visualize-project-architecture/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/generate-architecture-diagram/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/document-rest-api-endpoints/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/document-graphql-schema/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/visualize-database-schema/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/create-database-schema-diagram/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/explain-docker-configuration/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/visualize-terraform-architecture/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/document-ansible-configuration/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/explain-cicd-pipeline/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/debug-remote-server-errors/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/optimize-database-schema/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/set-up-mysql-database/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/set-up-postgresql-database/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/set-up-mongodb-database/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/set-up-redis-server/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/generate-docker-configuration/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/set-up-github-actions-cicd/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/audit-authentication-security/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/analyze-test-coverage-gaps/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/build-and-deploy-landing-page/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/set-up-google-analytics-and-analyze-traffic/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/manage-wordpress-site-in-natural-language/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/library/prompts/setting-up-posthog-analytics-with-custom-events/ - 2025-12-15 + 2025-12-19 weekly 0.8 https://desktopcommander.app/careers/jobs/senior-fullstack-ai-engineer-2025/ - 2025-12-15 + 2025-12-19 monthly 0.7 diff --git a/docs/use-cases/analyze-data/index.html b/docs/use-cases/analyze-data/index.html index 3d3ed4e4..7b1eb75b 100644 --- a/docs/use-cases/analyze-data/index.html +++ b/docs/use-cases/analyze-data/index.html @@ -22,7 +22,7 @@

Analyze data in natural language

Process large files, find patterns, and automate reportsβ€”without learning Python or watching AI hallucinate your numbers.

Works with:
CSVExcelJSONPythonPandas

Data analysis shouldn't take so much time and effort.

You have spreadsheets full of answersβ€”but getting them out is painful. Excel breaks on large files. ChatGPT hallucinates when you paste data in. Learning Python and Pandas takes weeks. So you either do it manually, hire someone, or make decisions without the full picture.

Desktop Commander turns plain English into accurate data analysis.

Describe what you want to knowβ€”DC writes Python scripts, runs them on your actual files, and returns real results.

Analyze files of any size

Process thousands of rows without crashes or context limitsβ€”DC runs Python locally, not in a chat window.

Get accurate results, not hallucinations

DC reads the actual file and runs real calculations on your machineβ€”no guessing, no summarizing, no truncated data.

Skip the Python learning curve

Describe what you want to know. DC writes and runs the code for you.

Describe what you want→DC writes Python→Runs it on your actual file→Returns real results

70% of users save 3+ hours per week with Desktop Commander

Explore your data instantly

Understand what you're working with before diving deep.

"Analyze the sales data in /Downloads/q4_sales.csv β€” show me the columns, data types, and any obvious patterns"

Answer specific business questions

Get the numbers you need without writing formulas.

"From this customer spreadsheet, show me which regions have the highest churn rate and break it down by plan type"

Automate recurring reports

Build analysis you can run again and again.

"Create a Python script that generates a weekly summary from my transaction logs β€” totals by category, top 10 vendors, and month-over-month comparison"

Why This Approach Is Different

Excel / Google Sheets

Slow and manual. Requires learning formulas, pivot tables, and navigating endless sheets.

Paste data into AI chat

Context limits force you to truncate. AI "summarizes" instead of calculating. Hallucinated numbers.

Learn Python yourself

Weeks of tutorials before you're productive. Easy to make mistakes.

Desktop Commander

Describe what you want β†’ DC writes Python β†’ runs it on your actual file β†’ returns real results.

Files stay on your machine

No uploading spreadsheets to websites. DC reads your files locally and runs Python scripts right on your computerβ€”no context window limits.

Real code, real calculations

DC doesn't guess at your dataβ€”it writes Python scripts that run actual computations. You can see the code, verify the logic, and reuse it.

How It Works

Desktop Commander makes data analysis as simple as asking a question

1

Join the Early Access Program

Sign up to get priority access when Desktop Commander launches. Be among the first to experience AI-powered data analysis.

2

Describe what you need

"Analyze this CSV and find the top trends" or "Create a weekly report from my sales data" β€” just type it naturally.

3

Done

Desktop Commander writes and runs Python scripts on your actual files. Real calculations, accurate results β€” all privately on your machine.

Who This Is For

Business operators & founders

  • Analyze customer data without waiting for engineering
  • Get answers from spreadsheets in minutes, not days
  • Make data-backed decisions without hiring analysts

Analysts hitting tool limits

  • Process files too large for Excel
  • Automate repetitive report generation
  • Skip the copy-paste-into-AI workflow

Your spreadsheets have answers. Start asking questions.

Desktop Commander gives you Python's power without Python's learning curve.

Analyze locallyGet accurate results
\ No newline at end of file +

Analyze data in natural language

Process large files, find patterns, and automate reportsβ€”without learning Python or watching AI hallucinate your numbers.

Works with:
CSVExcelJSONPythonPandas

Data analysis shouldn't take so much time and effort.

You have spreadsheets full of answersβ€”but getting them out is painful. Excel breaks on large files. ChatGPT hallucinates when you paste data in. Learning Python and Pandas takes weeks. So you either do it manually, hire someone, or make decisions without the full picture.

Desktop Commander turns plain English into accurate data analysis.

Describe what you want to knowβ€”DC writes Python scripts, runs them on your actual files, and returns real results.

Analyze files of any size

Process thousands of rows without crashes or context limitsβ€”DC runs Python locally, not in a chat window.

Get accurate results, not hallucinations

DC reads the actual file and runs real calculations on your machineβ€”no guessing, no summarizing, no truncated data.

Skip the Python learning curve

Describe what you want to know. DC writes and runs the code for you.

Describe what you want→DC writes Python→Runs it on your actual file→Returns real results

70% of users save 3+ hours per week with Desktop Commander

Explore your data instantly

Understand what you're working with before diving deep.

"Analyze the sales data in /Downloads/q4_sales.csv β€” show me the columns, data types, and any obvious patterns"

Answer specific business questions

Get the numbers you need without writing formulas.

"From this customer spreadsheet, show me which regions have the highest churn rate and break it down by plan type"

Automate recurring reports

Build analysis you can run again and again.

"Create a Python script that generates a weekly summary from my transaction logs β€” totals by category, top 10 vendors, and month-over-month comparison"

Why This Approach Is Different

Excel / Google Sheets

Slow and manual. Requires learning formulas, pivot tables, and navigating endless sheets.

Paste data into AI chat

Context limits force you to truncate. AI "summarizes" instead of calculating. Hallucinated numbers.

Learn Python yourself

Weeks of tutorials before you're productive. Easy to make mistakes.

Desktop Commander

Describe what you want β†’ DC writes Python β†’ runs it on your actual file β†’ returns real results.

Files stay on your machine

No uploading spreadsheets to websites. DC reads your files locally and runs Python scripts right on your computerβ€”no context window limits.

Real code, real calculations

DC doesn't guess at your dataβ€”it writes Python scripts that run actual computations. You can see the code, verify the logic, and reuse it.

How It Works

Desktop Commander makes data analysis as simple as asking a question

1

Join the Early Access Program

Sign up to get priority access when Desktop Commander launches. Be among the first to experience AI-powered data analysis.

2

Describe what you need

"Analyze this CSV and find the top trends" or "Create a weekly report from my sales data" β€” just type it naturally.

3

Done

Desktop Commander writes and runs Python scripts on your actual files. Real calculations, accurate results β€” all privately on your machine.

Who This Is For

Business operators & founders

  • Analyze customer data without waiting for engineering
  • Get answers from spreadsheets in minutes, not days
  • Make data-backed decisions without hiring analysts

Analysts hitting tool limits

  • Process files too large for Excel
  • Automate repetitive report generation
  • Skip the copy-paste-into-AI workflow

Your spreadsheets have answers. Start asking questions.

Desktop Commander gives you Python's power without Python's learning curve.

Analyze locallyGet accurate results
\ No newline at end of file diff --git a/docs/use-cases/build-prototype/index.html b/docs/use-cases/build-prototype/index.html index 55048c76..c4eacfe3 100644 --- a/docs/use-cases/build-prototype/index.html +++ b/docs/use-cases/build-prototype/index.html @@ -22,7 +22,7 @@

Build software without learning how to code

Describe what you want to buildβ€”AI writes the code, saves it locally, and you own every file.

Works with:
PythonJavaScriptHTML/CSSGitTerminal

Technical barriers shouldn't stop you from building stuff.

Every founder has automation ideas, app concepts, and workflows that could save hours. But CLIs feel cryptic, deployment seems scary, and hiring a developer for a quick script doesn't make sense. So the ideas stay ideas.

Desktop Commander turns plain English into working code on your machine.

It fills the gaps in your technical skills and lets you build like a full-stack developer.

Build without learning to code

Create functional apps, sites, and scriptsβ€”skip the technical learning curve and just build.

Connect the services you need

Integrate APIs, databases, and third-party appsβ€”just describe what should talk to what.

Deploy without the complexity

Track changes in Git, deploy to GitHub Pages or anywhere elseβ€”no commands to memorize.

70% of users save 3+ hours per week with Desktop Commander

Build apps and webpages without coding

Desktop Commander writes the HTML, CSS, and JavaScript, saves it locally, and you can preview it immediately.

"Create a simple landing page for my newsletter with an email signup form"

Write scripts that automate your workflow

Working automation in seconds, not hours of Stack Overflow.

"Write a Python script that renames all my client folders to include today's date"

Connect third-party services

Integrate APIs, databases, and analytics without reading documentation.

"Add Google Analytics tracking to my project"

Deploy and manage without DevOps knowledge

Complex technical setup becomes a simple request.

"Set up a local development server for this project"

Why This Approach is Different

Build locally, deploy anywhere

Everything runs on your machine first. No cloud IDE, no vendor lock-in. When you're ready, connect to databases, APIs, or deploy to any hosting service. Local-first means faster iteration and complete ownership of your code.

Save and undo without learning Git

Want to track your changes? Just ask. Desktop Commander handles Git for youβ€”save your progress, roll back mistakes, or restore earlier versions using natural language.

Learn by doing

Watch how your requests become real code. Over time, you'll understand what's happeningβ€”without needing to learn first.

DC vs. Cloud AI Builders

Build faster with full system access.

Cloud AI BuildersDesktop Commander
Where it runsCloud servers with queues and usage limitsDirectly on your machineβ€”instant, unlimited
What you getGenerated codeWorking resultβ€”dependencies installed, servers running
Project contextCopy-paste into each chat, re-explain every timeSees your local files, picks up where you left off
InterfaceDifferent tools for code, terminal, filesOne chat for everything

Runs on your machine

No cloud servers, no waiting, no limits. Start locally, deploy when ready.

From idea to working result

Installs dependencies, runs commands, shows results. Recipe vs. dinner.

Your files, always connected

DC sees your files and picks up where you left off.

Just describe what you need

Plain English for all technical tasks. No syntax to learn.

With Desktop Commander vs. Without

With Desktop Commander

  • Describe what you want in plain English
  • Get working code in minutes
  • Iterate instantlyβ€”"make the button blue," "add a login page"
  • Git tracking and rollbackβ€”"commit this version," "roll back to yesterday"
  • Connect tools and servicesβ€”"set up Google Analytics for my project"
  • Build locally, deploy when ready

Without Desktop Commander

  • Learn syntax, frameworks, and CLI commands first
  • Hours of tutorials and writing code manually
  • Copy-paste from Stack Overflow and pray it works
  • Manual Git commands (or no version control at all)

How It Works

Desktop Commander makes file management as simple as having a conversation

1

Join the Early Access Program

Sign up to get priority access when Desktop Commander launches. Be among the first to experience AI-native file management.

2

Describe what you need

"Organize my Downloads by file type" or "Create a markdown summary of this folder" β€” just type it naturally.

3

Done

Desktop Commander handles it instantly. Your files are organized, converted, or found β€” all privately on your machine.

What Our Users Build with Desktop Commander

Founders & Indie Builders

  • Landing pages and marketing sites
  • MVPs to validate ideas before hiring developers
  • Internal tools to run their business
  • Automations that save hours each week

Multi-Hat Professionals

  • Scripts to automate repetitive tasks
  • Data processing tools for reports
  • Custom utilities for their workflow
  • Quick prototypes to pitch ideas

Creators & Makers

  • Portfolio sites and personal projects
  • Tools to support their content workflow
  • Experiments and side projects
  • Learning projects to build technical skills

Build things you never thought you could.

Desktop Commander removes the technical barriers between your concepts and working software.

Build locallyShip anywhere
\ No newline at end of file +

Build software without learning how to code

Describe what you want to buildβ€”AI writes the code, saves it locally, and you own every file.

Works with:
PythonJavaScriptHTML/CSSGitTerminal

Technical barriers shouldn't stop you from building stuff.

Every founder has automation ideas, app concepts, and workflows that could save hours. But CLIs feel cryptic, deployment seems scary, and hiring a developer for a quick script doesn't make sense. So the ideas stay ideas.

Desktop Commander turns plain English into working code on your machine.

It fills the gaps in your technical skills and lets you build like a full-stack developer.

Build without learning to code

Create functional apps, sites, and scriptsβ€”skip the technical learning curve and just build.

Connect the services you need

Integrate APIs, databases, and third-party appsβ€”just describe what should talk to what.

Deploy without the complexity

Track changes in Git, deploy to GitHub Pages or anywhere elseβ€”no commands to memorize.

70% of users save 3+ hours per week with Desktop Commander

Build apps and webpages without coding

Desktop Commander writes the HTML, CSS, and JavaScript, saves it locally, and you can preview it immediately.

"Create a simple landing page for my newsletter with an email signup form"

Write scripts that automate your workflow

Working automation in seconds, not hours of Stack Overflow.

"Write a Python script that renames all my client folders to include today's date"

Connect third-party services

Integrate APIs, databases, and analytics without reading documentation.

"Add Google Analytics tracking to my project"

Deploy and manage without DevOps knowledge

Complex technical setup becomes a simple request.

"Set up a local development server for this project"

Why This Approach is Different

Build locally, deploy anywhere

Everything runs on your machine first. No cloud IDE, no vendor lock-in. When you're ready, connect to databases, APIs, or deploy to any hosting service. Local-first means faster iteration and complete ownership of your code.

Save and undo without learning Git

Want to track your changes? Just ask. Desktop Commander handles Git for youβ€”save your progress, roll back mistakes, or restore earlier versions using natural language.

Learn by doing

Watch how your requests become real code. Over time, you'll understand what's happeningβ€”without needing to learn first.

DC vs. Cloud AI Builders

Build faster with full system access.

Cloud AI BuildersDesktop Commander
Where it runsCloud servers with queues and usage limitsDirectly on your machineβ€”instant, unlimited
What you getGenerated codeWorking resultβ€”dependencies installed, servers running
Project contextCopy-paste into each chat, re-explain every timeSees your local files, picks up where you left off
InterfaceDifferent tools for code, terminal, filesOne chat for everything

Runs on your machine

No cloud servers, no waiting, no limits. Start locally, deploy when ready.

From idea to working result

Installs dependencies, runs commands, shows results. Recipe vs. dinner.

Your files, always connected

DC sees your files and picks up where you left off.

Just describe what you need

Plain English for all technical tasks. No syntax to learn.

With Desktop Commander vs. Without

With Desktop Commander

  • Describe what you want in plain English
  • Get working code in minutes
  • Iterate instantlyβ€”"make the button blue," "add a login page"
  • Git tracking and rollbackβ€”"commit this version," "roll back to yesterday"
  • Connect tools and servicesβ€”"set up Google Analytics for my project"
  • Build locally, deploy when ready

Without Desktop Commander

  • Learn syntax, frameworks, and CLI commands first
  • Hours of tutorials and writing code manually
  • Copy-paste from Stack Overflow and pray it works
  • Manual Git commands (or no version control at all)

How It Works

Desktop Commander makes file management as simple as having a conversation

1

Join the Early Access Program

Sign up to get priority access when Desktop Commander launches. Be among the first to experience AI-native file management.

2

Describe what you need

"Organize my Downloads by file type" or "Create a markdown summary of this folder" β€” just type it naturally.

3

Done

Desktop Commander handles it instantly. Your files are organized, converted, or found β€” all privately on your machine.

What Our Users Build with Desktop Commander

Founders & Indie Builders

  • Landing pages and marketing sites
  • MVPs to validate ideas before hiring developers
  • Internal tools to run their business
  • Automations that save hours each week

Multi-Hat Professionals

  • Scripts to automate repetitive tasks
  • Data processing tools for reports
  • Custom utilities for their workflow
  • Quick prototypes to pitch ideas

Creators & Makers

  • Portfolio sites and personal projects
  • Tools to support their content workflow
  • Experiments and side projects
  • Learning projects to build technical skills

Build things you never thought you could.

Desktop Commander removes the technical barriers between your concepts and working software.

Build locallyShip anywhere
\ No newline at end of file diff --git a/docs/use-cases/connect-apps/index.html b/docs/use-cases/connect-apps/index.html index 28e49999..165f6ecb 100644 --- a/docs/use-cases/connect-apps/index.html +++ b/docs/use-cases/connect-apps/index.html @@ -22,7 +22,7 @@

Control your apps and services through chat

Connect Desktop Commander to 100+ tools you already use. Manage your CRM, publish content, check analytics, and more β€” all in natural language.

Works with:
HubSpotWordPressGoogle AnalyticsGitHubAhrefs+ 100 more

You're spending more time in dashboards than doing actual work.

Every tool has its own interface to learn, its own menus to navigate. You spend hours clicking through settings, switching tabs, and copying data between platforms. The tools meant to help you are slowing you down.

Desktop Commander connects to your tools and lets you control them in plain English.

Cut hours of dashboard time

No more hunting through menus or remembering where settings live β€” just ask for what you need and get it instantly.

Connect 100+ services

HubSpot, WordPress, Google Analytics, GitHub, Ahrefs, and more β€” your whole stack, one conversation.

Build frictionless workflows

Pull data from one service, push to another, automate across your stack β€” remove the friction from everything you do.

70% of users save 3+ hours per week with Desktop Commander

Featured Integrations

Connect once, control forever. Here are some of the most popular integrations.

WordPress

Publish posts, edit themes, manage plugins β€” without touching the admin panel.

Google Analytics

Get traffic insights and reports in plain English β€” no dashboard navigation.

HubSpot

Manage contacts, deals, and pipelines through conversation.

GitHub

Commits, branches, PRs β€” version control without CLI commands.

Ahrefs

Check rankings, analyze competitors, pull SEO data β€” just ask.

+ 100 more

Connect the tools you already use.

What You Can Do

Install an integration, then control it through chat

Manage your CRM without opening HubSpot

Create contacts, update deals, pull reports β€” all from chat.

"Show me all deals closing this month over $10k"

Publish content without touching WordPress

Write, edit, and publish β€” without navigating the admin panel.

"Publish my draft post about product updates and schedule it for Monday 9am"

Get analytics insights without the dashboards

Ask questions about your data instead of building reports.

"What were my top 5 traffic sources last week?"

Version control without learning Git commands

Commit, branch, and push β€” in plain English.

"Commit these changes with message 'Fixed pricing page' and push to main"

Why This Approach is Different

One interface, zero friction

Instead of context-switching between dashboards, you work in one place. No menus to learn, no tabs to manage β€” just ask and get.

Runs locally, connects globally

Desktop Commander runs on your machine β€” fast, private, no cloud queues. But it connects to all your cloud services when you need them.

Automate across your stack

Chain actions across services: "When a new lead comes in, create a task in Notion and send me a Slack message." Describe it once, run it forever.

With Desktop Commander vs. Without

With Desktop Commander

  • One conversation to control all your tools
  • Ask for data in plain English
  • Save 3+ hours every week on dashboard navigation
  • Automate across services without code
  • No UI to learn, no tabs to manage

Without Desktop Commander

  • Switch between 10+ dashboards daily
  • Click through menus to find what you need
  • Export/import data between tools manually
  • Learn each platform's interface separately

How It Works

Three steps to control your entire stack

1

Join the Waitlist

Get early access when we launch. Be among the first to experience AI-powered app control.

2

Connect your services

Install integrations for HubSpot, WordPress, GitHub, Google Analytics β€” whatever you use.

3

Work in natural language

"Show me..." "Update..." "Create..." β€” just describe what you need and it happens.

Who This Is For

Founders & Operators

  • Manage CRM, analytics, and content from one place
  • Get quick answers without building reports
  • Save hours on repetitive admin work

Marketers & Content Creators

  • Publish and schedule without dashboard fatigue
  • Pull performance data instantly
  • Connect content tools to analytics

Developers & Technical Teams

  • Git operations without CLI memorization
  • Quick deploys and status checks
  • Integrate dev tools with project management

Stop switching tabs. Start saving hours.

70% of Desktop Commander users save 3+ hours per week. Connect your tools and control your entire stack through conversation.

One chatAll your tools
\ No newline at end of file +

Control your apps and services through chat

Connect Desktop Commander to 100+ tools you already use. Manage your CRM, publish content, check analytics, and more β€” all in natural language.

Works with:
HubSpotWordPressGoogle AnalyticsGitHubAhrefs+ 100 more

You're spending more time in dashboards than doing actual work.

Every tool has its own interface to learn, its own menus to navigate. You spend hours clicking through settings, switching tabs, and copying data between platforms. The tools meant to help you are slowing you down.

Desktop Commander connects to your tools and lets you control them in plain English.

Cut hours of dashboard time

No more hunting through menus or remembering where settings live β€” just ask for what you need and get it instantly.

Connect 100+ services

HubSpot, WordPress, Google Analytics, GitHub, Ahrefs, and more β€” your whole stack, one conversation.

Build frictionless workflows

Pull data from one service, push to another, automate across your stack β€” remove the friction from everything you do.

70% of users save 3+ hours per week with Desktop Commander

Featured Integrations

Connect once, control forever. Here are some of the most popular integrations.

WordPress

Publish posts, edit themes, manage plugins β€” without touching the admin panel.

Google Analytics

Get traffic insights and reports in plain English β€” no dashboard navigation.

HubSpot

Manage contacts, deals, and pipelines through conversation.

GitHub

Commits, branches, PRs β€” version control without CLI commands.

Ahrefs

Check rankings, analyze competitors, pull SEO data β€” just ask.

+ 100 more

Connect the tools you already use.

What You Can Do

Install an integration, then control it through chat

Manage your CRM without opening HubSpot

Create contacts, update deals, pull reports β€” all from chat.

"Show me all deals closing this month over $10k"

Publish content without touching WordPress

Write, edit, and publish β€” without navigating the admin panel.

"Publish my draft post about product updates and schedule it for Monday 9am"

Get analytics insights without the dashboards

Ask questions about your data instead of building reports.

"What were my top 5 traffic sources last week?"

Version control without learning Git commands

Commit, branch, and push β€” in plain English.

"Commit these changes with message 'Fixed pricing page' and push to main"

Why This Approach is Different

One interface, zero friction

Instead of context-switching between dashboards, you work in one place. No menus to learn, no tabs to manage β€” just ask and get.

Runs locally, connects globally

Desktop Commander runs on your machine β€” fast, private, no cloud queues. But it connects to all your cloud services when you need them.

Automate across your stack

Chain actions across services: "When a new lead comes in, create a task in Notion and send me a Slack message." Describe it once, run it forever.

With Desktop Commander vs. Without

With Desktop Commander

  • One conversation to control all your tools
  • Ask for data in plain English
  • Save 3+ hours every week on dashboard navigation
  • Automate across services without code
  • No UI to learn, no tabs to manage

Without Desktop Commander

  • Switch between 10+ dashboards daily
  • Click through menus to find what you need
  • Export/import data between tools manually
  • Learn each platform's interface separately

How It Works

Three steps to control your entire stack

1

Join the Waitlist

Get early access when we launch. Be among the first to experience AI-powered app control.

2

Connect your services

Install integrations for HubSpot, WordPress, GitHub, Google Analytics β€” whatever you use.

3

Work in natural language

"Show me..." "Update..." "Create..." β€” just describe what you need and it happens.

Who This Is For

Founders & Operators

  • Manage CRM, analytics, and content from one place
  • Get quick answers without building reports
  • Save hours on repetitive admin work

Marketers & Content Creators

  • Publish and schedule without dashboard fatigue
  • Pull performance data instantly
  • Connect content tools to analytics

Developers & Technical Teams

  • Git operations without CLI memorization
  • Quick deploys and status checks
  • Integrate dev tools with project management

Stop switching tabs. Start saving hours.

70% of Desktop Commander users save 3+ hours per week. Connect your tools and control your entire stack through conversation.

One chatAll your tools
\ No newline at end of file diff --git a/docs/use-cases/file-management/index.html b/docs/use-cases/file-management/index.html index 83e09c81..a83162cc 100644 --- a/docs/use-cases/file-management/index.html +++ b/docs/use-cases/file-management/index.html @@ -22,7 +22,7 @@
AI Processing β€’ No Random Sites

Your personal file organizer β€” move, edit, convert files in natural language

Manage files by simply describing what you want. Desktop Commander connects your AI directly to your filesβ€”no random conversion websites, no manual workflows.

Save timeKeep files safeManage all in natural language

You shouldn't have to upload files to random websites to get things done.

Every time you upload a file to convert it, organize it, or analyze it, you're trusting a random website with your data. Your personal documents, photos, and sensitive files deserve better than sketchy online tools.

70% of our users save 3+ hours per week

Work with your files directly

Desktop Commander connects your AI assistant directly to files on your computer. Files are processed through your trusted AI providerβ€”no random third-party conversion sites, no downloading and re-uploading.

Find and organize files by describing them

"Find all invoices from Q3 and move them to my accounting folder" β†’ Desktop Commander locates them and organizes them for you.

Try this command in Desktop Commander app:

"Find all invoices from Q3 and move them to my accounting folder"

Convert any file format instantly

"Convert these HEIC photos to JPG" β†’ Done instantly, without uploading to random websites or installing bloatware. Works with HEIC to JPG, PDF to Word, image formats, and more.

Try this command in Desktop Commander app:

"Convert these HEIC photos to JPG"

Clean up folders with simple instructions

"Organize my downloads folder by file type" β†’ Your files are sorted exactly how you'd like them.

Try this command in Desktop Commander app:

"Organize my downloads folder by file type"

Analyze data files directly

"Show me the trends in this CSV" or "What are the totals in this Excel file?" β†’ Desktop Commander reads and analyzes spreadsheets, data files, and documents without opening multiple programs.

Try this command in Desktop Commander app:

"Show me the trends in this CSV"

The smarter way to manage your files

⚑

Save time

70% users save 3+ hours per week using DC

πŸ”’

Keep files secure

Do not use random websites to work with your files

🎯

Do it all in one app

Manage all file operations - from converting to moving files with AI

How It Works

Three simple steps to manage your files

1

Install and open Desktop Commander

One-time setup takes less than a minute

2

Ask in natural language what you need

Just describe what you want in plain English

3

See everything done automatically on your computer

Files organized, converted, or analyzedβ€”instantly

AI Processing β€’ No Random Sites

Connect AI to Your Files

Desktop Commander connects your AI assistant directly to your files. File processing happens through your trusted AI providerβ€”no sketchy third-party websites.

With Desktop Commander

  • Direct access to files on your computer
  • Processed by Claude, ChatGPT, Gemini, or Qwen
  • No random third-party conversion websites
  • You control what files your AI accesses

Random Online Tools

  • Files uploaded to unknown third-party servers
  • Sketchy websites with malware risks
  • Unknown data handling and privacy policies
  • Manual download and re-upload workflows
πŸ’»

Your Computer

Desktop Commander accesses files here

πŸ“„
πŸ–ΌοΈ
πŸ“Š
Directly Processed By
πŸ€–

Your AI Provider

ClaudeChatGPTGeminiQwen

How data is handled

Desktop Commander connects your AI directly to files on your computer. Your files are processed by your chosen AI provider (Claude, ChatGPT, Gemini, or Qwen)β€”not random third-party websites. You get AI-powered file management without the risk.

What Our Users Do with Desktop Commander

Organizing years of accumulated files

Sort 3 years of downloads by file type and date in under a minute

Converting image formats without extra software

Transform 200+ HEIC photos to JPG locally while working on something elseβ€”no uploading to sketchy websites

Finding scattered documents

Locate all Q1 invoices across different folders and consolidate them before tax timeβ€”find 47+ documents in seconds

Working with unfamiliar formats

Convert EDOC files to DOC format instantly so you can keep working without installing extra software

Converting PDFs to editable formats

Transform PDF reports to Word to edit actual text instead of retyping everything

Analyzing data files quickly

Process CSV files with thousands of rows to show top products and monthly trends in 2 minutes instead of spending an hour in Excel

How It Works

Desktop Commander makes file management as simple as having a conversation

1

Join the Early Access Program

Sign up to get priority access when Desktop Commander launches. Be among the first to experience AI-native file management.

2

Describe what you need

"Organize my Downloads by file type" or "Create a markdown summary of this folder" β€” just type it naturally.

3

Done

Desktop Commander handles it instantly. Your files are organized, converted, or found β€” all privately on your machine.

Your files are on your computer.
Managing them should be simple.

Desktop Commander is the file organizer that works the way you thinkβ€”through natural language instead of complex commands.

Works on MacWindowsLinux
Direct file access β€’ No sketchy websites
\ No newline at end of file +
AI Processing β€’ No Random Sites

Your personal file organizer β€” move, edit, convert files in natural language

Manage files by simply describing what you want. Desktop Commander connects your AI directly to your filesβ€”no random conversion websites, no manual workflows.

Save timeKeep files safeManage all in natural language

You shouldn't have to upload files to random websites to get things done.

Every time you upload a file to convert it, organize it, or analyze it, you're trusting a random website with your data. Your personal documents, photos, and sensitive files deserve better than sketchy online tools.

70% of our users save 3+ hours per week

Work with your files directly

Desktop Commander connects your AI assistant directly to files on your computer. Files are processed through your trusted AI providerβ€”no random third-party conversion sites, no downloading and re-uploading.

Find and organize files by describing them

"Find all invoices from Q3 and move them to my accounting folder" β†’ Desktop Commander locates them and organizes them for you.

Try this command in Desktop Commander app:

"Find all invoices from Q3 and move them to my accounting folder"

Convert any file format instantly

"Convert these HEIC photos to JPG" β†’ Done instantly, without uploading to random websites or installing bloatware. Works with HEIC to JPG, PDF to Word, image formats, and more.

Try this command in Desktop Commander app:

"Convert these HEIC photos to JPG"

Clean up folders with simple instructions

"Organize my downloads folder by file type" β†’ Your files are sorted exactly how you'd like them.

Try this command in Desktop Commander app:

"Organize my downloads folder by file type"

Analyze data files directly

"Show me the trends in this CSV" or "What are the totals in this Excel file?" β†’ Desktop Commander reads and analyzes spreadsheets, data files, and documents without opening multiple programs.

Try this command in Desktop Commander app:

"Show me the trends in this CSV"

The smarter way to manage your files

⚑

Save time

70% users save 3+ hours per week using DC

πŸ”’

Keep files secure

Do not use random websites to work with your files

🎯

Do it all in one app

Manage all file operations - from converting to moving files with AI

How It Works

Three simple steps to manage your files

1

Install and open Desktop Commander

One-time setup takes less than a minute

2

Ask in natural language what you need

Just describe what you want in plain English

3

See everything done automatically on your computer

Files organized, converted, or analyzedβ€”instantly

AI Processing β€’ No Random Sites

Connect AI to Your Files

Desktop Commander connects your AI assistant directly to your files. File processing happens through your trusted AI providerβ€”no sketchy third-party websites.

With Desktop Commander

  • Direct access to files on your computer
  • Processed by Claude, ChatGPT, Gemini, or Qwen
  • No random third-party conversion websites
  • You control what files your AI accesses

Random Online Tools

  • Files uploaded to unknown third-party servers
  • Sketchy websites with malware risks
  • Unknown data handling and privacy policies
  • Manual download and re-upload workflows
πŸ’»

Your Computer

Desktop Commander accesses files here

πŸ“„
πŸ–ΌοΈ
πŸ“Š
Directly Processed By
πŸ€–

Your AI Provider

ClaudeChatGPTGeminiQwen

How data is handled

Desktop Commander connects your AI directly to files on your computer. Your files are processed by your chosen AI provider (Claude, ChatGPT, Gemini, or Qwen)β€”not random third-party websites. You get AI-powered file management without the risk.

What Our Users Do with Desktop Commander

Organizing years of accumulated files

Sort 3 years of downloads by file type and date in under a minute

Converting image formats without extra software

Transform 200+ HEIC photos to JPG locally while working on something elseβ€”no uploading to sketchy websites

Finding scattered documents

Locate all Q1 invoices across different folders and consolidate them before tax timeβ€”find 47+ documents in seconds

Working with unfamiliar formats

Convert EDOC files to DOC format instantly so you can keep working without installing extra software

Converting PDFs to editable formats

Transform PDF reports to Word to edit actual text instead of retyping everything

Analyzing data files quickly

Process CSV files with thousands of rows to show top products and monthly trends in 2 minutes instead of spending an hour in Excel

How It Works

Desktop Commander makes file management as simple as having a conversation

1

Join the Early Access Program

Sign up to get priority access when Desktop Commander launches. Be among the first to experience AI-native file management.

2

Describe what you need

"Organize my Downloads by file type" or "Create a markdown summary of this folder" β€” just type it naturally.

3

Done

Desktop Commander handles it instantly. Your files are organized, converted, or found β€” all privately on your machine.

Your files are on your computer.
Managing them should be simple.

Desktop Commander is the file organizer that works the way you thinkβ€”through natural language instead of complex commands.

Works on MacWindowsLinux
Direct file access β€’ No sketchy websites
\ No newline at end of file diff --git a/docs/use-cases/index.html b/docs/use-cases/index.html index d7520642..972e6632 100644 --- a/docs/use-cases/index.html +++ b/docs/use-cases/index.html @@ -22,7 +22,7 @@
\ No newline at end of file +
\ No newline at end of file diff --git a/docs/use-cases/knowledge-management/index.html b/docs/use-cases/knowledge-management/index.html index b91dc476..32f3a5b3 100644 --- a/docs/use-cases/knowledge-management/index.html +++ b/docs/use-cases/knowledge-management/index.html @@ -22,7 +22,7 @@

Your AI knowledge assistant β€” organize your knowledge in local filesystem by talking with AI

Keep your knowledge base up-to-date automatically by directly managing your markdown files, documentation, and notes.

Works with:
ObsidianGoogle DriveVS CodeLocal Files

Without organized context, AI tools can't deliver their full value.

Each AI conversation could build on the last. Instead, insights disappear when tabs close. Documentation goes stale. The same questions get asked repeatedly because the context that would make AI truly powerful remains fragmented across tools.

How Desktop Commander Solves It

Desktop Commander doesn't just read your filesβ€”it writes, edits, and organizes them directly.

1

Install Desktop Commander

Download the app and connect your preferred AI model (Claude, GPT-4, etc.)

2

Point to your project folder

Tell it where your files liveβ€”Obsidian vault, codebase, or any local folder

3

Work naturally with your AI

Ask questions, discuss ideas, get helpβ€”just like normal chat

4

Use simple commands to manage your knowledge

"Save this to my notes" β€’ "Organize by topic" β€’ "Update the README"

What you get

Never lose valuable insights

Every useful answer can be instantly saved to your knowledge base

Self-maintaining documentation

Your notes and docs update themselves based on your work

End context switching

Work with your AI and your files in one unified flow

See it in action

Create, update, and organize your knowledge base with simple commands

Turn conversations into permanent knowledge

"Save this explanation to my notes"

Keep documentation synchronized

"Update the README based on our changes"

Organize without manual filing

"Move meeting notes to Q4 folder"

Build living knowledge bases

"Create a technical spec from our discussion"

Why Desktop Commander is Different

Context That Persists Across Conversations

Traditional AI Chat

  • 1.Upload or paste context files every session
  • 2.Re-explain project background each time
  • 3.Copy valuable answers before tab closes
  • 4.Manually maintain what the AI should "remember"
  • 5.Start from zero in the next conversation

With Desktop Commander

  • 1.Point to knowledge base folder once: "Use ~/Documents/ProjectContext"
  • 2.AI automatically finds relevant context for each question
  • 3.Answers build on existing knowledge
  • 4.Updates context files as work progresses
  • 5.Every conversation starts where the last one ended

Why Markdown Files?

Markdown is the only format that's native to both AI and humans. Large language models don't need to parse proprietary formats or guess at structureβ€”they read and write markdown fluently. And unlike database entries or app-specific notes, your knowledge stays in plain text files you can open anywhere, on any device, decades from now.

Works With Your Existing Tools

Desktop Commander enhances the tools you already use, without replacing them

πŸ““

With Obsidian

  • Writes new notes directly to your vault
  • Updates existing notes with new information
  • Creates backlinks and tags automatically
πŸ’»

With VS Code & Codebases

  • Generates documentation from code
  • Updates README files automatically
  • Creates architecture notes from your codebase
☁️

With Google Drive

  • Edits documents in place
  • Organizes files across folders
  • Creates summary documents
πŸ“

With Local Markdown Files

  • Complete privacyβ€”everything stays on your machine
  • Works with any markdown-based system
  • Git-friendly for version control

Git-Native Knowledge Management

Unlike cloud-based tools, Desktop Commander's markdown approach is Git-friendly:

Every change can be committed and tracked
Push to GitHub for backup without proprietary sync
Use existing developer workflows for documentation
Collaborate through pull requests, not permission settings
Roll back changes using Git history, not app-specific versions

What Our Users Do with Desktop Commander

Developers

  • β€’Generate documentation from codebases
  • β€’Update README files after code changes
  • β€’Create architecture notes from existing code
  • β€’Maintain technical specs alongside development

Knowledge Workers

  • β€’Build and maintain project context documents
  • β€’Transform meeting notes into actionable documentation
  • β€’Create knowledge bases from scattered information
  • β€’Organize Obsidian vaults and markdown files automatically

Teams

  • β€’Keep shared documentation current
  • β€’Synchronize knowledge across tools
  • β€’Create project overviews from scattered files
  • β€’Maintain decision logs from discussions

How It Works

Desktop Commander makes file management as simple as having a conversation

1

Join the Early Access Program

Sign up to get priority access when Desktop Commander launches. Be among the first to experience AI-native file management.

2

Describe what you need

"Organize my Downloads by file type" or "Create a markdown summary of this folder" β€” just type it naturally.

3

Done

Desktop Commander handles it instantly. Your files are organized, converted, or found β€” all privately on your machine.

Your knowledge deserves better than copy-paste.

Desktop Commander transforms AI conversations into permanent, organized knowledge. Stop losing valuable insights to closed browser tabsβ€”build a knowledge base that maintains itself.

Works with:ObsidianGoogle DriveVS CodeLocal Files
Turn conversations into knowledge. Automatically.
\ No newline at end of file +

Your AI knowledge assistant β€” organize your knowledge in local filesystem by talking with AI

Keep your knowledge base up-to-date automatically by directly managing your markdown files, documentation, and notes.

Works with:
ObsidianGoogle DriveVS CodeLocal Files

Without organized context, AI tools can't deliver their full value.

Each AI conversation could build on the last. Instead, insights disappear when tabs close. Documentation goes stale. The same questions get asked repeatedly because the context that would make AI truly powerful remains fragmented across tools.

How Desktop Commander Solves It

Desktop Commander doesn't just read your filesβ€”it writes, edits, and organizes them directly.

1

Install Desktop Commander

Download the app and connect your preferred AI model (Claude, GPT-4, etc.)

2

Point to your project folder

Tell it where your files liveβ€”Obsidian vault, codebase, or any local folder

3

Work naturally with your AI

Ask questions, discuss ideas, get helpβ€”just like normal chat

4

Use simple commands to manage your knowledge

"Save this to my notes" β€’ "Organize by topic" β€’ "Update the README"

What you get

Never lose valuable insights

Every useful answer can be instantly saved to your knowledge base

Self-maintaining documentation

Your notes and docs update themselves based on your work

End context switching

Work with your AI and your files in one unified flow

See it in action

Create, update, and organize your knowledge base with simple commands

Turn conversations into permanent knowledge

"Save this explanation to my notes"

Keep documentation synchronized

"Update the README based on our changes"

Organize without manual filing

"Move meeting notes to Q4 folder"

Build living knowledge bases

"Create a technical spec from our discussion"

Why Desktop Commander is Different

Context That Persists Across Conversations

Traditional AI Chat

  • 1.Upload or paste context files every session
  • 2.Re-explain project background each time
  • 3.Copy valuable answers before tab closes
  • 4.Manually maintain what the AI should "remember"
  • 5.Start from zero in the next conversation

With Desktop Commander

  • 1.Point to knowledge base folder once: "Use ~/Documents/ProjectContext"
  • 2.AI automatically finds relevant context for each question
  • 3.Answers build on existing knowledge
  • 4.Updates context files as work progresses
  • 5.Every conversation starts where the last one ended

Why Markdown Files?

Markdown is the only format that's native to both AI and humans. Large language models don't need to parse proprietary formats or guess at structureβ€”they read and write markdown fluently. And unlike database entries or app-specific notes, your knowledge stays in plain text files you can open anywhere, on any device, decades from now.

Works With Your Existing Tools

Desktop Commander enhances the tools you already use, without replacing them

πŸ““

With Obsidian

  • Writes new notes directly to your vault
  • Updates existing notes with new information
  • Creates backlinks and tags automatically
πŸ’»

With VS Code & Codebases

  • Generates documentation from code
  • Updates README files automatically
  • Creates architecture notes from your codebase
☁️

With Google Drive

  • Edits documents in place
  • Organizes files across folders
  • Creates summary documents
πŸ“

With Local Markdown Files

  • Complete privacyβ€”everything stays on your machine
  • Works with any markdown-based system
  • Git-friendly for version control

Git-Native Knowledge Management

Unlike cloud-based tools, Desktop Commander's markdown approach is Git-friendly:

Every change can be committed and tracked
Push to GitHub for backup without proprietary sync
Use existing developer workflows for documentation
Collaborate through pull requests, not permission settings
Roll back changes using Git history, not app-specific versions

What Our Users Do with Desktop Commander

Developers

  • β€’Generate documentation from codebases
  • β€’Update README files after code changes
  • β€’Create architecture notes from existing code
  • β€’Maintain technical specs alongside development

Knowledge Workers

  • β€’Build and maintain project context documents
  • β€’Transform meeting notes into actionable documentation
  • β€’Create knowledge bases from scattered information
  • β€’Organize Obsidian vaults and markdown files automatically

Teams

  • β€’Keep shared documentation current
  • β€’Synchronize knowledge across tools
  • β€’Create project overviews from scattered files
  • β€’Maintain decision logs from discussions

How It Works

Desktop Commander makes file management as simple as having a conversation

1

Join the Early Access Program

Sign up to get priority access when Desktop Commander launches. Be among the first to experience AI-native file management.

2

Describe what you need

"Organize my Downloads by file type" or "Create a markdown summary of this folder" β€” just type it naturally.

3

Done

Desktop Commander handles it instantly. Your files are organized, converted, or found β€” all privately on your machine.

Your knowledge deserves better than copy-paste.

Desktop Commander transforms AI conversations into permanent, organized knowledge. Stop losing valuable insights to closed browser tabsβ€”build a knowledge base that maintains itself.

Works with:ObsidianGoogle DriveVS CodeLocal Files
Turn conversations into knowledge. Automatically.
\ No newline at end of file diff --git a/docs/videos/welcome-allow-tools.mp4 b/docs/videos/welcome-allow-tools.mp4 new file mode 100644 index 00000000..d542638d Binary files /dev/null and b/docs/videos/welcome-allow-tools.mp4 differ diff --git a/docs/videos/welcome-enable-dc.mp4 b/docs/videos/welcome-enable-dc.mp4 new file mode 100644 index 00000000..769d7cc3 Binary files /dev/null and b/docs/videos/welcome-enable-dc.mp4 differ diff --git a/docs/videos/welcome-try-prompt.mp4 b/docs/videos/welcome-try-prompt.mp4 new file mode 100644 index 00000000..dbf48dfb Binary files /dev/null and b/docs/videos/welcome-try-prompt.mp4 differ diff --git a/docs/welcome/index.html b/docs/welcome/index.html new file mode 100644 index 00000000..b60e9a92 --- /dev/null +++ b/docs/welcome/index.html @@ -0,0 +1,162 @@ + Welcome to Desktop Commander +

+Desktop Commander Installed! +

+You're ready to supercharge Claude Desktop +

Start Here

Try Your First Command

+Copy this into Claude Desktop: +

+Organize my Downloads folder by file type +

Having Issues?

+Quick fixes for common setup problems: +

Level Up Your Automations

+Get weekly tips, new prompt ideas, and be first to know about new features. +

Privacy Policy Β· No spam, unsubscribe anytime +

\ No newline at end of file diff --git a/public/videos/welcome-allow-tools.mp4 b/public/videos/welcome-allow-tools.mp4 new file mode 100644 index 00000000..d542638d Binary files /dev/null and b/public/videos/welcome-allow-tools.mp4 differ diff --git a/public/videos/welcome-enable-dc.mp4 b/public/videos/welcome-enable-dc.mp4 new file mode 100644 index 00000000..769d7cc3 Binary files /dev/null and b/public/videos/welcome-enable-dc.mp4 differ diff --git a/public/videos/welcome-try-prompt.mp4 b/public/videos/welcome-try-prompt.mp4 new file mode 100644 index 00000000..dbf48dfb Binary files /dev/null and b/public/videos/welcome-try-prompt.mp4 differ