@shepai/cli 1.68.1 → 1.70.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/packages/core/src/application/use-cases/tools/list-tools.use-case.d.ts +1 -1
- package/dist/packages/core/src/application/use-cases/tools/list-tools.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/tool-installer/tool-installer.service.d.ts +2 -1
- package/dist/packages/core/src/infrastructure/services/tool-installer/tool-installer.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/tool-installer/tool-installer.service.js +17 -2
- package/dist/packages/core/src/infrastructure/services/tool-installer/tool-metadata.d.ts +1 -1
- package/dist/packages/core/src/infrastructure/services/tool-installer/tool-metadata.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/tool-installer/tools/CLAUDE.md +45 -18
- package/dist/packages/core/src/infrastructure/services/tool-installer/tools/alacritty.json +18 -0
- package/dist/packages/core/src/infrastructure/services/tool-installer/tools/iterm2.json +17 -0
- package/dist/packages/core/src/infrastructure/services/tool-installer/tools/kitty.json +18 -0
- package/dist/packages/core/src/infrastructure/services/tool-installer/tools/tmux.json +27 -0
- package/dist/packages/core/src/infrastructure/services/tool-installer/tools/warp.json +17 -0
- package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +2 -0
- package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/control-center-inner.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/control-center-inner.js +32 -0
- package/dist/src/presentation/web/components/features/tools/tool-card.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/tools/tool-card.js +1 -0
- package/dist/src/presentation/web/components/features/tools/tools-page-client.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/tools/tools-page-client.js +2 -1
- package/dist/src/presentation/web/components/layouts/app-shell/app-shell.d.ts.map +1 -1
- package/dist/src/presentation/web/components/layouts/app-shell/app-shell.js +7 -2
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts +3 -3
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts.map +1 -1
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.js +1 -1
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.js +36 -11
- package/dist/src/presentation/web/hooks/sidebar-features-context.d.ts +26 -0
- package/dist/src/presentation/web/hooks/sidebar-features-context.d.ts.map +1 -0
- package/dist/src/presentation/web/hooks/sidebar-features-context.js +34 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/build-manifest.json +2 -2
- package/web/.next/cache/.previewinfo +1 -1
- package/web/.next/cache/.rscinfo +1 -1
- package/web/.next/cache/.tsbuildinfo +1 -1
- package/web/.next/cache/config.json +3 -3
- package/web/.next/fallback-build-manifest.json +2 -2
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/required-server-files.js +1 -1
- package/web/.next/required-server-files.json +1 -1
- package/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/page/server-reference-manifest.json +18 -18
- package/web/.next/server/app/page.js.nft.json +1 -1
- package/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/skills/page/server-reference-manifest.json +5 -5
- package/web/.next/server/app/skills/page.js.nft.json +1 -1
- package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/tools/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/tools/page.js.nft.json +1 -1
- package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/version/page.js.nft.json +1 -1
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__09413611._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__08ba9bd3._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__08ba9bd3._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__249c74f6._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__551fb7e1._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__551fb7e1._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__9add7c3a._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__9add7c3a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__e41b5eec._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__e41b5eec._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_49bf495c._.js +1 -1
- package/web/.next/server/chunks/ssr/_49bf495c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_68b5e0de._.js +6 -0
- package/web/.next/server/chunks/ssr/_68b5e0de._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_690ea95f._.js +1 -1
- package/web/.next/server/chunks/ssr/_690ea95f._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_725584e5._.js +1 -1
- package/web/.next/server/chunks/ssr/_725584e5._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
- package/web/.next/server/pages/500.html +2 -2
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +19 -19
- package/web/.next/standalone/src/presentation/web/.next/BUILD_ID +1 -1
- package/web/.next/standalone/src/presentation/web/.next/build-manifest.json +2 -2
- package/web/.next/standalone/src/presentation/web/.next/prerender-manifest.json +3 -3
- package/web/.next/standalone/src/presentation/web/.next/required-server-files.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/page/server-reference-manifest.json +18 -18
- package/web/.next/standalone/src/presentation/web/.next/server/app/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page/server-reference-manifest.json +5 -5
- package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page/server-reference-manifest.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/version/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__08ba9bd3._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__249c74f6._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__551fb7e1._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__9add7c3a._.js +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__e41b5eec._.js +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_49bf495c._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_68b5e0de._.js +6 -0
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_690ea95f._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_725584e5._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/pages/500.html +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.json +19 -19
- package/web/.next/standalone/src/presentation/web/components/common/feature-node/feature-node-state-config.ts +2 -0
- package/web/.next/standalone/src/presentation/web/components/features/control-center/control-center-inner.tsx +44 -0
- package/web/.next/standalone/src/presentation/web/components/features/tools/tool-card.tsx +1 -0
- package/web/.next/standalone/src/presentation/web/components/features/tools/tools-page-client.tsx +5 -1
- package/web/.next/standalone/src/presentation/web/components/layouts/app-shell/app-shell.tsx +18 -2
- package/web/.next/standalone/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.tsx +36 -11
- package/web/.next/standalone/src/presentation/web/components/layouts/app-sidebar/app-sidebar.tsx +7 -4
- package/web/.next/standalone/src/presentation/web/hooks/sidebar-features-context.tsx +69 -0
- package/web/.next/standalone/src/presentation/web/server.js +1 -1
- package/web/.next/static/chunks/{491ae2bbae40857c.js → 505c6a9e4c5d0808.js} +1 -1
- package/web/.next/static/chunks/{caa2e7e1618e2179.js → 51c94a563ecc565d.js} +1 -1
- package/web/.next/static/chunks/6d7d233d07d9a026.js +1 -0
- package/web/.next/static/chunks/{ac9971b036d46eca.js → 86b38e36afcd19f3.js} +1 -1
- package/web/.next/static/chunks/{7b56cca1fa91c197.js → 94562d62bf8e4bf7.js} +1 -1
- package/web/.next/static/chunks/{babbd238fc276df2.js → fdfd68aacc4727cf.js} +2 -2
- package/web/.next/trace +1 -1
- package/web/.next/trace-build +1 -1
- package/web/.next/server/chunks/ssr/_23c92688._.js +0 -6
- package/web/.next/server/chunks/ssr/_23c92688._.js.map +0 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_23c92688._.js +0 -6
- package/web/.next/static/chunks/eaf9699a447461e1.js +0 -1
- /package/web/.next/static/{VcKnu_EsfkBbSZnJoevS7 → 6pJLWKt-ohZJ_2kGrHG_m}/_buildManifest.js +0 -0
- /package/web/.next/static/{VcKnu_EsfkBbSZnJoevS7 → 6pJLWKt-ohZJ_2kGrHG_m}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{VcKnu_EsfkBbSZnJoevS7 → 6pJLWKt-ohZJ_2kGrHG_m}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,68304,e=>{"use strict";var t=e.i(20314),s=e.i(79054),a=e.i(91967),i=e.i(22528),r=e.i(51080),n=e.i(85995),l=e.i(87620),o=e.i(66033),d=e.i(36589),c=e.i(13123),u="Tabs",[f,m]=(0,i.createContextScope)(u,[r.createRovingFocusGroupScope]),h=(0,r.createRovingFocusGroupScope)(),[p,x]=f(u),g=s.forwardRef((e,s)=>{let{__scopeTabs:a,value:i,onValueChange:r,defaultValue:n,orientation:f="horizontal",dir:m,activationMode:h="automatic",...x}=e,g=(0,o.useDirection)(m),[y,v]=(0,d.useControllableState)({prop:i,onChange:r,defaultProp:n??"",caller:u});return(0,t.jsx)(p,{scope:a,baseId:(0,c.useId)(),value:y,onValueChange:v,orientation:f,dir:g,activationMode:h,children:(0,t.jsx)(l.Primitive.div,{dir:g,"data-orientation":f,...x,ref:s})})});g.displayName=u;var y="TabsList",v=s.forwardRef((e,s)=>{let{__scopeTabs:a,loop:i=!0,...n}=e,o=x(y,a),d=h(a);return(0,t.jsx)(r.Root,{asChild:!0,...d,orientation:o.orientation,dir:o.dir,loop:i,children:(0,t.jsx)(l.Primitive.div,{role:"tablist","aria-orientation":o.orientation,...n,ref:s})})});v.displayName=y;var b="TabsTrigger",j=s.forwardRef((e,s)=>{let{__scopeTabs:i,value:n,disabled:o=!1,...d}=e,c=x(b,i),u=h(i),f=N(c.baseId,n),m=C(c.baseId,n),p=n===c.value;return(0,t.jsx)(r.Item,{asChild:!0,...u,focusable:!o,active:p,children:(0,t.jsx)(l.Primitive.button,{type:"button",role:"tab","aria-selected":p,"aria-controls":m,"data-state":p?"active":"inactive","data-disabled":o?"":void 0,disabled:o,id:f,...d,ref:s,onMouseDown:(0,a.composeEventHandlers)(e.onMouseDown,e=>{o||0!==e.button||!1!==e.ctrlKey?e.preventDefault():c.onValueChange(n)}),onKeyDown:(0,a.composeEventHandlers)(e.onKeyDown,e=>{[" ","Enter"].includes(e.key)&&c.onValueChange(n)}),onFocus:(0,a.composeEventHandlers)(e.onFocus,()=>{let e="manual"!==c.activationMode;p||o||!e||c.onValueChange(n)})})})});j.displayName=b;var w="TabsContent",k=s.forwardRef((e,a)=>{let{__scopeTabs:i,value:r,forceMount:o,children:d,...c}=e,u=x(w,i),f=N(u.baseId,r),m=C(u.baseId,r),h=r===u.value,p=s.useRef(h);return s.useEffect(()=>{let e=requestAnimationFrame(()=>p.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,t.jsx)(n.Presence,{present:o||h,children:({present:s})=>(0,t.jsx)(l.Primitive.div,{"data-state":h?"active":"inactive","data-orientation":u.orientation,role:"tabpanel","aria-labelledby":f,hidden:!s,id:m,tabIndex:0,...c,ref:a,style:{...e.style,animationDuration:p.current?"0s":void 0},children:s&&d})})});function N(e,t){return`${e}-trigger-${t}`}function C(e,t){return`${e}-content-${t}`}k.displayName=w,e.s(["Content",()=>k,"List",()=>v,"Root",()=>g,"Tabs",()=>g,"TabsContent",()=>k,"TabsList",()=>v,"TabsTrigger",()=>j,"Trigger",()=>j,"createTabsScope",()=>m],43133);var R=e.i(43133),R=R,T=e.i(31777);let A=R.Root,I=s.forwardRef(({className:e,...s},a)=>(0,t.jsx)(R.List,{ref:a,className:(0,T.cn)("bg-muted text-muted-foreground inline-flex h-9 items-center justify-center rounded-lg p-1",e),...s}));I.displayName=R.List.displayName;let D=s.forwardRef(({className:e,...s},a)=>(0,t.jsx)(R.Trigger,{ref:a,className:(0,T.cn)("ring-offset-background focus-visible:ring-ring data-[state=active]:bg-background data-[state=active]:text-foreground inline-flex items-center justify-center rounded-md px-3 py-1 text-sm font-medium whitespace-nowrap transition-all focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow",e),...s}));D.displayName=R.Trigger.displayName;let S=s.forwardRef(({className:e,...s},a)=>(0,t.jsx)(R.Content,{ref:a,className:(0,T.cn)("ring-offset-background focus-visible:ring-ring mt-2 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none",e),...s}));S.displayName=R.Content.displayName,e.s(["Tabs",()=>A,"TabsContent",()=>S,"TabsList",()=>I,"TabsTrigger",()=>D],68304)},51080,87342,e=>{"use strict";var t=e.i(79054),s=e.i(91967),a=e.i(22528),i=e.i(5978),r=e.i(86874),n=e.i(20314);function l(e){let s=e+"CollectionProvider",[l,o]=(0,a.createContextScope)(s),[d,c]=l(s,{collectionRef:{current:null},itemMap:new Map}),u=e=>{let{scope:s,children:a}=e,i=t.default.useRef(null),r=t.default.useRef(new Map).current;return(0,n.jsx)(d,{scope:s,itemMap:r,collectionRef:i,children:a})};u.displayName=s;let f=e+"CollectionSlot",m=(0,r.createSlot)(f),h=t.default.forwardRef((e,t)=>{let{scope:s,children:a}=e,r=c(f,s),l=(0,i.useComposedRefs)(t,r.collectionRef);return(0,n.jsx)(m,{ref:l,children:a})});h.displayName=f;let p=e+"CollectionItemSlot",x="data-radix-collection-item",g=(0,r.createSlot)(p),y=t.default.forwardRef((e,s)=>{let{scope:a,children:r,...l}=e,o=t.default.useRef(null),d=(0,i.useComposedRefs)(s,o),u=c(p,a);return t.default.useEffect(()=>(u.itemMap.set(o,{ref:o,...l}),()=>void u.itemMap.delete(o))),(0,n.jsx)(g,{...{[x]:""},ref:d,children:r})});return y.displayName=p,[{Provider:u,Slot:h,ItemSlot:y},function(s){let a=c(e+"CollectionConsumer",s);return t.default.useCallback(()=>{let e=a.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${x}]`));return Array.from(a.itemMap.values()).sort((e,s)=>t.indexOf(e.ref.current)-t.indexOf(s.ref.current))},[a.collectionRef,a.itemMap])},o]}var o=new WeakMap;function d(e,t){var s,a;let i,r,n;if("at"in Array.prototype)return Array.prototype.at.call(e,t);let l=(s=e,a=t,i=s.length,(n=(r=c(a))>=0?r:i+r)<0||n>=i?-1:n);return -1===l?void 0:e[l]}function c(e){return e!=e||0===e?0:Math.trunc(e)}(class e extends Map{#e;constructor(e){super(e),this.#e=[...super.keys()],o.set(this,!0)}set(e,t){return o.get(this)&&(this.has(e)?this.#e[this.#e.indexOf(e)]=e:this.#e.push(e)),super.set(e,t),this}insert(e,t,s){let a,i=this.has(t),r=this.#e.length,n=c(e),l=n>=0?n:r+n,o=l<0||l>=r?-1:l;if(o===this.size||i&&o===this.size-1||-1===o)return this.set(t,s),this;let d=this.size+ +!i;n<0&&l++;let u=[...this.#e],f=!1;for(let e=l;e<d;e++)if(l===e){let r=u[e];u[e]===t&&(r=u[e+1]),i&&this.delete(t),a=this.get(r),this.set(t,s)}else{f||u[e-1]!==t||(f=!0);let s=u[f?e:e-1],i=a;a=this.get(s),this.delete(s),this.set(s,i)}return this}with(t,s,a){let i=new e(this);return i.insert(t,s,a),i}before(e){let t=this.#e.indexOf(e)-1;if(!(t<0))return this.entryAt(t)}setBefore(e,t,s){let a=this.#e.indexOf(e);return -1===a?this:this.insert(a,t,s)}after(e){let t=this.#e.indexOf(e);if(-1!==(t=-1===t||t===this.size-1?-1:t+1))return this.entryAt(t)}setAfter(e,t,s){let a=this.#e.indexOf(e);return -1===a?this:this.insert(a+1,t,s)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return this.#e=[],super.clear()}delete(e){let t=super.delete(e);return t&&this.#e.splice(this.#e.indexOf(e),1),t}deleteAt(e){let t=this.keyAt(e);return void 0!==t&&this.delete(t)}at(e){let t=d(this.#e,e);if(void 0!==t)return this.get(t)}entryAt(e){let t=d(this.#e,e);if(void 0!==t)return[t,this.get(t)]}indexOf(e){return this.#e.indexOf(e)}keyAt(e){return d(this.#e,e)}from(e,t){let s=this.indexOf(e);if(-1===s)return;let a=s+t;return a<0&&(a=0),a>=this.size&&(a=this.size-1),this.at(a)}keyFrom(e,t){let s=this.indexOf(e);if(-1===s)return;let a=s+t;return a<0&&(a=0),a>=this.size&&(a=this.size-1),this.keyAt(a)}find(e,t){let s=0;for(let a of this){if(Reflect.apply(e,t,[a,s,this]))return a;s++}}findIndex(e,t){let s=0;for(let a of this){if(Reflect.apply(e,t,[a,s,this]))return s;s++}return -1}filter(t,s){let a=[],i=0;for(let e of this)Reflect.apply(t,s,[e,i,this])&&a.push(e),i++;return new e(a)}map(t,s){let a=[],i=0;for(let e of this)a.push([e[0],Reflect.apply(t,s,[e,i,this])]),i++;return new e(a)}reduce(...e){let[t,s]=e,a=0,i=s??this.at(0);for(let s of this)i=0===a&&1===e.length?s:Reflect.apply(t,this,[i,s,a,this]),a++;return i}reduceRight(...e){let[t,s]=e,a=s??this.at(-1);for(let s=this.size-1;s>=0;s--){let i=this.at(s);a=s===this.size-1&&1===e.length?i:Reflect.apply(t,this,[a,i,s,this])}return a}toSorted(t){return new e([...this.entries()].sort(t))}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let s=this.keyAt(e),a=this.get(s);t.set(s,a)}return t}toSpliced(...t){let s=[...this.entries()];return s.splice(...t),new e(s)}slice(t,s){let a=new e,i=this.size-1;if(void 0===t)return a;t<0&&(t+=this.size),void 0!==s&&s>0&&(i=s-1);for(let e=t;e<=i;e++){let t=this.keyAt(e),s=this.get(t);a.set(t,s)}return a}every(e,t){let s=0;for(let a of this){if(!Reflect.apply(e,t,[a,s,this]))return!1;s++}return!0}some(e,t){let s=0;for(let a of this){if(Reflect.apply(e,t,[a,s,this]))return!0;s++}return!1}}),e.s(["createCollection",()=>l],87342);var u=e.i(13123),f=e.i(87620),m=e.i(29297),h=e.i(36589),p=e.i(66033),x="rovingFocusGroup.onEntryFocus",g={bubbles:!1,cancelable:!0},y="RovingFocusGroup",[v,b,j]=l(y),[w,k]=(0,a.createContextScope)(y,[j]),[N,C]=w(y),R=t.forwardRef((e,t)=>(0,n.jsx)(v.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,n.jsx)(v.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,n.jsx)(T,{...e,ref:t})})}));R.displayName=y;var T=t.forwardRef((e,a)=>{let{__scopeRovingFocusGroup:r,orientation:l,loop:o=!1,dir:d,currentTabStopId:c,defaultCurrentTabStopId:u,onCurrentTabStopIdChange:v,onEntryFocus:j,preventScrollOnEntryFocus:w=!1,...k}=e,C=t.useRef(null),R=(0,i.useComposedRefs)(a,C),T=(0,p.useDirection)(d),[A,I]=(0,h.useControllableState)({prop:c,defaultProp:u??null,onChange:v,caller:y}),[D,M]=t.useState(!1),z=(0,m.useCallbackRef)(j),E=b(r),F=t.useRef(!1),[L,P]=t.useState(0);return t.useEffect(()=>{let e=C.current;if(e)return e.addEventListener(x,z),()=>e.removeEventListener(x,z)},[z]),(0,n.jsx)(N,{scope:r,orientation:l,dir:T,loop:o,currentTabStopId:A,onItemFocus:t.useCallback(e=>I(e),[I]),onItemShiftTab:t.useCallback(()=>M(!0),[]),onFocusableItemAdd:t.useCallback(()=>P(e=>e+1),[]),onFocusableItemRemove:t.useCallback(()=>P(e=>e-1),[]),children:(0,n.jsx)(f.Primitive.div,{tabIndex:D||0===L?-1:0,"data-orientation":l,...k,ref:R,style:{outline:"none",...e.style},onMouseDown:(0,s.composeEventHandlers)(e.onMouseDown,()=>{F.current=!0}),onFocus:(0,s.composeEventHandlers)(e.onFocus,e=>{let t=!F.current;if(e.target===e.currentTarget&&t&&!D){let t=new CustomEvent(x,g);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=E().filter(e=>e.focusable);S([e.find(e=>e.active),e.find(e=>e.id===A),...e].filter(Boolean).map(e=>e.ref.current),w)}}F.current=!1}),onBlur:(0,s.composeEventHandlers)(e.onBlur,()=>M(!1))})})}),A="RovingFocusGroupItem",I=t.forwardRef((e,a)=>{let{__scopeRovingFocusGroup:i,focusable:r=!0,active:l=!1,tabStopId:o,children:d,...c}=e,m=(0,u.useId)(),h=o||m,p=C(A,i),x=p.currentTabStopId===h,g=b(i),{onFocusableItemAdd:y,onFocusableItemRemove:j,currentTabStopId:w}=p;return t.useEffect(()=>{if(r)return y(),()=>j()},[r,y,j]),(0,n.jsx)(v.ItemSlot,{scope:i,id:h,focusable:r,active:l,children:(0,n.jsx)(f.Primitive.span,{tabIndex:x?0:-1,"data-orientation":p.orientation,...c,ref:a,onMouseDown:(0,s.composeEventHandlers)(e.onMouseDown,e=>{r?p.onItemFocus(h):e.preventDefault()}),onFocus:(0,s.composeEventHandlers)(e.onFocus,()=>p.onItemFocus(h)),onKeyDown:(0,s.composeEventHandlers)(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey)return void p.onItemShiftTab();if(e.target!==e.currentTarget)return;let t=function(e,t,s){var a;let i=(a=e.key,"rtl"!==s?a:"ArrowLeft"===a?"ArrowRight":"ArrowRight"===a?"ArrowLeft":a);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(i))&&!("horizontal"===t&&["ArrowUp","ArrowDown"].includes(i)))return D[i]}(e,p.orientation,p.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let i=g().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)i.reverse();else if("prev"===t||"next"===t){var s,a;"prev"===t&&i.reverse();let r=i.indexOf(e.currentTarget);i=p.loop?(s=i,a=r+1,s.map((e,t)=>s[(a+t)%s.length])):i.slice(r+1)}setTimeout(()=>S(i))}}),children:"function"==typeof d?d({isCurrentTabStop:x,hasTabStop:null!=w}):d})})});I.displayName=A;var D={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function S(e,t=!1){let s=document.activeElement;for(let a of e)if(a===s||(a.focus({preventScroll:t}),document.activeElement!==s))return}e.s(["Item",()=>I,"Root",()=>R,"createRovingFocusGroupScope",()=>k],51080)},30702,e=>{"use strict";let t=(0,e.i(3645).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",()=>t],30702)},38573,e=>{"use strict";let t=(0,e.i(3645).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);e.s(["Terminal",()=>t],38573)},49228,e=>{"use strict";let t=(0,e.i(3645).default)("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);e.s(["GitBranch",()=>t],49228)},54277,30090,e=>{"use strict";let t=(0,e.i(3645).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.s(["default",()=>t],30090),e.s(["CircleX",()=>t],54277)},23925,1012,e=>{"use strict";let t=(0,e.i(3645).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["default",()=>t],1012),e.s(["Check",()=>t],23925)},33548,e=>{"use strict";let t=(0,e.i(3645).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",()=>t],33548)},60253,e=>{"use strict";var t=e.i(90537);e.s(["X",()=>t.default])},44412,e=>{"use strict";var t=e.i(20314),s=e.i(79054),a=e.i(81975),i=e.i(68304),r=e.i(31777),n=e.i(30702),l=e.i(83428),o=e.i(3645);let d=(0,o.default)("rocket",[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]]),c=(0,o.default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]),u=(0,o.default)("monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]);var f=e.i(38573),m=e.i(49228),h=e.i(54277),p=e.i(23925);let x=(0,o.default)("package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]);var g=e.i(35364),y=e.i(33548),v=e.i(90033),b=e.i(60253);let j=v.Dialog.Root;v.Dialog.Trigger;let w=v.Dialog.Portal;v.Dialog.Close;let k=s.forwardRef(({className:e,...s},a)=>(0,t.jsx)(v.Dialog.Overlay,{ref:a,className:(0,r.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80",e),...s}));k.displayName=v.Dialog.Overlay.displayName;let N=s.forwardRef(({className:e,children:s,...a},i)=>(0,t.jsxs)(w,{children:[(0,t.jsx)(k,{}),(0,t.jsxs)(v.Dialog.Content,{ref:i,className:(0,r.cn)("bg-background 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%] fixed top-[50%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-200 sm:rounded-lg",e),...a,children:[s,(0,t.jsxs)(v.Dialog.Close,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none",children:[(0,t.jsx)(b.X,{className:"h-4 w-4"}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]}));N.displayName=v.Dialog.Content.displayName;let C=({className:e,...s})=>(0,t.jsx)("div",{className:(0,r.cn)("flex flex-col space-y-1.5 text-center sm:text-left",e),...s});C.displayName="DialogHeader";let R=s.forwardRef(({className:e,...s},a)=>(0,t.jsx)(v.Dialog.Title,{ref:a,className:(0,r.cn)("text-lg leading-none font-semibold tracking-tight",e),...s}));R.displayName=v.Dialog.Title.displayName;let T=s.forwardRef(({className:e,...s},a)=>(0,t.jsx)(v.Dialog.Description,{ref:a,className:(0,r.cn)("text-muted-foreground text-sm",e),...s}));function A({tool:e,open:a,onOpenChange:i,className:l}){let[o,d]=(0,s.useState)(!1);return(0,t.jsx)(j,{open:a,onOpenChange:i,children:(0,t.jsxs)(N,{"data-testid":"install-instructions",className:(0,r.cn)("sm:max-w-2xl",l),children:[(0,t.jsxs)(C,{children:[(0,t.jsxs)(R,{"data-testid":"install-instructions-title",children:["Install ",e.name]}),(0,t.jsx)(T,{"data-testid":"install-instructions-description",children:e.summary})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[e.installCommand&&e.autoInstall?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"Installation command"}),(0,t.jsxs)("div",{className:"bg-muted relative rounded-md",children:[(0,t.jsx)("pre",{"data-testid":"install-instructions-command",className:"overflow-x-auto px-3 py-2.5 pr-20 font-mono text-xs leading-relaxed break-all whitespace-pre-wrap",children:(0,t.jsx)("code",{children:e.installCommand})}),(0,t.jsxs)(g.Button,{variant:"ghost",size:"sm",className:"absolute top-1.5 right-1.5 h-7 cursor-pointer px-2",onClick:function(){e.installCommand&&navigator.clipboard.writeText(e.installCommand).then(()=>{d(!0),setTimeout(()=>d(!1),2e3)})},"aria-label":o?"Copied!":"Copy install command","data-testid":"install-instructions-copy-button",children:[o?(0,t.jsx)(p.Check,{className:"h-3.5 w-3.5 text-emerald-500"}):(0,t.jsx)(y.Copy,{className:"h-3.5 w-3.5"}),(0,t.jsx)("span",{className:"ml-1 text-[10px]",children:o?"Copied!":"Copy"})]})]})]}):e.installCommand?(0,t.jsx)("p",{"data-testid":"install-instructions-command",className:"text-muted-foreground text-sm",children:e.installCommand}):(0,t.jsx)("p",{"data-testid":"install-instructions-no-command",className:"text-muted-foreground text-sm",children:"Please refer to the documentation for installation instructions."}),e.documentationUrl?(0,t.jsx)(g.Button,{variant:"outline",size:"sm",className:"w-fit cursor-pointer",asChild:!0,children:(0,t.jsxs)("a",{"data-testid":"install-instructions-doc-link",href:e.documentationUrl,target:"_blank",rel:"noopener noreferrer",children:["View documentation",(0,t.jsx)(n.ExternalLink,{className:"ml-1.5 h-3.5 w-3.5"})]})}):null]})]})})}T.displayName=v.Dialog.Description.displayName;let I={ide:{label:"IDE",icon:u},"cli-agent":{label:"CLI Agent",icon:f.Terminal},vcs:{label:"VCS",icon:m.GitBranch}};function D({tool:e,onRefresh:a,className:i}){let[o,f]=(0,s.useState)(!1),[m,y]=(0,s.useTransition)(),v="available"===e.status.status,b="error"===e.status.status,j=v&&!!e.openDirectory;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{"data-testid":"tool-card",className:(0,r.cn)("bg-card group flex h-30 w-full flex-col rounded-lg border p-3 shadow-sm transition-shadow hover:shadow-md",i),children:[(0,t.jsxs)("div",{className:"mb-2 flex items-start justify-between gap-2",children:[(0,t.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[e.iconUrl?(0,t.jsx)("img",{src:e.iconUrl,alt:"",width:20,height:20,className:"shrink-0 dark:invert"}):(0,t.jsx)(x,{className:"text-muted-foreground h-5 w-5 shrink-0"}),(0,t.jsx)("h3",{"data-testid":"tool-card-name",className:"truncate text-sm font-bold",children:e.name})]}),(0,t.jsx)("div",{"data-testid":"tool-card-tags",className:"flex shrink-0 items-center gap-1",children:e.tags.map(e=>{let s=I[e]??{label:e,icon:u},a=s.icon;return(0,t.jsxs)("span",{className:"bg-muted text-muted-foreground inline-flex items-center gap-0.5 rounded px-1.5 py-0.5 text-[10px] font-medium",children:[(0,t.jsx)(a,{className:"h-2.5 w-2.5"}),s.label]},e)})})]}),(0,t.jsx)("p",{"data-testid":"tool-card-summary",className:"text-muted-foreground mt-1 truncate text-xs",children:e.summary}),(0,t.jsxs)("div",{className:"mt-auto flex items-center justify-between pt-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[b&&"error"===e.status.status?(0,t.jsxs)("span",{className:"flex items-center gap-1 truncate text-[10px] text-red-600 dark:text-red-400",title:e.status.errorMessage,children:[(0,t.jsx)(h.CircleX,{className:"h-3 w-3 shrink-0"}),e.status.errorMessage??"Error"]}):v?(0,t.jsxs)("span",{className:"flex items-center gap-1 text-[11px] text-emerald-600 dark:text-emerald-400",children:[(0,t.jsx)(p.Check,{className:"h-3 w-3"}),"Installed"]}):(0,t.jsx)("span",{className:"text-muted-foreground text-[10px]",children:"Not installed"}),e.required?(0,t.jsx)("span",{className:"text-muted-foreground text-[10px] italic",children:"Required"}):null]}),v&&j?(0,t.jsxs)(g.Button,{size:"sm",variant:"ghost",onClick:function(){y(async()=>{await fetch(`/api/tools/${e.id}/launch`,{method:"POST"})})},disabled:m,"aria-label":`Launch ${e.name}`,"data-testid":"tool-card-launch-button",className:"hover:bg-primary hover:text-primary-foreground h-7 cursor-pointer rounded-md px-3 text-xs",children:[m?(0,t.jsx)(l.Loader2,{className:"mr-1 h-3 w-3 animate-spin"}):(0,t.jsx)(d,{className:"mr-1 h-3 w-3"}),"Launch"]}):v||b||!e.autoInstall?v||b?null:(0,t.jsxs)(g.Button,{size:"sm",variant:"outline",onClick:()=>f(!0),"aria-label":`View install instructions for ${e.name}`,"data-testid":"tool-card-manual-install-button",className:"h-7 cursor-pointer rounded-md px-3 text-xs",children:[(0,t.jsx)(n.ExternalLink,{className:"mr-1 h-3 w-3"}),"Install"]}):(0,t.jsxs)(g.Button,{size:"sm",onClick:function(){y(async()=>{(await fetch(`/api/tools/${e.id}/install`,{method:"POST"})).ok&&a&&await a()})},disabled:m,"aria-label":`Install ${e.name}`,"data-testid":"tool-card-install-button",className:"h-7 cursor-pointer rounded-md px-3 text-xs",children:[m?(0,t.jsx)(l.Loader2,{className:"mr-1 h-3 w-3 animate-spin"}):(0,t.jsx)(c,{className:"mr-1 h-3 w-3"}),m?"Installing…":"Install"]})]})]}),(0,t.jsx)(A,{tool:e,open:o,onOpenChange:f})]})}let S={all:()=>!0,ide:e=>e.tags.includes("ide"),"cli-agent":e=>e.tags.includes("cli-agent"),vcs:e=>e.tags.includes("vcs")};function M({tools:e,className:n}){let[l,o]=(0,s.useState)(e),[d,c]=(0,s.useState)("all");async function u(){try{let e=await fetch("/api/tools");if(e.ok){let t=await e.json();o(t)}}catch{}}let f=l.filter(S[d]);return(0,t.jsxs)("div",{"data-testid":"tools-page-client",className:(0,r.cn)("space-y-4",n),children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(a.Wrench,{className:"text-muted-foreground h-4 w-4"}),(0,t.jsx)("h1",{className:"text-sm font-bold tracking-tight",children:"Tools"}),(0,t.jsxs)("span",{className:"text-muted-foreground text-[10px]",children:[l.filter(e=>"available"===e.status.status).length,"/",l.length," installed"]})]}),(0,t.jsxs)(i.Tabs,{value:d,onValueChange:e=>c(e),"data-testid":"tools-page-tabs",children:[(0,t.jsxs)(i.TabsList,{className:"h-7",children:[(0,t.jsx)(i.TabsTrigger,{value:"all","data-testid":"tools-tab-all",className:"px-2.5 text-xs",children:"All"}),(0,t.jsx)(i.TabsTrigger,{value:"ide","data-testid":"tools-tab-ide",className:"px-2.5 text-xs",children:"IDEs"}),(0,t.jsx)(i.TabsTrigger,{value:"cli-agent","data-testid":"tools-tab-cli-agent",className:"px-2.5 text-xs",children:"CLI Agents"}),(0,t.jsx)(i.TabsTrigger,{value:"vcs","data-testid":"tools-tab-vcs",className:"px-2.5 text-xs",children:"Version Control"})]}),(0,t.jsx)(i.TabsContent,{value:d,className:"mt-3",children:0===f.length?(0,t.jsxs)("div",{"data-testid":"tools-page-empty",className:"text-muted-foreground flex flex-col items-center justify-center py-12 text-center",children:[(0,t.jsx)(a.Wrench,{className:"mb-2 h-6 w-6 opacity-20"}),(0,t.jsx)("p",{className:"text-xs",children:"No tools in this category."})]}):(0,t.jsx)("div",{"data-testid":"tools-page-grid",className:"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4",children:f.map(e=>(0,t.jsx)(D,{tool:e,onRefresh:u},e.id))})})]})]})}e.s(["ToolsPageClient",()=>M],44412)}]);
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,68304,e=>{"use strict";var t=e.i(20314),s=e.i(79054),a=e.i(91967),i=e.i(22528),r=e.i(51080),n=e.i(85995),l=e.i(87620),o=e.i(66033),d=e.i(36589),c=e.i(13123),u="Tabs",[f,m]=(0,i.createContextScope)(u,[r.createRovingFocusGroupScope]),h=(0,r.createRovingFocusGroupScope)(),[p,x]=f(u),g=s.forwardRef((e,s)=>{let{__scopeTabs:a,value:i,onValueChange:r,defaultValue:n,orientation:f="horizontal",dir:m,activationMode:h="automatic",...x}=e,g=(0,o.useDirection)(m),[y,v]=(0,d.useControllableState)({prop:i,onChange:r,defaultProp:n??"",caller:u});return(0,t.jsx)(p,{scope:a,baseId:(0,c.useId)(),value:y,onValueChange:v,orientation:f,dir:g,activationMode:h,children:(0,t.jsx)(l.Primitive.div,{dir:g,"data-orientation":f,...x,ref:s})})});g.displayName=u;var y="TabsList",v=s.forwardRef((e,s)=>{let{__scopeTabs:a,loop:i=!0,...n}=e,o=x(y,a),d=h(a);return(0,t.jsx)(r.Root,{asChild:!0,...d,orientation:o.orientation,dir:o.dir,loop:i,children:(0,t.jsx)(l.Primitive.div,{role:"tablist","aria-orientation":o.orientation,...n,ref:s})})});v.displayName=y;var b="TabsTrigger",j=s.forwardRef((e,s)=>{let{__scopeTabs:i,value:n,disabled:o=!1,...d}=e,c=x(b,i),u=h(i),f=N(c.baseId,n),m=C(c.baseId,n),p=n===c.value;return(0,t.jsx)(r.Item,{asChild:!0,...u,focusable:!o,active:p,children:(0,t.jsx)(l.Primitive.button,{type:"button",role:"tab","aria-selected":p,"aria-controls":m,"data-state":p?"active":"inactive","data-disabled":o?"":void 0,disabled:o,id:f,...d,ref:s,onMouseDown:(0,a.composeEventHandlers)(e.onMouseDown,e=>{o||0!==e.button||!1!==e.ctrlKey?e.preventDefault():c.onValueChange(n)}),onKeyDown:(0,a.composeEventHandlers)(e.onKeyDown,e=>{[" ","Enter"].includes(e.key)&&c.onValueChange(n)}),onFocus:(0,a.composeEventHandlers)(e.onFocus,()=>{let e="manual"!==c.activationMode;p||o||!e||c.onValueChange(n)})})})});j.displayName=b;var w="TabsContent",k=s.forwardRef((e,a)=>{let{__scopeTabs:i,value:r,forceMount:o,children:d,...c}=e,u=x(w,i),f=N(u.baseId,r),m=C(u.baseId,r),h=r===u.value,p=s.useRef(h);return s.useEffect(()=>{let e=requestAnimationFrame(()=>p.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,t.jsx)(n.Presence,{present:o||h,children:({present:s})=>(0,t.jsx)(l.Primitive.div,{"data-state":h?"active":"inactive","data-orientation":u.orientation,role:"tabpanel","aria-labelledby":f,hidden:!s,id:m,tabIndex:0,...c,ref:a,style:{...e.style,animationDuration:p.current?"0s":void 0},children:s&&d})})});function N(e,t){return`${e}-trigger-${t}`}function C(e,t){return`${e}-content-${t}`}k.displayName=w,e.s(["Content",()=>k,"List",()=>v,"Root",()=>g,"Tabs",()=>g,"TabsContent",()=>k,"TabsList",()=>v,"TabsTrigger",()=>j,"Trigger",()=>j,"createTabsScope",()=>m],43133);var R=e.i(43133),R=R,T=e.i(31777);let A=R.Root,I=s.forwardRef(({className:e,...s},a)=>(0,t.jsx)(R.List,{ref:a,className:(0,T.cn)("bg-muted text-muted-foreground inline-flex h-9 items-center justify-center rounded-lg p-1",e),...s}));I.displayName=R.List.displayName;let D=s.forwardRef(({className:e,...s},a)=>(0,t.jsx)(R.Trigger,{ref:a,className:(0,T.cn)("ring-offset-background focus-visible:ring-ring data-[state=active]:bg-background data-[state=active]:text-foreground inline-flex items-center justify-center rounded-md px-3 py-1 text-sm font-medium whitespace-nowrap transition-all focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow",e),...s}));D.displayName=R.Trigger.displayName;let S=s.forwardRef(({className:e,...s},a)=>(0,t.jsx)(R.Content,{ref:a,className:(0,T.cn)("ring-offset-background focus-visible:ring-ring mt-2 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none",e),...s}));S.displayName=R.Content.displayName,e.s(["Tabs",()=>A,"TabsContent",()=>S,"TabsList",()=>I,"TabsTrigger",()=>D],68304)},51080,87342,e=>{"use strict";var t=e.i(79054),s=e.i(91967),a=e.i(22528),i=e.i(5978),r=e.i(86874),n=e.i(20314);function l(e){let s=e+"CollectionProvider",[l,o]=(0,a.createContextScope)(s),[d,c]=l(s,{collectionRef:{current:null},itemMap:new Map}),u=e=>{let{scope:s,children:a}=e,i=t.default.useRef(null),r=t.default.useRef(new Map).current;return(0,n.jsx)(d,{scope:s,itemMap:r,collectionRef:i,children:a})};u.displayName=s;let f=e+"CollectionSlot",m=(0,r.createSlot)(f),h=t.default.forwardRef((e,t)=>{let{scope:s,children:a}=e,r=c(f,s),l=(0,i.useComposedRefs)(t,r.collectionRef);return(0,n.jsx)(m,{ref:l,children:a})});h.displayName=f;let p=e+"CollectionItemSlot",x="data-radix-collection-item",g=(0,r.createSlot)(p),y=t.default.forwardRef((e,s)=>{let{scope:a,children:r,...l}=e,o=t.default.useRef(null),d=(0,i.useComposedRefs)(s,o),u=c(p,a);return t.default.useEffect(()=>(u.itemMap.set(o,{ref:o,...l}),()=>void u.itemMap.delete(o))),(0,n.jsx)(g,{...{[x]:""},ref:d,children:r})});return y.displayName=p,[{Provider:u,Slot:h,ItemSlot:y},function(s){let a=c(e+"CollectionConsumer",s);return t.default.useCallback(()=>{let e=a.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${x}]`));return Array.from(a.itemMap.values()).sort((e,s)=>t.indexOf(e.ref.current)-t.indexOf(s.ref.current))},[a.collectionRef,a.itemMap])},o]}var o=new WeakMap;function d(e,t){var s,a;let i,r,n;if("at"in Array.prototype)return Array.prototype.at.call(e,t);let l=(s=e,a=t,i=s.length,(n=(r=c(a))>=0?r:i+r)<0||n>=i?-1:n);return -1===l?void 0:e[l]}function c(e){return e!=e||0===e?0:Math.trunc(e)}(class e extends Map{#e;constructor(e){super(e),this.#e=[...super.keys()],o.set(this,!0)}set(e,t){return o.get(this)&&(this.has(e)?this.#e[this.#e.indexOf(e)]=e:this.#e.push(e)),super.set(e,t),this}insert(e,t,s){let a,i=this.has(t),r=this.#e.length,n=c(e),l=n>=0?n:r+n,o=l<0||l>=r?-1:l;if(o===this.size||i&&o===this.size-1||-1===o)return this.set(t,s),this;let d=this.size+ +!i;n<0&&l++;let u=[...this.#e],f=!1;for(let e=l;e<d;e++)if(l===e){let r=u[e];u[e]===t&&(r=u[e+1]),i&&this.delete(t),a=this.get(r),this.set(t,s)}else{f||u[e-1]!==t||(f=!0);let s=u[f?e:e-1],i=a;a=this.get(s),this.delete(s),this.set(s,i)}return this}with(t,s,a){let i=new e(this);return i.insert(t,s,a),i}before(e){let t=this.#e.indexOf(e)-1;if(!(t<0))return this.entryAt(t)}setBefore(e,t,s){let a=this.#e.indexOf(e);return -1===a?this:this.insert(a,t,s)}after(e){let t=this.#e.indexOf(e);if(-1!==(t=-1===t||t===this.size-1?-1:t+1))return this.entryAt(t)}setAfter(e,t,s){let a=this.#e.indexOf(e);return -1===a?this:this.insert(a+1,t,s)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return this.#e=[],super.clear()}delete(e){let t=super.delete(e);return t&&this.#e.splice(this.#e.indexOf(e),1),t}deleteAt(e){let t=this.keyAt(e);return void 0!==t&&this.delete(t)}at(e){let t=d(this.#e,e);if(void 0!==t)return this.get(t)}entryAt(e){let t=d(this.#e,e);if(void 0!==t)return[t,this.get(t)]}indexOf(e){return this.#e.indexOf(e)}keyAt(e){return d(this.#e,e)}from(e,t){let s=this.indexOf(e);if(-1===s)return;let a=s+t;return a<0&&(a=0),a>=this.size&&(a=this.size-1),this.at(a)}keyFrom(e,t){let s=this.indexOf(e);if(-1===s)return;let a=s+t;return a<0&&(a=0),a>=this.size&&(a=this.size-1),this.keyAt(a)}find(e,t){let s=0;for(let a of this){if(Reflect.apply(e,t,[a,s,this]))return a;s++}}findIndex(e,t){let s=0;for(let a of this){if(Reflect.apply(e,t,[a,s,this]))return s;s++}return -1}filter(t,s){let a=[],i=0;for(let e of this)Reflect.apply(t,s,[e,i,this])&&a.push(e),i++;return new e(a)}map(t,s){let a=[],i=0;for(let e of this)a.push([e[0],Reflect.apply(t,s,[e,i,this])]),i++;return new e(a)}reduce(...e){let[t,s]=e,a=0,i=s??this.at(0);for(let s of this)i=0===a&&1===e.length?s:Reflect.apply(t,this,[i,s,a,this]),a++;return i}reduceRight(...e){let[t,s]=e,a=s??this.at(-1);for(let s=this.size-1;s>=0;s--){let i=this.at(s);a=s===this.size-1&&1===e.length?i:Reflect.apply(t,this,[a,i,s,this])}return a}toSorted(t){return new e([...this.entries()].sort(t))}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let s=this.keyAt(e),a=this.get(s);t.set(s,a)}return t}toSpliced(...t){let s=[...this.entries()];return s.splice(...t),new e(s)}slice(t,s){let a=new e,i=this.size-1;if(void 0===t)return a;t<0&&(t+=this.size),void 0!==s&&s>0&&(i=s-1);for(let e=t;e<=i;e++){let t=this.keyAt(e),s=this.get(t);a.set(t,s)}return a}every(e,t){let s=0;for(let a of this){if(!Reflect.apply(e,t,[a,s,this]))return!1;s++}return!0}some(e,t){let s=0;for(let a of this){if(Reflect.apply(e,t,[a,s,this]))return!0;s++}return!1}}),e.s(["createCollection",()=>l],87342);var u=e.i(13123),f=e.i(87620),m=e.i(29297),h=e.i(36589),p=e.i(66033),x="rovingFocusGroup.onEntryFocus",g={bubbles:!1,cancelable:!0},y="RovingFocusGroup",[v,b,j]=l(y),[w,k]=(0,a.createContextScope)(y,[j]),[N,C]=w(y),R=t.forwardRef((e,t)=>(0,n.jsx)(v.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,n.jsx)(v.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,n.jsx)(T,{...e,ref:t})})}));R.displayName=y;var T=t.forwardRef((e,a)=>{let{__scopeRovingFocusGroup:r,orientation:l,loop:o=!1,dir:d,currentTabStopId:c,defaultCurrentTabStopId:u,onCurrentTabStopIdChange:v,onEntryFocus:j,preventScrollOnEntryFocus:w=!1,...k}=e,C=t.useRef(null),R=(0,i.useComposedRefs)(a,C),T=(0,p.useDirection)(d),[A,I]=(0,h.useControllableState)({prop:c,defaultProp:u??null,onChange:v,caller:y}),[D,M]=t.useState(!1),z=(0,m.useCallbackRef)(j),E=b(r),F=t.useRef(!1),[L,P]=t.useState(0);return t.useEffect(()=>{let e=C.current;if(e)return e.addEventListener(x,z),()=>e.removeEventListener(x,z)},[z]),(0,n.jsx)(N,{scope:r,orientation:l,dir:T,loop:o,currentTabStopId:A,onItemFocus:t.useCallback(e=>I(e),[I]),onItemShiftTab:t.useCallback(()=>M(!0),[]),onFocusableItemAdd:t.useCallback(()=>P(e=>e+1),[]),onFocusableItemRemove:t.useCallback(()=>P(e=>e-1),[]),children:(0,n.jsx)(f.Primitive.div,{tabIndex:D||0===L?-1:0,"data-orientation":l,...k,ref:R,style:{outline:"none",...e.style},onMouseDown:(0,s.composeEventHandlers)(e.onMouseDown,()=>{F.current=!0}),onFocus:(0,s.composeEventHandlers)(e.onFocus,e=>{let t=!F.current;if(e.target===e.currentTarget&&t&&!D){let t=new CustomEvent(x,g);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=E().filter(e=>e.focusable);S([e.find(e=>e.active),e.find(e=>e.id===A),...e].filter(Boolean).map(e=>e.ref.current),w)}}F.current=!1}),onBlur:(0,s.composeEventHandlers)(e.onBlur,()=>M(!1))})})}),A="RovingFocusGroupItem",I=t.forwardRef((e,a)=>{let{__scopeRovingFocusGroup:i,focusable:r=!0,active:l=!1,tabStopId:o,children:d,...c}=e,m=(0,u.useId)(),h=o||m,p=C(A,i),x=p.currentTabStopId===h,g=b(i),{onFocusableItemAdd:y,onFocusableItemRemove:j,currentTabStopId:w}=p;return t.useEffect(()=>{if(r)return y(),()=>j()},[r,y,j]),(0,n.jsx)(v.ItemSlot,{scope:i,id:h,focusable:r,active:l,children:(0,n.jsx)(f.Primitive.span,{tabIndex:x?0:-1,"data-orientation":p.orientation,...c,ref:a,onMouseDown:(0,s.composeEventHandlers)(e.onMouseDown,e=>{r?p.onItemFocus(h):e.preventDefault()}),onFocus:(0,s.composeEventHandlers)(e.onFocus,()=>p.onItemFocus(h)),onKeyDown:(0,s.composeEventHandlers)(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey)return void p.onItemShiftTab();if(e.target!==e.currentTarget)return;let t=function(e,t,s){var a;let i=(a=e.key,"rtl"!==s?a:"ArrowLeft"===a?"ArrowRight":"ArrowRight"===a?"ArrowLeft":a);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(i))&&!("horizontal"===t&&["ArrowUp","ArrowDown"].includes(i)))return D[i]}(e,p.orientation,p.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let i=g().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)i.reverse();else if("prev"===t||"next"===t){var s,a;"prev"===t&&i.reverse();let r=i.indexOf(e.currentTarget);i=p.loop?(s=i,a=r+1,s.map((e,t)=>s[(a+t)%s.length])):i.slice(r+1)}setTimeout(()=>S(i))}}),children:"function"==typeof d?d({isCurrentTabStop:x,hasTabStop:null!=w}):d})})});I.displayName=A;var D={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function S(e,t=!1){let s=document.activeElement;for(let a of e)if(a===s||(a.focus({preventScroll:t}),document.activeElement!==s))return}e.s(["Item",()=>I,"Root",()=>R,"createRovingFocusGroupScope",()=>k],51080)},30702,e=>{"use strict";let t=(0,e.i(3645).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",()=>t],30702)},38573,e=>{"use strict";let t=(0,e.i(3645).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);e.s(["Terminal",()=>t],38573)},49228,e=>{"use strict";let t=(0,e.i(3645).default)("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);e.s(["GitBranch",()=>t],49228)},54277,30090,e=>{"use strict";let t=(0,e.i(3645).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.s(["default",()=>t],30090),e.s(["CircleX",()=>t],54277)},23925,1012,e=>{"use strict";let t=(0,e.i(3645).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["default",()=>t],1012),e.s(["Check",()=>t],23925)},33548,e=>{"use strict";let t=(0,e.i(3645).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",()=>t],33548)},60253,e=>{"use strict";var t=e.i(90537);e.s(["X",()=>t.default])},44412,e=>{"use strict";var t=e.i(20314),s=e.i(79054),a=e.i(81975),i=e.i(68304),r=e.i(31777),n=e.i(30702),l=e.i(83428),o=e.i(3645);let d=(0,o.default)("rocket",[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]]),c=(0,o.default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]),u=(0,o.default)("monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]);var f=e.i(38573),m=e.i(49228),h=e.i(54277),p=e.i(23925);let x=(0,o.default)("package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]);var g=e.i(35364),y=e.i(33548),v=e.i(90033),b=e.i(60253);let j=v.Dialog.Root;v.Dialog.Trigger;let w=v.Dialog.Portal;v.Dialog.Close;let k=s.forwardRef(({className:e,...s},a)=>(0,t.jsx)(v.Dialog.Overlay,{ref:a,className:(0,r.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80",e),...s}));k.displayName=v.Dialog.Overlay.displayName;let N=s.forwardRef(({className:e,children:s,...a},i)=>(0,t.jsxs)(w,{children:[(0,t.jsx)(k,{}),(0,t.jsxs)(v.Dialog.Content,{ref:i,className:(0,r.cn)("bg-background 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%] fixed top-[50%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-200 sm:rounded-lg",e),...a,children:[s,(0,t.jsxs)(v.Dialog.Close,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none",children:[(0,t.jsx)(b.X,{className:"h-4 w-4"}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]}));N.displayName=v.Dialog.Content.displayName;let C=({className:e,...s})=>(0,t.jsx)("div",{className:(0,r.cn)("flex flex-col space-y-1.5 text-center sm:text-left",e),...s});C.displayName="DialogHeader";let R=s.forwardRef(({className:e,...s},a)=>(0,t.jsx)(v.Dialog.Title,{ref:a,className:(0,r.cn)("text-lg leading-none font-semibold tracking-tight",e),...s}));R.displayName=v.Dialog.Title.displayName;let T=s.forwardRef(({className:e,...s},a)=>(0,t.jsx)(v.Dialog.Description,{ref:a,className:(0,r.cn)("text-muted-foreground text-sm",e),...s}));function A({tool:e,open:a,onOpenChange:i,className:l}){let[o,d]=(0,s.useState)(!1);return(0,t.jsx)(j,{open:a,onOpenChange:i,children:(0,t.jsxs)(N,{"data-testid":"install-instructions",className:(0,r.cn)("sm:max-w-2xl",l),children:[(0,t.jsxs)(C,{children:[(0,t.jsxs)(R,{"data-testid":"install-instructions-title",children:["Install ",e.name]}),(0,t.jsx)(T,{"data-testid":"install-instructions-description",children:e.summary})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[e.installCommand&&e.autoInstall?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"Installation command"}),(0,t.jsxs)("div",{className:"bg-muted relative rounded-md",children:[(0,t.jsx)("pre",{"data-testid":"install-instructions-command",className:"overflow-x-auto px-3 py-2.5 pr-20 font-mono text-xs leading-relaxed break-all whitespace-pre-wrap",children:(0,t.jsx)("code",{children:e.installCommand})}),(0,t.jsxs)(g.Button,{variant:"ghost",size:"sm",className:"absolute top-1.5 right-1.5 h-7 cursor-pointer px-2",onClick:function(){e.installCommand&&navigator.clipboard.writeText(e.installCommand).then(()=>{d(!0),setTimeout(()=>d(!1),2e3)})},"aria-label":o?"Copied!":"Copy install command","data-testid":"install-instructions-copy-button",children:[o?(0,t.jsx)(p.Check,{className:"h-3.5 w-3.5 text-emerald-500"}):(0,t.jsx)(y.Copy,{className:"h-3.5 w-3.5"}),(0,t.jsx)("span",{className:"ml-1 text-[10px]",children:o?"Copied!":"Copy"})]})]})]}):e.installCommand?(0,t.jsx)("p",{"data-testid":"install-instructions-command",className:"text-muted-foreground text-sm",children:e.installCommand}):(0,t.jsx)("p",{"data-testid":"install-instructions-no-command",className:"text-muted-foreground text-sm",children:"Please refer to the documentation for installation instructions."}),e.documentationUrl?(0,t.jsx)(g.Button,{variant:"outline",size:"sm",className:"w-fit cursor-pointer",asChild:!0,children:(0,t.jsxs)("a",{"data-testid":"install-instructions-doc-link",href:e.documentationUrl,target:"_blank",rel:"noopener noreferrer",children:["View documentation",(0,t.jsx)(n.ExternalLink,{className:"ml-1.5 h-3.5 w-3.5"})]})}):null]})]})})}T.displayName=v.Dialog.Description.displayName;let I={ide:{label:"IDE",icon:u},"cli-agent":{label:"CLI Agent",icon:f.Terminal},vcs:{label:"VCS",icon:m.GitBranch},terminal:{label:"Terminal",icon:f.Terminal}};function D({tool:e,onRefresh:a,className:i}){let[o,f]=(0,s.useState)(!1),[m,y]=(0,s.useTransition)(),v="available"===e.status.status,b="error"===e.status.status,j=v&&!!e.openDirectory;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{"data-testid":"tool-card",className:(0,r.cn)("bg-card group flex h-30 w-full flex-col rounded-lg border p-3 shadow-sm transition-shadow hover:shadow-md",i),children:[(0,t.jsxs)("div",{className:"mb-2 flex items-start justify-between gap-2",children:[(0,t.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[e.iconUrl?(0,t.jsx)("img",{src:e.iconUrl,alt:"",width:20,height:20,className:"shrink-0 dark:invert"}):(0,t.jsx)(x,{className:"text-muted-foreground h-5 w-5 shrink-0"}),(0,t.jsx)("h3",{"data-testid":"tool-card-name",className:"truncate text-sm font-bold",children:e.name})]}),(0,t.jsx)("div",{"data-testid":"tool-card-tags",className:"flex shrink-0 items-center gap-1",children:e.tags.map(e=>{let s=I[e]??{label:e,icon:u},a=s.icon;return(0,t.jsxs)("span",{className:"bg-muted text-muted-foreground inline-flex items-center gap-0.5 rounded px-1.5 py-0.5 text-[10px] font-medium",children:[(0,t.jsx)(a,{className:"h-2.5 w-2.5"}),s.label]},e)})})]}),(0,t.jsx)("p",{"data-testid":"tool-card-summary",className:"text-muted-foreground mt-1 truncate text-xs",children:e.summary}),(0,t.jsxs)("div",{className:"mt-auto flex items-center justify-between pt-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[b&&"error"===e.status.status?(0,t.jsxs)("span",{className:"flex items-center gap-1 truncate text-[10px] text-red-600 dark:text-red-400",title:e.status.errorMessage,children:[(0,t.jsx)(h.CircleX,{className:"h-3 w-3 shrink-0"}),e.status.errorMessage??"Error"]}):v?(0,t.jsxs)("span",{className:"flex items-center gap-1 text-[11px] text-emerald-600 dark:text-emerald-400",children:[(0,t.jsx)(p.Check,{className:"h-3 w-3"}),"Installed"]}):(0,t.jsx)("span",{className:"text-muted-foreground text-[10px]",children:"Not installed"}),e.required?(0,t.jsx)("span",{className:"text-muted-foreground text-[10px] italic",children:"Required"}):null]}),v&&j?(0,t.jsxs)(g.Button,{size:"sm",variant:"ghost",onClick:function(){y(async()=>{await fetch(`/api/tools/${e.id}/launch`,{method:"POST"})})},disabled:m,"aria-label":`Launch ${e.name}`,"data-testid":"tool-card-launch-button",className:"hover:bg-primary hover:text-primary-foreground h-7 cursor-pointer rounded-md px-3 text-xs",children:[m?(0,t.jsx)(l.Loader2,{className:"mr-1 h-3 w-3 animate-spin"}):(0,t.jsx)(d,{className:"mr-1 h-3 w-3"}),"Launch"]}):v||b||!e.autoInstall?v||b?null:(0,t.jsxs)(g.Button,{size:"sm",variant:"outline",onClick:()=>f(!0),"aria-label":`View install instructions for ${e.name}`,"data-testid":"tool-card-manual-install-button",className:"h-7 cursor-pointer rounded-md px-3 text-xs",children:[(0,t.jsx)(n.ExternalLink,{className:"mr-1 h-3 w-3"}),"Install"]}):(0,t.jsxs)(g.Button,{size:"sm",onClick:function(){y(async()=>{(await fetch(`/api/tools/${e.id}/install`,{method:"POST"})).ok&&a&&await a()})},disabled:m,"aria-label":`Install ${e.name}`,"data-testid":"tool-card-install-button",className:"h-7 cursor-pointer rounded-md px-3 text-xs",children:[m?(0,t.jsx)(l.Loader2,{className:"mr-1 h-3 w-3 animate-spin"}):(0,t.jsx)(c,{className:"mr-1 h-3 w-3"}),m?"Installing…":"Install"]})]})]}),(0,t.jsx)(A,{tool:e,open:o,onOpenChange:f})]})}let S={all:()=>!0,ide:e=>e.tags.includes("ide"),"cli-agent":e=>e.tags.includes("cli-agent"),vcs:e=>e.tags.includes("vcs"),terminal:e=>e.tags.includes("terminal")};function M({tools:e,className:n}){let[l,o]=(0,s.useState)(e),[d,c]=(0,s.useState)("all");async function u(){try{let e=await fetch("/api/tools");if(e.ok){let t=await e.json();o(t)}}catch{}}let f=l.filter(S[d]);return(0,t.jsxs)("div",{"data-testid":"tools-page-client",className:(0,r.cn)("space-y-4",n),children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(a.Wrench,{className:"text-muted-foreground h-4 w-4"}),(0,t.jsx)("h1",{className:"text-sm font-bold tracking-tight",children:"Tools"}),(0,t.jsxs)("span",{className:"text-muted-foreground text-[10px]",children:[l.filter(e=>"available"===e.status.status).length,"/",l.length," installed"]})]}),(0,t.jsxs)(i.Tabs,{value:d,onValueChange:e=>c(e),"data-testid":"tools-page-tabs",children:[(0,t.jsxs)(i.TabsList,{className:"h-7",children:[(0,t.jsx)(i.TabsTrigger,{value:"all","data-testid":"tools-tab-all",className:"px-2.5 text-xs",children:"All"}),(0,t.jsx)(i.TabsTrigger,{value:"ide","data-testid":"tools-tab-ide",className:"px-2.5 text-xs",children:"IDEs"}),(0,t.jsx)(i.TabsTrigger,{value:"cli-agent","data-testid":"tools-tab-cli-agent",className:"px-2.5 text-xs",children:"CLI Agents"}),(0,t.jsx)(i.TabsTrigger,{value:"vcs","data-testid":"tools-tab-vcs",className:"px-2.5 text-xs",children:"Version Control"}),(0,t.jsx)(i.TabsTrigger,{value:"terminal","data-testid":"tools-tab-terminal",className:"px-2.5 text-xs",children:"Terminals"})]}),(0,t.jsx)(i.TabsContent,{value:d,className:"mt-3",children:0===f.length?(0,t.jsxs)("div",{"data-testid":"tools-page-empty",className:"text-muted-foreground flex flex-col items-center justify-center py-12 text-center",children:[(0,t.jsx)(a.Wrench,{className:"mb-2 h-6 w-6 opacity-20"}),(0,t.jsx)("p",{className:"text-xs",children:"No tools in this category."})]}):(0,t.jsx)("div",{"data-testid":"tools-page-grid",className:"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4",children:f.map(e=>(0,t.jsx)(D,{tool:e,onRefresh:u},e.id))})})]})]})}e.s(["ToolsPageClient",()=>M],44412)}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,87292,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(94237),i=e.i(3645);let o=(0,i.default)("panel-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]);var n=e.i(5240),s=e.i(31777),l=e.i(35364);e.i(98127),e.i(25235);var d=e.i(48249),c=e.i(90033);function u({...e}){return(0,t.jsx)(c.Dialog.Root,{"data-slot":"sheet",...e})}function f({...e}){return(0,t.jsx)(c.Dialog.Portal,{"data-slot":"sheet-portal",...e})}function p({className:e,...r}){return(0,t.jsx)(c.Dialog.Overlay,{"data-slot":"sheet-overlay",className:(0,s.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",e),...r})}function h({className:e,children:r,side:a="right",showCloseButton:i=!0,...o}){return(0,t.jsxs)(f,{children:[(0,t.jsx)(p,{}),(0,t.jsxs)(c.Dialog.Content,{"data-slot":"sheet-content",className:(0,s.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500","right"===a&&"data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm","left"===a&&"data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm","top"===a&&"data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b","bottom"===a&&"data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",e),...o,children:[r,i?(0,t.jsxs)(c.Dialog.Close,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none",children:[(0,t.jsx)(d.XIcon,{className:"size-4"}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]}):null]})]})}function m({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"sheet-header",className:(0,s.cn)("flex flex-col gap-1.5 p-4",e),...r})}function g({className:e,...r}){return(0,t.jsx)(c.Dialog.Title,{"data-slot":"sheet-title",className:(0,s.cn)("text-foreground font-semibold",e),...r})}function b({className:e,...r}){return(0,t.jsx)(c.Dialog.Description,{"data-slot":"sheet-description",className:(0,s.cn)("text-muted-foreground text-sm",e),...r})}var v=e.i(2828);let x=r.createContext(null);function w(){let e=r.useContext(x);if(!e)throw Error("useSidebar must be used within a SidebarProvider.");return e}function C({defaultOpen:e=!0,open:a,onOpenChange:i,className:o,style:n,children:l,...d}){let c=function(){let[e,t]=r.useState(void 0);return r.useEffect(()=>{let e=window.matchMedia("(max-width: 767px)"),r=()=>{t(window.innerWidth<768)};return e.addEventListener("change",r),t(window.innerWidth<768),()=>e.removeEventListener("change",r)},[]),!!e}(),[u,f]=r.useState(!1),[p,h]=r.useState(e),m=a??p,g=r.useCallback(e=>{let t="function"==typeof e?e(m):e;i?i(t):h(t),document.cookie=`sidebar_state=${t}; path=/; max-age=604800`},[i,m]),b=r.useCallback(()=>c?f(e=>!e):g(e=>!e),[c,g,f]);r.useEffect(()=>{let e=e=>{"b"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),b())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[b]);let w=m?"expanded":"collapsed",C=r.useMemo(()=>({state:w,open:m,setOpen:g,isMobile:c,openMobile:u,setOpenMobile:f,toggleSidebar:b}),[w,m,g,c,u,f,b]);return(0,t.jsx)(x.Provider,{value:C,children:(0,t.jsx)(v.TooltipProvider,{delayDuration:0,children:(0,t.jsx)("div",{"data-slot":"sidebar-wrapper",style:{"--sidebar-width":"16rem","--sidebar-width-icon":"3rem",...n},className:(0,s.cn)("group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full",o),...d,children:l})})})}function y({side:e="left",variant:r="sidebar",collapsible:a="offcanvas",className:i,children:o,...n}){let{isMobile:l,state:d,openMobile:c,setOpenMobile:f}=w();return"none"===a?(0,t.jsx)("div",{"data-slot":"sidebar",className:(0,s.cn)("bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col",i),...n,children:o}):l?(0,t.jsx)(u,{open:c,onOpenChange:f,...n,children:(0,t.jsxs)(h,{"data-sidebar":"sidebar","data-slot":"sidebar","data-mobile":"true",className:"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden",style:{"--sidebar-width":"18rem"},side:e,children:[(0,t.jsxs)(m,{className:"sr-only",children:[(0,t.jsx)(g,{children:"Sidebar"}),(0,t.jsx)(b,{children:"Displays the mobile sidebar."})]}),(0,t.jsx)("div",{className:"flex h-full w-full flex-col",children:o})]})}):(0,t.jsxs)("div",{className:"group peer text-sidebar-foreground hidden md:block","data-state":d,"data-collapsible":"collapsed"===d?a:"","data-variant":r,"data-side":e,"data-slot":"sidebar",children:[(0,t.jsx)("div",{"data-slot":"sidebar-gap",className:(0,s.cn)("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0","group-data-[side=right]:rotate-180","floating"===r||"inset"===r?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),(0,t.jsx)("div",{"data-slot":"sidebar-container",className:(0,s.cn)("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex","left"===e?"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]":"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]","floating"===r||"inset"===r?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",i),...n,children:(0,t.jsx)("div",{"data-sidebar":"sidebar","data-slot":"sidebar-inner",className:"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm",children:o})})]})}function j({className:e,...r}){let{toggleSidebar:a}=w();return(0,t.jsx)("button",{"data-sidebar":"rail","data-slot":"sidebar-rail","aria-label":"Toggle Sidebar",tabIndex:-1,onClick:a,title:"Toggle Sidebar",className:(0,s.cn)("hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] sm:flex","in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize","[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize","hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full","[[data-side=left][data-collapsible=offcanvas]_&]:-right-2","[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",e),...r})}function S({className:e,...r}){return(0,t.jsx)("main",{"data-slot":"sidebar-inset",className:(0,s.cn)("bg-background relative flex w-full flex-1 flex-col","md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2",e),...r})}function N({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"sidebar-header","data-sidebar":"header",className:(0,s.cn)("flex flex-col gap-2 p-2",e),...r})}function k({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"sidebar-footer","data-sidebar":"footer",className:(0,s.cn)("flex flex-col gap-2 p-2",e),...r})}function E({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"sidebar-content","data-sidebar":"content",className:(0,s.cn)("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",e),...r})}function T({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"sidebar-group","data-sidebar":"group",className:(0,s.cn)("relative flex w-full min-w-0 flex-col p-2",e),...r})}function R({className:e,asChild:r=!1,...a}){let i=r?n.Slot.Root:"div";return(0,t.jsx)(i,{"data-slot":"sidebar-group-label","data-sidebar":"group-label",className:(0,s.cn)("text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",e),...a})}function A({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"sidebar-group-content","data-sidebar":"group-content",className:(0,s.cn)("w-full text-sm",e),...r})}function L({className:e,...r}){return(0,t.jsx)("ul",{"data-slot":"sidebar-menu","data-sidebar":"menu",className:(0,s.cn)("flex w-full min-w-0 flex-col gap-1",e),...r})}function z({className:e,...r}){return(0,t.jsx)("li",{"data-slot":"sidebar-menu-item","data-sidebar":"menu-item",className:(0,s.cn)("group/menu-item relative",e),...r})}let P=(0,a.cva)("peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",{variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}});function _({asChild:e=!1,isActive:r=!1,variant:a="default",size:i="default",tooltip:o,className:l,...d}){let c=e?n.Slot.Root:"button",{isMobile:u,state:f}=w(),p=(0,t.jsx)(c,{"data-slot":"sidebar-menu-button","data-sidebar":"menu-button","data-size":i,"data-active":r,className:(0,s.cn)(P({variant:a,size:i}),l),...d});return o?("string"==typeof o&&(o={children:o}),(0,t.jsxs)(v.Tooltip,{children:[(0,t.jsx)(v.TooltipTrigger,{asChild:!0,children:p}),(0,t.jsx)(v.TooltipContent,{side:"right",align:"center",hidden:"collapsed"!==f||u,...o})]})):p}var D=e.i(31406);let M=(0,i.default)("house",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]]);var H=e.i(81975),I=e.i(12103),W=e.i(3214),O=e.i(87620),B=e.i(85995),F=e.i(22528),U=e.i(5978),X=e.i(29297),V=e.i(66033),Y=e.i(5192),$=e.i(91967),q="ScrollArea",[Z,K]=(0,F.createContextScope)(q),[G,J]=Z(q),Q=r.forwardRef((e,a)=>{let{__scopeScrollArea:i,type:o="hover",dir:n,scrollHideDelay:s=600,...l}=e,[d,c]=r.useState(null),[u,f]=r.useState(null),[p,h]=r.useState(null),[m,g]=r.useState(null),[b,v]=r.useState(null),[x,w]=r.useState(0),[C,y]=r.useState(0),[j,S]=r.useState(!1),[N,k]=r.useState(!1),E=(0,U.useComposedRefs)(a,e=>c(e)),T=(0,V.useDirection)(n);return(0,t.jsx)(G,{scope:i,type:o,dir:T,scrollHideDelay:s,scrollArea:d,viewport:u,onViewportChange:f,content:p,onContentChange:h,scrollbarX:m,onScrollbarXChange:g,scrollbarXEnabled:j,onScrollbarXEnabledChange:S,scrollbarY:b,onScrollbarYChange:v,scrollbarYEnabled:N,onScrollbarYEnabledChange:k,onCornerWidthChange:w,onCornerHeightChange:y,children:(0,t.jsx)(O.Primitive.div,{dir:T,...l,ref:E,style:{position:"relative","--radix-scroll-area-corner-width":x+"px","--radix-scroll-area-corner-height":C+"px",...e.style}})})});Q.displayName=q;var ee="ScrollAreaViewport",et=r.forwardRef((e,a)=>{let{__scopeScrollArea:i,children:o,nonce:n,...s}=e,l=J(ee,i),d=r.useRef(null),c=(0,U.useComposedRefs)(a,d,l.onViewportChange);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:n}),(0,t.jsx)(O.Primitive.div,{"data-radix-scroll-area-viewport":"",...s,ref:c,style:{overflowX:l.scrollbarXEnabled?"scroll":"hidden",overflowY:l.scrollbarYEnabled?"scroll":"hidden",...e.style},children:(0,t.jsx)("div",{ref:l.onContentChange,style:{minWidth:"100%",display:"table"},children:o})})]})});et.displayName=ee;var er="ScrollAreaScrollbar",ea=r.forwardRef((e,a)=>{let{forceMount:i,...o}=e,n=J(er,e.__scopeScrollArea),{onScrollbarXEnabledChange:s,onScrollbarYEnabledChange:l}=n,d="horizontal"===e.orientation;return r.useEffect(()=>(d?s(!0):l(!0),()=>{d?s(!1):l(!1)}),[d,s,l]),"hover"===n.type?(0,t.jsx)(ei,{...o,ref:a,forceMount:i}):"scroll"===n.type?(0,t.jsx)(eo,{...o,ref:a,forceMount:i}):"auto"===n.type?(0,t.jsx)(en,{...o,ref:a,forceMount:i}):"always"===n.type?(0,t.jsx)(es,{...o,ref:a}):null});ea.displayName=er;var ei=r.forwardRef((e,a)=>{let{forceMount:i,...o}=e,n=J(er,e.__scopeScrollArea),[s,l]=r.useState(!1);return r.useEffect(()=>{let e=n.scrollArea,t=0;if(e){let r=()=>{window.clearTimeout(t),l(!0)},a=()=>{t=window.setTimeout(()=>l(!1),n.scrollHideDelay)};return e.addEventListener("pointerenter",r),e.addEventListener("pointerleave",a),()=>{window.clearTimeout(t),e.removeEventListener("pointerenter",r),e.removeEventListener("pointerleave",a)}}},[n.scrollArea,n.scrollHideDelay]),(0,t.jsx)(B.Presence,{present:i||s,children:(0,t.jsx)(en,{"data-state":s?"visible":"hidden",...o,ref:a})})}),eo=r.forwardRef((e,a)=>{var i;let{forceMount:o,...n}=e,s=J(er,e.__scopeScrollArea),l="horizontal"===e.orientation,d=eN(()=>u("SCROLL_END"),100),[c,u]=(i={hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}},r.useReducer((e,t)=>i[e][t]??e,"hidden"));return r.useEffect(()=>{if("idle"===c){let e=window.setTimeout(()=>u("HIDE"),s.scrollHideDelay);return()=>window.clearTimeout(e)}},[c,s.scrollHideDelay,u]),r.useEffect(()=>{let e=s.viewport,t=l?"scrollLeft":"scrollTop";if(e){let r=e[t],a=()=>{let a=e[t];r!==a&&(u("SCROLL"),d()),r=a};return e.addEventListener("scroll",a),()=>e.removeEventListener("scroll",a)}},[s.viewport,l,u,d]),(0,t.jsx)(B.Presence,{present:o||"hidden"!==c,children:(0,t.jsx)(es,{"data-state":"hidden"===c?"hidden":"visible",...n,ref:a,onPointerEnter:(0,$.composeEventHandlers)(e.onPointerEnter,()=>u("POINTER_ENTER")),onPointerLeave:(0,$.composeEventHandlers)(e.onPointerLeave,()=>u("POINTER_LEAVE"))})})}),en=r.forwardRef((e,a)=>{let i=J(er,e.__scopeScrollArea),{forceMount:o,...n}=e,[s,l]=r.useState(!1),d="horizontal"===e.orientation,c=eN(()=>{if(i.viewport){let e=i.viewport.offsetWidth<i.viewport.scrollWidth,t=i.viewport.offsetHeight<i.viewport.scrollHeight;l(d?e:t)}},10);return ek(i.viewport,c),ek(i.content,c),(0,t.jsx)(B.Presence,{present:o||s,children:(0,t.jsx)(es,{"data-state":s?"visible":"hidden",...n,ref:a})})}),es=r.forwardRef((e,a)=>{let{orientation:i="vertical",...o}=e,n=J(er,e.__scopeScrollArea),s=r.useRef(null),l=r.useRef(0),[d,c]=r.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),u=ew(d.viewport,d.content),f={...o,sizes:d,onSizesChange:c,hasThumb:!!(u>0&&u<1),onThumbChange:e=>s.current=e,onThumbPointerUp:()=>l.current=0,onThumbPointerDown:e=>l.current=e};function p(e,t){return function(e,t,r,a="ltr"){let i=eC(r),o=t||i/2,n=r.scrollbar.paddingStart+o,s=r.scrollbar.size-r.scrollbar.paddingEnd-(i-o),l=r.content-r.viewport;return ej([n,s],"ltr"===a?[0,l]:[-1*l,0])(e)}(e,l.current,d,t)}return"horizontal"===i?(0,t.jsx)(el,{...f,ref:a,onThumbPositionChange:()=>{if(n.viewport&&s.current){let e=ey(n.viewport.scrollLeft,d,n.dir);s.current.style.transform=`translate3d(${e}px, 0, 0)`}},onWheelScroll:e=>{n.viewport&&(n.viewport.scrollLeft=e)},onDragScroll:e=>{n.viewport&&(n.viewport.scrollLeft=p(e,n.dir))}}):"vertical"===i?(0,t.jsx)(ed,{...f,ref:a,onThumbPositionChange:()=>{if(n.viewport&&s.current){let e=ey(n.viewport.scrollTop,d);s.current.style.transform=`translate3d(0, ${e}px, 0)`}},onWheelScroll:e=>{n.viewport&&(n.viewport.scrollTop=e)},onDragScroll:e=>{n.viewport&&(n.viewport.scrollTop=p(e))}}):null}),el=r.forwardRef((e,a)=>{let{sizes:i,onSizesChange:o,...n}=e,s=J(er,e.__scopeScrollArea),[l,d]=r.useState(),c=r.useRef(null),u=(0,U.useComposedRefs)(a,c,s.onScrollbarXChange);return r.useEffect(()=>{c.current&&d(getComputedStyle(c.current))},[c]),(0,t.jsx)(ef,{"data-orientation":"horizontal",...n,ref:u,sizes:i,style:{bottom:0,left:"rtl"===s.dir?"var(--radix-scroll-area-corner-width)":0,right:"ltr"===s.dir?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":eC(i)+"px",...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,r)=>{if(s.viewport){var a,i;let o=s.viewport.scrollLeft+t.deltaX;e.onWheelScroll(o),a=o,i=r,a>0&&a<i&&t.preventDefault()}},onResize:()=>{c.current&&s.viewport&&l&&o({content:s.viewport.scrollWidth,viewport:s.viewport.offsetWidth,scrollbar:{size:c.current.clientWidth,paddingStart:ex(l.paddingLeft),paddingEnd:ex(l.paddingRight)}})}})}),ed=r.forwardRef((e,a)=>{let{sizes:i,onSizesChange:o,...n}=e,s=J(er,e.__scopeScrollArea),[l,d]=r.useState(),c=r.useRef(null),u=(0,U.useComposedRefs)(a,c,s.onScrollbarYChange);return r.useEffect(()=>{c.current&&d(getComputedStyle(c.current))},[c]),(0,t.jsx)(ef,{"data-orientation":"vertical",...n,ref:u,sizes:i,style:{top:0,right:"ltr"===s.dir?0:void 0,left:"rtl"===s.dir?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":eC(i)+"px",...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,r)=>{if(s.viewport){var a,i;let o=s.viewport.scrollTop+t.deltaY;e.onWheelScroll(o),a=o,i=r,a>0&&a<i&&t.preventDefault()}},onResize:()=>{c.current&&s.viewport&&l&&o({content:s.viewport.scrollHeight,viewport:s.viewport.offsetHeight,scrollbar:{size:c.current.clientHeight,paddingStart:ex(l.paddingTop),paddingEnd:ex(l.paddingBottom)}})}})}),[ec,eu]=Z(er),ef=r.forwardRef((e,a)=>{let{__scopeScrollArea:i,sizes:o,hasThumb:n,onThumbChange:s,onThumbPointerUp:l,onThumbPointerDown:d,onThumbPositionChange:c,onDragScroll:u,onWheelScroll:f,onResize:p,...h}=e,m=J(er,i),[g,b]=r.useState(null),v=(0,U.useComposedRefs)(a,e=>b(e)),x=r.useRef(null),w=r.useRef(""),C=m.viewport,y=o.content-o.viewport,j=(0,X.useCallbackRef)(f),S=(0,X.useCallbackRef)(c),N=eN(p,10);function k(e){x.current&&u({x:e.clientX-x.current.left,y:e.clientY-x.current.top})}return r.useEffect(()=>{let e=e=>{let t=e.target;g?.contains(t)&&j(e,y)};return document.addEventListener("wheel",e,{passive:!1}),()=>document.removeEventListener("wheel",e,{passive:!1})},[C,g,y,j]),r.useEffect(S,[o,S]),ek(g,N),ek(m.content,N),(0,t.jsx)(ec,{scope:i,scrollbar:g,hasThumb:n,onThumbChange:(0,X.useCallbackRef)(s),onThumbPointerUp:(0,X.useCallbackRef)(l),onThumbPositionChange:S,onThumbPointerDown:(0,X.useCallbackRef)(d),children:(0,t.jsx)(O.Primitive.div,{...h,ref:v,style:{position:"absolute",...h.style},onPointerDown:(0,$.composeEventHandlers)(e.onPointerDown,e=>{0===e.button&&(e.target.setPointerCapture(e.pointerId),x.current=g.getBoundingClientRect(),w.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",m.viewport&&(m.viewport.style.scrollBehavior="auto"),k(e))}),onPointerMove:(0,$.composeEventHandlers)(e.onPointerMove,k),onPointerUp:(0,$.composeEventHandlers)(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=w.current,m.viewport&&(m.viewport.style.scrollBehavior=""),x.current=null})})})}),ep="ScrollAreaThumb",eh=r.forwardRef((e,r)=>{let{forceMount:a,...i}=e,o=eu(ep,e.__scopeScrollArea);return(0,t.jsx)(B.Presence,{present:a||o.hasThumb,children:(0,t.jsx)(em,{ref:r,...i})})}),em=r.forwardRef((e,a)=>{let{__scopeScrollArea:i,style:o,...n}=e,s=J(ep,i),l=eu(ep,i),{onThumbPositionChange:d}=l,c=(0,U.useComposedRefs)(a,e=>l.onThumbChange(e)),u=r.useRef(void 0),f=eN(()=>{u.current&&(u.current(),u.current=void 0)},100);return r.useEffect(()=>{let e=s.viewport;if(e){let t=()=>{f(),u.current||(u.current=eS(e,d),d())};return d(),e.addEventListener("scroll",t),()=>e.removeEventListener("scroll",t)}},[s.viewport,f,d]),(0,t.jsx)(O.Primitive.div,{"data-state":l.hasThumb?"visible":"hidden",...n,ref:c,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...o},onPointerDownCapture:(0,$.composeEventHandlers)(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),r=e.clientX-t.left,a=e.clientY-t.top;l.onThumbPointerDown({x:r,y:a})}),onPointerUp:(0,$.composeEventHandlers)(e.onPointerUp,l.onThumbPointerUp)})});eh.displayName=ep;var eg="ScrollAreaCorner",eb=r.forwardRef((e,r)=>{let a=J(eg,e.__scopeScrollArea),i=!!(a.scrollbarX&&a.scrollbarY);return"scroll"!==a.type&&i?(0,t.jsx)(ev,{...e,ref:r}):null});eb.displayName=eg;var ev=r.forwardRef((e,a)=>{let{__scopeScrollArea:i,...o}=e,n=J(eg,i),[s,l]=r.useState(0),[d,c]=r.useState(0),u=!!(s&&d);return ek(n.scrollbarX,()=>{let e=n.scrollbarX?.offsetHeight||0;n.onCornerHeightChange(e),c(e)}),ek(n.scrollbarY,()=>{let e=n.scrollbarY?.offsetWidth||0;n.onCornerWidthChange(e),l(e)}),u?(0,t.jsx)(O.Primitive.div,{...o,ref:a,style:{width:s,height:d,position:"absolute",right:"ltr"===n.dir?0:void 0,left:"rtl"===n.dir?0:void 0,bottom:0,...e.style}}):null});function ex(e){return e?parseInt(e,10):0}function ew(e,t){let r=e/t;return isNaN(r)?0:r}function eC(e){let t=ew(e.viewport,e.content),r=e.scrollbar.paddingStart+e.scrollbar.paddingEnd;return Math.max((e.scrollbar.size-r)*t,18)}function ey(e,t,r="ltr"){let a=eC(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,o=t.scrollbar.size-i,n=t.content-t.viewport,s=function(e,[t,r]){return Math.min(r,Math.max(t,e))}(e,"ltr"===r?[0,n]:[-1*n,0]);return ej([0,n],[0,o-a])(s)}function ej(e,t){return r=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let a=(t[1]-t[0])/(e[1]-e[0]);return t[0]+a*(r-e[0])}}var eS=(e,t=()=>{})=>{let r={left:e.scrollLeft,top:e.scrollTop},a=0;return!function i(){let o={left:e.scrollLeft,top:e.scrollTop},n=r.left!==o.left,s=r.top!==o.top;(n||s)&&t(),r=o,a=window.requestAnimationFrame(i)}(),()=>window.cancelAnimationFrame(a)};function eN(e,t){let a=(0,X.useCallbackRef)(e),i=r.useRef(0);return r.useEffect(()=>()=>window.clearTimeout(i.current),[]),r.useCallback(()=>{window.clearTimeout(i.current),i.current=window.setTimeout(a,t)},[a,t])}function ek(e,t){let r=(0,X.useCallbackRef)(t);(0,Y.useLayoutEffect)(()=>{let t=0;if(e){let a=new ResizeObserver(()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(r)});return a.observe(e),()=>{window.cancelAnimationFrame(t),a.unobserve(e)}}},[e,r])}e.s(["Corner",()=>eb,"Root",()=>Q,"ScrollArea",()=>Q,"ScrollAreaCorner",()=>eb,"ScrollAreaScrollbar",()=>ea,"ScrollAreaThumb",()=>eh,"ScrollAreaViewport",()=>et,"Scrollbar",()=>ea,"Thumb",()=>eh,"Viewport",()=>et,"createScrollAreaScope",()=>K],87516);var eE=e.i(87516),eE=eE;function eT({className:e,children:r,...a}){return(0,t.jsxs)(eE.Root,{"data-slot":"scroll-area",className:(0,s.cn)("relative",e),...a,children:[(0,t.jsx)(eE.Viewport,{"data-slot":"scroll-area-viewport",className:"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1",children:r}),(0,t.jsx)(eR,{}),(0,t.jsx)(eE.Corner,{})]})}function eR({className:e,orientation:r="vertical",...a}){return(0,t.jsx)(eE.ScrollAreaScrollbar,{"data-slot":"scroll-area-scrollbar",orientation:r,className:(0,s.cn)("flex touch-none p-px transition-colors select-none","vertical"===r&&"h-full w-2.5 border-l border-l-transparent","horizontal"===r&&"h-2.5 flex-col border-t border-t-transparent",e),...a,children:(0,t.jsx)(eE.ScrollAreaThumb,{"data-slot":"scroll-area-thumb",className:"bg-border relative flex-1 rounded-full"})})}var eA=e.i(24035),eL=e.i(8361);function ez({icon:e,label:r,href:a,active:i=!1}){let o=(0,eL.useSoundAction)("navigate");return(0,t.jsx)(z,{"data-testid":"sidebar-nav-item",children:(0,t.jsx)(_,{asChild:!0,isActive:i,tooltip:r,children:(0,t.jsxs)(eA.default,{href:a,onClick:()=>o.play(),children:[(0,t.jsx)(e,{}),(0,t.jsx)("span",{children:r})]})})})}function eP({className:e}){let{toggleSidebar:r,open:a}=w(),i=(0,eL.useSoundAction)("expand"),n=(0,eL.useSoundAction)("collapse");return(0,t.jsx)("div",{className:(0,s.cn)("flex",e),children:(0,t.jsx)(l.Button,{"data-testid":"sidebar-collapse-toggle",variant:"ghost",size:"icon",className:"size-7 cursor-pointer group-data-[collapsible=icon]:size-8!",onClick:()=>{a?n.play():i.play(),r()},"aria-label":a?"Collapse sidebar":"Expand sidebar",children:(0,t.jsx)(o,{className:"size-4"})})})}function e_({className:e,size:r=24}){return(0,t.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 194 200",width:r,height:r,className:(0,s.cn)("shrink-0",e),"aria-hidden":"true",children:(0,t.jsx)("g",{transform:"matrix(1, 0, 0, 1, -111, -208)",children:(0,t.jsx)("path",{d:"M 198 406 C196,405 194,403 193,401 C192,399 191,398 186,398 C178,397 174,394 170,387 L 168 381 L 163 381 C156,381 150,377 147,370 C144,364 143,359 146,353 C148,348 148,347 147,347 C145,347 140,343 138,339 C133,329 139,314 149,311 L 152 311 L 149 307 C145,302 145,294 149,290 C151,288 152,287 151,286 C150,283 152,278 155,276 C156,275 159,274 162,273 C165,273 166,273 168,276 C171,278 171,280 172,287 C173,294 174,297 177,304 C180,309 182,314 183,316 C186,327 193,336 199,339 C204,342 211,342 216,340 C222,336 231,324 234,314 C235,312 237,307 239,302 C240,298 242,292 242,289 C243,281 245,278 247,275 C250,273 251,273 255,273 C261,274 264,278 264,282 C264,284 264,286 263,287 C262,287 263,288 265,290 C272,295 272,303 267,309 L 265 312 L 269 314 C276,317 279,323 279,332 C279,339 277,343 272,347 C268,351 268,351 269,354 C272,358 271,366 269,371 C266,376 259,381 254,381 C252,381 251,382 248,386 C242,395 234,400 227,399 C224,398 223,398 221,401 C220,403 217,405 216,406 C211,409 203,409 198,406 ZM 136 271 C123,267 115,262 113,256 C111,251 111,251 113,251 C118,254 124,254 132,252 C136,252 141,251 144,251 C149,251 157,253 162,256 C166,258 166,258 166,264 L 166 269 L 160 270 C149,272 142,272 136,271 ZM 264 271 C263,271 259,270 256,270 L 250 270 L 250 265 C249,259 250,257 259,254 C265,251 272,251 289,252 C297,253 299,253 302,252 C305,250 305,250 305,252 C305,255 301,262 297,264 C289,270 272,273 264,271 ZM 162 249 C160,247 159,245 159,242 C159,236 164,230 169,230 C170,230 171,228 171,225 C171,216 176,210 184,209 C189,209 195,211 195,213 C195,214 196,213 197,212 C201,209 204,208 208,208 C212,208 217,210 219,212 C220,214 220,213 223,211 C226,208 234,208 239,211 C243,214 246,221 246,226 C245,230 245,230 247,230 C253,230 258,238 257,244 C256,249 251,252 245,252 C241,252 237,251 234,248 C232,247 232,247 228,249 C225,251 222,252 220,252 C216,252 212,250 210,247 C209,246 209,246 206,248 C201,252 192,253 185,248 C183,247 183,247 178,249 C172,253 166,253 162,249 ZM 116 249 C112,248 114,247 119,247 C122,247 127,246 130,245 C138,242 146,242 152,245 L 158 248 L 148 247 C142,247 138,247 133,248 C128,250 120,250 116,249 ZM 284 248 C281,247 277,247 270,247 L 260 248 L 263 246 C269,243 276,242 284,245 C289,246 295,247 298,247 C303,247 304,247 303,248 C301,250 289,250 284,248 Z",fill:"currentColor"})})})}function eD({startedAt:e}){let[a,i]=(0,r.useState)(()=>Date.now()-e);return(0,r.useEffect)(()=>{let t=setInterval(()=>{(0,r.startTransition)(()=>i(Date.now()-e))},1e3);return()=>clearInterval(t)},[e]),(0,t.jsx)("span",{"data-testid":"elapsed-time",className:"tabular-nums",children:function(e){let t=Math.floor(e/1e3);if(t>=3600){let e=Math.floor(t/3600);return`${e}h`}let r=Math.floor(t/60);return`${String(r).padStart(2,"0")}:${String(t%60).padStart(2,"0")}`}(a)})}var eM=e.i(51251),eH=e.i(83428),eI=e.i(10942);let eW={"action-needed":{icon:eM.CircleAlert,iconClass:"text-amber-500",bgClass:"bg-amber-500/10",label:"Action Needed"},"in-progress":{icon:eH.Loader2,iconClass:"text-blue-500 animate-spin",bgClass:"bg-blue-500/10",label:"In Progress"},done:{icon:eI.CircleCheck,iconClass:"text-emerald-500",bgClass:"bg-emerald-500/10",label:"Done"}},eO=["action-needed","in-progress","done"];function eB({name:e,status:r,startedAt:a,duration:i,onClick:o}){let{icon:n,iconClass:s}=eW[r];return(0,t.jsx)(z,{"data-testid":"feature-list-item",children:(0,t.jsxs)(_,{size:"sm",onClick:o,tooltip:e,className:"cursor-pointer",children:[(0,t.jsx)(n,{className:s}),(0,t.jsx)("span",{className:"flex-1 truncate font-medium",children:e}),"in-progress"===r&&null!=a?(0,t.jsx)("span",{"data-testid":"feature-list-item-meta",className:"text-muted-foreground ml-auto text-xs tabular-nums",children:(0,t.jsx)(eD,{startedAt:a})}):null,"done"===r&&i?(0,t.jsx)("span",{"data-testid":"feature-list-item-meta",className:"text-muted-foreground ml-auto text-xs tabular-nums",children:i}):null]})})}function eF({label:e,count:r,children:a}){return(0,t.jsxs)(T,{"data-testid":"feature-status-group",className:"px-2 py-1",children:[(0,t.jsxs)(R,{className:"text-muted-foreground h-6 px-2 text-[0.65rem] font-semibold tracking-wider uppercase",children:[e,(0,t.jsx)("span",{"aria-label":`${r} items`,className:"bg-sidebar-accent text-sidebar-accent-foreground ml-1.5 inline-flex h-4 min-w-4 items-center justify-center rounded-full px-1 text-[0.6rem] font-medium tabular-nums",role:"img",children:r})]}),(0,t.jsx)(A,{children:(0,t.jsx)(L,{className:"gap-0.5",children:a})})]})}let eU=(0,i.default)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]),eX=(0,i.default)("grip-horizontal",[["circle",{cx:"12",cy:"9",r:"1",key:"124mty"}],["circle",{cx:"19",cy:"9",r:"1",key:"1ruzo2"}],["circle",{cx:"5",cy:"9",r:"1",key:"1a8b28"}],["circle",{cx:"12",cy:"15",r:"1",key:"1e56xg"}],["circle",{cx:"19",cy:"15",r:"1",key:"1a92ep"}],["circle",{cx:"5",cy:"15",r:"1",key:"5r1jwy"}]]);function eV({label:e,onFolderClick:r,onMenuClick:a,className:i}){let{state:o,isMobile:n}=w();return(0,t.jsx)(T,{"data-testid":"sidebar-section-header",className:(0,s.cn)("px-2 py-1",i),children:(0,t.jsxs)("div",{className:"text-sidebar-foreground flex h-7 w-full shrink-0 items-center px-2 text-sm font-medium",children:[(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate",children:e}),(0,t.jsxs)("span",{className:"text-sidebar-foreground/70 flex shrink-0 items-center gap-0.5",children:[(0,t.jsxs)(v.Tooltip,{children:[(0,t.jsx)(v.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:r,className:"ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground flex size-7 items-center justify-center rounded-md p-0 outline-hidden transition-colors focus-visible:ring-2 [&>svg]:size-4","aria-label":"Open features folder",children:(0,t.jsx)(eU,{className:"size-4"})})}),(0,t.jsx)(v.TooltipContent,{side:"right",align:"center",hidden:"collapsed"!==o||n,children:"Open features folder"})]}),(0,t.jsxs)(v.Tooltip,{children:[(0,t.jsx)(v.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:a,className:"ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground flex size-7 items-center justify-center rounded-md p-0 outline-hidden transition-colors focus-visible:ring-2 [&>svg]:size-4","aria-label":"Features options",children:(0,t.jsx)(eX,{className:"size-4"})})}),(0,t.jsx)(v.TooltipContent,{side:"right",align:"center",hidden:"collapsed"!==o||n,children:"Features options"})]})]})]})})}var eY=e.i(63629);function e$({features:e,onNewFeature:a,onFeatureClick:i,onFeaturesFolderClick:o,onFeaturesMenuClick:n}){let s=(0,D.usePathname)(),{state:l}=w(),{mounted:d,visible:c}=function(e,t){let[a,i]=(0,r.useState)(!e),[o,n]=(0,r.useState)(!e);return(0,r.useEffect)(()=>{if(!e){i(!0);let e=requestAnimationFrame(()=>n(!0));return()=>cancelAnimationFrame(e)}n(!1);let t=window.setTimeout(()=>i(!1),200);return()=>window.clearTimeout(t)},[e,200]),{mounted:a,visible:o}}("collapsed"===l,0),u=eO.map(t=>{let{label:r}=eW[t],a=e.filter(e=>e.status===t);return{key:t,label:r,items:a}});return(0,t.jsxs)(y,{"data-testid":"app-sidebar",collapsible:"icon",children:[(0,t.jsx)(N,{children:(0,t.jsxs)(L,{children:[(0,t.jsx)(z,{children:(0,t.jsxs)("div",{className:"flex h-8 items-center group-data-[collapsible=icon]:justify-center",children:[d?(0,t.jsxs)("div",{className:["flex min-w-0 flex-1 items-center gap-2 overflow-hidden px-2 transition-opacity duration-200 ease-out",c?"opacity-100":"opacity-0"].join(" "),"aria-hidden":!c,children:[(0,t.jsx)(e_,{className:"shrink-0",size:20}),(0,t.jsx)("span",{className:"truncate text-sm font-semibold tracking-tight",children:"Shep"})]}):null,(0,t.jsx)(eP,{className:"shrink-0 transition-all duration-200"})]})}),(0,t.jsx)(ez,{icon:M,label:"Control Center",href:"/",active:"/"===s}),(0,t.jsx)(ez,{icon:H.Wrench,label:"Tools",href:"/tools",active:"/tools"===s}),eY.featureFlags.skills?(0,t.jsx)(ez,{icon:I.Puzzle,label:"Skills",href:"/skills",active:"/skills"===s}):null]})}),(0,t.jsx)(E,{children:d?(0,t.jsxs)("div",{className:["min-w-0 overflow-hidden transition-opacity duration-200 ease-out [&_[data-sidebar=group-label]]:!mt-0 [&_[data-sidebar=group-label]]:!opacity-100 [&_[data-sidebar=group-label]]:!transition-none",c?"opacity-100":"opacity-0"].join(" "),children:[(0,t.jsx)(eV,{label:"Features",onFolderClick:o,onMenuClick:n}),(0,t.jsx)(eT,{children:u.map(({key:e,label:r,items:a})=>a.length>0?(0,t.jsx)(eF,{label:r,count:a.length,children:a.map(e=>(0,t.jsx)(eB,{name:e.name,status:e.status,startedAt:e.startedAt,duration:e.duration,onClick:i?()=>i(e.name):void 0},e.name))},e):null)})]}):null}),(0,t.jsx)(k,{children:(0,t.jsx)(L,{children:(0,t.jsx)(z,{children:(0,t.jsxs)(_,{onClick:a,tooltip:"New feature",children:[(0,t.jsx)(W.Plus,{}),(0,t.jsx)("span",{children:"New feature"})]})})})}),(0,t.jsx)(j,{})]})}e.i(1354);var eq=e.i(17845);let eZ=(0,i.default)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]),eK=(0,i.default)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]),eG="shep-theme";function eJ(){let{theme:e,resolvedTheme:a,setTheme:i}=function(){let[e,t]=(0,r.useState)("system"),[a,i]=(0,r.useState)("light"),o=(0,r.useCallback)(()=>window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",[]),n=(0,r.useCallback)(e=>"system"===e?o():e,[o]),s=(0,r.useCallback)(e=>{if("u"<typeof document)return;let t=document.documentElement;t.classList.remove("light","dark"),t.classList.add(e),i(e)},[]),l=(0,r.useCallback)(e=>{t(e),"u">typeof localStorage&&localStorage.setItem(eG,e),s(n(e))},[n,s]);return(0,r.useEffect)(()=>{let e=localStorage.getItem(eG)??"system";t(e),s(n(e))},[n,s]),(0,r.useEffect)(()=>{let t=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{"system"===e&&s(n("system"))};return t.addEventListener("change",r),()=>t.removeEventListener("change",r)},[e,n,s]),{theme:e,resolvedTheme:a,setTheme:l}}(),o=(0,eL.useSoundAction)("toggle-on"),n=(0,eL.useSoundAction)("toggle-off");return(0,t.jsxs)(l.Button,{variant:"ghost",size:"icon",onClick:()=>{"dark"!==("system"===e?a:e)?o.play():n.play(),"system"===e?i("dark"===a?"light":"dark"):i("dark"===e?"light":"dark")},"aria-label":`Switch to ${"dark"===a?"light":"dark"} mode`,children:[(0,t.jsx)(eK,{className:"h-5 w-5 scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90"}),(0,t.jsx)(eZ,{className:"absolute h-5 w-5 scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0"}),(0,t.jsx)("span",{className:"sr-only",children:"Toggle theme"})]})}let eQ=(0,i.default)("volume-2",[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["path",{d:"M16 9a5 5 0 0 1 0 6",key:"1q6k2b"}],["path",{d:"M19.364 18.364a9 9 0 0 0 0-12.728",key:"ijwkga"}]]),e0=(0,i.default)("volume-off",[["path",{d:"M16 9a5 5 0 0 1 .95 2.293",key:"1fgyg8"}],["path",{d:"M19.364 5.636a9 9 0 0 1 1.889 9.96",key:"l3zxae"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"m7 7-.587.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298V11",key:"1gbwow"}],["path",{d:"M9.828 4.172A.686.686 0 0 1 11 4.657v.686",key:"s2je0y"}]]);var e2=e.i(73709);function e1(){let{enabled:e,toggle:r}=(0,e2.useSoundEnabled)();return(0,t.jsxs)(l.Button,{variant:"ghost",size:"icon",onClick:r,"aria-label":e?"Mute sounds":"Unmute sounds",children:[e?(0,t.jsx)(eQ,{className:"h-5 w-5"}):(0,t.jsx)(e0,{className:"h-5 w-5"}),(0,t.jsx)("span",{className:"sr-only",children:"Toggle sound"})]})}var e4=e.i(39443),e3=e.i(60112),e5=e.i(17406);let e7={[e5.NotificationSeverity.Success]:"success",[e5.NotificationSeverity.Error]:"error",[e5.NotificationSeverity.Warning]:"warning",[e5.NotificationSeverity.Info]:"info"},e6={[e5.NotificationSeverity.Success]:"notification-success",[e5.NotificationSeverity.Error]:"notification-error",[e5.NotificationSeverity.Warning]:"notification-warning",[e5.NotificationSeverity.Info]:"notification-info"};function e8({children:e}){!function(){let{events:e}=(0,e4.useAgentEventsContext)(),t=(0,eL.useSoundAction)("notification-success"),a=(0,eL.useSoundAction)("notification-error"),i=(0,eL.useSoundAction)("notification-warning"),o=(0,eL.useSoundAction)("notification-info"),n=(0,r.useMemo)(()=>({"notification-success":t,"notification-error":a,"notification-warning":i,"notification-info":o}),[t,a,i,o]),[s,l]=(0,r.useState)(()=>void 0===globalThis.Notification?"default":globalThis.Notification.permission),d=(0,r.useRef)(0);(0,r.useEffect)(()=>{if(e.length<=d.current)return;let t=e.slice(d.current);for(let r of(d.current=e.length,t)){if(r.severity!==e5.NotificationSeverity.Error&&r.severity!==e5.NotificationSeverity.Warning&&r.severity!==e5.NotificationSeverity.Success)continue;!function(e){let t=e7[e.severity]??"info",r=e.eventType===e5.NotificationEventType.WaitingApproval;e3.toast[t](e.featureName,{description:e.message,...r&&{action:{label:"Review",onClick:()=>{window.dispatchEvent(new CustomEvent("shep:select-feature",{detail:{featureId:e.featureId}}))}}}})}(r),globalThis.Notification?.permission==="granted"&&new Notification(`Shep: ${r.featureName}`,{body:r.message,icon:"/favicon-light.svg"});let e=e6[r.severity];n[e]?.play()}},[e,n]),(0,r.useCallback)(async()=>{void 0===globalThis.Notification||l(await globalThis.Notification.requestPermission())},[])}();let a=(0,r.useCallback)(()=>{window.dispatchEvent(new CustomEvent("shep:open-create-drawer"))},[]),i=(0,r.useCallback)(e=>{window.dispatchEvent(new CustomEvent("shep:add-repository",{detail:{path:e}}))},[]);return(0,t.jsxs)(C,{children:[(0,t.jsx)(e$,{features:[],onNewFeature:a}),(0,t.jsx)(S,{children:(0,t.jsxs)("div",{className:"relative h-full",children:[(0,t.jsxs)("div",{className:"absolute top-3 right-3 z-50 flex gap-1",children:[(0,t.jsx)(eq.AddRepositoryButton,{onSelect:i}),(0,t.jsx)(e1,{}),(0,t.jsx)(eJ,{})]}),(0,t.jsx)("main",{className:"h-full",children:e})]})})]})}function e9({children:e}){return(0,t.jsx)(e4.AgentEventsProvider,{children:(0,t.jsx)(e8,{children:e})})}e.s(["AppShell",()=>e9],87292)},25251,e=>{"use strict";var t=e.i(20314),r=e.i(60112);let a=({...e})=>(0,t.jsx)(r.Toaster,{className:"toaster group",toastOptions:{classNames:{toast:"group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",description:"group-[.toast]:text-muted-foreground",actionButton:"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",cancelButton:"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"}},...e});e.s(["Toaster",()=>a])}]);
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,87292,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(94237),i=e.i(3645);let o=(0,i.default)("panel-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]);var n=e.i(5240),s=e.i(31777),l=e.i(35364);e.i(98127),e.i(25235);var d=e.i(48249),c=e.i(90033);function u({...e}){return(0,t.jsx)(c.Dialog.Root,{"data-slot":"sheet",...e})}function f({...e}){return(0,t.jsx)(c.Dialog.Portal,{"data-slot":"sheet-portal",...e})}function p({className:e,...r}){return(0,t.jsx)(c.Dialog.Overlay,{"data-slot":"sheet-overlay",className:(0,s.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",e),...r})}function h({className:e,children:r,side:a="right",showCloseButton:i=!0,...o}){return(0,t.jsxs)(f,{children:[(0,t.jsx)(p,{}),(0,t.jsxs)(c.Dialog.Content,{"data-slot":"sheet-content",className:(0,s.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500","right"===a&&"data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm","left"===a&&"data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm","top"===a&&"data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b","bottom"===a&&"data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",e),...o,children:[r,i?(0,t.jsxs)(c.Dialog.Close,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none",children:[(0,t.jsx)(d.XIcon,{className:"size-4"}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]}):null]})]})}function m({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"sheet-header",className:(0,s.cn)("flex flex-col gap-1.5 p-4",e),...r})}function b({className:e,...r}){return(0,t.jsx)(c.Dialog.Title,{"data-slot":"sheet-title",className:(0,s.cn)("text-foreground font-semibold",e),...r})}function g({className:e,...r}){return(0,t.jsx)(c.Dialog.Description,{"data-slot":"sheet-description",className:(0,s.cn)("text-muted-foreground text-sm",e),...r})}var v=e.i(2828);let x=r.createContext(null);function w(){let e=r.useContext(x);if(!e)throw Error("useSidebar must be used within a SidebarProvider.");return e}function C({defaultOpen:e=!0,open:a,onOpenChange:i,className:o,style:n,children:l,...d}){let c=function(){let[e,t]=r.useState(void 0);return r.useEffect(()=>{let e=window.matchMedia("(max-width: 767px)"),r=()=>{t(window.innerWidth<768)};return e.addEventListener("change",r),t(window.innerWidth<768),()=>e.removeEventListener("change",r)},[]),!!e}(),[u,f]=r.useState(!1),[p,h]=r.useState(e),m=a??p,b=r.useCallback(e=>{let t="function"==typeof e?e(m):e;i?i(t):h(t),document.cookie=`sidebar_state=${t}; path=/; max-age=604800`},[i,m]),g=r.useCallback(()=>c?f(e=>!e):b(e=>!e),[c,b,f]);r.useEffect(()=>{let e=e=>{"b"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),g())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[g]);let w=m?"expanded":"collapsed",C=r.useMemo(()=>({state:w,open:m,setOpen:b,isMobile:c,openMobile:u,setOpenMobile:f,toggleSidebar:g}),[w,m,b,c,u,f,g]);return(0,t.jsx)(x.Provider,{value:C,children:(0,t.jsx)(v.TooltipProvider,{delayDuration:0,children:(0,t.jsx)("div",{"data-slot":"sidebar-wrapper",style:{"--sidebar-width":"16rem","--sidebar-width-icon":"3rem",...n},className:(0,s.cn)("group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full",o),...d,children:l})})})}function y({side:e="left",variant:r="sidebar",collapsible:a="offcanvas",className:i,children:o,...n}){let{isMobile:l,state:d,openMobile:c,setOpenMobile:f}=w();return"none"===a?(0,t.jsx)("div",{"data-slot":"sidebar",className:(0,s.cn)("bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col",i),...n,children:o}):l?(0,t.jsx)(u,{open:c,onOpenChange:f,...n,children:(0,t.jsxs)(h,{"data-sidebar":"sidebar","data-slot":"sidebar","data-mobile":"true",className:"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden",style:{"--sidebar-width":"18rem"},side:e,children:[(0,t.jsxs)(m,{className:"sr-only",children:[(0,t.jsx)(b,{children:"Sidebar"}),(0,t.jsx)(g,{children:"Displays the mobile sidebar."})]}),(0,t.jsx)("div",{className:"flex h-full w-full flex-col",children:o})]})}):(0,t.jsxs)("div",{className:"group peer text-sidebar-foreground hidden md:block","data-state":d,"data-collapsible":"collapsed"===d?a:"","data-variant":r,"data-side":e,"data-slot":"sidebar",children:[(0,t.jsx)("div",{"data-slot":"sidebar-gap",className:(0,s.cn)("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0","group-data-[side=right]:rotate-180","floating"===r||"inset"===r?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),(0,t.jsx)("div",{"data-slot":"sidebar-container",className:(0,s.cn)("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex","left"===e?"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]":"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]","floating"===r||"inset"===r?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",i),...n,children:(0,t.jsx)("div",{"data-sidebar":"sidebar","data-slot":"sidebar-inner",className:"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm",children:o})})]})}function j({className:e,...r}){let{toggleSidebar:a}=w();return(0,t.jsx)("button",{"data-sidebar":"rail","data-slot":"sidebar-rail","aria-label":"Toggle Sidebar",tabIndex:-1,onClick:a,title:"Toggle Sidebar",className:(0,s.cn)("hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] sm:flex","in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize","[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize","hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full","[[data-side=left][data-collapsible=offcanvas]_&]:-right-2","[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",e),...r})}function S({className:e,...r}){return(0,t.jsx)("main",{"data-slot":"sidebar-inset",className:(0,s.cn)("bg-background relative flex w-full flex-1 flex-col","md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2",e),...r})}function k({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"sidebar-header","data-sidebar":"header",className:(0,s.cn)("flex flex-col gap-2 p-2",e),...r})}function N({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"sidebar-footer","data-sidebar":"footer",className:(0,s.cn)("flex flex-col gap-2 p-2",e),...r})}function E({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"sidebar-content","data-sidebar":"content",className:(0,s.cn)("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",e),...r})}function T({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"sidebar-group","data-sidebar":"group",className:(0,s.cn)("relative flex w-full min-w-0 flex-col p-2",e),...r})}function R({className:e,asChild:r=!1,...a}){let i=r?n.Slot.Root:"div";return(0,t.jsx)(i,{"data-slot":"sidebar-group-label","data-sidebar":"group-label",className:(0,s.cn)("text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",e),...a})}function A({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"sidebar-group-content","data-sidebar":"group-content",className:(0,s.cn)("w-full text-sm",e),...r})}function L({className:e,...r}){return(0,t.jsx)("ul",{"data-slot":"sidebar-menu","data-sidebar":"menu",className:(0,s.cn)("flex w-full min-w-0 flex-col gap-1",e),...r})}function P({className:e,...r}){return(0,t.jsx)("li",{"data-slot":"sidebar-menu-item","data-sidebar":"menu-item",className:(0,s.cn)("group/menu-item relative",e),...r})}let z=(0,a.cva)("peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",{variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}});function _({asChild:e=!1,isActive:r=!1,variant:a="default",size:i="default",tooltip:o,className:l,...d}){let c=e?n.Slot.Root:"button",{isMobile:u,state:f}=w(),p=(0,t.jsx)(c,{"data-slot":"sidebar-menu-button","data-sidebar":"menu-button","data-size":i,"data-active":r,className:(0,s.cn)(z({variant:a,size:i}),l),...d});return o?("string"==typeof o&&(o={children:o}),(0,t.jsxs)(v.Tooltip,{children:[(0,t.jsx)(v.TooltipTrigger,{asChild:!0,children:p}),(0,t.jsx)(v.TooltipContent,{side:"right",align:"center",hidden:"collapsed"!==f||u,...o})]})):p}var D=e.i(31406);let M=(0,i.default)("house",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]]);var H=e.i(81975),I=e.i(12103),W=e.i(3214),O=e.i(87620),F=e.i(85995),B=e.i(22528),U=e.i(5978),X=e.i(29297),V=e.i(66033),Y=e.i(5192),$=e.i(91967),q="ScrollArea",[Z,K]=(0,B.createContextScope)(q),[G,J]=Z(q),Q=r.forwardRef((e,a)=>{let{__scopeScrollArea:i,type:o="hover",dir:n,scrollHideDelay:s=600,...l}=e,[d,c]=r.useState(null),[u,f]=r.useState(null),[p,h]=r.useState(null),[m,b]=r.useState(null),[g,v]=r.useState(null),[x,w]=r.useState(0),[C,y]=r.useState(0),[j,S]=r.useState(!1),[k,N]=r.useState(!1),E=(0,U.useComposedRefs)(a,e=>c(e)),T=(0,V.useDirection)(n);return(0,t.jsx)(G,{scope:i,type:o,dir:T,scrollHideDelay:s,scrollArea:d,viewport:u,onViewportChange:f,content:p,onContentChange:h,scrollbarX:m,onScrollbarXChange:b,scrollbarXEnabled:j,onScrollbarXEnabledChange:S,scrollbarY:g,onScrollbarYChange:v,scrollbarYEnabled:k,onScrollbarYEnabledChange:N,onCornerWidthChange:w,onCornerHeightChange:y,children:(0,t.jsx)(O.Primitive.div,{dir:T,...l,ref:E,style:{position:"relative","--radix-scroll-area-corner-width":x+"px","--radix-scroll-area-corner-height":C+"px",...e.style}})})});Q.displayName=q;var ee="ScrollAreaViewport",et=r.forwardRef((e,a)=>{let{__scopeScrollArea:i,children:o,nonce:n,...s}=e,l=J(ee,i),d=r.useRef(null),c=(0,U.useComposedRefs)(a,d,l.onViewportChange);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:n}),(0,t.jsx)(O.Primitive.div,{"data-radix-scroll-area-viewport":"",...s,ref:c,style:{overflowX:l.scrollbarXEnabled?"scroll":"hidden",overflowY:l.scrollbarYEnabled?"scroll":"hidden",...e.style},children:(0,t.jsx)("div",{ref:l.onContentChange,style:{minWidth:"100%",display:"table"},children:o})})]})});et.displayName=ee;var er="ScrollAreaScrollbar",ea=r.forwardRef((e,a)=>{let{forceMount:i,...o}=e,n=J(er,e.__scopeScrollArea),{onScrollbarXEnabledChange:s,onScrollbarYEnabledChange:l}=n,d="horizontal"===e.orientation;return r.useEffect(()=>(d?s(!0):l(!0),()=>{d?s(!1):l(!1)}),[d,s,l]),"hover"===n.type?(0,t.jsx)(ei,{...o,ref:a,forceMount:i}):"scroll"===n.type?(0,t.jsx)(eo,{...o,ref:a,forceMount:i}):"auto"===n.type?(0,t.jsx)(en,{...o,ref:a,forceMount:i}):"always"===n.type?(0,t.jsx)(es,{...o,ref:a}):null});ea.displayName=er;var ei=r.forwardRef((e,a)=>{let{forceMount:i,...o}=e,n=J(er,e.__scopeScrollArea),[s,l]=r.useState(!1);return r.useEffect(()=>{let e=n.scrollArea,t=0;if(e){let r=()=>{window.clearTimeout(t),l(!0)},a=()=>{t=window.setTimeout(()=>l(!1),n.scrollHideDelay)};return e.addEventListener("pointerenter",r),e.addEventListener("pointerleave",a),()=>{window.clearTimeout(t),e.removeEventListener("pointerenter",r),e.removeEventListener("pointerleave",a)}}},[n.scrollArea,n.scrollHideDelay]),(0,t.jsx)(F.Presence,{present:i||s,children:(0,t.jsx)(en,{"data-state":s?"visible":"hidden",...o,ref:a})})}),eo=r.forwardRef((e,a)=>{var i;let{forceMount:o,...n}=e,s=J(er,e.__scopeScrollArea),l="horizontal"===e.orientation,d=ek(()=>u("SCROLL_END"),100),[c,u]=(i={hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}},r.useReducer((e,t)=>i[e][t]??e,"hidden"));return r.useEffect(()=>{if("idle"===c){let e=window.setTimeout(()=>u("HIDE"),s.scrollHideDelay);return()=>window.clearTimeout(e)}},[c,s.scrollHideDelay,u]),r.useEffect(()=>{let e=s.viewport,t=l?"scrollLeft":"scrollTop";if(e){let r=e[t],a=()=>{let a=e[t];r!==a&&(u("SCROLL"),d()),r=a};return e.addEventListener("scroll",a),()=>e.removeEventListener("scroll",a)}},[s.viewport,l,u,d]),(0,t.jsx)(F.Presence,{present:o||"hidden"!==c,children:(0,t.jsx)(es,{"data-state":"hidden"===c?"hidden":"visible",...n,ref:a,onPointerEnter:(0,$.composeEventHandlers)(e.onPointerEnter,()=>u("POINTER_ENTER")),onPointerLeave:(0,$.composeEventHandlers)(e.onPointerLeave,()=>u("POINTER_LEAVE"))})})}),en=r.forwardRef((e,a)=>{let i=J(er,e.__scopeScrollArea),{forceMount:o,...n}=e,[s,l]=r.useState(!1),d="horizontal"===e.orientation,c=ek(()=>{if(i.viewport){let e=i.viewport.offsetWidth<i.viewport.scrollWidth,t=i.viewport.offsetHeight<i.viewport.scrollHeight;l(d?e:t)}},10);return eN(i.viewport,c),eN(i.content,c),(0,t.jsx)(F.Presence,{present:o||s,children:(0,t.jsx)(es,{"data-state":s?"visible":"hidden",...n,ref:a})})}),es=r.forwardRef((e,a)=>{let{orientation:i="vertical",...o}=e,n=J(er,e.__scopeScrollArea),s=r.useRef(null),l=r.useRef(0),[d,c]=r.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),u=ew(d.viewport,d.content),f={...o,sizes:d,onSizesChange:c,hasThumb:!!(u>0&&u<1),onThumbChange:e=>s.current=e,onThumbPointerUp:()=>l.current=0,onThumbPointerDown:e=>l.current=e};function p(e,t){return function(e,t,r,a="ltr"){let i=eC(r),o=t||i/2,n=r.scrollbar.paddingStart+o,s=r.scrollbar.size-r.scrollbar.paddingEnd-(i-o),l=r.content-r.viewport;return ej([n,s],"ltr"===a?[0,l]:[-1*l,0])(e)}(e,l.current,d,t)}return"horizontal"===i?(0,t.jsx)(el,{...f,ref:a,onThumbPositionChange:()=>{if(n.viewport&&s.current){let e=ey(n.viewport.scrollLeft,d,n.dir);s.current.style.transform=`translate3d(${e}px, 0, 0)`}},onWheelScroll:e=>{n.viewport&&(n.viewport.scrollLeft=e)},onDragScroll:e=>{n.viewport&&(n.viewport.scrollLeft=p(e,n.dir))}}):"vertical"===i?(0,t.jsx)(ed,{...f,ref:a,onThumbPositionChange:()=>{if(n.viewport&&s.current){let e=ey(n.viewport.scrollTop,d);s.current.style.transform=`translate3d(0, ${e}px, 0)`}},onWheelScroll:e=>{n.viewport&&(n.viewport.scrollTop=e)},onDragScroll:e=>{n.viewport&&(n.viewport.scrollTop=p(e))}}):null}),el=r.forwardRef((e,a)=>{let{sizes:i,onSizesChange:o,...n}=e,s=J(er,e.__scopeScrollArea),[l,d]=r.useState(),c=r.useRef(null),u=(0,U.useComposedRefs)(a,c,s.onScrollbarXChange);return r.useEffect(()=>{c.current&&d(getComputedStyle(c.current))},[c]),(0,t.jsx)(ef,{"data-orientation":"horizontal",...n,ref:u,sizes:i,style:{bottom:0,left:"rtl"===s.dir?"var(--radix-scroll-area-corner-width)":0,right:"ltr"===s.dir?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":eC(i)+"px",...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,r)=>{if(s.viewport){var a,i;let o=s.viewport.scrollLeft+t.deltaX;e.onWheelScroll(o),a=o,i=r,a>0&&a<i&&t.preventDefault()}},onResize:()=>{c.current&&s.viewport&&l&&o({content:s.viewport.scrollWidth,viewport:s.viewport.offsetWidth,scrollbar:{size:c.current.clientWidth,paddingStart:ex(l.paddingLeft),paddingEnd:ex(l.paddingRight)}})}})}),ed=r.forwardRef((e,a)=>{let{sizes:i,onSizesChange:o,...n}=e,s=J(er,e.__scopeScrollArea),[l,d]=r.useState(),c=r.useRef(null),u=(0,U.useComposedRefs)(a,c,s.onScrollbarYChange);return r.useEffect(()=>{c.current&&d(getComputedStyle(c.current))},[c]),(0,t.jsx)(ef,{"data-orientation":"vertical",...n,ref:u,sizes:i,style:{top:0,right:"ltr"===s.dir?0:void 0,left:"rtl"===s.dir?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":eC(i)+"px",...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,r)=>{if(s.viewport){var a,i;let o=s.viewport.scrollTop+t.deltaY;e.onWheelScroll(o),a=o,i=r,a>0&&a<i&&t.preventDefault()}},onResize:()=>{c.current&&s.viewport&&l&&o({content:s.viewport.scrollHeight,viewport:s.viewport.offsetHeight,scrollbar:{size:c.current.clientHeight,paddingStart:ex(l.paddingTop),paddingEnd:ex(l.paddingBottom)}})}})}),[ec,eu]=Z(er),ef=r.forwardRef((e,a)=>{let{__scopeScrollArea:i,sizes:o,hasThumb:n,onThumbChange:s,onThumbPointerUp:l,onThumbPointerDown:d,onThumbPositionChange:c,onDragScroll:u,onWheelScroll:f,onResize:p,...h}=e,m=J(er,i),[b,g]=r.useState(null),v=(0,U.useComposedRefs)(a,e=>g(e)),x=r.useRef(null),w=r.useRef(""),C=m.viewport,y=o.content-o.viewport,j=(0,X.useCallbackRef)(f),S=(0,X.useCallbackRef)(c),k=ek(p,10);function N(e){x.current&&u({x:e.clientX-x.current.left,y:e.clientY-x.current.top})}return r.useEffect(()=>{let e=e=>{let t=e.target;b?.contains(t)&&j(e,y)};return document.addEventListener("wheel",e,{passive:!1}),()=>document.removeEventListener("wheel",e,{passive:!1})},[C,b,y,j]),r.useEffect(S,[o,S]),eN(b,k),eN(m.content,k),(0,t.jsx)(ec,{scope:i,scrollbar:b,hasThumb:n,onThumbChange:(0,X.useCallbackRef)(s),onThumbPointerUp:(0,X.useCallbackRef)(l),onThumbPositionChange:S,onThumbPointerDown:(0,X.useCallbackRef)(d),children:(0,t.jsx)(O.Primitive.div,{...h,ref:v,style:{position:"absolute",...h.style},onPointerDown:(0,$.composeEventHandlers)(e.onPointerDown,e=>{0===e.button&&(e.target.setPointerCapture(e.pointerId),x.current=b.getBoundingClientRect(),w.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",m.viewport&&(m.viewport.style.scrollBehavior="auto"),N(e))}),onPointerMove:(0,$.composeEventHandlers)(e.onPointerMove,N),onPointerUp:(0,$.composeEventHandlers)(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=w.current,m.viewport&&(m.viewport.style.scrollBehavior=""),x.current=null})})})}),ep="ScrollAreaThumb",eh=r.forwardRef((e,r)=>{let{forceMount:a,...i}=e,o=eu(ep,e.__scopeScrollArea);return(0,t.jsx)(F.Presence,{present:a||o.hasThumb,children:(0,t.jsx)(em,{ref:r,...i})})}),em=r.forwardRef((e,a)=>{let{__scopeScrollArea:i,style:o,...n}=e,s=J(ep,i),l=eu(ep,i),{onThumbPositionChange:d}=l,c=(0,U.useComposedRefs)(a,e=>l.onThumbChange(e)),u=r.useRef(void 0),f=ek(()=>{u.current&&(u.current(),u.current=void 0)},100);return r.useEffect(()=>{let e=s.viewport;if(e){let t=()=>{f(),u.current||(u.current=eS(e,d),d())};return d(),e.addEventListener("scroll",t),()=>e.removeEventListener("scroll",t)}},[s.viewport,f,d]),(0,t.jsx)(O.Primitive.div,{"data-state":l.hasThumb?"visible":"hidden",...n,ref:c,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...o},onPointerDownCapture:(0,$.composeEventHandlers)(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),r=e.clientX-t.left,a=e.clientY-t.top;l.onThumbPointerDown({x:r,y:a})}),onPointerUp:(0,$.composeEventHandlers)(e.onPointerUp,l.onThumbPointerUp)})});eh.displayName=ep;var eb="ScrollAreaCorner",eg=r.forwardRef((e,r)=>{let a=J(eb,e.__scopeScrollArea),i=!!(a.scrollbarX&&a.scrollbarY);return"scroll"!==a.type&&i?(0,t.jsx)(ev,{...e,ref:r}):null});eg.displayName=eb;var ev=r.forwardRef((e,a)=>{let{__scopeScrollArea:i,...o}=e,n=J(eb,i),[s,l]=r.useState(0),[d,c]=r.useState(0),u=!!(s&&d);return eN(n.scrollbarX,()=>{let e=n.scrollbarX?.offsetHeight||0;n.onCornerHeightChange(e),c(e)}),eN(n.scrollbarY,()=>{let e=n.scrollbarY?.offsetWidth||0;n.onCornerWidthChange(e),l(e)}),u?(0,t.jsx)(O.Primitive.div,{...o,ref:a,style:{width:s,height:d,position:"absolute",right:"ltr"===n.dir?0:void 0,left:"rtl"===n.dir?0:void 0,bottom:0,...e.style}}):null});function ex(e){return e?parseInt(e,10):0}function ew(e,t){let r=e/t;return isNaN(r)?0:r}function eC(e){let t=ew(e.viewport,e.content),r=e.scrollbar.paddingStart+e.scrollbar.paddingEnd;return Math.max((e.scrollbar.size-r)*t,18)}function ey(e,t,r="ltr"){let a=eC(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,o=t.scrollbar.size-i,n=t.content-t.viewport,s=function(e,[t,r]){return Math.min(r,Math.max(t,e))}(e,"ltr"===r?[0,n]:[-1*n,0]);return ej([0,n],[0,o-a])(s)}function ej(e,t){return r=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let a=(t[1]-t[0])/(e[1]-e[0]);return t[0]+a*(r-e[0])}}var eS=(e,t=()=>{})=>{let r={left:e.scrollLeft,top:e.scrollTop},a=0;return!function i(){let o={left:e.scrollLeft,top:e.scrollTop},n=r.left!==o.left,s=r.top!==o.top;(n||s)&&t(),r=o,a=window.requestAnimationFrame(i)}(),()=>window.cancelAnimationFrame(a)};function ek(e,t){let a=(0,X.useCallbackRef)(e),i=r.useRef(0);return r.useEffect(()=>()=>window.clearTimeout(i.current),[]),r.useCallback(()=>{window.clearTimeout(i.current),i.current=window.setTimeout(a,t)},[a,t])}function eN(e,t){let r=(0,X.useCallbackRef)(t);(0,Y.useLayoutEffect)(()=>{let t=0;if(e){let a=new ResizeObserver(()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(r)});return a.observe(e),()=>{window.cancelAnimationFrame(t),a.unobserve(e)}}},[e,r])}e.s(["Corner",()=>eg,"Root",()=>Q,"ScrollArea",()=>Q,"ScrollAreaCorner",()=>eg,"ScrollAreaScrollbar",()=>ea,"ScrollAreaThumb",()=>eh,"ScrollAreaViewport",()=>et,"Scrollbar",()=>ea,"Thumb",()=>eh,"Viewport",()=>et,"createScrollAreaScope",()=>K],87516);var eE=e.i(87516),eE=eE;function eT({className:e,children:r,...a}){return(0,t.jsxs)(eE.Root,{"data-slot":"scroll-area",className:(0,s.cn)("relative",e),...a,children:[(0,t.jsx)(eE.Viewport,{"data-slot":"scroll-area-viewport",className:"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1",children:r}),(0,t.jsx)(eR,{}),(0,t.jsx)(eE.Corner,{})]})}function eR({className:e,orientation:r="vertical",...a}){return(0,t.jsx)(eE.ScrollAreaScrollbar,{"data-slot":"scroll-area-scrollbar",orientation:r,className:(0,s.cn)("flex touch-none p-px transition-colors select-none","vertical"===r&&"h-full w-2.5 border-l border-l-transparent","horizontal"===r&&"h-2.5 flex-col border-t border-t-transparent",e),...a,children:(0,t.jsx)(eE.ScrollAreaThumb,{"data-slot":"scroll-area-thumb",className:"bg-border relative flex-1 rounded-full"})})}var eA=e.i(24035),eL=e.i(8361);function eP({icon:e,label:r,href:a,active:i=!1}){let o=(0,eL.useSoundAction)("navigate");return(0,t.jsx)(P,{"data-testid":"sidebar-nav-item",children:(0,t.jsx)(_,{asChild:!0,isActive:i,tooltip:r,children:(0,t.jsxs)(eA.default,{href:a,onClick:()=>o.play(),children:[(0,t.jsx)(e,{}),(0,t.jsx)("span",{children:r})]})})})}function ez({className:e}){let{toggleSidebar:r,open:a}=w(),i=(0,eL.useSoundAction)("expand"),n=(0,eL.useSoundAction)("collapse");return(0,t.jsx)("div",{className:(0,s.cn)("flex",e),children:(0,t.jsx)(l.Button,{"data-testid":"sidebar-collapse-toggle",variant:"ghost",size:"icon",className:"size-7 cursor-pointer group-data-[collapsible=icon]:size-8!",onClick:()=>{a?n.play():i.play(),r()},"aria-label":a?"Collapse sidebar":"Expand sidebar",children:(0,t.jsx)(o,{className:"size-4"})})})}function e_({className:e,size:r=24}){return(0,t.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 194 200",width:r,height:r,className:(0,s.cn)("shrink-0",e),"aria-hidden":"true",children:(0,t.jsx)("g",{transform:"matrix(1, 0, 0, 1, -111, -208)",children:(0,t.jsx)("path",{d:"M 198 406 C196,405 194,403 193,401 C192,399 191,398 186,398 C178,397 174,394 170,387 L 168 381 L 163 381 C156,381 150,377 147,370 C144,364 143,359 146,353 C148,348 148,347 147,347 C145,347 140,343 138,339 C133,329 139,314 149,311 L 152 311 L 149 307 C145,302 145,294 149,290 C151,288 152,287 151,286 C150,283 152,278 155,276 C156,275 159,274 162,273 C165,273 166,273 168,276 C171,278 171,280 172,287 C173,294 174,297 177,304 C180,309 182,314 183,316 C186,327 193,336 199,339 C204,342 211,342 216,340 C222,336 231,324 234,314 C235,312 237,307 239,302 C240,298 242,292 242,289 C243,281 245,278 247,275 C250,273 251,273 255,273 C261,274 264,278 264,282 C264,284 264,286 263,287 C262,287 263,288 265,290 C272,295 272,303 267,309 L 265 312 L 269 314 C276,317 279,323 279,332 C279,339 277,343 272,347 C268,351 268,351 269,354 C272,358 271,366 269,371 C266,376 259,381 254,381 C252,381 251,382 248,386 C242,395 234,400 227,399 C224,398 223,398 221,401 C220,403 217,405 216,406 C211,409 203,409 198,406 ZM 136 271 C123,267 115,262 113,256 C111,251 111,251 113,251 C118,254 124,254 132,252 C136,252 141,251 144,251 C149,251 157,253 162,256 C166,258 166,258 166,264 L 166 269 L 160 270 C149,272 142,272 136,271 ZM 264 271 C263,271 259,270 256,270 L 250 270 L 250 265 C249,259 250,257 259,254 C265,251 272,251 289,252 C297,253 299,253 302,252 C305,250 305,250 305,252 C305,255 301,262 297,264 C289,270 272,273 264,271 ZM 162 249 C160,247 159,245 159,242 C159,236 164,230 169,230 C170,230 171,228 171,225 C171,216 176,210 184,209 C189,209 195,211 195,213 C195,214 196,213 197,212 C201,209 204,208 208,208 C212,208 217,210 219,212 C220,214 220,213 223,211 C226,208 234,208 239,211 C243,214 246,221 246,226 C245,230 245,230 247,230 C253,230 258,238 257,244 C256,249 251,252 245,252 C241,252 237,251 234,248 C232,247 232,247 228,249 C225,251 222,252 220,252 C216,252 212,250 210,247 C209,246 209,246 206,248 C201,252 192,253 185,248 C183,247 183,247 178,249 C172,253 166,253 162,249 ZM 116 249 C112,248 114,247 119,247 C122,247 127,246 130,245 C138,242 146,242 152,245 L 158 248 L 148 247 C142,247 138,247 133,248 C128,250 120,250 116,249 ZM 284 248 C281,247 277,247 270,247 L 260 248 L 263 246 C269,243 276,242 284,245 C289,246 295,247 298,247 C303,247 304,247 303,248 C301,250 289,250 284,248 Z",fill:"currentColor"})})})}function eD({startedAt:e}){let[a,i]=(0,r.useState)(()=>Date.now()-e);return(0,r.useEffect)(()=>{let t=setInterval(()=>{(0,r.startTransition)(()=>i(Date.now()-e))},1e3);return()=>clearInterval(t)},[e]),(0,t.jsx)("span",{"data-testid":"elapsed-time",className:"tabular-nums",children:function(e){let t=Math.floor(e/1e3);if(t>=3600){let e=Math.floor(t/3600);return`${e}h`}let r=Math.floor(t/60);return`${String(r).padStart(2,"0")}:${String(t%60).padStart(2,"0")}`}(a)})}var eM=e.i(51251),eH=e.i(83428),eI=e.i(10942);let eW={"action-needed":{icon:eM.CircleAlert,iconClass:"text-amber-500",bgClass:"bg-amber-500/10",label:"Action Needed"},"in-progress":{icon:eH.Loader2,iconClass:"text-blue-500 animate-spin",bgClass:"bg-blue-500/10",label:"In Progress"},done:{icon:eI.CircleCheck,iconClass:"text-emerald-500",bgClass:"bg-emerald-500/10",label:"Done"}},eO=["action-needed","in-progress","done"];function eF({name:e,status:r,startedAt:a,duration:i,onClick:o}){let{icon:n,iconClass:s}=eW[r];return(0,t.jsx)(P,{"data-testid":"feature-list-item",children:(0,t.jsxs)(_,{size:"sm",onClick:o,tooltip:e,className:"cursor-pointer",children:[(0,t.jsx)(n,{className:s}),(0,t.jsx)("span",{className:"flex-1 truncate font-medium",children:e}),"in-progress"===r&&null!=a?(0,t.jsx)("span",{"data-testid":"feature-list-item-meta",className:"text-muted-foreground ml-auto text-xs tabular-nums",children:(0,t.jsx)(eD,{startedAt:a})}):null,"done"===r&&i?(0,t.jsx)("span",{"data-testid":"feature-list-item-meta",className:"text-muted-foreground ml-auto text-xs tabular-nums",children:i}):null]})})}function eB({label:e,count:r,children:a}){return(0,t.jsxs)(T,{"data-testid":"feature-status-group",className:"px-2 py-1",children:[(0,t.jsxs)(R,{className:"text-muted-foreground h-6 px-2 text-[0.65rem] font-semibold tracking-wider uppercase",children:[e,(0,t.jsx)("span",{"aria-label":`${r} items`,className:"bg-sidebar-accent text-sidebar-accent-foreground ml-1.5 inline-flex h-4 min-w-4 items-center justify-center rounded-full px-1 text-[0.6rem] font-medium tabular-nums",role:"img",children:r})]}),(0,t.jsx)(A,{children:(0,t.jsx)(L,{className:"gap-0.5",children:a})})]})}let eU=(0,i.default)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]),eX=(0,i.default)("grip-horizontal",[["circle",{cx:"12",cy:"9",r:"1",key:"124mty"}],["circle",{cx:"19",cy:"9",r:"1",key:"1ruzo2"}],["circle",{cx:"5",cy:"9",r:"1",key:"1a8b28"}],["circle",{cx:"12",cy:"15",r:"1",key:"1e56xg"}],["circle",{cx:"19",cy:"15",r:"1",key:"1a92ep"}],["circle",{cx:"5",cy:"15",r:"1",key:"5r1jwy"}]]);function eV({label:e,onFolderClick:r,onMenuClick:a,className:i}){let{state:o,isMobile:n}=w();return(0,t.jsx)(T,{"data-testid":"sidebar-section-header",className:(0,s.cn)("px-2 py-1",i),children:(0,t.jsxs)("div",{className:"text-sidebar-foreground flex h-7 w-full shrink-0 items-center px-2 text-sm font-medium",children:[(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate",children:e}),(0,t.jsxs)("span",{className:"text-sidebar-foreground/70 flex shrink-0 items-center gap-0.5",children:[(0,t.jsxs)(v.Tooltip,{children:[(0,t.jsx)(v.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:r,className:"ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground flex size-7 items-center justify-center rounded-md p-0 outline-hidden transition-colors focus-visible:ring-2 [&>svg]:size-4","aria-label":"Open features folder",children:(0,t.jsx)(eU,{className:"size-4"})})}),(0,t.jsx)(v.TooltipContent,{side:"right",align:"center",hidden:"collapsed"!==o||n,children:"Open features folder"})]}),(0,t.jsxs)(v.Tooltip,{children:[(0,t.jsx)(v.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:a,className:"ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground flex size-7 items-center justify-center rounded-md p-0 outline-hidden transition-colors focus-visible:ring-2 [&>svg]:size-4","aria-label":"Features options",children:(0,t.jsx)(eX,{className:"size-4"})})}),(0,t.jsx)(v.TooltipContent,{side:"right",align:"center",hidden:"collapsed"!==o||n,children:"Features options"})]})]})]})})}var eY=e.i(63629);function e$({features:e,onNewFeature:a,onFeatureClick:i,onFeaturesFolderClick:o,onFeaturesMenuClick:n}){let s=(0,D.usePathname)(),{state:l}=w(),{mounted:d,visible:c}=function(e,t){let[a,i]=(0,r.useState)(!e),[o,n]=(0,r.useState)(!e);return(0,r.useEffect)(()=>{if(!e){i(!0);let e=requestAnimationFrame(()=>n(!0));return()=>cancelAnimationFrame(e)}n(!1);let t=window.setTimeout(()=>i(!1),200);return()=>window.clearTimeout(t)},[e,200]),{mounted:a,visible:o}}("collapsed"===l,0),u=eO.map(t=>{let{label:r}=eW[t],a=e.filter(e=>e.status===t);return{key:t,label:r,items:a}});return(0,t.jsxs)(y,{"data-testid":"app-sidebar",collapsible:"icon",children:[(0,t.jsx)(k,{children:(0,t.jsxs)(L,{children:[(0,t.jsx)(P,{children:(0,t.jsxs)("div",{className:"flex h-8 items-center group-data-[collapsible=icon]:justify-center",children:[d?(0,t.jsxs)("div",{className:["flex min-w-0 flex-1 items-center gap-2 overflow-hidden px-2 transition-opacity duration-200 ease-out",c?"opacity-100":"opacity-0"].join(" "),"aria-hidden":!c,children:[(0,t.jsx)(e_,{className:"shrink-0",size:20}),(0,t.jsx)("span",{className:"truncate text-sm font-semibold tracking-tight",children:"Shep"})]}):null,(0,t.jsx)(ez,{className:"shrink-0 transition-all duration-200"})]})}),(0,t.jsx)(eP,{icon:M,label:"Control Center",href:"/",active:"/"===s}),(0,t.jsx)(eP,{icon:H.Wrench,label:"Tools",href:"/tools",active:"/tools"===s}),eY.featureFlags.skills?(0,t.jsx)(eP,{icon:I.Puzzle,label:"Skills",href:"/skills",active:"/skills"===s}):null]})}),(0,t.jsx)(E,{children:d?(0,t.jsxs)("div",{className:["min-w-0 overflow-hidden transition-opacity duration-200 ease-out [&_[data-sidebar=group-label]]:!mt-0 [&_[data-sidebar=group-label]]:!opacity-100 [&_[data-sidebar=group-label]]:!transition-none",c?"opacity-100":"opacity-0"].join(" "),children:[(0,t.jsx)(eV,{label:"Features",onFolderClick:o,onMenuClick:n}),(0,t.jsx)(eT,{children:u.map(({key:e,label:r,items:a})=>a.length>0?(0,t.jsx)(eB,{label:r,count:a.length,children:a.map(e=>(0,t.jsx)(eF,{name:e.name,status:e.status,startedAt:e.startedAt,duration:e.duration,onClick:i?()=>i(e.featureId):void 0},e.featureId))},e):null)})]}):null}),(0,t.jsx)(N,{children:(0,t.jsx)(L,{children:(0,t.jsx)(P,{children:(0,t.jsxs)(_,{onClick:a,tooltip:"New feature",children:[(0,t.jsx)(W.Plus,{}),(0,t.jsx)("span",{children:"New feature"})]})})})}),(0,t.jsx)(j,{})]})}e.i(1354);var eq=e.i(17845);let eZ=(0,i.default)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]),eK=(0,i.default)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]),eG="shep-theme";function eJ(){let{theme:e,resolvedTheme:a,setTheme:i}=function(){let[e,t]=(0,r.useState)("system"),[a,i]=(0,r.useState)("light"),o=(0,r.useCallback)(()=>window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",[]),n=(0,r.useCallback)(e=>"system"===e?o():e,[o]),s=(0,r.useCallback)(e=>{if("u"<typeof document)return;let t=document.documentElement;t.classList.remove("light","dark"),t.classList.add(e),i(e)},[]),l=(0,r.useCallback)(e=>{t(e),"u">typeof localStorage&&localStorage.setItem(eG,e),s(n(e))},[n,s]);return(0,r.useEffect)(()=>{let e=localStorage.getItem(eG)??"system";t(e),s(n(e))},[n,s]),(0,r.useEffect)(()=>{let t=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{"system"===e&&s(n("system"))};return t.addEventListener("change",r),()=>t.removeEventListener("change",r)},[e,n,s]),{theme:e,resolvedTheme:a,setTheme:l}}(),o=(0,eL.useSoundAction)("toggle-on"),n=(0,eL.useSoundAction)("toggle-off");return(0,t.jsxs)(l.Button,{variant:"ghost",size:"icon",onClick:()=>{"dark"!==("system"===e?a:e)?o.play():n.play(),"system"===e?i("dark"===a?"light":"dark"):i("dark"===e?"light":"dark")},"aria-label":`Switch to ${"dark"===a?"light":"dark"} mode`,children:[(0,t.jsx)(eK,{className:"h-5 w-5 scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90"}),(0,t.jsx)(eZ,{className:"absolute h-5 w-5 scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0"}),(0,t.jsx)("span",{className:"sr-only",children:"Toggle theme"})]})}let eQ=(0,i.default)("volume-2",[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["path",{d:"M16 9a5 5 0 0 1 0 6",key:"1q6k2b"}],["path",{d:"M19.364 18.364a9 9 0 0 0 0-12.728",key:"ijwkga"}]]),e0=(0,i.default)("volume-off",[["path",{d:"M16 9a5 5 0 0 1 .95 2.293",key:"1fgyg8"}],["path",{d:"M19.364 5.636a9 9 0 0 1 1.889 9.96",key:"l3zxae"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"m7 7-.587.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298V11",key:"1gbwow"}],["path",{d:"M9.828 4.172A.686.686 0 0 1 11 4.657v.686",key:"s2je0y"}]]);var e2=e.i(73709);function e1(){let{enabled:e,toggle:r}=(0,e2.useSoundEnabled)();return(0,t.jsxs)(l.Button,{variant:"ghost",size:"icon",onClick:r,"aria-label":e?"Mute sounds":"Unmute sounds",children:[e?(0,t.jsx)(eQ,{className:"h-5 w-5"}):(0,t.jsx)(e0,{className:"h-5 w-5"}),(0,t.jsx)("span",{className:"sr-only",children:"Toggle sound"})]})}var e4=e.i(39443),e3=e.i(5147),e5=e.i(60112),e7=e.i(17406);let e6={[e7.NotificationSeverity.Success]:"success",[e7.NotificationSeverity.Error]:"error",[e7.NotificationSeverity.Warning]:"warning",[e7.NotificationSeverity.Info]:"info"},e8={[e7.NotificationSeverity.Success]:"notification-success",[e7.NotificationSeverity.Error]:"notification-error",[e7.NotificationSeverity.Warning]:"notification-warning",[e7.NotificationSeverity.Info]:"notification-info"};function e9({children:e}){!function(){let{events:e}=(0,e4.useAgentEventsContext)(),t=(0,eL.useSoundAction)("notification-success"),a=(0,eL.useSoundAction)("notification-error"),i=(0,eL.useSoundAction)("notification-warning"),o=(0,eL.useSoundAction)("notification-info"),n=(0,r.useMemo)(()=>({"notification-success":t,"notification-error":a,"notification-warning":i,"notification-info":o}),[t,a,i,o]),[s,l]=(0,r.useState)(()=>void 0===globalThis.Notification?"default":globalThis.Notification.permission),d=(0,r.useRef)(0);(0,r.useEffect)(()=>{if(e.length<=d.current)return;let t=e.slice(d.current);for(let r of(d.current=e.length,t)){if(r.severity!==e7.NotificationSeverity.Error&&r.severity!==e7.NotificationSeverity.Warning&&r.severity!==e7.NotificationSeverity.Success)continue;!function(e){let t=e6[e.severity]??"info",r=e.eventType===e7.NotificationEventType.WaitingApproval;e5.toast[t](e.featureName,{description:e.message,...r&&{action:{label:"Review",onClick:()=>{window.dispatchEvent(new CustomEvent("shep:select-feature",{detail:{featureId:e.featureId}}))}}}})}(r),globalThis.Notification?.permission==="granted"&&new Notification(`Shep: ${r.featureName}`,{body:r.message,icon:"/favicon-light.svg"});let e=e8[r.severity];n[e]?.play()}},[e,n]),(0,r.useCallback)(async()=>{void 0===globalThis.Notification||l(await globalThis.Notification.requestPermission())},[])}();let{features:a}=(0,e3.useSidebarFeaturesContext)(),i=(0,r.useCallback)(()=>{window.dispatchEvent(new CustomEvent("shep:open-create-drawer"))},[]),o=(0,r.useCallback)(e=>{window.dispatchEvent(new CustomEvent("shep:select-feature",{detail:{featureId:e}}))},[]),n=(0,r.useCallback)(e=>{window.dispatchEvent(new CustomEvent("shep:add-repository",{detail:{path:e}}))},[]);return(0,t.jsxs)(C,{children:[(0,t.jsx)(e$,{features:a,onNewFeature:i,onFeatureClick:o}),(0,t.jsx)(S,{children:(0,t.jsxs)("div",{className:"relative h-full",children:[(0,t.jsxs)("div",{className:"absolute top-3 right-3 z-50 flex gap-1",children:[(0,t.jsx)(eq.AddRepositoryButton,{onSelect:n}),(0,t.jsx)(e1,{}),(0,t.jsx)(eJ,{})]}),(0,t.jsx)("main",{className:"h-full",children:e})]})})]})}function te({children:e}){return(0,t.jsx)(e4.AgentEventsProvider,{children:(0,t.jsx)(e3.SidebarFeaturesProvider,{children:(0,t.jsx)(e9,{children:e})})})}e.s(["AppShell",()=>te],87292)},25251,e=>{"use strict";var t=e.i(20314),r=e.i(60112);let a=({...e})=>(0,t.jsx)(r.Toaster,{className:"toaster group",toastOptions:{classNames:{toast:"group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",description:"group-[.toast]:text-muted-foreground",actionButton:"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",cancelButton:"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"}},...e});e.s(["Toaster",()=>a])}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,31406,(t,e,a)=>{e.exports=t.r(67013)},39443,t=>{"use strict";var e=t.i(20314),a=t.i(79054);function r(t,e,a,r){if("u"<typeof EventSource)return()=>{};let o=null,n=!1,s=1e3,i=null,l=null;return!function d(){n||(o=new EventSource(t?`/api/agent-events?runId=${encodeURIComponent(t)}`:"/api/agent-events"),r("connecting"),o.onopen=()=>{r("connected"),l=setTimeout(()=>{l=null,s=1e3},5e3)},o.onerror=()=>{o?.close(),o=null,r("disconnected"),null!==l&&(clearTimeout(l),l=null);let t=s;s=Math.min(2*t,3e4),i=setTimeout(()=>{i=null,d()},t)},o.addEventListener("notification",t=>{let r=JSON.parse(t.data);e(t=>[...t,r]),a(r)}))}(),()=>{n=!0,null!==i&&(clearTimeout(i),i=null),null!==l&&(clearTimeout(l),l=null),o&&(o.close(),o=null)}}let o=(0,a.createContext)(null);function n({children:t,runId:n}){let s=function(t){let[e,o]=(0,a.useState)([]),[n,s]=(0,a.useState)(null),[i,l]=(0,a.useState)("disconnected"),d=t?.runId,u=(0,a.useRef)(null),c=(0,a.useCallback)(t=>{let e=t.data;if(e&&"object"==typeof e)if("notification"===e.type){let t=e.data;o(e=>[...e,t]),s(t)}else"status"===e.type&&l(e.status)},[]);return(0,a.useEffect)(()=>{let t="u">typeof location&&new URLSearchParams(location.search).has("sse");if(!navigator.serviceWorker||t)return r(d,o,s,l);let e=!1,a={current:void 0};function n(t){e||(u.current=t,t.postMessage({type:"subscribe",runId:d}),l("connecting"))}function i(){if(e)return;let t=navigator.serviceWorker.controller;t&&(u.current=t,t.postMessage({type:"subscribe",runId:d}),l("connecting"))}return navigator.serviceWorker.addEventListener("message",c),navigator.serviceWorker.addEventListener("controllerchange",i),navigator.serviceWorker.register("/agent-events-sw.js",{scope:"/"}).then(t=>{if(e)return;let i=t.active??t.installing??t.waiting;if(!i){a.current=r(d,o,s,l);return}"activated"===i.state?n(i):i.addEventListener("statechange",()=>{"activated"===i.state&&n(i)})}).catch(()=>{e||(a.current=r(d,o,s,l))}),()=>{e=!0,navigator.serviceWorker.removeEventListener("message",c),navigator.serviceWorker.removeEventListener("controllerchange",i),u.current?.postMessage({type:"unsubscribe"}),u.current=null,a.current?.()}},[d,c]),{events:e,lastEvent:n,connectionStatus:i}}({runId:n});return(0,e.jsx)(o.Provider,{value:s,children:t})}function s(){let t=(0,a.useContext)(o);if(!t)throw Error("useAgentEventsContext must be used within an <AgentEventsProvider>");return t}t.s(["AgentEventsProvider",()=>n,"useAgentEventsContext",()=>s],39443)},3214,91891,80986,10942,78986,1963,17845,1354,5147,t=>{"use strict";var e=t.i(3645);let a=(0,e.default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);t.s(["default",()=>a],91891),t.s(["Plus",()=>a],3214);let r=(0,e.default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);t.s(["default",()=>r],80986),t.s(["CircleCheck",()=>r],10942);var o=t.i(20314),n=t.i(79054),s=t.i(83428),i=t.i(21023);let l=(0,i.createServerReference)("00be2fc10adebcfc2f426a24668679c45663250f3a",i.callServer,void 0,i.findSourceMapURL,"pickFolder");async function d(){let t=await l();if(t.error)throw Error(t.error);return t.path}function u({data:t}){let[e,r]=(0,n.useState)(!1);async function i(){if(!e){r(!0);try{let e=await d();e&&t.onSelect?.(e)}finally{r(!1)}}}return(0,o.jsx)("div",{className:"group",children:(0,o.jsxs)("button",{type:"button","data-testid":"add-repository-node-card",onClick:i,disabled:e,className:"nodrag border-muted-foreground/30 flex w-56 cursor-pointer items-center gap-3 rounded-full border-2 border-dashed px-4 py-3 transition-colors hover:border-blue-500 hover:text-blue-500 disabled:cursor-wait disabled:opacity-60",children:[e?(0,o.jsx)(s.Loader2,{className:"h-5 w-5 shrink-0 animate-spin"}):(0,o.jsx)(a,{className:"h-5 w-5 shrink-0"}),(0,o.jsx)("span",{"data-testid":"add-repository-node-label",className:"text-sm font-medium",children:e?"Opening...":"Add Repository"})]})})}t.s(["pickFolder",()=>d],78986),t.s(["AddRepositoryNode",()=>u],1963);let c=(0,e.default)("folder-plus",[["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"M9 13h6",key:"1uhe8q"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);var f=t.i(35364),m=t.i(2828);function p({onSelect:t}){let[e,a]=(0,n.useState)(!1);async function r(){if(!e){a(!0);try{let e=await d();e&&t?.(e)}finally{a(!1)}}}return(0,o.jsx)(m.TooltipProvider,{children:(0,o.jsxs)(m.Tooltip,{children:[(0,o.jsx)(m.TooltipTrigger,{asChild:!0,children:(0,o.jsx)(f.Button,{variant:"ghost",size:"icon","aria-label":"Add Repository","data-testid":"add-repository-button",onClick:r,disabled:e,children:e?(0,o.jsx)(s.Loader2,{className:"h-5 w-5 animate-spin"}):(0,o.jsx)(c,{className:"h-5 w-5"})})}),(0,o.jsx)(m.TooltipContent,{children:"Add Repository"})]})})}t.s(["AddRepositoryButton",()=>p],17845),t.s([],1354);let h={"action-required":"action-needed",running:"in-progress",done:"done",blocked:"in-progress",error:"in-progress",creating:null};function g(t){return h[t]}let v=(0,n.createContext)(null);function b({children:t}){let[e,a]=(0,n.useState)([]),r=(0,n.useMemo)(()=>({features:e,setFeatures:a}),[e]);return(0,o.jsx)(v.Provider,{value:r,children:t})}function y(){let t=(0,n.useContext)(v);if(!t)throw Error("useSidebarFeaturesContext must be used within a <SidebarFeaturesProvider>");return t}t.s(["SidebarFeaturesProvider",()=>b,"mapNodeStateToSidebarStatus",()=>g,"useSidebarFeaturesContext",()=>y],5147)},60112,t=>{"use strict";var e=t.i(79054),a=t.i(26036);let r=Array(12).fill(0),o=({visible:t,className:a})=>e.default.createElement("div",{className:["sonner-loading-wrapper",a].filter(Boolean).join(" "),"data-visible":t},e.default.createElement("div",{className:"sonner-spinner"},r.map((t,a)=>e.default.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${a}`})))),n=e.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},e.default.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),s=e.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},e.default.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),i=e.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},e.default.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),l=e.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},e.default.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),d=e.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},e.default.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e.default.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),u=1,c=new class{constructor(){this.subscribe=t=>(this.subscribers.push(t),()=>{let e=this.subscribers.indexOf(t);this.subscribers.splice(e,1)}),this.publish=t=>{this.subscribers.forEach(e=>e(t))},this.addToast=t=>{this.publish(t),this.toasts=[...this.toasts,t]},this.create=t=>{var e;let{message:a,...r}=t,o="number"==typeof(null==t?void 0:t.id)||(null==(e=t.id)?void 0:e.length)>0?t.id:u++,n=this.toasts.find(t=>t.id===o),s=void 0===t.dismissible||t.dismissible;return this.dismissedToasts.has(o)&&this.dismissedToasts.delete(o),n?this.toasts=this.toasts.map(e=>e.id===o?(this.publish({...e,...t,id:o,title:a}),{...e,...t,id:o,dismissible:s,title:a}):e):this.addToast({title:a,...r,dismissible:s,id:o}),o},this.dismiss=t=>(t?(this.dismissedToasts.add(t),requestAnimationFrame(()=>this.subscribers.forEach(e=>e({id:t,dismiss:!0})))):this.toasts.forEach(t=>{this.subscribers.forEach(e=>e({id:t.id,dismiss:!0}))}),t),this.message=(t,e)=>this.create({...e,message:t}),this.error=(t,e)=>this.create({...e,message:t,type:"error"}),this.success=(t,e)=>this.create({...e,type:"success",message:t}),this.info=(t,e)=>this.create({...e,type:"info",message:t}),this.warning=(t,e)=>this.create({...e,type:"warning",message:t}),this.loading=(t,e)=>this.create({...e,type:"loading",message:t}),this.promise=(t,a)=>{let r,o;if(!a)return;void 0!==a.loading&&(o=this.create({...a,promise:t,type:"loading",message:a.loading,description:"function"!=typeof a.description?a.description:void 0}));let n=Promise.resolve(t instanceof Function?t():t),s=void 0!==o,i=n.then(async t=>{if(r=["resolve",t],e.default.isValidElement(t))s=!1,this.create({id:o,type:"default",message:t});else if(f(t)&&!t.ok){s=!1;let r="function"==typeof a.error?await a.error(`HTTP error! status: ${t.status}`):a.error,n="function"==typeof a.description?await a.description(`HTTP error! status: ${t.status}`):a.description,i="object"!=typeof r||e.default.isValidElement(r)?{message:r}:r;this.create({id:o,type:"error",description:n,...i})}else if(t instanceof Error){s=!1;let r="function"==typeof a.error?await a.error(t):a.error,n="function"==typeof a.description?await a.description(t):a.description,i="object"!=typeof r||e.default.isValidElement(r)?{message:r}:r;this.create({id:o,type:"error",description:n,...i})}else if(void 0!==a.success){s=!1;let r="function"==typeof a.success?await a.success(t):a.success,n="function"==typeof a.description?await a.description(t):a.description,i="object"!=typeof r||e.default.isValidElement(r)?{message:r}:r;this.create({id:o,type:"success",description:n,...i})}}).catch(async t=>{if(r=["reject",t],void 0!==a.error){s=!1;let r="function"==typeof a.error?await a.error(t):a.error,n="function"==typeof a.description?await a.description(t):a.description,i="object"!=typeof r||e.default.isValidElement(r)?{message:r}:r;this.create({id:o,type:"error",description:n,...i})}}).finally(()=>{s&&(this.dismiss(o),o=void 0),null==a.finally||a.finally.call(a)}),l=()=>new Promise((t,e)=>i.then(()=>"reject"===r[0]?e(r[1]):t(r[1])).catch(e));return"string"!=typeof o&&"number"!=typeof o?{unwrap:l}:Object.assign(o,{unwrap:l})},this.custom=(t,e)=>{let a=(null==e?void 0:e.id)||u++;return this.create({jsx:t(a),id:a,...e}),a},this.getActiveToasts=()=>this.toasts.filter(t=>!this.dismissedToasts.has(t.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},f=t=>t&&"object"==typeof t&&"ok"in t&&"boolean"==typeof t.ok&&"status"in t&&"number"==typeof t.status,m=Object.assign((t,e)=>{let a=(null==e?void 0:e.id)||u++;return c.addToast({title:t,...e,id:a}),a},{success:c.success,info:c.info,warning:c.warning,error:c.error,custom:c.custom,message:c.message,promise:c.promise,dismiss:c.dismiss,loading:c.loading},{getHistory:()=>c.toasts,getToasts:()=>c.getActiveToasts()});function p(t){return void 0!==t.label}function h(...t){return t.filter(Boolean).join(" ")}!function(t){if(!t||"u"<typeof document)return;let e=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css",e.appendChild(a),a.styleSheet?a.styleSheet.cssText=t:a.appendChild(document.createTextNode(t))}("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");let g=t=>{var a,r,u,c,f,m,g,v,b,y,x,w,E;let{invert:k,toast:S,unstyled:N,interacting:T,setHeights:M,visibleToasts:C,heights:j,index:B,toasts:R,expanded:z,removeToast:A,defaultRichColors:P,closeButton:L,style:I,cancelButtonStyle:Y,actionButtonStyle:D,className:$="",descriptionClassName:H="",duration:F,position:U,gap:V,expandByDefault:W,classNames:O,icons:X,closeButtonAriaLabel:K="Close toast"}=t,[q,J]=e.default.useState(null),[Z,G]=e.default.useState(null),[Q,_]=e.default.useState(!1),[tt,te]=e.default.useState(!1),[ta,tr]=e.default.useState(!1),[to,tn]=e.default.useState(!1),[ts,ti]=e.default.useState(!1),[tl,td]=e.default.useState(0),[tu,tc]=e.default.useState(0),tf=e.default.useRef(S.duration||F||4e3),tm=e.default.useRef(null),tp=e.default.useRef(null),th=0===B,tg=B+1<=C,tv=S.type,tb=!1!==S.dismissible,ty=S.className||"",tx=S.descriptionClassName||"",tw=e.default.useMemo(()=>j.findIndex(t=>t.toastId===S.id)||0,[j,S.id]),tE=e.default.useMemo(()=>{var t;return null!=(t=S.closeButton)?t:L},[S.closeButton,L]),tk=e.default.useMemo(()=>S.duration||F||4e3,[S.duration,F]),tS=e.default.useRef(0),tN=e.default.useRef(0),tT=e.default.useRef(0),tM=e.default.useRef(null),[tC,tj]=U.split("-"),tB=e.default.useMemo(()=>j.reduce((t,e,a)=>a>=tw?t:t+e.height,0),[j,tw]),tR=(()=>{let[t,a]=e.default.useState(document.hidden);return e.default.useEffect(()=>{let t=()=>{a(document.hidden)};return document.addEventListener("visibilitychange",t),()=>window.removeEventListener("visibilitychange",t)},[]),t})(),tz=S.invert||k,tA="loading"===tv;tN.current=e.default.useMemo(()=>tw*V+tB,[tw,tB]),e.default.useEffect(()=>{tf.current=tk},[tk]),e.default.useEffect(()=>{_(!0)},[]),e.default.useEffect(()=>{let t=tp.current;if(t){let e=t.getBoundingClientRect().height;return tc(e),M(t=>[{toastId:S.id,height:e,position:S.position},...t]),()=>M(t=>t.filter(t=>t.toastId!==S.id))}},[M,S.id]),e.default.useLayoutEffect(()=>{if(!Q)return;let t=tp.current,e=t.style.height;t.style.height="auto";let a=t.getBoundingClientRect().height;t.style.height=e,tc(a),M(t=>t.find(t=>t.toastId===S.id)?t.map(t=>t.toastId===S.id?{...t,height:a}:t):[{toastId:S.id,height:a,position:S.position},...t])},[Q,S.title,S.description,M,S.id,S.jsx,S.action,S.cancel]);let tP=e.default.useCallback(()=>{te(!0),td(tN.current),M(t=>t.filter(t=>t.toastId!==S.id)),setTimeout(()=>{A(S)},200)},[S,A,M,tN]);e.default.useEffect(()=>{let t;if((!S.promise||"loading"!==tv)&&S.duration!==1/0&&"loading"!==S.type){if(z||T||tR){if(tT.current<tS.current){let t=new Date().getTime()-tS.current;tf.current=tf.current-t}tT.current=new Date().getTime()}else tf.current!==1/0&&(tS.current=new Date().getTime(),t=setTimeout(()=>{null==S.onAutoClose||S.onAutoClose.call(S,S),tP()},tf.current));return()=>clearTimeout(t)}},[z,T,S,tv,tR,tP]),e.default.useEffect(()=>{S.delete&&(tP(),null==S.onDismiss||S.onDismiss.call(S,S))},[tP,S.delete]);let tL=S.icon||(null==X?void 0:X[tv])||(t=>{switch(t){case"success":return n;case"info":return i;case"warning":return s;case"error":return l;default:return null}})(tv);return e.default.createElement("li",{tabIndex:0,ref:tp,className:h($,ty,null==O?void 0:O.toast,null==S||null==(a=S.classNames)?void 0:a.toast,null==O?void 0:O.default,null==O?void 0:O[tv],null==S||null==(r=S.classNames)?void 0:r[tv]),"data-sonner-toast":"","data-rich-colors":null!=(y=S.richColors)?y:P,"data-styled":!(S.jsx||S.unstyled||N),"data-mounted":Q,"data-promise":!!S.promise,"data-swiped":ts,"data-removed":tt,"data-visible":tg,"data-y-position":tC,"data-x-position":tj,"data-index":B,"data-front":th,"data-swiping":ta,"data-dismissible":tb,"data-type":tv,"data-invert":tz,"data-swipe-out":to,"data-swipe-direction":Z,"data-expanded":!!(z||W&&Q),"data-testid":S.testId,style:{"--index":B,"--toasts-before":B,"--z-index":R.length-B,"--offset":`${tt?tl:tN.current}px`,"--initial-height":W?"auto":`${tu}px`,...I,...S.style},onDragEnd:()=>{tr(!1),J(null),tM.current=null},onPointerDown:t=>{2===t.button||tA||!tb||(tm.current=new Date,td(tN.current),t.target.setPointerCapture(t.pointerId),"BUTTON"!==t.target.tagName&&(tr(!0),tM.current={x:t.clientX,y:t.clientY}))},onPointerUp:()=>{var t,e,a,r,o;if(to||!tb)return;tM.current=null;let n=Number((null==(t=tp.current)?void 0:t.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),s=Number((null==(e=tp.current)?void 0:e.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),i=new Date().getTime()-(null==(a=tm.current)?void 0:a.getTime()),l="x"===q?n:s,d=Math.abs(l)/i;if(Math.abs(l)>=45||d>.11){td(tN.current),null==S.onDismiss||S.onDismiss.call(S,S),"x"===q?G(n>0?"right":"left"):G(s>0?"down":"up"),tP(),tn(!0);return}null==(r=tp.current)||r.style.setProperty("--swipe-amount-x","0px"),null==(o=tp.current)||o.style.setProperty("--swipe-amount-y","0px"),ti(!1),tr(!1),J(null)},onPointerMove:e=>{var a,r,o,n;if(!tM.current||!tb||(null==(a=window.getSelection())?void 0:a.toString().length)>0)return;let s=e.clientY-tM.current.y,i=e.clientX-tM.current.x,l=null!=(n=t.swipeDirections)?n:function(t){let[e,a]=t.split("-"),r=[];return e&&r.push(e),a&&r.push(a),r}(U);!q&&(Math.abs(i)>1||Math.abs(s)>1)&&J(Math.abs(i)>Math.abs(s)?"x":"y");let d={x:0,y:0},u=t=>1/(1.5+Math.abs(t)/20);if("y"===q){if(l.includes("top")||l.includes("bottom"))if(l.includes("top")&&s<0||l.includes("bottom")&&s>0)d.y=s;else{let t=s*u(s);d.y=Math.abs(t)<Math.abs(s)?t:s}}else if("x"===q&&(l.includes("left")||l.includes("right")))if(l.includes("left")&&i<0||l.includes("right")&&i>0)d.x=i;else{let t=i*u(i);d.x=Math.abs(t)<Math.abs(i)?t:i}(Math.abs(d.x)>0||Math.abs(d.y)>0)&&ti(!0),null==(r=tp.current)||r.style.setProperty("--swipe-amount-x",`${d.x}px`),null==(o=tp.current)||o.style.setProperty("--swipe-amount-y",`${d.y}px`)}},tE&&!S.jsx&&"loading"!==tv?e.default.createElement("button",{"aria-label":K,"data-disabled":tA,"data-close-button":!0,onClick:tA||!tb?()=>{}:()=>{tP(),null==S.onDismiss||S.onDismiss.call(S,S)},className:h(null==O?void 0:O.closeButton,null==S||null==(u=S.classNames)?void 0:u.closeButton)},null!=(x=null==X?void 0:X.close)?x:d):null,(tv||S.icon||S.promise)&&null!==S.icon&&((null==X?void 0:X[tv])!==null||S.icon)?e.default.createElement("div",{"data-icon":"",className:h(null==O?void 0:O.icon,null==S||null==(c=S.classNames)?void 0:c.icon)},S.promise||"loading"===S.type&&!S.icon?S.icon||((null==X?void 0:X.loading)?e.default.createElement("div",{className:h(null==O?void 0:O.loader,null==S||null==(E=S.classNames)?void 0:E.loader,"sonner-loader"),"data-visible":"loading"===tv},X.loading):e.default.createElement(o,{className:h(null==O?void 0:O.loader,null==S||null==(w=S.classNames)?void 0:w.loader),visible:"loading"===tv})):null,"loading"!==S.type?tL:null):null,e.default.createElement("div",{"data-content":"",className:h(null==O?void 0:O.content,null==S||null==(f=S.classNames)?void 0:f.content)},e.default.createElement("div",{"data-title":"",className:h(null==O?void 0:O.title,null==S||null==(m=S.classNames)?void 0:m.title)},S.jsx?S.jsx:"function"==typeof S.title?S.title():S.title),S.description?e.default.createElement("div",{"data-description":"",className:h(H,tx,null==O?void 0:O.description,null==S||null==(g=S.classNames)?void 0:g.description)},"function"==typeof S.description?S.description():S.description):null),e.default.isValidElement(S.cancel)?S.cancel:S.cancel&&p(S.cancel)?e.default.createElement("button",{"data-button":!0,"data-cancel":!0,style:S.cancelButtonStyle||Y,onClick:t=>{!p(S.cancel)||tb&&(null==S.cancel.onClick||S.cancel.onClick.call(S.cancel,t),tP())},className:h(null==O?void 0:O.cancelButton,null==S||null==(v=S.classNames)?void 0:v.cancelButton)},S.cancel.label):null,e.default.isValidElement(S.action)?S.action:S.action&&p(S.action)?e.default.createElement("button",{"data-button":!0,"data-action":!0,style:S.actionButtonStyle||D,onClick:t=>{!p(S.action)||(null==S.action.onClick||S.action.onClick.call(S.action,t),t.defaultPrevented||tP())},className:h(null==O?void 0:O.actionButton,null==S||null==(b=S.classNames)?void 0:b.actionButton)},S.action.label):null)};function v(){if("u"<typeof window||"u"<typeof document)return"ltr";let t=document.documentElement.getAttribute("dir");return"auto"!==t&&t?t:window.getComputedStyle(document.documentElement).direction}let b=e.default.forwardRef(function(t,r){let{id:o,invert:n,position:s="bottom-right",hotkey:i=["altKey","KeyT"],expand:l,closeButton:d,className:u,offset:f,mobileOffset:m,theme:p="light",richColors:h,duration:b,style:y,visibleToasts:x=3,toastOptions:w,dir:E=v(),gap:k=14,icons:S,containerAriaLabel:N="Notifications"}=t,[T,M]=e.default.useState([]),C=e.default.useMemo(()=>o?T.filter(t=>t.toasterId===o):T.filter(t=>!t.toasterId),[T,o]),j=e.default.useMemo(()=>Array.from(new Set([s].concat(C.filter(t=>t.position).map(t=>t.position)))),[C,s]),[B,R]=e.default.useState([]),[z,A]=e.default.useState(!1),[P,L]=e.default.useState(!1),[I,Y]=e.default.useState("system"!==p?p:"u">typeof window&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),D=e.default.useRef(null),$=i.join("+").replace(/Key/g,"").replace(/Digit/g,""),H=e.default.useRef(null),F=e.default.useRef(!1),U=e.default.useCallback(t=>{M(e=>{var a;return(null==(a=e.find(e=>e.id===t.id))?void 0:a.delete)||c.dismiss(t.id),e.filter(({id:e})=>e!==t.id)})},[]);return e.default.useEffect(()=>c.subscribe(t=>{t.dismiss?requestAnimationFrame(()=>{M(e=>e.map(e=>e.id===t.id?{...e,delete:!0}:e))}):setTimeout(()=>{a.default.flushSync(()=>{M(e=>{let a=e.findIndex(e=>e.id===t.id);return -1!==a?[...e.slice(0,a),{...e[a],...t},...e.slice(a+1)]:[t,...e]})})})}),[T]),e.default.useEffect(()=>{if("system"!==p)return void Y(p);if("system"===p&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?Y("dark"):Y("light")),"u"<typeof window)return;let t=window.matchMedia("(prefers-color-scheme: dark)");try{t.addEventListener("change",({matches:t})=>{t?Y("dark"):Y("light")})}catch(e){t.addListener(({matches:t})=>{try{t?Y("dark"):Y("light")}catch(t){console.error(t)}})}},[p]),e.default.useEffect(()=>{T.length<=1&&A(!1)},[T]),e.default.useEffect(()=>{let t=t=>{var e,a;i.every(e=>t[e]||t.code===e)&&(A(!0),null==(a=D.current)||a.focus()),"Escape"===t.code&&(document.activeElement===D.current||(null==(e=D.current)?void 0:e.contains(document.activeElement)))&&A(!1)};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[i]),e.default.useEffect(()=>{if(D.current)return()=>{H.current&&(H.current.focus({preventScroll:!0}),H.current=null,F.current=!1)}},[D.current]),e.default.createElement("section",{ref:r,"aria-label":`${N} ${$}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},j.map((a,r)=>{var o;let s,[i,c]=a.split("-");return C.length?e.default.createElement("ol",{key:a,dir:"auto"===E?v():E,tabIndex:-1,ref:D,className:u,"data-sonner-toaster":!0,"data-sonner-theme":I,"data-y-position":i,"data-x-position":c,style:{"--front-toast-height":`${(null==(o=B[0])?void 0:o.height)||0}px`,"--width":"356px","--gap":`${k}px`,...y,...(s={},[f,m].forEach((t,e)=>{let a=1===e,r=a?"--mobile-offset":"--offset",o=a?"16px":"24px";function n(t){["top","right","bottom","left"].forEach(e=>{s[`${r}-${e}`]="number"==typeof t?`${t}px`:t})}"number"==typeof t||"string"==typeof t?n(t):"object"==typeof t?["top","right","bottom","left"].forEach(e=>{void 0===t[e]?s[`${r}-${e}`]=o:s[`${r}-${e}`]="number"==typeof t[e]?`${t[e]}px`:t[e]}):n(o)}),s)},onBlur:t=>{F.current&&!t.currentTarget.contains(t.relatedTarget)&&(F.current=!1,H.current&&(H.current.focus({preventScroll:!0}),H.current=null))},onFocus:t=>{!(t.target instanceof HTMLElement&&"false"===t.target.dataset.dismissible)&&(F.current||(F.current=!0,H.current=t.relatedTarget))},onMouseEnter:()=>A(!0),onMouseMove:()=>A(!0),onMouseLeave:()=>{P||A(!1)},onDragEnd:()=>A(!1),onPointerDown:t=>{t.target instanceof HTMLElement&&"false"===t.target.dataset.dismissible||L(!0)},onPointerUp:()=>L(!1)},C.filter(t=>!t.position&&0===r||t.position===a).map((r,o)=>{var s,i;return e.default.createElement(g,{key:r.id,icons:S,index:o,toast:r,defaultRichColors:h,duration:null!=(s=null==w?void 0:w.duration)?s:b,className:null==w?void 0:w.className,descriptionClassName:null==w?void 0:w.descriptionClassName,invert:n,visibleToasts:x,closeButton:null!=(i=null==w?void 0:w.closeButton)?i:d,interacting:P,position:a,style:null==w?void 0:w.style,unstyled:null==w?void 0:w.unstyled,classNames:null==w?void 0:w.classNames,cancelButtonStyle:null==w?void 0:w.cancelButtonStyle,actionButtonStyle:null==w?void 0:w.actionButtonStyle,closeButtonAriaLabel:null==w?void 0:w.closeButtonAriaLabel,removeToast:U,toasts:C.filter(t=>t.position==r.position),heights:B.filter(t=>t.position==r.position),setHeights:R,expandByDefault:l,gap:k,expanded:z,swipeDirections:t.swipeDirections})})):null}))});t.s(["Toaster",()=>b,"toast",()=>m])}]);
|