@sma1lboy/kobe 0.9.1 → 0.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/dist/cli/index.js +360 -360
  2. package/dist/cli/kobe-run.js +360 -360
  3. package/dist/cli/rove-run.js +360 -360
  4. package/dist/web-ui/assets/{AppShell-TzCpzcDS.js → AppShell-BvHb-c8o.js} +1 -1
  5. package/dist/web-ui/assets/{Board-72QPdwHn.js → Board-CcUG5Zqa.js} +1 -1
  6. package/dist/web-ui/assets/{BoardPeek-gUixsQIV.js → BoardPeek-C5c1gItm.js} +2 -2
  7. package/dist/web-ui/assets/ChatTerminal-B32Pfuys.js +144 -0
  8. package/dist/web-ui/assets/{ConfirmDialog-CBqd0wMR.js → ConfirmDialog-CQUf9GuM.js} +1 -1
  9. package/dist/web-ui/assets/{IssuesPage-BlWjFWpu.js → IssuesPage-BHj8y82L.js} +1 -1
  10. package/dist/web-ui/assets/{WorkspaceTabs-ZhpZ33cd.js → WorkspaceTabs-DrrZuT8m.js} +2 -2
  11. package/dist/web-ui/assets/board-rQqUWfL9.js +1 -0
  12. package/dist/web-ui/assets/{desktop-CB2NHSKZ.js → desktop-B6tIfst1.js} +2 -2
  13. package/dist/web-ui/assets/harness-9M6rZZri.js +1 -0
  14. package/dist/web-ui/assets/{index-DO9nvezt.css → index-BCOORN5f.css} +1 -1
  15. package/dist/web-ui/assets/{index-mt_53L47.js → index-BNs9r4hG.js} +3 -3
  16. package/dist/web-ui/assets/issues-9Bx80Ra2.js +1 -0
  17. package/dist/web-ui/assets/routes-F18MCI2e.js +1 -0
  18. package/dist/web-ui/assets/{task._taskId-561S2TB3.js → task._taskId-B3nsG86I.js} +1 -1
  19. package/dist/web-ui/assets/{task._taskId-CXiB2eGU.js → task._taskId-rxSYKMea.js} +2 -2
  20. package/dist/web-ui/assets/{worktrees-qGA9B-VY.js → worktrees-Bu5ii1XY.js} +1 -1
  21. package/dist/web-ui/capture-wallpaper.svg +40 -0
  22. package/dist/web-ui/codefox-mark.svg +30 -0
  23. package/dist/web-ui/index.html +4 -4
  24. package/package.json +1 -1
  25. package/dist/web-ui/assets/ChatTerminal-B80ADLf2.js +0 -144
  26. package/dist/web-ui/assets/board-BnvucJGQ.js +0 -1
  27. package/dist/web-ui/assets/harness-BX3EgEVg.js +0 -1
  28. package/dist/web-ui/assets/issues-CduWI37C.js +0 -1
  29. package/dist/web-ui/assets/routes-bdJ1BCG5.js +0 -1
@@ -1 +1 @@
1
- import{u as e}from"./terminal-6BCvBu4_.js";import{y as t}from"./tabs-DHBP2ShA.js";import{m as n}from"./createLucideIcon-C6nfansM.js";import{r,t as i}from"./desktop-CB2NHSKZ.js";import{t as a}from"./use-focus-trap-oPsw86zw.js";var o=n();function s({label:e,tone:t,onClick:n}){return(0,o.jsx)(`button`,{type:`button`,"aria-label":e,title:e,onClick:n,className:`h-3 w-3 rounded-full border border-black/20 ${t===`close`?`bg-[#ff5f57]`:t===`minimize`?`bg-[#febc2e]`:`bg-[#28c840]`}`})}function c(){if(!r())return null;let e=i();return(0,o.jsxs)(`fieldset`,{"data-kobe-window-controls":!0,className:`m-0 flex min-w-0 shrink-0 items-center gap-2 border-0 p-0`,children:[(0,o.jsx)(`legend`,{className:`sr-only`,children:`Window controls`}),(0,o.jsx)(s,{label:`Close window`,tone:`close`,onClick:()=>e?.close()}),(0,o.jsx)(s,{label:`Minimize window`,tone:`minimize`,onClick:()=>e?.minimize()}),(0,o.jsx)(s,{label:`Zoom window`,tone:`zoom`,onClick:()=>e?.toggleMaximize()})]})}var l=e(t(),1);function u({title:e,body:t,confirmLabel:n,danger:r=!1,busy:i=!1,onConfirm:s,onCancel:c}){let u=(0,l.useRef)(null),d=(0,l.useRef)(null);return a(d),(0,l.useEffect)(()=>{u.current?.focus();let e=e=>{e.key===`Escape`&&c()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[c]),(0,o.jsx)(`div`,{className:`fixed inset-0 z-40 flex items-center justify-center bg-black/60`,onClick:c,onKeyDown:()=>{},role:`presentation`,children:(0,o.jsxs)(`div`,{ref:d,role:`alertdialog`,"aria-modal":`true`,"aria-label":e,className:`w-96 border border-line bg-surface shadow-xl`,onClick:e=>e.stopPropagation(),onKeyDown:()=>{},children:[(0,o.jsx)(`div`,{className:`border-b border-line px-3 py-2 text-[10px] font-bold uppercase tracking-[0.12em] text-fg`,children:e}),(0,o.jsx)(`p`,{className:`px-3 py-3 text-[12px] leading-relaxed text-muted`,children:t}),(0,o.jsxs)(`div`,{className:`flex justify-end gap-2 border-t border-line px-3 py-2`,children:[(0,o.jsx)(`button`,{type:`button`,onClick:c,className:`border border-line bg-bg px-3 py-1 text-[11px] text-muted transition-colors hover:border-primary hover:text-fg`,children:`Cancel`}),(0,o.jsx)(`button`,{ref:u,type:`button`,onClick:s,disabled:i,className:`border px-3 py-1 text-[11px] transition-colors disabled:opacity-40 ${r?`border-kobe-red/50 bg-kobe-red/10 text-kobe-red hover:bg-kobe-red/20`:`border-primary bg-inset text-fg hover:bg-primary/10`}`,children:i?`Working…`:n})]})]})})}export{c as n,u as t};
1
+ import{u as e}from"./terminal-6BCvBu4_.js";import{y as t}from"./tabs-DHBP2ShA.js";import{m as n}from"./createLucideIcon-C6nfansM.js";import{r,t as i}from"./desktop-B6tIfst1.js";import{t as a}from"./use-focus-trap-oPsw86zw.js";var o=n();function s({label:e,tone:t,onClick:n}){return(0,o.jsx)(`button`,{type:`button`,"aria-label":e,title:e,onClick:n,className:`h-3 w-3 rounded-full border border-black/20 ${t===`close`?`bg-[#ff5f57]`:t===`minimize`?`bg-[#febc2e]`:`bg-[#28c840]`}`})}function c(){if(!r())return null;let e=i();return(0,o.jsxs)(`fieldset`,{"data-kobe-window-controls":!0,className:`m-0 flex min-w-0 shrink-0 items-center gap-2 border-0 p-0`,children:[(0,o.jsx)(`legend`,{className:`sr-only`,children:`Window controls`}),(0,o.jsx)(s,{label:`Close window`,tone:`close`,onClick:()=>e?.close()}),(0,o.jsx)(s,{label:`Minimize window`,tone:`minimize`,onClick:()=>e?.minimize()}),(0,o.jsx)(s,{label:`Zoom window`,tone:`zoom`,onClick:()=>e?.toggleMaximize()})]})}var l=e(t(),1);function u({title:e,body:t,confirmLabel:n,danger:r=!1,busy:i=!1,onConfirm:s,onCancel:c}){let u=(0,l.useRef)(null),d=(0,l.useRef)(null);return a(d),(0,l.useEffect)(()=>{u.current?.focus();let e=e=>{e.key===`Escape`&&c()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[c]),(0,o.jsx)(`div`,{className:`fixed inset-0 z-40 flex items-center justify-center bg-black/60`,onClick:c,onKeyDown:()=>{},role:`presentation`,children:(0,o.jsxs)(`div`,{ref:d,role:`alertdialog`,"aria-modal":`true`,"aria-label":e,className:`w-96 border border-line bg-surface shadow-xl`,onClick:e=>e.stopPropagation(),onKeyDown:()=>{},children:[(0,o.jsx)(`div`,{className:`border-b border-line px-3 py-2 text-[10px] font-bold uppercase tracking-[0.12em] text-fg`,children:e}),(0,o.jsx)(`p`,{className:`px-3 py-3 text-[12px] leading-relaxed text-muted`,children:t}),(0,o.jsxs)(`div`,{className:`flex justify-end gap-2 border-t border-line px-3 py-2`,children:[(0,o.jsx)(`button`,{type:`button`,onClick:c,className:`border border-line bg-bg px-3 py-1 text-[11px] text-muted transition-colors hover:border-primary hover:text-fg`,children:`Cancel`}),(0,o.jsx)(`button`,{ref:u,type:`button`,onClick:s,disabled:i,className:`border px-3 py-1 text-[11px] transition-colors disabled:opacity-40 ${r?`border-kobe-red/50 bg-kobe-red/10 text-kobe-red hover:bg-kobe-red/20`:`border-primary bg-inset text-fg hover:bg-primary/10`}`,children:i?`Working…`:n})]})]})})}export{c as n,u as t};
@@ -1 +1 @@
1
- import{u as e}from"./terminal-6BCvBu4_.js";import{c as t,y as n}from"./tabs-DHBP2ShA.js";import{m as r}from"./createLucideIcon-C6nfansM.js";import{a as i,r as a}from"./toast-2mA6GzBq.js";import{n as o}from"./store-BK5yanfN.js";import{t as ee}from"./arrow-left-wT_Oflhg.js";import{a as s,i as c,n as l,r as u,t as d}from"./lazy-issue-panels-GvnRdSfG.js";import{t as f}from"./plus-Bz25iNHX.js";import{t as p}from"./search-zs6lDYfz.js";import{t as m}from"./x-MtSojW5V.js";import{n as h,t as g}from"./ConfirmDialog-CBqd0wMR.js";import{a as _,c as v,d as y,h as b,l as te,m as ne,n as re,s as ie,t as x,u as ae}from"./issues-BjnSNgu-.js";var S=e(n(),1);function C(e,t,n){let r=e.find(e=>e.length>0)?.[0]??null;if(t==null)return r;let i=-1,a=-1;for(let[n,r]of e.entries()){let e=r.indexOf(t);if(e!==-1){i=n,a=e;break}}if(i===-1)return r;if(n===`up`||n===`down`){let r=e[i],o=n===`up`?a-1:a+1;return r[Math.max(0,Math.min(o,r.length-1))]??t}let o=n===`left`?-1:1;for(let n=i+o;n>=0&&n<e.length;n+=o){let r=e[n];if(r.length!==0)return r[Math.min(a,r.length-1)]??t}return t}var w=r();function T(){let{tasks:e,hydrated:n}=o(),r=i(),[T,oe]=(0,S.useState)([]);(0,S.useEffect)(()=>{let e=!1;return ie().then(t=>{e||oe(t)}).catch(e=>a(`load projects`,e)),()=>{e=!0}},[]);let E=(0,S.useMemo)(()=>ae(e,T),[e,T]),[D,O]=(0,S.useState)(null);(0,S.useEffect)(()=>{if(E.length===0){D!==null&&O(null);return}(!D||!E.some(e=>e.repo===D))&&O(E[0]?.repo??null)},[E,D]);let{data:k,failed:A,pending:se}=s((0,S.useMemo)(()=>D?[D]:[],[D])),j=D?k[D]:void 0,[M,N]=(0,S.useState)(``),[P,F]=(0,S.useState)(!1),[I,L]=(0,S.useState)(null),[R,z]=(0,S.useState)(null),[B,V]=(0,S.useState)(null),[H,U]=(0,S.useState)(!1),[W,G]=(0,S.useState)(!1),[ce,K]=(0,S.useState)(!1),q=j?.issues??[],J=(0,S.useMemo)(()=>v(q,{query:M}),[q,M]),Y=(0,S.useMemo)(()=>te(J),[J]),X=J.length,Z=R==null?null:q.find(e=>e.id===R),Q=B==null?null:q.find(e=>e.id===B);(0,S.useEffect)(()=>{R!=null&&!q.some(e=>e.id===R)&&z(null),B!=null&&!q.some(e=>e.id===B)&&V(null)},[q,R,B]),(0,S.useEffect)(()=>L(null),[D]),(0,S.useEffect)(()=>{if(P||R!=null||B!=null)return;let e=e=>{let t=e.target;if(t&&(t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.tagName===`SELECT`||t.isContentEditable))return;let n=e.key===`ArrowUp`?`up`:e.key===`ArrowDown`?`down`:e.key===`ArrowLeft`?`left`:e.key===`ArrowRight`?`right`:null;if(n){e.preventDefault();let t=C(x.map(e=>Y[e].map(e=>e.id)),I,n);t!=null&&L(t);return}(e.key===`Enter`||e.key===` `)&&I!=null&&J.some(e=>e.id===I)&&(e.preventDefault(),z(I))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[Y,J,I,P,R,B]),(0,S.useEffect)(()=>{I!=null&&document.querySelector(`[data-issue-card="${I}"]`)?.scrollIntoView({block:`nearest`})},[I]);let $=e=>{r({to:`/task/$taskId`,params:{taskId:e}})};return(0,w.jsxs)(`div`,{className:`flex h-screen flex-col overflow-hidden bg-bg text-fg`,children:[(0,w.jsxs)(`header`,{"data-kobe-topbar":!0,className:`flex h-10 shrink-0 items-center gap-3 border-b border-line bg-surface px-3`,children:[(0,w.jsx)(h,{}),(0,w.jsxs)(`button`,{type:`button`,onClick:()=>r({to:`/`}),className:`flex items-center gap-1.5 text-muted transition-colors hover:text-fg`,title:`Back to workspace`,children:[(0,w.jsx)(ee,{size:15,strokeWidth:1.8}),(0,w.jsx)(`span`,{className:`text-[12px]`,children:`Workspace`})]}),(0,w.jsx)(`span`,{className:`text-[10px] font-bold uppercase tracking-[0.12em] text-fg`,children:`Issues`}),(0,w.jsxs)(`label`,{className:`flex h-7 items-center gap-1.5 border border-line bg-bg px-2 text-muted focus-within:border-line-active`,children:[(0,w.jsx)(p,{size:13,strokeWidth:1.8,className:`shrink-0 text-subtle`}),(0,w.jsx)(`input`,{value:M,onChange:e=>N(e.target.value),placeholder:`Filter stories ( #id, title, body )`,className:`w-52 bg-transparent text-[12px] text-fg placeholder:text-subtle focus:outline-none`}),M&&(0,w.jsx)(`button`,{type:`button`,onClick:()=>N(``),className:`shrink-0 text-subtle hover:text-fg`,"aria-label":`clear filter`,title:`Clear filter`,children:(0,w.jsx)(m,{size:13,strokeWidth:2})})]}),E.length>0&&(0,w.jsxs)(`label`,{className:`flex h-7 min-w-0 max-w-[24rem] items-center gap-1.5 border border-line bg-bg px-2 text-muted focus-within:border-line-active`,children:[(0,w.jsx)(`span`,{className:`shrink-0 text-[10px] font-bold uppercase tracking-[0.12em] text-subtle`,children:`Project`}),(0,w.jsx)(`select`,{value:D??``,onChange:e=>O(e.target.value),title:D??`Select project`,className:`min-w-0 flex-1 bg-transparent font-mono text-[11px] text-fg focus:outline-none`,children:E.map(e=>(0,w.jsxs)(`option`,{value:e.repo,title:e.repo,className:`bg-surface text-fg`,children:[e.label,` · `,e.count,` · `,e.repo]},e.repo))})]}),(0,w.jsxs)(`div`,{className:`ml-auto flex items-center gap-3 font-mono text-[11px] text-subtle`,children:[(0,w.jsxs)(`span`,{children:[X,` stor`,X===1?`y`:`ies`]}),(0,w.jsxs)(`button`,{type:`button`,disabled:!D,onClick:()=>F(!0),className:`flex items-center gap-1.5 border border-primary bg-inset px-2 py-0.5 text-[11px] text-fg transition-colors hover:bg-primary/10 disabled:cursor-not-allowed disabled:opacity-40`,title:`Capture a new story`,children:[(0,w.jsx)(f,{size:13,strokeWidth:1.8}),`New story`]})]})]}),(0,w.jsx)(`div`,{className:`min-h-0 flex-1 overflow-x-auto overflow-y-hidden p-4`,children:D?!n||se&&!j?(0,w.jsx)(`p`,{className:`text-[12px] text-subtle`,children:`Loading…`}):D&&A[D]?(0,w.jsx)(`p`,{className:`text-[12px] text-kobe-red`,children:A[D]}):X===0?(0,w.jsx)(`p`,{className:`text-[12px] text-subtle`,children:M?`No stories match your filter.`:`No stories yet. Capture one with New story.`}):(0,w.jsx)(`div`,{className:`flex h-full min-h-0 gap-4`,children:x.map(e=>{let t=re[e],n=Y[e];return(0,w.jsxs)(`section`,{className:`flex h-full min-h-0 w-72 shrink-0 flex-col`,children:[(0,w.jsxs)(`div`,{className:`mb-2 flex shrink-0 items-center gap-2`,children:[(0,w.jsx)(`h2`,{className:`text-[10px] font-bold uppercase tracking-[0.12em] ${t.accent}`,children:t.title}),(0,w.jsx)(`span`,{className:`font-mono text-[10px] text-subtle`,children:n.length})]}),(0,w.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-2 overflow-y-auto pr-0.5`,children:n.map(e=>(0,w.jsx)(c,{issue:e,selected:e.id===I,onOpen:()=>{L(e.id),z(e.id)},onDelete:()=>V(e.id)},e.id))})]},e)})}):(0,w.jsx)(`p`,{className:`text-[12px] text-subtle`,children:`No projects yet. Create a task from the workspace to track stories against its repo.`})}),D&&P&&(0,w.jsx)(d,{children:(0,w.jsx)(l,{repoRoot:D,open:P,onClose:()=>F(!1),onCreated:(e,t)=>{t&&e.taskId&&$(e.taskId)}})}),D&&Z&&(0,w.jsx)(d,{children:(0,w.jsx)(u,{issue:Z,repoRoot:D,busy:H,starting:W,onClose:()=>z(null),onSave:async e=>{if(!D||R==null)return!1;U(!0);try{return await b(D,R,{title:e.title.trim(),body:e.body}),!0}catch(e){return a(`save issue`,e),!1}finally{U(!1)}},onStart:e=>{!D||!Z||(G(!0),ne(D,Z,e).then(({workspaceTaskId:t})=>{z(null),e.watch&&$(t)}).catch(e=>a(`start issue`,e)).finally(()=>G(!1)))},onOpenSession:Z.taskId?()=>{let e=Z.taskId;e&&(t(e),$(e))}:void 0,onPromptMerge:Z.taskId?()=>{let e=Z.taskId;e&&y(e,Z).catch(e=>a(`prompt issue merge`,e))}:void 0})}),Q&&(0,w.jsx)(g,{title:`Delete issue`,body:`Delete issue #${Q.id} "${Q.title}"? This removes only the issue record — any linked task, branch, or worktree is left untouched.`,confirmLabel:`Delete`,danger:!0,busy:ce,onConfirm:()=>{!D||B==null||(K(!0),_(D,B).then(()=>V(null)).catch(e=>a(`delete issue`,e)).finally(()=>K(!1)))},onCancel:()=>V(null)})]})}export{T as IssuesPage};
1
+ import{u as e}from"./terminal-6BCvBu4_.js";import{c as t,y as n}from"./tabs-DHBP2ShA.js";import{m as r}from"./createLucideIcon-C6nfansM.js";import{a as i,r as a}from"./toast-2mA6GzBq.js";import{n as o}from"./store-BK5yanfN.js";import{t as ee}from"./arrow-left-wT_Oflhg.js";import{a as s,i as c,n as l,r as u,t as d}from"./lazy-issue-panels-GvnRdSfG.js";import{t as f}from"./plus-Bz25iNHX.js";import{t as p}from"./search-zs6lDYfz.js";import{t as m}from"./x-MtSojW5V.js";import{n as h,t as g}from"./ConfirmDialog-CQUf9GuM.js";import{a as _,c as v,d as y,h as b,l as te,m as ne,n as re,s as ie,t as x,u as ae}from"./issues-BjnSNgu-.js";var S=e(n(),1);function C(e,t,n){let r=e.find(e=>e.length>0)?.[0]??null;if(t==null)return r;let i=-1,a=-1;for(let[n,r]of e.entries()){let e=r.indexOf(t);if(e!==-1){i=n,a=e;break}}if(i===-1)return r;if(n===`up`||n===`down`){let r=e[i],o=n===`up`?a-1:a+1;return r[Math.max(0,Math.min(o,r.length-1))]??t}let o=n===`left`?-1:1;for(let n=i+o;n>=0&&n<e.length;n+=o){let r=e[n];if(r.length!==0)return r[Math.min(a,r.length-1)]??t}return t}var w=r();function T(){let{tasks:e,hydrated:n}=o(),r=i(),[T,oe]=(0,S.useState)([]);(0,S.useEffect)(()=>{let e=!1;return ie().then(t=>{e||oe(t)}).catch(e=>a(`load projects`,e)),()=>{e=!0}},[]);let E=(0,S.useMemo)(()=>ae(e,T),[e,T]),[D,O]=(0,S.useState)(null);(0,S.useEffect)(()=>{if(E.length===0){D!==null&&O(null);return}(!D||!E.some(e=>e.repo===D))&&O(E[0]?.repo??null)},[E,D]);let{data:k,failed:A,pending:se}=s((0,S.useMemo)(()=>D?[D]:[],[D])),j=D?k[D]:void 0,[M,N]=(0,S.useState)(``),[P,F]=(0,S.useState)(!1),[I,L]=(0,S.useState)(null),[R,z]=(0,S.useState)(null),[B,V]=(0,S.useState)(null),[H,U]=(0,S.useState)(!1),[W,G]=(0,S.useState)(!1),[ce,K]=(0,S.useState)(!1),q=j?.issues??[],J=(0,S.useMemo)(()=>v(q,{query:M}),[q,M]),Y=(0,S.useMemo)(()=>te(J),[J]),X=J.length,Z=R==null?null:q.find(e=>e.id===R),Q=B==null?null:q.find(e=>e.id===B);(0,S.useEffect)(()=>{R!=null&&!q.some(e=>e.id===R)&&z(null),B!=null&&!q.some(e=>e.id===B)&&V(null)},[q,R,B]),(0,S.useEffect)(()=>L(null),[D]),(0,S.useEffect)(()=>{if(P||R!=null||B!=null)return;let e=e=>{let t=e.target;if(t&&(t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.tagName===`SELECT`||t.isContentEditable))return;let n=e.key===`ArrowUp`?`up`:e.key===`ArrowDown`?`down`:e.key===`ArrowLeft`?`left`:e.key===`ArrowRight`?`right`:null;if(n){e.preventDefault();let t=C(x.map(e=>Y[e].map(e=>e.id)),I,n);t!=null&&L(t);return}(e.key===`Enter`||e.key===` `)&&I!=null&&J.some(e=>e.id===I)&&(e.preventDefault(),z(I))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[Y,J,I,P,R,B]),(0,S.useEffect)(()=>{I!=null&&document.querySelector(`[data-issue-card="${I}"]`)?.scrollIntoView({block:`nearest`})},[I]);let $=e=>{r({to:`/task/$taskId`,params:{taskId:e}})};return(0,w.jsxs)(`div`,{className:`flex h-screen flex-col overflow-hidden bg-bg text-fg`,children:[(0,w.jsxs)(`header`,{"data-kobe-topbar":!0,className:`flex h-10 shrink-0 items-center gap-3 border-b border-line bg-surface px-3`,children:[(0,w.jsx)(h,{}),(0,w.jsxs)(`button`,{type:`button`,onClick:()=>r({to:`/`}),className:`flex items-center gap-1.5 text-muted transition-colors hover:text-fg`,title:`Back to workspace`,children:[(0,w.jsx)(ee,{size:15,strokeWidth:1.8}),(0,w.jsx)(`span`,{className:`text-[12px]`,children:`Workspace`})]}),(0,w.jsx)(`span`,{className:`text-[10px] font-bold uppercase tracking-[0.12em] text-fg`,children:`Issues`}),(0,w.jsxs)(`label`,{className:`flex h-7 items-center gap-1.5 border border-line bg-bg px-2 text-muted focus-within:border-line-active`,children:[(0,w.jsx)(p,{size:13,strokeWidth:1.8,className:`shrink-0 text-subtle`}),(0,w.jsx)(`input`,{value:M,onChange:e=>N(e.target.value),placeholder:`Filter stories ( #id, title, body )`,className:`w-52 bg-transparent text-[12px] text-fg placeholder:text-subtle focus:outline-none`}),M&&(0,w.jsx)(`button`,{type:`button`,onClick:()=>N(``),className:`shrink-0 text-subtle hover:text-fg`,"aria-label":`clear filter`,title:`Clear filter`,children:(0,w.jsx)(m,{size:13,strokeWidth:2})})]}),E.length>0&&(0,w.jsxs)(`label`,{className:`flex h-7 min-w-0 max-w-[24rem] items-center gap-1.5 border border-line bg-bg px-2 text-muted focus-within:border-line-active`,children:[(0,w.jsx)(`span`,{className:`shrink-0 text-[10px] font-bold uppercase tracking-[0.12em] text-subtle`,children:`Project`}),(0,w.jsx)(`select`,{value:D??``,onChange:e=>O(e.target.value),title:D??`Select project`,className:`min-w-0 flex-1 bg-transparent font-mono text-[11px] text-fg focus:outline-none`,children:E.map(e=>(0,w.jsxs)(`option`,{value:e.repo,title:e.repo,className:`bg-surface text-fg`,children:[e.label,` · `,e.count,` · `,e.repo]},e.repo))})]}),(0,w.jsxs)(`div`,{className:`ml-auto flex items-center gap-3 font-mono text-[11px] text-subtle`,children:[(0,w.jsxs)(`span`,{children:[X,` stor`,X===1?`y`:`ies`]}),(0,w.jsxs)(`button`,{type:`button`,disabled:!D,onClick:()=>F(!0),className:`flex items-center gap-1.5 border border-primary bg-inset px-2 py-0.5 text-[11px] text-fg transition-colors hover:bg-primary/10 disabled:cursor-not-allowed disabled:opacity-40`,title:`Capture a new story`,children:[(0,w.jsx)(f,{size:13,strokeWidth:1.8}),`New story`]})]})]}),(0,w.jsx)(`div`,{className:`min-h-0 flex-1 overflow-x-auto overflow-y-hidden p-4`,children:D?!n||se&&!j?(0,w.jsx)(`p`,{className:`text-[12px] text-subtle`,children:`Loading…`}):D&&A[D]?(0,w.jsx)(`p`,{className:`text-[12px] text-kobe-red`,children:A[D]}):X===0?(0,w.jsx)(`p`,{className:`text-[12px] text-subtle`,children:M?`No stories match your filter.`:`No stories yet. Capture one with New story.`}):(0,w.jsx)(`div`,{className:`flex h-full min-h-0 gap-4`,children:x.map(e=>{let t=re[e],n=Y[e];return(0,w.jsxs)(`section`,{className:`flex h-full min-h-0 w-72 shrink-0 flex-col`,children:[(0,w.jsxs)(`div`,{className:`mb-2 flex shrink-0 items-center gap-2`,children:[(0,w.jsx)(`h2`,{className:`text-[10px] font-bold uppercase tracking-[0.12em] ${t.accent}`,children:t.title}),(0,w.jsx)(`span`,{className:`font-mono text-[10px] text-subtle`,children:n.length})]}),(0,w.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-2 overflow-y-auto pr-0.5`,children:n.map(e=>(0,w.jsx)(c,{issue:e,selected:e.id===I,onOpen:()=>{L(e.id),z(e.id)},onDelete:()=>V(e.id)},e.id))})]},e)})}):(0,w.jsx)(`p`,{className:`text-[12px] text-subtle`,children:`No projects yet. Create a task from the workspace to track stories against its repo.`})}),D&&P&&(0,w.jsx)(d,{children:(0,w.jsx)(l,{repoRoot:D,open:P,onClose:()=>F(!1),onCreated:(e,t)=>{t&&e.taskId&&$(e.taskId)}})}),D&&Z&&(0,w.jsx)(d,{children:(0,w.jsx)(u,{issue:Z,repoRoot:D,busy:H,starting:W,onClose:()=>z(null),onSave:async e=>{if(!D||R==null)return!1;U(!0);try{return await b(D,R,{title:e.title.trim(),body:e.body}),!0}catch(e){return a(`save issue`,e),!1}finally{U(!1)}},onStart:e=>{!D||!Z||(G(!0),ne(D,Z,e).then(({workspaceTaskId:t})=>{z(null),e.watch&&$(t)}).catch(e=>a(`start issue`,e)).finally(()=>G(!1)))},onOpenSession:Z.taskId?()=>{let e=Z.taskId;e&&(t(e),$(e))}:void 0,onPromptMerge:Z.taskId?()=>{let e=Z.taskId;e&&y(e,Z).catch(e=>a(`prompt issue merge`,e))}:void 0})}),Q&&(0,w.jsx)(g,{title:`Delete issue`,body:`Delete issue #${Q.id} "${Q.title}"? This removes only the issue record — any linked task, branch, or worktree is left untouched.`,confirmLabel:`Delete`,danger:!0,busy:ce,onConfirm:()=>{!D||B==null||(K(!0),_(D,B).then(()=>V(null)).catch(e=>a(`delete issue`,e)).finally(()=>K(!1)))},onCancel:()=>V(null)})]})}export{T as IssuesPage};
@@ -1,3 +1,3 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ChatTerminal-B80ADLf2.js","assets/terminal-6BCvBu4_.js","assets/tabs-DHBP2ShA.js","assets/createLucideIcon-C6nfansM.js","assets/store-BK5yanfN.js","assets/rotate-cw-BsVaYno1.js","assets/web-transport-BFuf9jKF.js","assets/ChatTerminal-BrP-ENHg.css"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ChatTerminal-B32Pfuys.js","assets/terminal-6BCvBu4_.js","assets/tabs-DHBP2ShA.js","assets/createLucideIcon-C6nfansM.js","assets/store-BK5yanfN.js","assets/rotate-cw-BsVaYno1.js","assets/web-transport-BFuf9jKF.js","assets/ChatTerminal-BrP-ENHg.css"])))=>i.map(i=>d[i]);
2
2
  import{l as e,o as t,t as n,u as r}from"./terminal-6BCvBu4_.js";import{_ as i,a,h as o,i as s,o as c,p as l,t as u,v as d,y as f}from"./tabs-DHBP2ShA.js";import{d as p,m,p as h,t as g}from"./createLucideIcon-C6nfansM.js";import{i as _,n as v}from"./store-BK5yanfN.js";import{t as y}from"./ChatTranscript-Bw-ROsjY.js";import{t as b}from"./rotate-cw-BsVaYno1.js";import{a as x}from"./vendor-CdtpTJrf.js";import{t as S}from"./web-transport-BFuf9jKF.js";var C=g(`bot`,[[`path`,{d:`M12 8V4H8`,key:`hb8ula`}],[`rect`,{width:`16`,height:`12`,x:`4`,y:`8`,rx:`2`,key:`enze0r`}],[`path`,{d:`M2 14h2`,key:`vft8re`}],[`path`,{d:`M20 14h2`,key:`4cs60a`}],[`path`,{d:`M15 13v2`,key:`1xurst`}],[`path`,{d:`M9 13v2`,key:`rq6x2g`}]]),w=g(`messages-square`,[[`path`,{d:`M16 10a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 14.286V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z`,key:`1n2ejm`}],[`path`,{d:`M20 9a2 2 0 0 1 2 2v10.286a.71.71 0 0 1-1.212.502l-2.202-2.202A2 2 0 0 0 17.172 19H10a2 2 0 0 1-2-2v-1`,key:`1qfcsi`}]]),T=g(`terminal`,[[`path`,{d:`M12 19h8`,key:`baeox8`}],[`path`,{d:`m4 17 6-6-6-6`,key:`1yngyt`}]]),E=r(f(),1);function D(e,t=36){let n=[...e];return n.length<=t?e:`…${n.slice(n.length-t+1).join(``)}`}async function O(e,n={}){return{files:(await t.get(`/api/diff`,{query:{worktreePath:e,path:n.path,namesOnly:n.namesOnly?`1`:void 0},label:`diff fetch`})).files??[]}}function k(e){switch(e){case`added`:return{label:`A`,cls:`text-kobe-green`};case`untracked`:return{label:`U`,cls:`text-kobe-green`};case`modified`:return{label:`M`,cls:`text-kobe-yellow`};case`deleted`:return{label:`D`,cls:`text-kobe-red`};case`renamed`:return{label:`R`,cls:`text-kobe-blue`};case`copied`:return{label:`C`,cls:`text-kobe-blue`};default:return{label:e.slice(0,1).toUpperCase()||`?`,cls:`text-muted`}}}function A(e){switch(e){case`hunk`:return`kobe-diff-hunk`;case`meta`:return`kobe-diff-meta`;case`add`:return`kobe-diff-add`;case`del`:return`kobe-diff-del`;default:return`kobe-diff-ctx`}}function j(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function M(e){let t=e.replace(/\*+/g,`*`).split(`*`).map(j).join(`.*`);return RegExp(`^${t}$`)}function N(e,t){let n=t.trim(),r=n.startsWith(`!`),i=(r?n.slice(1):n).trim().toLowerCase();if(!i)return!0;let a=e.toLowerCase(),o=i.includes(`*`)?M(i).test(a):a.includes(i);return r?!o:o}function P(e,t){let n=t.trim();return n?e.filter(e=>N(e.path,n)):e}var F=/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/,I=[`diff --git`,`index `,`--- `,`+++ `,`new file`,`deleted file`,`rename `,`similarity `,`copy `,`\\ No newline`,`Binary files`];function L(e){return I.some(t=>e.startsWith(t))}function R(e){let t=0,n=0;for(let r of z(e))r.kind===`add`?t++:r.kind===`del`&&n++;return{added:t,deleted:n}}function z(e){let t=e.replace(/\n$/,``);if(t===``)return[];let n=t.split(`
3
- `),r=[],i=0,a=0,o=!1;for(let e of n){let t=F.exec(e);if(t){i=Number.parseInt(t[1],10),a=Number.parseInt(t[2],10),o=!0,r.push({kind:`hunk`,oldLn:null,newLn:null,text:e});continue}if(e.startsWith(`diff --git`)&&(o=!1),e===``||!o&&L(e)){r.push({kind:`meta`,oldLn:null,newLn:null,text:e});continue}let n=e[0];n===`+`?(r.push({kind:`add`,oldLn:null,newLn:a,text:e}),a++):n===`-`?(r.push({kind:`del`,oldLn:i,newLn:null,text:e}),i++):L(e)?r.push({kind:`meta`,oldLn:null,newLn:null,text:e}):(r.push({kind:`ctx`,oldLn:i,newLn:a,text:e}),i++,a++)}return r}var B=m();function V({added:e,deleted:t}){return e===0&&t===0?null:(0,B.jsxs)(`span`,{className:`shrink-0 font-mono text-[10px]`,children:[(0,B.jsxs)(`span`,{className:`text-kobe-green`,children:[`+`,e]}),` `,(0,B.jsxs)(`span`,{className:`text-kobe-red`,children:[`−`,t]})]})}function H(e){let{worktreeChanges:t}=v(),n=e?t[e]:void 0;return n?`${n.added}:${n.deleted}`:`none`}function U({onRetry:e}){let{daemonConnected:t,streamConnected:n}=v();return S({daemonConnected:t,streamConnected:n})?(0,B.jsxs)(`div`,{className:`px-3 py-4 text-[12px] leading-relaxed text-subtle`,children:[`The `,h(),` daemon is offline — changes will reappear once it reconnects.`]}):(0,B.jsxs)(`div`,{className:`flex flex-col items-start gap-2 px-3 py-4`,children:[(0,B.jsx)(`span`,{className:`text-[12px] text-kobe-red`,children:`Couldn't load changes.`}),(0,B.jsxs)(`button`,{type:`button`,onClick:e,className:`flex items-center gap-1.5 border border-line bg-bg px-2 py-1 text-[11px] text-muted transition-colors hover:border-primary hover:text-fg`,children:[(0,B.jsx)(b,{size:11,strokeWidth:2}),`Retry`]})]})}function W({patch:e,wrap:t}){let n=(0,E.useMemo)(()=>z(e),[e]);return e.trim()?(0,B.jsx)(`div`,{className:`kobe-diff min-h-0 flex-1 overflow-auto py-2 font-mono text-[12px] leading-[1.15rem] ${t?`kobe-diff-wrap`:``}`,children:n.map((e,t)=>(0,B.jsxs)(`div`,{className:`kobe-diff-row ${A(e.kind)}`,children:[(0,B.jsx)(`span`,{className:`kobe-diff-gutter`,children:e.oldLn??``}),(0,B.jsx)(`span`,{className:`kobe-diff-gutter`,children:e.newLn??``}),(0,B.jsx)(`span`,{className:`kobe-diff-text`,children:e.text===``?` `:e.text})]},t))}):(0,B.jsx)(`div`,{className:`flex h-full items-center justify-center text-[12px] text-subtle`,children:`No textual diff for this file.`})}function G({worktreePath:e,onOpenFile:t}){let[n,r]=(0,E.useState)(null),[i,a]=(0,E.useState)(!1),[o,s]=(0,E.useState)(null),c=H(e),{worktreeChanges:l}=v(),u=e?l[e]:void 0,d=(0,E.useRef)(0),f=(0,E.useCallback)(async()=>{if(!e){r(null),s(null);return}let t=++d.current;a(!0),s(null);try{let n=await O(e,{namesOnly:!0});t===d.current&&r(n)}catch(e){t===d.current&&(s(e instanceof Error?e.message:String(e)),r(null))}finally{t===d.current&&a(!1)}},[e]);(0,E.useEffect)(()=>{f()},[f,c]);let[p,m]=(0,E.useState)(``);(0,E.useEffect)(()=>{m(``)},[e]);let h=n?.files??[],g=(0,E.useMemo)(()=>P(h,p),[h,p]);return(0,B.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[(0,B.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2`,children:[(0,B.jsxs)(`span`,{className:`text-[10px] font-bold uppercase tracking-[0.12em] text-subtle`,children:[`Changes`,h.length>0?` · ${h.length}`:``]}),u&&(0,B.jsx)(V,{added:u.added,deleted:u.deleted}),(0,B.jsx)(`button`,{type:`button`,onClick:()=>void f(),disabled:!e||i,className:`ml-auto rounded border border-line px-1.5 py-0.5 text-[10px] text-muted transition-colors hover:bg-surface disabled:opacity-40`,children:i?`…`:`↻`})]}),e?o?(0,B.jsx)(U,{onRetry:()=>void f()}):h.length===0?(0,B.jsx)(`div`,{className:`flex flex-1 items-center justify-center px-4 text-center`,children:(0,B.jsx)(`div`,{className:`text-[12px] text-subtle`,children:i?`Loading changes…`:`Worktree clean.`})}):(0,B.jsxs)(B.Fragment,{children:[h.length>1&&(0,B.jsx)(`input`,{value:p,onChange:e=>m(e.target.value),onKeyDown:e=>{e.key===`Escape`&&p&&(e.preventDefault(),m(``))},placeholder:`Filter ${h.length} files… (*.ts, !*.json)`,title:`Match a substring, a *.glob, or !exclude`,spellCheck:!1,className:`mx-3 mb-1 shrink-0 border border-line bg-bg px-2 py-1 font-mono text-[11px] text-fg placeholder:text-subtle focus:border-line-active focus:outline-none`}),g.length===0?(0,B.jsx)(`div`,{className:`px-3 py-3 text-center text-[11px] text-subtle`,children:`No files match.`}):(0,B.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:g.map(e=>{let n=k(e.status);return(0,B.jsxs)(`button`,{type:`button`,onClick:()=>t(e.path),title:e.path,className:`flex w-full items-center gap-2 border-l-2 border-transparent px-3 py-2 text-left transition-colors hover:border-primary hover:bg-inset`,children:[(0,B.jsx)(`span`,{className:`w-3 shrink-0 text-center font-mono text-[11px] font-bold ${n.cls}`,children:n.label}),(0,B.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-[12px] text-fg/90`,children:D(e.path,34)}),e.staged&&(0,B.jsx)(`span`,{className:`shrink-0 text-[9px] uppercase text-subtle`,children:`staged`})]},e.path)})})]}):(0,B.jsx)(`div`,{className:`flex flex-1 items-center justify-center px-4 text-center`,children:(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`div`,{className:`text-[12px] font-semibold text-fg`,children:`No task selected`}),(0,B.jsx)(`div`,{className:`mt-1 max-w-48 text-[12px] leading-relaxed text-subtle`,children:`Select a task to watch its worktree changes.`})]})})]})}function K({worktreePath:e,path:t}){let[n,r]=(0,E.useState)(null),[i,a]=(0,E.useState)(!1),[o,s]=(0,E.useState)(!1),[c,l]=(0,E.useState)(null),u=H(e),d=(0,E.useRef)(0),f=(0,E.useCallback)(async()=>{if(!e){r(null),l(null);return}let n=++d.current;s(!0),l(null);try{let i=await O(e,{path:t});if(n!==d.current)return;r(i.files.find(e=>e.path===t)??null)}catch(e){n===d.current&&l(e instanceof Error?e.message:String(e))}finally{n===d.current&&s(!1)}},[e,t]);(0,E.useEffect)(()=>{f()},[f,u]);let p=n?R(n.patch):null;return(0,B.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col border border-line bg-bg`,children:[(0,B.jsxs)(`div`,{className:`flex h-9 shrink-0 items-center gap-2 border-b border-line px-3`,children:[(0,B.jsx)(`span`,{className:`truncate font-mono text-[12px] text-fg`,title:t,children:t}),p&&(0,B.jsx)(`span`,{className:`ml-auto shrink-0`,children:(0,B.jsx)(V,{added:p.added,deleted:p.deleted})}),n&&(0,B.jsx)(`span`,{className:`shrink-0 text-[10px] uppercase tracking-wide text-subtle ${p&&(p.added||p.deleted)?``:`ml-auto`}`,children:n.status}),n&&(0,B.jsx)(`button`,{type:`button`,onClick:()=>a(e=>!e),title:i?`Disable line wrap`:`Wrap long lines`,className:`shrink-0 border px-1.5 py-0.5 font-mono text-[10px] transition-colors ${i?`border-primary bg-inset text-fg`:`border-line bg-bg text-subtle hover:border-primary hover:text-fg`}`,children:`wrap`})]}),c?(0,B.jsx)(U,{onRetry:()=>void f()}):n?(0,B.jsx)(W,{patch:n.patch,wrap:i}):o?(0,B.jsx)(`div`,{className:`flex flex-1 items-center justify-center text-[12px] text-subtle`,children:`Loading preview…`}):(0,B.jsx)(`div`,{className:`flex flex-1 items-center justify-center text-[12px] text-subtle`,children:`No diff for this file.`})]})}var q=e({WorkspaceTabs:()=>$}),J=(0,E.lazy)(()=>_(()=>import(`./ChatTerminal-B80ADLf2.js`).then(e=>({default:e.ChatTerminal})),__vite__mapDeps([0,1,2,3,4,5,6,7])));function Y(){return(0,B.jsx)(`div`,{className:`flex h-full w-full items-center justify-center text-[12px] text-subtle`,children:`Loading terminal…`})}function X(e){return x(e)}function ee({taskId:e,tabId:t,vendor:n}){return(0,B.jsx)(`div`,{className:`flex h-full items-center justify-center px-6`,children:(0,B.jsx)(`div`,{className:`grid w-full max-w-2xl grid-cols-1 gap-3 md:grid-cols-3`,children:[{title:`Vendor`,detail:n,body:`Start an engine session for this task.`,icon:C,action:()=>c(e,t,`vendor`)},{title:`Chat`,detail:`transcript`,body:`Read the session as structured messages and tool calls.`,icon:w,action:()=>c(e,t,`transcript`)},{title:`Terminal`,detail:`shell / worktree`,body:`Open a command shell in this task worktree.`,icon:T,action:()=>c(e,t,`terminal`)}].map(e=>{let t=e.icon;return(0,B.jsxs)(`button`,{type:`button`,onClick:e.action,className:`group flex min-h-36 flex-col border border-line bg-surface p-4 text-left transition-colors hover:border-primary hover:bg-inset`,children:[(0,B.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,B.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center border border-line bg-bg text-muted group-hover:border-primary group-hover:text-primary`,children:(0,B.jsx)(t,{size:17,strokeWidth:1.8})}),(0,B.jsx)(`span`,{className:`truncate text-[10px] uppercase text-subtle`,children:e.detail})]}),(0,B.jsx)(`div`,{className:`mt-5 text-[12px] font-bold uppercase tracking-[0.12em] text-fg`,children:e.title}),(0,B.jsx)(`div`,{className:`mt-2 text-[12px] leading-relaxed text-subtle`,children:e.body})]},e.title)})})})}function Z({tab:e,taskId:t,taskWorktreePath:n,taskTitle:r,vendor:i}){return e?.kind===`empty`?(0,B.jsx)(ee,{taskId:t,tabId:e.id,vendor:i}):e?.kind===`vendor`?(0,B.jsx)(E.Suspense,{fallback:(0,B.jsx)(Y,{}),children:(0,B.jsx)(J,{tabId:e.id,taskId:e.taskId??t,mode:`engine`},e.id)}):e?.kind===`terminal`?(0,B.jsx)(E.Suspense,{fallback:(0,B.jsx)(Y,{}),children:(0,B.jsx)(J,{tabId:e.id,taskId:t,mode:`shell`},e.id)}):e?.kind===`transcript`?(0,B.jsx)(y,{worktreePath:n,vendor:i,title:r},e.id):e?.kind===`file`?(0,B.jsx)(K,{worktreePath:n,path:e.path},e.id):(0,B.jsx)(`div`,{className:`flex h-full items-center justify-center text-[12px] text-subtle`,children:`Opening a tab…`})}function Q({tab:e,side:t,children:n,onCloseSplit:r}){return(0,B.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col`,children:[t===`right`&&(0,B.jsxs)(`div`,{className:`flex h-8 shrink-0 items-center justify-between border-b border-line bg-surface px-3`,children:[(0,B.jsx)(`span`,{className:`truncate text-[11px] text-muted`,children:e?.title??`Split`}),(0,B.jsx)(`button`,{type:`button`,onClick:r,className:`text-[11px] text-subtle hover:text-fg`,"aria-label":`close split`,title:`Close split`,children:`×`})]}),(0,B.jsx)(`div`,{className:`min-h-0 flex-1 p-2`,children:n})]})}function $(){let[e,t]=(0,E.useState)(null),[r,c]=(0,E.useState)(!1),{selectedTaskId:f,tabsByTask:m,activeByTask:h,splitByTask:g}=i(),{tasks:_,jobs:y}=v(),b=f?_.find(e=>e.id===f):null,x=f?m[f]??[]:[],S=f?h[f]:void 0,C=f?g[f]:void 0,w=e=>{if(!f)return;let t=x.find(t=>t.id===e);a(f,e),t&&d(t.kind)&&n(e)},T=x.find(e=>e.id===S)??x[0],D=C&&C!==T?.id?x.find(e=>e.id===C):void 0,O=X(b?.vendor),k=b?.title||b?.branch||`Session`,A=!!b&&((f?y[f]?.phase===`running`:!1)||b.worktreePath===null);return(0,B.jsxs)(`section`,{className:`flex min-w-0 flex-1 flex-col bg-bg`,children:[(0,B.jsx)(`div`,{className:`flex h-9 shrink-0 items-stretch border-b border-line bg-surface`,children:f?(0,B.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-stretch overflow-x-auto`,role:`tablist`,children:[x.map(e=>{let n=e.id===T?.id,r=e.id===D?.id;return(0,B.jsxs)(`div`,{role:`tab`,"aria-selected":n,tabIndex:0,draggable:!0,onDragStart:n=>{n.dataTransfer.effectAllowed=`move`,n.dataTransfer.setData(`text/plain`,e.id),t(e.id)},onDragEnd:()=>{t(null),c(!1)},className:`group flex h-9 select-none items-center gap-2 border-r border-b-2 border-r-line px-3 text-[12px] transition-colors ${n?`border-b-primary bg-bg text-fg`:r?`border-b-kobe-blue bg-inset text-fg`:`border-b-transparent text-muted hover:bg-inset/50`}`,children:[(0,B.jsx)(`button`,{type:`button`,onClick:()=>l(f,e.id),className:`max-w-40 cursor-grab truncate active:cursor-grabbing`,title:r?`${e.title} (split)`:e.title,children:e.title}),r&&(0,B.jsx)(`span`,{className:`text-[9px] font-bold uppercase text-kobe-blue`,children:`Split`}),(0,B.jsx)(`button`,{type:`button`,onClick:()=>w(e.id),className:`text-subtle opacity-0 transition-opacity hover:text-fg group-hover:opacity-100`,"aria-label":`close tab`,title:`Close tab`,children:`×`})]},e.id)}),(0,B.jsx)(`button`,{type:`button`,onClick:()=>u(f),className:`px-3 text-[13px] text-subtle hover:text-fg`,"aria-label":`new tab`,title:`New tab`,children:`+`})]}):(0,B.jsxs)(`div`,{className:`flex items-center gap-2 px-3 text-[11px] text-subtle`,children:[(0,B.jsx)(`span`,{className:`h-1.5 w-1.5 rounded-full bg-subtle`}),`No task selected`]})}),(0,B.jsxs)(`section`,{className:`relative min-h-0 flex-1`,"aria-label":`Workspace`,onDragOver:t=>{if(!f||!e)return;t.preventDefault();let n=t.currentTarget.getBoundingClientRect();c(t.clientX>n.left+n.width/2)},onDragLeave:()=>c(!1),onDrop:n=>{if(!f||!e)return;n.preventDefault();let r=n.currentTarget.getBoundingClientRect();n.clientX>r.left+r.width/2?o(f,e):l(f,e),t(null),c(!1)},children:[f&&T?(0,B.jsxs)(`div`,{className:`flex h-full min-w-0`,children:[(0,B.jsx)(Q,{tab:T,side:`left`,children:(0,B.jsx)(Z,{tab:T,taskId:f,taskWorktreePath:b?.worktreePath??null,taskTitle:k,vendor:O})}),D&&(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`div`,{className:`w-px shrink-0 bg-line`}),(0,B.jsx)(Q,{tab:D,side:`right`,onCloseSplit:()=>{f&&s(f)},children:(0,B.jsx)(Z,{tab:D,taskId:f,taskWorktreePath:b?.worktreePath??null,taskTitle:k,vendor:O})})]})]}):(0,B.jsx)(`div`,{className:`flex h-full items-center justify-center px-6 text-center`,children:(0,B.jsxs)(`div`,{className:`max-w-md`,children:[(0,B.jsxs)(`div`,{className:`font-mono text-[13px] font-bold text-primary`,children:[`[`,p,` web]`]}),(0,B.jsx)(`h1`,{className:`mt-4 text-[18px] font-semibold text-fg`,children:b?A?`Setting up this task's worktree…`:`Opening workspace…`:`Select a task to open its workspace.`}),(0,B.jsx)(`p`,{className:`mt-2 text-[12px] leading-relaxed text-subtle`,children:`Web workspaces keep their own browser tabs, split panes, notes, and file previews for each task.`})]})}),e&&(0,B.jsx)(`div`,{className:`pointer-events-none absolute inset-y-2 right-2 flex w-[calc(50%-0.5rem)] items-center justify-center border border-dashed ${r?`border-primary bg-primary/10`:`border-line bg-inset/40`}`,children:(0,B.jsx)(`span`,{className:`border border-line bg-bg px-2 py-1 text-[10px] font-bold uppercase tracking-[0.12em] text-muted`,children:`Drop to split right`})})]})]})}export{D as i,q as n,G as r,$ as t};
3
+ `),r=[],i=0,a=0,o=!1;for(let e of n){let t=F.exec(e);if(t){i=Number.parseInt(t[1],10),a=Number.parseInt(t[2],10),o=!0,r.push({kind:`hunk`,oldLn:null,newLn:null,text:e});continue}if(e.startsWith(`diff --git`)&&(o=!1),e===``||!o&&L(e)){r.push({kind:`meta`,oldLn:null,newLn:null,text:e});continue}let n=e[0];n===`+`?(r.push({kind:`add`,oldLn:null,newLn:a,text:e}),a++):n===`-`?(r.push({kind:`del`,oldLn:i,newLn:null,text:e}),i++):L(e)?r.push({kind:`meta`,oldLn:null,newLn:null,text:e}):(r.push({kind:`ctx`,oldLn:i,newLn:a,text:e}),i++,a++)}return r}var B=m();function V({added:e,deleted:t}){return e===0&&t===0?null:(0,B.jsxs)(`span`,{className:`shrink-0 font-mono text-[10px]`,children:[(0,B.jsxs)(`span`,{className:`text-kobe-green`,children:[`+`,e]}),` `,(0,B.jsxs)(`span`,{className:`text-kobe-red`,children:[`−`,t]})]})}function H(e){let{worktreeChanges:t}=v(),n=e?t[e]:void 0;return n?`${n.added}:${n.deleted}`:`none`}function U({onRetry:e}){let{daemonConnected:t,streamConnected:n}=v();return S({daemonConnected:t,streamConnected:n})?(0,B.jsxs)(`div`,{className:`px-3 py-4 text-[12px] leading-relaxed text-subtle`,children:[`The `,h(),` daemon is offline — changes will reappear once it reconnects.`]}):(0,B.jsxs)(`div`,{className:`flex flex-col items-start gap-2 px-3 py-4`,children:[(0,B.jsx)(`span`,{className:`text-[12px] text-kobe-red`,children:`Couldn't load changes.`}),(0,B.jsxs)(`button`,{type:`button`,onClick:e,className:`flex items-center gap-1.5 border border-line bg-bg px-2 py-1 text-[11px] text-muted transition-colors hover:border-primary hover:text-fg`,children:[(0,B.jsx)(b,{size:11,strokeWidth:2}),`Retry`]})]})}function W({patch:e,wrap:t}){let n=(0,E.useMemo)(()=>z(e),[e]);return e.trim()?(0,B.jsx)(`div`,{className:`kobe-diff min-h-0 flex-1 overflow-auto py-2 font-mono text-[12px] leading-[1.15rem] ${t?`kobe-diff-wrap`:``}`,children:n.map((e,t)=>(0,B.jsxs)(`div`,{className:`kobe-diff-row ${A(e.kind)}`,children:[(0,B.jsx)(`span`,{className:`kobe-diff-gutter`,children:e.oldLn??``}),(0,B.jsx)(`span`,{className:`kobe-diff-gutter`,children:e.newLn??``}),(0,B.jsx)(`span`,{className:`kobe-diff-text`,children:e.text===``?` `:e.text})]},t))}):(0,B.jsx)(`div`,{className:`flex h-full items-center justify-center text-[12px] text-subtle`,children:`No textual diff for this file.`})}function G({worktreePath:e,onOpenFile:t}){let[n,r]=(0,E.useState)(null),[i,a]=(0,E.useState)(!1),[o,s]=(0,E.useState)(null),c=H(e),{worktreeChanges:l}=v(),u=e?l[e]:void 0,d=(0,E.useRef)(0),f=(0,E.useCallback)(async()=>{if(!e){r(null),s(null);return}let t=++d.current;a(!0),s(null);try{let n=await O(e,{namesOnly:!0});t===d.current&&r(n)}catch(e){t===d.current&&(s(e instanceof Error?e.message:String(e)),r(null))}finally{t===d.current&&a(!1)}},[e]);(0,E.useEffect)(()=>{f()},[f,c]);let[p,m]=(0,E.useState)(``);(0,E.useEffect)(()=>{m(``)},[e]);let h=n?.files??[],g=(0,E.useMemo)(()=>P(h,p),[h,p]);return(0,B.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[(0,B.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2`,children:[(0,B.jsxs)(`span`,{className:`text-[10px] font-bold uppercase tracking-[0.12em] text-subtle`,children:[`Changes`,h.length>0?` · ${h.length}`:``]}),u&&(0,B.jsx)(V,{added:u.added,deleted:u.deleted}),(0,B.jsx)(`button`,{type:`button`,onClick:()=>void f(),disabled:!e||i,className:`ml-auto rounded border border-line px-1.5 py-0.5 text-[10px] text-muted transition-colors hover:bg-surface disabled:opacity-40`,children:i?`…`:`↻`})]}),e?o?(0,B.jsx)(U,{onRetry:()=>void f()}):h.length===0?(0,B.jsx)(`div`,{className:`flex flex-1 items-center justify-center px-4 text-center`,children:(0,B.jsx)(`div`,{className:`text-[12px] text-subtle`,children:i?`Loading changes…`:`Worktree clean.`})}):(0,B.jsxs)(B.Fragment,{children:[h.length>1&&(0,B.jsx)(`input`,{value:p,onChange:e=>m(e.target.value),onKeyDown:e=>{e.key===`Escape`&&p&&(e.preventDefault(),m(``))},placeholder:`Filter ${h.length} files… (*.ts, !*.json)`,title:`Match a substring, a *.glob, or !exclude`,spellCheck:!1,className:`mx-3 mb-1 shrink-0 border border-line bg-bg px-2 py-1 font-mono text-[11px] text-fg placeholder:text-subtle focus:border-line-active focus:outline-none`}),g.length===0?(0,B.jsx)(`div`,{className:`px-3 py-3 text-center text-[11px] text-subtle`,children:`No files match.`}):(0,B.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:g.map(e=>{let n=k(e.status);return(0,B.jsxs)(`button`,{type:`button`,onClick:()=>t(e.path),title:e.path,className:`flex w-full items-center gap-2 border-l-2 border-transparent px-3 py-2 text-left transition-colors hover:border-primary hover:bg-inset`,children:[(0,B.jsx)(`span`,{className:`w-3 shrink-0 text-center font-mono text-[11px] font-bold ${n.cls}`,children:n.label}),(0,B.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-[12px] text-fg/90`,children:D(e.path,34)}),e.staged&&(0,B.jsx)(`span`,{className:`shrink-0 text-[9px] uppercase text-subtle`,children:`staged`})]},e.path)})})]}):(0,B.jsx)(`div`,{className:`flex flex-1 items-center justify-center px-4 text-center`,children:(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`div`,{className:`text-[12px] font-semibold text-fg`,children:`No task selected`}),(0,B.jsx)(`div`,{className:`mt-1 max-w-48 text-[12px] leading-relaxed text-subtle`,children:`Select a task to watch its worktree changes.`})]})})]})}function K({worktreePath:e,path:t}){let[n,r]=(0,E.useState)(null),[i,a]=(0,E.useState)(!1),[o,s]=(0,E.useState)(!1),[c,l]=(0,E.useState)(null),u=H(e),d=(0,E.useRef)(0),f=(0,E.useCallback)(async()=>{if(!e){r(null),l(null);return}let n=++d.current;s(!0),l(null);try{let i=await O(e,{path:t});if(n!==d.current)return;r(i.files.find(e=>e.path===t)??null)}catch(e){n===d.current&&l(e instanceof Error?e.message:String(e))}finally{n===d.current&&s(!1)}},[e,t]);(0,E.useEffect)(()=>{f()},[f,u]);let p=n?R(n.patch):null;return(0,B.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col border border-line bg-bg`,children:[(0,B.jsxs)(`div`,{className:`flex h-9 shrink-0 items-center gap-2 border-b border-line px-3`,children:[(0,B.jsx)(`span`,{className:`truncate font-mono text-[12px] text-fg`,title:t,children:t}),p&&(0,B.jsx)(`span`,{className:`ml-auto shrink-0`,children:(0,B.jsx)(V,{added:p.added,deleted:p.deleted})}),n&&(0,B.jsx)(`span`,{className:`shrink-0 text-[10px] uppercase tracking-wide text-subtle ${p&&(p.added||p.deleted)?``:`ml-auto`}`,children:n.status}),n&&(0,B.jsx)(`button`,{type:`button`,onClick:()=>a(e=>!e),title:i?`Disable line wrap`:`Wrap long lines`,className:`shrink-0 border px-1.5 py-0.5 font-mono text-[10px] transition-colors ${i?`border-primary bg-inset text-fg`:`border-line bg-bg text-subtle hover:border-primary hover:text-fg`}`,children:`wrap`})]}),c?(0,B.jsx)(U,{onRetry:()=>void f()}):n?(0,B.jsx)(W,{patch:n.patch,wrap:i}):o?(0,B.jsx)(`div`,{className:`flex flex-1 items-center justify-center text-[12px] text-subtle`,children:`Loading preview…`}):(0,B.jsx)(`div`,{className:`flex flex-1 items-center justify-center text-[12px] text-subtle`,children:`No diff for this file.`})]})}var q=e({WorkspaceTabs:()=>$}),J=(0,E.lazy)(()=>_(()=>import(`./ChatTerminal-B32Pfuys.js`).then(e=>({default:e.ChatTerminal})),__vite__mapDeps([0,1,2,3,4,5,6,7])));function Y(){return(0,B.jsx)(`div`,{className:`flex h-full w-full items-center justify-center text-[12px] text-subtle`,children:`Loading terminal…`})}function X(e){return x(e)}function ee({taskId:e,tabId:t,vendor:n}){return(0,B.jsx)(`div`,{className:`flex h-full items-center justify-center px-6`,children:(0,B.jsx)(`div`,{className:`grid w-full max-w-2xl grid-cols-1 gap-3 md:grid-cols-3`,children:[{title:`Vendor`,detail:n,body:`Start an engine session for this task.`,icon:C,action:()=>c(e,t,`vendor`)},{title:`Chat`,detail:`transcript`,body:`Read the session as structured messages and tool calls.`,icon:w,action:()=>c(e,t,`transcript`)},{title:`Terminal`,detail:`shell / worktree`,body:`Open a command shell in this task worktree.`,icon:T,action:()=>c(e,t,`terminal`)}].map(e=>{let t=e.icon;return(0,B.jsxs)(`button`,{type:`button`,onClick:e.action,className:`group flex min-h-36 flex-col border border-line bg-surface p-4 text-left transition-colors hover:border-primary hover:bg-inset`,children:[(0,B.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,B.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center border border-line bg-bg text-muted group-hover:border-primary group-hover:text-primary`,children:(0,B.jsx)(t,{size:17,strokeWidth:1.8})}),(0,B.jsx)(`span`,{className:`truncate text-[10px] uppercase text-subtle`,children:e.detail})]}),(0,B.jsx)(`div`,{className:`mt-5 text-[12px] font-bold uppercase tracking-[0.12em] text-fg`,children:e.title}),(0,B.jsx)(`div`,{className:`mt-2 text-[12px] leading-relaxed text-subtle`,children:e.body})]},e.title)})})})}function Z({tab:e,taskId:t,taskWorktreePath:n,taskTitle:r,vendor:i}){return e?.kind===`empty`?(0,B.jsx)(ee,{taskId:t,tabId:e.id,vendor:i}):e?.kind===`vendor`?(0,B.jsx)(E.Suspense,{fallback:(0,B.jsx)(Y,{}),children:(0,B.jsx)(J,{tabId:e.id,taskId:e.taskId??t,mode:`engine`},e.id)}):e?.kind===`terminal`?(0,B.jsx)(E.Suspense,{fallback:(0,B.jsx)(Y,{}),children:(0,B.jsx)(J,{tabId:e.id,taskId:t,mode:`shell`},e.id)}):e?.kind===`transcript`?(0,B.jsx)(y,{worktreePath:n,vendor:i,title:r},e.id):e?.kind===`file`?(0,B.jsx)(K,{worktreePath:n,path:e.path},e.id):(0,B.jsx)(`div`,{className:`flex h-full items-center justify-center text-[12px] text-subtle`,children:`Opening a tab…`})}function Q({tab:e,side:t,children:n,onCloseSplit:r}){return(0,B.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col`,children:[t===`right`&&(0,B.jsxs)(`div`,{className:`flex h-8 shrink-0 items-center justify-between border-b border-line bg-surface px-3`,children:[(0,B.jsx)(`span`,{className:`truncate text-[11px] text-muted`,children:e?.title??`Split`}),(0,B.jsx)(`button`,{type:`button`,onClick:r,className:`text-[11px] text-subtle hover:text-fg`,"aria-label":`close split`,title:`Close split`,children:`×`})]}),(0,B.jsx)(`div`,{className:`min-h-0 flex-1 p-2`,children:n})]})}function $(){let[e,t]=(0,E.useState)(null),[r,c]=(0,E.useState)(!1),{selectedTaskId:f,tabsByTask:m,activeByTask:h,splitByTask:g}=i(),{tasks:_,jobs:y}=v(),b=f?_.find(e=>e.id===f):null,x=f?m[f]??[]:[],S=f?h[f]:void 0,C=f?g[f]:void 0,w=e=>{if(!f)return;let t=x.find(t=>t.id===e);a(f,e),t&&d(t.kind)&&n(e)},T=x.find(e=>e.id===S)??x[0],D=C&&C!==T?.id?x.find(e=>e.id===C):void 0,O=X(b?.vendor),k=b?.title||b?.branch||`Session`,A=!!b&&((f?y[f]?.phase===`running`:!1)||b.worktreePath===null);return(0,B.jsxs)(`section`,{className:`flex min-w-0 flex-1 flex-col bg-bg`,children:[(0,B.jsx)(`div`,{className:`flex h-9 shrink-0 items-stretch border-b border-line bg-surface`,children:f?(0,B.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-stretch overflow-x-auto`,role:`tablist`,children:[x.map(e=>{let n=e.id===T?.id,r=e.id===D?.id;return(0,B.jsxs)(`div`,{role:`tab`,"aria-selected":n,tabIndex:0,draggable:!0,onDragStart:n=>{n.dataTransfer.effectAllowed=`move`,n.dataTransfer.setData(`text/plain`,e.id),t(e.id)},onDragEnd:()=>{t(null),c(!1)},className:`group flex h-9 select-none items-center gap-2 border-r border-b-2 border-r-line px-3 text-[12px] transition-colors ${n?`border-b-primary bg-bg text-fg`:r?`border-b-kobe-blue bg-inset text-fg`:`border-b-transparent text-muted hover:bg-inset/50`}`,children:[(0,B.jsx)(`button`,{type:`button`,onClick:()=>l(f,e.id),className:`max-w-40 cursor-grab truncate active:cursor-grabbing`,title:r?`${e.title} (split)`:e.title,children:e.title}),r&&(0,B.jsx)(`span`,{className:`text-[9px] font-bold uppercase text-kobe-blue`,children:`Split`}),(0,B.jsx)(`button`,{type:`button`,onClick:()=>w(e.id),className:`text-subtle opacity-0 transition-opacity hover:text-fg group-hover:opacity-100`,"aria-label":`close tab`,title:`Close tab`,children:`×`})]},e.id)}),(0,B.jsx)(`button`,{type:`button`,onClick:()=>u(f),className:`px-3 text-[13px] text-subtle hover:text-fg`,"aria-label":`new tab`,title:`New tab`,children:`+`})]}):(0,B.jsxs)(`div`,{className:`flex items-center gap-2 px-3 text-[11px] text-subtle`,children:[(0,B.jsx)(`span`,{className:`h-1.5 w-1.5 rounded-full bg-subtle`}),`No task selected`]})}),(0,B.jsxs)(`section`,{className:`relative min-h-0 flex-1`,"aria-label":`Workspace`,onDragOver:t=>{if(!f||!e)return;t.preventDefault();let n=t.currentTarget.getBoundingClientRect();c(t.clientX>n.left+n.width/2)},onDragLeave:()=>c(!1),onDrop:n=>{if(!f||!e)return;n.preventDefault();let r=n.currentTarget.getBoundingClientRect();n.clientX>r.left+r.width/2?o(f,e):l(f,e),t(null),c(!1)},children:[f&&T?(0,B.jsxs)(`div`,{className:`flex h-full min-w-0`,children:[(0,B.jsx)(Q,{tab:T,side:`left`,children:(0,B.jsx)(Z,{tab:T,taskId:f,taskWorktreePath:b?.worktreePath??null,taskTitle:k,vendor:O})}),D&&(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`div`,{className:`w-px shrink-0 bg-line`}),(0,B.jsx)(Q,{tab:D,side:`right`,onCloseSplit:()=>{f&&s(f)},children:(0,B.jsx)(Z,{tab:D,taskId:f,taskWorktreePath:b?.worktreePath??null,taskTitle:k,vendor:O})})]})]}):(0,B.jsx)(`div`,{className:`flex h-full items-center justify-center px-6 text-center`,children:(0,B.jsxs)(`div`,{className:`max-w-md`,children:[(0,B.jsxs)(`div`,{className:`font-mono text-[13px] font-bold text-primary`,children:[`[`,p,` web]`]}),(0,B.jsx)(`h1`,{className:`mt-4 text-[18px] font-semibold text-fg`,children:b?A?`Setting up this task's worktree…`:`Opening workspace…`:`Select a task to open its workspace.`}),(0,B.jsx)(`p`,{className:`mt-2 text-[12px] leading-relaxed text-subtle`,children:`Web workspaces keep their own browser tabs, split panes, notes, and file previews for each task.`})]})}),e&&(0,B.jsx)(`div`,{className:`pointer-events-none absolute inset-y-2 right-2 flex w-[calc(50%-0.5rem)] items-center justify-center border border-dashed ${r?`border-primary bg-primary/10`:`border-line bg-inset/40`}`,children:(0,B.jsx)(`span`,{className:`border border-line bg-bg px-2 py-1 text-[10px] font-bold uppercase tracking-[0.12em] text-muted`,children:`Drop to split right`})})]})]})}export{D as i,q as n,G as r,$ as t};
@@ -0,0 +1 @@
1
+ import{Board as e}from"./Board-CcUG5Zqa.js";var t=e;export{t as component};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/AppShell-TzCpzcDS.js","assets/terminal-6BCvBu4_.js","assets/tabs-DHBP2ShA.js","assets/createLucideIcon-C6nfansM.js","assets/toast-2mA6GzBq.js","assets/external-store-CNyRxjsC.js","assets/ViewToggle-Bvvh1yLG.js","assets/columns-3-xX5P4LBE.js","assets/with-selector-D8BuTuR6.js","assets/store-BK5yanfN.js","assets/x-MtSojW5V.js","assets/web-transport-BFuf9jKF.js","assets/active-task-CCVuYWP9.js","assets/triage-DjBy6dI9.js","assets/use-focus-trap-oPsw86zw.js","assets/engines-CZCmPVm2.js","assets/settings-Cavhxdh3.js","assets/vendor-CdtpTJrf.js","assets/WorkspaceTabs-ZhpZ33cd.js","assets/ChatTranscript-Bw-ROsjY.js","assets/rotate-cw-BsVaYno1.js","assets/search-zs6lDYfz.js","assets/time-kviT26Tm.js","assets/WorkspaceTabs-DLzL-Tad.css","assets/SettingsPage-DovXUI00.js","assets/plus-Bz25iNHX.js","assets/activity-BjTd1D8q.js","assets/ConfirmDialog-CBqd0wMR.js","assets/text-match-DW3sD-Rt.js","assets/SlideOver-CI7vBtQJ.js","assets/chips-NdkDNqV7.js","assets/AppShell-HiyATJse.css","assets/Board-72QPdwHn.js","assets/external-link-Cj-9rta8.js","assets/lazy-issue-panels-GvnRdSfG.js","assets/issues-BjnSNgu-.js","assets/IssuesPage-BlWjFWpu.js","assets/arrow-left-wT_Oflhg.js","assets/ChatTerminal-B80ADLf2.js","assets/ChatTerminal-BrP-ENHg.css","assets/BoardPeek-gUixsQIV.js","assets/IssueIntakePanel-CBM21cyc.js","assets/RichEditor-CY2cypY2.js","assets/react-dom-Ccqy9Xi6.js","assets/RichEditor-B4sEOPyN.css","assets/IssuePeek-Ce8Qc6KY.js"])))=>i.map(i=>d[i]);
2
- import{i as e}from"./store-BK5yanfN.js";function t(e){return new URLSearchParams(e).get(`kobeDesktop`)===`1`}function n(e=window.location.search){let n=t(e);return n&&(document.documentElement.dataset.kobeDesktop=`true`),n}function r(){return document.documentElement.dataset.kobeDesktop===`true`}function i(){return window.kobeDesktopWindow}async function a(){await Promise.allSettled([e(()=>import(`./AppShell-TzCpzcDS.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31])),e(()=>import(`./Board-72QPdwHn.js`),__vite__mapDeps([32,1,2,3,4,5,6,7,8,9,10,11,12,33,34,30,35,16,28,25,21,27,14])),e(()=>import(`./IssuesPage-BlWjFWpu.js`),__vite__mapDeps([36,1,2,3,4,5,9,37,34,30,35,12,16,28,25,21,10,27,14])),e(()=>import(`./WorkspaceTabs-ZhpZ33cd.js`).then(e=>e.n),__vite__mapDeps([18,1,2,3,9,19,20,21,10,11,22,17,23])),e(()=>import(`./ChatTerminal-B80ADLf2.js`),__vite__mapDeps([38,1,2,3,9,20,11,39])),e(()=>import(`./BoardPeek-gUixsQIV.js`),__vite__mapDeps([40,1,2,3,9,19,20,21,10,11,22,33,26,14,17])),e(()=>import(`./IssueIntakePanel-CBM21cyc.js`),__vite__mapDeps([41,1,2,3,29,10,14,35,9,12,16,28,42,8,43,15,5,17,44])),e(()=>import(`./IssuePeek-Ce8Qc6KY.js`),__vite__mapDeps([45,1,2,3,33,29,10,14,35,9,12,16,28,42,8,43,15,5,17,44])),e(()=>import(`./SettingsPage-DovXUI00.js`).then(e=>e.n),__vite__mapDeps([24,1,2,3,4,5,16,17]))])}export{a as i,n,r,i as t};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/AppShell-BvHb-c8o.js","assets/terminal-6BCvBu4_.js","assets/tabs-DHBP2ShA.js","assets/createLucideIcon-C6nfansM.js","assets/toast-2mA6GzBq.js","assets/external-store-CNyRxjsC.js","assets/ViewToggle-Bvvh1yLG.js","assets/columns-3-xX5P4LBE.js","assets/with-selector-D8BuTuR6.js","assets/store-BK5yanfN.js","assets/x-MtSojW5V.js","assets/web-transport-BFuf9jKF.js","assets/active-task-CCVuYWP9.js","assets/triage-DjBy6dI9.js","assets/use-focus-trap-oPsw86zw.js","assets/engines-CZCmPVm2.js","assets/settings-Cavhxdh3.js","assets/vendor-CdtpTJrf.js","assets/WorkspaceTabs-DrrZuT8m.js","assets/ChatTranscript-Bw-ROsjY.js","assets/rotate-cw-BsVaYno1.js","assets/search-zs6lDYfz.js","assets/time-kviT26Tm.js","assets/WorkspaceTabs-DLzL-Tad.css","assets/SettingsPage-DovXUI00.js","assets/plus-Bz25iNHX.js","assets/activity-BjTd1D8q.js","assets/ConfirmDialog-CQUf9GuM.js","assets/text-match-DW3sD-Rt.js","assets/SlideOver-CI7vBtQJ.js","assets/chips-NdkDNqV7.js","assets/AppShell-HiyATJse.css","assets/Board-CcUG5Zqa.js","assets/external-link-Cj-9rta8.js","assets/lazy-issue-panels-GvnRdSfG.js","assets/issues-BjnSNgu-.js","assets/IssuesPage-BHj8y82L.js","assets/arrow-left-wT_Oflhg.js","assets/ChatTerminal-B32Pfuys.js","assets/ChatTerminal-BrP-ENHg.css","assets/BoardPeek-C5c1gItm.js","assets/IssueIntakePanel-CBM21cyc.js","assets/RichEditor-CY2cypY2.js","assets/react-dom-Ccqy9Xi6.js","assets/RichEditor-B4sEOPyN.css","assets/IssuePeek-Ce8Qc6KY.js"])))=>i.map(i=>d[i]);
2
+ import{i as e}from"./store-BK5yanfN.js";function t(e){return new URLSearchParams(e).get(`kobeDesktop`)===`1`}function n(e=window.location.search){let n=t(e);return n&&(document.documentElement.dataset.kobeDesktop=`true`),n}function r(){return document.documentElement.dataset.kobeDesktop===`true`}function i(){return window.kobeDesktopWindow}async function a(){await Promise.allSettled([e(()=>import(`./AppShell-BvHb-c8o.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31])),e(()=>import(`./Board-CcUG5Zqa.js`),__vite__mapDeps([32,1,2,3,4,5,6,7,8,9,10,11,12,33,34,30,35,16,28,25,21,27,14])),e(()=>import(`./IssuesPage-BHj8y82L.js`),__vite__mapDeps([36,1,2,3,4,5,9,37,34,30,35,12,16,28,25,21,10,27,14])),e(()=>import(`./WorkspaceTabs-DrrZuT8m.js`).then(e=>e.n),__vite__mapDeps([18,1,2,3,9,19,20,21,10,11,22,17,23])),e(()=>import(`./ChatTerminal-B32Pfuys.js`),__vite__mapDeps([38,1,2,3,9,20,11,39])),e(()=>import(`./BoardPeek-C5c1gItm.js`),__vite__mapDeps([40,1,2,3,9,19,20,21,10,11,22,33,26,14,17])),e(()=>import(`./IssueIntakePanel-CBM21cyc.js`),__vite__mapDeps([41,1,2,3,29,10,14,35,9,12,16,28,42,8,43,15,5,17,44])),e(()=>import(`./IssuePeek-Ce8Qc6KY.js`),__vite__mapDeps([45,1,2,3,33,29,10,14,35,9,12,16,28,42,8,43,15,5,17,44])),e(()=>import(`./SettingsPage-DovXUI00.js`).then(e=>e.n),__vite__mapDeps([24,1,2,3,4,5,16,17]))])}export{a as i,n,r,i as t};
@@ -0,0 +1 @@
1
+ import{u as e}from"./terminal-6BCvBu4_.js";import{y as t}from"./tabs-DHBP2ShA.js";import{m as n}from"./createLucideIcon-C6nfansM.js";import{ChatTerminal as r}from"./ChatTerminal-B32Pfuys.js";var i=e(t()),a=n();function o(){let e=(new URLSearchParams(window.location.search).get(`run`)??`manual`).replace(/[^a-zA-Z0-9_-]/g,``).slice(0,48)||`manual`,t=new URLSearchParams(window.location.search).get(`webgl`)===`1`,n=new URLSearchParams(window.location.search).get(`wallpaper`),o=n?.startsWith(`/`)?n:null,s=`visual-${e}`,[c,l]=(0,i.useState)(`connecting`),[u,d]=(0,i.useState)(``);return(0,a.jsxs)(`div`,{"data-testid":`opentui-harness`,"data-pty-status":c,style:{position:`fixed`,inset:0,background:o?`#0F0E0D url("${o}") center/cover no-repeat`:`#141413`},children:[o?(0,a.jsx)(`style`,{children:`.xterm-viewport{background-color:transparent !important}`}):null,(0,a.jsx)(r,{tabId:s,taskId:s,mode:`shell`,testId:`opentui-terminal`,disableWebgl:!t,transparent:o!==null,onStatusChange:l,onBufferChange:d}),(0,a.jsx)(`pre`,{"data-testid":`opentui-buffer`,style:{display:`none`},children:u})]})}export{o as component};
@@ -1 +1 @@
1
- @font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/jetbrains-mono-latin-600-normal-C8RAYTDA.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-600-normal-BfsvjouI.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/jetbrains-mono-latin-700-normal-BYuf6tUa.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-700-normal-D3wTyLJW.woff)format("woff")}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "SF Mono", "Fira Code", ui-monospace, Menlo, Monaco, "Cascadia Code", monospace;--color-black:#000;--spacing:.25rem;--container-md:28rem;--container-2xl:42rem;--container-4xl:56rem;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--leading-relaxed:1.625;--radius-sm:.25rem;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bg:#141413;--color-surface:#1a1917;--color-inset:#2b2a27;--color-menu:#33312e;--color-line:#3a3835;--color-line-subtle:#2b2a27;--color-line-active:#5c5853;--color-fg:#eae7df;--color-muted:#a9a39a;--color-subtle:#6b665f;--color-primary:#cc785c;--color-kobe-orange:#d97757;--color-kobe-green:#9aca86;--color-kobe-blue:#61aaf2;--color-kobe-red:#d47563;--color-kobe-yellow:#e8c96b;--color-kobe-violet:#9b87f5}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:0}.inset-y-2{inset-block:calc(var(--spacing) * 2)}.top-2{top:calc(var(--spacing) * 2)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.right-6{right:calc(var(--spacing) * 6)}.bottom-2{bottom:calc(var(--spacing) * 2)}.bottom-3{bottom:calc(var(--spacing) * 3)}.bottom-6{bottom:calc(var(--spacing) * 6)}.bottom-10{bottom:calc(var(--spacing) * 10)}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.m-0{margin:0}.mx-3{margin-inline:calc(var(--spacing) * 3)}.mx-auto{margin-inline:auto}.my-1{margin-block:var(--spacing)}.my-2{margin-block:calc(var(--spacing) * 2)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-auto{margin-top:auto}.mb-1{margin-bottom:var(--spacing)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.ml-5{margin-left:calc(var(--spacing) * 5)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-3{height:calc(var(--spacing) * 3)}.h-5{height:calc(var(--spacing) * 5)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[50vh\]{max-height:50vh}.max-h-\[80vh\]{max-height:80vh}.min-h-0{min-height:0}.min-h-36{min-height:calc(var(--spacing) * 36)}.min-h-56{min-height:calc(var(--spacing) * 56)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-3{width:calc(var(--spacing) * 3)}.w-5{width:calc(var(--spacing) * 5)}.w-9{width:calc(var(--spacing) * 9)}.w-12{width:calc(var(--spacing) * 12)}.w-44{width:calc(var(--spacing) * 44)}.w-52{width:calc(var(--spacing) * 52)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-96{width:calc(var(--spacing) * 96)}.w-\[28rem\]{width:28rem}.w-\[30rem\]{width:30rem}.w-\[32rem\]{width:32rem}.w-\[34rem\]{width:34rem}.w-\[640px\]{width:640px}.w-\[920px\]{width:920px}.w-\[calc\(50\%-0\.5rem\)\]{width:calc(50% - .5rem)}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-40{max-width:calc(var(--spacing) * 40)}.max-w-44{max-width:calc(var(--spacing) * 44)}.max-w-48{max-width:calc(var(--spacing) * 48)}.max-w-56{max-width:calc(var(--spacing) * 56)}.max-w-\[24rem\]{max-width:24rem}.max-w-\[85vw\]{max-width:85vw}.max-w-\[92vw\]{max-width:92vw}.max-w-\[96vw\]{max-width:96vw}.max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:0}.min-w-\[1\.4rem\]{min-width:1.4rem}.min-w-max{min-width:max-content}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.translate-x-0{--tw-translate-x:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[180px_minmax\(0\,1fr\)\]{grid-template-columns:180px minmax(0,1fr)}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-sm{border-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-x-0{border-inline-style:var(--tw-border-style);border-inline-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-black\/20{border-color:#0003}@supports (color:color-mix(in lab, red, red)){.border-black\/20{border-color:color-mix(in oklab, var(--color-black) 20%, transparent)}}.border-kobe-green\/50{border-color:#9aca8680}@supports (color:color-mix(in lab, red, red)){.border-kobe-green\/50{border-color:color-mix(in oklab, var(--color-kobe-green) 50%, transparent)}}.border-kobe-red\/40{border-color:#d4756366}@supports (color:color-mix(in lab, red, red)){.border-kobe-red\/40{border-color:color-mix(in oklab, var(--color-kobe-red) 40%, transparent)}}.border-kobe-red\/50{border-color:#d4756380}@supports (color:color-mix(in lab, red, red)){.border-kobe-red\/50{border-color:color-mix(in oklab, var(--color-kobe-red) 50%, transparent)}}.border-kobe-yellow\/40{border-color:#e8c96b66}@supports (color:color-mix(in lab, red, red)){.border-kobe-yellow\/40{border-color:color-mix(in oklab, var(--color-kobe-yellow) 40%, transparent)}}.border-line{border-color:var(--color-line)}.border-line-active{border-color:var(--color-line-active)}.border-line-subtle{border-color:var(--color-line-subtle)}.border-primary{border-color:var(--color-primary)}.border-primary\/60{border-color:#cc785c99}@supports (color:color-mix(in lab, red, red)){.border-primary\/60{border-color:color-mix(in oklab, var(--color-primary) 60%, transparent)}}.border-transparent{border-color:#0000}.border-r-line{border-right-color:var(--color-line)}.border-b-kobe-blue{border-bottom-color:var(--color-kobe-blue)}.border-b-primary{border-bottom-color:var(--color-primary)}.border-b-transparent{border-bottom-color:#0000}.bg-\[\#28c840\]{background-color:#28c840}.bg-\[\#febc2e\]{background-color:#febc2e}.bg-\[\#ff5f57\]{background-color:#ff5f57}.bg-bg{background-color:var(--color-bg)}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab, red, red)){.bg-black\/40{background-color:color-mix(in oklab, var(--color-black) 40%, transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab, red, red)){.bg-black\/60{background-color:color-mix(in oklab, var(--color-black) 60%, transparent)}}.bg-inset{background-color:var(--color-inset)}.bg-inset\/40{background-color:#2b2a2766}@supports (color:color-mix(in lab, red, red)){.bg-inset\/40{background-color:color-mix(in oklab, var(--color-inset) 40%, transparent)}}.bg-kobe-blue{background-color:var(--color-kobe-blue)}.bg-kobe-green{background-color:var(--color-kobe-green)}.bg-kobe-green\/60{background-color:#9aca8699}@supports (color:color-mix(in lab, red, red)){.bg-kobe-green\/60{background-color:color-mix(in oklab, var(--color-kobe-green) 60%, transparent)}}.bg-kobe-orange{background-color:var(--color-kobe-orange)}.bg-kobe-red{background-color:var(--color-kobe-red)}.bg-kobe-red\/10{background-color:#d475631a}@supports (color:color-mix(in lab, red, red)){.bg-kobe-red\/10{background-color:color-mix(in oklab, var(--color-kobe-red) 10%, transparent)}}.bg-kobe-yellow{background-color:var(--color-kobe-yellow)}.bg-kobe-yellow\/10{background-color:#e8c96b1a}@supports (color:color-mix(in lab, red, red)){.bg-kobe-yellow\/10{background-color:color-mix(in oklab, var(--color-kobe-yellow) 10%, transparent)}}.bg-line{background-color:var(--color-line)}.bg-primary{background-color:var(--color-primary)}.bg-primary\/10{background-color:#cc785c1a}@supports (color:color-mix(in lab, red, red)){.bg-primary\/10{background-color:color-mix(in oklab, var(--color-primary) 10%, transparent)}}.bg-subtle{background-color:var(--color-subtle)}.bg-surface{background-color:var(--color-surface)}.bg-surface\/50{background-color:#1a191780}@supports (color:color-mix(in lab, red, red)){.bg-surface\/50{background-color:color-mix(in oklab, var(--color-surface) 50%, transparent)}}.bg-surface\/60{background-color:#1a191799}@supports (color:color-mix(in lab, red, red)){.bg-surface\/60{background-color:color-mix(in oklab, var(--color-surface) 60%, transparent)}}.bg-transparent{background-color:#0000}.p-0{padding:0}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.px-0{padding-inline:0}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-\[12vh\]{padding-top:12vh}.pr-0\.5{padding-right:calc(var(--spacing) * .5)}.pb-0{padding-bottom:0}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-3\.5{padding-left:calc(var(--spacing) * 3.5)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[16px\]{font-size:16px}.text-\[18px\]{font-size:18px}.leading-\[1\.15rem\]{--tw-leading:1.15rem;line-height:1.15rem}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.12em\]{--tw-tracking:.12em;letter-spacing:.12em}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-words{overflow-wrap:break-word}.whitespace-pre-wrap{white-space:pre-wrap}.tab-1{tab-size:1}.tab-2{tab-size:2}.tab-3{tab-size:3}.tab-9{tab-size:9}.text-bg{color:var(--color-bg)}.text-fg{color:var(--color-fg)}.text-fg\/90{color:#eae7dfe6}@supports (color:color-mix(in lab, red, red)){.text-fg\/90{color:color-mix(in oklab, var(--color-fg) 90%, transparent)}}.text-kobe-blue{color:var(--color-kobe-blue)}.text-kobe-green{color:var(--color-kobe-green)}.text-kobe-orange{color:var(--color-kobe-orange)}.text-kobe-red{color:var(--color-kobe-red)}.text-kobe-red\/90{color:#d47563e6}@supports (color:color-mix(in lab, red, red)){.text-kobe-red\/90{color:color-mix(in oklab, var(--color-kobe-red) 90%, transparent)}}.text-kobe-violet{color:var(--color-kobe-violet)}.text-kobe-yellow{color:var(--color-kobe-yellow)}.text-kobe-yellow\/70{color:#e8c96bb3}@supports (color:color-mix(in lab, red, red)){.text-kobe-yellow\/70{color:color-mix(in oklab, var(--color-kobe-yellow) 70%, transparent)}}.text-muted{color:var(--color-muted)}.text-primary{color:var(--color-primary)}.text-subtle{color:var(--color-subtle)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.opacity-0{opacity:0}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;user-select:none}.\[hero\:capture\]{hero:capture}.\[hero\:issues\]{hero:issues}.\[hero\:kanban\]{hero:kanban}.\[hero\:plugins\]{hero:plugins}.\[hero\:routines\]{hero:routines}.\[hero\:serve\]{hero:serve}.\[visual\:serve\]{visual:serve}@media (hover:hover){.group-hover\:border-primary:is(:where(.group):hover *){border-color:var(--color-primary)}.group-hover\:text-primary:is(:where(.group):hover *){color:var(--color-primary)}.group-hover\:opacity-100:is(:where(.group):hover *),.group-hover\/card\:opacity-100:is(:where(.group\/card):hover *),.group-hover\/wrap\:opacity-100:is(:where(.group\/wrap):hover *){opacity:1}}.placeholder\:text-subtle::placeholder{color:var(--color-subtle)}.after\:pointer-events-none:after{content:var(--tw-content);pointer-events:none}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:top-2:after{content:var(--tw-content);top:calc(var(--spacing) * 2)}.after\:right-0:after{content:var(--tw-content);right:0}.after\:bottom-full:after{content:var(--tw-content);bottom:100%}.after\:left-full:after{content:var(--tw-content);left:100%}.after\:z-10:after{content:var(--tw-content);z-index:10}.after\:mb-1:after{content:var(--tw-content);margin-bottom:var(--spacing)}.after\:ml-1:after{content:var(--tw-content);margin-left:var(--spacing)}.after\:hidden:after{content:var(--tw-content);display:none}.after\:border:after{content:var(--tw-content);border-style:var(--tw-border-style);border-width:1px}.after\:border-line:after{content:var(--tw-content);border-color:var(--color-line)}.after\:bg-menu:after{content:var(--tw-content);background-color:var(--color-menu)}.after\:px-1\.5:after{content:var(--tw-content);padding-inline:calc(var(--spacing) * 1.5)}.after\:py-0\.5:after{content:var(--tw-content);padding-block:calc(var(--spacing) * .5)}.after\:text-\[10px\]:after{content:var(--tw-content);font-size:10px}.after\:whitespace-nowrap:after{content:var(--tw-content);white-space:nowrap}.after\:text-fg:after{content:var(--tw-content);color:var(--color-fg)}.after\:content-\[attr\(data-tip\)\]:after{--tw-content:attr(data-tip);content:var(--tw-content)}.first\:border-l-0:first-child{border-left-style:var(--tw-border-style);border-left-width:0}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.focus-within\:border-line-active:focus-within{border-color:var(--color-line-active)}.focus-within\:opacity-100:focus-within{opacity:1}@media (hover:hover){.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:border-kobe-red:hover{border-color:var(--color-kobe-red)}.hover\:border-kobe-red\/50:hover{border-color:#d4756380}@supports (color:color-mix(in lab, red, red)){.hover\:border-kobe-red\/50:hover{border-color:color-mix(in oklab, var(--color-kobe-red) 50%, transparent)}}.hover\:border-line:hover{border-color:var(--color-line)}.hover\:border-primary:hover{border-color:var(--color-primary)}.hover\:bg-bg:hover{background-color:var(--color-bg)}.hover\:bg-inset:hover{background-color:var(--color-inset)}.hover\:bg-inset\/50:hover{background-color:#2b2a2780}@supports (color:color-mix(in lab, red, red)){.hover\:bg-inset\/50:hover{background-color:color-mix(in oklab, var(--color-inset) 50%, transparent)}}.hover\:bg-kobe-red\/10:hover{background-color:#d475631a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-kobe-red\/10:hover{background-color:color-mix(in oklab, var(--color-kobe-red) 10%, transparent)}}.hover\:bg-kobe-red\/20:hover{background-color:#d4756333}@supports (color:color-mix(in lab, red, red)){.hover\:bg-kobe-red\/20:hover{background-color:color-mix(in oklab, var(--color-kobe-red) 20%, transparent)}}.hover\:bg-primary\/10:hover{background-color:#cc785c1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/10:hover{background-color:color-mix(in oklab, var(--color-primary) 10%, transparent)}}.hover\:bg-surface:hover{background-color:var(--color-surface)}.hover\:text-fg:hover{color:var(--color-fg)}.hover\:text-kobe-red:hover{color:var(--color-kobe-red)}.hover\:text-kobe-yellow:hover{color:var(--color-kobe-yellow)}.hover\:text-muted:hover{color:var(--color-muted)}.hover\:text-primary:hover{color:var(--color-primary)}.hover\:after\:block:hover:after{content:var(--tw-content);display:block}}.focus\:border-line-active:focus{border-color:var(--color-line-active)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:opacity-100:focus-visible{opacity:1}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-60:disabled{opacity:.6}@media (prefers-reduced-motion:reduce){.motion-reduce\:transition-none{transition-property:none}}@media (width>=40rem){.sm\:flex{display:flex}.sm\:inline{display:inline}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=48rem){.md\:inline{display:inline}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=64rem){.lg\:flex{display:flex}.lg\:hidden{display:none}}}*{box-sizing:border-box}html,body,#app{height:100%}body{background:var(--color-bg);color:var(--color-fg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;font-size:13px}html[data-kobe-desktop=true] [data-kobe-topbar]{-webkit-app-region:drag;-webkit-user-select:none;user-select:none}html[data-kobe-desktop=true] [data-kobe-topbar] button,html[data-kobe-desktop=true] [data-kobe-topbar] input,html[data-kobe-desktop=true] [data-kobe-topbar] select,html[data-kobe-desktop=true] [data-kobe-topbar] label,html[data-kobe-desktop=true] [data-kobe-topbar] a,html[data-kobe-desktop=true] [data-kobe-topbar] [role=button]{-webkit-app-region:no-drag}*{scrollbar-width:none}::-webkit-scrollbar{width:0;height:0}::-webkit-scrollbar-thumb{background:0 0}::-webkit-scrollbar-track{background:0 0}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}
1
+ @font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/jetbrains-mono-latin-600-normal-C8RAYTDA.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-600-normal-BfsvjouI.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/jetbrains-mono-latin-700-normal-BYuf6tUa.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-700-normal-D3wTyLJW.woff)format("woff")}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "SF Mono", "Fira Code", ui-monospace, Menlo, Monaco, "Cascadia Code", monospace;--color-black:#000;--spacing:.25rem;--container-md:28rem;--container-2xl:42rem;--container-4xl:56rem;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--leading-relaxed:1.625;--radius-sm:.25rem;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bg:#141413;--color-surface:#1a1917;--color-inset:#2b2a27;--color-menu:#33312e;--color-line:#3a3835;--color-line-subtle:#2b2a27;--color-line-active:#5c5853;--color-fg:#eae7df;--color-muted:#a9a39a;--color-subtle:#6b665f;--color-primary:#cc785c;--color-kobe-orange:#d97757;--color-kobe-green:#9aca86;--color-kobe-blue:#61aaf2;--color-kobe-red:#d47563;--color-kobe-yellow:#e8c96b;--color-kobe-violet:#9b87f5}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:0}.inset-y-2{inset-block:calc(var(--spacing) * 2)}.top-2{top:calc(var(--spacing) * 2)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.right-6{right:calc(var(--spacing) * 6)}.bottom-2{bottom:calc(var(--spacing) * 2)}.bottom-3{bottom:calc(var(--spacing) * 3)}.bottom-6{bottom:calc(var(--spacing) * 6)}.bottom-10{bottom:calc(var(--spacing) * 10)}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.m-0{margin:0}.mx-3{margin-inline:calc(var(--spacing) * 3)}.mx-auto{margin-inline:auto}.my-1{margin-block:var(--spacing)}.my-2{margin-block:calc(var(--spacing) * 2)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-auto{margin-top:auto}.mb-1{margin-bottom:var(--spacing)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.ml-5{margin-left:calc(var(--spacing) * 5)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-3{height:calc(var(--spacing) * 3)}.h-5{height:calc(var(--spacing) * 5)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[50vh\]{max-height:50vh}.max-h-\[80vh\]{max-height:80vh}.min-h-0{min-height:0}.min-h-36{min-height:calc(var(--spacing) * 36)}.min-h-56{min-height:calc(var(--spacing) * 56)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-3{width:calc(var(--spacing) * 3)}.w-5{width:calc(var(--spacing) * 5)}.w-9{width:calc(var(--spacing) * 9)}.w-12{width:calc(var(--spacing) * 12)}.w-44{width:calc(var(--spacing) * 44)}.w-52{width:calc(var(--spacing) * 52)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-96{width:calc(var(--spacing) * 96)}.w-\[28rem\]{width:28rem}.w-\[30rem\]{width:30rem}.w-\[32rem\]{width:32rem}.w-\[34rem\]{width:34rem}.w-\[640px\]{width:640px}.w-\[920px\]{width:920px}.w-\[calc\(50\%-0\.5rem\)\]{width:calc(50% - .5rem)}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-40{max-width:calc(var(--spacing) * 40)}.max-w-44{max-width:calc(var(--spacing) * 44)}.max-w-48{max-width:calc(var(--spacing) * 48)}.max-w-56{max-width:calc(var(--spacing) * 56)}.max-w-\[24rem\]{max-width:24rem}.max-w-\[85vw\]{max-width:85vw}.max-w-\[92vw\]{max-width:92vw}.max-w-\[96vw\]{max-width:96vw}.max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:0}.min-w-\[1\.4rem\]{min-width:1.4rem}.min-w-max{min-width:max-content}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.translate-x-0{--tw-translate-x:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[180px_minmax\(0\,1fr\)\]{grid-template-columns:180px minmax(0,1fr)}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-sm{border-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-x-0{border-inline-style:var(--tw-border-style);border-inline-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-black\/20{border-color:#0003}@supports (color:color-mix(in lab, red, red)){.border-black\/20{border-color:color-mix(in oklab, var(--color-black) 20%, transparent)}}.border-kobe-green\/50{border-color:#9aca8680}@supports (color:color-mix(in lab, red, red)){.border-kobe-green\/50{border-color:color-mix(in oklab, var(--color-kobe-green) 50%, transparent)}}.border-kobe-red\/40{border-color:#d4756366}@supports (color:color-mix(in lab, red, red)){.border-kobe-red\/40{border-color:color-mix(in oklab, var(--color-kobe-red) 40%, transparent)}}.border-kobe-red\/50{border-color:#d4756380}@supports (color:color-mix(in lab, red, red)){.border-kobe-red\/50{border-color:color-mix(in oklab, var(--color-kobe-red) 50%, transparent)}}.border-kobe-yellow\/40{border-color:#e8c96b66}@supports (color:color-mix(in lab, red, red)){.border-kobe-yellow\/40{border-color:color-mix(in oklab, var(--color-kobe-yellow) 40%, transparent)}}.border-line{border-color:var(--color-line)}.border-line-active{border-color:var(--color-line-active)}.border-line-subtle{border-color:var(--color-line-subtle)}.border-primary{border-color:var(--color-primary)}.border-primary\/60{border-color:#cc785c99}@supports (color:color-mix(in lab, red, red)){.border-primary\/60{border-color:color-mix(in oklab, var(--color-primary) 60%, transparent)}}.border-transparent{border-color:#0000}.border-r-line{border-right-color:var(--color-line)}.border-b-kobe-blue{border-bottom-color:var(--color-kobe-blue)}.border-b-primary{border-bottom-color:var(--color-primary)}.border-b-transparent{border-bottom-color:#0000}.bg-\[\#28c840\]{background-color:#28c840}.bg-\[\#febc2e\]{background-color:#febc2e}.bg-\[\#ff5f57\]{background-color:#ff5f57}.bg-bg{background-color:var(--color-bg)}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab, red, red)){.bg-black\/40{background-color:color-mix(in oklab, var(--color-black) 40%, transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab, red, red)){.bg-black\/60{background-color:color-mix(in oklab, var(--color-black) 60%, transparent)}}.bg-inset{background-color:var(--color-inset)}.bg-inset\/40{background-color:#2b2a2766}@supports (color:color-mix(in lab, red, red)){.bg-inset\/40{background-color:color-mix(in oklab, var(--color-inset) 40%, transparent)}}.bg-kobe-blue{background-color:var(--color-kobe-blue)}.bg-kobe-green{background-color:var(--color-kobe-green)}.bg-kobe-green\/60{background-color:#9aca8699}@supports (color:color-mix(in lab, red, red)){.bg-kobe-green\/60{background-color:color-mix(in oklab, var(--color-kobe-green) 60%, transparent)}}.bg-kobe-orange{background-color:var(--color-kobe-orange)}.bg-kobe-red{background-color:var(--color-kobe-red)}.bg-kobe-red\/10{background-color:#d475631a}@supports (color:color-mix(in lab, red, red)){.bg-kobe-red\/10{background-color:color-mix(in oklab, var(--color-kobe-red) 10%, transparent)}}.bg-kobe-yellow{background-color:var(--color-kobe-yellow)}.bg-kobe-yellow\/10{background-color:#e8c96b1a}@supports (color:color-mix(in lab, red, red)){.bg-kobe-yellow\/10{background-color:color-mix(in oklab, var(--color-kobe-yellow) 10%, transparent)}}.bg-line{background-color:var(--color-line)}.bg-primary{background-color:var(--color-primary)}.bg-primary\/10{background-color:#cc785c1a}@supports (color:color-mix(in lab, red, red)){.bg-primary\/10{background-color:color-mix(in oklab, var(--color-primary) 10%, transparent)}}.bg-subtle{background-color:var(--color-subtle)}.bg-surface{background-color:var(--color-surface)}.bg-surface\/50{background-color:#1a191780}@supports (color:color-mix(in lab, red, red)){.bg-surface\/50{background-color:color-mix(in oklab, var(--color-surface) 50%, transparent)}}.bg-surface\/60{background-color:#1a191799}@supports (color:color-mix(in lab, red, red)){.bg-surface\/60{background-color:color-mix(in oklab, var(--color-surface) 60%, transparent)}}.bg-transparent{background-color:#0000}.p-0{padding:0}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.px-0{padding-inline:0}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-\[12vh\]{padding-top:12vh}.pr-0\.5{padding-right:calc(var(--spacing) * .5)}.pb-0{padding-bottom:0}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-3\.5{padding-left:calc(var(--spacing) * 3.5)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[16px\]{font-size:16px}.text-\[18px\]{font-size:18px}.leading-\[1\.15rem\]{--tw-leading:1.15rem;line-height:1.15rem}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.12em\]{--tw-tracking:.12em;letter-spacing:.12em}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-words{overflow-wrap:break-word}.whitespace-pre-wrap{white-space:pre-wrap}.tab-1{tab-size:1}.tab-2{tab-size:2}.tab-3{tab-size:3}.tab-9{tab-size:9}.text-bg{color:var(--color-bg)}.text-fg{color:var(--color-fg)}.text-fg\/90{color:#eae7dfe6}@supports (color:color-mix(in lab, red, red)){.text-fg\/90{color:color-mix(in oklab, var(--color-fg) 90%, transparent)}}.text-kobe-blue{color:var(--color-kobe-blue)}.text-kobe-green{color:var(--color-kobe-green)}.text-kobe-orange{color:var(--color-kobe-orange)}.text-kobe-red{color:var(--color-kobe-red)}.text-kobe-red\/90{color:#d47563e6}@supports (color:color-mix(in lab, red, red)){.text-kobe-red\/90{color:color-mix(in oklab, var(--color-kobe-red) 90%, transparent)}}.text-kobe-violet{color:var(--color-kobe-violet)}.text-kobe-yellow{color:var(--color-kobe-yellow)}.text-kobe-yellow\/70{color:#e8c96bb3}@supports (color:color-mix(in lab, red, red)){.text-kobe-yellow\/70{color:color-mix(in oklab, var(--color-kobe-yellow) 70%, transparent)}}.text-muted{color:var(--color-muted)}.text-primary{color:var(--color-primary)}.text-subtle{color:var(--color-subtle)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.opacity-0{opacity:0}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;user-select:none}.\[hero\:capture\]{hero:capture}.\[hero\:issues\]{hero:issues}.\[hero\:kanban\]{hero:kanban}.\[hero\:plugins\]{hero:plugins}.\[hero\:routines\]{hero:routines}.\[hero\:serve\]{hero:serve}.\[hero\:stills\]{hero:stills}.\[visual\:serve\]{visual:serve}@media (hover:hover){.group-hover\:border-primary:is(:where(.group):hover *){border-color:var(--color-primary)}.group-hover\:text-primary:is(:where(.group):hover *){color:var(--color-primary)}.group-hover\:opacity-100:is(:where(.group):hover *),.group-hover\/card\:opacity-100:is(:where(.group\/card):hover *),.group-hover\/wrap\:opacity-100:is(:where(.group\/wrap):hover *){opacity:1}}.placeholder\:text-subtle::placeholder{color:var(--color-subtle)}.after\:pointer-events-none:after{content:var(--tw-content);pointer-events:none}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:top-2:after{content:var(--tw-content);top:calc(var(--spacing) * 2)}.after\:right-0:after{content:var(--tw-content);right:0}.after\:bottom-full:after{content:var(--tw-content);bottom:100%}.after\:left-full:after{content:var(--tw-content);left:100%}.after\:z-10:after{content:var(--tw-content);z-index:10}.after\:mb-1:after{content:var(--tw-content);margin-bottom:var(--spacing)}.after\:ml-1:after{content:var(--tw-content);margin-left:var(--spacing)}.after\:hidden:after{content:var(--tw-content);display:none}.after\:border:after{content:var(--tw-content);border-style:var(--tw-border-style);border-width:1px}.after\:border-line:after{content:var(--tw-content);border-color:var(--color-line)}.after\:bg-menu:after{content:var(--tw-content);background-color:var(--color-menu)}.after\:px-1\.5:after{content:var(--tw-content);padding-inline:calc(var(--spacing) * 1.5)}.after\:py-0\.5:after{content:var(--tw-content);padding-block:calc(var(--spacing) * .5)}.after\:text-\[10px\]:after{content:var(--tw-content);font-size:10px}.after\:whitespace-nowrap:after{content:var(--tw-content);white-space:nowrap}.after\:text-fg:after{content:var(--tw-content);color:var(--color-fg)}.after\:content-\[attr\(data-tip\)\]:after{--tw-content:attr(data-tip);content:var(--tw-content)}.first\:border-l-0:first-child{border-left-style:var(--tw-border-style);border-left-width:0}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.focus-within\:border-line-active:focus-within{border-color:var(--color-line-active)}.focus-within\:opacity-100:focus-within{opacity:1}@media (hover:hover){.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:border-kobe-red:hover{border-color:var(--color-kobe-red)}.hover\:border-kobe-red\/50:hover{border-color:#d4756380}@supports (color:color-mix(in lab, red, red)){.hover\:border-kobe-red\/50:hover{border-color:color-mix(in oklab, var(--color-kobe-red) 50%, transparent)}}.hover\:border-line:hover{border-color:var(--color-line)}.hover\:border-primary:hover{border-color:var(--color-primary)}.hover\:bg-bg:hover{background-color:var(--color-bg)}.hover\:bg-inset:hover{background-color:var(--color-inset)}.hover\:bg-inset\/50:hover{background-color:#2b2a2780}@supports (color:color-mix(in lab, red, red)){.hover\:bg-inset\/50:hover{background-color:color-mix(in oklab, var(--color-inset) 50%, transparent)}}.hover\:bg-kobe-red\/10:hover{background-color:#d475631a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-kobe-red\/10:hover{background-color:color-mix(in oklab, var(--color-kobe-red) 10%, transparent)}}.hover\:bg-kobe-red\/20:hover{background-color:#d4756333}@supports (color:color-mix(in lab, red, red)){.hover\:bg-kobe-red\/20:hover{background-color:color-mix(in oklab, var(--color-kobe-red) 20%, transparent)}}.hover\:bg-primary\/10:hover{background-color:#cc785c1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/10:hover{background-color:color-mix(in oklab, var(--color-primary) 10%, transparent)}}.hover\:bg-surface:hover{background-color:var(--color-surface)}.hover\:text-fg:hover{color:var(--color-fg)}.hover\:text-kobe-red:hover{color:var(--color-kobe-red)}.hover\:text-kobe-yellow:hover{color:var(--color-kobe-yellow)}.hover\:text-muted:hover{color:var(--color-muted)}.hover\:text-primary:hover{color:var(--color-primary)}.hover\:after\:block:hover:after{content:var(--tw-content);display:block}}.focus\:border-line-active:focus{border-color:var(--color-line-active)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:opacity-100:focus-visible{opacity:1}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-60:disabled{opacity:.6}@media (prefers-reduced-motion:reduce){.motion-reduce\:transition-none{transition-property:none}}@media (width>=40rem){.sm\:flex{display:flex}.sm\:inline{display:inline}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=48rem){.md\:inline{display:inline}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=64rem){.lg\:flex{display:flex}.lg\:hidden{display:none}}}*{box-sizing:border-box}html,body,#app{height:100%}body{background:var(--color-bg);color:var(--color-fg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;font-size:13px}html[data-kobe-desktop=true] [data-kobe-topbar]{-webkit-app-region:drag;-webkit-user-select:none;user-select:none}html[data-kobe-desktop=true] [data-kobe-topbar] button,html[data-kobe-desktop=true] [data-kobe-topbar] input,html[data-kobe-desktop=true] [data-kobe-topbar] select,html[data-kobe-desktop=true] [data-kobe-topbar] label,html[data-kobe-desktop=true] [data-kobe-topbar] a,html[data-kobe-desktop=true] [data-kobe-topbar] [role=button]{-webkit-app-region:no-drag}*{scrollbar-width:none}::-webkit-scrollbar{width:0;height:0}::-webkit-scrollbar-thumb{background:0 0}::-webkit-scrollbar-track{background:0 0}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}