@hienlh/ppm 0.23.26 → 0.23.27
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 +6 -0
- package/assets/skills/ppm/SKILL.md +1 -1
- package/assets/skills/ppm/references/http-api.md +1 -1
- package/dist/web/assets/accounts-settings-section-CZglHifc.js +1 -0
- package/dist/web/assets/accounts-settings-section-CZglHifc.js.br +0 -0
- package/dist/web/assets/accounts-settings-section-CZglHifc.js.gz +0 -0
- package/dist/web/assets/{agent-session-sheet-DmbSfFGz.js → agent-session-sheet-B3VLD2H6.js} +2 -2
- package/dist/web/assets/agent-session-sheet-B3VLD2H6.js.br +0 -0
- package/dist/web/assets/agent-session-sheet-B3VLD2H6.js.gz +0 -0
- package/dist/web/assets/{agent-session-window-content-Dk8x3ozF.js → agent-session-window-content-HEdIT_LQ.js} +1 -1
- package/dist/web/assets/agent-session-window-content-HEdIT_LQ.js.br +0 -0
- package/dist/web/assets/agent-session-window-content-HEdIT_LQ.js.gz +0 -0
- package/dist/web/assets/{ai-resource-editor-MKwjYcDh.js → ai-resource-editor-CFbXgGMo.js} +1 -1
- package/dist/web/assets/ai-resource-editor-CFbXgGMo.js.br +0 -0
- package/dist/web/assets/ai-resource-editor-CFbXgGMo.js.gz +0 -0
- package/dist/web/assets/ai-settings-section-BNiVD9D3.js +1 -0
- package/dist/web/assets/ai-settings-section-BNiVD9D3.js.br +0 -0
- package/dist/web/assets/ai-settings-section-BNiVD9D3.js.gz +0 -0
- package/dist/web/assets/{ai-settings-section-OZOaLw5z.js → ai-settings-section-W0kfADRB.js} +1 -1
- package/dist/web/assets/{android-tab-CUkjbfyi.js → android-tab-CY3aa_vU.js} +1 -1
- package/dist/web/assets/android-tab-CY3aa_vU.js.br +0 -0
- package/dist/web/assets/android-tab-CY3aa_vU.js.gz +0 -0
- package/dist/web/assets/{appearance-settings-section-BZsM8HpZ.js → appearance-settings-section-lbtuzecW.js} +1 -1
- package/dist/web/assets/appearance-settings-section-lbtuzecW.js.br +0 -0
- package/dist/web/assets/appearance-settings-section-lbtuzecW.js.gz +0 -0
- package/dist/web/assets/{apps-panel-Cs3utBlp.js → apps-panel-CF2mbvVq.js} +1 -1
- package/dist/web/assets/apps-panel-CF2mbvVq.js.br +0 -0
- package/dist/web/assets/apps-panel-CF2mbvVq.js.gz +0 -0
- package/dist/web/assets/branch-review-tab-CR7JnS5x.js +1 -0
- package/dist/web/assets/branch-review-tab-CR7JnS5x.js.br +0 -0
- package/dist/web/assets/branch-review-tab-CR7JnS5x.js.gz +0 -0
- package/dist/web/assets/chat-tab-BCELq4nK.js +1 -0
- package/dist/web/assets/chat-tab-BCELq4nK.js.br +0 -0
- package/dist/web/assets/chat-tab-BCELq4nK.js.gz +0 -0
- package/dist/web/assets/{chat-tab-DtSHSfMU.js → chat-tab-C4aOYSea.js} +10 -10
- package/dist/web/assets/chat-tab-C4aOYSea.js.br +0 -0
- package/dist/web/assets/chat-tab-C4aOYSea.js.gz +0 -0
- package/dist/web/assets/{code-editor-DjDyhff1.js → code-editor-_axJbYkP.js} +5 -5
- package/dist/web/assets/code-editor-_axJbYkP.js.br +0 -0
- package/dist/web/assets/code-editor-_axJbYkP.js.gz +0 -0
- package/dist/web/assets/{codex-reset-credit-button-BKgiUi8E.js → codex-reset-credit-button-DJQD6NUF.js} +1 -1
- package/dist/web/assets/codex-reset-credit-button-DJQD6NUF.js.br +0 -0
- package/dist/web/assets/codex-reset-credit-button-DJQD6NUF.js.gz +0 -0
- package/dist/web/assets/{conflict-editor-DgTv-8pb.js → conflict-editor-D0AYuLKI.js} +3 -3
- package/dist/web/assets/conflict-editor-D0AYuLKI.js.br +0 -0
- package/dist/web/assets/conflict-editor-D0AYuLKI.js.gz +0 -0
- package/dist/web/assets/connection-form-tab-C3QyUWnE.js +4 -0
- package/dist/web/assets/connection-form-tab-C3QyUWnE.js.br +0 -0
- package/dist/web/assets/connection-form-tab-C3QyUWnE.js.gz +0 -0
- package/dist/web/assets/{csv-preview-BTGpYs4p.js → csv-preview-CmKkcz4M.js} +1 -1
- package/dist/web/assets/csv-preview-CmKkcz4M.js.br +0 -0
- package/dist/web/assets/csv-preview-CmKkcz4M.js.gz +0 -0
- package/dist/web/assets/{db-explorer-store-DDePT3UI.js → db-explorer-store-DJNNIfN5.js} +1 -1
- package/dist/web/assets/db-explorer-store-DJNNIfN5.js.br +0 -0
- package/dist/web/assets/db-explorer-store-DJNNIfN5.js.gz +0 -0
- package/dist/web/assets/{db-sidebar-reveal-BeT8cp6P.js → db-sidebar-reveal-CGqWBYay.js} +1 -1
- package/dist/web/assets/db-sidebar-reveal-CGqWBYay.js.br +0 -0
- package/dist/web/assets/db-sidebar-reveal-CGqWBYay.js.gz +0 -0
- package/dist/web/assets/{db-tab-parts-BYzd4_sR.js → db-tab-parts-BXL34wrZ.js} +1 -1
- package/dist/web/assets/db-tab-parts-BXL34wrZ.js.br +0 -0
- package/dist/web/assets/db-tab-parts-BXL34wrZ.js.gz +0 -0
- package/dist/web/assets/{design-settings-section-B3KQBggK.js → design-settings-section-DukfVtwP.js} +2 -2
- package/dist/web/assets/design-settings-section-DukfVtwP.js.br +0 -0
- package/dist/web/assets/design-settings-section-DukfVtwP.js.gz +0 -0
- package/dist/web/assets/{design-tab-CPyj_nFg.js → design-tab-BoPiL2ge.js} +5 -5
- package/dist/web/assets/design-tab-BoPiL2ge.js.br +0 -0
- package/dist/web/assets/design-tab-BoPiL2ge.js.gz +0 -0
- package/dist/web/assets/{designs-sidebar-panel-DIGPFo2l.js → designs-sidebar-panel-BVTqPPzG.js} +1 -1
- package/dist/web/assets/designs-sidebar-panel-BVTqPPzG.js.br +0 -0
- package/dist/web/assets/designs-sidebar-panel-BVTqPPzG.js.gz +0 -0
- package/dist/web/assets/diff-viewer-C86mR7vD.js +4 -0
- package/dist/web/assets/diff-viewer-C86mR7vD.js.br +0 -0
- package/dist/web/assets/diff-viewer-C86mR7vD.js.gz +0 -0
- package/dist/web/assets/{docx-preview-CowHGqML.js → docx-preview-B9EhDCMi.js} +1 -1
- package/dist/web/assets/docx-preview-B9EhDCMi.js.br +0 -0
- package/dist/web/assets/docx-preview-B9EhDCMi.js.gz +0 -0
- package/dist/web/assets/{editor-dialog-xPoehDYp.js → editor-dialog-DTDsbJd6.js} +1 -1
- package/dist/web/assets/editor-dialog-DTDsbJd6.js.br +0 -0
- package/dist/web/assets/editor-dialog-DTDsbJd6.js.gz +0 -0
- package/dist/web/assets/{editor-language-service-DdYqCDBU.js → editor-language-service-BtrrQAS2.js} +1 -1
- package/dist/web/assets/editor-language-service-BtrrQAS2.js.br +0 -0
- package/dist/web/assets/editor-language-service-BtrrQAS2.js.gz +0 -0
- package/dist/web/assets/explorer-body-DLaWmxri.js +2 -0
- package/dist/web/assets/explorer-body-DLaWmxri.js.br +0 -0
- package/dist/web/assets/explorer-body-DLaWmxri.js.gz +0 -0
- package/dist/web/assets/{explorer-model-tGyFETP_.js → explorer-model-f5q-50DN.js} +1 -1
- package/dist/web/assets/explorer-model-f5q-50DN.js.br +0 -0
- package/dist/web/assets/explorer-model-f5q-50DN.js.gz +0 -0
- package/dist/web/assets/{explorer-window-content-B1c4QTVL.js → explorer-window-content-CbUIbrzL.js} +1 -1
- package/dist/web/assets/explorer-window-content-CbUIbrzL.js.br +0 -0
- package/dist/web/assets/explorer-window-content-CbUIbrzL.js.gz +0 -0
- package/dist/web/assets/{extension-manager-section-BgL0Uyl3.js → extension-manager-section-BpKMyLwI.js} +1 -1
- package/dist/web/assets/extension-manager-section-BpKMyLwI.js.br +0 -0
- package/dist/web/assets/extension-manager-section-BpKMyLwI.js.gz +0 -0
- package/dist/web/assets/{extension-webview-BWB1Yd-t.js → extension-webview-BGfyaXMI.js} +1 -1
- package/dist/web/assets/extension-webview-BGfyaXMI.js.br +0 -0
- package/dist/web/assets/extension-webview-BGfyaXMI.js.gz +0 -0
- package/dist/web/assets/{files-settings-section-TmoewoO2.js → files-settings-section-CQT9_rX2.js} +1 -1
- package/dist/web/assets/files-settings-section-CQT9_rX2.js.br +0 -0
- package/dist/web/assets/files-settings-section-CQT9_rX2.js.gz +0 -0
- package/dist/web/assets/{general-settings-section-Bu7o8uUn.js → general-settings-section-BoQGeqBi.js} +1 -1
- package/dist/web/assets/general-settings-section-BoQGeqBi.js.br +0 -0
- package/dist/web/assets/general-settings-section-BoQGeqBi.js.gz +0 -0
- package/dist/web/assets/{git-log-panel-RjMZIaCk.js → git-log-panel-T8Fzn8-5.js} +1 -1
- package/dist/web/assets/git-log-panel-T8Fzn8-5.js.br +0 -0
- package/dist/web/assets/git-log-panel-T8Fzn8-5.js.gz +0 -0
- package/dist/web/assets/git-review-tab-WzuX4Ml9.js +3 -0
- package/dist/web/assets/git-review-tab-WzuX4Ml9.js.br +0 -0
- package/dist/web/assets/git-review-tab-WzuX4Ml9.js.gz +0 -0
- package/dist/web/assets/{glide-data-grid-DqlTFhhf.js → glide-data-grid-BBzGDYvj.js} +8 -8
- package/dist/web/assets/glide-data-grid-BBzGDYvj.js.br +0 -0
- package/dist/web/assets/glide-data-grid-BBzGDYvj.js.gz +0 -0
- package/dist/web/assets/{grid-save-dialog-BmF2Gy_E.js → grid-save-dialog-HiqlnSky.js} +1 -1
- package/dist/web/assets/grid-save-dialog-HiqlnSky.js.br +0 -0
- package/dist/web/assets/grid-save-dialog-HiqlnSky.js.gz +0 -0
- package/dist/web/assets/group-chat-tab-URU3FCLs.js +1 -0
- package/dist/web/assets/group-chat-tab-URU3FCLs.js.br +0 -0
- package/dist/web/assets/group-chat-tab-URU3FCLs.js.gz +0 -0
- package/dist/web/assets/{impexp-tab-B8d4oBOB.js → impexp-tab-B0m1Q8ia.js} +1 -1
- package/dist/web/assets/impexp-tab-B0m1Q8ia.js.br +0 -0
- package/dist/web/assets/impexp-tab-B0m1Q8ia.js.gz +0 -0
- package/dist/web/assets/index-Cb3Z6wNy.css +1 -0
- package/dist/web/assets/index-Cb3Z6wNy.css.br +0 -0
- package/dist/web/assets/{index-2_Pz5MiI.css.gz → index-Cb3Z6wNy.css.gz} +0 -0
- package/dist/web/assets/{index-Cx9ZRibz.js → index-Vd9Xr54k.js} +19 -19
- package/dist/web/assets/index-Vd9Xr54k.js.br +0 -0
- package/dist/web/assets/index-Vd9Xr54k.js.gz +0 -0
- package/dist/web/assets/{jira-watcher-section-LGTWVN87.js → jira-watcher-section-CnSTbAF6.js} +1 -1
- package/dist/web/assets/keybindings-store-D_U8jECl.js +1 -0
- package/dist/web/assets/{keyboard-shortcuts-section-BSMgmbOR.js → keyboard-shortcuts-section-CU7JjDsU.js} +1 -1
- package/dist/web/assets/keyboard-shortcuts-section-CU7JjDsU.js.br +0 -0
- package/dist/web/assets/keyboard-shortcuts-section-CU7JjDsU.js.gz +0 -0
- package/dist/web/assets/{language-servers-section-DO9wnwnG.js → language-servers-section-CzUG9H69.js} +2 -2
- package/dist/web/assets/language-servers-section-CzUG9H69.js.br +0 -0
- package/dist/web/assets/language-servers-section-CzUG9H69.js.gz +0 -0
- package/dist/web/assets/logs-app-CDSvyY1H.js +13 -0
- package/dist/web/assets/logs-app-CDSvyY1H.js.br +0 -0
- package/dist/web/assets/logs-app-CDSvyY1H.js.gz +0 -0
- package/dist/web/assets/logs-tab-CQw9vrNw.js +1 -0
- package/dist/web/assets/{logs-window-content-Cejko0VD.js → logs-window-content-CGvPnPrr.js} +1 -1
- package/dist/web/assets/{lsp-client-IsC8Ol0U.js → lsp-client-CpjPUUYJ.js} +1 -1
- package/dist/web/assets/lsp-client-CpjPUUYJ.js.br +0 -0
- package/dist/web/assets/lsp-client-CpjPUUYJ.js.gz +0 -0
- package/dist/web/assets/{markdown-renderer-D5vxN2fO.js → markdown-renderer-3ZR2x0CC.js} +1 -1
- package/dist/web/assets/{markdown-renderer-BfZiHaNy.js → markdown-renderer-DZNMRg6p.js} +2 -2
- package/dist/web/assets/markdown-renderer-DZNMRg6p.js.br +0 -0
- package/dist/web/assets/markdown-renderer-DZNMRg6p.js.gz +0 -0
- package/dist/web/assets/{mobile-explorer-sheet-Dz3eJdBl.js → mobile-explorer-sheet-D7e-MM6m.js} +1 -1
- package/dist/web/assets/mobile-explorer-sheet-D7e-MM6m.js.br +0 -0
- package/dist/web/assets/mobile-explorer-sheet-D7e-MM6m.js.gz +0 -0
- package/dist/web/assets/{new-design-dialog-B8zeJoJQ.js → new-design-dialog-BthM423i.js} +1 -1
- package/dist/web/assets/new-design-dialog-BthM423i.js.br +0 -0
- package/dist/web/assets/new-design-dialog-BthM423i.js.gz +0 -0
- package/dist/web/assets/notification-store-GKweleCQ.js +1 -0
- package/dist/web/assets/{notifications-settings-section-CMZXQw72.js → notifications-settings-section-TS3gNFcc.js} +1 -1
- package/dist/web/assets/notifications-settings-section-TS3gNFcc.js.br +0 -0
- package/dist/web/assets/notifications-settings-section-TS3gNFcc.js.gz +0 -0
- package/dist/web/assets/{open-db-tabs-DYTZbguT.js → open-db-tabs-DBgV2hbA.js} +1 -1
- package/dist/web/assets/open-db-tabs-DBgV2hbA.js.br +0 -0
- package/dist/web/assets/open-db-tabs-DBgV2hbA.js.gz +0 -0
- package/dist/web/assets/{open-settings-BGtoVEAU.js → open-settings-DWbF5YsE.js} +1 -1
- package/dist/web/assets/{overview-panel-7_8b6pwr.js → overview-panel-C5EmTk1R.js} +1 -1
- package/dist/web/assets/overview-panel-C5EmTk1R.js.br +0 -0
- package/dist/web/assets/overview-panel-C5EmTk1R.js.gz +0 -0
- package/dist/web/assets/{panel-store-Dx2ziBLp.js → panel-store-H7e9XHZF.js} +1 -1
- package/dist/web/assets/panel-store-H7e9XHZF.js.br +0 -0
- package/dist/web/assets/panel-store-H7e9XHZF.js.gz +0 -0
- package/dist/web/assets/{patch-tab-metadata-DTbCkVvx.js → patch-tab-metadata-DqvfqUI4.js} +1 -1
- package/dist/web/assets/{performance-panel-COQNCyEU.js → performance-panel-Jwab-_Z2.js} +1 -1
- package/dist/web/assets/performance-panel-Jwab-_Z2.js.br +0 -0
- package/dist/web/assets/performance-panel-Jwab-_Z2.js.gz +0 -0
- package/dist/web/assets/{ppmbot-settings-section-CmhbbZVI.js → ppmbot-settings-section-D8jIlmp8.js} +1 -1
- package/dist/web/assets/ppmbot-settings-section-D8jIlmp8.js.br +0 -0
- package/dist/web/assets/ppmbot-settings-section-D8jIlmp8.js.gz +0 -0
- package/dist/web/assets/{pptx-export-COeBmnFJ.js → pptx-export-gXOWUZXL.js} +3 -3
- package/dist/web/assets/pptx-export-gXOWUZXL.js.br +0 -0
- package/dist/web/assets/pptx-export-gXOWUZXL.js.gz +0 -0
- package/dist/web/assets/{problems-panel-I0EYfa1S.js → problems-panel-DjCHA1r5.js} +1 -1
- package/dist/web/assets/problems-panel-DjCHA1r5.js.br +0 -0
- package/dist/web/assets/problems-panel-DjCHA1r5.js.gz +0 -0
- package/dist/web/assets/{process-table-or-X8Lwh.js → process-table-BxXEh4tN.js} +1 -1
- package/dist/web/assets/process-table-BxXEh4tN.js.br +0 -0
- package/dist/web/assets/process-table-BxXEh4tN.js.gz +0 -0
- package/dist/web/assets/{proxy-settings-section-DpJ6ok4C.js → proxy-settings-section-B8igco2L.js} +1 -1
- package/dist/web/assets/proxy-settings-section-B8igco2L.js.br +0 -0
- package/dist/web/assets/proxy-settings-section-B8igco2L.js.gz +0 -0
- package/dist/web/assets/{query-tab-DeNZMZHX.js → query-tab-DHU3ANHN.js} +3 -3
- package/dist/web/assets/query-tab-DHU3ANHN.js.br +0 -0
- package/dist/web/assets/query-tab-DHU3ANHN.js.gz +0 -0
- package/dist/web/assets/release-notes-window-content-B33RDfFY.js +1 -0
- package/dist/web/assets/remote-access-settings-section-CoYQTFKd.js +1 -0
- package/dist/web/assets/remote-access-settings-section-CoYQTFKd.js.br +0 -0
- package/dist/web/assets/remote-access-settings-section-CoYQTFKd.js.gz +0 -0
- package/dist/web/assets/{remote-desktop-clipboard-notice-CGDBpXMf.js → remote-desktop-clipboard-notice-Dwn-iV4g.js} +1 -1
- package/dist/web/assets/remote-desktop-clipboard-notice-Dwn-iV4g.js.br +0 -0
- package/dist/web/assets/remote-desktop-clipboard-notice-Dwn-iV4g.js.gz +0 -0
- package/dist/web/assets/{remote-desktop-mobile-sheet-6nXirdqZ.js → remote-desktop-mobile-sheet-bfKiSG0C.js} +2 -2
- package/dist/web/assets/remote-desktop-mobile-sheet-bfKiSG0C.js.br +0 -0
- package/dist/web/assets/remote-desktop-mobile-sheet-bfKiSG0C.js.gz +0 -0
- package/dist/web/assets/{remote-desktop-mobile-view-BTaj9Flo.js → remote-desktop-mobile-view-CV8eHh4A.js} +1 -1
- package/dist/web/assets/remote-desktop-mobile-view-CV8eHh4A.js.br +0 -0
- package/dist/web/assets/remote-desktop-mobile-view-CV8eHh4A.js.gz +0 -0
- package/dist/web/assets/{remote-desktop-readiness-gate--gtmfqZh.js → remote-desktop-readiness-gate-DrSYb_9z.js} +1 -1
- package/dist/web/assets/remote-desktop-readiness-gate-DrSYb_9z.js.br +0 -0
- package/dist/web/assets/remote-desktop-readiness-gate-DrSYb_9z.js.gz +0 -0
- package/dist/web/assets/{remote-desktop-settings-section-Bs5avYaS.js → remote-desktop-settings-section-DRO8n8t7.js} +1 -1
- package/dist/web/assets/remote-desktop-settings-section-DRO8n8t7.js.br +0 -0
- package/dist/web/assets/remote-desktop-settings-section-DRO8n8t7.js.gz +0 -0
- package/dist/web/assets/{remote-desktop-window-content-D4CM-28B.js → remote-desktop-window-content-CAuxeGbK.js} +1 -1
- package/dist/web/assets/remote-desktop-window-content-CAuxeGbK.js.br +0 -0
- package/dist/web/assets/remote-desktop-window-content-CAuxeGbK.js.gz +0 -0
- package/dist/web/assets/{rename-object-dialog-Dv4iLwnf.js → rename-object-dialog-BPuh3dAH.js} +1 -1
- package/dist/web/assets/rename-object-dialog-BPuh3dAH.js.br +0 -0
- package/dist/web/assets/rename-object-dialog-BPuh3dAH.js.gz +0 -0
- package/dist/web/assets/review-address-setup-CoI2BGdx.js +1 -0
- package/dist/web/assets/review-address-setup-CoI2BGdx.js.br +0 -0
- package/dist/web/assets/review-address-setup-CoI2BGdx.js.gz +0 -0
- package/dist/web/assets/{review-code-Bet53hHb.js → review-code-Dy8y4_17.js} +1 -1
- package/dist/web/assets/review-code-Dy8y4_17.js.br +0 -0
- package/dist/web/assets/review-code-Dy8y4_17.js.gz +0 -0
- package/dist/web/assets/{run-in-terminal-EVMb5TjW.js → run-in-terminal-DAdjH24K.js} +1 -1
- package/dist/web/assets/{run-in-terminal-button-CsYq6Xqo.js → run-in-terminal-button-Bu165IH-.js} +1 -1
- package/dist/web/assets/{save-as-dialog-DHkBsS-6.js → save-as-dialog-C9OpJz2x.js} +1 -1
- package/dist/web/assets/save-as-dialog-C9OpJz2x.js.br +0 -0
- package/dist/web/assets/save-as-dialog-C9OpJz2x.js.gz +0 -0
- package/dist/web/assets/{schedule-script-editor-CKUl2qxf.js → schedule-script-editor--roOsFbc.js} +1 -1
- package/dist/web/assets/schedule-script-editor--roOsFbc.js.br +0 -0
- package/dist/web/assets/schedule-script-editor--roOsFbc.js.gz +0 -0
- package/dist/web/assets/{schedules-settings-section-EoOXzqF3.js → schedules-settings-section-BTn_NSzU.js} +3 -3
- package/dist/web/assets/schedules-settings-section-BTn_NSzU.js.br +0 -0
- package/dist/web/assets/schedules-settings-section-BTn_NSzU.js.gz +0 -0
- package/dist/web/assets/{send-to-chat-B7oUVcgh.js → send-to-chat-BUxj21hD.js} +1 -1
- package/dist/web/assets/send-to-chat-BUxj21hD.js.br +0 -0
- package/dist/web/assets/send-to-chat-BUxj21hD.js.gz +0 -0
- package/dist/web/assets/{services-panel-BceuL_SU.js → services-panel-BynENSs6.js} +1 -1
- package/dist/web/assets/services-panel-BynENSs6.js.br +0 -0
- package/dist/web/assets/services-panel-BynENSs6.js.gz +0 -0
- package/dist/web/assets/{session-changes-bar-CjSxBYOF.js → session-changes-bar-Dz3QitdJ.js} +1 -1
- package/dist/web/assets/session-changes-bar-Dz3QitdJ.js.br +0 -0
- package/dist/web/assets/session-changes-bar-Dz3QitdJ.js.gz +0 -0
- package/dist/web/assets/{session-review-tab-yIQFGJbG.js → session-review-tab-fRzyogNH.js} +1 -1
- package/dist/web/assets/session-review-tab-fRzyogNH.js.br +0 -0
- package/dist/web/assets/session-review-tab-fRzyogNH.js.gz +0 -0
- package/dist/web/assets/{settings-body-DXNcpoqY.js → settings-body-D5pmlFft.js} +1 -1
- package/dist/web/assets/settings-body-D5pmlFft.js.br +0 -0
- package/dist/web/assets/settings-body-D5pmlFft.js.gz +0 -0
- package/dist/web/assets/{settings-rows-DgL7oTg8.js → settings-rows-VtjChFlm.js} +1 -1
- package/dist/web/assets/settings-rows-VtjChFlm.js.br +0 -0
- package/dist/web/assets/settings-rows-VtjChFlm.js.gz +0 -0
- package/dist/web/assets/{settings-section-content-DFLjO2le.js → settings-section-content-BOwSlBkZ.js} +2 -2
- package/dist/web/assets/settings-section-content-BOwSlBkZ.js.br +0 -0
- package/dist/web/assets/settings-section-content-BOwSlBkZ.js.gz +0 -0
- package/dist/web/assets/{settings-section-content-B1eU_yR4.js → settings-section-content-Ck39TJA7.js} +1 -1
- package/dist/web/assets/{settings-store-CBJCnE5L.js → settings-store-CMpVMq3Y.js} +2 -2
- package/dist/web/assets/settings-store-CMpVMq3Y.js.br +0 -0
- package/dist/web/assets/settings-store-CMpVMq3Y.js.gz +0 -0
- package/dist/web/assets/settings-tab-A81xb81d.js +1 -0
- package/dist/web/assets/settings-window-content-BCDRi6xS.js +1 -0
- package/dist/web/assets/{slash-command-picker-qb3fZ7RP.js → slash-command-picker-BKeEykkF.js} +1 -1
- package/dist/web/assets/slash-command-picker-BKeEykkF.js.br +0 -0
- package/dist/web/assets/slash-command-picker-BKeEykkF.js.gz +0 -0
- package/dist/web/assets/{sql-object-tab-B6JtYu9P.js → sql-object-tab-I5bl3DVf.js} +1 -1
- package/dist/web/assets/sql-object-tab-I5bl3DVf.js.br +0 -0
- package/dist/web/assets/sql-object-tab-I5bl3DVf.js.gz +0 -0
- package/dist/web/assets/{sqlite-viewer-bdNkUymy.js → sqlite-viewer-ECCCjxdn.js} +1 -1
- package/dist/web/assets/sqlite-viewer-ECCCjxdn.js.br +0 -0
- package/dist/web/assets/sqlite-viewer-ECCCjxdn.js.gz +0 -0
- package/dist/web/assets/{structure-save-dialog-5SfYdbAB.js → structure-save-dialog-DcQdamD3.js} +1 -1
- package/dist/web/assets/structure-save-dialog-DcQdamD3.js.br +0 -0
- package/dist/web/assets/structure-save-dialog-DcQdamD3.js.gz +0 -0
- package/dist/web/assets/{structure-tab-DYjjcLIU.js → structure-tab-DyQGhf9t.js} +2 -2
- package/dist/web/assets/structure-tab-DyQGhf9t.js.br +0 -0
- package/dist/web/assets/structure-tab-DyQGhf9t.js.gz +0 -0
- package/dist/web/assets/{system-monitor-body-DouL7ajt.js → system-monitor-body-B5AvRT5J.js} +2 -2
- package/dist/web/assets/system-monitor-body-B5AvRT5J.js.br +0 -0
- package/dist/web/assets/system-monitor-body-B5AvRT5J.js.gz +0 -0
- package/dist/web/assets/system-monitor-tab-CfwHKQ5k.js +1 -0
- package/dist/web/assets/{system-monitor-window-content-DUCaJME1.js → system-monitor-window-content-Cvx1V8Mf.js} +1 -1
- package/dist/web/assets/{tab-host-window-content-CQ5NiV6Y.js → tab-host-window-content-DqOUHxEL.js} +1 -1
- package/dist/web/assets/tab-host-window-content-DqOUHxEL.js.br +0 -0
- package/dist/web/assets/tab-host-window-content-DqOUHxEL.js.gz +0 -0
- package/dist/web/assets/{tab-store-B4v2kAEY.js → tab-store-NUmgzMPf.js} +1 -1
- package/dist/web/assets/table-tab-dI8rBbCS.js +2 -0
- package/dist/web/assets/table-tab-dI8rBbCS.js.br +0 -0
- package/dist/web/assets/table-tab-dI8rBbCS.js.gz +0 -0
- package/dist/web/assets/{telegram-bot-token-field-CqVIuWP1.js → telegram-bot-token-field-DSLtG8vw.js} +1 -1
- package/dist/web/assets/telegram-bot-token-field-DSLtG8vw.js.br +0 -0
- package/dist/web/assets/telegram-bot-token-field-DSLtG8vw.js.gz +0 -0
- package/dist/web/assets/{terminal-tab-DT0MN_Qn.js → terminal-tab-CDg0AHBK.js} +2 -2
- package/dist/web/assets/terminal-tab-CDg0AHBK.js.br +0 -0
- package/dist/web/assets/terminal-tab-CDg0AHBK.js.gz +0 -0
- package/dist/web/assets/{tool-cards-C2YGSKRm.js → tool-cards-7E0jtwP0.js} +5 -5
- package/dist/web/assets/tool-cards-7E0jtwP0.js.br +0 -0
- package/dist/web/assets/tool-cards-7E0jtwP0.js.gz +0 -0
- package/dist/web/assets/{tools-settings-section-DQXIdF8O.js → tools-settings-section-AChVQJyU.js} +1 -1
- package/dist/web/assets/tools-settings-section-AChVQJyU.js.br +0 -0
- package/dist/web/assets/tools-settings-section-AChVQJyU.js.gz +0 -0
- package/dist/web/assets/{use-db-read-BByB906L.js → use-db-read-DgNa66Yo.js} +1 -1
- package/dist/web/assets/use-db-read-DgNa66Yo.js.br +0 -0
- package/dist/web/assets/use-db-read-DgNa66Yo.js.gz +0 -0
- package/dist/web/assets/{use-db-tab-Dc0QSFyM.js → use-db-tab-OGLoicCd.js} +1 -1
- package/dist/web/assets/use-db-tab-OGLoicCd.js.br +0 -0
- package/dist/web/assets/use-db-tab-OGLoicCd.js.gz +0 -0
- package/dist/web/assets/{use-inline-blame-B9M-hADX.js → use-inline-blame-BvlcOQd9.js} +3 -3
- package/dist/web/assets/use-inline-blame-BvlcOQd9.js.br +0 -0
- package/dist/web/assets/use-inline-blame-BvlcOQd9.js.gz +0 -0
- package/dist/web/assets/{use-lsp-DcGiCpl9.js → use-lsp-fLNwD0BI.js} +1 -1
- package/dist/web/assets/use-lsp-fLNwD0BI.js.br +0 -0
- package/dist/web/assets/use-lsp-fLNwD0BI.js.gz +0 -0
- package/dist/web/assets/{use-monaco-theme-CyoMsYaI.js → use-monaco-theme-CbNQ4HnC.js} +1 -1
- package/dist/web/assets/{use-process-kill-DsHyrg0-.js → use-process-kill-B4Srjl2m.js} +1 -1
- package/dist/web/assets/use-process-kill-B4Srjl2m.js.br +0 -0
- package/dist/web/assets/use-process-kill-B4Srjl2m.js.gz +0 -0
- package/dist/web/assets/{use-sql-schema-info-BqGN5N4O.js → use-sql-schema-info-CqISFaAW.js} +1 -1
- package/dist/web/assets/use-sql-schema-info-CqISFaAW.js.br +0 -0
- package/dist/web/assets/use-sql-schema-info-CqISFaAW.js.gz +0 -0
- package/dist/web/assets/{use-websocket-DqomrzN8.js → use-websocket-DVJuWhlA.js} +1 -1
- package/dist/web/assets/{voice-settings-section-D9KsOm8A.js → voice-settings-section-C1aEYF94.js} +1 -1
- package/dist/web/assets/voice-settings-section-C1aEYF94.js.br +0 -0
- package/dist/web/assets/voice-settings-section-C1aEYF94.js.gz +0 -0
- package/dist/web/assets/{web-preview-tab-CUp1n2jz.js → web-preview-tab-CZJAVoVU.js} +1 -1
- package/dist/web/assets/web-preview-tab-CZJAVoVU.js.br +0 -0
- package/dist/web/assets/web-preview-tab-CZJAVoVU.js.gz +0 -0
- package/dist/web/assets/{window-store-UcSFgNCI.js → window-store-D6EgLSfT.js} +1 -1
- package/dist/web/assets/window-store-D6EgLSfT.js.br +0 -0
- package/dist/web/assets/window-store-D6EgLSfT.js.gz +0 -0
- package/dist/web/index.html +12 -12
- package/dist/web/index.html.br +0 -0
- package/dist/web/index.html.gz +0 -0
- package/dist/web/sw.js +1 -1
- package/dist/web/sw.js.br +0 -0
- package/dist/web/sw.js.gz +0 -0
- package/package.json +1 -1
- package/src/web/components/floating-window/use-window-meta.ts +2 -1
- package/src/web/components/floating-window/window-content-registry.ts +2 -0
- package/src/web/components/floating-window/window-store-types.ts +1 -1
- package/src/web/components/layout/upgrade-button.tsx +27 -46
- package/src/web/components/release-notes/open-release-notes.ts +22 -0
- package/src/web/components/release-notes/release-notes-entry.tsx +73 -0
- package/src/web/components/release-notes/release-notes-view.tsx +72 -0
- package/src/web/components/release-notes/release-notes-window-content.tsx +6 -0
- package/dist/web/assets/accounts-settings-section-Ctu-w8kt.js +0 -1
- package/dist/web/assets/accounts-settings-section-Ctu-w8kt.js.br +0 -0
- package/dist/web/assets/accounts-settings-section-Ctu-w8kt.js.gz +0 -0
- package/dist/web/assets/agent-session-sheet-DmbSfFGz.js.br +0 -0
- package/dist/web/assets/agent-session-sheet-DmbSfFGz.js.gz +0 -0
- package/dist/web/assets/agent-session-window-content-Dk8x3ozF.js.br +0 -0
- package/dist/web/assets/agent-session-window-content-Dk8x3ozF.js.gz +0 -0
- package/dist/web/assets/ai-resource-editor-MKwjYcDh.js.br +0 -0
- package/dist/web/assets/ai-resource-editor-MKwjYcDh.js.gz +0 -0
- package/dist/web/assets/ai-settings-section-CODZY71V.js +0 -1
- package/dist/web/assets/ai-settings-section-CODZY71V.js.br +0 -0
- package/dist/web/assets/ai-settings-section-CODZY71V.js.gz +0 -0
- package/dist/web/assets/android-tab-CUkjbfyi.js.br +0 -0
- package/dist/web/assets/android-tab-CUkjbfyi.js.gz +0 -0
- package/dist/web/assets/appearance-settings-section-BZsM8HpZ.js.br +0 -0
- package/dist/web/assets/appearance-settings-section-BZsM8HpZ.js.gz +0 -0
- package/dist/web/assets/apps-panel-Cs3utBlp.js.br +0 -0
- package/dist/web/assets/apps-panel-Cs3utBlp.js.gz +0 -0
- package/dist/web/assets/branch-review-tab-C-aPuhXZ.js +0 -1
- package/dist/web/assets/branch-review-tab-C-aPuhXZ.js.br +0 -0
- package/dist/web/assets/branch-review-tab-C-aPuhXZ.js.gz +0 -0
- package/dist/web/assets/chat-tab-CGQu4uLR.js +0 -1
- package/dist/web/assets/chat-tab-CGQu4uLR.js.br +0 -0
- package/dist/web/assets/chat-tab-CGQu4uLR.js.gz +0 -0
- package/dist/web/assets/chat-tab-DtSHSfMU.js.br +0 -0
- package/dist/web/assets/chat-tab-DtSHSfMU.js.gz +0 -0
- package/dist/web/assets/code-editor-DjDyhff1.js.br +0 -0
- package/dist/web/assets/code-editor-DjDyhff1.js.gz +0 -0
- package/dist/web/assets/codex-reset-credit-button-BKgiUi8E.js.br +0 -0
- package/dist/web/assets/codex-reset-credit-button-BKgiUi8E.js.gz +0 -0
- package/dist/web/assets/conflict-editor-DgTv-8pb.js.br +0 -0
- package/dist/web/assets/conflict-editor-DgTv-8pb.js.gz +0 -0
- package/dist/web/assets/connection-form-tab-CJ-6gH9g.js +0 -4
- package/dist/web/assets/connection-form-tab-CJ-6gH9g.js.br +0 -0
- package/dist/web/assets/connection-form-tab-CJ-6gH9g.js.gz +0 -0
- package/dist/web/assets/csv-preview-BTGpYs4p.js.br +0 -0
- package/dist/web/assets/csv-preview-BTGpYs4p.js.gz +0 -0
- package/dist/web/assets/db-explorer-store-DDePT3UI.js.br +0 -0
- package/dist/web/assets/db-explorer-store-DDePT3UI.js.gz +0 -0
- package/dist/web/assets/db-sidebar-reveal-BeT8cp6P.js.br +0 -0
- package/dist/web/assets/db-sidebar-reveal-BeT8cp6P.js.gz +0 -0
- package/dist/web/assets/db-tab-parts-BYzd4_sR.js.br +0 -0
- package/dist/web/assets/db-tab-parts-BYzd4_sR.js.gz +0 -0
- package/dist/web/assets/design-settings-section-B3KQBggK.js.br +0 -0
- package/dist/web/assets/design-settings-section-B3KQBggK.js.gz +0 -0
- package/dist/web/assets/design-tab-CPyj_nFg.js.br +0 -0
- package/dist/web/assets/design-tab-CPyj_nFg.js.gz +0 -0
- package/dist/web/assets/designs-sidebar-panel-DIGPFo2l.js.br +0 -0
- package/dist/web/assets/designs-sidebar-panel-DIGPFo2l.js.gz +0 -0
- package/dist/web/assets/diff-viewer-nYz43A94.js +0 -4
- package/dist/web/assets/diff-viewer-nYz43A94.js.br +0 -0
- package/dist/web/assets/diff-viewer-nYz43A94.js.gz +0 -0
- package/dist/web/assets/docx-preview-CowHGqML.js.br +0 -0
- package/dist/web/assets/docx-preview-CowHGqML.js.gz +0 -0
- package/dist/web/assets/editor-dialog-xPoehDYp.js.br +0 -0
- package/dist/web/assets/editor-dialog-xPoehDYp.js.gz +0 -0
- package/dist/web/assets/editor-language-service-DdYqCDBU.js.br +0 -0
- package/dist/web/assets/editor-language-service-DdYqCDBU.js.gz +0 -0
- package/dist/web/assets/explorer-body-BHh5Qpvi.js +0 -2
- package/dist/web/assets/explorer-body-BHh5Qpvi.js.br +0 -0
- package/dist/web/assets/explorer-body-BHh5Qpvi.js.gz +0 -0
- package/dist/web/assets/explorer-model-tGyFETP_.js.br +0 -0
- package/dist/web/assets/explorer-model-tGyFETP_.js.gz +0 -0
- package/dist/web/assets/explorer-window-content-B1c4QTVL.js.br +0 -0
- package/dist/web/assets/explorer-window-content-B1c4QTVL.js.gz +0 -0
- package/dist/web/assets/extension-manager-section-BgL0Uyl3.js.br +0 -0
- package/dist/web/assets/extension-manager-section-BgL0Uyl3.js.gz +0 -0
- package/dist/web/assets/extension-webview-BWB1Yd-t.js.br +0 -0
- package/dist/web/assets/extension-webview-BWB1Yd-t.js.gz +0 -0
- package/dist/web/assets/files-settings-section-TmoewoO2.js.br +0 -0
- package/dist/web/assets/files-settings-section-TmoewoO2.js.gz +0 -0
- package/dist/web/assets/general-settings-section-Bu7o8uUn.js.br +0 -0
- package/dist/web/assets/general-settings-section-Bu7o8uUn.js.gz +0 -0
- package/dist/web/assets/git-log-panel-RjMZIaCk.js.br +0 -0
- package/dist/web/assets/git-log-panel-RjMZIaCk.js.gz +0 -0
- package/dist/web/assets/git-review-tab-BUW5LZk4.js +0 -3
- package/dist/web/assets/git-review-tab-BUW5LZk4.js.br +0 -0
- package/dist/web/assets/git-review-tab-BUW5LZk4.js.gz +0 -0
- package/dist/web/assets/glide-data-grid-DqlTFhhf.js.br +0 -0
- package/dist/web/assets/glide-data-grid-DqlTFhhf.js.gz +0 -0
- package/dist/web/assets/grid-save-dialog-BmF2Gy_E.js.br +0 -0
- package/dist/web/assets/grid-save-dialog-BmF2Gy_E.js.gz +0 -0
- package/dist/web/assets/group-chat-tab-nk3n5wE0.js +0 -1
- package/dist/web/assets/group-chat-tab-nk3n5wE0.js.br +0 -0
- package/dist/web/assets/group-chat-tab-nk3n5wE0.js.gz +0 -0
- package/dist/web/assets/impexp-tab-B8d4oBOB.js.br +0 -0
- package/dist/web/assets/impexp-tab-B8d4oBOB.js.gz +0 -0
- package/dist/web/assets/index-2_Pz5MiI.css +0 -1
- package/dist/web/assets/index-2_Pz5MiI.css.br +0 -0
- package/dist/web/assets/index-Cx9ZRibz.js.br +0 -0
- package/dist/web/assets/index-Cx9ZRibz.js.gz +0 -0
- package/dist/web/assets/keybindings-store-B2AkKQl7.js +0 -1
- package/dist/web/assets/keyboard-shortcuts-section-BSMgmbOR.js.br +0 -0
- package/dist/web/assets/keyboard-shortcuts-section-BSMgmbOR.js.gz +0 -0
- package/dist/web/assets/language-servers-section-DO9wnwnG.js.br +0 -0
- package/dist/web/assets/language-servers-section-DO9wnwnG.js.gz +0 -0
- package/dist/web/assets/logs-app-xQ2UsN4G.js +0 -13
- package/dist/web/assets/logs-app-xQ2UsN4G.js.br +0 -0
- package/dist/web/assets/logs-app-xQ2UsN4G.js.gz +0 -0
- package/dist/web/assets/logs-tab-H3SmYGRX.js +0 -1
- package/dist/web/assets/lsp-client-IsC8Ol0U.js.br +0 -0
- package/dist/web/assets/lsp-client-IsC8Ol0U.js.gz +0 -0
- package/dist/web/assets/markdown-renderer-BfZiHaNy.js.br +0 -0
- package/dist/web/assets/markdown-renderer-BfZiHaNy.js.gz +0 -0
- package/dist/web/assets/mobile-explorer-sheet-Dz3eJdBl.js.br +0 -0
- package/dist/web/assets/mobile-explorer-sheet-Dz3eJdBl.js.gz +0 -0
- package/dist/web/assets/new-design-dialog-B8zeJoJQ.js.br +0 -0
- package/dist/web/assets/new-design-dialog-B8zeJoJQ.js.gz +0 -0
- package/dist/web/assets/notification-store-BkkcJE2G.js +0 -1
- package/dist/web/assets/notifications-settings-section-CMZXQw72.js.br +0 -0
- package/dist/web/assets/notifications-settings-section-CMZXQw72.js.gz +0 -0
- package/dist/web/assets/open-db-tabs-DYTZbguT.js.br +0 -0
- package/dist/web/assets/open-db-tabs-DYTZbguT.js.gz +0 -0
- package/dist/web/assets/overview-panel-7_8b6pwr.js.br +0 -0
- package/dist/web/assets/overview-panel-7_8b6pwr.js.gz +0 -0
- package/dist/web/assets/panel-store-Dx2ziBLp.js.br +0 -0
- package/dist/web/assets/panel-store-Dx2ziBLp.js.gz +0 -0
- package/dist/web/assets/performance-panel-COQNCyEU.js.br +0 -0
- package/dist/web/assets/performance-panel-COQNCyEU.js.gz +0 -0
- package/dist/web/assets/ppmbot-settings-section-CmhbbZVI.js.br +0 -0
- package/dist/web/assets/ppmbot-settings-section-CmhbbZVI.js.gz +0 -0
- package/dist/web/assets/pptx-export-COeBmnFJ.js.br +0 -0
- package/dist/web/assets/pptx-export-COeBmnFJ.js.gz +0 -0
- package/dist/web/assets/problems-panel-I0EYfa1S.js.br +0 -0
- package/dist/web/assets/problems-panel-I0EYfa1S.js.gz +0 -0
- package/dist/web/assets/process-table-or-X8Lwh.js.br +0 -0
- package/dist/web/assets/process-table-or-X8Lwh.js.gz +0 -0
- package/dist/web/assets/proxy-settings-section-DpJ6ok4C.js.br +0 -0
- package/dist/web/assets/proxy-settings-section-DpJ6ok4C.js.gz +0 -0
- package/dist/web/assets/query-tab-DeNZMZHX.js.br +0 -0
- package/dist/web/assets/query-tab-DeNZMZHX.js.gz +0 -0
- package/dist/web/assets/remote-access-settings-section-QRP4Yh46.js +0 -1
- package/dist/web/assets/remote-access-settings-section-QRP4Yh46.js.br +0 -0
- package/dist/web/assets/remote-access-settings-section-QRP4Yh46.js.gz +0 -0
- package/dist/web/assets/remote-desktop-clipboard-notice-CGDBpXMf.js.br +0 -0
- package/dist/web/assets/remote-desktop-clipboard-notice-CGDBpXMf.js.gz +0 -0
- package/dist/web/assets/remote-desktop-mobile-sheet-6nXirdqZ.js.br +0 -0
- package/dist/web/assets/remote-desktop-mobile-sheet-6nXirdqZ.js.gz +0 -0
- package/dist/web/assets/remote-desktop-mobile-view-BTaj9Flo.js.br +0 -0
- package/dist/web/assets/remote-desktop-mobile-view-BTaj9Flo.js.gz +0 -0
- package/dist/web/assets/remote-desktop-readiness-gate--gtmfqZh.js.br +0 -0
- package/dist/web/assets/remote-desktop-readiness-gate--gtmfqZh.js.gz +0 -0
- package/dist/web/assets/remote-desktop-settings-section-Bs5avYaS.js.br +0 -0
- package/dist/web/assets/remote-desktop-settings-section-Bs5avYaS.js.gz +0 -0
- package/dist/web/assets/remote-desktop-window-content-D4CM-28B.js.br +0 -0
- package/dist/web/assets/remote-desktop-window-content-D4CM-28B.js.gz +0 -0
- package/dist/web/assets/rename-object-dialog-Dv4iLwnf.js.br +0 -0
- package/dist/web/assets/rename-object-dialog-Dv4iLwnf.js.gz +0 -0
- package/dist/web/assets/review-address-setup-CU1A_NfZ.js +0 -1
- package/dist/web/assets/review-address-setup-CU1A_NfZ.js.br +0 -0
- package/dist/web/assets/review-address-setup-CU1A_NfZ.js.gz +0 -0
- package/dist/web/assets/review-code-Bet53hHb.js.br +0 -0
- package/dist/web/assets/review-code-Bet53hHb.js.gz +0 -0
- package/dist/web/assets/save-as-dialog-DHkBsS-6.js.br +0 -0
- package/dist/web/assets/save-as-dialog-DHkBsS-6.js.gz +0 -0
- package/dist/web/assets/schedule-script-editor-CKUl2qxf.js.br +0 -0
- package/dist/web/assets/schedule-script-editor-CKUl2qxf.js.gz +0 -0
- package/dist/web/assets/schedules-settings-section-EoOXzqF3.js.br +0 -0
- package/dist/web/assets/schedules-settings-section-EoOXzqF3.js.gz +0 -0
- package/dist/web/assets/send-to-chat-B7oUVcgh.js.br +0 -0
- package/dist/web/assets/send-to-chat-B7oUVcgh.js.gz +0 -0
- package/dist/web/assets/services-panel-BceuL_SU.js.br +0 -0
- package/dist/web/assets/services-panel-BceuL_SU.js.gz +0 -0
- package/dist/web/assets/session-changes-bar-CjSxBYOF.js.br +0 -0
- package/dist/web/assets/session-changes-bar-CjSxBYOF.js.gz +0 -0
- package/dist/web/assets/session-review-tab-yIQFGJbG.js.br +0 -0
- package/dist/web/assets/session-review-tab-yIQFGJbG.js.gz +0 -0
- package/dist/web/assets/settings-body-DXNcpoqY.js.br +0 -0
- package/dist/web/assets/settings-body-DXNcpoqY.js.gz +0 -0
- package/dist/web/assets/settings-rows-DgL7oTg8.js.br +0 -0
- package/dist/web/assets/settings-rows-DgL7oTg8.js.gz +0 -0
- package/dist/web/assets/settings-section-content-DFLjO2le.js.br +0 -0
- package/dist/web/assets/settings-section-content-DFLjO2le.js.gz +0 -0
- package/dist/web/assets/settings-store-CBJCnE5L.js.br +0 -0
- package/dist/web/assets/settings-store-CBJCnE5L.js.gz +0 -0
- package/dist/web/assets/settings-tab-CrGoLKQT.js +0 -1
- package/dist/web/assets/settings-window-content-5opW9Wra.js +0 -1
- package/dist/web/assets/slash-command-picker-qb3fZ7RP.js.br +0 -0
- package/dist/web/assets/slash-command-picker-qb3fZ7RP.js.gz +0 -0
- package/dist/web/assets/sql-object-tab-B6JtYu9P.js.br +0 -0
- package/dist/web/assets/sql-object-tab-B6JtYu9P.js.gz +0 -0
- package/dist/web/assets/sqlite-viewer-bdNkUymy.js.br +0 -0
- package/dist/web/assets/sqlite-viewer-bdNkUymy.js.gz +0 -0
- package/dist/web/assets/structure-save-dialog-5SfYdbAB.js.br +0 -0
- package/dist/web/assets/structure-save-dialog-5SfYdbAB.js.gz +0 -0
- package/dist/web/assets/structure-tab-DYjjcLIU.js.br +0 -0
- package/dist/web/assets/structure-tab-DYjjcLIU.js.gz +0 -0
- package/dist/web/assets/system-monitor-body-DouL7ajt.js.br +0 -0
- package/dist/web/assets/system-monitor-body-DouL7ajt.js.gz +0 -0
- package/dist/web/assets/system-monitor-tab-qpa36tWB.js +0 -1
- package/dist/web/assets/tab-host-window-content-CQ5NiV6Y.js.br +0 -0
- package/dist/web/assets/tab-host-window-content-CQ5NiV6Y.js.gz +0 -0
- package/dist/web/assets/table-tab-M850PntZ.js +0 -2
- package/dist/web/assets/table-tab-M850PntZ.js.br +0 -0
- package/dist/web/assets/table-tab-M850PntZ.js.gz +0 -0
- package/dist/web/assets/telegram-bot-token-field-CqVIuWP1.js.br +0 -0
- package/dist/web/assets/telegram-bot-token-field-CqVIuWP1.js.gz +0 -0
- package/dist/web/assets/terminal-tab-DT0MN_Qn.js.br +0 -0
- package/dist/web/assets/terminal-tab-DT0MN_Qn.js.gz +0 -0
- package/dist/web/assets/tool-cards-C2YGSKRm.js.br +0 -0
- package/dist/web/assets/tool-cards-C2YGSKRm.js.gz +0 -0
- package/dist/web/assets/tools-settings-section-DQXIdF8O.js.br +0 -0
- package/dist/web/assets/tools-settings-section-DQXIdF8O.js.gz +0 -0
- package/dist/web/assets/use-db-read-BByB906L.js.br +0 -0
- package/dist/web/assets/use-db-read-BByB906L.js.gz +0 -0
- package/dist/web/assets/use-db-tab-Dc0QSFyM.js.br +0 -0
- package/dist/web/assets/use-db-tab-Dc0QSFyM.js.gz +0 -0
- package/dist/web/assets/use-inline-blame-B9M-hADX.js.br +0 -0
- package/dist/web/assets/use-inline-blame-B9M-hADX.js.gz +0 -0
- package/dist/web/assets/use-lsp-DcGiCpl9.js.br +0 -0
- package/dist/web/assets/use-lsp-DcGiCpl9.js.gz +0 -0
- package/dist/web/assets/use-process-kill-DsHyrg0-.js.br +0 -0
- package/dist/web/assets/use-process-kill-DsHyrg0-.js.gz +0 -0
- package/dist/web/assets/use-sql-schema-info-BqGN5N4O.js.br +0 -0
- package/dist/web/assets/use-sql-schema-info-BqGN5N4O.js.gz +0 -0
- package/dist/web/assets/voice-settings-section-D9KsOm8A.js.br +0 -0
- package/dist/web/assets/voice-settings-section-D9KsOm8A.js.gz +0 -0
- package/dist/web/assets/web-preview-tab-CUp1n2jz.js.br +0 -0
- package/dist/web/assets/web-preview-tab-CUp1n2jz.js.gz +0 -0
- package/dist/web/assets/window-store-UcSFgNCI.js.br +0 -0
- package/dist/web/assets/window-store-UcSFgNCI.js.gz +0 -0
- /package/dist/web/assets/{__vite-browser-external-DLaiEgUM.js → __vite-browser-external-LVpeGV-g.js} +0 -0
- /package/dist/web/assets/{api-themes-B3-6zR6Q.js → api-themes-DUOEO3_X.js} +0 -0
- /package/dist/web/assets/{claude-models-yFre4eSK.js → claude-models-C9iHl8VB.js} +0 -0
- /package/dist/web/assets/{database-drivers-section-c2SuNQPB.js → database-drivers-section-BPXoNrWi.js} +0 -0
- /package/dist/web/assets/{database-drivers-section-c2SuNQPB.js.br → database-drivers-section-BPXoNrWi.js.br} +0 -0
- /package/dist/web/assets/{database-drivers-section-c2SuNQPB.js.gz → database-drivers-section-BPXoNrWi.js.gz} +0 -0
- /package/dist/web/assets/{metric-chart-canvas-Dnm9OOXU.js → metric-chart-canvas-HG8rPTMq.js} +0 -0
- /package/dist/web/assets/{metric-chart-canvas-Dnm9OOXU.js.br → metric-chart-canvas-HG8rPTMq.js.br} +0 -0
- /package/dist/web/assets/{metric-chart-canvas-Dnm9OOXU.js.gz → metric-chart-canvas-HG8rPTMq.js.gz} +0 -0
- /package/dist/web/assets/{notification-settings-CvplVsIo.js → notification-settings--li9wGTJ.js} +0 -0
- /package/dist/web/assets/{notification-settings-CvplVsIo.js.br → notification-settings--li9wGTJ.js.br} +0 -0
- /package/dist/web/assets/{notification-settings-CvplVsIo.js.gz → notification-settings--li9wGTJ.js.gz} +0 -0
- /package/dist/web/assets/{process-row-format-CM1XaqkS.js → process-row-format-CJg8VV-6.js} +0 -0
- /package/dist/web/assets/{query-audit-section-C-fT07Zz.js → query-audit-section-BiCUBamA.js} +0 -0
- /package/dist/web/assets/{query-audit-section-C-fT07Zz.js.br → query-audit-section-BiCUBamA.js.br} +0 -0
- /package/dist/web/assets/{query-audit-section-C-fT07Zz.js.gz → query-audit-section-BiCUBamA.js.gz} +0 -0
- /package/dist/web/assets/{remote-desktop-recording-D_fwMC2z.js → remote-desktop-recording-BcDx5c_k.js} +0 -0
- /package/dist/web/assets/{separator-CYw7bF1W.js → separator-DUdRLaL0.js} +0 -0
- /package/dist/web/assets/{sortable-header-CchrA_dg.js → sortable-header-Ds6nTnqB.js} +0 -0
- /package/dist/web/assets/{sortable-header-CchrA_dg.js.br → sortable-header-Ds6nTnqB.js.br} +0 -0
- /package/dist/web/assets/{sortable-header-CchrA_dg.js.gz → sortable-header-Ds6nTnqB.js.gz} +0 -0
- /package/dist/web/assets/{vendor-xterm-lhGdimFj.js → vendor-xterm-BxbwWHG_.js} +0 -0
- /package/dist/web/assets/{vendor-xterm-lhGdimFj.js.br → vendor-xterm-BxbwWHG_.js.br} +0 -0
- /package/dist/web/assets/{vendor-xterm-lhGdimFj.js.gz → vendor-xterm-BxbwWHG_.js.gz} +0 -0
|
Binary file
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{D as t,E as n}from"./vendor-markdown-C-P1aR4p.js";import"./vendor-ui-BTSIXzhZ.js";import{A as r,Bt as i,Hn as a,I as o,Kr as s,L as c,M as l,P as u,Ut as d,Wr as f,Yr as p,en as m,gn as h,gt as g,li as _,m as v,n as y,un as b,xn as x,z as S}from"./icons-C1wDt09O.js";import{k as C,r as w}from"./api-client-BnYFnEfK.js";import"./settings-store-CMpVMq3Y.js";import{n as T,t as E}from"./utils-D3xTlJyU.js";import"./portal-container-context-Gepuvxdg.js";import"./window-store-D6EgLSfT.js";import{t as ee}from"./panel-store-H7e9XHZF.js";import"./project-store-Bs-kiU8m.js";import"./project-framework-store-nuePqBBa.js";import"./session-list-sync-triggers-D9i1FxWd.js";import{t as D}from"./tab-store-NUmgzMPf.js";import{n as O}from"./use-is-mobile-CL2I7hLf.js";import"./git-repo-store-CESIqItW.js";import{t as k}from"./button-BHGVTbam.js";import{n as A}from"./file-icons-CB0RsVdl.js";import{n as te}from"./patch-tab-metadata-DqvfqUI4.js";import"./dropdown-menu-CxZR_vuV.js";import{t as j}from"./mobile-bottom-sheet-M9pZptfh.js";import"./use-visual-viewport-B_GFo6k2.js";import{t as M}from"./start-ellipsis-DfU-W_6j.js";import{Fr as N,Ir as P,Lr as ne,Nr as re,Pr as F,Rr as ie,Sr as ae,br as I,hr as oe,ui as se,vr as L,wi as R,xr as z,yr as B,zr as ce}from"./index-Vd9Xr54k.js";import"./libesm-C9iw2_pm.js";import{h as V,i as le,m as ue,p as H,t as U}from"./review-code-Dy8y4_17.js";var W=e(t(),1),de=(e,t)=>`${e}\0${t}`,G=e=>({oldStart:e.oldStart,newStart:e.newStart,lines:e.lines}),K=e=>({id:e.id,index:e.index,oldStart:e.oldStart,oldLines:e.oldLines,newStart:e.newStart,newLines:e.newLines,added:e.added,removed:e.removed});function q(e,t){let[n,r]=e===`staged`?[t.newStart,t.newLines]:[t.oldStart,t.oldLines];return{anchor:ce(e,t),first:r?n:n+1,last:r?n+r-1:n}}function fe(e,t,n,r){if(!t)return[];let i=e===`staged`?`s`:`u`,a=e===`staged`?`staged`:`open`;if(t.whole||n||!t.blocks.length){let o=n?`deleted`:t.whole??`empty`,s=r&&o===`rename`&&t.blocks.every(e=>e.lines);return[{key:`${i}:whole`,state:a,side:e,hunk:null,whole:o,parts:s&&t.blocks.length?t.blocks.map(e=>G(e)):null,anchor:0,first:1,last:0,added:t.added,removed:t.removed}]}let o=new Map;return t.blocks.map(t=>{let n=(o.get(t.id)??0)+1;return o.set(t.id,n),{key:`${i}:${t.id}${n>1?`#${n}`:``}`,state:a,side:e,hunk:K(t),whole:null,parts:r&&t.lines?[G(t)]:null,...q(e,t),added:t.added,removed:t.removed}})}function pe(e){return e.whole||!e.hunks.length?[{key:`d:${e.recordId}`,state:`discarded`,side:`unstaged`,hunk:null,whole:e.whole??`empty`,parts:null,anchor:0,first:1,last:0,added:e.added,removed:e.removed,recordId:e.recordId}]:e.hunks.map((t,n)=>({key:`d:${e.recordId}:${n}`,state:`discarded`,side:`unstaged`,hunk:K(t),whole:null,parts:[G(t)],...q(`unstaged`,t),added:t.added,removed:t.removed,recordId:e.recordId}))}var J={staged:0,open:1,discarded:2};function me(e){let t=[];if(e.file){let n=e.detail??e.file,r=!!e.detail,i=e.detail?e.detail.staged&&{whole:e.detail.staged.whole,added:e.detail.staged.added,removed:e.detail.staged.removed,blocks:e.detail.staged.hunks}:e.file.staged,a=e.detail?e.detail.unstaged&&{whole:e.detail.unstaged.whole,added:e.detail.unstaged.added,removed:e.detail.unstaged.removed,blocks:e.detail.unstaged.hunks}:e.file.unstaged,o=[...fe(`staged`,i,n.x===`D`,r),...fe(`unstaged`,a,n.y===`D`,r)];for(let n of o){let r=e.pending.get(de(e.path,n.key));r===`discarded`&&he(n,e.discards)||t.push(r?{...n,state:r}:n)}}for(let n of e.discards)t.push(...pe(n));return t.map((e,t)=>({block:e,i:t})).sort((e,t)=>e.block.anchor-t.block.anchor||J[e.block.state]-J[t.block.state]||e.i-t.i).map(({block:e})=>e)}function he(e,t){return e.hunk?t.some(t=>t.hunks.some(t=>t.id===e.hunk.id&&t.oldStart===e.hunk.oldStart)):t.some(e=>e.whole||!e.hunks.length)}function ge(e,t,n){let r={path:e,file:t,blocks:n,open:0,staged:0,discarded:0,added:0,removed:0};for(let e of n)r[e.state===`open`?`open`:e.state===`staged`?`staged`:`discarded`]++,e.state!==`discarded`&&(r.added+=e.added,r.removed+=e.removed);return r}function _e(e){let t=new Map;for(let n of e.discards)t.set(n.path,[...t.get(n.path)??[],n]);let n=[],r=new Set;for(let i of e.files){if(i.conflict)continue;r.add(i.path);let a=me({path:i.path,file:i,detail:e.details.get(i.path)??null,discards:t.get(i.path)??[],pending:e.pending});a.length&&n.push(ge(i.path,i,a))}let i=[...t.keys()].filter(e=>!r.has(e)).sort();for(let r of i)n.push(ge(r,null,me({path:r,file:null,detail:null,discards:t.get(r),pending:e.pending})));return n}function ve(e){return e.open?`changes`:e.staged?`staged`:`discarded`}var ye=[`changes`,`staged`,`discarded`];function be(e){return ye.flatMap(t=>e.filter(e=>ve(e)===t))}function xe(e){let t={files:0,blocks:0,staged:0,discarded:0,added:0,removed:0};for(let n of e)n.open+n.staged&&t.files++,t.blocks+=n.open+n.staged,t.staged+=n.staged,t.discarded+=n.discarded,t.added+=n.added,t.removed+=n.removed;return t}function Se(e){return be(e).flatMap(e=>e.blocks.map(t=>({path:e.path,block:t})))}var Ce=e=>t=>!!e&&t.path===e.path&&t.block.key===e.key;function we(e,t,n){let r=Se(e);if(!r.length)return null;let i=r.findIndex(Ce(t)),a=i<0?r[0]:r[Math.max(0,Math.min(r.length-1,i+n))];return{path:a.path,key:a.block.key}}function Te(e,t){let n=e.flatMap(e=>e.blocks.map(t=>({path:e.path,block:t}))),r=n.findIndex(Ce(t));for(let e=1;e<=n.length;e++){let i=n[(r+e+n.length)%n.length];if(i.block.state===`open`&&!Ce(t)(i))return{path:i.path,key:i.block.key}}return null}function Ee(e){let t=e.blocks.find(e=>e.state===`open`)??e.blocks[0];return t?{path:e.path,key:t.key}:null}function De(e,t){let n=be(e),r=n.findIndex(e=>e.path===t);for(let e=1;e<=n.length;e++){let i=n[(r+e+n.length)%n.length],a=i.blocks.find(e=>e.state===`open`);if(a&&i.path!==t)return{path:i.path,key:a.key}}let i=n[(r+1)%Math.max(n.length,1)];return i&&i.path!==t?Ee(i):null}function Oe(e,t){if(t){let n=e.find(e=>e.path===t.path);if(n?.blocks.some(e=>e.key===t.key))return{path:t.path,key:t.key};if(n?.blocks.length){let e=t.anchor??0,r=[...n.blocks].sort((t,n)=>(t.state===`open`?0:1)-(n.state===`open`?0:1)||Math.abs(t.anchor-e)-Math.abs(n.anchor-e))[0];return{path:t.path,key:r.key}}}let n=Se(e),r=n.find(e=>e.block.state===`open`)??n[0];return r?{path:r.path,key:r.block.key}:null}function ke(e){let t=[],n=0;return e.forEach((r,i)=>{if(!r.whole){let e=r.first-n-1;e>0&&t.push({kind:`gap`,key:`gap:${r.key}`,lines:e}),n=Math.max(n,r.last)}t.push({kind:`block`,block:r,index:i,total:e.length})}),t}function Ae(e){let t=e.oldStart,n=e.newStart;return e.lines.map((e,r)=>({kind:e.kind,text:e.text,old:e.kind===`+`?null:t++,new:e.kind===`-`?null:n++,at:r}))}function je(e){let t=e.parts?.[0];if(e.whole||!t)return`Whole file`;let n=(e,t)=>t>1?`Lines ${e}–${e+t-1}`:`Line ${e}`,r=t.lines.filter(e=>e.kind!==`+`).length,i=t.lines.filter(e=>e.kind!==`-`).length;return e.state===`discarded`?r?n(t.oldStart,r):`Whole file`:i?n(t.newStart,i):`${n(t.oldStart,r)}, removed`}function Me(e){return(e.parts?.[0]?.lines??[]).flatMap((e,t)=>e.kind===` `?[]:[t])}function Ne(e,t){let n=Me(e).filter(e=>t.has(e));return n.length===Me(e).length?null:n}function Pe(e,t){let n=/^[us]:([^#]+)(?:#(\d+))?$/.exec(t);if(!n)return null;let r=Number(n[2]??1);for(let t of e)if(t.id===n[1]&&--r===0)return t.index;return null}function Fe(e){let t=e=>e?`${e.whole??``}:${e.blocks.map(e=>e.id).join(`,`)}`:`-`;return`${e.x}${e.y}|${e.oldPath??``}|${t(e.staged)}|${t(e.unstaged)}`}var Ie=7e3,Y=(e,t)=>`${e} ${e===1?t:`${t}s`}`,Le=e=>e instanceof Error?e.message:String(e);function Re(e,t){let n=se(e),r=n.gitUrl,{changes:i,error:a,refresh:o}=re(e),s=(0,W.useMemo)(()=>i?.files??[],[i]),[c,l]=(0,W.useState)(new Map),[u,d]=(0,W.useState)([]),[f,p]=(0,W.useState)(new Map),[m,h]=(0,W.useState)(null),[g,_]=(0,W.useState)(null),[v,y]=(0,W.useState)(null),[b,x]=(0,W.useState)(null),S=(0,W.useRef)(c),T=e=>{let t=e(S.current);S.current=t,l(t)},E=(0,W.useRef)(u),ee=e=>{let t=e(E.current);E.current=t,d(t)},D=(0,W.useRef)(i);i&&(D.current=i);let O=n.repo?.path,k=(0,W.useRef)(O);(0,W.useEffect)(()=>{k.current!==O&&(k.current=O,ee(()=>[]),x(null))},[O]);let A=(0,W.useMemo)(()=>_e({files:s,details:c,discards:u,pending:f}),[s,c,u,f]),te=(0,W.useMemo)(()=>s.filter(e=>e.conflict),[s]),j=(0,W.useMemo)(()=>xe(A),[A]),M=(0,W.useMemo)(()=>({files:j.files,filesStaged:A.filter(e=>e.staged).length,blocks:j.blocks,blocksStaged:j.staged,conflicts:te.length}),[A,j,te]),N=(0,W.useMemo)(()=>Oe(A,m),[A,m]),F=(0,W.useMemo)(()=>{let e=N&&A.find(e=>e.path===N.path),t=e?e.blocks.findIndex(e=>e.key===N.key):-1;return e&&t>=0?{review:e,block:e.blocks[t],index:t}:null},[A,N]),ae=(0,W.useMemo)(()=>F?ke(F.review.blocks):[],[F]);(0,W.useEffect)(()=>{if(!N||m&&N.path===m.path&&N.key===m.key)return;let e=F?.block;h({...N,anchor:e?.anchor})},[N,m,F]);let I=g&&N&&g.path===N.path&&g.key===N.key?g.lines:null;(0,W.useEffect)(()=>{g&&!I&&_(null)},[g,I]);let oe=(0,W.useRef)(void 0);(0,W.useEffect)(()=>{if(!t?.path||t.at===oe.current||!i)return;let e=A.find(e=>e.path===t.path);oe.current=t.at;let n=e&&Ee(e);n&&h(n)},[t?.path,t?.at,A,i]);let L=(0,W.useCallback)(async e=>{let t=`?path=${encodeURIComponent(e.path)}${e.oldPath?`&oldPath=${encodeURIComponent(e.oldPath)}`:``}`;return w.get(r(`/changes/file${t}`))},[r]),R=(0,W.useRef)(new Map),z=(0,W.useRef)(new Set),B=(0,W.useMemo)(()=>{let e=new Set;N&&e.add(N.path);let t=Te(A,N)?.path;t&&e.add(t);let n=De(A,N?.path??null)?.path;return n&&e.add(n),[...e].join(`\0`)},[A,N]);(0,W.useEffect)(()=>{let e=B?B.split(`\0`):[],t=new Map(s.map(e=>[e.path,e])),n=[...S.current.keys()].filter(n=>{let r=t.get(n);return!r||R.current.get(n)!==Fe(r)&&!e.includes(n)});if(n.length){for(let e of n)R.current.delete(e);T(e=>{let t=new Map(e);for(let e of n)t.delete(e);return t})}for(let n of e){let e=t.get(n);if(!e||e.conflict||z.current.has(n))continue;let r=Fe(e);R.current.get(n)!==r&&(R.current.set(n,r),L(e).then(e=>{R.current.get(n)!==r||z.current.has(n)||T(t=>new Map(t).set(n,e))},()=>{R.current.get(n)===r&&R.current.delete(n)}))}},[s,B,L]);let ce=(0,W.useRef)(0),V=(0,W.useCallback)((e,t)=>{x({id:++ce.current,text:e,undo:t})},[]);(0,W.useEffect)(()=>{if(!b)return;let e=setTimeout(()=>x(e=>e?.id===b.id?null:e),Ie);return()=>clearTimeout(e)},[b]);let le=(0,W.useCallback)(()=>x(null),[]),ue=(0,W.useRef)(Promise.resolve());function H(e,t,n,r){let i=async()=>{y(e);for(let e of t)z.current.add(e);try{return await n()}catch(e){return C.error(r,{description:Le(e)}),null}finally{for(let e of t)z.current.delete(e);y(null)}},a=ue.current.then(i,i);return ue.current=a,a}async function U(e,t){let n=new Map((D.current?.files??[]).map(e=>[e.path,e])),[r,...i]=await Promise.all([o(),...e.map(e=>L(n.get(e)??{path:e}).catch(()=>null))]);r&&(D.current=r);let a=new Map((D.current?.files??[]).map(e=>[e.path,e]));T(t=>{let n=new Map(t);return e.forEach((e,t)=>{let r=i[t],o=a.get(e);r&&o?(n.set(e,r),R.current.set(e,Fe(o))):(n.delete(e),R.current.delete(e))}),n}),t?.()}let G=(e,t)=>{let n=A.find(t=>t.path===e);return{review:n,block:n?.blocks.find(e=>e.key===t)}};function K(e,t,n,r){let i=t.map(t=>de(e,t)),a=e=>{let t=new Map(e);for(let e of i)t.set(e,n);return t};if(p(a),r&&N&&N.path===e&&t.includes(N.key)){let e=Te(_e({files:s,details:c,discards:u,pending:a(f)}),N);e&&h(e)}return()=>p(e=>{let t=new Map(e);for(let e of i)t.delete(e);return t})}async function q(e,t){let n=S.current.get(e);n||=await L(D.current?.files.find(t=>t.path===e)??{path:e});let r=Pe((t.side===`staged`?n.staged?.hunks:n.unstaged?.hunks)??[],t.key);if(r===null)throw Error(`This block changed since it was shown. Look at it again, then answer.`);return r}function fe(e,t){let n=S.current.get(e)?.unstaged?.hunks??[];return t.flatMap(e=>{let t=e.hunk?Pe(n,e.key):null,r=t===null?void 0:n.find(e=>e.index===t);return r?[r]:[]})}let pe=e=>{e&&ee(t=>[...t,e])},J=e=>{let t=E.current.find(t=>t.recordId===e);t&&(x(null),H(`undo`,[t.path],async()=>{await w.post(r(`/discard/undo`),{id:e});let n=t.hunks[0];await U([t.path],()=>{ee(t=>t.filter(t=>t.recordId!==e)),h({path:t.path,key:n?`u:${n.id}`:`u:whole`,anchor:n?.oldStart??0})}),V(`Restored ${t.hunks.length>1?Y(t.hunks.length,`block`):`the block`} in ${P(t.path)[1]}`)},`Could not undo the discard`))},me=(e,t)=>{let{review:n,block:i}=G(e,t);if(!n?.file||!i||i.state!==`open`)return;let a=K(e,[t],`staged`,!0);H(`stage`,[e],async()=>{try{i.hunk?await w.post(r(`/stage-hunks`),{path:e,hunks:[{hunk:await q(e,i),id:i.hunk.id}]}):await w.post(r(`/stage`),{files:[e]})}finally{await U([e],a)}},`Could not stage`)},he=(e,t)=>{let{review:n,block:i}=G(e,t);if(!n?.file||!i||i.state!==`staged`)return;let a=n.file;h({path:e,key:t,anchor:i.anchor});let o=K(e,[t],`open`,!1);H(`unstage`,[e],async()=>{try{i.hunk?await w.post(r(`/unstage-hunks`),{path:e,hunks:[{hunk:await q(e,i),id:i.hunk.id}]}):await w.post(r(`/unstage`),{files:ie(a)})}finally{await U([e],o)}},`Could not unstage`)},ge=(e,t)=>{let{review:n,block:i}=G(e,t);if(!n?.file||!i||i.state!==`open`)return;let a=n.file,o=n.blocks.indexOf(i)+1,s=n.blocks.length,c=K(e,[t],`discarded`,!0);H(`discard`,[e],async()=>{try{let t;if(!i.hunk||a.untracked){let n=fe(e,[i]),a=await w.post(r(`/discard`),{files:[e]});t=a.undo?.paths.length?{path:e,recordId:a.undo.id,hunks:n,whole:n.length?null:i.whole,added:i.added,removed:i.removed}:null}else{let n=await q(e,i),a=S.current.get(e)?.unstaged?.hunks.find(e=>e.index===n),o=await w.post(r(`/discard-hunks`),{path:e,hunks:[{hunk:n,id:i.hunk.id}]});t=o.undo&&{path:e,recordId:o.undo.id,hunks:a?[a]:[],whole:null,added:i.added,removed:i.removed}}pe(t);let n=P(e)[1];t?V(`Discarded block ${o} of ${s} in ${n}`,()=>J(t.recordId)):C.warning(`Discarded block ${o} of ${n}`,{description:`No copy of it could be kept, so this cannot be undone.`})}finally{await U([e],c)}},`Could not discard`)},ve=e=>{let t=A.find(t=>t.path===e)?.blocks.filter(e=>e.state===`open`)??[];if(!t.length)return;let n=K(e,t.map(e=>e.key),`staged`,!1);if(N?.path===e){let t=De(A,e);t&&h(t)}H(`stage`,[e],async()=>{try{await w.post(r(`/stage`),{files:[e]})}finally{await U([e],n)}},`Could not stage`)},ye=e=>{let t=A.find(t=>t.path===e),n=t?.blocks.filter(e=>e.state===`open`)??[];if(!t?.file||!n.length)return;let i=K(e,n.map(e=>e.key),`discarded`,!0);H(`discard`,[e],async()=>{try{let t=fe(e,n),i=t.length===n.length?null:n.find(e=>e.whole)?.whole??`empty`,a=n.reduce((e,t)=>e+t.added,0),o=n.reduce((e,t)=>e+t.removed,0),s=await w.post(r(`/discard`),{files:[e]}),c=s.undo?.paths.length?{path:e,recordId:s.undo.id,hunks:i?[]:t,whole:i,added:a,removed:o}:null;pe(c);let l=P(e)[1];c?V(`Discarded ${Y(n.length,`block`)} in ${l}`,()=>J(c.recordId)):C.warning(`Discarded the changes to ${l}`,{description:`No copy of them could be kept, so this cannot be undone.`})}finally{await U([e],i)}},`Could not discard`)},be=()=>{let e=A.filter(e=>e.file&&e.open);if(!e.length)return;let t=e.map(e=>K(e.path,e.blocks.filter(e=>e.state===`open`).map(e=>e.key),`staged`,!1));H(`stage`,e.map(e=>e.path),async()=>{try{await w.post(r(`/stage`),{files:e.map(e=>e.path)}),V(`Staged ${Y(e.length,`file`)}`)}finally{await U(N?[N.path]:[],()=>t.forEach(e=>e()))}},`Could not stage`)},Se=e=>{if(!F)return;let t=F.review.path,n=e?F.review.blocks.find(t=>t.key===e):F.block;!n||n.state!==`open`||!n.hunk||!n.parts||(h({path:t,key:n.key,anchor:n.anchor}),_({path:t,key:n.key,lines:new Set}))},Ce=e=>{_(t=>{if(!t)return t;let n=new Set(t.lines);return n.delete(e)||n.add(e),{...t,lines:n}})},Ae=e=>_(t=>t&&e?{...t,lines:new Set(e)}:null),je=()=>{let e=F;if(!e||!I||!e.block.hunk)return;let t=Ne(e.block,I);if(t?.length===0)return;let{review:n,block:i}=e,a=t?t.length:I.size;H(`stage-lines`,[n.path],async()=>{try{let e=await q(n.path,i);await w.post(r(`/stage-hunks`),{path:n.path,hunks:[{hunk:e,id:i.hunk.id,...t?{lines:t}:{}}]}),V(t?`Staged ${Y(a,`line`)} — the rest of the block stays open`:`Staged the block`)}finally{await U([n.path],()=>{_(null),h({path:n.path,key:i.key,anchor:i.anchor})})}},`Could not stage those lines`)},Me=(0,W.useCallback)((e,t)=>h({path:e,key:t}),[]),Re=e=>{let t=A.find(t=>t.path===e),n=t&&Ee(t);n&&h(n)},X=e=>{let t=we(A,N,e);t&&h(t)},ze=()=>{let e=De(A,N?.path??null);e&&h(e)},Be=async(e=D.current?.lastCommit?.hash)=>{await H(`undo-commit`,[],async()=>{await w.post(r(`/commit/undo`),{hash:e}),await U(N?[N.path]:[]),V(`Commit undone — its changes are staged again`)},`Could not undo the commit`)};return{changes:i,error:a,reviews:A,conflicts:te,totals:j,commitTotals:M,focus:N,focused:F,items:ae,pick:I,busy:v,toast:b,dismissToast:le,focusBlock:Me,focusFile:Re,step:X,nextFile:ze,stage:me,discard:ge,unstage:he,undoDiscard:J,stageFile:ve,discardFile:ye,stageAll:be,startPick:Se,togglePickLine:Ce,setPick:Ae,stagePicked:je,commit:async(e,t)=>{let n=D.current,i=M.filesStaged,a=await H(`commit`,[],async()=>{let{hash:n}=await w.post(r(`/commit`),{message:e,amend:!!t.amend,signoff:!!t.signoff});return await U(N?[N.path]:[]),n},t.amend?`Could not amend the commit`:`Could not commit`);if(!a)return!1;let s=a.slice(0,7);if(t.amend?V(`Amended ${s}`):V(`Committed ${s} · ${Y(i,`file`)}`,()=>void Be(a)),t.push&&n){let e=ne(n.branch)===`publish`;await H(`push`,[],async()=>(await w.post(r(e?`/publish`:`/push`),{}),await o(),!0),e?`Publish failed`:`Push failed`)&&V(e?`Published ${n.branch.head??`the branch`}`:`Pushed ${s} to ${n.branch.upstream??`the remote`}`)}return!0},undoCommit:Be}}var X=n(),ze=(e,t)=>`${e} ${e===1?t:`${t}s`}`;function Be({lines:e,compact:t}){return(0,X.jsxs)(`div`,{className:T(`my-0.5 flex h-7 items-center gap-2 font-sans text-[11.5px] font-medium text-text-3`,t?`pl-[38px]`:`pl-[54px]`),children:[(0,X.jsx)(`span`,{className:`h-px w-3 bg-[repeating-linear-gradient(90deg,var(--border)_0_4px,transparent_4px_8px)]`}),ze(e,`unchanged line`),(0,X.jsx)(`span`,{className:T(`h-px flex-1 bg-[repeating-linear-gradient(90deg,var(--border)_0_4px,transparent_4px_8px)]`,t?`mr-2.5`:`mr-3.5`)})]})}var Z=`inline-flex h-6 items-center gap-1 whitespace-nowrap rounded-[5px] px-1.5 text-[11.5px] font-medium text-text-2 hover:bg-surface-hover hover:text-text disabled:pointer-events-none disabled:opacity-45`,Ve=`inline-flex h-7 items-center gap-1.5 whitespace-nowrap rounded-[7px] border pl-2.5 text-[12.5px] font-medium transition-colors disabled:pointer-events-none disabled:opacity-45`,He=(0,W.memo)(function({name:e,oldPath:t,block:n,index:i,total:a,focused:o,pick:c,compact:u,lang:d,busy:m,actions:h}){let g=h.current,_=je(n),v=(0,X.jsx)(I,{added:n.added,removed:n.removed}),y=n.state===`staged`,b=n.state===`discarded`,S=!!c&&o&&n.state===`open`,C=S?Me(n):[],w;return w=b?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(`span`,{className:`inline-flex items-center gap-[5px] font-semibold text-error`,children:[(0,X.jsx)(s,{className:`size-3.5`}),`Discarded`]}),(0,X.jsx)(`span`,{children:_}),(0,X.jsx)(`span`,{className:`flex-1`}),!u&&n.recordId&&(0,X.jsxs)(`button`,{type:`button`,className:Z,disabled:m,onClick:()=>g.undoDiscard(n.recordId),children:[(0,X.jsx)(p,{className:`size-3.5`}),`Undo`]})]}):y?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(`span`,{className:`inline-flex items-center gap-[5px] font-semibold text-primary`,children:[(0,X.jsx)(l,{className:`size-3.5`}),`Staged`]}),(0,X.jsx)(`span`,{children:_}),v,(0,X.jsx)(`span`,{className:`flex-1`}),!u&&(0,X.jsxs)(`button`,{type:`button`,className:Z,onClick:()=>g.unstage(n.key),children:[(0,X.jsx)(p,{className:`size-3.5`}),`Unstage`]})]}):S?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`b`,{className:`font-semibold text-text-2`,children:`Pick lines`}),(0,X.jsxs)(`span`,{children:[c.size,` of `,C.length,` selected`]}),(0,X.jsx)(`span`,{className:`flex-1`}),(0,X.jsx)(`button`,{type:`button`,className:Z,onClick:()=>g.setPick(C),children:`All`}),(0,X.jsx)(`button`,{type:`button`,className:Z,onClick:()=>g.setPick([]),children:`None`}),(0,X.jsxs)(`button`,{type:`button`,className:T(Ve,`border-border bg-bg pr-1.5 text-text hover:border-text/30`),onClick:()=>g.setPick(null),children:[`Cancel`,(0,X.jsx)(U,{children:`Esc`})]}),(0,X.jsxs)(`button`,{type:`button`,className:T(Ve,`border-transparent bg-primary pr-1.5 text-primary-foreground hover:bg-primary/90`),disabled:!c.size,onClick:g.stagePicked,children:[m?(0,X.jsx)(x,{className:`size-3.5 animate-spin`}):(0,X.jsx)(r,{className:`size-3.5`}),`Stage `,ze(c.size,`line`),(0,X.jsx)(U,{className:`border-white/30 bg-white/15 text-inherit`,children:`Y`})]})]}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(`span`,{children:[(0,X.jsxs)(`b`,{className:`font-semibold text-text-2`,children:[`Block `,i+1]}),` of `,a]}),(0,X.jsx)(`span`,{children:_}),v,(0,X.jsx)(`span`,{className:`flex-1`}),!u&&(0,X.jsxs)(X.Fragment,{children:[n.hunk&&n.parts&&(0,X.jsxs)(`button`,{type:`button`,className:Z,title:`Stage single lines (L)`,onClick:()=>g.startPick(n.key),children:[(0,X.jsx)(f,{className:`size-3.5`}),`Lines…`]}),(0,X.jsxs)(`button`,{type:`button`,title:`Discard this block (N)`,className:T(Ve,o?`pr-1.5`:`pr-2.5`,`border-border bg-bg text-text hover:border-error/50 hover:text-error`),onClick:()=>g.discard(n.key),children:[(0,X.jsx)(s,{className:`size-3.5`}),`Discard`,o&&(0,X.jsx)(U,{children:`N`})]}),(0,X.jsxs)(`button`,{type:`button`,title:`Stage this block (Y)`,className:T(Ve,o?`pr-1.5`:`pr-2.5`,`border-transparent bg-primary text-primary-foreground hover:bg-primary/90`),onClick:()=>g.stage(n.key),children:[(0,X.jsx)(r,{className:`size-3.5`}),`Stage`,o&&(0,X.jsx)(U,{className:`border-white/30 bg-white/15 text-inherit`,children:`Y`})]})]})]}),(0,X.jsxs)(`div`,{"data-block-key":n.key,"data-state":n.state,"data-focused":o||void 0,onClick:e=>{!o&&!e.target.closest(`button`)&&g.focus(n.key)},className:T(`relative rounded-lg border bg-bg`,u?`mx-2 my-1.5`:`mr-3 ml-2 my-1.5`,y?`border-dashed border-primary/45`:b?`border-dashed border-border-soft`:`border-border-soft`,o?`border-primary/60 shadow-[0_0_0_3px_var(--accent-wash)]`:!u&&`cursor-pointer`),children:[(0,X.jsx)(`div`,{className:T(`relative flex flex-wrap items-center gap-x-2 gap-y-1.5 rounded-t-[7px] py-1 pr-1.5 pl-3 font-sans text-xs leading-[1.3] text-text-3`,y||b?`min-h-8`:`min-h-[38px] border-b border-border-soft`,!y&&!b&&(o?`bg-[color-mix(in_srgb,var(--accent)_7%,var(--panel))]`:`bg-panel`)),children:w}),(0,X.jsx)(`div`,{className:T(`overflow-hidden rounded-b-[7px] py-0.5`,y&&`shadow-[inset_2px_0_0_var(--accent)]`,b&&`shadow-[inset_2px_0_0_color-mix(in_srgb,var(--error)_60%,transparent)]`),children:(0,X.jsx)(Ue,{name:e,oldPath:t,block:n,compact:u,lang:d,pick:S?c:null,onToggle:g.togglePickLine})})]})});function Ue({name:e,oldPath:t,block:n,compact:r,lang:i,pick:a,onToggle:o}){if(n.whole)return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(We,{name:e,oldPath:t,block:n}),n.parts?.map((e,t)=>(0,X.jsx)(`div`,{className:T(t>0&&`mt-1 border-t border-dashed border-border-soft pt-1`),children:(0,X.jsx)(Ge,{part:e,state:n.state,compact:r,lang:i,pick:null,onToggle:o})},t))]});let s=n.parts?.[0];return s?(0,X.jsx)(Ge,{part:s,state:n.state,compact:r,lang:i,pick:a,onToggle:o}):(0,X.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2.5 font-sans text-xs text-text-3`,children:[(0,X.jsx)(x,{className:`size-3.5 animate-spin`}),`Loading the lines…`]})}function We({name:e,oldPath:t,block:n}){let r=(0,X.jsx)(`b`,{className:`font-semibold text-text`,children:e}),i=n.removed?`all ${ze(n.removed,`line`)}`:`an empty file`,a;if(n.state===`discarded`)a=n.whole===`deleted`?(0,X.jsxs)(X.Fragment,{children:[r,` is back. Undo deletes it again.`]}):(0,X.jsxs)(X.Fragment,{children:[`The changes to `,r,` are discarded. Undo puts them back.`]});else switch(n.whole){case`deleted`:a=n.state===`staged`?(0,X.jsxs)(X.Fragment,{children:[r,` is deleted — `,i,`. The next commit deletes it.`]}):(0,X.jsxs)(X.Fragment,{children:[r,` is deleted — `,i,`. Stage it to delete the file in the next commit, or discard to bring it back.`]});break;case`binary`:a=(0,X.jsxs)(X.Fragment,{children:[r,` is a binary file: git cannot show it as lines, so it is staged or discarded whole.`]});break;case`large`:a=(0,X.jsxs)(X.Fragment,{children:[r,` is too big to split into blocks, so it is staged or discarded whole.`]});break;case`rename`:a=(0,X.jsxs)(X.Fragment,{children:[`Renamed from `,(0,X.jsx)(`b`,{className:`font-semibold text-text`,children:t??`another path`}),`. git takes a rename as one change`,n.parts?.length?`, edits included`:``,`.`]});break;case`submodule`:a=(0,X.jsxs)(X.Fragment,{children:[r,` is a submodule: what changed is the commit it points to.`]});break;case`mode`:a=(0,X.jsxs)(X.Fragment,{children:[`Only the file mode of `,r,` changed.`]});break;case`type`:a=(0,X.jsxs)(X.Fragment,{children:[r,` changed kind — a file became a link, or the other way round.`]});break;case`unread`:a=(0,X.jsxs)(X.Fragment,{children:[r,` was not read: a new folder, or past the number of new files PPM lists.`]});break;default:a=(0,X.jsxs)(X.Fragment,{children:[r,` is an empty file.`]})}let o=n.whole===`deleted`||n.state===`discarded`?s:null;return(0,X.jsxs)(`div`,{className:`flex items-center gap-3 px-3.5 py-3 font-sans text-[13px] leading-normal text-text-2`,children:[o&&(0,X.jsx)(o,{className:T(`size-5 shrink-0`,n.state===`discarded`?`text-text-3`:`text-error`)}),(0,X.jsx)(`span`,{children:a})]})}function Ge({part:e,state:t,compact:n,lang:r,pick:i,onToggle:a}){let o=(0,W.useMemo)(()=>Ae(e),[e]),[s,c]=V([(0,W.useMemo)(()=>o.filter(e=>e.kind!==`+`).map(e=>e.text).join(`
|
|
2
|
+
`),[o]),(0,W.useMemo)(()=>o.filter(e=>e.kind!==`-`).map(e=>e.text).join(`
|
|
3
|
+
`),[o])],r),l=(0,W.useMemo)(()=>le(o.map(e=>({k:e.kind,text:e.text,o:e.old,n:e.new}))),[o]),u=(0,W.useMemo)(()=>{let e=0,t=0,n=[];return o.forEach((r,i)=>{let a=r.kind===`+`?void 0:s?.[e],o=r.kind===`-`?void 0:c?.[t];r.kind!==`+`&&e++,r.kind!==`-`&&t++,n.push({row:r,tokens:r.kind===`-`?a:o,i})}),n},[o,s,c]),d=n?`grid-cols-[30px_30px_16px_minmax(0,1fr)]`:`grid-cols-[44px_44px_22px_minmax(0,1fr)]`,f=t===`discarded`,p=t===`staged`?{add:`bg-diff-added/60`,del:`bg-diff-removed/60`}:{add:`bg-diff-added`,del:`bg-diff-removed`};return(0,X.jsx)(X.Fragment,{children:u.map(({row:e,tokens:t,i:r})=>{let o=e.kind!==` `,s=!!i&&o&&i.has(e.at),c=!!i&&o&&!s,u=e.kind===`+`&&!c,m=e.kind===`-`&&!c,h=T(`select-none text-right text-[0.92em] text-text-3`,n?`pr-[5px]`:`pr-2`);return(0,X.jsxs)(`div`,{className:T(`grid`,d,u&&p.add,m&&p.del,i&&o&&`cursor-pointer`),onClick:i&&o?()=>a(e.at):void 0,role:i&&o?`checkbox`:void 0,"aria-checked":i&&o?s:void 0,children:[(0,X.jsx)(`span`,{className:h,children:e.old??``}),(0,X.jsx)(`span`,{className:h,children:e.new??``}),(0,X.jsx)(`span`,{className:T(`grid h-[1lh] select-none place-items-center self-start`,e.kind===`+`?`text-success`:e.kind===`-`?`text-error`:`text-text-3`),children:i&&o?(0,X.jsx)(L,{state:s?`all`:`none`,className:`size-3.5 md:size-3.5 rounded-[3.5px] md:rounded-[3.5px]`}):e.kind===`+`?`+`:e.kind===`-`?`−`:``}),(0,X.jsx)(`span`,{className:T(`min-w-0 whitespace-pre-wrap [overflow-wrap:anywhere]`,n?`pr-2.5`:`pr-3.5`,c&&`opacity-55`,f&&`opacity-70`),children:(0,X.jsx)(H,{text:e.text,tokens:t,span:l?.[r]??null,spanClass:T(`rounded-[2px]`,e.kind===`+`?`bg-diff-added-word`:`bg-diff-removed-word`)})})]},r)})})}var Q=(e,t)=>`${e} ${e===1?t:`${t}s`}`,Ke=6;function qe({blocks:e}){let t=e.filter(e=>e.state===`staged`).length;return(0,X.jsxs)(`span`,{className:`inline-flex items-center gap-[3px]`,title:`${t} of ${Q(e.filter(e=>e.state!==`discarded`).length,`block`)} staged`,children:[e.slice(0,Ke).map(e=>(0,X.jsx)(`i`,{className:T(`relative size-[7px] rounded-full border-[1.5px]`,e.state===`staged`?`border-primary bg-primary`:e.state===`discarded`?`border-error/70`:`border-text-3/85`,e.state===`discarded`&&`after:absolute after:top-[1.5px] after:-right-px after:-left-px after:h-[1.5px] after:-rotate-45 after:bg-error/80`)},e.key)),e.length>Ke&&(0,X.jsxs)(`span`,{className:`font-mono text-[10px] leading-none text-text-3`,children:[`+`,e.length-Ke]})]})}var Je=40;function Ye({reviews:e}){let t=be(e).flatMap(e=>e.blocks);if(!t.length)return null;if(t.length>Je){let e=t.filter(e=>e.state===`staged`).length,n=t.filter(e=>e.state===`discarded`).length;return(0,X.jsxs)(`span`,{"aria-hidden":!0,className:`flex h-1.5 w-40 overflow-hidden rounded-[3px] bg-text/13`,children:[(0,X.jsx)(`i`,{className:`bg-primary`,style:{width:`${e/t.length*100}%`}}),(0,X.jsx)(`i`,{className:`bg-error/60`,style:{width:`${n/t.length*100}%`}})]})}return(0,X.jsx)(`span`,{"aria-hidden":!0,className:`inline-flex flex-wrap gap-0.5`,children:t.map((e,t)=>(0,X.jsx)(`i`,{className:T(`h-1.5 w-2.5 rounded-[3px]`,e.state===`staged`?`bg-primary`:e.state===`discarded`?`bg-error/60`:`bg-text/13`)},t))})}var Xe={changes:`Changes`,staged:`Staged`,discarded:`Discarded`};function Ze({review:e,current:t,mobile:n,onPick:r}){let[i,a]=P(e.path),o=ve(e),s=e.file?.x===`D`||e.file?.y===`D`;return(0,X.jsxs)(`button`,{type:`button`,title:e.path,"aria-current":t?`true`:void 0,"data-testid":`git-review-file`,onClick:()=>r(e.path),className:T(`grid w-full items-center text-left text-text transition-colors hover:bg-surface-hover`,n?`min-h-14 grid-cols-[18px_minmax(0,1fr)_auto] gap-3 px-4 py-1.5`:`min-h-[42px] grid-cols-[16px_minmax(0,1fr)_auto] gap-[9px] px-3 py-1`,t&&`bg-accent-wash shadow-[inset_2px_0_0_var(--accent)] hover:bg-accent-wash`),children:[(0,X.jsx)(A,{name:a,className:n?`size-[18px]`:`size-4`}),(0,X.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[(0,X.jsx)(`span`,{className:T(`flex min-w-0`,n?`text-sm leading-[19px]`:`text-[13px] leading-[17px]`,o===`changes`?`font-medium`:`text-text-2`,s&&`line-through`),children:(0,X.jsx)(M,{children:a})}),i&&(0,X.jsx)(`span`,{className:T(`flex min-w-0 text-text-3`,n?`text-xs leading-4`:`text-[11px] leading-[15px]`),children:(0,X.jsx)(M,{children:i})})]}),(0,X.jsxs)(`span`,{className:`flex flex-col items-end gap-1`,children:[(0,X.jsx)(qe,{blocks:e.blocks}),o===`staged`?(0,X.jsx)(`span`,{className:`whitespace-nowrap text-[10.5px] font-semibold text-primary`,children:`Staged`}):o===`discarded`?(0,X.jsx)(`span`,{className:`whitespace-nowrap text-[10.5px] font-semibold text-error`,children:`Discarded`}):(0,X.jsxs)(`small`,{className:`font-mono text-[10.5px] font-medium leading-none text-text-3`,children:[e.open,` left`]})]})]})}function Qe({reviews:e,conflicts:t,current:n,mobile:r,onPick:i,onResolve:a}){let o=T(`flex items-center gap-1.5 text-[10.5px] font-semibold uppercase tracking-[.07em] text-text-3`,r?`h-10 px-4`:`h-8 px-3`),s=[`changes`,`staged`,`discarded`].map(t=>[t,e.filter(e=>ve(e)===t)]);return(0,X.jsxs)(X.Fragment,{children:[t.length>0&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(`div`,{className:T(o,`text-error`),children:[(0,X.jsx)(y,{className:`size-3.5`}),`Conflicts`,(0,X.jsx)(B,{count:t.length})]}),t.map(e=>{let[t,n]=P(e.path);return(0,X.jsxs)(`button`,{type:`button`,title:`Resolve ${e.path}`,onClick:()=>a(e),className:T(`grid w-full items-center text-left hover:bg-surface-hover`,r?`min-h-14 grid-cols-[18px_minmax(0,1fr)_auto] gap-3 px-4`:`min-h-[42px] grid-cols-[16px_minmax(0,1fr)_auto] gap-[9px] px-3`),children:[(0,X.jsx)(A,{name:n,className:r?`size-[18px]`:`size-4`}),(0,X.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[(0,X.jsx)(`span`,{className:T(`flex min-w-0 font-medium`,r?`text-sm`:`text-[13px]`),children:(0,X.jsx)(M,{children:n})}),t&&(0,X.jsx)(`span`,{className:T(`flex min-w-0 text-text-3`,r?`text-xs`:`text-[11px]`),children:(0,X.jsx)(M,{children:t})})]}),(0,X.jsx)(`span`,{className:`text-xs font-medium text-primary`,children:`Resolve`})]},e.path)})]}),s.map(([e,t])=>t.length>0&&(0,X.jsxs)(`div`,{children:[(0,X.jsxs)(`div`,{className:o,children:[Xe[e],(0,X.jsx)(B,{count:t.length})]}),t.map(e=>(0,X.jsx)(Ze,{review:e,current:e.path===n,mobile:r,onPick:i},e.path))]},e))]})}function $e({toast:e,mobile:t,onClose:n}){return(0,X.jsxs)(`div`,{role:`status`,"data-testid":`git-review-toast`,className:T(`absolute z-30 flex items-center border border-border bg-panel-2 shadow-[var(--shadow-float)]`,t?`inset-x-3 bottom-3 gap-2 rounded-xl py-1 pr-1 pl-3.5 text-[13.5px]`:`bottom-3 left-1/2 max-w-[calc(100%-24px)] -translate-x-1/2 gap-3 rounded-[10px] py-[5px] pr-[5px] pl-3.5 text-[12.5px]`),children:[(0,X.jsx)(l,{className:`size-4 shrink-0 text-primary`}),(0,X.jsx)(`span`,{className:T(`min-w-0`,t?`flex-1`:`truncate whitespace-nowrap`),children:e.text}),e.undo&&(0,X.jsxs)(k,{variant:`ghost`,size:t?`sm`:`xs`,className:T(`text-primary hover:text-primary`,t&&`h-11`),onClick:()=>{n(),e.undo?.()},children:[(0,X.jsx)(p,{}),`Undo`]}),(0,X.jsx)(`button`,{type:`button`,"aria-label":`Dismiss`,onClick:n,className:T(`grid shrink-0 place-items-center rounded-md text-text-3 hover:bg-surface-hover hover:text-text`,t?`size-11`:`size-6`),children:(0,X.jsx)(_,{className:`size-3.5`})})]})}function et({conflicts:e,onGraph:t}){return(0,X.jsx)(`div`,{className:`grid flex-1 place-items-center p-8 text-center`,children:(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`div`,{className:`mx-auto mb-3.5 grid size-[52px] place-items-center rounded-full bg-accent-wash text-primary`,children:(0,X.jsx)(l,{className:`size-5`})}),(0,X.jsx)(`h4`,{className:`m-0 mb-1.5 text-[15px] font-semibold`,children:e?`${Q(e,`conflict`)} to resolve`:`Nothing left to review`}),(0,X.jsx)(`p`,{className:`mx-auto mb-4 max-w-[40ch] text-[13px] text-text-2`,children:e?`A conflicted file has no blocks to review until it is resolved: open it from the list.`:`The working tree matches the last commit. What you commit here shows up at the top of the Git Graph.`}),(0,X.jsxs)(k,{variant:`outline`,size:`sm`,className:`max-md:h-11`,onClick:t,children:[(0,X.jsx)(m,{}),`Open Git Graph`]})]})})}var tt=`inline-grid size-7 shrink-0 place-items-center rounded-md text-text-3 hover:bg-surface-hover hover:text-text aria-pressed:bg-surface-hover aria-pressed:text-text`,nt=typeof navigator<`u`&&/Mac|iPhone|iPad/.test(navigator.userAgent);function rt({view:e}){let{review:t}=e,{focused:n,totals:a}=t,o=(0,W.useRef)(null),[s,c]=(0,W.useState)(!1),[l,u]=(0,W.useState)(!1),[f,p]=(0,W.useState)(null),m=it(e);(0,W.useEffect)(()=>{let e=document.activeElement;(!e||e===document.body||e.getClientRects().length===0)&&o.current?.focus({preventScroll:!0})},[t.focus?.path,t.focus?.key]);let h=e=>{if(e.ctrlKey||e.metaKey||e.altKey||e.defaultPrevented||!o.current?.contains(e.target)||e.target.closest(`input, textarea, select, [contenteditable='true']`))return;let r=e.key.toLowerCase(),i=n?.block,a=i?.state===`open`;if(r===`j`||r===`k`)t.step(r===`j`?1:-1);else if(r===`y`&&a)t.pick?t.stagePicked():t.stage(n.review.path,i.key);else if(r===`n`&&a&&!t.pick)t.discard(n.review.path,i.key);else if(r===`l`&&a&&i.hunk)t.pick?t.setPick(null):t.startPick();else if(r===`escape`&&(t.pick||l))t.setPick(null),u(!1);else return;e.preventDefault()},g=e=>{t.focusFile(e),u(!1)},_=t.changes?.operation??null,v=(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto overflow-x-hidden pb-1`,children:(0,X.jsx)(Qe,{reviews:t.reviews,conflicts:t.conflicts,current:n?.review.path??null,mobile:!1,onPick:g,onResolve:e.resolve})}),t.changes&&a.files>0&&!_&&(0,X.jsx)(ae,{projectName:e.projectName,branch:e.branch,totals:t.commitTotals,lastCommit:t.changes.lastCommit,busy:t.busy,onCommit:t.commit,onUndoCommit:t.undoCommit,className:`shrink-0 border-t border-border-soft bg-panel`})]}),y=a.blocks-a.staged;return!t.reviews.length&&!t.conflicts.length?(0,X.jsxs)(`div`,{"data-testid":`git-review`,className:`relative flex h-full flex-col overflow-hidden bg-bg`,children:[t.error&&(0,X.jsx)(`div`,{className:`shrink-0 bg-destructive/10 px-3 py-1.5 text-xs text-destructive`,children:t.error}),(0,X.jsx)(et,{conflicts:0,onGraph:e.openGraph}),t.toast&&(0,X.jsx)($e,{toast:t.toast,mobile:!1,onClose:t.dismissToast})]}):(0,X.jsxs)(`div`,{ref:o,tabIndex:0,onKeyDown:h,"data-testid":`git-review`,className:`@container flex h-full flex-col overflow-hidden bg-bg outline-none`,children:[(0,X.jsxs)(`div`,{className:`relative flex shrink-0 flex-wrap items-center gap-x-[18px] gap-y-2 border-b border-border-soft bg-panel py-2.5 pr-3 pl-4`,children:[(0,X.jsxs)(`div`,{className:`min-w-0`,children:[(0,X.jsx)(`h3`,{className:`m-0 text-sm font-semibold leading-5`,children:`Review changes`}),(0,X.jsxs)(`p`,{className:`m-0 flex min-w-0 items-center gap-1.5 whitespace-nowrap text-xs text-text-3`,children:[(0,X.jsx)(d,{className:`size-3 shrink-0`}),(0,X.jsx)(`b`,{className:`truncate font-medium text-text-2`,children:e.branch??`detached HEAD`}),(0,X.jsxs)(`span`,{children:[`· `,Q(a.files,`file`)]}),(0,X.jsx)(I,{added:a.added,removed:a.removed})]})]}),a.blocks+a.discarded>0&&(0,X.jsxs)(`div`,{className:`flex items-center gap-2.5 whitespace-nowrap text-[12.5px] text-text-2`,children:[(0,X.jsx)(Ye,{reviews:t.reviews}),(0,X.jsxs)(`span`,{children:[(0,X.jsxs)(`b`,{className:`font-semibold text-text`,children:[a.staged,` of `,a.blocks]}),` blocks staged`]}),(0,X.jsx)(`span`,{className:`text-text-3`,children:y?`· ${y} to decide`:`· all decided`})]}),(0,X.jsx)(`span`,{className:`flex-1`}),(0,X.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,X.jsxs)(k,{variant:`ghost`,size:`sm`,className:`text-text-2 @min-[760px]:hidden`,"aria-expanded":l,onClick:()=>u(!l),children:[(0,X.jsx)(i,{}),Q(t.reviews.length+t.conflicts.length,`file`)]}),(0,X.jsxs)(k,{variant:`outline`,size:`sm`,disabled:!y,onClick:t.stageAll,children:[(0,X.jsx)(r,{}),`Stage all`]}),(0,X.jsx)(`button`,{type:`button`,className:tt,"aria-pressed":s,title:`Keyboard shortcuts`,"aria-label":`Keyboard shortcuts`,onClick:()=>c(!s),children:(0,X.jsx)(b,{className:`size-4`})})]})]}),s&&(0,X.jsxs)(`div`,{className:`flex shrink-0 flex-wrap gap-x-3 gap-y-1 border-b border-border-soft bg-panel px-4 py-2 text-[11.5px] text-text-3`,children:[(0,X.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,X.jsx)(U,{children:`J`}),(0,X.jsx)(U,{children:`K`}),`next / previous block`]}),(0,X.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,X.jsx)(U,{children:`Y`}),`stage`]}),(0,X.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,X.jsx)(U,{children:`N`}),`discard`]}),(0,X.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,X.jsx)(U,{children:`L`}),`pick lines`]}),(0,X.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,X.jsx)(U,{children:nt?`⌘`:`Ctrl`}),(0,X.jsx)(U,{children:`↵`}),`commit`]})]}),t.error&&(0,X.jsx)(`div`,{className:`shrink-0 bg-destructive/10 px-3 py-1.5 text-xs text-destructive`,children:t.error}),(0,X.jsxs)(`div`,{className:`relative grid min-h-0 flex-1 grid-cols-[minmax(0,1fr)] @min-[760px]:grid-cols-[272px_minmax(0,1fr)]`,children:[(0,X.jsx)(`aside`,{"aria-label":`Changed files`,className:`hidden min-h-0 flex-col border-r border-border-soft bg-panel @min-[760px]:flex`,children:v}),l&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`div`,{className:`absolute inset-0 z-20 bg-black/30 @min-[760px]:hidden`,onClick:()=>u(!1)}),(0,X.jsx)(`aside`,{"aria-label":`Changed files`,className:`absolute inset-y-0 left-0 z-30 flex w-[min(288px,85%)] flex-col border-r border-border bg-panel shadow-[var(--shadow-float)] @min-[760px]:hidden`,children:v})]}),(0,X.jsx)(`section`,{"aria-label":`Changes`,className:`relative flex min-h-0 min-w-0 flex-col`,children:n?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(at,{view:e}),(0,X.jsxs)(`div`,{className:`relative flex min-h-0 flex-1 flex-col`,children:[(0,X.jsx)(ot,{view:e,actions:m}),t.toast&&(0,X.jsx)($e,{toast:t.toast,mobile:!1,onClose:t.dismissToast})]}),(0,X.jsx)(st,{view:e,onDiscardFile:p})]}):(0,X.jsxs)(`div`,{className:`relative flex min-h-0 flex-1 flex-col`,children:[(0,X.jsx)(et,{conflicts:t.conflicts.length,onGraph:e.openGraph}),t.toast&&(0,X.jsx)($e,{toast:t.toast,mobile:!1,onClose:t.dismissToast})]})})]}),(0,X.jsx)(oe,{request:f,onClose:()=>p(null)})]})}function it(e){let{review:t}=e,n=t.focused?.review.path??``,r=(0,W.useRef)(null);return r.current={focus:e=>t.focusBlock(n,e),stage:e=>t.stage(n,e),discard:e=>t.discard(n,e),unstage:e=>t.unstage(n,e),undoDiscard:t.undoDiscard,startPick:t.startPick,togglePickLine:t.togglePickLine,setPick:t.setPick,stagePicked:t.stagePicked},r}function at({view:e}){let{review:t}=e.review.focused,[n,r]=P(t.path),i=t.file,a=i?.x===`D`||i?.y===`D`;return(0,X.jsxs)(`div`,{className:`relative flex min-h-12 shrink-0 flex-wrap items-center gap-x-[9px] gap-y-1.5 border-b border-border-soft py-2 pr-3 pl-4`,children:[(0,X.jsx)(A,{name:r,className:`size-4`}),(0,X.jsx)(`span`,{className:T(`whitespace-nowrap text-sm font-semibold`,a&&`text-text-2 line-through`),children:r}),n&&(0,X.jsx)(`span`,{dir:`rtl`,title:t.path,className:`min-w-10 shrink truncate text-left text-xs text-text-3`,children:(0,X.jsx)(`bdi`,{children:n})}),i&&(0,X.jsx)(z,{letter:F(i)}),(0,X.jsx)(I,{added:t.added,removed:t.removed}),(0,X.jsx)(`span`,{className:`flex-1`}),i&&i.y!==`D`&&(0,X.jsxs)(k,{variant:`ghost`,size:`sm`,className:`text-text-2`,onClick:()=>e.openFile(t.path),children:[(0,X.jsx)(g,{}),`Open file`]})]})}function ot({view:e,actions:t}){let{review:n}=e,r=n.focused,i=(0,W.useRef)(null),[,a]=P(r.review.path),o=ue(r.review.path),s=!!n.busy,c=!!r.block.parts;return(0,W.useLayoutEffect)(()=>{let e=i.current,t=e?.querySelector(`[data-block-key="${CSS.escape(r.block.key)}"]`);if(!e||!t)return;let n=t.offsetTop-28,a=t.offsetTop+Math.min(t.offsetHeight,e.clientHeight-48);(t.offsetTop<e.scrollTop+8||a>e.scrollTop+e.clientHeight)&&(e.scrollTop=Math.max(0,n))},[r.review.path,r.block.key,c]),(0,X.jsx)(`div`,{ref:i,"data-testid":`git-review-code`,className:`relative min-h-0 flex-1 overflow-auto bg-bg pt-2.5 pb-7 font-mono text-[12px] leading-[1.7] [tab-size:4]`,children:n.items.map(e=>e.kind===`gap`?(0,X.jsx)(Be,{lines:e.lines,compact:!1},e.key):(0,X.jsx)(He,{name:a,oldPath:r.review.file?.oldPath,block:e.block,index:e.index,total:e.total,focused:e.block.key===r.block.key,pick:e.block.key===r.block.key?n.pick:null,compact:!1,lang:o,busy:s,actions:t},e.block.key))})}function st({view:e,onDiscardFile:t}){let{review:n}=e,{review:i,index:a}=n.focused,o=i.open,c=n.reviews.length>1,l=e=>{if(!i.file)return;let r=N([i.file]);t({anchor:e,title:r.title,body:r.body,confirmLabel:r.confirm,onConfirm:()=>n.discardFile(i.path)})};return(0,X.jsxs)(`div`,{className:`relative flex shrink-0 flex-wrap items-center gap-x-2.5 gap-y-2 border-t border-border-soft bg-panel px-3 py-2 text-[12.5px] text-text-2`,children:[(0,X.jsxs)(`div`,{className:`inline-flex items-center gap-0.5 rounded-lg bg-text/6 p-0.5`,children:[(0,X.jsx)(`button`,{type:`button`,className:tt,title:`Previous block (K)`,"aria-label":`Previous block`,onClick:()=>n.step(-1),children:(0,X.jsx)(S,{className:`size-3.5`})}),(0,X.jsxs)(`span`,{className:`min-w-[92px] text-center text-xs font-medium text-text-2`,children:[`Block `,a+1,` of `,i.blocks.length]}),(0,X.jsx)(`button`,{type:`button`,className:tt,title:`Next block (J)`,"aria-label":`Next block`,onClick:()=>n.step(1),children:(0,X.jsx)(u,{className:`size-3.5`})})]}),(0,X.jsx)(`span`,{className:`min-w-0 truncate`,children:o?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`b`,{className:`font-semibold text-text`,children:o}),` to decide in this file`]}):`This file is done`}),(0,X.jsx)(`span`,{className:`flex-1`}),(0,X.jsxs)(k,{variant:`ghost`,size:`sm`,className:`text-destructive hover:text-destructive`,disabled:!o||!i.file,onClick:e=>l(e.currentTarget),children:[(0,X.jsx)(s,{}),`Discard file…`]}),(0,X.jsxs)(k,{variant:`outline`,size:`sm`,disabled:!o,onClick:()=>n.stageFile(i.path),children:[(0,X.jsx)(r,{}),`Stage file`]}),(0,X.jsxs)(k,{size:`sm`,disabled:!c,onClick:n.nextFile,children:[`Next file`,(0,X.jsx)(v,{})]})]})}var ct=`inline-grid size-11 shrink-0 place-items-center rounded-[10px] text-text-2 active:bg-surface-hover`,$=`inline-flex h-11 min-w-11 items-center justify-center gap-2 whitespace-nowrap rounded-[10px] border px-3.5 text-sm font-medium active:opacity-80 disabled:opacity-45`;function lt({view:e}){let{review:t}=e,{focused:n,totals:i}=t,[a,l]=(0,W.useState)(null),[u,d]=(0,W.useState)(null),f=it(e),m=()=>l(null),_=i.blocks-i.staged,v=t.changes?.operation??null,y=n?.block,b=n?.review.path??``,x=()=>{let e=n?.review.file;if(!e)return;let r=N([e]);d({anchor:null,title:r.title,body:r.body,confirmLabel:r.confirm,onConfirm:()=>t.discardFile(e.path)})};return(0,X.jsxs)(`div`,{"data-testid":`git-review`,className:`flex h-full flex-col overflow-hidden bg-bg`,children:[(0,X.jsxs)(`div`,{className:`flex h-12 shrink-0 items-center gap-1 border-b border-border-soft bg-panel pr-1 pl-3.5`,children:[(0,X.jsxs)(`h3`,{className:`m-0 min-w-0 flex-1 truncate text-[15px] font-semibold leading-tight`,children:[`Review changes`,(0,X.jsx)(`small`,{className:`block truncate text-[11.5px] font-normal text-text-3`,children:i.blocks?`${i.staged} of ${Q(i.blocks,`block`)} staged`:e.branch??`Nothing to review`})]}),(0,X.jsx)(`button`,{type:`button`,className:ct,"aria-label":`Changed files`,onClick:()=>l(`files`),children:(0,X.jsx)(h,{className:`size-5`})})]}),(0,X.jsx)(`div`,{className:`h-[3px] shrink-0 bg-text/10`,children:(0,X.jsx)(`div`,{className:`h-full bg-primary transition-[width]`,style:{width:i.blocks?`${i.staged/i.blocks*100}%`:0}})}),t.error&&(0,X.jsx)(`div`,{className:`shrink-0 bg-destructive/10 px-3 py-1.5 text-xs text-destructive`,children:t.error}),n&&y?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(dt,{view:e,onActions:()=>l(`actions`)}),(0,X.jsxs)(`div`,{className:`relative flex min-h-0 flex-1 flex-col`,children:[(0,X.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto bg-bg pt-2 pb-3 font-mono text-[11px] leading-[1.65] [tab-size:4]`,children:(0,X.jsx)(He,{name:P(b)[1],oldPath:n.review.file?.oldPath,block:y,index:n.index,total:n.review.blocks.length,focused:y.state===`open`,pick:null,compact:!0,lang:ue(b),busy:!!t.busy,actions:f})}),t.toast&&(0,X.jsx)($e,{toast:t.toast,mobile:!0,onClose:t.dismissToast})]}),(0,X.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-t border-border-soft bg-panel px-2.5 py-2`,children:[(0,X.jsx)(`button`,{type:`button`,className:T($,`border-border bg-panel-2 px-0 text-text`),"aria-label":`Previous block`,onClick:()=>t.step(-1),children:(0,X.jsx)(o,{className:`size-5`})}),y.state===`open`?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(`button`,{type:`button`,className:T($,`flex-1 border-border bg-panel-2 text-text`),onClick:()=>t.discard(b,y.key),children:[(0,X.jsx)(s,{className:`size-5`}),`Discard`]}),(0,X.jsxs)(`button`,{type:`button`,className:T($,`flex-1 border-transparent bg-primary text-primary-foreground`),onClick:()=>t.stage(b,y.key),children:[(0,X.jsx)(r,{className:`size-5`}),`Stage`]})]}):y.state===`staged`?(0,X.jsxs)(`button`,{type:`button`,className:T($,`flex-1 border-border bg-panel-2 text-text`),onClick:()=>t.unstage(b,y.key),children:[(0,X.jsx)(p,{className:`size-5`}),`Unstage`]}):(0,X.jsxs)(`button`,{type:`button`,className:T($,`flex-1 border-border bg-panel-2 text-text`),disabled:!y.recordId||!!t.busy,onClick:()=>y.recordId&&t.undoDiscard(y.recordId),children:[(0,X.jsx)(p,{className:`size-5`}),`Undo discard`]}),(0,X.jsx)(`button`,{type:`button`,className:T($,`border-border bg-panel-2 px-0 text-text`),"aria-label":`Next block`,onClick:()=>t.step(1),children:(0,X.jsx)(c,{className:`size-5`})})]})]}):(0,X.jsxs)(`div`,{className:`relative flex min-h-0 flex-1 flex-col`,children:[(0,X.jsx)(et,{conflicts:t.conflicts.length,onGraph:e.openGraph}),t.toast&&(0,X.jsx)($e,{toast:t.toast,mobile:!0,onClose:t.dismissToast})]}),(0,X.jsxs)(j,{open:a===`files`,onClose:m,className:`flex max-h-[85%] flex-col`,children:[(0,X.jsx)(ut,{title:`Changes · ${e.branch??`detached HEAD`}`,sub:i.blocks?`${i.staged} of ${Q(i.blocks,`block`)} staged · ${_?`${_} to decide`:`all decided`}`:void 0,onClose:m}),(0,X.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:(0,X.jsx)(Qe,{reviews:t.reviews,conflicts:t.conflicts,current:n?.review.path??null,mobile:!0,onPick:e=>{t.focusFile(e),m()},onResolve:t=>{m(),e.resolve(t)}})}),t.changes&&i.files>0&&!v&&(0,X.jsx)(ae,{projectName:e.projectName,branch:e.branch,totals:t.commitTotals,lastCommit:t.changes.lastCommit,busy:t.busy,onCommit:async(e,n)=>{let r=await t.commit(e,n);return r&&m(),r},onUndoCommit:t.undoCommit,className:`shrink-0 border-t border-border-soft`})]}),n&&(0,X.jsxs)(j,{open:a===`actions`,onClose:m,className:`flex max-h-[85%] flex-col`,children:[(0,X.jsx)(ut,{title:P(b)[1],onClose:m}),(0,X.jsxs)(`div`,{className:`border-t border-border-soft py-1`,children:[n.review.file&&n.review.file.y!==`D`&&(0,X.jsx)(ft,{icon:(0,X.jsx)(g,{className:`size-5`}),label:`Open file`,onClick:()=>{m(),e.openFile(b)}}),n.review.open>0&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(ft,{icon:(0,X.jsx)(r,{className:`size-5`}),label:`Stage file`,onClick:()=>{m(),t.stageFile(b)}}),(0,X.jsx)(ft,{icon:(0,X.jsx)(s,{className:`size-5`}),label:`Discard file…`,destructive:!0,onClick:()=>{m(),x()}})]})]})]}),(0,X.jsx)(oe,{request:u,onClose:()=>d(null)})]})}function ut({title:e,sub:t,onClose:n}){return(0,X.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2.5 pt-0.5 pr-1.5 pb-2 pl-4`,children:[(0,X.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,X.jsx)(`h4`,{className:`m-0 min-w-0 truncate text-[15px] font-semibold`,children:e}),t&&(0,X.jsx)(`p`,{className:`m-0 mt-0.5 text-xs text-text-3`,children:t})]}),(0,X.jsx)(`button`,{type:`button`,className:ct,"aria-label":`Close`,onClick:n,children:(0,X.jsx)(_,{className:`size-5`})})]})}function dt({view:e,onActions:t}){let{review:n,index:r}=e.review.focused,[i,o]=P(n.path),s=n.file?.x===`D`||n.file?.y===`D`;return(0,X.jsxs)(`div`,{className:`flex min-h-[52px] shrink-0 items-center gap-2 border-b border-border-soft bg-panel py-1 pr-1 pl-3.5`,children:[(0,X.jsx)(A,{name:o,className:`size-4`}),(0,X.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,X.jsx)(`b`,{className:T(`truncate text-sm font-semibold`,s&&`text-text-2 line-through`),children:o}),(0,X.jsx)(`small`,{className:`truncate text-[11.5px] text-text-3`,children:[`Block ${r+1} of ${n.blocks.length}`,i].filter(Boolean).join(` · `)})]}),n.file&&(0,X.jsx)(z,{letter:F(n.file)}),(0,X.jsx)(`button`,{type:`button`,className:ct,"aria-label":`File actions`,onClick:t,children:(0,X.jsx)(a,{className:`size-5`})})]})}function ft({icon:e,label:t,destructive:n,onClick:r}){return(0,X.jsxs)(`button`,{type:`button`,onClick:r,className:T(`flex min-h-12 w-full items-center gap-3 px-4 text-left text-sm active:bg-surface-hover`,n?`text-error`:`text-text`),children:[e,t]})}function pt({metadata:e,tabId:t}){let n=e?.projectName,r=e?.select,i=O(),a=se(n),o=Re(n,r?.repo&&r.repo!==a.repo?.path?void 0:r),s=a.choose;(0,W.useEffect)(()=>{if(!r?.repo||!t)return;s(r.repo);let{repo:e,...n}=r;te(t,{select:n})},[r,t,s]);let c=o.changes?.branch.head??null,l=R(e=>e.contributions?.commands?.some(e=>e.command===`git-graph.view`)??!1);(0,W.useEffect)(()=>{if(!t||!o.changes)return;let e=`Changes · ${c??`detached HEAD`}`,n=ee.getState().getPanelForTab(t)?.tabs.find(e=>e.id===t);n&&n.title!==e&&D.getState().updateTab(t,{title:e})},[t,c,o.changes]);let{projectFile:u}=a,d=a.repo?.path,f=(0,W.useCallback)((e,t)=>{n&&D.getState().openTab({type:e,title:e===`editor`?E(t):`Conflict: ${E(t)}`,closable:!0,metadata:{projectName:n,filePath:u(t)},projectId:n})},[n,u]),p=(0,W.useCallback)(()=>{l?window.dispatchEvent(new CustomEvent(`ext:command:execute`,{detail:{command:`git-graph.view`,args:d?[d]:[]}})):n&&D.getState().openTab({type:`git-log`,title:`Git Log`,projectId:n,closable:!0,metadata:{projectName:n}})},[l,d,n]);if(!n)return(0,X.jsx)(`div`,{className:`flex h-full items-center justify-center text-sm text-text-3`,children:`No project selected.`});if(a.needsPick||a.noRepo)return(0,X.jsx)(`div`,{className:`flex h-full items-center justify-center px-6 text-center text-sm text-text-3`,children:a.noRepo?`This project is not a git repository.`:`Choose a repository in Source Control first.`});if(!o.changes)return o.error?(0,X.jsx)(`div`,{className:`flex h-full flex-col items-center justify-center gap-2 px-4 text-center text-sm text-destructive`,children:(0,X.jsx)(`p`,{children:o.error})}):(0,X.jsxs)(`div`,{className:`flex h-full items-center justify-center gap-2 text-text-3`,children:[(0,X.jsx)(x,{className:`size-5 animate-spin`}),(0,X.jsx)(`span`,{className:`text-sm`,children:`Reading the changes…`})]});let m={review:o,projectName:n,branch:c,openFile:e=>f(`editor`,e),openGraph:p,resolve:e=>f(`conflict-editor`,e.path)};return i?(0,X.jsx)(lt,{view:m}):(0,X.jsx)(rt,{view:m})}export{pt as GitReviewTab};
|
|
Binary file
|
|
Binary file
|