@nextclaw/ui 0.24.2 → 0.24.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/.vite/manifest.json +517 -517
  3. package/dist/assets/{account-panel-BxMlLXYH.js → account-panel-BRTSwNvA.js} +1 -1
  4. package/dist/assets/{api-Utt-xzrT.js → api-BnUzdltV.js} +5 -5
  5. package/dist/assets/{app-data-DYXDL6X2.js → app-data-Bjh_zM45.js} +1 -1
  6. package/dist/assets/app-presenter-provider-CBt-lyr_.js +109 -0
  7. package/dist/assets/{appearance-settings-page-BfYznAK5.js → appearance-settings-page-BrOYSgG0.js} +1 -1
  8. package/dist/assets/{book-open-DDW_3XpM.js → book-open-xqEj1OLE.js} +1 -1
  9. package/dist/assets/{boxes-DwJeuK_h.js → boxes-D6uPnkGo.js} +1 -1
  10. package/dist/assets/{card-IevY2nm-.js → card-CS8su2Zh.js} +1 -1
  11. package/dist/assets/{channels-list-page-DitnqbMR.js → channels-list-page-BE0TxB3B.js} +1 -1
  12. package/dist/assets/{chevron-down-An7Km-t4.js → chevron-down-BL-yMYcX.js} +1 -1
  13. package/dist/assets/{circle-alert-CDXqELuo.js → circle-alert-lSa3LRvS.js} +1 -1
  14. package/dist/assets/{circle-dashed-CapXEpiV.js → circle-dashed-CU3yApvP.js} +1 -1
  15. package/dist/assets/{client-B0krol7A.js → client-BtGBwLTs.js} +1 -1
  16. package/dist/assets/{config-split-page-BtnkqWVp.js → config-split-page-BxDwwAGa.js} +1 -1
  17. package/dist/assets/{confirm-dialog-DFt4jpN7.js → confirm-dialog-S5JxZcS1.js} +1 -1
  18. package/dist/assets/{createLucideIcon-BTHK0Ot9.js → createLucideIcon-BNKf0_kc.js} +1 -1
  19. package/dist/assets/{desktop-capabilities-page-CCf14WId.js → desktop-capabilities-page-BwHxJpbl.js} +1 -1
  20. package/dist/assets/{desktop-update-config-DVoVgfFi.js → desktop-update-config-Bfg7OdJ2.js} +1 -1
  21. package/dist/assets/{dialog-BFN_1DBH.js → dialog-Xe73hpQz.js} +1 -1
  22. package/dist/assets/{dist-Bc9hOVNN.js → dist-BiIcnf9j.js} +1 -1
  23. package/dist/assets/{dist-CEhIDAnr.js → dist-C5I0v8Qn.js} +1 -1
  24. package/dist/assets/{dist-hkVPP1th.js → dist-czPa8xFO.js} +1 -1
  25. package/dist/assets/doc-browser-BgRP0Wni.js +1 -0
  26. package/dist/assets/{doc-browser-BNUxmwD6.js → doc-browser-C8eqJLi_.js} +1 -1
  27. package/dist/assets/{doc-browser-context-C4yQrKrH.js → doc-browser-context-BPCDFcC-.js} +1 -1
  28. package/dist/assets/{ellipsis-BRI6ROeu.js → ellipsis-C5YXdOUx.js} +1 -1
  29. package/dist/assets/{es2015-MOCbM0Eu.js → es2015-cuwbYI-l.js} +1 -1
  30. package/dist/assets/{extensions-DxUBMtHW.js → extensions-DgKQRebe.js} +1 -1
  31. package/dist/assets/{eye-cnynUDGt.js → eye-C84inPcV.js} +1 -1
  32. package/dist/assets/{form-actions-gQ0JEUwB.js → form-actions-AIdXOoCL.js} +1 -1
  33. package/dist/assets/{i18n-B9yXA8KO.js → i18n-CKvm9zyk.js} +2 -2
  34. package/dist/assets/{i18n-provider-BYBJua91.js → i18n-provider-CPV43pMX.js} +1 -1
  35. package/dist/assets/loader-circle-K1BDdHR5.js +1 -0
  36. package/dist/assets/login-page-ClcrvN04.js +1 -0
  37. package/dist/assets/{login-page-CqrHhzaN.js → login-page-DeDQjVxv.js} +1 -1
  38. package/dist/assets/{logo-badge-Cr03YceJ.js → logo-badge-C-5-zim6.js} +1 -1
  39. package/dist/assets/main-DGqlaAaI.css +1 -0
  40. package/dist/assets/main-i18n-catalog.config-CpNF5aVc.js +1 -0
  41. package/dist/assets/main-nMVfHb5K.js +2 -0
  42. package/dist/assets/{mcp-marketplace-page-CifiVgFD.js → mcp-marketplace-page-CWjJGp_D.js} +1 -1
  43. package/dist/assets/mcp-marketplace-page-fvu2NcXT.js +1 -0
  44. package/dist/assets/{model-config-page-C6jVNbSj.js → model-config-page-Dv_zE7HN.js} +1 -1
  45. package/dist/assets/{navigation-link-kbCLRSr_.js → navigation-link-BAQjgx2F.js} +1 -1
  46. package/dist/assets/panel-app-i18n-catalog.config-BzxE3tZb.js +1 -0
  47. package/dist/assets/{panelStandalone-DMBnYyTw.js → panelStandalone-CFRBHV94.js} +2 -2
  48. package/dist/assets/plus-LA8-jpxP.js +1 -0
  49. package/dist/assets/{popover-XVDgjxcl.js → popover-NkrFlWHp.js} +1 -1
  50. package/dist/assets/{privacy-settings-page-BN27MBVA.js → privacy-settings-page-D6uc9f-A.js} +1 -1
  51. package/dist/assets/projects-BD1rG75R.js +1 -0
  52. package/dist/assets/{provider-scoped-model-input-BGZMCThn.js → provider-scoped-model-input-DUa_9uwg.js} +1 -1
  53. package/dist/assets/{providers-config-page-D5aBwbOD.js → providers-config-page-DAiqxlF_.js} +1 -1
  54. package/dist/assets/{puzzle-D5Dhacmb.js → puzzle-D6gulz7u.js} +1 -1
  55. package/dist/assets/{pwa-ClQK56Qe.js → pwa-C_Zte1xe.js} +1 -1
  56. package/dist/assets/{refresh-cw-Bw5BY7vp.js → refresh-cw-h9Xq3LY3.js} +1 -1
  57. package/dist/assets/remote-BO0QP7ua.js +1 -0
  58. package/dist/assets/{rotate-cw-BksCLAeE.js → rotate-cw-B6xm41Wn.js} +1 -1
  59. package/dist/assets/runtime-config-page-w1UAkGF_.js +1 -0
  60. package/dist/assets/{save-CVi8VWzb.js → save-fff_WpY2.js} +1 -1
  61. package/dist/assets/{search-DN-f7IIC.js → search-CUe41wjm.js} +1 -1
  62. package/dist/assets/{search-config-page-BmuZTVxs.js → search-config-page-3xbhRlW2.js} +1 -1
  63. package/dist/assets/{secrets-config-page-NPHpg9sb.js → secrets-config-page-Dn8_rdOj.js} +1 -1
  64. package/dist/assets/security-config-Y1nEGM3A.js +1 -0
  65. package/dist/assets/{select-CmDTqk2C.js → select-CG5YWnwe.js} +1 -1
  66. package/dist/assets/{service-apps-panel-BYGJ9_pO.js → service-apps-panel-CGc04aMn.js} +1 -1
  67. package/dist/assets/{settings-2-B62YtZon.js → settings-2-CE3ELQyk.js} +1 -1
  68. package/dist/assets/skeleton-BL9h32W7.js +1 -0
  69. package/dist/assets/{tabs-Bk_mG7ql.js → tabs-BuE0qKMh.js} +1 -1
  70. package/dist/assets/{tag-chip-DgqKlI5D.js → tag-chip-BDzpHEli.js} +1 -1
  71. package/dist/assets/{theme-provider-CeBY2pyu.js → theme-provider-B6FinATQ.js} +1 -1
  72. package/dist/assets/{tooltip-CgGbBdYf.js → tooltip-DYcuWhuP.js} +1 -1
  73. package/dist/assets/{trash-2-CVOev8yc.js → trash-2-BPPYt2NV.js} +1 -1
  74. package/dist/assets/{use-config-b2DN67gs.js → use-config-BPUM2lbo.js} +1 -1
  75. package/dist/assets/{use-desktop-capabilities-B3tLU1yl.js → use-desktop-capabilities-BDjArQP3.js} +1 -1
  76. package/dist/assets/{use-panel-app-scroll-restoration-BekzoX6z.js → use-panel-app-scroll-restoration-DsV1IJx-.js} +1 -1
  77. package/dist/assets/{use-viewport-layout-CUA3jQsA.js → use-viewport-layout-BS18drMT.js} +1 -1
  78. package/dist/assets/{utils-UBHTdG5Q.js → utils-CBZPzC_b.js} +1 -1
  79. package/dist/assets/x-DdXOqLnX.js +1 -0
  80. package/dist/index.html +50 -50
  81. package/dist/panel-standalone.html +15 -15
  82. package/package.json +3 -3
  83. package/src/features/chat/features/message/utils/__tests__/chat-message-timeline.utils.test.ts +10 -0
  84. package/src/features/chat/features/session/components/__tests__/chat-sidebar-project-groups.test.tsx +90 -6
  85. package/src/features/chat/features/session/components/chat-sidebar-project-groups.tsx +64 -2
  86. package/src/features/panel-apps/components/__tests__/panel-app-open-standalone-menu-item.test.tsx +3 -2
  87. package/src/features/panel-apps/components/panel-app-open-standalone-menu-item.tsx +4 -1
  88. package/src/features/projects/AGENTS.md +1 -2
  89. package/src/features/projects/components/project-agreement.tsx +36 -77
  90. package/src/features/projects/components/project-artifacts.test.tsx +90 -62
  91. package/src/features/projects/components/project-artifacts.tsx +81 -160
  92. package/src/features/projects/components/project-materials.test.tsx +80 -0
  93. package/src/features/projects/components/project-overview.test.tsx +50 -40
  94. package/src/features/projects/components/project-overview.tsx +5 -4
  95. package/src/features/projects/components/project-skills.tsx +24 -14
  96. package/src/features/projects/components/work/project-work-item-drawer.test.tsx +3 -2
  97. package/src/features/projects/components/work/project-work-items.test.tsx +13 -1
  98. package/src/features/projects/components/work/project-work-items.tsx +7 -7
  99. package/src/features/projects/hooks/use-project-materials.test.tsx +65 -0
  100. package/src/features/projects/hooks/use-project-materials.ts +24 -0
  101. package/src/features/projects/hooks/use-project-work.test.tsx +57 -1
  102. package/src/features/projects/hooks/use-project-work.ts +11 -5
  103. package/src/features/projects/pages/project-home-page.tsx +51 -127
  104. package/src/features/projects/pages/projects-page.test.tsx +68 -75
  105. package/src/features/projects/presenters/project-home.presenter.test.ts +1 -64
  106. package/src/features/projects/presenters/project-home.presenter.ts +17 -54
  107. package/src/features/projects/utils/project-artifact-view.utils.test.ts +0 -46
  108. package/src/features/projects/utils/project-artifact-view.utils.ts +0 -47
  109. package/src/shared/lib/i18n/locales/en-US/projects.json +8 -59
  110. package/src/shared/lib/i18n/locales/zh-CN/projects.json +8 -59
  111. package/dist/assets/app-presenter-provider-CLsFiXvV.js +0 -109
  112. package/dist/assets/doc-browser-w4eGZXLu.js +0 -1
  113. package/dist/assets/loader-circle-rWr5Yo0E.js +0 -1
  114. package/dist/assets/login-page-CfMSkOsg.js +0 -1
  115. package/dist/assets/main-8cVkMfgE.css +0 -1
  116. package/dist/assets/main-Bys58GxY.js +0 -2
  117. package/dist/assets/main-i18n-catalog.config-BSq9yiUQ.js +0 -1
  118. package/dist/assets/mcp-marketplace-page-DX5VE3mU.js +0 -1
  119. package/dist/assets/panel-app-i18n-catalog.config-C2St67SP.js +0 -1
  120. package/dist/assets/plus-BHnKwuPq.js +0 -1
  121. package/dist/assets/projects-DV3UuJMS.js +0 -1
  122. package/dist/assets/remote-Bl005fzu.js +0 -1
  123. package/dist/assets/runtime-config-page-CmktQcMW.js +0 -1
  124. package/dist/assets/security-config-Djptuyf2.js +0 -1
  125. package/dist/assets/skeleton-Eh64l4T2.js +0 -1
  126. package/dist/assets/x-C0iaOsRW.js +0 -1
  127. package/src/features/projects/components/project-requests.tsx +0 -57
  128. package/src/features/projects/components/project-runs.tsx +0 -60
  129. package/src/features/projects/hooks/use-project-observation.test.tsx +0 -93
  130. package/src/features/projects/hooks/use-project-observation.ts +0 -115
  131. package/src/features/projects/utils/project-request-response.utils.test.ts +0 -44
  132. package/src/features/projects/utils/project-request-response.utils.ts +0 -39
@@ -1 +1 @@
1
- import{i as e}from"./chunk-DF37yw5_.js";import{A as t,M as n}from"./utils-UBHTdG5Q.js";import{Gt as r,Wt as i,Yt as a}from"./api-Utt-xzrT.js";import{S as o}from"./mcp-marketplace-page-CifiVgFD.js";import{W as s,ft as c,nt as l,r as u}from"./app-presenter-provider-CLsFiXvV.js";import{n as d,s as f}from"./i18n-B9yXA8KO.js";import{t as p}from"./createLucideIcon-BTHK0Ot9.js";import{i as m}from"./use-viewport-layout-CUA3jQsA.js";import{a as h,n as g,o as _,r as v,t as y}from"./dialog-BFN_1DBH.js";var b=p(`LogOut`,[[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,key:`1uf3rs`}],[`polyline`,{points:`16 17 21 12 16 7`,key:`1gabdz`}],[`line`,{x1:`21`,x2:`9`,y1:`12`,y2:`12`,key:`1uyos4`}]]),x=e(n(),1),S=t();function C({label:e,value:t}){return(0,S.jsxs)(`div`,{className:`flex items-start justify-between gap-4 py-2 text-sm`,children:[(0,S.jsx)(`span`,{className:`text-gray-500`,children:e}),(0,S.jsx)(`span`,{className:`text-right text-gray-900`,children:t?.trim()||`-`})]})}function w(e){let{email:t,username:n,role:s,canSubmitUsername:c,savingUsername:u,usernameDraft:d,onUsernameDraftChange:p,onSubmitUsername:m,onOpenDeviceList:h,onLogout:g}=e;return(0,S.jsxs)(`div`,{className:`space-y-4`,children:[(0,S.jsx)(o,{tone:`success`,title:f(`accountPanelSignedInTitle`),description:f(`accountPanelSignedInDescription`)}),(0,S.jsxs)(o,{tone:`neutral`,children:[(0,S.jsx)(C,{label:f(`remoteAccountEmail`),value:t}),(0,S.jsx)(C,{label:f(`remoteAccountUsername`),value:n}),(0,S.jsx)(C,{label:f(`remoteAccountRole`),value:s})]}),n?(0,S.jsx)(`p`,{className:`text-xs text-gray-500`,children:f(`remoteAccountUsernameLockedHelp`)}):(0,S.jsxs)(o,{tone:`warning`,title:f(`remoteAccountUsernameRequiredTitle`),description:f(`remoteAccountUsernameRequiredDescription`),children:[(0,S.jsxs)(`div`,{className:`mt-4 space-y-2`,children:[(0,S.jsx)(i,{htmlFor:`account-panel-username`,children:f(`remoteAccountUsername`)}),(0,S.jsx)(r,{id:`account-panel-username`,value:d,onChange:e=>p(e.target.value),placeholder:f(`remoteAccountUsernamePlaceholder`),autoCapitalize:`none`,autoCorrect:`off`,spellCheck:!1})]}),(0,S.jsx)(`div`,{className:`mt-4 flex flex-wrap gap-3`,children:(0,S.jsx)(a,{disabled:!c,onClick:()=>void m(),children:f(u?`remoteAccountUsernameSaving`:`remoteAccountUsernameSave`)})})]}),(0,S.jsxs)(`div`,{className:`flex flex-wrap gap-3`,children:[(0,S.jsxs)(a,{onClick:()=>void h(),children:[(0,S.jsx)(l,{className:`mr-2 h-4 w-4`}),f(`remoteOpenDeviceList`)]}),(0,S.jsxs)(a,{variant:`outline`,onClick:()=>void g(),children:[(0,S.jsx)(b,{className:`mr-2 h-4 w-4`}),f(`remoteLogout`)]})]})]})}function T(e){let{authSessionId:t,authExpiresAt:n,authStatusMessage:r,authVerificationUri:i,onStartBrowserSignIn:s,onResumeBrowserSignIn:c}=e;return(0,S.jsxs)(`div`,{className:`space-y-4`,children:[(0,S.jsx)(o,{tone:`neutral`,title:f(`accountPanelSignedOutTitle`),description:f(`accountPanelSignedOutDescription`),children:t?(0,S.jsxs)(`div`,{className:`mt-3 border-t border-white/80 pt-3`,children:[(0,S.jsx)(C,{label:f(`remoteBrowserAuthSession`),value:t}),(0,S.jsx)(C,{label:f(`remoteBrowserAuthExpiresAt`),value:n?d(n):`-`})]}):null}),r?(0,S.jsx)(`p`,{className:`text-sm text-gray-600`,children:r}):null,(0,S.jsxs)(`div`,{className:`flex flex-wrap gap-3`,children:[(0,S.jsx)(a,{onClick:()=>void s(),children:f(t?`remoteBrowserAuthActionRetry`:`remoteBrowserAuthAction`)}),i?(0,S.jsx)(a,{variant:`outline`,onClick:()=>void c(),children:f(`remoteBrowserAuthResume`)}):null]})]})}function E(){let e=u(),t=c(),n=s(e=>e.panelOpen),r=s(e=>e.authSessionId),i=s(e=>e.authVerificationUri),a=s(e=>e.authExpiresAt),o=s(e=>e.authStatusMessage),l=t.data,[d,p]=(0,x.useState)(``),[b,C]=(0,x.useState)(!1);(0,x.useEffect)(()=>{e.accountManager.syncRemoteStatus(l)},[e,l]);let E=!b&&d.trim().length>0&&!l?.account.username;return(0,S.jsx)(y,{open:n,onOpenChange:t=>t?e.accountManager.openAccountPanel():e.accountManager.closeAccountPanel(),children:(0,S.jsxs)(g,{className:`max-w-xl`,children:[(0,S.jsxs)(h,{children:[(0,S.jsxs)(_,{className:`flex items-center gap-2`,children:[(0,S.jsx)(m,{className:`h-5 w-5 text-primary`}),f(`accountPanelTitle`)]}),(0,S.jsx)(v,{children:f(`accountPanelDescription`)})]}),l?.account.loggedIn?(0,S.jsx)(w,{email:l.account.email,username:l.account.username,role:l.account.role,canSubmitUsername:E,savingUsername:b,usernameDraft:d,onUsernameDraftChange:p,onSubmitUsername:async()=>{C(!0);try{await e.accountManager.updateUsername(d)}finally{C(!1)}},onOpenDeviceList:()=>e.accountManager.openNextClawWeb(`/account`),onLogout:()=>e.accountManager.logout()}):(0,S.jsx)(T,{authSessionId:r,authExpiresAt:a,authStatusMessage:o,authVerificationUri:i,onStartBrowserSignIn:()=>e.accountManager.startBrowserSignIn(),onResumeBrowserSignIn:()=>e.accountManager.resumeBrowserSignIn()})]})})}export{E as AccountPanel};
1
+ import{i as e}from"./chunk-DF37yw5_.js";import{A as t,M as n}from"./utils-CBZPzC_b.js";import{Gt as r,Wt as i,Yt as a}from"./api-BnUzdltV.js";import{S as o}from"./mcp-marketplace-page-CWjJGp_D.js";import{H as s,et as c,r as l,ut as u}from"./app-presenter-provider-CBt-lyr_.js";import{n as d,s as f}from"./i18n-CKvm9zyk.js";import{t as p}from"./createLucideIcon-BNKf0_kc.js";import{i as m}from"./use-viewport-layout-BS18drMT.js";import{a as h,n as g,o as _,r as v,t as y}from"./dialog-Xe73hpQz.js";var b=p(`LogOut`,[[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,key:`1uf3rs`}],[`polyline`,{points:`16 17 21 12 16 7`,key:`1gabdz`}],[`line`,{x1:`21`,x2:`9`,y1:`12`,y2:`12`,key:`1uyos4`}]]),x=e(n(),1),S=t();function C({label:e,value:t}){return(0,S.jsxs)(`div`,{className:`flex items-start justify-between gap-4 py-2 text-sm`,children:[(0,S.jsx)(`span`,{className:`text-gray-500`,children:e}),(0,S.jsx)(`span`,{className:`text-right text-gray-900`,children:t?.trim()||`-`})]})}function w(e){let{email:t,username:n,role:s,canSubmitUsername:l,savingUsername:u,usernameDraft:d,onUsernameDraftChange:p,onSubmitUsername:m,onOpenDeviceList:h,onLogout:g}=e;return(0,S.jsxs)(`div`,{className:`space-y-4`,children:[(0,S.jsx)(o,{tone:`success`,title:f(`accountPanelSignedInTitle`),description:f(`accountPanelSignedInDescription`)}),(0,S.jsxs)(o,{tone:`neutral`,children:[(0,S.jsx)(C,{label:f(`remoteAccountEmail`),value:t}),(0,S.jsx)(C,{label:f(`remoteAccountUsername`),value:n}),(0,S.jsx)(C,{label:f(`remoteAccountRole`),value:s})]}),n?(0,S.jsx)(`p`,{className:`text-xs text-gray-500`,children:f(`remoteAccountUsernameLockedHelp`)}):(0,S.jsxs)(o,{tone:`warning`,title:f(`remoteAccountUsernameRequiredTitle`),description:f(`remoteAccountUsernameRequiredDescription`),children:[(0,S.jsxs)(`div`,{className:`mt-4 space-y-2`,children:[(0,S.jsx)(i,{htmlFor:`account-panel-username`,children:f(`remoteAccountUsername`)}),(0,S.jsx)(r,{id:`account-panel-username`,value:d,onChange:e=>p(e.target.value),placeholder:f(`remoteAccountUsernamePlaceholder`),autoCapitalize:`none`,autoCorrect:`off`,spellCheck:!1})]}),(0,S.jsx)(`div`,{className:`mt-4 flex flex-wrap gap-3`,children:(0,S.jsx)(a,{disabled:!l,onClick:()=>void m(),children:f(u?`remoteAccountUsernameSaving`:`remoteAccountUsernameSave`)})})]}),(0,S.jsxs)(`div`,{className:`flex flex-wrap gap-3`,children:[(0,S.jsxs)(a,{onClick:()=>void h(),children:[(0,S.jsx)(c,{className:`mr-2 h-4 w-4`}),f(`remoteOpenDeviceList`)]}),(0,S.jsxs)(a,{variant:`outline`,onClick:()=>void g(),children:[(0,S.jsx)(b,{className:`mr-2 h-4 w-4`}),f(`remoteLogout`)]})]})]})}function T(e){let{authSessionId:t,authExpiresAt:n,authStatusMessage:r,authVerificationUri:i,onStartBrowserSignIn:s,onResumeBrowserSignIn:c}=e;return(0,S.jsxs)(`div`,{className:`space-y-4`,children:[(0,S.jsx)(o,{tone:`neutral`,title:f(`accountPanelSignedOutTitle`),description:f(`accountPanelSignedOutDescription`),children:t?(0,S.jsxs)(`div`,{className:`mt-3 border-t border-white/80 pt-3`,children:[(0,S.jsx)(C,{label:f(`remoteBrowserAuthSession`),value:t}),(0,S.jsx)(C,{label:f(`remoteBrowserAuthExpiresAt`),value:n?d(n):`-`})]}):null}),r?(0,S.jsx)(`p`,{className:`text-sm text-gray-600`,children:r}):null,(0,S.jsxs)(`div`,{className:`flex flex-wrap gap-3`,children:[(0,S.jsx)(a,{onClick:()=>void s(),children:f(t?`remoteBrowserAuthActionRetry`:`remoteBrowserAuthAction`)}),i?(0,S.jsx)(a,{variant:`outline`,onClick:()=>void c(),children:f(`remoteBrowserAuthResume`)}):null]})]})}function E(){let e=l(),t=u(),n=s(e=>e.panelOpen),r=s(e=>e.authSessionId),i=s(e=>e.authVerificationUri),a=s(e=>e.authExpiresAt),o=s(e=>e.authStatusMessage),c=t.data,[d,p]=(0,x.useState)(``),[b,C]=(0,x.useState)(!1);(0,x.useEffect)(()=>{e.accountManager.syncRemoteStatus(c)},[e,c]);let E=!b&&d.trim().length>0&&!c?.account.username;return(0,S.jsx)(y,{open:n,onOpenChange:t=>t?e.accountManager.openAccountPanel():e.accountManager.closeAccountPanel(),children:(0,S.jsxs)(g,{className:`max-w-xl`,children:[(0,S.jsxs)(h,{children:[(0,S.jsxs)(_,{className:`flex items-center gap-2`,children:[(0,S.jsx)(m,{className:`h-5 w-5 text-primary`}),f(`accountPanelTitle`)]}),(0,S.jsx)(v,{children:f(`accountPanelDescription`)})]}),c?.account.loggedIn?(0,S.jsx)(w,{email:c.account.email,username:c.account.username,role:c.account.role,canSubmitUsername:E,savingUsername:b,usernameDraft:d,onUsernameDraftChange:p,onSubmitUsername:async()=>{C(!0);try{await e.accountManager.updateUsername(d)}finally{C(!1)}},onOpenDeviceList:()=>e.accountManager.openNextClawWeb(`/account`),onLogout:()=>e.accountManager.logout()}):(0,S.jsx)(T,{authSessionId:r,authExpiresAt:a,authStatusMessage:o,authVerificationUri:i,onStartBrowserSignIn:()=>e.accountManager.startBrowserSignIn(),onResumeBrowserSignIn:()=>e.accountManager.resumeBrowserSignIn()})]})})}export{E as AccountPanel};