@lovelybunch/api 1.0.75 → 1.0.76-alpha.1

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 (110) hide show
  1. package/dist/lib/storage/file-storage.d.ts +1 -0
  2. package/dist/lib/storage/file-storage.js +9 -1
  3. package/dist/routes/api/v1/mail/route.d.ts +3 -3
  4. package/dist/routes/api/v1/slack/route.d.ts +6 -6
  5. package/dist/routes/api/v1/tasks/[id]/route.d.ts +2 -2
  6. package/dist/routes/api/v1/tasks/[id]/steps/[stepId]/route.d.ts +60 -0
  7. package/dist/routes/api/v1/tasks/[id]/steps/[stepId]/route.js +81 -0
  8. package/dist/routes/api/v1/tasks/index.js +2 -0
  9. package/dist/routes/api/v1/tasks/route.d.ts +2 -2
  10. package/package.json +4 -4
  11. package/static/assets/{ActivityPage-k4I7Q53O.js → ActivityPage-DC2t-Kyv.js} +1 -1
  12. package/static/assets/{ApiKeysSettingsPage-B1YvVdmg.js → ApiKeysSettingsPage-DbXgxh7i.js} +1 -1
  13. package/static/assets/{ArchitectureEditPage-CpowsIx2.js → ArchitectureEditPage-B5dNFxvL.js} +1 -1
  14. package/static/assets/{ArchitecturePage-DYxC_aMR.js → ArchitecturePage-D796d-Je.js} +1 -1
  15. package/static/assets/{AuthSettingsPage-DtSo78Y_.js → AuthSettingsPage-nIgM05Yw.js} +1 -1
  16. package/static/assets/{CallbackPage-bROCGapx.js → CallbackPage-NNbLun2S.js} +1 -1
  17. package/static/assets/{CodePage-CPCj64rX.js → CodePage-xbYipiBR.js} +1 -1
  18. package/static/assets/{CollapsibleSection-M5cXbl92.js → CollapsibleSection-DbKW4cyU.js} +1 -1
  19. package/static/assets/{DashboardPage-B9BZZfw6.js → DashboardPage-Aw1xWH4M.js} +1 -1
  20. package/static/assets/{GitPage-BiDtdSK1.js → GitPage-Hi0mdDOi.js} +1 -1
  21. package/static/assets/{GitSettingsPage-THm6wDjs.js → GitSettingsPage-2vuCM-U-.js} +1 -1
  22. package/static/assets/{IdentityPage-BC16skg6.js → IdentityPage-2BzLc2EI.js} +1 -1
  23. package/static/assets/ImplementationStepsEditor-BlmI5YuN.js +6 -0
  24. package/static/assets/{IntegrationsSettingsPage-CC_VKIQa.js → IntegrationsSettingsPage-Ds16sLG2.js} +1 -1
  25. package/static/assets/{JobDetailPage-z1QQYvmU.js → JobDetailPage-CLEY1Z5e.js} +1 -1
  26. package/static/assets/{KnowledgeDetailPage-DzHXBS7Q.js → KnowledgeDetailPage-D94ukozt.js} +1 -1
  27. package/static/assets/{KnowledgeEditPage-BwGnUH_m.js → KnowledgeEditPage-DpjdauND.js} +1 -1
  28. package/static/assets/{KnowledgePage-CGIVMS02.js → KnowledgePage-D-ahboFK.js} +1 -1
  29. package/static/assets/{LoginPage-VQ3lcfLV.js → LoginPage-DQ2rJliF.js} +1 -1
  30. package/static/assets/{MailInboxPage-DiZKqwdU.js → MailInboxPage-Bfh0_pBU.js} +1 -1
  31. package/static/assets/{MailProcessingModal-DIeSQBoR.js → MailProcessingModal-NF9kjdgr.js} +1 -1
  32. package/static/assets/{MailReadPage-C8AACmZQ.js → MailReadPage-C0QhDa1x.js} +1 -1
  33. package/static/assets/{MailSentPage-C_5yFly_.js → MailSentPage-Ctgcp1RB.js} +1 -1
  34. package/static/assets/{McpSettingsPage-i9YHcu1s.js → McpSettingsPage-CFgpw5_r.js} +1 -1
  35. package/static/assets/{NewKnowledgePage-BnVY7WUD.js → NewKnowledgePage-EqWKQ4lU.js} +1 -1
  36. package/static/assets/{NewSkillPage-DwniHD6D.js → NewSkillPage-CvBSXZFE.js} +1 -1
  37. package/static/assets/NewTaskPage-DRL-pyjV.js +91 -0
  38. package/static/assets/{NotFoundPage-BbSZX_4L.js → NotFoundPage-DW0gfvNA.js} +1 -1
  39. package/static/assets/{NotificationsSettingsPage-C8kjcift.js → NotificationsSettingsPage-BzVS1D5M.js} +1 -1
  40. package/static/assets/{ProjectEditPage-DUUlIEqI.js → ProjectEditPage-BlQk50Xs.js} +1 -1
  41. package/static/assets/{ProjectPage-Unz9PQpA.js → ProjectPage-78a-iVFG.js} +1 -1
  42. package/static/assets/{PromptsSettingsPage-DVpIuRKI.js → PromptsSettingsPage-DWEKgvMD.js} +1 -1
  43. package/static/assets/{ResourceDetailPage-DqHZ2KYD.js → ResourceDetailPage-CLcuo4yw.js} +1 -1
  44. package/static/assets/{ResourcesPage-BP5tuAi-.js → ResourcesPage-C0TGRawd.js} +1 -1
  45. package/static/assets/{RoleEditPage-BgKu8S0-.js → RoleEditPage-m6lOchyA.js} +1 -1
  46. package/static/assets/{RolePage-Fed52Ov5.js → RolePage-haUf186q.js} +1 -1
  47. package/static/assets/{RulesSettingsPage-BQ2O0u66.js → RulesSettingsPage-Cc8rvAvm.js} +1 -1
  48. package/static/assets/{SchedulePage-jkxjuzBx.js → SchedulePage-DUSxe93C.js} +1 -1
  49. package/static/assets/{SkillDetailPage-k3Q2-NFd.js → SkillDetailPage-BqhoNNkM.js} +1 -1
  50. package/static/assets/{SkillEditPage-urF4snjo.js → SkillEditPage-cpSdv9D4.js} +1 -1
  51. package/static/assets/{SkillsPage-DlWDhEjR.js → SkillsPage-Cxkm5ymf.js} +1 -1
  52. package/static/assets/{SkillsSettingsPage-BViFgckG.js → SkillsSettingsPage-DrmRher8.js} +1 -1
  53. package/static/assets/{SourceInput-CAFKTHw-.js → SourceInput-C0WkiXS6.js} +1 -1
  54. package/static/assets/{TagInput-C6lI-ePr.js → TagInput-raThOrbG.js} +1 -1
  55. package/static/assets/{TaskDetailPage-DpbRHnW_.js → TaskDetailPage-BMzce3uJ.js} +1 -1
  56. package/static/assets/{TaskEditPage-DssRbW0h.js → TaskEditPage-Dpsi2Rcp.js} +1 -1
  57. package/static/assets/{TasksPage-CD_eo0Bj.js → TasksPage-CxKJQJ1_.js} +1 -1
  58. package/static/assets/{TerminalPage-BG_wlccr.js → TerminalPage-BWdNoEM5.js} +1 -1
  59. package/static/assets/{TerminalSessionPage-CsK-LznK.js → TerminalSessionPage-B6_ssmNM.js} +1 -1
  60. package/static/assets/{UserPreferencesPage-CWUq3efu.js → UserPreferencesPage-CY_0CoMe.js} +1 -1
  61. package/static/assets/{UserSettingsPage-CduI_MGS.js → UserSettingsPage-CqooRxDi.js} +1 -1
  62. package/static/assets/{UtilitiesPage-BAxokhLh.js → UtilitiesPage-e4IaR2YV.js} +1 -1
  63. package/static/assets/{alert-BXsc6_qu.js → alert-BGFBZOrZ.js} +1 -1
  64. package/static/assets/{arrow-down-DmW_3gE8.js → arrow-down-DXhs3vvo.js} +1 -1
  65. package/static/assets/{arrow-left-1S-835kP.js → arrow-left-PEX5RePT.js} +1 -1
  66. package/static/assets/{arrow-up-BYism_o1.js → arrow-up-D7z0QZsQ.js} +1 -1
  67. package/static/assets/{arrow-up-down-Dw3J0a4i.js → arrow-up-down-OTrzDHIL.js} +1 -1
  68. package/static/assets/{badge-BUEY53dV.js → badge-rki-Xf0E.js} +1 -1
  69. package/static/assets/{browser-modal-DCNdI4NT.js → browser-modal-BKnqJnf5.js} +1 -1
  70. package/static/assets/{card-BcPlIAH5.js → card-_Grh-Otl.js} +1 -1
  71. package/static/assets/{chevron-left-FMmNe7yP.js → chevron-left-LQtIDk73.js} +1 -1
  72. package/static/assets/{chevron-up-CqM3won3.js → chevron-up-BM1GKhAV.js} +1 -1
  73. package/static/assets/{chevrons-up-DTvCkIHc.js → chevrons-up-Ccej0FyZ.js} +1 -1
  74. package/static/assets/{circle-alert-dseM-Ib7.js → circle-alert-C5k9mZfC.js} +1 -1
  75. package/static/assets/{circle-check-big-jKg34xC-.js → circle-check-big-BaFefwt0.js} +1 -1
  76. package/static/assets/{circle-check-eyo6pBP1.js → circle-check-fwIZxHsK.js} +1 -1
  77. package/static/assets/{circle-play-BrY_lNiH.js → circle-play-C1R46Kry.js} +1 -1
  78. package/static/assets/{circle-x-uqmzEce1.js → circle-x-CKuM1691.js} +1 -1
  79. package/static/assets/{clipboard-tzPFoieb.js → clipboard-DWJnnRi8.js} +1 -1
  80. package/static/assets/{clock-Bjc06QBM.js → clock-Diqm3Csm.js} +1 -1
  81. package/static/assets/{code-DrYqPukx.js → code-Ao0cA5nW.js} +1 -1
  82. package/static/assets/{download-Bg__QCLT.js → download-5iQDQeY0.js} +1 -1
  83. package/static/assets/{external-link-CNDy2UUo.js → external-link-B6dkiWgP.js} +1 -1
  84. package/static/assets/{eye-DLFBnC8t.js → eye-DQUzAWBY.js} +1 -1
  85. package/static/assets/{folder-git-2-DUqd0WRi.js → folder-git-2-CQUj8P5W.js} +1 -1
  86. package/static/assets/{index-DFcWlnzl.js → index-CIFIEidO.js} +3 -3
  87. package/static/assets/{info-D6jxZC5X.js → info-BvzdeJ30.js} +1 -1
  88. package/static/assets/kiro-CGoI3Dqh.js +17 -0
  89. package/static/assets/{label-DBuh-ke5.js → label-B1lgxULu.js} +1 -1
  90. package/static/assets/{markdown-editor-B4YNQFT2.js → markdown-editor-C-DC0mFI.js} +1 -1
  91. package/static/assets/{message-square-B5RWz_ff.js → message-square-LKqx0LRr.js} +1 -1
  92. package/static/assets/{paperclip-4A_3MaPx.js → paperclip-Cvcr3t6l.js} +1 -1
  93. package/static/assets/{pause-BzhKXHtR.js → pause-TaMz44vG.js} +1 -1
  94. package/static/assets/{play-CHIf-Rcz.js → play-C4YxfQOO.js} +1 -1
  95. package/static/assets/{radio-group-C1ct-VsJ.js → radio-group-D7Rt-k1F.js} +1 -1
  96. package/static/assets/{refresh-cw-B3OwrDUf.js → refresh-cw-C9ZWZi2c.js} +1 -1
  97. package/static/assets/{search-Cq1ksEdp.js → search-C1RuN2pO.js} +1 -1
  98. package/static/assets/{select-44mcS2_G.js → select-Dp3J_OE9.js} +1 -1
  99. package/static/assets/status-utils-PwF3DXLL.js +1 -0
  100. package/static/assets/{switch-CIwjYvCt.js → switch-LSkE6hx8.js} +1 -1
  101. package/static/assets/{tabs-DTV6Su-h.js → tabs-etlvrbtm.js} +1 -1
  102. package/static/assets/{tag-p6yeowCW.js → tag-B2iP7vv_.js} +1 -1
  103. package/static/assets/{terminal-preview-DN38x9Jm.js → terminal-preview-PyMHLXJ3.js} +1 -1
  104. package/static/assets/{use-terminal-BXJqOeJe.js → use-terminal-Blvh8GLp.js} +1 -1
  105. package/static/assets/{video-BH5ChaoS.js → video-A2wzYKal.js} +1 -1
  106. package/static/index.html +1 -1
  107. package/static/assets/ImplementationStepsEditor-HliLQav5.js +0 -6
  108. package/static/assets/NewTaskPage-F5UX2WMc.js +0 -90
  109. package/static/assets/kiro-CX1mOsRO.js +0 -17
  110. package/static/assets/status-utils-CDkPeVfP.js +0 -1
@@ -1,4 +1,4 @@
1
- import{c as a}from"./index-DFcWlnzl.js";/**
1
+ import{c as a}from"./index-CIFIEidO.js";/**
2
2
  * @license lucide-react v0.542.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{c}from"./index-DFcWlnzl.js";/**
1
+ import{c}from"./index-CIFIEidO.js";/**
2
2
  * @license lucide-react v0.542.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{c as e}from"./index-DFcWlnzl.js";/**
1
+ import{c as e}from"./index-CIFIEidO.js";/**
2
2
  * @license lucide-react v0.542.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{c as a}from"./index-DFcWlnzl.js";/**
1
+ import{c as a}from"./index-CIFIEidO.js";/**
2
2
  * @license lucide-react v0.542.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1 +1 @@
1
- import{r as n,bk as E,am as K,ag as T,j as a,ah as N,bl as U,ak as h,al as w,bm as V,aj as g,bn as z,ap as H,ao as $,e as k,bo as W}from"./index-DFcWlnzl.js";var C="Radio",[X,I]=N(C),[Y,J]=X(C),j=n.forwardRef((r,t)=>{const{__scopeRadio:e,name:d,checked:o=!1,required:s,disabled:i,value:p="on",onCheck:f,form:R,...v}=r,[l,m]=n.useState(null),c=w(t,y=>m(y)),u=n.useRef(!1),b=l?R||!!l.closest("form"):!0;return a.jsxs(Y,{scope:e,checked:o,disabled:i,children:[a.jsx(h.button,{type:"button",role:"radio","aria-checked":o,"data-state":S(o),"data-disabled":i?"":void 0,disabled:i,value:p,...v,ref:c,onClick:g(r.onClick,y=>{o||f?.(),b&&(u.current=y.isPropagationStopped(),u.current||y.stopPropagation())})}),b&&a.jsx(P,{control:l,bubbles:!u.current,name:d,value:p,checked:o,required:s,disabled:i,form:R,style:{transform:"translateX(-100%)"}})]})});j.displayName=C;var _="RadioIndicator",G=n.forwardRef((r,t)=>{const{__scopeRadio:e,forceMount:d,...o}=r,s=J(_,e);return a.jsx(z,{present:d||s.checked,children:a.jsx(h.span,{"data-state":S(s.checked),"data-disabled":s.disabled?"":void 0,...o,ref:t})})});G.displayName=_;var Q="RadioBubbleInput",P=n.forwardRef(({__scopeRadio:r,control:t,checked:e,bubbles:d=!0,...o},s)=>{const i=n.useRef(null),p=w(i,s),f=H(e),R=$(t);return n.useEffect(()=>{const v=i.current;if(!v)return;const l=window.HTMLInputElement.prototype,c=Object.getOwnPropertyDescriptor(l,"checked").set;if(f!==e&&c){const u=new Event("click",{bubbles:d});c.call(v,e),v.dispatchEvent(u)}},[f,e,d]),a.jsx(h.input,{type:"radio","aria-hidden":!0,defaultChecked:e,...o,tabIndex:-1,ref:p,style:{...o.style,...R,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});P.displayName=Q;function S(r){return r?"checked":"unchecked"}var Z=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],x="RadioGroup",[ee,de]=N(x,[E,I]),A=E(),D=I(),[oe,re]=ee(x),M=n.forwardRef((r,t)=>{const{__scopeRadioGroup:e,name:d,defaultValue:o,value:s,required:i=!1,disabled:p=!1,orientation:f,dir:R,loop:v=!0,onValueChange:l,...m}=r,c=A(e),u=K(R),[b,y]=T({prop:s,defaultProp:o??null,onChange:l,caller:x});return a.jsx(oe,{scope:e,name:d,required:i,disabled:p,value:b,onValueChange:y,children:a.jsx(U,{asChild:!0,...c,orientation:f,dir:u,loop:v,children:a.jsx(h.div,{role:"radiogroup","aria-required":i,"aria-orientation":f,"data-disabled":p?"":void 0,dir:u,...m,ref:t})})})});M.displayName=x;var O="RadioGroupItem",F=n.forwardRef((r,t)=>{const{__scopeRadioGroup:e,disabled:d,...o}=r,s=re(O,e),i=s.disabled||d,p=A(e),f=D(e),R=n.useRef(null),v=w(t,R),l=s.value===o.value,m=n.useRef(!1);return n.useEffect(()=>{const c=b=>{Z.includes(b.key)&&(m.current=!0)},u=()=>m.current=!1;return document.addEventListener("keydown",c),document.addEventListener("keyup",u),()=>{document.removeEventListener("keydown",c),document.removeEventListener("keyup",u)}},[]),a.jsx(V,{asChild:!0,...p,focusable:!i,active:l,children:a.jsx(j,{disabled:i,required:s.required,checked:l,...f,...o,name:s.name,ref:v,onCheck:()=>s.onValueChange(o.value),onKeyDown:g(c=>{c.key==="Enter"&&c.preventDefault()}),onFocus:g(o.onFocus,()=>{m.current&&R.current?.click()})})})});F.displayName=O;var ae="RadioGroupIndicator",L=n.forwardRef((r,t)=>{const{__scopeRadioGroup:e,...d}=r,o=D(e);return a.jsx(G,{...o,...d,ref:t})});L.displayName=ae;var q=M,B=F,te=L;const se=n.forwardRef(({className:r,...t},e)=>a.jsx(q,{className:k("grid gap-2",r),...t,ref:e}));se.displayName=q.displayName;const ne=n.forwardRef(({className:r,...t},e)=>a.jsx(B,{ref:e,className:k("aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",r),...t,children:a.jsx(te,{className:"flex items-center justify-center",children:a.jsx(W,{className:"h-2.5 w-2.5 fill-current text-current"})})}));ne.displayName=B.displayName;export{se as R,ne as a};
1
+ import{r as n,bk as E,am as K,ag as T,j as a,ah as N,bl as U,ak as h,al as w,bm as V,aj as g,bn as z,ap as H,ao as $,e as k,bo as W}from"./index-CIFIEidO.js";var C="Radio",[X,I]=N(C),[Y,J]=X(C),j=n.forwardRef((r,t)=>{const{__scopeRadio:e,name:d,checked:o=!1,required:s,disabled:i,value:p="on",onCheck:f,form:R,...v}=r,[l,m]=n.useState(null),c=w(t,y=>m(y)),u=n.useRef(!1),b=l?R||!!l.closest("form"):!0;return a.jsxs(Y,{scope:e,checked:o,disabled:i,children:[a.jsx(h.button,{type:"button",role:"radio","aria-checked":o,"data-state":S(o),"data-disabled":i?"":void 0,disabled:i,value:p,...v,ref:c,onClick:g(r.onClick,y=>{o||f?.(),b&&(u.current=y.isPropagationStopped(),u.current||y.stopPropagation())})}),b&&a.jsx(P,{control:l,bubbles:!u.current,name:d,value:p,checked:o,required:s,disabled:i,form:R,style:{transform:"translateX(-100%)"}})]})});j.displayName=C;var _="RadioIndicator",G=n.forwardRef((r,t)=>{const{__scopeRadio:e,forceMount:d,...o}=r,s=J(_,e);return a.jsx(z,{present:d||s.checked,children:a.jsx(h.span,{"data-state":S(s.checked),"data-disabled":s.disabled?"":void 0,...o,ref:t})})});G.displayName=_;var Q="RadioBubbleInput",P=n.forwardRef(({__scopeRadio:r,control:t,checked:e,bubbles:d=!0,...o},s)=>{const i=n.useRef(null),p=w(i,s),f=H(e),R=$(t);return n.useEffect(()=>{const v=i.current;if(!v)return;const l=window.HTMLInputElement.prototype,c=Object.getOwnPropertyDescriptor(l,"checked").set;if(f!==e&&c){const u=new Event("click",{bubbles:d});c.call(v,e),v.dispatchEvent(u)}},[f,e,d]),a.jsx(h.input,{type:"radio","aria-hidden":!0,defaultChecked:e,...o,tabIndex:-1,ref:p,style:{...o.style,...R,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});P.displayName=Q;function S(r){return r?"checked":"unchecked"}var Z=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],x="RadioGroup",[ee,de]=N(x,[E,I]),A=E(),D=I(),[oe,re]=ee(x),M=n.forwardRef((r,t)=>{const{__scopeRadioGroup:e,name:d,defaultValue:o,value:s,required:i=!1,disabled:p=!1,orientation:f,dir:R,loop:v=!0,onValueChange:l,...m}=r,c=A(e),u=K(R),[b,y]=T({prop:s,defaultProp:o??null,onChange:l,caller:x});return a.jsx(oe,{scope:e,name:d,required:i,disabled:p,value:b,onValueChange:y,children:a.jsx(U,{asChild:!0,...c,orientation:f,dir:u,loop:v,children:a.jsx(h.div,{role:"radiogroup","aria-required":i,"aria-orientation":f,"data-disabled":p?"":void 0,dir:u,...m,ref:t})})})});M.displayName=x;var O="RadioGroupItem",F=n.forwardRef((r,t)=>{const{__scopeRadioGroup:e,disabled:d,...o}=r,s=re(O,e),i=s.disabled||d,p=A(e),f=D(e),R=n.useRef(null),v=w(t,R),l=s.value===o.value,m=n.useRef(!1);return n.useEffect(()=>{const c=b=>{Z.includes(b.key)&&(m.current=!0)},u=()=>m.current=!1;return document.addEventListener("keydown",c),document.addEventListener("keyup",u),()=>{document.removeEventListener("keydown",c),document.removeEventListener("keyup",u)}},[]),a.jsx(V,{asChild:!0,...p,focusable:!i,active:l,children:a.jsx(j,{disabled:i,required:s.required,checked:l,...f,...o,name:s.name,ref:v,onCheck:()=>s.onValueChange(o.value),onKeyDown:g(c=>{c.key==="Enter"&&c.preventDefault()}),onFocus:g(o.onFocus,()=>{m.current&&R.current?.click()})})})});F.displayName=O;var ae="RadioGroupIndicator",L=n.forwardRef((r,t)=>{const{__scopeRadioGroup:e,...d}=r,o=D(e);return a.jsx(G,{...o,...d,ref:t})});L.displayName=ae;var q=M,B=F,te=L;const se=n.forwardRef(({className:r,...t},e)=>a.jsx(q,{className:k("grid gap-2",r),...t,ref:e}));se.displayName=q.displayName;const ne=n.forwardRef(({className:r,...t},e)=>a.jsx(B,{ref:e,className:k("aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",r),...t,children:a.jsx(te,{className:"flex items-center justify-center",children:a.jsx(W,{className:"h-2.5 w-2.5 fill-current text-current"})})}));ne.displayName=B.displayName;export{se as R,ne as a};
@@ -1,4 +1,4 @@
1
- import{c as e}from"./index-DFcWlnzl.js";/**
1
+ import{c as e}from"./index-CIFIEidO.js";/**
2
2
  * @license lucide-react v0.542.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{c}from"./index-DFcWlnzl.js";/**
1
+ import{c}from"./index-CIFIEidO.js";/**
2
2
  * @license lucide-react v0.542.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1 +1 @@
1
- import{r as t,b3 as Pe,am as ft,ag as Te,j as r,b4 as mt,ah as ht,b5 as be,ai as gt,al as L,b6 as z,ak as j,ap as vt,b7 as xt,b8 as St,aj as N,b9 as wt,ba as Re,bb as yt,bc as Ct,bd as bt,be as It,bf as Tt,bg as Nt,bh as Pt,bi as Rt,an as Ne,bj as Et,e as G,n as Ee,ae as _t}from"./index-DFcWlnzl.js";import{C as jt}from"./chevron-up-CqM3won3.js";var Mt=[" ","Enter","ArrowUp","ArrowDown"],At=[" ","Enter"],Q="Select",[ie,de,Ot]=gt(Q),[oe,mo]=ht(Q,[Ot,Pe]),ue=Pe(),[Dt,Y]=oe(Q),[Lt,kt]=oe(Q),_e=o=>{const{__scopeSelect:n,children:e,open:l,defaultOpen:a,onOpenChange:u,value:s,defaultValue:c,onValueChange:i,dir:f,name:v,autoComplete:w,disabled:P,required:I,form:C}=o,d=ue(n),[h,x]=t.useState(null),[m,g]=t.useState(null),[F,M]=t.useState(!1),ne=ft(f),[R,O]=Te({prop:l,defaultProp:a??!1,onChange:u,caller:Q}),[W,X]=Te({prop:s,defaultProp:c,onChange:i,caller:Q}),k=t.useRef(null),B=h?C||!!h.closest("form"):!0,[K,V]=t.useState(new Set),H=Array.from(K).map(E=>E.props.value).join(";");return r.jsx(mt,{...d,children:r.jsxs(Dt,{required:I,scope:n,trigger:h,onTriggerChange:x,valueNode:m,onValueNodeChange:g,valueNodeHasChildren:F,onValueNodeHasChildrenChange:M,contentId:be(),value:W,onValueChange:X,open:R,onOpenChange:O,dir:ne,triggerPointerDownPosRef:k,disabled:P,children:[r.jsx(ie.Provider,{scope:n,children:r.jsx(Lt,{scope:o.__scopeSelect,onNativeOptionAdd:t.useCallback(E=>{V(D=>new Set(D).add(E))},[]),onNativeOptionRemove:t.useCallback(E=>{V(D=>{const U=new Set(D);return U.delete(E),U})},[]),children:e})}),B?r.jsxs(et,{"aria-hidden":!0,required:I,tabIndex:-1,name:v,autoComplete:w,value:W,onChange:E=>X(E.target.value),disabled:P,form:C,children:[W===void 0?r.jsx("option",{value:""}):null,Array.from(K)]},H):null]})})};_e.displayName=Q;var je="SelectTrigger",Me=t.forwardRef((o,n)=>{const{__scopeSelect:e,disabled:l=!1,...a}=o,u=ue(e),s=Y(je,e),c=s.disabled||l,i=L(n,s.onTriggerChange),f=de(e),v=t.useRef("touch"),[w,P,I]=ot(d=>{const h=f().filter(g=>!g.disabled),x=h.find(g=>g.value===s.value),m=nt(h,d,x);m!==void 0&&s.onValueChange(m.value)}),C=d=>{c||(s.onOpenChange(!0),I()),d&&(s.triggerPointerDownPosRef.current={x:Math.round(d.pageX),y:Math.round(d.pageY)})};return r.jsx(St,{asChild:!0,...u,children:r.jsx(j.button,{type:"button",role:"combobox","aria-controls":s.contentId,"aria-expanded":s.open,"aria-required":s.required,"aria-autocomplete":"none",dir:s.dir,"data-state":s.open?"open":"closed",disabled:c,"data-disabled":c?"":void 0,"data-placeholder":tt(s.value)?"":void 0,...a,ref:i,onClick:N(a.onClick,d=>{d.currentTarget.focus(),v.current!=="mouse"&&C(d)}),onPointerDown:N(a.onPointerDown,d=>{v.current=d.pointerType;const h=d.target;h.hasPointerCapture(d.pointerId)&&h.releasePointerCapture(d.pointerId),d.button===0&&d.ctrlKey===!1&&d.pointerType==="mouse"&&(C(d),d.preventDefault())}),onKeyDown:N(a.onKeyDown,d=>{const h=w.current!=="";!(d.ctrlKey||d.altKey||d.metaKey)&&d.key.length===1&&P(d.key),!(h&&d.key===" ")&&Mt.includes(d.key)&&(C(),d.preventDefault())})})})});Me.displayName=je;var Ae="SelectValue",Oe=t.forwardRef((o,n)=>{const{__scopeSelect:e,className:l,style:a,children:u,placeholder:s="",...c}=o,i=Y(Ae,e),{onValueNodeHasChildrenChange:f}=i,v=u!==void 0,w=L(n,i.onValueNodeChange);return z(()=>{f(v)},[f,v]),r.jsx(j.span,{...c,ref:w,style:{pointerEvents:"none"},children:tt(i.value)?r.jsx(r.Fragment,{children:s}):u})});Oe.displayName=Ae;var Bt="SelectIcon",De=t.forwardRef((o,n)=>{const{__scopeSelect:e,children:l,...a}=o;return r.jsx(j.span,{"aria-hidden":!0,...a,ref:n,children:l||"▼"})});De.displayName=Bt;var Vt="SelectPortal",Le=o=>r.jsx(wt,{asChild:!0,...o});Le.displayName=Vt;var ee="SelectContent",ke=t.forwardRef((o,n)=>{const e=Y(ee,o.__scopeSelect),[l,a]=t.useState();if(z(()=>{a(new DocumentFragment)},[]),!e.open){const u=l;return u?Re.createPortal(r.jsx(Be,{scope:o.__scopeSelect,children:r.jsx(ie.Slot,{scope:o.__scopeSelect,children:r.jsx("div",{children:o.children})})}),u):null}return r.jsx(Ve,{...o,ref:n})});ke.displayName=ee;var A=10,[Be,q]=oe(ee),Ht="SelectContentImpl",Ut=Tt("SelectContent.RemoveScroll"),Ve=t.forwardRef((o,n)=>{const{__scopeSelect:e,position:l="item-aligned",onCloseAutoFocus:a,onEscapeKeyDown:u,onPointerDownOutside:s,side:c,sideOffset:i,align:f,alignOffset:v,arrowPadding:w,collisionBoundary:P,collisionPadding:I,sticky:C,hideWhenDetached:d,avoidCollisions:h,...x}=o,m=Y(ee,e),[g,F]=t.useState(null),[M,ne]=t.useState(null),R=L(n,p=>F(p)),[O,W]=t.useState(null),[X,k]=t.useState(null),B=de(e),[K,V]=t.useState(!1),H=t.useRef(!1);t.useEffect(()=>{if(g)return Ct(g)},[g]),bt();const E=t.useCallback(p=>{const[b,..._]=B().map(T=>T.ref.current),[S]=_.slice(-1),y=document.activeElement;for(const T of p)if(T===y||(T?.scrollIntoView({block:"nearest"}),T===b&&M&&(M.scrollTop=0),T===S&&M&&(M.scrollTop=M.scrollHeight),T?.focus(),document.activeElement!==y))return},[B,M]),D=t.useCallback(()=>E([O,g]),[E,O,g]);t.useEffect(()=>{K&&D()},[K,D]);const{onOpenChange:U,triggerPointerDownPosRef:$}=m;t.useEffect(()=>{if(g){let p={x:0,y:0};const b=S=>{p={x:Math.abs(Math.round(S.pageX)-($.current?.x??0)),y:Math.abs(Math.round(S.pageY)-($.current?.y??0))}},_=S=>{p.x<=10&&p.y<=10?S.preventDefault():g.contains(S.target)||U(!1),document.removeEventListener("pointermove",b),$.current=null};return $.current!==null&&(document.addEventListener("pointermove",b),document.addEventListener("pointerup",_,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",b),document.removeEventListener("pointerup",_,{capture:!0})}}},[g,U,$]),t.useEffect(()=>{const p=()=>U(!1);return window.addEventListener("blur",p),window.addEventListener("resize",p),()=>{window.removeEventListener("blur",p),window.removeEventListener("resize",p)}},[U]);const[pe,ae]=ot(p=>{const b=B().filter(y=>!y.disabled),_=b.find(y=>y.ref.current===document.activeElement),S=nt(b,p,_);S&&setTimeout(()=>S.ref.current.focus())}),fe=t.useCallback((p,b,_)=>{const S=!H.current&&!_;(m.value!==void 0&&m.value===b||S)&&(W(p),S&&(H.current=!0))},[m.value]),me=t.useCallback(()=>g?.focus(),[g]),te=t.useCallback((p,b,_)=>{const S=!H.current&&!_;(m.value!==void 0&&m.value===b||S)&&k(p)},[m.value]),le=l==="popper"?xe:He,re=le===xe?{side:c,sideOffset:i,align:f,alignOffset:v,arrowPadding:w,collisionBoundary:P,collisionPadding:I,sticky:C,hideWhenDetached:d,avoidCollisions:h}:{};return r.jsx(Be,{scope:e,content:g,viewport:M,onViewportChange:ne,itemRefCallback:fe,selectedItem:O,onItemLeave:me,itemTextRefCallback:te,focusSelectedItem:D,selectedItemText:X,position:l,isPositioned:K,searchRef:pe,children:r.jsx(It,{as:Ut,allowPinchZoom:!0,children:r.jsx(Nt,{asChild:!0,trapped:m.open,onMountAutoFocus:p=>{p.preventDefault()},onUnmountAutoFocus:N(a,p=>{m.trigger?.focus({preventScroll:!0}),p.preventDefault()}),children:r.jsx(Pt,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:u,onPointerDownOutside:s,onFocusOutside:p=>p.preventDefault(),onDismiss:()=>m.onOpenChange(!1),children:r.jsx(le,{role:"listbox",id:m.contentId,"data-state":m.open?"open":"closed",dir:m.dir,onContextMenu:p=>p.preventDefault(),...x,...re,onPlaced:()=>V(!0),ref:R,style:{display:"flex",flexDirection:"column",outline:"none",...x.style},onKeyDown:N(x.onKeyDown,p=>{const b=p.ctrlKey||p.altKey||p.metaKey;if(p.key==="Tab"&&p.preventDefault(),!b&&p.key.length===1&&ae(p.key),["ArrowUp","ArrowDown","Home","End"].includes(p.key)){let S=B().filter(y=>!y.disabled).map(y=>y.ref.current);if(["ArrowUp","End"].includes(p.key)&&(S=S.slice().reverse()),["ArrowUp","ArrowDown"].includes(p.key)){const y=p.target,T=S.indexOf(y);S=S.slice(T+1)}setTimeout(()=>E(S)),p.preventDefault()}})})})})})})});Ve.displayName=Ht;var Ft="SelectItemAlignedPosition",He=t.forwardRef((o,n)=>{const{__scopeSelect:e,onPlaced:l,...a}=o,u=Y(ee,e),s=q(ee,e),[c,i]=t.useState(null),[f,v]=t.useState(null),w=L(n,R=>v(R)),P=de(e),I=t.useRef(!1),C=t.useRef(!0),{viewport:d,selectedItem:h,selectedItemText:x,focusSelectedItem:m}=s,g=t.useCallback(()=>{if(u.trigger&&u.valueNode&&c&&f&&d&&h&&x){const R=u.trigger.getBoundingClientRect(),O=f.getBoundingClientRect(),W=u.valueNode.getBoundingClientRect(),X=x.getBoundingClientRect();if(u.dir!=="rtl"){const y=X.left-O.left,T=W.left-y,Z=R.left-T,J=R.width+Z,he=Math.max(J,O.width),ge=window.innerWidth-A,ve=Ne(T,[A,Math.max(A,ge-he)]);c.style.minWidth=J+"px",c.style.left=ve+"px"}else{const y=O.right-X.right,T=window.innerWidth-W.right-y,Z=window.innerWidth-R.right-T,J=R.width+Z,he=Math.max(J,O.width),ge=window.innerWidth-A,ve=Ne(T,[A,Math.max(A,ge-he)]);c.style.minWidth=J+"px",c.style.right=ve+"px"}const k=P(),B=window.innerHeight-A*2,K=d.scrollHeight,V=window.getComputedStyle(f),H=parseInt(V.borderTopWidth,10),E=parseInt(V.paddingTop,10),D=parseInt(V.borderBottomWidth,10),U=parseInt(V.paddingBottom,10),$=H+E+K+U+D,pe=Math.min(h.offsetHeight*5,$),ae=window.getComputedStyle(d),fe=parseInt(ae.paddingTop,10),me=parseInt(ae.paddingBottom,10),te=R.top+R.height/2-A,le=B-te,re=h.offsetHeight/2,p=h.offsetTop+re,b=H+E+p,_=$-b;if(b<=te){const y=k.length>0&&h===k[k.length-1].ref.current;c.style.bottom="0px";const T=f.clientHeight-d.offsetTop-d.offsetHeight,Z=Math.max(le,re+(y?me:0)+T+D),J=b+Z;c.style.height=J+"px"}else{const y=k.length>0&&h===k[0].ref.current;c.style.top="0px";const Z=Math.max(te,H+d.offsetTop+(y?fe:0)+re)+_;c.style.height=Z+"px",d.scrollTop=b-te+d.offsetTop}c.style.margin=`${A}px 0`,c.style.minHeight=pe+"px",c.style.maxHeight=B+"px",l?.(),requestAnimationFrame(()=>I.current=!0)}},[P,u.trigger,u.valueNode,c,f,d,h,x,u.dir,l]);z(()=>g(),[g]);const[F,M]=t.useState();z(()=>{f&&M(window.getComputedStyle(f).zIndex)},[f]);const ne=t.useCallback(R=>{R&&C.current===!0&&(g(),m?.(),C.current=!1)},[g,m]);return r.jsx(Kt,{scope:e,contentWrapper:c,shouldExpandOnScrollRef:I,onScrollButtonChange:ne,children:r.jsx("div",{ref:i,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:F},children:r.jsx(j.div,{...a,ref:w,style:{boxSizing:"border-box",maxHeight:"100%",...a.style}})})})});He.displayName=Ft;var Wt="SelectPopperPosition",xe=t.forwardRef((o,n)=>{const{__scopeSelect:e,align:l="start",collisionPadding:a=A,...u}=o,s=ue(e);return r.jsx(Rt,{...s,...u,ref:n,align:l,collisionPadding:a,style:{boxSizing:"border-box",...u.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});xe.displayName=Wt;var[Kt,Ie]=oe(ee,{}),Se="SelectViewport",Ue=t.forwardRef((o,n)=>{const{__scopeSelect:e,nonce:l,...a}=o,u=q(Se,e),s=Ie(Se,e),c=L(n,u.onViewportChange),i=t.useRef(0);return r.jsxs(r.Fragment,{children:[r.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:l}),r.jsx(ie.Slot,{scope:e,children:r.jsx(j.div,{"data-radix-select-viewport":"",role:"presentation",...a,ref:c,style:{position:"relative",flex:1,overflow:"hidden auto",...a.style},onScroll:N(a.onScroll,f=>{const v=f.currentTarget,{contentWrapper:w,shouldExpandOnScrollRef:P}=s;if(P?.current&&w){const I=Math.abs(i.current-v.scrollTop);if(I>0){const C=window.innerHeight-A*2,d=parseFloat(w.style.minHeight),h=parseFloat(w.style.height),x=Math.max(d,h);if(x<C){const m=x+I,g=Math.min(C,m),F=m-g;w.style.height=g+"px",w.style.bottom==="0px"&&(v.scrollTop=F>0?F:0,w.style.justifyContent="flex-end")}}}i.current=v.scrollTop})})})]})});Ue.displayName=Se;var Fe="SelectGroup",[$t,zt]=oe(Fe),Gt=t.forwardRef((o,n)=>{const{__scopeSelect:e,...l}=o,a=be();return r.jsx($t,{scope:e,id:a,children:r.jsx(j.div,{role:"group","aria-labelledby":a,...l,ref:n})})});Gt.displayName=Fe;var We="SelectLabel",Ke=t.forwardRef((o,n)=>{const{__scopeSelect:e,...l}=o,a=zt(We,e);return r.jsx(j.div,{id:a.id,...l,ref:n})});Ke.displayName=We;var ce="SelectItem",[Yt,$e]=oe(ce),ze=t.forwardRef((o,n)=>{const{__scopeSelect:e,value:l,disabled:a=!1,textValue:u,...s}=o,c=Y(ce,e),i=q(ce,e),f=c.value===l,[v,w]=t.useState(u??""),[P,I]=t.useState(!1),C=L(n,m=>i.itemRefCallback?.(m,l,a)),d=be(),h=t.useRef("touch"),x=()=>{a||(c.onValueChange(l),c.onOpenChange(!1))};if(l==="")throw new Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return r.jsx(Yt,{scope:e,value:l,disabled:a,textId:d,isSelected:f,onItemTextChange:t.useCallback(m=>{w(g=>g||(m?.textContent??"").trim())},[]),children:r.jsx(ie.ItemSlot,{scope:e,value:l,disabled:a,textValue:v,children:r.jsx(j.div,{role:"option","aria-labelledby":d,"data-highlighted":P?"":void 0,"aria-selected":f&&P,"data-state":f?"checked":"unchecked","aria-disabled":a||void 0,"data-disabled":a?"":void 0,tabIndex:a?void 0:-1,...s,ref:C,onFocus:N(s.onFocus,()=>I(!0)),onBlur:N(s.onBlur,()=>I(!1)),onClick:N(s.onClick,()=>{h.current!=="mouse"&&x()}),onPointerUp:N(s.onPointerUp,()=>{h.current==="mouse"&&x()}),onPointerDown:N(s.onPointerDown,m=>{h.current=m.pointerType}),onPointerMove:N(s.onPointerMove,m=>{h.current=m.pointerType,a?i.onItemLeave?.():h.current==="mouse"&&m.currentTarget.focus({preventScroll:!0})}),onPointerLeave:N(s.onPointerLeave,m=>{m.currentTarget===document.activeElement&&i.onItemLeave?.()}),onKeyDown:N(s.onKeyDown,m=>{i.searchRef?.current!==""&&m.key===" "||(At.includes(m.key)&&x(),m.key===" "&&m.preventDefault())})})})})});ze.displayName=ce;var se="SelectItemText",Ge=t.forwardRef((o,n)=>{const{__scopeSelect:e,className:l,style:a,...u}=o,s=Y(se,e),c=q(se,e),i=$e(se,e),f=kt(se,e),[v,w]=t.useState(null),P=L(n,x=>w(x),i.onItemTextChange,x=>c.itemTextRefCallback?.(x,i.value,i.disabled)),I=v?.textContent,C=t.useMemo(()=>r.jsx("option",{value:i.value,disabled:i.disabled,children:I},i.value),[i.disabled,i.value,I]),{onNativeOptionAdd:d,onNativeOptionRemove:h}=f;return z(()=>(d(C),()=>h(C)),[d,h,C]),r.jsxs(r.Fragment,{children:[r.jsx(j.span,{id:i.textId,...u,ref:P}),i.isSelected&&s.valueNode&&!s.valueNodeHasChildren?Re.createPortal(u.children,s.valueNode):null]})});Ge.displayName=se;var Ye="SelectItemIndicator",qe=t.forwardRef((o,n)=>{const{__scopeSelect:e,...l}=o;return $e(Ye,e).isSelected?r.jsx(j.span,{"aria-hidden":!0,...l,ref:n}):null});qe.displayName=Ye;var we="SelectScrollUpButton",Xe=t.forwardRef((o,n)=>{const e=q(we,o.__scopeSelect),l=Ie(we,o.__scopeSelect),[a,u]=t.useState(!1),s=L(n,l.onScrollButtonChange);return z(()=>{if(e.viewport&&e.isPositioned){let c=function(){const f=i.scrollTop>0;u(f)};const i=e.viewport;return c(),i.addEventListener("scroll",c),()=>i.removeEventListener("scroll",c)}},[e.viewport,e.isPositioned]),a?r.jsx(Je,{...o,ref:s,onAutoScroll:()=>{const{viewport:c,selectedItem:i}=e;c&&i&&(c.scrollTop=c.scrollTop-i.offsetHeight)}}):null});Xe.displayName=we;var ye="SelectScrollDownButton",Ze=t.forwardRef((o,n)=>{const e=q(ye,o.__scopeSelect),l=Ie(ye,o.__scopeSelect),[a,u]=t.useState(!1),s=L(n,l.onScrollButtonChange);return z(()=>{if(e.viewport&&e.isPositioned){let c=function(){const f=i.scrollHeight-i.clientHeight,v=Math.ceil(i.scrollTop)<f;u(v)};const i=e.viewport;return c(),i.addEventListener("scroll",c),()=>i.removeEventListener("scroll",c)}},[e.viewport,e.isPositioned]),a?r.jsx(Je,{...o,ref:s,onAutoScroll:()=>{const{viewport:c,selectedItem:i}=e;c&&i&&(c.scrollTop=c.scrollTop+i.offsetHeight)}}):null});Ze.displayName=ye;var Je=t.forwardRef((o,n)=>{const{__scopeSelect:e,onAutoScroll:l,...a}=o,u=q("SelectScrollButton",e),s=t.useRef(null),c=de(e),i=t.useCallback(()=>{s.current!==null&&(window.clearInterval(s.current),s.current=null)},[]);return t.useEffect(()=>()=>i(),[i]),z(()=>{c().find(v=>v.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:"nearest"})},[c]),r.jsx(j.div,{"aria-hidden":!0,...a,ref:n,style:{flexShrink:0,...a.style},onPointerDown:N(a.onPointerDown,()=>{s.current===null&&(s.current=window.setInterval(l,50))}),onPointerMove:N(a.onPointerMove,()=>{u.onItemLeave?.(),s.current===null&&(s.current=window.setInterval(l,50))}),onPointerLeave:N(a.onPointerLeave,()=>{i()})})}),qt="SelectSeparator",Qe=t.forwardRef((o,n)=>{const{__scopeSelect:e,...l}=o;return r.jsx(j.div,{"aria-hidden":!0,...l,ref:n})});Qe.displayName=qt;var Ce="SelectArrow",Xt=t.forwardRef((o,n)=>{const{__scopeSelect:e,...l}=o,a=ue(e),u=Y(Ce,e),s=q(Ce,e);return u.open&&s.position==="popper"?r.jsx(Et,{...a,...l,ref:n}):null});Xt.displayName=Ce;var Zt="SelectBubbleInput",et=t.forwardRef(({__scopeSelect:o,value:n,...e},l)=>{const a=t.useRef(null),u=L(l,a),s=vt(n);return t.useEffect(()=>{const c=a.current;if(!c)return;const i=window.HTMLSelectElement.prototype,v=Object.getOwnPropertyDescriptor(i,"value").set;if(s!==n&&v){const w=new Event("change",{bubbles:!0});v.call(c,n),c.dispatchEvent(w)}},[s,n]),r.jsx(j.select,{...e,style:{...xt,...e.style},ref:u,defaultValue:n})});et.displayName=Zt;function tt(o){return o===""||o===void 0}function ot(o){const n=yt(o),e=t.useRef(""),l=t.useRef(0),a=t.useCallback(s=>{const c=e.current+s;n(c),(function i(f){e.current=f,window.clearTimeout(l.current),f!==""&&(l.current=window.setTimeout(()=>i(""),1e3))})(c)},[n]),u=t.useCallback(()=>{e.current="",window.clearTimeout(l.current)},[]);return t.useEffect(()=>()=>window.clearTimeout(l.current),[]),[e,a,u]}function nt(o,n,e){const a=n.length>1&&Array.from(n).every(f=>f===n[0])?n[0]:n,u=e?o.indexOf(e):-1;let s=Jt(o,Math.max(u,0));a.length===1&&(s=s.filter(f=>f!==e));const i=s.find(f=>f.textValue.toLowerCase().startsWith(a.toLowerCase()));return i!==e?i:void 0}function Jt(o,n){return o.map((e,l)=>o[(n+l)%o.length])}var Qt=_e,rt=Me,eo=Oe,to=De,oo=Le,st=ke,no=Ue,at=Ke,lt=ze,ro=Ge,so=qe,ct=Xe,it=Ze,dt=Qe;const ho=Qt,go=eo,ao=t.forwardRef(({className:o,children:n,...e},l)=>r.jsxs(rt,{ref:l,className:G("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",o),...e,children:[n,r.jsx(to,{asChild:!0,children:r.jsx(Ee,{className:"h-4 w-4 opacity-50"})})]}));ao.displayName=rt.displayName;const ut=t.forwardRef(({className:o,...n},e)=>r.jsx(ct,{ref:e,className:G("flex cursor-default items-center justify-center py-1",o),...n,children:r.jsx(jt,{className:"h-4 w-4"})}));ut.displayName=ct.displayName;const pt=t.forwardRef(({className:o,...n},e)=>r.jsx(it,{ref:e,className:G("flex cursor-default items-center justify-center py-1",o),...n,children:r.jsx(Ee,{className:"h-4 w-4"})}));pt.displayName=it.displayName;const lo=t.forwardRef(({className:o,children:n,position:e="popper",...l},a)=>r.jsx(oo,{children:r.jsxs(st,{ref:a,className:G("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",o),position:e,...l,children:[r.jsx(ut,{}),r.jsx(no,{className:G("p-1",e==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:n}),r.jsx(pt,{})]})}));lo.displayName=st.displayName;const co=t.forwardRef(({className:o,...n},e)=>r.jsx(at,{ref:e,className:G("px-2 py-1.5 text-sm font-semibold",o),...n}));co.displayName=at.displayName;const io=t.forwardRef(({className:o,children:n,...e},l)=>r.jsxs(lt,{ref:l,className:G("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",o),...e,children:[r.jsx("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:r.jsx(so,{children:r.jsx(_t,{className:"h-4 w-4"})})}),r.jsx(ro,{children:n})]}));io.displayName=lt.displayName;const uo=t.forwardRef(({className:o,...n},e)=>r.jsx(dt,{ref:e,className:G("-mx-1 my-1 h-px bg-muted",o),...n}));uo.displayName=dt.displayName;export{ho as S,ao as a,go as b,lo as c,io as d};
1
+ import{r as t,b3 as Pe,am as ft,ag as Te,j as r,b4 as mt,ah as ht,b5 as be,ai as gt,al as L,b6 as z,ak as j,ap as vt,b7 as xt,b8 as St,aj as N,b9 as wt,ba as Re,bb as yt,bc as Ct,bd as bt,be as It,bf as Tt,bg as Nt,bh as Pt,bi as Rt,an as Ne,bj as Et,e as G,n as Ee,ae as _t}from"./index-CIFIEidO.js";import{C as jt}from"./chevron-up-BM1GKhAV.js";var Mt=[" ","Enter","ArrowUp","ArrowDown"],At=[" ","Enter"],Q="Select",[ie,de,Ot]=gt(Q),[oe,mo]=ht(Q,[Ot,Pe]),ue=Pe(),[Dt,Y]=oe(Q),[Lt,kt]=oe(Q),_e=o=>{const{__scopeSelect:n,children:e,open:l,defaultOpen:a,onOpenChange:u,value:s,defaultValue:c,onValueChange:i,dir:f,name:v,autoComplete:w,disabled:P,required:I,form:C}=o,d=ue(n),[h,x]=t.useState(null),[m,g]=t.useState(null),[F,M]=t.useState(!1),ne=ft(f),[R,O]=Te({prop:l,defaultProp:a??!1,onChange:u,caller:Q}),[W,X]=Te({prop:s,defaultProp:c,onChange:i,caller:Q}),k=t.useRef(null),B=h?C||!!h.closest("form"):!0,[K,V]=t.useState(new Set),H=Array.from(K).map(E=>E.props.value).join(";");return r.jsx(mt,{...d,children:r.jsxs(Dt,{required:I,scope:n,trigger:h,onTriggerChange:x,valueNode:m,onValueNodeChange:g,valueNodeHasChildren:F,onValueNodeHasChildrenChange:M,contentId:be(),value:W,onValueChange:X,open:R,onOpenChange:O,dir:ne,triggerPointerDownPosRef:k,disabled:P,children:[r.jsx(ie.Provider,{scope:n,children:r.jsx(Lt,{scope:o.__scopeSelect,onNativeOptionAdd:t.useCallback(E=>{V(D=>new Set(D).add(E))},[]),onNativeOptionRemove:t.useCallback(E=>{V(D=>{const U=new Set(D);return U.delete(E),U})},[]),children:e})}),B?r.jsxs(et,{"aria-hidden":!0,required:I,tabIndex:-1,name:v,autoComplete:w,value:W,onChange:E=>X(E.target.value),disabled:P,form:C,children:[W===void 0?r.jsx("option",{value:""}):null,Array.from(K)]},H):null]})})};_e.displayName=Q;var je="SelectTrigger",Me=t.forwardRef((o,n)=>{const{__scopeSelect:e,disabled:l=!1,...a}=o,u=ue(e),s=Y(je,e),c=s.disabled||l,i=L(n,s.onTriggerChange),f=de(e),v=t.useRef("touch"),[w,P,I]=ot(d=>{const h=f().filter(g=>!g.disabled),x=h.find(g=>g.value===s.value),m=nt(h,d,x);m!==void 0&&s.onValueChange(m.value)}),C=d=>{c||(s.onOpenChange(!0),I()),d&&(s.triggerPointerDownPosRef.current={x:Math.round(d.pageX),y:Math.round(d.pageY)})};return r.jsx(St,{asChild:!0,...u,children:r.jsx(j.button,{type:"button",role:"combobox","aria-controls":s.contentId,"aria-expanded":s.open,"aria-required":s.required,"aria-autocomplete":"none",dir:s.dir,"data-state":s.open?"open":"closed",disabled:c,"data-disabled":c?"":void 0,"data-placeholder":tt(s.value)?"":void 0,...a,ref:i,onClick:N(a.onClick,d=>{d.currentTarget.focus(),v.current!=="mouse"&&C(d)}),onPointerDown:N(a.onPointerDown,d=>{v.current=d.pointerType;const h=d.target;h.hasPointerCapture(d.pointerId)&&h.releasePointerCapture(d.pointerId),d.button===0&&d.ctrlKey===!1&&d.pointerType==="mouse"&&(C(d),d.preventDefault())}),onKeyDown:N(a.onKeyDown,d=>{const h=w.current!=="";!(d.ctrlKey||d.altKey||d.metaKey)&&d.key.length===1&&P(d.key),!(h&&d.key===" ")&&Mt.includes(d.key)&&(C(),d.preventDefault())})})})});Me.displayName=je;var Ae="SelectValue",Oe=t.forwardRef((o,n)=>{const{__scopeSelect:e,className:l,style:a,children:u,placeholder:s="",...c}=o,i=Y(Ae,e),{onValueNodeHasChildrenChange:f}=i,v=u!==void 0,w=L(n,i.onValueNodeChange);return z(()=>{f(v)},[f,v]),r.jsx(j.span,{...c,ref:w,style:{pointerEvents:"none"},children:tt(i.value)?r.jsx(r.Fragment,{children:s}):u})});Oe.displayName=Ae;var Bt="SelectIcon",De=t.forwardRef((o,n)=>{const{__scopeSelect:e,children:l,...a}=o;return r.jsx(j.span,{"aria-hidden":!0,...a,ref:n,children:l||"▼"})});De.displayName=Bt;var Vt="SelectPortal",Le=o=>r.jsx(wt,{asChild:!0,...o});Le.displayName=Vt;var ee="SelectContent",ke=t.forwardRef((o,n)=>{const e=Y(ee,o.__scopeSelect),[l,a]=t.useState();if(z(()=>{a(new DocumentFragment)},[]),!e.open){const u=l;return u?Re.createPortal(r.jsx(Be,{scope:o.__scopeSelect,children:r.jsx(ie.Slot,{scope:o.__scopeSelect,children:r.jsx("div",{children:o.children})})}),u):null}return r.jsx(Ve,{...o,ref:n})});ke.displayName=ee;var A=10,[Be,q]=oe(ee),Ht="SelectContentImpl",Ut=Tt("SelectContent.RemoveScroll"),Ve=t.forwardRef((o,n)=>{const{__scopeSelect:e,position:l="item-aligned",onCloseAutoFocus:a,onEscapeKeyDown:u,onPointerDownOutside:s,side:c,sideOffset:i,align:f,alignOffset:v,arrowPadding:w,collisionBoundary:P,collisionPadding:I,sticky:C,hideWhenDetached:d,avoidCollisions:h,...x}=o,m=Y(ee,e),[g,F]=t.useState(null),[M,ne]=t.useState(null),R=L(n,p=>F(p)),[O,W]=t.useState(null),[X,k]=t.useState(null),B=de(e),[K,V]=t.useState(!1),H=t.useRef(!1);t.useEffect(()=>{if(g)return Ct(g)},[g]),bt();const E=t.useCallback(p=>{const[b,..._]=B().map(T=>T.ref.current),[S]=_.slice(-1),y=document.activeElement;for(const T of p)if(T===y||(T?.scrollIntoView({block:"nearest"}),T===b&&M&&(M.scrollTop=0),T===S&&M&&(M.scrollTop=M.scrollHeight),T?.focus(),document.activeElement!==y))return},[B,M]),D=t.useCallback(()=>E([O,g]),[E,O,g]);t.useEffect(()=>{K&&D()},[K,D]);const{onOpenChange:U,triggerPointerDownPosRef:$}=m;t.useEffect(()=>{if(g){let p={x:0,y:0};const b=S=>{p={x:Math.abs(Math.round(S.pageX)-($.current?.x??0)),y:Math.abs(Math.round(S.pageY)-($.current?.y??0))}},_=S=>{p.x<=10&&p.y<=10?S.preventDefault():g.contains(S.target)||U(!1),document.removeEventListener("pointermove",b),$.current=null};return $.current!==null&&(document.addEventListener("pointermove",b),document.addEventListener("pointerup",_,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",b),document.removeEventListener("pointerup",_,{capture:!0})}}},[g,U,$]),t.useEffect(()=>{const p=()=>U(!1);return window.addEventListener("blur",p),window.addEventListener("resize",p),()=>{window.removeEventListener("blur",p),window.removeEventListener("resize",p)}},[U]);const[pe,ae]=ot(p=>{const b=B().filter(y=>!y.disabled),_=b.find(y=>y.ref.current===document.activeElement),S=nt(b,p,_);S&&setTimeout(()=>S.ref.current.focus())}),fe=t.useCallback((p,b,_)=>{const S=!H.current&&!_;(m.value!==void 0&&m.value===b||S)&&(W(p),S&&(H.current=!0))},[m.value]),me=t.useCallback(()=>g?.focus(),[g]),te=t.useCallback((p,b,_)=>{const S=!H.current&&!_;(m.value!==void 0&&m.value===b||S)&&k(p)},[m.value]),le=l==="popper"?xe:He,re=le===xe?{side:c,sideOffset:i,align:f,alignOffset:v,arrowPadding:w,collisionBoundary:P,collisionPadding:I,sticky:C,hideWhenDetached:d,avoidCollisions:h}:{};return r.jsx(Be,{scope:e,content:g,viewport:M,onViewportChange:ne,itemRefCallback:fe,selectedItem:O,onItemLeave:me,itemTextRefCallback:te,focusSelectedItem:D,selectedItemText:X,position:l,isPositioned:K,searchRef:pe,children:r.jsx(It,{as:Ut,allowPinchZoom:!0,children:r.jsx(Nt,{asChild:!0,trapped:m.open,onMountAutoFocus:p=>{p.preventDefault()},onUnmountAutoFocus:N(a,p=>{m.trigger?.focus({preventScroll:!0}),p.preventDefault()}),children:r.jsx(Pt,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:u,onPointerDownOutside:s,onFocusOutside:p=>p.preventDefault(),onDismiss:()=>m.onOpenChange(!1),children:r.jsx(le,{role:"listbox",id:m.contentId,"data-state":m.open?"open":"closed",dir:m.dir,onContextMenu:p=>p.preventDefault(),...x,...re,onPlaced:()=>V(!0),ref:R,style:{display:"flex",flexDirection:"column",outline:"none",...x.style},onKeyDown:N(x.onKeyDown,p=>{const b=p.ctrlKey||p.altKey||p.metaKey;if(p.key==="Tab"&&p.preventDefault(),!b&&p.key.length===1&&ae(p.key),["ArrowUp","ArrowDown","Home","End"].includes(p.key)){let S=B().filter(y=>!y.disabled).map(y=>y.ref.current);if(["ArrowUp","End"].includes(p.key)&&(S=S.slice().reverse()),["ArrowUp","ArrowDown"].includes(p.key)){const y=p.target,T=S.indexOf(y);S=S.slice(T+1)}setTimeout(()=>E(S)),p.preventDefault()}})})})})})})});Ve.displayName=Ht;var Ft="SelectItemAlignedPosition",He=t.forwardRef((o,n)=>{const{__scopeSelect:e,onPlaced:l,...a}=o,u=Y(ee,e),s=q(ee,e),[c,i]=t.useState(null),[f,v]=t.useState(null),w=L(n,R=>v(R)),P=de(e),I=t.useRef(!1),C=t.useRef(!0),{viewport:d,selectedItem:h,selectedItemText:x,focusSelectedItem:m}=s,g=t.useCallback(()=>{if(u.trigger&&u.valueNode&&c&&f&&d&&h&&x){const R=u.trigger.getBoundingClientRect(),O=f.getBoundingClientRect(),W=u.valueNode.getBoundingClientRect(),X=x.getBoundingClientRect();if(u.dir!=="rtl"){const y=X.left-O.left,T=W.left-y,Z=R.left-T,J=R.width+Z,he=Math.max(J,O.width),ge=window.innerWidth-A,ve=Ne(T,[A,Math.max(A,ge-he)]);c.style.minWidth=J+"px",c.style.left=ve+"px"}else{const y=O.right-X.right,T=window.innerWidth-W.right-y,Z=window.innerWidth-R.right-T,J=R.width+Z,he=Math.max(J,O.width),ge=window.innerWidth-A,ve=Ne(T,[A,Math.max(A,ge-he)]);c.style.minWidth=J+"px",c.style.right=ve+"px"}const k=P(),B=window.innerHeight-A*2,K=d.scrollHeight,V=window.getComputedStyle(f),H=parseInt(V.borderTopWidth,10),E=parseInt(V.paddingTop,10),D=parseInt(V.borderBottomWidth,10),U=parseInt(V.paddingBottom,10),$=H+E+K+U+D,pe=Math.min(h.offsetHeight*5,$),ae=window.getComputedStyle(d),fe=parseInt(ae.paddingTop,10),me=parseInt(ae.paddingBottom,10),te=R.top+R.height/2-A,le=B-te,re=h.offsetHeight/2,p=h.offsetTop+re,b=H+E+p,_=$-b;if(b<=te){const y=k.length>0&&h===k[k.length-1].ref.current;c.style.bottom="0px";const T=f.clientHeight-d.offsetTop-d.offsetHeight,Z=Math.max(le,re+(y?me:0)+T+D),J=b+Z;c.style.height=J+"px"}else{const y=k.length>0&&h===k[0].ref.current;c.style.top="0px";const Z=Math.max(te,H+d.offsetTop+(y?fe:0)+re)+_;c.style.height=Z+"px",d.scrollTop=b-te+d.offsetTop}c.style.margin=`${A}px 0`,c.style.minHeight=pe+"px",c.style.maxHeight=B+"px",l?.(),requestAnimationFrame(()=>I.current=!0)}},[P,u.trigger,u.valueNode,c,f,d,h,x,u.dir,l]);z(()=>g(),[g]);const[F,M]=t.useState();z(()=>{f&&M(window.getComputedStyle(f).zIndex)},[f]);const ne=t.useCallback(R=>{R&&C.current===!0&&(g(),m?.(),C.current=!1)},[g,m]);return r.jsx(Kt,{scope:e,contentWrapper:c,shouldExpandOnScrollRef:I,onScrollButtonChange:ne,children:r.jsx("div",{ref:i,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:F},children:r.jsx(j.div,{...a,ref:w,style:{boxSizing:"border-box",maxHeight:"100%",...a.style}})})})});He.displayName=Ft;var Wt="SelectPopperPosition",xe=t.forwardRef((o,n)=>{const{__scopeSelect:e,align:l="start",collisionPadding:a=A,...u}=o,s=ue(e);return r.jsx(Rt,{...s,...u,ref:n,align:l,collisionPadding:a,style:{boxSizing:"border-box",...u.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});xe.displayName=Wt;var[Kt,Ie]=oe(ee,{}),Se="SelectViewport",Ue=t.forwardRef((o,n)=>{const{__scopeSelect:e,nonce:l,...a}=o,u=q(Se,e),s=Ie(Se,e),c=L(n,u.onViewportChange),i=t.useRef(0);return r.jsxs(r.Fragment,{children:[r.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:l}),r.jsx(ie.Slot,{scope:e,children:r.jsx(j.div,{"data-radix-select-viewport":"",role:"presentation",...a,ref:c,style:{position:"relative",flex:1,overflow:"hidden auto",...a.style},onScroll:N(a.onScroll,f=>{const v=f.currentTarget,{contentWrapper:w,shouldExpandOnScrollRef:P}=s;if(P?.current&&w){const I=Math.abs(i.current-v.scrollTop);if(I>0){const C=window.innerHeight-A*2,d=parseFloat(w.style.minHeight),h=parseFloat(w.style.height),x=Math.max(d,h);if(x<C){const m=x+I,g=Math.min(C,m),F=m-g;w.style.height=g+"px",w.style.bottom==="0px"&&(v.scrollTop=F>0?F:0,w.style.justifyContent="flex-end")}}}i.current=v.scrollTop})})})]})});Ue.displayName=Se;var Fe="SelectGroup",[$t,zt]=oe(Fe),Gt=t.forwardRef((o,n)=>{const{__scopeSelect:e,...l}=o,a=be();return r.jsx($t,{scope:e,id:a,children:r.jsx(j.div,{role:"group","aria-labelledby":a,...l,ref:n})})});Gt.displayName=Fe;var We="SelectLabel",Ke=t.forwardRef((o,n)=>{const{__scopeSelect:e,...l}=o,a=zt(We,e);return r.jsx(j.div,{id:a.id,...l,ref:n})});Ke.displayName=We;var ce="SelectItem",[Yt,$e]=oe(ce),ze=t.forwardRef((o,n)=>{const{__scopeSelect:e,value:l,disabled:a=!1,textValue:u,...s}=o,c=Y(ce,e),i=q(ce,e),f=c.value===l,[v,w]=t.useState(u??""),[P,I]=t.useState(!1),C=L(n,m=>i.itemRefCallback?.(m,l,a)),d=be(),h=t.useRef("touch"),x=()=>{a||(c.onValueChange(l),c.onOpenChange(!1))};if(l==="")throw new Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return r.jsx(Yt,{scope:e,value:l,disabled:a,textId:d,isSelected:f,onItemTextChange:t.useCallback(m=>{w(g=>g||(m?.textContent??"").trim())},[]),children:r.jsx(ie.ItemSlot,{scope:e,value:l,disabled:a,textValue:v,children:r.jsx(j.div,{role:"option","aria-labelledby":d,"data-highlighted":P?"":void 0,"aria-selected":f&&P,"data-state":f?"checked":"unchecked","aria-disabled":a||void 0,"data-disabled":a?"":void 0,tabIndex:a?void 0:-1,...s,ref:C,onFocus:N(s.onFocus,()=>I(!0)),onBlur:N(s.onBlur,()=>I(!1)),onClick:N(s.onClick,()=>{h.current!=="mouse"&&x()}),onPointerUp:N(s.onPointerUp,()=>{h.current==="mouse"&&x()}),onPointerDown:N(s.onPointerDown,m=>{h.current=m.pointerType}),onPointerMove:N(s.onPointerMove,m=>{h.current=m.pointerType,a?i.onItemLeave?.():h.current==="mouse"&&m.currentTarget.focus({preventScroll:!0})}),onPointerLeave:N(s.onPointerLeave,m=>{m.currentTarget===document.activeElement&&i.onItemLeave?.()}),onKeyDown:N(s.onKeyDown,m=>{i.searchRef?.current!==""&&m.key===" "||(At.includes(m.key)&&x(),m.key===" "&&m.preventDefault())})})})})});ze.displayName=ce;var se="SelectItemText",Ge=t.forwardRef((o,n)=>{const{__scopeSelect:e,className:l,style:a,...u}=o,s=Y(se,e),c=q(se,e),i=$e(se,e),f=kt(se,e),[v,w]=t.useState(null),P=L(n,x=>w(x),i.onItemTextChange,x=>c.itemTextRefCallback?.(x,i.value,i.disabled)),I=v?.textContent,C=t.useMemo(()=>r.jsx("option",{value:i.value,disabled:i.disabled,children:I},i.value),[i.disabled,i.value,I]),{onNativeOptionAdd:d,onNativeOptionRemove:h}=f;return z(()=>(d(C),()=>h(C)),[d,h,C]),r.jsxs(r.Fragment,{children:[r.jsx(j.span,{id:i.textId,...u,ref:P}),i.isSelected&&s.valueNode&&!s.valueNodeHasChildren?Re.createPortal(u.children,s.valueNode):null]})});Ge.displayName=se;var Ye="SelectItemIndicator",qe=t.forwardRef((o,n)=>{const{__scopeSelect:e,...l}=o;return $e(Ye,e).isSelected?r.jsx(j.span,{"aria-hidden":!0,...l,ref:n}):null});qe.displayName=Ye;var we="SelectScrollUpButton",Xe=t.forwardRef((o,n)=>{const e=q(we,o.__scopeSelect),l=Ie(we,o.__scopeSelect),[a,u]=t.useState(!1),s=L(n,l.onScrollButtonChange);return z(()=>{if(e.viewport&&e.isPositioned){let c=function(){const f=i.scrollTop>0;u(f)};const i=e.viewport;return c(),i.addEventListener("scroll",c),()=>i.removeEventListener("scroll",c)}},[e.viewport,e.isPositioned]),a?r.jsx(Je,{...o,ref:s,onAutoScroll:()=>{const{viewport:c,selectedItem:i}=e;c&&i&&(c.scrollTop=c.scrollTop-i.offsetHeight)}}):null});Xe.displayName=we;var ye="SelectScrollDownButton",Ze=t.forwardRef((o,n)=>{const e=q(ye,o.__scopeSelect),l=Ie(ye,o.__scopeSelect),[a,u]=t.useState(!1),s=L(n,l.onScrollButtonChange);return z(()=>{if(e.viewport&&e.isPositioned){let c=function(){const f=i.scrollHeight-i.clientHeight,v=Math.ceil(i.scrollTop)<f;u(v)};const i=e.viewport;return c(),i.addEventListener("scroll",c),()=>i.removeEventListener("scroll",c)}},[e.viewport,e.isPositioned]),a?r.jsx(Je,{...o,ref:s,onAutoScroll:()=>{const{viewport:c,selectedItem:i}=e;c&&i&&(c.scrollTop=c.scrollTop+i.offsetHeight)}}):null});Ze.displayName=ye;var Je=t.forwardRef((o,n)=>{const{__scopeSelect:e,onAutoScroll:l,...a}=o,u=q("SelectScrollButton",e),s=t.useRef(null),c=de(e),i=t.useCallback(()=>{s.current!==null&&(window.clearInterval(s.current),s.current=null)},[]);return t.useEffect(()=>()=>i(),[i]),z(()=>{c().find(v=>v.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:"nearest"})},[c]),r.jsx(j.div,{"aria-hidden":!0,...a,ref:n,style:{flexShrink:0,...a.style},onPointerDown:N(a.onPointerDown,()=>{s.current===null&&(s.current=window.setInterval(l,50))}),onPointerMove:N(a.onPointerMove,()=>{u.onItemLeave?.(),s.current===null&&(s.current=window.setInterval(l,50))}),onPointerLeave:N(a.onPointerLeave,()=>{i()})})}),qt="SelectSeparator",Qe=t.forwardRef((o,n)=>{const{__scopeSelect:e,...l}=o;return r.jsx(j.div,{"aria-hidden":!0,...l,ref:n})});Qe.displayName=qt;var Ce="SelectArrow",Xt=t.forwardRef((o,n)=>{const{__scopeSelect:e,...l}=o,a=ue(e),u=Y(Ce,e),s=q(Ce,e);return u.open&&s.position==="popper"?r.jsx(Et,{...a,...l,ref:n}):null});Xt.displayName=Ce;var Zt="SelectBubbleInput",et=t.forwardRef(({__scopeSelect:o,value:n,...e},l)=>{const a=t.useRef(null),u=L(l,a),s=vt(n);return t.useEffect(()=>{const c=a.current;if(!c)return;const i=window.HTMLSelectElement.prototype,v=Object.getOwnPropertyDescriptor(i,"value").set;if(s!==n&&v){const w=new Event("change",{bubbles:!0});v.call(c,n),c.dispatchEvent(w)}},[s,n]),r.jsx(j.select,{...e,style:{...xt,...e.style},ref:u,defaultValue:n})});et.displayName=Zt;function tt(o){return o===""||o===void 0}function ot(o){const n=yt(o),e=t.useRef(""),l=t.useRef(0),a=t.useCallback(s=>{const c=e.current+s;n(c),(function i(f){e.current=f,window.clearTimeout(l.current),f!==""&&(l.current=window.setTimeout(()=>i(""),1e3))})(c)},[n]),u=t.useCallback(()=>{e.current="",window.clearTimeout(l.current)},[]);return t.useEffect(()=>()=>window.clearTimeout(l.current),[]),[e,a,u]}function nt(o,n,e){const a=n.length>1&&Array.from(n).every(f=>f===n[0])?n[0]:n,u=e?o.indexOf(e):-1;let s=Jt(o,Math.max(u,0));a.length===1&&(s=s.filter(f=>f!==e));const i=s.find(f=>f.textValue.toLowerCase().startsWith(a.toLowerCase()));return i!==e?i:void 0}function Jt(o,n){return o.map((e,l)=>o[(n+l)%o.length])}var Qt=_e,rt=Me,eo=Oe,to=De,oo=Le,st=ke,no=Ue,at=Ke,lt=ze,ro=Ge,so=qe,ct=Xe,it=Ze,dt=Qe;const ho=Qt,go=eo,ao=t.forwardRef(({className:o,children:n,...e},l)=>r.jsxs(rt,{ref:l,className:G("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",o),...e,children:[n,r.jsx(to,{asChild:!0,children:r.jsx(Ee,{className:"h-4 w-4 opacity-50"})})]}));ao.displayName=rt.displayName;const ut=t.forwardRef(({className:o,...n},e)=>r.jsx(ct,{ref:e,className:G("flex cursor-default items-center justify-center py-1",o),...n,children:r.jsx(jt,{className:"h-4 w-4"})}));ut.displayName=ct.displayName;const pt=t.forwardRef(({className:o,...n},e)=>r.jsx(it,{ref:e,className:G("flex cursor-default items-center justify-center py-1",o),...n,children:r.jsx(Ee,{className:"h-4 w-4"})}));pt.displayName=it.displayName;const lo=t.forwardRef(({className:o,children:n,position:e="popper",...l},a)=>r.jsx(oo,{children:r.jsxs(st,{ref:a,className:G("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",o),position:e,...l,children:[r.jsx(ut,{}),r.jsx(no,{className:G("p-1",e==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:n}),r.jsx(pt,{})]})}));lo.displayName=st.displayName;const co=t.forwardRef(({className:o,...n},e)=>r.jsx(at,{ref:e,className:G("px-2 py-1.5 text-sm font-semibold",o),...n}));co.displayName=at.displayName;const io=t.forwardRef(({className:o,children:n,...e},l)=>r.jsxs(lt,{ref:l,className:G("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",o),...e,children:[r.jsx("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:r.jsx(so,{children:r.jsx(_t,{className:"h-4 w-4"})})}),r.jsx(ro,{children:n})]}));io.displayName=lt.displayName;const uo=t.forwardRef(({className:o,...n},e)=>r.jsx(dt,{ref:e,className:G("-mx-1 my-1 h-px bg-muted",o),...n}));uo.displayName=dt.displayName;export{ho as S,ao as a,go as b,lo as c,io as d};
@@ -0,0 +1 @@
1
+ const c=["draft","backlog","ready","queued","active","blocked","review","revision","done","canceled","duplicate"],t=["draft","backlog","ready","queued","active","blocked","review","revision"];function d(e){return{draft:"Draft",backlog:"Backlog",ready:"Ready",queued:"Queued",active:"Active",blocked:"Blocked",review:"Review",revision:"Revision",done:"Done",canceled:"Canceled",duplicate:"Duplicate"}[e]??e}function i(e){switch(e){case"ready":case"done":return"default";case"review":case"revision":case"active":case"queued":return"secondary";case"canceled":case"blocked":case"duplicate":return"destructive";default:return"outline"}}export{t as A,c as T,d as a,i as g};
@@ -1 +1 @@
1
- import{r as c,j as e,e as i}from"./index-DFcWlnzl.js";const d=c.forwardRef(({className:s,onCheckedChange:r,onChange:t,...o},n)=>{const l=a=>{t?.(a),r?.(a.target.checked)};return e.jsxs("label",{className:i("relative inline-flex cursor-pointer",s),children:[e.jsx("input",{type:"checkbox",className:"sr-only peer",onChange:l,ref:n,...o}),e.jsx("div",{className:"block bg-gray-300 w-9 h-5 rounded-full transition-colors duration-200 ease-in-out peer-checked:bg-blue-600"}),e.jsx("div",{className:"absolute left-0 top-0 bg-white w-4 h-4 rounded-full mt-0.5 ml-0.5 transition-transform duration-200 ease-in-out transform peer-checked:translate-x-4 shadow"})]})});d.displayName="Switch";export{d as S};
1
+ import{r as c,j as e,e as i}from"./index-CIFIEidO.js";const d=c.forwardRef(({className:s,onCheckedChange:r,onChange:t,...o},n)=>{const l=a=>{t?.(a),r?.(a.target.checked)};return e.jsxs("label",{className:i("relative inline-flex cursor-pointer",s),children:[e.jsx("input",{type:"checkbox",className:"sr-only peer",onChange:l,ref:n,...o}),e.jsx("div",{className:"block bg-gray-300 w-9 h-5 rounded-full transition-colors duration-200 ease-in-out peer-checked:bg-blue-600"}),e.jsx("div",{className:"absolute left-0 top-0 bg-white w-4 h-4 rounded-full mt-0.5 ml-0.5 transition-transform duration-200 ease-in-out transform peer-checked:translate-x-4 shadow"})]})});d.displayName="Switch";export{d as S};
@@ -1 +1 @@
1
- import{r as l,am as F,ag as k,j as c,ah as $,b5 as D,ak as g,bk as y,bl as V,bm as G,aj as p,bn as L,e as T}from"./index-DFcWlnzl.js";var m="Tabs",[K,Q]=$(m,[y]),h=y(),[B,x]=K(m),N=l.forwardRef((e,a)=>{const{__scopeTabs:t,value:o,onValueChange:r,defaultValue:d,orientation:n="horizontal",dir:u,activationMode:f="automatic",...v}=e,i=F(u),[s,b]=k({prop:o,onChange:r,defaultProp:d??"",caller:m});return c.jsx(B,{scope:t,baseId:D(),value:s,onValueChange:b,orientation:n,dir:i,activationMode:f,children:c.jsx(g.div,{dir:i,"data-orientation":n,...v,ref:a})})});N.displayName=m;var C="TabsList",j=l.forwardRef((e,a)=>{const{__scopeTabs:t,loop:o=!0,...r}=e,d=x(C,t),n=h(t);return c.jsx(V,{asChild:!0,...n,orientation:d.orientation,dir:d.dir,loop:o,children:c.jsx(g.div,{role:"tablist","aria-orientation":d.orientation,...r,ref:a})})});j.displayName=C;var I="TabsTrigger",R=l.forwardRef((e,a)=>{const{__scopeTabs:t,value:o,disabled:r=!1,...d}=e,n=x(I,t),u=h(t),f=A(n.baseId,o),v=E(n.baseId,o),i=o===n.value;return c.jsx(G,{asChild:!0,...u,focusable:!r,active:i,children:c.jsx(g.button,{type:"button",role:"tab","aria-selected":i,"aria-controls":v,"data-state":i?"active":"inactive","data-disabled":r?"":void 0,disabled:r,id:f,...d,ref:a,onMouseDown:p(e.onMouseDown,s=>{!r&&s.button===0&&s.ctrlKey===!1?n.onValueChange(o):s.preventDefault()}),onKeyDown:p(e.onKeyDown,s=>{[" ","Enter"].includes(s.key)&&n.onValueChange(o)}),onFocus:p(e.onFocus,()=>{const s=n.activationMode!=="manual";!i&&!r&&s&&n.onValueChange(o)})})})});R.displayName=I;var w="TabsContent",_=l.forwardRef((e,a)=>{const{__scopeTabs:t,value:o,forceMount:r,children:d,...n}=e,u=x(w,t),f=A(u.baseId,o),v=E(u.baseId,o),i=o===u.value,s=l.useRef(i);return l.useEffect(()=>{const b=requestAnimationFrame(()=>s.current=!1);return()=>cancelAnimationFrame(b)},[]),c.jsx(L,{present:r||i,children:({present:b})=>c.jsx(g.div,{"data-state":i?"active":"inactive","data-orientation":u.orientation,role:"tabpanel","aria-labelledby":f,hidden:!b,id:v,tabIndex:0,...n,ref:a,style:{...e.style,animationDuration:s.current?"0s":void 0},children:b&&d})})});_.displayName=w;function A(e,a){return`${e}-trigger-${a}`}function E(e,a){return`${e}-content-${a}`}var q=N,S=j,M=R,P=_;const U=q,z=l.forwardRef(({className:e,...a},t)=>c.jsx(S,{ref:t,className:T("inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",e),...a}));z.displayName=S.displayName;const H=l.forwardRef(({className:e,...a},t)=>c.jsx(M,{ref:t,className:T("inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",e),...a}));H.displayName=M.displayName;const O=l.forwardRef(({className:e,...a},t)=>c.jsx(P,{ref:t,className:T("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",e),...a}));O.displayName=P.displayName;export{U as T,z as a,H as b,O as c};
1
+ import{r as l,am as F,ag as k,j as c,ah as $,b5 as D,ak as g,bk as y,bl as V,bm as G,aj as p,bn as L,e as T}from"./index-CIFIEidO.js";var m="Tabs",[K,Q]=$(m,[y]),h=y(),[B,x]=K(m),N=l.forwardRef((e,a)=>{const{__scopeTabs:t,value:o,onValueChange:r,defaultValue:d,orientation:n="horizontal",dir:u,activationMode:f="automatic",...v}=e,i=F(u),[s,b]=k({prop:o,onChange:r,defaultProp:d??"",caller:m});return c.jsx(B,{scope:t,baseId:D(),value:s,onValueChange:b,orientation:n,dir:i,activationMode:f,children:c.jsx(g.div,{dir:i,"data-orientation":n,...v,ref:a})})});N.displayName=m;var C="TabsList",j=l.forwardRef((e,a)=>{const{__scopeTabs:t,loop:o=!0,...r}=e,d=x(C,t),n=h(t);return c.jsx(V,{asChild:!0,...n,orientation:d.orientation,dir:d.dir,loop:o,children:c.jsx(g.div,{role:"tablist","aria-orientation":d.orientation,...r,ref:a})})});j.displayName=C;var I="TabsTrigger",R=l.forwardRef((e,a)=>{const{__scopeTabs:t,value:o,disabled:r=!1,...d}=e,n=x(I,t),u=h(t),f=A(n.baseId,o),v=E(n.baseId,o),i=o===n.value;return c.jsx(G,{asChild:!0,...u,focusable:!r,active:i,children:c.jsx(g.button,{type:"button",role:"tab","aria-selected":i,"aria-controls":v,"data-state":i?"active":"inactive","data-disabled":r?"":void 0,disabled:r,id:f,...d,ref:a,onMouseDown:p(e.onMouseDown,s=>{!r&&s.button===0&&s.ctrlKey===!1?n.onValueChange(o):s.preventDefault()}),onKeyDown:p(e.onKeyDown,s=>{[" ","Enter"].includes(s.key)&&n.onValueChange(o)}),onFocus:p(e.onFocus,()=>{const s=n.activationMode!=="manual";!i&&!r&&s&&n.onValueChange(o)})})})});R.displayName=I;var w="TabsContent",_=l.forwardRef((e,a)=>{const{__scopeTabs:t,value:o,forceMount:r,children:d,...n}=e,u=x(w,t),f=A(u.baseId,o),v=E(u.baseId,o),i=o===u.value,s=l.useRef(i);return l.useEffect(()=>{const b=requestAnimationFrame(()=>s.current=!1);return()=>cancelAnimationFrame(b)},[]),c.jsx(L,{present:r||i,children:({present:b})=>c.jsx(g.div,{"data-state":i?"active":"inactive","data-orientation":u.orientation,role:"tabpanel","aria-labelledby":f,hidden:!b,id:v,tabIndex:0,...n,ref:a,style:{...e.style,animationDuration:s.current?"0s":void 0},children:b&&d})})});_.displayName=w;function A(e,a){return`${e}-trigger-${a}`}function E(e,a){return`${e}-content-${a}`}var q=N,S=j,M=R,P=_;const U=q,z=l.forwardRef(({className:e,...a},t)=>c.jsx(S,{ref:t,className:T("inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",e),...a}));z.displayName=S.displayName;const H=l.forwardRef(({className:e,...a},t)=>c.jsx(M,{ref:t,className:T("inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",e),...a}));H.displayName=M.displayName;const O=l.forwardRef(({className:e,...a},t)=>c.jsx(P,{ref:t,className:T("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",e),...a}));O.displayName=P.displayName;export{U as T,z as a,H as b,O as c};
@@ -1,4 +1,4 @@
1
- import{c}from"./index-DFcWlnzl.js";/**
1
+ import{c}from"./index-CIFIEidO.js";/**
2
2
  * @license lucide-react v0.542.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1 +1 @@
1
- import{r as t,a8 as j,j as u}from"./index-DFcWlnzl.js";import{x as k,a as B}from"./xterm-DTxiCjtJ.js";function A({sessionId:l,className:p,heightPx:d=160,maxScrollback:m=200}){const h=t.useRef(null),v=t.useRef(null),w=t.useRef(null),y=t.useRef(null),[x,R]=t.useState(!0),o=t.useRef([]),i=t.useRef(null);return t.useEffect(()=>{const a=h.current;if(!a||!l)return;const e=new k.Terminal({disableStdin:!0,cursorBlink:!1,convertEol:!0,scrollback:Math.max(50,Math.min(m,1e3)),fontSize:12,fontFamily:"'IBM Plex Mono', 'Source Code Pro', 'Fira Code', ui-monospace, Menlo, Monaco, monospace",lineHeight:1.25,letterSpacing:.3,theme:{background:"#1a1b26",foreground:"#c0caf5",cursor:"#c0caf5",selectionBackground:"#33467c",black:"#15161e",red:"#f7768e",green:"#9ece6a",yellow:"#e0af68",blue:"#7aa2f7",magenta:"#bb9af7",cyan:"#7dcfff",white:"#a9b1d6",brightBlack:"#414868",brightRed:"#f7768e",brightGreen:"#9ece6a",brightYellow:"#e0af68",brightBlue:"#7aa2f7",brightMagenta:"#bb9af7",brightCyan:"#7dcfff",brightWhite:"#c0caf5"}}),f=new B.FitAddon;e.loadAddon(f),e.open(a),a.style.height=`${d}px`,v.current=e,w.current=f;const s=()=>{try{const n=a.getBoundingClientRect();n.width>8&&n.height>8&&e.element&&f.fit()}catch{}},S=setTimeout(()=>s(),100),g=new ResizeObserver(()=>s());g.observe(a);const b=()=>{document.visibilityState==="visible"&&setTimeout(s,50)};document.addEventListener("visibilitychange",b);const c=new WebSocket(`${j}/ws/terminal-preview/${l}`);y.current=c,c.onopen=()=>R(!1);const E=()=>{i.current=null;const n=o.current;if(n.length){o.current=[];try{e.write(n.join(""))}catch{}}},F=()=>{i.current===null&&(i.current=requestAnimationFrame(E))};return c.onmessage=n=>{let r;try{r=JSON.parse(n.data)}catch{return}if(r?.type==="snapshot"){if(e.reset(),o.current=[],r.data)try{e.write(r.data)}catch{}s()}else r?.type==="data"&&r.data&&(o.current.push(String(r.data)),F())},c.onclose=()=>{},c.onerror=()=>{},()=>{clearTimeout(S),g.disconnect(),document.removeEventListener("visibilitychange",b);try{c.close()}catch{}i.current!==null&&cancelAnimationFrame(i.current),i.current=null,o.current=[],e.dispose()}},[l,d,m]),u.jsxs("div",{className:`relative w-full ${p||""}`.trim(),children:[x&&u.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-gray-50/60 z-10",children:u.jsx("div",{className:"text-xs text-muted-foreground",children:"Loading preview…"})}),u.jsx("div",{ref:h,className:"border border-muted rounded overflow-hidden"})]})}export{A as T};
1
+ import{r as t,a8 as j,j as u}from"./index-CIFIEidO.js";import{x as k,a as B}from"./xterm-DTxiCjtJ.js";function A({sessionId:l,className:p,heightPx:d=160,maxScrollback:m=200}){const h=t.useRef(null),v=t.useRef(null),w=t.useRef(null),y=t.useRef(null),[x,R]=t.useState(!0),o=t.useRef([]),i=t.useRef(null);return t.useEffect(()=>{const a=h.current;if(!a||!l)return;const e=new k.Terminal({disableStdin:!0,cursorBlink:!1,convertEol:!0,scrollback:Math.max(50,Math.min(m,1e3)),fontSize:12,fontFamily:"'IBM Plex Mono', 'Source Code Pro', 'Fira Code', ui-monospace, Menlo, Monaco, monospace",lineHeight:1.25,letterSpacing:.3,theme:{background:"#1a1b26",foreground:"#c0caf5",cursor:"#c0caf5",selectionBackground:"#33467c",black:"#15161e",red:"#f7768e",green:"#9ece6a",yellow:"#e0af68",blue:"#7aa2f7",magenta:"#bb9af7",cyan:"#7dcfff",white:"#a9b1d6",brightBlack:"#414868",brightRed:"#f7768e",brightGreen:"#9ece6a",brightYellow:"#e0af68",brightBlue:"#7aa2f7",brightMagenta:"#bb9af7",brightCyan:"#7dcfff",brightWhite:"#c0caf5"}}),f=new B.FitAddon;e.loadAddon(f),e.open(a),a.style.height=`${d}px`,v.current=e,w.current=f;const s=()=>{try{const n=a.getBoundingClientRect();n.width>8&&n.height>8&&e.element&&f.fit()}catch{}},S=setTimeout(()=>s(),100),g=new ResizeObserver(()=>s());g.observe(a);const b=()=>{document.visibilityState==="visible"&&setTimeout(s,50)};document.addEventListener("visibilitychange",b);const c=new WebSocket(`${j}/ws/terminal-preview/${l}`);y.current=c,c.onopen=()=>R(!1);const E=()=>{i.current=null;const n=o.current;if(n.length){o.current=[];try{e.write(n.join(""))}catch{}}},F=()=>{i.current===null&&(i.current=requestAnimationFrame(E))};return c.onmessage=n=>{let r;try{r=JSON.parse(n.data)}catch{return}if(r?.type==="snapshot"){if(e.reset(),o.current=[],r.data)try{e.write(r.data)}catch{}s()}else r?.type==="data"&&r.data&&(o.current.push(String(r.data)),F())},c.onclose=()=>{},c.onerror=()=>{},()=>{clearTimeout(S),g.disconnect(),document.removeEventListener("visibilitychange",b);try{c.close()}catch{}i.current!==null&&cancelAnimationFrame(i.current),i.current=null,o.current=[],e.dispose()}},[l,d,m]),u.jsxs("div",{className:`relative w-full ${p||""}`.trim(),children:[x&&u.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-gray-50/60 z-10",children:u.jsx("div",{className:"text-xs text-muted-foreground",children:"Loading preview…"})}),u.jsx("div",{ref:h,className:"border border-muted rounded overflow-hidden"})]})}export{A as T};
@@ -1 +1 @@
1
- import{r as i,ad as v,A as f}from"./index-DFcWlnzl.js";function j(){const[y,p]=i.useState([]),[m,c]=i.useState(!1),[d,o]=i.useState(null),{refresh:w}=v(),S=i.useCallback(async(s,n)=>{try{c(!0),o(null);const e=await fetch(`${f}/api/v1/terminal/${s}/create`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({startupCommand:n})});if(!e.ok){const t=await e.json();throw new Error(t.error||"Failed to create terminal session")}const r=await e.json();return await w(),r.sessionId}catch(e){const r=e instanceof Error?e.message:"Unknown error";return o(r),null}finally{c(!1)}},[w]),g=i.useCallback(async s=>{try{c(!0),o(null);let n;if(s.startsWith("session-")){const r=s.split("-");n=`${r[0]}-${r[1]}`}else{const r=s.split("-");n=`${r[0]}-${r[1]}`}const e=await fetch(`${f}/api/v1/terminal/${n}/destroy`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:s})});if(!e.ok){const r=await e.json();throw new Error(r.error||"Failed to destroy terminal session")}return p(r=>r.filter(t=>t.id!==s)),await w(),!0}catch(n){const e=n instanceof Error?n.message:"Unknown error";return o(e),!1}finally{c(!1)}},[w]),$=i.useCallback(async(s,n,e)=>{try{o(null);let r;if(s.startsWith("session-")){const a=s.split("-");r=`${a[0]}-${a[1]}`}else{const a=s.split("-");r=`${a[0]}-${a[1]}`}const t=await fetch(`${f}/api/v1/terminal/${r}/resize`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:s,cols:n,rows:e})});if(!t.ok){const a=await t.json();throw new Error(a.error||"Failed to resize terminal session")}return!0}catch(r){const t=r instanceof Error?r.message:"Unknown error";return o(t),!1}},[]),k=i.useCallback(async(s,n,e)=>{try{c(!0),o(null);const r=new URLSearchParams;s&&r.set("taskId",s),n&&(r.set("withPreview","true"),e&&Number.isFinite(e)&&r.set("lines",String(e)));const t=`${f}/api/v1/terminal/sessions${r.toString()?`?${r.toString()}`:""}`,a=await fetch(t);if(!a.ok){const l=await a.json();throw new Error(l.error||"Failed to fetch terminal sessions")}const u=await a.json();p(u.sessions)}catch(r){const t=r instanceof Error?r.message:"Unknown error";o(t)}finally{c(!1)}},[]),E=i.useCallback(async(s,n=8)=>{try{o(null);const e=new URLSearchParams;e.set("sessionId",s),e.set("withPreview","true"),e.set("lines",String(n)),e.set("colorize","true");const r=`${f}/api/v1/terminal/sessions?${e.toString()}`,t=await fetch(r);if(!t.ok){const l=await t.json().catch(()=>({}));throw new Error(l.error||"Failed to fetch preview")}const a=await t.json(),u=Array.isArray(a?.sessions)&&a.sessions[0]?.preview?a.sessions[0].preview:[];return p(l=>l.map(h=>h.id===s?{...h,preview:u}:h)),u}catch(e){const r=e instanceof Error?e.message:"Unknown error";return o(r),[]}},[]);return{sessions:y,loading:m,error:d,createSession:S,destroySession:g,resizeSession:$,refreshSessions:k,fetchPreview:E}}export{j as u};
1
+ import{r as i,ad as v,A as f}from"./index-CIFIEidO.js";function j(){const[y,p]=i.useState([]),[m,c]=i.useState(!1),[d,o]=i.useState(null),{refresh:w}=v(),S=i.useCallback(async(s,n)=>{try{c(!0),o(null);const e=await fetch(`${f}/api/v1/terminal/${s}/create`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({startupCommand:n})});if(!e.ok){const t=await e.json();throw new Error(t.error||"Failed to create terminal session")}const r=await e.json();return await w(),r.sessionId}catch(e){const r=e instanceof Error?e.message:"Unknown error";return o(r),null}finally{c(!1)}},[w]),g=i.useCallback(async s=>{try{c(!0),o(null);let n;if(s.startsWith("session-")){const r=s.split("-");n=`${r[0]}-${r[1]}`}else{const r=s.split("-");n=`${r[0]}-${r[1]}`}const e=await fetch(`${f}/api/v1/terminal/${n}/destroy`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:s})});if(!e.ok){const r=await e.json();throw new Error(r.error||"Failed to destroy terminal session")}return p(r=>r.filter(t=>t.id!==s)),await w(),!0}catch(n){const e=n instanceof Error?n.message:"Unknown error";return o(e),!1}finally{c(!1)}},[w]),$=i.useCallback(async(s,n,e)=>{try{o(null);let r;if(s.startsWith("session-")){const a=s.split("-");r=`${a[0]}-${a[1]}`}else{const a=s.split("-");r=`${a[0]}-${a[1]}`}const t=await fetch(`${f}/api/v1/terminal/${r}/resize`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:s,cols:n,rows:e})});if(!t.ok){const a=await t.json();throw new Error(a.error||"Failed to resize terminal session")}return!0}catch(r){const t=r instanceof Error?r.message:"Unknown error";return o(t),!1}},[]),k=i.useCallback(async(s,n,e)=>{try{c(!0),o(null);const r=new URLSearchParams;s&&r.set("taskId",s),n&&(r.set("withPreview","true"),e&&Number.isFinite(e)&&r.set("lines",String(e)));const t=`${f}/api/v1/terminal/sessions${r.toString()?`?${r.toString()}`:""}`,a=await fetch(t);if(!a.ok){const l=await a.json();throw new Error(l.error||"Failed to fetch terminal sessions")}const u=await a.json();p(u.sessions)}catch(r){const t=r instanceof Error?r.message:"Unknown error";o(t)}finally{c(!1)}},[]),E=i.useCallback(async(s,n=8)=>{try{o(null);const e=new URLSearchParams;e.set("sessionId",s),e.set("withPreview","true"),e.set("lines",String(n)),e.set("colorize","true");const r=`${f}/api/v1/terminal/sessions?${e.toString()}`,t=await fetch(r);if(!t.ok){const l=await t.json().catch(()=>({}));throw new Error(l.error||"Failed to fetch preview")}const a=await t.json(),u=Array.isArray(a?.sessions)&&a.sessions[0]?.preview?a.sessions[0].preview:[];return p(l=>l.map(h=>h.id===s?{...h,preview:u}:h)),u}catch(e){const r=e instanceof Error?e.message:"Unknown error";return o(r),[]}},[]);return{sessions:y,loading:m,error:d,createSession:S,destroySession:g,resizeSession:$,refreshSessions:k,fetchPreview:E}}export{j as u};
@@ -1,4 +1,4 @@
1
- import{c as e}from"./index-DFcWlnzl.js";/**
1
+ import{c as e}from"./index-CIFIEidO.js";/**
2
2
  * @license lucide-react v0.542.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
package/static/index.html CHANGED
@@ -8,7 +8,7 @@
8
8
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
9
9
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap" rel="stylesheet">
10
10
  <title>Coconut - Agentic Development Environment</title>
11
- <script type="module" crossorigin src="/assets/index-DFcWlnzl.js"></script>
11
+ <script type="module" crossorigin src="/assets/index-CIFIEidO.js"></script>
12
12
  <link rel="stylesheet" crossorigin href="/assets/index-CHdBxVyk.css">
13
13
  </head>
14
14
  <body class="font-inter">
@@ -1,6 +0,0 @@
1
- import{c as u,j as e,e as p,B as c,E as x,I as j,P as v}from"./index-DFcWlnzl.js";import{L as r}from"./label-DBuh-ke5.js";import{S as y,a as S,b as f,c as g,d as b}from"./select-44mcS2_G.js";/**
2
- * @license lucide-react v0.542.0 - ISC
3
- *
4
- * This source code is licensed under the ISC license.
5
- * See the LICENSE file in the root directory of this source tree.
6
- */const k=[["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"m3 7 2 2 4-4",key:"1obspn"}],["path",{d:"M13 6h8",key:"15sg57"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 18h8",key:"oe0vm4"}]],E=u("list-checks",k),I=[{value:"pending",label:"Pending"},{value:"in-progress",label:"In Progress"},{value:"completed",label:"Completed"},{value:"failed",label:"Blocked / Failed"}],N=()=>typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():`step-${Date.now()}-${Math.floor(Math.random()*1e3)}`;function L({steps:l,onChange:i,disabled:n,className:o}){const d=(a,t)=>{i(l.map(s=>s.id===a?{...s,...t}:s))},h=a=>{i(l.filter(t=>t.id!==a))},m=()=>{i([...l,{id:N(),description:"",status:"pending"}])};return e.jsxs("div",{className:p("space-y-4",o),children:[l.length===0&&e.jsx("p",{className:"text-sm text-muted-foreground",children:"Break the work down into actionable steps."}),l.map((a,t)=>e.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("p",{className:"text-sm font-semibold",children:["Step ",t+1]}),e.jsx(c,{type:"button",variant:"ghost",size:"icon",onClick:()=>h(a.id),disabled:n,"aria-label":`Remove step ${t+1}`,children:e.jsx(x,{className:"h-4 w-4"})})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{htmlFor:`${a.id}-description`,children:"Description"}),e.jsx(j,{id:`${a.id}-description`,value:a.description,onChange:s=>d(a.id,{description:s.target.value}),placeholder:"What needs to be done?",disabled:n})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{htmlFor:`${a.id}-status`,children:"Status"}),e.jsxs(y,{value:a.status,onValueChange:s=>d(a.id,{status:s}),disabled:n,children:[e.jsx(S,{id:`${a.id}-status`,children:e.jsx(f,{placeholder:"Select status"})}),e.jsx(g,{children:I.map(s=>e.jsx(b,{value:s.value,children:s.label},s.value))})]})]})]},a.id)),e.jsxs(c,{type:"button",variant:"outline",onClick:m,disabled:n,children:[e.jsx(v,{className:"mr-2 h-4 w-4"}),"Add Step"]})]})}export{L as I,E as L};
@@ -1,90 +0,0 @@
1
- import{u as X,q as Z,a as ee,s as te,r as n,A,j as e,B as j,L as E,I as y,a0 as se,y as ae,H as ie,J as ne,N as re,O as oe,Q as le,R as ce,U as de}from"./index-DFcWlnzl.js";import{C as he,b as ue,c as me,a as pe}from"./card-BcPlIAH5.js";import{L as h}from"./label-DBuh-ke5.js";import{M as ge}from"./markdown-editor-B4YNQFT2.js";import{S as F,a as L,b as P,c as I,d as r}from"./select-44mcS2_G.js";import{C as xe}from"./CollapsibleSection-M5cXbl92.js";import{I as fe,L as je}from"./ImplementationStepsEditor-HliLQav5.js";import{T as ye}from"./TagInput-C6lI-ePr.js";import{A as ve}from"./arrow-left-1S-835kP.js";import"./chevron-up-CqM3won3.js";import"./badge-BUEY53dV.js";const R={feature:{name:"New Feature",content:`## Problem Statement
2
- Describe the problem this new feature addresses.
3
-
4
- ## Proposed Solution
5
- Describe the solution you're proposing.
6
-
7
- ### Key Features
8
- - Feature 1
9
- - Feature 2
10
- - Feature 3
11
-
12
- ## Implementation Details
13
- Describe the technical implementation approach.
14
-
15
- ## Testing Strategy
16
- - [ ] Unit tests
17
- - [ ] Integration tests
18
- - [ ] Manual testing
19
-
20
- ## Rollout Plan
21
- 1. Development and testing
22
- 2. Staging deployment
23
- 3. Production rollout
24
-
25
- ## Success Metrics
26
- Define how you'll measure the success of this change.`},"quick-change":{name:"Quick Change",content:`## Overview
27
- Describe the quick change you're proposing.`},"bug-fix":{name:"Bug Fix",content:`## Bug Description
28
- Describe the bug that needs to be fixed.
29
-
30
- ## Steps to Reproduce
31
- 1. Step 1
32
- 2. Step 2
33
- 3. Step 3
34
-
35
- ## Expected Behavior
36
- Describe what should happen.
37
-
38
- ## Actual Behavior
39
- Describe what currently happens.
40
-
41
- ## Root Cause Analysis
42
- Explain the underlying cause of the bug.
43
-
44
- ## Proposed Fix
45
- Describe the solution to fix the bug.
46
-
47
- ## Testing Plan
48
- - [ ] Verify fix resolves the original issue
49
- - [ ] Test edge cases
50
- - [ ] Regression testing
51
-
52
- ## Risk Assessment
53
- - Impact: Low/Medium/High
54
- - Complexity: Low/Medium/High
55
- - Risk of introducing new bugs: Low/Medium/High`},refactor:{name:"Refactor",content:`## Current State
56
- Describe what needs to be refactored and why.
57
-
58
- ## Refactoring Goals
59
- - Improve code readability
60
- - Reduce complexity
61
- - Enhance maintainability
62
-
63
- ## Proposed Changes
64
- Describe the refactoring approach.
65
-
66
- ## Risk Assessment
67
- - Breaking changes: None/Low/Medium/High
68
- - Testing strategy for regression prevention`},documentation:{name:"Documentation",content:`## Documentation Gap
69
- What documentation is missing or outdated?
70
-
71
- ## Proposed Updates
72
- - [ ] API documentation
73
- - [ ] User guides
74
- - [ ] Code comments
75
- - [ ] README updates
76
-
77
- ## Target Audience
78
- Who will benefit from these documentation changes?`},"security-fix":{name:"Security Fix",content:`## Security Issue
79
- Brief description (avoid sensitive details).
80
-
81
- ## Impact Assessment
82
- - Severity: Low/Medium/High/Critical
83
- - Affected components
84
- - User impact
85
-
86
- ## Proposed Fix
87
- High-level approach to resolution.
88
-
89
- ## Verification Plan
90
- How to confirm the fix works without exposing the vulnerability.`}},M="feature";function Pe(){const B=X(),H=Z(),{toast:v}=ee(),{user:u,authEnabled:S}=te(),[c,w]=n.useState(!1),[U,q]=n.useState(M),[O,p]=n.useState(!1),[C,g]=n.useState(null),b=H.state,N=b?.description||R[M].content,$=b?.title||"",[a,l]=n.useState({title:$,description:N,priority:"medium",author:{id:"current-user",name:"",email:""}}),[m,V]=n.useState([]),[D,z]=n.useState([]),[K,_]=n.useState(N),x=n.useCallback(t=>{if((t.metaKey||t.ctrlKey)&&t.key==="Enter"&&(t.preventDefault(),!c&&a.title)){const s=document.querySelector("form");s&&s.requestSubmit()}},[c,a.title]),Q=a.description!==K,W=t=>{Q?(g(t),p(!0)):k(t)},k=t=>{const s=R[t];q(t),l(i=>({...i,description:s.content})),_(s.content)},G=()=>{C&&(k(C),g(null)),p(!1)},J=()=>{g(null),p(!1)};n.useEffect(()=>(document.addEventListener("keydown",x),()=>{document.removeEventListener("keydown",x)}),[x]);const T=n.useCallback(async()=>{try{const s=await(await fetch(`${A}/api/v1/user/settings`)).json();if(s.success&&s.data){const{profile:i}=s.data;l(d=>({...d,author:{...d.author,name:i?.firstName&&i?.lastName?`${i.firstName} ${i.lastName}`.trim():i?.firstName||i?.lastName||d.author.name,email:i?.email||d.author.email}}))}}catch(t){console.error("Failed to load user settings:",t)}},[]);n.useEffect(()=>{S?u&&l(t=>({...t,author:{...t.author,id:u.id||t.author.id,name:u.name||t.author.name,email:u.email||t.author.email}})):T()},[S,u,T]);const Y=async t=>{t.preventDefault(),w(!0);try{const s=m.map(o=>({id:o.id,description:o.description.trim(),status:o.status})).filter(o=>o.description.length>0),i=D.map(o=>o.trim()).filter(o=>o.length>0),d={title:a.title,author:{...a.author,type:"human"},planSteps:s,metadata:{priority:a.priority,tags:i},content:a.description},f=await(await fetch(`${A}/api/v1/tasks`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(d)})).json();if(f.success)v({title:"Success",description:"Task created successfully."}),B(`/tasks/${f.data.id}`);else throw new Error(f.error?.message||"Failed to create task")}catch(s){const i=s instanceof Error?s.message:"Unknown error occurred";v({title:"Error",description:`Error creating task: ${i}`,variant:"destructive"})}finally{w(!1)}};return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"text-2xl font-bold tracking-tight",children:"New Task"}),e.jsx("p",{className:"text-muted-foreground",children:"Create a new task"})]}),e.jsx("div",{className:"flex items-center gap-2",children:e.jsx(j,{variant:"ghost",size:"sm",asChild:!0,children:e.jsx(E,{to:"/tasks",className:"flex items-center gap-1 text-muted-foreground hover:text-foreground transition-colors",children:e.jsx(ve,{className:"h-4 w-4"})})})})]}),e.jsx("form",{onSubmit:Y,children:e.jsxs(he,{children:[e.jsx(ue,{children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(me,{children:"Task Details"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(h,{htmlFor:"template-select",className:"text-sm text-muted-foreground",children:"Template:"}),e.jsxs(F,{value:U,onValueChange:W,children:[e.jsx(L,{className:"w-36",children:e.jsx(P,{})}),e.jsxs(I,{children:[e.jsx(r,{value:"feature",children:"New Feature"}),e.jsx(r,{value:"quick-change",children:"Quick Change"}),e.jsx(r,{value:"bug-fix",children:"Bug Fix"}),e.jsx(r,{value:"refactor",children:"Refactor"}),e.jsx(r,{value:"documentation",children:"Documentation"}),e.jsx(r,{value:"security-fix",children:"Security Fix"})]})]})]})]})}),e.jsxs(pe,{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(h,{htmlFor:"title",children:"Title *"}),e.jsx(y,{id:"title",placeholder:"Brief overview of the task",value:a.title,onChange:t=>l(s=>({...s,title:t.target.value})),required:!0})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(h,{htmlFor:"description",children:"Description"}),e.jsx(ge,{value:a.description,onChange:t=>l(s=>({...s,description:t||""})),placeholder:"Write your task description in markdown...",height:300})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(h,{htmlFor:"author-name",children:"Author Name"}),e.jsx(y,{id:"author-name",value:a.author.name,onChange:t=>l(s=>({...s,author:{...s.author,name:t.target.value}})),required:!0})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(h,{htmlFor:"author-email",children:"Author Email"}),e.jsx(y,{id:"author-email",type:"email",value:a.author.email,onChange:t=>l(s=>({...s,author:{...s.author,email:t.target.value}}))})]})]}),e.jsx(xe,{icon:e.jsx(je,{className:"h-4 w-4"}),title:"Optional Implementation Detail",children:e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(h,{htmlFor:"priority",children:"Priority"}),e.jsxs(F,{value:a.priority,onValueChange:t=>l(s=>({...s,priority:t})),children:[e.jsx(L,{children:e.jsx(P,{placeholder:"Select priority"})}),e.jsxs(I,{children:[e.jsx(r,{value:"low",children:"Low"}),e.jsx(r,{value:"medium",children:"Medium"}),e.jsx(r,{value:"high",children:"High"}),e.jsx(r,{value:"critical",children:"Critical"})]})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-baseline justify-between gap-4",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:"Implementation Steps"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Break the change into actionable steps."})]}),m.length>0&&e.jsxs("span",{className:"text-xs text-muted-foreground",children:[m.length," step",m.length===1?"":"s"]})]}),e.jsx(fe,{steps:m,onChange:V,disabled:c})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"text-sm font-medium",children:"Tags"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Use tags to categorize this task by area, team, or priority."}),e.jsx(ye,{tags:D,onChange:z,disabled:c,placeholder:"Add a tag (e.g. frontend, infra)"})]})]})}),e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsx(j,{type:"button",variant:"outline",asChild:!0,children:e.jsx(E,{to:"/tasks",children:"Cancel"})}),e.jsx(j,{type:"submit",disabled:c||!a.title,className:"relative",children:c?e.jsx(e.Fragment,{children:"Creating..."}):e.jsxs(e.Fragment,{children:[e.jsx(se,{className:"mr-2 h-4 w-4"}),"Create Task",e.jsx("span",{className:"ml-2 text-xs opacity-60 font-mono",children:"⌘↵"})]})})]})]})]})}),e.jsx(ae,{open:O,onOpenChange:p,children:e.jsxs(ie,{children:[e.jsxs(ne,{children:[e.jsx(re,{children:"Switch Template?"}),e.jsx(oe,{children:"You have unsaved changes to your task description. Switching templates will replace your current content with the new template. This action cannot be undone."})]}),e.jsxs(le,{children:[e.jsx(ce,{onClick:J,children:"Cancel"}),e.jsx(de,{onClick:G,children:"Switch Template"})]})]})})]})}export{Pe as NewTaskPage};
@@ -1,17 +0,0 @@
1
- function p(e){return e.replace(/`/g,"'").replace(/[\u2018\u2019]/g,"'").replace(/[\u201C\u201D]/g,'"')}const k="Use .nut/context/project.md and .nut/context/architecture.md for reference.";function d(e,s,t,o=!0){const n=[];return o&&(n.push(["## Task","","- Review and begin working on the following task:",` .nut/tasks/${e}.md`,"- Retrieve your firstName, lastName, and email address from: .nut/config.json and use this identity to address yourself in any task updates, comments, git commits, etc."].join(`
2
- `)),n.push(["## Task Lifecycle","",`- Before beginning any work: nut task update ${e} --status active`,`- Add appropriate steps with: nut task step ${e} "Step description" --author "firstName lastName"`,"",`- If you need human clarification or input: nut task update ${e} --status blocked. The clarification can be communicated as follows: nut task comment ${e} "Comments here" --author "firstName lastName". At this point please stop work.`,"",`- When implementation is complete and ready for approval: nut task update ${e} --status review`,`- Only mark the task complete once approval criteria are satisfied: nut task update ${e} --status done`].join(`
3
- `)),n.push(["## Abilities","","- The following abilities are at your disposal and should be factored into the plan where appropriate (each command has its own --help):"," - Work with knowledge documents (used for the output of any research-centric tasks):",' - nut knowledge create "Quick Note" --content "# Quick Note\\n\\nSome content here"'," - nut knowledge list"," - nut knowledge get example-filename.md",' - nut knowledge update example-filename.md --content "# Quick Note\\n\\nSome content here"'," - Creating media such as images, audio, or video or adding existing files to the resource library:"," - nut resource ls"," - nut resource add ./screenshot.png",' - nut resource image "A serene morning in Tokyo" --save',' - nut resource audio "Welcome to the future" --save'," - Using available skills (specialized, reusable, and portable modules). There is also an official registry you can pull from:"," - nut skill list"," - nut skill registry list","- Similarly, the following are available: git, gh, node, python"].join(`
4
- `)),n.push(["## Operational Rules","","- DO use the nut CLI to update task status as progress changes"," (nut --help or nut task --help for details)","- DO NOT edit files outside the scope of the approved task (unless instructed by the Additional Instructions below)"].join(`
5
- `))),s.length>0&&n.push(["## Skills","",`Prioritize using these skills:
6
- `,...s.map(i=>`- ${i}`)].join(`
7
- `)),t&&t.trim()&&n.push(["## Added Instruction","",t.trim()].join(`
8
- `)),[n.join(`
9
-
10
- `)]}function m(e,s,t){const o=[];return o.push(["## Your Task","",`- Review the following task (including all the existing comments and implementation steps) to ensure you have enough information and resources (skills, tools, access, etc) to successfully complete it: .nut/tasks/${e}.md`,"- Note: DO NOT start any work at this stage, this is only a preparatory assessment phase.","- Retrieve your firstName, lastName, and email address from: .nut/config.json and use this identity to address yourself in any task updates, comments, etc.",`- Add a readiness score between 0 and 100 where 100 is total confidence that you could complete the task without any mistakes or further user input: nut task update ${e} --readiness <score>`,`- Add a comment that communicates your readiness and any other relevant information: nut task comment ${e} "Comment here" --author "firstName lastName".`,`- If your readiness score is high enough, add appropriate implementation steps with: nut task step ${e} "Step description"`,"- Of particular importance is whether it would make sense to decompose this into separate tasks, although DO NOT do this without user confirmation first.",`- Finally, update the task status to either 'ready' or 'blocked' based on your assessment: nut task update ${e} --status [ready|blocked]`].join(`
11
- `)),o.push(["## Abilities","","- The following abilities are at your disposal and should be factored into the plan where appropriate (note that each command has its own --help for more details):"," - Work with knowledge documents (used for the output of any research-centric tasks):",' - nut knowledge create "Quick Note" --content "# Quick Note\\n\\nSome content here"'," - nut knowledge list"," - nut knowledge get example-filename.md"," - Creating media such as images, audio, or video:"," - nut resource"," - Using available skills (specialized, reusable, and portable modules). There is also an official registry you can pull from:"," - nut skill list"," - nut skill registry list","- Similarly, the following are available: git, gh, node, python"].join(`
12
- `)),o.push(["## Operational Rules","","- DO NOT use 'npx' when running the nut CLI","- DO use the nut CLI to update task status as progress changes"," (nut --help or nut task --help for details)","- DO NOT edit files outside the scope of the approved task (unless instructed by the Additional Instructions below)"].join(`
13
- `)),s.length>0&&o.push(["## Skills","","These skills are available to you if needed (if you are able to test access, etc without any writes please do so):",...s.map(n=>`- ${n}`)].join(`
14
- `)),t&&t.trim()&&o.push(["## Added Instruction","",t.trim()].join(`
15
- `)),[o.join(`
16
-
17
- `)]}function h(e,s){const t=[];return t.push(k),e.length>0&&t.push(`Please use these skills: ${e.join(", ")}`),s&&s.trim()&&t.push(`Additional instruction: ${s.trim()}`),t}const f=e=>{const s=e.selectedSkillIds.map(l=>`.nut/skills/${l}/SKILL.md`),t=e.customInstruction?p(e.customInstruction):e.customInstruction,n=(e.contextType==="change-task"?d(e.taskId,s,t,e.includeDefaultInstructions??!0):e.contextType==="prepare-task"?m(e.taskId,s,t):h(s,t)).join(" "),i=[e.automationEnabled?"--dangerously-skip-permissions":""].filter(Boolean).join(" "),a=e.selectedMcpServers.map(l=>`'${l.replace(/'/g,"'\\''")}'`).join(","),u=[JSON.stringify(n)].concat(i?[JSON.stringify("--dangerously-skip-permissions")]:[]);return`node -e "${`const fs=require('fs'),{spawn}=require('child_process');const s=new Set([${a}]);const c=require('./.nut/mcp/config.json');const filtered=Object.entries(c.mcpServers||{}).filter(([k])=>s.has(k)).map(([k,v])=>[k,{...v,type:v.type||(v.url?'http':'stdio')}]);const o={mcpServers:Object.fromEntries(filtered)};fs.writeFileSync('.mcp.json',JSON.stringify(o,null,2));const p=spawn('claude',[${u.join(",")}],{stdio:'inherit'});p.on('exit',code=>process.exit(code));`.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`},y=e=>{const s=e.selectedSkillIds.map(c=>`.nut/skills/${c}/SKILL.md`),t=e.customInstruction?p(e.customInstruction):e.customInstruction,n=(e.contextType==="change-task"?d(e.taskId,s,t,e.includeDefaultInstructions??!0):e.contextType==="prepare-task"?m(e.taskId,s,t):h(s,t)).join(" ");return`node -e "${`const fs=require('fs'),path=require('path'),{spawn}=require('child_process');const s=new Set([${e.selectedMcpServers.map(c=>`'${c.replace(/'/g,"'\\''")}'`).join(",")}]);const c=require('./.nut/mcp/config.json');const geminiPath=path.join(require('os').homedir(),'.gemini','settings.json');let settings={};try{settings=JSON.parse(fs.readFileSync(geminiPath,'utf8'))}catch(e){}settings.mcpServers=Object.fromEntries(Object.entries(c.mcpServers||{}).filter(([k])=>s.has(k)));fs.writeFileSync(geminiPath,JSON.stringify(settings,null,2));const p=spawn('gemini',['-i',${JSON.stringify(n)}],{stdio:'inherit'});p.on('exit',code=>process.exit(code));`.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`},g=e=>{const s=e.selectedSkillIds.map(r=>`.nut/skills/${r}/SKILL.md`),t=e.customInstruction?p(e.customInstruction):e.customInstruction,n=(e.contextType==="change-task"?d(e.taskId,s,t,e.includeDefaultInstructions??!0):e.contextType==="prepare-task"?m(e.taskId,s,t):h(s,t)).join(" "),i=e.selectedMcpServers.map(r=>`'${r.replace(/'/g,"'\\''")}'`).join(","),a=[JSON.stringify(n)].concat(e.automationEnabled?[JSON.stringify("--dangerously-bypass-approvals-and-sandbox")]:[]);return`node -e "${`const fs=require('fs'),{spawn}=require('child_process');const s=new Set([${i}]);const c=require('./.nut/mcp/config.json');const filtered=Object.entries(c.mcpServers||{}).filter(([k])=>s.has(k)).map(([k,v])=>[k,{...v,type:v.type||(v.url?'http':'stdio')}]);const o={mcpServers:Object.fromEntries(filtered)};fs.writeFileSync('.mcp.json',JSON.stringify(o,null,2));const p=spawn('codex',[${a.join(",")}],{stdio:'inherit'});p.on('exit',code=>process.exit(code));`.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`},w=e=>{const s=e.selectedSkillIds.map(r=>`.nut/skills/${r}/SKILL.md`),t=e.customInstruction?p(e.customInstruction):e.customInstruction,n=(e.contextType==="change-task"?d(e.taskId,s,t,e.includeDefaultInstructions??!0):e.contextType==="prepare-task"?m(e.taskId,s,t):h(s,t)).join(" "),i=e.selectedMcpServers.map(r=>`'${r.replace(/'/g,"'\\''")}'`).join(","),a=[JSON.stringify(n)];return`node -e "${`const fs=require('fs'),{spawn}=require('child_process');const s=new Set([${i}]);const c=require('./.nut/mcp/config.json');const filtered=Object.entries(c.mcpServers||{}).filter(([k])=>s.has(k)).map(([k,v])=>[k,{...v,type:v.type||(v.url?'http':'stdio')}]);const o={mcpServers:Object.fromEntries(filtered)};fs.writeFileSync('.mcp.json',JSON.stringify(o,null,2));const p=spawn('droid',[${a.join(",")}],{stdio:'inherit'});p.on('exit',code=>process.exit(code));`.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`},S=e=>{const s=e.selectedSkillIds.map(l=>`.nut/skills/${l}/SKILL.md`),t=e.customInstruction?p(e.customInstruction):e.customInstruction,n=(e.contextType==="change-task"?d(e.taskId,s,t,e.includeDefaultInstructions??!0):e.contextType==="prepare-task"?m(e.taskId,s,t):h(s,t)).join(" "),i=e.selectedMcpServers.map(l=>`'${l.replace(/'/g,"'\\''")}'`).join(","),u=["'chat'",...e.automationEnabled?["'--no-interactive'","'--trust-all-tools'"]:[],JSON.stringify(n)];return`node -e "${`const fs=require('fs'),{spawn}=require('child_process');const s=new Set([${i}]);const c=require('./.nut/mcp/config.json');const filtered=Object.entries(c.mcpServers||{}).filter(([k])=>s.has(k)).map(([k,v])=>[k,{...v,type:v.type||(v.url?'http':'stdio')}]);const o={mcpServers:Object.fromEntries(filtered)};fs.writeFileSync('.mcp.json',JSON.stringify(o,null,2));const p=spawn('kiro-cli',[${u.join(",")}],{stdio:'inherit'});p.on('exit',code=>process.exit(code));`.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`};export{S as a,f as b,w as c,g as d,y as e};
@@ -1 +0,0 @@
1
- const c=["draft","backlog","ready","queued","active","blocked","review","done","canceled","duplicate"],t=["draft","backlog","ready","queued","active","blocked","review"];function d(e){return{draft:"Draft",backlog:"Backlog",ready:"Ready",queued:"Queued",active:"Active",blocked:"Blocked",review:"Review",done:"Done",canceled:"Canceled",duplicate:"Duplicate"}[e]??e}function r(e){switch(e){case"ready":case"done":return"default";case"review":case"active":case"queued":return"secondary";case"canceled":case"blocked":case"duplicate":return"destructive";default:return"outline"}}export{t as A,c as T,d as a,r as g};