@nextclaw/ui 0.24.0 → 0.24.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (333) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/.vite/manifest.json +2477 -0
  3. package/dist/assets/{abnfDiagram-VRR7QNED-BcFJp_1X.js → abnfDiagram-VRR7QNED-Kzlh3ZEC.js} +1 -1
  4. package/dist/assets/account-panel-BxMlLXYH.js +1 -0
  5. package/dist/assets/{aiden0z-pptx-renderer.es-Dp2ezlQn.js → aiden0z-pptx-renderer.es-k1xZLzeo.js} +1 -1
  6. package/dist/assets/api-Utt-xzrT.js +13 -0
  7. package/dist/assets/app-data-DYXDL6X2.js +1 -0
  8. package/dist/assets/app-presenter-provider-CLsFiXvV.js +109 -0
  9. package/dist/assets/app-presenter-provider-D3BuuOyZ.css +1 -0
  10. package/dist/assets/appearance-settings-page-BfYznAK5.js +1 -0
  11. package/dist/assets/{arc-CkgyPMyW.js → arc-CpivM836.js} +1 -1
  12. package/dist/assets/architecture-TIHT7OUA-CVRF_cYQ.js +1 -0
  13. package/dist/assets/{architectureDiagram-ZJ3FMSHR-CMd4cIjI.js → architectureDiagram-ZJ3FMSHR-ifjW1qjI.js} +1 -1
  14. package/dist/assets/{blockDiagram-677ZJIJ3-Bz3tbhet.js → blockDiagram-677ZJIJ3-C_zeJrKF.js} +1 -1
  15. package/dist/assets/{book-open-o2x7OLiO.js → book-open-DDW_3XpM.js} +1 -1
  16. package/dist/assets/boxes-DwJeuK_h.js +1 -0
  17. package/dist/assets/{c4Diagram-LMCZKHZV-D9hFNAGv.js → c4Diagram-LMCZKHZV-CpapRftp.js} +1 -1
  18. package/dist/assets/card-IevY2nm-.js +1 -0
  19. package/dist/assets/channel-CBrWRr4N.js +1 -0
  20. package/dist/assets/channels-list-page-DitnqbMR.js +8 -0
  21. package/dist/assets/chevron-down-An7Km-t4.js +1 -0
  22. package/dist/assets/chunk-2Q5K7J3B-B8mmRk7d.js +1 -0
  23. package/dist/assets/{chunk-32BRIVSS-7NrjEITq.js → chunk-32BRIVSS-BKBwdmKR.js} +1 -1
  24. package/dist/assets/{chunk-52WLFC77-viIcqj9q.js → chunk-52WLFC77-BgZRCpDx.js} +1 -1
  25. package/dist/assets/{chunk-5FCAYU7R-Vsu4J-VM.js → chunk-5FCAYU7R-YWfOINJi.js} +1 -1
  26. package/dist/assets/{chunk-5HE753X5-C-w6CQZK.js → chunk-5HE753X5-BZ6I07d2.js} +1 -1
  27. package/dist/assets/{chunk-5JV3BV7I-CuKgJQ4W.js → chunk-5JV3BV7I-B7QYgZU5.js} +1 -1
  28. package/dist/assets/{chunk-5TONJI2A-CYeiWZKb.js → chunk-5TONJI2A-DjyQwgL2.js} +1 -1
  29. package/dist/assets/{chunk-5VM5RSS4-DRCbfwIn.js → chunk-5VM5RSS4-DheHV7X2.js} +1 -1
  30. package/dist/assets/{chunk-7BUUIJ7U-BvydOcm3.js → chunk-7BUUIJ7U-D6bq2PKF.js} +1 -1
  31. package/dist/assets/{chunk-BIQX33UG-RlppOXKo.js → chunk-BIQX33UG-CL9x0ibm.js} +1 -1
  32. package/dist/assets/{chunk-C7G6YPKG-DAizzYwr.js → chunk-C7G6YPKG-8z3B6RUH.js} +1 -1
  33. package/dist/assets/{chunk-CQNSW5MT-5eChJHca.js → chunk-CQNSW5MT-DpHkxY3n.js} +1 -1
  34. package/dist/assets/{chunk-CYSBUYHQ-YHPr53fv.js → chunk-CYSBUYHQ-DIJDLsdJ.js} +1 -1
  35. package/dist/assets/{chunk-EMLP6XTP-CK4D7Hz5.js → chunk-EMLP6XTP-B-LjAyVd.js} +1 -1
  36. package/dist/assets/{chunk-EX3LRPZG-BmlDFIRW.js → chunk-EX3LRPZG-BChuEPvO.js} +1 -1
  37. package/dist/assets/{chunk-FWX5IMBZ-D0ksHZZ9.js → chunk-FWX5IMBZ-fBFt0u3f.js} +2 -2
  38. package/dist/assets/{chunk-HOUHSVGY-DPkq8FCm.js → chunk-HOUHSVGY-MD0SpW5A.js} +1 -1
  39. package/dist/assets/{chunk-ICXQ74PX-FAatv5fC.js → chunk-ICXQ74PX-DvCcw_hz.js} +1 -1
  40. package/dist/assets/{chunk-JG7HCLWE-DLkIi4F7.js → chunk-JG7HCLWE-B8zqBnU9.js} +1 -1
  41. package/dist/assets/{chunk-JWPE2WC7-DawOjNE3.js → chunk-JWPE2WC7-C9efnkGb.js} +1 -1
  42. package/dist/assets/{chunk-MOJQB5TN-Di52TorW.js → chunk-MOJQB5TN-gXbfqoqq.js} +1 -1
  43. package/dist/assets/{chunk-MOZMSUNE-PfyK9w1-.js → chunk-MOZMSUNE-twIwdkqC.js} +1 -1
  44. package/dist/assets/{chunk-OGEWGWER-C3jdH3Ty.js → chunk-OGEWGWER-DdR0_cWK.js} +1 -1
  45. package/dist/assets/{chunk-OSBZ3O6U-CecHo-f0.js → chunk-OSBZ3O6U-D7D58Foa.js} +1 -1
  46. package/dist/assets/{chunk-PUDLZKDR-f3IJh3sN.js → chunk-PUDLZKDR-DPILgOVY.js} +1 -1
  47. package/dist/assets/{chunk-Q4XR5HBZ-DQFeUPxZ.js → chunk-Q4XR5HBZ-C0JJx7lW.js} +1 -1
  48. package/dist/assets/{chunk-QBLGF6JB-BhUeG0y2.js → chunk-QBLGF6JB-Dbsf69ng.js} +1 -1
  49. package/dist/assets/{chunk-R7FJI6CG-C3XpZ-2u.js → chunk-R7FJI6CG-Bb8n616-.js} +1 -1
  50. package/dist/assets/{chunk-RYQCIY6F-CAqa5klQ.js → chunk-RYQCIY6F-1HOsOrSl.js} +1 -1
  51. package/dist/assets/{chunk-U6XO7XAA-D_WXezeD.js → chunk-U6XO7XAA-BAFDVb1v.js} +1 -1
  52. package/dist/assets/{chunk-V7JOEXUC-CZ70oOtp.js → chunk-V7JOEXUC-8-g68lu5.js} +1 -1
  53. package/dist/assets/chunk-VAUOI2AC-Cpml0inz.js +1 -0
  54. package/dist/assets/{chunk-VR4S4FIN-B7AHEYYk.js → chunk-VR4S4FIN-P6UGmaYd.js} +1 -1
  55. package/dist/assets/{chunk-WYO6CB5R-Dn9To_OI.js → chunk-WYO6CB5R-6wjFTXNP.js} +2 -2
  56. package/dist/assets/chunk-XXDRQBXY-nCiqnCpF.js +1 -0
  57. package/dist/assets/{chunk-YOTPTUD7-BYEgRBk3.js → chunk-YOTPTUD7-CLYXVZAi.js} +1 -1
  58. package/dist/assets/{chunk-ZGVPDNZ5-C6YtZDU0.js → chunk-ZGVPDNZ5-BRTmSAhp.js} +1 -1
  59. package/dist/assets/{chunk-ZIRB5QZD-DMuYtnHF.js → chunk-ZIRB5QZD-CH_1eoSV.js} +1 -1
  60. package/dist/assets/circle-alert-CDXqELuo.js +1 -0
  61. package/dist/assets/circle-dashed-CapXEpiV.js +1 -0
  62. package/dist/assets/classDiagram-OUVF2IWQ-C-DRqAaW.js +1 -0
  63. package/dist/assets/classDiagram-v2-EOCWNBFH-DXCcZ42U.js +1 -0
  64. package/dist/assets/client-B0krol7A.js +1 -0
  65. package/dist/assets/config-split-page-BtnkqWVp.js +1 -0
  66. package/dist/assets/confirm-dialog-DFt4jpN7.js +1 -0
  67. package/dist/assets/{cose-bilkent-JH36ORCC-Bc2Ex5Y3.js → cose-bilkent-JH36ORCC-L7w_qScX.js} +1 -1
  68. package/dist/assets/{createLucideIcon-rwwpqyks.js → createLucideIcon-BTHK0Ot9.js} +1 -1
  69. package/dist/assets/cynefin-VYW2F7L2-2SOTgxxC.js +1 -0
  70. package/dist/assets/{cynefinDiagram-TSTJHNR4-DVysQoGz.js → cynefinDiagram-TSTJHNR4-Bay7uDSR.js} +1 -1
  71. package/dist/assets/{dagre-CMhQ1cAG.js → dagre-CJ_hX8xv.js} +1 -1
  72. package/dist/assets/{dagre-VKFMJZFB-RYyWpPJZ.js → dagre-VKFMJZFB-DDhk-2B3.js} +1 -1
  73. package/dist/assets/desktop-capabilities-page-CCf14WId.js +1 -0
  74. package/dist/assets/desktop-update-config-DVoVgfFi.js +1 -0
  75. package/dist/assets/{diagram-FQU43EPY-BD6KONdF.js → diagram-FQU43EPY-somFq5y8.js} +1 -1
  76. package/dist/assets/{diagram-G47NLZAW-CGB2ptRR.js → diagram-G47NLZAW-hzgyQsPd.js} +1 -1
  77. package/dist/assets/{diagram-NH7WQ7WH-DnkOI6cU.js → diagram-NH7WQ7WH-BkJ4gEQJ.js} +1 -1
  78. package/dist/assets/{diagram-OA4YK3LP-DF82RZ7P.js → diagram-OA4YK3LP-CS3ZkK4w.js} +1 -1
  79. package/dist/assets/{diagram-WEI45ONY-Be2v7Ck9.js → diagram-WEI45ONY-BApo-JHS.js} +1 -1
  80. package/dist/assets/dialog-BFN_1DBH.js +5 -0
  81. package/dist/assets/dist-Bc9hOVNN.js +1 -0
  82. package/dist/assets/dist-CEhIDAnr.js +1 -0
  83. package/dist/assets/{dist--ta5rX12.js → dist-Cnhwure9.js} +1 -1
  84. package/dist/assets/{dist-aNN3iQxV.js → dist-hkVPP1th.js} +1 -1
  85. package/dist/assets/doc-browser-BNUxmwD6.js +1 -0
  86. package/dist/assets/doc-browser-context-C4yQrKrH.js +1 -0
  87. package/dist/assets/doc-browser-w4eGZXLu.js +1 -0
  88. package/dist/assets/{docx-preview-BqwAjrj3.js → docx-preview-ByCKKIVT.js} +1 -1
  89. package/dist/assets/{ebnfDiagram-CCIWWBDH-CP98OYk8.js → ebnfDiagram-CCIWWBDH-DWjfeEie.js} +1 -1
  90. package/dist/assets/ellipsis-BRI6ROeu.js +1 -0
  91. package/dist/assets/{erDiagram-Q63AITRT-ZLlx8xfs.js → erDiagram-Q63AITRT-DR7vWYHM.js} +1 -1
  92. package/dist/assets/es2015-MOCbM0Eu.js +41 -0
  93. package/dist/assets/eventmodeling-45OFAUF4-CXZNG56U.js +1 -0
  94. package/dist/assets/extensions-DxUBMtHW.js +1 -0
  95. package/dist/assets/eye-cnynUDGt.js +1 -0
  96. package/dist/assets/flowDiagram-23GEKE2U-2065oyKr.js +1 -0
  97. package/dist/assets/form-actions-gQ0JEUwB.js +1 -0
  98. package/dist/assets/{ganttDiagram-NO4QXBWP-DXCDjHR2.js → ganttDiagram-NO4QXBWP-E3l9tuaL.js} +1 -1
  99. package/dist/assets/gitGraph-TEB2WS4Q-B0Ln3ZuK.js +1 -0
  100. package/dist/assets/{gitGraphDiagram-IHSO6WYX-l2HWrTJp.js → gitGraphDiagram-IHSO6WYX-DiMvbHKf.js} +1 -1
  101. package/dist/assets/i18n-B9yXA8KO.js +2 -0
  102. package/dist/assets/i18n-provider-BYBJua91.js +1 -0
  103. package/dist/assets/info-DKCQHKI2-B06uqGM4.js +1 -0
  104. package/dist/assets/{infoDiagram-FWYZ7A6U-D-DjX-bn.js → infoDiagram-FWYZ7A6U-BZDL0NDJ.js} +1 -1
  105. package/dist/assets/{ishikawaDiagram-FXEZZL3T-y_Xy128F.js → ishikawaDiagram-FXEZZL3T-BZ9WvJb2.js} +1 -1
  106. package/dist/assets/{journeyDiagram-5HDEW3XC-DJn5xYcQ.js → journeyDiagram-5HDEW3XC-C3TZvKM8.js} +1 -1
  107. package/dist/assets/{jszip.min-8hyJpgpx.js → jszip.min-D_AtKL_8.js} +1 -1
  108. package/dist/assets/{kanban-definition-HUTT4EX6-DJVIOR21.js → kanban-definition-HUTT4EX6-9FqauDEi.js} +1 -1
  109. package/dist/assets/{line-Cos7PIOj.js → line-Ca49mj80.js} +1 -1
  110. package/dist/assets/{linear-BtDLqtzF.js → linear-DlCeG66S.js} +1 -1
  111. package/dist/assets/loader-circle-rWr5Yo0E.js +1 -0
  112. package/dist/assets/login-page-CfMSkOsg.js +1 -0
  113. package/dist/assets/login-page-CqrHhzaN.js +1 -0
  114. package/dist/assets/logo-badge-Cr03YceJ.js +1 -0
  115. package/dist/assets/main-8cVkMfgE.css +1 -0
  116. package/dist/assets/main-Bys58GxY.js +2 -0
  117. package/dist/assets/main-i18n-catalog.config-BSq9yiUQ.js +1 -0
  118. package/dist/assets/{map-BKnQyvd0.js → map-WMnNq9UV.js} +1 -1
  119. package/dist/assets/mcp-marketplace-page-CifiVgFD.js +10 -0
  120. package/dist/assets/mcp-marketplace-page-DX5VE3mU.js +1 -0
  121. package/dist/assets/{mermaid-parser.core-XUNZhr2W.js → mermaid-parser.core-B8xk4hpS.js} +2 -2
  122. package/dist/assets/{mermaid.core-ySrvolIe.js → mermaid.core-CFPiczKH.js} +3 -3
  123. package/dist/assets/{mindmap-definition-LN4V7U3C-BypL9tei.js → mindmap-definition-LN4V7U3C-CnxA52L6.js} +1 -1
  124. package/dist/assets/model-config-page-C6jVNbSj.js +1 -0
  125. package/dist/assets/{navigation-link-C_6oj3zz.js → navigation-link-kbCLRSr_.js} +1 -1
  126. package/dist/assets/{ordinal-CxxVWxYU.js → ordinal-PgiFlfBJ.js} +1 -1
  127. package/dist/assets/packet-7NZHBO7P-CHx-igbz.js +1 -0
  128. package/dist/assets/panel-app-BUUle0gP.js +1 -0
  129. package/dist/assets/panel-app-i18n-catalog.config-C2St67SP.js +1 -0
  130. package/dist/assets/panelStandalone-DMBnYyTw.js +2 -0
  131. package/dist/assets/panelStandalone-Y91OJkgV.css +1 -0
  132. package/dist/assets/{pegDiagram-2B236MQR-D-U2KBGv.js → pegDiagram-2B236MQR-A8oz7dTH.js} +1 -1
  133. package/dist/assets/pie-RZYD4A2V-DOaMc-x9.js +1 -0
  134. package/dist/assets/{pieDiagram-ENE6RG2P-CBi3GusJ.js → pieDiagram-ENE6RG2P-mtBnkYY0.js} +1 -1
  135. package/dist/assets/plus-BHnKwuPq.js +1 -0
  136. package/dist/assets/popover-XVDgjxcl.js +1 -0
  137. package/dist/assets/privacy-settings-page-BN27MBVA.js +1 -0
  138. package/dist/assets/projects-DV3UuJMS.js +1 -0
  139. package/dist/assets/provider-models-5PGHb6mP.js +1 -0
  140. package/dist/assets/provider-scoped-model-input-BGZMCThn.js +1 -0
  141. package/dist/assets/providers-config-page-D5aBwbOD.js +1 -0
  142. package/dist/assets/puzzle-D5Dhacmb.js +1 -0
  143. package/dist/assets/pwa-ClQK56Qe.js +1 -0
  144. package/dist/assets/{quadrantDiagram-ABIIQ3AL-H0ZuvnZL.js → quadrantDiagram-ABIIQ3AL-DE1VybGO.js} +1 -1
  145. package/dist/assets/radar-I7S5WNFK-CXsdndDk.js +1 -0
  146. package/dist/assets/railroad-3IZDKUUU-DxgXdrYP.js +1 -0
  147. package/dist/assets/railroad-abnf-AHOZXSZD-CR1tnyjz.js +1 -0
  148. package/dist/assets/railroad-ebnf-EBAXGLYW-CjjxZR2U.js +1 -0
  149. package/dist/assets/railroad-peg-LSFZ7HO6-DgVGJCHN.js +1 -0
  150. package/dist/assets/{railroadDiagram-RFXS5EU6-D7Y2EqSd.js → railroadDiagram-RFXS5EU6-u9EMg14B.js} +1 -1
  151. package/dist/assets/{refresh-cw-DsT2kvXi.js → refresh-cw-Bw5BY7vp.js} +1 -1
  152. package/dist/assets/remote-Bl005fzu.js +1 -0
  153. package/dist/assets/{requirementDiagram-TGXJPOKE-BiXNX1NN.js → requirementDiagram-TGXJPOKE-BAWHAqEi.js} +1 -1
  154. package/dist/assets/{rotate-cw-BCAs6c3R.js → rotate-cw-BksCLAeE.js} +1 -1
  155. package/dist/assets/runtime-config-page-CmktQcMW.js +1 -0
  156. package/dist/assets/{sankeyDiagram-HTMAVEWB-qzDeLztW.js → sankeyDiagram-HTMAVEWB-aDy-jdwF.js} +1 -1
  157. package/dist/assets/{save-CadRMTMQ.js → save-CVi8VWzb.js} +1 -1
  158. package/dist/assets/{search-B6tB4fzB.js → search-DN-f7IIC.js} +1 -1
  159. package/dist/assets/search-config-page-BmuZTVxs.js +1 -0
  160. package/dist/assets/secrets-config-page-NPHpg9sb.js +3 -0
  161. package/dist/assets/security-config-Djptuyf2.js +1 -0
  162. package/dist/assets/select-CmDTqk2C.js +1 -0
  163. package/dist/assets/{sequenceDiagram-DBY2YBRQ-BtRbPQtL.js → sequenceDiagram-DBY2YBRQ-DwHC4mbX.js} +1 -1
  164. package/dist/assets/service-apps-panel-BYGJ9_pO.js +1 -0
  165. package/dist/assets/settings-2-B62YtZon.js +1 -0
  166. package/dist/assets/{sizeCapture-X5ZJPWSS-CMYvM3SL.js → sizeCapture-X5ZJPWSS-oOMY0Fag.js} +1 -1
  167. package/dist/assets/skeleton-Eh64l4T2.js +1 -0
  168. package/dist/assets/{src-Bw-mzbQb.js → src-CLPoo5iL.js} +1 -1
  169. package/dist/assets/{stateDiagram-2N3HPSRC-BJ-mFeOz.js → stateDiagram-2N3HPSRC-B0Epk-VR.js} +1 -1
  170. package/dist/assets/stateDiagram-v2-6OUMAXLB-Ct4zTw8P.js +1 -0
  171. package/dist/assets/{swimlanes-5IMT3BWC-BsucVOO2.js → swimlanes-5IMT3BWC-T0w-Iuzf.js} +2 -2
  172. package/dist/assets/swimlanesDiagram-G3AALYLV-CdmN0PBd.js +8 -0
  173. package/dist/assets/tabs-Bk_mG7ql.js +1 -0
  174. package/dist/assets/{tag-chip-BZKk0UkK.js → tag-chip-DgqKlI5D.js} +1 -1
  175. package/dist/assets/theme-provider-CeBY2pyu.js +1 -0
  176. package/dist/assets/{timeline-definition-FHXFAJF6-Bicewlzo.js → timeline-definition-FHXFAJF6-BEonB5Np.js} +1 -1
  177. package/dist/assets/tooltip-CgGbBdYf.js +1 -0
  178. package/dist/assets/trash-2-CVOev8yc.js +1 -0
  179. package/dist/assets/treeView-QDETBFTQ-Dad4_Wc7.js +1 -0
  180. package/dist/assets/treemap-6X3UGDF4-9_GWWZsY.js +1 -0
  181. package/dist/assets/use-config-b2DN67gs.js +1 -0
  182. package/dist/assets/use-desktop-capabilities-B3tLU1yl.js +1 -0
  183. package/dist/assets/use-panel-app-scroll-restoration-BekzoX6z.js +1 -0
  184. package/dist/assets/use-viewport-layout-CUA3jQsA.js +1 -0
  185. package/dist/assets/utils-UBHTdG5Q.js +8 -0
  186. package/dist/assets/{vennDiagram-L72KCM5P-BxOOnO9x.js → vennDiagram-L72KCM5P-BDvcOCo2.js} +1 -1
  187. package/dist/assets/wardley-OPB4EBWU-BXpvyee9.js +1 -0
  188. package/dist/assets/{wardleyDiagram-EHGQE667-Cl7NltMv.js → wardleyDiagram-EHGQE667-jMLMgjzE.js} +1 -1
  189. package/dist/assets/x-C0iaOsRW.js +1 -0
  190. package/dist/assets/{xychartDiagram-FW5EYKEG-DiMIxQ7N.js → xychartDiagram-FW5EYKEG-pzrpclEv.js} +1 -1
  191. package/dist/index.html +56 -25
  192. package/dist/panel-standalone.html +30 -0
  193. package/package.json +3 -3
  194. package/panel-standalone.html +13 -0
  195. package/panel-standalone.tailwind.config.js +16 -0
  196. package/src/app/components/app-presenter-provider.tsx +8 -1
  197. package/src/app/components/theme-provider.tsx +0 -5
  198. package/src/app/index.tsx +18 -4
  199. package/src/app/presenters/app.presenter.ts +4 -4
  200. package/src/app/styles/panel-app-standalone.css +31 -0
  201. package/src/app/test/vitest-setup.ts +3 -0
  202. package/src/features/account/hooks/use-auth.ts +7 -57
  203. package/src/features/account/index.ts +3 -2
  204. package/src/features/apps/components/__tests__/apps-panel.test.tsx +7 -5
  205. package/src/features/apps/components/apps-panel.tsx +9 -3
  206. package/src/features/chat/features/session/utils/__tests__/chat-sidebar-session-groups.utils.test.ts +27 -2
  207. package/src/features/chat/features/session/utils/chat-sidebar-session-groups.utils.ts +0 -11
  208. package/src/features/panel-apps/components/__tests__/panel-app-list-item.test.tsx +18 -0
  209. package/src/features/panel-apps/components/__tests__/panel-app-open-standalone-menu-item.test.tsx +56 -0
  210. package/src/features/panel-apps/components/__tests__/panel-app-toolbar.test.tsx +15 -0
  211. package/src/features/panel-apps/components/panel-app-list-item.tsx +5 -0
  212. package/src/features/panel-apps/components/panel-app-open-standalone-menu-item.tsx +29 -0
  213. package/src/features/panel-apps/components/panel-app-runtime-surface.tsx +141 -0
  214. package/src/features/{service-apps/components/service-action-authorization-dialog.tsx → panel-apps/components/panel-app-service-action-authorization-dialog.tsx} +4 -4
  215. package/src/features/panel-apps/components/panel-app-toolbar.tsx +5 -0
  216. package/src/features/panel-apps/hooks/use-panel-app-client-grant.ts +2 -2
  217. package/src/features/panel-apps/hooks/{use-panel-app-main-runtime.ts → use-panel-app-runtime.ts} +7 -5
  218. package/src/features/panel-apps/hooks/use-panel-apps.ts +14 -0
  219. package/src/features/panel-apps/index.ts +5 -0
  220. package/src/features/panel-apps/managers/__tests__/panel-app-bridge.manager.test.ts +2 -2
  221. package/src/features/panel-apps/managers/panel-app-bridge.manager.ts +2 -2
  222. package/src/features/panel-apps/managers/panel-app-service-action-authorization.manager.ts +10 -0
  223. package/src/features/panel-apps/pages/__tests__/panel-app-main-page.test.tsx +12 -3
  224. package/src/features/panel-apps/pages/__tests__/panel-app-standalone-page.test.tsx +63 -0
  225. package/src/features/panel-apps/pages/panel-app-main-page.tsx +9 -121
  226. package/src/features/panel-apps/pages/panel-app-standalone-page.tsx +29 -0
  227. package/src/features/panel-apps/presenters/panel-app-host.presenter.ts +9 -0
  228. package/src/features/panel-apps/providers/panel-app-host.provider.tsx +45 -0
  229. package/src/features/panel-apps/routes/__tests__/panel-app-standalone.route.test.tsx +50 -0
  230. package/src/features/panel-apps/routes/panel-app-standalone.route.tsx +94 -0
  231. package/src/features/{service-apps/stores/service-action-authorization.store.ts → panel-apps/stores/panel-app-service-action-authorization.store.ts} +6 -6
  232. package/src/features/projects/components/project-overview.test.tsx +70 -0
  233. package/src/features/projects/components/project-overview.tsx +114 -56
  234. package/src/features/projects/components/work/project-work-item-drawer.tsx +8 -10
  235. package/src/features/projects/components/work/project-work-items.test.tsx +168 -4
  236. package/src/features/projects/components/work/project-work-items.tsx +277 -49
  237. package/src/features/projects/components/work/project-work-state-settings.tsx +7 -3
  238. package/src/features/projects/hooks/use-project-work.test.tsx +108 -6
  239. package/src/features/projects/hooks/use-project-work.ts +82 -9
  240. package/src/features/projects/pages/project-home-page.tsx +45 -6
  241. package/src/features/projects/pages/projects-page.test.tsx +56 -0
  242. package/src/features/projects/utils/project-artifact-view.utils.test.ts +30 -18
  243. package/src/features/projects/utils/project-artifact-view.utils.ts +29 -12
  244. package/src/features/projects/utils/project-work-state-label.utils.test.ts +28 -0
  245. package/src/features/projects/utils/project-work-state-label.utils.ts +20 -0
  246. package/src/features/service-apps/index.ts +3 -3
  247. package/src/main.tsx +3 -0
  248. package/src/shared/hooks/use-auth-status.ts +49 -0
  249. package/src/shared/hooks/use-projects.ts +15 -1
  250. package/src/shared/lib/api/projects/project.utils.ts +4 -0
  251. package/src/shared/lib/i18n/configs/main-i18n-catalog.config.ts +78 -0
  252. package/src/shared/lib/i18n/configs/panel-app-i18n-catalog.config.ts +12 -0
  253. package/src/shared/lib/i18n/index.ts +30 -82
  254. package/src/shared/lib/i18n/locales/en-US/doc-browser.json +0 -55
  255. package/src/shared/lib/i18n/locales/en-US/panel-app.json +59 -0
  256. package/src/shared/lib/i18n/locales/en-US/projects.json +16 -0
  257. package/src/shared/lib/i18n/locales/zh-CN/doc-browser.json +0 -55
  258. package/src/shared/lib/i18n/locales/zh-CN/panel-app.json +59 -0
  259. package/src/shared/lib/i18n/locales/zh-CN/projects.json +16 -0
  260. package/vite.config.ts +36 -1
  261. package/dist/assets/api-BqVIq0lF.js +0 -13
  262. package/dist/assets/appearance-settings-page-CTWn1eAT.js +0 -1
  263. package/dist/assets/architecture-TIHT7OUA-DO2x53FK.js +0 -1
  264. package/dist/assets/channel-nBvMaVyP.js +0 -1
  265. package/dist/assets/channels-list-page-Bzn-pzyJ.js +0 -8
  266. package/dist/assets/chunk-2Q5K7J3B-CJgqFDS4.js +0 -1
  267. package/dist/assets/chunk-VAUOI2AC-BGvh3yIx.js +0 -1
  268. package/dist/assets/chunk-XXDRQBXY-DaBxG5gs.js +0 -1
  269. package/dist/assets/classDiagram-OUVF2IWQ-P6N03G2R.js +0 -1
  270. package/dist/assets/classDiagram-v2-EOCWNBFH-B1_uLvMv.js +0 -1
  271. package/dist/assets/config-split-page-CnRbXXlh.js +0 -1
  272. package/dist/assets/confirm-dialog-B_Hbcra2.js +0 -5
  273. package/dist/assets/cynefin-VYW2F7L2-B-H8Qp-n.js +0 -1
  274. package/dist/assets/desktop-capabilities-page-C2ayYQTr.js +0 -1
  275. package/dist/assets/desktop-update-config-C13czpyL.js +0 -1
  276. package/dist/assets/dist-BsF3hfOi.js +0 -1
  277. package/dist/assets/doc-browser-D8dIOo9E.js +0 -1
  278. package/dist/assets/doc-browser-DcuOOtpP.js +0 -1
  279. package/dist/assets/doc-browser-context-Dhsit2Ma.js +0 -1
  280. package/dist/assets/eventmodeling-45OFAUF4-YVtShyFA.js +0 -1
  281. package/dist/assets/extensions-CD6xvKF_.js +0 -1
  282. package/dist/assets/flowDiagram-23GEKE2U-BeKXabVO.js +0 -1
  283. package/dist/assets/form-actions-CC4Wz_lL.js +0 -1
  284. package/dist/assets/gitGraph-TEB2WS4Q-jTSiBj-p.js +0 -1
  285. package/dist/assets/index-BTsbdtv6.js +0 -109
  286. package/dist/assets/index-Bcfy2kTh.css +0 -1
  287. package/dist/assets/info-DKCQHKI2-BIporNWb.js +0 -1
  288. package/dist/assets/loader-circle-B6aFbB-8.js +0 -1
  289. package/dist/assets/mcp-marketplace-page-BtUAypA7.js +0 -1
  290. package/dist/assets/mcp-marketplace-page-r2MmD9xO.js +0 -10
  291. package/dist/assets/model-config-page-DboxoT-I.js +0 -1
  292. package/dist/assets/packet-7NZHBO7P-CuFMADV0.js +0 -1
  293. package/dist/assets/pie-RZYD4A2V-XUeIXhM9.js +0 -1
  294. package/dist/assets/plus-DRsq9Kvs.js +0 -1
  295. package/dist/assets/privacy-settings-page-C2sDBqhb.js +0 -1
  296. package/dist/assets/projects-BcPcx-uD.js +0 -1
  297. package/dist/assets/providers-config-page-CmUFl9RF.js +0 -1
  298. package/dist/assets/radar-I7S5WNFK-D-NNGh1k.js +0 -1
  299. package/dist/assets/railroad-3IZDKUUU-C67_uDaM.js +0 -1
  300. package/dist/assets/railroad-abnf-AHOZXSZD-BZ8Yflnd.js +0 -1
  301. package/dist/assets/railroad-ebnf-EBAXGLYW-B7zO7RoK.js +0 -1
  302. package/dist/assets/railroad-peg-LSFZ7HO6-R63PTgLz.js +0 -1
  303. package/dist/assets/react-BjO9I4WZ.js +0 -8
  304. package/dist/assets/remote-Ci6x91ES.js +0 -1
  305. package/dist/assets/runtime-config-page-cQKNeAjL.js +0 -1
  306. package/dist/assets/search-config-page-C8lOIkxn.js +0 -1
  307. package/dist/assets/secrets-config-page-8clzAag2.js +0 -3
  308. package/dist/assets/security-config-DPbM6IVT.js +0 -1
  309. package/dist/assets/select-CO9S_C2C.js +0 -41
  310. package/dist/assets/skeleton-IHILNhIW.js +0 -1
  311. package/dist/assets/stateDiagram-v2-6OUMAXLB-BE-HqxOK.js +0 -1
  312. package/dist/assets/swimlanesDiagram-G3AALYLV-Dr1H9LJH.js +0 -8
  313. package/dist/assets/treeView-QDETBFTQ-npJ5dbqS.js +0 -1
  314. package/dist/assets/treemap-6X3UGDF4-pYrBx6oa.js +0 -1
  315. package/dist/assets/wardley-OPB4EBWU-CmSRKLR8.js +0 -1
  316. package/dist/assets/x-BuvHIb1d.js +0 -1
  317. package/src/features/service-apps/managers/service-action-authorization.manager.ts +0 -10
  318. /package/dist/assets/{array-BQVzeGRt.js → array-BHDgItFN.js} +0 -0
  319. /package/dist/assets/{chunk-DseTPa7n.js → chunk-DF37yw5_.js} +0 -0
  320. /package/dist/assets/{chunk-KEIR6QF5-f9psyCXK.js → chunk-KEIR6QF5-DstBw0Hk.js} +0 -0
  321. /package/dist/assets/{chunk-Y2CYZVJY-D1mAU_Po.js → chunk-Y2CYZVJY-CA3ymQuH.js} +0 -0
  322. /package/dist/assets/{config-hints-nV5HPOvq.js → config-hints-CBPHrfYk.js} +0 -0
  323. /package/dist/assets/{cytoscape.esm-0uDtdD0l.js → cytoscape.esm-C7xr90o_.js} +0 -0
  324. /package/dist/assets/{defaultLocale-DSWXGgt0.js → defaultLocale-BG1oDVag.js} +0 -0
  325. /package/dist/assets/{graphlib-CQ6QV4yP.js → graphlib-CNMGfuTb.js} +0 -0
  326. /package/dist/assets/{host-capabilities-Tk038i04.js → host-capabilities-B107nwS3.js} +0 -0
  327. /package/dist/assets/{init-Y6h9jGtZ.js → init-wQIZuRSH.js} +0 -0
  328. /package/dist/assets/{katex-ARhY9PS1.js → katex-J8JuvgNl.js} +0 -0
  329. /package/dist/assets/{middleware-DXsbf9xI.js → middleware-0o3JF3tS.js} +0 -0
  330. /package/dist/assets/{path-10BjdyLh.js → path-N-C4MRP0.js} +0 -0
  331. /package/dist/assets/{preload-helper-D4M6sveU.js → preload-helper-ca-nBW7U.js} +0 -0
  332. /package/dist/assets/{rough.esm-DxgC_14r.js → rough.esm-BeWA068d.js} +0 -0
  333. /package/dist/assets/{xlsx-DrDuDNAa.js → xlsx-CwUXNtD3.js} +0 -0
@@ -0,0 +1,78 @@
1
+ import zhAgents from '@/shared/lib/i18n/locales/zh-CN/agents.json';
2
+ import zhChannelAuth from '@/shared/lib/i18n/locales/zh-CN/channel-auth.json';
3
+ import zhChannels from '@/shared/lib/i18n/locales/zh-CN/channels.json';
4
+ import zhChat from '@/shared/lib/i18n/locales/zh-CN/chat.json';
5
+ import zhCore from '@/shared/lib/i18n/locales/zh-CN/core.json';
6
+ import zhCron from '@/shared/lib/i18n/locales/zh-CN/cron.json';
7
+ import zhDesktopUpdate from '@/shared/lib/i18n/locales/zh-CN/desktop-update.json';
8
+ import zhDocBrowser from '@/shared/lib/i18n/locales/zh-CN/doc-browser.json';
9
+ import zhPanelApp from '@/shared/lib/i18n/locales/zh-CN/panel-app.json';
10
+ import zhInbox from '@/shared/lib/i18n/locales/zh-CN/inbox.json';
11
+ import zhMarketplace from '@/shared/lib/i18n/locales/zh-CN/marketplace.json';
12
+ import zhPathPicker from '@/shared/lib/i18n/locales/zh-CN/path-picker.json';
13
+ import zhProjects from '@/shared/lib/i18n/locales/zh-CN/projects.json';
14
+ import zhPwa from '@/shared/lib/i18n/locales/zh-CN/pwa.json';
15
+ import zhRemote from '@/shared/lib/i18n/locales/zh-CN/remote.json';
16
+ import zhRuntimeControl from '@/shared/lib/i18n/locales/zh-CN/runtime-control.json';
17
+ import zhSearch from '@/shared/lib/i18n/locales/zh-CN/search.json';
18
+ import enAgents from '@/shared/lib/i18n/locales/en-US/agents.json';
19
+ import enChannelAuth from '@/shared/lib/i18n/locales/en-US/channel-auth.json';
20
+ import enChannels from '@/shared/lib/i18n/locales/en-US/channels.json';
21
+ import enChat from '@/shared/lib/i18n/locales/en-US/chat.json';
22
+ import enCore from '@/shared/lib/i18n/locales/en-US/core.json';
23
+ import enCron from '@/shared/lib/i18n/locales/en-US/cron.json';
24
+ import enDesktopUpdate from '@/shared/lib/i18n/locales/en-US/desktop-update.json';
25
+ import enDocBrowser from '@/shared/lib/i18n/locales/en-US/doc-browser.json';
26
+ import enPanelApp from '@/shared/lib/i18n/locales/en-US/panel-app.json';
27
+ import enInbox from '@/shared/lib/i18n/locales/en-US/inbox.json';
28
+ import enMarketplace from '@/shared/lib/i18n/locales/en-US/marketplace.json';
29
+ import enPathPicker from '@/shared/lib/i18n/locales/en-US/path-picker.json';
30
+ import enProjects from '@/shared/lib/i18n/locales/en-US/projects.json';
31
+ import enPwa from '@/shared/lib/i18n/locales/en-US/pwa.json';
32
+ import enRemote from '@/shared/lib/i18n/locales/en-US/remote.json';
33
+ import enRuntimeControl from '@/shared/lib/i18n/locales/en-US/runtime-control.json';
34
+ import enSearch from '@/shared/lib/i18n/locales/en-US/search.json';
35
+ import { registerI18nCatalogs } from '@/shared/lib/i18n';
36
+
37
+ export function installMainI18nCatalog(): void {
38
+ registerI18nCatalogs({
39
+ zh: {
40
+ ...zhCore,
41
+ ...zhDesktopUpdate,
42
+ ...zhSearch,
43
+ ...zhChannels,
44
+ ...zhCron,
45
+ ...zhRemote,
46
+ ...zhRuntimeControl,
47
+ ...zhChat,
48
+ ...zhAgents,
49
+ ...zhMarketplace,
50
+ ...zhInbox,
51
+ ...zhDocBrowser,
52
+ ...zhPanelApp,
53
+ ...zhPathPicker,
54
+ ...zhPwa,
55
+ ...zhChannelAuth,
56
+ ...zhProjects,
57
+ },
58
+ en: {
59
+ ...enCore,
60
+ ...enDesktopUpdate,
61
+ ...enSearch,
62
+ ...enChannels,
63
+ ...enCron,
64
+ ...enRemote,
65
+ ...enRuntimeControl,
66
+ ...enChat,
67
+ ...enAgents,
68
+ ...enMarketplace,
69
+ ...enInbox,
70
+ ...enDocBrowser,
71
+ ...enPanelApp,
72
+ ...enPathPicker,
73
+ ...enPwa,
74
+ ...enChannelAuth,
75
+ ...enProjects,
76
+ },
77
+ });
78
+ }
@@ -0,0 +1,12 @@
1
+ import enCore from '@/shared/lib/i18n/locales/en-US/core.json';
2
+ import enPanelApp from '@/shared/lib/i18n/locales/en-US/panel-app.json';
3
+ import zhCore from '@/shared/lib/i18n/locales/zh-CN/core.json';
4
+ import zhPanelApp from '@/shared/lib/i18n/locales/zh-CN/panel-app.json';
5
+ import { registerI18nCatalogs } from '@/shared/lib/i18n';
6
+
7
+ export function installPanelAppI18nCatalog(): void {
8
+ registerI18nCatalogs({
9
+ zh: { ...zhCore, ...zhPanelApp },
10
+ en: { ...enCore, ...enPanelApp },
11
+ });
12
+ }
@@ -1,35 +1,3 @@
1
- import zhAgents from './locales/zh-CN/agents.json';
2
- import zhChannelAuth from './locales/zh-CN/channel-auth.json';
3
- import zhChannels from './locales/zh-CN/channels.json';
4
- import zhChat from './locales/zh-CN/chat.json';
5
- import zhCore from './locales/zh-CN/core.json';
6
- import zhCron from './locales/zh-CN/cron.json';
7
- import zhDesktopUpdate from './locales/zh-CN/desktop-update.json';
8
- import zhDocBrowser from './locales/zh-CN/doc-browser.json';
9
- import zhMarketplace from './locales/zh-CN/marketplace.json';
10
- import zhInbox from './locales/zh-CN/inbox.json';
11
- import zhPathPicker from './locales/zh-CN/path-picker.json';
12
- import zhPwa from './locales/zh-CN/pwa.json';
13
- import zhProjects from './locales/zh-CN/projects.json';
14
- import zhRemote from './locales/zh-CN/remote.json';
15
- import zhRuntimeControl from './locales/zh-CN/runtime-control.json';
16
- import zhSearch from './locales/zh-CN/search.json';
17
- import enAgents from './locales/en-US/agents.json';
18
- import enChannelAuth from './locales/en-US/channel-auth.json';
19
- import enChannels from './locales/en-US/channels.json';
20
- import enChat from './locales/en-US/chat.json';
21
- import enCore from './locales/en-US/core.json';
22
- import enCron from './locales/en-US/cron.json';
23
- import enDesktopUpdate from './locales/en-US/desktop-update.json';
24
- import enDocBrowser from './locales/en-US/doc-browser.json';
25
- import enMarketplace from './locales/en-US/marketplace.json';
26
- import enInbox from './locales/en-US/inbox.json';
27
- import enPathPicker from './locales/en-US/path-picker.json';
28
- import enPwa from './locales/en-US/pwa.json';
29
- import enProjects from './locales/en-US/projects.json';
30
- import enRemote from './locales/en-US/remote.json';
31
- import enRuntimeControl from './locales/en-US/runtime-control.json';
32
- import enSearch from './locales/en-US/search.json';
33
1
  import {
34
2
  getLanguage,
35
3
  getLocale,
@@ -44,61 +12,41 @@ import {
44
12
  export type { I18nLanguage };
45
13
  export { getLanguage, getLocale, initializeI18n, LANGUAGE_OPTIONS, resolveInitialLanguage, setLanguage, subscribeLanguageChange };
46
14
 
47
- type MessageCatalog = Record<string, string>;
15
+ export type MessageCatalog = Record<string, string>;
16
+ export type I18nCatalogBundle = Record<I18nLanguage, MessageCatalog>;
48
17
  type LegacyLabelCatalog = Record<string, Record<I18nLanguage, string>>;
49
18
 
50
- const zhCatalog: MessageCatalog = {
51
- ...zhCore,
52
- ...zhDesktopUpdate,
53
- ...zhSearch,
54
- ...zhChannels,
55
- ...zhCron,
56
- ...zhRemote,
57
- ...zhRuntimeControl,
58
- ...zhChat,
59
- ...zhAgents,
60
- ...zhMarketplace,
61
- ...zhInbox,
62
- ...zhDocBrowser,
63
- ...zhPathPicker,
64
- ...zhPwa,
65
- ...zhChannelAuth,
66
- ...zhProjects
19
+ const CATALOGS: I18nCatalogBundle = {
20
+ zh: {},
21
+ en: {},
67
22
  };
68
23
 
69
- const enCatalog: MessageCatalog = {
70
- ...enCore,
71
- ...enDesktopUpdate,
72
- ...enSearch,
73
- ...enChannels,
74
- ...enCron,
75
- ...enRemote,
76
- ...enRuntimeControl,
77
- ...enChat,
78
- ...enAgents,
79
- ...enMarketplace,
80
- ...enInbox,
81
- ...enDocBrowser,
82
- ...enPathPicker,
83
- ...enPwa,
84
- ...enChannelAuth,
85
- ...enProjects
86
- };
24
+ export const LABELS: LegacyLabelCatalog = {};
87
25
 
88
- const CATALOGS: Record<I18nLanguage, MessageCatalog> = {
89
- zh: zhCatalog,
90
- en: enCatalog
91
- };
26
+ export function registerI18nCatalogs(bundle: I18nCatalogBundle): void {
27
+ Object.assign(CATALOGS.zh, bundle.zh);
28
+ Object.assign(CATALOGS.en, bundle.en);
29
+
30
+ for (const key of new Set([
31
+ ...Object.keys(CATALOGS.zh),
32
+ ...Object.keys(CATALOGS.en),
33
+ ])) {
34
+ LABELS[key] = {
35
+ zh: CATALOGS.zh[key] ?? CATALOGS.en[key] ?? key,
36
+ en: CATALOGS.en[key] ?? key,
37
+ };
38
+ }
39
+ }
40
+
41
+ export async function installMainI18nCatalog(): Promise<void> {
42
+ const catalog = await import('@/shared/lib/i18n/configs/main-i18n-catalog.config');
43
+ catalog.installMainI18nCatalog();
44
+ }
92
45
 
93
- export const LABELS: LegacyLabelCatalog = Object.fromEntries(
94
- Object.keys(enCatalog).map((key) => [
95
- key,
96
- {
97
- zh: zhCatalog[key] ?? enCatalog[key] ?? key,
98
- en: enCatalog[key] ?? key
99
- }
100
- ])
101
- );
46
+ export async function installPanelAppI18nCatalog(): Promise<void> {
47
+ const catalog = await import('@/shared/lib/i18n/configs/panel-app-i18n-catalog.config');
48
+ catalog.installPanelAppI18nCatalog();
49
+ }
102
50
 
103
51
  export function formatDateTime(value?: string | Date, lang: I18nLanguage = getLanguage()): string {
104
52
  if (!value) {
@@ -134,5 +82,5 @@ export function formatNumber(value: number, lang: I18nLanguage = getLanguage()):
134
82
  }
135
83
 
136
84
  export function t(key: string, lang: I18nLanguage = getLanguage()): string {
137
- return CATALOGS[lang]?.[key] ?? enCatalog[key] ?? key;
85
+ return CATALOGS[lang]?.[key] ?? CATALOGS.en[key] ?? key;
138
86
  }
@@ -152,51 +152,6 @@
152
152
  "appDataClassCache": "Cache",
153
153
  "appDataClassTemporary": "Temporary",
154
154
  "appDataClassLogs": "Logs",
155
- "panelAppsTitle": "Panel Apps",
156
- "panelAppsLoading": "Loading panel apps...",
157
- "panelAppsLoadFailed": "Failed to load panel apps",
158
- "panelAppsEmpty": "No panel apps yet",
159
- "panelAppsEmptyTitle": "Create your first panel app",
160
- "panelAppsEmptyDescription": "Panel apps are lightweight tools that open beside chat, such as dashboards, forms, calculators, and temporary workbenches.",
161
- "panelAppsEmptyAskTitle": "Ask NextClaw to generate one",
162
- "panelAppsEmptyAskDescription": "Start with a ready-made prompt that creates a sample local tool for this panel.",
163
- "panelAppsEmptyAskAction": "Create sample panel app",
164
- "panelAppsExamplePrompt": "Create a sample NextClaw Panel App for me: a personal task board. Put it in the NextClaw panels folder as a single *.panel.html file. Include adding tasks, toggling completion, filtering, and local state persistence. After creating it, tell me to refresh Panel Apps and open it. Do not ask follow-up questions first.",
165
- "panelAppsEmptyFileTitle": "Add it to the panels folder",
166
- "panelAppsEmptyFileDescription": "You can also add a *.panel.html file, or a *.panel folder with panel-app.json.",
167
- "panelAppsPanelsPath": "Panels folder",
168
- "panelAppsEmptyFiltered": "No panel apps in this view",
169
- "panelAppsRefresh": "Refresh panel apps",
170
- "panelAppsRefreshCurrent": "Refresh current panel app",
171
- "panelAppsSortLabel": "Sort",
172
- "panelAppsSortSmart": "Smart",
173
- "panelAppsFavorites": "Favorites",
174
- "panelAppsSortRecentOpen": "Recently Opened",
175
- "panelAppsSortUpdated": "Recently Updated",
176
- "panelAppsSortName": "Name",
177
- "panelAppsFavorite": "Favorite panel app",
178
- "panelAppsUnfavorite": "Unfavorite panel app",
179
- "panelAppsMoreActions": "More panel app actions",
180
- "panelAppsMainSidebarGroup": "Apps",
181
- "panelAppsMainSidebarGroupCollapse": "Collapse apps",
182
- "panelAppsMainSidebarGroupExpand": "Expand apps",
183
- "panelAppsAddToMainSidebar": "Add to main sidebar",
184
- "panelAppsRemoveFromMainSidebar": "Remove from main sidebar",
185
- "panelAppsPreferenceUpdateFailed": "Could not update panel app preferences",
186
- "panelAppsOpenInRightPanel": "Open in right panel",
187
- "panelAppsOpenApps": "Open app management",
188
- "panelAppsMainUnavailable": "This panel app is unavailable. It may be disabled, uninstalled, or removed from the workspace.",
189
- "panelAppsCheckingPermission": "Checking this panel app's permissions…",
190
- "panelAppsPermissionDenied": "The required NextClaw Client permission was not granted to this panel app.",
191
- "panelAppsPermissionFailed": "NextClaw could not confirm this panel app's permissions.",
192
- "panelAppsTryAgain": "Try again",
193
- "panelAppsDelete": "Delete panel app",
194
- "panelAppsDeleteConfirmTitle": "Delete panel app?",
195
- "panelAppsDeleteConfirmDescription": "This will delete the panel app file and cannot be undone.",
196
- "panelAppsClientGrantTitle": "NextClaw Client SDK",
197
- "panelAppsClientGrantDescription": "Allow this panel app to use the full NextClaw Client SDK.",
198
- "panelAppsLastOpened": "Last opened",
199
- "panelAppsUpdated": "Updated",
200
155
  "serviceAppsTitle": "Service Apps",
201
156
  "serviceAppsLoading": "Loading service apps...",
202
157
  "serviceAppsLoadFailed": "Failed to load service apps",
@@ -242,16 +197,6 @@
242
197
  "serviceAppsLastStarted": "Last started",
243
198
  "serviceAppsLastReady": "Last ready",
244
199
  "serviceAppsLastFailed": "Last failed",
245
- "serviceActionAuthorizationTitle": "Authorize service actions",
246
- "serviceActionAuthorizationDescription": "This panel app is requesting local service actions. If allowed, these actions will stay granted for this panel app.",
247
- "serviceActionAuthorizationSource": "Source",
248
- "serviceActionAuthorizationAction": "Action",
249
- "serviceActionAuthorizationActions": "Actions",
250
- "serviceActionAuthorizationPurpose": "Purpose",
251
- "serviceActionAuthorizationRisk": "Risk",
252
- "serviceActionAuthorizationInput": "Input",
253
- "serviceActionAuthorizationReject": "Reject",
254
- "serviceActionAuthorizationAllow": "Allow",
255
200
  "appPackagesDocumentAccessTitle": "Files and folders",
256
201
  "appPackagesDocumentAccessUngranted": "Not granted",
257
202
  "appPackagesDocumentAccessUnavailable": "Folder unavailable",
@@ -0,0 +1,59 @@
1
+ {
2
+ "panelAppsTitle": "Panel Apps",
3
+ "panelAppsLoading": "Loading panel apps...",
4
+ "panelAppsLoadFailed": "Failed to load panel apps",
5
+ "panelAppsEmpty": "No panel apps yet",
6
+ "panelAppsEmptyTitle": "Create your first panel app",
7
+ "panelAppsEmptyDescription": "Panel apps are lightweight tools that open beside chat, such as dashboards, forms, calculators, and temporary workbenches.",
8
+ "panelAppsEmptyAskTitle": "Ask NextClaw to generate one",
9
+ "panelAppsEmptyAskDescription": "Start with a ready-made prompt that creates a sample local tool for this panel.",
10
+ "panelAppsEmptyAskAction": "Create sample panel app",
11
+ "panelAppsExamplePrompt": "Create a sample NextClaw Panel App for me: a personal task board. Put it in the NextClaw panels folder as a single *.panel.html file. Include adding tasks, toggling completion, filtering, and local state persistence. After creating it, tell me to refresh Panel Apps and open it. Do not ask follow-up questions first.",
12
+ "panelAppsEmptyFileTitle": "Add it to the panels folder",
13
+ "panelAppsEmptyFileDescription": "You can also add a *.panel.html file, or a *.panel folder with panel-app.json.",
14
+ "panelAppsPanelsPath": "Panels folder",
15
+ "panelAppsEmptyFiltered": "No panel apps in this view",
16
+ "panelAppsRefresh": "Refresh panel apps",
17
+ "panelAppsRefreshCurrent": "Refresh current panel app",
18
+ "panelAppsSortLabel": "Sort",
19
+ "panelAppsSortSmart": "Smart",
20
+ "panelAppsFavorites": "Favorites",
21
+ "panelAppsSortRecentOpen": "Recently Opened",
22
+ "panelAppsSortUpdated": "Recently Updated",
23
+ "panelAppsSortName": "Name",
24
+ "panelAppsFavorite": "Favorite panel app",
25
+ "panelAppsUnfavorite": "Unfavorite panel app",
26
+ "panelAppsMoreActions": "More panel app actions",
27
+ "panelAppsMainSidebarGroup": "Apps",
28
+ "panelAppsMainSidebarGroupCollapse": "Collapse apps",
29
+ "panelAppsMainSidebarGroupExpand": "Expand apps",
30
+ "panelAppsAddToMainSidebar": "Add to main sidebar",
31
+ "panelAppsRemoveFromMainSidebar": "Remove from main sidebar",
32
+ "panelAppsPreferenceUpdateFailed": "Could not update panel app preferences",
33
+ "panelAppsOpenInRightPanel": "Open in right panel",
34
+ "panelAppsOpenInBrowser": "Open in Browser",
35
+ "panelAppsOpenInNewTab": "Open in New Tab",
36
+ "panelAppsOpenApps": "Open app management",
37
+ "panelAppsMainUnavailable": "This panel app is unavailable. It may be disabled, uninstalled, or removed from the workspace.",
38
+ "panelAppsCheckingPermission": "Checking this panel app's permissions…",
39
+ "panelAppsPermissionDenied": "The required NextClaw Client permission was not granted to this panel app.",
40
+ "panelAppsPermissionFailed": "NextClaw could not confirm this panel app's permissions.",
41
+ "panelAppsTryAgain": "Try again",
42
+ "panelAppsDelete": "Delete panel app",
43
+ "panelAppsDeleteConfirmTitle": "Delete panel app?",
44
+ "panelAppsDeleteConfirmDescription": "This will delete the panel app file and cannot be undone.",
45
+ "panelAppsClientGrantTitle": "NextClaw Client SDK",
46
+ "panelAppsClientGrantDescription": "Allow this panel app to use the full NextClaw Client SDK.",
47
+ "panelAppsLastOpened": "Last opened",
48
+ "panelAppsUpdated": "Updated",
49
+ "serviceActionAuthorizationTitle": "Authorize service actions",
50
+ "serviceActionAuthorizationDescription": "This panel app is requesting local service actions. If allowed, these actions will stay granted for this panel app.",
51
+ "serviceActionAuthorizationSource": "Source",
52
+ "serviceActionAuthorizationAction": "Action",
53
+ "serviceActionAuthorizationActions": "Actions",
54
+ "serviceActionAuthorizationPurpose": "Purpose",
55
+ "serviceActionAuthorizationRisk": "Risk",
56
+ "serviceActionAuthorizationInput": "Input",
57
+ "serviceActionAuthorizationReject": "Reject",
58
+ "serviceActionAuthorizationAllow": "Allow"
59
+ }
@@ -11,6 +11,12 @@
11
11
  "projectsLoadFailed": "Failed to load project",
12
12
  "projectsEmpty": "No registered projects",
13
13
  "projectsChoose": "Choose a project",
14
+ "projectsRemoveFromList": "Remove from project list",
15
+ "projectsRemoveConfirmTitle": "Remove from project list",
16
+ "projectsRemoveConfirmDescription": "The local folder, previous sessions, and project work records will not be deleted. Existing sessions remain available in the session list, and adding the same folder again restores the original project.",
17
+ "projectsRemoveConfirmAction": "Remove project",
18
+ "projectsRemoveSuccess": "Project removed from the list",
19
+ "projectsRemoveFailed": "Failed to remove project",
14
20
  "projectsAsOf": "Observed at",
15
21
  "projectsQuality": "Data quality",
16
22
  "projectsQuality_complete": "Complete",
@@ -133,12 +139,22 @@
133
139
  "projectsWorkCategory_started": "In progress",
134
140
  "projectsWorkCategory_completed": "Completed",
135
141
  "projectsWorkCategory_canceled": "Canceled",
142
+ "projectsWorkState_backlog": "Backlog",
143
+ "projectsWorkState_planned": "Planned",
144
+ "projectsWorkState_inProgress": "In Progress",
145
+ "projectsWorkState_inReview": "In Review",
146
+ "projectsWorkState_awaitingAcceptance": "Awaiting Acceptance",
147
+ "projectsWorkState_completed": "Completed",
148
+ "projectsWorkState_canceled": "Canceled",
136
149
  "projectsWorkSummary": "Work summary",
137
150
  "projectsWorkTotal": "Total",
138
151
  "projectsWorkActive": "Active",
139
152
  "projectsWorkNeedsAttention": "Needs attention",
140
153
  "projectsWorkCompleted": "Completed",
141
154
  "projectsWorkRecentlyUpdated": "Recently updated",
155
+ "projectsWorkLoadMore": "Load more",
156
+ "projectsRecentArtifacts": "Recent artifacts",
157
+ "projectsNoRecentArtifacts": "No artifacts have been linked to work items yet.",
142
158
  "projectsWorkActivity_created": "Created",
143
159
  "projectsWorkActivity_updated": "Updated",
144
160
  "projectsWorkActivity_state-changed": "State changed",
@@ -152,51 +152,6 @@
152
152
  "appDataClassCache": "缓存",
153
153
  "appDataClassTemporary": "临时文件",
154
154
  "appDataClassLogs": "日志",
155
- "panelAppsTitle": "面板应用",
156
- "panelAppsLoading": "加载面板应用中...",
157
- "panelAppsLoadFailed": "面板应用加载失败",
158
- "panelAppsEmpty": "暂无面板应用",
159
- "panelAppsEmptyTitle": "创建你的第一个面板应用",
160
- "panelAppsEmptyDescription": "面板应用是在聊天旁边打开的轻量工具,适合仪表盘、表单、计算器和临时工作台。",
161
- "panelAppsEmptyAskTitle": "让 NextClaw 帮你生成",
162
- "panelAppsEmptyAskDescription": "从一段现成提示词开始,让 NextClaw 直接创建一个可打开的示例小工具。",
163
- "panelAppsEmptyAskAction": "生成示例面板应用",
164
- "panelAppsExamplePrompt": "请直接为我创建一个示例 NextClaw Panel App:个人任务看板。请把它放到 NextClaw panels 目录,使用单文件 *.panel.html,包含任务添加、完成状态切换、筛选和本地状态保存。创建完成后告诉我刷新 Panel Apps 并打开它。不要先问我问题。",
165
- "panelAppsEmptyFileTitle": "放入 panels 目录",
166
- "panelAppsEmptyFileDescription": "也可以添加 *.panel.html 文件,或带 panel-app.json 的 *.panel 目录。",
167
- "panelAppsPanelsPath": "面板目录",
168
- "panelAppsEmptyFiltered": "当前分类暂无面板应用",
169
- "panelAppsRefresh": "刷新面板应用",
170
- "panelAppsRefreshCurrent": "刷新当前面板应用",
171
- "panelAppsSortLabel": "排序",
172
- "panelAppsSortSmart": "智能排序",
173
- "panelAppsFavorites": "收藏",
174
- "panelAppsSortRecentOpen": "最近打开",
175
- "panelAppsSortUpdated": "最近更新",
176
- "panelAppsSortName": "名称",
177
- "panelAppsFavorite": "收藏面板应用",
178
- "panelAppsUnfavorite": "取消收藏面板应用",
179
- "panelAppsMoreActions": "更多面板应用操作",
180
- "panelAppsMainSidebarGroup": "应用",
181
- "panelAppsMainSidebarGroupCollapse": "收起应用",
182
- "panelAppsMainSidebarGroupExpand": "展开应用",
183
- "panelAppsAddToMainSidebar": "添加到主侧栏",
184
- "panelAppsRemoveFromMainSidebar": "从主侧栏移除",
185
- "panelAppsPreferenceUpdateFailed": "无法更新面板应用设置",
186
- "panelAppsOpenInRightPanel": "在右侧面板打开",
187
- "panelAppsOpenApps": "打开应用管理",
188
- "panelAppsMainUnavailable": "此面板应用当前不可用。它可能已被禁用、卸载或从工作区删除。",
189
- "panelAppsCheckingPermission": "正在确认此面板应用的权限…",
190
- "panelAppsPermissionDenied": "未授予此面板应用所需的 NextClaw Client 权限。",
191
- "panelAppsPermissionFailed": "无法确认此面板应用的权限。",
192
- "panelAppsTryAgain": "重试",
193
- "panelAppsDelete": "删除面板应用",
194
- "panelAppsDeleteConfirmTitle": "删除面板应用?",
195
- "panelAppsDeleteConfirmDescription": "将删除这个面板应用文件,删除后不可恢复。",
196
- "panelAppsClientGrantTitle": "NextClaw Client SDK",
197
- "panelAppsClientGrantDescription": "允许这个面板应用使用完整 NextClaw Client SDK。",
198
- "panelAppsLastOpened": "上次打开",
199
- "panelAppsUpdated": "更新于",
200
155
  "serviceAppsTitle": "服务应用",
201
156
  "serviceAppsLoading": "加载服务应用中...",
202
157
  "serviceAppsLoadFailed": "服务应用加载失败",
@@ -242,16 +197,6 @@
242
197
  "serviceAppsLastStarted": "上次启动",
243
198
  "serviceAppsLastReady": "上次就绪",
244
199
  "serviceAppsLastFailed": "上次失败",
245
- "serviceActionAuthorizationTitle": "授权服务动作",
246
- "serviceActionAuthorizationDescription": "此面板应用正在请求调用本地服务应用动作。允许后,这些动作会为该面板应用记住授权。",
247
- "serviceActionAuthorizationSource": "来源",
248
- "serviceActionAuthorizationAction": "动作",
249
- "serviceActionAuthorizationActions": "动作",
250
- "serviceActionAuthorizationPurpose": "用途",
251
- "serviceActionAuthorizationRisk": "风险",
252
- "serviceActionAuthorizationInput": "输入",
253
- "serviceActionAuthorizationReject": "拒绝",
254
- "serviceActionAuthorizationAllow": "允许",
255
200
  "appPackagesDocumentAccessTitle": "文件与文件夹",
256
201
  "appPackagesDocumentAccessUngranted": "未授权",
257
202
  "appPackagesDocumentAccessUnavailable": "目录不可用",
@@ -0,0 +1,59 @@
1
+ {
2
+ "panelAppsTitle": "面板应用",
3
+ "panelAppsLoading": "加载面板应用中...",
4
+ "panelAppsLoadFailed": "面板应用加载失败",
5
+ "panelAppsEmpty": "暂无面板应用",
6
+ "panelAppsEmptyTitle": "创建你的第一个面板应用",
7
+ "panelAppsEmptyDescription": "面板应用是在聊天旁边打开的轻量工具,适合仪表盘、表单、计算器和临时工作台。",
8
+ "panelAppsEmptyAskTitle": "让 NextClaw 帮你生成",
9
+ "panelAppsEmptyAskDescription": "从一段现成提示词开始,让 NextClaw 直接创建一个可打开的示例小工具。",
10
+ "panelAppsEmptyAskAction": "生成示例面板应用",
11
+ "panelAppsExamplePrompt": "请直接为我创建一个示例 NextClaw Panel App:个人任务看板。请把它放到 NextClaw panels 目录,使用单文件 *.panel.html,包含任务添加、完成状态切换、筛选和本地状态保存。创建完成后告诉我刷新 Panel Apps 并打开它。不要先问我问题。",
12
+ "panelAppsEmptyFileTitle": "放入 panels 目录",
13
+ "panelAppsEmptyFileDescription": "也可以添加 *.panel.html 文件,或带 panel-app.json 的 *.panel 目录。",
14
+ "panelAppsPanelsPath": "面板目录",
15
+ "panelAppsEmptyFiltered": "当前分类暂无面板应用",
16
+ "panelAppsRefresh": "刷新面板应用",
17
+ "panelAppsRefreshCurrent": "刷新当前面板应用",
18
+ "panelAppsSortLabel": "排序",
19
+ "panelAppsSortSmart": "智能排序",
20
+ "panelAppsFavorites": "收藏",
21
+ "panelAppsSortRecentOpen": "最近打开",
22
+ "panelAppsSortUpdated": "最近更新",
23
+ "panelAppsSortName": "名称",
24
+ "panelAppsFavorite": "收藏面板应用",
25
+ "panelAppsUnfavorite": "取消收藏面板应用",
26
+ "panelAppsMoreActions": "更多面板应用操作",
27
+ "panelAppsMainSidebarGroup": "应用",
28
+ "panelAppsMainSidebarGroupCollapse": "收起应用",
29
+ "panelAppsMainSidebarGroupExpand": "展开应用",
30
+ "panelAppsAddToMainSidebar": "添加到主侧栏",
31
+ "panelAppsRemoveFromMainSidebar": "从主侧栏移除",
32
+ "panelAppsPreferenceUpdateFailed": "无法更新面板应用设置",
33
+ "panelAppsOpenInRightPanel": "在右侧面板打开",
34
+ "panelAppsOpenInBrowser": "在浏览器中打开",
35
+ "panelAppsOpenInNewTab": "在新标签页中打开",
36
+ "panelAppsOpenApps": "打开应用管理",
37
+ "panelAppsMainUnavailable": "此面板应用当前不可用。它可能已被禁用、卸载或从工作区删除。",
38
+ "panelAppsCheckingPermission": "正在确认此面板应用的权限…",
39
+ "panelAppsPermissionDenied": "未授予此面板应用所需的 NextClaw Client 权限。",
40
+ "panelAppsPermissionFailed": "无法确认此面板应用的权限。",
41
+ "panelAppsTryAgain": "重试",
42
+ "panelAppsDelete": "删除面板应用",
43
+ "panelAppsDeleteConfirmTitle": "删除面板应用?",
44
+ "panelAppsDeleteConfirmDescription": "将删除这个面板应用文件,删除后不可恢复。",
45
+ "panelAppsClientGrantTitle": "NextClaw Client SDK",
46
+ "panelAppsClientGrantDescription": "允许这个面板应用使用完整 NextClaw Client SDK。",
47
+ "panelAppsLastOpened": "上次打开",
48
+ "panelAppsUpdated": "更新于",
49
+ "serviceActionAuthorizationTitle": "授权服务动作",
50
+ "serviceActionAuthorizationDescription": "此面板应用正在请求调用本地服务应用动作。允许后,这些动作会为该面板应用记住授权。",
51
+ "serviceActionAuthorizationSource": "来源",
52
+ "serviceActionAuthorizationAction": "动作",
53
+ "serviceActionAuthorizationActions": "动作",
54
+ "serviceActionAuthorizationPurpose": "用途",
55
+ "serviceActionAuthorizationRisk": "风险",
56
+ "serviceActionAuthorizationInput": "输入",
57
+ "serviceActionAuthorizationReject": "拒绝",
58
+ "serviceActionAuthorizationAllow": "允许"
59
+ }
@@ -11,6 +11,12 @@
11
11
  "projectsLoadFailed": "项目读取失败",
12
12
  "projectsEmpty": "还没有注册项目",
13
13
  "projectsChoose": "选择项目",
14
+ "projectsRemoveFromList": "从项目列表移除",
15
+ "projectsRemoveConfirmTitle": "从项目列表移除",
16
+ "projectsRemoveConfirmDescription": "本地目录、历史会话和项目工作记录不会删除。已有会话仍可在会话列表中使用;以后重新添加同一目录时,会恢复原项目。",
17
+ "projectsRemoveConfirmAction": "移除项目",
18
+ "projectsRemoveSuccess": "项目已从列表移除",
19
+ "projectsRemoveFailed": "项目移除失败",
14
20
  "projectsAsOf": "观测时间",
15
21
  "projectsQuality": "数据质量",
16
22
  "projectsQuality_complete": "完整",
@@ -133,12 +139,22 @@
133
139
  "projectsWorkCategory_started": "推进中",
134
140
  "projectsWorkCategory_completed": "已完成",
135
141
  "projectsWorkCategory_canceled": "已取消",
142
+ "projectsWorkState_backlog": "待整理",
143
+ "projectsWorkState_planned": "已计划",
144
+ "projectsWorkState_inProgress": "进行中",
145
+ "projectsWorkState_inReview": "评审中",
146
+ "projectsWorkState_awaitingAcceptance": "等待验收",
147
+ "projectsWorkState_completed": "已完成",
148
+ "projectsWorkState_canceled": "已取消",
136
149
  "projectsWorkSummary": "工作项概况",
137
150
  "projectsWorkTotal": "全部工作项",
138
151
  "projectsWorkActive": "推进中",
139
152
  "projectsWorkNeedsAttention": "需要关注",
140
153
  "projectsWorkCompleted": "已完成",
141
154
  "projectsWorkRecentlyUpdated": "最近更新",
155
+ "projectsWorkLoadMore": "加载更多",
156
+ "projectsRecentArtifacts": "最近产物",
157
+ "projectsNoRecentArtifacts": "工作项还没有关联产物。",
142
158
  "projectsWorkActivity_created": "创建了工作项",
143
159
  "projectsWorkActivity_updated": "更新了工作项",
144
160
  "projectsWorkActivity_state-changed": "切换了状态",
package/vite.config.ts CHANGED
@@ -11,10 +11,36 @@ const marketplacePreviewCovers = new Map([
11
11
  ['starter-card', path.resolve(__dirname, '../../apps/examples/starter-card/marketplace-assets/cover.webp')],
12
12
  ['workspace-glance', path.resolve(__dirname, '../../apps/examples/workspace-glance/marketplace-assets/cover.webp')],
13
13
  ]);
14
+ const standalonePanelAppPath = /^\/apps\/panel\/[^/]+\/standalone\/?(?:\?.*)?$/;
15
+
16
+ class StandalonePanelAppRequestRewriter {
17
+ rewrite = (request: { url?: string }) => {
18
+ if (request.url && standalonePanelAppPath.test(request.url)) {
19
+ request.url = '/panel-standalone.html';
20
+ }
21
+ };
22
+ }
23
+
24
+ const standalonePanelAppRequestRewriter = new StandalonePanelAppRequestRewriter();
14
25
 
15
26
  export default defineConfig({
16
27
  plugins: [
17
28
  react(),
29
+ {
30
+ name: 'nextclaw-panel-app-standalone-entry',
31
+ configureServer: (server) => {
32
+ server.middlewares.use((request, _response, next) => {
33
+ standalonePanelAppRequestRewriter.rewrite(request);
34
+ next();
35
+ });
36
+ },
37
+ configurePreviewServer: (server) => {
38
+ server.middlewares.use((request, _response, next) => {
39
+ standalonePanelAppRequestRewriter.rewrite(request);
40
+ next();
41
+ });
42
+ },
43
+ },
18
44
  {
19
45
  name: 'nextclaw-app-marketplace-preview-assets',
20
46
  apply: 'serve',
@@ -89,5 +115,14 @@ export default defineConfig({
89
115
  ws: true
90
116
  }
91
117
  }
92
- }
118
+ },
119
+ build: {
120
+ manifest: true,
121
+ rollupOptions: {
122
+ input: {
123
+ main: path.resolve(__dirname, 'index.html'),
124
+ panelStandalone: path.resolve(__dirname, 'panel-standalone.html'),
125
+ },
126
+ },
127
+ },
93
128
  });