@band-app/server 0.30.1 → 0.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/{TerminalPanel-CYc7wmeE.js → TerminalPanel-B7w-MXq6.js} +1 -1
- package/dist/client/assets/{_basePickBy-DSFTNllf.js → _basePickBy-MOPnIDNU.js} +1 -1
- package/dist/client/assets/{_baseUniq-DnkIfali.js → _baseUniq-Dvgd7LC-.js} +1 -1
- package/dist/client/assets/{arc-yqr-IZtS.js → arc-CLKtuYIQ.js} +1 -1
- package/dist/client/assets/{architectureDiagram-VXUJARFQ-DgI9TKhb.js → architectureDiagram-VXUJARFQ-2uXtcrIY.js} +1 -1
- package/dist/client/assets/{blockDiagram-VD42YOAC-BGOVIb7o.js → blockDiagram-VD42YOAC-BVsh28c_.js} +1 -1
- package/dist/client/assets/{c4Diagram-YG6GDRKO-iztuATa5.js → c4Diagram-YG6GDRKO-7c05Vgq2.js} +1 -1
- package/dist/client/assets/channel-C3O7_aZ0.js +1 -0
- package/dist/client/assets/{chunk-4BX2VUAB-CcUWoJOh.js → chunk-4BX2VUAB-BE-3fdKG.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-CLZYywVn.js → chunk-55IACEB6-BHogGWxY.js} +1 -1
- package/dist/client/assets/{chunk-B4BG7PRW-DjGod5fi.js → chunk-B4BG7PRW-vTUbHTLu.js} +1 -1
- package/dist/client/assets/{chunk-DI55MBZ5-rvGroe_f.js → chunk-DI55MBZ5-CZc3Izff.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-DaPnkf6C.js → chunk-FMBD7UC4-DJ2VRMnr.js} +1 -1
- package/dist/client/assets/{chunk-QN33PNHL-0f_dQb97.js → chunk-QN33PNHL-fRdq2MR_.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-V5my3DmE.js → chunk-QZHKN3VN-CuEMRzZD.js} +1 -1
- package/dist/client/assets/{chunk-TZMSLE5B-BtkkmYb5.js → chunk-TZMSLE5B-D72a0Zdw.js} +1 -1
- package/dist/client/assets/classDiagram-2ON5EDUG-BoiZPwoN.js +1 -0
- package/dist/client/assets/classDiagram-v2-WZHVMYZB-BoiZPwoN.js +1 -0
- package/dist/client/assets/clone-lHwRbEeN.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-Cmx6KOyO.js → cose-bilkent-S5V4N54A-BKtPu1zs.js} +1 -1
- package/dist/client/assets/{dagre-6UL2VRFP-Bka4HPUz.js → dagre-6UL2VRFP-B9QQeVOI.js} +1 -1
- package/dist/client/assets/{diagram-PSM6KHXK-CD7rmMsc.js → diagram-PSM6KHXK-B8HYQLMw.js} +1 -1
- package/dist/client/assets/{diagram-QEK2KX5R-oiADiv14.js → diagram-QEK2KX5R-ComYD9MH.js} +1 -1
- package/dist/client/assets/{diagram-S2PKOQOG-B4Uae-nx.js → diagram-S2PKOQOG-BY9m2nHh.js} +1 -1
- package/dist/client/assets/{erDiagram-Q2GNP2WA-BvFMCk4I.js → erDiagram-Q2GNP2WA-BNvaDjit.js} +1 -1
- package/dist/client/assets/{flowDiagram-NV44I4VS-BTNbN1IS.js → flowDiagram-NV44I4VS-Ddpvl-vl.js} +1 -1
- package/dist/client/assets/{ganttDiagram-JELNMOA3-oGw7ex14.js → ganttDiagram-JELNMOA3-DtLpVIoc.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-V2S2FVAM-ANBYCIGh.js → gitGraphDiagram-V2S2FVAM-DQF0HBF1.js} +1 -1
- package/dist/client/assets/{graph-CcgcxFwc.js → graph-C781x5wO.js} +1 -1
- package/dist/client/assets/{highlighted-body-B3W2YXNL-CB6TXvrA.js → highlighted-body-B3W2YXNL-CiFHkG2b.js} +1 -1
- package/dist/client/assets/{index-CNK9CFgH.js → index-BBCldE3w.js} +1 -1
- package/dist/client/assets/{index-B6XNXoaL.js → index-BQJE_ylT.js} +1 -1
- package/dist/client/assets/{index-jADn9moZ.js → index-BQaxF9MG.js} +1 -1
- package/dist/client/assets/{index-CX6RhqKm.js → index-BR41myYB.js} +1 -1
- package/dist/client/assets/{index-D3oXjM3u.js → index-BTP6G260.js} +1 -1
- package/dist/client/assets/{index-BAmJ0GKU.js → index-BVLZtCO_.js} +1 -1
- package/dist/client/assets/{index-DbPjX4ZE.js → index-Bg6O6yab.js} +1 -1
- package/dist/client/assets/{index-CCYZ9TFO.js → index-C9uXadXD.js} +1 -1
- package/dist/client/assets/{index-AmFSOCK4.js → index-Ca5qw4bu.js} +1 -1
- package/dist/client/assets/{index-oktth6Eb.js → index-Co3FYAz1.js} +1 -1
- package/dist/client/assets/{index-DGfblNX8.js → index-CoD9Za6I.js} +1 -1
- package/dist/client/assets/{index-DbMvNJEz.js → index-CsCNs38S.js} +1 -1
- package/dist/client/assets/{index-DwfeHYo6.js → index-D8ecQsfM.js} +1 -1
- package/dist/client/assets/{index-DcH_gVmD.js → index-Dhu83XDb.js} +1 -1
- package/dist/client/assets/{index-DfpgVgGw.js → index-Dk3mw2MP.js} +1 -1
- package/dist/client/assets/{index-CCvSBgbq.js → index-Dmw4xB4j.js} +1 -1
- package/dist/client/assets/{index-DW6uLGze.js → index-DwZk_cus.js} +1 -1
- package/dist/client/assets/{index-UPQzA7yb.js → index-xIKGJ3n2.js} +1 -1
- package/dist/client/assets/{infoDiagram-HS3SLOUP-D90X75Z3.js → infoDiagram-HS3SLOUP-BMWXVFwl.js} +1 -1
- package/dist/client/assets/{journeyDiagram-XKPGCS4Q-BgChwq0x.js → journeyDiagram-XKPGCS4Q-BI2_OL4h.js} +1 -1
- package/dist/client/assets/{kanban-definition-3W4ZIXB7-Di1Xrs0h.js → kanban-definition-3W4ZIXB7-DOsG8dYx.js} +1 -1
- package/dist/client/assets/{layout-BvXbPDLJ.js → layout-Bbvi54cd.js} +1 -1
- package/dist/client/assets/main-D_80GG4H.css +1 -0
- package/dist/client/assets/{main-DUGGQWmn.js → main-DraI_2WE.js} +225 -225
- package/dist/client/assets/{mindmap-definition-VGOIOE7T-CiiV7X0E.js → mindmap-definition-VGOIOE7T-D4Sd_Kfu.js} +1 -1
- package/dist/client/assets/{pieDiagram-ADFJNKIX-C5XzwLyG.js → pieDiagram-ADFJNKIX-C7h-nB1m.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-AYHSOK5B-BwkGtnp5.js → quadrantDiagram-AYHSOK5B-Dy596AJL.js} +1 -1
- package/dist/client/assets/{requirementDiagram-UZGBJVZJ-BzEtQL4i.js → requirementDiagram-UZGBJVZJ-xscRQbHJ.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-TZEHDZUN-BkqqCKr3.js → sankeyDiagram-TZEHDZUN-DCi7vP32.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-WL72ISMW-D_gZ_Lt0.js → sequenceDiagram-WL72ISMW-qUhe9Cbc.js} +1 -1
- package/dist/client/assets/{stateDiagram-FKZM4ZOC-DEDS5Lv4.js → stateDiagram-FKZM4ZOC-DSmbkZ_d.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-4FDKWEC3-BsPlpajy.js +1 -0
- package/dist/client/assets/{timeline-definition-IT6M3QCI-DalCe-B5.js → timeline-definition-IT6M3QCI-C6Z_s_Vx.js} +1 -1
- package/dist/client/assets/{treemap-GDKQZRPO-CtoL0e4U.js → treemap-GDKQZRPO-Dn8bXpzH.js} +1 -1
- package/dist/client/assets/workspace._workspaceId-BMWfOwwz.js +1 -0
- package/dist/client/assets/{workspace._workspaceId-CouwLO7q.js → workspace._workspaceId-X6y8HU1f.js} +1 -1
- package/dist/client/assets/{xychartDiagram-PRI3JC2R-C3bXo21u.js → xychartDiagram-PRI3JC2R-Bo0o11Hv.js} +1 -1
- package/dist/openapi.json +37 -0
- package/dist/server/assets/{TerminalPanel-Br6bnerp.js → TerminalPanel-DwiK0a7O.js} +27 -24
- package/dist/server/assets/{_basePickBy-BbVdfJJx.js → _basePickBy-BI_h9zNZ.js} +2 -2
- package/dist/server/assets/{_baseUniq-DZlTc9mr.js → _baseUniq-BsVb1Z1a.js} +1 -1
- package/dist/server/assets/_tanstack-start-manifest_v-tp111Oi_.js +4 -0
- package/dist/server/assets/{arc-CI6FZKZK.js → arc-5WhmOOvK.js} +1 -1
- package/dist/server/assets/{architecture-7HQA4BMR-C5ydTPUl.js → architecture-7HQA4BMR-Cj4ZRaay.js} +6 -6
- package/dist/server/assets/{architectureDiagram-VXUJARFQ-5uniqAHc.js → architectureDiagram-VXUJARFQ-DkchSxdX.js} +6 -6
- package/dist/server/assets/{blockDiagram-VD42YOAC-ZfA3oZiS.js → blockDiagram-VD42YOAC-Dg_flni_.js} +6 -6
- package/dist/server/assets/{c4Diagram-YG6GDRKO-CIA5eVV6.js → c4Diagram-YG6GDRKO-DsFHmTD3.js} +2 -2
- package/dist/server/assets/{channel-Cx4VskGi.js → channel-CKjBHgWA.js} +1 -1
- package/dist/server/assets/{chunk-4BX2VUAB-Ded1GGo-.js → chunk-4BX2VUAB-BnMplOsV.js} +1 -1
- package/dist/server/assets/{chunk-55IACEB6-BwrewJPk.js → chunk-55IACEB6-BW3-4FCm.js} +1 -1
- package/dist/server/assets/{chunk-B4BG7PRW-6-52BPtW.js → chunk-B4BG7PRW-44B9JfnQ.js} +4 -4
- package/dist/server/assets/{chunk-DI55MBZ5-DFS2_qc9.js → chunk-DI55MBZ5-xUtiLewM.js} +3 -3
- package/dist/server/assets/{chunk-FMBD7UC4-CHuRNLFJ.js → chunk-FMBD7UC4-LQJJD-on.js} +1 -1
- package/dist/server/assets/{chunk-QN33PNHL-BvqSEFKx.js → chunk-QN33PNHL-Bz6JspT7.js} +1 -1
- package/dist/server/assets/{chunk-QZHKN3VN-BrGUOJtT.js → chunk-QZHKN3VN-CqbN5Hbm.js} +1 -1
- package/dist/server/assets/{chunk-TZMSLE5B-CM-vVEKG.js → chunk-TZMSLE5B-CLfUYKJu.js} +1 -1
- package/dist/server/assets/{classDiagram-v2-WZHVMYZB-vj4N4uTP.js → classDiagram-2ON5EDUG-CnPtqi4k.js} +5 -5
- package/dist/server/assets/{classDiagram-2ON5EDUG-vj4N4uTP.js → classDiagram-v2-WZHVMYZB-CnPtqi4k.js} +5 -5
- package/dist/server/assets/{clone-FpW231EY.js → clone-BBTPQ6Eb.js} +1 -1
- package/dist/server/assets/{cose-bilkent-S5V4N54A-KcHAEwzJ.js → cose-bilkent-S5V4N54A-B9ae2Qdn.js} +1 -1
- package/dist/server/assets/{dagre-6UL2VRFP-CQWT1qH1.js → dagre-6UL2VRFP-B7jTJSLw.js} +6 -6
- package/dist/server/assets/{diagram-PSM6KHXK-C522aWwF.js → diagram-PSM6KHXK-zpQZfPMx.js} +7 -7
- package/dist/server/assets/{diagram-QEK2KX5R-AmngkeIE.js → diagram-QEK2KX5R-CIAMWYgF.js} +6 -6
- package/dist/server/assets/{diagram-S2PKOQOG-BM39hxHa.js → diagram-S2PKOQOG-DmG_O45F.js} +6 -6
- package/dist/server/assets/{erDiagram-Q2GNP2WA-BKMMfe3p.js → erDiagram-Q2GNP2WA-eOuplDm8.js} +4 -4
- package/dist/server/assets/{flowDiagram-NV44I4VS-BfixH-Db.js → flowDiagram-NV44I4VS-D936EXJm.js} +5 -5
- package/dist/server/assets/{ganttDiagram-JELNMOA3-DFMW13wi.js → ganttDiagram-JELNMOA3-BiN9iSoE.js} +1 -1
- package/dist/server/assets/{gitGraph-G5XIXVHT-DCO9Wzl8.js → gitGraph-G5XIXVHT-CEvzHY0m.js} +6 -6
- package/dist/server/assets/{gitGraphDiagram-V2S2FVAM-CojxDa8_.js → gitGraphDiagram-V2S2FVAM-BySu09rG.js} +7 -7
- package/dist/server/assets/{graph-DX0Ld9Ij.js → graph-7Z3Uekg6.js} +2 -2
- package/dist/server/assets/{highlighted-body-B3W2YXNL-BRJTScpo.js → highlighted-body-B3W2YXNL-D96wFQIF.js} +1 -1
- package/dist/server/assets/{index-B70OKozW.js → index--KaT9H0k.js} +5 -5
- package/dist/server/assets/{index-1fKvU2GD.js → index-0NB-RPox.js} +2 -2
- package/dist/server/assets/{index-C9NLW19U.js → index-B2cRwRII.js} +2 -2
- package/dist/server/assets/{index-BPhNydFp.js → index-BJJ8j1rg.js} +2 -2
- package/dist/server/assets/{index-DsUEML0Q.js → index-BTtOxXlZ.js} +3 -3
- package/dist/server/assets/{index-BJCGggpH.js → index-BeVYh61F.js} +2 -2
- package/dist/server/assets/{index-CGahi9V_.js → index-BstlKcBR.js} +4 -4
- package/dist/server/assets/{index-BJtDnGxq.js → index-C2HXhI72.js} +2 -2
- package/dist/server/assets/{index-B0xGaLrl.js → index-C9azpIfZ.js} +3 -3
- package/dist/server/assets/{index-BFGzZbup.js → index-CIQ2H-15.js} +2 -2
- package/dist/server/assets/{index-Cd5puaI6.js → index-CTx1RpR6.js} +2 -2
- package/dist/server/assets/{index-DCgp2ft7.js → index-CdB_dmgU.js} +1 -1
- package/dist/server/assets/{index-C0OatepH.js → index-CvolrjMO.js} +2 -2
- package/dist/server/assets/{index-BD2aoqcU.js → index-DKHXjVjQ.js} +1 -1
- package/dist/server/assets/{index-BqzKD5E_.js → index-Dh1M5dNP.js} +2 -2
- package/dist/server/assets/{index-7EU1eTTa.js → index-OaYzTlpS.js} +2 -2
- package/dist/server/assets/{index-Cwe7nbJw.js → index-P4B7a8It.js} +2 -2
- package/dist/server/assets/{index-y8Aubw3W.js → index-a62bFj9q.js} +5 -5
- package/dist/server/assets/{info-VBDWY6EO-BUsqumC5.js → info-VBDWY6EO-KF3o2F_X.js} +6 -6
- package/dist/server/assets/{infoDiagram-HS3SLOUP--nKUIx4y.js → infoDiagram-HS3SLOUP-tw47oYSh.js} +5 -5
- package/dist/server/assets/{journeyDiagram-XKPGCS4Q-KjVGeKmm.js → journeyDiagram-XKPGCS4Q-dlsRbD68.js} +4 -4
- package/dist/server/assets/{kanban-definition-3W4ZIXB7-aISJLxn5.js → kanban-definition-3W4ZIXB7-BY-i-k2L.js} +2 -2
- package/dist/server/assets/{layout-CzeG7EPR.js → layout-CBNJVKY7.js} +4 -4
- package/dist/server/assets/{mermaid-3ZIDBTTL-BTOUM0ev.js → mermaid-3ZIDBTTL-OXquaWS7.js} +1 -1
- package/dist/server/assets/{mermaid-parser.core-BoGFLsBJ.js → mermaid-parser.core-BJPps3BL.js} +11 -11
- package/dist/server/assets/{mindmap-definition-VGOIOE7T--AIwUu6M.js → mindmap-definition-VGOIOE7T-BhmQKdg9.js} +3 -3
- package/dist/server/assets/{packet-DYOGHKS2-BTGkKC22.js → packet-DYOGHKS2-pVltsqVu.js} +6 -6
- package/dist/server/assets/{pie-VRWISCQL-BjDIbOyB.js → pie-VRWISCQL-Drk2bcq1.js} +6 -6
- package/dist/server/assets/{pieDiagram-ADFJNKIX-VNMmF9Za.js → pieDiagram-ADFJNKIX-CaxKfDJS.js} +7 -7
- package/dist/server/assets/{quadrantDiagram-AYHSOK5B-re6uOzo4.js → quadrantDiagram-AYHSOK5B-Ca2xEu2r.js} +1 -1
- package/dist/server/assets/{radar-ZZBFDIW7-bi1qVKOM.js → radar-ZZBFDIW7-ButuOJZN.js} +6 -6
- package/dist/server/assets/{requirementDiagram-UZGBJVZJ-BImsyUnt.js → requirementDiagram-UZGBJVZJ-Yu709R_p.js} +3 -3
- package/dist/server/assets/{router-B7-XKvBR.js → router-CijxukSe.js} +553 -246
- package/dist/server/assets/{sankeyDiagram-TZEHDZUN-BdxA5ccl.js → sankeyDiagram-TZEHDZUN-B-IfXZ0G.js} +1 -1
- package/dist/server/assets/{sequenceDiagram-WL72ISMW-De8W2AXi.js → sequenceDiagram-WL72ISMW-D1bV4VYq.js} +3 -3
- package/dist/server/assets/{stateDiagram-FKZM4ZOC-CslmqvhX.js → stateDiagram-FKZM4ZOC-vLFbsrNj.js} +8 -8
- package/dist/server/assets/{stateDiagram-v2-4FDKWEC3-BXVdfPdk.js → stateDiagram-v2-4FDKWEC3-BKTZFre2.js} +4 -4
- package/dist/server/assets/{timeline-definition-IT6M3QCI-BrEcv0X7.js → timeline-definition-IT6M3QCI-BoTxx0bm.js} +2 -2
- package/dist/server/assets/{treemap-GDKQZRPO-IZvjxjwq.js → treemap-GDKQZRPO-CAmm-Xwb.js} +6 -6
- package/dist/server/assets/{workspace._workspaceId-DSom1njg.js → workspace._workspaceId-C-QhWzy_.js} +2 -2
- package/dist/server/assets/{workspace._workspaceId-DMfwrjZz.js → workspace._workspaceId-DivWn3Sp.js} +1 -1
- package/dist/server/assets/{xychartDiagram-PRI3JC2R-B99wGKft.js → xychartDiagram-PRI3JC2R-XawkKMC7.js} +1 -1
- package/dist/server/server.js +2 -2
- package/dist/start-server.mjs +650 -363
- package/package.json +6 -4
- package/dist/client/assets/channel-BkKcGPNX.js +0 -1
- package/dist/client/assets/classDiagram-2ON5EDUG-31IVI--d.js +0 -1
- package/dist/client/assets/classDiagram-v2-WZHVMYZB-31IVI--d.js +0 -1
- package/dist/client/assets/clone-TmgJgLyY.js +0 -1
- package/dist/client/assets/main-CkQFvJn7.css +0 -1
- package/dist/client/assets/stateDiagram-v2-4FDKWEC3-2jb1quoy.js +0 -1
- package/dist/client/assets/workspace._workspaceId-Tn_ATtTD.js +0 -1
- package/dist/server/assets/_tanstack-start-manifest_v-DKMimfmd.js +0 -4
|
@@ -14376,7 +14376,7 @@ function PopoverContent({
|
|
|
14376
14376
|
align,
|
|
14377
14377
|
sideOffset,
|
|
14378
14378
|
className: cn$2(
|
|
14379
|
-
"ease-out duration-150 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-hidden data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
|
14379
|
+
"ease-out duration-150 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md outline-hidden data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
|
14380
14380
|
className
|
|
14381
14381
|
),
|
|
14382
14382
|
...props
|
|
@@ -14792,10 +14792,10 @@ function DialogOverlay({
|
|
|
14792
14792
|
);
|
|
14793
14793
|
}
|
|
14794
14794
|
const DIALOG_CONTENT_VARIANTS = {
|
|
14795
|
-
default: "ease-out fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border bg-background p-6 shadow-lg duration-200 outline-none data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 sm:max-w-lg",
|
|
14795
|
+
default: "ease-out fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border border-border bg-background p-6 shadow-lg duration-200 outline-none data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 sm:max-w-lg",
|
|
14796
14796
|
"bottom-sheet": [
|
|
14797
14797
|
// Shared
|
|
14798
|
-
"ease-out fixed z-50 flex flex-col bg-background shadow-lg duration-200 outline-none",
|
|
14798
|
+
"ease-out fixed z-50 flex flex-col border-border bg-background shadow-lg duration-200 outline-none",
|
|
14799
14799
|
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0",
|
|
14800
14800
|
// Mobile (< lg): bottom drawer
|
|
14801
14801
|
"inset-x-0 bottom-0 w-full max-w-none rounded-t-2xl border border-b-0 p-6",
|
|
@@ -14807,7 +14807,7 @@ const DIALOG_CONTENT_VARIANTS = {
|
|
|
14807
14807
|
].join(" "),
|
|
14808
14808
|
"command-palette": [
|
|
14809
14809
|
// Shared
|
|
14810
|
-
"fixed z-50 flex flex-col bg-background shadow-lg outline-none",
|
|
14810
|
+
"fixed z-50 flex flex-col border-border bg-background shadow-lg outline-none",
|
|
14811
14811
|
// Mobile-only open/close animation: the drawer slide is touch-initiated.
|
|
14812
14812
|
// Desktop (lg+) gets NO open/close animation — this is a keyboard-summoned
|
|
14813
14813
|
// surface hit dozens of times a day; it must appear instantly.
|
|
@@ -14963,7 +14963,7 @@ function CommandInput({
|
|
|
14963
14963
|
className,
|
|
14964
14964
|
...props
|
|
14965
14965
|
}) {
|
|
14966
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
|
|
14966
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center border-b border-border px-3", "cmdk-input-wrapper": "", children: [
|
|
14967
14967
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
|
|
14968
14968
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
14969
14969
|
_e$4.Input,
|
|
@@ -45935,53 +45935,53 @@ async function loadLanguage(lang) {
|
|
|
45935
45935
|
try {
|
|
45936
45936
|
switch (lang) {
|
|
45937
45937
|
case "javascript":
|
|
45938
|
-
return import("./index-
|
|
45938
|
+
return import("./index-BeVYh61F.js").then((m2) => m2.javascript());
|
|
45939
45939
|
case "jsx":
|
|
45940
|
-
return import("./index-
|
|
45940
|
+
return import("./index-BeVYh61F.js").then((m2) => m2.javascript({ jsx: true }));
|
|
45941
45941
|
case "typescript":
|
|
45942
|
-
return import("./index-
|
|
45942
|
+
return import("./index-BeVYh61F.js").then(
|
|
45943
45943
|
(m2) => m2.javascript({ typescript: true })
|
|
45944
45944
|
);
|
|
45945
45945
|
case "tsx":
|
|
45946
|
-
return import("./index-
|
|
45946
|
+
return import("./index-BeVYh61F.js").then(
|
|
45947
45947
|
(m2) => m2.javascript({ jsx: true, typescript: true })
|
|
45948
45948
|
);
|
|
45949
45949
|
case "python":
|
|
45950
|
-
return import("./index-
|
|
45950
|
+
return import("./index-CIQ2H-15.js").then((m2) => m2.python());
|
|
45951
45951
|
case "html":
|
|
45952
|
-
return import("./index-
|
|
45952
|
+
return import("./index-BstlKcBR.js").then((m2) => m2.html());
|
|
45953
45953
|
case "css":
|
|
45954
|
-
return import("./index-
|
|
45954
|
+
return import("./index-Dh1M5dNP.js").then((m2) => m2.css());
|
|
45955
45955
|
case "scss":
|
|
45956
45956
|
case "sass":
|
|
45957
|
-
return import("./index-
|
|
45957
|
+
return import("./index-C9azpIfZ.js").then((m2) => m2.sass());
|
|
45958
45958
|
case "less":
|
|
45959
|
-
return import("./index-
|
|
45959
|
+
return import("./index-BTtOxXlZ.js").then((m2) => m2.less());
|
|
45960
45960
|
case "json":
|
|
45961
45961
|
case "jsonc":
|
|
45962
|
-
return import("./index-
|
|
45962
|
+
return import("./index-OaYzTlpS.js").then((m2) => m2.json());
|
|
45963
45963
|
case "markdown":
|
|
45964
45964
|
case "mdx":
|
|
45965
|
-
return import("./index
|
|
45965
|
+
return import("./index--KaT9H0k.js").then((m2) => m2.markdown());
|
|
45966
45966
|
case "xml":
|
|
45967
|
-
return import("./index-
|
|
45967
|
+
return import("./index-CTx1RpR6.js").then((m2) => m2.xml());
|
|
45968
45968
|
case "yaml":
|
|
45969
|
-
return import("./index-
|
|
45969
|
+
return import("./index-BJJ8j1rg.js").then((m2) => m2.yaml());
|
|
45970
45970
|
case "sql":
|
|
45971
|
-
return import("./index-
|
|
45971
|
+
return import("./index-P4B7a8It.js").then((m2) => m2.sql());
|
|
45972
45972
|
case "rust":
|
|
45973
|
-
return import("./index-
|
|
45973
|
+
return import("./index-C2HXhI72.js").then((m2) => m2.rust());
|
|
45974
45974
|
case "go":
|
|
45975
|
-
return import("./index-
|
|
45975
|
+
return import("./index-CvolrjMO.js").then((m2) => m2.go());
|
|
45976
45976
|
case "java":
|
|
45977
|
-
return import("./index-
|
|
45977
|
+
return import("./index-0NB-RPox.js").then((m2) => m2.java());
|
|
45978
45978
|
case "kotlin":
|
|
45979
|
-
return import("./index-
|
|
45979
|
+
return import("./index-0NB-RPox.js").then((m2) => m2.java());
|
|
45980
45980
|
case "c":
|
|
45981
45981
|
case "cpp":
|
|
45982
|
-
return import("./index-
|
|
45982
|
+
return import("./index-B2cRwRII.js").then((m2) => m2.cpp());
|
|
45983
45983
|
case "php":
|
|
45984
|
-
return import("./index-
|
|
45984
|
+
return import("./index-a62bFj9q.js").then((m2) => m2.php());
|
|
45985
45985
|
// Legacy modes via StreamLanguage
|
|
45986
45986
|
case "bash":
|
|
45987
45987
|
case "fish":
|
|
@@ -47040,44 +47040,6 @@ function CommandPaletteDialog({ open: open2, onOpenChange, commands }) {
|
|
|
47040
47040
|
}
|
|
47041
47041
|
) });
|
|
47042
47042
|
}
|
|
47043
|
-
function useAppUpdate() {
|
|
47044
|
-
const adapter2 = useAdapter();
|
|
47045
|
-
const [state2, setState] = reactExports.useState({ status: "none" });
|
|
47046
|
-
reactExports.useEffect(() => {
|
|
47047
|
-
if (!adapter2.getUpdateStatus || !adapter2.subscribeUpdateStatus) return;
|
|
47048
|
-
let cancelled2 = false;
|
|
47049
|
-
adapter2.getUpdateStatus().then((pending2) => {
|
|
47050
|
-
if (cancelled2) return;
|
|
47051
|
-
if (pending2) {
|
|
47052
|
-
setState({ status: "available", version: pending2.version });
|
|
47053
|
-
}
|
|
47054
|
-
}).catch(() => {
|
|
47055
|
-
});
|
|
47056
|
-
const unsubscribe = adapter2.subscribeUpdateStatus((pending2) => {
|
|
47057
|
-
setState((prev2) => {
|
|
47058
|
-
if (prev2.status === "installing") return prev2;
|
|
47059
|
-
return pending2 ? { status: "available", version: pending2.version } : { status: "none" };
|
|
47060
|
-
});
|
|
47061
|
-
});
|
|
47062
|
-
return () => {
|
|
47063
|
-
cancelled2 = true;
|
|
47064
|
-
unsubscribe();
|
|
47065
|
-
};
|
|
47066
|
-
}, [adapter2]);
|
|
47067
|
-
const install = async () => {
|
|
47068
|
-
if (!adapter2.installUpdate) return;
|
|
47069
|
-
setState({ status: "installing" });
|
|
47070
|
-
try {
|
|
47071
|
-
await adapter2.installUpdate();
|
|
47072
|
-
} catch (err) {
|
|
47073
|
-
setState({
|
|
47074
|
-
status: "error",
|
|
47075
|
-
message: err instanceof Error ? err.message : String(err)
|
|
47076
|
-
});
|
|
47077
|
-
}
|
|
47078
|
-
};
|
|
47079
|
-
return { state: state2, install };
|
|
47080
|
-
}
|
|
47081
47043
|
function useCliSetup() {
|
|
47082
47044
|
const adapter2 = useAdapter();
|
|
47083
47045
|
const [state2, setState] = reactExports.useState({ status: "checking" });
|
|
@@ -51955,6 +51917,32 @@ function NewWorkspaceDialog({ projectName, open: open2, onOpenChange }) {
|
|
|
51955
51917
|
] })
|
|
51956
51918
|
] }) }) });
|
|
51957
51919
|
}
|
|
51920
|
+
function ProjectAvatar({ avatar, fallback, className, testId }) {
|
|
51921
|
+
const [loaded, setLoaded] = reactExports.useState(null);
|
|
51922
|
+
if (!avatar) return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: fallback });
|
|
51923
|
+
const state2 = loaded?.src === avatar.src ? loaded.ok : void 0;
|
|
51924
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
51925
|
+
state2 !== true && fallback,
|
|
51926
|
+
state2 !== false && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
51927
|
+
"img",
|
|
51928
|
+
{
|
|
51929
|
+
src: avatar.src,
|
|
51930
|
+
alt: avatar.label,
|
|
51931
|
+
hidden: state2 !== true,
|
|
51932
|
+
draggable: false,
|
|
51933
|
+
"data-testid": testId,
|
|
51934
|
+
ref: (el) => {
|
|
51935
|
+
if (el?.complete && state2 === void 0) {
|
|
51936
|
+
setLoaded({ src: avatar.src, ok: el.naturalWidth > 0 });
|
|
51937
|
+
}
|
|
51938
|
+
},
|
|
51939
|
+
className: `${className} shrink-0 rounded-sm object-cover`,
|
|
51940
|
+
onLoad: () => setLoaded({ src: avatar.src, ok: true }),
|
|
51941
|
+
onError: () => setLoaded({ src: avatar.src, ok: false })
|
|
51942
|
+
}
|
|
51943
|
+
)
|
|
51944
|
+
] });
|
|
51945
|
+
}
|
|
51958
51946
|
function PromoteToGitDialog({ open: open2, onOpenChange, onConfirm, projectName }) {
|
|
51959
51947
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(Dialog, { open: open2, onOpenChange, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(DialogContent, { className: "sm:max-w-[425px]", onClick: (e3) => e3.stopPropagation(), children: [
|
|
51960
51948
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(DialogHeader, { children: [
|
|
@@ -52413,16 +52401,30 @@ function SortableProject({
|
|
|
52413
52401
|
// indicator's size-3 fallback would make plain headers
|
|
52414
52402
|
// read as nested workspace cards (see #427 review).
|
|
52415
52403
|
plainAgent && (plainAgent.status === "working" || plainAgent.status === "needs_attention") ? /* @__PURE__ */ jsxRuntimeExports.jsx(AgentStatusIndicator, { agent: plainAgent, isActive: plainIsActive }) : /* @__PURE__ */ jsxRuntimeExports.jsx(Folder, { className: "size-4 shrink-0 text-muted-foreground" })
|
|
52416
|
-
) :
|
|
52417
|
-
|
|
52418
|
-
|
|
52419
|
-
|
|
52420
|
-
|
|
52421
|
-
|
|
52422
|
-
|
|
52423
|
-
|
|
52424
|
-
|
|
52425
|
-
|
|
52404
|
+
) : (
|
|
52405
|
+
// Git project: the GitHub owner's avatar when `origin` is
|
|
52406
|
+
// on GitHub, else the open/closed folder.
|
|
52407
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
52408
|
+
ProjectAvatar,
|
|
52409
|
+
{
|
|
52410
|
+
avatar: project.avatar,
|
|
52411
|
+
className: "size-4",
|
|
52412
|
+
testId: `project-list__project-avatar--${project.name}`,
|
|
52413
|
+
fallback: collapsed ? /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
52414
|
+
Folder,
|
|
52415
|
+
{
|
|
52416
|
+
"data-testid": `project-list__project-folder--${project.name}`,
|
|
52417
|
+
className: `size-4 shrink-0 ${gitHeaderIsActive ? "text-primary" : "text-muted-foreground"}`
|
|
52418
|
+
}
|
|
52419
|
+
) : /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
52420
|
+
FolderOpen,
|
|
52421
|
+
{
|
|
52422
|
+
"data-testid": `project-list__project-folder--${project.name}`,
|
|
52423
|
+
className: `size-4 shrink-0 ${gitHeaderIsActive ? "text-primary" : "text-muted-foreground"}`
|
|
52424
|
+
}
|
|
52425
|
+
)
|
|
52426
|
+
}
|
|
52427
|
+
)
|
|
52426
52428
|
),
|
|
52427
52429
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(Tooltip$1, { children: [
|
|
52428
52430
|
/* @__PURE__ */ jsxRuntimeExports.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -52919,7 +52921,14 @@ function ProjectList({ labelFilter }) {
|
|
|
52919
52921
|
] }, groupKey);
|
|
52920
52922
|
}) }),
|
|
52921
52923
|
/* @__PURE__ */ jsxRuntimeExports.jsx(DragOverlay, { dropAnimation: null, children: activeDragId ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2 px-1 py-1 bg-background rounded shadow-lg border", children: [
|
|
52922
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
52924
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
52925
|
+
ProjectAvatar,
|
|
52926
|
+
{
|
|
52927
|
+
avatar: projects.find((p2) => p2.name === activeDragId)?.avatar,
|
|
52928
|
+
className: "size-3.5",
|
|
52929
|
+
fallback: /* @__PURE__ */ jsxRuntimeExports.jsx(Folder, { className: "size-3.5 shrink-0 text-muted-foreground" })
|
|
52930
|
+
}
|
|
52931
|
+
),
|
|
52923
52932
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-[13px] font-semibold text-foreground", children: activeDragId })
|
|
52924
52933
|
] }) : null })
|
|
52925
52934
|
]
|
|
@@ -53154,6 +53163,7 @@ function SettingsPage({ open: open2, onOpenChange }) {
|
|
|
53154
53163
|
settings.enableFilePreviewTabs ?? true
|
|
53155
53164
|
);
|
|
53156
53165
|
const [selectedTheme, setSelectedTheme] = reactExports.useState(settings.theme ?? "system");
|
|
53166
|
+
const [translucentSidebar, setTranslucentSidebar] = reactExports.useState(settings.translucentSidebar ?? true);
|
|
53157
53167
|
const [useWebGLTerminalRenderer, setUseWebGLTerminalRenderer] = reactExports.useState(
|
|
53158
53168
|
settings.useWebGLTerminalRenderer ?? true
|
|
53159
53169
|
);
|
|
@@ -53273,6 +53283,7 @@ function SettingsPage({ open: open2, onOpenChange }) {
|
|
|
53273
53283
|
if (enableLSP !== (settings.enableLSP ?? false)) return true;
|
|
53274
53284
|
if (enableFilePreviewTabs !== (settings.enableFilePreviewTabs ?? true)) return true;
|
|
53275
53285
|
if (selectedTheme !== (settings.theme ?? "system")) return true;
|
|
53286
|
+
if (translucentSidebar !== (settings.translucentSidebar ?? true)) return true;
|
|
53276
53287
|
if (useWebGLTerminalRenderer !== (settings.useWebGLTerminalRenderer ?? true)) return true;
|
|
53277
53288
|
if (webBrowserCdpEnabled !== (settings.webBrowserCdpEnabled ?? false)) return true;
|
|
53278
53289
|
if (usageRetentionDays !== (settings.usageRetentionDays?.toString() ?? "")) return true;
|
|
@@ -53290,6 +53301,7 @@ function SettingsPage({ open: open2, onOpenChange }) {
|
|
|
53290
53301
|
enableLSP,
|
|
53291
53302
|
enableFilePreviewTabs,
|
|
53292
53303
|
selectedTheme,
|
|
53304
|
+
translucentSidebar,
|
|
53293
53305
|
useWebGLTerminalRenderer,
|
|
53294
53306
|
webBrowserCdpEnabled,
|
|
53295
53307
|
usageRetentionDays,
|
|
@@ -53308,6 +53320,7 @@ function SettingsPage({ open: open2, onOpenChange }) {
|
|
|
53308
53320
|
setEnableLSP(settings.enableLSP ?? false);
|
|
53309
53321
|
setEnableFilePreviewTabs(settings.enableFilePreviewTabs ?? true);
|
|
53310
53322
|
setSelectedTheme(settings.theme ?? "system");
|
|
53323
|
+
setTranslucentSidebar(settings.translucentSidebar ?? true);
|
|
53311
53324
|
setUseWebGLTerminalRenderer(settings.useWebGLTerminalRenderer ?? true);
|
|
53312
53325
|
setWebBrowserCdpEnabled(settings.webBrowserCdpEnabled ?? false);
|
|
53313
53326
|
setUsageRetentionDays(settings.usageRetentionDays?.toString() ?? "");
|
|
@@ -53323,6 +53336,7 @@ function SettingsPage({ open: open2, onOpenChange }) {
|
|
|
53323
53336
|
settings.enableLSP,
|
|
53324
53337
|
settings.enableFilePreviewTabs,
|
|
53325
53338
|
settings.theme,
|
|
53339
|
+
settings.translucentSidebar,
|
|
53326
53340
|
settings.useWebGLTerminalRenderer,
|
|
53327
53341
|
settings.webBrowserCdpEnabled,
|
|
53328
53342
|
settings.usageRetentionDays,
|
|
@@ -53368,6 +53382,7 @@ function SettingsPage({ open: open2, onOpenChange }) {
|
|
|
53368
53382
|
enableLSP,
|
|
53369
53383
|
enableFilePreviewTabs,
|
|
53370
53384
|
theme: selectedTheme,
|
|
53385
|
+
translucentSidebar,
|
|
53371
53386
|
useWebGLTerminalRenderer,
|
|
53372
53387
|
webBrowserCdpEnabled,
|
|
53373
53388
|
usageRetentionDays: parsedUsageRetentionDays,
|
|
@@ -53386,29 +53401,47 @@ function SettingsPage({ open: open2, onOpenChange }) {
|
|
|
53386
53401
|
children: [
|
|
53387
53402
|
/* @__PURE__ */ jsxRuntimeExports.jsx(DialogHeader, { className: "px-6 pt-6 pb-4 shrink-0", children: /* @__PURE__ */ jsxRuntimeExports.jsx(DialogTitle, { children: "Settings" }) }),
|
|
53388
53403
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-1 min-h-0 overflow-y-auto", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-6 px-6 pb-6", children: [
|
|
53389
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
53390
|
-
|
|
53391
|
-
|
|
53392
|
-
|
|
53393
|
-
|
|
53394
|
-
|
|
53395
|
-
|
|
53396
|
-
|
|
53397
|
-
|
|
53398
|
-
|
|
53399
|
-
|
|
53400
|
-
|
|
53401
|
-
|
|
53402
|
-
|
|
53403
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
53404
|
-
|
|
53405
|
-
|
|
53406
|
-
|
|
53407
|
-
|
|
53408
|
-
|
|
53409
|
-
|
|
53410
|
-
|
|
53411
|
-
|
|
53404
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(SettingsSection, { title: "Appearance", children: [
|
|
53405
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
53406
|
+
SettingsRow,
|
|
53407
|
+
{
|
|
53408
|
+
variant: "responsive",
|
|
53409
|
+
label: "Theme",
|
|
53410
|
+
description: "Choose between system default, light, and dark mode.",
|
|
53411
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
53412
|
+
Select,
|
|
53413
|
+
{
|
|
53414
|
+
value: selectedTheme,
|
|
53415
|
+
onValueChange: (v2) => setSelectedTheme(v2),
|
|
53416
|
+
children: [
|
|
53417
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { className: "h-8 w-full text-sm sm:w-32", "aria-label": "Theme", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, {}) }),
|
|
53418
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(SelectContent, { children: [
|
|
53419
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: "system", children: "System" }),
|
|
53420
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: "light", children: "Light" }),
|
|
53421
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: "dark", children: "Dark" })
|
|
53422
|
+
] })
|
|
53423
|
+
]
|
|
53424
|
+
}
|
|
53425
|
+
)
|
|
53426
|
+
}
|
|
53427
|
+
),
|
|
53428
|
+
capabilities2.translucentSidebar && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
53429
|
+
SettingsRow,
|
|
53430
|
+
{
|
|
53431
|
+
htmlFor: "translucent-sidebar",
|
|
53432
|
+
label: "Translucent sidebar",
|
|
53433
|
+
description: "Show the desktop through the project list, blurred and tinted.",
|
|
53434
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
53435
|
+
Switch,
|
|
53436
|
+
{
|
|
53437
|
+
id: "translucent-sidebar",
|
|
53438
|
+
checked: translucentSidebar,
|
|
53439
|
+
onCheckedChange: setTranslucentSidebar
|
|
53440
|
+
}
|
|
53441
|
+
)
|
|
53442
|
+
}
|
|
53443
|
+
)
|
|
53444
|
+
] }),
|
|
53412
53445
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(SettingsSection, { title: "General", children: [
|
|
53413
53446
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
53414
53447
|
SettingsRow,
|
|
@@ -54010,7 +54043,6 @@ function DashboardShell({
|
|
|
54010
54043
|
const activeWorkspaceId = useDashboardStore((s2) => s2.activeWorkspaceId);
|
|
54011
54044
|
const { state: hooksState, install: installHooks } = useHooksSetup();
|
|
54012
54045
|
const { state: cliState, install: installCli } = useCliSetup();
|
|
54013
|
-
const { state: updateState, install: installUpdate } = useAppUpdate();
|
|
54014
54046
|
const [appTitle, setAppTitle] = reactExports.useState("Band");
|
|
54015
54047
|
reactExports.useEffect(() => {
|
|
54016
54048
|
if (!isDesktop$1) return;
|
|
@@ -54139,8 +54171,11 @@ function DashboardShell({
|
|
|
54139
54171
|
"w-full overflow-hidden flex flex-col text-foreground p-0",
|
|
54140
54172
|
// Embedded as the project-list sidebar (hideTitleBar): paint the
|
|
54141
54173
|
// `--sidebar` surface so the list reads as a panel distinct from the
|
|
54142
|
-
// workspace layout.
|
|
54143
|
-
|
|
54174
|
+
// workspace layout. Under the translucent sidebar (macOS desktop) the
|
|
54175
|
+
// AppShell column already paints the tint, so stay transparent rather
|
|
54176
|
+
// than stack a second layer. Standalone (mobile / narrow web): plain
|
|
54177
|
+
// background.
|
|
54178
|
+
hideTitleBar ? "h-full bg-sidebar translucent-sidebar:bg-transparent" : "bg-background",
|
|
54144
54179
|
!isDesktop$1 && "pt-[env(safe-area-inset-top)]",
|
|
54145
54180
|
// Full screen the action bar keeps a 16px gap above the bottom edge,
|
|
54146
54181
|
// widened to the home-indicator inset when there is one. In the
|
|
@@ -54279,18 +54314,6 @@ function DashboardShell({
|
|
|
54279
54314
|
] }) : /* @__PURE__ */ jsxRuntimeExports.jsx(ProjectList, { labelFilter }) })
|
|
54280
54315
|
}
|
|
54281
54316
|
),
|
|
54282
|
-
updateState.status === "available" && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "mx-4 mb-2 px-4 py-2 bg-blue-500/10 border border-blue-500/30 rounded-lg text-sm flex items-center justify-between gap-2", children: [
|
|
54283
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-blue-700 dark:text-blue-200", children: `Band v${updateState.version} is available` }),
|
|
54284
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Button, { variant: "outline", size: "sm", className: "shrink-0 text-xs", onClick: installUpdate, children: "Install" })
|
|
54285
|
-
] }),
|
|
54286
|
-
updateState.status === "installing" && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "mx-4 mb-2 px-4 py-2 bg-blue-500/10 border border-blue-500/30 rounded-lg text-sm flex items-center justify-between gap-2", children: [
|
|
54287
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-blue-700 dark:text-blue-200", children: "Installing update…" }),
|
|
54288
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Button, { variant: "outline", size: "sm", className: "shrink-0 text-xs", disabled: true, children: "Install" })
|
|
54289
|
-
] }),
|
|
54290
|
-
updateState.status === "error" && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "mx-4 mb-2 px-4 py-2 bg-destructive/10 border border-destructive/30 rounded-lg text-sm text-destructive flex items-center justify-between gap-2", children: [
|
|
54291
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "truncate", children: `Update failed: ${updateState.message}` }),
|
|
54292
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Button, { variant: "outline", size: "sm", className: "shrink-0 text-xs", onClick: installUpdate, children: "Retry" })
|
|
54293
|
-
] }),
|
|
54294
54317
|
(cliState.status === "manual" || cliState.status === "conflict") && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "mx-4 mb-2 px-4 py-2 bg-blue-500/10 border border-blue-500/30 rounded-lg text-sm flex items-center justify-between gap-2", children: [
|
|
54295
54318
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-blue-700 dark:text-blue-200", children: cliState.status === "conflict" ? "A different `band` binary exists — replace it to use the bundled CLI" : `Install band CLI${cliState.status === "manual" && cliState.reason ? ` — ${cliState.reason}` : ""}` }),
|
|
54296
54319
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Button, { variant: "outline", size: "sm", className: "shrink-0 text-xs", onClick: installCli, children: "Install" })
|
|
@@ -58017,7 +58040,7 @@ function FileViewer({
|
|
|
58017
58040
|
lineEnd,
|
|
58018
58041
|
column: column2,
|
|
58019
58042
|
onEditorView,
|
|
58020
|
-
|
|
58043
|
+
overlay,
|
|
58021
58044
|
renderMarkdown,
|
|
58022
58045
|
editable: editable2,
|
|
58023
58046
|
onGoBack,
|
|
@@ -58495,8 +58518,8 @@ function FileViewer({
|
|
|
58495
58518
|
] }),
|
|
58496
58519
|
data && !hidePathLabel && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "shrink-0 text-xs text-muted-foreground", children: formatSize(data.size) })
|
|
58497
58520
|
] }),
|
|
58498
|
-
|
|
58499
|
-
|
|
58521
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative min-h-0 min-w-0 flex-1 overflow-hidden", children: [
|
|
58522
|
+
overlay,
|
|
58500
58523
|
loading && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex h-32 items-center justify-center text-sm text-muted-foreground", children: "Loading..." }),
|
|
58501
58524
|
error && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
58502
58525
|
"div",
|
|
@@ -58901,7 +58924,7 @@ function QuickOpenDialog({
|
|
|
58901
58924
|
onValueChange: setQuery
|
|
58902
58925
|
}
|
|
58903
58926
|
),
|
|
58904
|
-
parsedQuery.line != null && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "border-b px-3 py-1.5 text-xs text-muted-foreground", children: [
|
|
58927
|
+
parsedQuery.line != null && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "border-b border-border px-3 py-1.5 text-xs text-muted-foreground", children: [
|
|
58905
58928
|
"Go to line ",
|
|
58906
58929
|
parsedQuery.line,
|
|
58907
58930
|
parsedQuery.lineEnd != null && `-${parsedQuery.lineEnd}`,
|
|
@@ -58989,6 +59012,7 @@ const SearchBar = reactExports.forwardRef(function SearchBar2({
|
|
|
58989
59012
|
onPrevious,
|
|
58990
59013
|
onClose,
|
|
58991
59014
|
visibleOptions = DEFAULT_VISIBLE_OPTIONS,
|
|
59015
|
+
variant = "bar",
|
|
58992
59016
|
className
|
|
58993
59017
|
}, ref) {
|
|
58994
59018
|
const showCase = visibleOptions.includes("caseSensitive");
|
|
@@ -59008,21 +59032,30 @@ const SearchBar = reactExports.forwardRef(function SearchBar2({
|
|
|
59008
59032
|
const toggleRegex = reactExports.useCallback(() => {
|
|
59009
59033
|
onOptionsChange({ ...options, regex: !options.regex });
|
|
59010
59034
|
}, [options, onOptionsChange]);
|
|
59035
|
+
const floating = variant === "floating";
|
|
59036
|
+
const hasMatches = !!matchInfo && matchInfo.total > 0;
|
|
59037
|
+
const noResults = !!query && !!matchInfo && !hasMatches;
|
|
59011
59038
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
59012
59039
|
"div",
|
|
59013
59040
|
{
|
|
59041
|
+
"data-testid": floating ? "find-widget" : void 0,
|
|
59014
59042
|
className: cn$2(
|
|
59015
|
-
"flex shrink-0 items-center gap-1.5 border-b border-border bg-muted/30 px-3 py-1.5",
|
|
59043
|
+
floating ? "absolute top-1.5 right-4 z-20 flex w-80 max-w-[calc(100%-1.5rem)] items-center gap-0.5 rounded-md border border-border bg-popover py-1 pr-1 pl-2 text-popover-foreground shadow-md" : "flex shrink-0 items-center gap-1.5 border-b border-border bg-muted/30 px-3 py-1.5",
|
|
59016
59044
|
className
|
|
59017
59045
|
),
|
|
59018
59046
|
children: [
|
|
59019
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Search, { className: "size-3.5 shrink-0 text-muted-foreground" }),
|
|
59047
|
+
!floating && /* @__PURE__ */ jsxRuntimeExports.jsx(Search, { className: "size-3.5 shrink-0 text-muted-foreground" }),
|
|
59020
59048
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
59021
59049
|
"input",
|
|
59022
59050
|
{
|
|
59023
59051
|
ref: inputRef,
|
|
59024
|
-
className:
|
|
59052
|
+
className: cn$2(
|
|
59053
|
+
"min-w-0 flex-1 bg-transparent outline-none placeholder:text-muted-foreground",
|
|
59054
|
+
floating ? "text-[13px]" : "text-sm"
|
|
59055
|
+
),
|
|
59025
59056
|
placeholder,
|
|
59057
|
+
"aria-label": placeholder,
|
|
59058
|
+
"aria-invalid": noResults || void 0,
|
|
59026
59059
|
value: query,
|
|
59027
59060
|
onChange: (e3) => onQueryChange(e3.target.value),
|
|
59028
59061
|
onKeyDown: (e3) => {
|
|
@@ -59041,13 +59074,27 @@ const SearchBar = reactExports.forwardRef(function SearchBar2({
|
|
|
59041
59074
|
showCase && /* @__PURE__ */ jsxRuntimeExports.jsx(ToggleButton, { active: options.caseSensitive, onClick: toggleCase, title: "Match Case", children: /* @__PURE__ */ jsxRuntimeExports.jsx(CaseSensitive, { className: "size-4" }) }),
|
|
59042
59075
|
showWholeWord && /* @__PURE__ */ jsxRuntimeExports.jsx(ToggleButton, { active: options.wholeWord, onClick: toggleWholeWord, title: "Match Whole Word", children: /* @__PURE__ */ jsxRuntimeExports.jsx(WholeWord, { className: "size-4" }) }),
|
|
59043
59076
|
showRegex && /* @__PURE__ */ jsxRuntimeExports.jsx(ToggleButton, { active: options.regex, onClick: toggleRegex, title: "Use Regular Expression", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Regex, { className: "size-4" }) }),
|
|
59044
|
-
|
|
59077
|
+
floating ? (
|
|
59078
|
+
// Always shown, like VS Code: `0/0` before a query, `3/12` while
|
|
59079
|
+
// matching, "No results" when a query matched nothing.
|
|
59080
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
59081
|
+
"span",
|
|
59082
|
+
{
|
|
59083
|
+
"data-testid": "find-widget__count",
|
|
59084
|
+
className: cn$2(
|
|
59085
|
+
"shrink-0 px-1 text-xs tabular-nums",
|
|
59086
|
+
noResults ? "text-destructive" : "text-muted-foreground"
|
|
59087
|
+
),
|
|
59088
|
+
children: noResults ? "No results" : `${hasMatches ? matchInfo.current : 0}/${hasMatches ? matchInfo.total : 0}`
|
|
59089
|
+
}
|
|
59090
|
+
)
|
|
59091
|
+
) : matchInfo && query && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "shrink-0 text-xs text-muted-foreground tabular-nums", children: matchInfo.total > 0 ? `${matchInfo.current} of ${matchInfo.total}` : "No results" }),
|
|
59045
59092
|
onPrevious && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
59046
59093
|
"button",
|
|
59047
59094
|
{
|
|
59048
59095
|
type: "button",
|
|
59049
59096
|
onClick: onPrevious,
|
|
59050
|
-
disabled: !
|
|
59097
|
+
disabled: !hasMatches,
|
|
59051
59098
|
className: "inline-flex size-6 items-center justify-center rounded text-muted-foreground hover:text-foreground disabled:opacity-30",
|
|
59052
59099
|
title: "Previous match (Shift+Enter)",
|
|
59053
59100
|
children: /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronUp, { className: "size-3.5" })
|
|
@@ -59058,12 +59105,13 @@ const SearchBar = reactExports.forwardRef(function SearchBar2({
|
|
|
59058
59105
|
{
|
|
59059
59106
|
type: "button",
|
|
59060
59107
|
onClick: onNext,
|
|
59061
|
-
disabled: !
|
|
59108
|
+
disabled: !hasMatches,
|
|
59062
59109
|
className: "inline-flex size-6 items-center justify-center rounded text-muted-foreground hover:text-foreground disabled:opacity-30",
|
|
59063
59110
|
title: "Next match (Enter)",
|
|
59064
59111
|
children: /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronDown, { className: "size-3.5" })
|
|
59065
59112
|
}
|
|
59066
59113
|
),
|
|
59114
|
+
floating && onClose && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { "aria-hidden": true, className: "mx-0.5 h-4 w-px shrink-0 bg-border" }),
|
|
59067
59115
|
onClose && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
59068
59116
|
"button",
|
|
59069
59117
|
{
|
|
@@ -59217,7 +59265,7 @@ function SearchFilesDialog({
|
|
|
59217
59265
|
);
|
|
59218
59266
|
})
|
|
59219
59267
|
] }),
|
|
59220
|
-
totalMatches > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "border-t px-3 py-1.5 text-xs text-muted-foreground", children: [
|
|
59268
|
+
totalMatches > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "border-t border-border px-3 py-1.5 text-xs text-muted-foreground", children: [
|
|
59221
59269
|
totalMatches,
|
|
59222
59270
|
" result",
|
|
59223
59271
|
totalMatches !== 1 ? "s" : "",
|
|
@@ -66367,33 +66415,33 @@ class DesktopDashboardAdapter extends WebDashboardAdapter {
|
|
|
66367
66415
|
throw err;
|
|
66368
66416
|
}
|
|
66369
66417
|
}
|
|
66370
|
-
// ----
|
|
66371
|
-
// The web adapter
|
|
66372
|
-
//
|
|
66373
|
-
|
|
66374
|
-
|
|
66375
|
-
* catch the race where the renderer mounts after the startup check
|
|
66376
|
-
* already populated main-process state. */
|
|
66418
|
+
// ---- App-update toast (see apps/desktop/src/main/updater.ts) -----------
|
|
66419
|
+
// The web adapter omits these, so a plain browser tab never shows the
|
|
66420
|
+
// toast. Only the desktop shell can drive electron-updater.
|
|
66421
|
+
/** The current status. Read on mount, since the startup check may have
|
|
66422
|
+
* finished before the renderer subscribed. */
|
|
66377
66423
|
async getUpdateStatus() {
|
|
66378
66424
|
return desktopInvoke("updater_status");
|
|
66379
66425
|
}
|
|
66380
|
-
/** Kick off the download + install. On success the OS quits the process,
|
|
66381
|
-
* so this promise typically never resolves in production. */
|
|
66382
|
-
async installUpdate() {
|
|
66383
|
-
await desktopInvoke("updater_install");
|
|
66384
|
-
}
|
|
66385
|
-
/** Subscribe to `updater-status-changed` events emitted by the main
|
|
66386
|
-
* process. Returns the unlisten. Throws if called outside the shell —
|
|
66387
|
-
* callers should gate on `getUpdateStatus` being defined first. */
|
|
66388
66426
|
subscribeUpdateStatus(cb) {
|
|
66389
66427
|
const bridge = electronBridge$1();
|
|
66390
66428
|
if (!bridge) {
|
|
66391
66429
|
throw new Error("subscribeUpdateStatus called outside the desktop shell");
|
|
66392
66430
|
}
|
|
66393
|
-
return bridge.on(
|
|
66394
|
-
|
|
66395
|
-
|
|
66396
|
-
);
|
|
66431
|
+
return bridge.on("updater-status-changed", (payload) => cb(payload));
|
|
66432
|
+
}
|
|
66433
|
+
async checkForUpdates() {
|
|
66434
|
+
await desktopInvoke("updater_check");
|
|
66435
|
+
}
|
|
66436
|
+
async downloadUpdate() {
|
|
66437
|
+
await desktopInvoke("updater_download");
|
|
66438
|
+
}
|
|
66439
|
+
/** Quits the app to install the downloaded update. */
|
|
66440
|
+
async restartToUpdate() {
|
|
66441
|
+
await desktopInvoke("updater_restart");
|
|
66442
|
+
}
|
|
66443
|
+
async dismissUpdate() {
|
|
66444
|
+
await desktopInvoke("updater_dismiss");
|
|
66397
66445
|
}
|
|
66398
66446
|
}
|
|
66399
66447
|
class NativeShellCapabilities {
|
|
@@ -66402,6 +66450,11 @@ class NativeShellCapabilities {
|
|
|
66402
66450
|
get copyPath() {
|
|
66403
66451
|
return isDesktopShell();
|
|
66404
66452
|
}
|
|
66453
|
+
// The desktop window only gets its vibrancy layer on macOS (see
|
|
66454
|
+
// `apps/desktop/src/main/window.ts`).
|
|
66455
|
+
get translucentSidebar() {
|
|
66456
|
+
return isDesktopShell() && /Mac/.test(navigator.userAgent);
|
|
66457
|
+
}
|
|
66405
66458
|
getWorkspaceHref(workspaceId) {
|
|
66406
66459
|
return this.web.getWorkspaceHref(workspaceId);
|
|
66407
66460
|
}
|
|
@@ -66457,6 +66510,48 @@ class NativeShellCapabilities {
|
|
|
66457
66510
|
await desktopInvoke("open_external", { url });
|
|
66458
66511
|
}
|
|
66459
66512
|
}
|
|
66513
|
+
let domOverlayCount = 0;
|
|
66514
|
+
let manualHoldCount = 0;
|
|
66515
|
+
const listeners$3 = /* @__PURE__ */ new Set();
|
|
66516
|
+
let lastEmitted = false;
|
|
66517
|
+
function isFrozen$3() {
|
|
66518
|
+
return domOverlayCount + manualHoldCount > 0;
|
|
66519
|
+
}
|
|
66520
|
+
function emitIfChanged() {
|
|
66521
|
+
const next2 = isFrozen$3();
|
|
66522
|
+
if (next2 === lastEmitted) return;
|
|
66523
|
+
lastEmitted = next2;
|
|
66524
|
+
for (const l4 of listeners$3) l4();
|
|
66525
|
+
}
|
|
66526
|
+
function subscribe$2(l4) {
|
|
66527
|
+
listeners$3.add(l4);
|
|
66528
|
+
return () => {
|
|
66529
|
+
listeners$3.delete(l4);
|
|
66530
|
+
};
|
|
66531
|
+
}
|
|
66532
|
+
function getSnapshot$2() {
|
|
66533
|
+
return lastEmitted;
|
|
66534
|
+
}
|
|
66535
|
+
function useBrowserPaneFrozen() {
|
|
66536
|
+
return reactExports.useSyncExternalStore(subscribe$2, getSnapshot$2, getSnapshot$2);
|
|
66537
|
+
}
|
|
66538
|
+
function acquireFreezeHold() {
|
|
66539
|
+
manualHoldCount += 1;
|
|
66540
|
+
emitIfChanged();
|
|
66541
|
+
let released = false;
|
|
66542
|
+
return () => {
|
|
66543
|
+
if (released) return;
|
|
66544
|
+
released = true;
|
|
66545
|
+
manualHoldCount = Math.max(0, manualHoldCount - 1);
|
|
66546
|
+
emitIfChanged();
|
|
66547
|
+
};
|
|
66548
|
+
}
|
|
66549
|
+
function useFreezeWhile(open2) {
|
|
66550
|
+
reactExports.useEffect(() => {
|
|
66551
|
+
if (!open2) return;
|
|
66552
|
+
return acquireFreezeHold();
|
|
66553
|
+
}, [open2]);
|
|
66554
|
+
}
|
|
66460
66555
|
const isDesktop = typeof window !== "undefined" && "__BAND_DESKTOP__" in window;
|
|
66461
66556
|
function getElectronBridge() {
|
|
66462
66557
|
if (!isDesktop) return null;
|
|
@@ -66480,6 +66575,227 @@ async function listen(event, cb) {
|
|
|
66480
66575
|
}
|
|
66481
66576
|
throw new Error(`listen('${event}') called outside the desktop shell`);
|
|
66482
66577
|
}
|
|
66578
|
+
function openExternalUrl(url) {
|
|
66579
|
+
if (isDesktop) {
|
|
66580
|
+
invoke("open_external", { url }).catch(() => {
|
|
66581
|
+
window.open(url, "_blank", "noopener");
|
|
66582
|
+
});
|
|
66583
|
+
return;
|
|
66584
|
+
}
|
|
66585
|
+
window.open(url, "_blank", "noopener");
|
|
66586
|
+
}
|
|
66587
|
+
const UP_TO_DATE_DISMISS_MS = 4e3;
|
|
66588
|
+
function useAppUpdate() {
|
|
66589
|
+
const adapter2 = useAdapter();
|
|
66590
|
+
const [status, setStatus] = reactExports.useState({ state: "idle" });
|
|
66591
|
+
reactExports.useEffect(() => {
|
|
66592
|
+
if (!adapter2.getUpdateStatus || !adapter2.subscribeUpdateStatus) return;
|
|
66593
|
+
let cancelled2 = false;
|
|
66594
|
+
let received = false;
|
|
66595
|
+
const unsubscribe = adapter2.subscribeUpdateStatus((next2) => {
|
|
66596
|
+
received = true;
|
|
66597
|
+
setStatus(next2);
|
|
66598
|
+
});
|
|
66599
|
+
adapter2.getUpdateStatus().then((initial) => {
|
|
66600
|
+
if (!cancelled2 && !received) setStatus(initial);
|
|
66601
|
+
}).catch(() => {
|
|
66602
|
+
});
|
|
66603
|
+
return () => {
|
|
66604
|
+
cancelled2 = true;
|
|
66605
|
+
unsubscribe();
|
|
66606
|
+
};
|
|
66607
|
+
}, [adapter2]);
|
|
66608
|
+
const dismiss = reactExports.useCallback(() => {
|
|
66609
|
+
setStatus({ state: "idle" });
|
|
66610
|
+
adapter2.dismissUpdate?.().catch(ignore$1);
|
|
66611
|
+
}, [adapter2]);
|
|
66612
|
+
reactExports.useEffect(() => {
|
|
66613
|
+
if (status.state !== "up-to-date") return;
|
|
66614
|
+
const timer2 = setTimeout(dismiss, UP_TO_DATE_DISMISS_MS);
|
|
66615
|
+
return () => clearTimeout(timer2);
|
|
66616
|
+
}, [status, dismiss]);
|
|
66617
|
+
const retry = reactExports.useCallback(() => {
|
|
66618
|
+
if (status.state !== "error") return;
|
|
66619
|
+
if (status.phase === "download") adapter2.downloadUpdate?.().catch(ignore$1);
|
|
66620
|
+
else adapter2.checkForUpdates?.().catch(ignore$1);
|
|
66621
|
+
}, [adapter2, status]);
|
|
66622
|
+
return {
|
|
66623
|
+
status: isVisible$1(status) ? status : null,
|
|
66624
|
+
download: reactExports.useCallback(() => adapter2.downloadUpdate?.().catch(ignore$1), [adapter2]),
|
|
66625
|
+
restart: reactExports.useCallback(() => adapter2.restartToUpdate?.().catch(ignore$1), [adapter2]),
|
|
66626
|
+
retry,
|
|
66627
|
+
dismiss
|
|
66628
|
+
};
|
|
66629
|
+
}
|
|
66630
|
+
function ignore$1() {
|
|
66631
|
+
}
|
|
66632
|
+
function isVisible$1(status) {
|
|
66633
|
+
switch (status.state) {
|
|
66634
|
+
case "idle":
|
|
66635
|
+
return false;
|
|
66636
|
+
case "checking":
|
|
66637
|
+
case "up-to-date":
|
|
66638
|
+
case "error":
|
|
66639
|
+
return status.userInitiated;
|
|
66640
|
+
case "available":
|
|
66641
|
+
case "downloading":
|
|
66642
|
+
case "downloaded":
|
|
66643
|
+
return true;
|
|
66644
|
+
}
|
|
66645
|
+
}
|
|
66646
|
+
function UpdateToast() {
|
|
66647
|
+
const { status, download, restart, retry, dismiss } = useAppUpdate();
|
|
66648
|
+
const state2 = status?.state;
|
|
66649
|
+
useFreezeWhile(
|
|
66650
|
+
state2 === "checking" || state2 === "up-to-date" || state2 === "error" || state2 === "downloading"
|
|
66651
|
+
);
|
|
66652
|
+
if (!status) return null;
|
|
66653
|
+
let body2;
|
|
66654
|
+
let closable = true;
|
|
66655
|
+
switch (status.state) {
|
|
66656
|
+
case "checking":
|
|
66657
|
+
closable = false;
|
|
66658
|
+
body2 = /* @__PURE__ */ jsxRuntimeExports.jsx(ToastHeader, { icon: /* @__PURE__ */ jsxRuntimeExports.jsx(Spinner, { className: "size-4" }), title: "Checking for updates…" });
|
|
66659
|
+
break;
|
|
66660
|
+
case "up-to-date":
|
|
66661
|
+
body2 = /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
66662
|
+
ToastHeader,
|
|
66663
|
+
{
|
|
66664
|
+
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(CircleCheck, { className: "size-4 text-emerald-500" }),
|
|
66665
|
+
title: "You're on the latest version",
|
|
66666
|
+
detail: `Band v${status.currentVersion}`
|
|
66667
|
+
}
|
|
66668
|
+
);
|
|
66669
|
+
break;
|
|
66670
|
+
case "available":
|
|
66671
|
+
body2 = /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
66672
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
66673
|
+
ToastHeader,
|
|
66674
|
+
{
|
|
66675
|
+
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(Download, { className: "size-4 text-blue-500" }),
|
|
66676
|
+
title: `Band v${status.version} is available`,
|
|
66677
|
+
detail: `You have v${status.currentVersion}.`
|
|
66678
|
+
}
|
|
66679
|
+
),
|
|
66680
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ReleaseInfo, { release: status }),
|
|
66681
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(ToastActions, { children: [
|
|
66682
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Button, { variant: "ghost", size: "xs", onClick: dismiss, children: "Later" }),
|
|
66683
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Button, { size: "xs", onClick: download, children: "Update" })
|
|
66684
|
+
] })
|
|
66685
|
+
] });
|
|
66686
|
+
break;
|
|
66687
|
+
case "downloading":
|
|
66688
|
+
closable = false;
|
|
66689
|
+
body2 = /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
66690
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
66691
|
+
ToastHeader,
|
|
66692
|
+
{
|
|
66693
|
+
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(Spinner, { className: "size-4" }),
|
|
66694
|
+
title: `Downloading Band v${status.version}…`,
|
|
66695
|
+
detail: `${status.percent}%`
|
|
66696
|
+
}
|
|
66697
|
+
),
|
|
66698
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
66699
|
+
"div",
|
|
66700
|
+
{
|
|
66701
|
+
role: "progressbar",
|
|
66702
|
+
"aria-label": "Update download",
|
|
66703
|
+
"aria-valuemin": 0,
|
|
66704
|
+
"aria-valuemax": 100,
|
|
66705
|
+
"aria-valuenow": status.percent,
|
|
66706
|
+
className: "mt-2.5 h-1.5 overflow-hidden rounded-full bg-muted",
|
|
66707
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
66708
|
+
"div",
|
|
66709
|
+
{
|
|
66710
|
+
className: "h-full rounded-full bg-primary transition-[width] duration-300 ease-out",
|
|
66711
|
+
style: { width: `${status.percent}%` }
|
|
66712
|
+
}
|
|
66713
|
+
)
|
|
66714
|
+
}
|
|
66715
|
+
)
|
|
66716
|
+
] });
|
|
66717
|
+
break;
|
|
66718
|
+
case "downloaded":
|
|
66719
|
+
body2 = /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
66720
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
66721
|
+
ToastHeader,
|
|
66722
|
+
{
|
|
66723
|
+
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(CircleCheck, { className: "size-4 text-emerald-500" }),
|
|
66724
|
+
title: `Band v${status.version} is ready`,
|
|
66725
|
+
detail: "Restart Band to finish updating. It also installs when you quit."
|
|
66726
|
+
}
|
|
66727
|
+
),
|
|
66728
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(ToastActions, { children: [
|
|
66729
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Button, { variant: "ghost", size: "xs", onClick: dismiss, children: "Later" }),
|
|
66730
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(Button, { size: "xs", onClick: restart, children: [
|
|
66731
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(RotateCw, {}),
|
|
66732
|
+
"Restart to update"
|
|
66733
|
+
] })
|
|
66734
|
+
] })
|
|
66735
|
+
] });
|
|
66736
|
+
break;
|
|
66737
|
+
case "error":
|
|
66738
|
+
body2 = /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
66739
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
66740
|
+
ToastHeader,
|
|
66741
|
+
{
|
|
66742
|
+
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(CircleAlert, { className: "size-4 text-destructive" }),
|
|
66743
|
+
title: status.phase === "download" ? "Couldn't download the update" : "Couldn't check for updates",
|
|
66744
|
+
detail: status.message
|
|
66745
|
+
}
|
|
66746
|
+
),
|
|
66747
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ToastActions, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Button, { variant: "outline", size: "xs", onClick: retry, children: "Retry" }) })
|
|
66748
|
+
] });
|
|
66749
|
+
break;
|
|
66750
|
+
}
|
|
66751
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
66752
|
+
"output",
|
|
66753
|
+
{
|
|
66754
|
+
"aria-live": "polite",
|
|
66755
|
+
"data-testid": "update-toast",
|
|
66756
|
+
className: "fixed right-4 bottom-4 left-4 z-50 block rounded-lg border bg-popover p-3 text-sm text-popover-foreground shadow-lg animate-in fade-in-0 slide-in-from-bottom-2 duration-200 sm:left-auto sm:w-80",
|
|
66757
|
+
children: [
|
|
66758
|
+
closable && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
66759
|
+
"button",
|
|
66760
|
+
{
|
|
66761
|
+
type: "button",
|
|
66762
|
+
"aria-label": "Close",
|
|
66763
|
+
onClick: dismiss,
|
|
66764
|
+
className: "absolute top-2 right-2 rounded-sm p-1 text-muted-foreground hover:bg-accent hover:text-accent-foreground",
|
|
66765
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(X$7, { className: "size-3.5" })
|
|
66766
|
+
}
|
|
66767
|
+
),
|
|
66768
|
+
body2
|
|
66769
|
+
]
|
|
66770
|
+
}
|
|
66771
|
+
);
|
|
66772
|
+
}
|
|
66773
|
+
function ToastHeader({ icon: icon2, title, detail }) {
|
|
66774
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex gap-2.5 pr-6", children: [
|
|
66775
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "mt-0.5 shrink-0", children: icon2 }),
|
|
66776
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "min-w-0", children: [
|
|
66777
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "font-medium", children: title }),
|
|
66778
|
+
detail && /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "mt-0.5 line-clamp-3 break-words text-xs text-muted-foreground", children: detail })
|
|
66779
|
+
] })
|
|
66780
|
+
] });
|
|
66781
|
+
}
|
|
66782
|
+
function ReleaseInfo({ release }) {
|
|
66783
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "mt-2 pl-6.5", children: [
|
|
66784
|
+
release.releaseNotes && /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "max-h-28 overflow-y-auto whitespace-pre-line text-xs text-muted-foreground", children: release.releaseNotes }),
|
|
66785
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
66786
|
+
"button",
|
|
66787
|
+
{
|
|
66788
|
+
type: "button",
|
|
66789
|
+
onClick: () => openExternalUrl(release.releaseUrl),
|
|
66790
|
+
className: "mt-1.5 text-xs text-primary underline-offset-4 hover:underline",
|
|
66791
|
+
children: "Release notes on GitHub"
|
|
66792
|
+
}
|
|
66793
|
+
)
|
|
66794
|
+
] });
|
|
66795
|
+
}
|
|
66796
|
+
function ToastActions({ children: children2 }) {
|
|
66797
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "mt-3 flex justify-end gap-2", children: children2 });
|
|
66798
|
+
}
|
|
66483
66799
|
const wsClient = createWSClient({
|
|
66484
66800
|
url: () => {
|
|
66485
66801
|
const proto2 = location.protocol === "https:" ? "wss:" : "ws:";
|
|
@@ -66819,7 +67135,7 @@ function SidebarTitleBar() {
|
|
|
66819
67135
|
"div",
|
|
66820
67136
|
{
|
|
66821
67137
|
"data-testid": "desktop-title-bar__sidebar-surface",
|
|
66822
|
-
className: "h-[38px] shrink-0 flex items-center border-b border-border
|
|
67138
|
+
className: "h-[38px] shrink-0 flex items-center border-b border-border",
|
|
66823
67139
|
style: DRAG_STYLE
|
|
66824
67140
|
}
|
|
66825
67141
|
);
|
|
@@ -66918,7 +67234,7 @@ function parseWorkspaceFromPath(pathname) {
|
|
|
66918
67234
|
return match ? decodeURIComponent(match[1]) : null;
|
|
66919
67235
|
}
|
|
66920
67236
|
const states = /* @__PURE__ */ new Map();
|
|
66921
|
-
const listeners$
|
|
67237
|
+
const listeners$2 = /* @__PURE__ */ new Map();
|
|
66922
67238
|
const EMPTY_STATE = Object.freeze({ openFilePath: null });
|
|
66923
67239
|
function getPerWorkspaceState(workspaceId) {
|
|
66924
67240
|
return states.get(workspaceId) ?? EMPTY_STATE;
|
|
@@ -66928,19 +67244,19 @@ function setPerWorkspaceState(workspaceId, patch2) {
|
|
|
66928
67244
|
const next2 = { ...prev2, ...patch2 };
|
|
66929
67245
|
if (prev2.currentFile === next2.currentFile && prev2.openFilePath === next2.openFilePath) return;
|
|
66930
67246
|
states.set(workspaceId, next2);
|
|
66931
|
-
const set2 = listeners$
|
|
67247
|
+
const set2 = listeners$2.get(workspaceId);
|
|
66932
67248
|
if (set2) for (const cb of set2) cb();
|
|
66933
67249
|
}
|
|
66934
67250
|
function subscribePerWorkspaceState(workspaceId, cb) {
|
|
66935
|
-
let set2 = listeners$
|
|
67251
|
+
let set2 = listeners$2.get(workspaceId);
|
|
66936
67252
|
if (!set2) {
|
|
66937
67253
|
set2 = /* @__PURE__ */ new Set();
|
|
66938
|
-
listeners$
|
|
67254
|
+
listeners$2.set(workspaceId, set2);
|
|
66939
67255
|
}
|
|
66940
67256
|
set2.add(cb);
|
|
66941
67257
|
return () => {
|
|
66942
67258
|
set2?.delete(cb);
|
|
66943
|
-
if (set2 && set2.size === 0) listeners$
|
|
67259
|
+
if (set2 && set2.size === 0) listeners$2.delete(workspaceId);
|
|
66944
67260
|
};
|
|
66945
67261
|
}
|
|
66946
67262
|
function clearPerWorkspaceState(workspaceId) {
|
|
@@ -82269,15 +82585,6 @@ function pathInside(parent, child) {
|
|
|
82269
82585
|
if (!child.startsWith(prefix)) return null;
|
|
82270
82586
|
return child.slice(prefix.length);
|
|
82271
82587
|
}
|
|
82272
|
-
function openExternalUrl(url) {
|
|
82273
|
-
if (isDesktop) {
|
|
82274
|
-
invoke("open_external", { url }).catch(() => {
|
|
82275
|
-
window.open(url, "_blank", "noopener");
|
|
82276
|
-
});
|
|
82277
|
-
return;
|
|
82278
|
-
}
|
|
82279
|
-
window.open(url, "_blank", "noopener");
|
|
82280
|
-
}
|
|
82281
82588
|
const KNOWN_EXTENSIONS = /* @__PURE__ */ new Set([
|
|
82282
82589
|
// Code
|
|
82283
82590
|
"ts",
|
|
@@ -83727,48 +84034,6 @@ function reconcileTerminalWorkspaces(validWorkspaceIds, activeWorkspaceId) {
|
|
|
83727
84034
|
function hasTerminal(terminalId) {
|
|
83728
84035
|
return getCache().has(terminalId);
|
|
83729
84036
|
}
|
|
83730
|
-
let domOverlayCount = 0;
|
|
83731
|
-
let manualHoldCount = 0;
|
|
83732
|
-
const listeners$2 = /* @__PURE__ */ new Set();
|
|
83733
|
-
let lastEmitted = false;
|
|
83734
|
-
function isFrozen$3() {
|
|
83735
|
-
return domOverlayCount + manualHoldCount > 0;
|
|
83736
|
-
}
|
|
83737
|
-
function emitIfChanged() {
|
|
83738
|
-
const next2 = isFrozen$3();
|
|
83739
|
-
if (next2 === lastEmitted) return;
|
|
83740
|
-
lastEmitted = next2;
|
|
83741
|
-
for (const l4 of listeners$2) l4();
|
|
83742
|
-
}
|
|
83743
|
-
function subscribe$2(l4) {
|
|
83744
|
-
listeners$2.add(l4);
|
|
83745
|
-
return () => {
|
|
83746
|
-
listeners$2.delete(l4);
|
|
83747
|
-
};
|
|
83748
|
-
}
|
|
83749
|
-
function getSnapshot$2() {
|
|
83750
|
-
return lastEmitted;
|
|
83751
|
-
}
|
|
83752
|
-
function useBrowserPaneFrozen() {
|
|
83753
|
-
return reactExports.useSyncExternalStore(subscribe$2, getSnapshot$2, getSnapshot$2);
|
|
83754
|
-
}
|
|
83755
|
-
function acquireFreezeHold() {
|
|
83756
|
-
manualHoldCount += 1;
|
|
83757
|
-
emitIfChanged();
|
|
83758
|
-
let released = false;
|
|
83759
|
-
return () => {
|
|
83760
|
-
if (released) return;
|
|
83761
|
-
released = true;
|
|
83762
|
-
manualHoldCount = Math.max(0, manualHoldCount - 1);
|
|
83763
|
-
emitIfChanged();
|
|
83764
|
-
};
|
|
83765
|
-
}
|
|
83766
|
-
function useFreezeWhile(open2) {
|
|
83767
|
-
reactExports.useEffect(() => {
|
|
83768
|
-
if (!open2) return;
|
|
83769
|
-
return acquireFreezeHold();
|
|
83770
|
-
}, [open2]);
|
|
83771
|
-
}
|
|
83772
84037
|
const DEFAULT_OPTIONS = {
|
|
83773
84038
|
caseSensitive: false,
|
|
83774
84039
|
wholeWord: false,
|
|
@@ -84309,10 +84574,12 @@ function AddressBarAutocomplete({ state: state2, onSelect }) {
|
|
|
84309
84574
|
}
|
|
84310
84575
|
function BrowserFindBar({ find: find2 }) {
|
|
84311
84576
|
if (!find2.isOpen) return null;
|
|
84312
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
84577
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex shrink-0 justify-end px-4 py-1.5", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
84313
84578
|
SearchBar,
|
|
84314
84579
|
{
|
|
84315
84580
|
ref: find2.searchBarRef,
|
|
84581
|
+
variant: "floating",
|
|
84582
|
+
className: "static",
|
|
84316
84583
|
query: find2.query,
|
|
84317
84584
|
onQueryChange: find2.setQuery,
|
|
84318
84585
|
options: find2.options,
|
|
@@ -84324,7 +84591,7 @@ function BrowserFindBar({ find: find2 }) {
|
|
|
84324
84591
|
onClose: find2.close,
|
|
84325
84592
|
visibleOptions: ["caseSensitive"]
|
|
84326
84593
|
}
|
|
84327
|
-
);
|
|
84594
|
+
) });
|
|
84328
84595
|
}
|
|
84329
84596
|
const SEARCH_DEBOUNCE_MS = 150;
|
|
84330
84597
|
const LIST_LIMIT = 200;
|
|
@@ -111079,7 +111346,7 @@ var tn = f$5("block", "before:content-[counter(line)]", "before:inline-block", "
|
|
|
111079
111346
|
var et$1 = ({ className: e3, language: t2, style: o3, isIncomplete: n2, ...s2 }) => jsxRuntimeExports.jsx("div", { className: f$5("my-4 flex w-full flex-col gap-2 rounded-xl border border-border bg-sidebar p-2", e3), "data-incomplete": n2 || void 0, "data-language": t2, "data-streamdown": "code-block", style: { contentVisibility: "auto", containIntrinsicSize: "auto 200px", ...o3 }, ...s2 });
|
|
111080
111347
|
var Se$1 = reactExports.createContext({ code: "" }), de$2 = () => reactExports.useContext(Se$1);
|
|
111081
111348
|
var ot$1 = ({ language: e3 }) => jsxRuntimeExports.jsx("div", { className: "flex h-8 items-center text-muted-foreground text-xs", "data-language": e3, "data-streamdown": "code-block-header", children: jsxRuntimeExports.jsx("span", { className: "ml-1 font-mono lowercase", children: e3 }) });
|
|
111082
|
-
var cn = /\n+$/, dn = reactExports.lazy(() => import("./highlighted-body-B3W2YXNL-
|
|
111349
|
+
var cn = /\n+$/, dn = reactExports.lazy(() => import("./highlighted-body-B3W2YXNL-D96wFQIF.js").then((e3) => ({ default: e3.HighlightedCodeBlockBody }))), rt = ({ code: e3, language: t2, className: o3, children: n2, isIncomplete: s2 = false, ...r2 }) => {
|
|
111083
111350
|
let i2 = reactExports.useMemo(() => e3.replace(cn, ""), [e3]), c2 = reactExports.useMemo(() => ({ bg: "transparent", fg: "inherit", tokens: i2.split(`
|
|
111084
111351
|
`).map((a2) => [{ content: a2, color: "inherit", bgColor: "transparent", htmlStyle: {}, offset: 0 }]) }), [i2]);
|
|
111085
111352
|
return jsxRuntimeExports.jsx(Se$1.Provider, { value: { code: e3 }, children: jsxRuntimeExports.jsxs(et$1, { isIncomplete: s2, language: t2, children: [jsxRuntimeExports.jsx(ot$1, { language: t2 }), n2 ? jsxRuntimeExports.jsx("div", { className: "pointer-events-none sticky top-2 z-10 -mt-10 flex h-8 items-center justify-end", children: jsxRuntimeExports.jsx("div", { className: "pointer-events-auto flex shrink-0 items-center gap-2 rounded-md border border-sidebar bg-sidebar/80 px-1.5 py-1 supports-[backdrop-filter]:bg-sidebar/70 supports-[backdrop-filter]:backdrop-blur", "data-streamdown": "code-block-actions", children: n2 }) }) : null, jsxRuntimeExports.jsx(reactExports.Suspense, { fallback: jsxRuntimeExports.jsx(Qe$1, { className: o3, language: t2, result: c2, ...r2 }), children: jsxRuntimeExports.jsx(dn, { className: o3, code: i2, language: t2, raw: c2, ...r2 }) })] }) });
|
|
@@ -111401,7 +111668,7 @@ var Dt = ({ children: e3, className: t2, onDownload: o3, onError: n2 }) => {
|
|
|
111401
111668
|
}, []), jsxRuntimeExports.jsxs("div", { className: "relative", ref: i2, children: [jsxRuntimeExports.jsx("button", { className: f$5("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50", t2), disabled: c2, onClick: () => r2(!s2), title: "Download table", type: "button", children: e3 != null ? e3 : jsxRuntimeExports.jsx(Z$2, { size: 14 }) }), s2 ? jsxRuntimeExports.jsxs("div", { className: "absolute top-full right-0 z-10 mt-1 min-w-[120px] overflow-hidden rounded-md border border-border bg-background shadow-lg", children: [jsxRuntimeExports.jsx("button", { className: "w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40", onClick: () => a2("csv"), title: "Download table as CSV", type: "button", children: "CSV" }), jsxRuntimeExports.jsx("button", { className: "w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40", onClick: () => a2("markdown"), title: "Download table as Markdown", type: "button", children: "Markdown" })] }) : null] });
|
|
111402
111669
|
};
|
|
111403
111670
|
var Vt = ({ children: e3, className: t2, showControls: o3, ...n2 }) => jsxRuntimeExports.jsxs("div", { className: "my-4 flex flex-col gap-2 rounded-lg border border-border bg-sidebar p-2", "data-streamdown": "table-wrapper", children: [o3 ? jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-end gap-1", children: [jsxRuntimeExports.jsx(Ht, {}), jsxRuntimeExports.jsx(Dt, {})] }) : null, jsxRuntimeExports.jsx("div", { className: "border-collapse overflow-x-auto overscroll-y-auto rounded-md border border-border bg-background", children: jsxRuntimeExports.jsx("table", { className: f$5("w-full divide-y divide-border", t2), "data-streamdown": "table", ...n2, children: e3 }) })] });
|
|
111404
|
-
var Jn = reactExports.lazy(() => import("./mermaid-3ZIDBTTL-
|
|
111671
|
+
var Jn = reactExports.lazy(() => import("./mermaid-3ZIDBTTL-OXquaWS7.js").then((e3) => ({ default: e3.Mermaid }))), Kn = /language-([^\s]+)/;
|
|
111405
111672
|
function ke$1(e3, t2) {
|
|
111406
111673
|
if (!(e3 != null && e3.position || t2 != null && t2.position)) return true;
|
|
111407
111674
|
if (!(e3 != null && e3.position && (t2 != null && t2.position))) return false;
|
|
@@ -164263,12 +164530,12 @@ var registerDefaultLayoutLoaders = /* @__PURE__ */ __name(() => {
|
|
|
164263
164530
|
registerLayoutLoaders([
|
|
164264
164531
|
{
|
|
164265
164532
|
name: "dagre",
|
|
164266
|
-
loader: /* @__PURE__ */ __name(async () => await import("./dagre-6UL2VRFP-
|
|
164533
|
+
loader: /* @__PURE__ */ __name(async () => await import("./dagre-6UL2VRFP-B7jTJSLw.js"), "loader")
|
|
164267
164534
|
},
|
|
164268
164535
|
...[
|
|
164269
164536
|
{
|
|
164270
164537
|
name: "cose-bilkent",
|
|
164271
|
-
loader: /* @__PURE__ */ __name(async () => await import("./cose-bilkent-S5V4N54A-
|
|
164538
|
+
loader: /* @__PURE__ */ __name(async () => await import("./cose-bilkent-S5V4N54A-B9ae2Qdn.js"), "loader")
|
|
164272
164539
|
}
|
|
164273
164540
|
]
|
|
164274
164541
|
]);
|
|
@@ -164707,7 +164974,7 @@ var detector = /* @__PURE__ */ __name((txt) => {
|
|
|
164707
164974
|
return /^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(txt);
|
|
164708
164975
|
}, "detector");
|
|
164709
164976
|
var loader = /* @__PURE__ */ __name(async () => {
|
|
164710
|
-
const { diagram: diagram2 } = await import("./c4Diagram-YG6GDRKO-
|
|
164977
|
+
const { diagram: diagram2 } = await import("./c4Diagram-YG6GDRKO-DsFHmTD3.js");
|
|
164711
164978
|
return { id, diagram: diagram2 };
|
|
164712
164979
|
}, "loader");
|
|
164713
164980
|
var plugin = {
|
|
@@ -164724,7 +164991,7 @@ var detector2 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
164724
164991
|
return /^\s*graph/.test(txt);
|
|
164725
164992
|
}, "detector");
|
|
164726
164993
|
var loader2 = /* @__PURE__ */ __name(async () => {
|
|
164727
|
-
const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-
|
|
164994
|
+
const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-D936EXJm.js");
|
|
164728
164995
|
return { id: id2, diagram: diagram2 };
|
|
164729
164996
|
}, "loader");
|
|
164730
164997
|
var plugin2 = {
|
|
@@ -164747,7 +165014,7 @@ var detector3 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
164747
165014
|
return /^\s*flowchart/.test(txt);
|
|
164748
165015
|
}, "detector");
|
|
164749
165016
|
var loader3 = /* @__PURE__ */ __name(async () => {
|
|
164750
|
-
const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-
|
|
165017
|
+
const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-D936EXJm.js");
|
|
164751
165018
|
return { id: id3, diagram: diagram2 };
|
|
164752
165019
|
}, "loader");
|
|
164753
165020
|
var plugin3 = {
|
|
@@ -164761,7 +165028,7 @@ var detector4 = /* @__PURE__ */ __name((txt) => {
|
|
|
164761
165028
|
return /^\s*erDiagram/.test(txt);
|
|
164762
165029
|
}, "detector");
|
|
164763
165030
|
var loader4 = /* @__PURE__ */ __name(async () => {
|
|
164764
|
-
const { diagram: diagram2 } = await import("./erDiagram-Q2GNP2WA-
|
|
165031
|
+
const { diagram: diagram2 } = await import("./erDiagram-Q2GNP2WA-eOuplDm8.js");
|
|
164765
165032
|
return { id: id4, diagram: diagram2 };
|
|
164766
165033
|
}, "loader");
|
|
164767
165034
|
var plugin4 = {
|
|
@@ -164775,7 +165042,7 @@ var detector5 = /* @__PURE__ */ __name((txt) => {
|
|
|
164775
165042
|
return /^\s*gitGraph/.test(txt);
|
|
164776
165043
|
}, "detector");
|
|
164777
165044
|
var loader5 = /* @__PURE__ */ __name(async () => {
|
|
164778
|
-
const { diagram: diagram2 } = await import("./gitGraphDiagram-V2S2FVAM-
|
|
165045
|
+
const { diagram: diagram2 } = await import("./gitGraphDiagram-V2S2FVAM-BySu09rG.js");
|
|
164779
165046
|
return { id: id5, diagram: diagram2 };
|
|
164780
165047
|
}, "loader");
|
|
164781
165048
|
var plugin5 = {
|
|
@@ -164789,7 +165056,7 @@ var detector6 = /* @__PURE__ */ __name((txt) => {
|
|
|
164789
165056
|
return /^\s*gantt/.test(txt);
|
|
164790
165057
|
}, "detector");
|
|
164791
165058
|
var loader6 = /* @__PURE__ */ __name(async () => {
|
|
164792
|
-
const { diagram: diagram2 } = await import("./ganttDiagram-JELNMOA3-
|
|
165059
|
+
const { diagram: diagram2 } = await import("./ganttDiagram-JELNMOA3-BiN9iSoE.js");
|
|
164793
165060
|
return { id: id6, diagram: diagram2 };
|
|
164794
165061
|
}, "loader");
|
|
164795
165062
|
var plugin6 = {
|
|
@@ -164803,7 +165070,7 @@ var detector7 = /* @__PURE__ */ __name((txt) => {
|
|
|
164803
165070
|
return /^\s*info/.test(txt);
|
|
164804
165071
|
}, "detector");
|
|
164805
165072
|
var loader7 = /* @__PURE__ */ __name(async () => {
|
|
164806
|
-
const { diagram: diagram2 } = await import("./infoDiagram-HS3SLOUP
|
|
165073
|
+
const { diagram: diagram2 } = await import("./infoDiagram-HS3SLOUP-tw47oYSh.js");
|
|
164807
165074
|
return { id: id7, diagram: diagram2 };
|
|
164808
165075
|
}, "loader");
|
|
164809
165076
|
var info = {
|
|
@@ -164816,7 +165083,7 @@ var detector8 = /* @__PURE__ */ __name((txt) => {
|
|
|
164816
165083
|
return /^\s*pie/.test(txt);
|
|
164817
165084
|
}, "detector");
|
|
164818
165085
|
var loader8 = /* @__PURE__ */ __name(async () => {
|
|
164819
|
-
const { diagram: diagram2 } = await import("./pieDiagram-ADFJNKIX-
|
|
165086
|
+
const { diagram: diagram2 } = await import("./pieDiagram-ADFJNKIX-CaxKfDJS.js");
|
|
164820
165087
|
return { id: id8, diagram: diagram2 };
|
|
164821
165088
|
}, "loader");
|
|
164822
165089
|
var pie = {
|
|
@@ -164829,7 +165096,7 @@ var detector9 = /* @__PURE__ */ __name((txt) => {
|
|
|
164829
165096
|
return /^\s*quadrantChart/.test(txt);
|
|
164830
165097
|
}, "detector");
|
|
164831
165098
|
var loader9 = /* @__PURE__ */ __name(async () => {
|
|
164832
|
-
const { diagram: diagram2 } = await import("./quadrantDiagram-AYHSOK5B-
|
|
165099
|
+
const { diagram: diagram2 } = await import("./quadrantDiagram-AYHSOK5B-Ca2xEu2r.js");
|
|
164833
165100
|
return { id: id9, diagram: diagram2 };
|
|
164834
165101
|
}, "loader");
|
|
164835
165102
|
var plugin7 = {
|
|
@@ -164843,7 +165110,7 @@ var detector10 = /* @__PURE__ */ __name((txt) => {
|
|
|
164843
165110
|
return /^\s*xychart(-beta)?/.test(txt);
|
|
164844
165111
|
}, "detector");
|
|
164845
165112
|
var loader10 = /* @__PURE__ */ __name(async () => {
|
|
164846
|
-
const { diagram: diagram2 } = await import("./xychartDiagram-PRI3JC2R-
|
|
165113
|
+
const { diagram: diagram2 } = await import("./xychartDiagram-PRI3JC2R-XawkKMC7.js");
|
|
164847
165114
|
return { id: id10, diagram: diagram2 };
|
|
164848
165115
|
}, "loader");
|
|
164849
165116
|
var plugin8 = {
|
|
@@ -164857,7 +165124,7 @@ var detector11 = /* @__PURE__ */ __name((txt) => {
|
|
|
164857
165124
|
return /^\s*requirement(Diagram)?/.test(txt);
|
|
164858
165125
|
}, "detector");
|
|
164859
165126
|
var loader11 = /* @__PURE__ */ __name(async () => {
|
|
164860
|
-
const { diagram: diagram2 } = await import("./requirementDiagram-UZGBJVZJ-
|
|
165127
|
+
const { diagram: diagram2 } = await import("./requirementDiagram-UZGBJVZJ-Yu709R_p.js");
|
|
164861
165128
|
return { id: id11, diagram: diagram2 };
|
|
164862
165129
|
}, "loader");
|
|
164863
165130
|
var plugin9 = {
|
|
@@ -164871,7 +165138,7 @@ var detector12 = /* @__PURE__ */ __name((txt) => {
|
|
|
164871
165138
|
return /^\s*sequenceDiagram/.test(txt);
|
|
164872
165139
|
}, "detector");
|
|
164873
165140
|
var loader12 = /* @__PURE__ */ __name(async () => {
|
|
164874
|
-
const { diagram: diagram2 } = await import("./sequenceDiagram-WL72ISMW-
|
|
165141
|
+
const { diagram: diagram2 } = await import("./sequenceDiagram-WL72ISMW-D1bV4VYq.js");
|
|
164875
165142
|
return { id: id12, diagram: diagram2 };
|
|
164876
165143
|
}, "loader");
|
|
164877
165144
|
var plugin10 = {
|
|
@@ -164888,7 +165155,7 @@ var detector13 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
164888
165155
|
return /^\s*classDiagram/.test(txt);
|
|
164889
165156
|
}, "detector");
|
|
164890
165157
|
var loader13 = /* @__PURE__ */ __name(async () => {
|
|
164891
|
-
const { diagram: diagram2 } = await import("./classDiagram-2ON5EDUG-
|
|
165158
|
+
const { diagram: diagram2 } = await import("./classDiagram-2ON5EDUG-CnPtqi4k.js");
|
|
164892
165159
|
return { id: id13, diagram: diagram2 };
|
|
164893
165160
|
}, "loader");
|
|
164894
165161
|
var plugin11 = {
|
|
@@ -164905,7 +165172,7 @@ var detector14 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
164905
165172
|
return /^\s*classDiagram-v2/.test(txt);
|
|
164906
165173
|
}, "detector");
|
|
164907
165174
|
var loader14 = /* @__PURE__ */ __name(async () => {
|
|
164908
|
-
const { diagram: diagram2 } = await import("./classDiagram-v2-WZHVMYZB-
|
|
165175
|
+
const { diagram: diagram2 } = await import("./classDiagram-v2-WZHVMYZB-CnPtqi4k.js");
|
|
164909
165176
|
return { id: id14, diagram: diagram2 };
|
|
164910
165177
|
}, "loader");
|
|
164911
165178
|
var plugin12 = {
|
|
@@ -164922,7 +165189,7 @@ var detector15 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
164922
165189
|
return /^\s*stateDiagram/.test(txt);
|
|
164923
165190
|
}, "detector");
|
|
164924
165191
|
var loader15 = /* @__PURE__ */ __name(async () => {
|
|
164925
|
-
const { diagram: diagram2 } = await import("./stateDiagram-FKZM4ZOC-
|
|
165192
|
+
const { diagram: diagram2 } = await import("./stateDiagram-FKZM4ZOC-vLFbsrNj.js");
|
|
164926
165193
|
return { id: id15, diagram: diagram2 };
|
|
164927
165194
|
}, "loader");
|
|
164928
165195
|
var plugin13 = {
|
|
@@ -164942,7 +165209,7 @@ var detector16 = /* @__PURE__ */ __name((txt, config2) => {
|
|
|
164942
165209
|
return false;
|
|
164943
165210
|
}, "detector");
|
|
164944
165211
|
var loader16 = /* @__PURE__ */ __name(async () => {
|
|
164945
|
-
const { diagram: diagram2 } = await import("./stateDiagram-v2-4FDKWEC3-
|
|
165212
|
+
const { diagram: diagram2 } = await import("./stateDiagram-v2-4FDKWEC3-BKTZFre2.js");
|
|
164946
165213
|
return { id: id16, diagram: diagram2 };
|
|
164947
165214
|
}, "loader");
|
|
164948
165215
|
var plugin14 = {
|
|
@@ -164956,7 +165223,7 @@ var detector17 = /* @__PURE__ */ __name((txt) => {
|
|
|
164956
165223
|
return /^\s*journey/.test(txt);
|
|
164957
165224
|
}, "detector");
|
|
164958
165225
|
var loader17 = /* @__PURE__ */ __name(async () => {
|
|
164959
|
-
const { diagram: diagram2 } = await import("./journeyDiagram-XKPGCS4Q-
|
|
165226
|
+
const { diagram: diagram2 } = await import("./journeyDiagram-XKPGCS4Q-dlsRbD68.js");
|
|
164960
165227
|
return { id: id17, diagram: diagram2 };
|
|
164961
165228
|
}, "loader");
|
|
164962
165229
|
var plugin15 = {
|
|
@@ -165023,7 +165290,7 @@ var detector18 = /* @__PURE__ */ __name((txt, config2 = {}) => {
|
|
|
165023
165290
|
return false;
|
|
165024
165291
|
}, "detector");
|
|
165025
165292
|
var loader18 = /* @__PURE__ */ __name(async () => {
|
|
165026
|
-
const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-
|
|
165293
|
+
const { diagram: diagram2 } = await import("./flowDiagram-NV44I4VS-D936EXJm.js");
|
|
165027
165294
|
return { id: id18, diagram: diagram2 };
|
|
165028
165295
|
}, "loader");
|
|
165029
165296
|
var plugin16 = {
|
|
@@ -165037,7 +165304,7 @@ var detector19 = /* @__PURE__ */ __name((txt) => {
|
|
|
165037
165304
|
return /^\s*timeline/.test(txt);
|
|
165038
165305
|
}, "detector");
|
|
165039
165306
|
var loader19 = /* @__PURE__ */ __name(async () => {
|
|
165040
|
-
const { diagram: diagram2 } = await import("./timeline-definition-IT6M3QCI-
|
|
165307
|
+
const { diagram: diagram2 } = await import("./timeline-definition-IT6M3QCI-BoTxx0bm.js");
|
|
165041
165308
|
return { id: id19, diagram: diagram2 };
|
|
165042
165309
|
}, "loader");
|
|
165043
165310
|
var plugin17 = {
|
|
@@ -165051,7 +165318,7 @@ var detector20 = /* @__PURE__ */ __name((txt) => {
|
|
|
165051
165318
|
return /^\s*mindmap/.test(txt);
|
|
165052
165319
|
}, "detector");
|
|
165053
165320
|
var loader20 = /* @__PURE__ */ __name(async () => {
|
|
165054
|
-
const { diagram: diagram2 } = await import("./mindmap-definition-VGOIOE7T
|
|
165321
|
+
const { diagram: diagram2 } = await import("./mindmap-definition-VGOIOE7T-BhmQKdg9.js");
|
|
165055
165322
|
return { id: id20, diagram: diagram2 };
|
|
165056
165323
|
}, "loader");
|
|
165057
165324
|
var plugin18 = {
|
|
@@ -165065,7 +165332,7 @@ var detector21 = /* @__PURE__ */ __name((txt) => {
|
|
|
165065
165332
|
return /^\s*kanban/.test(txt);
|
|
165066
165333
|
}, "detector");
|
|
165067
165334
|
var loader21 = /* @__PURE__ */ __name(async () => {
|
|
165068
|
-
const { diagram: diagram2 } = await import("./kanban-definition-3W4ZIXB7-
|
|
165335
|
+
const { diagram: diagram2 } = await import("./kanban-definition-3W4ZIXB7-BY-i-k2L.js");
|
|
165069
165336
|
return { id: id21, diagram: diagram2 };
|
|
165070
165337
|
}, "loader");
|
|
165071
165338
|
var plugin19 = {
|
|
@@ -165079,7 +165346,7 @@ var detector22 = /* @__PURE__ */ __name((txt) => {
|
|
|
165079
165346
|
return /^\s*sankey(-beta)?/.test(txt);
|
|
165080
165347
|
}, "detector");
|
|
165081
165348
|
var loader22 = /* @__PURE__ */ __name(async () => {
|
|
165082
|
-
const { diagram: diagram2 } = await import("./sankeyDiagram-TZEHDZUN-
|
|
165349
|
+
const { diagram: diagram2 } = await import("./sankeyDiagram-TZEHDZUN-B-IfXZ0G.js");
|
|
165083
165350
|
return { id: id22, diagram: diagram2 };
|
|
165084
165351
|
}, "loader");
|
|
165085
165352
|
var plugin20 = {
|
|
@@ -165093,7 +165360,7 @@ var detector23 = /* @__PURE__ */ __name((txt) => {
|
|
|
165093
165360
|
return /^\s*packet(-beta)?/.test(txt);
|
|
165094
165361
|
}, "detector");
|
|
165095
165362
|
var loader23 = /* @__PURE__ */ __name(async () => {
|
|
165096
|
-
const { diagram: diagram2 } = await import("./diagram-S2PKOQOG-
|
|
165363
|
+
const { diagram: diagram2 } = await import("./diagram-S2PKOQOG-DmG_O45F.js");
|
|
165097
165364
|
return { id: id23, diagram: diagram2 };
|
|
165098
165365
|
}, "loader");
|
|
165099
165366
|
var packet = {
|
|
@@ -165106,7 +165373,7 @@ var detector24 = /* @__PURE__ */ __name((txt) => {
|
|
|
165106
165373
|
return /^\s*radar-beta/.test(txt);
|
|
165107
165374
|
}, "detector");
|
|
165108
165375
|
var loader24 = /* @__PURE__ */ __name(async () => {
|
|
165109
|
-
const { diagram: diagram2 } = await import("./diagram-QEK2KX5R-
|
|
165376
|
+
const { diagram: diagram2 } = await import("./diagram-QEK2KX5R-CIAMWYgF.js");
|
|
165110
165377
|
return { id: id24, diagram: diagram2 };
|
|
165111
165378
|
}, "loader");
|
|
165112
165379
|
var radar = {
|
|
@@ -165119,7 +165386,7 @@ var detector25 = /* @__PURE__ */ __name((txt) => {
|
|
|
165119
165386
|
return /^\s*block(-beta)?/.test(txt);
|
|
165120
165387
|
}, "detector");
|
|
165121
165388
|
var loader25 = /* @__PURE__ */ __name(async () => {
|
|
165122
|
-
const { diagram: diagram2 } = await import("./blockDiagram-VD42YOAC-
|
|
165389
|
+
const { diagram: diagram2 } = await import("./blockDiagram-VD42YOAC-Dg_flni_.js");
|
|
165123
165390
|
return { id: id25, diagram: diagram2 };
|
|
165124
165391
|
}, "loader");
|
|
165125
165392
|
var plugin21 = {
|
|
@@ -165133,7 +165400,7 @@ var detector26 = /* @__PURE__ */ __name((txt) => {
|
|
|
165133
165400
|
return /^\s*architecture/.test(txt);
|
|
165134
165401
|
}, "detector");
|
|
165135
165402
|
var loader26 = /* @__PURE__ */ __name(async () => {
|
|
165136
|
-
const { diagram: diagram2 } = await import("./architectureDiagram-VXUJARFQ-
|
|
165403
|
+
const { diagram: diagram2 } = await import("./architectureDiagram-VXUJARFQ-DkchSxdX.js");
|
|
165137
165404
|
return { id: id26, diagram: diagram2 };
|
|
165138
165405
|
}, "loader");
|
|
165139
165406
|
var architecture = {
|
|
@@ -165147,7 +165414,7 @@ var detector27 = /* @__PURE__ */ __name((txt) => {
|
|
|
165147
165414
|
return /^\s*treemap/.test(txt);
|
|
165148
165415
|
}, "detector");
|
|
165149
165416
|
var loader27 = /* @__PURE__ */ __name(async () => {
|
|
165150
|
-
const { diagram: diagram2 } = await import("./diagram-PSM6KHXK-
|
|
165417
|
+
const { diagram: diagram2 } = await import("./diagram-PSM6KHXK-zpQZfPMx.js");
|
|
165151
165418
|
return { id: id27, diagram: diagram2 };
|
|
165152
165419
|
}, "loader");
|
|
165153
165420
|
var treemap = {
|
|
@@ -170629,6 +170896,7 @@ function CronjobsPageContent() {
|
|
|
170629
170896
|
variant: "outline",
|
|
170630
170897
|
size: "xs",
|
|
170631
170898
|
className: "hidden sm:inline-flex",
|
|
170899
|
+
"data-testid": "cronjobs__new-button",
|
|
170632
170900
|
onClick: handleCreate,
|
|
170633
170901
|
children: [
|
|
170634
170902
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Plus, { className: "size-3" }),
|
|
@@ -170965,8 +171233,19 @@ function CronjobDialog({
|
|
|
170965
171233
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-2", children: [
|
|
170966
171234
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Label$1, { children: "Project" }),
|
|
170967
171235
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(Select, { value: selectedProject, onValueChange: handleProjectChange, children: [
|
|
170968
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, { placeholder: "Select a project" }) }),
|
|
170969
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(SelectContent, { children: projects.map((p2) => /* @__PURE__ */ jsxRuntimeExports.
|
|
171236
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { "data-testid": "cronjobs__project-select", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, { placeholder: "Select a project" }) }),
|
|
171237
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(SelectContent, { children: projects.map((p2) => /* @__PURE__ */ jsxRuntimeExports.jsxs(SelectItem, { value: p2.name, children: [
|
|
171238
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
171239
|
+
ProjectAvatar,
|
|
171240
|
+
{
|
|
171241
|
+
avatar: p2.avatar,
|
|
171242
|
+
className: "size-4",
|
|
171243
|
+
fallback: null,
|
|
171244
|
+
testId: `cronjobs__project-avatar--${p2.name}`
|
|
171245
|
+
}
|
|
171246
|
+
),
|
|
171247
|
+
p2.name
|
|
171248
|
+
] }, p2.name)) })
|
|
170970
171249
|
] })
|
|
170971
171250
|
] }),
|
|
170972
171251
|
scope === "workspace" && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-2", children: [
|
|
@@ -193904,7 +194183,7 @@ function SharedDockviewLayout() {
|
|
|
193904
194183
|
] });
|
|
193905
194184
|
}
|
|
193906
194185
|
const TerminalPanel = reactExports.lazy(
|
|
193907
|
-
() => import("./TerminalPanel-
|
|
194186
|
+
() => import("./TerminalPanel-DwiK0a7O.js").then((m2) => ({ default: m2.TerminalPanel }))
|
|
193908
194187
|
);
|
|
193909
194188
|
const nestedTheme = {
|
|
193910
194189
|
name: "band",
|
|
@@ -194769,6 +195048,7 @@ function useLeafFind(workspaceId, visible, previewSearch) {
|
|
|
194769
195048
|
SearchBar,
|
|
194770
195049
|
{
|
|
194771
195050
|
ref: search2.searchBarRef,
|
|
195051
|
+
variant: "floating",
|
|
194772
195052
|
query: search2.searchQuery,
|
|
194773
195053
|
onQueryChange: (q2) => {
|
|
194774
195054
|
search2.setSearchQuery(q2);
|
|
@@ -195039,7 +195319,7 @@ function FileLeaf({ params, api }) {
|
|
|
195039
195319
|
},
|
|
195040
195320
|
renderMarkdown,
|
|
195041
195321
|
onEditorView: handleEditorView,
|
|
195042
|
-
|
|
195322
|
+
overlay: searchBar,
|
|
195043
195323
|
savedSelection: persisted?.selection,
|
|
195044
195324
|
savedScrollTop: persisted?.scrollTop,
|
|
195045
195325
|
initialEditedContent: persisted?.editedContent ?? null,
|
|
@@ -195178,8 +195458,8 @@ function DiffLeaf({ params, api, containerApi }) {
|
|
|
195178
195458
|
className: "flex h-full w-full flex-col overflow-hidden",
|
|
195179
195459
|
"data-testid": `center-diff-leaf__visible-${visible ? "true" : "false"}`,
|
|
195180
195460
|
children: [
|
|
195181
|
-
searchBar,
|
|
195182
195461
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative min-h-0 flex-1", children: [
|
|
195462
|
+
searchBar,
|
|
195183
195463
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
195184
195464
|
"div",
|
|
195185
195465
|
{
|
|
@@ -197178,6 +197458,18 @@ function saveRightPanelCollapsed(collapsed) {
|
|
|
197178
197458
|
}
|
|
197179
197459
|
const RIGHT_PANEL_MIN_SIZE = "15rem";
|
|
197180
197460
|
const RIGHT_PANEL_MAX_SIZE = "60%";
|
|
197461
|
+
const TRANSLUCENT_SIDEBAR_ATTR = "data-translucent-sidebar";
|
|
197462
|
+
const TRANSLUCENT_SIDEBAR_STORAGE_KEY = "band:translucent-sidebar";
|
|
197463
|
+
const supportsTranslucentSidebar = isDesktop && typeof navigator !== "undefined" && /Mac/.test(navigator.userAgent);
|
|
197464
|
+
const TRANSLUCENT_SIDEBAR_INIT_SCRIPT = `(function(){try{if(!("__BAND_DESKTOP__" in window)||!/Mac/.test(navigator.userAgent))return;if(localStorage.getItem(${JSON.stringify(TRANSLUCENT_SIDEBAR_STORAGE_KEY)})==="0")return;document.documentElement.setAttribute(${JSON.stringify(TRANSLUCENT_SIDEBAR_ATTR)},"")}catch(e){}})()`;
|
|
197465
|
+
function applyTranslucentSidebar(enabled) {
|
|
197466
|
+
const on2 = enabled && supportsTranslucentSidebar;
|
|
197467
|
+
document.documentElement.toggleAttribute(TRANSLUCENT_SIDEBAR_ATTR, on2);
|
|
197468
|
+
try {
|
|
197469
|
+
localStorage.setItem(TRANSLUCENT_SIDEBAR_STORAGE_KEY, enabled ? "1" : "0");
|
|
197470
|
+
} catch {
|
|
197471
|
+
}
|
|
197472
|
+
}
|
|
197181
197473
|
const adapter = isDesktop ? new DesktopDashboardAdapter() : new WebDashboardAdapter();
|
|
197182
197474
|
const capabilities = isDesktop ? new NativeShellCapabilities() : new WebCapabilities();
|
|
197183
197475
|
const Route$2 = createRootRoute({
|
|
@@ -197246,6 +197538,16 @@ function ThemeSync() {
|
|
|
197246
197538
|
}, []);
|
|
197247
197539
|
return null;
|
|
197248
197540
|
}
|
|
197541
|
+
function TranslucentSidebarSync() {
|
|
197542
|
+
const { settings, isLoading, error } = useSettingsQuery();
|
|
197543
|
+
const enabled = settings.translucentSidebar ?? true;
|
|
197544
|
+
const loaded = !isLoading && !error;
|
|
197545
|
+
reactExports.useEffect(() => {
|
|
197546
|
+
if (!loaded) return;
|
|
197547
|
+
applyTranslucentSidebar(enabled);
|
|
197548
|
+
}, [enabled, loaded]);
|
|
197549
|
+
return null;
|
|
197550
|
+
}
|
|
197249
197551
|
function ReloadSync() {
|
|
197250
197552
|
reactExports.useEffect(() => {
|
|
197251
197553
|
const globalKey = "__bandReload";
|
|
@@ -197556,7 +197858,7 @@ function AppShell() {
|
|
|
197556
197858
|
if (!useDesktopLayout) {
|
|
197557
197859
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(Outlet, {});
|
|
197558
197860
|
}
|
|
197559
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(ToolbarOverflowProvider, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative flex flex-col h-full w-full overflow-hidden bg-background text-foreground", children: [
|
|
197861
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(ToolbarOverflowProvider, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative flex flex-col h-full w-full overflow-hidden bg-background text-foreground translucent-sidebar:bg-transparent", children: [
|
|
197560
197862
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-1 min-h-0 overflow-hidden", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
197561
197863
|
Ut$1,
|
|
197562
197864
|
{
|
|
@@ -197580,7 +197882,7 @@ function AppShell() {
|
|
|
197580
197882
|
children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
197581
197883
|
"div",
|
|
197582
197884
|
{
|
|
197583
|
-
className: "h-full flex flex-col overflow-hidden border-r border-border bg-sidebar pb-[env(safe-area-inset-bottom)]",
|
|
197885
|
+
className: "h-full flex flex-col overflow-hidden border-r border-border bg-sidebar translucent-sidebar:bg-(--sidebar-translucent) pb-[env(safe-area-inset-bottom)]",
|
|
197584
197886
|
"data-testid": "app-shell__sidebar",
|
|
197585
197887
|
children: [
|
|
197586
197888
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SidebarTitleBar, {}),
|
|
@@ -197590,8 +197892,8 @@ function AppShell() {
|
|
|
197590
197892
|
)
|
|
197591
197893
|
}
|
|
197592
197894
|
),
|
|
197593
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Qt$1, { className: "w-[3px] bg-
|
|
197594
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Yt$1, { id: "main", elementRef: mainElRef, minSize: "20%", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "h-full flex flex-col min-w-0 overflow-hidden pb-[env(safe-area-inset-bottom)]", children: [
|
|
197895
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Qt$1, { className: "w-[3px] bg-background hover:bg-[color-mix(in_srgb,var(--accent-foreground)_20%,var(--background))] active:bg-[color-mix(in_srgb,var(--accent-foreground)_30%,var(--background))] transition-colors cursor-col-resize" }),
|
|
197896
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Yt$1, { id: "main", elementRef: mainElRef, minSize: "20%", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "h-full flex flex-col min-w-0 overflow-hidden bg-background pb-[env(safe-area-inset-bottom)]", children: [
|
|
197595
197897
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
197596
197898
|
WorkspaceTitleBar,
|
|
197597
197899
|
{
|
|
@@ -197662,25 +197964,30 @@ function RootLayout() {
|
|
|
197662
197964
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("head", { children: [
|
|
197663
197965
|
/* @__PURE__ */ jsxRuntimeExports.jsx(HeadContent, {}),
|
|
197664
197966
|
/* @__PURE__ */ jsxRuntimeExports.jsx("script", { dangerouslySetInnerHTML: { __html: THEME_INIT_SCRIPT } }),
|
|
197665
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("script", { dangerouslySetInnerHTML: { __html: ZOOM_INIT_SCRIPT } })
|
|
197967
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("script", { dangerouslySetInnerHTML: { __html: ZOOM_INIT_SCRIPT } }),
|
|
197968
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("script", { dangerouslySetInnerHTML: { __html: TRANSLUCENT_SIDEBAR_INIT_SCRIPT } })
|
|
197666
197969
|
] }),
|
|
197667
197970
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("body", { children: [
|
|
197668
197971
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(DashboardProvider, { adapter, capabilities, children: [
|
|
197669
197972
|
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeSync, {}),
|
|
197973
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(TranslucentSidebarSync, {}),
|
|
197670
197974
|
/* @__PURE__ */ jsxRuntimeExports.jsx(ZoomSync, {}),
|
|
197671
197975
|
/* @__PURE__ */ jsxRuntimeExports.jsx(ReloadSync, {}),
|
|
197672
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
197976
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(TooltipProvider, { children: [
|
|
197977
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(AppShell, {}),
|
|
197978
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(UpdateToast, {})
|
|
197979
|
+
] })
|
|
197673
197980
|
] }),
|
|
197674
197981
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Scripts, {})
|
|
197675
197982
|
] })
|
|
197676
197983
|
] });
|
|
197677
197984
|
}
|
|
197678
|
-
const $$splitComponentImporter$1 = () => import("./index-
|
|
197985
|
+
const $$splitComponentImporter$1 = () => import("./index-DKHXjVjQ.js");
|
|
197679
197986
|
const Route$1 = createFileRoute("/")({
|
|
197680
197987
|
component: lazyRouteComponent($$splitComponentImporter$1, "component")
|
|
197681
197988
|
});
|
|
197682
|
-
const $$splitNotFoundComponentImporter = () => import("./workspace._workspaceId-
|
|
197683
|
-
const $$splitComponentImporter = () => import("./workspace._workspaceId-
|
|
197989
|
+
const $$splitNotFoundComponentImporter = () => import("./workspace._workspaceId-DivWn3Sp.js");
|
|
197990
|
+
const $$splitComponentImporter = () => import("./workspace._workspaceId-C-QhWzy_.js");
|
|
197684
197991
|
const Route2 = createFileRoute("/workspace/$workspaceId")({
|
|
197685
197992
|
component: lazyRouteComponent($$splitComponentImporter, "component"),
|
|
197686
197993
|
// Bookmarks / shared links from before route unification (`/workspace/$id/changes`,
|