collabmd 0.1.47 → 0.1.49
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/README.md +70 -11
- package/bin/collabmd.js +3 -0
- package/dist/client/assets/CodeMirrorEditor-UCMRAMCV-C-nmgL5g.js +1 -0
- package/dist/client/assets/JetBrainsMono-Regular-BQaDgvhP.woff2 +0 -0
- package/dist/client/assets/abnfDiagram-VCTEODGH-CdVZqicp.js +1 -0
- package/dist/client/assets/{architectureDiagram-5GKGNRK7-I39sYjHI.js → architectureDiagram-5GKGNRK7-wUo0bXif.js} +3 -3
- package/dist/client/assets/babel-CY5KOv-I.js +16 -0
- package/dist/client/assets/{blockDiagram-NRAW4CY4-C6DtJy5Y.js → blockDiagram-I7D4REHJ-BRSK3m49.js} +4 -4
- package/dist/client/assets/browser-utils-DbXSMI-6.js +1 -0
- package/dist/client/assets/{c4Diagram-UCG6FXSJ-CtWtxS9_.js → c4Diagram-7LVT6UL2-yD2poxqw.js} +1 -1
- package/dist/client/assets/channel-Fa4GS_-F.js +1 -0
- package/dist/client/assets/chunk-2E4U76K2-BPnTT-J3.js +2 -0
- package/dist/client/assets/{chunk-TEH6E4GO-DVayPj-q.js → chunk-4HAMMTFA-DStbIfJ1.js} +20 -20
- package/dist/client/assets/{chunk-75Z2AOVW-CdFSaPjz.js → chunk-75Z2AOVW-C5pGd3W9.js} +1 -1
- package/dist/client/assets/{chunk-CLGD4ZFX-DQLgbQrv.js → chunk-CLGD4ZFX-BMeArk03.js} +1 -1
- package/dist/client/assets/chunk-DU6HZSFF-Zkp69c6c.js +127 -0
- package/dist/client/assets/{chunk-F27PBJKO-CNHIFhjo.js → chunk-F27PBJKO-D4xNct1r.js} +1 -1
- package/dist/client/assets/{chunk-GMAD6QVW-CbcBqPM5.js → chunk-GMAD6QVW-NZ6WpDb8.js} +1 -1
- package/dist/client/assets/{chunk-OBVCFTLP-BJR7u1jh.js → chunk-GVQU2GXP-D8SDprfX.js} +1 -1
- package/dist/client/assets/{chunk-G27WJ6UU-D9-eg537.js → chunk-IMKFNOWR-D8jEuU3Q.js} +2 -2
- package/dist/client/assets/{chunk-JQ64N6SF-DSFNH4bh.js → chunk-L3NEJ4N5-aijKP-eh.js} +1 -1
- package/dist/client/assets/chunk-OSK3NFVY-CCbLQAMa.js +10 -0
- package/dist/client/assets/{chunk-P2QGCYS3-BRpqY32H.js → chunk-P2QGCYS3-Oag_FdCq.js} +1 -1
- package/dist/client/assets/{chunk-POPQ4Y6H-Cb4SlVZF.js → chunk-POPQ4Y6H-CYnpIgXT.js} +1 -1
- package/dist/client/assets/{chunk-PWAF6VOD-Cz8IwBB5.js → chunk-PWAF6VOD-JSNrcBmP.js} +1 -1
- package/dist/client/assets/{chunk-RM4UPSZO-CWRwxNWJ.js → chunk-RM4UPSZO-DOWllDY8.js} +4 -4
- package/dist/client/assets/{chunk-RHFEMEQ7-CWY8cf4H.js → chunk-SHT3W25Y-BiQGljao.js} +5 -5
- package/dist/client/assets/{chunk-SVP7TREG-CyHOmcac.js → chunk-SVP7TREG-DB485R5x.js} +1 -1
- package/dist/client/assets/{chunk-LCL6LL3I-DmDkVukh.js → chunk-TICWLB2K-8rAVvoS3.js} +4 -4
- package/dist/client/assets/{chunk-CKBBP62Z-DG26UiBv.js → chunk-TLUHSLCS-DTY5v0aj.js} +2 -2
- package/dist/client/assets/classDiagram-ZZMXUADV-BsQWoR3Q.js +1 -0
- package/dist/client/assets/classDiagram-v2-VYDZK3BY-BsQWoR3Q.js +1 -0
- package/dist/client/assets/{comment-thread-store-CdcwrObc.js → comment-thread-store-CX98zR6q.js} +1 -1
- package/dist/client/assets/comment-threads-BnRwo5B9.js +4 -0
- package/dist/client/assets/{cynefinDiagram-5FMLGOSQ-CdTPi2yO.js → cynefinDiagram-5FMLGOSQ-rTz9RhFH.js} +1 -1
- package/dist/client/assets/{dagre-3AP2YEHR-5gtJtd0O.js → dagre-GXQ25YYZ-Cr67wLpQ.js} +2 -2
- package/dist/client/assets/{diagram-S7CK7UJ4-BudWz9WU.js → diagram-S7CK7UJ4-DywERe__.js} +2 -2
- package/dist/client/assets/{diagram-UQ7AKVKN-3v4rbH-s.js → diagram-UQ7AKVKN-CNYlXtu4.js} +1 -1
- package/dist/client/assets/diagram-VSXAHHWV-0H1a61Bn.js +3 -0
- package/dist/client/assets/{diagram-VX7I27RA-C_-rj0sw.js → diagram-VX7I27RA-CsJbsx5F.js} +1 -1
- package/dist/client/assets/{diagram-Z3DM3KII-B4yxavgj.js → diagram-Z3DM3KII-D0mLxEgI.js} +1 -1
- package/dist/client/assets/dist--hk9I5HQ.js +1 -0
- package/dist/client/assets/{dist-DutPuFmC.js → dist-B1XEa-Zs.js} +1 -1
- package/dist/client/assets/dist-Bd1JucQF.js +1 -0
- package/dist/client/assets/{dist-DZAAWTG-.js → dist-C0G3AaXG.js} +1 -1
- package/dist/client/assets/dist-ChRoo3IB.js +9 -0
- package/dist/client/assets/dist-Dm4w5UId.js +1 -0
- package/dist/client/assets/{dist-B_yQaEv_.js → dist-DpYDHR9p.js} +1 -1
- package/dist/client/assets/{dist-CietwTVS.js → dist-DzNmC81X.js} +1 -1
- package/dist/client/assets/{dist-DDUn5zTz.js → dist-GvvCNBe4.js} +1 -1
- package/dist/client/assets/dist-JaU3aRlD.js +19 -0
- package/dist/client/assets/{dist-Bw3VIE_v.js → dist-TW8iFRyW.js} +1 -1
- package/dist/client/assets/{dist-Dir5dDKZ.js → dist-jVU5Be5P.js} +1 -1
- package/dist/client/assets/document-formatter-rDDjRfZ2.js +2 -0
- package/dist/client/assets/drawioEditor-JubEEha7.js +9 -0
- package/dist/client/assets/ebnfDiagram-PWID7BFC-HeTxHpCU.js +1 -0
- package/dist/client/assets/editor-session-Bk6oIvSr.js +54 -0
- package/dist/client/assets/embedded-editor-base-BlCgz6mw.css +1 -0
- package/dist/client/assets/{erDiagram-SSCWMZ5O-C-iy6VkX.js → erDiagram-RLTQ6QDP-CbrDdd5P.js} +2 -2
- package/dist/client/assets/{es-CAsWR6hG.js → es-Bfdp096f.js} +13 -13
- package/dist/client/assets/estree-CuT_pB8K.js +44 -0
- package/dist/client/assets/excalidraw-element-link-YLIaTnVF.js +7 -0
- package/dist/client/assets/{excalidraw-scene-BOben2gr.js → excalidraw-scene-6uROebca.js} +1 -1
- package/dist/client/assets/{excalidraw-editor-BlcN6umJ.css → excalidrawEditor-BbSbI80a.css} +1 -1
- package/dist/client/assets/excalidrawEditor-dBMbRX_S.js +9 -0
- package/dist/client/assets/export-page-CRRQ2NEl.js +57 -0
- package/dist/client/assets/exportDocument-BlQRd9_m.js +2 -0
- package/dist/client/assets/exportDocument-CNSbjZwu.css +1 -0
- package/dist/client/assets/{file-icon-svg-CQAjlWjK.js → file-icon-svg-Y_kpF957.js} +1 -1
- package/dist/client/assets/file-kind-BwMIcZbi.js +1 -0
- package/dist/client/assets/file-search-DDLyyLDU.js +1 -0
- package/dist/client/assets/flowDiagram-HODETNUW-D5Gy0wmg.js +1 -0
- package/dist/client/assets/{ganttDiagram-EL5Y4UJY-DtKHAbez.js → ganttDiagram-EL5Y4UJY-BHgOYiZz.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-WWUBYQGX-oue8fQ5o.js → gitGraphDiagram-WWUBYQGX-Dl__X3Sk.js} +1 -1
- package/dist/client/assets/html-Cdnr2qzU.js +25 -0
- package/dist/client/assets/image-ZVKINSPA-DgzW5zAy.js +1 -0
- package/dist/client/assets/index-D3RER1SZ.js +1023 -0
- package/dist/client/assets/index-DREVKl_K.css +1 -0
- package/dist/client/assets/{infoDiagram-RXCK75RN-BMzo6KIn.js → infoDiagram-27XIBGKW-DBpoANC9.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-5VMMS53U-BIM3h287.js → ishikawaDiagram-5VMMS53U-BMPC6hfp.js} +1 -1
- package/dist/client/assets/{journeyDiagram-EYS64GPL-mF6Lh8O-.js → journeyDiagram-3NMN7TZE-B1sApUmM.js} +2 -2
- package/dist/client/assets/{kanban-definition-3QL26DDD-DLN2NyoR.js → kanban-definition-UXKFOSKX-C9yP4td1.js} +4 -4
- package/dist/client/assets/{line-BfTWJmgf.js → line-BFl3ujec.js} +1 -1
- package/dist/client/assets/markdown-CByV-4CU.js +70 -0
- package/dist/client/assets/{mermaid.core-CLZBlpIW.js → mermaid.core-BrY09czX.js} +5 -5
- package/dist/client/assets/mermaid.core-DfcNfOTv.js +1 -0
- package/dist/client/assets/{mindmap-definition-FBJOCRG2-CRyHaHTk.js → mindmap-definition-YA3MSWOX-BUQHcYbK.js} +8 -8
- package/dist/client/assets/pegDiagram-XKGWAZYB-Bi2Iml7Z.js +1 -0
- package/dist/client/assets/{pieDiagram-E7YTZNPT-B5OZPb88.js → pieDiagram-E7YTZNPT-_gYXnMoi.js} +1 -1
- package/dist/client/assets/preview-render-compiler-CfxJYldJ.js +41 -0
- package/dist/client/assets/preview-render-compiler-Cu8_i9iS.js +1 -0
- package/dist/client/assets/{preview-render-worker-BmN79bVc.js → preview-render-worker-c4Yi93qW.js} +41 -35
- package/dist/client/assets/prod-BiJL30sl.js +1 -0
- package/dist/client/assets/prod-qAk7rHa4.js +177 -0
- package/dist/client/assets/{quadrantDiagram-AXDQQJYC-Drrw14YH.js → quadrantDiagram-AXDQQJYC-DwexhEhd.js} +1 -1
- package/dist/client/assets/quick-switcher-controller-BoIK_wuG.js +1 -0
- package/dist/client/assets/railroadDiagram-O6MQD6OU-BVA5UbMu.js +1 -0
- package/dist/client/assets/{requirementDiagram-EFPCY7ZU-CRZG6mRB.js → requirementDiagram-BXWQKSXE-C4cKwiIw.js} +2 -2
- package/dist/client/assets/runtime-config-DcmnGcXU.js +1 -0
- package/dist/client/assets/{sankeyDiagram-P5KCCOFB-DvarEJpo.js → sankeyDiagram-P5KCCOFB-B5HHkRT2.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-WJ2MYXX4-B4oWlb-w.js → sequenceDiagram-WJ2MYXX4-BX6jqJFD.js} +6 -6
- package/dist/client/assets/standalone-6z5x8CWe.js +29 -0
- package/dist/client/assets/{stateDiagram-HBIQ2CUA-qbHIIqRZ.js → stateDiagram-D77RDMKH-CmqxyRGx.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-MP3YSRHH-zoLLQVyh.js +1 -0
- package/dist/client/assets/{swimlanes-XN3QIQJK-xB6CtUGj.js → swimlanes-42K2YHIH-Bmgb9Zld.js} +1 -1
- package/dist/client/assets/swimlanesDiagram-VR7AAH4N-DS-KQN37.js +8 -0
- package/dist/client/assets/{timeline-definition-24CTP7MA-Lj_yTNlY.js → timeline-definition-24CTP7MA-BA-lVH6P.js} +1 -1
- package/dist/client/assets/vault-api-client-iZLhMJKe.js +6 -0
- package/dist/client/assets/{vennDiagram-4TSXK5OY-BekRp5Y0.js → vennDiagram-4TSXK5OY-DNdUC_Xj.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-VM6X3IG4-kdnV_Hdm.js → wardleyDiagram-VM6X3IG4-C2oY-YbF.js} +1 -1
- package/dist/client/assets/wiki-link-resolver-DFIwErjc.js +1 -0
- package/dist/client/assets/{xychartDiagram-S5SC5T6Z-DufGwNSB.js → xychartDiagram-S5SC5T6Z-CoIR8CBX.js} +1 -1
- package/dist/client/assets/yaml-9ltHPDNO.js +154 -0
- package/dist/client/assets/{yjs-provider-reset-guard-DE0vINDP.js → yjs-provider-reset-guard-9ul1qF6k.js} +1 -1
- package/dist/client/drawio-editor.html +11 -3
- package/dist/client/excalidraw-editor.html +45 -2
- package/dist/client/export-document.html +3 -3
- package/dist/client/index.html +106 -52
- package/integrations/pi/index.ts +94 -0
- package/package.json +41 -29
- package/src/client/app/drawio-editor.html +2 -2
- package/src/client/app/excalidraw-editor.html +2 -2
- package/src/client/app/export-document.html +1 -1
- package/src/client/app/index.html +88 -50
- package/src/client/app/main-entry.js +15 -1
- package/src/client/application/app-shell/chat-feature.js +7 -22
- package/src/client/application/app-shell/export-feature.js +17 -1
- package/src/client/application/app-shell/git-feature.js +51 -14
- package/src/client/application/app-shell/presence-feature.js +8 -25
- package/src/client/application/app-shell/ui-feature-identity.js +13 -0
- package/src/client/application/app-shell/ui-feature-shell.js +199 -99
- package/src/client/application/app-shell/ui-feature-sidebar.js +43 -7
- package/src/client/application/app-shell/ui-feature-tab-activity.js +19 -6
- package/src/client/application/app-shell/ui-feature-toolbar.js +16 -129
- package/src/client/application/app-shell-elements.js +8 -0
- package/src/client/application/preview-render-compiler.js +1 -87
- package/src/client/application/preview-render-scheduler.js +8 -24
- package/src/client/application/preview-renderer.js +2 -2
- package/src/client/application/webmcp-diagram-renderer.js +47 -0
- package/src/client/application/workspace-coordinator.js +23 -4
- package/src/client/application/workspace-preview-controller.js +120 -2
- package/src/client/application/workspace-route-controller.js +11 -1
- package/src/client/assets/vendor/jetbrains-mono/JetBrainsMono-Regular.woff2 +0 -0
- package/src/client/assets/vendor/jetbrains-mono/OFL.txt +93 -0
- package/src/client/bootstrap/collabmd-app-shell.js +99 -6
- package/src/client/domain/document-formatter.js +193 -0
- package/src/client/domain/excalidraw-element-link.js +73 -0
- package/src/client/domain/excalidraw-scene.js +21 -0
- package/src/client/domain/file-search.js +73 -0
- package/src/client/domain/git-labels.js +5 -0
- package/src/client/domain/hash-routes.js +8 -0
- package/src/client/domain/room.js +1 -5
- package/src/client/domain/runtime-paths.js +5 -0
- package/src/client/domain/vault-paths.js +6 -4
- package/src/client/domain/wiki-link-completions.js +20 -20
- package/src/client/drawio-editor.js +8 -3
- package/src/client/excalidraw-editor.js +287 -16
- package/src/client/export/export-host.js +59 -36
- package/src/client/export/export-page.js +14 -4
- package/src/client/export/export-pipeline.js +270 -42
- package/src/client/infrastructure/agent-connection-api-client.js +23 -0
- package/src/client/infrastructure/auth-client.js +3 -13
- package/src/client/infrastructure/editor-session.js +15 -0
- package/src/client/infrastructure/editor-view-adapter.js +73 -14
- package/src/client/infrastructure/excalidraw-room-client.js +80 -1
- package/src/client/infrastructure/git-api-client.js +39 -33
- package/src/client/infrastructure/lobby-presence.js +2 -5
- package/src/client/infrastructure/runtime-config.js +11 -1
- package/src/client/infrastructure/tab-activity-lock.js +2 -5
- package/src/client/infrastructure/vault-api-client.js +33 -26
- package/src/client/infrastructure/webmcp-tool-registry.js +283 -0
- package/src/client/infrastructure/workspace-sync-client.js +6 -4
- package/src/client/presentation/agent-connection-controller.js +255 -0
- package/src/client/presentation/backlinks-panel.js +3 -0
- package/src/client/presentation/bases-preview-controller.js +59 -26
- package/src/client/presentation/comment-ui/comment-ui-card.js +4 -2
- package/src/client/presentation/create-menu-presenter.js +19 -16
- package/src/client/presentation/excalidraw-embed-controller.js +164 -4
- package/src/client/presentation/file-action-controller.js +15 -2
- package/src/client/presentation/file-explorer-controller.js +3 -0
- package/src/client/presentation/file-explorer-view.js +71 -12
- package/src/client/presentation/file-history-view-controller.js +19 -12
- package/src/client/presentation/file-tree-state.js +1 -11
- package/src/client/presentation/git-diff-view-controller.js +70 -53
- package/src/client/presentation/git-panel-controller.js +86 -32
- package/src/client/presentation/image-lightbox-controller.js +20 -16
- package/src/client/presentation/layout-controller.js +3 -1
- package/src/client/presentation/quick-switcher-controller.js +74 -232
- package/src/client/presentation/quick-switcher-text-search.js +10 -14
- package/src/client/styles/components/navigation.css +1 -2
- package/src/client/styles/components/scrollbars.css +10 -0
- package/src/client/styles/export-document.css +44 -29
- package/src/client/styles/features/agent-connection.css +202 -0
- package/src/client/styles/features/collaboration-chat.css +8 -1
- package/src/client/styles/features/collaboration-dialogs.css +16 -1
- package/src/client/styles/features/collaboration-presence.css +30 -5
- package/src/client/styles/features/diff-toolbar.css +1 -1
- package/src/client/styles/features/media-lightbox.css +12 -3
- package/src/client/styles/features/preview-markdown.css +54 -0
- package/src/client/styles/features/quick-switcher.css +20 -11
- package/src/client/styles/foundation/themes.css +2 -0
- package/src/client/styles/foundation/tokens.css +8 -0
- package/src/client/styles/layout/editor-page.css +25 -11
- package/src/client/styles/layout/responsive.css +2 -20
- package/src/client/styles/layout/shell.css +77 -24
- package/src/client/styles/layout/sidebar.css +7 -4
- package/src/client/styles/layout/view-modes.css +2 -0
- package/src/client/styles/overrides/codemirror.css +31 -19
- package/src/client/styles/primitives/controls.css +21 -54
- package/src/client/styles/style.css +1 -0
- package/src/client/styles/surfaces/excalidraw-editor.css +42 -0
- package/src/domain/agent-tool-definitions.js +796 -0
- package/src/domain/collabmd-content-capabilities.js +149 -0
- package/src/domain/collaboration-protocol.js +2 -0
- package/src/domain/comment-threads.js +3 -5
- package/src/domain/diagram-source.js +50 -0
- package/src/domain/editable-content-revision.js +10 -0
- package/src/domain/editable-text.js +3 -0
- package/src/domain/exact-text-edits.js +69 -0
- package/src/domain/excalidraw-agent-scene.js +522 -0
- package/src/domain/excalidraw-agent-verification.js +460 -0
- package/src/domain/excalidraw-room-codec.js +1 -5
- package/src/domain/file-kind.js +12 -1
- package/src/domain/video-embed.js +76 -0
- package/src/server/application/agent-connection-service.js +178 -0
- package/src/server/application/agent-content-service.js +773 -0
- package/src/server/application/workspace-reconciliation.js +5 -7
- package/src/server/config/env.js +51 -1
- package/src/server/create-app-server.js +36 -0
- package/src/server/domain/bases/base-query-service.js +1 -5
- package/src/server/domain/collaboration/collaboration-room.js +121 -25
- package/src/server/domain/collaboration/protocol.js +4 -0
- package/src/server/domain/hosted-workspace.js +21 -0
- package/src/server/domain/markdown-reference-extractor.js +15 -1
- package/src/server/domain/ripgrep-search-service.js +110 -37
- package/src/server/infrastructure/git/git-service.js +19 -1
- package/src/server/infrastructure/git/history-service.js +1 -1
- package/src/server/infrastructure/git/local-exclude.js +25 -0
- package/src/server/infrastructure/git/parsers.js +19 -17
- package/src/server/infrastructure/git/path-utils.js +0 -16
- package/src/server/infrastructure/git/status-service.js +1 -1
- package/src/server/infrastructure/git/untracked-files.js +12 -21
- package/src/server/infrastructure/http/create-agent-api-handler.js +171 -0
- package/src/server/infrastructure/http/create-git-api-command-handler.js +32 -0
- package/src/server/infrastructure/http/create-request-handler.js +28 -0
- package/src/server/infrastructure/http/create-static-handler.js +6 -0
- package/src/server/infrastructure/mcp/create-agent-mcp-handler.js +199 -0
- package/src/server/infrastructure/persistence/agent-connection-store.js +120 -0
- package/src/server/infrastructure/persistence/path-utils.js +10 -4
- package/src/server/infrastructure/persistence/pull-backup-store.js +2 -27
- package/src/server/infrastructure/persistence/vault-file-store.js +11 -2
- package/src/server/shared/agent-tool-image.js +22 -0
- package/src/server/shared/agent-tool-rate-limiter.js +20 -0
- package/src/server/startup/git-remote-bootstrap.js +5 -33
- package/dist/client/assets/CodeMirrorEditor-UCMRAMCV-BPH4FJkv.js +0 -1
- package/dist/client/assets/abnfDiagram-VCTEODGH-BNDLzJ7L.js +0 -1
- package/dist/client/assets/browser-utils--H_DkyEF.js +0 -1
- package/dist/client/assets/channel-CaoKA_We.js +0 -1
- package/dist/client/assets/chunk-DSNCTWBM-8xkug7fQ.js +0 -2
- package/dist/client/assets/chunk-DU6HZSFF-COXDzJK1.js +0 -127
- package/dist/client/assets/chunk-R7TYR2AO-CTd0Yj98.js +0 -10
- package/dist/client/assets/classDiagram-DTDB5LWJ-7fEmn0zV.js +0 -1
- package/dist/client/assets/classDiagram-v2-JRS7N3AN-7fEmn0zV.js +0 -1
- package/dist/client/assets/comment-threads-9J6Em-_y.js +0 -4
- package/dist/client/assets/comment-ui-shared-DWkk9Vh3.js +0 -7
- package/dist/client/assets/diagram-VSXAHHWV-CQRVEZR7.js +0 -3
- package/dist/client/assets/dist-73RPdcyU.js +0 -1
- package/dist/client/assets/dist-CH-sQu3r.js +0 -1
- package/dist/client/assets/drawio-editor-BjrxTe3l.js +0 -9
- package/dist/client/assets/drawioEditor-DUVZjSSr.js +0 -2
- package/dist/client/assets/ebnfDiagram-PWID7BFC-OXa8VEp1.js +0 -1
- package/dist/client/assets/editor-session-DfZuRgB_.js +0 -54
- package/dist/client/assets/embedded-editor-base-DvMynhKu.css +0 -1
- package/dist/client/assets/excalidraw-editor-D7pnUCLH.js +0 -9
- package/dist/client/assets/excalidraw-mermaid-stub-BNckbX2n.js +0 -1
- package/dist/client/assets/excalidraw-mermaid-stub-DE5FTiZB.js +0 -1
- package/dist/client/assets/excalidrawEditor-B0jOK3lv.js +0 -2
- package/dist/client/assets/export-page-Bs3xE1fg.js +0 -57
- package/dist/client/assets/exportDocument-Dg9MjkIk.js +0 -2
- package/dist/client/assets/exportDocument-PnYU3v1s.css +0 -1
- package/dist/client/assets/file-kind-BbqgGzpc.js +0 -1
- package/dist/client/assets/flowDiagram-A5DVABFB-CiW1eN8C.js +0 -1
- package/dist/client/assets/image-ZVKINSPA-0zXSnE7M.js +0 -1
- package/dist/client/assets/index-BIpgxyGZ.css +0 -1
- package/dist/client/assets/index-Z5sI0Bj-.js +0 -2
- package/dist/client/assets/main-Dwnj9Gaq.js +0 -903
- package/dist/client/assets/pegDiagram-XKGWAZYB-B31fKPR2.js +0 -1
- package/dist/client/assets/preview-render-compiler-BApvlLLo.js +0 -35
- package/dist/client/assets/preview-render-compiler-BQ_3h9vD.js +0 -1
- package/dist/client/assets/preview-render-profile-CE-5rVTC.js +0 -1
- package/dist/client/assets/prod-BiYPMR1i.js +0 -177
- package/dist/client/assets/prod-VxdGZ5Ly.js +0 -1
- package/dist/client/assets/quick-switcher-controller-ButWPmCI.js +0 -12
- package/dist/client/assets/railroadDiagram-O6MQD6OU-BPifP0MB.js +0 -1
- package/dist/client/assets/runtime-config-BLrEKVO1.js +0 -1
- package/dist/client/assets/stateDiagram-v2-4QOOHH4V-B--gjrit.js +0 -1
- package/dist/client/assets/swimlanesDiagram-VK2B7HYN-DO8XNXEg.js +0 -8
- package/dist/client/assets/vault-api-client-_LpV1aIn.js +0 -6
- package/dist/client/assets/vault-utils-wdQ0RNR9.js +0 -1
- package/src/client/app/drawio-editor-entry.js +0 -1
- package/src/client/app/excalidraw-editor-entry.js +0 -1
- package/src/client/excalidraw-mermaid-stub.js +0 -7
- package/src/client/main.js +0 -16
- /package/dist/client/assets/{drawio-editor-UQQ8XHou.css → drawioEditor-UQQ8XHou.css} +0 -0
- /package/dist/client/assets/{sizeCapture-X5ZJPWSS-B0uUizjq.js → sizeCapture-INFHLROL-B0uUizjq.js} +0 -0
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
</head>
|
|
19
19
|
<body>
|
|
20
20
|
|
|
21
|
-
<a href="#editorContainer" class="sr-only skip-link">Skip to editor</a>
|
|
21
|
+
<a href="#editorContainer" class="sr-only skip-link" id="skipToEditor">Skip to editor</a>
|
|
22
22
|
|
|
23
23
|
<div class="app-shell">
|
|
24
24
|
<aside id="sidebar" class="sidebar">
|
|
@@ -72,8 +72,8 @@
|
|
|
72
72
|
</button>
|
|
73
73
|
</div>
|
|
74
74
|
</div>
|
|
75
|
-
<div class="ui-nav-tabs" id="sidebarTabs">
|
|
76
|
-
<button class="ui-nav-tab active" id="filesSidebarTab" type="button">
|
|
75
|
+
<div class="ui-nav-tabs" id="sidebarTabs" role="tablist" aria-label="Sidebar views">
|
|
76
|
+
<button class="ui-nav-tab active" id="filesSidebarTab" type="button" role="tab" aria-selected="true" aria-controls="fileTree" tabindex="0">
|
|
77
77
|
<span class="ui-nav-tab-icon" aria-hidden="true">
|
|
78
78
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round">
|
|
79
79
|
<path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"></path>
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
</span>
|
|
82
82
|
<span class="ui-nav-tab-label">Files</span>
|
|
83
83
|
</button>
|
|
84
|
-
<button class="ui-nav-tab" id="commentsSidebarTab" type="button">
|
|
84
|
+
<button class="ui-nav-tab" id="commentsSidebarTab" type="button" role="tab" aria-selected="false" aria-controls="commentOverviewPanel" tabindex="-1">
|
|
85
85
|
<span class="ui-nav-tab-icon" aria-hidden="true">
|
|
86
86
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
87
87
|
<path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path>
|
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
</span>
|
|
90
90
|
<span class="ui-nav-tab-label">Comments</span>
|
|
91
91
|
</button>
|
|
92
|
-
<button class="ui-nav-tab hidden" id="gitSidebarTab" type="button">
|
|
92
|
+
<button class="ui-nav-tab hidden" id="gitSidebarTab" type="button" role="tab" aria-selected="false" aria-controls="gitPanel" tabindex="-1">
|
|
93
93
|
<span class="ui-nav-tab-icon" aria-hidden="true">
|
|
94
94
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
95
95
|
<circle cx="18" cy="18" r="3"></circle>
|
|
@@ -125,9 +125,9 @@
|
|
|
125
125
|
aria-label="Search changed files"
|
|
126
126
|
>
|
|
127
127
|
</div>
|
|
128
|
-
<nav id="fileTree" class="file-tree" aria-
|
|
129
|
-
<section id="commentOverviewPanel" class="comment-overview-panel hidden" aria-
|
|
130
|
-
<div id="gitPanel" class="git-panel hidden" aria-
|
|
128
|
+
<nav id="fileTree" class="file-tree" role="tabpanel" aria-labelledby="filesSidebarTab"></nav>
|
|
129
|
+
<section id="commentOverviewPanel" class="comment-overview-panel hidden" role="tabpanel" aria-labelledby="commentsSidebarTab"></section>
|
|
130
|
+
<div id="gitPanel" class="git-panel hidden" role="tabpanel" aria-labelledby="gitSidebarTab"></div>
|
|
131
131
|
<div
|
|
132
132
|
class="sidebar-resizer"
|
|
133
133
|
id="sidebarResizer"
|
|
@@ -210,6 +210,16 @@
|
|
|
210
210
|
</div>
|
|
211
211
|
|
|
212
212
|
<div class="toolbar-right">
|
|
213
|
+
<button class="ui-button ui-button--ghost ui-button--compact hidden" id="reviewFileChangesBtn" type="button" aria-label="Review changes to this file" title="Review changes to this file">
|
|
214
|
+
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
215
|
+
<line x1="6" y1="3" x2="6" y2="15"></line>
|
|
216
|
+
<circle cx="18" cy="6" r="3"></circle>
|
|
217
|
+
<circle cx="6" cy="18" r="3"></circle>
|
|
218
|
+
<path d="M18 9a9 9 0 0 1-9 9"></path>
|
|
219
|
+
</svg>
|
|
220
|
+
<span class="ui-toolbar-button-label">Review changes</span>
|
|
221
|
+
</button>
|
|
222
|
+
|
|
213
223
|
<button class="ui-button ui-button--ghost ui-button--toolbar mobile-view-toggle" id="mobileViewToggle" aria-label="Toggle editor/preview" title="Toggle view">
|
|
214
224
|
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
215
225
|
<path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path>
|
|
@@ -221,19 +231,19 @@
|
|
|
221
231
|
<div class="toolbar-status-cluster" aria-label="Workspace status">
|
|
222
232
|
<span class="ui-pill-badge ui-pill-badge--accent hidden toolbar-badge" id="toolbarDiffBadge">Diff</span>
|
|
223
233
|
<span class="ui-pill-badge ui-pill-badge--muted hidden toolbar-badge" id="gitOperationStatus" aria-live="polite" aria-atomic="true"></span>
|
|
234
|
+
</div>
|
|
235
|
+
|
|
236
|
+
<div class="toolbar-presence-cluster">
|
|
237
|
+
<div class="user-avatars" id="userAvatars"></div>
|
|
224
238
|
<button
|
|
225
239
|
type="button"
|
|
226
|
-
class="ui-pill-badge ui-pill-badge--muted toolbar-badge toolbar-badge-button"
|
|
240
|
+
class="ui-pill-badge ui-pill-badge--muted toolbar-badge toolbar-badge-button toolbar-presence-count"
|
|
227
241
|
id="userCount"
|
|
228
|
-
|
|
229
|
-
aria-expanded="false"
|
|
230
|
-
data-presence-panel-trigger="true"
|
|
242
|
+
popovertarget="presencePanel"
|
|
231
243
|
></button>
|
|
232
244
|
</div>
|
|
233
245
|
|
|
234
|
-
<
|
|
235
|
-
|
|
236
|
-
<section class="collaboration-popover presence-panel hidden" id="presencePanel" aria-label="Online users" aria-hidden="true">
|
|
246
|
+
<section class="collaboration-popover presence-panel" id="presencePanel" aria-label="Online users" popover="auto">
|
|
237
247
|
<div class="presence-panel-header">
|
|
238
248
|
<div>
|
|
239
249
|
<h2 class="presence-panel-title">Online now</h2>
|
|
@@ -244,7 +254,7 @@
|
|
|
244
254
|
</section>
|
|
245
255
|
|
|
246
256
|
<div class="chat-container" id="chatContainer">
|
|
247
|
-
<button type="button" class="ui-button ui-button--ghost ui-button--toolbar chat-toggle-btn" id="chatToggleBtn" aria-label="Open team chat"
|
|
257
|
+
<button type="button" class="ui-button ui-button--ghost ui-button--toolbar chat-toggle-btn" id="chatToggleBtn" aria-label="Open team chat" popovertarget="chatPanel" title="Team chat">
|
|
248
258
|
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
249
259
|
<path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path>
|
|
250
260
|
</svg>
|
|
@@ -253,7 +263,7 @@
|
|
|
253
263
|
</button>
|
|
254
264
|
<div class="toast-container chat-toast-container" id="chatToastContainer" aria-live="polite" aria-atomic="true"></div>
|
|
255
265
|
|
|
256
|
-
<section class="collaboration-popover chat-panel
|
|
266
|
+
<section class="collaboration-popover chat-panel" id="chatPanel" role="dialog" aria-labelledby="chatPanelTitle" popover="auto">
|
|
257
267
|
<div class="chat-panel-header">
|
|
258
268
|
<div class="chat-panel-heading">
|
|
259
269
|
<h2 class="chat-panel-title" id="chatPanelTitle">Team chat</h2>
|
|
@@ -280,7 +290,7 @@
|
|
|
280
290
|
<path class="chat-notification-mute-slash" d="m4 4 16 16"></path>
|
|
281
291
|
</svg>
|
|
282
292
|
</button>
|
|
283
|
-
<button type="button" class="ui-icon-button chat-close-btn" id="chatCloseBtn" aria-label="Close team chat" title="Close team chat">
|
|
293
|
+
<button type="button" class="ui-icon-button chat-close-btn" id="chatCloseBtn" aria-label="Close team chat" popovertarget="chatPanel" popovertargetaction="hide" title="Close team chat">
|
|
284
294
|
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true">
|
|
285
295
|
<line x1="18" y1="6" x2="6" y2="18"></line>
|
|
286
296
|
<line x1="6" y1="6" x2="18" y2="18"></line>
|
|
@@ -315,7 +325,7 @@
|
|
|
315
325
|
class="ui-button ui-button--ghost ui-button--toolbar toolbar-overflow-toggle"
|
|
316
326
|
id="toolbarOverflowToggle"
|
|
317
327
|
aria-label="Open more actions"
|
|
318
|
-
|
|
328
|
+
popovertarget="toolbarOverflowMenu"
|
|
319
329
|
title="More actions"
|
|
320
330
|
>
|
|
321
331
|
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true">
|
|
@@ -325,7 +335,7 @@
|
|
|
325
335
|
</svg>
|
|
326
336
|
</button>
|
|
327
337
|
|
|
328
|
-
<div class="toolbar-overflow-menu" id="toolbarOverflowMenu">
|
|
338
|
+
<div class="toolbar-overflow-menu" id="toolbarOverflowMenu" popover="auto">
|
|
329
339
|
<button class="ui-button ui-button--ghost ui-button--toolbar hidden" id="fileHistoryBtn" aria-label="Open file history" title="View file history">
|
|
330
340
|
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
331
341
|
<path d="M3 12a9 9 0 1 0 3-6.7"></path>
|
|
@@ -351,6 +361,14 @@
|
|
|
351
361
|
<span class="ui-toolbar-button-label">Share</span>
|
|
352
362
|
</button>
|
|
353
363
|
|
|
364
|
+
<button class="ui-button ui-button--ghost ui-button--toolbar hidden" id="connectAgentBtn" aria-label="Connect AI Agent" title="Connect AI Agent">
|
|
365
|
+
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
366
|
+
<rect x="5" y="7" width="14" height="11" rx="3"></rect>
|
|
367
|
+
<path d="M12 3v4M8 12h.01M16 12h.01M9 16h6"></path>
|
|
368
|
+
</svg>
|
|
369
|
+
<span class="ui-toolbar-button-label">Connect AI Agent</span>
|
|
370
|
+
</button>
|
|
371
|
+
|
|
354
372
|
<button class="ui-button ui-button--ghost ui-button--toolbar toolbar-search-files-btn" id="searchFilesBtn" aria-label="Search files" title="Search files">
|
|
355
373
|
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true">
|
|
356
374
|
<circle cx="11" cy="11" r="7"></circle>
|
|
@@ -448,7 +466,7 @@
|
|
|
448
466
|
<circle cx="11" cy="11" r="8"></circle>
|
|
449
467
|
<line x1="21" y1="21" x2="16.65" y2="16.65"></line>
|
|
450
468
|
</svg>
|
|
451
|
-
Search
|
|
469
|
+
Search everything
|
|
452
470
|
<kbd class="empty-state-kbd">⌘K</kbd>
|
|
453
471
|
</button>
|
|
454
472
|
</div>
|
|
@@ -477,6 +495,14 @@
|
|
|
477
495
|
</svg>
|
|
478
496
|
<span class="ui-action-label">Comment</span>
|
|
479
497
|
</button>
|
|
498
|
+
<button class="ui-button ui-button--ghost ui-button--compact ui-button--toggle" id="editorFormatBtn" aria-label="Format document" title="Format document">
|
|
499
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
500
|
+
<path d="M4 7h10"></path>
|
|
501
|
+
<path d="M4 12h16"></path>
|
|
502
|
+
<path d="M4 17h10"></path>
|
|
503
|
+
</svg>
|
|
504
|
+
<span class="ui-action-label">Format</span>
|
|
505
|
+
</button>
|
|
480
506
|
<button class="ui-button ui-button--ghost ui-button--compact ui-button--toggle" id="toggleWrapBtn" aria-label="Disable line wrap" title="Disable line wrap">
|
|
481
507
|
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
482
508
|
<path d="M3 6h14a4 4 0 1 1 0 8H9"></path>
|
|
@@ -489,7 +515,7 @@
|
|
|
489
515
|
</div>
|
|
490
516
|
<div id="markdownToolbar" class="markdown-toolbar hidden" role="toolbar" aria-label="Markdown formatting"></div>
|
|
491
517
|
<div id="editorContainer" class="editor-container">
|
|
492
|
-
<div class="editor-loading" id="editorLoading">
|
|
518
|
+
<div class="editor-loading" id="editorLoading" role="status" aria-live="polite" aria-label="Loading file…">
|
|
493
519
|
<div class="skeleton-line skeleton-line--title skeleton-line--break"></div>
|
|
494
520
|
<div class="skeleton-line skeleton-line--full"></div>
|
|
495
521
|
<div class="skeleton-line skeleton-line--ninety"></div>
|
|
@@ -507,6 +533,7 @@
|
|
|
507
533
|
<div class="pane-header">
|
|
508
534
|
<span class="pane-label">Preview</span>
|
|
509
535
|
<div class="pane-header-actions">
|
|
536
|
+
<button class="ui-button ui-button--ghost ui-button--compact ui-button--toggle hidden" id="htmlPreviewMaximize" aria-label="Maximize HTML preview" title="Maximize HTML preview"></button>
|
|
510
537
|
<div id="backlinksHeaderPanel" class="backlinks-panel backlinks-panel-header hidden" data-backlinks-variant="header">
|
|
511
538
|
<button type="button" class="backlinks-header" aria-expanded="false">
|
|
512
539
|
<svg class="backlinks-chevron" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
|
|
@@ -609,20 +636,14 @@
|
|
|
609
636
|
</div>
|
|
610
637
|
<div class="diff-toolbar-actions">
|
|
611
638
|
<button class="ui-button ui-button--secondary ui-button--action ui-button--wide ui-button--surface hidden diff-back-btn" id="diffBackToHistoryBtn" type="button">
|
|
612
|
-
Back to
|
|
639
|
+
Back to history
|
|
613
640
|
</button>
|
|
614
641
|
<div class="diff-toolbar-actions-group diff-toolbar-actions-group-git" id="diffGitActionsGroup" role="group" aria-label="Git file actions">
|
|
615
642
|
<button class="ui-button ui-button--secondary ui-button--action ui-button--wide ui-button--surface" id="diffPrimaryActionBtn" type="button" disabled>
|
|
616
|
-
|
|
643
|
+
Include in commit
|
|
617
644
|
</button>
|
|
618
645
|
<button class="ui-button ui-button--primary ui-button--action ui-button--wide" id="diffCommitBtn" type="button" disabled>
|
|
619
|
-
Commit
|
|
620
|
-
</button>
|
|
621
|
-
</div>
|
|
622
|
-
<span class="diff-toolbar-actions-divider" id="diffToolbarDivider" aria-hidden="true"></span>
|
|
623
|
-
<div class="diff-toolbar-actions-group" id="diffEditorActionsGroup" role="group" aria-label="Navigation actions">
|
|
624
|
-
<button class="ui-button ui-button--secondary ui-button--action ui-button--wide ui-button--surface diff-open-editor-btn" id="diffOpenEditorBtn" type="button" disabled>
|
|
625
|
-
Open in Editor
|
|
646
|
+
Commit included files
|
|
626
647
|
</button>
|
|
627
648
|
</div>
|
|
628
649
|
</div>
|
|
@@ -633,12 +654,18 @@
|
|
|
633
654
|
<span class="ui-stat-token ui-stat-token--del diff-stats-del">-0</span>
|
|
634
655
|
</div>
|
|
635
656
|
<div class="ui-segmented-control hidden diff-layout-toggle" id="diffLayoutToggle" role="group" aria-label="Commit diff layout">
|
|
636
|
-
<button class="ui-segmented-btn
|
|
637
|
-
<button class="ui-segmented-btn active
|
|
657
|
+
<button class="ui-segmented-btn diff-layout-btn" data-diff-layout="stacked" type="button" aria-pressed="false">Stacked</button>
|
|
658
|
+
<button class="ui-segmented-btn active diff-layout-btn" data-diff-layout="focused" type="button" aria-pressed="true">Focused</button>
|
|
638
659
|
</div>
|
|
639
660
|
<div class="ui-segmented-control diff-mode-toggle" role="group" aria-label="Diff view mode">
|
|
640
|
-
<button class="ui-segmented-btn active
|
|
641
|
-
<button class="ui-segmented-btn
|
|
661
|
+
<button class="ui-segmented-btn active diff-mode-btn" data-diff-mode="unified" type="button" aria-pressed="true">Unified</button>
|
|
662
|
+
<button class="ui-segmented-btn diff-mode-btn" data-diff-mode="split" type="button" aria-pressed="false">Split</button>
|
|
663
|
+
</div>
|
|
664
|
+
<span class="diff-toolbar-actions-divider" id="diffToolbarDivider" aria-hidden="true"></span>
|
|
665
|
+
<div class="diff-toolbar-actions-group" id="diffEditorActionsGroup" role="group" aria-label="Navigation actions">
|
|
666
|
+
<button class="ui-button ui-button--secondary ui-button--action ui-button--wide ui-button--surface diff-open-editor-btn" id="diffOpenEditorBtn" type="button" disabled>
|
|
667
|
+
Open in editor
|
|
668
|
+
</button>
|
|
642
669
|
</div>
|
|
643
670
|
</div>
|
|
644
671
|
</div>
|
|
@@ -649,7 +676,7 @@
|
|
|
649
676
|
</main>
|
|
650
677
|
</div>
|
|
651
678
|
|
|
652
|
-
<dialog class="app-dialog" id="displayNameDialog">
|
|
679
|
+
<dialog class="app-dialog" id="displayNameDialog" aria-labelledby="displayNameTitle">
|
|
653
680
|
<form class="app-dialog-form" id="displayNameForm" method="dialog">
|
|
654
681
|
<div class="app-dialog-header">
|
|
655
682
|
<h2 class="app-dialog-title" id="displayNameTitle">Update display name</h2>
|
|
@@ -666,7 +693,17 @@
|
|
|
666
693
|
</form>
|
|
667
694
|
</dialog>
|
|
668
695
|
|
|
669
|
-
<dialog class="app-dialog" id="
|
|
696
|
+
<dialog class="app-dialog agent-connection-dialog" id="agentConnectionDialog" aria-labelledby="agentConnectionTitle">
|
|
697
|
+
<div class="app-dialog-form">
|
|
698
|
+
<div class="app-dialog-header">
|
|
699
|
+
<h2 class="app-dialog-title" id="agentConnectionTitle">Connect an AI agent</h2>
|
|
700
|
+
<p class="app-dialog-copy">Follow the steps below to give an agent secure access to this workspace.</p>
|
|
701
|
+
</div>
|
|
702
|
+
<div id="agentConnectionContent"></div>
|
|
703
|
+
</div>
|
|
704
|
+
</dialog>
|
|
705
|
+
|
|
706
|
+
<dialog class="app-dialog" id="fileActionDialog" aria-labelledby="fileActionTitle">
|
|
670
707
|
<form class="app-dialog-form" id="fileActionForm" method="dialog">
|
|
671
708
|
<div class="app-dialog-header">
|
|
672
709
|
<h2 class="app-dialog-title" id="fileActionTitle">Create file</h2>
|
|
@@ -685,24 +722,25 @@
|
|
|
685
722
|
</form>
|
|
686
723
|
</dialog>
|
|
687
724
|
|
|
688
|
-
<dialog class="app-dialog" id="gitCommitDialog">
|
|
725
|
+
<dialog class="app-dialog" id="gitCommitDialog" aria-labelledby="gitCommitTitle">
|
|
689
726
|
<form class="app-dialog-form" id="gitCommitForm" method="dialog">
|
|
690
727
|
<div class="app-dialog-header">
|
|
691
|
-
<h2 class="app-dialog-title" id="gitCommitTitle">Commit
|
|
692
|
-
<p class="app-dialog-copy" id="gitCommitCopy">All
|
|
728
|
+
<h2 class="app-dialog-title" id="gitCommitTitle">Commit included files</h2>
|
|
729
|
+
<p class="app-dialog-copy" id="gitCommitCopy">All included changes will be committed.</p>
|
|
693
730
|
</div>
|
|
694
731
|
<label class="app-dialog-field" for="gitCommitInput">
|
|
695
|
-
<span class="app-dialog-label">
|
|
696
|
-
<input type="text" class="ui-input" id="gitCommitInput" name="gitCommitMessage" autocomplete="off" spellcheck="true" required>
|
|
732
|
+
<span class="app-dialog-label">What changed?</span>
|
|
733
|
+
<input type="text" class="ui-input" id="gitCommitInput" name="gitCommitMessage" autocomplete="off" spellcheck="true" aria-describedby="gitCommitHint" required>
|
|
734
|
+
<span class="app-dialog-hint" id="gitCommitHint">This becomes the Git commit message.</span>
|
|
697
735
|
</label>
|
|
698
736
|
<div class="app-dialog-actions">
|
|
699
737
|
<button type="button" class="ui-button ui-button--secondary" id="gitCommitCancel">Cancel</button>
|
|
700
|
-
<button type="submit" class="ui-button ui-button--primary" id="gitCommitSubmit">Commit
|
|
738
|
+
<button type="submit" class="ui-button ui-button--primary" id="gitCommitSubmit">Commit included files</button>
|
|
701
739
|
</div>
|
|
702
740
|
</form>
|
|
703
741
|
</dialog>
|
|
704
742
|
|
|
705
|
-
<dialog class="app-dialog" id="gitResetDialog">
|
|
743
|
+
<dialog class="app-dialog" id="gitResetDialog" aria-labelledby="gitResetTitle">
|
|
706
744
|
<form class="app-dialog-form" method="dialog">
|
|
707
745
|
<div class="app-dialog-header">
|
|
708
746
|
<h2 class="app-dialog-title" id="gitResetTitle">Reset file</h2>
|
|
@@ -717,12 +755,12 @@
|
|
|
717
755
|
</div>
|
|
718
756
|
<div class="app-dialog-actions">
|
|
719
757
|
<button class="ui-button ui-button--secondary" id="gitResetCancel" type="button">Cancel</button>
|
|
720
|
-
<button class="ui-button ui-button--danger" id="gitResetSubmit" type="button">Reset
|
|
758
|
+
<button class="ui-button ui-button--danger" id="gitResetSubmit" type="button">Reset file</button>
|
|
721
759
|
</div>
|
|
722
760
|
</form>
|
|
723
761
|
</dialog>
|
|
724
762
|
|
|
725
|
-
<
|
|
763
|
+
<dialog class="tab-lock-overlay" id="tabLockOverlay" aria-labelledby="tabLockTitle">
|
|
726
764
|
<div class="tab-lock-card">
|
|
727
765
|
<span class="tab-lock-kicker">Single active tab</span>
|
|
728
766
|
<h2 class="tab-lock-title" id="tabLockTitle">This vault is active in another tab</h2>
|
|
@@ -731,11 +769,11 @@
|
|
|
731
769
|
<button type="button" class="ui-button ui-button--primary ui-button--lg" id="tabLockTakeoverBtn">Take over here</button>
|
|
732
770
|
</div>
|
|
733
771
|
</div>
|
|
734
|
-
</
|
|
772
|
+
</dialog>
|
|
735
773
|
|
|
736
774
|
<div class="toast-container" id="toastContainer"></div>
|
|
737
775
|
|
|
738
|
-
<
|
|
776
|
+
<dialog class="qs-overlay" id="quickSwitcher" aria-labelledby="quickSwitcherTitle" closedby="any">
|
|
739
777
|
<div class="qs-modal">
|
|
740
778
|
<h2 class="sr-only" id="quickSwitcherTitle">Search files and text</h2>
|
|
741
779
|
<div class="qs-mode-tabs" role="tablist" aria-label="Search mode">
|
|
@@ -747,7 +785,7 @@
|
|
|
747
785
|
<circle cx="11" cy="11" r="8"></circle>
|
|
748
786
|
<line x1="21" y1="21" x2="16.65" y2="16.65"></line>
|
|
749
787
|
</svg>
|
|
750
|
-
<input type="text" class="qs-input" id="quickSwitcherInput" role="combobox" placeholder="Search files..." aria-label="Search files" aria-controls="quickSwitcherResults" aria-describedby="quickSwitcherHint quickSwitcherScope" aria-autocomplete="list" aria-expanded="false" autocomplete="off" spellcheck="false">
|
|
788
|
+
<input type="text" class="qs-input" id="quickSwitcherInput" role="combobox" placeholder="Search files..." aria-label="Search files" aria-controls="quickSwitcherResults" aria-describedby="quickSwitcherHint quickSwitcherScope" aria-autocomplete="list" aria-expanded="false" autocomplete="off" spellcheck="false" autofocus>
|
|
751
789
|
<kbd class="qs-kbd">esc</kbd>
|
|
752
790
|
</div>
|
|
753
791
|
<div class="qs-scope hidden" id="quickSwitcherScope" role="note" aria-hidden="true">Exact, case-insensitive text in Markdown, Base, Mermaid, PlantUML, Draw.io, and Excalidraw files. Images are excluded.</div>
|
|
@@ -759,7 +797,7 @@
|
|
|
759
797
|
<span><kbd>Tab</kbd> Switch mode</span>
|
|
760
798
|
</div>
|
|
761
799
|
</div>
|
|
762
|
-
</
|
|
800
|
+
</dialog>
|
|
763
801
|
<script vite-ignore src="./app-config.js"></script>
|
|
764
802
|
<script type="module" src="./main-entry.js"></script>
|
|
765
803
|
</body>
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import darkHighlightThemeUrl from '../assets/vendor/highlight/github-dark.min.css?url';
|
|
2
2
|
import lightHighlightThemeUrl from '../assets/vendor/highlight/github.min.css?url';
|
|
3
|
+
import { CollabMdAppShell } from '../bootstrap/collabmd-app-shell.js';
|
|
4
|
+
import { ensureClientAuthenticated } from '../infrastructure/auth-client.js';
|
|
3
5
|
import '../styles/base.css';
|
|
4
6
|
import '../styles/style.css';
|
|
5
7
|
|
|
@@ -18,4 +20,16 @@ function ensureHighlightThemeStylesheet() {
|
|
|
18
20
|
}
|
|
19
21
|
|
|
20
22
|
ensureHighlightThemeStylesheet();
|
|
21
|
-
|
|
23
|
+
async function start() {
|
|
24
|
+
await ensureClientAuthenticated();
|
|
25
|
+
const app = new CollabMdAppShell();
|
|
26
|
+
app.initialize();
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (document.readyState === 'loading') {
|
|
30
|
+
document.addEventListener('DOMContentLoaded', () => {
|
|
31
|
+
void start();
|
|
32
|
+
}, { once: true });
|
|
33
|
+
} else {
|
|
34
|
+
void start();
|
|
35
|
+
}
|
|
@@ -72,34 +72,23 @@ export const chatFeature = {
|
|
|
72
72
|
this.renderChat();
|
|
73
73
|
},
|
|
74
74
|
|
|
75
|
-
toggleChatPanel() {
|
|
76
|
-
if (this.chatIsOpen) {
|
|
77
|
-
this.closeChatPanel({ restoreFocus: true });
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
this.openChatPanel();
|
|
82
|
-
},
|
|
83
75
|
|
|
84
76
|
openChatPanel() {
|
|
85
77
|
this.chatIsOpen = true;
|
|
86
78
|
this.chatUnreadCount = 0;
|
|
79
|
+
if (!this.elements.chatPanel?.matches(':popover-open')) {
|
|
80
|
+
this.elements.chatPanel?.showPopover();
|
|
81
|
+
}
|
|
87
82
|
this.renderChat({ stickToBottom: true });
|
|
88
|
-
requestAnimationFrame(() =>
|
|
89
|
-
this.elements.chatInput?.focus();
|
|
90
|
-
});
|
|
83
|
+
requestAnimationFrame(() => this.elements.chatInput?.focus());
|
|
91
84
|
},
|
|
92
85
|
|
|
93
|
-
closeChatPanel(
|
|
94
|
-
if (
|
|
95
|
-
|
|
86
|
+
closeChatPanel() {
|
|
87
|
+
if (this.elements.chatPanel?.matches(':popover-open')) {
|
|
88
|
+
this.elements.chatPanel.hidePopover();
|
|
96
89
|
}
|
|
97
|
-
|
|
98
90
|
this.chatIsOpen = false;
|
|
99
91
|
this.renderChat({ messagesChanged: false });
|
|
100
|
-
if (restoreFocus) {
|
|
101
|
-
requestAnimationFrame(() => this.elements.chatToggleButton?.focus());
|
|
102
|
-
}
|
|
103
92
|
},
|
|
104
93
|
|
|
105
94
|
handleChatSubmit() {
|
|
@@ -129,8 +118,6 @@ export const chatFeature = {
|
|
|
129
118
|
},
|
|
130
119
|
|
|
131
120
|
renderChat({ messagesChanged = true, stickToBottom = false } = {}) {
|
|
132
|
-
this.elements.chatContainer?.classList.toggle('is-open', this.chatIsOpen);
|
|
133
|
-
this.elements.chatPanel?.classList.toggle('hidden', !this.chatIsOpen);
|
|
134
121
|
|
|
135
122
|
this.syncChatToggleButton();
|
|
136
123
|
this.syncChatNotificationButton();
|
|
@@ -363,8 +350,6 @@ export const chatFeature = {
|
|
|
363
350
|
|
|
364
351
|
button.classList.toggle('is-active', this.chatIsOpen);
|
|
365
352
|
button.classList.toggle('is-unread', shouldEmphasizeUnread);
|
|
366
|
-
button.setAttribute('aria-controls', 'chatPanel');
|
|
367
|
-
button.setAttribute('aria-expanded', String(this.chatIsOpen));
|
|
368
353
|
button.setAttribute(
|
|
369
354
|
'aria-label',
|
|
370
355
|
hasUnread ? `Open team chat, ${this.chatUnreadCount} unread` : 'Open team chat',
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { isMarkdownFilePath } from '../../../domain/file-kind.js';
|
|
2
|
-
import { exportDocument, initializeExportBridge } from '../../export/export-host.js';
|
|
2
|
+
import { exportDirectory, exportDocument, initializeExportBridge } from '../../export/export-host.js';
|
|
3
3
|
|
|
4
4
|
export const exportFeature = {
|
|
5
5
|
initializeExportBridge() {
|
|
@@ -15,6 +15,22 @@ export const exportFeature = {
|
|
|
15
15
|
this._exportBridgeInitialized = true;
|
|
16
16
|
},
|
|
17
17
|
|
|
18
|
+
async handleDirectoryExportRequest(directoryPath, format) {
|
|
19
|
+
try {
|
|
20
|
+
await exportDirectory({
|
|
21
|
+
currentFilePath: this.currentFilePath,
|
|
22
|
+
currentMarkdownText: this.session?.getText?.() ?? '',
|
|
23
|
+
directoryPath,
|
|
24
|
+
fileList: this.fileExplorer?.flatDocumentFiles ?? [],
|
|
25
|
+
format,
|
|
26
|
+
});
|
|
27
|
+
return true;
|
|
28
|
+
} catch (error) {
|
|
29
|
+
this.toastController?.show(error instanceof Error ? error.message : 'Failed to start folder export');
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
|
|
18
34
|
async handleExportRequest(format) {
|
|
19
35
|
const filePath = String(this.currentFilePath ?? '').trim();
|
|
20
36
|
if (!isMarkdownFilePath(filePath)) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { commitButtonLabel } from '../../domain/git-labels.js';
|
|
1
2
|
import { createWorkspaceChange } from '../../../domain/workspace-change.js';
|
|
2
3
|
|
|
3
4
|
export const gitFeature = {
|
|
@@ -89,6 +90,7 @@ export const gitFeature = {
|
|
|
89
90
|
this.elements.gitSidebarTab?.classList.toggle('has-changes', hasChanges);
|
|
90
91
|
|
|
91
92
|
this.gitDiffView.setRepoStatus(this.gitRepoAvailable ? status : null);
|
|
93
|
+
this.syncReviewFileChangesButton();
|
|
92
94
|
|
|
93
95
|
if (!this.gitRepoAvailable && this.activeSidebarTab === 'git') {
|
|
94
96
|
this.syncFileHistoryButton({ mode: this.navigation.getHashRoute().type === 'git-file-preview' ? 'history-preview' : 'editor' });
|
|
@@ -130,7 +132,7 @@ export const gitFeature = {
|
|
|
130
132
|
|
|
131
133
|
button.classList.remove('hidden');
|
|
132
134
|
if (mode === 'history-preview') {
|
|
133
|
-
label.textContent = 'Back to
|
|
135
|
+
label.textContent = 'Back to history';
|
|
134
136
|
button.setAttribute('aria-label', 'Back to file history');
|
|
135
137
|
button.title = 'Back to file history';
|
|
136
138
|
return;
|
|
@@ -146,6 +148,21 @@ export const gitFeature = {
|
|
|
146
148
|
button.title = 'View file history';
|
|
147
149
|
},
|
|
148
150
|
|
|
151
|
+
syncReviewFileChangesButton({
|
|
152
|
+
filePath = this.currentFilePath,
|
|
153
|
+
mode = 'editor',
|
|
154
|
+
} = {}) {
|
|
155
|
+
const button = this.elements.reviewFileChangesButton;
|
|
156
|
+
if (!button) {
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
button.classList.toggle(
|
|
161
|
+
'hidden',
|
|
162
|
+
!this.gitRepoAvailable || mode !== 'editor' || !filePath,
|
|
163
|
+
);
|
|
164
|
+
},
|
|
165
|
+
|
|
149
166
|
syncMainChrome({ badgeLabel = '', mode, title = null } = {}) {
|
|
150
167
|
const isSpecialMode = mode === 'diff' || mode === 'history' || mode === 'history-preview';
|
|
151
168
|
this.elements.toolbarViewToggle?.classList.toggle('hidden', isSpecialMode);
|
|
@@ -161,6 +178,7 @@ export const gitFeature = {
|
|
|
161
178
|
}
|
|
162
179
|
|
|
163
180
|
this.syncFileHistoryButton({ filePath: this.currentFilePath, mode });
|
|
181
|
+
this.syncReviewFileChangesButton({ filePath: this.currentFilePath, mode });
|
|
164
182
|
},
|
|
165
183
|
|
|
166
184
|
async showGitDiff({ filePath = null, scope = 'all' } = {}) {
|
|
@@ -308,6 +326,10 @@ export const gitFeature = {
|
|
|
308
326
|
return await this.gitApiClient.stageFile({ path: payload.path, requestId });
|
|
309
327
|
case 'unstage':
|
|
310
328
|
return await this.gitApiClient.unstageFile({ path: payload.path, requestId });
|
|
329
|
+
case 'stage-all':
|
|
330
|
+
return await this.gitApiClient.stageAll({ requestId });
|
|
331
|
+
case 'unstage-all':
|
|
332
|
+
return await this.gitApiClient.unstageAll({ requestId });
|
|
311
333
|
case 'push':
|
|
312
334
|
return await this.gitApiClient.pushBranch({ requestId });
|
|
313
335
|
case 'pull':
|
|
@@ -516,6 +538,20 @@ export const gitFeature = {
|
|
|
516
538
|
});
|
|
517
539
|
},
|
|
518
540
|
|
|
541
|
+
async stageAllGitFiles() {
|
|
542
|
+
await this.runGitActionWithStatus('Staging all changes...', async () => {
|
|
543
|
+
const result = await this.postGitAction('stage-all', {});
|
|
544
|
+
await this.finalizeGitAction({ action: 'stage-all', preferredScope: 'staged', result });
|
|
545
|
+
});
|
|
546
|
+
},
|
|
547
|
+
|
|
548
|
+
async unstageAllGitFiles() {
|
|
549
|
+
await this.runGitActionWithStatus('Unstaging all changes...', async () => {
|
|
550
|
+
const result = await this.postGitAction('unstage-all', {});
|
|
551
|
+
await this.finalizeGitAction({ action: 'unstage-all', preferredScope: 'working-tree', result });
|
|
552
|
+
});
|
|
553
|
+
},
|
|
554
|
+
|
|
519
555
|
async pushGitBranch() {
|
|
520
556
|
await this.runGitActionWithStatus('Pushing branch...', async () => {
|
|
521
557
|
try {
|
|
@@ -577,7 +613,7 @@ export const gitFeature = {
|
|
|
577
613
|
}
|
|
578
614
|
this.elements.gitResetFileName.value = filePath;
|
|
579
615
|
if (this.elements.gitResetSubmit) {
|
|
580
|
-
this.elements.gitResetSubmit.textContent = 'Reset
|
|
616
|
+
this.elements.gitResetSubmit.textContent = 'Reset file';
|
|
581
617
|
}
|
|
582
618
|
this.elements.gitResetSubmit?.toggleAttribute('disabled', false);
|
|
583
619
|
|
|
@@ -601,10 +637,10 @@ export const gitFeature = {
|
|
|
601
637
|
|
|
602
638
|
submit?.toggleAttribute('disabled', true);
|
|
603
639
|
if (submit) {
|
|
604
|
-
submit.textContent = 'Resetting
|
|
640
|
+
submit.textContent = 'Resetting…';
|
|
605
641
|
}
|
|
606
642
|
try {
|
|
607
|
-
await this.runGitActionWithStatus('Resetting file
|
|
643
|
+
await this.runGitActionWithStatus('Resetting file…', async () => {
|
|
608
644
|
const result = await this.postGitAction('reset-file', { path: filePath });
|
|
609
645
|
await this.finalizeGitAction({
|
|
610
646
|
action: 'reset',
|
|
@@ -618,7 +654,7 @@ export const gitFeature = {
|
|
|
618
654
|
this.toastController.show(error.message || 'Failed to reset file');
|
|
619
655
|
} finally {
|
|
620
656
|
if (submit) {
|
|
621
|
-
submit.textContent = 'Reset
|
|
657
|
+
submit.textContent = 'Reset file';
|
|
622
658
|
}
|
|
623
659
|
submit?.toggleAttribute('disabled', false);
|
|
624
660
|
}
|
|
@@ -635,17 +671,18 @@ export const gitFeature = {
|
|
|
635
671
|
return;
|
|
636
672
|
}
|
|
637
673
|
|
|
674
|
+
const includedFileCount = Number(this.gitPanel.status?.summary?.staged || 0);
|
|
675
|
+
const commitLabel = commitButtonLabel(includedFileCount);
|
|
638
676
|
if (this.elements.gitCommitTitle) {
|
|
639
|
-
this.elements.gitCommitTitle.textContent =
|
|
677
|
+
this.elements.gitCommitTitle.textContent = commitLabel;
|
|
640
678
|
}
|
|
641
679
|
if (this.elements.gitCommitCopy) {
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
: 'All staged changes will be included.';
|
|
680
|
+
this.elements.gitCommitCopy.textContent = includedFileCount > 0
|
|
681
|
+
? `This commit will include ${includedFileCount} file${includedFileCount === 1 ? '' : 's'}.`
|
|
682
|
+
: 'All included changes will be committed.';
|
|
646
683
|
}
|
|
647
684
|
if (this.elements.gitCommitSubmit) {
|
|
648
|
-
this.elements.gitCommitSubmit.textContent =
|
|
685
|
+
this.elements.gitCommitSubmit.textContent = commitLabel;
|
|
649
686
|
}
|
|
650
687
|
input.value = '';
|
|
651
688
|
|
|
@@ -673,7 +710,7 @@ export const gitFeature = {
|
|
|
673
710
|
}
|
|
674
711
|
if (!message) {
|
|
675
712
|
input.focus();
|
|
676
|
-
this.toastController.show('
|
|
713
|
+
this.toastController.show('Describe what changed before committing');
|
|
677
714
|
return;
|
|
678
715
|
}
|
|
679
716
|
|
|
@@ -693,10 +730,10 @@ export const gitFeature = {
|
|
|
693
730
|
});
|
|
694
731
|
dialog.close();
|
|
695
732
|
} catch (error) {
|
|
696
|
-
this.toastController.show(error.message || 'Failed to commit
|
|
733
|
+
this.toastController.show(error.message || 'Failed to commit included changes');
|
|
697
734
|
} finally {
|
|
698
735
|
if (submit) {
|
|
699
|
-
submit.textContent = 'Commit
|
|
736
|
+
submit.textContent = 'Commit included files';
|
|
700
737
|
}
|
|
701
738
|
submit?.toggleAttribute('disabled', false);
|
|
702
739
|
}
|