@nextclaw/ui 0.26.5 → 0.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +53 -0
- package/dist/.vite/manifest.json +1271 -1227
- package/dist/assets/{abnfDiagram-VRR7QNED-Dcw10Yt1.js → abnfDiagram-VRR7QNED-DmeCRAkd.js} +1 -1
- package/dist/assets/account-panel-BYxGT4m4.js +1 -0
- package/dist/assets/{aiden0z-pptx-renderer.es--oNqetPA.js → aiden0z-pptx-renderer.es-ChX5DHqP.js} +1 -1
- package/dist/assets/api-CG22BskB.js +20 -0
- package/dist/assets/app-presenter-provider-CJFjhVYI.js +28 -0
- package/dist/assets/app-presenter-provider-D3BuuOyZ.css +1 -0
- package/dist/assets/appearance-settings-page-BcXr0vHp.js +1 -0
- package/dist/assets/{arc-DBRedCax.js → arc-Cu6Ols44.js} +1 -1
- package/dist/assets/architecture-TIHT7OUA-CLjV_xu4.js +1 -0
- package/dist/assets/{architectureDiagram-ZJ3FMSHR-Dufhtuv-.js → architectureDiagram-ZJ3FMSHR-DrNB0eLE.js} +1 -1
- package/dist/assets/{blockDiagram-677ZJIJ3-BUk0vtJ7.js → blockDiagram-677ZJIJ3-08rHt6DJ.js} +1 -1
- package/dist/assets/{book-open-Bcnn2_uV.js → book-open-ClbJmmxP.js} +1 -1
- package/dist/assets/{c4Diagram-LMCZKHZV-CxDcVE9p.js → c4Diagram-LMCZKHZV-CCVgRG-u.js} +1 -1
- package/dist/assets/{card-Cqs73hGI.js → card-BdC01NFF.js} +1 -1
- package/dist/assets/channel-BgpbPyEH.js +1 -0
- package/dist/assets/channels-list-page-BrIvJlop.js +8 -0
- package/dist/assets/chunk-2Q5K7J3B-DjhMPqAC.js +1 -0
- package/dist/assets/{chunk-32BRIVSS-DSF3KElA.js → chunk-32BRIVSS-BeCaI-JN.js} +1 -1
- package/dist/assets/{chunk-52WLFC77-Costxzr3.js → chunk-52WLFC77-ZXIcYPYs.js} +1 -1
- package/dist/assets/{chunk-5FCAYU7R-rhqzGGZo.js → chunk-5FCAYU7R-DDwTPcy8.js} +1 -1
- package/dist/assets/{chunk-5HE753X5-BsEsmIao.js → chunk-5HE753X5-WygrMYPL.js} +1 -1
- package/dist/assets/{chunk-5JV3BV7I-Dqw_DCoN.js → chunk-5JV3BV7I-o8T3KZgk.js} +1 -1
- package/dist/assets/{chunk-5TONJI2A-Cft82fp8.js → chunk-5TONJI2A-BKFbUT7J.js} +1 -1
- package/dist/assets/{chunk-5VM5RSS4-DqNHn9Dl.js → chunk-5VM5RSS4-DYxCRV86.js} +1 -1
- package/dist/assets/{chunk-7BUUIJ7U-A5SBEMYY.js → chunk-7BUUIJ7U-CvSeJlKZ.js} +1 -1
- package/dist/assets/{chunk-BIQX33UG-1Ng3mTrH.js → chunk-BIQX33UG-BhH3RHCY.js} +1 -1
- package/dist/assets/{chunk-C7G6YPKG-DRJEy8ZI.js → chunk-C7G6YPKG-BTL0-xL3.js} +1 -1
- package/dist/assets/{chunk-CQNSW5MT-Bydv_J3J.js → chunk-CQNSW5MT-DWAU4QaD.js} +1 -1
- package/dist/assets/{chunk-CYSBUYHQ-HkMIg12u.js → chunk-CYSBUYHQ-B7ZBMXTx.js} +1 -1
- package/dist/assets/{chunk-EMLP6XTP-C5ndDvm3.js → chunk-EMLP6XTP-D92HvnHE.js} +1 -1
- package/dist/assets/{chunk-EX3LRPZG-DzeloZRo.js → chunk-EX3LRPZG-DfOGKwW8.js} +1 -1
- package/dist/assets/{chunk-FWX5IMBZ-n_2_CLTQ.js → chunk-FWX5IMBZ-DUuJUrXJ.js} +2 -2
- package/dist/assets/{chunk-HOUHSVGY-kx_slvu3.js → chunk-HOUHSVGY-i3MDyUY5.js} +1 -1
- package/dist/assets/{chunk-ICXQ74PX-sQLMURqL.js → chunk-ICXQ74PX-F_pmNX6t.js} +1 -1
- package/dist/assets/{chunk-JG7HCLWE-CMUn5Elc.js → chunk-JG7HCLWE-DygOelrU.js} +1 -1
- package/dist/assets/{chunk-JWPE2WC7-Cra3s-Uk.js → chunk-JWPE2WC7-BpiZMeRl.js} +1 -1
- package/dist/assets/{chunk-MOJQB5TN-umcrg5Bi.js → chunk-MOJQB5TN-CV10sB1I.js} +1 -1
- package/dist/assets/{chunk-MOZMSUNE-BnljD1ig.js → chunk-MOZMSUNE-Cf1WZNm0.js} +1 -1
- package/dist/assets/{chunk-OGEWGWER-BXx5pQjU.js → chunk-OGEWGWER-DuSw54VR.js} +1 -1
- package/dist/assets/{chunk-OSBZ3O6U-D-1qfdWu.js → chunk-OSBZ3O6U-_rt_XKSZ.js} +1 -1
- package/dist/assets/{chunk-PUDLZKDR-DLzX78LC.js → chunk-PUDLZKDR-BFPaAGNW.js} +1 -1
- package/dist/assets/{chunk-Q4XR5HBZ-DTK-rtW6.js → chunk-Q4XR5HBZ-GE0v_E5y.js} +1 -1
- package/dist/assets/{chunk-QBLGF6JB-CsFeIGfr.js → chunk-QBLGF6JB-BK_FpnlJ.js} +1 -1
- package/dist/assets/{chunk-R7FJI6CG-4xNYUeng.js → chunk-R7FJI6CG-CpYh6rGo.js} +1 -1
- package/dist/assets/{chunk-RYQCIY6F-DJiHiTE5.js → chunk-RYQCIY6F-htnxL_Cl.js} +1 -1
- package/dist/assets/{chunk-U6XO7XAA-BVYkauHz.js → chunk-U6XO7XAA-wDbE4BZ7.js} +1 -1
- package/dist/assets/{chunk-V7JOEXUC-BsazE8cS.js → chunk-V7JOEXUC-DDRSVFTB.js} +1 -1
- package/dist/assets/chunk-VAUOI2AC-GYimZYx9.js +1 -0
- package/dist/assets/{chunk-VR4S4FIN-7RoZQffO.js → chunk-VR4S4FIN-COdhHR1o.js} +1 -1
- package/dist/assets/{chunk-WYO6CB5R-DEuS6N1R.js → chunk-WYO6CB5R-DPDGhyF6.js} +3 -3
- package/dist/assets/chunk-XXDRQBXY-KKCf0HV5.js +1 -0
- package/dist/assets/{chunk-YOTPTUD7-9KBrosZL.js → chunk-YOTPTUD7-D8ir9Nx5.js} +1 -1
- package/dist/assets/{chunk-ZGVPDNZ5-IYgN9f5A.js → chunk-ZGVPDNZ5-BuNKD836.js} +1 -1
- package/dist/assets/{chunk-ZIRB5QZD-BUo0-zcp.js → chunk-ZIRB5QZD-DyHzq8jH.js} +1 -1
- package/dist/assets/{circle-dashed-EY1ScSMe.js → circle-dashed-nDaMRmP-.js} +1 -1
- package/dist/assets/classDiagram-OUVF2IWQ-iRMPRR8M.js +1 -0
- package/dist/assets/classDiagram-v2-EOCWNBFH-BguFy_wj.js +1 -0
- package/dist/assets/{client-CH7w6yRV.js → client-DlFB5dW5.js} +1 -1
- package/dist/assets/config-split-page-C06fU9OQ.js +1 -0
- package/dist/assets/confirm-dialog-DpcmlXhd.js +1 -0
- package/dist/assets/{app-presenter-provider-jNGlmBLe.css → context-menu-DEcVZfaU.css} +1 -1
- package/dist/assets/context-menu-DKIEaY7f.js +211 -0
- package/dist/assets/{cose-bilkent-JH36ORCC-DhqbC1fR.js → cose-bilkent-JH36ORCC-B1I1_P6a.js} +1 -1
- package/dist/assets/{createLucideIcon-Cfo2ySi5.js → createLucideIcon-Lnt-4LMC.js} +1 -1
- package/dist/assets/cynefin-VYW2F7L2-CtbjXuCW.js +1 -0
- package/dist/assets/{cynefinDiagram-TSTJHNR4-C-TBRi5V.js → cynefinDiagram-TSTJHNR4-DcOnhnCo.js} +1 -1
- package/dist/assets/{dagre-VKFMJZFB-BmafJymp.js → dagre-VKFMJZFB-hAX89lg3.js} +1 -1
- package/dist/assets/{dagre-CrgsRasE.js → dagre-nSYhf9yY.js} +1 -1
- package/dist/assets/{desktop-capabilities-page-BDYITStl.js → desktop-capabilities-page-DPORyZAu.js} +1 -1
- package/dist/assets/desktop-update-config-BMTeWZmn.js +1 -0
- package/dist/assets/{diagram-FQU43EPY-BoOMwa6D.js → diagram-FQU43EPY-C1mRMD2k.js} +1 -1
- package/dist/assets/{diagram-G47NLZAW-Le7N6Uym.js → diagram-G47NLZAW-D2XBn5al.js} +1 -1
- package/dist/assets/{diagram-NH7WQ7WH-Fbpj3-MO.js → diagram-NH7WQ7WH-3LmRsmkC.js} +1 -1
- package/dist/assets/{diagram-OA4YK3LP-D3QuGGuu.js → diagram-OA4YK3LP-CFWn-osC.js} +1 -1
- package/dist/assets/{diagram-WEI45ONY-Cxu1uiN6.js → diagram-WEI45ONY-BqNRbUvU.js} +1 -1
- package/dist/assets/dialog-BNXSPMX_.js +1 -0
- package/dist/assets/dist-Cuiqqp1O.js +41 -0
- package/dist/assets/doc-browser-CDEapjmj.js +1 -0
- package/dist/assets/{doc-browser-context-DwgG6wrz.js → doc-browser-context-0QDWYorh.js} +1 -1
- package/dist/assets/{docx-preview-CkU2psnd.js → docx-preview-CunAATyC.js} +1 -1
- package/dist/assets/{download-BoaKzDJk.js → download-f_sPcoLZ.js} +1 -1
- package/dist/assets/{ebnfDiagram-CCIWWBDH-CCAjuQM6.js → ebnfDiagram-CCIWWBDH-CYb8IwqD.js} +1 -1
- package/dist/assets/{erDiagram-Q63AITRT-BuzUAq-d.js → erDiagram-Q63AITRT-H47mUoeK.js} +1 -1
- package/dist/assets/eventmodeling-45OFAUF4-Djd6id_u.js +1 -0
- package/dist/assets/extensions-B-0xQz3L.js +1 -0
- package/dist/assets/external-link-CbVlnlNy.js +1 -0
- package/dist/assets/flowDiagram-23GEKE2U-DUrsM_ZL.js +1 -0
- package/dist/assets/{form-actions-D9JWSFQu.js → form-actions-BoTqELHB.js} +1 -1
- package/dist/assets/{ganttDiagram-NO4QXBWP-cJmWVY8F.js → ganttDiagram-NO4QXBWP-hSX45zfV.js} +1 -1
- package/dist/assets/gitGraph-TEB2WS4Q-CU6P_2Cm.js +1 -0
- package/dist/assets/{gitGraphDiagram-IHSO6WYX-F58o-vtP.js → gitGraphDiagram-IHSO6WYX-Br0UW2qg.js} +1 -1
- package/dist/assets/{i18n-Bm3Ov7Fy.js → i18n-B0V5NkFj.js} +2 -2
- package/dist/assets/inbox-Bna8iUy0.js +1 -0
- package/dist/assets/info-DKCQHKI2-Bj2P_7RC.js +1 -0
- package/dist/assets/{infoDiagram-FWYZ7A6U-Gt59b83C.js → infoDiagram-FWYZ7A6U-DQmP_67w.js} +1 -1
- package/dist/assets/{ishikawaDiagram-FXEZZL3T-1u4IAj1I.js → ishikawaDiagram-FXEZZL3T-BHAV2oes.js} +1 -1
- package/dist/assets/{journeyDiagram-5HDEW3XC-CCQsfV-5.js → journeyDiagram-5HDEW3XC-CFHax4_d.js} +1 -1
- package/dist/assets/{kanban-definition-HUTT4EX6-vlB6O_Zn.js → kanban-definition-HUTT4EX6-B4ZA9rp5.js} +1 -1
- package/dist/assets/katex-BprZ-Wwb.js +1 -0
- package/dist/assets/{keyboard-shortcuts-settings-page-DZ8A1iLg.js → keyboard-shortcuts-settings-page-BluWKrSo.js} +1 -1
- package/dist/assets/{line-D_bHubTL.js → line-BboM0HLF.js} +1 -1
- package/dist/assets/{linear-ChlwuS5y.js → linear-4K_M1oYM.js} +1 -1
- package/dist/assets/login-page-BMHW0Hh0.js +1 -0
- package/dist/assets/{login-page-C-DvcG3L.js → login-page-JNr5JCEw.js} +1 -1
- package/dist/assets/main-BCX_Untx.css +1 -0
- package/dist/assets/main-C5kbmGUV.js +2 -0
- package/dist/assets/main-i18n-catalog.config-DO4wNT7T.js +1 -0
- package/dist/assets/{map-oGHTsIu8.js → map-26GpO1wn.js} +1 -1
- package/dist/assets/mcp-marketplace-page-CV-PHKTN.js +1 -0
- package/dist/assets/{mermaid-parser.core-CuRe1ZG4.js → mermaid-parser.core-BTJFnvRC.js} +2 -2
- package/dist/assets/{mermaid.core-u4YCFKRf.js → mermaid.core-B7ufoXgq.js} +3 -3
- package/dist/assets/{mindmap-definition-LN4V7U3C-DeJAQYTu.js → mindmap-definition-LN4V7U3C-BHyru6KE.js} +1 -1
- package/dist/assets/model-config-page-C-wbM6Fe.js +1 -0
- package/dist/assets/{navigation-link-CjxNC8aT.js → navigation-link-DFLSVIut.js} +2 -2
- package/dist/assets/{ordinal-C6JFfkKN.js → ordinal-BqFe2ePF.js} +1 -1
- package/dist/assets/packet-7NZHBO7P-ti5ge2jr.js +1 -0
- package/dist/assets/panel-app-CSQmm_7E.js +1 -0
- package/dist/assets/panel-app-i18n-catalog.config-Bo52dPuF.js +1 -0
- package/dist/assets/panelStandalone-PuuMF65O.js +2 -0
- package/dist/assets/panelStandalone-XRlWxbRS.css +1 -0
- package/dist/assets/{pegDiagram-2B236MQR-nVMkxShH.js → pegDiagram-2B236MQR-PVTatU5j.js} +1 -1
- package/dist/assets/pie-RZYD4A2V-Bnep8TyV.js +1 -0
- package/dist/assets/{pieDiagram-ENE6RG2P-8aUH44QZ.js → pieDiagram-ENE6RG2P-CGc-QCc7.js} +1 -1
- package/dist/assets/plus-CywSlIbG.js +1 -0
- package/dist/assets/privacy-settings-page-CPdEiouE.js +1 -0
- package/dist/assets/projects-D_cd_t4G.js +1 -0
- package/dist/assets/provider-models-XRArsply.js +1 -0
- package/dist/assets/provider-scoped-model-input-C8JI-hus.js +1 -0
- package/dist/assets/providers-config-page-fyMlVgvq.js +1 -0
- package/dist/assets/puzzle-Bk3ud1KI.js +1 -0
- package/dist/assets/pwa-Cx6Fnox4.js +1 -0
- package/dist/assets/{quadrantDiagram-ABIIQ3AL-EY8hpFv8.js → quadrantDiagram-ABIIQ3AL-DGL36riv.js} +1 -1
- package/dist/assets/radar-I7S5WNFK-BYg-icAP.js +1 -0
- package/dist/assets/railroad-3IZDKUUU-_CHO-Fi1.js +1 -0
- package/dist/assets/railroad-abnf-AHOZXSZD-hbQDevHe.js +1 -0
- package/dist/assets/railroad-ebnf-EBAXGLYW-v4RZkOfi.js +1 -0
- package/dist/assets/railroad-peg-LSFZ7HO6-bC9BqkI5.js +1 -0
- package/dist/assets/{railroadDiagram-RFXS5EU6-CNhcIeji.js → railroadDiagram-RFXS5EU6-CyNwvhSb.js} +1 -1
- package/dist/assets/{refresh-cw-BlXDrVP0.js → refresh-cw-Ca2napNx.js} +1 -1
- package/dist/assets/remote-D5MBQNZE.js +1 -0
- package/dist/assets/{requirementDiagram-TGXJPOKE-D8Dcs-Rt.js → requirementDiagram-TGXJPOKE-C31NMKJ0.js} +1 -1
- package/dist/assets/{rotate-cw-ei6rPD6z.js → rotate-cw-DXg7sNUE.js} +1 -1
- package/dist/assets/runtime-config-page--ivCxBT4.js +1 -0
- package/dist/assets/{sankeyDiagram-HTMAVEWB-HTrb6aa-.js → sankeyDiagram-HTMAVEWB-CwrQ_7PA.js} +1 -1
- package/dist/assets/{save-DdF-bXgC.js → save-DNigywZ9.js} +1 -1
- package/dist/assets/search-U9C0oTQJ.js +1 -0
- package/dist/assets/search-config-page-Bdx_RR1q.js +1 -0
- package/dist/assets/secrets-config-page-CvMIcsfJ.js +3 -0
- package/dist/assets/security-config-CQmMqQ8v.js +1 -0
- package/dist/assets/select-DxwDeKUR.js +1 -0
- package/dist/assets/{sequenceDiagram-DBY2YBRQ-6f_4X16Y.js → sequenceDiagram-DBY2YBRQ-EFD482_y.js} +1 -1
- package/dist/assets/service-apps-panel-CiYO1Be4.js +1 -0
- package/dist/assets/{settings-2-CrNhfInU.js → settings-2-BrBUdRoY.js} +1 -1
- package/dist/assets/{sizeCapture-X5ZJPWSS-Ck9rsuwL.js → sizeCapture-X5ZJPWSS-TDvULTE1.js} +1 -1
- package/dist/assets/{src-C8AUg09O.js → src-CI2AvEMj.js} +1 -1
- package/dist/assets/{stateDiagram-2N3HPSRC-Cm33MLHu.js → stateDiagram-2N3HPSRC-JdPsIYHo.js} +1 -1
- package/dist/assets/stateDiagram-v2-6OUMAXLB-4_aAQfB_.js +1 -0
- package/dist/assets/{status-dot-C3SRFEta.js → status-dot-BbGsrkIX.js} +1 -1
- package/dist/assets/{swimlanes-5IMT3BWC-B107vmvM.js → swimlanes-5IMT3BWC-BnxpKeK_.js} +2 -2
- package/dist/assets/swimlanesDiagram-G3AALYLV-wCqfwsw-.js +8 -0
- package/dist/assets/tag-chip-BDbxcf6P.js +1 -0
- package/dist/assets/theme-provider-D98XGa-c.js +1 -0
- package/dist/assets/{timeline-definition-FHXFAJF6-CJEoAj33.js → timeline-definition-FHXFAJF6-2IL22-uC.js} +1 -1
- package/dist/assets/trash-2-DwSkRfeB.js +1 -0
- package/dist/assets/treeView-QDETBFTQ-BAyOb14Z.js +1 -0
- package/dist/assets/treemap-6X3UGDF4-DgPDM0zS.js +1 -0
- package/dist/assets/{use-config-evzage09.js → use-config-D3cNzk2k.js} +1 -1
- package/dist/assets/{use-desktop-capabilities-BYDjFlpt.js → use-desktop-capabilities-D7odgaTB.js} +1 -1
- package/dist/assets/use-viewport-layout-BANU5E1t.js +1 -0
- package/dist/assets/{vennDiagram-L72KCM5P-DzsUHk5I.js → vennDiagram-L72KCM5P-Cjf6n5Va.js} +1 -1
- package/dist/assets/wardley-OPB4EBWU-eCElh8z5.js +1 -0
- package/dist/assets/{wardleyDiagram-EHGQE667-1NfFs5ua.js → wardleyDiagram-EHGQE667-yv4qKbBO.js} +1 -1
- package/dist/assets/x-BqGj6_Vq.js +1 -0
- package/dist/assets/{xychartDiagram-FW5EYKEG-Ci8AI3Qo.js → xychartDiagram-FW5EYKEG-Bmp8Ck8X.js} +1 -1
- package/dist/index.html +43 -106
- package/dist/panel-standalone.html +18 -12
- package/index.html +15 -66
- package/package.json +4 -4
- package/src/app/styles/design-system.css +85 -1
- package/src/app/styles/island-theme.css +8 -6
- package/src/features/agents/components/agent-details-dialog.tsx +5 -3
- package/src/features/app-data/components/app-retained-data-section.tsx +2 -2
- package/src/features/apps/components/__tests__/app-marketplace-catalog.test.tsx +2 -2
- package/src/features/apps/components/__tests__/app-packages-panel.test.tsx +94 -23
- package/src/features/apps/components/__tests__/apps-panel.test.tsx +5 -3
- package/src/features/apps/components/app-document-access-section.tsx +17 -14
- package/src/features/apps/components/app-marketplace-catalog.tsx +66 -39
- package/src/features/apps/components/app-marketplace-cover.tsx +5 -2
- package/src/features/apps/components/app-marketplace-detail.tsx +9 -6
- package/src/features/apps/components/app-marketplace-operation.tsx +8 -3
- package/src/features/apps/components/app-marketplace-panel.tsx +168 -0
- package/src/features/apps/components/app-package-card.tsx +224 -147
- package/src/features/apps/components/app-package-details-dialog.tsx +103 -0
- package/src/features/apps/components/app-packages-panel.tsx +159 -144
- package/src/features/apps/components/apps-panel.tsx +40 -11
- package/src/features/chat/components/conversation/chat-conversation-header-section.tsx +1 -1
- package/src/features/chat/components/conversation/chat-conversation-header.tsx +1 -1
- package/src/features/chat/components/layout/chat-sidebar-toolbar.tsx +2 -2
- package/src/features/chat/components/layout/chat-sidebar-utility-menu.tsx +9 -7
- package/src/features/chat/features/conversation/components/floating-session-conversation.tsx +2 -3
- package/src/features/chat/features/conversation/components/session-conversation-area.tsx +1 -0
- package/src/features/chat/features/conversation/hooks/__tests__/use-session-conversation-input-state.test.tsx +33 -0
- package/src/features/chat/features/message/utils/chat-message-execution-summary.utils.ts +3 -0
- package/src/features/chat/features/message/utils/chat-message-texts.utils.ts +1 -0
- package/src/features/chat/features/message/utils/chat-message-trigger-details.utils.ts +3 -0
- package/src/features/chat/features/session/components/chat-sidebar-project-groups.tsx +1 -1
- package/src/features/chat/features/session/components/session-header/chat-session-metadata-dialog.tsx +1 -1
- package/src/features/chat/features/session/components/session-header/chat-session-project-badge.tsx +2 -2
- package/src/features/chat/features/welcome/components/__tests__/chat-welcome.test.tsx +31 -6
- package/src/features/chat/features/welcome/components/chat-conversation-welcome.tsx +13 -1
- package/src/features/chat/features/welcome/components/chat-welcome-agent-picker.tsx +1 -1
- package/src/features/chat/features/welcome/components/chat-welcome-project-picker.tsx +1 -1
- package/src/features/chat/features/welcome/components/chat-welcome-prompt-suggestions.tsx +56 -13
- package/src/features/chat/features/welcome/components/chat-welcome-session-type-picker.tsx +3 -3
- package/src/features/chat/features/welcome/components/chat-welcome.tsx +14 -4
- package/src/features/chat/features/welcome/utils/__tests__/chat-welcome-continuation.utils.test.ts +40 -0
- package/src/features/chat/features/welcome/utils/chat-welcome-continuation.utils.ts +21 -0
- package/src/features/chat/features/workspace/components/chat-session-workspace-directory-browser.tsx +1 -1
- package/src/features/chat/features/workspace/components/chat-session-workspace-file-breadcrumbs.tsx +3 -7
- package/src/features/chat/features/workspace/components/chat-session-workspace-file-preview.tsx +5 -4
- package/src/features/chat/features/workspace/components/chat-session-workspace-panel-content.tsx +27 -27
- package/src/features/chat/features/workspace/components/overview/chat-session-continuous-attention.tsx +11 -11
- package/src/features/chat/features/workspace/components/overview/chat-session-token-usage.tsx +15 -15
- package/src/features/chat/features/workspace/components/project-files/workspace-directory-tree.tsx +2 -2
- package/src/features/chat/features/workspace/components/project-files/workspace-new-folder-tree-item.tsx +1 -1
- package/src/features/chat/features/workspace/components/project-files/workspace-project-files-toolbar.tsx +2 -2
- package/src/features/chat/features/workspace/components/session-cron-job-content.tsx +7 -4
- package/src/features/cron/components/cron-job-row.tsx +5 -4
- package/src/features/desktop-capabilities/components/desktop-authorization-dialog.tsx +5 -5
- package/src/features/inbox/components/inbox-reader-dialog.test.tsx +46 -6
- package/src/features/inbox/components/inbox-reader-dialog.tsx +38 -29
- package/src/features/inbox/managers/inbox.manager.test.ts +28 -0
- package/src/features/inbox/managers/inbox.manager.ts +18 -4
- package/src/features/inbox/pages/inbox-page.test.ts +4 -2
- package/src/features/inbox/pages/inbox-page.tsx +6 -5
- package/src/features/panel-apps/components/panel-app-list-item.tsx +4 -3
- package/src/features/panel-apps/components/panel-app-service-action-authorization-dialog.tsx +2 -2
- package/src/features/panel-apps/utils/panel-app-doc-browser.utils.tsx +5 -24
- package/src/features/projects/components/work/project-work-items.tsx +1 -1
- package/src/features/pwa/managers/__tests__/pwa-shell-theme.manager.test.ts +3 -3
- package/src/features/pwa/managers/pwa-shell-theme.manager.ts +8 -3
- package/src/features/right-panel-resources/components/__tests__/page-resource-icon.test.tsx +13 -2
- package/src/features/right-panel-resources/components/page-resource-icon.tsx +15 -7
- package/src/features/right-panel-resources/configs/right-panel-resource-routes.config.ts +1 -1
- package/src/features/right-panel-resources/index.ts +3 -0
- package/src/features/right-panel-resources/utils/__tests__/right-panel-resource-route-resolver.utils.test.ts +5 -0
- package/src/features/right-panel-resources/utils/right-panel-resource-uri.utils.ts +3 -2
- package/src/features/service-apps/components/service-action-row.tsx +4 -3
- package/src/features/service-apps/components/service-app-delete-dialog.tsx +2 -2
- package/src/features/service-apps/components/service-app-list-item.tsx +5 -4
- package/src/features/settings/components/config/provider-model-suggestions-panel.tsx +1 -1
- package/src/features/settings/pages/providers-config-page.tsx +3 -2
- package/src/index.css +42 -8
- package/src/shared/components/doc-browser/doc-browser-tab-strip.tsx +2 -2
- package/src/shared/components/path-picker/server-path-picker-dialog.tsx +5 -3
- package/src/shared/components/ui/__tests__/dialog.test.tsx +37 -1
- package/src/shared/components/ui/actions/action-feedback.ts +1 -8
- package/src/shared/components/ui/actions/icon-action-button.tsx +1 -1
- package/src/shared/components/ui/confirm-dialog.tsx +1 -2
- package/src/shared/components/ui/context-menu/context-menu-items.tsx +2 -2
- package/src/shared/components/ui/dialog.tsx +29 -7
- package/src/shared/components/ui/popover.tsx +14 -3
- package/src/shared/components/ui/tab-strip/compact-tab-strip.tsx +2 -2
- package/src/shared/components/ui/tooltip.tsx +2 -1
- package/src/shared/components/workbench/__tests__/workbench-surface.test.tsx +21 -0
- package/src/shared/components/workbench/workbench-surface-toolbar.tsx +4 -0
- package/src/shared/components/workbench/workbench-surface.tsx +4 -1
- package/src/shared/lib/i18n/locales/en-US/chat.json +13 -7
- package/src/shared/lib/i18n/locales/en-US/core.json +5 -1
- package/src/shared/lib/i18n/locales/en-US/doc-browser.json +10 -5
- package/src/shared/lib/i18n/locales/en-US/inbox.json +1 -0
- package/src/shared/lib/i18n/locales/zh-CN/chat.json +13 -7
- package/src/shared/lib/i18n/locales/zh-CN/core.json +5 -1
- package/src/shared/lib/i18n/locales/zh-CN/doc-browser.json +11 -6
- package/src/shared/lib/i18n/locales/zh-CN/inbox.json +1 -0
- package/src/shared/lib/theme/index.test.ts +28 -1
- package/src/shared/lib/theme/index.ts +14 -3
- package/dist/assets/account-panel-BAH7FW6z.js +0 -1
- package/dist/assets/api-DjiZvIa0.js +0 -20
- package/dist/assets/app-presenter-provider-CCRFsFYr.js +0 -232
- package/dist/assets/appearance-settings-page-CdP86QJ7.js +0 -1
- package/dist/assets/architecture-TIHT7OUA-CvnC-LeA.js +0 -1
- package/dist/assets/channel-CpMstUPF.js +0 -1
- package/dist/assets/channels-list-page-5qGagKuE.js +0 -8
- package/dist/assets/chunk-2Q5K7J3B-Djp3VF0s.js +0 -1
- package/dist/assets/chunk-VAUOI2AC-BrbiIC1Q.js +0 -1
- package/dist/assets/chunk-XXDRQBXY-Cx9N40wF.js +0 -1
- package/dist/assets/classDiagram-OUVF2IWQ-DFN1v3PQ.js +0 -1
- package/dist/assets/classDiagram-v2-EOCWNBFH-DRvglADa.js +0 -1
- package/dist/assets/config-split-page-CuEGQL8Z.js +0 -1
- package/dist/assets/confirm-dialog-CxfecBzO.js +0 -1
- package/dist/assets/context-menu-BsCj2fRs.js +0 -1
- package/dist/assets/cynefin-VYW2F7L2-DXUGnpJH.js +0 -1
- package/dist/assets/desktop-update-config-e-zhkJuS.js +0 -1
- package/dist/assets/dialog-QjQoKbIV.js +0 -5
- package/dist/assets/doc-browser-CLEdkH9z.js +0 -1
- package/dist/assets/es2015-Bp6cuSGh.js +0 -41
- package/dist/assets/eventmodeling-45OFAUF4-ZBfVS3ZC.js +0 -1
- package/dist/assets/extensions-CgShSIkd.js +0 -1
- package/dist/assets/eye-kisejBFH.js +0 -1
- package/dist/assets/flowDiagram-23GEKE2U-CqdsKk6x.js +0 -1
- package/dist/assets/gitGraph-TEB2WS4Q-fHYFd9Es.js +0 -1
- package/dist/assets/info-DKCQHKI2-CSaOL_bb.js +0 -1
- package/dist/assets/katex-B4FQSo9k.js +0 -1
- package/dist/assets/loader-circle-Bd1fTm-x.js +0 -1
- package/dist/assets/login-page-D99JjH9F.js +0 -1
- package/dist/assets/main-Bt5r6b21.js +0 -2
- package/dist/assets/main-DXd_aKJV.css +0 -1
- package/dist/assets/main-i18n-catalog.config-D0Ll36J_.js +0 -1
- package/dist/assets/mcp-marketplace-page-DUoGfSmY.js +0 -1
- package/dist/assets/model-config-page-9NNf-mzK.js +0 -1
- package/dist/assets/packet-7NZHBO7P-D-YFTczs.js +0 -1
- package/dist/assets/panel-app-BYfQu_TS.js +0 -1
- package/dist/assets/panel-app-i18n-catalog.config-Ddf2Kv8A.js +0 -1
- package/dist/assets/panelStandalone-BRg7B1EI.css +0 -1
- package/dist/assets/panelStandalone-BaUzY8Wy.js +0 -2
- package/dist/assets/pie-RZYD4A2V-VEnYu9s5.js +0 -1
- package/dist/assets/privacy-settings-page-CVMBFuak.js +0 -1
- package/dist/assets/projects-BEsU3box.js +0 -1
- package/dist/assets/provider-models-Dm-pmWAA.js +0 -1
- package/dist/assets/provider-scoped-model-input-CzrXg4cX.js +0 -1
- package/dist/assets/providers-config-page-839uUADZ.js +0 -1
- package/dist/assets/puzzle-BGvD2DPZ.js +0 -1
- package/dist/assets/pwa-DNNK_8E9.js +0 -1
- package/dist/assets/radar-I7S5WNFK-BFNIekC1.js +0 -1
- package/dist/assets/railroad-3IZDKUUU-lVqJ3Hak.js +0 -1
- package/dist/assets/railroad-abnf-AHOZXSZD-DYaefdFC.js +0 -1
- package/dist/assets/railroad-ebnf-EBAXGLYW-CTAk6lVq.js +0 -1
- package/dist/assets/railroad-peg-LSFZ7HO6-Cob294tg.js +0 -1
- package/dist/assets/remote-B5qIuUbT.js +0 -1
- package/dist/assets/runtime-config-page-Bf-4JYxQ.js +0 -1
- package/dist/assets/search-config-page-C0qA3j-T.js +0 -1
- package/dist/assets/secrets-config-page-DxfZWpnk.js +0 -3
- package/dist/assets/security-config-CItfIQZ4.js +0 -1
- package/dist/assets/select-CWyjnar7.js +0 -1
- package/dist/assets/service-apps-panel-D3SOkRVv.js +0 -1
- package/dist/assets/stateDiagram-v2-6OUMAXLB-BrNv-raG.js +0 -1
- package/dist/assets/swimlanesDiagram-G3AALYLV-ntcxaPXp.js +0 -8
- package/dist/assets/tag-chip-BIuavK2K.js +0 -1
- package/dist/assets/theme-provider-CWUz4yO9.js +0 -1
- package/dist/assets/trash-2-hAbJh9VZ.js +0 -1
- package/dist/assets/treeView-QDETBFTQ-DbFmr-gw.js +0 -1
- package/dist/assets/treemap-6X3UGDF4-C8aY96pi.js +0 -1
- package/dist/assets/use-viewport-layout-D_9XWGDV.js +0 -1
- package/dist/assets/wardley-OPB4EBWU-D8d6DbbJ.js +0 -1
- package/dist/assets/x-ChPbNv39.js +0 -1
- package/src/features/apps/components/app-marketplace-dialog.tsx +0 -168
- /package/dist/assets/{array-BV9OtnO8.js → array-DstOKG9P.js} +0 -0
- /package/dist/assets/{chunk-KEIR6QF5-Cx-8EJ4_.js → chunk-KEIR6QF5-0TA8nwgf.js} +0 -0
- /package/dist/assets/{chunk-Y2CYZVJY-Dy1ufvjf.js → chunk-Y2CYZVJY-rfGCG6pM.js} +0 -0
- /package/dist/assets/{config-hints-DbmiyTKg.js → config-hints-BfGoD7-o.js} +0 -0
- /package/dist/assets/{cytoscape.esm-CSCjuT4Z.js → cytoscape.esm-DdIcNEda.js} +0 -0
- /package/dist/assets/{defaultLocale-DWTiNsbT.js → defaultLocale-CzXix2iJ.js} +0 -0
- /package/dist/assets/{dist-BVCSkfWY.js → dist-D5dwMwKA.js} +0 -0
- /package/dist/assets/{graphlib-B1yb1Wl8.js → graphlib-BKOe0eFe.js} +0 -0
- /package/dist/assets/{host-capabilities-DuIFVsvM.js → host-capabilities-CnSVTaot.js} +0 -0
- /package/dist/assets/{init-BF6GH5oe.js → init-OCFb3zgY.js} +0 -0
- /package/dist/assets/{jszip.min-D12teKzP.js → jszip.min-B2uhSxvV.js} +0 -0
- /package/dist/assets/{katex-CsAM73R9.js → katex-dBrYsE7B.js} +0 -0
- /package/dist/assets/{middleware-B--6mAUM.js → middleware-CAXxl-af.js} +0 -0
- /package/dist/assets/{path-C56XkznJ.js → path-T5eoIRSJ.js} +0 -0
- /package/dist/assets/{preload-helper-ca-nBW7U.js → preload-helper-DWTEM3RW.js} +0 -0
- /package/dist/assets/{rough.esm-CGfeEbtE.js → rough.esm-DmGXmZEB.js} +0 -0
- /package/dist/assets/{xlsx-sds5nUpL.js → xlsx-CoYacou7.js} +0 -0
|
@@ -362,7 +362,7 @@
|
|
|
362
362
|
"chatRuntimeInitializationFailed": "聊天能力启动失败,请稍后重试或检查服务日志。",
|
|
363
363
|
"chatInputPlaceholder": "输入消息,/ 选命令、应用或技能,@ 引用文件、文件夹、项目或面板应用,Enter 发送,Shift + Enter 换行",
|
|
364
364
|
"chatInputPlaceholderCompact": "发消息...",
|
|
365
|
-
"chatWelcomeInputPlaceholder": "
|
|
365
|
+
"chatWelcomeInputPlaceholder": "说说你想做的事,或正在想的问题……",
|
|
366
366
|
"chatInputHint": "支持多轮上下文,默认走当前会话。",
|
|
367
367
|
"chatSlashSection": "斜杠菜单",
|
|
368
368
|
"chatSlashSectionCommands": "命令",
|
|
@@ -609,6 +609,7 @@
|
|
|
609
609
|
"chatMessageCopied": "已复制",
|
|
610
610
|
"chatMermaidDiagram": "图表",
|
|
611
611
|
"chatMarkdownFrontmatter": "文档属性",
|
|
612
|
+
"chatMarkdownDetails": "详细内容",
|
|
612
613
|
"chatMermaidExpand": "放大图表",
|
|
613
614
|
"chatMermaidLoading": "正在渲染图表…",
|
|
614
615
|
"chatMermaidRenderError": "图表无法渲染,已显示源代码",
|
|
@@ -653,7 +654,7 @@
|
|
|
653
654
|
"chatPanelDock": "停靠到右侧栏",
|
|
654
655
|
"chatPanelOpen": "在右侧栏中对话",
|
|
655
656
|
"chatPanelUnavailable": "无法打开此会话,请从会话列表重新打开。",
|
|
656
|
-
"chatWelcomeTitle": "
|
|
657
|
+
"chatWelcomeTitle": "今天,想从哪里开始?",
|
|
657
658
|
"chatWelcomeContextLabel": "任务上下文",
|
|
658
659
|
"chatWelcomeProjectPickerLabel": "选择工作目录",
|
|
659
660
|
"chatWelcomeProjectPickerPlaceholder": "选择工作目录",
|
|
@@ -662,12 +663,17 @@
|
|
|
662
663
|
"chatWelcomeProjectNoRecent": "暂无最近项目",
|
|
663
664
|
"chatWelcomeProjectOpenFolder": "打开文件夹",
|
|
664
665
|
"chatWelcomeSessionTypePickerLabel": "选择会话类型",
|
|
665
|
-
"
|
|
666
|
+
"chatWelcomeContinueLabel": "接着上次的话题",
|
|
667
|
+
"chatWelcomeContinueHint": "回到原会话,接着之前的上下文继续",
|
|
668
|
+
"chatWelcomeDismissContinue": "暂时收起这条会话建议",
|
|
669
|
+
"chatWelcomeOpenStartLabel": "聊聊我最近的状态",
|
|
670
|
+
"chatWelcomeOpenStartPrompt": "想和你聊聊最近的近况。先听听我最近在经历什么、在意什么,我们慢慢聊,不用急着给建议或安排任务。",
|
|
671
|
+
"chatWelcomeSuggestion1Label": "推进这个项目",
|
|
666
672
|
"chatWelcomeSuggestion1Prompt": "帮我理解当前项目,并给出接下来最值得推进的三个具体建设方向。",
|
|
667
|
-
"chatWelcomeSuggestion2Label": "
|
|
668
|
-
"chatWelcomeSuggestion2Prompt": "
|
|
669
|
-
"chatWelcomeSuggestion3Label": "
|
|
670
|
-
"chatWelcomeSuggestion3Prompt": "
|
|
673
|
+
"chatWelcomeSuggestion2Label": "帮我理清一个想法",
|
|
674
|
+
"chatWelcomeSuggestion2Prompt": "我有个还没想成熟的想法,想和你一起讨论。先听我说,再帮我看看其中的机会、疑问和可能的方向。",
|
|
675
|
+
"chatWelcomeSuggestion3Label": "一起开始做一件事",
|
|
676
|
+
"chatWelcomeSuggestion3Prompt": "有件事想和你一起做。先让我说说想做什么、目前有什么材料,再一起确定从哪里开始。",
|
|
671
677
|
"chatSkillsPickerTitle": "技能",
|
|
672
678
|
"chatSkillsPickerEmpty": "暂无已安装技能",
|
|
673
679
|
"chatSkillsPickerSearchPlaceholder": "搜索技能",
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
+
"close": "关闭",
|
|
2
3
|
"refresh": "刷新",
|
|
3
4
|
"chat": "对话",
|
|
4
5
|
"model": "模型",
|
|
@@ -100,7 +101,10 @@
|
|
|
100
101
|
"language": "语言",
|
|
101
102
|
"theme": "主题",
|
|
102
103
|
"themeNatural": "自然",
|
|
103
|
-
"
|
|
104
|
+
"themeDefault": "默认",
|
|
105
|
+
"themePaperInk": "纸墨",
|
|
106
|
+
"themePlainPaper": "素笺",
|
|
107
|
+
"themeWork": "素白",
|
|
104
108
|
"themeMinimal": "简白",
|
|
105
109
|
"themeWarm": "纸暖",
|
|
106
110
|
"themeCool": "雾蓝",
|
|
@@ -38,9 +38,13 @@
|
|
|
38
38
|
"appPackagesNoDataYet": "尚无数据",
|
|
39
39
|
"appPackagesLoadFailed": "应用加载失败",
|
|
40
40
|
"appPackagesRefresh": "刷新应用",
|
|
41
|
+
"appPackagesOpen": "打开",
|
|
42
|
+
"appPackagesDetails": "应用详情",
|
|
43
|
+
"appPackagesMarketplaceSource": "浏览应用市场",
|
|
44
|
+
"appPackagesCustomSource": "从指定来源安装",
|
|
41
45
|
"appPackagesBrowse": "添加应用",
|
|
42
|
-
"appPackagesMarketplaceTitle": "
|
|
43
|
-
"appPackagesMarketplaceDescription": "
|
|
46
|
+
"appPackagesMarketplaceTitle": "应用市场",
|
|
47
|
+
"appPackagesMarketplaceDescription": "发现适合你的应用,让日常工作更顺手。",
|
|
44
48
|
"appPackagesMarketplaceSearch": "搜索应用、功能或标签",
|
|
45
49
|
"appPackagesMarketplaceLoading": "正在加载应用市场…",
|
|
46
50
|
"appPackagesMarketplaceLoadMore": "加载更多",
|
|
@@ -62,7 +66,7 @@
|
|
|
62
66
|
"appPackagesEmptyTitle": "还没有可用应用",
|
|
63
67
|
"appPackagesEmptyDescription": "安装一个 Mini APP,或升级到包含内置应用的 NextClaw 版本。",
|
|
64
68
|
"appPackagesEnabled": "已启用",
|
|
65
|
-
"appPackagesUnavailable": "
|
|
69
|
+
"appPackagesUnavailable": "无法安装",
|
|
66
70
|
"appPackagesAvailable": "可用",
|
|
67
71
|
"appPackagesNeedsCapability": "需要额外能力",
|
|
68
72
|
"appPackagesNeedsConfiguration": "需要完成设置",
|
|
@@ -75,7 +79,6 @@
|
|
|
75
79
|
"appPackagesAllPlatforms": "全部平台",
|
|
76
80
|
"appPackagesPlatformOnly": "仅支持 {platforms}",
|
|
77
81
|
"appPackagesUnavailableOnDevice": "这台设备无法安装",
|
|
78
|
-
"appPackagesUnavailable": "无法安装",
|
|
79
82
|
"appPackagesTemporarilyUnavailable": "暂无法安装",
|
|
80
83
|
"appPackagesCompatibilityUnknown": "暂时无法确认兼容性",
|
|
81
84
|
"appPackagesCompatibilityUnknownReason": "NextClaw 暂时无法确认这台设备是否支持此应用,请刷新后再试。",
|
|
@@ -104,7 +107,7 @@
|
|
|
104
107
|
"appPackagesFilterAll": "全部",
|
|
105
108
|
"appPackagesFilterPersonal": "个人",
|
|
106
109
|
"appPackagesFilterLocal": "本地优先",
|
|
107
|
-
"appPackagesBackToMarketplace": "
|
|
110
|
+
"appPackagesBackToMarketplace": "返回应用市场",
|
|
108
111
|
"appPackagesAboutApp": "关于这个应用",
|
|
109
112
|
"appPackagesPanelsAdded": "可打开的界面",
|
|
110
113
|
"appPackagesServicesAdded": "本机服务",
|
|
@@ -211,5 +214,7 @@
|
|
|
211
214
|
"appPackagesDocumentAccessChooseDescription": "选择此应用可以访问的目录。",
|
|
212
215
|
"appPackagesDocumentAccessPath": "授权目录",
|
|
213
216
|
"appPackagesDocumentAccessWriteWarning": "读写授权允许应用直接修改这个目录中的原始文件;你可以随时在应用卡片中撤销。",
|
|
214
|
-
"appPackagesDocumentAccessReadHint": "只读授权允许应用查看这个目录,但不能通过此挂载修改文件。"
|
|
217
|
+
"appPackagesDocumentAccessReadHint": "只读授权允许应用查看这个目录,但不能通过此挂载修改文件。",
|
|
218
|
+
"appPackagesViewInstalled": "查看已安装",
|
|
219
|
+
"appPackagesClearSearch": "清除搜索"
|
|
215
220
|
}
|
|
@@ -4,6 +4,8 @@ import {
|
|
|
4
4
|
getThemeAppearance,
|
|
5
5
|
normalizeTheme,
|
|
6
6
|
resolveInitialTheme,
|
|
7
|
+
resolveTheme,
|
|
8
|
+
setTheme,
|
|
7
9
|
THEME_OPTIONS,
|
|
8
10
|
} from './index';
|
|
9
11
|
|
|
@@ -13,7 +15,7 @@ describe('ui theme defaults', () => {
|
|
|
13
15
|
});
|
|
14
16
|
|
|
15
17
|
it('uses the default theme when no preference is saved', () => {
|
|
16
|
-
expect(DEFAULT_UI_THEME).toBe('
|
|
18
|
+
expect(DEFAULT_UI_THEME).toBe('default');
|
|
17
19
|
expect(resolveInitialTheme()).toBe(DEFAULT_UI_THEME);
|
|
18
20
|
});
|
|
19
21
|
|
|
@@ -21,6 +23,31 @@ describe('ui theme defaults', () => {
|
|
|
21
23
|
expect(THEME_OPTIONS[0]?.value).toBe(DEFAULT_UI_THEME);
|
|
22
24
|
});
|
|
23
25
|
|
|
26
|
+
it('renders the alias identically while preserving the selected preference', () => {
|
|
27
|
+
setTheme('work');
|
|
28
|
+
setTheme('default');
|
|
29
|
+
expect(document.documentElement.getAttribute('data-theme')).toBe('plain-paper');
|
|
30
|
+
expect(window.localStorage.getItem('nextclaw.ui.theme')).toBe('default');
|
|
31
|
+
expect(resolveInitialTheme()).toBe('default');
|
|
32
|
+
setTheme('plain-paper');
|
|
33
|
+
expect(document.documentElement.getAttribute('data-theme')).toBe('plain-paper');
|
|
34
|
+
expect(window.localStorage.getItem('nextclaw.ui.theme')).toBe('plain-paper');
|
|
35
|
+
expect(resolveTheme('default')).toBe('plain-paper');
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it('keeps paper ink available independently of the default', () => {
|
|
39
|
+
setTheme('paper-ink');
|
|
40
|
+
expect(document.documentElement.getAttribute('data-theme')).toBe('paper-ink');
|
|
41
|
+
expect(resolveInitialTheme()).toBe('paper-ink');
|
|
42
|
+
expect(THEME_OPTIONS).toContainEqual({ value: 'paper-ink', labelKey: 'themePaperInk' });
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
it('preserves the old default as a named theme', () => {
|
|
46
|
+
window.localStorage.setItem('nextclaw.ui.theme', 'work');
|
|
47
|
+
expect(resolveInitialTheme()).toBe('work');
|
|
48
|
+
expect(THEME_OPTIONS).toContainEqual({ value: 'work', labelKey: 'themeWork' });
|
|
49
|
+
});
|
|
50
|
+
|
|
24
51
|
it('recognizes charcoal as a dark theme', () => {
|
|
25
52
|
expect(normalizeTheme('charcoal')).toBe('charcoal');
|
|
26
53
|
expect(getThemeAppearance('charcoal')).toBe('dark');
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
export type UiTheme =
|
|
2
|
+
| 'default'
|
|
3
|
+
| 'paper-ink'
|
|
4
|
+
| 'plain-paper'
|
|
2
5
|
| 'natural'
|
|
3
6
|
| 'work'
|
|
4
7
|
| 'minimal'
|
|
@@ -19,9 +22,17 @@ type UiThemeDefinition = {
|
|
|
19
22
|
};
|
|
20
23
|
|
|
21
24
|
const THEME_STORAGE_KEY = 'nextclaw.ui.theme';
|
|
22
|
-
export const DEFAULT_UI_THEME: UiTheme = '
|
|
25
|
+
export const DEFAULT_UI_THEME: UiTheme = 'default';
|
|
26
|
+
export const DEFAULT_THEME_TARGET = 'plain-paper';
|
|
27
|
+
|
|
28
|
+
export function resolveTheme(theme: UiTheme): Exclude<UiTheme, 'default'> {
|
|
29
|
+
return theme === 'default' ? DEFAULT_THEME_TARGET : theme;
|
|
30
|
+
}
|
|
23
31
|
|
|
24
32
|
const THEME_DEFINITIONS: readonly UiThemeDefinition[] = [
|
|
33
|
+
{ value: 'default', labelKey: 'themeDefault', appearance: 'light' },
|
|
34
|
+
{ value: 'plain-paper', labelKey: 'themePlainPaper', appearance: 'light' },
|
|
35
|
+
{ value: 'paper-ink', labelKey: 'themePaperInk', appearance: 'light' },
|
|
25
36
|
{ value: 'work', labelKey: 'themeWork', appearance: 'light' },
|
|
26
37
|
{ value: 'night', labelKey: 'themeNight', appearance: 'dark' },
|
|
27
38
|
{ value: 'charcoal', labelKey: 'themeCharcoal', appearance: 'dark' },
|
|
@@ -59,7 +70,7 @@ export function normalizeTheme(value: unknown): UiTheme | null {
|
|
|
59
70
|
|
|
60
71
|
export function getThemeAppearance(theme: UiTheme): UiThemeAppearance {
|
|
61
72
|
return (
|
|
62
|
-
THEME_DEFINITIONS.find((definition) => definition.value === theme)
|
|
73
|
+
THEME_DEFINITIONS.find((definition) => definition.value === resolveTheme(theme))
|
|
63
74
|
?.appearance ?? 'light'
|
|
64
75
|
);
|
|
65
76
|
}
|
|
@@ -123,7 +134,7 @@ class UiThemeOwner {
|
|
|
123
134
|
return;
|
|
124
135
|
}
|
|
125
136
|
const appearance = getThemeAppearance(theme);
|
|
126
|
-
document.documentElement.setAttribute('data-theme', theme);
|
|
137
|
+
document.documentElement.setAttribute('data-theme', resolveTheme(theme));
|
|
127
138
|
document.documentElement.setAttribute('data-theme-appearance', appearance);
|
|
128
139
|
document.documentElement.style.colorScheme = appearance;
|
|
129
140
|
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./chunk-DF37yw5_.js";import{Gt as t,Wt as n,Yt as r,cr as i,yr as a}from"./api-DjiZvIa0.js";import{I as o,J as s,c,kt as l,r as u}from"./app-presenter-provider-CCRFsFYr.js";import{t as d}from"./createLucideIcon-Cfo2ySi5.js";import{a as f}from"./use-viewport-layout-D_9XWGDV.js";import{n as p,s as m}from"./i18n-Bm3Ov7Fy.js";import{a as h,n as g,o as _,r as v,t as y}from"./dialog-QjQoKbIV.js";var b=d(`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(a(),1),S=i();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:i,username:a,role:o,canSubmitUsername:c,savingUsername:u,usernameDraft:d,onUsernameDraftChange:f,onSubmitUsername:p,onOpenDeviceList:h,onLogout:g}=e;return(0,S.jsxs)(`div`,{className:`space-y-4`,children:[(0,S.jsx)(s,{tone:`success`,title:m(`accountPanelSignedInTitle`),description:m(`accountPanelSignedInDescription`)}),(0,S.jsxs)(s,{tone:`neutral`,children:[(0,S.jsx)(C,{label:m(`remoteAccountEmail`),value:i}),(0,S.jsx)(C,{label:m(`remoteAccountUsername`),value:a}),(0,S.jsx)(C,{label:m(`remoteAccountRole`),value:o})]}),a?(0,S.jsx)(`p`,{className:`text-xs text-gray-500`,children:m(`remoteAccountUsernameLockedHelp`)}):(0,S.jsxs)(s,{tone:`warning`,title:m(`remoteAccountUsernameRequiredTitle`),description:m(`remoteAccountUsernameRequiredDescription`),children:[(0,S.jsxs)(`div`,{className:`mt-4 space-y-2`,children:[(0,S.jsx)(n,{htmlFor:`account-panel-username`,children:m(`remoteAccountUsername`)}),(0,S.jsx)(t,{id:`account-panel-username`,value:d,onChange:e=>f(e.target.value),placeholder:m(`remoteAccountUsernamePlaceholder`),autoCapitalize:`none`,autoCorrect:`off`,spellCheck:!1})]}),(0,S.jsx)(`div`,{className:`mt-4 flex flex-wrap gap-3`,children:(0,S.jsx)(r,{disabled:!c,onClick:()=>void p(),children:m(u?`remoteAccountUsernameSaving`:`remoteAccountUsernameSave`)})})]}),(0,S.jsxs)(`div`,{className:`flex flex-wrap gap-3`,children:[(0,S.jsxs)(r,{onClick:()=>void h(),children:[(0,S.jsx)(l,{className:`mr-2 h-4 w-4`}),m(`remoteOpenDeviceList`)]}),(0,S.jsxs)(r,{variant:`outline`,onClick:()=>void g(),children:[(0,S.jsx)(b,{className:`mr-2 h-4 w-4`}),m(`remoteLogout`)]})]})]})}function T(e){let{authSessionId:t,authExpiresAt:n,authStatusMessage:i,authVerificationUri:a,onStartBrowserSignIn:o,onResumeBrowserSignIn:c}=e;return(0,S.jsxs)(`div`,{className:`space-y-4`,children:[(0,S.jsx)(s,{tone:`neutral`,title:m(`accountPanelSignedOutTitle`),description:m(`accountPanelSignedOutDescription`),children:t?(0,S.jsxs)(`div`,{className:`mt-3 border-t border-white/80 pt-3`,children:[(0,S.jsx)(C,{label:m(`remoteBrowserAuthSession`),value:t}),(0,S.jsx)(C,{label:m(`remoteBrowserAuthExpiresAt`),value:n?p(n):`-`})]}):null}),i?(0,S.jsx)(`p`,{className:`text-sm text-gray-600`,children:i}):null,(0,S.jsxs)(`div`,{className:`flex flex-wrap gap-3`,children:[(0,S.jsx)(r,{onClick:()=>void o(),children:m(t?`remoteBrowserAuthActionRetry`:`remoteBrowserAuthAction`)}),a?(0,S.jsx)(r,{variant:`outline`,onClick:()=>void c(),children:m(`remoteBrowserAuthResume`)}):null]})]})}function E(){let e=u(),t=o(),n=c(e=>e.panelOpen),r=c(e=>e.authSessionId),i=c(e=>e.authVerificationUri),a=c(e=>e.authExpiresAt),s=c(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)(f,{className:`h-5 w-5 text-primary`}),m(`accountPanelTitle`)]}),(0,S.jsx)(v,{children:m(`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:s,authVerificationUri:i,onStartBrowserSignIn:()=>e.accountManager.startBrowserSignIn(),onResumeBrowserSignIn:()=>e.accountManager.resumeBrowserSignIn()})]})})}export{E as AccountPanel};
|