@tencent-ai/agent-sdk 0.3.272 → 0.3.273
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/cli/CHANGELOG.md +17 -0
- package/cli/dist/codebuddy-headless.js +23 -23
- package/cli/dist/codebuddy-lite-wb.mjs +25 -25
- package/cli/dist/web-ui/assets/{CanvasPaneStandaloneView-DIn545ua.js → CanvasPaneStandaloneView-dyWkk4PZ.js} +1 -1
- package/cli/dist/web-ui/assets/{CanvasView-hnvCmPSV.js → CanvasView-DkhyH_1F.js} +1 -1
- package/cli/dist/web-ui/assets/{ChangesView-CtIfLmOc.js → ChangesView-CaHOWv2Z.js} +1 -1
- package/cli/dist/web-ui/assets/{DocsView-HBxNI97Q.js → DocsView-DiGzijj1.js} +1 -1
- package/cli/dist/web-ui/assets/{EditorView-DvwpvafF.js → EditorView-CUu0ekRP.js} +1 -1
- package/cli/dist/web-ui/assets/HoverHint-LssI0qEE.js +1 -0
- package/cli/dist/web-ui/assets/{KeybindingsView-B88MXgWr.js → KeybindingsView-DWUI1JpY.js} +1 -1
- package/cli/dist/web-ui/assets/{LogsView-DjF_5-Jd.js → LogsView-CEHx06nm.js} +1 -1
- package/cli/dist/web-ui/assets/{MetricsView-DImkPyZM.js → MetricsView-BZuMTUvp.js} +1 -1
- package/cli/dist/web-ui/assets/{PluginsView-2uPy3XvK.js → PluginsView-DPWy3FBq.js} +1 -1
- package/cli/dist/web-ui/assets/{RemoteControlView-kPy9GUlN.js → RemoteControlView-C1NdBeJw.js} +1 -1
- package/cli/dist/web-ui/assets/{SettingsView-CWRqL0oA.js → SettingsView-BJCKKgWV.js} +1 -1
- package/cli/dist/web-ui/assets/{SplitContainer-Dm1TgCaG.js → SplitContainer-BpAMtGSs.js} +1 -1
- package/cli/dist/web-ui/assets/{StatsView-okhz7xRe.js → StatsView-C-HzWG8r.js} +1 -1
- package/cli/dist/web-ui/assets/{TasksView-CICNpZ9N.js → TasksView-BnFNp4fv.js} +1 -1
- package/cli/dist/web-ui/assets/{TerminalPaneView-BFSDyqOG.js → TerminalPaneView-ALwEzbwH.js} +1 -1
- package/cli/dist/web-ui/assets/{TracesView-Burz_yeC.js → TracesView-t3wi7Kes.js} +1 -1
- package/cli/dist/web-ui/assets/{WorkersView-BqddwtUV.js → WorkersView-d7IuRA1g.js} +1 -1
- package/cli/dist/web-ui/assets/{abnfDiagram-O67JEVCF-33nTnJ2S.js → abnfDiagram-O67JEVCF-DlRX5Clr.js} +1 -1
- package/cli/dist/web-ui/assets/architecture-7GRP2DOG-4118Qje4.js +1 -0
- package/cli/dist/web-ui/assets/{architectureDiagram-NJMV4G6O-FzGcEis5.js → architectureDiagram-NJMV4G6O-CvzoqRYj.js} +1 -1
- package/cli/dist/web-ui/assets/{blockDiagram-BEXU5L5S-DSx6FBt9.js → blockDiagram-BEXU5L5S-Dmo7FSbu.js} +1 -1
- package/cli/dist/web-ui/assets/{c4Diagram-YGBWAQC7-CF2SLLtS.js → c4Diagram-YGBWAQC7-D-rNXRo3.js} +1 -1
- package/cli/dist/web-ui/assets/{canvas-store-CTF2gk3l.js → canvas-store-C-T5LSPT.js} +1 -1
- package/cli/dist/web-ui/assets/channel-CzlEOE5Z.js +1 -0
- package/cli/dist/web-ui/assets/{chunk-3FUC2YCW-BSfDfOZA.js → chunk-3FUC2YCW-44Og191I.js} +1 -1
- package/cli/dist/web-ui/assets/{chunk-5DYCD2WN-Cw4uUnBv.js → chunk-5DYCD2WN-BMcJMkic.js} +1 -1
- package/cli/dist/web-ui/assets/{chunk-742MDFTN-Crj_2MBX.js → chunk-742MDFTN-C9Feux5F.js} +1 -1
- package/cli/dist/web-ui/assets/{chunk-7INBJB4K-CQzVOJr6.js → chunk-7INBJB4K-DFzU3uUY.js} +1 -1
- package/cli/dist/web-ui/assets/{chunk-7M6MHVWA-C0J56L0S.js → chunk-7M6MHVWA-BP_hs_Zh.js} +1 -1
- package/cli/dist/web-ui/assets/{chunk-7PRAP22T-CcX4ntNx.js → chunk-7PRAP22T-DhCB5ggZ.js} +1 -1
- package/cli/dist/web-ui/assets/{chunk-GTNCS2PH-UUmiv_WZ.js → chunk-GTNCS2PH-CgRQhFK-.js} +1 -1
- package/cli/dist/web-ui/assets/{chunk-GWA4HPMP-Cj2HSbZB.js → chunk-GWA4HPMP-DVQFlNrg.js} +1 -1
- package/cli/dist/web-ui/assets/{chunk-MBY4JIJT-BeWwQI_5.js → chunk-MBY4JIJT-ClsX9AV0.js} +1 -1
- package/cli/dist/web-ui/assets/{chunk-NETBCI7D-BXoE0wX2.js → chunk-NETBCI7D-Ok_AlsOs.js} +1 -1
- package/cli/dist/web-ui/assets/{chunk-O7XYJQB3-BkJCF4Hl.js → chunk-O7XYJQB3-BrUoQZlx.js} +1 -1
- package/cli/dist/web-ui/assets/{chunk-UA2S7LBM-BiEZLJdx.js → chunk-UA2S7LBM-CcImKd_4.js} +1 -1
- package/cli/dist/web-ui/assets/{chunk-WEXAMYUT-CVYmgL88.js → chunk-WEXAMYUT-DuMzoDxl.js} +1 -1
- package/cli/dist/web-ui/assets/{chunk-Z7XXMR3K-CNWwStqk.js → chunk-Z7XXMR3K-DNFavXEr.js} +1 -1
- package/cli/dist/web-ui/assets/{chunk-ZIGJFQKS-B2DOCzA_.js → chunk-ZIGJFQKS-C7Y7rwsz.js} +1 -1
- package/cli/dist/web-ui/assets/{classDiagram-v2-NBCMYWYE-Cg87JbAk.js → classDiagram-v2-NBCMYWYE-DtdQ5tsO.js} +1 -1
- package/cli/dist/web-ui/assets/{cssMode-CRv4tEjN.js → cssMode-DqpFSny4.js} +1 -1
- package/cli/dist/web-ui/assets/{cynefin-OW5HDTMX-CzRVph15.js → cynefin-OW5HDTMX-D-khVVHT.js} +1 -1
- package/cli/dist/web-ui/assets/{cynefinDiagram-VND7K2PF-CNBPnBJq.js → cynefinDiagram-VND7K2PF-D4SBf27A.js} +1 -1
- package/cli/dist/web-ui/assets/{dagre-6A5THRUB-Din1Iojv.js → dagre-6A5THRUB-DVdcjlZz.js} +1 -1
- package/cli/dist/web-ui/assets/{diagram-22UHCM2B-DYXr4hLX.js → diagram-22UHCM2B-N9qNPFGx.js} +1 -1
- package/cli/dist/web-ui/assets/{diagram-3UASUU5V-Q_QpApP2.js → diagram-3UASUU5V-BOrM2fJW.js} +1 -1
- package/cli/dist/web-ui/assets/{diagram-ATOU4E4O-B0cBUUAl.js → diagram-ATOU4E4O-BnlFCQjV.js} +1 -1
- package/cli/dist/web-ui/assets/{diagram-CDSNMT55-CqpNUvJt.js → diagram-CDSNMT55-Db7azPHL.js} +1 -1
- package/cli/dist/web-ui/assets/{diagram-MLGK6HIB-4ZDRCl9v.js → diagram-MLGK6HIB-Awr2vnnw.js} +1 -1
- package/cli/dist/web-ui/assets/{diagram-MPIPVDR6-t-N00d6f.js → diagram-MPIPVDR6-mMEzAWkb.js} +1 -1
- package/cli/dist/web-ui/assets/{ebnfDiagram-ZINNZB2B-DPflRvsG.js → ebnfDiagram-ZINNZB2B-DDcxPluf.js} +1 -1
- package/cli/dist/web-ui/assets/{editor-store-Bnu4yw4O.js → editor-store-BVy4DJoP.js} +1 -1
- package/cli/dist/web-ui/assets/{editor.main-BES2SJR1.js → editor.main-BPCdeUv0.js} +2 -2
- package/cli/dist/web-ui/assets/{elk-276RUBZZ-DMGj1qO4.js → elk-276RUBZZ-1ObyfSih.js} +1 -1
- package/cli/dist/web-ui/assets/{erDiagram-OPXOYQCR-DhPB_L2_.js → erDiagram-OPXOYQCR-85QZesG5.js} +1 -1
- package/cli/dist/web-ui/assets/eventmodeling-NTZA5JFV-DzcNhtMG.js +1 -0
- package/cli/dist/web-ui/assets/flowDiagram-KWPJA3E3-C7gZq6zs.js +1 -0
- package/cli/dist/web-ui/assets/{ganttDiagram-FUAMR5RP-BuNFnD8o.js → ganttDiagram-FUAMR5RP-CWKxEm2a.js} +1 -1
- package/cli/dist/web-ui/assets/{gitGraph-4MIJSDKK-DvwoNKUh.js → gitGraph-4MIJSDKK-Va9MqQP7.js} +1 -1
- package/cli/dist/web-ui/assets/{gitGraphDiagram-X574FWY7-CMVV2pN8.js → gitGraphDiagram-X574FWY7-CxDUZnv6.js} +1 -1
- package/cli/dist/web-ui/assets/{htmlMode-RPgBxfFT.js → htmlMode-CcmjLBK1.js} +1 -1
- package/cli/dist/web-ui/assets/index-BUL8iy6o.css +1 -0
- package/cli/dist/web-ui/assets/{index-BI5Z_cST.js → index-CcT-vg3O.js} +88 -88
- package/cli/dist/web-ui/assets/{info-A6RAGUB7-BkTwTvGc.js → info-A6RAGUB7-KlhzL_St.js} +1 -1
- package/cli/dist/web-ui/assets/{infoDiagram-VRGFBTTK-B9qpTfBj.js → infoDiagram-VRGFBTTK-COv85ylX.js} +1 -1
- package/cli/dist/web-ui/assets/{ishikawaDiagram-OU5B5YK6-CQYN-WJG.js → ishikawaDiagram-OU5B5YK6-B6LK0Dp0.js} +1 -1
- package/cli/dist/web-ui/assets/{journeyDiagram-ZHPQQLJL-Bhhb_1ix.js → journeyDiagram-ZHPQQLJL-7_gx-X1b.js} +1 -1
- package/cli/dist/web-ui/assets/{jsonMode-BmcV16dZ.js → jsonMode-DjeQHeec.js} +1 -1
- package/cli/dist/web-ui/assets/{kanban-definition-PNTS6WVX-2sWMVFOP.js → kanban-definition-PNTS6WVX-BuoY2Y9n.js} +1 -1
- package/cli/dist/web-ui/assets/{line-dyZ1bUO3.js → line-U1NpPN9F.js} +1 -1
- package/cli/dist/web-ui/assets/loader-circle-CbX-mRDA.js +1 -0
- package/cli/dist/web-ui/assets/{mermaid-parser.core-DCSwPqyy.js → mermaid-parser.core-CWo09gq-.js} +3 -3
- package/cli/dist/web-ui/assets/{mermaid.core-00vr9ukx.js → mermaid.core-ChqNs8I4.js} +4 -4
- package/cli/dist/web-ui/assets/{mindmap-definition-NLK3R4M7-CxnIh2aq.js → mindmap-definition-NLK3R4M7-CqCx8Oby.js} +1 -1
- package/cli/dist/web-ui/assets/{packet-AYTQ26CC-CMmSJjVl.js → packet-AYTQ26CC-7UVU8Lay.js} +1 -1
- package/cli/dist/web-ui/assets/{pegDiagram-GJSIUBJH-D4cdj7vr.js → pegDiagram-GJSIUBJH-BBJmKZzK.js} +1 -1
- package/cli/dist/web-ui/assets/{pie-WAS4IAKB-BesuGcpz.js → pie-WAS4IAKB-CWoQ0mW0.js} +1 -1
- package/cli/dist/web-ui/assets/{pieDiagram-5QR66LMP-BGskFaPj.js → pieDiagram-5QR66LMP-BbAkRCRb.js} +1 -1
- package/cli/dist/web-ui/assets/power-GWOABL7s.js +1 -0
- package/cli/dist/web-ui/assets/{quadrantDiagram-O4NWA36T-Bkvvkyx-.js → quadrantDiagram-O4NWA36T-Bcgl9szm.js} +1 -1
- package/cli/dist/web-ui/assets/{radar-RG4KPBEZ-Bj7UyIL-.js → radar-RG4KPBEZ-B0sDFvbJ.js} +1 -1
- package/cli/dist/web-ui/assets/{railroad-74A4TZTK-D2D2Em5k.js → railroad-74A4TZTK-C0abYTLu.js} +1 -1
- package/cli/dist/web-ui/assets/railroad-abnf-HS5TGJTU-BhEAzBPy.js +1 -0
- package/cli/dist/web-ui/assets/railroad-ebnf-LZEXJU2U-BQshAF1C.js +1 -0
- package/cli/dist/web-ui/assets/railroad-peg-WCYAUIDC-BhzEUl06.js +1 -0
- package/cli/dist/web-ui/assets/{railroadDiagram-XR7U4H2S-kdQApYhY.js → railroadDiagram-XR7U4H2S-Xdtrah7h.js} +1 -1
- package/cli/dist/web-ui/assets/{requirementDiagram-PLB6GJNP-BqBC3CXU.js → requirementDiagram-PLB6GJNP-Dmm_Xtdj.js} +1 -1
- package/cli/dist/web-ui/assets/{sankeyDiagram-IPEJSGJF-DVzCsx-G.js → sankeyDiagram-IPEJSGJF-BExPBGN1.js} +1 -1
- package/cli/dist/web-ui/assets/{sequenceDiagram-PO4LG4MO-yG_YwbRF.js → sequenceDiagram-PO4LG4MO-DjyWwluL.js} +1 -1
- package/cli/dist/web-ui/assets/{server-CnUlxMCB.js → server-BYrFK9uI.js} +1 -1
- package/cli/dist/web-ui/assets/{sidebar-store-BECS2ZHH.js → sidebar-store-bTJzulZp.js} +1 -1
- package/cli/dist/web-ui/assets/{stateDiagram-v2-GCMORJYK-CTmS4-3L.js → stateDiagram-v2-GCMORJYK-BKgBFDVg.js} +1 -1
- package/cli/dist/web-ui/assets/{swimlanes-2SLR337P-B8qdR1JY.js → swimlanes-2SLR337P-vVovFCNH.js} +1 -1
- package/cli/dist/web-ui/assets/swimlanesDiagram-TC7HE7FX-DRp2HW8M.js +8 -0
- package/cli/dist/web-ui/assets/{terminal-store-C9T3TvZG.js → terminal-store-CCHDZeLq.js} +1 -1
- package/cli/dist/web-ui/assets/{theme-store-e89BUV83.js → theme-store-Cvh0uW_P.js} +1 -1
- package/cli/dist/web-ui/assets/{timeline-definition-EJHVYXUP-DBuW2EtA.js → timeline-definition-EJHVYXUP-DkMh7Iif.js} +1 -1
- package/cli/dist/web-ui/assets/{timer-hXQHNuTF.js → timer-BJmcyIbv.js} +1 -1
- package/cli/dist/web-ui/assets/{treeView-Q6P3EWNA-DZwOY3Vo.js → treeView-Q6P3EWNA-DkhVSMV1.js} +1 -1
- package/cli/dist/web-ui/assets/{treemap-WGGIJYW6-KzsufT0z.js → treemap-WGGIJYW6-CWTt7auX.js} +1 -1
- package/cli/dist/web-ui/assets/{triangle-alert-Bgaqn5eg.js → triangle-alert-CGAm2zgw.js} +1 -1
- package/cli/dist/web-ui/assets/{tsMode-DmXjlKw6.js → tsMode-92q32nO9.js} +1 -1
- package/cli/dist/web-ui/assets/use-i18n-pIrmaYmw.js +10 -0
- package/cli/dist/web-ui/assets/{usecaseDiagram-POWQR4AR-CMUsnek4.js → usecaseDiagram-POWQR4AR-Cmkzn47X.js} +1 -1
- package/cli/dist/web-ui/assets/{vennDiagram-UO4OBE2U-DfvnmEI-.js → vennDiagram-UO4OBE2U-krvLAVN1.js} +1 -1
- package/cli/dist/web-ui/assets/{wardley-WFR3VGLG-gMMXWBBC.js → wardley-WFR3VGLG-D5c13zW9.js} +1 -1
- package/cli/dist/web-ui/assets/{wardleyDiagram-VNRHLVJA-Dg12ciAd.js → wardleyDiagram-VNRHLVJA-CrnhHeux.js} +1 -1
- package/cli/dist/web-ui/assets/{workspace-dock-store-uPe33-_O.js → workspace-dock-store-DnFjd3tC.js} +1 -1
- package/cli/dist/web-ui/assets/{xychartDiagram-PMCCYNJV-DF6GiPla.js → xychartDiagram-PMCCYNJV-CUWbjTrP.js} +1 -1
- package/cli/dist/web-ui/assets/{zap-nSKVK-41.js → zap-BbNNHf5_.js} +1 -1
- package/cli/dist/web-ui/index.html +11 -11
- package/cli/dist/web-ui/sw.js +1 -1
- package/cli/dist-server/3163.codebuddy.js +1 -1
- package/cli/dist-server/3209.codebuddy.js +2 -2
- package/cli/dist-server/codebuddy.js +7 -7
- package/cli/dist-server/types/node/agent-home/agent-home-agent-create.d.ts +5 -0
- package/cli/dist-server/types/vendor/cbc-core/node/session/session-admission-service.d.ts +6 -0
- package/cli/dist-server/types/vendor/cbc-shared/node/model/model-errors.d.ts +5 -2
- package/cli/package.json +1 -1
- package/cli/product.cloudhosted.json +2 -2
- package/cli/product.internal.json +2 -2
- package/cli/product.ioa.json +2 -2
- package/cli/product.json +2 -2
- package/cli/product.selfhosted.json +2 -2
- package/package.json +1 -1
- package/cli/dist/web-ui/assets/HoverHint-D2G73lbr.js +0 -1
- package/cli/dist/web-ui/assets/architecture-7GRP2DOG-DIJIAReN.js +0 -1
- package/cli/dist/web-ui/assets/channel-Oqc_5uJL.js +0 -1
- package/cli/dist/web-ui/assets/eventmodeling-NTZA5JFV-DhJKLgIL.js +0 -1
- package/cli/dist/web-ui/assets/flowDiagram-KWPJA3E3-C8j8-NKs.js +0 -1
- package/cli/dist/web-ui/assets/index-_kDd5loD.css +0 -1
- package/cli/dist/web-ui/assets/loader-circle-OavGeXCF.js +0 -1
- package/cli/dist/web-ui/assets/power-f1Ij2Msg.js +0 -1
- package/cli/dist/web-ui/assets/railroad-abnf-HS5TGJTU-qU-l3gTW.js +0 -1
- package/cli/dist/web-ui/assets/railroad-ebnf-LZEXJU2U-Co7bnXh9.js +0 -1
- package/cli/dist/web-ui/assets/railroad-peg-WCYAUIDC-BE_5lCh8.js +0 -1
- package/cli/dist/web-ui/assets/swimlanesDiagram-TC7HE7FX-B2Lj57-K.js +0 -8
- package/cli/dist/web-ui/assets/use-i18n-BvN1piiI.js +0 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{W as t,t as n}from"./use-i18n-
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{W as t,t as n}from"./use-i18n-pIrmaYmw.js";import{l as r,u as i}from"./markdown-DCKhnxE9.js";import{i as a}from"./terminal-store-CCHDZeLq.js";import{Ct as o}from"./index-CcT-vg3O.js";import{t as s}from"./TerminalPaneView-ALwEzbwH.js";import{t as c}from"./canvas-store-C-T5LSPT.js";var l=e(i(),1),u=r();function d(){let{t:e}=n(),[r,i]=(0,l.useState)(()=>t().get(`paneId`)||``);(0,l.useEffect)(()=>{let e=()=>{i(t().get(`paneId`)||``)};return window.addEventListener(`hashchange`,e),()=>window.removeEventListener(`hashchange`,e)},[]);let d=c(e=>Object.values(e.tiles).find(e=>e.paneId===r)??null),f=a(e=>r?e.panes[r]?.title:null),p=c(e=>e.setTilePty),m=(0,l.useCallback)(e=>{d&&p(d.id,e.sessionId,e.cwd||null)},[d,p]);return(0,l.useEffect)(()=>{if(!r)return;let e=a.getState();e.panes[r]||a.setState({panes:{...e.panes,[r]:{id:r,ptySessionId:d?.ptySessionId??null,ptyStatus:`disconnected`,errorMessage:null}}})},[r,d?.ptySessionId]),r?(0,u.jsxs)(`div`,{className:`flex flex-col h-full w-full bg-bg-primary`,children:[(0,u.jsxs)(`div`,{className:`flex items-center gap-2 px-3 select-none`,style:{height:32,background:`var(--color-canvas-tile-header)`,color:`var(--color-canvas-tile-header-text)`,borderBottom:`1px solid var(--color-border-default)`},children:[(0,u.jsx)(o,{size:14,style:{opacity:.6}}),(0,u.jsx)(`span`,{className:`text-xs truncate`,style:{fontSize:12,fontWeight:500},children:f||e(`canvas.defaultTitle`)})]}),(0,u.jsx)(`div`,{className:`flex-1 min-h-0 relative`,children:(0,u.jsx)(s,{paneId:r,initialCwd:d?.cwd??null,onPtyCreated:m})})]}):(0,u.jsx)(`div`,{className:`flex items-center justify-center h-full w-full bg-bg-primary text-text-secondary text-sm`,children:e(`canvas.standalone.missingPaneId`)})}export{d as CanvasPaneStandaloneView};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{i as t,q as n,t as r}from"./use-i18n-BvN1piiI.js";import{l as i,u as a}from"./markdown-DCKhnxE9.js";import{i as o}from"./terminal-store-C9T3TvZG.js";import{Ct as s,Ht as c,Mt as l,Rt as u,St as d,_t as f,gt as p,ht as m,on as h,rn as g,zt as _}from"./index-BI5Z_cST.js";import{t as v}from"./TerminalPaneView-BFSDyqOG.js";import{n as y,t as b}from"./canvas-store-CTF2gk3l.js";var x=t(`maximize`,[[`path`,{d:`M8 3H5a2 2 0 0 0-2 2v3`,key:`1dcmit`}],[`path`,{d:`M21 8V5a2 2 0 0 0-2-2h-3`,key:`1e4gt3`}],[`path`,{d:`M3 16v3a2 2 0 0 0 2 2h3`,key:`wsl5sc`}],[`path`,{d:`M16 21h3a2 2 0 0 0 2-2v-3`,key:`18trek`}]]),S=e(a(),1),C=class{panX=0;panY=0;zoom=1;getState(){return{panX:this.panX,panY:this.panY,zoom:this.zoom}}setState(e){this.panX=e.panX,this.panY=e.panY,this.zoom=Math.max(y,Math.min(5,e.zoom))}screenToWorld(e,t){return this.zoom===0?{x:0,y:0}:{x:(e-this.panX)/this.zoom,y:(t-this.panY)/this.zoom}}worldToScreen(e,t){return{x:e*this.zoom+this.panX,y:t*this.zoom+this.panY}}applyZoom(e,t,n){let r=this.zoom,i=Math.exp(-e*.6/100),a=Math.max(y,Math.min(5,r*i));if(r===0)return this.zoom=a,this.getState();let o=a/r-1;return this.panX-=(t-this.panX)*o,this.panY-=(n-this.panY)*o,this.zoom=a,this.getState()}applyPan(e,t){return this.panX+=e,this.panY+=t,this.getState()}fitTiles(e,t,n,r=40){if(e.length===0)return this.resetView();let i=1/0,a=1/0,o=-1/0,s=-1/0;for(let t of e)i=Math.min(i,t.x),a=Math.min(a,t.y),o=Math.max(o,t.x+t.width),s=Math.max(s,t.y+t.height);let c=o-i,l=s-a;if(c<=0||l<=0)return this.resetView();let u=t-r*2,d=n-r*2;if(u<=0||d<=0)return this.resetView();let f=Math.max(y,Math.min(5,Math.min(u/c,d/l))),p=(t-c*f)/2-i*f,m=(n-l*f)/2-a*f;return this.panX=p,this.panY=m,this.zoom=f,this.getState()}resetView(){return this.panX=0,this.panY=0,this.zoom=1,this.getState()}},w=i(),T=120;function E(){let{t:e}=r(),t=b(e=>e.viewport),i=b(e=>e.tiles),a=b(e=>e.setViewport),o=b(e=>e.addTile),s=(0,S.useRef)(null),c=Math.round(t.zoom*100),u=typeof window<`u`&&n();if(Object.values(i).some(e=>e.windowState===`maximized`))return null;let d=()=>{let e=s.current?.parentElement;return{w:e?.clientWidth??window.innerWidth,h:e?.clientHeight??window.innerHeight}},f=()=>{let e=new C;e.setState(t);let{w:n,h:r}=d(),i=e.applyZoom(-120,n/2,r/2);a(i)},h=()=>{let e=new C;e.setState(t);let{w:n,h:r}=d(),i=e.applyZoom(T,n/2,r/2);a(i)},_=()=>{let e=new C;e.setState(t);let{w:n,h:r}=d(),o=Object.values(i);o.length===0?a(e.resetView()):a(e.fitTiles(o,n,r,60))},v=()=>{let e=new URLSearchParams(window.location.search),t=new URLSearchParams;t.set(`standalone`,`1`),e.forEach((e,n)=>{t.has(n)||t.set(n,e)});let n=`${window.location.pathname}${window.location.search}#/canvas?${t.toString()}`;window.open(n,`canvas-standalone`,`noopener,noreferrer`)},y=`w-8 h-8 flex items-center justify-center rounded-lg transition-colors`,E={border:`none`,background:`transparent`,color:`var(--color-text-secondary)`,cursor:`pointer`};return(0,w.jsxs)(`div`,{ref:s,className:`canvas-toolbar fixed bottom-4 left-1/2 -translate-x-1/2 flex items-center gap-1 px-2 py-1 rounded-xl`,style:{background:`var(--color-bg-card)`,border:`1px solid var(--color-border-default)`,boxShadow:`0 2px 12px rgba(0,0,0,0.12)`,zIndex:1e4},children:[(0,w.jsx)(`button`,{className:y,style:E,onClick:o,title:e(`canvas.addTerminal`),children:(0,w.jsx)(l,{size:16})}),(0,w.jsx)(`div`,{style:{width:1,height:20,background:`var(--color-border-muted)`}}),(0,w.jsx)(`button`,{className:y,style:E,onClick:h,title:e(`canvas.zoomOut`),children:(0,w.jsx)(m,{size:16})}),(0,w.jsxs)(`span`,{className:`text-xs tabular-nums select-none`,style:{minWidth:40,textAlign:`center`,color:`var(--color-text-secondary)`},children:[c,`%`]}),(0,w.jsx)(`button`,{className:y,style:E,onClick:f,title:e(`canvas.zoomIn`),children:(0,w.jsx)(p,{size:16})}),(0,w.jsx)(`div`,{style:{width:1,height:20,background:`var(--color-border-muted)`}}),(0,w.jsx)(`button`,{className:y,style:E,onClick:_,title:e(`canvas.fitView`),children:(0,w.jsx)(x,{size:16})}),!u&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(`div`,{style:{width:1,height:20,background:`var(--color-border-muted)`}}),(0,w.jsx)(`button`,{className:y,style:E,onClick:v,title:e(`canvas.openStandalone`),children:(0,w.jsx)(g,{size:16})})]})]})}function D(e,t=20,n=10){let r=(e%t+t)%t;return r<=n?e-r:t-r<=n?e+(t-r):e}function O(e){if(!(e instanceof HTMLElement))return!1;let t=e.tagName;return!!(t===`INPUT`||t===`TEXTAREA`||t===`SELECT`||e.isContentEditable)}var k=class{dragState=null;spacePressed=!1;callbacks=null;keydownHandler=null;keyupHandler=null;dragStarted=!1;panSamples=[];attach(e,t=()=>!0){this.callbacks=e,this.keydownHandler=e=>{if(t()&&e.code===`Space`&&!e.repeat){if(O(e.target))return;this.spacePressed=!0,e.preventDefault()}},this.keyupHandler=e=>{e.code===`Space`&&(this.spacePressed=!1)},window.addEventListener(`keydown`,this.keydownHandler),window.addEventListener(`keyup`,this.keyupHandler)}detach(){this.keydownHandler&&=(window.removeEventListener(`keydown`,this.keydownHandler),null),this.keyupHandler&&=(window.removeEventListener(`keyup`,this.keyupHandler),null),this.callbacks=null,this.dragState=null,this.spacePressed=!1}get isSpacePressed(){return this.spacePressed}get isDragging(){return this.dragState!==null&&this.dragStarted}get currentDrag(){return this.dragState}handlePointerDown(e,t,n,r){let i=e.clientX,a=e.clientY;this.dragStarted=!1,this.panSamples=[],this.callbacks?.onInteractionStart?.();let o=this.callbacks?.getViewport();if(this.spacePressed||!t&&!n){let t=e.shiftKey||e.ctrlKey||e.metaKey;!this.spacePressed&&t?this.dragState={type:`select`,startScreenX:i,startScreenY:a}:(this.dragState={type:`pan`,startScreenX:i,startScreenY:a,initialViewport:o?{...o}:void 0},this.panSamples=[{t:performance.now(),x:i,y:a}]);return}if(t&&n){let e=r[t];if(!e)return;this.dragState={type:`resize`,startScreenX:i,startScreenY:a,tileId:t,handle:n,initialTiles:{[t]:{x:e.x,y:e.y,width:e.width,height:e.height}}};return}if(t){let e=r[t];if(!e)return;let n={};n[t]={x:e.x,y:e.y,width:e.width,height:e.height},this.dragState={type:`move`,startScreenX:i,startScreenY:a,tileId:t,initialTiles:n}}}handlePointerMove(e){if(!this.dragState||!this.callbacks)return;let t=e.clientX-this.dragState.startScreenX,n=e.clientY-this.dragState.startScreenY;if(!this.dragStarted){if(Math.abs(t)<3&&Math.abs(n)<3)return;this.dragStarted=!0}let r=this.callbacks.getViewport();switch(this.dragState.type){case`pan`:{let i=this.dragState.initialViewport;if(i){let e=t,a=n;this.callbacks.onViewportPan(i.panX+e-r.panX,i.panY+a-r.panY)}let a=performance.now();this.panSamples.push({t:a,x:e.clientX,y:e.clientY});let o=a-100;for(;this.panSamples.length>2&&this.panSamples[0].t<o;)this.panSamples.shift();break}case`move`:if(this.dragState.tileId&&r.zoom!==0){let e=t/r.zoom,i=n/r.zoom,a=this.dragState.initialTiles?.[this.dragState.tileId];a&&this.callbacks.onTileMove(this.dragState.tileId,D(a.x+e),D(a.y+i))}break;case`resize`:if(this.dragState.tileId&&this.dragState.handle&&r.zoom!==0){let e=this.dragState.initialTiles?.[this.dragState.tileId];if(e){let i=t/r.zoom,a=n/r.zoom,o=this.applyResize(this.dragState.handle,e,i,a);this.callbacks.onTileResize(this.dragState.tileId,o)}}break;case`select`:{let r={x:Math.min(this.dragState.startScreenX,e.clientX),y:Math.min(this.dragState.startScreenY,e.clientY),width:Math.abs(t),height:Math.abs(n)};this.callbacks.onSelectionBox(r);break}}}handlePointerUp(e){if(!this.callbacks){this.dragState=null;return}let t=this.dragState?.type===`pan`,n=this.dragStarted;if(this.dragStarted?this.dragState?.type===`select`&&(this.callbacks.onSelectionBox(null),this.callbacks.onBoxSelectEnd([])):this.dragState?.tileId?this.callbacks.onTileClick(this.dragState.tileId):this.dragState?.type===`select`&&this.callbacks.onCanvasClick(),t&&n&&this.panSamples.length>=2&&this.callbacks.onPanInertiaStart){let e=this.panSamples[this.panSamples.length-1],t=this.panSamples[0],n=e.t-t.t;if(n>0){let r=(e.x-t.x)/n,i=(e.y-t.y)/n;Math.hypot(r,i)>.05&&this.callbacks.onPanInertiaStart(r,i)}}this.dragState=null,this.dragStarted=!1,this.panSamples=[]}getSelectedTileIds(e,t){let n=[],r=e.x,i=e.y,a=e.width,o=e.height;for(let e of Object.values(t))e.x<r+a&&e.x+e.width>r&&e.y<i+o&&e.y+e.height>i&&n.push(e.id);return n}getResizeHandle(e,t,n,r=8){let{x:i,y:a,width:o,height:s}=e,c=i+o/2,l=a+s/2,u=i+o,d=a+s;return this.hitTest(t,n,i,a,r)?`nw`:this.hitTest(t,n,u,a,r)?`ne`:this.hitTest(t,n,i,d,r)?`sw`:this.hitTest(t,n,u,d,r)?`se`:this.hitTest(t,n,c,a,r)?`n`:this.hitTest(t,n,c,d,r)?`s`:this.hitTest(t,n,i,l,r)?`w`:this.hitTest(t,n,u,l,r)?`e`:null}applyResize(e,t,n,r){let{x:i,y:a,width:o,height:s}=t;switch(e){case`n`:a=t.y+r,s=t.height-r;break;case`s`:s=t.height+r;break;case`w`:i=t.x+n,o=t.width-n;break;case`e`:o=t.width+n;break;case`nw`:i=t.x+n,a=t.y+r,o=t.width-n,s=t.height-r;break;case`ne`:a=t.y+r,o=t.width+n,s=t.height-r;break;case`sw`:i=t.x+n,o=t.width-n,s=t.height+r;break;case`se`:o=t.width+n,s=t.height+r}return o<200&&((e===`w`||e===`nw`||e===`sw`)&&(i=t.x+t.width-200),o=200),s<150&&((e===`n`||e===`nw`||e===`ne`)&&(a=t.y+t.height-150),s=150),i=D(i),a=D(a),o=D(o),s=D(s),{x:i,y:a,width:o,height:s}}isInTileHeader(e,t,n,r){let i=32*r;return t>=e.x&&t<=e.x+e.width&&n>=e.y&&n<=e.y+i}hitTest(e,t,n,r,i){return Math.abs(e-n)<=i&&Math.abs(t-r)<=i}},A=[{position:`n`,cursor:`ns-resize`,className:`top-0 left-2 right-2 h-1.5 -translate-y-1/2`},{position:`s`,cursor:`ns-resize`,className:`bottom-0 left-2 right-2 h-1.5 translate-y-1/2`},{position:`e`,cursor:`ew-resize`,className:`right-0 top-2 bottom-2 w-1.5 translate-x-1/2`},{position:`w`,cursor:`ew-resize`,className:`left-0 top-2 bottom-2 w-1.5 -translate-x-1/2`},{position:`nw`,cursor:`nwse-resize`,className:`top-0 left-0 w-3 h-3 -translate-x-1/2 -translate-y-1/2`},{position:`ne`,cursor:`nesw-resize`,className:`top-0 right-0 w-3 h-3 translate-x-1/2 -translate-y-1/2`},{position:`sw`,cursor:`nesw-resize`,className:`bottom-0 left-0 w-3 h-3 -translate-x-1/2 translate-y-1/2`},{position:`se`,cursor:`nwse-resize`,className:`bottom-0 right-0 w-3 h-3 translate-x-1/2 translate-y-1/2`}];function j({tile:e,viewport:t,isSelected:n}){let{t:i}=r(),a=b(e=>e.removeTile),l=b(e=>e.duplicateTile),p=b(e=>e.toggleMaximize),m=b(e=>e.toggleMinimize),y=b(e=>e.setTilePty),x=b(e=>e.selectTile),C=b(e=>e.bringToFront),T=o(t=>t.panes[e.paneId]?.title),{panX:E,panY:D,zoom:O}=t,k=e.x*O+E,j=e.y*O+D,M=e.windowState===`maximized`,N=e.windowState===`minimized`,P=n?`var(--color-canvas-tile-border-selected)`:`var(--color-canvas-tile-border)`,F=(0,S.useCallback)(()=>{p(e.id)},[e.id,p]),I=(0,S.useCallback)(()=>{m(e.id)},[e.id,m]),L=(0,S.useCallback)(()=>{l(e.id)},[e.id,l]),R=(0,S.useCallback)(t=>{t.target.closest(`button`)||(t.stopPropagation(),N?m(e.id):p(e.id))},[e.id,N,p,m]),z=(0,S.useCallback)(t=>{y(e.id,t.sessionId,t.cwd||null)},[e.id,y]),B=(0,S.useRef)(null),[V,H]=(0,S.useState)(!1);(0,S.useEffect)(()=>{let e=e=>{H(e.shiftKey||e.altKey)};return window.addEventListener(`keydown`,e),window.addEventListener(`keyup`,e),()=>{window.removeEventListener(`keydown`,e),window.removeEventListener(`keyup`,e)}},[]);let U=n||V,W=(0,S.useRef)(null),G=(0,S.useCallback)(e=>{W.current={x:e.clientX,y:e.clientY,id:e.pointerId}},[]),K=(0,S.useCallback)(e=>{W.current=null},[]),q=(0,S.useCallback)(e=>{if(e.ctrlKey||e.metaKey||e.shiftKey||!n)return;let t=B.current?.querySelector(`.xterm-viewport`);t&&(t.scrollTop+=e.deltaY,e.stopPropagation())},[n]),J=(0,S.useCallback)(()=>{let t=new URLSearchParams(window.location.search),n=new URLSearchParams;n.set(`paneId`,e.paneId),t.forEach((e,t)=>{n.has(t)||n.set(t,e)});let r=`${window.location.pathname}${window.location.search}#/canvas-pane?${n.toString()}`;window.open(r,`canvas-pane-${e.paneId}`,`noopener,noreferrer`)},[e.paneId]),Y=M?{position:`fixed`,top:0,left:0,right:0,bottom:0,width:`100vw`,height:`100vh`,transform:`none`,pointerEvents:`auto`,zIndex:9999,borderRadius:0,border:`none`,overflow:`hidden`,boxShadow:`none`}:{transform:`translate(${k}px, ${j}px) scale(${O})`,transformOrigin:`top left`,width:e.width,height:e.height,willChange:`transform`,pointerEvents:`auto`,zIndex:e.zIndex,borderRadius:8,border:`1px solid ${P}`,overflow:`hidden`,boxShadow:n?`0 0 0 1px var(--color-canvas-tile-border-selected)`:`0 2px 8px rgba(0,0,0,0.08)`},X=(0,S.useCallback)(t=>{if(t.button!==0)return;x(e.id),C(e.id);let n=B.current?.querySelector(`.xterm-helper-textarea`);if(!n)return;let r=()=>{try{n.focus()}catch{}};r();let i=()=>{window.removeEventListener(`pointerup`,i,!0),r()};window.addEventListener(`pointerup`,i,!0)},[e.id,x,C]);return(0,w.jsxs)(`div`,{className:M?`canvas-tile`:`absolute canvas-tile`,style:Y,onPointerDownCapture:X,children:[(0,w.jsxs)(`div`,{className:`canvas-tile-header flex items-center gap-1.5 px-2 select-none`,style:{height:32,background:`var(--color-canvas-tile-header)`,color:`var(--color-canvas-tile-header-text)`,cursor:`grab`,borderBottom:N?`none`:`1px solid var(--color-canvas-tile-border)`},onDoubleClick:R,children:[(0,w.jsx)(s,{size:13,style:{opacity:.5,flexShrink:0}}),(0,w.jsx)(`span`,{className:`flex-1 text-xs truncate`,style:{fontSize:12,fontWeight:500},children:T||i(`canvas.defaultTitle`)}),(0,w.jsx)(`button`,{onClick:e=>{e.stopPropagation(),L()},className:`w-5 h-5 flex items-center justify-center rounded hover:bg-bg-hover transition-colors`,style:{cursor:`pointer`,border:`none`,background:`transparent`,color:`inherit`},title:i(`canvas.tileMenu.duplicate`),children:(0,w.jsx)(h,{size:12})}),(0,w.jsx)(`button`,{onClick:e=>{e.stopPropagation(),J()},className:`w-5 h-5 flex items-center justify-center rounded hover:bg-bg-hover transition-colors`,style:{cursor:`pointer`,border:`none`,background:`transparent`,color:`inherit`},title:i(`canvas.tileMenu.openStandalone`),children:(0,w.jsx)(g,{size:12})}),(0,w.jsx)(`button`,{onClick:e=>{e.stopPropagation(),I()},className:`w-5 h-5 flex items-center justify-center rounded hover:bg-bg-hover transition-colors`,style:{cursor:`pointer`,border:`none`,background:`transparent`,color:`inherit`},title:i(N?`canvas.tileMenu.restore`:`canvas.tileMenu.minimize`),children:N?(0,w.jsx)(d,{size:12}):(0,w.jsx)(u,{size:12})}),(0,w.jsx)(`button`,{onClick:e=>{e.stopPropagation(),F()},className:`w-5 h-5 flex items-center justify-center rounded hover:bg-bg-hover transition-colors`,style:{cursor:`pointer`,border:`none`,background:`transparent`,color:`inherit`},title:i(M?`canvas.tileMenu.restore`:`canvas.tileMenu.maximize`),children:M?(0,w.jsx)(_,{size:12}):(0,w.jsx)(c,{size:12})}),(0,w.jsx)(`button`,{onClick:t=>{t.stopPropagation(),a(e.id)},className:`w-5 h-5 flex items-center justify-center rounded hover:bg-bg-hover transition-colors`,style:{cursor:`pointer`,border:`none`,background:`transparent`,color:`inherit`},title:i(`canvas.tileMenu.close`),children:(0,w.jsx)(f,{size:12})})]}),!N&&(0,w.jsxs)(`div`,{ref:B,className:`flex-1 relative`,style:{height:`calc(100% - 32px)`,overflow:`hidden`},children:[(0,w.jsx)(v,{paneId:e.paneId,initialCwd:e.cwd??null,onPtyCreated:z}),(0,w.jsx)(`div`,{className:`absolute inset-0`,"data-canvas-tile-focused":n?`true`:`false`,style:{zIndex:5,pointerEvents:U?`none`:`auto`,background:`transparent`},onPointerDown:G,onPointerUp:K,onWheel:q})]}),!N&&A.map(e=>(0,w.jsx)(`div`,{className:`absolute ${e.className}`,style:{cursor:e.cursor,zIndex:10,opacity:0},"data-resize-handle":e.position},e.position))]})}function M({rect:e}){return(0,w.jsx)(`div`,{className:`absolute pointer-events-none`,style:{left:e.x,top:e.y,width:e.width,height:e.height,background:`var(--color-canvas-selection-fill)`,border:`1px solid var(--color-canvas-selection-stroke)`,borderRadius:2,zIndex:999}})}function N({active:e=!0}){let t=(0,S.useRef)(null),n=(0,S.useRef)(new C),r=(0,S.useRef)(new k),i=b(e=>e.tiles),a=b(e=>e.viewport),o=b(e=>e.selectedTileIds),s=b(e=>e.setViewport),c=b(e=>e.updateTile),l=b(e=>e.selectTile),u=b(e=>e.selectTiles),d=b(e=>e.deselectAll),f=b(e=>e.bringToFront),[p,m]=(0,S.useState)(null),[h,g]=(0,S.useState)(!1),[_,v]=(0,S.useState)(!1),[y,x]=(0,S.useState)(null);(0,S.useEffect)(()=>{n.current.setState(a)},[a]);let T=(0,S.useMemo)(()=>Object.values(i).sort((e,t)=>e.zIndex-t.zIndex),[i]),E=(0,S.useMemo)(()=>new Set(o),[o]),D=(0,S.useRef)(a);D.current=a;let O=(0,S.useRef)(e);O.current=e;let A=(0,S.useRef)({setViewport:s,updateTile:c,selectTile:l,deselectAll:d,bringToFront:f,selectTiles:u});A.current={setViewport:s,updateTile:c,selectTile:l,deselectAll:d,bringToFront:f,selectTiles:u};let N=3.5,P=(0,S.useRef)(null),F=(0,S.useRef)({vx:0,vy:0,last:0}),I=(0,S.useCallback)(()=>{P.current!==null&&(cancelAnimationFrame(P.current),P.current=null)},[]),L=(0,S.useCallback)((e,t)=>{I();let r=Math.hypot(e,t);if(r>N){let n=N/r;e*=n,t*=n}F.current={vx:e,vy:t,last:performance.now()};let i=()=>{let e=performance.now(),t=F.current,r=Math.min(32,e-t.last);t.last=e;let a=n.current.applyPan(t.vx*r,t.vy*r);A.current.setViewport(a);let o=.92**(r/16.67);if(t.vx*=o,t.vy*=o,Math.hypot(t.vx,t.vy)<.01){P.current=null;return}P.current=requestAnimationFrame(i)};P.current=requestAnimationFrame(i)},[I]);(0,S.useEffect)(()=>()=>I(),[I]),(0,S.useEffect)(()=>{let e=r.current;return e.attach({onViewportPan:(e,t)=>{let r=n.current.applyPan(e,t);A.current.setViewport(r)},onTileMove:(e,t,n)=>{A.current.updateTile(e,{x:t,y:n})},onTileResize:(e,t)=>{A.current.updateTile(e,t)},onTileSelect:e=>{A.current.selectTile(e),A.current.bringToFront(e)},onSelectionBox:e=>{if(e){let n=t.current?.getBoundingClientRect();m(n?{x:e.x-n.left,y:e.y-n.top,width:e.width,height:e.height}:e)}else m(null)},onBoxSelectEnd:()=>{},onTileClick:e=>{A.current.selectTile(e),A.current.bringToFront(e)},onCanvasClick:()=>{A.current.deselectAll()},onInteractionStart:()=>{I()},onPanInertiaStart:(e,t)=>{L(e,t)},getViewport:()=>D.current},()=>O.current),()=>e.detach()},[]),(0,S.useEffect)(()=>{let e=t.current;if(!e)return;let r=n.current,i=t=>{let n=t.target,i=!!(n&&n.closest(`.xterm, .xterm-screen, .xterm-viewport, input, textarea, [contenteditable="true"], [contenteditable=""]`)),a=!!(n&&n.closest(`[data-canvas-tile-focused="true"]`)),o=t.ctrlKey||t.metaKey;if((i||a)&&!o&&!t.shiftKey)return;t.preventDefault();let c=e.getBoundingClientRect(),l=t.clientX-c.left,u=t.clientY-c.top;if(o){let e=r.applyZoom(t.deltaY,l,u);s(e);return}let d=-t.deltaX,f=-t.deltaY;t.shiftKey&&d===0&&(d=-t.deltaY,f=0);let p=t.deltaMode===1?16:t.deltaMode===2?100:1,m=r.applyPan(d*p,f*p);s(m)},a=t=>{if(!O.current||!(t.ctrlKey||t.metaKey))return;let n=t.target;if(n){let e=n.tagName;if(e===`INPUT`||e===`TEXTAREA`||e===`SELECT`||n.isContentEditable)return}if(t.key===`+`||t.key===`=`||t.key===`-`||t.key===`_`||t.key===`0`){t.preventDefault();let n=e.clientWidth,i=e.clientHeight;if(t.key===`0`)s(r.resetView());else if(t.key===`-`||t.key===`_`){let e=r.applyZoom(120,n/2,i/2);s(e)}else{let e=r.applyZoom(-120,n/2,i/2);s(e)}}},o=e=>{e.preventDefault()};return e.addEventListener(`wheel`,i,{passive:!1}),window.addEventListener(`keydown`,a),e.addEventListener(`gesturestart`,o),e.addEventListener(`gesturechange`,o),e.addEventListener(`gestureend`,o),()=>{e.removeEventListener(`wheel`,i),window.removeEventListener(`keydown`,a),e.removeEventListener(`gesturestart`,o),e.removeEventListener(`gesturechange`,o),e.removeEventListener(`gestureend`,o)}},[s]);let R=(0,S.useCallback)(e=>{let n=t.current;if(!n)return;let o=e.button===1||e.button===2,s=r.current.isSpacePressed,c=n.getBoundingClientRect(),u=e.clientX-c.left,p=e.clientY-c.top,m=r.current,h=null,_=null,v=null;if(!o&&!s){let e=[...Object.values(i)].sort((e,t)=>t.zIndex-e.zIndex);for(let t of e){let e=t.x*a.zoom+a.panX,n=t.y*a.zoom+a.panY,r=t.width*a.zoom,i=t.height*a.zoom,o={x:e,y:n,width:r,height:i},s=m.getResizeHandle(o,u,p,8);if(s){h=t.id,_=s,v=t.id;break}if(m.isInTileHeader(o,u,p,a.zoom)){h=t.id,v=t.id;break}if(u>=e&&u<=e+r&&p>=n&&p<=n+i){v=t.id;break}}}let y=e.target;if(!o&&!s&&_===null&&v&&E.has(v)&&y&&y.closest(`.xterm, .xterm-screen, .xterm-viewport, .xterm-rows`))return;let b=e.target;if(b&&!(o||s||_!==null)&&(b.closest(`button`)||b.closest(`input, textarea:not(.xterm-helper-textarea), select`)||b.closest(`[contenteditable="true"], [contenteditable=""]`)))return;if(o&&e.preventDefault(),!v&&!_){let e=document.activeElement;e&&typeof e.blur==`function`&&e.blur(),d()}let x=e.nativeEvent;m.handlePointerDown(x,h,_,i),v?(l(v),f(v)):(e.shiftKey||e.ctrlKey||e.metaKey)&&d(),n.setPointerCapture(e.pointerId),g(m.isSpacePressed)},[i,a,l,d,f,E]),z=(0,S.useCallback)(e=>{let t=r.current;t.handlePointerMove(e.nativeEvent),g(t.isSpacePressed),v(t.isDragging),x(t.currentDrag?.type??null)},[]),B=(0,S.useCallback)(e=>{let n=r.current;if(n.currentDrag?.type===`select`&&n.isDragging&&p){let e=a.zoom||1,t={x:(p.x-a.panX)/e,y:(p.y-a.panY)/e,width:p.width/e,height:p.height/e},r=n.getSelectedTileIds(t,i);u(r)}n.handlePointerUp(e.nativeEvent);let o=t.current;o&&o.releasePointerCapture(e.pointerId),v(!1),x(null),m(null)},[a,i,u,p]);return(0,w.jsxs)(`div`,{ref:t,className:`absolute inset-0`,style:{cursor:_&&y===`pan`?`grabbing`:h?`grab`:`default`,touchAction:`none`,overscrollBehavior:`contain`},onPointerDown:R,onPointerMove:z,onPointerUp:B,onContextMenu:e=>e.preventDefault(),children:[(0,w.jsx)(`div`,{className:`absolute inset-0`,style:{pointerEvents:`none`},children:T.map(e=>(0,w.jsx)(j,{tile:e,viewport:a,isSelected:E.has(e.id)},e.id))}),p&&(0,w.jsx)(M,{rect:p})]})}function P({active:e=!0}){let t=b(e=>e.tiles),{t:n}=r(),i=Object.keys(t).length>0;return(0,w.jsxs)(`div`,{className:`relative w-full h-full overflow-hidden bg-bg-primary`,children:[(0,w.jsx)(N,{active:e}),(0,w.jsx)(E,{}),!i&&(0,w.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center pointer-events-none`,children:(0,w.jsx)(`p`,{className:`text-text-tertiary text-sm`,children:n(`canvas.empty`)})})]})}export{P as CanvasView};
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{i as t,q as n,t as r}from"./use-i18n-pIrmaYmw.js";import{l as i,u as a}from"./markdown-DCKhnxE9.js";import{i as o}from"./terminal-store-CCHDZeLq.js";import{Ct as s,Ht as c,Mt as l,Rt as u,St as d,_t as f,gt as p,ht as m,on as h,rn as g,zt as _}from"./index-CcT-vg3O.js";import{t as v}from"./TerminalPaneView-ALwEzbwH.js";import{n as y,t as b}from"./canvas-store-C-T5LSPT.js";var x=t(`maximize`,[[`path`,{d:`M8 3H5a2 2 0 0 0-2 2v3`,key:`1dcmit`}],[`path`,{d:`M21 8V5a2 2 0 0 0-2-2h-3`,key:`1e4gt3`}],[`path`,{d:`M3 16v3a2 2 0 0 0 2 2h3`,key:`wsl5sc`}],[`path`,{d:`M16 21h3a2 2 0 0 0 2-2v-3`,key:`18trek`}]]),S=e(a(),1),C=class{panX=0;panY=0;zoom=1;getState(){return{panX:this.panX,panY:this.panY,zoom:this.zoom}}setState(e){this.panX=e.panX,this.panY=e.panY,this.zoom=Math.max(y,Math.min(5,e.zoom))}screenToWorld(e,t){return this.zoom===0?{x:0,y:0}:{x:(e-this.panX)/this.zoom,y:(t-this.panY)/this.zoom}}worldToScreen(e,t){return{x:e*this.zoom+this.panX,y:t*this.zoom+this.panY}}applyZoom(e,t,n){let r=this.zoom,i=Math.exp(-e*.6/100),a=Math.max(y,Math.min(5,r*i));if(r===0)return this.zoom=a,this.getState();let o=a/r-1;return this.panX-=(t-this.panX)*o,this.panY-=(n-this.panY)*o,this.zoom=a,this.getState()}applyPan(e,t){return this.panX+=e,this.panY+=t,this.getState()}fitTiles(e,t,n,r=40){if(e.length===0)return this.resetView();let i=1/0,a=1/0,o=-1/0,s=-1/0;for(let t of e)i=Math.min(i,t.x),a=Math.min(a,t.y),o=Math.max(o,t.x+t.width),s=Math.max(s,t.y+t.height);let c=o-i,l=s-a;if(c<=0||l<=0)return this.resetView();let u=t-r*2,d=n-r*2;if(u<=0||d<=0)return this.resetView();let f=Math.max(y,Math.min(5,Math.min(u/c,d/l))),p=(t-c*f)/2-i*f,m=(n-l*f)/2-a*f;return this.panX=p,this.panY=m,this.zoom=f,this.getState()}resetView(){return this.panX=0,this.panY=0,this.zoom=1,this.getState()}},w=i(),T=120;function E(){let{t:e}=r(),t=b(e=>e.viewport),i=b(e=>e.tiles),a=b(e=>e.setViewport),o=b(e=>e.addTile),s=(0,S.useRef)(null),c=Math.round(t.zoom*100),u=typeof window<`u`&&n();if(Object.values(i).some(e=>e.windowState===`maximized`))return null;let d=()=>{let e=s.current?.parentElement;return{w:e?.clientWidth??window.innerWidth,h:e?.clientHeight??window.innerHeight}},f=()=>{let e=new C;e.setState(t);let{w:n,h:r}=d(),i=e.applyZoom(-120,n/2,r/2);a(i)},h=()=>{let e=new C;e.setState(t);let{w:n,h:r}=d(),i=e.applyZoom(T,n/2,r/2);a(i)},_=()=>{let e=new C;e.setState(t);let{w:n,h:r}=d(),o=Object.values(i);o.length===0?a(e.resetView()):a(e.fitTiles(o,n,r,60))},v=()=>{let e=new URLSearchParams(window.location.search),t=new URLSearchParams;t.set(`standalone`,`1`),e.forEach((e,n)=>{t.has(n)||t.set(n,e)});let n=`${window.location.pathname}${window.location.search}#/canvas?${t.toString()}`;window.open(n,`canvas-standalone`,`noopener,noreferrer`)},y=`w-8 h-8 flex items-center justify-center rounded-lg transition-colors`,E={border:`none`,background:`transparent`,color:`var(--color-text-secondary)`,cursor:`pointer`};return(0,w.jsxs)(`div`,{ref:s,className:`canvas-toolbar fixed bottom-4 left-1/2 -translate-x-1/2 flex items-center gap-1 px-2 py-1 rounded-xl`,style:{background:`var(--color-bg-card)`,border:`1px solid var(--color-border-default)`,boxShadow:`0 2px 12px rgba(0,0,0,0.12)`,zIndex:1e4},children:[(0,w.jsx)(`button`,{className:y,style:E,onClick:o,title:e(`canvas.addTerminal`),children:(0,w.jsx)(l,{size:16})}),(0,w.jsx)(`div`,{style:{width:1,height:20,background:`var(--color-border-muted)`}}),(0,w.jsx)(`button`,{className:y,style:E,onClick:h,title:e(`canvas.zoomOut`),children:(0,w.jsx)(m,{size:16})}),(0,w.jsxs)(`span`,{className:`text-xs tabular-nums select-none`,style:{minWidth:40,textAlign:`center`,color:`var(--color-text-secondary)`},children:[c,`%`]}),(0,w.jsx)(`button`,{className:y,style:E,onClick:f,title:e(`canvas.zoomIn`),children:(0,w.jsx)(p,{size:16})}),(0,w.jsx)(`div`,{style:{width:1,height:20,background:`var(--color-border-muted)`}}),(0,w.jsx)(`button`,{className:y,style:E,onClick:_,title:e(`canvas.fitView`),children:(0,w.jsx)(x,{size:16})}),!u&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(`div`,{style:{width:1,height:20,background:`var(--color-border-muted)`}}),(0,w.jsx)(`button`,{className:y,style:E,onClick:v,title:e(`canvas.openStandalone`),children:(0,w.jsx)(g,{size:16})})]})]})}function D(e,t=20,n=10){let r=(e%t+t)%t;return r<=n?e-r:t-r<=n?e+(t-r):e}function O(e){if(!(e instanceof HTMLElement))return!1;let t=e.tagName;return!!(t===`INPUT`||t===`TEXTAREA`||t===`SELECT`||e.isContentEditable)}var k=class{dragState=null;spacePressed=!1;callbacks=null;keydownHandler=null;keyupHandler=null;dragStarted=!1;panSamples=[];attach(e,t=()=>!0){this.callbacks=e,this.keydownHandler=e=>{if(t()&&e.code===`Space`&&!e.repeat){if(O(e.target))return;this.spacePressed=!0,e.preventDefault()}},this.keyupHandler=e=>{e.code===`Space`&&(this.spacePressed=!1)},window.addEventListener(`keydown`,this.keydownHandler),window.addEventListener(`keyup`,this.keyupHandler)}detach(){this.keydownHandler&&=(window.removeEventListener(`keydown`,this.keydownHandler),null),this.keyupHandler&&=(window.removeEventListener(`keyup`,this.keyupHandler),null),this.callbacks=null,this.dragState=null,this.spacePressed=!1}get isSpacePressed(){return this.spacePressed}get isDragging(){return this.dragState!==null&&this.dragStarted}get currentDrag(){return this.dragState}handlePointerDown(e,t,n,r){let i=e.clientX,a=e.clientY;this.dragStarted=!1,this.panSamples=[],this.callbacks?.onInteractionStart?.();let o=this.callbacks?.getViewport();if(this.spacePressed||!t&&!n){let t=e.shiftKey||e.ctrlKey||e.metaKey;!this.spacePressed&&t?this.dragState={type:`select`,startScreenX:i,startScreenY:a}:(this.dragState={type:`pan`,startScreenX:i,startScreenY:a,initialViewport:o?{...o}:void 0},this.panSamples=[{t:performance.now(),x:i,y:a}]);return}if(t&&n){let e=r[t];if(!e)return;this.dragState={type:`resize`,startScreenX:i,startScreenY:a,tileId:t,handle:n,initialTiles:{[t]:{x:e.x,y:e.y,width:e.width,height:e.height}}};return}if(t){let e=r[t];if(!e)return;let n={};n[t]={x:e.x,y:e.y,width:e.width,height:e.height},this.dragState={type:`move`,startScreenX:i,startScreenY:a,tileId:t,initialTiles:n}}}handlePointerMove(e){if(!this.dragState||!this.callbacks)return;let t=e.clientX-this.dragState.startScreenX,n=e.clientY-this.dragState.startScreenY;if(!this.dragStarted){if(Math.abs(t)<3&&Math.abs(n)<3)return;this.dragStarted=!0}let r=this.callbacks.getViewport();switch(this.dragState.type){case`pan`:{let i=this.dragState.initialViewport;if(i){let e=t,a=n;this.callbacks.onViewportPan(i.panX+e-r.panX,i.panY+a-r.panY)}let a=performance.now();this.panSamples.push({t:a,x:e.clientX,y:e.clientY});let o=a-100;for(;this.panSamples.length>2&&this.panSamples[0].t<o;)this.panSamples.shift();break}case`move`:if(this.dragState.tileId&&r.zoom!==0){let e=t/r.zoom,i=n/r.zoom,a=this.dragState.initialTiles?.[this.dragState.tileId];a&&this.callbacks.onTileMove(this.dragState.tileId,D(a.x+e),D(a.y+i))}break;case`resize`:if(this.dragState.tileId&&this.dragState.handle&&r.zoom!==0){let e=this.dragState.initialTiles?.[this.dragState.tileId];if(e){let i=t/r.zoom,a=n/r.zoom,o=this.applyResize(this.dragState.handle,e,i,a);this.callbacks.onTileResize(this.dragState.tileId,o)}}break;case`select`:{let r={x:Math.min(this.dragState.startScreenX,e.clientX),y:Math.min(this.dragState.startScreenY,e.clientY),width:Math.abs(t),height:Math.abs(n)};this.callbacks.onSelectionBox(r);break}}}handlePointerUp(e){if(!this.callbacks){this.dragState=null;return}let t=this.dragState?.type===`pan`,n=this.dragStarted;if(this.dragStarted?this.dragState?.type===`select`&&(this.callbacks.onSelectionBox(null),this.callbacks.onBoxSelectEnd([])):this.dragState?.tileId?this.callbacks.onTileClick(this.dragState.tileId):this.dragState?.type===`select`&&this.callbacks.onCanvasClick(),t&&n&&this.panSamples.length>=2&&this.callbacks.onPanInertiaStart){let e=this.panSamples[this.panSamples.length-1],t=this.panSamples[0],n=e.t-t.t;if(n>0){let r=(e.x-t.x)/n,i=(e.y-t.y)/n;Math.hypot(r,i)>.05&&this.callbacks.onPanInertiaStart(r,i)}}this.dragState=null,this.dragStarted=!1,this.panSamples=[]}getSelectedTileIds(e,t){let n=[],r=e.x,i=e.y,a=e.width,o=e.height;for(let e of Object.values(t))e.x<r+a&&e.x+e.width>r&&e.y<i+o&&e.y+e.height>i&&n.push(e.id);return n}getResizeHandle(e,t,n,r=8){let{x:i,y:a,width:o,height:s}=e,c=i+o/2,l=a+s/2,u=i+o,d=a+s;return this.hitTest(t,n,i,a,r)?`nw`:this.hitTest(t,n,u,a,r)?`ne`:this.hitTest(t,n,i,d,r)?`sw`:this.hitTest(t,n,u,d,r)?`se`:this.hitTest(t,n,c,a,r)?`n`:this.hitTest(t,n,c,d,r)?`s`:this.hitTest(t,n,i,l,r)?`w`:this.hitTest(t,n,u,l,r)?`e`:null}applyResize(e,t,n,r){let{x:i,y:a,width:o,height:s}=t;switch(e){case`n`:a=t.y+r,s=t.height-r;break;case`s`:s=t.height+r;break;case`w`:i=t.x+n,o=t.width-n;break;case`e`:o=t.width+n;break;case`nw`:i=t.x+n,a=t.y+r,o=t.width-n,s=t.height-r;break;case`ne`:a=t.y+r,o=t.width+n,s=t.height-r;break;case`sw`:i=t.x+n,o=t.width-n,s=t.height+r;break;case`se`:o=t.width+n,s=t.height+r}return o<200&&((e===`w`||e===`nw`||e===`sw`)&&(i=t.x+t.width-200),o=200),s<150&&((e===`n`||e===`nw`||e===`ne`)&&(a=t.y+t.height-150),s=150),i=D(i),a=D(a),o=D(o),s=D(s),{x:i,y:a,width:o,height:s}}isInTileHeader(e,t,n,r){let i=32*r;return t>=e.x&&t<=e.x+e.width&&n>=e.y&&n<=e.y+i}hitTest(e,t,n,r,i){return Math.abs(e-n)<=i&&Math.abs(t-r)<=i}},A=[{position:`n`,cursor:`ns-resize`,className:`top-0 left-2 right-2 h-1.5 -translate-y-1/2`},{position:`s`,cursor:`ns-resize`,className:`bottom-0 left-2 right-2 h-1.5 translate-y-1/2`},{position:`e`,cursor:`ew-resize`,className:`right-0 top-2 bottom-2 w-1.5 translate-x-1/2`},{position:`w`,cursor:`ew-resize`,className:`left-0 top-2 bottom-2 w-1.5 -translate-x-1/2`},{position:`nw`,cursor:`nwse-resize`,className:`top-0 left-0 w-3 h-3 -translate-x-1/2 -translate-y-1/2`},{position:`ne`,cursor:`nesw-resize`,className:`top-0 right-0 w-3 h-3 translate-x-1/2 -translate-y-1/2`},{position:`sw`,cursor:`nesw-resize`,className:`bottom-0 left-0 w-3 h-3 -translate-x-1/2 translate-y-1/2`},{position:`se`,cursor:`nwse-resize`,className:`bottom-0 right-0 w-3 h-3 translate-x-1/2 translate-y-1/2`}];function j({tile:e,viewport:t,isSelected:n}){let{t:i}=r(),a=b(e=>e.removeTile),l=b(e=>e.duplicateTile),p=b(e=>e.toggleMaximize),m=b(e=>e.toggleMinimize),y=b(e=>e.setTilePty),x=b(e=>e.selectTile),C=b(e=>e.bringToFront),T=o(t=>t.panes[e.paneId]?.title),{panX:E,panY:D,zoom:O}=t,k=e.x*O+E,j=e.y*O+D,M=e.windowState===`maximized`,N=e.windowState===`minimized`,P=n?`var(--color-canvas-tile-border-selected)`:`var(--color-canvas-tile-border)`,F=(0,S.useCallback)(()=>{p(e.id)},[e.id,p]),I=(0,S.useCallback)(()=>{m(e.id)},[e.id,m]),L=(0,S.useCallback)(()=>{l(e.id)},[e.id,l]),R=(0,S.useCallback)(t=>{t.target.closest(`button`)||(t.stopPropagation(),N?m(e.id):p(e.id))},[e.id,N,p,m]),z=(0,S.useCallback)(t=>{y(e.id,t.sessionId,t.cwd||null)},[e.id,y]),B=(0,S.useRef)(null),[V,H]=(0,S.useState)(!1);(0,S.useEffect)(()=>{let e=e=>{H(e.shiftKey||e.altKey)};return window.addEventListener(`keydown`,e),window.addEventListener(`keyup`,e),()=>{window.removeEventListener(`keydown`,e),window.removeEventListener(`keyup`,e)}},[]);let U=n||V,W=(0,S.useRef)(null),G=(0,S.useCallback)(e=>{W.current={x:e.clientX,y:e.clientY,id:e.pointerId}},[]),K=(0,S.useCallback)(e=>{W.current=null},[]),q=(0,S.useCallback)(e=>{if(e.ctrlKey||e.metaKey||e.shiftKey||!n)return;let t=B.current?.querySelector(`.xterm-viewport`);t&&(t.scrollTop+=e.deltaY,e.stopPropagation())},[n]),J=(0,S.useCallback)(()=>{let t=new URLSearchParams(window.location.search),n=new URLSearchParams;n.set(`paneId`,e.paneId),t.forEach((e,t)=>{n.has(t)||n.set(t,e)});let r=`${window.location.pathname}${window.location.search}#/canvas-pane?${n.toString()}`;window.open(r,`canvas-pane-${e.paneId}`,`noopener,noreferrer`)},[e.paneId]),Y=M?{position:`fixed`,top:0,left:0,right:0,bottom:0,width:`100vw`,height:`100vh`,transform:`none`,pointerEvents:`auto`,zIndex:9999,borderRadius:0,border:`none`,overflow:`hidden`,boxShadow:`none`}:{transform:`translate(${k}px, ${j}px) scale(${O})`,transformOrigin:`top left`,width:e.width,height:e.height,willChange:`transform`,pointerEvents:`auto`,zIndex:e.zIndex,borderRadius:8,border:`1px solid ${P}`,overflow:`hidden`,boxShadow:n?`0 0 0 1px var(--color-canvas-tile-border-selected)`:`0 2px 8px rgba(0,0,0,0.08)`},X=(0,S.useCallback)(t=>{if(t.button!==0)return;x(e.id),C(e.id);let n=B.current?.querySelector(`.xterm-helper-textarea`);if(!n)return;let r=()=>{try{n.focus()}catch{}};r();let i=()=>{window.removeEventListener(`pointerup`,i,!0),r()};window.addEventListener(`pointerup`,i,!0)},[e.id,x,C]);return(0,w.jsxs)(`div`,{className:M?`canvas-tile`:`absolute canvas-tile`,style:Y,onPointerDownCapture:X,children:[(0,w.jsxs)(`div`,{className:`canvas-tile-header flex items-center gap-1.5 px-2 select-none`,style:{height:32,background:`var(--color-canvas-tile-header)`,color:`var(--color-canvas-tile-header-text)`,cursor:`grab`,borderBottom:N?`none`:`1px solid var(--color-canvas-tile-border)`},onDoubleClick:R,children:[(0,w.jsx)(s,{size:13,style:{opacity:.5,flexShrink:0}}),(0,w.jsx)(`span`,{className:`flex-1 text-xs truncate`,style:{fontSize:12,fontWeight:500},children:T||i(`canvas.defaultTitle`)}),(0,w.jsx)(`button`,{onClick:e=>{e.stopPropagation(),L()},className:`w-5 h-5 flex items-center justify-center rounded hover:bg-bg-hover transition-colors`,style:{cursor:`pointer`,border:`none`,background:`transparent`,color:`inherit`},title:i(`canvas.tileMenu.duplicate`),children:(0,w.jsx)(h,{size:12})}),(0,w.jsx)(`button`,{onClick:e=>{e.stopPropagation(),J()},className:`w-5 h-5 flex items-center justify-center rounded hover:bg-bg-hover transition-colors`,style:{cursor:`pointer`,border:`none`,background:`transparent`,color:`inherit`},title:i(`canvas.tileMenu.openStandalone`),children:(0,w.jsx)(g,{size:12})}),(0,w.jsx)(`button`,{onClick:e=>{e.stopPropagation(),I()},className:`w-5 h-5 flex items-center justify-center rounded hover:bg-bg-hover transition-colors`,style:{cursor:`pointer`,border:`none`,background:`transparent`,color:`inherit`},title:i(N?`canvas.tileMenu.restore`:`canvas.tileMenu.minimize`),children:N?(0,w.jsx)(d,{size:12}):(0,w.jsx)(u,{size:12})}),(0,w.jsx)(`button`,{onClick:e=>{e.stopPropagation(),F()},className:`w-5 h-5 flex items-center justify-center rounded hover:bg-bg-hover transition-colors`,style:{cursor:`pointer`,border:`none`,background:`transparent`,color:`inherit`},title:i(M?`canvas.tileMenu.restore`:`canvas.tileMenu.maximize`),children:M?(0,w.jsx)(_,{size:12}):(0,w.jsx)(c,{size:12})}),(0,w.jsx)(`button`,{onClick:t=>{t.stopPropagation(),a(e.id)},className:`w-5 h-5 flex items-center justify-center rounded hover:bg-bg-hover transition-colors`,style:{cursor:`pointer`,border:`none`,background:`transparent`,color:`inherit`},title:i(`canvas.tileMenu.close`),children:(0,w.jsx)(f,{size:12})})]}),!N&&(0,w.jsxs)(`div`,{ref:B,className:`flex-1 relative`,style:{height:`calc(100% - 32px)`,overflow:`hidden`},children:[(0,w.jsx)(v,{paneId:e.paneId,initialCwd:e.cwd??null,onPtyCreated:z}),(0,w.jsx)(`div`,{className:`absolute inset-0`,"data-canvas-tile-focused":n?`true`:`false`,style:{zIndex:5,pointerEvents:U?`none`:`auto`,background:`transparent`},onPointerDown:G,onPointerUp:K,onWheel:q})]}),!N&&A.map(e=>(0,w.jsx)(`div`,{className:`absolute ${e.className}`,style:{cursor:e.cursor,zIndex:10,opacity:0},"data-resize-handle":e.position},e.position))]})}function M({rect:e}){return(0,w.jsx)(`div`,{className:`absolute pointer-events-none`,style:{left:e.x,top:e.y,width:e.width,height:e.height,background:`var(--color-canvas-selection-fill)`,border:`1px solid var(--color-canvas-selection-stroke)`,borderRadius:2,zIndex:999}})}function N({active:e=!0}){let t=(0,S.useRef)(null),n=(0,S.useRef)(new C),r=(0,S.useRef)(new k),i=b(e=>e.tiles),a=b(e=>e.viewport),o=b(e=>e.selectedTileIds),s=b(e=>e.setViewport),c=b(e=>e.updateTile),l=b(e=>e.selectTile),u=b(e=>e.selectTiles),d=b(e=>e.deselectAll),f=b(e=>e.bringToFront),[p,m]=(0,S.useState)(null),[h,g]=(0,S.useState)(!1),[_,v]=(0,S.useState)(!1),[y,x]=(0,S.useState)(null);(0,S.useEffect)(()=>{n.current.setState(a)},[a]);let T=(0,S.useMemo)(()=>Object.values(i).sort((e,t)=>e.zIndex-t.zIndex),[i]),E=(0,S.useMemo)(()=>new Set(o),[o]),D=(0,S.useRef)(a);D.current=a;let O=(0,S.useRef)(e);O.current=e;let A=(0,S.useRef)({setViewport:s,updateTile:c,selectTile:l,deselectAll:d,bringToFront:f,selectTiles:u});A.current={setViewport:s,updateTile:c,selectTile:l,deselectAll:d,bringToFront:f,selectTiles:u};let N=3.5,P=(0,S.useRef)(null),F=(0,S.useRef)({vx:0,vy:0,last:0}),I=(0,S.useCallback)(()=>{P.current!==null&&(cancelAnimationFrame(P.current),P.current=null)},[]),L=(0,S.useCallback)((e,t)=>{I();let r=Math.hypot(e,t);if(r>N){let n=N/r;e*=n,t*=n}F.current={vx:e,vy:t,last:performance.now()};let i=()=>{let e=performance.now(),t=F.current,r=Math.min(32,e-t.last);t.last=e;let a=n.current.applyPan(t.vx*r,t.vy*r);A.current.setViewport(a);let o=.92**(r/16.67);if(t.vx*=o,t.vy*=o,Math.hypot(t.vx,t.vy)<.01){P.current=null;return}P.current=requestAnimationFrame(i)};P.current=requestAnimationFrame(i)},[I]);(0,S.useEffect)(()=>()=>I(),[I]),(0,S.useEffect)(()=>{let e=r.current;return e.attach({onViewportPan:(e,t)=>{let r=n.current.applyPan(e,t);A.current.setViewport(r)},onTileMove:(e,t,n)=>{A.current.updateTile(e,{x:t,y:n})},onTileResize:(e,t)=>{A.current.updateTile(e,t)},onTileSelect:e=>{A.current.selectTile(e),A.current.bringToFront(e)},onSelectionBox:e=>{if(e){let n=t.current?.getBoundingClientRect();m(n?{x:e.x-n.left,y:e.y-n.top,width:e.width,height:e.height}:e)}else m(null)},onBoxSelectEnd:()=>{},onTileClick:e=>{A.current.selectTile(e),A.current.bringToFront(e)},onCanvasClick:()=>{A.current.deselectAll()},onInteractionStart:()=>{I()},onPanInertiaStart:(e,t)=>{L(e,t)},getViewport:()=>D.current},()=>O.current),()=>e.detach()},[]),(0,S.useEffect)(()=>{let e=t.current;if(!e)return;let r=n.current,i=t=>{let n=t.target,i=!!(n&&n.closest(`.xterm, .xterm-screen, .xterm-viewport, input, textarea, [contenteditable="true"], [contenteditable=""]`)),a=!!(n&&n.closest(`[data-canvas-tile-focused="true"]`)),o=t.ctrlKey||t.metaKey;if((i||a)&&!o&&!t.shiftKey)return;t.preventDefault();let c=e.getBoundingClientRect(),l=t.clientX-c.left,u=t.clientY-c.top;if(o){let e=r.applyZoom(t.deltaY,l,u);s(e);return}let d=-t.deltaX,f=-t.deltaY;t.shiftKey&&d===0&&(d=-t.deltaY,f=0);let p=t.deltaMode===1?16:t.deltaMode===2?100:1,m=r.applyPan(d*p,f*p);s(m)},a=t=>{if(!O.current||!(t.ctrlKey||t.metaKey))return;let n=t.target;if(n){let e=n.tagName;if(e===`INPUT`||e===`TEXTAREA`||e===`SELECT`||n.isContentEditable)return}if(t.key===`+`||t.key===`=`||t.key===`-`||t.key===`_`||t.key===`0`){t.preventDefault();let n=e.clientWidth,i=e.clientHeight;if(t.key===`0`)s(r.resetView());else if(t.key===`-`||t.key===`_`){let e=r.applyZoom(120,n/2,i/2);s(e)}else{let e=r.applyZoom(-120,n/2,i/2);s(e)}}},o=e=>{e.preventDefault()};return e.addEventListener(`wheel`,i,{passive:!1}),window.addEventListener(`keydown`,a),e.addEventListener(`gesturestart`,o),e.addEventListener(`gesturechange`,o),e.addEventListener(`gestureend`,o),()=>{e.removeEventListener(`wheel`,i),window.removeEventListener(`keydown`,a),e.removeEventListener(`gesturestart`,o),e.removeEventListener(`gesturechange`,o),e.removeEventListener(`gestureend`,o)}},[s]);let R=(0,S.useCallback)(e=>{let n=t.current;if(!n)return;let o=e.button===1||e.button===2,s=r.current.isSpacePressed,c=n.getBoundingClientRect(),u=e.clientX-c.left,p=e.clientY-c.top,m=r.current,h=null,_=null,v=null;if(!o&&!s){let e=[...Object.values(i)].sort((e,t)=>t.zIndex-e.zIndex);for(let t of e){let e=t.x*a.zoom+a.panX,n=t.y*a.zoom+a.panY,r=t.width*a.zoom,i=t.height*a.zoom,o={x:e,y:n,width:r,height:i},s=m.getResizeHandle(o,u,p,8);if(s){h=t.id,_=s,v=t.id;break}if(m.isInTileHeader(o,u,p,a.zoom)){h=t.id,v=t.id;break}if(u>=e&&u<=e+r&&p>=n&&p<=n+i){v=t.id;break}}}let y=e.target;if(!o&&!s&&_===null&&v&&E.has(v)&&y&&y.closest(`.xterm, .xterm-screen, .xterm-viewport, .xterm-rows`))return;let b=e.target;if(b&&!(o||s||_!==null)&&(b.closest(`button`)||b.closest(`input, textarea:not(.xterm-helper-textarea), select`)||b.closest(`[contenteditable="true"], [contenteditable=""]`)))return;if(o&&e.preventDefault(),!v&&!_){let e=document.activeElement;e&&typeof e.blur==`function`&&e.blur(),d()}let x=e.nativeEvent;m.handlePointerDown(x,h,_,i),v?(l(v),f(v)):(e.shiftKey||e.ctrlKey||e.metaKey)&&d(),n.setPointerCapture(e.pointerId),g(m.isSpacePressed)},[i,a,l,d,f,E]),z=(0,S.useCallback)(e=>{let t=r.current;t.handlePointerMove(e.nativeEvent),g(t.isSpacePressed),v(t.isDragging),x(t.currentDrag?.type??null)},[]),B=(0,S.useCallback)(e=>{let n=r.current;if(n.currentDrag?.type===`select`&&n.isDragging&&p){let e=a.zoom||1,t={x:(p.x-a.panX)/e,y:(p.y-a.panY)/e,width:p.width/e,height:p.height/e},r=n.getSelectedTileIds(t,i);u(r)}n.handlePointerUp(e.nativeEvent);let o=t.current;o&&o.releasePointerCapture(e.pointerId),v(!1),x(null),m(null)},[a,i,u,p]);return(0,w.jsxs)(`div`,{ref:t,className:`absolute inset-0`,style:{cursor:_&&y===`pan`?`grabbing`:h?`grab`:`default`,touchAction:`none`,overscrollBehavior:`contain`},onPointerDown:R,onPointerMove:z,onPointerUp:B,onContextMenu:e=>e.preventDefault(),children:[(0,w.jsx)(`div`,{className:`absolute inset-0`,style:{pointerEvents:`none`},children:T.map(e=>(0,w.jsx)(j,{tile:e,viewport:a,isSelected:E.has(e.id)},e.id))}),p&&(0,w.jsx)(M,{rect:p})]})}function P({active:e=!0}){let t=b(e=>e.tiles),{t:n}=r(),i=Object.keys(t).length>0;return(0,w.jsxs)(`div`,{className:`relative w-full h-full overflow-hidden bg-bg-primary`,children:[(0,w.jsx)(N,{active:e}),(0,w.jsx)(E,{}),!i&&(0,w.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center pointer-events-none`,children:(0,w.jsx)(`p`,{className:`text-text-tertiary text-sm`,children:n(`canvas.empty`)})})]})}export{P as CanvasView};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./use-i18n-
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./use-i18n-pIrmaYmw.js";import{l as n,u as r}from"./markdown-DCKhnxE9.js";import{t as i}from"./loader-circle-CbX-mRDA.js";import{A as a,Bt as o,It as s,_n as c,at as l,hn as u,it as d,k as f,p,qt as m,rt as h,sn as g,vt as _,wn as v}from"./index-CcT-vg3O.js";import{t as y}from"./SplitContainer-BpAMtGSs.js";var b=e(r(),1),x=n(),S=12,C=12;function w(e){let t={name:``,path:``,type:`directory`,children:[]},n=e.map(e=>e.uri),r=``;if(n.length>0){let e=n[0].split(`/`),t=0;for(let r=0;r<e.length;r++){let i=e.slice(0,r+1).join(`/`);if(n.every(e=>e.startsWith(i+`/`)))t=r+1;else break}r=e.slice(0,t).join(`/`)}for(let n of e){let e=n.uri;r&&e.startsWith(r)&&(e=e.slice(r.length).replace(/^\//,``));let i=e.split(`/`),a=t;for(let e=0;e<i.length;e++){let t=e===i.length-1,r=a.children.find(t=>t.name===i[e]);r||(r={name:i[e],path:i.slice(0,e+1).join(`/`),type:t?`file`:`directory`,children:[],fileInfo:t?n:void 0},a.children.push(r)),a=r}}function i(e){return e.type===`file`?e:(e.children=e.children.map(i),e.children.length===1&&e.children[0].type===`directory`?{...e.children[0],name:`${e.name}/${e.children[0].name}`}:e)}function a(e){return e.type===`file`&&e.fileInfo?[e.fileInfo.uri]:e.children.flatMap(a)}function o(e){return e.type===`directory`&&(e.allFilePaths=a(e),e.children.forEach(o)),e}function s(e){return e.sort((e,t)=>e.type===t.type?e.name.localeCompare(t.name):e.type===`directory`?-1:1).map(e=>(e.type===`directory`&&(e.children=s(e.children)),e))}return s(t.children.map(i).map(o))}function T({changeType:e}){let t={created:{letter:`U`,cls:`changes-badge-created`},modified:{letter:`M`,cls:`changes-badge-modified`},deleted:{letter:`D`,cls:`changes-badge-deleted`}},{letter:n,cls:r}=t[e]||t.modified;return(0,x.jsx)(`span`,{className:`changes-type-badge ${r}`,children:n})}function E({depth:e}){return(0,x.jsx)(x.Fragment,{children:Array.from({length:e},(e,t)=>(0,x.jsx)(`span`,{className:`file-tree-indent-guide`,style:{left:C+t*S+6}},t))})}function D({node:e,depth:n,selectedFile:r,onSelectFile:i,onRevert:a}){let[o,s]=(0,b.useState)(!0),[c,l]=(0,b.useState)(!1),{t:d}=t(),f=C+n*S,m=(0,b.useCallback)(t=>{t.stopPropagation(),a&&(e.type===`file`&&e.fileInfo?a([e.fileInfo.uri]):e.allFilePaths&&a(e.allFilePaths))},[e,a]);if(e.type===`file`){let t=e.name;return(0,x.jsxs)(`div`,{className:`file-tree-item ${r===e.fileInfo?.uri?`selected`:``}`,onClick:()=>e.fileInfo&&i(e.fileInfo.uri),onMouseEnter:()=>l(!0),onMouseLeave:()=>l(!1),title:e.fileInfo?.uri,children:[(0,x.jsx)(E,{depth:n}),(0,x.jsx)(`span`,{style:{width:f,flexShrink:0}}),(0,x.jsx)(p,{name:t,type:`file`,size:16}),(0,x.jsx)(`span`,{className:`file-tree-item-name`,children:t}),c&&a&&(0,x.jsx)(`button`,{className:`changes-tree-revert-btn`,onClick:m,title:d(`changes.revert`),children:(0,x.jsx)(_,{size:12})}),(0,x.jsx)(T,{changeType:e.fileInfo.changeType})]})}return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(`div`,{className:`file-tree-item`,onClick:()=>s(!o),onMouseEnter:()=>l(!0),onMouseLeave:()=>l(!1),children:[(0,x.jsx)(E,{depth:n}),(0,x.jsx)(`span`,{style:{width:f,flexShrink:0}}),(0,x.jsx)(u,{size:16,className:`file-tree-chevron ${o?`expanded`:``}`}),(0,x.jsx)(`span`,{className:`file-tree-item-name`,children:e.name}),c&&a&&e.allFilePaths&&e.allFilePaths.length>0&&(0,x.jsx)(`button`,{className:`changes-tree-revert-btn`,onClick:m,title:d(`changes.revertDirectory`),children:(0,x.jsx)(_,{size:12})})]}),o&&e.children.map(e=>(0,x.jsx)(D,{node:e,depth:n+1,selectedFile:r,onSelectFile:i,onRevert:a},e.path))]})}function O({fileChanges:e,selectedFile:t,onSelectFile:n,onRevertFiles:r}){let i=(0,b.useMemo)(()=>w(e),[e]);return(0,x.jsx)(`div`,{className:`file-tree changes-tree`,children:(0,x.jsx)(`div`,{className:`file-tree-content`,children:i.map(e=>(0,x.jsx)(D,{node:e,depth:0,selectedFile:t,onSelectFile:n,onRevert:r},e.path))})})}function k({onMenuClick:e}){let{t:n}=t(),{fileChanges:r,selectedFile:o,selectedDiff:p,diffLoading:g,checkpoints:S,reverting:C,selectFile:w,revertFiles:T,revertAll:E,revertToCheckpoint:D,loadCheckpoints:k}=d(),[j,M]=(0,b.useState)(.28),[N,P]=(0,b.useState)(!0),[F,I]=(0,b.useState)(!0),L=f(),[R,z]=(0,b.useState)(!1),B=l(e=>e.sessionId),V=(0,b.useRef)(L);(0,b.useEffect)(()=>{k(B??void 0)},[k,B]),(0,b.useEffect)(()=>{V.current!==L&&(V.current=L,L?o&&z(!0):z(!1))},[L,o]),(0,b.useEffect)(()=>{L&&o&&z(!0)},[L,o]);let H=(0,b.useCallback)(e=>{w(e),L&&z(!0)},[L,w]),U=(0,b.useCallback)(()=>{z(!1)},[]),W=(0,b.useCallback)(async(e,t)=>{await D(e,t,B??void 0)||h.getState().addToast(`error`,n(`rewind.failed`))},[D,B,n]),G=()=>g?(0,x.jsx)(`div`,{className:`changes-empty-state`,children:(0,x.jsx)(i,{size:20,className:`animate-spin`,style:{opacity:.4}})}):o&&p?(0,x.jsx)(`div`,{className:`changes-diff-scroll`,children:(0,x.jsx)(a,{path:o,oldText:p.oldText??null,newText:p.newText,maxHeight:`100%`})}):(0,x.jsxs)(`div`,{className:`changes-empty-state`,children:[(0,x.jsx)(m,{size:48,strokeWidth:1,style:{opacity:.12}}),(0,x.jsx)(`span`,{className:`changes-empty-text`,children:n(`fileChanges.empty`)})]}),K=(0,x.jsxs)(`div`,{className:`changes-left changes-left-mobile-safe`,children:[(0,x.jsxs)(`div`,{className:`changes-title-bar`,children:[e&&(0,x.jsx)(`button`,{className:`changes-title-menu`,onClick:e,title:n(`editor.toggleSidebar`),children:(0,x.jsx)(s,{size:16})}),(0,x.jsx)(`span`,{className:`changes-title-text`,children:n(`fileChanges.title`)})]}),(0,x.jsxs)(`div`,{className:`changes-accordion`,children:[(0,x.jsxs)(`div`,{className:`changes-section ${N&&F?`half`:N?`full`:`collapsed`}`,children:[(0,x.jsxs)(`div`,{className:`changes-section-header changes-section-first`,onClick:()=>P(!N),children:[N?(0,x.jsx)(c,{size:12}):(0,x.jsx)(u,{size:12}),(0,x.jsx)(`span`,{className:`changes-section-name`,children:n(`fileChanges.changesSection`)}),r.length>0&&(0,x.jsx)(`div`,{className:`changes-section-actions`,onClick:e=>e.stopPropagation(),children:(0,x.jsx)(`button`,{className:`changes-section-action`,onClick:E,disabled:C,title:n(`fileChanges.revertAll`),children:(0,x.jsx)(_,{size:14})})}),r.length>0&&(0,x.jsx)(`span`,{className:`changes-section-badge`,children:r.length})]}),N&&(0,x.jsx)(`div`,{className:`changes-section-content`,children:(0,x.jsx)(O,{fileChanges:r,selectedFile:o,onSelectFile:H,onRevertFiles:T})})]}),(0,x.jsxs)(`div`,{className:`changes-section ${F&&N?`half`:F?`full`:`collapsed`}`,children:[(0,x.jsxs)(`div`,{className:`changes-section-header`,onClick:()=>{I(!F),F||k(B??void 0)},children:[F?(0,x.jsx)(c,{size:12}):(0,x.jsx)(u,{size:12}),(0,x.jsx)(`span`,{className:`changes-section-name`,children:n(`fileChanges.checkpoints`).toUpperCase()})]}),F&&(0,x.jsx)(`div`,{className:`changes-section-content`,children:(0,x.jsx)(A,{checkpoints:S,reverting:C,onRevert:W})})]})]})]});return L?(0,x.jsxs)(`div`,{className:`changes-fullview changes-fullview-mobile`,children:[K,(0,x.jsxs)(`div`,{className:`changes-mobile-panel ${R?`open`:``}`,children:[(0,x.jsxs)(`div`,{className:`changes-mobile-header`,children:[(0,x.jsx)(`button`,{className:`changes-mobile-back`,onClick:U,children:(0,x.jsx)(v,{size:18})}),(0,x.jsx)(`div`,{className:`changes-mobile-title`,children:o?o.split(`/`).pop():n(`fileChanges.empty`)})]}),(0,x.jsx)(`div`,{className:`changes-right`,children:G()})]})]}):(0,x.jsx)(`div`,{className:`changes-fullview`,children:(0,x.jsxs)(y,{direction:`horizontal`,ratio:j,onRatioChange:M,children:[K,(0,x.jsx)(`div`,{className:`changes-right`,children:G()})]})})}function A({checkpoints:e,reverting:n,onRevert:r}){let{t:i}=t();return e.length===0?(0,x.jsx)(`div`,{className:`changes-empty-state changes-timeline-empty`,children:(0,x.jsx)(`span`,{className:`changes-empty-text`,children:i(`fileChanges.noCheckpoints`)})}):(0,x.jsx)(`div`,{className:`changes-timeline`,children:e.map((t,a)=>{let s=new Date(t.createdAt).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`}),c=t.files.length>0||t.additions>0||t.deletions>0,l=a===0,u=a===e.length-1;return(0,x.jsxs)(`div`,{className:`changes-timeline-item`,children:[(0,x.jsxs)(`div`,{className:`changes-timeline-line`,children:[(0,x.jsx)(`div`,{className:`changes-timeline-dot ${l?`latest`:`historical`}`}),!u&&(0,x.jsx)(`div`,{className:`changes-timeline-connector ${l?`latest`:`historical`}`})]}),(0,x.jsx)(`div`,{className:`changes-timeline-content`,children:(0,x.jsxs)(`div`,{className:`changes-timeline-header`,children:[(0,x.jsx)(`span`,{className:`changes-timeline-time`,children:s}),(0,x.jsx)(`span`,{className:`changes-timeline-label`,children:t.label||`${t.files.length} file${t.files.length===1?``:`s`}`}),(0,x.jsxs)(`div`,{className:`changes-timeline-actions`,children:[(0,x.jsx)(`button`,{className:`changes-timeline-action`,onClick:()=>r(t.id,`Conversation`),disabled:n,title:i(`fileChanges.revertChat`),children:(0,x.jsx)(o,{size:13})}),c&&(0,x.jsx)(`button`,{className:`changes-timeline-action`,onClick:()=>r(t.id,`Code`),disabled:n,title:i(`fileChanges.revertCode`),children:(0,x.jsx)(g,{size:13})}),(0,x.jsx)(`button`,{className:`changes-timeline-action danger`,onClick:()=>r(t.id,`CodeAndConversation`),disabled:n,title:i(`fileChanges.revertCodeAndChat`),children:(0,x.jsx)(_,{size:13})})]})]})})]},t.id||a)})})}export{k as ChangesView};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{G as t,c as n,i as r,st as i,t as a}from"./use-i18n-BvN1piiI.js";import{l as o,n as s,o as c,u as l}from"./markdown-DCKhnxE9.js";import{t as u}from"./theme-store-e89BUV83.js";import{B as d,Dt as f,Ht as p,O as m,R as h,_n as g,_t as _,en as v,hn as y,rn as ee,z as b}from"./index-BI5Z_cST.js";var te=r(`menu`,[[`path`,{d:`M4 5h16`,key:`1tepv9`}],[`path`,{d:`M4 12h16`,key:`1lakjw`}],[`path`,{d:`M4 19h16`,key:`1djgab`}]]),x=e(l(),1),S=`ENTRIES`,C=`KEYS`,w=`VALUES`,T=``,E=class{constructor(e,t){let n=e._tree,r=Array.from(n.keys());this.set=e,this._type=t,this._path=r.length>0?[{node:n,keys:r}]:[]}next(){let e=this.dive();return this.backtrack(),e}dive(){if(this._path.length===0)return{done:!0,value:void 0};let{node:e,keys:t}=D(this._path);if(D(t)===T)return{done:!1,value:this.result()};let n=e.get(D(t));return this._path.push({node:n,keys:Array.from(n.keys())}),this.dive()}backtrack(){if(this._path.length===0)return;let e=D(this._path).keys;e.pop(),!(e.length>0)&&(this._path.pop(),this.backtrack())}key(){return this.set._prefix+this._path.map(({keys:e})=>D(e)).filter(e=>e!==T).join(``)}value(){return D(this._path).node.get(T)}result(){switch(this._type){case w:return this.value();case C:return this.key();default:return[this.key(),this.value()]}}[Symbol.iterator](){return this}},D=e=>e[e.length-1],O=(e,t,n)=>{let r=new Map;if(t===void 0)return r;let i=t.length+1,a=i+n,o=new Uint8Array(a*i).fill(n+1);for(let e=0;e<i;++e)o[e]=e;for(let e=1;e<a;++e)o[e*i]=e;return k(e,t,n,r,o,1,i,``),r},k=(e,t,n,r,i,a,o,s)=>{let c=a*o;key:for(let l of e.keys())if(l===T){let t=i[c-1];t<=n&&r.set(s,[e.get(l),t])}else{let c=a;for(let e=0;e<l.length;++e,++c){let r=l[e],a=o*c,s=a-o,u=i[a],d=Math.max(0,c-n-1),f=Math.min(o-1,c+n);for(let e=d;e<f;++e){let n=r!==t[e],o=i[s+e]+ +n,c=i[s+e+1]+1,l=i[a+e]+1,d=i[a+e+1]=Math.min(o,c,l);d<u&&(u=d)}if(u>n)continue key}k(e.get(l),t,n,r,i,c,o,s+l)}},A=class e{constructor(e=new Map,t=``){this._size=void 0,this._tree=e,this._prefix=t}atPrefix(t){if(!t.startsWith(this._prefix))throw Error(`Mismatched prefix`);let[n,r]=j(this._tree,t.slice(this._prefix.length));if(n===void 0){let[n,i]=I(r);for(let r of n.keys())if(r!==T&&r.startsWith(i)){let a=new Map;return a.set(r.slice(i.length),n.get(r)),new e(a,t)}}return new e(n,t)}clear(){this._size=void 0,this._tree.clear()}delete(e){return this._size=void 0,ne(this._tree,e)}entries(){return new E(this,S)}forEach(e){for(let[t,n]of this)e(t,n,this)}fuzzyGet(e,t){return O(this._tree,e,t)}get(e){let t=M(this._tree,e);return t===void 0?void 0:t.get(T)}has(e){let t=M(this._tree,e);return t!==void 0&&t.has(T)}keys(){return new E(this,C)}set(e,t){if(typeof e!=`string`)throw Error(`key must be a string`);return this._size=void 0,N(this._tree,e).set(T,t),this}get size(){if(this._size)return this._size;this._size=0;let e=this.entries();for(;!e.next().done;)this._size+=1;return this._size}update(e,t){if(typeof e!=`string`)throw Error(`key must be a string`);this._size=void 0;let n=N(this._tree,e);return n.set(T,t(n.get(T))),this}fetch(e,t){if(typeof e!=`string`)throw Error(`key must be a string`);this._size=void 0;let n=N(this._tree,e),r=n.get(T);return r===void 0&&n.set(T,r=t()),r}values(){return new E(this,w)}[Symbol.iterator](){return this.entries()}static from(t){let n=new e;for(let[e,r]of t)n.set(e,r);return n}static fromObject(t){return e.from(Object.entries(t))}},j=(e,t,n=[])=>{if(t.length===0||e==null)return[e,n];for(let r of e.keys())if(r!==T&&t.startsWith(r))return n.push([e,r]),j(e.get(r),t.slice(r.length),n);return n.push([e,t]),j(void 0,``,n)},M=(e,t)=>{if(t.length===0||e==null)return e;for(let n of e.keys())if(n!==T&&t.startsWith(n))return M(e.get(n),t.slice(n.length))},N=(e,t)=>{let n=t.length;outer:for(let r=0;e&&r<n;){for(let i of e.keys())if(i!==T&&t[r]===i[0]){let a=Math.min(n-r,i.length),o=1;for(;o<a&&t[r+o]===i[o];)++o;let s=e.get(i);if(o===i.length)e=s;else{let n=new Map;n.set(i.slice(o),s),e.set(t.slice(r,r+o),n),e.delete(i),e=n}r+=o;continue outer}let i=new Map;return e.set(t.slice(r),i),i}return e},ne=(e,t)=>{let[n,r]=j(e,t);if(n!==void 0){if(n.delete(T),n.size===0)P(r);else if(n.size===1){let[e,t]=n.entries().next().value;F(r,e,t)}}},P=e=>{if(e.length===0)return;let[t,n]=I(e);if(t.delete(n),t.size===0)P(e.slice(0,-1));else if(t.size===1){let[n,r]=t.entries().next().value;n!==T&&F(e.slice(0,-1),n,r)}},F=(e,t,n)=>{if(e.length===0)return;let[r,i]=I(e);r.set(i+t,n),r.delete(i)},I=e=>e[e.length-1],L=`or`,R=`and`,re=`and_not`,z=class e{constructor(e){if(e?.fields==null)throw Error(`MiniSearch: option "fields" must be provided`);let t=e.autoVacuum==null||e.autoVacuum===!0?G:e.autoVacuum;this._options={...V,...e,autoVacuum:t,searchOptions:{...H,...e.searchOptions||{}},autoSuggestOptions:{...ce,...e.autoSuggestOptions||{}}},this._index=new A,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldIds={},this._fieldLength=new Map,this._avgFieldLength=[],this._nextId=0,this._storedFields=new Map,this._dirtCount=0,this._currentVacuum=null,this._enqueuedVacuum=null,this._enqueuedVacuumConditions=W,this.addFields(this._options.fields)}add(e){let{extractField:t,stringifyField:n,tokenize:r,processTerm:i,fields:a,idField:o}=this._options,s=t(e,o);if(s==null)throw Error(`MiniSearch: document does not have ID field "${o}"`);if(this._idToShortId.has(s))throw Error(`MiniSearch: duplicate ID ${s}`);let c=this.addDocumentId(s);this.saveStoredFields(c,e);for(let o of a){let a=t(e,o);if(a==null)continue;let s=r(n(a,o),o),l=this._fieldIds[o],u=new Set(s).size;this.addFieldLength(c,l,this._documentCount-1,u);for(let e of s){let t=i(e,o);if(Array.isArray(t))for(let e of t)this.addTerm(l,c,e);else t&&this.addTerm(l,c,t)}}}addAll(e){for(let t of e)this.add(t)}addAllAsync(e,t={}){let{chunkSize:n=10}=t,r={chunk:[],promise:Promise.resolve()},{chunk:i,promise:a}=e.reduce(({chunk:e,promise:t},r,i)=>(e.push(r),(i+1)%n===0?{chunk:[],promise:t.then(()=>new Promise(e=>setTimeout(e,0))).then(()=>this.addAll(e))}:{chunk:e,promise:t}),r);return a.then(()=>this.addAll(i))}remove(e){let{tokenize:t,processTerm:n,extractField:r,stringifyField:i,fields:a,idField:o}=this._options,s=r(e,o);if(s==null)throw Error(`MiniSearch: document does not have ID field "${o}"`);let c=this._idToShortId.get(s);if(c==null)throw Error(`MiniSearch: cannot remove document with ID ${s}: it is not in the index`);for(let o of a){let a=r(e,o);if(a==null)continue;let s=t(i(a,o),o),l=this._fieldIds[o],u=new Set(s).size;this.removeFieldLength(c,l,this._documentCount,u);for(let e of s){let t=n(e,o);if(Array.isArray(t))for(let e of t)this.removeTerm(l,c,e);else t&&this.removeTerm(l,c,t)}}this._storedFields.delete(c),this._documentIds.delete(c),this._idToShortId.delete(s),this._fieldLength.delete(c),--this._documentCount}removeAll(e){if(e)for(let t of e)this.remove(t);else if(arguments.length>0)throw Error(`Expected documents to be present. Omit the argument to remove all documents.`);else this._index=new A,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldLength=new Map,this._avgFieldLength=[],this._storedFields=new Map,this._nextId=0}discard(e){let t=this._idToShortId.get(e);if(t==null)throw Error(`MiniSearch: cannot discard document with ID ${e}: it is not in the index`);this._idToShortId.delete(e),this._documentIds.delete(t),this._storedFields.delete(t),(this._fieldLength.get(t)||[]).forEach((e,n)=>{this.removeFieldLength(t,n,this._documentCount,e)}),this._fieldLength.delete(t),--this._documentCount,this._dirtCount+=1,this.maybeAutoVacuum()}maybeAutoVacuum(){if(this._options.autoVacuum===!1)return;let{minDirtFactor:e,minDirtCount:t,batchSize:n,batchWait:r}=this._options.autoVacuum;this.conditionalVacuum({batchSize:n,batchWait:r},{minDirtCount:t,minDirtFactor:e})}discardAll(e){let t=this._options.autoVacuum;try{this._options.autoVacuum=!1;for(let t of e)this.discard(t)}finally{this._options.autoVacuum=t}this.maybeAutoVacuum()}replace(e){let{idField:t,extractField:n}=this._options,r=n(e,t);this.discard(r),this.add(e)}vacuum(e={}){return this.conditionalVacuum(e)}conditionalVacuum(e,t){return this._currentVacuum?(this._enqueuedVacuumConditions=this._enqueuedVacuumConditions&&t,this._enqueuedVacuum??=this._currentVacuum.then(()=>{let t=this._enqueuedVacuumConditions;return this._enqueuedVacuumConditions=W,this.performVacuuming(e,t)}),this._enqueuedVacuum):this.vacuumConditionsMet(t)===!1?Promise.resolve():(this._currentVacuum=this.performVacuuming(e),this._currentVacuum)}async performVacuuming(e,t){let n=this._dirtCount;if(this.vacuumConditionsMet(t)){let t=e.batchSize||U.batchSize,r=e.batchWait||U.batchWait,i=1;for(let[e,n]of this._index){for(let[e,t]of n)for(let[r]of t)this._documentIds.has(r)||(t.size<=1?n.delete(e):t.delete(r));this._index.get(e).size===0&&this._index.delete(e),i%t===0&&await new Promise(e=>setTimeout(e,r)),i+=1}this._dirtCount-=n}await null,this._currentVacuum=this._enqueuedVacuum,this._enqueuedVacuum=null}vacuumConditionsMet(e){if(e==null)return!0;let{minDirtCount:t,minDirtFactor:n}=e;return t||=G.minDirtCount,n||=G.minDirtFactor,this.dirtCount>=t&&this.dirtFactor>=n}get isVacuuming(){return this._currentVacuum!=null}get dirtCount(){return this._dirtCount}get dirtFactor(){return this._dirtCount/(1+this._documentCount+this._dirtCount)}has(e){return this._idToShortId.has(e)}getStoredFields(e){let t=this._idToShortId.get(e);if(t!=null)return this._storedFields.get(t)}search(t,n={}){let{searchOptions:r}=this._options,i={...r,...n},a=this.executeQuery(t,n),o=[];for(let[e,{score:t,terms:n,match:r}]of a){let a=n.length||1,s={id:this._documentIds.get(e),score:t*a,terms:Object.keys(r),queryTerms:n,match:r};Object.assign(s,this._storedFields.get(e)),(i.filter==null||i.filter(s))&&o.push(s)}return t===e.wildcard&&i.boostDocument==null||o.sort(q),o}autoSuggest(e,t={}){t={...this._options.autoSuggestOptions,...t};let n=new Map;for(let{score:r,terms:i}of this.search(e,t)){let e=i.join(` `),t=n.get(e);t==null?n.set(e,{score:r,terms:i,count:1}):(t.score+=r,t.count+=1)}let r=[];for(let[e,{score:t,terms:i,count:a}]of n)r.push({suggestion:e,terms:i,score:t/a});return r.sort(q),r}get documentCount(){return this._documentCount}get termCount(){return this._index.size}static loadJSON(e,t){if(t==null)throw Error(`MiniSearch: loadJSON should be given the same options used when serializing the index`);return this.loadJS(JSON.parse(e),t)}static async loadJSONAsync(e,t){if(t==null)throw Error(`MiniSearch: loadJSON should be given the same options used when serializing the index`);return this.loadJSAsync(JSON.parse(e),t)}static getDefault(e){if(V.hasOwnProperty(e))return B(V,e);throw Error(`MiniSearch: unknown option "${e}"`)}static loadJS(e,t){let{index:n,documentIds:r,fieldLength:i,storedFields:a,serializationVersion:o}=e,s=this.instantiateMiniSearch(e,t);s._documentIds=Y(r),s._fieldLength=Y(i),s._storedFields=Y(a);for(let[e,t]of s._documentIds)s._idToShortId.set(t,e);for(let[e,t]of n){let n=new Map;for(let e of Object.keys(t)){let r=t[e];o===1&&(r=r.ds),n.set(parseInt(e,10),Y(r))}s._index.set(e,n)}return s}static async loadJSAsync(e,t){let{index:n,documentIds:r,fieldLength:i,storedFields:a,serializationVersion:o}=e,s=this.instantiateMiniSearch(e,t);s._documentIds=await X(r),s._fieldLength=await X(i),s._storedFields=await X(a);for(let[e,t]of s._documentIds)s._idToShortId.set(t,e);let c=0;for(let[e,t]of n){let n=new Map;for(let e of Object.keys(t)){let r=t[e];o===1&&(r=r.ds),n.set(parseInt(e,10),await X(r))}++c%1e3==0&&await Z(0),s._index.set(e,n)}return s}static instantiateMiniSearch(t,n){let{documentCount:r,nextId:i,fieldIds:a,averageFieldLength:o,dirtCount:s,serializationVersion:c}=t;if(c!==1&&c!==2)throw Error(`MiniSearch: cannot deserialize an index created with an incompatible version`);let l=new e(n);return l._documentCount=r,l._nextId=i,l._idToShortId=new Map,l._fieldIds=a,l._avgFieldLength=o,l._dirtCount=s||0,l._index=new A,l}executeQuery(t,n={}){if(t===e.wildcard)return this.executeWildcardQuery(n);if(typeof t!=`string`){let e={...n,...t,queries:void 0},r=t.queries.map(t=>this.executeQuery(t,e));return this.combineResults(r,e.combineWith)}let{tokenize:r,processTerm:i,searchOptions:a}=this._options,o={tokenize:r,processTerm:i,...a,...n},{tokenize:s,processTerm:c}=o,l=s(t).flatMap(e=>c(e)).filter(e=>!!e).map(se(o)).map(e=>this.executeQuerySpec(e,o));return this.combineResults(l,o.combineWith)}executeQuerySpec(e,t){let n={...this._options.searchOptions,...t},r=(n.fields||this._options.fields).reduce((e,t)=>({...e,[t]:B(n.boost,t)||1}),{}),{boostDocument:i,weights:a,maxFuzzy:o,bm25:s}=n,{fuzzy:c,prefix:l}={...H.weights,...a},u=this._index.get(e.term),d=this.termResults(e.term,e.term,1,e.termBoost,u,r,i,s),f,p;if(e.prefix&&(f=this._index.atPrefix(e.term)),e.fuzzy){let t=e.fuzzy===!0?.2:e.fuzzy,n=t<1?Math.min(o,Math.round(e.term.length*t)):t;n&&(p=this._index.fuzzyGet(e.term,n))}if(f)for(let[t,n]of f){let a=t.length-e.term.length;if(!a)continue;p?.delete(t);let o=l*t.length/(t.length+.3*a);this.termResults(e.term,t,o,e.termBoost,n,r,i,s,d)}if(p)for(let t of p.keys()){let[n,a]=p.get(t);if(!a)continue;let o=c*t.length/(t.length+a);this.termResults(e.term,t,o,e.termBoost,n,r,i,s,d)}return d}executeWildcardQuery(e){let t=new Map,n={...this._options.searchOptions,...e};for(let[e,r]of this._documentIds){let i=n.boostDocument?n.boostDocument(r,``,this._storedFields.get(e)):1;t.set(e,{score:i,terms:[],match:{}})}return t}combineResults(e,t=L){if(e.length===0)return new Map;let n=ie[t.toLowerCase()];if(!n)throw Error(`Invalid combination operator: ${t}`);return e.reduce(n)||new Map}toJSON(){let e=[];for(let[t,n]of this._index){let r={};for(let[e,t]of n)r[e]=Object.fromEntries(t);e.push([t,r])}return{documentCount:this._documentCount,nextId:this._nextId,documentIds:Object.fromEntries(this._documentIds),fieldIds:this._fieldIds,fieldLength:Object.fromEntries(this._fieldLength),averageFieldLength:this._avgFieldLength,storedFields:Object.fromEntries(this._storedFields),dirtCount:this._dirtCount,index:e,serializationVersion:2}}termResults(e,t,n,r,i,a,o,s,c=new Map){if(i==null)return c;for(let l of Object.keys(a)){let u=a[l],d=this._fieldIds[l],f=i.get(d);if(f==null)continue;let p=f.size,m=this._avgFieldLength[d];for(let i of f.keys()){if(!this._documentIds.has(i)){this.removeTerm(d,i,t),--p;continue}let a=o?o(this._documentIds.get(i),t,this._storedFields.get(i)):1;if(!a)continue;let h=f.get(i),g=this._fieldLength.get(i)[d],_=oe(h,p,this._documentCount,g,m,s),v=n*r*u*a*_,y=c.get(i);if(y){y.score+=v,le(y.terms,e);let n=B(y.match,t);n?n.push(l):y.match[t]=[l]}else c.set(i,{score:v,terms:[e],match:{[t]:[l]}})}}return c}addTerm(e,t,n){let r=this._index.fetch(n,J),i=r.get(e);if(i==null)i=new Map,i.set(t,1),r.set(e,i);else{let e=i.get(t);i.set(t,(e||0)+1)}}removeTerm(e,t,n){if(!this._index.has(n)){this.warnDocumentChanged(t,e,n);return}let r=this._index.fetch(n,J),i=r.get(e);i==null||i.get(t)==null?this.warnDocumentChanged(t,e,n):i.get(t)<=1?i.size<=1?r.delete(e):i.delete(t):i.set(t,i.get(t)-1),this._index.get(n).size===0&&this._index.delete(n)}warnDocumentChanged(e,t,n){for(let r of Object.keys(this._fieldIds))if(this._fieldIds[r]===t){this._options.logger(`warn`,`MiniSearch: document with ID ${this._documentIds.get(e)} has changed before removal: term "${n}" was not present in field "${r}". Removing a document after it has changed can corrupt the index!`,`version_conflict`);return}}addDocumentId(e){let t=this._nextId;return this._idToShortId.set(e,t),this._documentIds.set(t,e),this._documentCount+=1,this._nextId+=1,t}addFields(e){for(let t=0;t<e.length;t++)this._fieldIds[e[t]]=t}addFieldLength(e,t,n,r){let i=this._fieldLength.get(e);i??this._fieldLength.set(e,i=[]),i[t]=r;let a=(this._avgFieldLength[t]||0)*n+r;this._avgFieldLength[t]=a/(n+1)}removeFieldLength(e,t,n,r){if(n===1){this._avgFieldLength[t]=0;return}let i=this._avgFieldLength[t]*n-r;this._avgFieldLength[t]=i/(n-1)}saveStoredFields(e,t){let{storeFields:n,extractField:r}=this._options;if(n==null||n.length===0)return;let i=this._storedFields.get(e);i??this._storedFields.set(e,i={});for(let e of n){let n=r(t,e);n!==void 0&&(i[e]=n)}}};z.wildcard=Symbol(`*`);var B=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0,ie={[L]:(e,t)=>{for(let n of t.keys()){let r=e.get(n);if(r==null)e.set(n,t.get(n));else{let{score:e,terms:i,match:a}=t.get(n);r.score+=e,r.match=Object.assign(r.match,a),K(r.terms,i)}}return e},[R]:(e,t)=>{let n=new Map;for(let r of t.keys()){let i=e.get(r);if(i==null)continue;let{score:a,terms:o,match:s}=t.get(r);K(i.terms,o),n.set(r,{score:i.score+a,terms:i.terms,match:Object.assign(i.match,s)})}return n},[re]:(e,t)=>{for(let n of t.keys())e.delete(n);return e}},ae={k:1.2,b:.7,d:.5},oe=(e,t,n,r,i,a)=>{let{k:o,b:s,d:c}=a;return Math.log(1+(n-t+.5)/(t+.5))*(c+e*(o+1)/(e+o*(1-s+s*r/i)))},se=e=>(t,n,r)=>({term:t,fuzzy:typeof e.fuzzy==`function`?e.fuzzy(t,n,r):e.fuzzy||!1,prefix:typeof e.prefix==`function`?e.prefix(t,n,r):e.prefix===!0,termBoost:typeof e.boostTerm==`function`?e.boostTerm(t,n,r):1}),V={idField:`id`,extractField:(e,t)=>e[t],stringifyField:(e,t)=>e.toString(),tokenize:e=>e.split(ue),processTerm:e=>e.toLowerCase(),fields:void 0,searchOptions:void 0,storeFields:[],logger:(e,t)=>{typeof(console==null?void 0:console[e])==`function`&&console[e](t)},autoVacuum:!0},H={combineWith:L,prefix:!1,fuzzy:!1,maxFuzzy:6,boost:{},weights:{fuzzy:.45,prefix:.375},bm25:ae},ce={combineWith:R,prefix:(e,t,n)=>t===n.length-1},U={batchSize:1e3,batchWait:10},W={minDirtFactor:.1,minDirtCount:20},G={...U,...W},le=(e,t)=>{e.includes(t)||e.push(t)},K=(e,t)=>{for(let n of t)e.includes(n)||e.push(n)},q=({score:e},{score:t})=>t-e,J=()=>new Map,Y=e=>{let t=new Map;for(let n of Object.keys(e))t.set(parseInt(n,10),e[n]);return t},X=async e=>{let t=new Map,n=0;for(let r of Object.keys(e))t.set(parseInt(r,10),e[r]),++n%1e3==0&&await Z(0);return t},Z=e=>new Promise(t=>setTimeout(t,e)),ue=/[\n\r\p{Z}\p{P}]+/u;function de(e){return(e.match(/[\u4e00-\u9fff]|[a-zA-Z0-9]+/g)||[]).map(e=>e.toLowerCase())}var fe=i((e,t)=>({sidebar:null,sidebarLoading:!1,sidebarLang:null,currentPath:null,currentContent:null,contentLoading:!1,contentError:null,searchQuery:``,searchResults:[],searchIndex:null,searchDocuments:[],searchLang:null,loadSidebar:async n=>{if(!(t().sidebarLang===n&&t().sidebar)){e({sidebarLoading:!0});try{let t=await fetch(`/docs/sidebar-${n}.json`);if(!t.ok)throw Error(`HTTP ${t.status}`);e({sidebar:await t.json(),sidebarLoading:!1,sidebarLang:n})}catch{e({sidebar:null,sidebarLoading:!1,sidebarLang:null})}}},loadDocument:async(n,r)=>{e({contentLoading:!0,contentError:null,currentPath:n});try{let i=await fetch(`/docs/${r===`zh`?`cn`:`en`}${n}.md`);if(!i.ok)throw Error(`HTTP ${i.status}`);let a=await i.text();t().currentPath===n&&e({currentContent:a,contentLoading:!1})}catch{t().currentPath===n&&e({currentContent:null,contentLoading:!1,contentError:n})}},initSearchIndex:async n=>{if(!(t().searchLang===n&&t().searchIndex))try{let t=await fetch(`/docs/search-index-${n}.json`);if(!t.ok)return;let r=await t.json(),i=new z({fields:[`title`,`body`],storeFields:[`title`,`body`],tokenize:de,searchOptions:{prefix:!0,fuzzy:.2,boost:{title:2}}});i.addAll(r),e({searchIndex:i,searchDocuments:[],searchLang:n})}catch{}},search:n=>{let{searchIndex:r}=t();if(e({searchQuery:n}),!n.trim()||!r){e({searchResults:[]});return}e({searchResults:r.search(n,{prefix:!0,fuzzy:.2}).slice(0,20).map(e=>{let t=e,r=t.title||e.id,i=t.body||``,a=i.toLowerCase(),o=n.toLowerCase(),s=a.indexOf(o),c;if(s>=0){let e=Math.max(0,s-40),t=Math.min(i.length,s+n.length+80);c=(e>0?`...`:``)+i.slice(e,t)+(t<i.length?`...`:``)}else c=i.slice(0,120)+(i.length>120?`...`:``);return{id:e.id,title:r,score:e.score,excerpt:c}})})},setCurrentPath:t=>e({currentPath:t}),clearSearch:()=>e({searchQuery:``,searchResults:[]})})),Q=o(),pe=d;function me(e){let t=e.split(`
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{G as t,c as n,i as r,st as i,t as a}from"./use-i18n-pIrmaYmw.js";import{l as o,n as s,o as c,u as l}from"./markdown-DCKhnxE9.js";import{t as u}from"./theme-store-Cvh0uW_P.js";import{B as d,Dt as f,Ht as p,O as m,R as h,_n as g,_t as _,en as v,hn as y,rn as ee,z as b}from"./index-CcT-vg3O.js";var te=r(`menu`,[[`path`,{d:`M4 5h16`,key:`1tepv9`}],[`path`,{d:`M4 12h16`,key:`1lakjw`}],[`path`,{d:`M4 19h16`,key:`1djgab`}]]),x=e(l(),1),S=`ENTRIES`,C=`KEYS`,w=`VALUES`,T=``,E=class{constructor(e,t){let n=e._tree,r=Array.from(n.keys());this.set=e,this._type=t,this._path=r.length>0?[{node:n,keys:r}]:[]}next(){let e=this.dive();return this.backtrack(),e}dive(){if(this._path.length===0)return{done:!0,value:void 0};let{node:e,keys:t}=D(this._path);if(D(t)===T)return{done:!1,value:this.result()};let n=e.get(D(t));return this._path.push({node:n,keys:Array.from(n.keys())}),this.dive()}backtrack(){if(this._path.length===0)return;let e=D(this._path).keys;e.pop(),!(e.length>0)&&(this._path.pop(),this.backtrack())}key(){return this.set._prefix+this._path.map(({keys:e})=>D(e)).filter(e=>e!==T).join(``)}value(){return D(this._path).node.get(T)}result(){switch(this._type){case w:return this.value();case C:return this.key();default:return[this.key(),this.value()]}}[Symbol.iterator](){return this}},D=e=>e[e.length-1],O=(e,t,n)=>{let r=new Map;if(t===void 0)return r;let i=t.length+1,a=i+n,o=new Uint8Array(a*i).fill(n+1);for(let e=0;e<i;++e)o[e]=e;for(let e=1;e<a;++e)o[e*i]=e;return k(e,t,n,r,o,1,i,``),r},k=(e,t,n,r,i,a,o,s)=>{let c=a*o;key:for(let l of e.keys())if(l===T){let t=i[c-1];t<=n&&r.set(s,[e.get(l),t])}else{let c=a;for(let e=0;e<l.length;++e,++c){let r=l[e],a=o*c,s=a-o,u=i[a],d=Math.max(0,c-n-1),f=Math.min(o-1,c+n);for(let e=d;e<f;++e){let n=r!==t[e],o=i[s+e]+ +n,c=i[s+e+1]+1,l=i[a+e]+1,d=i[a+e+1]=Math.min(o,c,l);d<u&&(u=d)}if(u>n)continue key}k(e.get(l),t,n,r,i,c,o,s+l)}},A=class e{constructor(e=new Map,t=``){this._size=void 0,this._tree=e,this._prefix=t}atPrefix(t){if(!t.startsWith(this._prefix))throw Error(`Mismatched prefix`);let[n,r]=j(this._tree,t.slice(this._prefix.length));if(n===void 0){let[n,i]=I(r);for(let r of n.keys())if(r!==T&&r.startsWith(i)){let a=new Map;return a.set(r.slice(i.length),n.get(r)),new e(a,t)}}return new e(n,t)}clear(){this._size=void 0,this._tree.clear()}delete(e){return this._size=void 0,ne(this._tree,e)}entries(){return new E(this,S)}forEach(e){for(let[t,n]of this)e(t,n,this)}fuzzyGet(e,t){return O(this._tree,e,t)}get(e){let t=M(this._tree,e);return t===void 0?void 0:t.get(T)}has(e){let t=M(this._tree,e);return t!==void 0&&t.has(T)}keys(){return new E(this,C)}set(e,t){if(typeof e!=`string`)throw Error(`key must be a string`);return this._size=void 0,N(this._tree,e).set(T,t),this}get size(){if(this._size)return this._size;this._size=0;let e=this.entries();for(;!e.next().done;)this._size+=1;return this._size}update(e,t){if(typeof e!=`string`)throw Error(`key must be a string`);this._size=void 0;let n=N(this._tree,e);return n.set(T,t(n.get(T))),this}fetch(e,t){if(typeof e!=`string`)throw Error(`key must be a string`);this._size=void 0;let n=N(this._tree,e),r=n.get(T);return r===void 0&&n.set(T,r=t()),r}values(){return new E(this,w)}[Symbol.iterator](){return this.entries()}static from(t){let n=new e;for(let[e,r]of t)n.set(e,r);return n}static fromObject(t){return e.from(Object.entries(t))}},j=(e,t,n=[])=>{if(t.length===0||e==null)return[e,n];for(let r of e.keys())if(r!==T&&t.startsWith(r))return n.push([e,r]),j(e.get(r),t.slice(r.length),n);return n.push([e,t]),j(void 0,``,n)},M=(e,t)=>{if(t.length===0||e==null)return e;for(let n of e.keys())if(n!==T&&t.startsWith(n))return M(e.get(n),t.slice(n.length))},N=(e,t)=>{let n=t.length;outer:for(let r=0;e&&r<n;){for(let i of e.keys())if(i!==T&&t[r]===i[0]){let a=Math.min(n-r,i.length),o=1;for(;o<a&&t[r+o]===i[o];)++o;let s=e.get(i);if(o===i.length)e=s;else{let n=new Map;n.set(i.slice(o),s),e.set(t.slice(r,r+o),n),e.delete(i),e=n}r+=o;continue outer}let i=new Map;return e.set(t.slice(r),i),i}return e},ne=(e,t)=>{let[n,r]=j(e,t);if(n!==void 0){if(n.delete(T),n.size===0)P(r);else if(n.size===1){let[e,t]=n.entries().next().value;F(r,e,t)}}},P=e=>{if(e.length===0)return;let[t,n]=I(e);if(t.delete(n),t.size===0)P(e.slice(0,-1));else if(t.size===1){let[n,r]=t.entries().next().value;n!==T&&F(e.slice(0,-1),n,r)}},F=(e,t,n)=>{if(e.length===0)return;let[r,i]=I(e);r.set(i+t,n),r.delete(i)},I=e=>e[e.length-1],L=`or`,R=`and`,re=`and_not`,z=class e{constructor(e){if(e?.fields==null)throw Error(`MiniSearch: option "fields" must be provided`);let t=e.autoVacuum==null||e.autoVacuum===!0?G:e.autoVacuum;this._options={...V,...e,autoVacuum:t,searchOptions:{...H,...e.searchOptions||{}},autoSuggestOptions:{...ce,...e.autoSuggestOptions||{}}},this._index=new A,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldIds={},this._fieldLength=new Map,this._avgFieldLength=[],this._nextId=0,this._storedFields=new Map,this._dirtCount=0,this._currentVacuum=null,this._enqueuedVacuum=null,this._enqueuedVacuumConditions=W,this.addFields(this._options.fields)}add(e){let{extractField:t,stringifyField:n,tokenize:r,processTerm:i,fields:a,idField:o}=this._options,s=t(e,o);if(s==null)throw Error(`MiniSearch: document does not have ID field "${o}"`);if(this._idToShortId.has(s))throw Error(`MiniSearch: duplicate ID ${s}`);let c=this.addDocumentId(s);this.saveStoredFields(c,e);for(let o of a){let a=t(e,o);if(a==null)continue;let s=r(n(a,o),o),l=this._fieldIds[o],u=new Set(s).size;this.addFieldLength(c,l,this._documentCount-1,u);for(let e of s){let t=i(e,o);if(Array.isArray(t))for(let e of t)this.addTerm(l,c,e);else t&&this.addTerm(l,c,t)}}}addAll(e){for(let t of e)this.add(t)}addAllAsync(e,t={}){let{chunkSize:n=10}=t,r={chunk:[],promise:Promise.resolve()},{chunk:i,promise:a}=e.reduce(({chunk:e,promise:t},r,i)=>(e.push(r),(i+1)%n===0?{chunk:[],promise:t.then(()=>new Promise(e=>setTimeout(e,0))).then(()=>this.addAll(e))}:{chunk:e,promise:t}),r);return a.then(()=>this.addAll(i))}remove(e){let{tokenize:t,processTerm:n,extractField:r,stringifyField:i,fields:a,idField:o}=this._options,s=r(e,o);if(s==null)throw Error(`MiniSearch: document does not have ID field "${o}"`);let c=this._idToShortId.get(s);if(c==null)throw Error(`MiniSearch: cannot remove document with ID ${s}: it is not in the index`);for(let o of a){let a=r(e,o);if(a==null)continue;let s=t(i(a,o),o),l=this._fieldIds[o],u=new Set(s).size;this.removeFieldLength(c,l,this._documentCount,u);for(let e of s){let t=n(e,o);if(Array.isArray(t))for(let e of t)this.removeTerm(l,c,e);else t&&this.removeTerm(l,c,t)}}this._storedFields.delete(c),this._documentIds.delete(c),this._idToShortId.delete(s),this._fieldLength.delete(c),--this._documentCount}removeAll(e){if(e)for(let t of e)this.remove(t);else if(arguments.length>0)throw Error(`Expected documents to be present. Omit the argument to remove all documents.`);else this._index=new A,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldLength=new Map,this._avgFieldLength=[],this._storedFields=new Map,this._nextId=0}discard(e){let t=this._idToShortId.get(e);if(t==null)throw Error(`MiniSearch: cannot discard document with ID ${e}: it is not in the index`);this._idToShortId.delete(e),this._documentIds.delete(t),this._storedFields.delete(t),(this._fieldLength.get(t)||[]).forEach((e,n)=>{this.removeFieldLength(t,n,this._documentCount,e)}),this._fieldLength.delete(t),--this._documentCount,this._dirtCount+=1,this.maybeAutoVacuum()}maybeAutoVacuum(){if(this._options.autoVacuum===!1)return;let{minDirtFactor:e,minDirtCount:t,batchSize:n,batchWait:r}=this._options.autoVacuum;this.conditionalVacuum({batchSize:n,batchWait:r},{minDirtCount:t,minDirtFactor:e})}discardAll(e){let t=this._options.autoVacuum;try{this._options.autoVacuum=!1;for(let t of e)this.discard(t)}finally{this._options.autoVacuum=t}this.maybeAutoVacuum()}replace(e){let{idField:t,extractField:n}=this._options,r=n(e,t);this.discard(r),this.add(e)}vacuum(e={}){return this.conditionalVacuum(e)}conditionalVacuum(e,t){return this._currentVacuum?(this._enqueuedVacuumConditions=this._enqueuedVacuumConditions&&t,this._enqueuedVacuum??=this._currentVacuum.then(()=>{let t=this._enqueuedVacuumConditions;return this._enqueuedVacuumConditions=W,this.performVacuuming(e,t)}),this._enqueuedVacuum):this.vacuumConditionsMet(t)===!1?Promise.resolve():(this._currentVacuum=this.performVacuuming(e),this._currentVacuum)}async performVacuuming(e,t){let n=this._dirtCount;if(this.vacuumConditionsMet(t)){let t=e.batchSize||U.batchSize,r=e.batchWait||U.batchWait,i=1;for(let[e,n]of this._index){for(let[e,t]of n)for(let[r]of t)this._documentIds.has(r)||(t.size<=1?n.delete(e):t.delete(r));this._index.get(e).size===0&&this._index.delete(e),i%t===0&&await new Promise(e=>setTimeout(e,r)),i+=1}this._dirtCount-=n}await null,this._currentVacuum=this._enqueuedVacuum,this._enqueuedVacuum=null}vacuumConditionsMet(e){if(e==null)return!0;let{minDirtCount:t,minDirtFactor:n}=e;return t||=G.minDirtCount,n||=G.minDirtFactor,this.dirtCount>=t&&this.dirtFactor>=n}get isVacuuming(){return this._currentVacuum!=null}get dirtCount(){return this._dirtCount}get dirtFactor(){return this._dirtCount/(1+this._documentCount+this._dirtCount)}has(e){return this._idToShortId.has(e)}getStoredFields(e){let t=this._idToShortId.get(e);if(t!=null)return this._storedFields.get(t)}search(t,n={}){let{searchOptions:r}=this._options,i={...r,...n},a=this.executeQuery(t,n),o=[];for(let[e,{score:t,terms:n,match:r}]of a){let a=n.length||1,s={id:this._documentIds.get(e),score:t*a,terms:Object.keys(r),queryTerms:n,match:r};Object.assign(s,this._storedFields.get(e)),(i.filter==null||i.filter(s))&&o.push(s)}return t===e.wildcard&&i.boostDocument==null||o.sort(q),o}autoSuggest(e,t={}){t={...this._options.autoSuggestOptions,...t};let n=new Map;for(let{score:r,terms:i}of this.search(e,t)){let e=i.join(` `),t=n.get(e);t==null?n.set(e,{score:r,terms:i,count:1}):(t.score+=r,t.count+=1)}let r=[];for(let[e,{score:t,terms:i,count:a}]of n)r.push({suggestion:e,terms:i,score:t/a});return r.sort(q),r}get documentCount(){return this._documentCount}get termCount(){return this._index.size}static loadJSON(e,t){if(t==null)throw Error(`MiniSearch: loadJSON should be given the same options used when serializing the index`);return this.loadJS(JSON.parse(e),t)}static async loadJSONAsync(e,t){if(t==null)throw Error(`MiniSearch: loadJSON should be given the same options used when serializing the index`);return this.loadJSAsync(JSON.parse(e),t)}static getDefault(e){if(V.hasOwnProperty(e))return B(V,e);throw Error(`MiniSearch: unknown option "${e}"`)}static loadJS(e,t){let{index:n,documentIds:r,fieldLength:i,storedFields:a,serializationVersion:o}=e,s=this.instantiateMiniSearch(e,t);s._documentIds=Y(r),s._fieldLength=Y(i),s._storedFields=Y(a);for(let[e,t]of s._documentIds)s._idToShortId.set(t,e);for(let[e,t]of n){let n=new Map;for(let e of Object.keys(t)){let r=t[e];o===1&&(r=r.ds),n.set(parseInt(e,10),Y(r))}s._index.set(e,n)}return s}static async loadJSAsync(e,t){let{index:n,documentIds:r,fieldLength:i,storedFields:a,serializationVersion:o}=e,s=this.instantiateMiniSearch(e,t);s._documentIds=await X(r),s._fieldLength=await X(i),s._storedFields=await X(a);for(let[e,t]of s._documentIds)s._idToShortId.set(t,e);let c=0;for(let[e,t]of n){let n=new Map;for(let e of Object.keys(t)){let r=t[e];o===1&&(r=r.ds),n.set(parseInt(e,10),await X(r))}++c%1e3==0&&await Z(0),s._index.set(e,n)}return s}static instantiateMiniSearch(t,n){let{documentCount:r,nextId:i,fieldIds:a,averageFieldLength:o,dirtCount:s,serializationVersion:c}=t;if(c!==1&&c!==2)throw Error(`MiniSearch: cannot deserialize an index created with an incompatible version`);let l=new e(n);return l._documentCount=r,l._nextId=i,l._idToShortId=new Map,l._fieldIds=a,l._avgFieldLength=o,l._dirtCount=s||0,l._index=new A,l}executeQuery(t,n={}){if(t===e.wildcard)return this.executeWildcardQuery(n);if(typeof t!=`string`){let e={...n,...t,queries:void 0},r=t.queries.map(t=>this.executeQuery(t,e));return this.combineResults(r,e.combineWith)}let{tokenize:r,processTerm:i,searchOptions:a}=this._options,o={tokenize:r,processTerm:i,...a,...n},{tokenize:s,processTerm:c}=o,l=s(t).flatMap(e=>c(e)).filter(e=>!!e).map(se(o)).map(e=>this.executeQuerySpec(e,o));return this.combineResults(l,o.combineWith)}executeQuerySpec(e,t){let n={...this._options.searchOptions,...t},r=(n.fields||this._options.fields).reduce((e,t)=>({...e,[t]:B(n.boost,t)||1}),{}),{boostDocument:i,weights:a,maxFuzzy:o,bm25:s}=n,{fuzzy:c,prefix:l}={...H.weights,...a},u=this._index.get(e.term),d=this.termResults(e.term,e.term,1,e.termBoost,u,r,i,s),f,p;if(e.prefix&&(f=this._index.atPrefix(e.term)),e.fuzzy){let t=e.fuzzy===!0?.2:e.fuzzy,n=t<1?Math.min(o,Math.round(e.term.length*t)):t;n&&(p=this._index.fuzzyGet(e.term,n))}if(f)for(let[t,n]of f){let a=t.length-e.term.length;if(!a)continue;p?.delete(t);let o=l*t.length/(t.length+.3*a);this.termResults(e.term,t,o,e.termBoost,n,r,i,s,d)}if(p)for(let t of p.keys()){let[n,a]=p.get(t);if(!a)continue;let o=c*t.length/(t.length+a);this.termResults(e.term,t,o,e.termBoost,n,r,i,s,d)}return d}executeWildcardQuery(e){let t=new Map,n={...this._options.searchOptions,...e};for(let[e,r]of this._documentIds){let i=n.boostDocument?n.boostDocument(r,``,this._storedFields.get(e)):1;t.set(e,{score:i,terms:[],match:{}})}return t}combineResults(e,t=L){if(e.length===0)return new Map;let n=ie[t.toLowerCase()];if(!n)throw Error(`Invalid combination operator: ${t}`);return e.reduce(n)||new Map}toJSON(){let e=[];for(let[t,n]of this._index){let r={};for(let[e,t]of n)r[e]=Object.fromEntries(t);e.push([t,r])}return{documentCount:this._documentCount,nextId:this._nextId,documentIds:Object.fromEntries(this._documentIds),fieldIds:this._fieldIds,fieldLength:Object.fromEntries(this._fieldLength),averageFieldLength:this._avgFieldLength,storedFields:Object.fromEntries(this._storedFields),dirtCount:this._dirtCount,index:e,serializationVersion:2}}termResults(e,t,n,r,i,a,o,s,c=new Map){if(i==null)return c;for(let l of Object.keys(a)){let u=a[l],d=this._fieldIds[l],f=i.get(d);if(f==null)continue;let p=f.size,m=this._avgFieldLength[d];for(let i of f.keys()){if(!this._documentIds.has(i)){this.removeTerm(d,i,t),--p;continue}let a=o?o(this._documentIds.get(i),t,this._storedFields.get(i)):1;if(!a)continue;let h=f.get(i),g=this._fieldLength.get(i)[d],_=oe(h,p,this._documentCount,g,m,s),v=n*r*u*a*_,y=c.get(i);if(y){y.score+=v,le(y.terms,e);let n=B(y.match,t);n?n.push(l):y.match[t]=[l]}else c.set(i,{score:v,terms:[e],match:{[t]:[l]}})}}return c}addTerm(e,t,n){let r=this._index.fetch(n,J),i=r.get(e);if(i==null)i=new Map,i.set(t,1),r.set(e,i);else{let e=i.get(t);i.set(t,(e||0)+1)}}removeTerm(e,t,n){if(!this._index.has(n)){this.warnDocumentChanged(t,e,n);return}let r=this._index.fetch(n,J),i=r.get(e);i==null||i.get(t)==null?this.warnDocumentChanged(t,e,n):i.get(t)<=1?i.size<=1?r.delete(e):i.delete(t):i.set(t,i.get(t)-1),this._index.get(n).size===0&&this._index.delete(n)}warnDocumentChanged(e,t,n){for(let r of Object.keys(this._fieldIds))if(this._fieldIds[r]===t){this._options.logger(`warn`,`MiniSearch: document with ID ${this._documentIds.get(e)} has changed before removal: term "${n}" was not present in field "${r}". Removing a document after it has changed can corrupt the index!`,`version_conflict`);return}}addDocumentId(e){let t=this._nextId;return this._idToShortId.set(e,t),this._documentIds.set(t,e),this._documentCount+=1,this._nextId+=1,t}addFields(e){for(let t=0;t<e.length;t++)this._fieldIds[e[t]]=t}addFieldLength(e,t,n,r){let i=this._fieldLength.get(e);i??this._fieldLength.set(e,i=[]),i[t]=r;let a=(this._avgFieldLength[t]||0)*n+r;this._avgFieldLength[t]=a/(n+1)}removeFieldLength(e,t,n,r){if(n===1){this._avgFieldLength[t]=0;return}let i=this._avgFieldLength[t]*n-r;this._avgFieldLength[t]=i/(n-1)}saveStoredFields(e,t){let{storeFields:n,extractField:r}=this._options;if(n==null||n.length===0)return;let i=this._storedFields.get(e);i??this._storedFields.set(e,i={});for(let e of n){let n=r(t,e);n!==void 0&&(i[e]=n)}}};z.wildcard=Symbol(`*`);var B=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0,ie={[L]:(e,t)=>{for(let n of t.keys()){let r=e.get(n);if(r==null)e.set(n,t.get(n));else{let{score:e,terms:i,match:a}=t.get(n);r.score+=e,r.match=Object.assign(r.match,a),K(r.terms,i)}}return e},[R]:(e,t)=>{let n=new Map;for(let r of t.keys()){let i=e.get(r);if(i==null)continue;let{score:a,terms:o,match:s}=t.get(r);K(i.terms,o),n.set(r,{score:i.score+a,terms:i.terms,match:Object.assign(i.match,s)})}return n},[re]:(e,t)=>{for(let n of t.keys())e.delete(n);return e}},ae={k:1.2,b:.7,d:.5},oe=(e,t,n,r,i,a)=>{let{k:o,b:s,d:c}=a;return Math.log(1+(n-t+.5)/(t+.5))*(c+e*(o+1)/(e+o*(1-s+s*r/i)))},se=e=>(t,n,r)=>({term:t,fuzzy:typeof e.fuzzy==`function`?e.fuzzy(t,n,r):e.fuzzy||!1,prefix:typeof e.prefix==`function`?e.prefix(t,n,r):e.prefix===!0,termBoost:typeof e.boostTerm==`function`?e.boostTerm(t,n,r):1}),V={idField:`id`,extractField:(e,t)=>e[t],stringifyField:(e,t)=>e.toString(),tokenize:e=>e.split(ue),processTerm:e=>e.toLowerCase(),fields:void 0,searchOptions:void 0,storeFields:[],logger:(e,t)=>{typeof(console==null?void 0:console[e])==`function`&&console[e](t)},autoVacuum:!0},H={combineWith:L,prefix:!1,fuzzy:!1,maxFuzzy:6,boost:{},weights:{fuzzy:.45,prefix:.375},bm25:ae},ce={combineWith:R,prefix:(e,t,n)=>t===n.length-1},U={batchSize:1e3,batchWait:10},W={minDirtFactor:.1,minDirtCount:20},G={...U,...W},le=(e,t)=>{e.includes(t)||e.push(t)},K=(e,t)=>{for(let n of t)e.includes(n)||e.push(n)},q=({score:e},{score:t})=>t-e,J=()=>new Map,Y=e=>{let t=new Map;for(let n of Object.keys(e))t.set(parseInt(n,10),e[n]);return t},X=async e=>{let t=new Map,n=0;for(let r of Object.keys(e))t.set(parseInt(r,10),e[r]),++n%1e3==0&&await Z(0);return t},Z=e=>new Promise(t=>setTimeout(t,e)),ue=/[\n\r\p{Z}\p{P}]+/u;function de(e){return(e.match(/[\u4e00-\u9fff]|[a-zA-Z0-9]+/g)||[]).map(e=>e.toLowerCase())}var fe=i((e,t)=>({sidebar:null,sidebarLoading:!1,sidebarLang:null,currentPath:null,currentContent:null,contentLoading:!1,contentError:null,searchQuery:``,searchResults:[],searchIndex:null,searchDocuments:[],searchLang:null,loadSidebar:async n=>{if(!(t().sidebarLang===n&&t().sidebar)){e({sidebarLoading:!0});try{let t=await fetch(`/docs/sidebar-${n}.json`);if(!t.ok)throw Error(`HTTP ${t.status}`);e({sidebar:await t.json(),sidebarLoading:!1,sidebarLang:n})}catch{e({sidebar:null,sidebarLoading:!1,sidebarLang:null})}}},loadDocument:async(n,r)=>{e({contentLoading:!0,contentError:null,currentPath:n});try{let i=await fetch(`/docs/${r===`zh`?`cn`:`en`}${n}.md`);if(!i.ok)throw Error(`HTTP ${i.status}`);let a=await i.text();t().currentPath===n&&e({currentContent:a,contentLoading:!1})}catch{t().currentPath===n&&e({currentContent:null,contentLoading:!1,contentError:n})}},initSearchIndex:async n=>{if(!(t().searchLang===n&&t().searchIndex))try{let t=await fetch(`/docs/search-index-${n}.json`);if(!t.ok)return;let r=await t.json(),i=new z({fields:[`title`,`body`],storeFields:[`title`,`body`],tokenize:de,searchOptions:{prefix:!0,fuzzy:.2,boost:{title:2}}});i.addAll(r),e({searchIndex:i,searchDocuments:[],searchLang:n})}catch{}},search:n=>{let{searchIndex:r}=t();if(e({searchQuery:n}),!n.trim()||!r){e({searchResults:[]});return}e({searchResults:r.search(n,{prefix:!0,fuzzy:.2}).slice(0,20).map(e=>{let t=e,r=t.title||e.id,i=t.body||``,a=i.toLowerCase(),o=n.toLowerCase(),s=a.indexOf(o),c;if(s>=0){let e=Math.max(0,s-40),t=Math.min(i.length,s+n.length+80);c=(e>0?`...`:``)+i.slice(e,t)+(t<i.length?`...`:``)}else c=i.slice(0,120)+(i.length>120?`...`:``);return{id:e.id,title:r,score:e.score,excerpt:c}})})},setCurrentPath:t=>e({currentPath:t}),clearSearch:()=>e({searchQuery:``,searchResults:[]})})),Q=o(),pe=d;function me(e){let t=e.split(`
|
|
2
2
|
`),n=[],r=!1;for(let e of t){if(e.startsWith("```")){r=!r;continue}if(r)continue;let t=e.match(/^##\s+(.+)$/),i=e.match(/^###\s+(.+)$/),a=i||t;if(!a)continue;let o=a[1].trim(),s=o.toLowerCase().replace(/[^\w\u4e00-\u9fff\s-]/g,``).replace(/\s+/g,`-`);n.push({id:s,text:o,level:i?3:2})}return n}function he({className:e,children:t,...n}){let r=u(e=>e.resolved),i=(e||``).match(/language-(\w+)/),a=String(t).replace(/\n$/,``);return i?(0,Q.jsx)(`div`,{className:`relative group my-3`,children:(0,Q.jsx)(pe,{style:r===`dark`?h:b,language:i[1],PreTag:`div`,customStyle:{margin:0,borderRadius:`8px`,fontSize:`13px`,lineHeight:`1.6`},codeTagProps:{style:{background:`transparent`,textShadow:`none`}},children:a})}):(0,Q.jsx)(`code`,{className:`markdown-inline-code`,...n,children:t})}function ge({content:e,onNavigate:t}){let{t:n}=a(),r=(0,x.useMemo)(()=>me(e),[e]),[i,o]=(0,x.useState)(``),l=(0,x.useRef)(null);(0,x.useEffect)(()=>{l.current?.scrollTo(0,0)},[e]),(0,x.useEffect)(()=>{if(r.length===0)return;let e=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting&&o(t.target.id)},{rootMargin:`-80px 0px -80% 0px`});for(let t of r){let n=document.getElementById(t.id);n&&e.observe(n)}return()=>e.disconnect()},[r]);let u=(0,x.useCallback)(e=>{let n=e.currentTarget.getAttribute(`href`);n&&n.startsWith(`/cli/`)&&(e.preventDefault(),t(n))},[t]);return(0,Q.jsxs)(`div`,{className:`flex gap-6 h-full`,children:[(0,Q.jsx)(`div`,{ref:l,className:`flex-1 min-w-0 overflow-y-auto px-6 py-6`,children:(0,Q.jsx)(`article`,{className:`max-w-3xl mx-auto docs-markdown`,children:(0,Q.jsx)(c,{remarkPlugins:[s],components:{code:he,h2:({children:e,...t})=>{let n=String(e).toLowerCase().replace(/[^\w\u4e00-\u9fff\s-]/g,``).replace(/\s+/g,`-`);return(0,Q.jsx)(`h2`,{id:n,className:`text-xl font-semibold mt-8 mb-3 text-text-primary scroll-mt-20`,...t,children:e})},h3:({children:e,...t})=>{let n=String(e).toLowerCase().replace(/[^\w\u4e00-\u9fff\s-]/g,``).replace(/\s+/g,`-`);return(0,Q.jsx)(`h3`,{id:n,className:`text-lg font-medium mt-6 mb-2 text-text-primary scroll-mt-20`,...t,children:e})},h1:({children:e,...t})=>(0,Q.jsx)(`h1`,{className:`text-2xl font-bold mb-4 text-text-primary`,...t,children:e}),p:({children:e,...t})=>(0,Q.jsx)(`p`,{className:`text-sm leading-7 text-text-secondary mb-4`,...t,children:e}),a:({children:e,href:t,...n})=>(0,Q.jsx)(`a`,{href:t,onClick:t?.startsWith(`/cli/`)?u:void 0,className:`text-accent-brand hover:underline`,target:t?.startsWith(`http`)?`_blank`:void 0,rel:t?.startsWith(`http`)?`noopener noreferrer`:void 0,...n,children:e}),ul:({children:e,...t})=>(0,Q.jsx)(`ul`,{className:`list-disc pl-6 mb-4 space-y-1 text-sm text-text-secondary`,...t,children:e}),ol:({children:e,...t})=>(0,Q.jsx)(`ol`,{className:`list-decimal pl-6 mb-4 space-y-1 text-sm text-text-secondary`,...t,children:e}),blockquote:({children:e,...t})=>(0,Q.jsx)(`blockquote`,{className:`border-l-4 border-border-primary pl-4 my-4 text-sm text-text-tertiary italic`,...t,children:e}),table:({children:e,...t})=>(0,Q.jsx)(`div`,{className:`overflow-x-auto my-4`,children:(0,Q.jsx)(`table`,{className:`min-w-full text-sm border-collapse`,...t,children:e})}),th:({children:e,...t})=>(0,Q.jsx)(`th`,{className:`border border-border-primary px-3 py-2 bg-bg-secondary text-left font-medium text-text-primary`,...t,children:e}),td:({children:e,...t})=>(0,Q.jsx)(`td`,{className:`border border-border-primary px-3 py-2 text-text-secondary`,...t,children:e}),hr:()=>(0,Q.jsx)(`hr`,{className:`my-6 border-border-primary`}),img:({src:e,alt:t,...n})=>(0,Q.jsx)(`img`,{src:e,alt:t,className:`max-w-full rounded-lg my-4`,loading:`lazy`,...n})},children:e})})}),r.length>0&&(0,Q.jsx)(`div`,{className:`hidden xl:block w-56 flex-shrink-0 py-6 pr-4`,children:(0,Q.jsxs)(`div`,{className:`sticky top-6`,children:[(0,Q.jsx)(`h4`,{className:`text-xs font-semibold text-text-tertiary uppercase tracking-wider mb-3`,children:n(`docs.toc`)}),(0,Q.jsx)(`nav`,{className:`space-y-1`,children:r.map(e=>(0,Q.jsx)(`a`,{href:`#${e.id}`,onClick:t=>{t.preventDefault(),document.getElementById(e.id)?.scrollIntoView({behavior:`smooth`})},className:`block text-xs py-0.5 transition-colors truncate
|
|
3
3
|
${e.level===3?`pl-3`:``}
|
|
4
4
|
${i===e.id?`text-accent-brand font-medium`:`text-text-tertiary hover:text-text-secondary`}`,children:e.text},e.id))})]})})]})}function _e({query:e,results:t,onSelect:n}){let{t:r}=a();return e.trim()?t.length===0?(0,Q.jsx)(`div`,{className:`flex-1 flex flex-col items-center justify-center`,children:(0,Q.jsxs)(`div`,{className:`text-center`,children:[(0,Q.jsx)(f,{size:40,className:`mx-auto mb-4 text-text-tertiary opacity-30`}),(0,Q.jsx)(`div`,{className:`text-text-secondary text-sm mb-1`,children:r(`docs.search.noResults`)}),(0,Q.jsxs)(`div`,{className:`text-text-tertiary text-xs`,children:[`"`,e,`"`]})]})}):(0,Q.jsxs)(`div`,{className:`flex-1 overflow-y-auto px-6 py-6`,children:[(0,Q.jsx)(`p`,{className:`text-xs font-medium text-text-tertiary uppercase tracking-wider mb-4`,children:r(`docs.search.resultsCount`).replace(`{count}`,String(t.length))}),(0,Q.jsx)(`div`,{className:`space-y-2 max-w-3xl`,children:t.map(e=>(0,Q.jsxs)(`button`,{onClick:()=>n(e.id),className:`w-full text-left p-4 rounded-xl border border-border-default hover:border-accent-brand/40 hover:bg-bg-secondary/60 transition-all`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 mb-1.5`,children:[(0,Q.jsx)(v,{size:14,className:`text-text-tertiary flex-shrink-0`}),(0,Q.jsx)(`span`,{className:`text-sm font-medium text-text-primary truncate`,children:e.title})]}),(0,Q.jsx)(`p`,{className:`text-xs text-text-tertiary line-clamp-2 pl-[22px] leading-relaxed`,children:e.excerpt})]},e.id))})]}):(0,Q.jsx)(Q.Fragment,{})}function $({item:e,currentPath:t,onSelect:n,depth:r}){let[i,a]=(0,x.useState)(!e.collapsed),o=e.items&&e.items.length>0,s=e.link===t,c=o&&!e.link,l=(0,x.useCallback)(()=>{e.link&&n(e.link),o&&a(e=>!e)},[e.link,o,n]);return c&&r===0?(0,Q.jsxs)(`div`,{className:`mt-4 first:mt-0`,children:[(0,Q.jsxs)(`button`,{onClick:l,className:[`w-full text-left flex items-center gap-1.5 px-4 py-2 text-xs`,`font-semibold text-text-tertiary uppercase tracking-wider`,`hover:text-text-secondary transition-colors`].join(` `),children:[(0,Q.jsx)(`span`,{className:`flex-shrink-0 w-4 h-4 flex items-center justify-center`,children:i?(0,Q.jsx)(g,{size:12}):(0,Q.jsx)(y,{size:12})}),(0,Q.jsx)(`span`,{className:`truncate`,children:e.text})]}),i&&(0,Q.jsx)(`div`,{children:e.items.map((e,i)=>(0,Q.jsx)($,{item:e,currentPath:t,onSelect:n,depth:r+1},e.link||`${e.text}-${i}`))})]}):(0,Q.jsxs)(`div`,{children:[(0,Q.jsxs)(`button`,{onClick:l,className:`w-full text-left flex items-center gap-1.5 py-1.5 rounded-lg text-[13px] transition-colors
|