vibedoc 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-build-manifest.json +23 -18
- package/.next/app-path-routes-manifest.json +1 -1
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.js +1 -1
- package/.next/prerender-manifest.json +1 -1
- package/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/board/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/docs/page.js +1 -1
- package/.next/server/app/(app)/docs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/memory/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/setup/page.js +2 -1
- package/.next/server/app/(app)/setup/page.js.nft.json +1 -1
- package/.next/server/app/(app)/setup/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/activity.html +1 -1
- package/.next/server/app/activity.rsc +2 -2
- package/.next/server/app/api/mcp/route.js +10 -100
- package/.next/server/app/api/mcp/route.js.nft.json +1 -1
- package/.next/server/app/api/setup/generate/route.js +23 -84
- package/.next/server/app/api/setup/generate/route.js.nft.json +1 -1
- package/.next/server/app/board.html +1 -1
- package/.next/server/app/board.rsc +2 -2
- package/.next/server/app/docs.html +1 -1
- package/.next/server/app/docs.rsc +3 -3
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +1 -1
- package/.next/server/app/memory.html +1 -1
- package/.next/server/app/memory.rsc +2 -2
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +2 -2
- package/.next/server/app/setup.html +1 -1
- package/.next/server/app/setup.rsc +3 -3
- package/.next/server/app-paths-manifest.json +9 -9
- package/.next/server/chunks/118.js +2107 -0
- package/.next/server/chunks/191.js +2107 -91
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/pages-manifest.json +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/2401-65366c9431a3dcca.js +16 -0
- package/.next/static/chunks/5179-76391417caead0bc.js +1 -0
- package/.next/static/chunks/6441-8a1066f99fe4fead.js +1 -0
- package/.next/static/chunks/app/(app)/docs/{page-17670ed46c3594e6.js → page-f5615cefbd3d1c64.js} +1 -1
- package/.next/static/chunks/app/(app)/{layout-34b4046ccf919d3f.js → layout-ef459e6f184dba6b.js} +1 -1
- package/.next/static/chunks/app/(app)/setup/page-a47e3a9a44666f50.js +1 -0
- package/.next/static/css/48c54dd7bfa2411e.css +5 -0
- package/README.md +33 -26
- package/bin/vibedoc.js +66 -39
- package/package.json +1 -1
- package/.next/static/chunks/845-0e3438196b5ef62c.js +0 -1
- package/.next/static/chunks/app/(app)/setup/page-9fd82b10016eca64.js +0 -16
- package/.next/static/css/615004f0fff77145.css +0 -5
- /package/.next/static/{r-2w-yCd6mM7TOOETgGaA → SozubT4AiNYJ3ynkRV0zo}/_buildManifest.js +0 -0
- /package/.next/static/{r-2w-yCd6mM7TOOETgGaA → SozubT4AiNYJ3ynkRV0zo}/_ssgManifest.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[845],{82825:function(e,t,a){a.d(t,{t:function(){return p}});var n=a(59533),s=a(31229),r=a(21263),o=a(66611),d=a(52284),i=a(72374),l=a(220),c=a(13191),u=a(8637);let f=new Date().toISOString().split("T")[0],m=[{id:"blank",name:"Blank Document",description:"Empty markdown file",defaultPath:"docs/untitled.md",content:"# Untitled\n\n"},{id:"claude-md",name:"CLAUDE.md",description:"AI agent instructions for Claude Code",defaultPath:"CLAUDE.md",content:"# Project Instructions\n\n## What this is\n\n## Stack\n\n## Commands\n```bash\n# install\n# dev\n# build\n```\n\n## Key conventions\n\n## Non-negotiables\n"},{id:"agents-md",name:"AGENTS.md",description:"AI agent instructions (multi-agent)",defaultPath:"AGENTS.md",content:"# Agent Instructions\n\n## Overview\n\n## Agents\n\n### Agent 1\n- **Role:**\n- **Tools:**\n\n## Shared conventions\n"},{id:"prd",name:"Product Requirements",description:"Product requirements document",defaultPath:"docs/prd.md",content:"# Product Requirements\n\n**Status:** Draft\n**Last updated:** ".concat(f,"\n\n## Problem\n\n## Goals\n\n## Non-goals\n\n## Requirements\n\n### Functional\n\n### Non-functional\n\n## Open questions\n")},{id:"architecture-overview",name:"Architecture Overview",description:"System architecture doc",defaultPath:"docs/architecture/overview.md",content:"# Architecture Overview\n\n**Last updated:** ".concat(f,"\n\n## Diagram\n\n```mermaid\ngraph TB\n A[Client] --> B[API]\n B --> C[DB]\n```\n\n## Components\n\n## Key decisions\n")},{id:"api-reference",name:"API Reference",description:"API endpoints reference",defaultPath:"docs/api-reference.md",content:"# API Reference\n\n## Base URL\n\n```\nhttps://api.example.com/v1\n```\n\n## Authentication\n\n## Endpoints\n\n### GET /resource\n\n**Response:**\n```json\n{}\n```\n"},{id:"runbook",name:"Runbook",description:"Operational runbook",defaultPath:"docs/runbook.md",content:"# Runbook\n\n**Last updated:** ".concat(f,"\n\n## Overview\n\n## Procedures\n\n### Deploy\n\n### Rollback\n\n### Troubleshooting\n\n## Contacts\n")},{id:"adr",name:"Architecture Decision",description:"Architecture Decision Record",defaultPath:"docs/architecture/decisions/ADR-001.md",content:"# ADR-001: Title\n\n**Status:** Proposed\n**Date:** ".concat(f,"\n\n## Context\n\n## Decision\n\n## Rationale\n\n## Consequences\n")},{id:"meeting-notes",name:"Meeting Notes",description:"Meeting notes template",defaultPath:"docs/meetings/".concat(f,".md"),content:"# Meeting Notes — ".concat(f,"\n\n**Attendees:**\n\n## Agenda\n\n## Notes\n\n## Action items\n\n| Action | Owner | Due |\n|--------|-------|-----|\n| | | |\n")},{id:"onboarding",name:"Onboarding Guide",description:"Developer onboarding guide",defaultPath:"docs/onboarding.md",content:"# Developer Onboarding\n\n**Last updated:** ".concat(f,"\n\n## Setup\n\n```bash\ngit clone <repo>\nnpm install\nnpm run dev\n```\n\n## Project structure\n\n## Key concepts\n\n## Who to ask\n")}];function p(e){let{open:t,onOpenChange:a,rootParam:f,onDocCreated:p}=e,[x,h]=(0,s.useState)(1),[g,b]=(0,s.useState)(null),[v,k]=(0,s.useState)(""),[N,y]=(0,s.useState)(""),[w,j]=(0,s.useState)(!1);async function C(){if(g&&v.trim()){y(""),j(!0);try{let e=await fetch("/api/docs".concat(f),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:v.trim(),content:g.content})});if(409===e.status){y("File already exists"),j(!1);return}if(!e.ok){let t=await e.json();y(t.error||"Failed to create file"),j(!1);return}a(!1),p(v.trim())}catch(e){y("Network error"),j(!1)}}}return(0,s.useEffect)(()=>{t&&(h(1),b(null),k(""),y(""),j(!1))},[t]),(0,n.jsx)(i.Vq,{open:t,onOpenChange:a,children:(0,n.jsxs)(i.cZ,{className:"max-w-2xl bg-surface border-border",children:[(0,n.jsx)(i.fK,{children:(0,n.jsx)(i.$N,{className:"text-txt text-sm font-semibold",children:1===x?"Choose a template":"Confirm file path"})}),1===x&&(0,n.jsx)(u.x,{className:"max-h-[420px]",children:(0,n.jsx)("div",{className:"grid grid-cols-3 gap-2 p-1",children:m.map(e=>(0,n.jsxs)("button",{onClick:()=>{b(e),k(e.defaultPath),y(""),h(2)},className:(0,d.cn)("flex flex-col items-start gap-1.5 p-3 rounded-lg border border-border text-left","bg-surface2 hover:bg-surface2/80 hover:border-accent/50 transition-colors"),children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)(r.Z,{className:"h-3.5 w-3.5 text-accent shrink-0"}),(0,n.jsx)("span",{className:"text-xs font-medium text-txt",children:e.name})]}),(0,n.jsx)("p",{className:"text-[11px] text-muted leading-relaxed",children:e.description}),(0,n.jsx)("p",{className:"text-[10px] text-muted/60 font-mono truncate w-full",children:e.defaultPath})]},e.id))})}),2===x&&g&&(0,n.jsxs)("div",{className:"space-y-4",children:[(0,n.jsxs)("div",{className:"flex items-start gap-3 p-3 rounded-lg bg-surface2 border border-border",children:[(0,n.jsx)(r.Z,{className:"h-4 w-4 text-accent shrink-0 mt-0.5"}),(0,n.jsxs)("div",{children:[(0,n.jsx)("p",{className:"text-xs font-medium text-txt",children:g.name}),(0,n.jsx)("p",{className:"text-[11px] text-muted mt-0.5",children:g.description})]})]}),(0,n.jsxs)("div",{className:"space-y-1.5",children:[(0,n.jsx)("label",{className:"text-[11px] font-medium text-muted uppercase tracking-wider",children:"File path"}),(0,n.jsx)(c.I,{autoFocus:!0,value:v,onChange:e=>{k(e.target.value),y("")},onKeyDown:e=>{"Enter"===e.key&&C()},placeholder:"docs/my-document.md",className:"h-8 text-xs bg-surface2 border-border font-mono"}),N&&(0,n.jsx)("p",{className:"text-[11px] text-red-400",children:N})]}),(0,n.jsxs)("div",{className:"flex items-center justify-between pt-1",children:[(0,n.jsxs)(l.z,{variant:"ghost",size:"sm",onClick:()=>h(1),className:"h-7 text-xs text-muted hover:text-txt gap-1.5",children:[(0,n.jsx)(o.Z,{className:"h-3 w-3"}),"Back"]}),(0,n.jsx)(l.z,{size:"sm",onClick:C,disabled:w||!v.trim(),className:"h-7 text-xs bg-accent hover:bg-accent/90 text-white",children:w?"Creating…":"Create"})]})]})]})})}},71301:function(e,t,a){a.d(t,{C:function(){return d}});var n=a(59533);a(31229);var s=a(95084),r=a(52284);let o=(0,s.j)("inline-flex items-center rounded-full border border-slate-200 px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-slate-950 focus:ring-offset-2 dark:border-slate-800 dark:focus:ring-slate-300",{variants:{variant:{default:"border-transparent bg-slate-900 text-slate-50 hover:bg-slate-900/80 dark:bg-slate-50 dark:text-slate-900 dark:hover:bg-slate-50/80",secondary:"border-transparent bg-slate-100 text-slate-900 hover:bg-slate-100/80 dark:bg-slate-800 dark:text-slate-50 dark:hover:bg-slate-800/80",destructive:"border-transparent bg-red-500 text-slate-50 hover:bg-red-500/80 dark:bg-red-900 dark:text-slate-50 dark:hover:bg-red-900/80",outline:"text-slate-950 dark:text-slate-50"}},defaultVariants:{variant:"default"}});function d(e){let{className:t,variant:a,...s}=e;return(0,n.jsx)("div",{className:(0,r.cn)(o({variant:a}),t),...s})}},220:function(e,t,a){a.d(t,{z:function(){return l}});var n=a(59533),s=a(31229),r=a(38777),o=a(95084),d=a(52284);let i=(0,o.j)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-white transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-slate-950 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 dark:ring-offset-slate-950 dark:focus-visible:ring-slate-300",{variants:{variant:{default:"bg-slate-900 text-slate-50 hover:bg-slate-900/90 dark:bg-slate-50 dark:text-slate-900 dark:hover:bg-slate-50/90",destructive:"bg-red-500 text-slate-50 hover:bg-red-500/90 dark:bg-red-900 dark:text-slate-50 dark:hover:bg-red-900/90",outline:"border border-slate-200 bg-white hover:bg-slate-100 hover:text-slate-900 dark:border-slate-800 dark:bg-slate-950 dark:hover:bg-slate-800 dark:hover:text-slate-50",secondary:"bg-slate-100 text-slate-900 hover:bg-slate-100/80 dark:bg-slate-800 dark:text-slate-50 dark:hover:bg-slate-800/80",ghost:"hover:bg-slate-100 hover:text-slate-900 dark:hover:bg-slate-800 dark:hover:text-slate-50",link:"text-slate-900 underline-offset-4 hover:underline dark:text-slate-50"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),l=s.forwardRef((e,t)=>{let{className:a,variant:s,size:o,asChild:l=!1,...c}=e,u=l?r.g7:"button";return(0,n.jsx)(u,{className:(0,d.cn)(i({variant:s,size:o,className:a})),ref:t,...c})});l.displayName="Button"},72374:function(e,t,a){a.d(t,{$N:function(){return m},Vq:function(){return i},cZ:function(){return u},fK:function(){return f}});var n=a(59533),s=a(31229),r=a(68778),o=a(46850),d=a(52284);let i=r.fC;r.xz;let l=r.h_;r.x8;let c=s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,n.jsx)(r.aV,{ref:t,className:(0,d.cn)("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",a),...s})});c.displayName=r.aV.displayName;let u=s.forwardRef((e,t)=>{let{className:a,children:s,...i}=e;return(0,n.jsxs)(l,{children:[(0,n.jsx)(c,{}),(0,n.jsxs)(r.VY,{ref:t,className:(0,d.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-slate-200 bg-white p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg dark:border-slate-800 dark:bg-slate-950",a),...i,children:[s,(0,n.jsxs)(r.x8,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-slate-950 focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-slate-100 data-[state=open]:text-slate-500 dark:ring-offset-slate-950 dark:focus:ring-slate-300 dark:data-[state=open]:bg-slate-800 dark:data-[state=open]:text-slate-400",children:[(0,n.jsx)(o.Z,{className:"h-4 w-4"}),(0,n.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})});u.displayName=r.VY.displayName;let f=e=>{let{className:t,...a}=e;return(0,n.jsx)("div",{className:(0,d.cn)("flex flex-col space-y-1.5 text-center sm:text-left",t),...a})};f.displayName="DialogHeader";let m=s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,n.jsx)(r.Dx,{ref:t,className:(0,d.cn)("text-lg font-semibold leading-none tracking-tight",a),...s})});m.displayName=r.Dx.displayName,s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,n.jsx)(r.dk,{ref:t,className:(0,d.cn)("text-sm text-slate-500 dark:text-slate-400",a),...s})}).displayName=r.dk.displayName},83373:function(e,t,a){a.d(t,{$F:function(){return u},AW:function(){return f},Xi:function(){return m},h_:function(){return c}});var n=a(59533),s=a(31229),r=a(9140),o=a(12794),d=a(20508),i=a(34457),l=a(52284);let c=r.fC,u=r.xz;r.ZA,r.Uv,r.Tr,r.Ee,s.forwardRef((e,t)=>{let{className:a,inset:s,children:d,...i}=e;return(0,n.jsxs)(r.fF,{ref:t,className:(0,l.cn)("flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-slate-100 data-[state=open]:bg-slate-100 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 dark:focus:bg-slate-800 dark:data-[state=open]:bg-slate-800",s&&"pl-8",a),...i,children:[d,(0,n.jsx)(o.Z,{className:"ml-auto"})]})}).displayName=r.fF.displayName,s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,n.jsx)(r.tu,{ref:t,className:(0,l.cn)("z-50 min-w-[8rem] overflow-hidden rounded-md border border-slate-200 bg-white p-1 text-slate-950 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 origin-[--radix-dropdown-menu-content-transform-origin] dark:border-slate-800 dark:bg-slate-950 dark:text-slate-50",a),...s})}).displayName=r.tu.displayName;let f=s.forwardRef((e,t)=>{let{className:a,sideOffset:s=4,...o}=e;return(0,n.jsx)(r.Uv,{children:(0,n.jsx)(r.VY,{ref:t,sideOffset:s,className:(0,l.cn)("z-50 max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border border-slate-200 bg-white p-1 text-slate-950 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 origin-[--radix-dropdown-menu-content-transform-origin] dark:border-slate-800 dark:bg-slate-950 dark:text-slate-50",a),...o})})});f.displayName=r.VY.displayName;let m=s.forwardRef((e,t)=>{let{className:a,inset:s,...o}=e;return(0,n.jsx)(r.ck,{ref:t,className:(0,l.cn)("relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-slate-100 focus:text-slate-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 dark:focus:bg-slate-800 dark:focus:text-slate-50",s&&"pl-8",a),...o})});m.displayName=r.ck.displayName,s.forwardRef((e,t)=>{let{className:a,children:s,checked:o,...i}=e;return(0,n.jsxs)(r.oC,{ref:t,className:(0,l.cn)("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-slate-100 focus:text-slate-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:focus:bg-slate-800 dark:focus:text-slate-50",a),checked:o,...i,children:[(0,n.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,n.jsx)(r.wU,{children:(0,n.jsx)(d.Z,{className:"h-4 w-4"})})}),s]})}).displayName=r.oC.displayName,s.forwardRef((e,t)=>{let{className:a,children:s,...o}=e;return(0,n.jsxs)(r.Rk,{ref:t,className:(0,l.cn)("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-slate-100 focus:text-slate-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:focus:bg-slate-800 dark:focus:text-slate-50",a),...o,children:[(0,n.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,n.jsx)(r.wU,{children:(0,n.jsx)(i.Z,{className:"h-2 w-2 fill-current"})})}),s]})}).displayName=r.Rk.displayName,s.forwardRef((e,t)=>{let{className:a,inset:s,...o}=e;return(0,n.jsx)(r.__,{ref:t,className:(0,l.cn)("px-2 py-1.5 text-sm font-semibold",s&&"pl-8",a),...o})}).displayName=r.__.displayName,s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,n.jsx)(r.Z0,{ref:t,className:(0,l.cn)("-mx-1 my-1 h-px bg-slate-100 dark:bg-slate-800",a),...s})}).displayName=r.Z0.displayName},13191:function(e,t,a){a.d(t,{I:function(){return o}});var n=a(59533),s=a(31229),r=a(52284);let o=s.forwardRef((e,t)=>{let{className:a,type:s,...o}=e;return(0,n.jsx)("input",{type:s,className:(0,r.cn)("flex h-10 w-full rounded-md border border-slate-200 bg-white px-3 py-2 text-base ring-offset-white file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-slate-950 placeholder:text-slate-500 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-slate-950 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:border-slate-800 dark:bg-slate-950 dark:ring-offset-slate-950 dark:file:text-slate-50 dark:placeholder:text-slate-400 dark:focus-visible:ring-slate-300",a),ref:t,...o})});o.displayName="Input"},8637:function(e,t,a){a.d(t,{x:function(){return d}});var n=a(59533),s=a(31229),r=a(19006),o=a(52284);let d=s.forwardRef((e,t)=>{let{className:a,children:s,...d}=e;return(0,n.jsxs)(r.fC,{ref:t,className:(0,o.cn)("relative overflow-hidden",a),...d,children:[(0,n.jsx)(r.l_,{className:"h-full w-full rounded-[inherit]",children:s}),(0,n.jsx)(i,{}),(0,n.jsx)(r.Ns,{})]})});d.displayName=r.fC.displayName;let i=s.forwardRef((e,t)=>{let{className:a,orientation:s="vertical",...d}=e;return(0,n.jsx)(r.gb,{ref:t,orientation:s,className:(0,o.cn)("flex touch-none select-none transition-colors","vertical"===s&&"h-full w-2.5 border-l border-l-transparent p-[1px]","horizontal"===s&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",a),...d,children:(0,n.jsx)(r.q4,{className:"relative flex-1 rounded-full bg-slate-200 dark:bg-slate-800"})})});i.displayName=r.gb.displayName},12301:function(e,t,a){a.d(t,{Z:function(){return d}});var n=a(59533),s=a(31229),r=a(513),o=a(52284);let d=s.forwardRef((e,t)=>{let{className:a,orientation:s="horizontal",decorative:d=!0,...i}=e;return(0,n.jsx)(r.f,{ref:t,decorative:d,orientation:s,className:(0,o.cn)("shrink-0 bg-slate-200 dark:bg-slate-800","horizontal"===s?"h-[1px] w-full":"h-full w-[1px]",a),...i})});d.displayName=r.f.displayName},17477:function(e,t,a){a.d(t,{_v:function(){return c},aJ:function(){return l},pn:function(){return d},u:function(){return i}});var n=a(59533),s=a(31229),r=a(9332),o=a(52284);let d=r.zt,i=r.fC,l=r.xz,c=s.forwardRef((e,t)=>{let{className:a,sideOffset:s=4,...d}=e;return(0,n.jsx)(r.VY,{ref:t,sideOffset:s,className:(0,o.cn)("z-50 overflow-hidden rounded-md border border-slate-200 bg-white px-3 py-1.5 text-sm text-slate-950 shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-tooltip-content-transform-origin] dark:border-slate-800 dark:bg-slate-950 dark:text-slate-50",a),...d})});c.displayName=r.VY.displayName},11180:function(e,t,a){a.d(t,{q:function(){return d},w:function(){return i}});var n=a(59533),s=a(31229),r=a(61250);let o=(0,s.createContext)(null);function d(){let e=(0,s.useContext)(o);if(!e)throw Error("useApp must be used inside AppProvider");return e}function i(e){let{children:t}=e,a=(0,r.useRouter)(),[d,i]=(0,s.useState)([]),[l,c]=(0,s.useState)(""),[u,f]=(0,s.useState)(null),[m,p]=(0,s.useState)(null),[x,h]=(0,s.useState)([]),[g,b]=(0,s.useState)(!0),[v,k]=(0,s.useState)(!1),[N,y]=(0,s.useState)(null),w=(0,s.useRef)(null),j=l?"?root=".concat(encodeURIComponent(l)):"",C=(0,s.useCallback)(async e=>{let t=e||l;if(!t)return;let a="?root=".concat(encodeURIComponent(t));try{let[e,t,n]=await Promise.all([fetch("/api/summary".concat(a)).then(e=>e.json()),fetch("/api/tasks".concat(a)).then(e=>e.json()),fetch("/api/activity".concat(a,"&limit=30")).then(e=>e.json())]);f(e),p(t.board),h(Array.isArray(n)?n:[])}catch(e){}b(!1)},[l]);(0,s.useEffect)(()=>{fetch("/api/projects").then(e=>e.json()).then(e=>{i(e),e.length>0?(c(e[0].root),C(e[0].root)):b(!1)}).catch(()=>b(!1))},[]),(0,s.useEffect)(()=>{if(!l)return;let e=new EventSource("/api/events");return w.current=e,e.onmessage=e=>{try{let t=JSON.parse(e.data);if("connected"===t.type)return;k(!0),setTimeout(()=>k(!1),2e3),["task_updated","decision_logged","memory_updated","session_start"].includes(t.type)&&C()}catch(e){}},()=>{e.close()}},[l,C]);let R=(0,s.useCallback)(async(e,t)=>{p(a=>{let n;if(!a)return a;let s=structuredClone(a);for(let a of Object.keys(s)){let r=s[a].findIndex(t=>t.id===e);-1!==r&&(n={...s[a][r],status:t},s[a]=s[a].filter(t=>t.id!==e))}return n&&s[t]&&(s[t]=[n,...s[t]]),s});try{await fetch("/api/tasks".concat(j),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({taskId:e,status:t,actor:"human"})}),C()}catch(e){C()}},[j,C]),A=(0,s.useCallback)(async e=>{let t=await fetch("/api/docs".concat(j,"&read=").concat(encodeURIComponent(e)));y(await t.json()),a.push("/docs")},[j,a]);return(0,n.jsx)(o.Provider,{value:{projects:d,activeProject:l,summary:u,board:m,activity:x,liveIndicator:v,loading:g,selectedDoc:N,setSelectedDoc:y,rootParam:j,onProjectChange:function(e){c(e),C(e)},refresh:C,moveTask:R,openDoc:A},children:t})}},52284:function(e,t,a){a.d(t,{cn:function(){return r}});var n=a(27494),s=a(724);function r(){for(var e=arguments.length,t=Array(e),a=0;a<e;a++)t[a]=arguments[a];return(0,s.m6)((0,n.W)(t))}}}]);
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7821],{31852:function(e,t,s){Promise.resolve().then(s.bind(s,2983))},98009:function(e,t,s){"use strict";s.d(t,{Z:function(){return m}});var a=s(31229);/**
|
|
2
|
-
* @license lucide-react v0.575.0 - ISC
|
|
3
|
-
*
|
|
4
|
-
* This source code is licensed under the ISC license.
|
|
5
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
-
*/let n=function(){for(var e=arguments.length,t=Array(e),s=0;s<e;s++)t[s]=arguments[s];return t.filter((e,t,s)=>!!e&&""!==e.trim()&&s.indexOf(e)===t).join(" ").trim()},r=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),c=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,s)=>s?s.toUpperCase():t.toLowerCase()),i=e=>{let t=c(e);return t.charAt(0).toUpperCase()+t.slice(1)};/**
|
|
7
|
-
* @license lucide-react v0.575.0 - ISC
|
|
8
|
-
*
|
|
9
|
-
* This source code is licensed under the ISC license.
|
|
10
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
11
|
-
*/var l={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/**
|
|
12
|
-
* @license lucide-react v0.575.0 - ISC
|
|
13
|
-
*
|
|
14
|
-
* This source code is licensed under the ISC license.
|
|
15
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
16
|
-
*/let d=e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1},o=(0,a.forwardRef)((e,t)=>{let{color:s="currentColor",size:r=24,strokeWidth:c=2,absoluteStrokeWidth:i,className:o="",children:m,iconNode:x,...u}=e;return(0,a.createElement)("svg",{ref:t,...l,width:r,height:r,stroke:s,strokeWidth:i?24*Number(c)/Number(r):c,className:n("lucide",o),...!m&&!d(u)&&{"aria-hidden":"true"},...u},[...x.map(e=>{let[t,s]=e;return(0,a.createElement)(t,s)}),...Array.isArray(m)?m:[m]])}),m=(e,t)=>{let s=(0,a.forwardRef)((s,c)=>{let{className:l,...d}=s;return(0,a.createElement)(o,{ref:c,iconNode:t,className:n("lucide-".concat(r(i(e))),"lucide-".concat(e),l),...d})});return s.displayName=i(e),s}},94297:function(e,t,s){"use strict";s.d(t,{Z:function(){return a}});let a=(0,s(98009).Z)("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]])},56622:function(e,t,s){"use strict";s.d(t,{Z:function(){return a}});let a=(0,s(98009).Z)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]])},20508:function(e,t,s){"use strict";s.d(t,{Z:function(){return a}});let a=(0,s(98009).Z)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]])},12794:function(e,t,s){"use strict";s.d(t,{Z:function(){return a}});let a=(0,s(98009).Z)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]])},21263:function(e,t,s){"use strict";s.d(t,{Z:function(){return a}});let a=(0,s(98009).Z)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]])},78764:function(e,t,s){"use strict";s.d(t,{Z:function(){return a}});let a=(0,s(98009).Z)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},8892:function(e,t,s){"use strict";s.d(t,{Z:function(){return a}});let a=(0,s(98009).Z)("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]])},2983:function(e,t,s){"use strict";s.r(t),s.d(t,{default:function(){return E}});var a=s(59533),n=s(31229),r=s(11180),c=s(98009);let i=(0,c.Z)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]);var l=s(21263),d=s(20508),o=s(12794);let m=(0,c.Z)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);var x=s(78764),u=s(52284),h=s(56622);let p=(0,c.Z)("building-2",[["path",{d:"M10 12h4",key:"a56b0p"}],["path",{d:"M10 8h4",key:"1sr2af"}],["path",{d:"M14 21v-3a2 2 0 0 0-4 0v3",key:"1rgiei"}],["path",{d:"M6 10H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-2",key:"secmi2"}],["path",{d:"M6 21V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v16",key:"16ra0t"}]]),f=(0,c.Z)("server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);var b=s(94297);let j=(0,c.Z)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]),g=(0,c.Z)("calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);var y=s(8892);let v=[{category:"Recommended",items:[{id:"claude-md",name:"CLAUDE.md",description:"AI agent instructions",icon:h.Z,path:"CLAUDE.md"},{id:"agents-md",name:"AGENTS.md",description:"Multi-agent config",icon:h.Z,path:"AGENTS.md"}]},{category:"Documentation",items:[{id:"prd",name:"PRD",description:"Product requirements",icon:l.Z,path:"docs/prd.md"},{id:"architecture-overview",name:"Architecture",description:"System overview",icon:p,path:"docs/architecture/overview.md"},{id:"api-reference",name:"API Reference",description:"Endpoints docs",icon:f,path:"docs/api-reference.md"},{id:"runbook",name:"Runbook",description:"Operations guide",icon:b.Z,path:"docs/runbook.md"},{id:"adr",name:"ADR",description:"Decision record",icon:j,path:"docs/architecture/decisions/ADR-001.md"},{id:"meeting-notes",name:"Meeting Notes",description:"Meeting template",icon:g,path:"docs/meetings/notes.md"},{id:"onboarding",name:"Onboarding",description:"Dev onboarding",icon:y.Z,path:"docs/onboarding.md"}]}];function N(e){let{selected:t,onChange:s}=e,n=e=>t.some(t=>t.id===e),r=e=>{n(e.id)?s(t.filter(t=>t.id!==e.id)):s([...t,{id:e.id,name:e.name,path:e.path}])},c=e=>{let a=v.find(t=>t.category===e);if(a){if(a.items.every(e=>n(e.id)))s(t.filter(e=>!a.items.some(t=>t.id===e.id)));else{let e=[...t];a.items.forEach(t=>{n(t.id)||e.push({id:t.id,name:t.name,path:t.path})}),s(e)}}};return(0,a.jsxs)("div",{className:"space-y-6",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h2",{className:"text-xl font-semibold text-txt mb-2",children:"Select Templates"}),(0,a.jsx)("p",{className:"text-muted",children:"Choose which documentation files to generate for your project."})]}),v.map(e=>(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("h3",{className:"text-sm font-medium text-muted uppercase tracking-wider",children:e.category}),(0,a.jsx)("button",{onClick:()=>c(e.category),className:"text-xs text-accent hover:text-accent/80 transition-colors",children:e.items.every(e=>n(e.id))?"Deselect all":"Select all"})]}),(0,a.jsx)("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-3",children:e.items.map(e=>{let t=e.icon,s=n(e.id);return(0,a.jsx)("button",{onClick:()=>r(e),className:(0,u.cn)("p-3 rounded-lg border text-left transition-all",s?"border-accent bg-accent/10":"border-border hover:border-accent/50"),children:(0,a.jsxs)("div",{className:"flex items-start gap-2",children:[(0,a.jsx)("div",{className:(0,u.cn)("w-8 h-8 rounded-lg flex items-center justify-center shrink-0",s?"bg-accent/20":"bg-surface2"),children:(0,a.jsx)(t,{className:(0,u.cn)("w-4 h-4",s?"text-accent":"text-muted")})}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("div",{className:"font-medium text-sm text-txt truncate",children:e.name}),(0,a.jsx)("div",{className:"text-xs text-muted truncate",children:e.description})]}),s&&(0,a.jsx)(d.Z,{className:"w-4 h-4 text-accent shrink-0"})]})},e.id)})})]},e.category)),(0,a.jsxs)("div",{className:"text-sm text-muted",children:[t.length," template",1!==t.length?"s":""," selected"]})]})}var k=s(13191);let w=[{value:"web-app",label:"Web Application"},{value:"api-backend",label:"API / Backend"},{value:"cli-tool",label:"CLI Tool"},{value:"library",label:"Library / SDK"},{value:"mobile-app",label:"Mobile App"},{value:"monorepo",label:"Monorepo"}];function C(e){let{answers:t,onChange:s}=e,n=(e,a)=>{s({...t,[e]:a})};return(0,a.jsxs)("div",{className:"space-y-6",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h2",{className:"text-xl font-semibold text-txt mb-2",children:"Project Information"}),(0,a.jsx)("p",{className:"text-muted",children:"Tell us about your project to customize the documentation."})]}),(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsxs)("label",{className:"block text-sm font-medium text-txt mb-1.5",children:["Project Name ",(0,a.jsx)("span",{className:"text-red-400",children:"*"})]}),(0,a.jsx)(k.I,{value:t.projectName,onChange:e=>n("projectName",e.target.value),placeholder:"My Awesome Project",className:"bg-surface2"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"block text-sm font-medium text-txt mb-1.5",children:"Project Type"}),(0,a.jsx)("select",{value:t.projectType,onChange:e=>n("projectType",e.target.value),className:"w-full h-10 px-3 rounded-md border border-border bg-surface2 text-txt text-sm focus:outline-none focus:ring-2 focus:ring-accent/50",children:w.map(e=>(0,a.jsx)("option",{value:e.value,children:e.label},e.value))})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"block text-sm font-medium text-txt mb-1.5",children:"Tech Stack"}),(0,a.jsx)(k.I,{value:t.techStack,onChange:e=>n("techStack",e.target.value),placeholder:"Next.js, TypeScript, PostgreSQL, etc.",className:"bg-surface2"}),(0,a.jsx)("p",{className:"text-xs text-muted mt-1",children:"Comma-separated list of main technologies"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"block text-sm font-medium text-txt mb-1.5",children:"Description"}),(0,a.jsx)("textarea",{value:t.description,onChange:e=>n("description",e.target.value),placeholder:"A brief description of what your project does...",rows:3,className:"w-full px-3 py-2 rounded-md border border-border bg-surface2 text-txt text-sm resize-none focus:outline-none focus:ring-2 focus:ring-accent/50"})]}),(0,a.jsxs)("div",{children:[(0,a.jsxs)("label",{className:"block text-sm font-medium text-txt mb-1.5",children:["Key Features ",(0,a.jsx)("span",{className:"text-muted",children:"(optional)"})]}),(0,a.jsx)(k.I,{value:t.keyFeatures,onChange:e=>n("keyFeatures",e.target.value),placeholder:"Auth, payments, real-time sync, etc.",className:"bg-surface2"}),(0,a.jsx)("p",{className:"text-xs text-muted mt-1",children:"Comma-separated list of main features"})]}),(0,a.jsxs)("div",{children:[(0,a.jsxs)("label",{className:"block text-sm font-medium text-txt mb-1.5",children:["Coding Conventions ",(0,a.jsx)("span",{className:"text-muted",children:"(optional)"})]}),(0,a.jsx)(k.I,{value:t.conventions,onChange:e=>n("conventions",e.target.value),placeholder:"ESLint, Prettier, Conventional Commits, etc.",className:"bg-surface2"})]})]})]})}let S=(0,c.Z)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]),M=(0,c.Z)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);function Z(e){let{files:t,onWrite:s,isWriting:r}=e,[c,i]=(0,n.useState)(new Set),d=e=>{i(t=>{let s=new Set(t);return s.has(e)?s.delete(e):s.add(e),s})},m=t.filter(e=>!e.skipped),x=t.filter(e=>e.skipped);return 0===t.length?(0,a.jsxs)("div",{className:"text-center py-12",children:[(0,a.jsx)(S,{className:"w-12 h-12 text-muted mx-auto mb-4"}),(0,a.jsx)("h3",{className:"text-lg font-medium text-txt mb-2",children:"No files generated"}),(0,a.jsx)("p",{className:"text-muted",children:"Something went wrong. Please go back and try again."})]}):(0,a.jsxs)("div",{className:"space-y-6",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h2",{className:"text-xl font-semibold text-txt mb-2",children:"Preview"}),(0,a.jsx)("p",{className:"text-muted",children:"Review the files that will be created. Click to expand and see the content."})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsxs)("h3",{className:"text-sm font-medium text-muted uppercase tracking-wider",children:["Files to create (",m.length,")"]}),(0,a.jsx)("div",{className:"border border-border rounded-lg divide-y divide-border overflow-hidden",children:m.map(e=>{let t=c.has(e.path);return(0,a.jsxs)("div",{children:[(0,a.jsxs)("button",{onClick:()=>d(e.path),className:"w-full flex items-center gap-3 p-3 hover:bg-surface2 transition-colors",children:[t?(0,a.jsx)(M,{className:"w-4 h-4 text-muted shrink-0"}):(0,a.jsx)(o.Z,{className:"w-4 h-4 text-muted shrink-0"}),(0,a.jsx)(l.Z,{className:"w-4 h-4 text-accent shrink-0"}),(0,a.jsx)("span",{className:"text-sm font-mono text-txt",children:e.path})]}),t&&(0,a.jsx)("div",{className:"px-3 pb-3",children:(0,a.jsxs)("pre",{className:"p-3 bg-surface2 rounded-lg text-xs text-muted overflow-x-auto max-h-64 overflow-y-auto",children:[e.content.slice(0,2e3),e.content.length>2e3&&"\n\n...(truncated)"]})})]},e.path)})})]}),x.length>0&&(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsxs)("h3",{className:"text-sm font-medium text-muted uppercase tracking-wider",children:["Skipped (",x.length,")"]}),(0,a.jsx)("div",{className:"bg-amber-500/10 border border-amber-500/30 rounded-lg p-3 space-y-1",children:x.map(e=>(0,a.jsxs)("div",{className:"flex items-center gap-2 text-sm",children:[(0,a.jsx)(S,{className:"w-4 h-4 text-amber-400 shrink-0"}),(0,a.jsx)("span",{className:"font-mono text-amber-400",children:e.path}),(0,a.jsxs)("span",{className:"text-amber-400/70",children:["— ",e.reason||"already exists"]})]},e.path))})]}),(0,a.jsxs)("div",{className:"text-sm text-muted",children:[m.length," file",1!==m.length?"s":""," will be created",x.length>0&&", ".concat(x.length," skipped")]})]})}let A=[{id:"welcome",title:"Welcome"},{id:"templates",title:"Templates"},{id:"questions",title:"Project Info"},{id:"mode",title:"Generation"},{id:"preview",title:"Preview"},{id:"complete",title:"Complete"}];function P(){let{activeProject:e,rootParam:t,projects:s}=(0,r.q)(),c=s.find(t=>t.root===e),[h,p]=(0,n.useState)(0),[f,b]=(0,n.useState)([]),[j,g]=(0,n.useState)({projectName:"",projectType:"web-app",techStack:"",description:"",keyFeatures:"",conventions:""}),[y,v]=(0,n.useState)("quick"),[k,w]=(0,n.useState)([]),[S,M]=(0,n.useState)(!1),[P,E]=(0,n.useState)([]);(0,n.useEffect)(()=>{!async function(){try{let e=await fetch("/api/docs".concat(t)),s=(await e.json()).filter(e=>"CLAUDE.md"===e.path||"AGENTS.md"===e.path).map(e=>e.path);E(s)}catch(e){}}()},[t]);let T=async()=>{if(3===h){M(!0);try{let e=await fetch("/api/setup/generate".concat(t),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({templates:f,answers:j,mode:y})}),s=await e.json();w(s.files||[])}catch(e){w([])}M(!1)}p(e=>Math.min(e+1,A.length-1))},I=async()=>{M(!0);try{await fetch("/api/setup/write".concat(t),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({files:k})}),p(5)}catch(e){}M(!1)};return(0,a.jsxs)("div",{className:"min-h-screen bg-bg flex flex-col",children:[(0,a.jsx)("div",{className:"border-b border-border bg-surface",children:(0,a.jsxs)("div",{className:"max-w-3xl mx-auto px-6 py-4",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,a.jsx)("h1",{className:"text-lg font-semibold text-txt",children:"Setup Wizard"}),(0,a.jsxs)("span",{className:"text-sm text-muted",children:["Step ",h+1," of ",A.length]})]}),(0,a.jsx)("div",{className:"flex gap-1",children:A.map((e,t)=>(0,a.jsx)("div",{className:(0,u.cn)("h-1 flex-1 rounded-full transition-colors",t<=h?"bg-accent":"bg-border")},e.id))})]})}),(0,a.jsx)("div",{className:"flex-1 overflow-y-auto",children:(0,a.jsxs)("div",{className:"max-w-3xl mx-auto px-6 py-8",children:[0===h&&(0,a.jsxs)("div",{className:"space-y-6",children:[(0,a.jsxs)("div",{className:"text-center space-y-4",children:[(0,a.jsx)("div",{className:"w-16 h-16 rounded-2xl bg-accent/10 flex items-center justify-center mx-auto",children:(0,a.jsx)(i,{className:"w-8 h-8 text-accent"})}),(0,a.jsx)("h2",{className:"text-2xl font-bold text-txt",children:"Welcome to VibeDoc"}),(0,a.jsx)("p",{className:"text-muted max-w-md mx-auto",children:"Let's set up your project documentation. You can generate AI-optimized docs like CLAUDE.md, architecture overviews, and more."})]}),c&&(0,a.jsxs)("div",{className:"bg-surface border border-border rounded-lg p-4",children:[(0,a.jsx)("div",{className:"text-sm text-muted mb-1",children:"Current Project"}),(0,a.jsx)("div",{className:"font-medium text-txt",children:c.name}),(0,a.jsx)("div",{className:"text-xs text-muted mt-1 font-mono",children:c.root})]}),P.length>0&&(0,a.jsxs)("div",{className:"bg-amber-500/10 border border-amber-500/30 rounded-lg p-4",children:[(0,a.jsx)("div",{className:"text-sm font-medium text-amber-400 mb-1",children:"Existing files detected"}),(0,a.jsxs)("div",{className:"text-sm text-amber-400/80",children:[P.join(", ")," already exist. They will be skipped during generation."]})]})]}),1===h&&(0,a.jsx)(N,{selected:f,onChange:b}),2===h&&(0,a.jsx)(C,{answers:j,onChange:g}),3===h&&(0,a.jsxs)("div",{className:"space-y-6",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h2",{className:"text-xl font-semibold text-txt mb-2",children:"Choose Generation Mode"}),(0,a.jsx)("p",{className:"text-muted",children:"How would you like to generate your documentation?"})]}),(0,a.jsxs)("div",{className:"grid gap-4",children:[(0,a.jsx)("button",{onClick:()=>v("quick"),className:(0,u.cn)("p-4 rounded-lg border text-left transition-all","quick"===y?"border-accent bg-accent/10":"border-border hover:border-accent/50"),children:(0,a.jsxs)("div",{className:"flex items-start gap-3",children:[(0,a.jsx)(l.Z,{className:"w-5 h-5 text-accent mt-0.5"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"font-medium text-txt",children:"Quick Mode"}),(0,a.jsx)("div",{className:"text-sm text-muted mt-1",children:"Use templates with your project info filled in. Fast and reliable."})]}),"quick"===y&&(0,a.jsx)(d.Z,{className:"w-5 h-5 text-accent ml-auto"})]})}),(0,a.jsx)("button",{onClick:()=>v("ai"),className:(0,u.cn)("p-4 rounded-lg border text-left transition-all","ai"===y?"border-accent bg-accent/10":"border-border hover:border-accent/50"),children:(0,a.jsxs)("div",{className:"flex items-start gap-3",children:[(0,a.jsx)(i,{className:"w-5 h-5 text-accent mt-0.5"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"font-medium text-txt",children:"AI Mode"}),(0,a.jsx)("div",{className:"text-sm text-muted mt-1",children:"Generate custom content using your connected coding agent (Claude Code, Cursor, etc.)."}),(0,a.jsx)("div",{className:"text-xs text-accent mt-2",children:"Requires MCP connection"})]}),"ai"===y&&(0,a.jsx)(d.Z,{className:"w-5 h-5 text-accent ml-auto"})]})})]})]}),4===h&&(0,a.jsx)(Z,{files:k,onWrite:I,isWriting:S}),5===h&&(0,a.jsxs)("div",{className:"text-center space-y-6",children:[(0,a.jsx)("div",{className:"w-16 h-16 rounded-full bg-green-500/10 flex items-center justify-center mx-auto",children:(0,a.jsx)(d.Z,{className:"w-8 h-8 text-green-500"})}),(0,a.jsx)("h2",{className:"text-2xl font-bold text-txt",children:"Setup Complete!"}),(0,a.jsx)("p",{className:"text-muted max-w-md mx-auto",children:"Your documentation files have been created. You can now view and edit them in the Docs tab."}),(0,a.jsxs)("div",{className:"bg-surface border border-border rounded-lg p-4 text-left max-w-md mx-auto",children:[(0,a.jsx)("div",{className:"text-sm font-medium text-txt mb-2",children:"Next steps:"}),(0,a.jsxs)("ul",{className:"text-sm text-muted space-y-2",children:[(0,a.jsx)("li",{children:"• Review generated files in the Docs tab"}),(0,a.jsx)("li",{children:"• Edit content to match your project specifics"}),(0,a.jsx)("li",{children:"• Connect your coding agent via MCP for AI assistance"})]})]}),(0,a.jsxs)("a",{href:"/docs",className:"inline-flex items-center gap-2 px-4 py-2 bg-accent text-white rounded-lg font-medium hover:bg-accent/90 transition-colors",children:["Go to Docs",(0,a.jsx)(o.Z,{className:"w-4 h-4"})]})]})]})}),h<5&&(0,a.jsx)("div",{className:"border-t border-border bg-surface",children:(0,a.jsxs)("div",{className:"max-w-3xl mx-auto px-6 py-4 flex items-center justify-between",children:[(0,a.jsxs)("button",{onClick:()=>{p(e=>Math.max(e-1,0))},disabled:0===h,className:(0,u.cn)("flex items-center gap-2 px-4 py-2 rounded-lg font-medium transition-colors",0===h?"text-muted cursor-not-allowed":"text-txt hover:bg-surface2"),children:[(0,a.jsx)(m,{className:"w-4 h-4"}),"Back"]}),4===h?(0,a.jsx)("button",{onClick:I,disabled:S||0===k.length,className:"flex items-center gap-2 px-4 py-2 bg-accent text-white rounded-lg font-medium hover:bg-accent/90 transition-colors disabled:opacity-50",children:S?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(x.Z,{className:"w-4 h-4 animate-spin"}),"Writing..."]}):(0,a.jsxs)(a.Fragment,{children:["Write Files",(0,a.jsx)(d.Z,{className:"w-4 h-4"})]})}):(0,a.jsx)("button",{onClick:T,disabled:!(()=>{switch(h){case 0:case 3:default:return!0;case 1:return f.length>0;case 2:return""!==j.projectName.trim();case 4:return k.length>0}})()||S,className:"flex items-center gap-2 px-4 py-2 bg-accent text-white rounded-lg font-medium hover:bg-accent/90 transition-colors disabled:opacity-50",children:S?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(x.Z,{className:"w-4 h-4 animate-spin"}),"Generating..."]}):(0,a.jsxs)(a.Fragment,{children:[3===h?"Generate":"Next",(0,a.jsx)(o.Z,{className:"w-4 h-4"})]})})]})})]})}function E(){return(0,a.jsx)(P,{})}},13191:function(e,t,s){"use strict";s.d(t,{I:function(){return c}});var a=s(59533),n=s(31229),r=s(52284);let c=n.forwardRef((e,t)=>{let{className:s,type:n,...c}=e;return(0,a.jsx)("input",{type:n,className:(0,r.cn)("flex h-10 w-full rounded-md border border-slate-200 bg-white px-3 py-2 text-base ring-offset-white file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-slate-950 placeholder:text-slate-500 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-slate-950 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:border-slate-800 dark:bg-slate-950 dark:ring-offset-slate-950 dark:file:text-slate-50 dark:placeholder:text-slate-400 dark:focus-visible:ring-slate-300",s),ref:t,...c})});c.displayName="Input"},11180:function(e,t,s){"use strict";s.d(t,{q:function(){return i},w:function(){return l}});var a=s(59533),n=s(31229),r=s(61250);let c=(0,n.createContext)(null);function i(){let e=(0,n.useContext)(c);if(!e)throw Error("useApp must be used inside AppProvider");return e}function l(e){let{children:t}=e,s=(0,r.useRouter)(),[i,l]=(0,n.useState)([]),[d,o]=(0,n.useState)(""),[m,x]=(0,n.useState)(null),[u,h]=(0,n.useState)(null),[p,f]=(0,n.useState)([]),[b,j]=(0,n.useState)(!0),[g,y]=(0,n.useState)(!1),[v,N]=(0,n.useState)(null),k=(0,n.useRef)(null),w=d?"?root=".concat(encodeURIComponent(d)):"",C=(0,n.useCallback)(async e=>{let t=e||d;if(!t)return;let s="?root=".concat(encodeURIComponent(t));try{let[e,t,a]=await Promise.all([fetch("/api/summary".concat(s)).then(e=>e.json()),fetch("/api/tasks".concat(s)).then(e=>e.json()),fetch("/api/activity".concat(s,"&limit=30")).then(e=>e.json())]);x(e),h(t.board),f(Array.isArray(a)?a:[])}catch(e){}j(!1)},[d]);(0,n.useEffect)(()=>{fetch("/api/projects").then(e=>e.json()).then(e=>{l(e),e.length>0?(o(e[0].root),C(e[0].root)):j(!1)}).catch(()=>j(!1))},[]),(0,n.useEffect)(()=>{if(!d)return;let e=new EventSource("/api/events");return k.current=e,e.onmessage=e=>{try{let t=JSON.parse(e.data);if("connected"===t.type)return;y(!0),setTimeout(()=>y(!1),2e3),["task_updated","decision_logged","memory_updated","session_start"].includes(t.type)&&C()}catch(e){}},()=>{e.close()}},[d,C]);let S=(0,n.useCallback)(async(e,t)=>{h(s=>{let a;if(!s)return s;let n=structuredClone(s);for(let s of Object.keys(n)){let r=n[s].findIndex(t=>t.id===e);-1!==r&&(a={...n[s][r],status:t},n[s]=n[s].filter(t=>t.id!==e))}return a&&n[t]&&(n[t]=[a,...n[t]]),n});try{await fetch("/api/tasks".concat(w),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({taskId:e,status:t,actor:"human"})}),C()}catch(e){C()}},[w,C]),M=(0,n.useCallback)(async e=>{let t=await fetch("/api/docs".concat(w,"&read=").concat(encodeURIComponent(e)));N(await t.json()),s.push("/docs")},[w,s]);return(0,a.jsx)(c.Provider,{value:{projects:i,activeProject:d,summary:m,board:u,activity:p,liveIndicator:g,loading:b,selectedDoc:v,setSelectedDoc:N,rootParam:w,onProjectChange:function(e){o(e),C(e)},refresh:C,moveTask:S,openDoc:M},children:t})}},52284:function(e,t,s){"use strict";s.d(t,{cn:function(){return r}});var a=s(27494),n=s(724);function r(){for(var e=arguments.length,t=Array(e),s=0;s<e;s++)t[s]=arguments[s];return(0,n.m6)((0,a.W)(t))}}},function(e){e.O(0,[490,4170,6842,1744],function(){return e(e.s=31852)}),_N_E=e.O()}]);
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
@import url("https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=DM+Mono:wght@300;400;500&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;1,9..40,300&display=swap");*,:after,:before{--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:rgba(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:rgba(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: }
|
|
2
|
-
|
|
3
|
-
/*
|
|
4
|
-
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
|
|
5
|
-
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--font-sans),system-ui,sans-serif;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,pre,samp{font-family:var(--font-mono),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,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{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}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--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%}.dark{--sidebar-background:240 5.9% 10%;--sidebar-foreground:240 4.8% 95.9%;--sidebar-primary:224.3 76.3% 48%;--sidebar-primary-foreground:0 0% 100%;--sidebar-accent:240 3.7% 15.9%;--sidebar-accent-foreground:240 4.8% 95.9%;--sidebar-border:240 3.7% 15.9%;--sidebar-ring:217.2 91.2% 59.8%}.\!container{width:100%!important}.container{width:100%}@media (min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.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}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.bottom-0{bottom:0}.bottom-8{bottom:2rem}.left-0{left:0}.left-0\.5{left:.125rem}.left-1{left:.25rem}.left-1\/2{left:50%}.left-2{left:.5rem}.left-4{left:1rem}.left-6{left:1.5rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-1{right:.25rem}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.top-0\.5{top:.125rem}.top-1{top:.25rem}.top-1\.5{top:.375rem}.top-1\/2{top:50%}.top-20{top:5rem}.top-3\.5{top:.875rem}.top-4{top:1rem}.top-\[50\%\]{top:50%}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.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-1{margin-top:.25rem;margin-bottom:.25rem}.-ml-1{margin-left:-.25rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.size-4{width:1rem;height:1rem}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[1px\]{height:1px}.h-full{height:100%}.h-px{height:1px}.h-svh{height:100svh}.max-h-64{max-height:16rem}.max-h-72{max-height:18rem}.max-h-\[420px\]{max-height:420px}.max-h-\[50vh\]{max-height:50vh}.max-h-\[70vh\]{max-height:70vh}.max-h-\[calc\(50vh-44px\)\]{max-height:calc(50vh - 44px)}.max-h-\[calc\(70vh-44px\)\]{max-height:calc(70vh - 44px)}.max-h-\[var\(--radix-dropdown-menu-content-available-height\)\]{max-height:var(--radix-dropdown-menu-content-available-height)}.min-h-0{min-height:0}.min-h-\[60px\]{min-height:60px}.min-h-screen{min-height:100vh}.min-h-svh{min-height:100svh}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-32{width:8rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-56{width:14rem}.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-\[1px\]{width:1px}.w-\[420px\]{width:420px}.w-auto{width:auto}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0}.min-w-5{min-width:1.25rem}.min-w-\[8rem\]{min-width:8rem}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-\[--skeleton-width\]{max-width:var(--skeleton-width)}.max-w-\[200px\]{max-width:200px}.max-w-\[40\%\]{max-width:40%}.max-w-\[60px\]{max-width:60px}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.origin-\[--radix-dropdown-menu-content-transform-origin\]{transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.origin-\[--radix-tooltip-content-transform-origin\]{transform-origin:var(--radix-tooltip-content-transform-origin)}.origin-bottom-right{transform-origin:bottom right}.origin-top-right{transform-origin:top right}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.-translate-x-px{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(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}.-translate-y-1\/2{--tw-translate-y:-50%}.-translate-y-1\/2,.translate-x-\[-50\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(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%}.translate-x-px{--tw-translate-x:1px}.translate-x-px,.translate-y-\[-50\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(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%}.scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1}.scale-110,.scale-95{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-95{--tw-scale-x:.95;--tw-scale-y:.95}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn .3s ease}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulseDot{0%,to{opacity:.4;transform:scale(.8)}50%{opacity:1;transform:scale(1.1)}}.animate-pulse-dot{animation:pulseDot 2s ease-in-out infinite}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-grabbing{cursor:grabbing}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize: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))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-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-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))}.divide-x>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:0;border-right-width:calc(1px * var(--tw-divide-x-reverse));border-left-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-border>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(34 34 46/var(--tw-divide-opacity,1))}.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}.truncate,.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-accent{--tw-border-opacity:1;border-color:rgb(124 106 247/var(--tw-border-opacity,1))}.border-accent\/20{border-color:rgba(124,106,247,.2)}.border-accent\/30{border-color:rgba(124,106,247,.3)}.border-amber\/30{border-color:hsla(24,90%,69%,.3)}.border-amber\/40{border-color:hsla(24,90%,69%,.4)}.border-border{--tw-border-opacity:1;border-color:rgb(34 34 46/var(--tw-border-opacity,1))}.border-border\/50{border-color:rgba(34,34,46,.5)}.border-border2{--tw-border-opacity:1;border-color:rgb(45 45 61/var(--tw-border-opacity,1))}.border-danger\/30{border-color:hsla(0,90%,69%,.3)}.border-danger\/40{border-color:hsla(0,90%,69%,.4)}.border-sidebar-border{border-color:hsl(var(--sidebar-border))}.border-slate-200{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity,1))}.border-teal\/30{border-color:rgba(79,216,180,.3)}.border-teal\/40{border-color:rgba(79,216,180,.4)}.border-transparent{border-color:transparent}.border-l-transparent{border-left-color:transparent}.border-t-accent{--tw-border-opacity:1;border-top-color:rgb(124 106 247/var(--tw-border-opacity,1))}.border-t-transparent{border-top-color:transparent}.bg-\[\#282c34\]{--tw-bg-opacity:1;background-color:rgb(40 44 52/var(--tw-bg-opacity,1))}.bg-accent{--tw-bg-opacity:1;background-color:rgb(124 106 247/var(--tw-bg-opacity,1))}.bg-accent\/10{background-color:rgba(124,106,247,.1)}.bg-accent\/20{background-color:rgba(124,106,247,.2)}.bg-accent\/5{background-color:rgba(124,106,247,.05)}.bg-amber\/5{background-color:hsla(24,90%,69%,.05)}.bg-bg{--tw-bg-opacity:1;background-color:rgb(10 10 15/var(--tw-bg-opacity,1))}.bg-black\/60{background-color:rgba(0,0,0,.6)}.bg-black\/80{background-color:rgba(0,0,0,.8)}.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.bg-border{--tw-bg-opacity:1;background-color:rgb(34 34 46/var(--tw-bg-opacity,1))}.bg-border2{--tw-bg-opacity:1;background-color:rgb(45 45 61/var(--tw-bg-opacity,1))}.bg-danger\/5{background-color:hsla(0,90%,69%,.05)}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.bg-green-500\/10{background-color:rgba(34,197,94,.1)}.bg-green-500\/20{background-color:rgba(34,197,94,.2)}.bg-muted\/20{background-color:hsla(240,9%,46%,.2)}.bg-orange-500{--tw-bg-opacity:1;background-color:rgb(249 115 22/var(--tw-bg-opacity,1))}.bg-purple-500{--tw-bg-opacity:1;background-color:rgb(168 85 247/var(--tw-bg-opacity,1))}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.bg-sidebar{background-color:hsl(var(--sidebar-background))}.bg-sidebar-border{background-color:hsl(var(--sidebar-border))}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.bg-slate-200{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity,1))}.bg-slate-900{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.bg-surface{--tw-bg-opacity:1;background-color:rgb(17 17 24/var(--tw-bg-opacity,1))}.bg-surface\/80{background-color:rgba(17,17,24,.8)}.bg-surface\/95{background-color:rgba(17,17,24,.95)}.bg-surface2{--tw-bg-opacity:1;background-color:rgb(22 22 31/var(--tw-bg-opacity,1))}.bg-teal{--tw-bg-opacity:1;background-color:rgb(79 216 180/var(--tw-bg-opacity,1))}.bg-teal\/5{background-color:rgba(79,216,180,.05)}.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-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.from-accent{--tw-gradient-from:#7c6af7 var(--tw-gradient-from-position);--tw-gradient-to:rgba(124,106,247,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-teal{--tw-gradient-to:#4fd8b4 var(--tw-gradient-to-position)}.fill-current{fill:currentColor}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-\[1px\]{padding:1px}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.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-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.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-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pl-5{padding-left:1.25rem}.pl-7{padding-left:1.75rem}.pl-8{padding-left:2rem}.pr-1{padding-right:.25rem}.pr-2{padding-right:.5rem}.pr-4{padding-right:1rem}.pt-1{padding-top:.25rem}.text-left{text-align:left}.text-center{text-align:center}.font-display{font-family:var(--font-display),serif}.font-mono{font-family:var(--font-mono),monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.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}.italic{font-style:italic}.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-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-accent{--tw-text-opacity:1;color:rgb(124 106 247/var(--tw-text-opacity,1))}.text-accent\/70{color:rgba(124,106,247,.7)}.text-accent\/80{color:rgba(124,106,247,.8)}.text-amber{--tw-text-opacity:1;color:rgb(247 162 106/var(--tw-text-opacity,1))}.text-danger{--tw-text-opacity:1;color:rgb(247 106 106/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-muted{--tw-text-opacity:1;color:rgb(107 107 128/var(--tw-text-opacity,1))}.text-muted\/30{color:hsla(240,9%,46%,.3)}.text-muted\/50{color:hsla(240,9%,46%,.5)}.text-muted\/60{color:hsla(240,9%,46%,.6)}.text-muted\/70{color:hsla(240,9%,46%,.7)}.text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.text-sidebar-foreground{color:hsl(var(--sidebar-foreground))}.text-sidebar-foreground\/70{color:hsl(var(--sidebar-foreground)/.7)}.text-slate-50{--tw-text-opacity:1;color:rgb(248 250 252/var(--tw-text-opacity,1))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.text-slate-900{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.text-slate-950{--tw-text-opacity:1;color:rgb(2 6 23/var(--tw-text-opacity,1))}.text-teal{--tw-text-opacity:1;color:rgb(79 216 180/var(--tw-text-opacity,1))}.text-txt{--tw-text-opacity:1;color:rgb(232 232 240/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-yellow-400{--tw-text-opacity:1;color:rgb(250 204 21/var(--tw-text-opacity,1))}.line-through{text-decoration-line:line-through}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.shadow-2xl,.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\]{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)}.shadow-\[0_0_6px_\#4fd8b4\]{--tw-shadow:0 0 6px #4fd8b4;--tw-shadow-colored:0 0 6px var(--tw-shadow-color)}.shadow-\[0_0_6px_\#4fd8b4\],.shadow-lg{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 rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-md,.shadow-none{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}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-sm,.shadow-xl{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 rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-1{--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)}.ring-1,.ring-2{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)}.ring-accent\/50{--tw-ring-color:rgba(124,106,247,.5)}.ring-sidebar-ring{--tw-ring-color:hsl(var(--sidebar-ring))}.ring-white{--tw-ring-opacity:1;--tw-ring-color:rgb(255 255 255/var(--tw-ring-opacity,1))}.ring-offset-2{--tw-ring-offset-width:2px}.ring-offset-bg{--tw-ring-offset-color:#0a0a0f}.ring-offset-white{--tw-ring-offset-color:#fff}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px);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\2c right\2c width\]{transition-property:left,right,width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[margin\2c opacity\]{transition-property:margin,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\2c height\2c 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-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-500{transition-duration:.5s}.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)}:root{--font-sans:"DM Sans";--font-mono:"DM Mono";--font-display:"DM Serif Display"}*{box-sizing:border-box}body{background:#0a0a0f;color:#e8e8f0;font-family:DM Sans,system-ui,sans-serif;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#2d2d3d;border-radius:2px}::-webkit-scrollbar-thumb:hover{background:#44445a}.prose-dark h1{font-family:"DM Serif Display",serif;font-size:1.6rem;color:#e8e8f0;margin-bottom:1rem}.prose-dark h2{font-size:1.1rem;font-weight:600;color:#9490c8;margin:1.5rem 0 .5rem;border-bottom:1px solid #22222e;padding-bottom:.25rem}.prose-dark h3{font-size:.95rem;font-weight:600;color:#7c6af7;margin:1rem 0 .4rem}.prose-dark p{font-size:.9rem;color:#b0b0c8;line-height:1.7;margin-bottom:.75rem}.prose-dark ol,.prose-dark ul{padding-left:1.25rem;margin-bottom:.75rem}.prose-dark li{font-size:.875rem;color:#b0b0c8;line-height:1.7;margin-bottom:.2rem}.prose-dark code{font-family:DM Mono,monospace;font-size:.8rem;background:#16161f;border:1px solid #22222e;padding:1px 5px;border-radius:4px;color:#4fd8b4}.prose-dark pre{background:#0d0d14;border:1px solid #22222e;border-radius:8px;padding:1rem;overflow-x:auto;margin-bottom:1rem}.prose-dark pre code{background:none;border:none;padding:0;color:#c8c8e8;font-size:.8rem}.prose-dark table{width:100%;border-collapse:collapse;margin-bottom:1rem;font-size:.8rem}.prose-dark th{text-align:left;padding:6px 10px;border-bottom:1px solid #2d2d3d;color:#6b6b80;font-weight:500;font-family:DM Mono,monospace;text-transform:uppercase;font-size:10px;letter-spacing:.06em}.prose-dark td{padding:6px 10px;border-bottom:1px solid #16161f;color:#b0b0c8}.prose-dark blockquote{border-left:2px solid #7c6af7;padding-left:1rem;margin:1rem 0;color:#6b6b80;font-style:italic}.prose-dark a{color:#7c6af7;text-decoration:none}.prose-dark a:hover{text-decoration:underline}.prose-dark strong{color:#e8e8f0;font-weight:600}.prose-dark hr{border:none;border-top:1px solid #22222e;margin:1.5rem 0}@keyframes collapsible-down{0%{height:0;opacity:0}to{height:var(--radix-collapsible-content-height);opacity:1}}@keyframes collapsible-up{0%{height:var(--radix-collapsible-content-height);opacity:1}to{height:0;opacity:0}}.animate-collapsible-down{animation:collapsible-down .18s ease-out}.animate-collapsible-up{animation:collapsible-up .15s ease-in}.mermaid{margin:1rem 0;text-align:center}.mermaid svg{max-width:100%;height:auto;border-radius:8px}.file\:border-0::file-selector-button{border-width:0}.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-slate-950::file-selector-button{--tw-text-opacity:1;color:rgb(2 6 23/var(--tw-text-opacity,1))}.placeholder\:text-muted::-moz-placeholder{--tw-text-opacity:1;color:rgb(107 107 128/var(--tw-text-opacity,1))}.placeholder\:text-muted::placeholder{--tw-text-opacity:1;color:rgb(107 107 128/var(--tw-text-opacity,1))}.placeholder\:text-slate-500::-moz-placeholder{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.placeholder\:text-slate-500::placeholder{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.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\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.first\:border-0:first-child{border-width:0}.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)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-accent\/30:hover{border-color:rgba(124,106,247,.3)}.hover\:border-accent\/50:hover{border-color:rgba(124,106,247,.5)}.hover\:border-border2:hover{--tw-border-opacity:1;border-color:rgb(45 45 61/var(--tw-border-opacity,1))}.hover\:bg-accent\/10:hover{background-color:rgba(124,106,247,.1)}.hover\:bg-accent\/30:hover{background-color:rgba(124,106,247,.3)}.hover\:bg-accent\/5:hover{background-color:rgba(124,106,247,.05)}.hover\:bg-accent\/90:hover{background-color:rgba(124,106,247,.9)}.hover\:bg-red-500\/10:hover{background-color:rgba(239,68,68,.1)}.hover\:bg-red-500\/80:hover{background-color:rgba(239,68,68,.8)}.hover\:bg-red-500\/90:hover{background-color:rgba(239,68,68,.9)}.hover\:bg-sidebar-accent:hover{background-color:hsl(var(--sidebar-accent))}.hover\:bg-slate-100:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.hover\:bg-slate-100\/80:hover{background-color:rgba(241,245,249,.8)}.hover\:bg-slate-900\/80:hover{background-color:rgba(15,23,42,.8)}.hover\:bg-slate-900\/90:hover{background-color:rgba(15,23,42,.9)}.hover\:bg-surface2:hover{--tw-bg-opacity:1;background-color:rgb(22 22 31/var(--tw-bg-opacity,1))}.hover\:bg-surface2\/80:hover{background-color:rgba(22,22,31,.8)}.hover\:text-accent:hover{--tw-text-opacity:1;color:rgb(124 106 247/var(--tw-text-opacity,1))}.hover\:text-accent\/80:hover{color:rgba(124,106,247,.8)}.hover\:text-muted:hover{--tw-text-opacity:1;color:rgb(107 107 128/var(--tw-text-opacity,1))}.hover\:text-red-400:hover{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.hover\:text-sidebar-accent-foreground:hover{color:hsl(var(--sidebar-accent-foreground))}.hover\:text-slate-900:hover{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.hover\:text-txt:hover{--tw-text-opacity:1;color:rgb(232 232 240/var(--tw-text-opacity,1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.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\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:hsl(var(--sidebar-border))}.focus\:border-border:focus{--tw-border-opacity:1;border-color:rgb(34 34 46/var(--tw-border-opacity,1))}.focus\:bg-slate-100:focus{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.focus\:bg-surface2:focus{--tw-bg-opacity:1;background-color:rgb(22 22 31/var(--tw-bg-opacity,1))}.focus\:text-red-400:focus{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.focus\:text-slate-900:focus{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-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-accent\/50:focus{--tw-ring-color:rgba(124,106,247,.5)}.focus\:ring-slate-950:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(2 6 23/var(--tw-ring-opacity,1))}.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-0: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(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)}.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-sidebar-ring:focus-visible{--tw-ring-color:hsl(var(--sidebar-ring))}.focus-visible\:ring-slate-950:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(2 6 23/var(--tw-ring-opacity,1))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.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\:pointer-events-auto{pointer-events:auto}.group:hover .group-hover\:scale-100{--tw-scale-x:1;--tw-scale-y:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group\/menu-item:hover .group-hover\/menu-item\:opacity-100{opacity:1}.group:hover .group-hover\:opacity-0{opacity:0}.group:hover .group-hover\:opacity-100{opacity:1}.peer\/menu-button:hover~.peer-hover\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}.has-\[\[data-variant\=inset\]\]\:bg-sidebar:has([data-variant=inset]){background-color:hsl(var(--sidebar-background))}.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}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[active\=true\]\:bg-sidebar-accent[data-active=true]{background-color:hsl(var(--sidebar-accent))}.data-\[state\=active\]\:bg-white[data-state=active]{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.data-\[state\=open\]\:bg-slate-100[data-state=open]{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.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-\[state\=active\]\:text-slate-950[data-state=active]{--tw-text-opacity:1;color:rgb(2 6 23/var(--tw-text-opacity,1))}.data-\[state\=open\]\:text-slate-500[data-state=open]{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.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 rgba(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-\[state\=closed\]\:duration-300[data-state=closed]{transition-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{transition-duration:.5s}.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\/folder[data-state=open] .group-data-\[state\=open\]\/folder\:block{display:block}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:hidden,.group\/folder[data-state=open] .group-data-\[state\=open\]\/folder\: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:0}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:translate-x-0{--tw-translate-x:0px}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:translate-x-0,.group[data-side=right] .group-data-\[side\=right\]\:rotate-180{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(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{--tw-rotate:180deg}.group\/folder[data-state=open] .group-data-\[state\=open\]\/folder\:rotate-90{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(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:.5rem}.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 rgba(0,0,0,.1),0 1px 2px -1px rgba(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\/menu-button[data-active=true]~.peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}.dark\:border-slate-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(30 41 59/var(--tw-border-opacity,1))}.dark\:bg-red-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.dark\:bg-slate-50:is(.dark *){--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.dark\:bg-slate-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.dark\:bg-slate-950:is(.dark *){--tw-bg-opacity:1;background-color:rgb(2 6 23/var(--tw-bg-opacity,1))}.dark\:text-slate-400:is(.dark *){--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.dark\:text-slate-50:is(.dark *){--tw-text-opacity:1;color:rgb(248 250 252/var(--tw-text-opacity,1))}.dark\:text-slate-900:is(.dark *){--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.dark\:ring-offset-slate-950:is(.dark *){--tw-ring-offset-color:#020617}.dark\:file\:text-slate-50:is(.dark *)::file-selector-button{--tw-text-opacity:1;color:rgb(248 250 252/var(--tw-text-opacity,1))}.dark\:placeholder\:text-slate-400:is(.dark *)::-moz-placeholder{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.dark\:placeholder\:text-slate-400:is(.dark *)::placeholder{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.dark\:hover\:bg-red-900\/80:hover:is(.dark *){background-color:rgba(127,29,29,.8)}.dark\:hover\:bg-red-900\/90:hover:is(.dark *){background-color:rgba(127,29,29,.9)}.dark\:hover\:bg-slate-50\/80:hover:is(.dark *){background-color:rgba(248,250,252,.8)}.dark\:hover\:bg-slate-50\/90:hover:is(.dark *){background-color:rgba(248,250,252,.9)}.dark\:hover\:bg-slate-800:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.dark\:hover\:bg-slate-800\/80:hover:is(.dark *){background-color:rgba(30,41,59,.8)}.dark\:hover\:text-slate-50:hover:is(.dark *){--tw-text-opacity:1;color:rgb(248 250 252/var(--tw-text-opacity,1))}.dark\:focus\:bg-slate-800:focus:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.dark\:focus\:text-slate-50:focus:is(.dark *){--tw-text-opacity:1;color:rgb(248 250 252/var(--tw-text-opacity,1))}.dark\:focus\:ring-slate-300:focus:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(203 213 225/var(--tw-ring-opacity,1))}.dark\:focus-visible\:ring-slate-300:focus-visible:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(203 213 225/var(--tw-ring-opacity,1))}.dark\:data-\[state\=active\]\:bg-slate-950[data-state=active]:is(.dark *){--tw-bg-opacity:1;background-color:rgb(2 6 23/var(--tw-bg-opacity,1))}.dark\:data-\[state\=open\]\:bg-slate-800[data-state=open]:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.dark\:data-\[state\=active\]\:text-slate-50[data-state=active]:is(.dark *){--tw-text-opacity:1;color:rgb(248 250 252/var(--tw-text-opacity,1))}.dark\:data-\[state\=open\]\:text-slate-400[data-state=open]:is(.dark *){--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}@media (min-width:640px){.sm\:flex{display:flex}.sm\:max-w-sm{max-width:24rem}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.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\:rounded-lg{border-radius:.5rem}.sm\:text-left{text-align:left}}@media (min-width:768px){.md\:block{display:block}.md\:flex{display:flex}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.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 rgba(0,0,0,.1),0 1px 2px -1px rgba(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:1280px){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>span\:last-child\]\:truncate>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.\[\&\>svg\]\:size-4>svg{width:1rem;height:1rem}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:text-sidebar-accent-foreground>svg{color:hsl(var(--sidebar-accent-foreground))}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}[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}
|
|
File without changes
|
|
File without changes
|