@hienlh/ppm 0.23.13 → 0.23.15
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 +58 -0
- package/CLAUDE.md +19 -4
- package/THIRD-PARTY-NOTICES.md +1 -1
- package/assets/skills/ppm/SKILL.md +3 -2
- package/assets/skills/ppm/references/cli-reference.md +4 -4
- package/assets/skills/ppm/references/common-tasks.md +6 -0
- package/assets/skills/ppm/references/http-api.md +13 -1
- package/bun.lock +15 -0
- package/dist/web/assets/accounts-settings-section-B5YXy0vd.js +1 -0
- package/dist/web/assets/accounts-settings-section-B5YXy0vd.js.br +0 -0
- package/dist/web/assets/accounts-settings-section-B5YXy0vd.js.gz +0 -0
- package/dist/web/assets/adaptive-context-menu-C4jNSORA.js +1 -0
- package/dist/web/assets/adaptive-context-menu-C4jNSORA.js.br +0 -0
- package/dist/web/assets/adaptive-context-menu-C4jNSORA.js.gz +0 -0
- package/dist/web/assets/agent-session-sheet-Bj42PwCK.js +2 -0
- package/dist/web/assets/agent-session-sheet-Bj42PwCK.js.br +0 -0
- package/dist/web/assets/agent-session-sheet-Bj42PwCK.js.gz +0 -0
- package/dist/web/assets/agent-session-sheet-store-BAfLnsLX.js +1 -0
- package/dist/web/assets/agent-session-window-content-LqL6fVPU.js +1 -0
- package/dist/web/assets/agent-session-window-content-LqL6fVPU.js.br +0 -0
- package/dist/web/assets/agent-session-window-content-LqL6fVPU.js.gz +0 -0
- package/dist/web/assets/ai-resource-editor-jVv2nvAG.js +1 -0
- package/dist/web/assets/ai-resource-editor-jVv2nvAG.js.br +0 -0
- package/dist/web/assets/ai-resource-editor-jVv2nvAG.js.gz +0 -0
- package/dist/web/assets/ai-settings-section-C9Q-v8fY.js +1 -0
- package/dist/web/assets/ai-settings-section-C9Q-v8fY.js.br +0 -0
- package/dist/web/assets/ai-settings-section-C9Q-v8fY.js.gz +0 -0
- package/dist/web/assets/ai-settings-section-CN5BR1ZZ.js +1 -0
- package/dist/web/assets/android-tab-CwqiuEZP.js +2 -0
- package/dist/web/assets/android-tab-CwqiuEZP.js.br +0 -0
- package/dist/web/assets/android-tab-CwqiuEZP.js.gz +0 -0
- package/dist/web/assets/api-client-xQDlhUTu.js +1 -0
- package/dist/web/assets/api-client-xQDlhUTu.js.br +0 -0
- package/dist/web/assets/api-client-xQDlhUTu.js.gz +0 -0
- package/dist/web/assets/api-client-xR05zj6r.js +1 -0
- package/dist/web/assets/api-settings-VAi0LpIJ.js +1 -0
- package/dist/web/assets/api-settings-vmIRFNwZ.js +1 -0
- package/dist/web/assets/api-settings-vmIRFNwZ.js.br +0 -0
- package/dist/web/assets/api-settings-vmIRFNwZ.js.gz +0 -0
- package/dist/web/assets/api-themes-CaXofG7d.js +1 -0
- package/dist/web/assets/appearance-settings-section-D0JIfiRx.js +1 -0
- package/dist/web/assets/appearance-settings-section-D0JIfiRx.js.br +0 -0
- package/dist/web/assets/appearance-settings-section-D0JIfiRx.js.gz +0 -0
- package/dist/web/assets/apps-panel-Cz_KJ37M.js +1 -0
- package/dist/web/assets/apps-panel-Cz_KJ37M.js.br +0 -0
- package/dist/web/assets/apps-panel-Cz_KJ37M.js.gz +0 -0
- package/dist/web/assets/audio-preview-Dq7qZ_6i.js +1 -0
- package/dist/web/assets/audio-preview-Dq7qZ_6i.js.br +0 -0
- package/dist/web/assets/audio-preview-Dq7qZ_6i.js.gz +0 -0
- package/dist/web/assets/branch-review-tab-C3QNpsm7.js +1 -0
- package/dist/web/assets/branch-review-tab-C3QNpsm7.js.br +0 -0
- package/dist/web/assets/branch-review-tab-C3QNpsm7.js.gz +0 -0
- package/dist/web/assets/button-C9ZXWb3b.js +1 -0
- package/dist/web/assets/button-C9ZXWb3b.js.br +0 -0
- package/dist/web/assets/button-C9ZXWb3b.js.gz +0 -0
- package/dist/web/assets/chat-preparation-cache-190LLyy7.js +1 -0
- package/dist/web/assets/chat-preparation-cache-190LLyy7.js.br +0 -0
- package/dist/web/assets/chat-preparation-cache-190LLyy7.js.gz +0 -0
- package/dist/web/assets/chat-tab-D14CUl0J.js +1 -0
- package/dist/web/assets/chat-tab-D14CUl0J.js.br +0 -0
- package/dist/web/assets/chat-tab-D14CUl0J.js.gz +0 -0
- package/dist/web/assets/chat-tab-D8iAVZKV.js +16 -0
- package/dist/web/assets/chat-tab-D8iAVZKV.js.br +0 -0
- package/dist/web/assets/chat-tab-D8iAVZKV.js.gz +0 -0
- package/dist/web/assets/code-editor-B7gbH4-x.js +10 -0
- package/dist/web/assets/code-editor-B7gbH4-x.js.br +0 -0
- package/dist/web/assets/code-editor-B7gbH4-x.js.gz +0 -0
- package/dist/web/assets/codex-reset-credit-button-DQDtyvnd.js +1 -0
- package/dist/web/assets/codex-reset-credit-button-DQDtyvnd.js.br +0 -0
- package/dist/web/assets/codex-reset-credit-button-DQDtyvnd.js.gz +0 -0
- package/dist/web/assets/conflict-editor-ktOkrODA.js +19 -0
- package/dist/web/assets/conflict-editor-ktOkrODA.js.br +0 -0
- package/dist/web/assets/conflict-editor-ktOkrODA.js.gz +0 -0
- package/dist/web/assets/connection-form-tab-CxvExR7T.js +4 -0
- package/dist/web/assets/connection-form-tab-CxvExR7T.js.br +0 -0
- package/dist/web/assets/connection-form-tab-CxvExR7T.js.gz +0 -0
- package/dist/web/assets/context-menu-BCuZYfWC.js +1 -0
- package/dist/web/assets/context-menu-BCuZYfWC.js.br +0 -0
- package/dist/web/assets/context-menu-BCuZYfWC.js.gz +0 -0
- package/dist/web/assets/createLucideIcon-D9_fdOKS.js +1 -0
- package/dist/web/assets/createLucideIcon-D9_fdOKS.js.br +0 -0
- package/dist/web/assets/createLucideIcon-D9_fdOKS.js.gz +0 -0
- package/dist/web/assets/csv-preview-CBDMTEsF.js +10 -0
- package/dist/web/assets/csv-preview-CBDMTEsF.js.br +0 -0
- package/dist/web/assets/csv-preview-CBDMTEsF.js.gz +0 -0
- package/dist/web/assets/database-drivers-section-DJvU6bf5.js +1 -0
- package/dist/web/assets/database-drivers-section-DJvU6bf5.js.br +0 -0
- package/dist/web/assets/database-drivers-section-DJvU6bf5.js.gz +0 -0
- package/dist/web/assets/db-ai-tools-CVbbW_MZ.js +1 -0
- package/dist/web/assets/db-ai-tools-CVbbW_MZ.js.br +0 -0
- package/dist/web/assets/db-ai-tools-CVbbW_MZ.js.gz +0 -0
- package/dist/web/assets/db-explorer-store-BmpvDHz6.js +1 -0
- package/dist/web/assets/db-explorer-store-BmpvDHz6.js.br +0 -0
- package/dist/web/assets/db-explorer-store-BmpvDHz6.js.gz +0 -0
- package/dist/web/assets/db-sidebar-reveal-_qw0CliT.js +1 -0
- package/dist/web/assets/db-sidebar-reveal-_qw0CliT.js.br +0 -0
- package/dist/web/assets/db-sidebar-reveal-_qw0CliT.js.gz +0 -0
- package/dist/web/assets/db-tab-parts-BgVpKbi6.js +1 -0
- package/dist/web/assets/db-tab-parts-BgVpKbi6.js.br +0 -0
- package/dist/web/assets/db-tab-parts-BgVpKbi6.js.gz +0 -0
- package/dist/web/assets/db-types-CNhENouW.js +1 -0
- package/dist/web/assets/design-canvas-check-BIHc2d_k.js +1 -0
- package/dist/web/assets/design-canvas-check-BIHc2d_k.js.br +0 -0
- package/dist/web/assets/design-canvas-check-BIHc2d_k.js.gz +0 -0
- package/dist/web/assets/design-export-client-CJ3w7Zrk.js +1 -0
- package/dist/web/assets/design-export-client-CJ3w7Zrk.js.br +0 -0
- package/dist/web/assets/design-export-client-CJ3w7Zrk.js.gz +0 -0
- package/dist/web/assets/design-responsive-dialog-MAFgVOmv.js +1 -0
- package/dist/web/assets/design-responsive-dialog-MAFgVOmv.js.br +0 -0
- package/dist/web/assets/design-responsive-dialog-MAFgVOmv.js.gz +0 -0
- package/dist/web/assets/design-settings-section-DPGw61pY.js +2 -0
- package/dist/web/assets/design-settings-section-DPGw61pY.js.br +0 -0
- package/dist/web/assets/design-settings-section-DPGw61pY.js.gz +0 -0
- package/dist/web/assets/design-skill-suggestion-Dmmg_ap5.js +3 -0
- package/dist/web/assets/design-skill-suggestion-Dmmg_ap5.js.br +0 -0
- package/dist/web/assets/design-skill-suggestion-Dmmg_ap5.js.gz +0 -0
- package/dist/web/assets/design-tab-BiCqHNl3.js +57 -0
- package/dist/web/assets/design-tab-BiCqHNl3.js.br +0 -0
- package/dist/web/assets/design-tab-BiCqHNl3.js.gz +0 -0
- package/dist/web/assets/designs-sidebar-panel-pcJ2Rx5G.js +1 -0
- package/dist/web/assets/designs-sidebar-panel-pcJ2Rx5G.js.br +0 -0
- package/dist/web/assets/designs-sidebar-panel-pcJ2Rx5G.js.gz +0 -0
- package/dist/web/assets/dialog-Dn_2tuYa.js +1 -0
- package/dist/web/assets/dialog-Dn_2tuYa.js.br +0 -0
- package/dist/web/assets/dialog-Dn_2tuYa.js.gz +0 -0
- package/dist/web/assets/diff-viewer-CLAvyqVG.js +4 -0
- package/dist/web/assets/diff-viewer-CLAvyqVG.js.br +0 -0
- package/dist/web/assets/diff-viewer-CLAvyqVG.js.gz +0 -0
- package/dist/web/assets/docx-preview-XSkD2IL6.js +12 -0
- package/dist/web/assets/docx-preview-XSkD2IL6.js.br +0 -0
- package/dist/web/assets/docx-preview-XSkD2IL6.js.gz +0 -0
- package/dist/web/assets/dropdown-menu-BQidk_OJ.js +1 -0
- package/dist/web/assets/dropdown-menu-BQidk_OJ.js.br +0 -0
- package/dist/web/assets/dropdown-menu-BQidk_OJ.js.gz +0 -0
- package/dist/web/assets/edit-diff-preview-DyWUMlkI.js +7 -0
- package/dist/web/assets/edit-diff-preview-DyWUMlkI.js.br +0 -0
- package/dist/web/assets/edit-diff-preview-DyWUMlkI.js.gz +0 -0
- package/dist/web/assets/editor-dialog-cQvqVZAR.js +1 -0
- package/dist/web/assets/editor-dialog-cQvqVZAR.js.br +0 -0
- package/dist/web/assets/editor-dialog-cQvqVZAR.js.gz +0 -0
- package/dist/web/assets/editor-language-service-6-7mS6_9.js +1 -0
- package/dist/web/assets/editor-language-service-6-7mS6_9.js.br +0 -0
- package/dist/web/assets/editor-language-service-6-7mS6_9.js.gz +0 -0
- package/dist/web/assets/explorer-body-BlGDPmNa.js +2 -0
- package/dist/web/assets/explorer-body-BlGDPmNa.js.br +0 -0
- package/dist/web/assets/explorer-body-BlGDPmNa.js.gz +0 -0
- package/dist/web/assets/explorer-model-BtJN4MZ9.js +1 -0
- package/dist/web/assets/explorer-model-BtJN4MZ9.js.br +0 -0
- package/dist/web/assets/explorer-model-BtJN4MZ9.js.gz +0 -0
- package/dist/web/assets/explorer-window-content-BLWY8GJ_.js +1 -0
- package/dist/web/assets/explorer-window-content-BLWY8GJ_.js.br +0 -0
- package/dist/web/assets/explorer-window-content-BLWY8GJ_.js.gz +0 -0
- package/dist/web/assets/extension-manager-section-NSEt5f4z.js +1 -0
- package/dist/web/assets/extension-manager-section-NSEt5f4z.js.br +0 -0
- package/dist/web/assets/extension-manager-section-NSEt5f4z.js.gz +0 -0
- package/dist/web/assets/extension-webview-BkAEBWin.js +12 -0
- package/dist/web/assets/extension-webview-BkAEBWin.js.br +0 -0
- package/dist/web/assets/extension-webview-BkAEBWin.js.gz +0 -0
- package/dist/web/assets/file-diff-CcDhJkXB.js +1 -0
- package/dist/web/assets/file-icons-JInFtBVl.js +1 -0
- package/dist/web/assets/file-icons-JInFtBVl.js.br +0 -0
- package/dist/web/assets/file-icons-JInFtBVl.js.gz +0 -0
- package/dist/web/assets/file-store-BQ41vIs5.js +1 -0
- package/dist/web/assets/file-store-BQ41vIs5.js.br +0 -0
- package/dist/web/assets/file-store-BQ41vIs5.js.gz +0 -0
- package/dist/web/assets/files-settings-section-Bq7liJ_r.js +1 -0
- package/dist/web/assets/files-settings-section-Bq7liJ_r.js.br +0 -0
- package/dist/web/assets/files-settings-section-Bq7liJ_r.js.gz +0 -0
- package/dist/web/assets/filter-dialog-frame-BkEbqBA4.js +1 -0
- package/dist/web/assets/filter-dialog-frame-BkEbqBA4.js.br +0 -0
- package/dist/web/assets/filter-dialog-frame-BkEbqBA4.js.gz +0 -0
- package/dist/web/assets/format-file-meta-DdYtk07C.js +1 -0
- package/dist/web/assets/format-file-meta-DdYtk07C.js.br +0 -0
- package/dist/web/assets/format-file-meta-DdYtk07C.js.gz +0 -0
- package/dist/web/assets/fs-api-CFtQzsIJ.js +1 -0
- package/dist/web/assets/fs-api-CFtQzsIJ.js.br +0 -0
- package/dist/web/assets/fs-api-CFtQzsIJ.js.gz +0 -0
- package/dist/web/assets/general-settings-section-DvHROAMa.js +1 -0
- package/dist/web/assets/general-settings-section-DvHROAMa.js.br +0 -0
- package/dist/web/assets/general-settings-section-DvHROAMa.js.gz +0 -0
- package/dist/web/assets/git-commit-horizontal-BPdj2L1i.js +1 -0
- package/dist/web/assets/git-log-panel-Cu9kK48H.js +1 -0
- package/dist/web/assets/git-log-panel-Cu9kK48H.js.br +0 -0
- package/dist/web/assets/git-log-panel-Cu9kK48H.js.gz +0 -0
- package/dist/web/assets/git-repo-store-CKB5fdNP.js +1 -0
- package/dist/web/assets/git-repo-store-CKB5fdNP.js.br +0 -0
- package/dist/web/assets/git-repo-store-CKB5fdNP.js.gz +0 -0
- package/dist/web/assets/git-review-tab-B_JT649W.js +3 -0
- package/dist/web/assets/git-review-tab-B_JT649W.js.br +0 -0
- package/dist/web/assets/git-review-tab-B_JT649W.js.gz +0 -0
- package/dist/web/assets/glide-data-grid-BlposOph.js +177 -0
- package/dist/web/assets/glide-data-grid-BlposOph.js.br +0 -0
- package/dist/web/assets/glide-data-grid-BlposOph.js.gz +0 -0
- package/dist/web/assets/grid-save-dialog-B0d0qhnN.js +2 -0
- package/dist/web/assets/grid-save-dialog-B0d0qhnN.js.br +0 -0
- package/dist/web/assets/grid-save-dialog-B0d0qhnN.js.gz +0 -0
- package/dist/web/assets/group-chat-tab-jirUsGm-.js +1 -0
- package/dist/web/assets/group-chat-tab-jirUsGm-.js.br +0 -0
- package/dist/web/assets/group-chat-tab-jirUsGm-.js.gz +0 -0
- package/dist/web/assets/html-preview-loads-CMWBC-iv.js +1 -0
- package/dist/web/assets/icons-BwyIKaTT.js +1 -0
- package/dist/web/assets/icons-BwyIKaTT.js.br +0 -0
- package/dist/web/assets/icons-BwyIKaTT.js.gz +0 -0
- package/dist/web/assets/image-preview-gOBK9zED.js +1 -0
- package/dist/web/assets/impexp-tab-HJVcOTYJ.js +1 -0
- package/dist/web/assets/impexp-tab-HJVcOTYJ.js.br +0 -0
- package/dist/web/assets/impexp-tab-HJVcOTYJ.js.gz +0 -0
- package/dist/web/assets/index-DLB3j_P0.js +59 -0
- package/dist/web/assets/index-DLB3j_P0.js.br +0 -0
- package/dist/web/assets/index-DLB3j_P0.js.gz +0 -0
- package/dist/web/assets/index-M3DUzop8.css +1 -0
- package/dist/web/assets/index-M3DUzop8.css.br +0 -0
- package/dist/web/assets/index-M3DUzop8.css.gz +0 -0
- package/dist/web/assets/input-C3oVNCMq.js +1 -0
- package/dist/web/assets/jira-watcher-section-EQvdnETB.js +1 -0
- package/dist/web/assets/keybindings-store-CEy-Sdcc.js +1 -0
- package/dist/web/assets/keyboard-shortcuts-section-DN21gB-T.js +1 -0
- package/dist/web/assets/keyboard-shortcuts-section-DN21gB-T.js.br +0 -0
- package/dist/web/assets/keyboard-shortcuts-section-DN21gB-T.js.gz +0 -0
- package/dist/web/assets/language-servers-section-DOcZ72FJ.js +2 -0
- package/dist/web/assets/language-servers-section-DOcZ72FJ.js.br +0 -0
- package/dist/web/assets/language-servers-section-DOcZ72FJ.js.gz +0 -0
- package/dist/web/assets/lib-5Chotbwm.js +2 -0
- package/dist/web/assets/lib-5Chotbwm.js.br +0 -0
- package/dist/web/assets/lib-5Chotbwm.js.gz +0 -0
- package/dist/web/assets/logs-app-C7n9GSCn.js +13 -0
- package/dist/web/assets/logs-app-C7n9GSCn.js.br +0 -0
- package/dist/web/assets/logs-app-C7n9GSCn.js.gz +0 -0
- package/dist/web/assets/logs-tab-CSOiexvx.js +1 -0
- package/dist/web/assets/logs-window-content-C4Qs6-0q.js +1 -0
- package/dist/web/assets/lsp-client-DpYmPhXX.js +1 -0
- package/dist/web/assets/lsp-client-DpYmPhXX.js.br +0 -0
- package/dist/web/assets/lsp-client-DpYmPhXX.js.gz +0 -0
- package/dist/web/assets/markdown-renderer-CtEl6qAt.js +4 -0
- package/dist/web/assets/markdown-renderer-CtEl6qAt.js.br +0 -0
- package/dist/web/assets/markdown-renderer-CtEl6qAt.js.gz +0 -0
- package/dist/web/assets/markdown-renderer-Df3r-CCb.js +1 -0
- package/dist/web/assets/media-url-Cn2yRAxP.js +1 -0
- package/dist/web/assets/metric-chart-canvas-DEW16Su8.js +1 -0
- package/dist/web/assets/metric-chart-canvas-DEW16Su8.js.br +0 -0
- package/dist/web/assets/metric-chart-canvas-DEW16Su8.js.gz +0 -0
- package/dist/web/assets/mobile-bottom-sheet-DArbIyrD.js +1 -0
- package/dist/web/assets/mobile-bottom-sheet-DArbIyrD.js.br +0 -0
- package/dist/web/assets/mobile-bottom-sheet-DArbIyrD.js.gz +0 -0
- package/dist/web/assets/mobile-explorer-sheet-B-rcKEL9.js +1 -0
- package/dist/web/assets/mobile-explorer-sheet-B-rcKEL9.js.br +0 -0
- package/dist/web/assets/mobile-explorer-sheet-B-rcKEL9.js.gz +0 -0
- package/dist/web/assets/new-design-dialog-DgztQK5R.js +1 -0
- package/dist/web/assets/new-design-dialog-DgztQK5R.js.br +0 -0
- package/dist/web/assets/new-design-dialog-DgztQK5R.js.gz +0 -0
- package/dist/web/assets/notification-store-B92dvP_u.js +1 -0
- package/dist/web/assets/notifications-settings-section-JiGvaCFx.js +1 -0
- package/dist/web/assets/notifications-settings-section-JiGvaCFx.js.br +0 -0
- package/dist/web/assets/notifications-settings-section-JiGvaCFx.js.gz +0 -0
- package/dist/web/assets/onboarding-entry-eehqBvyM.js +1 -0
- package/dist/web/assets/onboarding-entry-eehqBvyM.js.br +0 -0
- package/dist/web/assets/onboarding-entry-eehqBvyM.js.gz +0 -0
- package/dist/web/assets/onboarding-quick-orientation-CTHtIRib.js +1 -0
- package/dist/web/assets/onboarding-quick-orientation-CTHtIRib.js.br +0 -0
- package/dist/web/assets/onboarding-quick-orientation-CTHtIRib.js.gz +0 -0
- package/dist/web/assets/open-db-tabs-CtWIWHOa.js +1 -0
- package/dist/web/assets/open-db-tabs-CtWIWHOa.js.br +0 -0
- package/dist/web/assets/open-db-tabs-CtWIWHOa.js.gz +0 -0
- package/dist/web/assets/open-settings-EXR4zoZG.js +1 -0
- package/dist/web/assets/overview-panel-DEGF2DmZ.js +1 -0
- package/dist/web/assets/overview-panel-DEGF2DmZ.js.br +0 -0
- package/dist/web/assets/overview-panel-DEGF2DmZ.js.gz +0 -0
- package/dist/web/assets/panel-store-BJhazigC.js +1 -0
- package/dist/web/assets/panel-store-BJhazigC.js.br +0 -0
- package/dist/web/assets/panel-store-BJhazigC.js.gz +0 -0
- package/dist/web/assets/patch-tab-metadata-C92YkrRX.js +1 -0
- package/dist/web/assets/pdf-preview-C9gMtv2a.js +1 -0
- package/dist/web/assets/pdf-preview-C9gMtv2a.js.br +0 -0
- package/dist/web/assets/pdf-preview-C9gMtv2a.js.gz +0 -0
- package/dist/web/assets/performance-panel-TkwfKIZa.js +3 -0
- package/dist/web/assets/performance-panel-TkwfKIZa.js.br +0 -0
- package/dist/web/assets/performance-panel-TkwfKIZa.js.gz +0 -0
- package/dist/web/assets/portal-container-context-NBi-KGK0.js +1 -0
- package/dist/web/assets/ppmbot-settings-section-XfrZ8VoC.js +1 -0
- package/dist/web/assets/ppmbot-settings-section-XfrZ8VoC.js.br +0 -0
- package/dist/web/assets/ppmbot-settings-section-XfrZ8VoC.js.gz +0 -0
- package/dist/web/assets/pptx-export-B2wCBWlV.js +111 -0
- package/dist/web/assets/pptx-export-B2wCBWlV.js.br +0 -0
- package/dist/web/assets/pptx-export-B2wCBWlV.js.gz +0 -0
- package/dist/web/assets/problems-panel-CDzwSJn6.js +1 -0
- package/dist/web/assets/problems-panel-CDzwSJn6.js.br +0 -0
- package/dist/web/assets/problems-panel-CDzwSJn6.js.gz +0 -0
- package/dist/web/assets/process-row-format-CytRH7g2.js +1 -0
- package/dist/web/assets/process-table-C_B39GHm.js +1 -0
- package/dist/web/assets/process-table-C_B39GHm.js.br +0 -0
- package/dist/web/assets/process-table-C_B39GHm.js.gz +0 -0
- package/dist/web/assets/project-framework-store-DwLxaRan.js +1 -0
- package/dist/web/assets/project-store-BLGl9IAO.js +1 -0
- package/dist/web/assets/project-store-BLGl9IAO.js.br +0 -0
- package/dist/web/assets/project-store-BLGl9IAO.js.gz +0 -0
- package/dist/web/assets/proxy-settings-section-CvaOvYIv.js +1 -0
- package/dist/web/assets/proxy-settings-section-CvaOvYIv.js.br +0 -0
- package/dist/web/assets/proxy-settings-section-CvaOvYIv.js.gz +0 -0
- package/dist/web/assets/query-audit-section-D_WDp1m-.js +1 -0
- package/dist/web/assets/query-audit-section-D_WDp1m-.js.br +0 -0
- package/dist/web/assets/query-audit-section-D_WDp1m-.js.gz +0 -0
- package/dist/web/assets/query-tab-B8aMpAbI.js +22 -0
- package/dist/web/assets/query-tab-B8aMpAbI.js.br +0 -0
- package/dist/web/assets/query-tab-B8aMpAbI.js.gz +0 -0
- package/dist/web/assets/react-BZ0kba1-.js +1 -0
- package/dist/web/assets/remote-access-settings-section-Bv0eawR4.js +1 -0
- package/dist/web/assets/remote-access-settings-section-Bv0eawR4.js.br +0 -0
- package/dist/web/assets/remote-access-settings-section-Bv0eawR4.js.gz +0 -0
- package/dist/web/assets/remote-desktop-clipboard-notice-BpDakRY0.js +1 -0
- package/dist/web/assets/remote-desktop-clipboard-notice-BpDakRY0.js.br +0 -0
- package/dist/web/assets/remote-desktop-clipboard-notice-BpDakRY0.js.gz +0 -0
- package/dist/web/assets/remote-desktop-mobile-sheet-C5GQ3kzY.js +2 -0
- package/dist/web/assets/remote-desktop-mobile-sheet-C5GQ3kzY.js.br +0 -0
- package/dist/web/assets/remote-desktop-mobile-sheet-C5GQ3kzY.js.gz +0 -0
- package/dist/web/assets/remote-desktop-mobile-view-CZb5EMEK.js +1 -0
- package/dist/web/assets/remote-desktop-mobile-view-CZb5EMEK.js.br +0 -0
- package/dist/web/assets/remote-desktop-mobile-view-CZb5EMEK.js.gz +0 -0
- package/dist/web/assets/remote-desktop-readiness-gate-CipNtLX5.js +1 -0
- package/dist/web/assets/remote-desktop-readiness-gate-CipNtLX5.js.br +0 -0
- package/dist/web/assets/remote-desktop-readiness-gate-CipNtLX5.js.gz +0 -0
- package/dist/web/assets/remote-desktop-settings-section-ZAsBRwjq.js +1 -0
- package/dist/web/assets/remote-desktop-settings-section-ZAsBRwjq.js.br +0 -0
- package/dist/web/assets/remote-desktop-settings-section-ZAsBRwjq.js.gz +0 -0
- package/dist/web/assets/remote-desktop-window-content-B7OXXvAM.js +1 -0
- package/dist/web/assets/remote-desktop-window-content-B7OXXvAM.js.br +0 -0
- package/dist/web/assets/remote-desktop-window-content-B7OXXvAM.js.gz +0 -0
- package/dist/web/assets/rename-object-dialog-B4W6S7Xg.js +1 -0
- package/dist/web/assets/rename-object-dialog-B4W6S7Xg.js.br +0 -0
- package/dist/web/assets/rename-object-dialog-B4W6S7Xg.js.gz +0 -0
- package/dist/web/assets/review-code-B4osj0k1.js +5 -0
- package/dist/web/assets/review-code-B4osj0k1.js.br +0 -0
- package/dist/web/assets/review-code-B4osj0k1.js.gz +0 -0
- package/dist/web/assets/run-in-terminal-button-m3i-Hcou.js +1 -0
- package/dist/web/assets/run-in-terminal-ujoc25vj.js +1 -0
- package/dist/web/assets/save-as-dialog-DpXv_f1d.js +1 -0
- package/dist/web/assets/save-as-dialog-DpXv_f1d.js.br +5 -0
- package/dist/web/assets/save-as-dialog-DpXv_f1d.js.gz +0 -0
- package/dist/web/assets/schedules-settings-section-BbaPbc28.js +1 -0
- package/dist/web/assets/schedules-settings-section-BbaPbc28.js.br +0 -0
- package/dist/web/assets/schedules-settings-section-BbaPbc28.js.gz +0 -0
- package/dist/web/assets/scroll-area-DOlQJGZp.js +1 -0
- package/dist/web/assets/scroll-area-DOlQJGZp.js.br +0 -0
- package/dist/web/assets/scroll-area-DOlQJGZp.js.gz +0 -0
- package/dist/web/assets/send-to-chat-CWV1qd3c.js +1 -0
- package/dist/web/assets/send-to-chat-CWV1qd3c.js.br +0 -0
- package/dist/web/assets/send-to-chat-CWV1qd3c.js.gz +0 -0
- package/dist/web/assets/separator-DmU9aJwq.js +1 -0
- package/dist/web/assets/services-panel-CZQOrvth.js +1 -0
- package/dist/web/assets/services-panel-CZQOrvth.js.br +0 -0
- package/dist/web/assets/services-panel-CZQOrvth.js.gz +0 -0
- package/dist/web/assets/session-changes-bar-VfS2sHuH.js +1 -0
- package/dist/web/assets/session-changes-bar-VfS2sHuH.js.br +0 -0
- package/dist/web/assets/session-changes-bar-VfS2sHuH.js.gz +0 -0
- package/dist/web/assets/session-list-sync-triggers-DtJI5KF0.js +1 -0
- package/dist/web/assets/session-list-sync-triggers-DtJI5KF0.js.br +0 -0
- package/dist/web/assets/session-list-sync-triggers-DtJI5KF0.js.gz +0 -0
- package/dist/web/assets/session-review-tab-Aq3FEooH.js +6 -0
- package/dist/web/assets/session-review-tab-Aq3FEooH.js.br +0 -0
- package/dist/web/assets/session-review-tab-Aq3FEooH.js.gz +0 -0
- package/dist/web/assets/settings-body-vXbOWchN.js +1 -0
- package/dist/web/assets/settings-body-vXbOWchN.js.br +0 -0
- package/dist/web/assets/settings-body-vXbOWchN.js.gz +0 -0
- package/dist/web/assets/settings-categories-Ajj4ui27.js +1 -0
- package/dist/web/assets/settings-categories-Ajj4ui27.js.br +0 -0
- package/dist/web/assets/settings-categories-Ajj4ui27.js.gz +0 -0
- package/dist/web/assets/settings-rows-DD7Gxmst.js +1 -0
- package/dist/web/assets/settings-rows-DD7Gxmst.js.br +0 -0
- package/dist/web/assets/settings-rows-DD7Gxmst.js.gz +0 -0
- package/dist/web/assets/settings-section-content-CVtvJ6ze.js +1 -0
- package/dist/web/assets/settings-section-content-DkUJFop6.js +2 -0
- package/dist/web/assets/settings-section-content-DkUJFop6.js.br +0 -0
- package/dist/web/assets/settings-section-content-DkUJFop6.js.gz +0 -0
- package/dist/web/assets/settings-store-B4mLp19V.js +2 -0
- package/dist/web/assets/settings-store-B4mLp19V.js.br +0 -0
- package/dist/web/assets/settings-store-B4mLp19V.js.gz +0 -0
- package/dist/web/assets/settings-tab-Cdv9_OIe.js +1 -0
- package/dist/web/assets/settings-window-content-DLa6Ph4u.js +1 -0
- package/dist/web/assets/share-BV49OI6q.css +2 -0
- package/dist/web/assets/share-BV49OI6q.css.br +0 -0
- package/dist/web/assets/share-BV49OI6q.css.gz +0 -0
- package/dist/web/assets/share-D5ufGmNI.js +9 -0
- package/dist/web/assets/share-D5ufGmNI.js.br +0 -0
- package/dist/web/assets/share-D5ufGmNI.js.gz +0 -0
- package/dist/web/assets/slash-command-picker-lILYDfK3.js +1 -0
- package/dist/web/assets/slash-command-picker-lILYDfK3.js.br +0 -0
- package/dist/web/assets/slash-command-picker-lILYDfK3.js.gz +0 -0
- package/dist/web/assets/sortable-header-DwzTFLkG.js +1 -0
- package/dist/web/assets/sortable-header-DwzTFLkG.js.br +0 -0
- package/dist/web/assets/sortable-header-DwzTFLkG.js.gz +0 -0
- package/dist/web/assets/split-sql-statements-DcAeXbk_.js +5 -0
- package/dist/web/assets/split-sql-statements-DcAeXbk_.js.br +0 -0
- package/dist/web/assets/split-sql-statements-DcAeXbk_.js.gz +0 -0
- package/dist/web/assets/sql-completion-provider-CS-ElfgJ.js +1 -0
- package/dist/web/assets/sql-completion-provider-CS-ElfgJ.js.br +0 -0
- package/dist/web/assets/sql-completion-provider-CS-ElfgJ.js.gz +0 -0
- package/dist/web/assets/sql-object-tab-Da42SMK5.js +1 -0
- package/dist/web/assets/sql-object-tab-Da42SMK5.js.br +0 -0
- package/dist/web/assets/sql-object-tab-Da42SMK5.js.gz +0 -0
- package/dist/web/assets/sqlite-viewer-V3SKNukY.js +1 -0
- package/dist/web/assets/sqlite-viewer-V3SKNukY.js.br +0 -0
- package/dist/web/assets/sqlite-viewer-V3SKNukY.js.gz +0 -0
- package/dist/web/assets/start-ellipsis-CU8GkxaV.js +1 -0
- package/dist/web/assets/structure-save-dialog-B635iyPI.js +1 -0
- package/dist/web/assets/structure-save-dialog-B635iyPI.js.br +0 -0
- package/dist/web/assets/structure-save-dialog-B635iyPI.js.gz +0 -0
- package/dist/web/assets/structure-tab-Co9d8ktU.js +3 -0
- package/dist/web/assets/structure-tab-Co9d8ktU.js.br +0 -0
- package/dist/web/assets/structure-tab-Co9d8ktU.js.gz +0 -0
- package/dist/web/assets/system-monitor-body-DC0j8RqP.js +2 -0
- package/dist/web/assets/system-monitor-body-DC0j8RqP.js.br +0 -0
- package/dist/web/assets/system-monitor-body-DC0j8RqP.js.gz +0 -0
- package/dist/web/assets/system-monitor-tab-DA8BcdXo.js +1 -0
- package/dist/web/assets/system-monitor-window-content-BiuLo8XW.js +1 -0
- package/dist/web/assets/tab-host-window-content-Crvt1r5F.js +1 -0
- package/dist/web/assets/tab-host-window-content-Crvt1r5F.js.br +0 -0
- package/dist/web/assets/tab-host-window-content-Crvt1r5F.js.gz +0 -0
- package/dist/web/assets/tab-store-D5I52eLN.js +1 -0
- package/dist/web/assets/table-tab-C2cYw7a0.js +2 -0
- package/dist/web/assets/table-tab-C2cYw7a0.js.br +0 -0
- package/dist/web/assets/table-tab-C2cYw7a0.js.gz +0 -0
- package/dist/web/assets/telegram-bot-token-field-BqNtOo5n.js +1 -0
- package/dist/web/assets/telegram-bot-token-field-BqNtOo5n.js.br +0 -0
- package/dist/web/assets/telegram-bot-token-field-BqNtOo5n.js.gz +0 -0
- package/dist/web/assets/terminal-tab-CrKxibGC.js +3 -0
- package/dist/web/assets/terminal-tab-CrKxibGC.js.br +0 -0
- package/dist/web/assets/terminal-tab-CrKxibGC.js.gz +0 -0
- package/dist/web/assets/tool-cards-BRto67jM.js +15 -0
- package/dist/web/assets/tool-cards-BRto67jM.js.br +0 -0
- package/dist/web/assets/tool-cards-BRto67jM.js.gz +0 -0
- package/dist/web/assets/tools-settings-section-DEvZsrxq.js +1 -0
- package/dist/web/assets/tools-settings-section-DEvZsrxq.js.br +0 -0
- package/dist/web/assets/tools-settings-section-DEvZsrxq.js.gz +0 -0
- package/dist/web/assets/use-at-most-wide-BHsrzvv3.js +1 -0
- package/dist/web/assets/use-blob-url-Clm7wbB_.js +1 -0
- package/dist/web/assets/use-db-driver-installed-anzWkGi5.js +1 -0
- package/dist/web/assets/use-db-read-BCYhIrJM.js +1 -0
- package/dist/web/assets/use-db-read-BCYhIrJM.js.br +0 -0
- package/dist/web/assets/use-db-read-BCYhIrJM.js.gz +0 -0
- package/dist/web/assets/use-db-tab-B8LjdDb7.js +1 -0
- package/dist/web/assets/use-db-tab-B8LjdDb7.js.br +0 -0
- package/dist/web/assets/use-db-tab-B8LjdDb7.js.gz +0 -0
- package/dist/web/assets/use-design-canvas-check-DBsLf1At.js +1 -0
- package/dist/web/assets/use-design-canvas-check-DBsLf1At.js.br +0 -0
- package/dist/web/assets/use-design-canvas-check-DBsLf1At.js.gz +0 -0
- package/dist/web/assets/use-h264-canvas-decoder-_zqeiVx8.js +1 -0
- package/dist/web/assets/use-h264-canvas-decoder-_zqeiVx8.js.br +0 -0
- package/dist/web/assets/use-h264-canvas-decoder-_zqeiVx8.js.gz +0 -0
- package/dist/web/assets/use-inline-blame-CRWJU6Rq.js +16 -0
- package/dist/web/assets/use-inline-blame-CRWJU6Rq.js.br +0 -0
- package/dist/web/assets/use-inline-blame-CRWJU6Rq.js.gz +0 -0
- package/dist/web/assets/use-is-mobile-VRV9eZy1.js +1 -0
- package/dist/web/assets/use-lsp-B-otjr-6.js +6 -0
- package/dist/web/assets/use-lsp-B-otjr-6.js.br +0 -0
- package/dist/web/assets/use-lsp-B-otjr-6.js.gz +0 -0
- package/dist/web/assets/use-monaco-theme-BiDXRJ4e.js +1 -0
- package/dist/web/assets/use-opener-focus-CDRKhHwX.js +1 -0
- package/dist/web/assets/use-process-kill-BW2UW0mZ.js +1 -0
- package/dist/web/assets/use-process-kill-BW2UW0mZ.js.br +0 -0
- package/dist/web/assets/use-process-kill-BW2UW0mZ.js.gz +0 -0
- package/dist/web/assets/use-sql-schema-info-D_Kc2FI7.js +4 -0
- package/dist/web/assets/use-sql-schema-info-D_Kc2FI7.js.br +0 -0
- package/dist/web/assets/use-sql-schema-info-D_Kc2FI7.js.gz +0 -0
- package/dist/web/assets/use-visual-viewport-MmugpRg-.js +1 -0
- package/dist/web/assets/use-websocket-n3Ud9vEA.js +1 -0
- package/dist/web/assets/vendor-markdown-C-P1aR4p.js +291 -0
- package/dist/web/assets/vendor-markdown-C-P1aR4p.js.br +0 -0
- package/dist/web/assets/vendor-markdown-C-P1aR4p.js.gz +0 -0
- package/dist/web/assets/vendor-ui-BTSIXzhZ.js +45 -0
- package/dist/web/assets/vendor-ui-BTSIXzhZ.js.br +0 -0
- package/dist/web/assets/vendor-ui-BTSIXzhZ.js.gz +0 -0
- package/dist/web/assets/video-preview-CjB6wesi.js +1 -0
- package/dist/web/assets/video-preview-CjB6wesi.js.br +0 -0
- package/dist/web/assets/video-preview-CjB6wesi.js.gz +0 -0
- package/dist/web/assets/voice-settings-section-C6Wb6q5o.js +1 -0
- package/dist/web/assets/voice-settings-section-C6Wb6q5o.js.br +0 -0
- package/dist/web/assets/voice-settings-section-C6Wb6q5o.js.gz +0 -0
- package/dist/web/assets/web-preview-tab-doNpegW3.js +1 -0
- package/dist/web/assets/web-preview-tab-doNpegW3.js.br +0 -0
- package/dist/web/assets/web-preview-tab-doNpegW3.js.gz +0 -0
- package/dist/web/assets/window-store-DqX_qmkQ.js +1 -0
- package/dist/web/assets/window-store-DqX_qmkQ.js.br +0 -0
- package/dist/web/assets/window-store-DqX_qmkQ.js.gz +0 -0
- package/dist/web/assets/ws-auth-CbF6GqxP.js +1 -0
- package/dist/web/design-share-page/index.html +18 -0
- package/dist/web/index.html +47 -47
- 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/docs/architecture/ai-chat-and-providers.md +258 -26
- package/docs/architecture/data-and-storage.md +9 -3
- package/docs/architecture/workspace-and-ui.md +42 -5
- package/docs/project-roadmap.md +5 -0
- package/package.json +6 -2
- package/scripts/gen-product-icons.ts +1 -0
- package/src/cli/commands/db-cmd.ts +79 -1
- package/src/providers/claude-agent-sdk-query-options.ts +42 -10
- package/src/providers/claude-agent-sdk.ts +19 -6
- package/src/providers/codex-app-server/codex-provider.ts +9 -3
- package/src/providers/codex-app-server/codex-thread-params.ts +34 -4
- package/src/server/index.ts +17 -5
- package/src/server/middleware/access-log.ts +6 -3
- package/src/server/routes/accounts.ts +3 -2
- package/src/server/routes/chat-file-changes.ts +15 -1
- package/src/server/routes/chat.ts +92 -18
- package/src/server/routes/database-query.ts +14 -5
- package/src/server/routes/database.ts +14 -0
- package/src/server/routes/debug-crash.ts +30 -0
- package/src/server/routes/design-comments.ts +56 -7
- package/src/server/routes/design-share-address.ts +20 -0
- package/src/server/routes/design-share-guest-comments.ts +120 -0
- package/src/server/routes/design-share-guest-files.ts +99 -0
- package/src/server/routes/design-share-guest-shared.ts +95 -0
- package/src/server/routes/design-share-guest.ts +77 -0
- package/src/server/routes/design-shares.ts +90 -0
- package/src/server/routes/designs.ts +2 -0
- package/src/server/routes/settings.ts +12 -0
- package/src/server/routes/static.ts +10 -2
- package/src/server/ws/chat.ts +113 -39
- package/src/server/ws/global.ts +10 -8
- package/src/services/account.service.ts +57 -18
- package/src/services/chat.service.ts +16 -6
- package/src/services/db-ai-tools/db-ai-connections.ts +48 -0
- package/src/services/db-ai-tools/db-ai-format.ts +107 -0
- package/src/services/db-ai-tools/db-ai-run.ts +199 -0
- package/src/services/db-ai-tools/db-ai-target.ts +59 -0
- package/src/services/db-ai-tools/db-ai-tools-endpoint.ts +225 -0
- package/src/services/db-ai-tools/db-ai-tools-tokens.ts +33 -0
- package/src/services/db-ai-tools/db-ai-tools-tool.ts +131 -0
- package/src/services/db-ai-tools/db-approval-broker.ts +157 -0
- package/src/services/db.service.ts +25 -1
- package/src/services/design/bridge/bridge-picker.ts +15 -5
- package/src/services/design/bridge/guest-bridge.ts +19 -0
- package/src/services/design/comments/design-comment-element-context.ts +28 -6
- package/src/services/design/comments/design-comment-input.ts +47 -0
- package/src/services/design/comments/design-comment-views.ts +146 -0
- package/src/services/design/comments/design-comments-revision.ts +19 -0
- package/src/services/design/comments/design-comments-store.ts +82 -9
- package/src/services/design/design-comment-replies.service.ts +126 -0
- package/src/services/design/design-comments.service.ts +77 -34
- package/src/services/design/design-restore.service.ts +6 -2
- package/src/services/design/design-snapshots.service.ts +8 -2
- package/src/services/design/design-store.service.ts +7 -1
- package/src/services/design/design-write-rate-limit.ts +11 -17
- package/src/services/design/preview/design-guest-alias.ts +64 -0
- package/src/services/design/preview/design-preview-html.ts +16 -3
- package/src/services/design/preview/design-preview-scope.ts +29 -5
- package/src/services/design/share/design-share-address.ts +81 -0
- package/src/services/design/share/design-share-changed-files.ts +74 -0
- package/src/services/design/share/design-share-client-key.ts +72 -0
- package/src/services/design/share/design-share-code.ts +116 -0
- package/src/services/design/share/design-share-comments.service.ts +162 -0
- package/src/services/design/share/design-share-guest-link.ts +109 -0
- package/src/services/design/share/design-share-guest-page.ts +86 -0
- package/src/services/design/share/design-share-link-rules.ts +83 -0
- package/src/services/design/share/design-share-links-store.ts +157 -0
- package/src/services/design/share/design-share-links.service.ts +174 -0
- package/src/services/design/share/design-share-notifier.ts +192 -0
- package/src/services/design/share/design-share-rate-limit.ts +71 -0
- package/src/services/design/share/design-share-resolve.ts +31 -0
- package/src/services/mcp-http-endpoint.ts +23 -10
- package/src/services/mysql.service.ts +6 -2
- package/src/services/notification-format.ts +10 -2
- package/src/services/notification-link.ts +1 -1
- package/src/services/notification.service.ts +47 -15
- package/src/services/ppm-password.ts +26 -0
- package/src/services/project-name-for-path.ts +18 -0
- package/src/services/query-audit/query-audit.service.ts +7 -4
- package/src/services/remote-desktop/access-unit-assembler.ts +11 -7
- package/src/services/remote-desktop/nal-splitter.ts +14 -1
- package/src/services/remote-desktop/remote-desktop-capture-wayland.ts +47 -21
- package/src/services/remote-desktop/remote-desktop-encoder-args.ts +5 -3
- package/src/services/session-file-baselines/session-file-baselines.service.ts +48 -0
- package/src/services/session-file-baselines/session-file-blame.ts +57 -24
- package/src/services/session-file-baselines/session-file-changes.service.ts +220 -22
- package/src/services/session-file-baselines/session-file-history.ts +5 -1
- package/src/services/session-file-baselines/session-file-writes.ts +28 -0
- package/src/services/sliding-window-limiter.ts +106 -0
- package/src/services/tab-tools-mcp/open-url-tool.ts +149 -0
- package/src/services/tab-tools-mcp/tab-open-broker.ts +12 -4
- package/src/services/tab-tools-mcp/tab-tools-mcp-endpoint.ts +66 -22
- package/src/services/tab-tools-mcp/tab-tools-mcp-tokens.ts +3 -1
- package/src/services/tab-tools-mcp/tab-tools-mcp-tool.ts +78 -6
- package/src/services/tab-tools-mcp/terminal-text.ts +45 -0
- package/src/services/tab-tools-mcp/terminal-tools.ts +297 -0
- package/src/services/terminal.service.ts +39 -4
- package/src/shared/db-ai-tools.ts +118 -0
- package/src/shared/db-query-script.ts +16 -0
- package/src/shared/design-comment-thread-types.ts +80 -0
- package/src/shared/design-comment-types.ts +53 -4
- package/src/shared/design-share-guest-types.ts +59 -0
- package/src/shared/design-share-types.ts +100 -0
- package/src/shared/notification-settings.ts +4 -3
- package/src/shared/ppm-tools.ts +39 -0
- package/src/shared/session-file-changes.ts +16 -0
- package/src/shared/tab-open-protocol.ts +50 -6
- package/src/shared/untrusted-text.ts +15 -1
- package/src/types/chat.ts +7 -1
- package/src/types/config.ts +5 -2
- package/src/types/database.ts +6 -0
- package/src/web/components/chat/chat-history-bar.tsx +10 -6
- package/src/web/components/chat/chat-tab.tsx +7 -1
- package/src/web/components/chat/db-execute-approval-card.tsx +100 -0
- package/src/web/components/chat/db-tool-card.tsx +42 -0
- package/src/web/components/chat/device-tool-card.tsx +45 -0
- package/src/web/components/chat/message-input.tsx +9 -6
- package/src/web/components/chat/message-list.tsx +6 -1
- package/src/web/components/chat/message-markdown.tsx +6 -3
- package/src/web/components/chat/message-user-bubble.tsx +2 -1
- package/src/web/components/chat/model-thinking-selector.tsx +6 -4
- package/src/web/components/chat/prompt-cache-chip.tsx +1 -1
- package/src/web/components/chat/running-agents-bar.tsx +164 -76
- package/src/web/components/chat/session-changes-bar.tsx +46 -13
- package/src/web/components/chat/tool-cards.tsx +29 -1
- package/src/web/components/chat/turn-change-rollup.tsx +8 -1
- package/src/web/components/chat/usage-badge.tsx +3 -3
- package/src/web/components/database/query/query-run-state.ts +11 -1
- package/src/web/components/database/query/query-tab.tsx +33 -7
- package/src/web/components/database/query/use-query-runner.ts +3 -0
- package/src/web/components/database/query/write-once-dialog.tsx +70 -0
- package/src/web/components/design/canvas/design-canvas-pane.tsx +5 -2
- package/src/web/components/design/comments/comment-author-label.tsx +23 -0
- package/src/web/components/design/comments/comment-composer.tsx +6 -14
- package/src/web/components/design/comments/comment-pins-overlay.tsx +8 -3
- package/src/web/components/design/comments/comment-thread-replies.tsx +82 -0
- package/src/web/components/design/comments/comment-thread-text-box.tsx +69 -0
- package/src/web/components/design/comments/comment-thread-view.tsx +115 -0
- package/src/web/components/design/comments/comments-panel.tsx +33 -10
- package/src/web/components/design/comments/comments-send-preview.tsx +20 -8
- package/src/web/components/design/comments/design-comments-layer.tsx +3 -1
- package/src/web/components/design/comments/use-comment-pins.ts +3 -0
- package/src/web/components/design/comments/use-design-comments-feature.ts +40 -25
- package/src/web/components/design/comments/use-design-comments.ts +44 -12
- package/src/web/components/design/design-split-layout.tsx +106 -10
- package/src/web/components/design/design-tab-context.ts +2 -0
- package/src/web/components/design/design-tab.tsx +5 -1
- package/src/web/components/design/design-toolbar.tsx +24 -4
- package/src/web/components/design/share/design-share-dialog.tsx +81 -0
- package/src/web/components/design/share/new-share-link-form.tsx +85 -0
- package/src/web/components/design/share/share-address-block.tsx +101 -0
- package/src/web/components/design/share/share-changed-files.tsx +30 -0
- package/src/web/components/design/share/share-expiry-picker.tsx +44 -0
- package/src/web/components/design/share/share-repin-panel.tsx +64 -0
- package/src/web/components/design/share/share-row-panel.tsx +35 -0
- package/src/web/components/design/share/share-version-picker.tsx +67 -0
- package/src/web/components/design/share/shared-link-action-panels.tsx +120 -0
- package/src/web/components/design/share/shared-link-row.tsx +131 -0
- package/src/web/components/design/share/shared-links-list.tsx +33 -0
- package/src/web/components/design/share/use-share-address.ts +74 -0
- package/src/web/components/design/share/use-share-links.ts +93 -0
- package/src/web/components/design/use-design-layout.ts +7 -4
- package/src/web/components/editor/diff-viewer.tsx +16 -12
- package/src/web/components/editor/docx-preview.tsx +7 -2
- package/src/web/components/floating-window/close-window.ts +32 -0
- package/src/web/components/floating-window/floating-window.tsx +65 -24
- package/src/web/components/floating-window/open-tab-in-pip.ts +3 -0
- package/src/web/components/floating-window/use-window-drag.ts +33 -7
- package/src/web/components/floating-window/use-window-meta.ts +138 -0
- package/src/web/components/floating-window/window-chrome-contract.ts +19 -2
- package/src/web/components/floating-window/window-dock-layout.ts +72 -0
- package/src/web/components/floating-window/window-dock-list.tsx +156 -0
- package/src/web/components/floating-window/window-dock.tsx +192 -0
- package/src/web/components/floating-window/window-geometry.ts +39 -1
- package/src/web/components/floating-window/window-layer.tsx +59 -23
- package/src/web/components/floating-window/window-persistence.ts +16 -3
- package/src/web/components/floating-window/window-store-types.ts +13 -2
- package/src/web/components/floating-window/window-store.ts +75 -8
- package/src/web/components/floating-window/window-title-identity.tsx +86 -0
- package/src/web/components/layout/status-bar.tsx +3 -0
- package/src/web/components/layout/tab-pop-out-menu-item.tsx +2 -2
- package/src/web/components/logs/open-logs.ts +0 -1
- package/src/web/components/os-explorer/actions/explorer-actions-upload.ts +2 -1
- package/src/web/components/os-explorer/skins/macos-window-chrome.tsx +17 -11
- package/src/web/components/os-explorer/skins/windows-window-chrome.tsx +14 -5
- package/src/web/components/remote-desktop/use-remote-desktop-readiness.ts +8 -3
- package/src/web/components/settings/accounts/account-add-dialog.tsx +25 -13
- package/src/web/components/settings/accounts/claude-accounts-section.tsx +3 -3
- package/src/web/components/settings/ai-settings-section.tsx +0 -20
- package/src/web/components/settings/design-settings-section.tsx +3 -0
- package/src/web/components/settings/design-window-setting.tsx +28 -0
- package/src/web/components/settings/settings-categories.ts +3 -0
- package/src/web/components/settings/settings-section-content.tsx +1 -0
- package/src/web/components/settings/tools-settings-section.tsx +120 -0
- package/src/web/components/shared/docx-html-sanitize.ts +59 -0
- package/src/web/components/shared/markdown-code-block.tsx +3 -1
- package/src/web/components/shared/markdown-renderer.tsx +15 -3
- package/src/web/components/shared/markdown-sanitize.ts +65 -0
- package/src/web/components/web-preview/web-preview-tab.tsx +6 -3
- package/src/web/design-share-page/index.html +17 -0
- package/src/web/design-share-page/main.tsx +11 -0
- package/src/web/design-share-page/share-api.ts +131 -0
- package/src/web/design-share-page/share-app.tsx +14 -0
- package/src/web/design-share-page/share-bottom-sheet.tsx +61 -0
- package/src/web/design-share-page/share-canvas.tsx +92 -0
- package/src/web/design-share-page/share-composer.tsx +104 -0
- package/src/web/design-share-page/share-entry.tsx +92 -0
- package/src/web/design-share-page/share-identity.ts +81 -0
- package/src/web/design-share-page/share-name-prompt.tsx +59 -0
- package/src/web/design-share-page/share-panel-content.tsx +57 -0
- package/src/web/design-share-page/share-pins-overlay.tsx +50 -0
- package/src/web/design-share-page/share-review.tsx +123 -0
- package/src/web/design-share-page/share-states.tsx +78 -0
- package/src/web/design-share-page/share-thread-model.ts +83 -0
- package/src/web/design-share-page/share-thread-view.tsx +61 -0
- package/src/web/design-share-page/share-threads-panel.tsx +103 -0
- package/src/web/design-share-page/share-toolbar.tsx +105 -0
- package/src/web/design-share-page/share-ui.ts +30 -0
- package/src/web/design-share-page/share.css +63 -0
- package/src/web/design-share-page/use-share-canvas.ts +51 -0
- package/src/web/design-share-page/use-share-info.ts +34 -0
- package/src/web/design-share-page/use-share-session.ts +75 -0
- package/src/web/design-share-page/use-share-threads.ts +139 -0
- package/src/web/hooks/use-chat.ts +5 -2
- package/src/web/hooks/use-design-session-redirect.ts +3 -2
- package/src/web/hooks/use-git-repo.ts +36 -16
- package/src/web/hooks/use-global-events.ts +4 -0
- package/src/web/hooks/use-inline-blame.ts +17 -11
- package/src/web/hooks/use-notification-clicks.ts +23 -5
- package/src/web/hooks/use-session-file-changes.ts +118 -41
- package/src/web/hooks/use-url-sync.ts +5 -4
- package/src/web/lib/api-settings.ts +2 -0
- package/src/web/lib/chat-attempt-lifecycle.ts +3 -1
- package/src/web/lib/db-tool-call.ts +57 -0
- package/src/web/lib/design/api-design-comments.ts +39 -9
- package/src/web/lib/design/api-design-shares.ts +47 -0
- package/src/web/lib/design/design-comments-prompt.ts +108 -23
- package/src/web/lib/design/design-layout-mode.ts +16 -1
- package/src/web/lib/design/design-share-address-state.ts +88 -0
- package/src/web/lib/design/design-share-expiry.ts +96 -0
- package/src/web/lib/design/design-share-link-status.ts +66 -0
- package/src/web/lib/design/design-view-prefs.ts +20 -1
- package/src/web/lib/design/open-design-tab.ts +54 -1
- package/src/web/lib/git-repo-scope.ts +60 -0
- package/src/web/lib/icons.generated.tsx +3 -1
- package/src/web/lib/model-display-name.ts +16 -0
- package/src/web/lib/open-ai-tab.ts +129 -19
- package/src/web/lib/running-agent-rows.ts +52 -0
- package/src/web/lib/session-file-changes-client.ts +6 -0
- package/src/web/lib/session-file-changes.ts +13 -0
- package/src/web/lib/tab-tool-call.ts +37 -1
- package/src/web/lib/utils.ts +4 -1
- package/src/web/stores/panel-store.ts +13 -1
- package/src/web/stores/panel-utils.ts +9 -4
- package/src/web/stores/settings-store.ts +14 -0
- package/src/web/stores/window-panel-actions.ts +21 -3
- package/src/web/stores/window-panel-persistence.ts +2 -1
- package/src/web/sw-notification-click.ts +12 -1
- package/templates/skill/SKILL.md.tmpl +2 -1
- package/templates/skill/common-tasks.md +6 -0
- package/vite.config.ts +10 -0
- package/vite.share.config.ts +43 -0
- package/dist/web/assets/accounts-settings-section-DU-lTifs.js +0 -1
- package/dist/web/assets/accounts-settings-section-DU-lTifs.js.br +0 -0
- package/dist/web/assets/accounts-settings-section-DU-lTifs.js.gz +0 -0
- package/dist/web/assets/adaptive-context-menu-Cq7ynvIn.js +0 -1
- package/dist/web/assets/adaptive-context-menu-Cq7ynvIn.js.br +0 -0
- package/dist/web/assets/adaptive-context-menu-Cq7ynvIn.js.gz +0 -0
- package/dist/web/assets/agent-session-sheet-At6Rt-Yf.js +0 -2
- package/dist/web/assets/agent-session-sheet-At6Rt-Yf.js.br +0 -0
- package/dist/web/assets/agent-session-sheet-At6Rt-Yf.js.gz +0 -0
- package/dist/web/assets/agent-session-sheet-store-BoBrAw5i.js +0 -1
- package/dist/web/assets/agent-session-window-content-CB_uvabH.js +0 -1
- package/dist/web/assets/agent-session-window-content-CB_uvabH.js.br +0 -0
- package/dist/web/assets/agent-session-window-content-CB_uvabH.js.gz +0 -0
- package/dist/web/assets/ai-resource-editor-Czearm3I.js +0 -1
- package/dist/web/assets/ai-resource-editor-Czearm3I.js.br +0 -0
- package/dist/web/assets/ai-resource-editor-Czearm3I.js.gz +0 -0
- package/dist/web/assets/ai-settings-section-AOgAUCgH.js +0 -1
- package/dist/web/assets/ai-settings-section-B_OFMlrt.js +0 -1
- package/dist/web/assets/ai-settings-section-B_OFMlrt.js.br +0 -0
- package/dist/web/assets/ai-settings-section-B_OFMlrt.js.gz +0 -0
- package/dist/web/assets/android-tab-L7DmLfHG.js +0 -2
- package/dist/web/assets/android-tab-L7DmLfHG.js.br +0 -0
- package/dist/web/assets/android-tab-L7DmLfHG.js.gz +0 -0
- package/dist/web/assets/api-client-DAQfiXg0.js +0 -1
- package/dist/web/assets/api-client-OiA8Ida1.js +0 -1
- package/dist/web/assets/api-client-OiA8Ida1.js.br +0 -0
- package/dist/web/assets/api-client-OiA8Ida1.js.gz +0 -0
- package/dist/web/assets/api-settings-D2H6gjen.js +0 -1
- package/dist/web/assets/api-settings-D2H6gjen.js.br +0 -0
- package/dist/web/assets/api-settings-D2H6gjen.js.gz +0 -0
- package/dist/web/assets/api-settings-DHhcUHtx.js +0 -1
- package/dist/web/assets/api-themes-CE8gPZ3X.js +0 -1
- package/dist/web/assets/appearance-settings-section-s3KWKTBm.js +0 -1
- package/dist/web/assets/appearance-settings-section-s3KWKTBm.js.br +0 -0
- package/dist/web/assets/appearance-settings-section-s3KWKTBm.js.gz +0 -0
- package/dist/web/assets/apps-panel-DaojtUvh.js +0 -1
- package/dist/web/assets/apps-panel-DaojtUvh.js.br +0 -0
- package/dist/web/assets/apps-panel-DaojtUvh.js.gz +0 -0
- package/dist/web/assets/audio-preview-CWcPZqTA.js +0 -1
- package/dist/web/assets/audio-preview-CWcPZqTA.js.br +0 -4
- package/dist/web/assets/audio-preview-CWcPZqTA.js.gz +0 -0
- package/dist/web/assets/branch-review-tab-9UB4ccpF.js +0 -1
- package/dist/web/assets/branch-review-tab-9UB4ccpF.js.br +0 -0
- package/dist/web/assets/branch-review-tab-9UB4ccpF.js.gz +0 -0
- package/dist/web/assets/button-Br60hGkw.js +0 -1
- package/dist/web/assets/button-Br60hGkw.js.br +0 -0
- package/dist/web/assets/button-Br60hGkw.js.gz +0 -0
- package/dist/web/assets/chat-preparation-cache-CRX9WAK5.js +0 -1
- package/dist/web/assets/chat-preparation-cache-CRX9WAK5.js.br +0 -0
- package/dist/web/assets/chat-preparation-cache-CRX9WAK5.js.gz +0 -0
- package/dist/web/assets/chat-tab-DMVb_mgx.js +0 -1
- package/dist/web/assets/chat-tab-DMVb_mgx.js.br +0 -0
- package/dist/web/assets/chat-tab-DMVb_mgx.js.gz +0 -0
- package/dist/web/assets/chat-tab-s7uAnh-h.js +0 -17
- package/dist/web/assets/chat-tab-s7uAnh-h.js.br +0 -0
- package/dist/web/assets/chat-tab-s7uAnh-h.js.gz +0 -0
- package/dist/web/assets/code-editor-JK49X9EX.js +0 -10
- package/dist/web/assets/code-editor-JK49X9EX.js.br +0 -0
- package/dist/web/assets/code-editor-JK49X9EX.js.gz +0 -0
- package/dist/web/assets/codex-reset-credit-button-CxJsBnff.js +0 -1
- package/dist/web/assets/codex-reset-credit-button-CxJsBnff.js.br +0 -0
- package/dist/web/assets/codex-reset-credit-button-CxJsBnff.js.gz +0 -0
- package/dist/web/assets/conflict-editor-rOpVkK9P.js +0 -19
- package/dist/web/assets/conflict-editor-rOpVkK9P.js.br +0 -0
- package/dist/web/assets/conflict-editor-rOpVkK9P.js.gz +0 -0
- package/dist/web/assets/connection-form-tab-BGmb918E.js +0 -4
- package/dist/web/assets/connection-form-tab-BGmb918E.js.br +0 -0
- package/dist/web/assets/connection-form-tab-BGmb918E.js.gz +0 -0
- package/dist/web/assets/context-menu-BoQ6lxte.js +0 -1
- package/dist/web/assets/context-menu-BoQ6lxte.js.br +0 -0
- package/dist/web/assets/context-menu-BoQ6lxte.js.gz +0 -0
- package/dist/web/assets/createLucideIcon-DBXq3G0e.js +0 -1
- package/dist/web/assets/createLucideIcon-DBXq3G0e.js.br +0 -0
- package/dist/web/assets/createLucideIcon-DBXq3G0e.js.gz +0 -0
- package/dist/web/assets/csv-preview-CM7su92m.js +0 -10
- package/dist/web/assets/csv-preview-CM7su92m.js.br +0 -0
- package/dist/web/assets/csv-preview-CM7su92m.js.gz +0 -0
- package/dist/web/assets/database-drivers-section-C6ZKPWaE.js +0 -1
- package/dist/web/assets/database-drivers-section-C6ZKPWaE.js.br +0 -0
- package/dist/web/assets/database-drivers-section-C6ZKPWaE.js.gz +0 -0
- package/dist/web/assets/db-explorer-store-BcLxq-X0.js +0 -1
- package/dist/web/assets/db-explorer-store-BcLxq-X0.js.br +0 -0
- package/dist/web/assets/db-explorer-store-BcLxq-X0.js.gz +0 -0
- package/dist/web/assets/db-tab-parts-DvmnlA6V.js +0 -1
- package/dist/web/assets/db-tab-parts-DvmnlA6V.js.br +0 -0
- package/dist/web/assets/db-tab-parts-DvmnlA6V.js.gz +0 -0
- package/dist/web/assets/db-types-9ac-eYxf.js +0 -1
- package/dist/web/assets/db-types-9ac-eYxf.js.br +0 -0
- package/dist/web/assets/db-types-9ac-eYxf.js.gz +0 -0
- package/dist/web/assets/design-canvas-check-Bo76Q6Qr.js +0 -1
- package/dist/web/assets/design-canvas-check-Bo76Q6Qr.js.br +0 -0
- package/dist/web/assets/design-canvas-check-Bo76Q6Qr.js.gz +0 -0
- package/dist/web/assets/design-export-client-ClwRg798.js +0 -1
- package/dist/web/assets/design-export-client-ClwRg798.js.br +0 -0
- package/dist/web/assets/design-export-client-ClwRg798.js.gz +0 -0
- package/dist/web/assets/design-responsive-dialog-Cdccv3Nw.js +0 -1
- package/dist/web/assets/design-responsive-dialog-Cdccv3Nw.js.br +0 -0
- package/dist/web/assets/design-responsive-dialog-Cdccv3Nw.js.gz +0 -0
- package/dist/web/assets/design-settings-section-CuxZSLAr.js +0 -2
- package/dist/web/assets/design-settings-section-CuxZSLAr.js.br +0 -0
- package/dist/web/assets/design-settings-section-CuxZSLAr.js.gz +0 -0
- package/dist/web/assets/design-skill-suggestion-DZQjG8FV.js +0 -3
- package/dist/web/assets/design-skill-suggestion-DZQjG8FV.js.br +0 -0
- package/dist/web/assets/design-skill-suggestion-DZQjG8FV.js.gz +0 -0
- package/dist/web/assets/design-tab-JlKmHVkd.js +0 -57
- package/dist/web/assets/design-tab-JlKmHVkd.js.br +0 -0
- package/dist/web/assets/design-tab-JlKmHVkd.js.gz +0 -0
- package/dist/web/assets/designs-sidebar-panel-C1EwWf4Z.js +0 -1
- package/dist/web/assets/designs-sidebar-panel-C1EwWf4Z.js.br +0 -0
- package/dist/web/assets/designs-sidebar-panel-C1EwWf4Z.js.gz +0 -0
- package/dist/web/assets/dialog-DOaEX6AK.js +0 -1
- package/dist/web/assets/dialog-DOaEX6AK.js.br +0 -0
- package/dist/web/assets/dialog-DOaEX6AK.js.gz +0 -0
- package/dist/web/assets/diff-viewer-FidH7Nsq.js +0 -4
- package/dist/web/assets/diff-viewer-FidH7Nsq.js.br +0 -0
- package/dist/web/assets/diff-viewer-FidH7Nsq.js.gz +0 -0
- package/dist/web/assets/docx-preview-ENiLGqzy.js +0 -12
- package/dist/web/assets/docx-preview-ENiLGqzy.js.br +0 -0
- package/dist/web/assets/docx-preview-ENiLGqzy.js.gz +0 -0
- package/dist/web/assets/dropdown-menu-DB3yyoVz.js +0 -1
- package/dist/web/assets/dropdown-menu-DB3yyoVz.js.br +0 -0
- package/dist/web/assets/dropdown-menu-DB3yyoVz.js.gz +0 -0
- package/dist/web/assets/edit-diff-preview-D4EqC86X.js +0 -7
- package/dist/web/assets/edit-diff-preview-D4EqC86X.js.br +0 -0
- package/dist/web/assets/edit-diff-preview-D4EqC86X.js.gz +0 -0
- package/dist/web/assets/editor-dialog-DC7dUWAX.js +0 -1
- package/dist/web/assets/editor-dialog-DC7dUWAX.js.br +0 -0
- package/dist/web/assets/editor-dialog-DC7dUWAX.js.gz +0 -0
- package/dist/web/assets/editor-language-service-0pN0TxYN.js +0 -1
- package/dist/web/assets/editor-language-service-0pN0TxYN.js.br +0 -0
- package/dist/web/assets/editor-language-service-0pN0TxYN.js.gz +0 -0
- package/dist/web/assets/explorer-body-tFaUp9_Q.js +0 -2
- package/dist/web/assets/explorer-body-tFaUp9_Q.js.br +0 -0
- package/dist/web/assets/explorer-body-tFaUp9_Q.js.gz +0 -0
- package/dist/web/assets/explorer-model-BmgFEsj1.js +0 -1
- package/dist/web/assets/explorer-model-BmgFEsj1.js.br +0 -0
- package/dist/web/assets/explorer-model-BmgFEsj1.js.gz +0 -0
- package/dist/web/assets/explorer-window-content-XnRTZT_X.js +0 -1
- package/dist/web/assets/explorer-window-content-XnRTZT_X.js.br +0 -0
- package/dist/web/assets/explorer-window-content-XnRTZT_X.js.gz +0 -0
- package/dist/web/assets/extension-manager-section-DEbwRPf1.js +0 -1
- package/dist/web/assets/extension-manager-section-DEbwRPf1.js.br +0 -0
- package/dist/web/assets/extension-manager-section-DEbwRPf1.js.gz +0 -0
- package/dist/web/assets/extension-webview-C9ApceLU.js +0 -12
- package/dist/web/assets/extension-webview-C9ApceLU.js.br +0 -0
- package/dist/web/assets/extension-webview-C9ApceLU.js.gz +0 -0
- package/dist/web/assets/file-diff-lX1a7RLF.js +0 -1
- package/dist/web/assets/file-icons-DpwcJLL4.js +0 -1
- package/dist/web/assets/file-icons-DpwcJLL4.js.br +0 -0
- package/dist/web/assets/file-icons-DpwcJLL4.js.gz +0 -0
- package/dist/web/assets/file-store-Bk1WYfdy.js +0 -1
- package/dist/web/assets/file-store-Bk1WYfdy.js.br +0 -0
- package/dist/web/assets/file-store-Bk1WYfdy.js.gz +0 -0
- package/dist/web/assets/files-settings-section-C8MacVFQ.js +0 -1
- package/dist/web/assets/files-settings-section-C8MacVFQ.js.br +0 -0
- package/dist/web/assets/files-settings-section-C8MacVFQ.js.gz +0 -0
- package/dist/web/assets/filter-dialog-frame-CoWlaNRy.js +0 -1
- package/dist/web/assets/filter-dialog-frame-CoWlaNRy.js.br +0 -0
- package/dist/web/assets/filter-dialog-frame-CoWlaNRy.js.gz +0 -0
- package/dist/web/assets/format-file-meta-C0LKHE3e.js +0 -1
- package/dist/web/assets/format-file-meta-C0LKHE3e.js.br +0 -0
- package/dist/web/assets/format-file-meta-C0LKHE3e.js.gz +0 -0
- package/dist/web/assets/fs-api-BQrIEcvo.js +0 -1
- package/dist/web/assets/fs-api-BQrIEcvo.js.br +0 -0
- package/dist/web/assets/fs-api-BQrIEcvo.js.gz +0 -0
- package/dist/web/assets/general-settings-section-DZRRGdlQ.js +0 -1
- package/dist/web/assets/general-settings-section-DZRRGdlQ.js.br +0 -0
- package/dist/web/assets/general-settings-section-DZRRGdlQ.js.gz +0 -0
- package/dist/web/assets/git-commit-horizontal-BVihXafd.js +0 -1
- package/dist/web/assets/git-log-panel-g2pBnu6r.js +0 -1
- package/dist/web/assets/git-log-panel-g2pBnu6r.js.br +0 -0
- package/dist/web/assets/git-log-panel-g2pBnu6r.js.gz +0 -0
- package/dist/web/assets/git-repo-store-BOYLnV67.js +0 -1
- package/dist/web/assets/git-repo-store-BOYLnV67.js.br +0 -0
- package/dist/web/assets/git-repo-store-BOYLnV67.js.gz +0 -0
- package/dist/web/assets/git-review-tab-BzI5mxWd.js +0 -3
- package/dist/web/assets/git-review-tab-BzI5mxWd.js.br +0 -0
- package/dist/web/assets/git-review-tab-BzI5mxWd.js.gz +0 -0
- package/dist/web/assets/glide-data-grid-BxvI3ehr.js +0 -177
- package/dist/web/assets/glide-data-grid-BxvI3ehr.js.br +0 -0
- package/dist/web/assets/glide-data-grid-BxvI3ehr.js.gz +0 -0
- package/dist/web/assets/grid-save-dialog-D55Po6Vu.js +0 -2
- package/dist/web/assets/grid-save-dialog-D55Po6Vu.js.br +0 -0
- package/dist/web/assets/grid-save-dialog-D55Po6Vu.js.gz +0 -0
- package/dist/web/assets/group-chat-tab-CoMC-Fx1.js +0 -1
- package/dist/web/assets/group-chat-tab-CoMC-Fx1.js.br +0 -0
- package/dist/web/assets/group-chat-tab-CoMC-Fx1.js.gz +0 -0
- package/dist/web/assets/icons-JMA45Ifw.js +0 -1
- package/dist/web/assets/icons-JMA45Ifw.js.br +0 -0
- package/dist/web/assets/icons-JMA45Ifw.js.gz +0 -0
- package/dist/web/assets/image-preview-D7KR11Xo.js +0 -1
- package/dist/web/assets/impexp-tab-JF6JF8eO.js +0 -1
- package/dist/web/assets/impexp-tab-JF6JF8eO.js.br +0 -0
- package/dist/web/assets/impexp-tab-JF6JF8eO.js.gz +0 -0
- package/dist/web/assets/index-DyYGWFVa.css +0 -1
- package/dist/web/assets/index-DyYGWFVa.css.br +0 -0
- package/dist/web/assets/index-DyYGWFVa.css.gz +0 -0
- package/dist/web/assets/index-ItT-dTPV.js +0 -59
- package/dist/web/assets/index-ItT-dTPV.js.br +0 -0
- package/dist/web/assets/index-ItT-dTPV.js.gz +0 -0
- package/dist/web/assets/input-CKGoVpYv.js +0 -1
- package/dist/web/assets/jira-watcher-section-CvyXLyjO.js +0 -1
- package/dist/web/assets/keybindings-store-CeEtx6js.js +0 -1
- package/dist/web/assets/keyboard-shortcuts-section-MUIE0Rvf.js +0 -1
- package/dist/web/assets/keyboard-shortcuts-section-MUIE0Rvf.js.br +0 -0
- package/dist/web/assets/keyboard-shortcuts-section-MUIE0Rvf.js.gz +0 -0
- package/dist/web/assets/language-servers-section-DiYURB24.js +0 -2
- package/dist/web/assets/language-servers-section-DiYURB24.js.br +0 -0
- package/dist/web/assets/language-servers-section-DiYURB24.js.gz +0 -0
- package/dist/web/assets/logs-app-CJlNqOdc.js +0 -13
- package/dist/web/assets/logs-app-CJlNqOdc.js.br +0 -0
- package/dist/web/assets/logs-app-CJlNqOdc.js.gz +0 -0
- package/dist/web/assets/logs-tab-BoAlm_8H.js +0 -1
- package/dist/web/assets/logs-window-content-nNm4jl1s.js +0 -1
- package/dist/web/assets/lsp-client-LnKiMWeG.js +0 -1
- package/dist/web/assets/lsp-client-LnKiMWeG.js.br +0 -0
- package/dist/web/assets/lsp-client-LnKiMWeG.js.gz +0 -0
- package/dist/web/assets/markdown-renderer-8Hef5MLx.js +0 -1
- package/dist/web/assets/markdown-renderer-BH_CFPJw.js +0 -5
- package/dist/web/assets/markdown-renderer-BH_CFPJw.js.br +0 -0
- package/dist/web/assets/markdown-renderer-BH_CFPJw.js.gz +0 -0
- package/dist/web/assets/media-url-CsdZ6q_T.js +0 -1
- package/dist/web/assets/metric-chart-canvas-LAMaVJTu.js +0 -1
- package/dist/web/assets/metric-chart-canvas-LAMaVJTu.js.br +0 -0
- package/dist/web/assets/metric-chart-canvas-LAMaVJTu.js.gz +0 -0
- package/dist/web/assets/mobile-bottom-sheet-CGmmdp_5.js +0 -1
- package/dist/web/assets/mobile-bottom-sheet-CGmmdp_5.js.br +0 -0
- package/dist/web/assets/mobile-bottom-sheet-CGmmdp_5.js.gz +0 -0
- package/dist/web/assets/mobile-explorer-sheet-Dh2ZECzL.js +0 -1
- package/dist/web/assets/mobile-explorer-sheet-Dh2ZECzL.js.br +0 -0
- package/dist/web/assets/mobile-explorer-sheet-Dh2ZECzL.js.gz +0 -0
- package/dist/web/assets/new-design-dialog-CgBUrVFx.js +0 -1
- package/dist/web/assets/new-design-dialog-CgBUrVFx.js.br +0 -0
- package/dist/web/assets/new-design-dialog-CgBUrVFx.js.gz +0 -0
- package/dist/web/assets/notification-store-CXC7u6MW.js +0 -1
- package/dist/web/assets/notifications-settings-section-CPbx23nU.js +0 -1
- package/dist/web/assets/notifications-settings-section-CPbx23nU.js.br +0 -0
- package/dist/web/assets/notifications-settings-section-CPbx23nU.js.gz +0 -0
- package/dist/web/assets/onboarding-entry--MWe4amV.js +0 -1
- package/dist/web/assets/onboarding-entry--MWe4amV.js.br +0 -0
- package/dist/web/assets/onboarding-entry--MWe4amV.js.gz +0 -0
- package/dist/web/assets/onboarding-quick-orientation-DZYQekRt.js +0 -1
- package/dist/web/assets/onboarding-quick-orientation-DZYQekRt.js.br +0 -0
- package/dist/web/assets/onboarding-quick-orientation-DZYQekRt.js.gz +0 -0
- package/dist/web/assets/open-db-tabs-CkQe49j_.js +0 -1
- package/dist/web/assets/open-db-tabs-CkQe49j_.js.br +0 -0
- package/dist/web/assets/open-db-tabs-CkQe49j_.js.gz +0 -0
- package/dist/web/assets/open-settings-DsGBn73g.js +0 -1
- package/dist/web/assets/overview-panel-CcUGDvnt.js +0 -1
- package/dist/web/assets/overview-panel-CcUGDvnt.js.br +0 -0
- package/dist/web/assets/overview-panel-CcUGDvnt.js.gz +0 -0
- package/dist/web/assets/panel-store-DmP16Fo0.js +0 -1
- package/dist/web/assets/panel-store-DmP16Fo0.js.br +0 -0
- package/dist/web/assets/panel-store-DmP16Fo0.js.gz +0 -0
- package/dist/web/assets/patch-tab-metadata-B-jH5svY.js +0 -1
- package/dist/web/assets/pdf-preview-DMUIWb9B.js +0 -1
- package/dist/web/assets/pdf-preview-DMUIWb9B.js.br +0 -0
- package/dist/web/assets/pdf-preview-DMUIWb9B.js.gz +0 -0
- package/dist/web/assets/performance-panel-CJDLUwrs.js +0 -3
- package/dist/web/assets/performance-panel-CJDLUwrs.js.br +0 -0
- package/dist/web/assets/performance-panel-CJDLUwrs.js.gz +0 -0
- package/dist/web/assets/portal-container-context-BXAsDqrB.js +0 -1
- package/dist/web/assets/ppmbot-settings-section-DTCTPQ-R.js +0 -1
- package/dist/web/assets/ppmbot-settings-section-DTCTPQ-R.js.br +0 -0
- package/dist/web/assets/ppmbot-settings-section-DTCTPQ-R.js.gz +0 -0
- package/dist/web/assets/pptx-export-BxmgltJ4.js +0 -111
- package/dist/web/assets/pptx-export-BxmgltJ4.js.br +0 -0
- package/dist/web/assets/pptx-export-BxmgltJ4.js.gz +0 -0
- package/dist/web/assets/problems-panel-DX32QDH_.js +0 -1
- package/dist/web/assets/problems-panel-DX32QDH_.js.br +0 -0
- package/dist/web/assets/problems-panel-DX32QDH_.js.gz +0 -0
- package/dist/web/assets/process-row-format-CBw-CQCx.js +0 -1
- package/dist/web/assets/process-table-CX-NhOg6.js +0 -1
- package/dist/web/assets/process-table-CX-NhOg6.js.br +0 -0
- package/dist/web/assets/process-table-CX-NhOg6.js.gz +0 -0
- package/dist/web/assets/project-framework-store-Bi5dyHdx.js +0 -1
- package/dist/web/assets/project-store-CEGoLMOl.js +0 -1
- package/dist/web/assets/project-store-CEGoLMOl.js.br +0 -0
- package/dist/web/assets/project-store-CEGoLMOl.js.gz +0 -0
- package/dist/web/assets/proxy-settings-section-BGNvFe7e.js +0 -1
- package/dist/web/assets/proxy-settings-section-BGNvFe7e.js.br +0 -0
- package/dist/web/assets/proxy-settings-section-BGNvFe7e.js.gz +0 -0
- package/dist/web/assets/query-audit-section-DTHI5GP7.js +0 -1
- package/dist/web/assets/query-audit-section-DTHI5GP7.js.br +0 -0
- package/dist/web/assets/query-audit-section-DTHI5GP7.js.gz +0 -0
- package/dist/web/assets/query-tab-qMlIkHRk.js +0 -22
- package/dist/web/assets/query-tab-qMlIkHRk.js.br +0 -0
- package/dist/web/assets/query-tab-qMlIkHRk.js.gz +0 -0
- package/dist/web/assets/react-PkBxFcos.js +0 -1
- package/dist/web/assets/remote-access-settings-section-t2BYAA9g.js +0 -1
- package/dist/web/assets/remote-access-settings-section-t2BYAA9g.js.br +0 -0
- package/dist/web/assets/remote-access-settings-section-t2BYAA9g.js.gz +0 -0
- package/dist/web/assets/remote-desktop-clipboard-notice-ChUU6Jts.js +0 -1
- package/dist/web/assets/remote-desktop-clipboard-notice-ChUU6Jts.js.br +0 -0
- package/dist/web/assets/remote-desktop-clipboard-notice-ChUU6Jts.js.gz +0 -0
- package/dist/web/assets/remote-desktop-mobile-sheet-_bopEtCa.js +0 -2
- package/dist/web/assets/remote-desktop-mobile-sheet-_bopEtCa.js.br +0 -0
- package/dist/web/assets/remote-desktop-mobile-sheet-_bopEtCa.js.gz +0 -0
- package/dist/web/assets/remote-desktop-mobile-view-D9G4kDfa.js +0 -1
- package/dist/web/assets/remote-desktop-mobile-view-D9G4kDfa.js.br +0 -0
- package/dist/web/assets/remote-desktop-mobile-view-D9G4kDfa.js.gz +0 -0
- package/dist/web/assets/remote-desktop-readiness-gate-Yz9eVB3-.js +0 -1
- package/dist/web/assets/remote-desktop-readiness-gate-Yz9eVB3-.js.br +0 -0
- package/dist/web/assets/remote-desktop-readiness-gate-Yz9eVB3-.js.gz +0 -0
- package/dist/web/assets/remote-desktop-settings-section-BTGGSjZY.js +0 -1
- package/dist/web/assets/remote-desktop-settings-section-BTGGSjZY.js.br +0 -0
- package/dist/web/assets/remote-desktop-settings-section-BTGGSjZY.js.gz +0 -0
- package/dist/web/assets/remote-desktop-window-content-B8ZaG2bL.js +0 -1
- package/dist/web/assets/remote-desktop-window-content-B8ZaG2bL.js.br +0 -0
- package/dist/web/assets/remote-desktop-window-content-B8ZaG2bL.js.gz +0 -0
- package/dist/web/assets/rename-object-dialog-FSlcdUoB.js +0 -1
- package/dist/web/assets/rename-object-dialog-FSlcdUoB.js.br +0 -0
- package/dist/web/assets/rename-object-dialog-FSlcdUoB.js.gz +0 -0
- package/dist/web/assets/review-code-CfuJeLYd.js +0 -5
- package/dist/web/assets/review-code-CfuJeLYd.js.br +0 -0
- package/dist/web/assets/review-code-CfuJeLYd.js.gz +0 -0
- package/dist/web/assets/run-in-terminal-Bk9Bw7G1.js +0 -1
- package/dist/web/assets/run-in-terminal-button-DFPQUlZs.js +0 -1
- package/dist/web/assets/save-as-dialog-Bj9VpGYf.js +0 -1
- package/dist/web/assets/save-as-dialog-Bj9VpGYf.js.br +0 -0
- package/dist/web/assets/save-as-dialog-Bj9VpGYf.js.gz +0 -0
- package/dist/web/assets/schedules-settings-section-DNJ4K7zS.js +0 -1
- package/dist/web/assets/schedules-settings-section-DNJ4K7zS.js.br +0 -0
- package/dist/web/assets/schedules-settings-section-DNJ4K7zS.js.gz +0 -0
- package/dist/web/assets/scroll-area-6Am1KMiB.js +0 -1
- package/dist/web/assets/scroll-area-6Am1KMiB.js.br +0 -0
- package/dist/web/assets/scroll-area-6Am1KMiB.js.gz +0 -0
- package/dist/web/assets/send-to-chat-Bcm_Lcog.js +0 -1
- package/dist/web/assets/send-to-chat-Bcm_Lcog.js.br +0 -0
- package/dist/web/assets/send-to-chat-Bcm_Lcog.js.gz +0 -0
- package/dist/web/assets/separator-BOYUIPkH.js +0 -1
- package/dist/web/assets/services-panel-CBRTsROB.js +0 -1
- package/dist/web/assets/services-panel-CBRTsROB.js.br +0 -0
- package/dist/web/assets/services-panel-CBRTsROB.js.gz +0 -0
- package/dist/web/assets/session-changes-bar-BRopa3Dh.js +0 -1
- package/dist/web/assets/session-changes-bar-BRopa3Dh.js.br +0 -0
- package/dist/web/assets/session-changes-bar-BRopa3Dh.js.gz +0 -0
- package/dist/web/assets/session-list-sync-triggers-DitiR5h1.js +0 -1
- package/dist/web/assets/session-list-sync-triggers-DitiR5h1.js.br +0 -0
- package/dist/web/assets/session-list-sync-triggers-DitiR5h1.js.gz +0 -0
- package/dist/web/assets/session-review-tab--kNB_FKQ.js +0 -6
- package/dist/web/assets/session-review-tab--kNB_FKQ.js.br +0 -0
- package/dist/web/assets/session-review-tab--kNB_FKQ.js.gz +0 -0
- package/dist/web/assets/settings-body-B-s0fEjc.js +0 -1
- package/dist/web/assets/settings-body-B-s0fEjc.js.br +0 -0
- package/dist/web/assets/settings-body-B-s0fEjc.js.gz +0 -0
- package/dist/web/assets/settings-categories-CcR9eL3x.js +0 -1
- package/dist/web/assets/settings-categories-CcR9eL3x.js.br +0 -0
- package/dist/web/assets/settings-categories-CcR9eL3x.js.gz +0 -0
- package/dist/web/assets/settings-section-content-BJ35dy5r.js +0 -1
- package/dist/web/assets/settings-section-content-DckksvTg.js +0 -2
- package/dist/web/assets/settings-section-content-DckksvTg.js.br +0 -0
- package/dist/web/assets/settings-section-content-DckksvTg.js.gz +0 -0
- package/dist/web/assets/settings-store-WeJyQVL8.js +0 -2
- package/dist/web/assets/settings-store-WeJyQVL8.js.br +0 -0
- package/dist/web/assets/settings-store-WeJyQVL8.js.gz +0 -0
- package/dist/web/assets/settings-tab-BlX33GEN.js +0 -1
- package/dist/web/assets/settings-window-content-B-7yV1_q.js +0 -1
- package/dist/web/assets/slash-command-picker-BBcy6w6m.js +0 -1
- package/dist/web/assets/slash-command-picker-BBcy6w6m.js.br +0 -0
- package/dist/web/assets/slash-command-picker-BBcy6w6m.js.gz +0 -0
- package/dist/web/assets/sortable-header-B9gfWik4.js +0 -1
- package/dist/web/assets/sortable-header-B9gfWik4.js.br +0 -0
- package/dist/web/assets/sortable-header-B9gfWik4.js.gz +0 -0
- package/dist/web/assets/sql-completion-provider-CaTHVr1l.js +0 -5
- package/dist/web/assets/sql-completion-provider-CaTHVr1l.js.br +0 -0
- package/dist/web/assets/sql-completion-provider-CaTHVr1l.js.gz +0 -0
- package/dist/web/assets/sql-object-tab-DVo4bxRI.js +0 -1
- package/dist/web/assets/sql-object-tab-DVo4bxRI.js.br +0 -0
- package/dist/web/assets/sql-object-tab-DVo4bxRI.js.gz +0 -0
- package/dist/web/assets/sqlite-viewer-BGfIpl5x.js +0 -1
- package/dist/web/assets/sqlite-viewer-BGfIpl5x.js.br +0 -0
- package/dist/web/assets/sqlite-viewer-BGfIpl5x.js.gz +0 -0
- package/dist/web/assets/start-ellipsis-rBh37k0n.js +0 -1
- package/dist/web/assets/structure-save-dialog-STK_RFCK.js +0 -1
- package/dist/web/assets/structure-save-dialog-STK_RFCK.js.br +0 -0
- package/dist/web/assets/structure-save-dialog-STK_RFCK.js.gz +0 -0
- package/dist/web/assets/structure-tab-DuLnsTC4.js +0 -3
- package/dist/web/assets/structure-tab-DuLnsTC4.js.br +0 -0
- package/dist/web/assets/structure-tab-DuLnsTC4.js.gz +0 -0
- package/dist/web/assets/system-monitor-body-BIjW16Pb.js +0 -2
- package/dist/web/assets/system-monitor-body-BIjW16Pb.js.br +0 -0
- package/dist/web/assets/system-monitor-body-BIjW16Pb.js.gz +0 -0
- package/dist/web/assets/system-monitor-tab-B6_tC9LO.js +0 -1
- package/dist/web/assets/system-monitor-window-content-CwBzqMUe.js +0 -1
- package/dist/web/assets/tab-host-window-content-CpdEjkZd.js +0 -1
- package/dist/web/assets/tab-host-window-content-CpdEjkZd.js.br +0 -0
- package/dist/web/assets/tab-host-window-content-CpdEjkZd.js.gz +0 -0
- package/dist/web/assets/tab-store-nNzRNfVV.js +0 -1
- package/dist/web/assets/table-tab-B5asfTBP.js +0 -2
- package/dist/web/assets/table-tab-B5asfTBP.js.br +0 -0
- package/dist/web/assets/table-tab-B5asfTBP.js.gz +0 -0
- package/dist/web/assets/telegram-bot-token-field-BiqKbXwE.js +0 -1
- package/dist/web/assets/telegram-bot-token-field-BiqKbXwE.js.br +0 -0
- package/dist/web/assets/telegram-bot-token-field-BiqKbXwE.js.gz +0 -0
- package/dist/web/assets/terminal-tab-DpMONMVB.js +0 -3
- package/dist/web/assets/terminal-tab-DpMONMVB.js.br +0 -0
- package/dist/web/assets/terminal-tab-DpMONMVB.js.gz +0 -0
- package/dist/web/assets/tool-cards-DoDKxqN4.js +0 -14
- package/dist/web/assets/tool-cards-DoDKxqN4.js.br +0 -0
- package/dist/web/assets/tool-cards-DoDKxqN4.js.gz +0 -0
- package/dist/web/assets/use-at-most-wide-BQFi1Sjv.js +0 -1
- package/dist/web/assets/use-blob-url-D7ElNPnW.js +0 -1
- package/dist/web/assets/use-db-driver-installed-BscdI-wS.js +0 -1
- package/dist/web/assets/use-db-read-DYuyNA5i.js +0 -1
- package/dist/web/assets/use-db-read-DYuyNA5i.js.br +0 -0
- package/dist/web/assets/use-db-read-DYuyNA5i.js.gz +0 -0
- package/dist/web/assets/use-db-tab-Cr4lXxwF.js +0 -1
- package/dist/web/assets/use-db-tab-Cr4lXxwF.js.br +0 -0
- package/dist/web/assets/use-db-tab-Cr4lXxwF.js.gz +0 -0
- package/dist/web/assets/use-design-canvas-check-DKlyMp-S.js +0 -1
- package/dist/web/assets/use-design-canvas-check-DKlyMp-S.js.br +0 -0
- package/dist/web/assets/use-design-canvas-check-DKlyMp-S.js.gz +0 -0
- package/dist/web/assets/use-h264-canvas-decoder-DAjp9oHe.js +0 -1
- package/dist/web/assets/use-h264-canvas-decoder-DAjp9oHe.js.br +0 -0
- package/dist/web/assets/use-h264-canvas-decoder-DAjp9oHe.js.gz +0 -0
- package/dist/web/assets/use-inline-blame-DS0HrHJ3.js +0 -16
- package/dist/web/assets/use-inline-blame-DS0HrHJ3.js.br +0 -0
- package/dist/web/assets/use-inline-blame-DS0HrHJ3.js.gz +0 -0
- package/dist/web/assets/use-is-mobile-BXHbkfs9.js +0 -1
- package/dist/web/assets/use-lsp-BTVDYrt6.js +0 -6
- package/dist/web/assets/use-lsp-BTVDYrt6.js.br +0 -0
- package/dist/web/assets/use-lsp-BTVDYrt6.js.gz +0 -0
- package/dist/web/assets/use-monaco-theme-DqnhExsm.js +0 -1
- package/dist/web/assets/use-opener-focus-C5L5UUJs.js +0 -1
- package/dist/web/assets/use-process-kill-D-SGQxDn.js +0 -1
- package/dist/web/assets/use-process-kill-D-SGQxDn.js.br +0 -0
- package/dist/web/assets/use-process-kill-D-SGQxDn.js.gz +0 -0
- package/dist/web/assets/use-sql-schema-info-DRb9dAKi.js +0 -4
- package/dist/web/assets/use-sql-schema-info-DRb9dAKi.js.br +0 -0
- package/dist/web/assets/use-sql-schema-info-DRb9dAKi.js.gz +0 -0
- package/dist/web/assets/use-visual-viewport-CQ6-A0Dt.js +0 -1
- package/dist/web/assets/use-websocket-C6RnlNVJ.js +0 -1
- package/dist/web/assets/vendor-markdown-QKPNiWEd.js +0 -291
- package/dist/web/assets/vendor-markdown-QKPNiWEd.js.br +0 -0
- package/dist/web/assets/vendor-markdown-QKPNiWEd.js.gz +0 -0
- package/dist/web/assets/vendor-ui-CS1GvlOm.js +0 -45
- package/dist/web/assets/vendor-ui-CS1GvlOm.js.br +0 -0
- package/dist/web/assets/vendor-ui-CS1GvlOm.js.gz +0 -0
- package/dist/web/assets/video-preview-CYzeUPfH.js +0 -1
- package/dist/web/assets/video-preview-CYzeUPfH.js.br +0 -0
- package/dist/web/assets/video-preview-CYzeUPfH.js.gz +0 -0
- package/dist/web/assets/voice-settings-section-C01d-toF.js +0 -1
- package/dist/web/assets/voice-settings-section-C01d-toF.js.br +0 -0
- package/dist/web/assets/voice-settings-section-C01d-toF.js.gz +0 -0
- package/dist/web/assets/web-preview-tab-F5C3quQs.js +0 -1
- package/dist/web/assets/web-preview-tab-F5C3quQs.js.br +0 -0
- package/dist/web/assets/web-preview-tab-F5C3quQs.js.gz +0 -0
- package/dist/web/assets/window-pip-registry-DSoB7T3k.js +0 -1
- package/dist/web/assets/window-store-zJczRsv4.js +0 -1
- package/dist/web/assets/window-store-zJczRsv4.js.br +0 -0
- package/dist/web/assets/window-store-zJczRsv4.js.gz +0 -0
- package/dist/web/assets/ws-auth-cWeQ7_61.js +0 -1
- /package/dist/web/assets/{__vite-browser-external-B4VNaaaA.js → __vite-browser-external-DL4jXWNt.js} +0 -0
- /package/dist/web/assets/{clipboard-D3XnL7CB.js → clipboard-D-VCry-F.js} +0 -0
- /package/dist/web/assets/{clipboard-D3XnL7CB.js.br → clipboard-D-VCry-F.js.br} +0 -0
- /package/dist/web/assets/{clipboard-D3XnL7CB.js.gz → clipboard-D-VCry-F.js.gz} +0 -0
- /package/dist/web/assets/{code-fence-vHZyBehL.js → code-fence-BK57HRhJ.js} +0 -0
- /package/dist/web/assets/{design-system-status-label-Cus6e2Df.js → design-system-status-label-KA4ESjWe.js} +0 -0
- /package/dist/web/assets/{format-bytes-B2kC4sbB.js → format-bytes-he3TR0bV.js} +0 -0
- /package/dist/web/assets/{session-turns-gmrmXzeg.js → session-turns-D3QpTtCq.js} +0 -0
- /package/dist/web/assets/{session-turns-gmrmXzeg.js.br → session-turns-D3QpTtCq.js.br} +0 -0
- /package/dist/web/assets/{session-turns-gmrmXzeg.js.gz → session-turns-D3QpTtCq.js.gz} +0 -0
- /package/dist/web/assets/{vendor-xterm-sFX94k3w.js → vendor-xterm-DRhOk3kW.js} +0 -0
- /package/dist/web/assets/{vendor-xterm-sFX94k3w.js.br → vendor-xterm-DRhOk3kW.js.br} +0 -0
- /package/dist/web/assets/{vendor-xterm-sFX94k3w.js.gz → vendor-xterm-DRhOk3kW.js.gz} +0 -0
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{C as t,S as n}from"./vendor-markdown-QKPNiWEd.js";import"./vendor-ui-CS1GvlOm.js";import{A as r,Bt as i,Hn as a,Hr as o,I as s,L as c,M as l,Yr as u,_n as d,ci as f,gr as p,gt as m,hr as h,kn as g,m as _,xn as v}from"./icons-JMA45Ifw.js";import{o as ee,r as te}from"./api-client-OiA8Ida1.js";import{n as y}from"./utils-Bslrbb-G.js";import"./portal-container-context-BXAsDqrB.js";import"./panel-store-DmP16Fo0.js";import"./window-store-zJczRsv4.js";import{i as b}from"./project-store-CEGoLMOl.js";import"./project-framework-store-Bi5dyHdx.js";import"./session-list-sync-triggers-DitiR5h1.js";import{t as ne}from"./tab-store-nNzRNfVV.js";import{n as x}from"./use-is-mobile-BXHbkfs9.js";import{t as S}from"./button-Br60hGkw.js";import{n as C}from"./file-icons-DpwcJLL4.js";import"./patch-tab-metadata-B-jH5svY.js";import{t as w}from"./mobile-bottom-sheet-CGmmdp_5.js";import"./use-visual-viewport-CQ6-A0Dt.js";import"./start-ellipsis-rBh37k0n.js";import"./libesm-B6LsX5wH.js";import{i as T,t as re}from"./session-turns-gmrmXzeg.js";import{a as ie,b as E,d as ae,h as oe,i as se,l as ce,m as le,n as D,o as O,p as ue,r as k,x as A,y as de}from"./session-changes-bar-BRopa3Dh.js";import{a as j,c as M,d as fe,f as pe,l as me,m as he,n as N,o as ge,r as P,s as F,t as I,u as L}from"./review-code-CfuJeLYd.js";var R=e(t(),1),_e=5e3,z=e=>e.slice(Math.max(e.lastIndexOf(`/`),e.lastIndexOf(`\\`))+1);function ve(e,t){return{key:e.key,rows:e.rows,oldFrom:e.oldFrom,oldTo:e.oldTo,added:e.added,removed:e.removed,base:t.base,drawnVersion:t.version,...e.calls?{calls:e.calls}:{}}}function B(e){let{projectName:t,sessionId:n}=e,[r,i]=(0,R.useState)(null),[a,o]=(0,R.useState)([]),[s,c]=(0,R.useState)(new Map),[l,u]=(0,R.useState)(new Map),[d,f]=(0,R.useState)(new Map),[p,m]=(0,R.useState)(null),[h,g]=(0,R.useState)(null),[_,v]=(0,R.useState)(null),[ee,te]=(0,R.useState)(!1),[y,b]=(0,R.useState)(null),[ne,x]=(0,R.useState)(null),S=(0,R.useRef)(0),C=(0,R.useRef)(-1),w=(0,R.useRef)(Promise.resolve()),T=(0,R.useRef)(new Map),re=(0,R.useRef)([]),ie=(0,R.useRef)([]);ie.current=[...new Set([...e.paths,...re.current])];let E=(0,R.useCallback)((e,t)=>{S.current>0||t<C.current||(i(e),o(t=>{let n=new Set(t),r=e.map(e=>e.path).filter(e=>!n.has(e));return r.length?[...t,...r]:t}))},[]),D=(0,R.useRef)(null),O=(0,R.useCallback)(async()=>{if(!t||!n)return;D.current?.abort();let e=new AbortController;D.current=e;let r=performance.now();te(!0),b(null);try{let i=await le(t,n,ie.current,e.signal);e.signal.aborted||E(i,r)}catch(t){e.signal.aborted||b(t instanceof Error?t.message:`Could not list this chat's changes`)}finally{e.signal.aborted||te(!1)}},[t,n,E]);(0,R.useEffect)(()=>(O(),()=>D.current?.abort()),[O]),(0,R.useEffect)(()=>{let e=e=>{let r=e.detail;r.projectName!==t||r.sessionId!==n||(re.current=r.paths,E(r.files,r.askedAt))};return window.addEventListener(ce,e),()=>window.removeEventListener(ce,e)},[t,n,E]);let k=(0,R.useMemo)(()=>ge({order:a,files:r??[],reverted:s,gone:l,pending:d}),[a,r,s,l,d]),A=(0,R.useMemo)(()=>fe(k),[k]),j=p?k.find(e=>e.path===p.path)??null:null,he=(0,R.useRef)(void 0);(0,R.useEffect)(()=>{if(!r)return;let t=e.select?.path&&e.select.at!==he.current?e.select:null;if(t){he.current=t.at;let e=k.find(e=>e.path===t.path);if(e){m(F(e));return}}m(e=>{if(!e)return S.current>0?null:M(k,null);let t=k.find(t=>t.path===e.path);return t?t.blocks.some(t=>t.key===e.key)?e:F(t):M(k,null)})},[r,k,e.select?.path,e.select?.at]);let N=j&&!j.gone&&j.file.blocks?j.file:null,I=N?se(N):``;(0,R.useEffect)(()=>{if(!t||!n||!N)return;let e=new AbortController,r=I;return oe(t,n,N.path,e.signal).then(t=>{e.signal.aborted||g(t)}).catch(t=>{e.signal.aborted||v({key:r,message:t instanceof Error?t.message:`Could not load this file's diff`})}),()=>e.abort()},[t,n,I]);let L=(0,R.useMemo)(()=>{if(!j)return{kind:`none`};let e=s.get(j.path)??[],t=new Map;for(let e of j.blocks){let n=d.get(P(j.path,e.key));n&&t.set(e.key,n)}let n=null;if(j.gone){let e=l.get(j.path);e&&e.text!==null&&(n={original:e.text,modified:e.text,version:``,base:e.file.base??``,kept:new Set})}else if(j.file.blocks){if(h?.path!==j.path)return _?.key===I?{kind:`error`,message:_.message}:{kind:`loading`};let e=new Set((j.file.blocks??[]).filter(e=>e.kept).map(e=>e.key)),t=new Map((j.file.blocks??[]).flatMap(e=>e.calls?.length?[[e.key,e.calls]]:[]));n={original:h.original,modified:h.modified,version:h.version,base:h.base??``,kept:e,calls:t}}let r=n&&me({...n,reverted:e,pending:t});return!n||!r?{kind:`whole`,review:j,undoId:j.gone?l.get(j.path)?.undoId:void 0}:{kind:`blocks`,review:j,model:r,version:n.version,original:n.original,base:n.base}},[j,s,l,d,h,_,I]),B=L.kind===`blocks`?L.model.stale.join(`
|
|
2
|
-
`):``;(0,R.useEffect)(()=>{if(!B||L.kind!==`blocks`)return;let e=L.review.path,t=new Set(B.split(`
|
|
3
|
-
`));c(n=>new Map(n).set(e,(n.get(e)??[]).filter(e=>!t.has(e.key))))},[B]);let V=(0,R.useRef)(null),ye=(0,R.useRef)(0),H=(0,R.useCallback)(e=>{V.current&&clearTimeout(V.current);let t=++ye.current;x({...e,id:t}),V.current=setTimeout(()=>x(e=>e?.id===t?null:e),_e)},[]),be=(0,R.useCallback)(()=>{V.current&&clearTimeout(V.current),x(null)},[]);(0,R.useEffect)(()=>()=>{V.current&&clearTimeout(V.current)},[]);let U=(e,t)=>{let n=T.current.get(e),r=t;for(let e=0;n?.has(r)&&e<64;e++)r=n.get(r);return r},W=(e,t,n)=>{if(t===n)return;let r=T.current.get(e)??new Map;T.current.set(e,r.set(t,n))},G=e=>{let t=new Map(e.map(e=>[e.path,e.file]));i(n=>{if(!n)return n;let r=n.flatMap(e=>t.has(e.path)?t.get(e.path)?[t.get(e.path)]:[]:[e]);for(let t of e)t.file&&!n.some(e=>e.path===t.path)&&r.push(t.file);return r}),o(t=>{let n=e.filter(e=>e.file&&!t.includes(e.path)).map(e=>e.path);return n.length?[...t,...n]:t}),u(t=>{if(!e.some(e=>e.file&&t.has(e.path)))return t;let n=new Map(t);for(let t of e)t.file&&n.delete(t.path);return n})},K=e=>{let t=e.find(e=>e.stale||e.error);return t?(H(t.error?{lead:t.error}:{lead:``,name:z(t.path),tail:` changed before the answer reached it, so it is shown again as it is now.`}),!0):!1},xe=e=>{S.current++;let r=async()=>{try{return await e()}finally{S.current--,C.current=performance.now(),t&&n&&ae({projectName:t,sessionId:n})}},i=w.current.then(r,r);return w.current=i,i},q=(e,r,i)=>{if(!t||!n||r.length===0)return Promise.resolve(null);let a=i.states??new Map,o=i.ghosts??new Map;a.size&&f(e=>new Map([...e,...a])),o.size&&c(e=>{let t=new Map(e);for(let[n,r]of o)t.set(n,[...(e.get(n)??[]).filter(e=>!r.some(t=>t.key===e.key)),...r]);return t});let s=e=>{c(t=>{let n=new Map(t);for(let[r,i]of o)n.set(r,(t.get(r)??[]).flatMap(t=>i.includes(t)?[e(t,r)].filter(e=>!!e):[t]));return n})};return xe(async()=>{let i=r.map(e=>({path:e.review.path,version:U(e.review.path,e.drawn),...e.keys?{keys:e.keys}:{}}));try{let a=await ue(t,n,e,i),o=new Set(a.files.filter(e=>e.stale||e.error).map(e=>e.path));if(s((e,t)=>o.has(t)?null:{...e,undoId:a.undoId}),a.files.forEach((e,t)=>{o.has(e.path)||W(e.path,i[t]?.version??``,e.file?.version??``)}),e===`revert`){let e=r.filter(e=>a.files.some(t=>t.path===e.review.path&&!o.has(t.path)&&!t.file));e.length&&u(t=>{let n=new Map(t);for(let t of e)n.set(t.review.path,{file:t.review.file,text:t.text??null,undoId:a.undoId});return n})}return G(a.files),a}catch(e){return s(()=>null),H({lead:e instanceof Error?e.message:`Could not save the answer`}),null}finally{a.size&&f(e=>{let t=new Map(e);for(let e of a.keys())t.delete(e);return t})}})},J=e=>L.kind===`blocks`&&L.review.path===e.path?L.version:e.file.version,Se=e=>L.kind===`blocks`?L.model.items.find(t=>t.kind===`block`&&t.key===e):void 0,Y=e=>ge({order:a,files:r??[],reverted:s,gone:l,pending:new Map([...d,...e])}),X=async(e,t)=>{if(!j||j.gone)return;let n=j,r=Se(e),i=new Map([[P(n.path,e),t===`keep`?`kept`:`reverted`]]),a=Y(i);m(M(a,{path:n.path,key:e}));let o=t===`revert`&&r&&L.kind===`blocks`?new Map([[n.path,[ve(r,L)]]]):void 0,s=L.kind===`blocks`?L.original:null,c=await q(t,[{review:n,drawn:J(n),keys:e===`*`?void 0:[e],text:s}],{states:i,ghosts:o});if(!c||K(c.files))return;let l=a.find(e=>e.path===n.path)?.open===0;H({lead:`${t===`keep`?`Kept`:`Reverted`} ${r?`block ${r.index+1} of `:``}`,name:z(n.path),tail:l?` — file done`:``,undoId:c.undoId,focus:{path:n.path,key:e}})};return{files:r,reviews:k,progress:A,focus:p,setFocus:m,focused:j,pane:L,loading:ee,error:y,toast:ne,dismissToast:be,reload:O,step:(0,R.useCallback)(e=>m(t=>pe(k,t,e)),[k]),focusFile:(0,R.useCallback)(e=>{let t=k.find(t=>t.path===e);t&&m(F(t))},[k]),keepBlock:e=>X(e,`keep`),revertBlock:e=>X(e,`revert`),reopenBlock:async e=>{if(!j||j.gone)return;let t=j,n=Se(e);m({path:t.path,key:e});let r=await q(`open`,[{review:t,drawn:J(t),keys:e===`*`?void 0:[e]}],{states:new Map([[P(t.path,e),`open`]])});!r||K(r.files)||H({lead:n?`Block ${n.index+1} of `:``,name:z(t.path),tail:` is open again`,undoId:r.undoId,focus:{path:t.path,key:e}})},undo:(e,i)=>!t||!n?Promise.resolve():(be(),xe(async()=>{try{let a=await de(t,n,e);if(a.stale){H({lead:`Could not undo: the file changed since.`});return}for(let e of a.files){let t=r?.find(t=>t.path===e.path)?.version;t!==void 0&&e.file&&W(e.path,t,e.file.version)}c(t=>{let n=new Map;for(let[r,i]of t)n.set(r,i.filter(t=>t.undoId!==e));return n}),G(a.files),i&&m(i)}catch(e){H({lead:e instanceof Error?e.message:`Could not undo`})}})),keepFile:async()=>{if(!j||j.gone||j.open===0)return;let e=j,t=e.blocks.filter(e=>e.state===`open`).map(e=>e.key),n=new Map(t.map(t=>[P(e.path,t),`kept`]));m(M(Y(n),{path:e.path,key:e.blocks[e.blocks.length-1].key}));let r=await q(`keep`,[{review:e,drawn:J(e),keys:t.includes(`*`)?void 0:t}],{states:n});!r||K(r.files)||H({lead:`Kept `,name:z(e.path),undoId:r.undoId,focus:F(e)})},revertFile:async()=>{if(!j||j.gone)return;let e=j,t=new Map(e.blocks.filter(e=>e.state!==`reverted`).map(t=>[P(e.path,t.key),`reverted`]));m(M(Y(t),{path:e.path,key:e.blocks[e.blocks.length-1].key}));let n=L.kind===`blocks`&&L.review.path===e.path?new Map([[e.path,L.model.items.filter(e=>e.kind===`block`&&e.state!==`reverted`).map(e=>ve(e,L))]]):void 0,r=L.kind===`blocks`?L.original:null,i=await q(`revert`,[{review:e,drawn:J(e),text:r}],{states:t,ghosts:n});!i||K(i.files)||H({lead:`Reverted `,name:z(e.path),undoId:i.undoId,focus:F(e)})},keepAll:async()=>{let e=k.filter(e=>e.open>0&&!e.gone);if(e.length===0)return;let t=new Map(e.flatMap(e=>e.blocks.filter(e=>e.state===`open`).map(t=>[P(e.path,t.key),`kept`]))),n=p;m(null);let r=await q(`keep`,e.map(e=>{let t=e.blocks.filter(e=>e.state===`open`).map(e=>e.key);return{review:e,drawn:J(e),keys:t.includes(`*`)?void 0:t}}),{states:t});!r||K(r.files)||H({lead:`Kept ${t.size} block${t.size===1?``:`s`}`,undoId:r.undoId,focus:n})}}}var V=8e3,ye=new Map,H=new Map;function be(e){let{projectName:t,sessionId:n,providerId:r}=e,i=A(e=>n?e.bySession[n]:void 0),a=i?.byCall??ye,o=e.calls.filter(e=>!a.has(e)).sort().join(`
|
|
4
|
-
`),s=i?.live??!1;return(0,R.useEffect)(()=>{if(!t||!n||!r||s||i&&!o)return;let e=H.get(n);if(i&&e?.unplaced===o)return;let a=new AbortController,c=setTimeout(()=>{H.set(n,{at:Date.now(),unplaced:e?.unplaced??null}),te.get(`${ee(t)}/chat/sessions/${n}/messages?providerId=${r}`,{signal:a.signal}).then(e=>{let t=Array.isArray(e)?e:e?.messages;if(a.signal.aborted||!Array.isArray(t))return;let r=re(t),i=T(r);H.set(n,{at:Date.now(),unplaced:o.split(`
|
|
5
|
-
`).filter(e=>e&&!i.has(e)).join(`
|
|
6
|
-
`)}),!A.getState().bySession[n]?.live&&A.getState().publish(n,r,!1)}).catch(()=>{})},e?Math.max(0,e.at+V-Date.now()):0);return()=>{clearTimeout(c),a.abort()}},[t,n,r,s,!!i,o]),a}var U=n(),W=(e,t)=>`${e} ${t}${e===1?``:`s`}`;function G(e,t){return O(ie(e,t))}var K={added:{glyph:`A`,cls:`text-success bg-[color-mix(in_srgb,var(--success)_14%,transparent)]`,label:`Added`},modified:{glyph:`M`,cls:`text-warning bg-[color-mix(in_srgb,var(--warning)_14%,transparent)]`,label:`Modified`},deleted:{glyph:`D`,cls:`text-error bg-[color-mix(in_srgb,var(--error)_14%,transparent)]`,label:`Deleted`}};function xe({status:e}){let t=K[e];return(0,U.jsx)(`span`,{title:t.label,"aria-label":t.label,className:y(`inline-grid size-[18px] shrink-0 place-items-center rounded-[5px] font-mono text-[10.5px] font-semibold leading-none`,t.cls),children:t.glyph})}function q({tint:e,children:t}){return(0,U.jsx)(`span`,{className:`inline-flex shrink-0 items-center whitespace-nowrap rounded px-[5px] text-[10px] font-semibold leading-[15px]`,style:{color:e,background:`color-mix(in srgb, ${e} 14%, transparent)`},children:t})}var J=10;function Se({review:e,current:t,mobile:n,projectPath:r,onPick:i}){let{base:a,dir:o}=G(e.path,r),s=e.file,c=e.open===0,l=c?j(e):null,u=e.blocks.length-e.open;return(0,U.jsxs)(`button`,{type:`button`,title:e.path,"aria-current":t?`true`:void 0,"data-testid":`review-file-row`,onClick:()=>i(e.path),className:y(`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,U.jsx)(C,{name:a,className:n?`size-[18px]`:`size-4`}),(0,U.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[(0,U.jsx)(`span`,{className:y(`truncate`,n?`text-sm leading-[19px]`:`text-[13px] leading-[17px]`,c?`font-normal text-text-2`:`font-medium`,s.status===`deleted`&&`line-through`),children:a}),(0,U.jsxs)(`span`,{className:y(`flex min-w-0 items-center gap-1.5 text-text-subtle`,n?`text-xs`:`text-[11px] leading-[15px]`),children:[s.sinceReview?(0,U.jsx)(q,{tint:`var(--accent-2)`,children:`New since review`}):s.baseline===`head`&&(0,U.jsx)(q,{tint:`var(--warning)`,children:`vs last commit`}),o&&(0,U.jsx)(`span`,{dir:`rtl`,className:`min-w-0 flex-1 truncate text-left`,children:(0,U.jsx)(`bdi`,{children:o})})]})]}),(0,U.jsxs)(`span`,{className:`flex flex-col items-end gap-1`,children:[(0,U.jsx)(`span`,{className:`flex gap-[3px]`,"aria-hidden":!0,children:e.blocks.slice(0,J).map(e=>(0,U.jsx)(`i`,{className:y(`rounded-full border-[1.5px]`,n?`size-2.5`:`size-2`,e.state===`kept`?`border-primary bg-primary`:e.state===`reverted`?`border-error bg-error`:`border-[color-mix(in_srgb,var(--text-3)_80%,transparent)]`)},e.key))}),l?(0,U.jsx)(`span`,{className:y(`whitespace-nowrap text-[10.5px] font-semibold`,l.tone===`kept`?`text-primary`:l.tone===`reverted`?`text-error`:`font-medium text-text-subtle`),children:l.label}):(0,U.jsxs)(`span`,{className:`font-mono text-[10.5px] font-medium leading-none text-text-subtle`,children:[u,`/`,e.blocks.length]})]})]})}function Y({label:e,count:t}){return(0,U.jsxs)(`div`,{className:`flex h-8 w-full shrink-0 items-center gap-1.5 px-3 text-[10.5px] font-semibold uppercase tracking-[.07em] text-text-subtle`,children:[e,(0,U.jsx)(`span`,{className:`rounded-full bg-surface-hover px-1.5 py-px font-mono text-[10.5px] font-medium leading-[14px] tracking-normal text-text-2`,children:t})]})}function X({reviews:e,current:t,mobile:n,projectPath:r,onPick:i}){let a=e.filter(e=>e.open>0),o=e.filter(e=>e.open===0),s=e=>(0,U.jsx)(Se,{review:e,current:e.path===t,mobile:n,projectPath:r,onPick:i},e.path);return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(Y,{label:`To review`,count:a.length}),a.length?a.map(s):(0,U.jsx)(`p`,{className:`m-0 px-3 pb-2 text-xs text-text-subtle`,children:`Nothing left open.`}),o.length>0&&(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(Y,{label:`Done`,count:o.length}),o.map(s)]})]})}var Ce=48;function we({reviews:e,total:t,open:n,projectPath:r}){let i=e.flatMap(e=>e.blocks.map((t,n)=>({id:`${e.path}\0${t.key}`,state:t.state,title:`${G(e.path,r).base} · block ${n+1}`}))),a=i.filter(e=>e.state===`kept`).length,o=i.filter(e=>e.state===`reverted`).length;return(0,U.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-x-2.5 gap-y-1.5 whitespace-nowrap text-[12.5px] text-text-2`,children:[(0,U.jsx)(`span`,{role:`progressbar`,"aria-label":`Blocks decided`,"aria-valuemin":0,"aria-valuemax":t,"aria-valuenow":t-n,className:`flex gap-0.5`,children:t<=Ce?i.map(e=>(0,U.jsx)(`i`,{title:e.title,className:y(`h-1.5 w-3 rounded-[3px] transition-colors`,e.state===`kept`?`bg-primary`:e.state===`reverted`?`bg-[color-mix(in_srgb,var(--error)_70%,transparent)]`:`bg-[color-mix(in_srgb,var(--text)_13%,transparent)]`)},e.id)):(0,U.jsxs)(`span`,{className:`flex h-1.5 w-40 overflow-hidden rounded-[3px] bg-[color-mix(in_srgb,var(--text)_13%,transparent)]`,children:[(0,U.jsx)(`i`,{className:`bg-primary`,style:{width:`${a/t*100}%`}}),(0,U.jsx)(`i`,{className:`bg-[color-mix(in_srgb,var(--error)_70%,transparent)]`,style:{width:`${o/t*100}%`}})]})}),(0,U.jsxs)(`span`,{children:[(0,U.jsx)(`b`,{className:`font-semibold text-text`,children:t-n}),` of `,W(t,`block`),` decided`]}),n?(0,U.jsxs)(`span`,{className:`text-text-subtle`,children:[`· `,n,` left`]}):(0,U.jsx)(`span`,{className:`text-success`,children:`· all done`})]})}function Te(e,t,n){let r=(0,U.jsx)(`b`,{className:`font-semibold text-text`,children:t}),i=e.additions!=null&&e.deletions!=null?(0,U.jsxs)(`span`,{className:`font-mono text-[11px]`,children:[(0,U.jsxs)(`span`,{className:`text-success`,children:[`+`,e.additions]}),` `,(0,U.jsxs)(`span`,{className:`text-error`,children:[`−`,e.deletions]})]}):null;return e.status===`added`?(0,U.jsxs)(U.Fragment,{children:[`Deletes `,r,` — it did not exist before this chat. You can undo it right after.`]}):e.status===`deleted`?(0,U.jsxs)(U.Fragment,{children:[`Brings `,r,` back`,e.deletions?` with its ${W(e.deletions,`line`)}`:``,`. You can undo it right after.`]}):(0,U.jsxs)(U.Fragment,{children:[e.sinceReview?(0,U.jsxs)(U.Fragment,{children:[`Puts `,r,` back to the version you reviewed`]}):e.baseline===`head`?(0,U.jsxs)(U.Fragment,{children:[`Puts `,r,` back to its last committed version`]}):(0,U.jsxs)(U.Fragment,{children:[`Puts `,r,` back the way it was before this chat`]}),n>1?(0,U.jsxs)(U.Fragment,{children:[`, all `,W(n,`block`)]}):null,i?(0,U.jsxs)(U.Fragment,{children:[` — `,i,` undone on disk`]}):null,`. You can undo it right after.`]})}function Z({toast:e,mobile:t,onUndo:n}){return(0,U.jsxs)(`div`,{role:`status`,"data-testid":`review-toast`,className:y(`absolute z-30 flex items-center border border-border bg-panel-2 shadow-[var(--shadow-float)]`,t?`inset-x-3 bottom-3 gap-2.5 rounded-xl py-1.5 pr-1.5 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-1.5 pr-1.5 pl-3.5 text-[12.5px]`),children:[(0,U.jsxs)(`span`,{className:y(`min-w-0`,t?`flex-1`:`truncate`),children:[e.lead,e.name&&(0,U.jsx)(`b`,{className:`font-semibold`,children:e.name}),e.tail]}),e.undoId&&(0,U.jsx)(S,{variant:`ghost`,size:t?`sm`:`xs`,className:y(`text-primary hover:text-primary`,t&&`h-10`),onClick:n,children:`Undo`})]})}function Ee({loading:e,files:t,total:n,kept:r,onChat:i}){return e?(0,U.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,U.jsx)(v,{className:`size-4 animate-spin text-text-subtle`})}):(0,U.jsx)(`div`,{className:`grid flex-1 place-items-center p-8 text-center`,children:(0,U.jsxs)(`div`,{children:[t>0&&(0,U.jsx)(`div`,{className:`mx-auto mb-3.5 grid size-[52px] place-items-center rounded-full bg-[color-mix(in_srgb,var(--success)_14%,transparent)] text-success`,children:(0,U.jsx)(l,{className:`size-5`})}),(0,U.jsx)(`h4`,{className:`m-0 mb-1.5 text-[15px] font-semibold`,children:t>0?`All ${W(n,`block`)} decided`:`No changes yet`}),(0,U.jsx)(`p`,{className:`mx-auto mb-4 max-w-[38ch] text-[13px] text-text-2`,children:t>0?`${r} kept, ${n-r} reverted. A block comes back here if the agent changes it again.`:`This chat has not changed any file.`}),(0,U.jsxs)(S,{variant:`outline`,size:`sm`,className:`max-md:h-11`,onClick:i,children:[(0,U.jsx)(g,{}),`Back to chat`]})]})})}function De(e){let{review:t}=e,{focused:n,focus:r,pane:i,reviews:a}=t,o=n&&r?n.blocks.find(e=>e.key===r.key):void 0,s=null;n&&o&&(s={index:n.blocks.indexOf(o),total:n.blocks.length});let c=i.kind===`blocks`&&r?i.model.items.find(e=>e.kind===`block`&&e.key===r.key):void 0;c?.kind===`block`&&i.kind===`blocks`&&(s={index:c.index,total:i.model.total});let l=L(a),u=n?l.findIndex(e=>e.path===n.path):-1,d=l.find((e,t)=>t>u&&e.open>0)??l.find(e=>e.open>0&&e.path!==n?.path)??null,f=i.kind===`whole`,p=c?.kind===`block`?c.undoId:f?i.undoId:void 0,m=null;return r&&o?.state===`kept`?m=()=>t.reopenBlock(r.key):r&&o?.state===`reverted`&&p&&(m=()=>t.undo(p,r)),{...e,focusState:o?.state??null,place:s,nextFile:d,keepFocused:()=>{!r||o?.state!==`open`||(f?t.keepFile():t.keepBlock(r.key))},revertFocused:e=>{!r||o?.state!==`open`||(f?e():t.revertBlock(r.key))},changeFocused:m,codeActions:{focus:e=>n&&t.setFocus({path:n.path,key:e}),keep:e=>t.keepBlock(e),revert:e=>t.revertBlock(e),reopen:e=>t.reopenBlock(e),undo:(e,r)=>n&&t.undo(e,{path:n.path,key:r}),showInChat:e.showInChat}}}function Oe({view:e,compact:t,onRevertFile:n}){let{pane:r,focus:i}=e.review;return r.kind===`blocks`?(0,U.jsx)(N,{file:r.review.file,model:r.model,focusKey:i?.path===r.review.path?i.key:null,compact:t,lang:he(r.review.path),turns:e.turns,actions:e.codeActions},r.review.path):r.kind===`whole`?(0,U.jsx)(ke,{view:e,review:r.review,compact:t,onRevertFile:n}):r.kind===`error`?(0,U.jsx)(`div`,{className:`flex flex-1 items-center justify-center px-4 text-center text-sm text-text-subtle`,children:r.message}):(0,U.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,U.jsx)(v,{className:`size-4 animate-spin text-text-subtle`})})}function ke({view:e,review:t,compact:n,onRevertFile:i}){let a=t.file,o=t.gone?`Reverted: the file is back the way it was.`:a.binary?`A binary file has no lines to compare, so it is kept or reverted whole.`:a.tooLarge?`This file is too large to show, so it is kept or reverted whole.`:`This diff is too large to cut into blocks, so the file is kept or reverted whole.`,s=t.open===0?j(t):null;return(0,U.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto bg-bg p-3`,children:(0,U.jsxs)(`div`,{"data-testid":`review-whole-file`,className:y(`rounded-[10px] border border-border-soft bg-panel p-4 text-[13px] text-text-2`,s&&`border-dashed`),children:[(0,U.jsx)(`p`,{className:`m-0`,children:o}),!n&&(0,U.jsx)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2`,children:s?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(`span`,{className:y(`inline-flex items-center gap-1 font-semibold`,s.tone===`kept`?`text-primary`:s.tone===`reverted`?`text-error`:`text-text-subtle`),children:[s.tone===`reverted`?(0,U.jsx)(p,{className:`size-3.5`}):(0,U.jsx)(r,{className:`size-3.5`}),s.label]}),e.changeFocused&&(0,U.jsxs)(S,{variant:`ghost`,size:`xs`,className:`text-text-secondary`,onClick:e.changeFocused,children:[(0,U.jsx)(u,{}),`Change`]})]}):(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(S,{variant:`outline`,size:`sm`,className:`hover:text-error`,onClick:i,children:[(0,U.jsx)(p,{}),`Revert file…`]}),(0,U.jsxs)(S,{size:`sm`,onClick:()=>e.review.keepFile(),children:[(0,U.jsx)(r,{}),`Keep file`]})]})})]})})}var Ae=`inline-grid size-7 shrink-0 place-items-center rounded-md text-text-subtle hover:bg-surface-hover hover:text-text`;function je({view:e}){let{review:t,projectPath:n}=e,{focused:r,focus:a,progress:s,reviews:c}=t,l=(0,R.useRef)(null),[u,f]=(0,R.useState)(!1),[p,m]=(0,R.useState)(!1);(0,R.useEffect)(()=>{let e=document.activeElement;(!e||e===document.body||e.getClientRects().length===0)&&!e?.closest(`input, textarea, select, [contenteditable='true']`)&&l.current?.focus({preventScroll:!0})},[a?.path,a?.key,t.pane.kind]),(0,R.useEffect)(()=>f(!1),[r?.path]);let _=n=>{if(n.ctrlKey||n.metaKey||n.altKey||n.defaultPrevented||n.target.closest(`input, textarea, select, [contenteditable='true']`))return;let r=n.key.toLowerCase();if(r===`j`||r===`k`)t.step(r===`j`?1:-1);else if(r===`y`&&e.focusState===`open`)e.keepFocused();else if(r===`n`&&e.focusState===`open`)e.revertFocused(()=>f(!0));else if(r===`escape`&&(u||p))f(!1),m(!1);else return;n.preventDefault()},v=(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(X,{reviews:c,current:r?.path??null,mobile:!1,projectPath:n,onPick:e=>{t.focusFile(e),m(!1)}}),(0,U.jsxs)(`div`,{className:`mt-auto border-t border-border-soft px-3 pt-2.5 pb-3 text-[11.5px] leading-normal text-text-subtle`,children:[(0,U.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,U.jsx)(o,{className:`mt-0.5 size-3 shrink-0`}),(0,U.jsxs)(`span`,{children:[`A binary or very large file has no blocks: it is kept or reverted whole. `,D(e.providerId)]})]}),(0,U.jsxs)(`div`,{className:`mt-1.5 flex flex-wrap gap-x-3 gap-y-1`,children:[(0,U.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,U.jsx)(I,{children:`J`}),(0,U.jsx)(I,{children:`K`}),` move`]}),(0,U.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,U.jsx)(I,{children:`Y`}),` keep`]}),(0,U.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,U.jsx)(I,{children:`N`}),` revert`]})]})]})]});return(0,U.jsxs)(`div`,{ref:l,tabIndex:0,onKeyDown:_,"data-testid":`session-review`,className:`@container flex h-full flex-col overflow-hidden bg-bg outline-none`,children:[(0,U.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,U.jsxs)(`div`,{className:`min-w-0`,children:[(0,U.jsx)(`h3`,{className:`m-0 text-sm font-semibold leading-5`,children:`Review changes`}),(0,U.jsxs)(`button`,{type:`button`,title:`Back to the chat`,onClick:e.openChat,className:`inline-flex max-w-full items-center gap-1 text-xs text-text-2 underline-offset-[3px] hover:text-text hover:underline`,children:[(0,U.jsx)(g,{className:`size-3 shrink-0`}),(0,U.jsx)(`span`,{className:`truncate`,children:e.chatTitle||`Chat`})]})]}),s.total>0&&(0,U.jsx)(we,{reviews:c,total:s.total,open:s.open,projectPath:n}),(0,U.jsx)(`span`,{className:`flex-1`}),(0,U.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,U.jsxs)(S,{variant:`ghost`,size:`sm`,className:`text-text-secondary @min-[760px]:hidden`,"aria-expanded":p,onClick:()=>m(!p),children:[(0,U.jsx)(i,{}),W(c.length,`file`)]}),s.open>0&&(0,U.jsxs)(S,{variant:`ghost`,size:`sm`,className:`text-text-secondary`,onClick:()=>void t.keepAll(),children:[(0,U.jsx)(d,{}),`Keep all remaining`]}),(0,U.jsx)(`button`,{type:`button`,className:Ae,title:`Reload`,"aria-label":`Reload`,onClick:()=>void t.reload(),children:(0,U.jsx)(h,{className:y(`size-3.5`,t.loading&&`animate-spin`)})})]})]}),t.error&&(0,U.jsx)(`div`,{className:`shrink-0 bg-destructive/10 px-3 py-1.5 text-xs text-destructive`,children:t.error}),(0,U.jsxs)(`div`,{className:`relative grid min-h-0 flex-1 grid-cols-[minmax(0,1fr)] @min-[760px]:grid-cols-[288px_minmax(0,1fr)]`,children:[(0,U.jsx)(`aside`,{"aria-label":`Changed files`,className:`hidden min-h-0 flex-col overflow-y-auto border-r border-border-soft bg-panel @min-[760px]:flex`,children:v}),p&&(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`div`,{className:`absolute inset-0 z-20 bg-black/30 @min-[760px]:hidden`,onClick:()=>m(!1)}),(0,U.jsx)(`aside`,{"aria-label":`Changed files`,className:`absolute inset-y-0 left-0 z-30 flex w-[min(288px,85%)] flex-col overflow-y-auto border-r border-border bg-panel shadow-[var(--shadow-float)] @min-[760px]:hidden`,children:v})]}),(0,U.jsx)(`section`,{"aria-label":`Changes`,className:`relative flex min-h-0 min-w-0 flex-col`,children:r?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(Me,{view:e}),(0,U.jsxs)(`div`,{className:`relative flex min-h-0 flex-1 flex-col`,children:[(0,U.jsx)(Oe,{view:e,compact:!1,onRevertFile:()=>f(!0)}),t.toast&&(0,U.jsx)(Z,{toast:t.toast,mobile:!1,onUndo:()=>t.toast?.undoId&&void t.undo(t.toast.undoId,t.toast.focus)})]}),(0,U.jsx)(Ne,{view:e,confirm:u,setConfirm:f})]}):(0,U.jsxs)(`div`,{className:`relative flex min-h-0 flex-1 flex-col`,children:[(0,U.jsx)(Ee,{loading:t.files===null||s.open>0&&!a,files:c.length,total:s.total,kept:s.kept,onChat:e.openChat}),t.toast&&(0,U.jsx)(Z,{toast:t.toast,mobile:!1,onUndo:()=>t.toast?.undoId&&void t.undo(t.toast.undoId,t.toast.focus)})]})})]})]})}function Me({view:e}){let t=e.review.focused,{base:n,dir:r}=G(t.path,e.projectPath),i=t.file.status===`deleted`;return(0,U.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,U.jsx)(C,{name:n,className:`size-4`}),(0,U.jsx)(`span`,{className:y(`whitespace-nowrap text-sm font-semibold`,i&&`text-text-2 line-through`),children:n}),(0,U.jsx)(xe,{status:t.file.status}),r&&(0,U.jsx)(`span`,{dir:`rtl`,title:t.path,className:`min-w-10 shrink truncate text-left text-xs text-text-subtle`,children:(0,U.jsxs)(`bdi`,{children:[r,`/`]})}),(0,U.jsx)(k,{file:t.file,className:`font-mono text-[11px]`}),(0,U.jsx)(`span`,{className:`flex-1`}),!i&&!t.gone&&(0,U.jsxs)(S,{variant:`ghost`,size:`sm`,className:`text-text-secondary`,onClick:()=>e.openFile(t.path),children:[(0,U.jsx)(m,{}),`Open`]})]})}function Ne({view:e,confirm:t,setConfirm:n}){let{review:i}=e,a=i.focused,{base:o}=G(a.path,e.projectPath),l=(0,R.useRef)(null);(0,R.useEffect)(()=>{if(!t)return;let e=e=>{l.current?.contains(e.target)||n(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[t,n]);let u=e.nextFile;return(0,U.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,U.jsxs)(`div`,{className:`inline-flex items-center gap-0.5 rounded-lg bg-[color-mix(in_srgb,var(--text)_6%,transparent)] p-0.5`,children:[(0,U.jsx)(`button`,{type:`button`,className:Ae,title:`Previous block (K)`,"aria-label":`Previous block`,onClick:()=>i.step(-1),children:(0,U.jsx)(s,{className:`size-3.5`})}),(0,U.jsx)(`span`,{className:`min-w-[92px] text-center text-xs font-medium text-text-2`,children:i.pane.kind===`whole`?`Whole file`:e.place?`Block ${e.place.index+1} of ${e.place.total}`:``}),(0,U.jsx)(`button`,{type:`button`,className:Ae,title:`Next block (J)`,"aria-label":`Next block`,onClick:()=>i.step(1),children:(0,U.jsx)(c,{className:`size-3.5`})})]}),(0,U.jsx)(`span`,{className:`min-w-0 truncate`,children:a.open?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`b`,{className:`font-semibold text-text`,children:a.open}),` open in `,o]}):(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`b`,{className:`font-semibold text-text`,children:o}),` is done`]})}),(0,U.jsx)(`span`,{className:`flex-1`}),!a.gone&&(0,U.jsxs)(`span`,{ref:l,className:`relative`,children:[(0,U.jsxs)(S,{variant:`ghost`,size:`sm`,className:`text-text-secondary`,"aria-expanded":t,onClick:()=>n(!t),children:[(0,U.jsx)(p,{}),`Revert file…`]}),t&&(0,U.jsxs)(`div`,{role:`dialog`,"aria-label":`Revert ${o}?`,className:`absolute right-0 bottom-[calc(100%+8px)] z-40 w-[330px] max-w-[calc(100vw-24px)] rounded-xl border border-border bg-panel-2 p-3.5 text-[12.5px] leading-normal text-text-2 shadow-[var(--shadow-float)]`,children:[(0,U.jsxs)(`h5`,{className:`m-0 mb-1.5 flex items-center gap-2 text-[13px] font-semibold text-text`,children:[(0,U.jsx)(p,{className:`size-3.5`}),`Revert `,o,`?`]}),(0,U.jsx)(`p`,{className:`m-0 mb-3`,children:Te(a.file,o,a.blocks.length)}),(0,U.jsxs)(`div`,{className:`flex justify-end gap-1.5`,children:[(0,U.jsx)(S,{variant:`ghost`,size:`sm`,onClick:()=>n(!1),children:`Cancel`}),(0,U.jsxs)(S,{variant:`destructive`,size:`sm`,onClick:()=>{n(!1),i.revertFile()},children:[(0,U.jsx)(p,{}),`Revert file`]})]})]})]}),a.open>0&&!a.gone&&(0,U.jsxs)(S,{variant:`outline`,size:`sm`,onClick:()=>void i.keepFile(),children:[(0,U.jsx)(r,{}),`Keep file`]}),u&&(0,U.jsxs)(S,{variant:a.open?`ghost`:`default`,size:`sm`,className:y(a.open>0&&`text-text-secondary`),onClick:()=>i.focusFile(u.path),children:[`Next: `,G(u.path,e.projectPath).base,(0,U.jsx)(_,{})]})]})}var Pe=`inline-grid size-11 shrink-0 place-items-center rounded-[10px] text-text-2 active:bg-surface-hover`,Q=`inline-flex h-11 min-w-11 items-center justify-center gap-2 whitespace-nowrap rounded-[10px] border px-3 text-sm font-medium active:opacity-80 disabled:opacity-50`;function Fe({view:e}){let{review:t,projectPath:n}=e,{focused:a,focus:o,progress:l,reviews:f}=t,[m,h]=(0,R.useState)(null),g=()=>h(null),_=l.total-l.open;return(0,U.jsxs)(`div`,{"data-testid":`session-review`,className:`flex h-full flex-col overflow-hidden bg-bg`,children:[(0,U.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,U.jsx)(`h3`,{className:`m-0 min-w-0 flex-1 truncate text-[15px] font-semibold`,children:`Review changes`}),l.total>0&&(0,U.jsxs)(`span`,{className:`mr-0.5 text-xs text-text-2`,children:[(0,U.jsx)(`b`,{className:`font-semibold text-text`,children:_}),`/`,l.total,` blocks`]}),(0,U.jsx)(`button`,{type:`button`,className:Pe,"aria-label":`All files`,onClick:()=>h(`files`),children:(0,U.jsx)(i,{className:`size-5`})})]}),(0,U.jsx)(`div`,{className:`h-[3px] shrink-0 bg-[color-mix(in_srgb,var(--text)_10%,transparent)]`,children:(0,U.jsx)(`div`,{className:`h-full bg-primary transition-[width]`,style:{width:l.total?`${_/l.total*100}%`:0}})}),t.error&&(0,U.jsx)(`div`,{className:`shrink-0 bg-destructive/10 px-3 py-1.5 text-xs text-destructive`,children:t.error}),a?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(Le,{view:e,onActions:()=>h(`actions`)}),(0,U.jsxs)(`div`,{className:`relative flex min-h-0 flex-1 flex-col`,children:[(0,U.jsx)(Oe,{view:e,compact:!0,onRevertFile:()=>h(`confirm`)}),t.toast&&(0,U.jsx)(Z,{toast:t.toast,mobile:!0,onUndo:()=>t.toast?.undoId&&void t.undo(t.toast.undoId,t.toast.focus)})]}),(0,U.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-t border-border-soft bg-panel px-2.5 py-2`,children:[(0,U.jsx)(`button`,{type:`button`,className:y(Q,`border-border bg-panel-2 px-0 text-text`),"aria-label":`Previous block`,onClick:()=>t.step(-1),children:(0,U.jsx)(s,{className:`size-5`})}),e.focusState===`open`?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(`button`,{type:`button`,className:y(Q,`flex-1 border-border bg-panel-2 text-text`),onClick:()=>e.revertFocused(()=>h(`confirm`)),children:[(0,U.jsx)(p,{className:`size-5`}),`Revert`]}),(0,U.jsxs)(`button`,{type:`button`,className:y(Q,`flex-1 border-transparent bg-primary text-primary-foreground`),onClick:e.keepFocused,children:[(0,U.jsx)(r,{className:`size-5`}),`Keep`]})]}):(0,U.jsxs)(`button`,{type:`button`,className:y(Q,`flex-1 border-border bg-panel-2 text-text`),disabled:!e.changeFocused,onClick:()=>e.changeFocused?.(),children:[(0,U.jsx)(u,{className:`size-5`}),`Change`]}),(0,U.jsx)(`button`,{type:`button`,className:y(Q,`border-border bg-panel-2 px-0 text-text`),"aria-label":`Next block`,onClick:()=>t.step(1),children:(0,U.jsx)(c,{className:`size-5`})})]})]}):(0,U.jsxs)(`div`,{className:`relative flex min-h-0 flex-1 flex-col`,children:[(0,U.jsx)(Ee,{loading:t.files===null||l.open>0&&!o,files:f.length,total:l.total,kept:l.kept,onChat:e.openChat}),t.toast&&(0,U.jsx)(Z,{toast:t.toast,mobile:!0,onUndo:()=>t.toast?.undoId&&void t.undo(t.toast.undoId,t.toast.focus)})]}),(0,U.jsxs)(w,{open:m===`files`,onClose:g,className:`flex max-h-[85%] flex-col`,children:[(0,U.jsx)(Ie,{title:`Files changed in this chat`,sub:`${_} of ${l.total} blocks decided · ${l.open} left`,onClose:g}),(0,U.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:(0,U.jsx)(X,{reviews:f,current:a?.path??null,mobile:!0,projectPath:n,onPick:e=>{t.focusFile(e),g()}})}),l.open>0&&(0,U.jsx)(`div`,{className:`flex shrink-0 gap-2 border-t border-border-soft px-4 pt-2.5`,children:(0,U.jsxs)(`button`,{type:`button`,className:y(Q,`flex-1 border-border bg-panel-2 text-text`),onClick:()=>{g(),t.keepAll()},children:[(0,U.jsx)(d,{className:`size-5`}),`Keep all remaining`]})})]}),a&&(0,U.jsx)(w,{open:m===`actions`||m===`confirm`,onClose:g,className:`flex max-h-[85%] flex-col`,children:m===`confirm`?(0,U.jsx)(ze,{view:e,onDone:g}):(0,U.jsx)(Re,{view:e,onClose:g,onRevert:()=>h(`confirm`)})})]})}function Ie({title:e,sub:t,icon:n,onClose:r}){return(0,U.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2.5 pt-0.5 pr-1.5 pb-2 pl-4`,children:[(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[n,(0,U.jsx)(`h4`,{className:`m-0 min-w-0 truncate text-[15px] font-semibold`,children:e})]}),t&&(0,U.jsx)(`p`,{className:`m-0 mt-0.5 text-xs text-text-subtle`,children:t})]}),(0,U.jsx)(`button`,{type:`button`,className:Pe,"aria-label":`Close`,onClick:r,children:(0,U.jsx)(f,{className:`size-5`})})]})}function Le({view:e,onActions:t}){let n=e.review.focused,{base:r,dir:i}=G(n.path,e.projectPath),o=e.review.pane.kind===`whole`?`Whole file`:e.place?`Block ${e.place.index+1} of ${e.place.total}`:``;return(0,U.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,U.jsx)(C,{name:r,className:`size-4`}),(0,U.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,U.jsx)(`b`,{className:y(`truncate text-sm font-semibold`,n.file.status===`deleted`&&`text-text-2 line-through`),children:r}),(0,U.jsx)(`small`,{className:`truncate text-[11.5px] text-text-subtle`,children:[o,i].filter(Boolean).join(` · `)})]}),(0,U.jsx)(`button`,{type:`button`,className:Pe,"aria-label":`File actions`,onClick:t,children:(0,U.jsx)(a,{className:`size-5`})})]})}function $({icon:e,label:t,destructive:n,onClick:r}){return(0,U.jsxs)(`button`,{type:`button`,onClick:r,className:y(`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 Re({view:e,onClose:t,onRevert:n}){let i=e.review.focused,{base:a}=G(i.path,e.projectPath),o=i.file.status===`deleted`,s=e=>()=>{t(),e()};return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(Ie,{title:a,onClose:t}),(0,U.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto border-t border-border-soft py-1`,children:[!o&&!i.gone&&(0,U.jsx)($,{icon:(0,U.jsx)(m,{className:`size-5`}),label:`Open file`,onClick:s(()=>e.openFile(i.path))}),i.open>0&&!i.gone&&(0,U.jsx)($,{icon:(0,U.jsx)(r,{className:`size-5`}),label:`Keep file`,onClick:s(()=>void e.review.keepFile())}),!i.gone&&(0,U.jsx)($,{icon:(0,U.jsx)(p,{className:`size-5`}),label:`Revert file…`,destructive:!0,onClick:n}),(0,U.jsx)($,{icon:(0,U.jsx)(g,{className:`size-5`}),label:`Back to chat`,onClick:s(e.openChat)})]})]})}function ze({view:e,onDone:t}){let n=e.review.focused,{base:r}=G(n.path,e.projectPath);return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(Ie,{title:`Revert ${r}?`,icon:(0,U.jsx)(p,{className:`size-5 shrink-0 text-error`}),onClose:t}),(0,U.jsxs)(`div`,{className:`px-4 pb-1`,children:[(0,U.jsx)(`p`,{className:`m-0 mb-3.5 text-sm leading-normal text-text-2`,children:Te(n.file,r,n.blocks.length)}),(0,U.jsxs)(`div`,{className:`flex gap-2`,children:[(0,U.jsx)(`button`,{type:`button`,className:y(Q,`flex-1 border-border bg-panel-2 text-text`),onClick:t,children:`Cancel`}),(0,U.jsxs)(`button`,{type:`button`,className:y(Q,`flex-1 border-transparent bg-[color-mix(in_srgb,var(--error)_85%,#000)] text-white`),onClick:()=>{t(),e.review.revertFile()},children:[(0,U.jsx)(p,{className:`size-5`}),`Revert file`]})]})]})]})}function Be(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`):[]}function Ve({metadata:e}){let t=e?.projectName,n=e?.sessionId,r=e?.providerId,i=e?.chatTitle,a=x(),o=b(e=>e.projects.find(e=>e.name===t)?.path),s=B({projectName:t,sessionId:n,paths:Be(e?.paths),select:e?.select}),c=(0,R.useCallback)(()=>{!t||!n||ne.getState().openTab({type:`chat`,title:i||`Chat`,projectId:t,metadata:{projectName:t,sessionId:n,...r?{providerId:r}:{}},closable:!0})},[t,n,r,i]),l=(0,R.useCallback)((e,t)=>{n&&(E.getState().jump({sessionId:n,toolUseId:t,messageId:e.messageId}),c())},[n,c]),u=be({projectName:t,sessionId:n,providerId:r,calls:(0,R.useMemo)(()=>s.reviews.flatMap(e=>e.file.blocks?.flatMap(e=>e.calls??[])??[]),[s.reviews])}),d=(0,R.useCallback)(e=>{t&&ne.getState().openTab({type:`editor`,title:G(e,void 0).base,metadata:{filePath:e,projectName:t},projectId:t,closable:!0})},[t]);if(!t||!n)return(0,U.jsx)(`div`,{className:`flex h-full items-center justify-center text-sm text-text-3`,children:`No chat session.`});let f=De({review:s,projectPath:o,providerId:r,chatTitle:i,openChat:c,openFile:d,turns:u,showInChat:l});return a?(0,U.jsx)(Fe,{view:f}):(0,U.jsx)(je,{view:f})}export{Ve as SessionReviewTab};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{C as t,S as n}from"./vendor-markdown-QKPNiWEd.js";import{L as r,u as i}from"./icons-JMA45Ifw.js";import{n as a}from"./utils-Bslrbb-G.js";import{a as o,i as s,n as c,o as l,r as u}from"./settings-categories-CcR9eL3x.js";import{t as d}from"./button-Br60hGkw.js";import{t as f}from"./scroll-area-6Am1KMiB.js";import{t as p}from"./separator-BOYUIPkH.js";import{n as m}from"./settings-section-content-DckksvTg.js";var h=n();function g({active:e,onSelect:t}){return(0,h.jsx)(f,{className:`h-full`,children:(0,h.jsx)(`nav`,{className:`p-2 space-y-4`,"aria-label":`Settings categories`,children:c.map(n=>{let r=o(n.id);return r.length===0?null:(0,h.jsxs)(`div`,{className:`space-y-1`,children:[n.label&&(0,h.jsx)(`h3`,{className:`px-2 pt-1 text-[11px] font-medium uppercase tracking-wide text-muted-foreground`,children:n.label}),r.map(n=>{let r=n.icon,i=n.id===e;return(0,h.jsxs)(`button`,{onClick:()=>t(n.id),"data-testid":`settings-rail-${n.id}`,"aria-current":i?`page`:void 0,className:a(`w-full flex items-center gap-2.5 px-2.5 py-2 rounded-md text-left cursor-pointer transition-colors`,i?`bg-accent text-accent-foreground`:`hover:bg-accent/50 active:bg-accent`),children:[(0,h.jsx)(r,{className:a(`size-4 shrink-0`,i?`text-foreground`:`text-muted-foreground`)}),(0,h.jsx)(`span`,{className:`text-sm truncate`,children:n.label})]},n.id)})]},n.id)})})})}function _({onSelect:e}){return(0,h.jsx)(f,{className:`h-full`,children:(0,h.jsx)(`nav`,{className:`p-3 space-y-5`,"aria-label":`Settings categories`,children:c.map(t=>{let n=o(t.id);return n.length===0?null:(0,h.jsxs)(`div`,{className:`space-y-1`,children:[t.label&&(0,h.jsx)(`h3`,{className:`px-1 pb-1 text-[11px] font-medium uppercase tracking-wide text-muted-foreground`,children:t.label}),n.map(t=>{let n=t.icon;return(0,h.jsxs)(`button`,{onClick:()=>e(t.id),"data-testid":`settings-index-${t.id}`,className:`w-full flex items-center gap-3 px-2.5 py-3 rounded-lg text-left cursor-pointer group hover:bg-accent/50 active:bg-accent transition-colors`,children:[(0,h.jsx)(`div`,{className:`size-10 rounded-md bg-muted flex items-center justify-center shrink-0 group-hover:bg-accent`,children:(0,h.jsx)(n,{className:`size-4 text-muted-foreground`})}),(0,h.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,h.jsx)(`p`,{className:`text-sm font-medium truncate`,children:t.label}),(0,h.jsx)(`p`,{className:`text-xs text-muted-foreground truncate`,children:t.subtitle})]}),(0,h.jsx)(r,{className:`size-4 text-muted-foreground shrink-0`})]},t.id)})]},t.id)})})})}var v=e(t(),1);function y({initialCategory:e,onCategoryChange:t}){let[n,r]=(0,v.useState)(e??`general`),[a,o]=(0,v.useState)(e===void 0),c=l(n),y=c.icon;function b(e){r(e),o(!1),t?.(e)}let x=(0,v.useRef)(b);return x.current=b,(0,v.useEffect)(()=>{let e=e=>{let t=e.detail;s(t)&&x.current(t)};return window.addEventListener(u,e),()=>window.removeEventListener(u,e)},[]),(0,h.jsx)(`div`,{className:`@container h-full w-full`,"data-testid":`settings-window`,"data-category":n,children:(0,h.jsxs)(`div`,{className:`h-full w-full flex`,children:[(0,h.jsx)(`aside`,{className:`hidden @[640px]:flex @[640px]:flex-col w-[210px] shrink-0 border-r border-border min-h-0`,"data-testid":`settings-rail`,children:(0,h.jsx)(g,{active:n,onSelect:b})}),(0,h.jsxs)(`div`,{className:`relative flex-1 min-w-0`,children:[(0,h.jsxs)(`div`,{className:`h-full flex flex-col min-h-0`,children:[(0,h.jsxs)(`div`,{className:`shrink-0 flex items-center gap-2 px-2 py-2.5 @[640px]:px-4`,children:[(0,h.jsx)(d,{variant:`ghost`,size:`icon`,"aria-label":`Back to settings list`,className:`size-9 shrink-0 cursor-pointer @[640px]:hidden`,onClick:()=>o(!0),children:(0,h.jsx)(i,{className:`size-4`})}),(0,h.jsx)(y,{className:`size-4 text-muted-foreground shrink-0`}),(0,h.jsx)(`h2`,{className:`text-sm font-semibold truncate`,"data-testid":`settings-pane-title`,children:c.label})]}),(0,h.jsx)(p,{}),(0,h.jsx)(f,{className:`flex-1 min-h-0`,children:(0,h.jsx)(`div`,{className:`p-4 pb-8`,children:(0,h.jsx)(m,{category:n})})})]}),a&&(0,h.jsxs)(`div`,{className:`absolute inset-0 z-10 bg-background flex flex-col min-h-0 @[640px]:hidden`,"data-testid":`settings-index`,children:[(0,h.jsx)(`div`,{className:`shrink-0 px-4 py-3`,children:(0,h.jsx)(`h2`,{className:`text-sm font-semibold`,children:`Settings`})}),(0,h.jsx)(p,{}),(0,h.jsx)(`div`,{className:`flex-1 min-h-0`,children:(0,h.jsx)(_,{onSelect:b})})]})]})]})})}export{y as t};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as e,D as t,Gt as n,Jn as r,Ln as i,Mn as a,O as o,Rn as s,Rt as c,T as l,fi as u,fn as d,fr as f,ln as p,mt as m,pt as h,un as g,w as _,wr as v}from"./icons-JMA45Ifw.js";var y=[{id:`core`,label:null},{id:`ai`,label:`AI & Accounts`},{id:`integrations`,label:`Integrations`},{id:`advanced`,label:`Advanced`}],b=[{id:`general`,group:`core`,label:`General`,subtitle:`Device name, password, version`,icon:v},{id:`appearance`,group:`core`,label:`Appearance`,subtitle:`Theme, tabs, explorer skin`,icon:r},{id:`language-servers`,group:`core`,label:`Language Servers`,subtitle:`Completions and go to definition, per language`,icon:u},{id:`remote-desktop`,group:`core`,label:`Remote Desktop`,subtitle:`WebRTC relay for streaming this host's screen`,icon:i},{id:`database-drivers`,group:`core`,label:`Database Drivers`,subtitle:`MySQL and MariaDB support, installed on request`,icon:h},{id:`ai-provider`,group:`ai`,label:`AI Provider`,subtitle:`Model, execution mode, limits`,icon:_},{id:`accounts`,group:`ai`,label:`Accounts`,subtitle:`Claude and Codex sign-ins, rotation`,icon:p},{id:`design`,group:`ai`,label:`Design`,subtitle:`Design instructions and skills`,icon:d},{id:`voice`,group:`ai`,label:`Voice Input`,subtitle:`Speech to text for the chat box`,icon:a},{id:`ppmbot`,group:`integrations`,label:`PPMBot`,subtitle:`Telegram AI bot`,icon:l},{id:`notifications`,group:`integrations`,label:`Notifications`,subtitle:`Push, Telegram & ntfy alerts`,icon:e},{id:`jira`,group:`integrations`,label:`Jira Watcher`,subtitle:`Auto-debug Jira tickets`,icon:t},{id:`extensions`,group:`integrations`,label:`Extensions`,subtitle:`Install and manage extensions`,icon:f},{id:`proxy`,group:`integrations`,label:`API Proxy`,subtitle:`Expose accounts as Anthropic API`,icon:n},{id:`remote-access`,group:`integrations`,label:`Remote Access`,subtitle:`Tailscale, public link`,icon:s},{id:`schedules`,group:`advanced`,label:`Scheduled Agents`,subtitle:`Run Claude on a cron schedule`,icon:o},{id:`shortcuts`,group:`advanced`,label:`Keyboard Shortcuts`,subtitle:`Customize key bindings`,icon:g},{id:`files`,group:`advanced`,label:`File Filters`,subtitle:`Exclude patterns, ignore files`,icon:c},{id:`query-audit`,group:`advanced`,label:`Query Audit Log`,subtitle:`SQL history retention and size`,icon:m}],x=`ppm:settings-navigate`,S=`general`;function C(e){return typeof e==`string`&&b.some(t=>t.id===e)}function w(e){return b.find(t=>t.id===e)}function T(e){return b.filter(t=>t.group===e)}export{T as a,C as i,y as n,w as o,x as r,S as t};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./vendor-markdown-QKPNiWEd.js";import"./icons-JMA45Ifw.js";import{r as e}from"./settings-section-content-DckksvTg.js";export{e as preloadSettingsSections};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/general-settings-section-DZRRGdlQ.js","assets/rolldown-runtime-C5c2KzVm.js","assets/index-ItT-dTPV.js","assets/preload-helper-CM8YhcCa.js","assets/vendor-ui-CS1GvlOm.js","assets/vendor-markdown-QKPNiWEd.js","assets/button-Br60hGkw.js","assets/utils-Bslrbb-G.js","assets/createLucideIcon-DBXq3G0e.js","assets/file-diff-lX1a7RLF.js","assets/git-commit-horizontal-BVihXafd.js","assets/api-client-OiA8Ida1.js","assets/react-PkBxFcos.js","assets/open-db-tabs-CkQe49j_.js","assets/panel-store-DmP16Fo0.js","assets/session-list-sync-triggers-DitiR5h1.js","assets/project-store-CEGoLMOl.js","assets/project-framework-store-Bi5dyHdx.js","assets/window-store-zJczRsv4.js","assets/explorer-model-BmgFEsj1.js","assets/db-types-9ac-eYxf.js","assets/settings-store-WeJyQVL8.js","assets/use-is-mobile-BXHbkfs9.js","assets/tab-store-nNzRNfVV.js","assets/use-db-driver-installed-BscdI-wS.js","assets/impexp-state-BWKOuRGj.js","assets/file-store-Bk1WYfdy.js","assets/sql-identifiers-DDISwQor.js","assets/db-explorer-store-BcLxq-X0.js","assets/window-pip-registry-DSoB7T3k.js","assets/onboarding-quick-orientation-DZYQekRt.js","assets/dialog-DOaEX6AK.js","assets/portal-container-context-BXAsDqrB.js","assets/icons-JMA45Ifw.js","assets/format-file-meta-C0LKHE3e.js","assets/fs-api-BQrIEcvo.js","assets/open-settings-DsGBn73g.js","assets/settings-categories-CcR9eL3x.js","assets/adaptive-context-menu-Cq7ynvIn.js","assets/context-menu-BoQ6lxte.js","assets/mobile-bottom-sheet-CGmmdp_5.js","assets/use-visual-viewport-CQ6-A0Dt.js","assets/dropdown-menu-DB3yyoVz.js","assets/input-CKGoVpYv.js","assets/scroll-area-6Am1KMiB.js","assets/start-ellipsis-rBh37k0n.js","assets/chat-preparation-cache-CRX9WAK5.js","assets/clipboard-D3XnL7CB.js","assets/file-icons-DpwcJLL4.js","assets/format-date-CSHaU2wN.js","assets/git-repo-store-BOYLnV67.js","assets/patch-tab-metadata-B-jH5svY.js","assets/ws-auth-cWeQ7_61.js","assets/apply-theme-ORrEdHKT.js","assets/resolve-theme-BqoL27BW.js","assets/index-DyYGWFVa.css","assets/onboarding-entry--MWe4amV.js","assets/separator-BOYUIPkH.js","assets/appearance-settings-section-s3KWKTBm.js","assets/language-servers-section-DiYURB24.js","assets/remote-desktop-settings-section-BTGGSjZY.js","assets/database-drivers-section-C6ZKPWaE.js","assets/ai-settings-section-AOgAUCgH.js","assets/ai-settings-section-B_OFMlrt.js","assets/api-settings-D2H6gjen.js","assets/accounts-settings-section-DU-lTifs.js","assets/codex-reset-credit-button-CxJsBnff.js","assets/design-settings-section-CuxZSLAr.js","assets/design-skill-suggestion-DZQjG8FV.js","assets/slash-command-picker-BBcy6w6m.js","assets/design-responsive-dialog-Cdccv3Nw.js","assets/design-system-status-label-Cus6e2Df.js","assets/voice-settings-section-C01d-toF.js","assets/run-in-terminal-button-DFPQUlZs.js","assets/run-in-terminal-Bk9Bw7G1.js","assets/ppmbot-settings-section-DTCTPQ-R.js","assets/telegram-bot-token-field-BiqKbXwE.js","assets/notifications-settings-section-CPbx23nU.js","assets/jira-watcher-section-CvyXLyjO.js","assets/extension-manager-section-DEbwRPf1.js","assets/proxy-settings-section-BGNvFe7e.js","assets/remote-access-settings-section-t2BYAA9g.js","assets/schedules-settings-section-DNJ4K7zS.js","assets/keyboard-shortcuts-section-MUIE0Rvf.js","assets/files-settings-section-C8MacVFQ.js","assets/query-audit-section-DTHI5GP7.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{C as t,S as n}from"./vendor-markdown-QKPNiWEd.js";import{xn as r}from"./icons-JMA45Ifw.js";import{t as i}from"./preload-helper-CM8YhcCa.js";import{oi as a}from"./index-ItT-dTPV.js";var o=e(t(),1),s=n(),c={general:a(()=>i(()=>import(`./general-settings-section-DZRRGdlQ.js`).then(e=>({default:e.GeneralSettingsSection})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57]))),appearance:a(()=>i(()=>import(`./appearance-settings-section-s3KWKTBm.js`).then(e=>({default:e.AppearanceSettingsSection})),__vite__mapDeps([58,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,57]))),"language-servers":a(()=>i(()=>import(`./language-servers-section-DiYURB24.js`).then(e=>({default:e.LanguageServersSection})),__vite__mapDeps([59,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,57]))),"remote-desktop":a(()=>i(()=>import(`./remote-desktop-settings-section-BTGGSjZY.js`).then(e=>({default:e.RemoteDesktopSettingsSection})),__vite__mapDeps([60,1,4,5,6,7,11,57,33]))),"database-drivers":a(()=>i(()=>import(`./database-drivers-section-C6ZKPWaE.js`).then(e=>({default:e.DatabaseDriversSection})),__vite__mapDeps([61,1,4,5,6,7,11,24,31,32,33,40,41,22]))),"ai-provider":a(()=>i(()=>import(`./ai-settings-section-AOgAUCgH.js`).then(e=>({default:e.AISettingsSection})),__vite__mapDeps([62,4,1,5,6,7,11,21,3,12,14,15,16,17,18,63,2,8,9,10,13,19,20,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,64]))),accounts:a(()=>i(()=>import(`./accounts-settings-section-DU-lTifs.js`).then(e=>({default:e.AccountsSettingsSection})),__vite__mapDeps([65,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,66,64]))),design:a(()=>i(()=>import(`./design-settings-section-CuxZSLAr.js`).then(e=>({default:e.DesignSettingsSection})),__vite__mapDeps([67,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,68,69,70,71]))),voice:a(()=>i(()=>import(`./voice-settings-section-C01d-toF.js`).then(e=>({default:e.VoiceSettingsSection})),__vite__mapDeps([72,1,4,5,6,7,11,21,3,12,14,15,16,17,18,73,33,74,57]))),ppmbot:a(()=>i(()=>import(`./ppmbot-settings-section-DTCTPQ-R.js`).then(e=>({default:e.PPMBotSettingsSection})),__vite__mapDeps([75,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,76,57]))),notifications:a(()=>i(()=>import(`./notifications-settings-section-CPbx23nU.js`).then(e=>({default:e.NotificationsSettingsSection})),__vite__mapDeps([77,1,4,5,6,7,11,76,2,3,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,57]))),jira:a(()=>i(()=>import(`./jira-watcher-section-CvyXLyjO.js`).then(e=>({default:e.JiraWatcherSection})),__vite__mapDeps([78,2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55]))),extensions:a(()=>i(()=>import(`./extension-manager-section-DEbwRPf1.js`).then(e=>({default:e.ExtensionManagerSection})),__vite__mapDeps([79,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55]))),proxy:a(()=>i(()=>import(`./proxy-settings-section-BGNvFe7e.js`).then(e=>({default:e.ProxySettingsSection})),__vite__mapDeps([80,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,64]))),"remote-access":a(()=>i(()=>import(`./remote-access-settings-section-t2BYAA9g.js`).then(e=>({default:e.RemoteAccessSettingsSection})),__vite__mapDeps([81,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,73,74]))),schedules:a(()=>i(()=>import(`./schedules-settings-section-DNJ4K7zS.js`).then(e=>({default:e.SchedulesSettingsSection})),__vite__mapDeps([82,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55]))),shortcuts:a(()=>i(()=>import(`./keyboard-shortcuts-section-MUIE0Rvf.js`).then(e=>({default:e.KeyboardShortcutsSection})),__vite__mapDeps([83,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55]))),files:a(()=>i(()=>import(`./files-settings-section-C8MacVFQ.js`).then(e=>({default:e.FilesSettingsSection})),__vite__mapDeps([84,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,57]))),"query-audit":a(()=>i(()=>import(`./query-audit-section-DTHI5GP7.js`).then(e=>({default:e.QueryAuditSection})),__vite__mapDeps([85,1,4,5,6,7,11,43,64,46,33])))};function l(){return Promise.all(Object.values(c).map(e=>e.preload()))}function u({category:e}){let t=c[e];return(0,s.jsx)(o.Suspense,{fallback:(0,s.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,s.jsx)(r,{className:`size-5 animate-spin text-muted-foreground`})}),children:(0,s.jsx)(t,{})})}export{u as n,l as r,c as t};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/api-themes-CE8gPZ3X.js","assets/vendor-ui-CS1GvlOm.js","assets/rolldown-runtime-C5c2KzVm.js","assets/vendor-markdown-QKPNiWEd.js","assets/api-client-OiA8Ida1.js","assets/api-settings-DHhcUHtx.js","assets/api-settings-D2H6gjen.js","assets/chat-preparation-cache-CRX9WAK5.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{a as e}from"./api-client-OiA8Ida1.js";import{t}from"./react-PkBxFcos.js";import{t as n}from"./preload-helper-CM8YhcCa.js";var r={best:{id:`best`,label:`Good image quality`,ratio:1.5},balanced:{id:`balanced`,label:`Balanced`,ratio:.67},low:{id:`low`,label:`Optimize reaction time`,ratio:.5}},i=[`best`,`balanced`,`low`],a=`balanced`;function o(e){return typeof e==`string`&&Object.hasOwn(r,e)?e:null}function s(e){return e===`custom`?e:o(e)??`balanced`}function c(e){return e===`custom`?i[0]:i[(i.indexOf(e)+1)%i.length]}var l={best:`Good`,balanced:`Balanced`,low:`Reaction`};function u(e){return e===`custom`?`Custom`:l[e]}var d=[`table`,`view`,`matview`,`function`,`procedure`,`trigger`,`sequence`],f={ids:200,folders:200,objects:500,text:300,schemas:100},p=.15,m=.85,h={opened:[],expandedConns:[],collapsedFolders:[],emptyFolders:[],openGroups:[`table`],expandedObjects:[]},g={current:null,split:.42,connectionsCollapsed:!1,objectsCollapsed:!1,connectionSearch:[`name`,`database`],objectSearch:[`name`],objectSort:`name`,onlyWithRows:!1,schemas:{}},_=e=>typeof e==`number`&&Number.isInteger(e)&&e>0,v=e=>typeof e==`string`&&e.length>0&&e.length<=f.text,ee=e=>d.includes(e);function y(e,t,n){return Array.isArray(e)?[...new Set(e.filter(t))].slice(-n):[]}function b(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function x(e){return b(e)?{opened:y(e.opened,_,f.ids),expandedConns:y(e.expandedConns,_,f.ids),collapsedFolders:y(e.collapsedFolders,v,f.folders),emptyFolders:y(e.emptyFolders,v,f.folders),openGroups:Array.isArray(e.openGroups)?y(e.openGroups,ee,d.length):h.openGroups,expandedObjects:y(e.expandedObjects,v,f.objects)}:null}function te(e){return typeof e==`number`&&Number.isFinite(e)?Math.min(m,Math.max(p,e)):g.split}function S(e){if(!b(e))return null;let t=g,n=e.current,r=b(n)&&_(n.conn)&&(n.database===null||v(n.database))?{conn:n.conn,database:n.database}:null,i={};if(b(e.schemas))for(let[t,n]of Object.entries(e.schemas).slice(-f.schemas))v(t)&&v(n)&&(i[t]=n);return{current:r,split:te(e.split),connectionsCollapsed:e.connectionsCollapsed===!0,objectsCollapsed:e.objectsCollapsed===!0,connectionSearch:Array.isArray(e.connectionSearch)?y(e.connectionSearch,v,10):t.connectionSearch,objectSearch:Array.isArray(e.objectSearch)?y(e.objectSearch,v,10):t.objectSearch,objectSort:e.objectSort===`rows`?`rows`:`name`,onlyWithRows:e.onlyWithRows===!0,schemas:i}}var C={tables:500,key:1e3,column:300},ne=e=>e.length>0&&e.length<=C.key,re=e=>typeof e==`string`&&e.length>0&&e.length<=C.column,ie=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function w(e){if(!ie(e))return null;let t=Object.entries(e).filter(e=>ne(e[0])&&re(e[1]));return Object.fromEntries(t.slice(-C.tables))}function ae(e,t,n){let{[t]:r,...i}=e;return w({...i,[t]:n})??{}}function oe(e){return e*9/5+32}function se(e,t){if(!(e===void 0||!Number.isFinite(e)))return t===`f`?`${oe(e).toFixed(1)} °F`:`${e.toFixed(1)} °C`}function ce(e){return e===`f`?`f`:`c`}var T=[`overall`,`logical`,`threads`,`threads-stacked`],le={overall:`Overall utilisation`,logical:`Logical processors`,threads:`All threads`,"threads-stacked":`All threads stacked`};function ue(e){return T.includes(e)?e:`overall`}var de=[`temperature`,`power`,`clock`,`none`],fe={temperature:`Temperature`,power:`Power draw`,clock:`Clock speed`,none:`None`};function pe(e){return de.includes(e)?e:`temperature`}function me(e,t){if(e<=0)return{cols:0,rows:0};let n=Math.ceil(e/Math.max(1,Math.floor(Math.sqrt(e)))),r=t>0?Math.max(1,Math.floor(t/84)):n,i=Math.min(n,r);return{cols:i,rows:Math.ceil(e/i)}}function he(e){if(e.length<2)return;let t=e[0],n=e[e.length-1],r=Math.round((n-t)/1e3);if(!Number.isFinite(r)||r<=0)return;if(r<90)return`over ${r} seconds`;let i=Math.round(r/60);return i===1?`over 1 minute`:`over ${i} minutes`}var E=[[640,480,400],[800,600,500],[1024,768,800],[1280,720,1e3],[1366,768,1100],[1440,900,1300],[1600,900,1500],[1920,1080,2073],[2048,1080,2200],[2560,1440,3e3],[3440,1440,4e3],[3840,2160,5e3],[7680,4320,12e3]],D=2e3,O=.2,k=40;function ge(e,t){let n=Math.max(1,Math.round(e)*Math.round(t)),r=E[7],i=1/0;for(let e of E){let t=Math.abs(e[0]*e[1]-n);t<i&&(i=t,r=e)}let a=r[0]*r[1];return Math.max(1,Math.round(r[2]*(n/a)))}function _e(e){return Number.isFinite(e)?Math.min(Math.max(e*2/100,O),k):100/100}function ve(e){return Number.isFinite(e)?Math.min(Math.max(e,O),k):O}function ye(e,t,n){return Math.max(1,Math.round(ge(t,n)*ve(e)))}function be(e,t,n){return ye(_e(e),t,n)}function A(e,t=!1){let n=t?D:100;return typeof e!=`number`||!Number.isFinite(e)?50:Math.min(Math.max(Math.round(e),10),n)}function j(e){return typeof e!=`number`||!Number.isFinite(e)?30:Math.min(Math.max(Math.round(e),5),120)}var xe=`adaptive`,Se=[`original`,`adaptive`,`custom`],M={original:`Scale original`,adaptive:`Scale adaptive`,custom:`Scale custom`},N=1e3,P=1/3,Ce=5/100;N/100;function we(e){if(!Number.isFinite(e)||e<=0)return 5;if(e>=1)return N;if(e<=.3333333333333333){let t=e/P;return F(Math.round(5+t*95))}let t=(e-P)/(1-P);return F(Math.round(100+t*(N-100)))}function Te(e){let t=F(e);return t<=100?(t-5)/95*P:P+(t-100)/(N-100)*(1-P)}function Ee(e){return!Number.isFinite(e)||Math.abs(e-.3333333333333333)<=.006?P:Math.min(Math.max(e,0),1)}function F(e){return Number.isFinite(e)?Math.min(Math.max(Math.round(e),5),N):100}function De(e){return typeof e==`string`&&Object.hasOwn(M,e)?e:xe}function I(e){return typeof e!=`number`||!Number.isFinite(e)?1:Math.min(Math.max(e,Ce),10)}function Oe(e,t,n){if(e===`adaptive`||n.width<=0||n.height<=0)return null;let r=e===`original`?1:I(t);return{width:Math.round(n.width*r),height:Math.round(n.height*r)}}var L=`ppm-settings`,R=[`aurora`,`slate`,`precision`,`custom`],z=[`dark`,`light`,`system`];function B(){try{let e=localStorage.getItem(L);if(e)return JSON.parse(e)}catch{}return{}}function ke(e){return e.themeStyle&&R.includes(e.themeStyle)&&e.themeMode&&z.includes(e.themeMode)?{style:e.themeStyle,mode:e.themeMode,customThemeId:e.customThemeId}:e.theme&&z.includes(e.theme)?{style:`aurora`,mode:e.theme}:{style:`aurora`,mode:`system`}}function V(e){return typeof e==`string`?[`explorer`,`git`,`database`,`search`,`jira`,`ai-resources`,`history`,`tunnels`,`teams`,`designs`].includes(e)||e.startsWith(`ext:`):!1}function H(e){if(!Array.isArray(e))return[];let t=new Set,n=[];for(let r of e)V(r)&&!t.has(r)&&(t.add(r),n.push(r));return n}var U=200;function W(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`&&e.length>0&&e.length<=200).slice(-U):null}function G(e){let t=B();localStorage.setItem(L,JSON.stringify({...t,...e}))}var K=null,q={};function Ae(t){let{theme:n,themeStyle:r,themeMode:i,customThemeId:a,...o}=t;Object.keys(o).length!==0&&(Object.assign(q,o),K&&clearTimeout(K),K=setTimeout(()=>{let t=q;q={},K=null;let n=e();fetch(`/api/settings/ui-prefs`,{method:`PUT`,headers:{"Content-Type":`application/json`,...n?{Authorization:`Bearer ${n}`}:{}},body:JSON.stringify(t)}).catch(()=>{})},400))}function J(e){G(e),Ae(e)}function Y(e){G(e)}function X(t,n,r){let i=e();return fetch(`/api/settings/theme`,{method:`PUT`,headers:{"Content-Type":`application/json`,...i?{Authorization:`Bearer ${i}`}:{}},body:JSON.stringify({style:t,mode:n,...r?{customThemeId:r}:{}})}).then(()=>{}).catch(()=>{})}function je(e){let t={};typeof e.wordWrap==`boolean`&&(t.wordWrap=e.wordWrap),typeof e.inlineBlame==`boolean`&&(t.inlineBlame=e.inlineBlame),typeof e.tabWrap==`boolean`&&(t.tabWrap=e.tabWrap),typeof e.sidebarCollapsed==`boolean`&&(t.sidebarCollapsed=e.sidebarCollapsed),typeof e.sidebarWidth==`number`&&e.sidebarWidth>=200&&e.sidebarWidth<=600&&(t.sidebarWidth=e.sidebarWidth),(e.gitStatusViewMode===`flat`||e.gitStatusViewMode===`tree`)&&(t.gitStatusViewMode=e.gitStatusViewMode),(e.editorTabStyle===`default`||e.editorTabStyle===`boxed`||e.editorTabStyle===`pill`)&&(t.editorTabStyle=e.editorTabStyle),V(e.sidebarActiveTab)&&(t.sidebarActiveTab=e.sidebarActiveTab),Array.isArray(e.sidebarTabOrder)&&(t.sidebarTabOrder=H(e.sidebarTabOrder)),typeof e.jiraEnabled==`boolean`&&(t.jiraEnabled=e.jiraEnabled),(e.dockPosition===`left`||e.dockPosition===`bottom`||e.dockPosition===`right`)&&(t.dockPosition=e.dockPosition),(e.explorerSkin===`auto`||e.explorerSkin===`windows`||e.explorerSkin===`macos`)&&(t.explorerSkin=e.explorerSkin),typeof e.remoteDesktopStatsVisible==`boolean`&&(t.remoteDesktopStatsVisible=e.remoteDesktopStatsVisible),typeof e.remoteDesktopWarningDismissed==`boolean`&&(t.remoteDesktopWarningDismissed=e.remoteDesktopWarningDismissed);let n=W(e.mcpSignInDismissed);n&&(t.mcpSignInDismissed=n),typeof e.keepScreenAwake==`boolean`&&(t.keepScreenAwake=e.keepScreenAwake);let r=x(e.dbExplorer);r&&(t.dbExplorer=r);let i=w(e.dbLookupDescriptions);i&&(t.dbLookupDescriptions=i),Object.keys(t).length!==0&&(G(t),$.setState(t))}var Z=B(),Q=ke(Z),$=t((t,r)=>({themeStyle:Q.style,themeMode:Q.mode,customThemeId:Q.customThemeId,customThemes:[],sidebarCollapsed:Z.sidebarCollapsed??!1,sidebarWidth:Z.sidebarWidth??280,gitStatusViewMode:Z.gitStatusViewMode===`tree`?`tree`:`flat`,inlineBlame:Z.inlineBlame??!1,wordWrap:Z.wordWrap??!1,remoteDesktopQuality:s(Z.remoteDesktopQuality),remoteDesktopViewStyle:De(Z.remoteDesktopViewStyle),remoteDesktopCustomScale:I(Z.remoteDesktopCustomScale),remoteDesktopCustomQualityMore:Z.remoteDesktopCustomQualityMore??!1,remoteDesktopCustomQualityPercent:A(Z.remoteDesktopCustomQualityPercent,Z.remoteDesktopCustomQualityMore??!1),remoteDesktopCustomFps:j(Z.remoteDesktopCustomFps),remoteDesktopShowCursor:Z.remoteDesktopShowCursor??!0,remoteDesktopClipboardSync:Z.remoteDesktopClipboardSync??!0,remoteDesktopCodec:typeof Z.remoteDesktopCodec==`string`?Z.remoteDesktopCodec:null,mobileWordWrap:Z.mobileWordWrap??!0,lspEnabled:Z.lspEnabled??!1,voiceEngine:Z.voiceEngine===`whisper`?`whisper`:`browser`,tabWrap:Z.tabWrap??!1,editorTabStyle:Z.editorTabStyle===`boxed`||Z.editorTabStyle===`pill`?Z.editorTabStyle:`default`,sidebarActiveTab:V(Z.sidebarActiveTab)?Z.sidebarActiveTab:`history`,sidebarTabOrder:H(Z.sidebarTabOrder),jiraEnabled:Z.jiraEnabled??!1,dockPosition:Z.dockPosition===`left`||Z.dockPosition===`right`?Z.dockPosition:`bottom`,dbExplorer:x(Z.dbExplorer)??h,dbExplorerView:S(Z.dbExplorerView)??g,dbLookupDescriptions:w(Z.dbLookupDescriptions)??{},explorerSkin:Z.explorerSkin===`windows`||Z.explorerSkin===`macos`?Z.explorerSkin:`auto`,remoteDesktopStatsVisible:Z.remoteDesktopStatsVisible??!1,sysmonTempUnit:ce(Z.sysmonTempUnit),sysmonKernelTimes:Z.sysmonKernelTimes??!0,sysmonCpuGraph:ue(Z.sysmonCpuGraph),sysmonCpuBottomGraph:pe(Z.sysmonCpuBottomGraph),logsUtc:Z.logsUtc===!0,logsWrap:Z.logsWrap===!0,logsBadge:Z.logsBadge!==!1,remoteDesktopWarningDismissed:Z.remoteDesktopWarningDismissed??!1,mcpSignInDismissed:W(Z.mcpSignInDismissed)??[],keepScreenAwake:Z.keepScreenAwake??!0,deviceName:null,version:null,tunnelActive:!1,setThemeStyle:e=>{let n=r().themeMode,i=e===`custom`?r().customThemeId:void 0;G({themeStyle:e,customThemeId:i}),t({themeStyle:e,customThemeId:i}),X(e,n,i)},setThemeMode:e=>{G({themeMode:e}),t({themeMode:e}),X(r().themeStyle,e,r().customThemeId)},setCustomTheme:e=>{G({themeStyle:`custom`,customThemeId:e}),t({themeStyle:`custom`,customThemeId:e}),X(`custom`,r().themeMode,e)},setThemeFromPayload:({style:e,mode:n,customThemeId:r})=>{let i=R.includes(e)?e:`aurora`,a=z.includes(n)?n:`system`;G({themeStyle:i,themeMode:a,customThemeId:r}),t({themeStyle:i,themeMode:a,customThemeId:r})},setCustomThemes:e=>t({customThemes:e}),fetchThemes:async()=>{try{let{fetchImportedThemes:e}=await n(async()=>{let{fetchImportedThemes:e}=await import(`./api-themes-CE8gPZ3X.js`);return{fetchImportedThemes:e}},__vite__mapDeps([0,1,2,3,4]));t({customThemes:await e()})}catch{}},importThemeFrom:async e=>{let{importTheme:t}=await n(async()=>{let{importTheme:e}=await import(`./api-themes-CE8gPZ3X.js`);return{importTheme:e}},__vite__mapDeps([0,1,2,3,4])),i=await t(e);return await r().fetchThemes(),i},deleteCustomTheme:async e=>{let{deleteImportedTheme:i}=await n(async()=>{let{deleteImportedTheme:e}=await import(`./api-themes-CE8gPZ3X.js`);return{deleteImportedTheme:e}},__vite__mapDeps([0,1,2,3,4]));await i(e),await r().fetchThemes(),r().themeStyle===`custom`&&r().customThemeId===e&&(G({themeStyle:`aurora`,themeMode:r().themeMode,customThemeId:void 0}),t({themeStyle:`aurora`,customThemeId:void 0}),X(`aurora`,r().themeMode))},setDeviceName:async e=>{let r=e.trim();t({deviceName:r||null}),r?document.title=`PPM — ${r}`:document.title=`PPM`;try{let{updateDeviceName:e}=await n(async()=>{let{updateDeviceName:e}=await import(`./api-settings-DHhcUHtx.js`);return{updateDeviceName:e}},__vite__mapDeps([5,1,2,3,4,6,7]));await e(r)}catch{}},setJiraEnabled:e=>{if(J({jiraEnabled:e}),t({jiraEnabled:e}),!e&&r().sidebarActiveTab===`jira`){let e=`explorer`;J({sidebarActiveTab:e}),t({sidebarActiveTab:e})}},toggleSidebar:()=>{let e=!r().sidebarCollapsed;J({sidebarCollapsed:e}),t({sidebarCollapsed:e})},setSidebarWidth:e=>{let n=Math.max(200,Math.min(600,e));J({sidebarWidth:n}),t({sidebarWidth:n})},setGitStatusViewMode:e=>{J({gitStatusViewMode:e}),t({gitStatusViewMode:e})},toggleInlineBlame:()=>{let e=!r().inlineBlame;J({inlineBlame:e}),t({inlineBlame:e})},toggleWordWrap:()=>{let e=!r().wordWrap;J({wordWrap:e}),t({wordWrap:e})},toggleMobileWordWrap:()=>{let e=!r().mobileWordWrap;Y({mobileWordWrap:e}),t({mobileWordWrap:e})},setLspEnabled:e=>{Y({lspEnabled:e}),t({lspEnabled:e})},setVoiceEngine:e=>{Y({voiceEngine:e}),t({voiceEngine:e})},setRemoteDesktopQuality:e=>{Y({remoteDesktopQuality:e}),t({remoteDesktopQuality:e})},setRemoteDesktopViewStyle:e=>{Y({remoteDesktopViewStyle:e}),t({remoteDesktopViewStyle:e})},setRemoteDesktopCustomScale:e=>{let n=I(e);Y({remoteDesktopCustomScale:n}),t({remoteDesktopCustomScale:n})},setRemoteDesktopCustomQuality:(e,n)=>{let i={remoteDesktopCustomQualityPercent:A(e,r().remoteDesktopCustomQualityMore),remoteDesktopCustomFps:j(n)};Y(i),t(i)},setRemoteDesktopCustomQualityMore:e=>{let n={remoteDesktopCustomQualityMore:e,remoteDesktopCustomQualityPercent:A(r().remoteDesktopCustomQualityPercent,e)};Y(n),t(n)},setRemoteDesktopShowCursor:e=>{Y({remoteDesktopShowCursor:e}),t({remoteDesktopShowCursor:e})},setRemoteDesktopClipboardSync:e=>{Y({remoteDesktopClipboardSync:e}),t({remoteDesktopClipboardSync:e})},setRemoteDesktopCodec:e=>{Y({remoteDesktopCodec:e}),t({remoteDesktopCodec:e})},toggleTabWrap:()=>{let e=!r().tabWrap;J({tabWrap:e}),t({tabWrap:e})},toggleRemoteDesktopStatsVisible:()=>{let e=!r().remoteDesktopStatsVisible;J({remoteDesktopStatsVisible:e}),t({remoteDesktopStatsVisible:e})},setSysmonTempUnit:e=>{Y({sysmonTempUnit:e}),t({sysmonTempUnit:e})},setSysmonKernelTimes:e=>{Y({sysmonKernelTimes:e}),t({sysmonKernelTimes:e})},setSysmonCpuGraph:e=>{Y({sysmonCpuGraph:e}),t({sysmonCpuGraph:e})},setSysmonCpuBottomGraph:e=>{Y({sysmonCpuBottomGraph:e}),t({sysmonCpuBottomGraph:e})},setLogsUtc:e=>{Y({logsUtc:e}),t({logsUtc:e})},setLogsWrap:e=>{Y({logsWrap:e}),t({logsWrap:e})},setLogsBadge:e=>{Y({logsBadge:e}),t({logsBadge:e})},setRemoteDesktopWarningDismissed:e=>{J({remoteDesktopWarningDismissed:e}),t({remoteDesktopWarningDismissed:e})},dismissMcpSignIn:e=>{let n=r().mcpSignInDismissed,i=[...n,...e.filter(e=>!n.includes(e))].slice(-U);J({mcpSignInDismissed:i}),t({mcpSignInDismissed:i})},undismissMcpSignIn:e=>{let n=r().mcpSignInDismissed;if(!n.includes(e))return;let i=n.filter(t=>t!==e);J({mcpSignInDismissed:i}),t({mcpSignInDismissed:i})},setKeepScreenAwake:e=>{J({keepScreenAwake:e}),t({keepScreenAwake:e})},setEditorTabStyle:e=>{J({editorTabStyle:e}),t({editorTabStyle:e})},setSidebarActiveTab:e=>{J({sidebarActiveTab:e}),t({sidebarActiveTab:e})},setSidebarTabOrder:e=>{let n=H(e);J({sidebarTabOrder:n}),t({sidebarTabOrder:n})},setDockPosition:e=>{J({dockPosition:e}),t({dockPosition:e})},setDbExplorer:e=>{let n=x(e)??h;J({dbExplorer:n}),t({dbExplorer:n})},setDbExplorerView:e=>{let n=S(e)??g;Y({dbExplorerView:n}),t({dbExplorerView:n})},setDbLookupDescription:(e,n)=>{let i=ae(r().dbLookupDescriptions,e,n);J({dbLookupDescriptions:i}),t({dbLookupDescriptions:i})},setExplorerSkin:e=>{J({explorerSkin:e}),t({explorerSkin:e})},fetchServerInfo:async()=>{try{let n=e(),i=n?{headers:{Authorization:`Bearer ${n}`}}:{},[a,o,s]=await Promise.all([fetch(`/api/info`,i),fetch(`/api/settings/theme`,i),fetch(`/api/settings/ui-prefs`,i)]),c=await a.json();if(c.ok){let{device_name:e,version:n,tunnel_active:r}=c.data;t({deviceName:e||null,version:n||null,tunnelActive:!!r}),e&&(document.title=`PPM — ${e}`)}let l=await o.json(),u=l.ok?l.data?.theme:null;u&&typeof u==`object`&&typeof u.style==`string`&&r().setThemeFromPayload({style:u.style,mode:u.mode,customThemeId:u.customThemeId});let d=await s.json();d.ok&&d.data&&je(d.data),r().fetchThemes()}catch{}},syncThemeToServer:async()=>{await X(r().themeStyle,r().themeMode,r().customThemeId)}}));export{u as A,m as C,i as D,r as E,c as O,g as S,a as T,le as _,Oe as a,he as b,Te as c,D as d,j as f,fe as g,de as h,Se as i,o as k,we as l,be as m,N as n,I as o,A as p,M as r,F as s,$ as t,Ee as u,T as v,p as w,se as x,me as y};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{S as e}from"./vendor-markdown-QKPNiWEd.js";import"./vendor-ui-CS1GvlOm.js";import"./icons-JMA45Ifw.js";import{i as t}from"./settings-categories-CcR9eL3x.js";import"./button-Br60hGkw.js";import"./scroll-area-6Am1KMiB.js";import"./separator-BOYUIPkH.js";import"./settings-section-content-DckksvTg.js";import{t as n}from"./settings-body-B-s0fEjc.js";var r=e(),i=({metadata:e})=>(0,r.jsx)(n,{initialCategory:t(e?.category)?e.category:void 0});export{i as SettingsTab};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{S as e}from"./vendor-markdown-QKPNiWEd.js";import"./vendor-ui-CS1GvlOm.js";import"./icons-JMA45Ifw.js";import{t}from"./window-store-zJczRsv4.js";import{i as n}from"./settings-categories-CcR9eL3x.js";import"./button-Br60hGkw.js";import"./scroll-area-6Am1KMiB.js";import"./separator-BOYUIPkH.js";import"./settings-section-content-DckksvTg.js";import{t as r}from"./settings-body-B-s0fEjc.js";var i=e();function a({id:e,payload:a}){let o=t(e=>e.setPayload);return(0,i.jsx)(r,{initialCategory:n(a?.category)?a.category:void 0,onCategoryChange:t=>o(e,{category:t})})}export{a as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{C as t,S as n}from"./vendor-markdown-QKPNiWEd.js";import{Hr as r,fi as i,hr as a,jr as o,tt as s,w as c}from"./icons-JMA45Ifw.js";import{C as l,o as u,r as d,v as f,x as p}from"./api-client-OiA8Ida1.js";import{t as m}from"./session-list-sync-triggers-DitiR5h1.js";import{B as h}from"./index-ItT-dTPV.js";var g=/(?:^|\s)\/(\S*)$/;function _(e){let t=e.match(g);return t?t[1]??``:null}function v(e,t){return e.replace(/(?:^|\s)\/\S*$/,e=>`${e.startsWith(`/`)?``:e[0]}${t} `)}function y(e){return e.replace(/(?:^|\s)\/\S*$/,e=>e.startsWith(`/`)?``:e[0])}function b(e,t){if(e===t)return 0;if(e.length===0)return t.length;if(t.length===0)return e.length;let n=Array.from({length:t.length+1},(e,t)=>t),r=Array(t.length+1);for(let i=1;i<=e.length;i++){r[0]=i;for(let a=1;a<=t.length;a++){let o=e[i-1]===t[a-1]?0:1;r[a]=Math.min(r[a-1]+1,n[a]+1,n[a-1]+o)}[n,r]=[r,n]}return n[t.length]}function x(e,t){let n=e.toLowerCase(),r=t.toLowerCase();if(r.startsWith(n))return{rank:0,distance:0};if(r.includes(n))return{rank:1,distance:r.indexOf(n)};let i=Math.max(Math.floor(n.length*.4),2),a=b(n,r.slice(0,n.length+i));return a<=i?{rank:2,distance:a}:null}var S=1;function C(e,t,n=20,r=[]){if(!t)return e;t=t.slice(0,50);let i=new Map(r.map((e,t)=>[e,t])),a=[];for(let n of e){let e=x(t,n.name),o=[e,x(t,n.description)].filter(e=>e!==null).sort((e,t)=>e.rank-t.rank||e.distance-t.distance)[0];if(o){let t=i.get(n.name),s=t!==void 0&&e?.rank===o.rank;a.push({item:n,rank:o.rank-(s?S:0),distance:o.distance,recency:t??r.length})}}return a.sort((e,t)=>e.rank-t.rank||e.recency-t.recency||e.distance-t.distance||e.item.name.localeCompare(t.item.name)),a.slice(0,n).map(e=>e.item)}var w=e(t(),1),T=n();function E({items:e,filter:t,onSelect:n,onClose:g,visible:_,recentNames:v=[],projectName:y}){let[b,x]=(0,w.useState)(0),[S,E]=(0,w.useState)(!1),D=(0,w.useRef)(null),O=(0,w.useMemo)(()=>new Set(v),[v]),k=(0,w.useMemo)(()=>{if(t)return{items:C(e,t,20,v),recentCount:0};if(v.length>0){let t=[],n=[];for(let r of e)O.has(r.name)?t.push(r):n.push(r);return t.sort((e,t)=>v.indexOf(e.name)-v.indexOf(t.name)),{items:[...t,...n],recentCount:t.length}}return{items:e,recentCount:0}},[e,t,v,O]),A=k.items,j=k.recentCount;(0,w.useEffect)(()=>{x(0)},[t]),(0,w.useEffect)(()=>{let e=D.current;e&&e.children[b]?.scrollIntoView({block:`nearest`})},[b]);let M=(0,w.useCallback)(e=>{if(!_||A.length===0)return!1;switch(e.key){case`ArrowUp`:return e.preventDefault(),x(e=>e>0?e-1:A.length-1),!0;case`ArrowDown`:return e.preventDefault(),x(e=>e<A.length-1?e+1:0),!0;case`Enter`:case`Tab`:return e.preventDefault(),A[b]&&n(A[b]),!0;case`Escape`:return e.preventDefault(),g(),!0}return!1},[_,A,b,n,g]);(0,w.useEffect)(()=>{if(!_)return;let e=e=>{M(e)&&e.stopPropagation()},t=D.current?.ownerDocument??document;return t.addEventListener(`keydown`,e,!0),()=>t.removeEventListener(`keydown`,e,!0)},[_,M]);let N=(0,w.useCallback)(()=>{!y||S||(E(!0),d.del(`${u(y)}/chat/slash-items/cache`).then(()=>{h(y),l(p(f(m(y)),`claude`)),window.dispatchEvent(new CustomEvent(`ppm:slash-items-refresh`))}).finally(()=>E(!1)))},[y,S]);return!_||A.length===0?null:(0,T.jsx)(`div`,{className:`max-h-52 overflow-y-auto overflow-x-hidden border-b border-border bg-surface`,children:(0,T.jsx)(`div`,{ref:D,className:`py-1`,children:A.map((e,t)=>{let l=j>0&&t===0,u=j>0&&t===j;return(0,T.jsxs)(`div`,{children:[l&&(0,T.jsxs)(`div`,{className:`flex items-center justify-between px-3 pt-1 pb-0.5`,children:[(0,T.jsxs)(`span`,{className:`text-[10px] font-medium text-text-subtle uppercase tracking-wider flex items-center gap-1`,children:[(0,T.jsx)(s,{className:`size-3`}),`Recent`]}),y&&(0,T.jsx)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),N()},className:`text-text-subtle hover:text-text-primary transition-colors p-0.5 rounded`,title:`Refresh skill list`,"aria-label":`Refresh skill list`,children:(0,T.jsx)(a,{className:`size-3 ${S?`animate-spin`:``}`})})]}),u&&(0,T.jsx)(`div`,{className:`px-3 pt-1.5 pb-0.5`,children:(0,T.jsx)(`span`,{className:`text-[10px] font-medium text-text-subtle uppercase tracking-wider`,children:`All`})}),(0,T.jsxs)(`button`,{className:`flex items-start gap-3 w-full px-3 py-2 text-left transition-colors ${t===b?`bg-primary/10 text-primary`:`hover:bg-surface-hover text-text-primary`}`,onMouseEnter:()=>x(t),onClick:()=>n(e),children:[(0,T.jsx)(`span`,{className:`shrink-0 mt-0.5`,children:e.iconDataUri?(0,T.jsx)(`img`,{src:e.iconDataUri,alt:``,className:`size-4 object-contain`}):e.type===`builtin`?(0,T.jsx)(i,{className:`size-4 text-emerald-500`}):e.type===`skill`?(0,T.jsx)(o,{className:`size-4 text-warning`}):e.type===`agent`?(0,T.jsx)(c,{className:`size-4 text-sky-500`}):(0,T.jsx)(r,{className:`size-4 text-primary`})}),(0,T.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,T.jsxs)(`div`,{className:`flex items-baseline gap-2 min-w-0`,children:[(0,T.jsxs)(`span`,{className:`font-medium text-sm truncate`,children:[e.invokeSigil??`/`,e.name]}),e.displayName&&e.displayName!==e.name&&(0,T.jsx)(`span`,{className:`text-xs text-text-2 truncate`,children:e.displayName}),e.argumentHint&&(0,T.jsx)(`span`,{className:`text-xs text-text-subtle truncate`,children:e.argumentHint}),(0,T.jsx)(`span`,{className:`text-xs text-text-subtle capitalize ml-auto shrink-0 whitespace-nowrap`,children:e.invokeSigil===`$`?`Codex`:e.scope===`bundled`?`PPM`:e.scope===`user`?`global`:e.type})]}),e.description&&(0,T.jsx)(`p`,{className:`text-xs text-text-subtle mt-0.5 line-clamp-2 break-words`,children:e.description})]})]})]},`${e.type}-${e.name}`)})})})}export{y as i,v as n,_ as r,E as t};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{S as e}from"./vendor-markdown-QKPNiWEd.js";import{g as t,o as n}from"./icons-JMA45Ifw.js";import{n as r}from"./utils-Bslrbb-G.js";function i(e,t){return{cpu:e.cpu,ramMB:e.ramMB,name:t,swapMB:e.swapMB,diskReadBps:e.diskReadBps,diskWriteBps:e.diskWriteBps,gpuPct:e.gpuPct,gpuMemMB:e.gpuMemMB,netInBps:e.netInBps,netOutBps:e.netOutBps}}function a(e,t){if(!(e===void 0&&t===void 0))return(e??0)+(t??0)}function o(e,t){return e===`swap`?t.swapMB:e===`disk`?a(t.diskReadBps,t.diskWriteBps):e===`net`?a(t.netInBps,t.netOutBps):e===`gpu`?t.gpuPct:t.gpuMemMB}function s(e){return e===`swap`||e===`disk`||e===`gpu`||e===`gpuMem`||e===`net`}function c(e,t,n,r){return t?[...e].sort((e,i)=>{let a=r(e),c=r(i);if(t===`name`){let e=a.name.localeCompare(c.name);return n===`asc`?e:-e}if(t===`cpu`)return n===`asc`?a.cpu-c.cpu:c.cpu-a.cpu;if(t===`ram`)return n===`asc`?a.ramMB-c.ramMB:c.ramMB-a.ramMB;if(s(t)){let e=o(t,a),r=o(t,c);return e===void 0&&r===void 0?0:e===void 0?1:r===void 0?-1:n===`asc`?e-r:r-e}return 0}):e}var l={cpu:0,ramMB:0,count:0};function u(e,t){return t===void 0?e:(e??0)+t}function d(e,t,n){return{cpu:e.cpu+t.cpu,ramMB:e.ramMB+t.ramMB,count:e.count+n,swapMB:u(e.swapMB,t.swapMB),diskReadBps:u(e.diskReadBps,t.diskReadBps),diskWriteBps:u(e.diskWriteBps,t.diskWriteBps),gpuMemMB:u(e.gpuMemMB,t.gpuMemMB),netInBps:u(e.netInBps,t.netInBps),netOutBps:u(e.netOutBps,t.netOutBps)}}function f(e,t){return e.toLowerCase().includes(t)}function p(e,t){return f(e.name,t)||f(e.command,t)}function m(e){let{processes:t,groups:n,mode:r,ppmOnly:a,query:o,sortKey:s,sortDir:u,expanded:m}=e,h=o.trim().toLowerCase(),g=new Map(t.map(e=>[e.pid,e]));if(r===`flat`){let e=a?t.filter(e=>e.ppm):t;h&&(e=e.filter(e=>p(e,h))),e=c(e,s,u,e=>i(e,e.name));let n=e.reduce((e,t)=>d(e,t,1),l);return{rows:e.map(e=>({kind:`process`,proc:e,indent:!1})),totals:n,autoExpanded:new Set}}let _=a?n.filter(e=>e.ppm):n,v=new Set;h&&(_=_.filter(e=>{let t=f(e.label,h),n=e.pids.some(e=>{let t=g.get(e);return t?p(t,h):!1}),r=t||n;return r&&n&&v.add(e.key),r})),_=c(_,s,u,e=>i(e,e.label));let y=[];for(let e of _){let t=h&&v.has(e.key)||m.has(e.key);if(y.push({kind:`group`,group:e,expanded:t}),!t)continue;let n=e.pids.map(e=>g.get(e)).filter(e=>e!==void 0);h&&(n=n.filter(e=>p(e,h))),n=c(n,s,u,e=>i(e,e.name));for(let e of n)y.push({kind:`process`,proc:e,indent:!0})}return{rows:y,totals:_.reduce((e,t)=>d(e,t,t.count),l),autoExpanded:v}}function h(e,t,n){return e===n?t===`desc`?[n,`asc`]:[null,`desc`]:[n,`desc`]}var g=e();function _({label:e,field:i,activeKey:a,activeDir:o,onClick:s,align:c=`right`,testId:l,className:u,resizeKey:d,resize:f}){let p=a===i,m=p?o===`asc`?t:n:null,h=p?o===`asc`?`ascending`:`descending`:`none`;return(0,g.jsxs)(`div`,{role:`columnheader`,"aria-sort":h,className:r(`relative py-1.5 px-2 font-medium select-none`,c===`left`?`text-left`:`text-right`,u),children:[(0,g.jsxs)(`button`,{type:`button`,"data-testid":l,onClick:()=>s(i),className:r(`flex items-center gap-0.5 w-full min-h-11 md:min-h-0 cursor-pointer hover:text-text-primary transition-colors`,c===`left`?`justify-start`:`justify-end`,p&&`text-text-primary`),children:[(0,g.jsx)(`span`,{className:`truncate`,children:e}),m&&(0,g.jsx)(m,{className:`size-3 shrink-0`})]}),d&&f&&(0,g.jsx)(`div`,{role:`separator`,"aria-orientation":`vertical`,"aria-label":`Resize ${e} column`,"data-testid":l?`${l}-resize`:void 0,onPointerDown:e=>f.onResizeStart(d,e),onDoubleClick:()=>f.onResizeReset(d),className:`hidden md:block absolute top-0 -right-1 h-full w-2 cursor-col-resize hover:bg-primary/40 active:bg-primary/60`})]})}export{m as n,h as r,_ as t};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./sql-identifiers-DDISwQor.js";var t=/[A-Za-z0-9_$\u0080-]/,n=/^\$(?:[A-Za-z_\u0080-][A-Za-z0-9_\u0080-]*)?\$/,r=/^delimiter[ \t]+(\S+)/i;function i(e,t,n,r){let i=t+1;for(;i<e.length;){let t=e[i];if(r&&t===`\\`){i+=2;continue}if(t===n){if(n!==`]`&&e[i+1]===n){i+=2;continue}return i+1}i++}return e.length}function a(e,t,n){let r=0,i=t;for(;i<e.length;)if(e[i]===`/`&&e[i+1]===`*`)r++,i+=2,!n&&r>1&&(r=1);else if(e[i]===`*`&&e[i+1]===`/`){if(r--,i+=2,r===0)return i}else i++;return e.length}function o(e,t){let n=e.indexOf(`
|
|
2
|
-
`,t);return n===-1?e.length:n}function s(e,t){let n=e[t+2];return n===void 0||n<=` `}function*c(e,c,l={}){let u=c===`postgres`,d=c===`mysql`,f=l.backslashEscapes??d,p=`;`,m=0,h=-1,g=!1,_=!0,v=function*(){h!==-1&&(yield{kind:`code`,start:h,end:m},h=-1)};for(;m<e.length;){let l=e[m];if(d&&_&&!g&&(l===`d`||l===`D`)){let t=o(e,m),n=r.exec(e.slice(m,t));if(n&&!n[1].includes(`\\`)){yield*v(),yield{kind:`directive`,start:m,end:t},p=n[1],m=t;continue}}if(e.startsWith(p,m)){yield*v(),yield{kind:`end`,start:m,end:m+p.length},m+=p.length,g=!1,_=!1;continue}let y=m>0?e[m-1]:``,b=-1,x=`literal`;if(l===`-`&&e[m+1]===`-`&&(!d||s(e,m)))b=o(e,m),x=`comment`;else if(d&&l===`#`)b=o(e,m),x=`comment`;else if(l===`/`&&e[m+1]===`*`)b=a(e,m,u),x=d&&(e[m+2]===`!`||e[m+2]===`M`&&e[m+3]===`!`)?`code`:`comment`;else if(l===`'`){let n=u&&(y===`E`||y===`e`)&&!t.test(e[m-2]??``);b=i(e,m,`'`,n||!u&&f)}else if(l===`"`)b=i(e,m,`"`,d&&f);else if(!u&&l==="`")b=i(e,m,"`",!1);else if(c===`sqlite`&&l===`[`)b=i(e,m,`]`,!1);else if(u&&l===`$`&&!t.test(y)){let t=n.exec(e.slice(m));if(t){let n=e.indexOf(t[0],m+t[0].length);b=n===-1?e.length:n+t[0].length}}if(b!==-1){yield*v(),yield{kind:x,start:m,end:b},x!==`comment`&&(g=!0),_=!1,m=b;continue}h===-1&&(h=m),l===`
|
|
3
|
-
`?_=!0:l!==` `&&l!==` `&&l!==`\r`&&(_=!1,g=!0),m++}yield*v()}function l(e,t){return t.kind===`literal`||t.kind===`code`&&e.slice(t.start,t.end).trim()!==``}function u(e,t=`postgres`,n={}){let r=[],i=0,a=!1,o=t=>{let n=e.slice(i,t).trim();a&&n&&r.push(n),a=!1};for(let r of c(e,t,n))r.kind===`end`||r.kind===`directive`?(o(r.start),i=r.end):l(e,r)&&(a=!0);return o(e.length),r}function d(e,t=`postgres`,n={}){let r=``;for(let i of c(e,t,n)){let t=e.slice(i.start,i.end);i.kind===`code`?r+=t:i.kind===`literal`?r+=t[0]===`"`||t[0]==="`"||t[0]===`[`?` "" `:` '' `:i.kind===`comment`?r+=` `:i.kind===`end`?r+=`;`:r+=` `}return r}function f(e,t=`postgres`){let n=[];for(let i of c(e,t))i.kind===`directive`&&n.push({start:i.start,end:i.end,delimiter:r.exec(e.slice(i.start,i.end))[1]});return n}function p(e){let t=[];for(let n=e.indexOf(`
|
|
4
|
-
`);n!==-1;n=e.indexOf(`
|
|
5
|
-
`,n+1))t.push(n);return{lineAt:e=>{let n=0,r=t.length;for(;n<r;){let i=n+r>>1;t[i]<e?n=i+1:r=i}return n+1},lines:t.length+1}}function m(e,t=`postgres`){let{lineAt:n,lines:i}=p(e),a=[],o=`;`,s=-1,l=(t,r,i)=>{if(s===-1)return;let c=e.slice(s,t).trim();if(c){let e=c;if(o!==`;`){let t=i?c.slice(0,c.length-o.length).trimEnd():c;e=`DELIMITER ${o}\n${t}\n${o}`}a.push({sql:c,run:e,startLine:n(s),endLine:r})}s=-1};for(let i of c(e,t)){if(i.kind===`directive`){o=r.exec(e.slice(i.start,i.end))[1];continue}if(i.kind!==`comment`){if(s===-1){let t=e.slice(i.start,i.end).search(/\S/);t!==-1&&(s=i.start+t)}i.kind===`end`&&l(i.end,n(i.start),!0)}}return l(e.length,i,!1),a}function h(e,t,n=`postgres`){return g(m(e,n),t)}function g(e,t){return e.length===0?null:e.find(e=>e.startLine<=t&&t<=e.endLine)??e.find(e=>e.startLine>t)??e[e.length-1]}function _(e,t,n=`postgres`){return h(e,t,n)?.run??``}function v(e){return e.startLine-(e.run===e.sql?1:2)}var y=`SELECT.FROM.WHERE.INSERT.INTO.VALUES.UPDATE.SET.DELETE.CREATE.TABLE.ALTER.DROP.INDEX.JOIN.LEFT.RIGHT.INNER.OUTER.ON.AND.OR.NOT.NULL.IS.IN.LIKE.BETWEEN.HAVING.LIMIT.OFFSET.AS.DISTINCT.COUNT.SUM.AVG.MIN.MAX.CASE.WHEN.THEN.ELSE.END.EXISTS.UNION.ALL.ASC.DESC.ORDER BY.GROUP BY.LEFT JOIN.RIGHT JOIN.INNER JOIN.CROSS JOIN.IS NULL.IS NOT NULL`.split(`.`),b={postgres:`FULL OUTER JOIN.ILIKE.SIMILAR TO.IS DISTINCT FROM.RETURNING.ON CONFLICT.DO NOTHING.DO UPDATE SET.DISTINCT ON.LATERAL.WITH RECURSIVE.FILTER.OVER.PARTITION BY.NULLS FIRST.NULLS LAST.FETCH FIRST.ROWS ONLY.TRUNCATE.EXPLAIN ANALYZE.VACUUM.ANALYZE.COPY.SCHEMA.SEQUENCE.MATERIALIZED VIEW.REFRESH MATERIALIZED VIEW.SERIAL.BIGSERIAL.JSONB.TIMESTAMPTZ.GENERATED ALWAYS AS IDENTITY`.split(`.`),mysql:[`AUTO_INCREMENT`,`ON DUPLICATE KEY UPDATE`,`INSERT IGNORE`,`REPLACE INTO`,`STRAIGHT_JOIN`,`REGEXP`,`RLIKE`,`SHOW TABLES`,`SHOW DATABASES`,`SHOW COLUMNS FROM`,`SHOW CREATE TABLE`,`SHOW INDEX FROM`,`SHOW PROCESSLIST`,`SHOW VARIABLES`,`DESCRIBE`,`USE`,`ENGINE`,`CHARSET`,`COLLATE`,`UNSIGNED`,`DELIMITER`,`TRUNCATE`,`LOCK TABLES`,`UNLOCK TABLES`],sqlite:[`FULL OUTER JOIN`,`PRAGMA`,`AUTOINCREMENT`,`GLOB`,`WITHOUT ROWID`,`STRICT`,`INSERT OR REPLACE`,`INSERT OR IGNORE`,`ON CONFLICT`,`DO NOTHING`,`DO UPDATE SET`,`RETURNING`,`WITH RECURSIVE`,`ATTACH DATABASE`,`DETACH DATABASE`,`VACUUM`,`REINDEX`,`ANALYZE`,`ROWID`]};function x(e){return[...y,...b[e]]}var S=[`COUNT`,`SUM`,`AVG`,`MIN`,`MAX`],C=[`=`,`!=`,`<>`,`>`,`<`,`>=`,`<=`,`LIKE`,`IN`,`NOT IN`,`BETWEEN`,`IS NULL`,`IS NOT NULL`],w={postgres:[`ILIKE`,`NOT ILIKE`,`SIMILAR TO`,`IS DISTINCT FROM`],mysql:[`REGEXP`,`NOT REGEXP`,`<=>`],sqlite:[`GLOB`,`IS`,`IS NOT`]};function T(e){return[...C,...w[e]]}var E=[`ASC`,`DESC`],D=new WeakMap,O=`FROM.JOIN.UPDATE.INTO.WHERE.SET.ON.USING.ORDER.GROUP.HAVING.LIMIT.OFFSET.LEFT.RIGHT.INNER.OUTER.CROSS.FULL.NATURAL.STRAIGHT_JOIN.AND.OR.VALUES.SELECT.DELETE.INSERT.CREATE.ALTER.DROP.UNION.EXCEPT.INTERSECT.RETURNING.WINDOW.FETCH.FOR.DEFAULT.LATERAL.FORCE.IGNORE.USE`.split(`.`),k=new Set(O),A=String.raw`(?:"[^"]+"|\x60[^\x60]+\x60|\w+)`,j=new RegExp(String.raw`\s*(${A}(?:\s*\.\s*${A})?)(?:\s+AS\s+(${A})|\s+(?!(?:${O.join(`|`)})\b)(\w+))?`,`iy`),M=/\s*,/y,N=e=>/^["\x60]/.test(e)?e.slice(1,-1):e;function P(e){let t=new Set,n=new Map,r=new Map;for(let i of e.matchAll(/\b(FROM|JOIN|UPDATE|INTO)\b/gi)){j.lastIndex=i.index+i[0].length;let a=/^(FROM|UPDATE)$/i.test(i[1]);for(let i=j.exec(e);i;i=j.exec(e)){let o=[...i[1].matchAll(new RegExp(A,`g`))].map(e=>N(e[0])),s=o.at(-1);t.add(s),o.length===2&&r.set(s.toLowerCase(),o[0]);let c=i[2]?N(i[2]):i[3];if(c&&!k.has(c.toUpperCase())&&n.set(c.toLowerCase(),s),!a||(M.lastIndex=j.lastIndex,!M.test(e)))break;j.lastIndex=M.lastIndex}}return{tableRefs:t,aliasMap:n,schemaOf:r}}function F(e,t){return t.get(e.toLowerCase())??e}function I(e,t,n){let r=t.get(e.toLowerCase());if(r)return r;let i=n.tables.filter(t=>t.name.toLowerCase()===e.toLowerCase());return i.length===1&&i[0].schema?i[0].schema:void 0}async function L(e,t,n){let r=D.get(t);r||D.set(t,r=new Map);let i=`${n??``}.${e.toLowerCase()}`,a=r.get(i);if(!a)try{a=await t.getColumns(e,n),r.set(i,a)}catch{a=[]}return a}function R(t,n){return n===`mysql`?/^[A-Za-z_][\w$]*$/.test(t)?t:e(t,n):/[A-Z]/.test(t)?e(t,n):t}async function z({tableRefs:e,schemaOf:t},n,r,i,a){let o=[],s=new Set;for(let c of e){let e=await L(c,n,I(c,t,n));for(let t of e)s.has(t.name)||(s.add(t.name),o.push({label:t.name,kind:r.languages.CompletionItemKind.Field,detail:`${c} · ${t.type}`,insertText:R(t.name,a),range:i,sortText:`0`+t.name}))}return o}function B(e){if(/(\w+)\.\s*$/.test(e))return`dot`;let t=e.match(/\b(?:ORDER|GROUP)\s+BY\s+(?:[\w"`]+\s+(?:ASC|DESC)\s*,\s*)*[\w"`]+\s+(\w*)$/i);if(t){let e=t[1].toUpperCase();return e===`ASC`||e===`DESC`?`after-direction`:`sort-direction`}return/\b(?:ORDER|GROUP)\s+BY\s+.*(?:ASC|DESC)\s*,\s*\w*$/i.test(e)?`order-by-next-col`:/\b(?:WHERE|AND|OR)\s+[\w"`]+\s+\S*$/i.test(e)?`operator`:/\b(?:FROM|JOIN|INTO|UPDATE|TABLE)\s+\w*$/i.test(e)?`table`:/\bINSERT\s+INTO\s+[\w"`]+\s*\(\s*(?:[\w"`]+\s*,\s*)*\w*$/i.test(e)?`insert-cols`:/\b(?:SELECT|WHERE|ORDER\s+BY|GROUP\s+BY|HAVING|SET|ON|AND|OR)\s+(?:[\w"`]+\s*,\s*)*\w*$/i.test(e)?`columns`:/,\s*\w*$/.test(e)?`comma-cols`:`default`}function V(e,t,n,r){return{triggerCharacters:[`.`,`,`],provideCompletionItems:async(i,a)=>{if(i!==r.getModel())return{suggestions:[]};try{let r=i.getValueInRange({startLineNumber:1,startColumn:1,endLineNumber:a.lineNumber,endColumn:a.column}),o=i.getWordUntilPosition(a),s={startLineNumber:a.lineNumber,endLineNumber:a.lineNumber,startColumn:o.startColumn,endColumn:o.endColumn},c=i.getValue(),l=n(),u=P(_(c,a.lineNumber,l)),{tableRefs:d,aliasMap:f}=u,p=[],m=B(r);if(m===`dot`){let n=r.match(/(\w+)\.\s*$/);if(n){let r=n[1],i=F(r,f),a=await L(i,t,I(i,u.schemaOf,t));for(let t of a)p.push({label:t.name,kind:e.languages.CompletionItemKind.Field,detail:t.type,insertText:R(t.name,l),range:s})}return{suggestions:p}}if(m===`sort-direction`){for(let t of E)p.push({label:t,kind:e.languages.CompletionItemKind.Keyword,insertText:t,range:s,sortText:`0`+t});return{suggestions:p}}if(m===`after-direction`)return{suggestions:[]};if(m===`order-by-next-col`)return p.push(...await z(u,t,e,s,l)),{suggestions:p};if(m===`operator`){for(let t of T(l))p.push({label:t,kind:e.languages.CompletionItemKind.Operator,insertText:t,range:s,sortText:`0`+t});return{suggestions:p}}if(m===`table`){for(let n of t.tables)p.push({label:n.name,kind:e.languages.CompletionItemKind.Struct,detail:n.schema,insertText:n.name,range:s,sortText:`0`+n.name});return{suggestions:p}}if(m===`insert-cols`)return p.push(...await z(u,t,e,s,l)),{suggestions:p};if(m===`columns`){if(p.push(...await z(u,t,e,s,l)),/\bSELECT\s+/i.test(r)){p.push({label:`*`,kind:e.languages.CompletionItemKind.Value,insertText:`*`,range:s,sortText:`00*`});for(let t of S)p.push({label:`${t}()`,kind:e.languages.CompletionItemKind.Function,insertText:`${t}($0)`,insertTextRules:e.languages.CompletionItemInsertTextRule.InsertAsSnippet,range:s,sortText:`1`+t})}for(let t of x(l))p.push({label:t,kind:e.languages.CompletionItemKind.Keyword,insertText:t,range:s,sortText:`3`+t});return{suggestions:p}}if(m===`comma-cols`&&d.size>0)return p.push(...await z(u,t,e,s,l)),{suggestions:p};for(let t of x(l))p.push({label:t,kind:e.languages.CompletionItemKind.Keyword,insertText:t,range:s,sortText:`2`+t});for(let n of t.tables)p.push({label:n.name,kind:e.languages.CompletionItemKind.Struct,detail:n.schema,insertText:n.name,range:s,sortText:`1`+n.name});return{suggestions:p}}catch{return{suggestions:[]}}}}}export{u as a,g as c,v as i,h as l,f as n,m as o,_ as r,d as s,V as t};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{C as t,S as n}from"./vendor-markdown-QKPNiWEd.js";import"./vendor-ui-CS1GvlOm.js";import{Bt as r,Fr as i,Lr as a,P as o,at as s}from"./icons-JMA45Ifw.js";import"./api-client-OiA8Ida1.js";import"./settings-store-WeJyQVL8.js";import{n as c}from"./utils-Bslrbb-G.js";import{w as l}from"./panel-store-DmP16Fo0.js";import"./window-store-zJczRsv4.js";import"./project-store-CEGoLMOl.js";import"./project-framework-store-Bi5dyHdx.js";import"./session-list-sync-triggers-DitiR5h1.js";import{t as u}from"./tab-store-nNzRNfVV.js";import{n as d}from"./use-is-mobile-BXHbkfs9.js";import"./settings-categories-CcR9eL3x.js";import"./open-settings-DsGBn73g.js";import"./button-Br60hGkw.js";import"./use-db-driver-installed-BscdI-wS.js";import"./db-types-9ac-eYxf.js";import"./db-explorer-store-BcLxq-X0.js";import{a as f,n as p,s as m}from"./open-db-tabs-CkQe49j_.js";import{J as h,q as g}from"./index-ItT-dTPV.js";import{t as _}from"./use-monaco-theme-DqnhExsm.js";import{t as v}from"./editor-font-CdxKRKX-.js";import{t as y}from"./use-db-tab-Cr4lXxwF.js";import{t as b}from"./use-db-read-DYuyNA5i.js";import{i as x,n as S,r as C,t as w}from"./db-tab-parts-DvmnlA6V.js";var T=e(t(),1),E={table:`CREATE TABLE`,view:`CREATE VIEW`,matview:`CREATE MATERIALIZED VIEW`,function:`CREATE FUNCTION`,procedure:`CREATE PROCEDURE`,trigger:`CREATE TRIGGER`,sequence:`CREATE SEQUENCE`};function D(e,t){if(!t)return[];let n=[{kind:`create`,label:E[e],sql:t.create}];return t.select!==void 0&&n.push({kind:`select`,label:`SELECT`,sql:t.select}),t.insert!==void 0&&n.push({kind:`insert`,label:`INSERT`,sql:t.insert}),n}function O(e){let t=encodeURIComponent;return`/object-sql?kind=${t(e.kind)}&name=${t(e.name)}`+(e.schema?`&schema=${t(e.schema)}`:``)+(e.args===void 0?``:`&args=${t(e.args)}`)+(e.table?`&table=${t(e.table)}`:``)}var k=n();function A({metadata:e,tabId:t}){let n=y(e,t),s=e?.objectKind,d=typeof e?.objectName==`string`?e.objectName:``,h=typeof e?.schemaName==`string`?e.schemaName:``,g=typeof e?.objectArgs==`string`?e.objectArgs:void 0,_=typeof e?.objectTable==`string`?e.objectTable:void 0,v=s&&d?O({kind:s,name:d,schema:h||null,args:g,table:_}):null,E=b(n.missing?null:n.target,v,t),A=E.data,M=A?.kind??s??`table`,N=D(M,A),[P,F]=(0,T.useState)(`create`),I=N.find(e=>e.kind===P)??N[0],L=M===`table`||M===`view`||M===`matview`,R={schema:h||null,name:d,kind:M},z=()=>{n.place&&f(n.place,R)},B=()=>{n.place&&m(n.place,R)},V=e=>{n.place&&p(n.place,e)},H=t?()=>u.getState().closeTab(t):void 0;return n.missing?(0,k.jsx)(S,{empty:`This connection no longer exists.`}):(0,k.jsxs)(`div`,{className:`flex h-full w-full flex-col overflow-hidden`,children:[(0,k.jsx)(w,{title:d,subtitle:[l(n.target,n.name),h,`SQL`].filter(Boolean).join(` · `),color:n.conn?.color??e?.connectionColor,onClose:H}),(0,k.jsxs)(x,{label:`${d} SQL`,className:c(!L&&N.length<=1&&`max-md:hidden`),children:[L&&(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(C,{icon:r,label:`Structure`,title:`Open the structure of ${d} in its own tab`,onClick:z,opensTab:!0,disabled:!n.place}),(0,k.jsx)(C,{icon:a,label:`Data`,title:`Open the data of ${d}`,onClick:B,opensTab:!0,disabled:!n.place})]}),N.length>1&&(0,k.jsxs)(`span`,{className:`relative mx-1 flex min-w-[150px] shrink-0 max-md:min-w-0 max-md:flex-1`,children:[(0,k.jsx)(`select`,{"aria-label":`Script shown`,value:I?.kind,onChange:e=>F(e.target.value),className:`h-[26px] w-full min-w-0 appearance-none rounded-[5px] border border-border bg-input pr-[26px] pl-2 text-xs text-foreground outline-none focus:border-primary max-md:h-11 max-md:text-sm`,children:N.map(e=>(0,k.jsx)(`option`,{value:e.kind,children:e.label},e.kind))}),(0,k.jsx)(o,{className:`pointer-events-none absolute top-1/2 right-1.5 size-3.5 -translate-y-1/2 text-text-subtle`})]}),N.map(e=>(0,k.jsx)(C,{icon:i,label:e.label,title:`Open this script in a new Query tab`,onClick:()=>V(e.sql),disabled:!n.place,className:`max-md:hidden`},e.kind))]}),(0,k.jsx)(`div`,{className:`min-h-0 flex-1 overflow-hidden bg-input`,children:I?(0,k.jsx)(j,{sql:I.sql}):(0,k.jsx)(S,{loading:E.loading||!E.error&&!E.driver,error:E.error,driver:E.driver})}),I&&(0,k.jsx)(`div`,{className:`flex shrink-0 gap-2 border-t border-border bg-panel-2 p-2 pb-[max(0.5rem,env(safe-area-inset-bottom))] md:hidden`,children:(0,k.jsxs)(`button`,{type:`button`,onClick:()=>V(I.sql),disabled:!n.place,className:`flex h-11 flex-1 items-center justify-center gap-2 rounded-md bg-primary text-sm font-medium text-primary-foreground disabled:opacity-50`,children:[(0,k.jsx)(i,{className:`size-4`}),`Open in a new Query tab`]})})]})}function j({sql:e}){let t=_(),n=d();return(0,k.jsx)(h,{beforeMount:g,height:`100%`,language:`sql`,theme:t,value:e,loading:(0,k.jsx)(s,{className:`size-5 text-text-subtle`}),options:{readOnly:!0,domReadOnly:!0,fontFamily:v,fontSize:13,minimap:{enabled:!1},scrollBeyondLastLine:!1,wordWrap:n?`on`:`off`,renderLineHighlight:`none`,overviewRulerLanes:0,hideCursorInOverviewRuler:!0,folding:!1,padding:{top:8,bottom:8},scrollbar:{verticalScrollbarSize:8,horizontalScrollbarSize:8},fixedOverflowWidgets:!0}})}export{j as ReadOnlySql,A as SqlObjectTab};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{C as t,S as n}from"./vendor-markdown-QKPNiWEd.js";import"./vendor-ui-CS1GvlOm.js";import{Fr as r,Lr as i,P as a,_t as o,dn as s,hr as c,pt as l}from"./icons-JMA45Ifw.js";import"./api-client-OiA8Ida1.js";import"./settings-store-WeJyQVL8.js";import{n as u}from"./utils-Bslrbb-G.js";import"./portal-container-context-BXAsDqrB.js";import"./panel-store-DmP16Fo0.js";import"./window-store-zJczRsv4.js";import"./project-store-CEGoLMOl.js";import"./project-framework-store-Bi5dyHdx.js";import"./session-list-sync-triggers-DitiR5h1.js";import{t as d}from"./tab-store-nNzRNfVV.js";import"./context-menu-BoQ6lxte.js";import"./use-is-mobile-BXHbkfs9.js";import"./settings-categories-CcR9eL3x.js";import"./open-settings-DsGBn73g.js";import"./button-Br60hGkw.js";import"./dialog-DOaEX6AK.js";import"./file-icons-DpwcJLL4.js";import"./dropdown-menu-DB3yyoVz.js";import"./mobile-bottom-sheet-CGmmdp_5.js";import"./use-visual-viewport-CQ6-A0Dt.js";import"./adaptive-context-menu-Cq7ynvIn.js";import"./fs-api-BQrIEcvo.js";import"./format-file-meta-C0LKHE3e.js";import"./input-CKGoVpYv.js";import"./use-db-driver-installed-BscdI-wS.js";import"./db-types-9ac-eYxf.js";import{d as f,n as p}from"./explorer-model-BmgFEsj1.js";import"./db-explorer-store-BcLxq-X0.js";import{n as m}from"./open-db-tabs-CkQe49j_.js";import"./impexp-state-BWKOuRGj.js";import"./scroll-area-6Am1KMiB.js";import"./marked.esm-jqwIt-AK.js";import{t as h}from"./use-db-tab-Cr4lXxwF.js";import{t as g}from"./use-db-read-DYuyNA5i.js";import{a as _,n as v}from"./db-tab-parts-DvmnlA6V.js";import"./use-opener-focus-C5L5UUJs.js";import"./filter-dialog-frame-CoWlaNRy.js";import"./use-at-most-wide-BQFi1Sjv.js";import"./glide-data-grid-BxvI3ehr.js";import{TableView as y}from"./table-tab-B5asfTBP.js";var b=e(t(),1),x=n(),S={table:i,view:o,matview:s};function C({metadata:e,tabId:t}){let n=typeof e?.filePath==`string`?e.filePath:``,i=typeof e?.projectName==`string`&&e.projectName?e.projectName:void 0,o=h((0,b.useMemo)(()=>n?{dbFile:{path:n,...i?{projectName:i}:{}}}:void 0,[n,i]),void 0),s=g(o.target,`/objects`,t),f=(0,b.useMemo)(()=>s.data?.objects.filter(e=>p.has(e.kind))??[],[s.data]),S=typeof e?.tableName==`string`?e.tableName:null,C=f.find(e=>e.name===S)??null,T=n=>{t&&d.getState().updateTab(t,{metadata:{...e,tableName:n}})},E=()=>{o.place&&m(o.place,``)};return n?s.data?(0,x.jsxs)(`div`,{className:`flex h-full w-full overflow-hidden max-md:flex-col`,children:[(0,x.jsxs)(`aside`,{"aria-label":`Tables and views`,className:`flex w-56 shrink-0 flex-col overflow-hidden border-r border-border bg-background max-md:hidden`,children:[(0,x.jsxs)(`div`,{className:`flex h-9 shrink-0 items-center gap-0.5 border-b border-border pr-1 pl-3`,children:[(0,x.jsx)(`span`,{className:`flex-1 truncate text-xs font-medium tracking-wider text-text-subtle uppercase`,children:`Tables`}),(0,x.jsx)(`button`,{type:`button`,onClick:E,disabled:!o.place,title:`New query on this file`,"aria-label":`New query`,className:u(_,`px-1.5`),children:(0,x.jsx)(r,{className:`size-4`})}),(0,x.jsx)(`button`,{type:`button`,onClick:()=>s.reload(),title:`Refresh the list`,"aria-label":`Refresh the list`,className:u(_,`px-1.5`),children:(0,x.jsx)(c,{className:u(`size-4`,s.loading&&`animate-spin`)})})]}),(0,x.jsxs)(`div`,{role:`listbox`,"aria-label":`Tables and views`,className:`min-h-0 flex-1 overflow-y-auto py-1`,children:[f.map(e=>(0,x.jsx)(w,{o:e,selected:e.name===C?.name,onPick:T},e.name)),f.length===0&&(0,x.jsx)(`p`,{className:`px-3 py-4 text-center text-xs text-text-subtle`,children:`No tables found`})]})]}),(0,x.jsxs)(`div`,{className:`hidden shrink-0 items-center gap-1 border-b border-border bg-panel-2 px-2 py-1 max-md:flex`,children:[(0,x.jsxs)(`span`,{className:`relative flex min-w-0 flex-1`,children:[(0,x.jsxs)(`select`,{"aria-label":`Table`,value:C?.name??``,onChange:e=>T(e.target.value),className:`h-11 w-full min-w-0 appearance-none rounded-[5px] border border-border bg-input pr-[26px] pl-2 text-sm text-foreground outline-none focus:border-primary`,children:[!C&&(0,x.jsx)(`option`,{value:``,children:f.length?`Pick a table…`:`No tables found`}),f.map(e=>(0,x.jsx)(`option`,{value:e.name,children:e.name},e.name))]}),(0,x.jsx)(a,{className:`pointer-events-none absolute top-1/2 right-1.5 size-3.5 -translate-y-1/2 text-text-subtle`})]}),(0,x.jsx)(`button`,{type:`button`,onClick:E,disabled:!o.place,"aria-label":`New query`,className:_,children:(0,x.jsx)(r,{className:`size-5`})})]}),(0,x.jsx)(`div`,{className:`min-h-0 min-w-0 flex-1 overflow-hidden`,children:C?(0,x.jsx)(y,{tab:o,table:C.name,schemaName:``,objectKind:C.kind,header:!1,shownIn:t},C.name):(0,x.jsx)(v,{empty:f.length?`Pick a table to see its rows.`:`This database has no tables yet.`})})]}):(0,x.jsx)(v,{loading:s.loading||!s.error&&!s.driver,error:s.error,driver:s.driver}):(0,x.jsxs)(`div`,{className:`flex h-full items-center justify-center gap-2 text-sm text-text-secondary`,children:[(0,x.jsx)(l,{className:`size-5`}),` No database file selected.`]})}function w({o:e,selected:t,onPick:n}){let r=S[e.kind]??i;return(0,x.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":t,onClick:()=>n(e.name),className:u(`flex h-7 w-full items-center gap-2 px-3 text-left text-xs`,t?`bg-accent-wash text-foreground`:`text-text-2 can-hover:hover:bg-surface-hover can-hover:hover:text-text-primary`),children:[(0,x.jsx)(r,{className:u(`size-4 shrink-0`,t?`text-primary`:`text-text-subtle`)}),(0,x.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.name}),e.rowEstimate!==void 0&&(0,x.jsx)(`span`,{className:`shrink-0 font-mono text-[10px] text-text-subtle`,children:f(e.rowEstimate)})]})}export{C as SqliteViewer};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{S as e}from"./vendor-markdown-QKPNiWEd.js";var t=e();function n({children:e}){return(0,t.jsx)(`span`,{dir:`rtl`,className:`truncate text-left min-w-0 flex-1`,children:(0,t.jsx)(`bdi`,{children:e})})}export{n as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{C as t,S as n}from"./vendor-markdown-QKPNiWEd.js";import"./vendor-ui-CS1GvlOm.js";import{xn as r}from"./icons-JMA45Ifw.js";import{k as i,n as a,r as o}from"./api-client-OiA8Ida1.js";import"./settings-store-WeJyQVL8.js";import{n as s}from"./utils-Bslrbb-G.js";import"./portal-container-context-BXAsDqrB.js";import{E as c}from"./panel-store-DmP16Fo0.js";import"./window-store-zJczRsv4.js";import"./project-store-CEGoLMOl.js";import"./project-framework-store-Bi5dyHdx.js";import"./session-list-sync-triggers-DitiR5h1.js";import"./tab-store-nNzRNfVV.js";import"./use-is-mobile-BXHbkfs9.js";import"./settings-categories-CcR9eL3x.js";import"./open-settings-DsGBn73g.js";import"./button-Br60hGkw.js";import"./dialog-DOaEX6AK.js";import"./file-icons-DpwcJLL4.js";import"./dropdown-menu-DB3yyoVz.js";import"./fs-api-BQrIEcvo.js";import"./format-file-meta-C0LKHE3e.js";import"./input-CKGoVpYv.js";import"./use-db-driver-installed-BscdI-wS.js";import"./db-types-9ac-eYxf.js";import{x as l}from"./db-explorer-store-BcLxq-X0.js";import{n as u}from"./open-db-tabs-CkQe49j_.js";import"./scroll-area-6Am1KMiB.js";import{Wn as d,l as f}from"./index-ItT-dTPV.js";import"./use-monaco-theme-DqnhExsm.js";import"./use-db-tab-Cr4lXxwF.js";import"./use-db-read-DYuyNA5i.js";import"./db-tab-parts-DvmnlA6V.js";import{ReadOnlySql as p}from"./sql-object-tab-DVo4bxRI.js";import{t as m}from"./editor-dialog-DC7dUWAX.js";var h=e(t(),1),g=e=>e.startsWith(`--`);function _(e,t){let n=t.index<0,r=(r,i)=>i===t.index?`failed`:g(r.sql)?null:r.phase===`after`?`ran`:!n&&i>t.index?`not-run`:r.phase===`before`||!e.transactional?`ran`:`rolled-back`,i=e.statements.map((e,t)=>({sql:e.sql,outcome:r(e,t)}));if(!n)return i;let a={sql:`COMMIT;`,outcome:`failed`},o=e.statements.findIndex(e=>e.phase===`after`);return o<0?[...i,a]:[...i.slice(0,o),a,...i.slice(o)]}var v={ran:`Ran`,"rolled-back":`Rolled back`,failed:`Failed`,"not-run":`Did not run`};function y(e){let t=e?.data;return typeof t==`object`&&t?t:null}function b(e){let t=e;return typeof t!=`object`||!t||typeof t.sql!=`string`?null:t.phase===`before`||t.phase===`after`?{sql:t.sql,phase:t.phase}:t.phase===void 0?{sql:t.sql}:null}function x(e){let t=y(e),n=Array.isArray(t?.statements)?t.statements.map(b):null;return!t||typeof t.sql!=`string`||!n||n.some(e=>e===null)||typeof t.recreate!=`boolean`||typeof t.transactional!=`boolean`?null:{sql:t.sql,statements:n,recreate:t.recreate,warnings:Array.isArray(t.warnings)?t.warnings.filter(e=>typeof e==`string`):[],transactional:t.transactional}}function S(e){let t=y(e);return!t||typeof t.index!=`number`||!Number.isInteger(t.index)||typeof t.statement!=`string`?null:{statement:t.statement,index:t.index,applied:typeof t.applied==`number`?t.applied:0,total:typeof t.total==`number`?t.total:0}}var C=n(),w=`This operation is not directly supported by SQL engine. PPM can emulate it, but please check the generated SQL script.`,T=`MySQL commits each statement of this script on its own: should one fail, those before it stay applied.`;function E({request:e,seq:t}){let[n,s]=(0,h.useState)({step:`reading`}),[g,_]=(0,h.useState)(!1),v=()=>d(t);(0,h.useEffect)(()=>{let n=!1;return o.post(c(e.target,`/structure/preview`),{change:e.change}).then(e=>{if(!n){if(e.statements.length>0){s({step:`confirm`,preview:e});return}i.info(`Nothing to save: the database already has the table this way`),d(t)}}).catch(e=>{n||s({step:`failed`,message:e.message})}),()=>{n=!0}},[e,t]);let y=async n=>{s({step:`applying`,preview:n});try{await o.post(c(e.target,`/structure/apply`),{change:e.change,allowRecreate:n.recreate&&g,sql:n.sql})}catch(e){let t=e instanceof a?e.body:null,r=e instanceof a&&e.status===409?x(t):null;if(r){_(!1),s({step:`confirm`,preview:r,notice:e.message});return}s({step:`failed`,message:e.message,preview:n,failure:S(t)});return}i.success(`Saved to database`),d(t),e.onSaved?.(),l(e.target)};if(n.step===`failed`)return(0,C.jsxs)(m,{title:`Error when saving`,description:`Why the change could not be saved`,onClose:v,onSubmit:v,problems:[],buttons:[{label:`Close`,onClick:v,variant:`default`}],wide:!0,children:[(0,C.jsx)(`p`,{role:`alert`,className:`whitespace-pre-wrap break-words text-[13px] text-text-primary`,children:n.message}),n.preview&&n.failure&&(0,C.jsx)(O,{preview:n.preview,failure:n.failure})]});let b=n.step===`reading`?null:n.preview,E=n.step===`applying`,D=!b||E||b.recreate&&!g;return(0,C.jsxs)(m,{title:`Save changes`,description:`The script that makes the change, to read before it runs`,onClose:()=>{E||v()},onSubmit:D?void 0:()=>void y(b),problems:[],buttons:[{label:E?`Saving…`:`OK`,onClick:()=>{b&&!D&&y(b)},variant:`default`,disabled:D},{label:`Close`,onClick:v,disabled:E},{label:`Open script`,onClick:()=>{b&&(v(),u(e.place,b.sql))},disabled:!b||E}],wide:!0,children:[n.step===`confirm`&&n.notice&&(0,C.jsx)(`p`,{role:`alert`,className:`rounded-md border border-warning/40 bg-warning/10 px-3 py-2 text-[12.5px] text-text-primary`,children:n.notice}),(0,C.jsx)(`div`,{className:`h-[min(22rem,45dvh)] overflow-hidden rounded-md border border-border bg-panel-2`,children:b?(0,C.jsx)(p,{sql:b.sql}):(0,C.jsx)(`div`,{className:`grid h-full place-items-center text-text-subtle`,role:`status`,"aria-label":`Reading the script`,children:(0,C.jsx)(r,{className:`size-5 animate-spin`})})}),b&&b.warnings.length>0&&(0,C.jsx)(`ul`,{className:`grid gap-1 text-[12.5px] text-warning`,children:b.warnings.map(e=>(0,C.jsx)(`li`,{children:e},e))}),b&&!b.transactional&&(0,C.jsx)(`p`,{className:`text-[12.5px] text-text-2`,children:T}),b?.recreate&&(0,C.jsxs)(`div`,{className:`grid gap-1.5`,children:[(0,C.jsx)(`p`,{className:`text-[12.5px] text-warning`,children:w}),(0,C.jsx)(f,{id:`structure-save-recreate`,title:`Allow recreate (don't use on production databases)`,checked:g,disabled:E,onChange:_})]})]})}var D={ran:`text-success`,"rolled-back":`text-text-subtle`,failed:`text-error font-semibold`,"not-run":`text-text-subtle`};function O({preview:e,failure:t}){let n=_(e,t);return(0,C.jsx)(`ol`,{"aria-label":`Statements`,className:`grid max-h-64 gap-px overflow-y-auto rounded-md border border-border bg-border-soft`,children:n.map((e,t)=>(0,C.jsxs)(`li`,{className:s(`grid grid-cols-[6.5rem_minmax(0,1fr)] gap-2 bg-panel-2 px-2.5 py-1.5`,e.outcome===`failed`&&`bg-error/10`),children:[(0,C.jsx)(`span`,{className:s(`text-xs`,e.outcome?D[e.outcome]:`text-text-dim`),children:e.outcome?v[e.outcome]:``}),(0,C.jsx)(`code`,{className:s(`whitespace-pre-wrap break-words font-mono text-[11.5px]`,e.outcome===null?`text-text-dim`:`text-text-primary`),children:e.sql})]},t))})}export{E as StructureSaveDialog};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{C as t,S as n}from"./vendor-markdown-QKPNiWEd.js";import"./vendor-ui-CS1GvlOm.js";import{Kr as r,L as i,Lr as a,P as o,at as s,cn as c,cr as l,gr as u,j as d,mn as f,on as p,ut as m,vr as h,xn as g,yn as _}from"./icons-JMA45Ifw.js";import{k as v}from"./api-client-OiA8Ida1.js";import"./settings-store-WeJyQVL8.js";import{n as y}from"./utils-Bslrbb-G.js";import"./portal-container-context-BXAsDqrB.js";import{B as b,D as x,F as S,G as C,H as w,I as T,J as E,K as D,L as O,M as k,N as A,P as j,Q as ee,R as M,U as te,V as ne,W as re,X as ie,Y as ae,Z as oe,j as se,k as ce,t as N,w as le,z as ue}from"./panel-store-DmP16Fo0.js";import"./window-store-zJczRsv4.js";import"./project-store-CEGoLMOl.js";import"./project-framework-store-Bi5dyHdx.js";import"./session-list-sync-triggers-DitiR5h1.js";import{t as de}from"./tab-store-nNzRNfVV.js";import"./context-menu-BoQ6lxte.js";import{n as fe}from"./use-is-mobile-BXHbkfs9.js";import"./settings-categories-CcR9eL3x.js";import"./open-settings-DsGBn73g.js";import{r as pe}from"./clipboard-D3XnL7CB.js";import"./button-Br60hGkw.js";import"./dialog-DOaEX6AK.js";import"./file-icons-DpwcJLL4.js";import"./dropdown-menu-DB3yyoVz.js";import"./mobile-bottom-sheet-CGmmdp_5.js";import"./use-visual-viewport-CQ6-A0Dt.js";import{t as me,u as he}from"./adaptive-context-menu-Cq7ynvIn.js";import"./fs-api-BQrIEcvo.js";import"./format-file-meta-C0LKHE3e.js";import"./input-CKGoVpYv.js";import"./use-db-driver-installed-BscdI-wS.js";import"./db-types-9ac-eYxf.js";import"./db-explorer-store-BcLxq-X0.js";import{i as ge,o as _e,s as ve}from"./open-db-tabs-CkQe49j_.js";import{t as ye}from"./sql-identifiers-DDISwQor.js";import"./scroll-area-6Am1KMiB.js";import{Gn as be,Kn as xe,Xn as Se,g as P,h as F,l as I,rr as Ce,u as L,v as we,xi as Te}from"./index-ItT-dTPV.js";import{t as Ee}from"./use-db-tab-Cr4lXxwF.js";import{t as R}from"./use-db-read-DYuyNA5i.js";import{i as De,n as Oe,r as z,t as ke}from"./db-tab-parts-DvmnlA6V.js";import{n as Ae,t as je}from"./editor-dialog-DC7dUWAX.js";var B=e(t(),1);function Me(e){let t=new Set(e.primaryKey?.columns??[]),n=new Set(e.foreignKeys.flatMap(e=>e.columns));return e.columns.map((e,r)=>({ordinal:r+1,name:e.name,role:t.has(e.name)?`pk`:n.has(e.name)?`fk`:null,notNull:!e.nullable,type:e.type,defaultValue:e.defaultValue??``,computedExpression:e.computedExpression??``,comment:e.comment??``}))}var Ne=(e,t,n)=>e&&e!==n?`${e}.${t}`:t;function Pe(e,t){return{name:e.name,baseColumns:e.columns.join(`, `),refTable:Ne(e.refSchema,e.refTable,t),refColumns:e.refColumns.join(`, `),onUpdate:e.onUpdate,onDelete:e.onDelete,holder:Ne(e.schema,e.table,t)}}function Fe(e){return e.join(`, `)}function Ie(e,t){return e.map(e=>Le(e,t)).join(`,
|
|
2
|
-
`)}function Le(e,t){let n=[ye(e.name,t),e.type];return e.generated&&e.computedExpression&&n.push(`GENERATED ALWAYS AS (${e.computedExpression})${t===`postgres`?` STORED`:``}`),e.nullable||n.push(`NOT NULL`),e.defaultValue!==null&&!e.generated&&n.push(`DEFAULT ${e.defaultValue}`),e.autoIncrement&&t===`mysql`&&n.push(`AUTO_INCREMENT`),e.autoIncrement&&t===`postgres`&&e.defaultValue===null&&n.push(`GENERATED BY DEFAULT AS IDENTITY`),n.join(` `)}var Re={postgres:`bigint.bigserial.bit.varbit.boolean.box.bytea.char(20).varchar(250).cidr.circle.date.double precision.inet.int.interval.json.jsonb.line.lseg.macaddr.macaddr8.money.decimal.numeric(10,2).path.pg_lsn.pg_snapshot.point.polygon.real.smallint.smallserial.serial.text.time.timetz.timestamp.timestamptz.tsquery.tsvector.txid_snapshot.uuid.xml`.split(`.`),mysql:`char(20).varchar(250).binary(250).varbinary(250).tinyblob.tinytext.text(1000).blob(1000).mediumtext.mediumblob.longtext.longblob.enum('val1','val2','val3').set('val1','val2','val3').bit(32).tinyint.bool.smallint.mediumint.int.bigint.float.double.decimal.date.datetime.timestamp.time.year`.split(`.`),sqlite:[`INTEGER`,`REAL`,`TEXT`,`BLOB`,`NUMERIC`]};function ze(e){return Re[e]}var Be={mysql:[`InnoDB`,`MyISAM`,`MEMORY`,`CSV`,`ARCHIVE`,`BLACKHOLE`,`FEDERATED`,`MRG_MYISAM`,`NDB`,`EXAMPLE`,`PERFORMANCE_SCHEMA`,`SEQUENCE`,`SPIDER`,`ROCKSDB`,`TokuDB`],mariadb:[`InnoDB`,`Aria`,`MyISAM`,`MEMORY`,`CSV`,`ARCHIVE`,`BLACKHOLE`,`FEDERATED`,`MRG_MyISAM`,`SEQUENCE`,`SphinxSE`,`SPIDER`,`TokuDB`,`RocksDB`,`CONNECT`,`OQGRAPH`,`ColumnStore`,`Mroonga`,`S3`,`XtraDB`]};function Ve(e){return Be[e]??[]}function He(e){return e===`postgres`}function Ue(e){let t=new Set(e.primaryKey?.columns??[]),n=new Set(e.foreignKeys.flatMap(e=>e.columns));return e.columns.map((e,r)=>({id:e.id,ordinal:r+1,name:e.name,role:t.has(e.id)?`pk`:n.has(e.id)?`fk`:null,notNull:e.notNull,type:e.type,defaultValue:e.defaultValue??``,computedExpression:e.computedExpression??``,comment:e.comment??``,unsigned:e.unsigned,zerofill:e.zerofill}))}var We=(e,t)=>t.map(t=>O(e,t)).join(`, `);function Ge(e,t){return t.columnId===null?t.expression??``:O(e,t.columnId)}function Ke(e){let t=e.primaryKey;return t?{id:t.id,name:t.name,columns:We(e,t.columns)}:null}function qe(e){return e.uniques.map(t=>({id:t.id,name:t.name,columns:We(e,t.columns)}))}function Je(e){return e.indexes.map(t=>({id:t.id,name:t.name||null,columns:t.columns.map(t=>Ge(e,t)).join(`, `),unique:t.unique}))}function Ye(e,t){return e.refSchema&&e.refSchema!==t?`${e.refSchema}.${e.refTable}`:e.refTable}function Xe(e){return e.foreignKeys.map(t=>({id:t.id,name:t.name,baseColumns:We(e,t.columns),refTable:Ye(t,e.schema),refColumns:t.refColumns.join(`, `),onUpdate:t.onUpdate??``,onDelete:t.onDelete??``}))}function Ze(e,t){return{name:e.name,type:ue(e,t),nullable:!e.notNull,defaultValue:e.defaultValue,comment:e.comment,autoIncrement:e.autoIncrement,generated:!!e.computedExpression,computedExpression:e.computedExpression}}function Qe(e,t,n){return e.columns.filter(e=>t.has(e.id)).map(e=>Le(Ze(e,n),n)).join(`,
|
|
3
|
-
`)}function $e(e,t){return e.columns.filter(e=>t.has(e.id)).map(e=>e.name).join(`, `)}var et={"NO ACTION":`No Action`,CASCADE:`Cascade`,RESTRICT:`Restrict`,"SET NULL":`Set Null`,"SET DEFAULT":`Set Default`};function tt(e){return[{value:null,label:`(not selected)`},...[`NO ACTION`,`CASCADE`,`RESTRICT`,`SET NULL`,...e===`SET DEFAULT`?[`SET DEFAULT`]:[]].map(e=>({value:e,label:et[e]}))]}function nt(e){return e.method?e.method.toLowerCase():e.unique?`unique`:`normal`}function rt(e){let t=[{value:`normal`,label:`Normal`},{value:`unique`,label:`Unique`},{value:`fulltext`,label:`Fulltext`}],n=nt(e);return t.some(e=>e.value===n)?t:[...t,{value:n,label:n[0].toUpperCase()+n.slice(1)}]}function it(e,t){return t===nt(e)?e:t===`normal`?{...e,unique:!1,method:null}:t===`unique`?{...e,unique:!0,method:null}:{...e,unique:!1,method:t}}function at(e){return e.objects.filter(e=>e.kind===`table`).map(e=>({schema:e.schema,name:e.name,label:e.schema?`${e.schema}.${e.name}`:e.name})).sort((e,t)=>(e.schema??``).localeCompare(t.schema??``)||e.name.localeCompare(t.name))}function V(e){return`${e.schema??``}\u0000${e.name}`}function ot(e){return e.columns.length+1}function H(e,t){let n={...e,...t};return{...n,foreignKeys:e.foreignKeys.map(t=>w(e,t)?{...t,refTable:n.name,refSchema:n.schema}:t)}}var U=n();function st({model:e,dialect:t,dbType:n,editable:r,isNew:i,references:a,schemas:o,onChange:s,openDialog:l}){let[u,p]=(0,B.useState)(new Set),m=e=>({collapsed:u.has(e),onToggle:()=>p(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}),h=Ke(e),g=(0,B.useMemo)(()=>Je(e),[e]),v=(0,B.useMemo)(()=>qe(e),[e]),y=(0,B.useMemo)(()=>Xe(e),[e]),b=(0,B.useMemo)(()=>a.map(t=>Pe(t,e.schema)),[a,e.schema]),x=e.columns.length>0,S=e=>r||e>0,C=(e,t)=>s(n=>ie(n,e,t)),w=He(t);return(0,U.jsxs)(`div`,{className:`grid grid-cols-[minmax(0,1fr)] content-start gap-[18px] px-[18px] pt-3.5 pb-7`,children:[(0,U.jsx)(dt,{model:e,dbType:n,dialect:t,editable:r,isNew:i,schemas:o,onChange:s}),(0,U.jsx)(ft,{model:e,dialect:t,editable:r,onChange:s,openDialog:l,...m(`columns`)}),S(h?1:0)&&(0,U.jsx)(G,{title:`Primary key`,...m(`pk`),onAddNew:r&&!h&&x?()=>l({kind:`key`,keyKind:`primaryKey`,id:null}):void 0,empty:h?null:`No primary key defined`,head:[...w?[`Name`]:[],`Columns`,...r?[``]:[]],children:h&&(0,U.jsxs)(K,{onOpen:()=>l({kind:`key`,keyKind:`primaryKey`,id:h.id}),label:`Primary key on ${h.columns}`,children:[w&&(0,U.jsx)(`td`,{className:W,children:(0,U.jsx)(J,{icon:(0,U.jsx)(c,{className:`size-[15px] shrink-0 text-warning`,"aria-hidden":!0}),name:h.name})}),(0,U.jsx)(`td`,{className:W,children:w?h.columns:(0,U.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[(0,U.jsx)(c,{className:`size-[15px] shrink-0 text-warning`,"aria-hidden":!0}),h.columns]})}),r&&(0,U.jsx)(q,{onRemove:()=>C(`primaryKey`,h.id)})]})}),S(g.length)&&(0,U.jsx)(G,{title:`Indexes (${g.length})`,...m(`indexes`),onAddNew:r&&x?()=>l({kind:`key`,keyKind:`index`,id:null}):void 0,empty:g.length===0?`No index defined`:null,head:[`Name`,`Columns`,`Unique`,...r?[``]:[]],children:g.map(e=>(0,U.jsxs)(K,{onOpen:()=>l({kind:`key`,keyKind:`index`,id:e.id}),label:`Index ${e.name??e.columns}`,children:[(0,U.jsx)(`td`,{className:W,children:(0,U.jsx)(J,{icon:(0,U.jsx)(_,{className:`size-[15px] shrink-0 text-text-subtle`,"aria-hidden":!0}),name:e.name})}),(0,U.jsx)(`td`,{className:W,children:e.columns}),(0,U.jsx)(`td`,{className:W,children:e.unique?`YES`:`NO`}),r&&(0,U.jsx)(q,{onRemove:()=>C(`indexes`,e.id)})]},e.id))}),S(v.length)&&(0,U.jsx)(G,{title:`Unique constraints (${v.length})`,...m(`uniques`),onAddNew:r&&x?()=>l({kind:`key`,keyKind:`unique`,id:null}):void 0,empty:v.length===0?`No unique defined`:null,head:[`Name`,`Columns`,...r?[``]:[]],children:v.map(e=>(0,U.jsxs)(K,{onOpen:()=>l({kind:`key`,keyKind:`unique`,id:e.id}),label:`Unique constraint ${e.name??e.columns}`,children:[(0,U.jsx)(`td`,{className:W,children:(0,U.jsx)(J,{icon:(0,U.jsx)(d,{className:`size-[15px] shrink-0 text-text-subtle`,"aria-hidden":!0}),name:e.name})}),(0,U.jsx)(`td`,{className:W,children:e.columns}),r&&(0,U.jsx)(q,{onRemove:()=>C(`uniques`,e.id)})]},e.id))}),S(y.length)&&(0,U.jsx)(G,{title:`Foreign keys (${y.length})`,...m(`fks`),onAddNew:r&&x?()=>l({kind:`foreignKey`,id:null}):void 0,empty:y.length===0?`No foreign key defined`:null,head:[...ut,...r?[``]:[]],children:y.map(e=>(0,U.jsxs)(K,{onOpen:()=>l({kind:`foreignKey`,id:e.id}),label:`Foreign key ${e.name??e.baseColumns}`,children:[(0,U.jsx)(`td`,{className:W,children:(0,U.jsx)(J,{icon:(0,U.jsx)(f,{className:`size-[15px] shrink-0 text-info`,"aria-hidden":!0}),name:e.name})}),(0,U.jsx)(`td`,{className:W,children:e.baseColumns}),(0,U.jsx)(`td`,{className:W,children:e.refTable}),(0,U.jsx)(`td`,{className:W,children:e.refColumns}),(0,U.jsx)(`td`,{className:W,children:e.onUpdate}),(0,U.jsx)(`td`,{className:W,children:e.onDelete}),r&&(0,U.jsx)(q,{onRemove:()=>C(`foreignKeys`,e.id)})]},e.id))}),b.length>0&&(0,U.jsx)(G,{title:`Dependencies (${b.length})`,...m(`deps`),empty:null,head:ut,children:b.map((e,t)=>(0,U.jsxs)(`tr`,{className:ct,children:[(0,U.jsx)(`td`,{className:W,children:(0,U.jsx)(J,{icon:(0,U.jsx)(f,{className:`size-[15px] shrink-0 text-info`,"aria-hidden":!0}),name:e.name,title:`${e.holder} (${e.baseColumns}) → ${e.refTable} (${e.refColumns})`})}),(0,U.jsx)(`td`,{className:W,children:e.baseColumns}),(0,U.jsx)(`td`,{className:W,children:e.refTable}),(0,U.jsx)(`td`,{className:W,children:e.refColumns}),(0,U.jsx)(`td`,{className:W,children:e.onUpdate}),(0,U.jsx)(`td`,{className:W,children:e.onDelete})]},`${e.holder}\u0000${e.name??t}`))})]})}var ct=`can-hover:hover:bg-surface-hover`,W=`whitespace-nowrap border-b border-border-soft px-2.5 py-1.5`,lt=`font-mono text-[11.5px]`,ut=[`Name`,`Base columns`,`Referenced table`,`Referenced columns`,`ON UPDATE`,`ON DELETE`];function G({title:e,collapsed:t,onToggle:n,onAddNew:r,actions:a,empty:s,head:c,children:u,wrapBox:d}){let f=(0,U.jsx)(`div`,{className:`overflow-x-auto rounded-md border border-border bg-panel-2`,children:(0,U.jsxs)(`table`,{className:`w-full border-collapse text-[12.5px]`,children:[(0,U.jsx)(`thead`,{children:(0,U.jsx)(`tr`,{children:c.map((e,t)=>(0,U.jsx)(`th`,{scope:`col`,className:`whitespace-nowrap border-b border-border-soft bg-panel px-2.5 py-1.5 text-left text-[11px] font-semibold text-text-subtle`,children:e},t))})}),(0,U.jsx)(`tbody`,{className:`[&>tr:last-child>td]:border-b-0`,children:u})]})});return(0,U.jsxs)(`section`,{"aria-label":e,children:[(0,U.jsxs)(`div`,{className:`mb-1.5 flex min-h-6 flex-wrap items-center gap-x-3 gap-y-1`,children:[(0,U.jsxs)(`button`,{type:`button`,onClick:n,"aria-expanded":!t,className:`-ml-1 flex items-center gap-1 rounded px-1 text-[12.5px] font-semibold text-text-primary can-hover:hover:bg-surface-hover`,children:[t?(0,U.jsx)(i,{className:`size-3.5 text-text-subtle`,"aria-hidden":!0}):(0,U.jsx)(o,{className:`size-3.5 text-text-subtle`,"aria-hidden":!0}),(0,U.jsx)(`h3`,{children:e})]}),r&&(0,U.jsxs)(`button`,{type:`button`,onClick:r,className:`flex items-center gap-1 rounded px-1 text-xs text-primary underline-offset-2 can-hover:hover:underline`,children:[(0,U.jsx)(l,{className:`size-3.5`,"aria-hidden":!0}),` Add new`]}),a]}),s?(0,U.jsx)(`p`,{className:`ml-0.5 text-xs italic text-text-subtle`,children:s}):!t&&(d?d(f):f)]})}function K({onOpen:e,label:t,children:n}){return(0,U.jsx)(`tr`,{tabIndex:0,"aria-label":t,onClick:e,onKeyDown:t=>{t.key===`Enter`&&t.target===t.currentTarget&&(t.preventDefault(),e())},className:y(ct,`cursor-pointer select-none outline-none focus-visible:bg-accent-wash`),children:n})}function q({onRemove:e}){return(0,U.jsx)(`td`,{className:y(W,`w-px text-right`),children:(0,U.jsx)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),e()},onKeyDown:e=>e.stopPropagation(),className:`rounded px-1 text-xs text-primary underline-offset-2 can-hover:hover:underline`,children:`Remove`})})}function J({icon:e,name:t,title:n}){return(0,U.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,title:n,children:[e,t??(0,U.jsx)(`span`,{className:`italic text-text-dim`,children:`unnamed`})]})}function dt({model:e,dbType:t,dialect:n,editable:r,isNew:i,schemas:a,onChange:o}){let s=n===`mysql`;if(!i&&!s)return null;let c=!r,l=a&&e.schema&&!a.includes(e.schema)?[e.schema,...a]:a;return(0,U.jsxs)(`section`,{"aria-label":`Table properties`,className:`grid gap-2`,children:[(0,U.jsx)(`h3`,{className:`ml-0.5 text-[12.5px] font-semibold text-text-primary`,children:`Table properties`}),(0,U.jsxs)(`div`,{className:`grid max-w-3xl grid-cols-[repeat(auto-fill,minmax(14rem,1fr))] gap-3 rounded-md border border-border bg-panel-2 p-3`,children:[i&&n===`postgres`&&(0,U.jsx)(L,{label:`Schema`,htmlFor:`table-prop-schema`,children:l?(0,U.jsx)(F,{id:`table-prop-schema`,value:e.schema??``,disabled:c,onChange:e=>o(t=>H(t,{schema:e.target.value||null})),children:l.map(e=>(0,U.jsx)(`option`,{value:e,children:e},e))}):(0,U.jsx)(P,{id:`table-prop-schema`,value:e.schema??``,disabled:c,mono:!0,onChange:e=>o(t=>H(t,{schema:e.target.value||null}))})}),i&&(0,U.jsx)(L,{label:`Table name`,htmlFor:`table-prop-name`,children:(0,U.jsx)(P,{id:`table-prop-name`,value:e.name,disabled:c,mono:!0,onChange:e=>o(t=>H(t,{name:e.target.value}))})}),s&&(0,U.jsx)(L,{label:`Engine`,htmlFor:`table-prop-engine`,children:(0,U.jsx)(Ae,{id:`table-prop-engine`,value:e.engine??``,options:Ve(t),disabled:c,listLabel:`Choose an engine`,onChange:e=>o(t=>({...t,engine:e.trim()===``?null:e}))})}),s&&(0,U.jsx)(L,{label:`Comment`,htmlFor:`table-prop-comment`,children:(0,U.jsx)(P,{id:`table-prop-comment`,value:e.comment??``,disabled:c,onChange:e=>o(t=>({...t,comment:e.target.value===``?null:e.target.value}))})})]})]})}function ft({model:e,dialect:t,editable:n,onChange:r,openDialog:i,collapsed:a,onToggle:o}){let s=(0,B.useMemo)(()=>Ue(e),[e]),[l,u]=(0,B.useState)(new Set),[d,p]=(0,B.useState)(null),h=(0,B.useRef)(null);(0,B.useEffect)(()=>{u(e=>Array.from(e).every(e=>s.some(t=>t.id===e))?e:new Set(Array.from(e).filter(e=>s.some(t=>t.id===e))))},[s]),(0,B.useEffect)(()=>{let e=()=>{h.current=null};return window.addEventListener(`mouseup`,e),()=>window.removeEventListener(`mouseup`,e)},[]);let g=(e,t)=>new Set(s.slice(Math.min(e,t),Math.max(e,t)+1).map(e=>e.id)),_=(e,t)=>{t.button!==0||t.shiftKey||t.ctrlKey||t.metaKey||(h.current=e)},v=(e,t)=>{h.current===null||!(t.buttons&1)||e===h.current||(u(g(h.current,e)),p(s[h.current].id))},b=(e,t,n)=>{if(n.shiftKey&&d){u(g(s.findIndex(e=>e.id===d),t));return}if(n.ctrlKey||n.metaKey){let t=new Set(l);t.has(e)?t.delete(e):t.add(e),u(t),p(e);return}u(new Set([e])),p(e),i({kind:`column`,id:e})},x=(e,t)=>{t.key===`Enter`&&t.target===t.currentTarget&&(t.preventDefault(),u(new Set([e])),p(e),i({kind:`column`,id:e}))},S=e=>{r(t=>ae(t,Array.from(e))),u(new Set)},C=e=>l.has(e)?l:new Set([e]),w=Se(n=>{if(!n||!s.some(e=>e.id===n))return null;let r=C(n);return[{kind:`item`,label:`Copy names`,icon:m,onSelect:()=>void Y($e(e,r))},{kind:`item`,label:`Copy definitions`,icon:m,onSelect:()=>void Y(Qe(e,r,t))}]},e=>{l.has(e)||(u(new Set([e])),p(e))}),T=l.size,E=T>0&&(0,U.jsxs)(`span`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1`,children:[n&&(0,U.jsxs)(pt,{onClick:()=>S(l),children:[`Remove (`,T,`)`]}),(0,U.jsxs)(pt,{onClick:()=>void Y($e(e,l)),children:[`Copy names (`,T,`)`]}),(0,U.jsxs)(pt,{onClick:()=>void Y(Qe(e,l,t)),children:[`Copy definitions (`,T,`)`]})]}),D=t===`mysql`;return(0,U.jsx)(G,{title:`Columns (${s.length})`,collapsed:a,onToggle:o,onAddNew:n?()=>i({kind:`column`,id:null}):void 0,actions:E,empty:s.length===0?`No columns defined`:null,head:[``,`Name`,`Nullability`,`Data type`,`Default value`,`Computed Expression`,`Comment`,...D?[`Unsigned`,`Zero fill`]:[],...n?[``]:[]],wrapBox:e=>(0,U.jsxs)(me,{children:[(0,U.jsx)(he,{asChild:!0,children:(0,B.cloneElement)(e,w.listProps)}),w.entries&&(0,U.jsx)(Ce,{entries:w.entries})]}),children:s.map((e,t)=>(0,U.jsxs)(`tr`,{"data-row-key":e.id,tabIndex:0,"aria-selected":l.has(e.id),"aria-label":`Column ${e.name}`,onMouseDown:e=>_(t,e),onMouseEnter:e=>v(t,e),onClick:n=>b(e.id,t,n),onKeyDown:t=>x(e.id,t),className:y(ct,`cursor-pointer select-none outline-none focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-ring`,l.has(e.id)&&`bg-accent-wash can-hover:hover:bg-accent-wash`),children:[(0,U.jsx)(`td`,{className:y(W,`w-9 font-mono text-[11px] text-text-subtle`),children:e.ordinal}),(0,U.jsx)(`td`,{className:W,children:(0,U.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[e.role===`pk`?(0,U.jsx)(c,{className:`size-[15px] shrink-0 text-warning`,"aria-label":`Primary key`}):e.role===`fk`?(0,U.jsx)(f,{className:`size-[15px] shrink-0 text-info`,"aria-label":`Foreign key`}):(0,U.jsx)(`span`,{"aria-hidden":!0,className:`grid w-[15px] shrink-0 place-items-center`,children:(0,U.jsx)(`span`,{className:`size-1 rounded-full bg-text-subtle opacity-60`})}),(0,U.jsx)(`span`,{className:e.notNull?`font-semibold`:`font-normal`,children:e.name})]})}),(0,U.jsx)(`td`,{className:W,children:e.notNull?`NOT NULL`:`NULL`}),(0,U.jsx)(`td`,{className:y(W,lt),children:e.type}),(0,U.jsx)(`td`,{className:y(W,lt),children:e.defaultValue}),(0,U.jsx)(`td`,{className:y(W,lt),children:e.computedExpression}),(0,U.jsx)(`td`,{className:W,children:e.comment}),D&&(0,U.jsx)(`td`,{className:W,children:e.unsigned?`YES`:`NO`}),D&&(0,U.jsx)(`td`,{className:W,children:e.zerofill?`YES`:`NO`}),n&&(0,U.jsx)(q,{onRemove:()=>{r(t=>ae(t,[e.id])),u(t=>{let n=new Set(t);return n.delete(e.id),n})}})]},e.id))})}function pt({onClick:e,children:t}){return(0,U.jsx)(`button`,{type:`button`,onClick:e,className:`rounded px-1 text-xs text-primary underline-offset-2 can-hover:hover:underline`,children:t})}async function Y(e){await pe(e)?v.success(`Copied`):v.error(`The clipboard is not available here`)}var mt=`Default value. Please use valid SQL expression, eg. 'Hello World' for string value, '' for empty string`,ht=e=>e.trim()===``?null:e;function gt({model:e,columnId:t,dialect:n,editable:r,onChange:i,onClose:a}){let o=t?T(e,t)??null:null,[s,c]=(0,B.useState)(()=>o??S(D(e))),[l,u]=(0,B.useState)(()=>o?ne(e,o.id):!1),[d,f]=(0,B.useState)(()=>ot(e)),[p,m]=(0,B.useState)(!1),h=o===null,g=(e,t)=>c(n=>({...n,[e]:t})),_=()=>({...s,name:s.name===o?.name?s.name:s.name.trim(),type:s.type===o?.type?s.type:s.type.trim()}),v=(0,B.useMemo)(()=>M(e,_(),n),[e,s,n]),y=()=>{if(m(!0),v.length>0)return null;let t=_(),n=oe(e,t,l);return i(e=>oe(e,t,l)),n},b=()=>{y()&&a()},x=()=>{let e=y();e&&(c(S(D(e))),u(!1),f(ot(e)),m(!1))},C=r?h?[{label:`Save and next`,onClick:x,variant:`default`},{label:`Save`,onClick:b},{label:`Close`,onClick:a}]:[{label:`Save`,onClick:b,variant:`default`},{label:`Close`,onClick:a},{label:`Remove`,onClick:()=>{o&&(i(e=>ae(e,[o.id])),a())},variant:`destructive`}]:[{label:`Close`,onClick:a}],w=e=>`table-column-${e}`,E=!r;return(0,U.jsxs)(je,{title:h?`Add column ${d}`:`Edit column`,description:h?`A new column of the table`:`The column ${o.name}`,onClose:a,onSubmit:r?h?x:b:void 0,problems:p?v:[],buttons:C,children:[(0,U.jsx)(L,{label:`Column name`,htmlFor:w(`name`),children:(0,U.jsx)(P,{id:w(`name`),value:s.name,disabled:E,autoFocus:r,mono:!0,onChange:e=>g(`name`,e.target.value)})}),(0,U.jsx)(L,{label:`Data type`,htmlFor:w(`type`),children:(0,U.jsx)(Ae,{id:w(`type`),value:s.type,onChange:e=>g(`type`,e),options:ze(n),disabled:E,listLabel:`Choose a data type`,mono:!0})}),(0,U.jsxs)(`div`,{className:`grid grid-cols-2 gap-x-4 gap-y-1`,children:[(0,U.jsx)(I,{id:w(`not-null`),title:`NOT NULL`,checked:s.notNull,disabled:E,onChange:e=>g(`notNull`,e)}),(0,U.jsx)(I,{id:w(`pk`),title:`Is Primary Key`,checked:l,disabled:E,onChange:u}),(0,U.jsx)(I,{id:w(`auto`),title:`Is Autoincrement`,checked:s.autoIncrement,disabled:E,onChange:e=>c(t=>({...t,autoIncrement:e,notNull:e?!0:t.notNull}))}),n===`mysql`&&(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(I,{id:w(`unsigned`),title:`Unsigned`,checked:s.unsigned,disabled:E,onChange:e=>g(`unsigned`,e)}),(0,U.jsx)(I,{id:w(`zerofill`),title:`Zero fill`,checked:s.zerofill,disabled:E,onChange:e=>g(`zerofill`,e)})]})]}),(0,U.jsx)(L,{label:mt,htmlFor:w(`default`),children:(0,U.jsx)(P,{id:w(`default`),value:s.defaultValue??``,disabled:E,mono:!0,onChange:e=>g(`defaultValue`,ht(e.target.value))})}),(0,U.jsx)(L,{label:`Computed expression`,htmlFor:w(`computed`),children:(0,U.jsx)(P,{id:w(`computed`),value:s.computedExpression??``,disabled:E,mono:!0,onChange:e=>g(`computedExpression`,ht(e.target.value))})}),n===`mysql`&&(0,U.jsx)(L,{label:`Comment`,htmlFor:w(`comment`),children:(0,U.jsx)(P,{id:w(`comment`),value:s.comment??``,disabled:E,onChange:e=>g(`comment`,ht(e.target.value))})})]})}function _t(e){return`/structure?table=${encodeURIComponent(e.name)}${e.schema?`&schema=${encodeURIComponent(e.schema)}`:``}`}function vt({model:e,itemId:t,dialect:n,target:i,editable:a,onChange:o,onClose:s}){let c=t?e.foreignKeys.find(e=>e.id===t)??null:null,[u,d]=(0,B.useState)(()=>c??{id:D(e),name:null,columns:[],refSchema:e.schema,refTable:``,refColumns:[],onUpdate:null,onDelete:null}),[f,p]=(0,B.useState)(!1),[m,h]=(0,B.useState)(!1),_=R(i,`/objects`,void 0),v=u.refTable!==``&&w(e,u),y=R(i,u.refTable&&!v?_t({schema:u.refSchema,name:u.refTable}):null,void 0),x=v?e.columns.map(e=>e.name):y.data?y.data.columns.map(e=>e.name):null,S=(0,B.useMemo)(()=>{let t=_.data?at(_.data):[],n=[{schema:e.schema,name:e.name,label:e.schema?`${e.schema}.${e.name}`:e.name},...c?.refTable?[{schema:c.refSchema,name:c.refTable,label:c.refSchema?`${c.refSchema}.${c.refTable}`:c.refTable}]:[]];for(let e of n)e.name&&!t.some(t=>V(t)===V(e))&&t.push(e);return t},[_.data,e.schema,e.name,c]);(0,B.useEffect)(()=>{if(!m)return;let t=v?e.primaryKey?.columns.map(t=>e.columns.find(e=>e.id===t)?.name??``):y.data?.primaryKey?.columns;!v&&!y.data||(h(!1),t&&t.length>0&&d(e=>e.columns.length>0?e:{...e,columns:t.map(()=>``),refColumns:[...t]}))},[m,v,y.data,e]);let C=(0,B.useMemo)(()=>{let t=b(e,u);te(e,u.id,u.name??``,n)&&t.push(`Another key or index is named ${u.name.trim()}`);let r=x?u.refColumns.filter(e=>e&&!x.includes(e)):[];return r.length>0&&t.push(`${u.refTable} has no column ${r.join(`, `)}`),t},[e,u,n,x]),T=e=>d(t=>({...t,...e})),E=(e,t,n)=>d(r=>({...r,[t]:r[t].map((t,r)=>r===e?n:t)})),O=t=>{let n=S.find(e=>V(e)===t);T({refSchema:n?.schema??e.schema,refTable:n?.name??``}),n&&u.columns.length===0&&h(!0)},k=()=>{if(p(!0),C.length>0)return;let e={...u,name:u.name?.trim()||null};o(t=>ee(t,`foreignKeys`,e)),s()},A=a?[{label:`Save`,onClick:k,variant:`default`},{label:`Close`,onClick:s},...c?[{label:`Remove`,onClick:()=>{c&&(o(e=>ie(e,`foreignKeys`,c.id)),s())},variant:`destructive`}]:[]]:[{label:`Close`,onClick:s}],j=e=>`table-fk-${e}`,M=!a,ne=u.refTable?V({schema:u.refSchema,name:u.refTable}):``,re=(e,t)=>(0,U.jsx)(L,{label:t,htmlFor:j(e),children:(0,U.jsx)(F,{id:j(e),value:u[e]??``,disabled:M,onChange:t=>T({[e]:t.target.value||null}),children:tt(u[e]).map(e=>(0,U.jsx)(`option`,{value:e.value??``,children:e.label},e.label))})});return(0,U.jsxs)(je,{title:c?`Edit foreign key`:`Add foreign key`,description:`The table this key points at, and the columns that point`,onClose:s,onSubmit:a?k:void 0,problems:f?C:[],buttons:A,wide:!0,children:[(0,U.jsx)(L,{label:`Constraint name`,htmlFor:j(`name`),children:(0,U.jsx)(P,{id:j(`name`),value:u.name??``,disabled:M,mono:!0,onChange:e=>T({name:e.target.value})})}),(0,U.jsx)(L,{label:`Referenced table`,htmlFor:j(`table`),error:_.error,children:(0,U.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,U.jsxs)(F,{id:j(`table`),value:ne,disabled:M,className:`font-mono`,onChange:e=>O(e.target.value),children:[(0,U.jsx)(`option`,{value:``,children:`(not selected)`}),S.map(e=>(0,U.jsx)(`option`,{value:V(e),children:e.label},V(e)))]}),(_.loading||y.loading)&&(0,U.jsx)(g,{"aria-label":`Loading`,className:`size-4 shrink-0 animate-spin text-text-subtle`})]})}),(0,U.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[re(`onUpdate`,`On update action`),re(`onDelete`,`On delete action`)]}),(0,U.jsxs)(`div`,{role:`group`,"aria-label":`Columns`,className:`grid gap-1.5`,children:[(0,U.jsxs)(`div`,{className:`grid grid-cols-[minmax(0,1fr)_minmax(0,1fr)_30px] gap-1.5 text-xs font-medium text-text-2`,children:[(0,U.jsxs)(`span`,{className:`truncate`,children:[`Base column - `,e.name]}),(0,U.jsxs)(`span`,{className:`truncate`,children:[`Ref column - `,u.refTable||`(table not set)`]})]}),u.columns.map((t,n)=>(0,U.jsxs)(`div`,{className:`grid grid-cols-[minmax(0,1fr)_minmax(0,1fr)_30px] items-center gap-1.5`,children:[(0,U.jsxs)(F,{"aria-label":`Base column ${n+1}`,value:t,disabled:M,className:`font-mono`,onChange:e=>E(n,`columns`,e.target.value),children:[(0,U.jsx)(`option`,{value:``,children:`(not selected)`}),e.columns.map(e=>(0,U.jsx)(`option`,{value:e.id,children:e.name},e.id))]}),(0,U.jsxs)(F,{"aria-label":`Ref column ${n+1}`,value:u.refColumns[n]??``,disabled:M,className:`font-mono`,onChange:e=>E(n,`refColumns`,e.target.value),children:[(0,U.jsx)(`option`,{value:``,children:`(not selected)`}),[...new Set([...x??[],...u.refColumns[n]?[u.refColumns[n]]:[]])].map(e=>(0,U.jsx)(`option`,{value:e,children:e},e))]}),a?(0,U.jsx)(`button`,{type:`button`,"aria-label":`Delete column ${n+1}`,title:`Delete`,onClick:()=>T({columns:u.columns.filter((e,t)=>t!==n),refColumns:u.refColumns.filter((e,t)=>t!==n)}),className:`grid size-[30px] place-items-center rounded-md text-text-subtle can-hover:hover:bg-surface-hover can-hover:hover:text-error`,children:(0,U.jsx)(r,{className:`size-4`})}):(0,U.jsx)(`span`,{})]},n)),a&&(0,U.jsxs)(`button`,{type:`button`,onClick:()=>T({columns:[...u.columns,``],refColumns:[...u.refColumns,``]}),className:`flex h-[30px] w-fit items-center gap-1.5 rounded-md px-2 text-[12.5px] text-primary can-hover:hover:bg-surface-hover`,children:[(0,U.jsx)(l,{className:`size-3.5`}),` Add column`]})]})]})}var yt={primaryKey:`primary key`,unique:`unique`,index:`index`},bt=e=>({columnId:e,expression:null,descending:!1});function xt(e,t,n){if(t===`primaryKey`&&e.primaryKey&&(n===null||e.primaryKey.id===n)){let t=e.primaryKey;return{exists:!0,draft:{id:t.id,name:t.name??``,parts:t.columns.map(bt),unique:!0,method:null,where:``}}}if(t===`unique`){let t=e.uniques.find(e=>e.id===n);if(t)return{exists:!0,draft:{id:t.id,name:t.name??``,parts:t.columns.map(bt),unique:!0,method:null,where:``}}}if(t===`index`){let t=e.indexes.find(e=>e.id===n);if(t)return{exists:!0,draft:{id:t.id,name:t.name,parts:t.columns.map(e=>({...e})),unique:t.unique,method:t.method,where:t.where??``}}}return{exists:!1,draft:{id:D(e),name:``,parts:[],unique:!1,method:null,where:``}}}function St(e,t,n,r){let i=n.parts.flatMap(e=>e.columnId===null?[]:[e.columnId]);if(t===`primaryKey`){let t=He(r)?n.name.trim()||null:e.primaryKey?.name??null;return{...e,primaryKey:{id:n.id,name:t,columns:i}}}return t===`unique`?ee(e,`uniques`,{id:n.id,name:n.name.trim()||null,columns:i}):ee(e,`indexes`,{id:n.id,name:n.name.trim(),columns:n.parts,unique:n.unique,method:n.method,where:n.where.trim()||null})}function Ct({kind:e,model:t,itemId:n,dialect:i,editable:a,onChange:o,onClose:s}){let[{draft:c,exists:l}]=(0,B.useState)(()=>xt(t,e,n)),[u,d]=(0,B.useState)(c),[f,p]=(0,B.useState)(!1),m=e!==`primaryKey`||He(i),h=(0,B.useMemo)(()=>{let n=re(t,u.parts.map(e=>e.columnId),e);return m&&te(t,u.id,u.name,i)&&n.push(`Another key or index is named ${u.name.trim()}`),n},[t,u,e,m,i]),g=e=>d(t=>({...t,...e})),_=(e,t)=>g({parts:u.parts.map((n,r)=>r===e?{...n,...t}:n)}),v=()=>{p(!0),!(h.length>0)&&(o(t=>St(t,e,u,i)),s())},y=a?[{label:`Save`,onClick:v,variant:`default`},{label:`Close`,onClick:s},...l?[{label:`Remove`,onClick:()=>{o(t=>ie(t,e===`primaryKey`?`primaryKey`:e===`unique`?`uniques`:`indexes`,u.id)),s()},variant:`destructive`}]:[]]:[{label:`Close`,onClick:s}],b=new Set(u.parts.map(e=>e.columnId)),x=t.columns.filter(e=>!b.has(e.id)),S=u.parts.map(e=>e.columnId===null?``:O(t,e.columnId)).filter(Boolean),C=j(e===`primaryKey`?`PK`:e===`unique`?`UQ`:`IX`,t.name,S),w=e=>`table-key-${e}`,T=!a;return(0,U.jsxs)(je,{title:`${l?`Edit`:`Add`} ${yt[e]}`,description:`The columns of the ${yt[e]}`,onClose:s,onSubmit:a?v:void 0,problems:f?h:[],buttons:y,children:[m&&(0,U.jsx)(L,{label:e===`index`?`Index name`:`Constraint name`,htmlFor:w(`name`),children:(0,U.jsx)(P,{id:w(`name`),value:u.name,disabled:T,mono:!0,placeholder:a?C:void 0,onChange:e=>g({name:e.target.value})})}),e===`index`&&i===`mysql`&&(0,U.jsx)(L,{label:`Index type`,htmlFor:w(`type`),children:(0,U.jsx)(F,{id:w(`type`),value:nt(u),disabled:T,onChange:e=>d(t=>it(t,e.target.value)),children:rt(u).map(e=>(0,U.jsx)(`option`,{value:e.value,children:e.label},e.value))})}),e===`index`&&i!==`mysql`&&(0,U.jsx)(I,{id:w(`unique`),title:`Is unique index`,checked:u.unique,disabled:T,onChange:e=>g({unique:e})}),(0,U.jsxs)(`div`,{role:`group`,"aria-labelledby":w(`columns`),className:`grid gap-1.5`,children:[(0,U.jsx)(`span`,{id:w(`columns`),className:`text-xs font-medium text-text-2`,children:`Columns`}),u.parts.map((n,i)=>(0,U.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5`,children:[n.columnId===null?(0,U.jsx)(P,{"aria-label":`Expression ${i+1}`,value:n.expression??``,disabled:!0,mono:!0,title:`An expression, which the editor keeps as it is written`}):(0,U.jsx)(F,{"aria-label":`Column ${i+1}`,value:n.columnId,disabled:T,className:`font-mono`,onChange:e=>_(i,{columnId:e.target.value}),children:t.columns.filter(e=>e.id===n.columnId||!b.has(e.id)).map(e=>(0,U.jsx)(`option`,{value:e.id,children:e.name},e.id))}),e===`index`&&(0,U.jsxs)(F,{"aria-label":`Order of column ${i+1}`,value:n.descending?`desc`:`asc`,disabled:T,className:`w-24 shrink-0`,onChange:e=>_(i,{descending:e.target.value===`desc`}),children:[(0,U.jsx)(`option`,{value:`asc`,children:`ASC`}),(0,U.jsx)(`option`,{value:`desc`,children:`DESC`})]}),a&&(0,U.jsx)(`button`,{type:`button`,"aria-label":`Delete column ${i+1}`,title:`Delete`,onClick:()=>g({parts:u.parts.filter((e,t)=>t!==i)}),className:`grid size-[30px] shrink-0 place-items-center rounded-md text-text-subtle can-hover:hover:bg-surface-hover can-hover:hover:text-error`,children:(0,U.jsx)(r,{className:`size-4`})})]},n.columnId??`expr-${i}`)),a&&x.length>0&&(0,U.jsxs)(F,{"aria-label":`Add new column`,value:``,onChange:e=>{e.target.value&&g({parts:[...u.parts,bt(e.target.value)]})},children:[(0,U.jsx)(`option`,{value:``,children:`Add new column — Choose column`}),x.map(e=>(0,U.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]}),e===`index`&&i!==`mysql`&&(0,U.jsx)(L,{label:`Filtered index condition`,htmlFor:w(`where`),children:(0,U.jsx)(P,{id:w(`where`),value:u.where,disabled:T,mono:!0,onChange:e=>g({where:e.target.value})})})]})}function wt({dialog:e,model:t,dialect:n,target:r,editable:i,onChange:a,onClose:o}){if(!e)return null;let s={model:t,dialect:n,editable:i,onChange:a,onClose:o};switch(e.kind){case`column`:return(0,U.jsx)(gt,{columnId:e.id,...s},`column:${e.id??`new`}`);case`key`:return(0,U.jsx)(Ct,{kind:e.keyKind,itemId:e.id,...s},`${e.keyKind}:${e.id??`new`}`);case`foreignKey`:return(0,U.jsx)(vt,{itemId:e.id,target:r,...s},`fk:${e.id??`new`}`)}}function Tt(e){return N.getState().getPanelForTab(e)?.tabs.find(t=>t.id===e)?.metadata}function Et(e){let t=N.getState();return t.panels[t.focusedPanelId]?.activeTabId===e}function Dt({tabId:e,metadata:t,tab:n,live:r,reload:i,mobile:a}){let o=n.dialect??`postgres`,s=(0,B.useMemo)(()=>se(t),[t]),c=s?.isNew===!0,l=(0,B.useMemo)(()=>r?C(r,o):null,[r,o]),u=s?.current??l,d=n.target?.kind===`file`||!!n.conn,f=!!e&&!a&&d&&!n.readonly&&(c||r?.kind===`table`),p=x(t),m=f&&(c||p),[h,g]=(0,B.useState)(null),_=(0,B.useRef)(r);_.current=r;let v=(0,B.useCallback)(t=>{if(!e)return;let n=Tt(e),r=ce(se(n),_.current,o,t);N.getState().updateTab(e,{metadata:A(n,r)})},[e,o]),y=(0,B.useCallback)(()=>{if(!e)return;let t=Tt(e);N.getState().updateTab(e,{metadata:A(t,null)})},[e]),b=(0,B.useCallback)(()=>{if(!e)return;let t=Tt(e);N.getState().updateTab(e,{metadata:A(t,k(se(t)))})},[e]),S=()=>{if(!m||!e||!n.target||!n.place||!s)return;let t=n.place,r=c?H(s.current,{name:s.current.name.trim()}):s.current,a=c?{kind:`create`,current:r}:{kind:`alter`,base:s.base,current:s.current};be({target:n.target,place:t,change:a,onSaved:c?()=>_e(e,t,{schema:r.schema,name:r.name,kind:`table`}):()=>{i().finally(y)}})},w=(0,B.useRef)(S);w.current=S,(0,B.useEffect)(()=>{if(!f||!e)return;let t=t=>{!Te.getState().matchesEvent(t,`save-prevent`)||!Et(e)||xe.getState().request||t.target?.closest?.(`[role="dialog"], [role="alertdialog"]`)||(t.preventDefault(),w.current())};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[f,e]);let T=N(t=>!!e&&t.panels[t.focusedPanelId]?.activeTabId===e),E=(u?.columns.length??0)>0,D=!!u?.primaryKey;return(0,B.useEffect)(()=>{if(!(!T||!f||!e))return we(e,[{id:`add-column`,label:`Add column`,run:()=>g({kind:`column`,id:null})},...E?[{id:`add-index`,label:`Add index`,run:()=>g({kind:`key`,keyKind:`index`,id:null})},...D?[]:[{id:`add-primary-key`,label:`Add primary key`,run:()=>g({kind:`key`,keyKind:`primaryKey`,id:null})}],{id:`add-foreign-key`,label:`Add foreign key`,run:()=>g({kind:`foreignKey`,id:null})},{id:`add-unique`,label:`Add unique`,run:()=>g({kind:`key`,keyKind:`unique`,id:null})}]:[]])},[T,f,e,E,D]),{model:u,isNew:c,editable:f,dirty:p,canSave:m,save:S,reset:b,change:v,dialog:h,openDialog:g,closeDialog:(0,B.useCallback)(()=>g(null),[])}}var Ot=typeof navigator<`u`&&/Mac|iPhone|iPad/.test(navigator.userAgent)?`⌘S`:`Ctrl+S`;function kt({metadata:e,tabId:t}){let n=Ee(e,t),r=fe(),i=typeof e?.tableName==`string`?e.tableName:``,o=typeof e?.schemaName==`string`?e.schemaName:``,c=e?.objectKind,d=i?`/structure?table=${encodeURIComponent(i)}${o?`&schema=${encodeURIComponent(o)}`:``}`:null,f=R(n.missing?null:n.target,d,t),m=f.data,g=Dt({tabId:t,metadata:e,tab:n,live:m,reload:f.reload,mobile:r}),v=n.dialect??`postgres`,y=R(g.isNew&&g.editable&&v===`postgres`?n.target:null,`/objects`,t),b=g.isNew?g.model?.name??``:i,x={schema:o||null,name:i,...c?{kind:c}:{}},S=()=>{n.place&&ve(n.place,x)},C=()=>{n.place&&ge(n.place,{schema:x.schema,name:i,kind:c??`table`})},w=t?()=>de.getState().closeTab(t):void 0,{model:T,editable:E}=g;if(n.missing)return(0,U.jsx)(Oe,{empty:`This connection no longer exists.`});let D=r&&g.isNew?`This table is not created yet. Open this tab on a larger screen to set it up and create it.`:r&&g.dirty?`This tab holds changes to the table that are not saved. Open it on a larger screen to review and save them.`:null;return(0,U.jsxs)(`div`,{className:`flex h-full w-full flex-col overflow-hidden`,children:[(0,U.jsx)(ke,{title:b,subtitle:[le(n.target,n.name),g.isNew?T?.schema??``:o,`structure`].filter(Boolean).join(` · `),color:n.conn?.color??e?.connectionColor,onClose:w}),!(r&&g.isNew)&&(0,U.jsxs)(De,{label:`${b} structure`,children:[!g.isNew&&(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(z,{icon:a,label:`Data`,title:`Open the data of ${b}`,onClick:S,opensTab:!0,disabled:!n.place}),(0,U.jsx)(z,{icon:s,label:`SQL`,title:`Open the SQL of ${b} in its own tab`,onClick:C,opensTab:!0,disabled:!n.place})]}),E&&(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(z,{icon:h,label:g.isNew?`Create table`:`Alter table`,title:`Save changes to the database (${Ot})`,onClick:g.save,disabled:!g.canSave}),(0,U.jsx)(z,{icon:u,label:`Reset changes`,onClick:g.reset,disabled:!g.dirty}),(0,U.jsx)(z,{icon:l,label:`Add column`,onClick:()=>g.openDialog({kind:`column`,id:null})}),(0,U.jsx)(z,{icon:_,label:`Add index`,onClick:()=>g.openDialog({kind:`key`,keyKind:`index`,id:null}),disabled:!T||T.columns.length===0})]})]}),D&&(0,U.jsxs)(`p`,{role:`status`,className:`flex shrink-0 items-start gap-2 border-b border-border-soft bg-panel-2 px-3 py-2.5 text-[13px] text-text-2`,children:[(0,U.jsx)(p,{className:`mt-0.5 size-4 shrink-0 text-info`,"aria-hidden":!0}),D]}),(0,U.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto`,children:!r&&T&&n.dbType?(0,U.jsx)(st,{model:T,dialect:v,dbType:n.dbType,editable:E,isNew:g.isNew,references:m?.references??[],schemas:y.data?.schemas??null,onChange:g.change,openDialog:g.openDialog}):m?(0,U.jsx)(At,{s:m,dialect:v}):!(r&&g.isNew)&&(0,U.jsx)(Oe,{loading:f.loading||!f.error&&!f.driver,error:f.error,driver:f.driver})}),!r&&T&&n.target&&(0,U.jsx)(wt,{dialog:g.dialog,model:T,dialect:v,target:n.target,editable:E,onChange:g.change,onClose:g.closeDialog})]})}function At({s:e,dialect:t}){let n=(0,B.useMemo)(()=>Me(e),[e]),r=(0,B.useMemo)(()=>E(e),[e]),i=(0,B.useMemo)(()=>e.foreignKeys.map(t=>Pe(t,e.schema)),[e]),a=(0,B.useMemo)(()=>e.references.map(t=>Pe(t,e.schema)),[e]);return(0,U.jsxs)(`div`,{className:`grid grid-cols-[minmax(0,1fr)] content-start gap-[18px] px-[18px] pt-3.5 pb-7 max-md:gap-3.5 max-md:p-3`,children:[(0,U.jsx)(Pt,{s:e,rows:n,dialect:t}),e.primaryKey&&(0,U.jsx)(Q,{title:`Primary key`,head:[`Name`,`Columns`],children:(0,U.jsxs)(`tr`,{className:X,children:[(0,U.jsx)(`td`,{className:Z,children:(0,U.jsx)($,{icon:(0,U.jsx)(c,{className:`size-[15px] shrink-0 text-warning`,"aria-hidden":!0}),name:e.primaryKey.name})}),(0,U.jsx)(`td`,{className:Z,children:e.primaryKey.columns.join(`, `)})]})}),r.length>0&&(0,U.jsx)(Q,{title:`Indexes (${r.length})`,head:[`Name`,`Columns`,`Unique`],children:r.map(e=>(0,U.jsxs)(`tr`,{className:X,children:[(0,U.jsx)(`td`,{className:Z,children:(0,U.jsx)($,{icon:(0,U.jsx)(_,{className:`size-[15px] shrink-0 text-text-subtle`,"aria-hidden":!0}),name:e.name})}),(0,U.jsx)(`td`,{className:Z,children:e.columns.join(`, `)}),(0,U.jsx)(`td`,{className:Z,children:e.unique?`YES`:`NO`})]},e.name))}),e.uniques.length>0&&(0,U.jsx)(Q,{title:`Unique constraints (${e.uniques.length})`,head:[`Name`,`Columns`],children:e.uniques.map((e,t)=>(0,U.jsxs)(`tr`,{className:X,children:[(0,U.jsx)(`td`,{className:Z,children:(0,U.jsx)($,{icon:(0,U.jsx)(d,{className:`size-[15px] shrink-0 text-text-subtle`,"aria-hidden":!0}),name:e.name})}),(0,U.jsx)(`td`,{className:Z,children:e.columns.join(`, `)})]},e.name??`#${t}`))}),i.length>0&&(0,U.jsx)(Nt,{title:`Foreign keys (${i.length})`,rows:i}),a.length>0&&(0,U.jsx)(Nt,{title:`Dependencies (${a.length})`,rows:a,dependencies:!0})]})}var X=`can-hover:hover:bg-surface-hover`,Z=`whitespace-nowrap border-b border-border-soft px-2.5 py-1.5 max-md:p-2.5`,jt=`font-mono text-[11.5px]`;function Q({title:e,head:t,children:n,wrapBox:r}){let i=(0,U.jsx)(`div`,{className:`overflow-x-auto rounded-md border border-border bg-panel-2`,children:(0,U.jsxs)(`table`,{className:`w-full border-collapse text-[12.5px] max-md:text-[13px]`,children:[(0,U.jsx)(`thead`,{children:(0,U.jsx)(`tr`,{children:t.map((e,t)=>(0,U.jsx)(`th`,{scope:`col`,className:`whitespace-nowrap border-b border-border-soft bg-panel px-2.5 py-1.5 text-left text-[11px] font-semibold text-text-subtle`,children:e},t))})}),(0,U.jsx)(`tbody`,{className:`[&>tr:last-child>td]:border-b-0`,children:n})]})});return(0,U.jsxs)(`section`,{"aria-label":e,children:[(0,U.jsx)(`h3`,{className:`mb-1.5 ml-0.5 text-[12.5px] font-semibold text-text-primary`,children:e}),r?r(i):i]})}function $({icon:e,name:t,title:n}){return(0,U.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,title:n,children:[e,t??(0,U.jsx)(`span`,{className:`italic text-text-dim`,children:`unnamed`})]})}var Mt=[`Name`,`Base columns`,`Referenced table`,`Referenced columns`,`ON UPDATE`,`ON DELETE`];function Nt({title:e,rows:t,dependencies:n}){return(0,U.jsx)(Q,{title:e,head:Mt,children:t.map((e,t)=>(0,U.jsxs)(`tr`,{className:X,children:[(0,U.jsx)(`td`,{className:Z,children:(0,U.jsx)($,{icon:(0,U.jsx)(f,{className:`size-[15px] shrink-0 text-info`,"aria-hidden":!0}),name:e.name,title:n?`${e.holder} (${e.baseColumns}) → ${e.refTable} (${e.refColumns})`:void 0})}),(0,U.jsx)(`td`,{className:Z,children:e.baseColumns}),(0,U.jsx)(`td`,{className:Z,children:e.refTable}),(0,U.jsx)(`td`,{className:Z,children:e.refColumns}),(0,U.jsx)(`td`,{className:Z,children:e.onUpdate}),(0,U.jsx)(`td`,{className:Z,children:e.onDelete})]},`${e.holder}\u0000${e.name??t}`))})}function Pt({s:e,rows:t,dialect:n}){let[r,i]=(0,B.useState)(new Set),[a,o]=(0,B.useState)(null),s=(e,n)=>{if(n.shiftKey&&a){let n=t.findIndex(e=>e.name===a),r=t.findIndex(t=>t.name===e),[o,s]=n<r?[n,r]:[r,n];i(new Set(t.slice(o,s+1).map(e=>e.name)));return}if(n.ctrlKey||n.metaKey){let t=new Set(r);t.has(e)?t.delete(e):t.add(e),i(t)}else i(new Set([e]));o(e)},l=e=>r.has(e)?t.filter(e=>r.has(e.name)).map(e=>e.name):[e],u=Se(r=>{if(!r||!t.some(e=>e.name===r))return null;let i=l(r),a=e.columns.filter(e=>i.includes(e.name));return[{kind:`item`,label:`Copy names`,icon:m,onSelect:()=>void Ft(Fe(i))},{kind:`item`,label:`Copy definitions`,icon:m,onSelect:()=>void Ft(Ie(a,n))}]},e=>{r.has(e)||(i(new Set([e])),o(e))});return(0,U.jsx)(Q,{title:`Columns (${t.length})`,head:[``,`Name`,`Nullability`,`Data type`,`Default value`,`Computed Expression`,`Comment`],wrapBox:e=>(0,U.jsxs)(me,{children:[(0,U.jsx)(he,{asChild:!0,children:(0,B.cloneElement)(e,u.listProps)}),u.entries&&(0,U.jsx)(Ce,{entries:u.entries})]}),children:t.map(e=>(0,U.jsxs)(`tr`,{"data-row-key":e.name,"aria-selected":r.has(e.name),onClick:t=>s(e.name,t),className:y(X,`cursor-default select-none`,r.has(e.name)&&`bg-accent-wash can-hover:hover:bg-accent-wash`),children:[(0,U.jsx)(`td`,{className:y(Z,`w-9 font-mono text-[11px] text-text-subtle`),children:e.ordinal}),(0,U.jsx)(`td`,{className:Z,children:(0,U.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[e.role===`pk`?(0,U.jsx)(c,{className:`size-[15px] shrink-0 text-warning`,"aria-label":`Primary key`}):e.role===`fk`?(0,U.jsx)(f,{className:`size-[15px] shrink-0 text-info`,"aria-label":`Foreign key`}):(0,U.jsx)(`span`,{"aria-hidden":!0,className:`grid w-[15px] shrink-0 place-items-center`,children:(0,U.jsx)(`span`,{className:`size-1 rounded-full bg-text-subtle opacity-60`})}),(0,U.jsx)(`span`,{className:e.notNull?`font-semibold`:`font-normal`,children:e.name})]})}),(0,U.jsx)(`td`,{className:Z,children:e.notNull?`NOT NULL`:`NULL`}),(0,U.jsx)(`td`,{className:y(Z,jt),children:e.type}),(0,U.jsx)(`td`,{className:y(Z,jt),children:e.defaultValue}),(0,U.jsx)(`td`,{className:y(Z,jt),children:e.computedExpression}),(0,U.jsx)(`td`,{className:Z,children:e.comment})]},e.name))})}async function Ft(e){await pe(e)?v.success(`Copied`):v.error(`The clipboard is not available here`)}export{kt as StructureTab};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/overview-panel-CcUGDvnt.js","assets/rolldown-runtime-C5c2KzVm.js","assets/vendor-markdown-QKPNiWEd.js","assets/utils-Bslrbb-G.js","assets/metric-chart-canvas-LAMaVJTu.js","assets/format-bytes-B2kC4sbB.js","assets/performance-panel-CJDLUwrs.js","assets/vendor-ui-CS1GvlOm.js","assets/api-client-OiA8Ida1.js","assets/settings-store-WeJyQVL8.js","assets/preload-helper-CM8YhcCa.js","assets/react-PkBxFcos.js","assets/adaptive-context-menu-Cq7ynvIn.js","assets/context-menu-BoQ6lxte.js","assets/portal-container-context-BXAsDqrB.js","assets/icons-JMA45Ifw.js","assets/mobile-bottom-sheet-CGmmdp_5.js","assets/use-visual-viewport-CQ6-A0Dt.js","assets/use-is-mobile-BXHbkfs9.js","assets/apps-panel-DaojtUvh.js","assets/button-Br60hGkw.js","assets/use-process-kill-D-SGQxDn.js","assets/index-ItT-dTPV.js","assets/createLucideIcon-DBXq3G0e.js","assets/file-diff-lX1a7RLF.js","assets/git-commit-horizontal-BVihXafd.js","assets/open-db-tabs-CkQe49j_.js","assets/panel-store-DmP16Fo0.js","assets/session-list-sync-triggers-DitiR5h1.js","assets/project-store-CEGoLMOl.js","assets/project-framework-store-Bi5dyHdx.js","assets/window-store-zJczRsv4.js","assets/explorer-model-BmgFEsj1.js","assets/db-types-9ac-eYxf.js","assets/tab-store-nNzRNfVV.js","assets/use-db-driver-installed-BscdI-wS.js","assets/impexp-state-BWKOuRGj.js","assets/file-store-Bk1WYfdy.js","assets/sql-identifiers-DDISwQor.js","assets/db-explorer-store-BcLxq-X0.js","assets/window-pip-registry-DSoB7T3k.js","assets/onboarding-quick-orientation-DZYQekRt.js","assets/dialog-DOaEX6AK.js","assets/format-file-meta-C0LKHE3e.js","assets/fs-api-BQrIEcvo.js","assets/open-settings-DsGBn73g.js","assets/settings-categories-CcR9eL3x.js","assets/dropdown-menu-DB3yyoVz.js","assets/input-CKGoVpYv.js","assets/scroll-area-6Am1KMiB.js","assets/start-ellipsis-rBh37k0n.js","assets/chat-preparation-cache-CRX9WAK5.js","assets/clipboard-D3XnL7CB.js","assets/file-icons-DpwcJLL4.js","assets/format-date-CSHaU2wN.js","assets/git-repo-store-BOYLnV67.js","assets/patch-tab-metadata-B-jH5svY.js","assets/ws-auth-cWeQ7_61.js","assets/apply-theme-ORrEdHKT.js","assets/resolve-theme-BqoL27BW.js","assets/index-DyYGWFVa.css","assets/process-row-format-CBw-CQCx.js","assets/process-table-CX-NhOg6.js","assets/sortable-header-B9gfWik4.js","assets/services-panel-CBRTsROB.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{C as t,S as n}from"./vendor-markdown-QKPNiWEd.js";import{Cr as r,ai as i,oi as a}from"./icons-JMA45Ifw.js";import{t as o}from"./settings-store-WeJyQVL8.js";import{t as s}from"./preload-helper-CM8YhcCa.js";import{n as c}from"./utils-Bslrbb-G.js";import{pt as l}from"./index-ItT-dTPV.js";var u=n(),d=[{id:`c`,label:`°C`},{id:`f`,label:`°F`}];function f(){let e=o(e=>e.sysmonTempUnit),t=o(e=>e.setSysmonTempUnit),n=o(e=>e.sysmonKernelTimes),r=o(e=>e.setSysmonKernelTimes);return(0,u.jsxs)(`div`,{className:`shrink-0 border-b border-border bg-surface-hover/30 px-3 py-2 space-y-2`,"data-testid":`sysmon-preferences`,children:[(0,u.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,u.jsx)(`span`,{className:`text-xs text-text-secondary`,children:`Temperature unit`}),(0,u.jsx)(`div`,{className:`flex items-center gap-1`,role:`radiogroup`,"aria-label":`Temperature unit`,children:d.map(n=>(0,u.jsx)(`button`,{type:`button`,role:`radio`,"aria-checked":e===n.id,onClick:()=>t(n.id),"data-testid":`sysmon-pref-temp-${n.id}`,className:c(`min-h-11 md:min-h-8 px-3 text-xs rounded-md border transition-colors`,e===n.id?`border-primary bg-primary/10 text-primary`:`border-border hover:bg-surface-hover`),children:n.label},n.id))})]}),(0,u.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,u.jsx)(`label`,{htmlFor:`sysmon-pref-kernel`,className:`text-xs text-text-secondary`,children:`Show kernel times on the CPU graph`}),(0,u.jsx)(`button`,{id:`sysmon-pref-kernel`,type:`button`,role:`switch`,"aria-checked":n,onClick:()=>r(!n),"data-testid":`sysmon-pref-kernel`,className:c(`min-h-11 md:min-h-8 px-3 text-xs rounded-md border transition-colors`,n?`border-primary bg-primary/10 text-primary`:`border-border hover:bg-surface-hover`),children:n?`On`:`Off`})]}),(0,u.jsx)(`p`,{className:`text-[11px] text-text-subtle`,children:`These apply to this device only — the machine being watched is the same for everyone.`})]})}var p=e(t(),1),m=(0,p.lazy)(()=>s(()=>import(`./overview-panel-CcUGDvnt.js`).then(e=>({default:e.OverviewPanel})),__vite__mapDeps([0,1,2,3,4,5]))),h=(0,p.lazy)(()=>s(()=>import(`./performance-panel-CJDLUwrs.js`).then(e=>({default:e.PerformancePanel})),__vite__mapDeps([6,1,7,2,3,8,9,10,11,4,12,13,14,15,16,17,18,5]))),g=(0,p.lazy)(()=>s(()=>import(`./apps-panel-DaojtUvh.js`).then(e=>({default:e.AppsPanel})),__vite__mapDeps([19,1,7,2,20,3,8,21,22,10,23,24,25,11,26,27,28,29,30,31,32,33,9,18,34,35,36,37,38,39,40,41,42,14,15,43,44,45,46,12,13,16,17,47,48,49,50,51,52,53,54,55,56,57,58,59,60,5,61]))),_=(0,p.lazy)(()=>s(()=>import(`./process-table-CX-NhOg6.js`).then(e=>({default:e.ProcessTable})),__vite__mapDeps([62,1,22,10,7,2,20,3,23,24,25,8,11,26,27,28,29,30,31,32,33,9,18,34,35,36,37,38,39,40,41,42,14,15,43,44,45,46,12,13,16,17,47,48,49,50,51,52,53,54,55,56,57,58,59,60,21,5,61,63]))),v=(0,p.lazy)(()=>s(()=>import(`./services-panel-CBRTsROB.js`).then(e=>({default:e.ServicesPanel})),__vite__mapDeps([64,1,7,2,20,3,8,61,5,63,15,12,13,14,16,17,18,42]))),y=[`overview`,`performance`,`apps`,`processes`,`services`],b={overview:`Overview`,performance:`Performance`,apps:`Apps`,processes:`Processes`,services:`Services`};function x(e){return y.includes(e)?e:`overview`}function S({isConnected:e,elapsed:t,tickCount:n}){return(0,u.jsxs)(`div`,{className:`flex items-center gap-1.5 text-[10px] text-text-subtle`,"data-testid":`sysmon-connection`,"data-tick-count":n,children:[e?(0,u.jsx)(i,{className:`size-3 text-success`}):(0,u.jsx)(a,{className:`size-3 text-error`}),(0,u.jsx)(`span`,{children:e?`Updated ${t}s ago`:`Disconnected`})]})}var C=(0,p.memo)(function({initialTab:e=`overview`,onTabChange:t,variant:n=`tab`}){let{latest:i,history:a,isConnected:o,tickCount:s}=l({processes:!0}),[d,x]=(0,p.useState)(e),[C,w]=(0,p.useState)(!1),[T,E]=(0,p.useState)(null),D=e=>{x(e),t?.(e)},O=e=>{E(e),D(`performance`)},k=i?Math.round((Date.now()-i.ts)/1e3):0,A=i?.warnings??[];return(0,u.jsxs)(`div`,{className:`h-full flex flex-col overflow-hidden`,"data-testid":`system-monitor-window`,children:[n===`tab`&&(0,u.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-2 border-b border-border shrink-0`,children:[(0,u.jsx)(`h2`,{className:`text-sm font-medium`,children:`System Monitor`}),(0,u.jsx)(S,{isConnected:o,elapsed:k,tickCount:s})]}),A.length>0&&(0,u.jsx)(`div`,{className:`px-3 py-1.5 text-[11px] text-warning bg-warning/10 border-b border-border shrink-0 space-y-0.5`,"data-testid":`sysmon-warnings`,children:A.map((e,t)=>(0,u.jsx)(`div`,{children:e},t))}),(0,u.jsxs)(`div`,{className:`flex items-center border-b border-border shrink-0 overflow-x-auto`,role:`tablist`,children:[y.map(e=>(0,u.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":d===e,"data-testid":`sysmon-tab-${e}`,onClick:()=>D(e),className:c(`shrink-0 min-h-11 px-4 text-sm font-medium transition-colors`,d===e?`text-text-primary border-b-2 border-primary -mb-px`:`text-text-subtle hover:text-text-secondary`),children:b[e]},e)),(0,u.jsxs)(`div`,{className:`ml-auto flex items-center gap-2 pl-3 pr-1 shrink-0`,children:[n===`window`&&(0,u.jsx)(S,{isConnected:o,elapsed:k,tickCount:s}),(0,u.jsx)(`button`,{type:`button`,"aria-label":`System Monitor preferences`,"aria-expanded":C,onClick:()=>w(e=>!e),"data-testid":`sysmon-prefs-toggle`,className:c(`flex items-center justify-center size-11 md:size-8 rounded transition-colors`,C?`text-primary bg-primary/10`:`text-text-subtle hover:text-text-secondary hover:bg-surface-hover`),children:(0,u.jsx)(r,{className:`size-4`})})]})]}),C&&(0,u.jsx)(f,{}),(0,u.jsx)(`div`,{className:`flex-1 min-h-0 overflow-y-auto`,children:(0,u.jsx)(p.Suspense,{fallback:(0,u.jsx)(`div`,{className:`p-4 text-xs text-text-subtle`,children:`Loading…`}),children:d===`services`?(0,u.jsx)(v,{active:!0,metrics:i}):i?d===`overview`?(0,u.jsx)(m,{system:i.system,history:a,onOpenDevice:O}):d===`performance`?(0,u.jsx)(h,{system:i.system,history:a,device:T,onDeviceChange:E,platform:i.platform}):d===`apps`?(0,u.jsx)(g,{snapshot:i}):(0,u.jsx)(_,{snapshot:i}):(0,u.jsx)(`div`,{className:`flex items-center justify-center h-full text-text-subtle text-sm p-4`,children:o?`Waiting for data…`:`Connecting to resource monitor…`})})})]})});export{x as n,C as t};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{S as e}from"./vendor-markdown-QKPNiWEd.js";import"./vendor-ui-CS1GvlOm.js";import"./icons-JMA45Ifw.js";import"./api-client-OiA8Ida1.js";import"./settings-store-WeJyQVL8.js";import{t}from"./system-monitor-body-BIjW16Pb.js";var n=e(),r=()=>(0,n.jsx)(t,{});export{r as SystemMonitorTab};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{S as e}from"./vendor-markdown-QKPNiWEd.js";import"./vendor-ui-CS1GvlOm.js";import"./icons-JMA45Ifw.js";import"./api-client-OiA8Ida1.js";import"./settings-store-WeJyQVL8.js";import{t}from"./window-store-zJczRsv4.js";import{n,t as r}from"./system-monitor-body-BIjW16Pb.js";var i=e();function a({id:e,payload:a}){let o=t(e=>e.setPayload);return(0,i.jsx)(r,{initialTab:n(a?.tab),onTabChange:t=>o(e,{tab:t}),variant:`window`})}export{a as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{C as t,S as n}from"./vendor-markdown-QKPNiWEd.js";import"./vendor-ui-CS1GvlOm.js";import"./icons-JMA45Ifw.js";import"./api-client-OiA8Ida1.js";import"./portal-container-context-BXAsDqrB.js";import{h as r,t as i}from"./panel-store-DmP16Fo0.js";import"./window-store-zJczRsv4.js";import"./project-store-CEGoLMOl.js";import"./project-framework-store-Bi5dyHdx.js";import"./session-list-sync-triggers-DitiR5h1.js";import"./use-is-mobile-BXHbkfs9.js";import"./window-pip-registry-DSoB7T3k.js";import{si as a}from"./index-ItT-dTPV.js";var o=e(t(),1),s=n();function c({id:e,payload:t}){let n=r(e),c=(i(e=>e.panels[n])?.tabs.length??0)>0,l=(0,o.useRef)(!1);c&&(l.current=!0);let u=typeof t?.originPanelId==`string`?t.originPanelId:null,d=(0,o.useRef)(u);d.current=u;let f=(0,o.useCallback)(e=>a(n,e),[n]),p=(0,o.useRef)(null);return(0,o.useLayoutEffect)(()=>(p.current=null,()=>{let t={};p.current=t,queueMicrotask(()=>{p.current===t&&(p.current=null,i.getState().redockFromWindow(e,d.current))})}),[e]),(0,s.jsxs)(`div`,{className:`relative h-full w-full`,children:[(0,s.jsx)(`div`,{ref:f,className:`absolute inset-0`}),!c&&!l.current&&(0,s.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center text-xs text-text-2 pointer-events-none`,children:`Loading…`})]})}export{c as default};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./react-PkBxFcos.js";import{l as t,t as n}from"./panel-store-DmP16Fo0.js";var r=e()(()=>({tabs:[],activeTabId:null,tabHistory:[],currentProject:null,switchProject:e=>{n.getState().switchProject(e),i()},openTab:e=>{let t=n.getState().openTab(e);return i(),t},closeTab:e=>{n.getState().closeTab(e),i()},setActiveTab:e=>{n.getState().setActiveTab(e),i()},updateTab:(e,t)=>{n.getState().updateTab(e,t),i()},openNewFile:e=>{let r=n.getState(),a=t(r.panels),o=r.openTab({type:`editor`,title:e?.title??`Untitled-${a}`,projectId:null,metadata:{isUntitled:!0,untitledNumber:a,...e?.language?{language:e.language}:{}},closable:!0});return i(),o}}));function i(){let e=n.getState(),t=e.panels[e.focusedPanelId];r.setState({tabs:t?.tabs??[],activeTabId:t?.activeTabId??null,tabHistory:t?.tabHistory??[],currentProject:e.currentProject})}n.subscribe(()=>i());export{r as t};
|