@marimo-team/frontend 0.15.5 → 0.16.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.
Files changed (223) hide show
  1. package/dist/assets/{ConnectedDataExplorerComponent-Cn5-l2X1.js → ConnectedDataExplorerComponent-BErMbWvG.js} +1 -1
  2. package/dist/assets/{ImageComparisonComponent-CEXMKKA4.js → ImageComparisonComponent-fTHv1Ih0.js} +1 -1
  3. package/dist/assets/{VegaLite-Bt14Ds9k.js → VegaLite-Bdi-TyfY.js} +6 -6
  4. package/dist/assets/_baseEach-CNBxBxvS.js +1 -0
  5. package/dist/assets/_baseMap-D1WHjKrd.js +1 -0
  6. package/dist/assets/_baseUniq-CCgDNtZb.js +1 -0
  7. package/dist/assets/_createAggregator-DcD0kTA5.js +1 -0
  8. package/dist/assets/agent-panel-Crv430aI.js +268 -0
  9. package/dist/assets/agent-panel-D92Mfy1i.css +1 -0
  10. package/dist/assets/{any-language-editor-DiwNT6zp.js → any-language-editor-CQh552Wu.js} +1 -1
  11. package/dist/assets/architectureDiagram-W76B3OCA-BAJeBxzt.js +36 -0
  12. package/dist/assets/{between-horizontal-start-FyewyCGn.js → between-horizontal-start-Boxgxbt_.js} +1 -1
  13. package/dist/assets/{blockDiagram-QIGZ2CNN-BrOkAf_c.js → blockDiagram-QIGZ2CNN-CL-1svEK.js} +1 -1
  14. package/dist/assets/{c4Diagram-FPNF74CW-BHPzDxE2.js → c4Diagram-FPNF74CW-BbEqbCTl.js} +5 -5
  15. package/dist/assets/channel-_2eNSz0n.js +1 -0
  16. package/dist/assets/chat-panel-CXh5Wl6C.js +3 -0
  17. package/dist/assets/{chunk-4BX2VUAB-DLxaCNYh.js → chunk-4BX2VUAB-C--8TXeE.js} +1 -1
  18. package/dist/assets/{chunk-55IACEB6-DdzvO3HR.js → chunk-55IACEB6-Bj00HDqq.js} +1 -1
  19. package/dist/assets/{chunk-FMBD7UC4-R5o-nSiG.js → chunk-FMBD7UC4-C-lhB6hN.js} +1 -1
  20. package/dist/assets/{chunk-K7UQS3LO-DxaMrGgG.js → chunk-K7UQS3LO-B-pGTXPt.js} +1 -1
  21. package/dist/assets/{chunk-QN33PNHL-DqS9-FYm.js → chunk-QN33PNHL-DqUzGhvm.js} +1 -1
  22. package/dist/assets/{chunk-QZHKN3VN-BZ-TzajS.js → chunk-QZHKN3VN-TntJHfSk.js} +1 -1
  23. package/dist/assets/{chunk-TVAH2DTR-BsgP2dyv.js → chunk-TVAH2DTR-HUJb1psV.js} +1 -1
  24. package/dist/assets/{chunk-TZMSLE5B-D-h3ahXI.js → chunk-TZMSLE5B-BK3C__t3.js} +1 -1
  25. package/dist/assets/{circle-play-CQtRZ-rT.js → circle-play-DBLOv1Yu.js} +1 -1
  26. package/dist/assets/classDiagram-KNZD7YFC-BGmh9POF.js +1 -0
  27. package/dist/assets/classDiagram-v2-RKCZMP56-BGmh9POF.js +1 -0
  28. package/dist/assets/{clear-button-BY6Z_ViL.js → clear-button-BeoFbEKH.js} +1 -1
  29. package/dist/assets/clone-BFDSPAj3.js +1 -0
  30. package/dist/assets/command-palette-CXZiSv0I.js +1 -0
  31. package/dist/assets/common-C7oJcmCT.js +1 -0
  32. package/dist/assets/{compile-Ct_jzdKr.js → compile-7L0MwhyI.js} +1 -1
  33. package/dist/assets/cose-bilkent-S5V4N54A-BMkGLcVC.js +1 -0
  34. package/dist/assets/dagre-5GWH7T2D-BJtRienS.js +4 -0
  35. package/dist/assets/{data-grid-overlay-editor-BN_wulc3.js → data-grid-overlay-editor-DBkmGtNs.js} +1 -1
  36. package/dist/assets/datasources-panel-B7FbYLiy.js +1 -0
  37. package/dist/assets/{dependency-graph-panel-BOmSCZf7.js → dependency-graph-panel-DEdOxp2X.js} +4 -4
  38. package/dist/assets/diagram-N5W7TBWH-CmECY3nb.js +24 -0
  39. package/dist/assets/diagram-QEK2KX5R-DMOVSNKD.js +43 -0
  40. package/dist/assets/diagram-S2PKOQOG-BiJ96PNQ.js +24 -0
  41. package/dist/assets/{documentation-panel-BxjJO_Gw.js → documentation-panel-xULhaEv3.js} +1 -1
  42. package/dist/assets/edit-page-BrYda9VE.js +129 -0
  43. package/dist/assets/{ellipsis-vertical-UHbmjI2n.js → ellipsis-vertical-BBqXIlc2.js} +1 -1
  44. package/dist/assets/{empty-state-BIBXzY_0.js → empty-state-B3dA3G5P.js} +1 -1
  45. package/dist/assets/{erDiagram-AWTI2OKA-E84mAle_.js → erDiagram-AWTI2OKA-MP1DiFRo.js} +1 -1
  46. package/dist/assets/{error-panel-MEvQ6K7h.js → error-panel-Cc1sv-Ag.js} +1 -1
  47. package/dist/assets/file-explorer-panel-Bw59Kva1.js +1 -0
  48. package/dist/assets/{flowDiagram-PVAE7QVJ-DfbIRSAW.js → flowDiagram-PVAE7QVJ-BX7caPp7.js} +1 -1
  49. package/dist/assets/{ganttDiagram-OWAHRB6G-DR4HZ1z_.js → ganttDiagram-OWAHRB6G-B462g4Yf.js} +3 -3
  50. package/dist/assets/gitGraphDiagram-NY62KEGX-CGgvZ9-9.js +65 -0
  51. package/dist/assets/{glide-data-editor-nNmo1lPq.js → glide-data-editor-C0gUFZON.js} +4 -4
  52. package/dist/assets/graph-CHRVBzY5.js +1 -0
  53. package/dist/assets/{home-page-9eW6qida.js → home-page-Fb2osjys.js} +3 -3
  54. package/dist/assets/{index-DMomwMcN.js → index-BVgAenPd.js} +1 -1
  55. package/dist/assets/{index-B8llrTSo.js → index-BY93Ejhl.js} +1 -1
  56. package/dist/assets/{index-BFSnz7iM.js → index-C-8WADat.js} +1 -1
  57. package/dist/assets/{index-CPN7TRA1.js → index-C-GhZ7ti.js} +1 -1
  58. package/dist/assets/{index-DyLSuOH1.js → index-C1v_Z9et.js} +1 -1
  59. package/dist/assets/{index-VPWqq2Pg.js → index-C4Tn5NvJ.js} +1 -1
  60. package/dist/assets/{index-BAH034Ue.js → index-C77h_TXN.js} +1 -1
  61. package/dist/assets/{index-Dt9UWeWn.js → index-CQDrxQ0j.js} +1 -1
  62. package/dist/assets/{index-DWOaniGT.js → index-CWMgowgL.js} +1 -1
  63. package/dist/assets/{index-B1_GXGaP.js → index-Clbi_Yaq.js} +1 -1
  64. package/dist/assets/{index-B7yXbrLa.js → index-CpTPJo4k.js} +1 -1
  65. package/dist/assets/{index-CknhX2Vy.css → index-Cx0bsY1w.css} +1 -1
  66. package/dist/assets/{index-DqzMPAC8.js → index-D1vmG6DS.js} +2 -2
  67. package/dist/assets/{index-c6If577Q.js → index-D9UKkrr2.js} +1 -1
  68. package/dist/assets/{index-CB2pnVQG.js → index-DEQvTChO.js} +1 -1
  69. package/dist/assets/{index-OC46250R.js → index-DKEudB02.js} +205 -197
  70. package/dist/assets/{index-CSgxTUzD.js → index-DRMm6SNo.js} +1 -1
  71. package/dist/assets/{index-Bq516OmX.js → index-DoRmcrKM.js} +1 -1
  72. package/dist/assets/{index-DSU75csX.js → index-lYa_leQE.js} +1 -1
  73. package/dist/assets/{index-BLu5CX6z.js → index-vmICa5KN.js} +1 -1
  74. package/dist/assets/{index-uacyUula.js → index-z9bohSQJ.js} +1 -1
  75. package/dist/assets/infoDiagram-STP46IZ2-CVyrdLc8.js +2 -0
  76. package/dist/assets/isEmpty-DU_ogP_D.js +1 -0
  77. package/dist/assets/{journeyDiagram-BIP6EPQ6-BBiFyygf.js → journeyDiagram-BIP6EPQ6-C6EgLP_Q.js} +1 -1
  78. package/dist/assets/{kanban-definition-6OIFK2YF-DhgA6Nt6.js → kanban-definition-6OIFK2YF-BXzYO1yj.js} +4 -4
  79. package/dist/assets/layout-jihVw5-i.js +1 -0
  80. package/dist/assets/linear-C4blANlC.js +1 -0
  81. package/dist/assets/{links-CbvGxbsJ.js → links-D59GIweI.js} +3 -3
  82. package/dist/assets/{logs-panel-B9SmTZAW.js → logs-panel-D401qzZh.js} +1 -1
  83. package/dist/assets/markdown-renderer-Cd9eYyaL.js +263 -0
  84. package/dist/assets/{agent-panel-DpQ6muj-.css → markdown-renderer-ClyzDMmG.css} +1 -1
  85. package/dist/assets/mermaid-BEVuRz_O.js +1 -0
  86. package/dist/assets/{mermaid.core-4nVOEVX3.js → mermaid.core-CaSnaLH0.js} +41 -41
  87. package/dist/assets/min-DUMu_zeK.js +1 -0
  88. package/dist/assets/{mindmap-definition-Q6HEUPPD-CVLQNn1q.js → mindmap-definition-Q6HEUPPD-BXUM5MT2.js} +2 -2
  89. package/dist/assets/{number-overlay-editor-CzRzXLcd.js → number-overlay-editor-4uWXGlPG.js} +1 -1
  90. package/dist/assets/{outline-panel-uvsS-YEQ.js → outline-panel-DIzkvm2I.js} +1 -1
  91. package/dist/assets/packages-panel-CJL0MVlj.js +1 -0
  92. package/dist/assets/{pieDiagram-ADFJNKIX-C5IQ5DBZ.js → pieDiagram-ADFJNKIX-Dxt5PVNo.js} +3 -3
  93. package/dist/assets/{quadrantDiagram-LMRXKWRM-CFXFnQxx.js → quadrantDiagram-LMRXKWRM-D4pUaA31.js} +1 -1
  94. package/dist/assets/{react-plotly-mzdv02_Y.js → react-plotly-cJZ0VWBq.js} +1 -1
  95. package/dist/assets/{requirementDiagram-4UW4RH46-D9bPC89T.js → requirementDiagram-4UW4RH46-DVRTjgas.js} +1 -1
  96. package/dist/assets/run-page-BUEnMC9w.js +1 -0
  97. package/dist/assets/sankeyDiagram-GR3RE2ED-CVFnD9C-.js +10 -0
  98. package/dist/assets/scratchpad-panel-BIgRENkI.js +1 -0
  99. package/dist/assets/secrets-panel-xY5-V_BD.js +1 -0
  100. package/dist/assets/{sequenceDiagram-C3RYC4MD-6N7_hY4k.js → sequenceDiagram-C3RYC4MD-_lY4ZN_S.js} +4 -4
  101. package/dist/assets/{slides-component-EcjC8sDK.js → slides-component-Xjymwj7X.js} +1 -1
  102. package/dist/assets/snippets-panel-CTPYW41n.js +1 -0
  103. package/dist/assets/sortBy-BNZKwiq_.js +1 -0
  104. package/dist/assets/state-C4NiC9tO.js +1 -0
  105. package/dist/assets/stateDiagram-KXAO66HF-Da0JQWCn.js +1 -0
  106. package/dist/assets/stateDiagram-v2-UMBNRL4Z-D5lYZOOt.js +1 -0
  107. package/dist/assets/storage-CMdLzB_c.js +26 -0
  108. package/dist/assets/terminal-BPwTkXae.js +10 -0
  109. package/dist/assets/time-Dv5_Ouz_.js +1 -0
  110. package/dist/assets/{timeline-definition-XQNQX7LJ-BEaynAiY.js → timeline-definition-XQNQX7LJ-Dxh5Zu2e.js} +1 -1
  111. package/dist/assets/tracing-BCIurUfa.js +2 -0
  112. package/dist/assets/{tracing-panel-BmuHLPrY.js → tracing-panel-DAzrzNmm.js} +2 -2
  113. package/dist/assets/{trash-UBqfK4mR.js → trash-Dc6DSjz_.js} +1 -1
  114. package/dist/assets/{tree-XiEycetl.js → tree-jheoerAX.js} +1 -1
  115. package/dist/assets/{treemap-75Q7IDZK-CnuVFbBG.js → treemap-75Q7IDZK-IgpxeGaf.js} +21 -21
  116. package/dist/assets/{ts-tags-CloPe9IY.js → ts-tags-DxCDHihD.js} +1 -1
  117. package/dist/assets/variable-panel-DYAiLBmF.js +1 -0
  118. package/dist/assets/{vega-component-DsTH4tuX.js → vega-component-BpfpiPKI.js} +1 -1
  119. package/dist/assets/{xychartDiagram-6GGTOJPD-Dcz3O-A3.js → xychartDiagram-6GGTOJPD-CmNigJ31.js} +1 -1
  120. package/dist/index.html +2 -2
  121. package/package.json +8 -4
  122. package/src/__tests__/mocks.ts +43 -0
  123. package/src/components/app-config/user-config-form.tsx +32 -0
  124. package/src/components/chat/acp/__tests__/__snapshots__/prompt.test.ts.snap +55 -23
  125. package/src/components/chat/acp/__tests__/context-utils.test.ts +222 -0
  126. package/src/components/chat/acp/__tests__/prompt.test.ts +1 -1
  127. package/src/components/chat/acp/__tests__/state.test.ts +2 -6
  128. package/src/components/chat/acp/agent-docs.tsx +33 -6
  129. package/src/components/chat/acp/agent-panel.css +0 -18
  130. package/src/components/chat/acp/agent-panel.tsx +397 -72
  131. package/src/components/chat/acp/agent-selector.tsx +7 -1
  132. package/src/components/chat/acp/blocks.tsx +40 -10
  133. package/src/components/chat/acp/common.tsx +10 -2
  134. package/src/components/chat/acp/context-utils.ts +127 -0
  135. package/src/components/chat/acp/prompt.ts +34 -10
  136. package/src/components/chat/acp/state.ts +1 -1
  137. package/src/components/chat/acp/types.ts +8 -0
  138. package/src/components/chat/chat-panel.tsx +23 -88
  139. package/src/components/chat/chat-utils.ts +127 -1
  140. package/src/components/chat/markdown-renderer.css +39 -0
  141. package/src/components/chat/markdown-renderer.tsx +7 -38
  142. package/src/components/chat/tool-call-accordion.tsx +113 -23
  143. package/src/components/editor/Cell.tsx +6 -0
  144. package/src/components/editor/actions/name-cell-input.tsx +6 -1
  145. package/src/components/editor/actions/useCellActionButton.tsx +3 -1
  146. package/src/components/editor/ai/__tests__/completion-utils.test.ts +178 -1
  147. package/src/components/editor/ai/add-cell-with-ai.tsx +68 -66
  148. package/src/components/editor/ai/ai-completion-editor.tsx +29 -26
  149. package/src/components/editor/ai/completion-handlers.tsx +44 -6
  150. package/src/components/editor/ai/completion-utils.ts +92 -0
  151. package/src/components/editor/ai/transport/chat-transport.tsx +36 -0
  152. package/src/components/editor/cell/StagedAICell.tsx +51 -0
  153. package/src/components/editor/cell/cell-actions.tsx +2 -1
  154. package/src/components/terminal/__tests__/state.test.ts +207 -0
  155. package/src/components/terminal/hooks.ts +41 -0
  156. package/src/components/terminal/state.ts +75 -0
  157. package/src/components/terminal/terminal.tsx +334 -13
  158. package/src/components/terminal/theme.tsx +56 -0
  159. package/src/core/ai/__tests__/staged-cells.test.ts +356 -0
  160. package/src/core/ai/staged-cells.ts +208 -0
  161. package/src/core/cells/cells.ts +1 -1
  162. package/src/core/codemirror/lsp/federated-lsp.ts +1 -1
  163. package/src/core/islands/main.ts +2 -2
  164. package/src/core/kernel/messages.ts +8 -12
  165. package/src/core/saving/__tests__/filename.test.ts +37 -0
  166. package/src/core/static/__tests__/download-html.test.ts +43 -1
  167. package/src/core/websocket/useMarimoWebSocket.tsx +2 -2
  168. package/src/css/app/Cell.css +11 -0
  169. package/src/plugins/core/RenderHTML.tsx +36 -2
  170. package/src/plugins/core/__test__/RenderHTML.test.ts +72 -0
  171. package/src/plugins/core/registerReactComponent.tsx +28 -0
  172. package/src/plugins/impl/FileBrowserPlugin.tsx +8 -2
  173. package/src/stories/cell.stories.tsx +1 -1
  174. package/src/stories/layout/vertical/one-column.stories.tsx +1 -1
  175. package/src/utils/__tests__/cell-urls.test.ts +29 -0
  176. package/src/utils/__tests__/filenames.test.ts +18 -0
  177. package/src/utils/__tests__/path.test.ts +38 -0
  178. package/src/utils/__tests__/urls.test.ts +56 -1
  179. package/src/utils/errors.ts +9 -0
  180. package/dist/assets/_baseEach-C1FLm7WW.js +0 -1
  181. package/dist/assets/_baseMap-DBVArUYD.js +0 -1
  182. package/dist/assets/_baseUniq-Dk7ZPJ3N.js +0 -1
  183. package/dist/assets/_createAggregator-Bn38fDd3.js +0 -1
  184. package/dist/assets/agent-panel-COUYnuIK.js +0 -475
  185. package/dist/assets/architectureDiagram-W76B3OCA-DBzWQKKu.js +0 -36
  186. package/dist/assets/channel-CjhbjOv4.js +0 -1
  187. package/dist/assets/chat-panel-BPXKoTnZ.js +0 -7
  188. package/dist/assets/chat-panel-Brrs_eeH.css +0 -1
  189. package/dist/assets/classDiagram-KNZD7YFC-DHs5cFzy.js +0 -1
  190. package/dist/assets/classDiagram-v2-RKCZMP56-DHs5cFzy.js +0 -1
  191. package/dist/assets/clone-DM1YNjEn.js +0 -1
  192. package/dist/assets/command-palette-S0bzQp7v.js +0 -1
  193. package/dist/assets/common-B8U9k2Ly.js +0 -1
  194. package/dist/assets/cose-bilkent-S5V4N54A-wz1Sfx7j.js +0 -1
  195. package/dist/assets/dagre-5GWH7T2D-BfpcVBgq.js +0 -4
  196. package/dist/assets/datasources-panel-DfuURLJw.js +0 -1
  197. package/dist/assets/diagram-N5W7TBWH-Bf0oqqQh.js +0 -24
  198. package/dist/assets/diagram-QEK2KX5R-ZTc3qikh.js +0 -43
  199. package/dist/assets/diagram-S2PKOQOG-tLScBy7Z.js +0 -24
  200. package/dist/assets/edit-page-DJ8kJZ9w.js +0 -129
  201. package/dist/assets/file-explorer-panel-CzNUJ63G.js +0 -1
  202. package/dist/assets/gitGraphDiagram-NY62KEGX-C1t6QtVa.js +0 -65
  203. package/dist/assets/graph-CssCVWIq.js +0 -1
  204. package/dist/assets/index-DcCIe7np.js +0 -28
  205. package/dist/assets/infoDiagram-STP46IZ2-CwiAoz9f.js +0 -2
  206. package/dist/assets/layout-DpQrxGW-.js +0 -1
  207. package/dist/assets/linear-NsreOeBF.js +0 -1
  208. package/dist/assets/mermaid-DSt0r6IQ.js +0 -1
  209. package/dist/assets/min-D259kI3t.js +0 -1
  210. package/dist/assets/packages-panel-xMz9W2hW.js +0 -1
  211. package/dist/assets/run-page-Bb68qdhQ.js +0 -1
  212. package/dist/assets/sankeyDiagram-GR3RE2ED-BSJOau8E.js +0 -10
  213. package/dist/assets/scratchpad-panel-BF4BO-U4.js +0 -1
  214. package/dist/assets/secrets-panel-CdIX44dQ.js +0 -1
  215. package/dist/assets/snippets-panel-Dco9h0rb.js +0 -1
  216. package/dist/assets/sortBy-aLGA-PGK.js +0 -1
  217. package/dist/assets/stateDiagram-KXAO66HF-Bd68WT3b.js +0 -1
  218. package/dist/assets/stateDiagram-v2-UMBNRL4Z-BXz_GSwb.js +0 -1
  219. package/dist/assets/storage-CGlP4lCF.js +0 -26
  220. package/dist/assets/terminal-CxkHubcu.js +0 -9
  221. package/dist/assets/time-D2nr1UgQ.js +0 -1
  222. package/dist/assets/tracing-kTqHxa7q.js +0 -2
  223. package/dist/assets/variable-panel-noTnH-AQ.js +0 -1
@@ -1 +0,0 @@
1
- import{c as $,u as Qe,al as ae,B as Xe,cg as Ge,r as D,b as xe,j as a,E as fe,ao as Q,ap as P,d6 as se,aU as ue,$ as ge,Q as X,cC as Je,eF as Ze,eG as et,eH as tt,eI as at,eJ as st,bH as it,p as nt,eK as rt,eL as ot,eM as lt,aT as je,cD as ct,eN as ie,S as O,d3 as dt,a$ as ht,aj as ye,eO as pt,eP as mt,a as M,eQ as xt,L as ft,eR as ut,d as gt,cd as be,N as ve,cA as z,U as jt,aO as U,eS as yt,d4 as bt,H as vt,bn as kt,eT as wt,I as ne,d5 as Ft,cX as Ct,cV as _t,au as Nt,av as St,eU as Dt,de as Pt,cY as Ot,cU as C,eV as V,eW as ke,eX as Mt,eY as zt,d7 as Rt,bW as At,__tla as Wt}from"./index-OC46250R.js";import{e as G,o as It}from"./links-CbvGxbsJ.js";import{m as Ht}from"./icon-32x32-DHZerVul.js";import{h as Et,i as Bt,F as we,__tla as Tt}from"./edit-page-DJ8kJZ9w.js";import{S as re,T as qt}from"./tree-XiEycetl.js";import{E as $t}from"./ellipsis-vertical-UHbmjI2n.js";import{B as Ut}from"./between-horizontal-start-FyewyCGn.js";import{__tla as Vt}from"./storage-CGlP4lCF.js";import"./index-Dt9UWeWn.js";import"./index-BAH034Ue.js";import"./index-DqzMPAC8.js";import"./index-DSU75csX.js";import"./index-CSgxTUzD.js";import"./index-BLu5CX6z.js";import"./index-B8llrTSo.js";import"./index-CPN7TRA1.js";import"./index-BFSnz7iM.js";import"./index-Bq516OmX.js";import"./index-CB2pnVQG.js";import"./index-DWOaniGT.js";import"./index-c6If577Q.js";import"./apl-CXdQSnD-.js";import"./asciiarmor-D5V0T9Cu.js";import"./asn1-DWPaVWf6.js";import"./brainfuck-CtZaYBKt.js";import"./cobol-stawOqaz.js";import"./clike-BgBwzOhw.js";import"./clojure-DiuoqK-z.js";import"./css-ZjFoif2m.js";import"./cmake-DXn5xaP-.js";import"./coffeescript-BTDxI-eT.js";import"./commonlisp-vq6DHwts.js";import"./cypher-gJDei3ni.js";import"./python-DD-Q2bae.js";import"./crystal-CRzZ78HM.js";import"./d-BShv7fp-.js";import"./diff-UJJ5BM9S.js";import"./dtd-DI9Herc-.js";import"./dylan-DkEP81N9.js";import"./ecl-DPFc0Uaf.js";import"./eiffel-DR5c0IrL.js";import"./elm-DompmV0j.js";import"./erlang-BuqgqA5h.js";import"./factor-CFXhaUWb.js";import"./simple-mode-C3vEBAcb.js";import"./forth-POgR1ypr.js";import"./fortran-DL7KluxX.js";import"./mllike-3c2dg9RT.js";import"./gas-bV0CklSb.js";import"./gherkin-B6X1vGSW.js";import"./groovy-DnIzCrpZ.js";import"./haskell-CLQs6EAM.js";import"./haxe-D25e-2l-.js";import"./idl-pcmmZuaN.js";import"./javascript-BpzJj0-u.js";import"./jinja2-DhgKlfW7.js";import"./julia-DjdwvFuI.js";import"./livescript-HO6ttBFx.js";import"./lua-8DXOpKDz.js";import"./mirc-DkvFAiy5.js";import"./mathematica-IIbmv7SK.js";import"./modelica-DSrSSXCg.js";import"./mumps-zvxmGV4l.js";import"./mbox-z_N2Mo3d.js";import"./nsis-BvKfQ9lQ.js";import"./ntriples-BSwWqoLa.js";import"./octave-C4hdQ5Hf.js";import"./oz-qQq7irPq.js";import"./pascal-CafrKXZF.js";import"./perl-tdMlh9QA.js";import"./pig-CwGJVRC4.js";import"./powershell-D1ly3AHC.js";import"./properties-_nPj978X.js";import"./protobuf-B4y9do6W.js";import"./pug-BTvK5tSS.js";import"./puppet-Bc-yJKzi.js";import"./q-B0kTJ4cI.js";import"./r-BA4EbLKE.js";import"./rpm-DI_rRufH.js";import"./ruby-CR-u2WLS.js";import"./sas-Bqaci40L.js";import"./scheme-qjP0V5Ag.js";import"./shell-BLav31RL.js";import"./sieve-r025o_jW.js";import"./smalltalk-C7J3IyEP.js";import"./sparql-BRLJFz69.js";import"./stylus-Bdo_Aemu.js";import"./swift-B_XXVlXX.js";import"./verilog-B4LBqg_1.js";import"./tcl-B2fODqDH.js";import"./textile-BuVhTOzU.js";import"./toml-wcPdHu67.js";import"./troff-Ce85hlLp.js";import"./ttcn-BxnYHtq8.js";import"./ttcn-cfg-CKJxb-l2.js";import"./turtle-BkSuIpt-.js";import"./webidl-CGwyPRYs.js";import"./vb-BHgjm0DN.js";import"./vbscript-Dawdd5GZ.js";import"./velocity-BdD_26Jv.js";import"./vhdl-CWWH2SUo.js";import"./xquery-CVDBqZPY.js";import"./yacas-I8QjZlxf.js";import"./z80-D8p3gKXp.js";import"./mscgen-B2igx18G.js";import"./index-DMomwMcN.js";import"./trash-UBqfK4mR.js";import"./_createAggregator-Bn38fDd3.js";import"./_baseEach-C1FLm7WW.js";import{__tla as Lt}from"./loro_wasm_bg-C1ks32Vm.js";import"./index-VPWqq2Pg.js";let Fe,Kt=Promise.all([(()=>{try{return Wt}catch{}})(),(()=>{try{return Tt}catch{}})(),(()=>{try{return Vt}catch{}})(),(()=>{try{return Lt}catch{}})()]).then(async()=>{const Ce=$("copy-minus",[["line",{x1:"12",x2:"18",y1:"15",y2:"15",key:"1nscbv"}],["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]),oe=$("folder-plus",[["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"M9 13h6",key:"1uhe8q"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]),le=$("list-tree",[["path",{d:"M21 12h-8",key:"1bmf0i"}],["path",{d:"M21 6H8",key:"1pqkrb"}],["path",{d:"M21 18h-8",key:"1tm79t"}],["path",{d:"M3 6v4c0 1.1.9 2 2 2h3",key:"1ywdgy"}],["path",{d:"M3 10v6c0 1.1.9 2 2 2h3",key:"2wc746"}]]),_e=$("pen-line",[["path",{d:"M13 21h8",key:"1jsn5i"}],["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}]]),Ne=$("square-play",[["rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",key:"h1oib"}],["path",{d:"M9 9.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997A1 1 0 0 1 9 14.996z",key:"kmsa83"}]]),Se=$("view",[["path",{d:"M21 17v2a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-2",key:"mrq65r"}],["path",{d:"M21 7V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2",key:"be3xqs"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["path",{d:"M18.944 12.33a1 1 0 0 0 0-.66 7.5 7.5 0 0 0-13.888 0 1 1 0 0 0 0 .66 7.5 7.5 0 0 0 13.888 0",key:"11ak4c"}]]),J=new Map,De=({file:t,onOpenNotebook:e})=>{const{theme:s}=Qe(),{sendFileDetails:r,sendUpdateFile:i}=ae(),o=Xe(Ge),[l,m]=D.useState(""),{data:n,isPending:u,error:x,setData:f}=xe(async()=>{const g=await r({path:t.path}),c=g.contents||"";return m(J.get(t.path)||c),g},[t.path]),d=async()=>{l!==(n==null?void 0:n.contents)&&await i({path:t.path,contents:l}).then(g=>{g.success&&(f(c=>({...c,contents:l})),m(l))})},j=D.useRef(l);if(j.current=l,D.useEffect(()=>()=>{if(!(n!=null&&n.contents))return;const g=j.current;g===n.contents?J.delete(t.path):J.set(t.path,g)},[t.path,n==null?void 0:n.contents]),x)return a.jsx(fe,{error:x});if(u||!n)return null;const h=n.mimeType||"text/plain",w=h in Z;if(!n.contents&&!w)return a.jsxs("div",{className:"grid grid-cols-2 gap-2 p-6",children:[a.jsx("div",{className:"font-bold text-muted-foreground",children:"Name"}),a.jsx("div",{children:n.file.name}),a.jsx("div",{className:"font-bold text-muted-foreground",children:"Type"}),a.jsx("div",{children:h})]});const b=a.jsxs("div",{className:"text-xs text-muted-foreground p-1 flex justify-end gap-2 border-b",children:[t.isMarimoFile&&!Q()&&a.jsx(P,{content:"Open notebook",children:a.jsx(G,{size:"small",onClick:g=>e(g),children:a.jsx(se,{})})}),a.jsx(P,{content:"Download",children:a.jsx(G,{size:"small",onClick:()=>{if(ce(h)){const g=ot(n.contents,h);return void lt(g,n.file.name)}je(new Blob([n.contents||l],{type:h}),n.file.name)},children:a.jsx(ue,{})})}),!ce(h)&&a.jsxs(a.Fragment,{children:[a.jsx(P,{content:"Copy contents to clipboard",children:a.jsx(G,{size:"small",onClick:async()=>{await X(l)},children:a.jsx(ge,{})})}),a.jsx(P,{content:Je("global.save"),children:a.jsx(G,{size:"small",color:l===n.contents?void 0:"green",onClick:d,disabled:l===n.contents,children:a.jsx(Et,{})})})]})]});return h.startsWith("image/")?a.jsxs(a.Fragment,{children:[b,a.jsx("div",{className:"flex-1 overflow-hidden flex flex-col",children:a.jsx(Ze,{base64:n.contents,mime:h})})]}):h==="text/csv"&&n.contents?a.jsxs(a.Fragment,{children:[b,a.jsx("div",{className:"flex-1 overflow-hidden flex flex-col",children:a.jsx(et,{contents:n.contents})})]}):h.startsWith("audio/")?a.jsxs(a.Fragment,{children:[b,a.jsx("div",{className:"flex-1 overflow-hidden flex flex-col",children:a.jsx(tt,{base64:n.contents,mime:h})})]}):h.startsWith("video/")?a.jsxs(a.Fragment,{children:[b,a.jsx("div",{className:"flex-1 overflow-hidden flex flex-col",children:a.jsx(at,{base64:n.contents,mime:h})})]}):h.startsWith("application/pdf")?a.jsxs(a.Fragment,{children:[b,a.jsx("div",{className:"flex-1 overflow-hidden flex flex-col",children:a.jsx(st,{base64:n.contents,mime:h})})]}):a.jsxs(a.Fragment,{children:[b,a.jsx("div",{className:"flex-1 overflow-auto",children:a.jsx(D.Suspense,{children:a.jsx(it,{theme:s==="dark"?"dark":"light",language:Z[h]||Z.default,className:"border-b",extensions:[nt.lineWrapping,rt.of([{key:o.getHotkey("global.save").key,stopPropagation:!0,run:()=>l!==n.contents&&(d(),!0)}])],value:l,onChange:m})})})]})},ce=t=>t.startsWith("image/")||t.startsWith("audio/")||t.startsWith("video/")||t.startsWith("application/pdf"),Z={"application/javascript":"javascript","text/markdown":"markdown","text/html":"html","text/css":"css","text/x-python":"python","application/json":"json","application/xml":"xml","text/x-yaml":"yaml","text/csv":"markdown","text/plain":"markdown",default:"markdown"};class Pe{constructor(e){this.callbacks=e,this.delegate=new re([]),this.rootPath="",this.onChange=ct.NOOP,this.path=new ie("/"),this.initialize=async s=>{if(this.onChange=s,this.delegate.data.length===0)try{const r=await this.callbacks.listFiles({path:this.rootPath});this.delegate=new re(r.files),this.rootPath=r.root,this.path=ie.guessDeliminator(r.root)}catch(r){O({title:"Failed",description:dt(r)})}this.onChange(this.delegate.data)},this.refreshAll=async s=>{const r=[this.rootPath,...s.map(o=>{var l;return(l=this.delegate.find(o))==null?void 0:l.data.path})].filter(Boolean),i=await Promise.all(r.map(o=>this.callbacks.listFiles({path:o}).catch(()=>({files:[]}))));for(const[o,l]of r.entries()){const m=i[o];l===this.rootPath?this.delegate=new re(m.files):this.delegate.update({id:l,changes:{children:m.files}})}this.onChange(this.delegate.data)},this.relativeFromRoot=s=>{const r=this.rootPath.endsWith(this.path.deliminator)?this.rootPath:`${this.rootPath}${this.path.deliminator}`;return s.startsWith(r)?s.slice(r.length):s},this.handleResponse=s=>s.success?s:(O({title:"Failed",description:s.message}),null)}async expand(e){const s=this.delegate.find(e);if(!s||!s.data.isDirectory)return!1;if(s.children&&s.children.length>0)return!0;const r=await this.callbacks.listFiles({path:s.data.path});return this.delegate.update({id:e,changes:{children:r.files}}),this.onChange(this.delegate.data),!0}async rename(e,s){const r=this.delegate.find(e);if(!r)return;const i=r.data.path,o=this.path.join(this.path.dirname(i),s);await this.callbacks.renameFileOrFolder({path:i,newPath:o}).then(this.handleResponse),this.delegate.update({id:e,changes:{name:s,path:o}}),this.onChange(this.delegate.data),await this.refreshAll([o])}async move(e,s){var i;const r=s?((i=this.delegate.find(s))==null?void 0:i.data.path)??s:this.rootPath;await Promise.all(e.map(o=>{this.delegate.move({id:o,parentId:s,index:0});const l=this.delegate.find(o);if(!l)return Promise.resolve();const m=this.path.join(r,this.path.basename(l.data.path));return this.delegate.update({id:o,changes:{path:m}}),this.callbacks.renameFileOrFolder({path:l.data.path,newPath:m}).then(this.handleResponse)})),this.onChange(this.delegate.data),await this.refreshAll([r])}async createFile(e,s){var o;const r=s?((o=this.delegate.find(s))==null?void 0:o.data.path)??s:this.rootPath,i=await this.callbacks.createFileOrFolder({path:r,type:"file",name:e}).then(this.handleResponse);i!=null&&i.info&&(this.delegate.create({parentId:s,index:0,data:i.info}),this.onChange(this.delegate.data),await this.refreshAll([r]))}async createFolder(e,s){var o;const r=s?((o=this.delegate.find(s))==null?void 0:o.data.path)??s:this.rootPath,i=await this.callbacks.createFileOrFolder({path:r,type:"directory",name:e}).then(this.handleResponse);i!=null&&i.info&&(this.delegate.create({parentId:s,index:0,data:i.info}),this.onChange(this.delegate.data),await this.refreshAll([r]))}async delete(e){const s=this.delegate.find(e);s&&(await this.callbacks.deleteFileOrFolder({path:s.data.path}).then(this.handleResponse),this.delegate.drop({id:e}),this.onChange(this.delegate.data))}}const de=ye(t=>{const e=t(pt);return mt(e,"no requestClientAtom set"),new Pe({listFiles:e.sendListFiles,createFileOrFolder:e.sendCreateFileOrFolder,deleteFileOrFolder:e.sendDeleteFileOrFolder,renameFileOrFolder:e.sendRenameFileOrFolder})}),Oe=ye({});function he(t){const e=M.c(7);let s;e[0]!==t?(s=t===void 0?{}:t,e[0]=t,e[1]=s):s=e[1];const r=s,{sendCreateFileOrFolder:i}=ae();let o,l;return e[2]!==i?(o=async m=>{for(const n of m){const u=Ie(We(n));let x="";u&&(x=ie.guessDeliminator(u).dirname(u));const f=(await ut(n)).split(",")[1];await i({path:x,type:"file",name:n.name,contents:f})}await(async function(){await ht.get(de).refreshAll([])})()},e[2]=i,e[3]=o):o=e[3],e[4]!==r||e[5]!==o?(l={multiple:!0,maxSize:104857600,onError:Ae,onDropRejected:Me,onDrop:o,...r},e[4]=r,e[5]=o,e[6]=l):l=e[6],xt(l)}function Me(t){O({title:"File upload failed",description:a.jsx("div",{className:"flex flex-col gap-1",children:t.map(ze)}),variant:"danger"})}function ze(t){return a.jsxs("div",{children:[t.file.name," (",t.errors.map(Re).join(", "),")"]},t.file.name)}function Re(t){return t.message}function Ae(t){ft.error(t),O({title:"File upload failed",description:t.message,variant:"danger"})}function We(t){return t.webkitRelativePath?t.webkitRelativePath:"path"in t&&typeof t.path=="string"?t.path:"relativePath"in t&&typeof t.relativePath=="string"?t.relativePath:void 0}function Ie(t){if(t)return t.replace(/^\/+/,"")}const pe=gt.createContext(null),He=t=>{const e=M.c(60),{height:s}=t,r=D.useRef(null),[i]=be(de);let o;e[0]===Symbol.for("react.memo_cache_sentinel")?(o=[],e[0]=o):o=e[0];const[l,m]=D.useState(o),[n,u]=D.useState(null),{openPrompt:x}=ve(),[f,d]=be(Oe);let j,h;e[1]!==i?(j=()=>i.initialize(m),e[1]=i,e[2]=j):j=e[2],e[3]===Symbol.for("react.memo_cache_sentinel")?(h=[],e[3]=h):h=e[3];const{isPending:w,error:b}=xe(j,h);let g;e[4]!==f||e[5]!==i?(g=()=>{i.refreshAll(Object.keys(f).filter(p=>f[p]))},e[4]=f,e[5]=i,e[6]=g):g=e[6];const c=z(g);let y;e[7]!==x||e[8]!==i?(y=async()=>{x({title:"Folder name",onConfirm:async p=>{i.createFolder(p,null)}})},e[7]=x,e[8]=i,e[9]=y):y=e[9];const v=z(y);let _;e[10]!==x||e[11]!==i?(_=async()=>{x({title:"File name",onConfirm:async p=>{i.createFile(p,null)}})},e[10]=x,e[11]=i,e[12]=_):_=e[12];const F=z(_);let N;e[13]!==d?(N=()=>{var p;(p=r.current)==null||p.closeAll(),d({})},e[13]=d,e[14]=N):N=e[14];const ee=z(N);if(w){let p;return e[15]===Symbol.for("react.memo_cache_sentinel")?(p=a.jsx(jt,{size:"medium",centered:!0}),e[15]=p):p=e[15],p}if(b){let p;return e[16]!==b?(p=a.jsx(fe,{error:b}),e[16]=b,e[17]=p):p=e[17],p}if(n){let p,k,S,T,q,Y;return e[18]===Symbol.for("react.memo_cache_sentinel")?(p=()=>u(null),e[18]=p):p=e[18],e[19]===Symbol.for("react.memo_cache_sentinel")?(k=a.jsx(U,{onClick:p,"data-testid":"file-explorer-back-button",variant:"text",size:"xs",className:"mb-0",children:a.jsx(Bt,{size:16})}),e[19]=k):k=e[19],e[20]!==n.name?(S=a.jsxs("div",{className:"flex items-center pl-1 pr-3 shrink-0 border-b justify-between",children:[k,a.jsx("span",{className:"font-bold",children:n.name})]}),e[20]=n.name,e[21]=S):S=e[21],e[22]!==n.path||e[23]!==i?(T=Ye=>me(Ye,i.relativeFromRoot(n.path)),e[22]=n.path,e[23]=i,e[24]=T):T=e[24],e[25]!==n||e[26]!==T?(q=a.jsx(D.Suspense,{children:a.jsx(De,{onOpenNotebook:T,file:n})}),e[25]=n,e[26]=T,e[27]=q):q=e[27],e[28]!==S||e[29]!==q?(Y=a.jsxs(a.Fragment,{children:[S,q]}),e[28]=S,e[29]=q,e[30]=Y):Y=e[30],Y}let R;e[31]!==ee||e[32]!==F||e[33]!==v||e[34]!==c||e[35]!==i?(R=a.jsx(Be,{onRefresh:c,onCreateFile:F,onCreateFolder:v,onCollapseAll:ee,tree:i}),e[31]=ee,e[32]=F,e[33]=v,e[34]=c,e[35]=i,e[36]=R):R=e[36];const te=s-33;let A,W,I,L,H,E,B,K;return e[37]!==i?(A=async p=>{const{ids:k}=p;for(const S of k)await i.delete(S)},W=async p=>{const{id:k,name:S}=p;await i.rename(k,S)},I=async p=>{const{dragIds:k,parentId:S}=p;await i.move(k,S)},e[37]=i,e[38]=A,e[39]=W,e[40]=I):(A=e[38],W=e[39],I=e[40]),e[41]===Symbol.for("react.memo_cache_sentinel")?(L=p=>{const k=p[0];k&&(k.data.isDirectory||u(k.data))},e[41]=L):L=e[41],e[42]!==f||e[43]!==d||e[44]!==i?(H=async p=>{if(await i.expand(p)){const k=f[p]??!1;d({...f,[p]:!k})}},e[42]=f,e[43]=d,e[44]=i,e[45]=H):H=e[45],e[46]!==l||e[47]!==f||e[48]!==A||e[49]!==W||e[50]!==I||e[51]!==H||e[52]!==te?(E=a.jsx(qt,{width:"100%",ref:r,height:te,className:"h-full",data:l,initialOpenState:f,openByDefault:!1,renderCursor:Ve,disableDrop:Le,onDelete:A,onRename:W,onMove:I,onSelect:L,onToggle:H,padding:15,rowHeight:30,indent:Ee,overscanCount:1e3,disableMultiSelection:!0,children:$e}),e[46]=l,e[47]=f,e[48]=A,e[49]=W,e[50]=I,e[51]=H,e[52]=te,e[53]=E):E=e[53],e[54]!==E||e[55]!==i?(B=a.jsx(pe,{value:i,children:E}),e[54]=E,e[55]=i,e[56]=B):B=e[56],e[57]!==B||e[58]!==R?(K=a.jsxs(a.Fragment,{children:[R,B]}),e[57]=B,e[58]=R,e[59]=K):K=e[59],K},Ee=15,Be=t=>{const e=M.c(30),{onRefresh:s,onCreateFile:r,onCreateFolder:i,onCollapseAll:o}=t;let l;e[0]===Symbol.for("react.memo_cache_sentinel")?(l={noDrag:!0,noDragEventsBubbling:!0},e[0]=l):l=e[0];const{getRootProps:m,getInputProps:n}=he(l);let u,x,f,d,j,h,w,b,g,c,y,v,_,F,N;return e[1]===Symbol.for("react.memo_cache_sentinel")?(u=a.jsx(we,{size:16}),e[1]=u):u=e[1],e[2]!==r?(x=a.jsx(P,{content:"Add file",children:a.jsx(U,{"data-testid":"file-explorer-add-file-button",onClick:r,variant:"text",size:"xs",children:u})}),e[2]=r,e[3]=x):x=e[3],e[4]===Symbol.for("react.memo_cache_sentinel")?(f=a.jsx(oe,{size:16}),e[4]=f):f=e[4],e[5]!==i?(d=a.jsx(P,{content:"Add folder",children:a.jsx(U,{"data-testid":"file-explorer-add-folder-button",onClick:i,variant:"text",size:"xs",children:f})}),e[5]=i,e[6]=d):d=e[6],e[7]!==m?(j=m({}),e[7]=m,e[8]=j):j=e[8],e[9]===Symbol.for("react.memo_cache_sentinel")?(h=yt({variant:"text",size:"xs"}),w=a.jsx(Dt,{size:16}),e[9]=h,e[10]=w):(h=e[9],w=e[10]),e[11]!==j?(b=a.jsx(P,{content:"Upload file",children:a.jsx("button",{"data-testid":"file-explorer-upload-button",...j,className:h,children:w})}),e[11]=j,e[12]=b):b=e[12],e[13]!==n?(g=n({}),e[13]=n,e[14]=g):g=e[14],e[15]!==g?(c=a.jsx("input",{...g,type:"file"}),e[15]=g,e[16]=c):c=e[16],e[17]===Symbol.for("react.memo_cache_sentinel")?(y=a.jsx(Pt,{size:16}),e[17]=y):y=e[17],e[18]!==s?(v=a.jsx(P,{content:"Refresh",children:a.jsx(U,{"data-testid":"file-explorer-refresh-button",onClick:s,variant:"text",size:"xs",children:y})}),e[18]=s,e[19]=v):v=e[19],e[20]===Symbol.for("react.memo_cache_sentinel")?(_=a.jsx(Ce,{size:16}),e[20]=_):_=e[20],e[21]!==o?(F=a.jsx(P,{content:"Collapse all folders",children:a.jsx(U,{"data-testid":"file-explorer-collapse-button",onClick:o,variant:"text",size:"xs",children:_})}),e[21]=o,e[22]=F):F=e[22],e[23]!==c||e[24]!==v||e[25]!==F||e[26]!==x||e[27]!==d||e[28]!==b?(N=a.jsxs("div",{className:"flex items-center justify-end px-2 shrink-0 border-b",children:[x,d,b,c,v,F]}),e[23]=c,e[24]=v,e[25]=F,e[26]=x,e[27]=d,e[28]=b,e[29]=N):N=e[29],N},Te=t=>{const e=M.c(9),{node:s,onOpenMarimoFile:r}=t;let i,o,l;return e[0]!==s?(i=m=>{s.data.isDirectory||(m.stopPropagation(),s.select())},e[0]=s,e[1]=i):i=e[1],e[2]!==s.data.isMarimoFile||e[3]!==r?(o=s.data.isMarimoFile&&!Q()&&a.jsxs("span",{className:"shrink-0 ml-2 text-sm hidden group-hover:inline hover:underline",onClick:r,children:["open ",a.jsx(se,{className:"inline ml-1",size:12})]}),e[2]=s.data.isMarimoFile,e[3]=r,e[4]=o):o=e[4],e[5]!==s.data.name||e[6]!==i||e[7]!==o?(l=a.jsxs("span",{className:"flex-1 overflow-hidden text-ellipsis",onClick:i,children:[s.data.name,o]}),e[5]=s.data.name,e[6]=i,e[7]=o,e[8]=l):l=e[8],l},qe=t=>{const e=M.c(10),{node:s}=t,r=D.useRef(null);let i,o,l,m,n;return e[0]!==s.data.name?(i=()=>{var u,x;(u=r.current)==null||u.focus(),(x=r.current)==null||x.setSelectionRange(0,s.data.name.lastIndexOf("."))},o=[s.data.name],e[0]=s.data.name,e[1]=i,e[2]=o):(i=e[1],o=e[2]),D.useEffect(i,o),e[3]!==s?(l=()=>s.reset(),m=u=>{u.key==="Escape"&&s.reset(),u.key==="Enter"&&s.submit(u.currentTarget.value)},e[3]=s,e[4]=l,e[5]=m):(l=e[4],m=e[5]),e[6]!==s.data.name||e[7]!==l||e[8]!==m?(n=a.jsx("input",{ref:r,className:"flex-1 bg-transparent border border-border text-muted-foreground",defaultValue:s.data.name,onClick:Ke,onBlur:l,onKeyDown:m}),e[6]=s.data.name,e[7]=l,e[8]=m,e[9]=n):n=e[9],n},$e=({node:t,style:e,dragHandle:s})=>{const{openFile:r,sendCreateFileOrFolder:i,sendFileDetails:o}=ae(),l=t.data.isDirectory?"directory":bt(t.data.name),m=Ft[l],{openConfirm:n,openPrompt:u}=ve(),{createNewCell:x}=vt(),f=kt(),d=D.use(pe),j=async c=>{me(c,d?d.relativeFromRoot(t.data.path):t.data.path)},h=async c=>{c.stopPropagation(),c.preventDefault(),n({title:"Delete file",description:`Are you sure you want to delete ${t.data.name}?`,confirmAction:a.jsx(Rt,{onClick:async()=>{await t.tree.delete(t.id)},"aria-label":"Confirm",children:"Delete"})})},w=z(async()=>{t.open(),u({title:"Folder name",onConfirm:async c=>{d==null||d.createFolder(c,t.id)}})}),b=z(async()=>{t.open(),u({title:"File name",onConfirm:async c=>{d==null||d.createFile(c,t.id)}})}),g=z(async()=>{var _;if(!d||t.data.isDirectory)return;const[c,y]=wt(t.data.name),v=`${c}_copy${y}`;try{const F=await o({path:t.data.path}),N=((_=t.parent)==null?void 0:_.data.path)||"";await i({path:N,type:"file",name:v,contents:F.contents?btoa(F.contents):void 0}),await d.refreshAll([N])}catch{O({title:"Failed to duplicate file",description:"Unable to create a duplicate of the file",variant:"danger"})}});return a.jsxs("div",{style:e,ref:s,className:ne("flex items-center cursor-pointer ml-1 text-muted-foreground whitespace-nowrap group"),draggable:!0,onClick:c=>{c.stopPropagation(),t.data.isDirectory&&t.toggle()},children:[a.jsx(Ue,{node:t}),a.jsxs("span",{className:ne("flex items-center pl-1 py-1 cursor-pointer hover:bg-accent/50 hover:text-accent-foreground rounded-l flex-1 overflow-hidden group",t.willReceiveDrop&&t.data.isDirectory&&"bg-accent/80 hover:bg-accent/80 text-accent-foreground"),children:[t.data.isMarimoFile?a.jsx("img",{src:Ht,className:"w-5 h-5 shrink-0 mr-2 filter grayscale",alt:"Marimo"}):a.jsx(m,{className:"w-5 h-5 shrink-0 mr-2",strokeWidth:1.5}),t.isEditing?a.jsx(qe,{node:t}):a.jsx(Te,{node:t,onOpenMarimoFile:j}),a.jsxs(Ct,{modal:!1,children:[a.jsx(_t,{asChild:!0,tabIndex:-1,onClick:c=>c.stopPropagation(),children:a.jsx(U,{"data-testid":"file-explorer-more-button",variant:"text",tabIndex:-1,size:"xs",className:"mb-0","aria-label":"More options",children:a.jsx($t,{strokeWidth:2,className:"w-5 h-5 hidden group-hover:block"})})}),(()=>{const c={size:14,strokeWidth:1.5,className:"mr-2"};return a.jsxs(Ot,{align:"end",className:"no-print w-[220px]",onClick:y=>y.stopPropagation(),onCloseAutoFocus:y=>y.preventDefault(),children:[!t.data.isDirectory&&a.jsxs(C,{onSelect:()=>t.select(),children:[a.jsx(Se,{...c}),"Open file"]}),!t.data.isDirectory&&!Q()&&a.jsxs(C,{onSelect:()=>{r({path:t.data.path})},children:[a.jsx(se,{...c}),"Open file in external editor"]}),t.data.isDirectory&&a.jsxs(a.Fragment,{children:[a.jsxs(C,{onSelect:()=>b(),children:[a.jsx(we,{...c}),"Create file"]}),a.jsxs(C,{onSelect:()=>w(),children:[a.jsx(oe,{...c}),"Create folder"]}),a.jsx(V,{})]}),a.jsxs(C,{onSelect:()=>t.edit(),children:[a.jsx(_e,{...c}),"Rename"]}),!t.data.isDirectory&&a.jsxs(C,{onSelect:g,children:[a.jsx(ge,{...c}),"Duplicate"]}),a.jsxs(C,{onSelect:async()=>{await X(t.data.path),O({title:"Copied to clipboard"})},children:[a.jsx(le,{...c}),"Copy path"]}),d&&a.jsxs(C,{onSelect:async()=>{await X(d.relativeFromRoot(t.data.path)),O({title:"Copied to clipboard"})},children:[a.jsx(le,{...c}),"Copy relative path"]}),a.jsx(V,{}),a.jsxs(C,{onSelect:()=>{const{path:y}=t.data,v=ke[l](y);x({code:v,before:!1,cellId:f??"__end__"})},children:[a.jsx(Ut,{...c}),"Insert snippet for reading file"]}),a.jsxs(C,{onSelect:async()=>{O({title:"Copied to clipboard",description:"Code to open the file has been copied to your clipboard. You can also drag and drop this file into the editor"});const{path:y}=t.data,v=ke[l](y);await X(v)},children:[a.jsx(Mt,{...c}),"Copy snippet for reading file"]}),t.data.isMarimoFile&&!Q()&&a.jsxs(a.Fragment,{children:[a.jsx(V,{}),a.jsxs(C,{onSelect:j,children:[a.jsx(Ne,{...c}),"Open notebook"]})]}),a.jsx(V,{}),!t.data.isDirectory&&a.jsxs(a.Fragment,{children:[a.jsxs(C,{onSelect:async()=>{const y=(await o({path:t.data.path})).contents||"";je(new Blob([y]),t.data.name)},children:[a.jsx(ue,{...c}),"Download"]}),a.jsx(V,{})]}),a.jsxs(C,{onSelect:h,variant:"danger",children:[a.jsx(zt,{...c}),"Delete"]})]})})()]})]})]})},Ue=t=>{const e=M.c(3),{node:s}=t;if(!s.data.isDirectory){let i;return e[0]===Symbol.for("react.memo_cache_sentinel")?(i=a.jsx("span",{className:"w-5 h-5 shrink-0"}),e[0]=i):i=e[0],i}let r;return e[1]!==s.isOpen?(r=s.isOpen?a.jsx(Nt,{className:"w-5 h-5 shrink-0"}):a.jsx(St,{className:"w-5 h-5 shrink-0"}),e[1]=s.isOpen,e[2]=r):r=e[2],r};function me(t,e){t.stopPropagation(),t.preventDefault(),It(e)}function Ve(){return null}function Le(t){const{parentNode:e}=t;return!e.data.isDirectory}function Ke(t){return t.stopPropagation()}Fe=()=>{const t=M.c(20),{ref:e,height:s}=At(),r=s===void 0?1:s;let i;t[0]===Symbol.for("react.memo_cache_sentinel")?(i={noClick:!0,noKeyboard:!0},t[0]=i):i=t[0];const{getRootProps:o,getInputProps:l,isDragActive:m}=he(i);let n,u,x,f,d,j,h,w;return t[1]!==o?(n=o(),t[1]=o,t[2]=n):n=t[2],t[3]===Symbol.for("react.memo_cache_sentinel")?(u=ne("flex flex-col flex-1 overflow-hidden relative"),t[3]=u):u=t[3],t[4]!==l?(x=l(),t[4]=l,t[5]=x):x=t[5],t[6]!==x?(f=a.jsx("input",{...x}),t[6]=x,t[7]=f):f=t[7],t[8]!==m?(d=m&&a.jsx("div",{className:"absolute inset-0 flex items-center uppercase justify-center text-xl font-bold text-primary/90 bg-accent/85 z-10 border-2 border-dashed border-primary/90 rounded-lg pointer-events-none",children:"Drop files here"}),t[8]=m,t[9]=d):d=t[9],t[10]!==r?(j=a.jsx(He,{height:r}),t[10]=r,t[11]=j):j=t[11],t[12]!==e||t[13]!==j?(h=a.jsx("div",{ref:e,className:"flex flex-col flex-1 overflow-hidden",children:j}),t[12]=e,t[13]=j,t[14]=h):h=t[14],t[15]!==n||t[16]!==f||t[17]!==d||t[18]!==h?(w=a.jsxs("div",{...n,className:u,children:[f,d,h]}),t[15]=n,t[16]=f,t[17]=d,t[18]=h,t[19]=w):w=t[19],w}});export{Kt as __tla,Fe as default};
@@ -1,65 +0,0 @@
1
- import{p as Y}from"./chunk-4BX2VUAB-DLxaCNYh.js";import{I as U}from"./chunk-QZHKN3VN-BZ-TzajS.js";import{_ as d,t as V,q as Q,s as X,g as Z,a as J,b as tt,l as u,c as rt,u as et,E as ot,z as nt,j as k,F as at,G as st,H as ct,I as it}from"./mermaid.core-4nVOEVX3.js";import{p as ht}from"./treemap-75Q7IDZK-CnuVFbBG.js";import{s as dt}from"./transform-D9VCJYws.js";import"./index-OC46250R.js";import"./step-BwsUM5iJ.js";import"./_baseEach-C1FLm7WW.js";import"./_baseUniq-Dk7ZPJ3N.js";import"./min-D259kI3t.js";import"./_baseMap-DBVArUYD.js";import"./clone-DM1YNjEn.js";import"./_createAggregator-Bn38fDd3.js";import"./timer-Bqd5yn_a.js";var p={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},mt=ct.gitGraph,R=d(()=>at({...mt,...st().gitGraph}),"getConfig"),i=new U(()=>{const e=R(),t=e.mainBranchName,o=e.mainBranchOrder;return{mainBranchName:t,commits:new Map,head:null,branchConfig:new Map([[t,{name:t,order:o}]]),branches:new Map([[t,null]]),currBranch:t,direction:"LR",seq:0,options:{}}});function G(){return it({length:7})}function D(e,t){const o=Object.create(null);return e.reduce((a,r)=>{const n=t(r);return o[n]||(o[n]=!0,a.push(r)),a},[])}d(G,"getID"),d(D,"uniqBy");var $t=d(function(e){i.records.direction=e},"setDirection"),lt=d(function(e){u.debug("options str",e),e=e==null?void 0:e.trim(),e=e||"{}";try{i.records.options=JSON.parse(e)}catch(t){u.error("error while parsing gitGraph options",t.message)}},"setOptions"),yt=d(function(){return i.records.options},"getOptions"),gt=d(function(e){let t=e.msg,o=e.id;const a=e.type;let r=e.tags;u.info("commit",t,o,a,r),u.debug("Entering commit:",t,o,a,r);const n=R();o=k.sanitizeText(o,n),t=k.sanitizeText(t,n),r=r==null?void 0:r.map(s=>k.sanitizeText(s,n));const c={id:o||i.records.seq+"-"+G(),message:t,seq:i.records.seq++,type:a??p.NORMAL,tags:r??[],parents:i.records.head==null?[]:[i.records.head.id],branch:i.records.currBranch};i.records.head=c,u.info("main branch",n.mainBranchName),i.records.commits.has(c.id)&&u.warn(`Commit ID ${c.id} already exists`),i.records.commits.set(c.id,c),i.records.branches.set(i.records.currBranch,c.id),u.debug("in pushCommit "+c.id)},"commit"),pt=d(function(e){let t=e.name;const o=e.order;if(t=k.sanitizeText(t,R()),i.records.branches.has(t))throw new Error(`Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ${t}")`);i.records.branches.set(t,i.records.head!=null?i.records.head.id:null),i.records.branchConfig.set(t,{name:t,order:o}),N(t),u.debug("in createBranch")},"branch"),xt=d(e=>{let t=e.branch,o=e.id;const a=e.type,r=e.tags,n=R();t=k.sanitizeText(t,n),o&&(o=k.sanitizeText(o,n));const c=i.records.branches.get(i.records.currBranch),s=i.records.branches.get(t),m=c?i.records.commits.get(c):void 0,y=s?i.records.commits.get(s):void 0;if(m&&y&&m.branch===t)throw new Error(`Cannot merge branch '${t}' into itself.`);if(i.records.currBranch===t){const l=new Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw l.hash={text:`merge ${t}`,token:`merge ${t}`,expected:["branch abc"]},l}if(m===void 0||!m){const l=new Error(`Incorrect usage of "merge". Current branch (${i.records.currBranch})has no commits`);throw l.hash={text:`merge ${t}`,token:`merge ${t}`,expected:["commit"]},l}if(!i.records.branches.has(t)){const l=new Error('Incorrect usage of "merge". Branch to be merged ('+t+") does not exist");throw l.hash={text:`merge ${t}`,token:`merge ${t}`,expected:[`branch ${t}`]},l}if(y===void 0||!y){const l=new Error('Incorrect usage of "merge". Branch to be merged ('+t+") has no commits");throw l.hash={text:`merge ${t}`,token:`merge ${t}`,expected:['"commit"']},l}if(m===y){const l=new Error('Incorrect usage of "merge". Both branches have same head');throw l.hash={text:`merge ${t}`,token:`merge ${t}`,expected:["branch abc"]},l}if(o&&i.records.commits.has(o)){const l=new Error('Incorrect usage of "merge". Commit with id:'+o+" already exists, use different custom id");throw l.hash={text:`merge ${t} ${o} ${a} ${r==null?void 0:r.join(" ")}`,token:`merge ${t} ${o} ${a} ${r==null?void 0:r.join(" ")}`,expected:[`merge ${t} ${o}_UNIQUE ${a} ${r==null?void 0:r.join(" ")}`]},l}const $=s||"",h={id:o||`${i.records.seq}-${G()}`,message:`merged branch ${t} into ${i.records.currBranch}`,seq:i.records.seq++,parents:i.records.head==null?[]:[i.records.head.id,$],branch:i.records.currBranch,type:p.MERGE,customType:a,customId:!!o,tags:r??[]};i.records.head=h,i.records.commits.set(h.id,h),i.records.branches.set(i.records.currBranch,h.id),u.debug(i.records.branches),u.debug("in mergeBranch")},"merge"),ft=d(function(e){let t=e.id,o=e.targetId,a=e.tags,r=e.parent;u.debug("Entering cherryPick:",t,o,a);const n=R();if(t=k.sanitizeText(t,n),o=k.sanitizeText(o,n),a=a==null?void 0:a.map(m=>k.sanitizeText(m,n)),r=k.sanitizeText(r,n),!t||!i.records.commits.has(t)){const m=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw m.hash={text:`cherryPick ${t} ${o}`,token:`cherryPick ${t} ${o}`,expected:["cherry-pick abc"]},m}const c=i.records.commits.get(t);if(c===void 0||!c)throw new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');if(r&&(!Array.isArray(c.parents)||!c.parents.includes(r)))throw new Error("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.");const s=c.branch;if(c.type===p.MERGE&&!r)throw new Error("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.");if(!o||!i.records.commits.has(o)){if(s===i.records.currBranch){const h=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw h.hash={text:`cherryPick ${t} ${o}`,token:`cherryPick ${t} ${o}`,expected:["cherry-pick abc"]},h}const m=i.records.branches.get(i.records.currBranch);if(m===void 0||!m){const h=new Error(`Incorrect usage of "cherry-pick". Current branch (${i.records.currBranch})has no commits`);throw h.hash={text:`cherryPick ${t} ${o}`,token:`cherryPick ${t} ${o}`,expected:["cherry-pick abc"]},h}const y=i.records.commits.get(m);if(y===void 0||!y){const h=new Error(`Incorrect usage of "cherry-pick". Current branch (${i.records.currBranch})has no commits`);throw h.hash={text:`cherryPick ${t} ${o}`,token:`cherryPick ${t} ${o}`,expected:["cherry-pick abc"]},h}const $={id:i.records.seq+"-"+G(),message:`cherry-picked ${c==null?void 0:c.message} into ${i.records.currBranch}`,seq:i.records.seq++,parents:i.records.head==null?[]:[i.records.head.id,c.id],branch:i.records.currBranch,type:p.CHERRY_PICK,tags:a?a.filter(Boolean):[`cherry-pick:${c.id}${c.type===p.MERGE?`|parent:${r}`:""}`]};i.records.head=$,i.records.commits.set($.id,$),i.records.branches.set(i.records.currBranch,$.id),u.debug(i.records.branches),u.debug("in cherryPick")}},"cherryPick"),N=d(function(e){if(e=k.sanitizeText(e,R()),!i.records.branches.has(e)){const t=new Error(`Trying to checkout branch which is not yet created. (Help try using "branch ${e}")`);throw t.hash={text:`checkout ${e}`,token:`checkout ${e}`,expected:[`branch ${e}`]},t}{i.records.currBranch=e;const t=i.records.branches.get(i.records.currBranch);i.records.head=t!==void 0&&t?i.records.commits.get(t)??null:null}},"checkout");function q(e,t,o){const a=e.indexOf(t);a===-1?e.push(o):e.splice(a,1,o)}function H(e){const t=e.reduce((r,n)=>r.seq>n.seq?r:n,e[0]);let o="";e.forEach(function(r){o+=r===t?" *":" |"});const a=[o,t.id,t.seq];for(const r in i.records.branches)i.records.branches.get(r)===t.id&&a.push(r);if(u.debug(a.join(" ")),t.parents&&t.parents.length==2&&t.parents[0]&&t.parents[1]){const r=i.records.commits.get(t.parents[0]);q(e,t,r),t.parents[1]&&e.push(i.records.commits.get(t.parents[1]))}else{if(t.parents.length==0)return;if(t.parents[0]){const r=i.records.commits.get(t.parents[0]);q(e,t,r)}}H(e=D(e,r=>r.id))}d(q,"upsert"),d(H,"prettyPrintCommitHistory");var ut=d(function(){u.debug(i.records.commits),H([W()[0]])},"prettyPrint"),bt=d(function(){i.reset(),nt()},"clear"),wt=d(function(){return[...i.records.branchConfig.values()].map((e,t)=>e.order!==null&&e.order!==void 0?e:{...e,order:parseFloat(`0.${t}`)}).sort((e,t)=>(e.order??0)-(t.order??0)).map(({name:e})=>({name:e}))},"getBranchesAsObjArray"),Bt=d(function(){return i.records.branches},"getBranches"),Et=d(function(){return i.records.commits},"getCommits"),W=d(function(){const e=[...i.records.commits.values()];return e.forEach(function(t){u.debug(t.id)}),e.sort((t,o)=>t.seq-o.seq),e},"getCommitsArray"),j={commitType:p,getConfig:R,setDirection:$t,setOptions:lt,getOptions:yt,commit:gt,branch:pt,merge:xt,cherryPick:ft,checkout:N,prettyPrint:ut,clear:bt,getBranchesAsObjArray:wt,getBranches:Bt,getCommits:Et,getCommitsArray:W,getCurrentBranch:d(function(){return i.records.currBranch},"getCurrentBranch"),getDirection:d(function(){return i.records.direction},"getDirection"),getHead:d(function(){return i.records.head},"getHead"),setAccTitle:tt,getAccTitle:J,getAccDescription:Z,setAccDescription:X,setDiagramTitle:Q,getDiagramTitle:V},Ct=d((e,t)=>{Y(e,t),e.dir&&t.setDirection(e.dir);for(const o of e.statements)kt(o,t)},"populate"),kt=d((e,t)=>{const o={Commit:d(a=>t.commit(Lt(a)),"Commit"),Branch:d(a=>t.branch(Tt(a)),"Branch"),Merge:d(a=>t.merge(Mt(a)),"Merge"),Checkout:d(a=>t.checkout(vt(a)),"Checkout"),CherryPicking:d(a=>t.cherryPick(Pt(a)),"CherryPicking")}[e.$type];o?o(e):u.error(`Unknown statement type: ${e.$type}`)},"parseStatement"),Lt=d(e=>({id:e.id,msg:e.message??"",type:e.type!==void 0?p[e.type]:p.NORMAL,tags:e.tags??void 0}),"parseCommit"),Tt=d(e=>({name:e.name,order:e.order??0}),"parseBranch"),Mt=d(e=>({branch:e.branch,id:e.id??"",type:e.type!==void 0?p[e.type]:void 0,tags:e.tags??void 0}),"parseMerge"),vt=d(e=>e.branch,"parseCheckout"),Pt=d(e=>{var t;return{id:e.id,targetId:"",tags:((t=e.tags)==null?void 0:t.length)===0?void 0:e.tags,parent:e.parent}},"parseCherryPicking"),Rt={parse:d(async e=>{const t=await ht("gitGraph",e);u.debug(t),Ct(t,j)},"parse")},z=rt(),f=z==null?void 0:z.gitGraph,T=10,M=40,E=new Map,C=new Map,I=new Map,O=[],v=0,g="LR",It=d(()=>{E.clear(),C.clear(),I.clear(),v=0,O=[],g="LR"},"clear"),F=d(e=>{const t=document.createElementNS("http://www.w3.org/2000/svg","text");return(typeof e=="string"?e.split(/\\n|\n|<br\s*\/?>/gi):e).forEach(o=>{const a=document.createElementNS("http://www.w3.org/2000/svg","tspan");a.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),a.setAttribute("dy","1em"),a.setAttribute("x","0"),a.setAttribute("class","row"),a.textContent=o.trim(),t.appendChild(a)}),t},"drawText"),_=d(e=>{let t,o,a;return g==="BT"?(o=d((r,n)=>r<=n,"comparisonFunc"),a=1/0):(o=d((r,n)=>r>=n,"comparisonFunc"),a=0),e.forEach(r=>{var c,s;const n=g==="TB"||g=="BT"?(c=C.get(r))==null?void 0:c.y:(s=C.get(r))==null?void 0:s.x;n!==void 0&&o(n,a)&&(t=r,a=n)}),t},"findClosestParent"),At=d(e=>{let t="",o=1/0;return e.forEach(a=>{const r=C.get(a).y;r<=o&&(t=a,o=r)}),t||void 0},"findClosestParentBT"),Gt=d((e,t,o)=>{let a=o,r=o;const n=[];e.forEach(c=>{const s=t.get(c);if(!s)throw new Error(`Commit not found for key ${c}`);s.parents.length?(a=qt(s),r=Math.max(a,r)):n.push(s),Ht(s,a)}),a=r,n.forEach(c=>{zt(c,a,o)}),e.forEach(c=>{const s=t.get(c);if(s!=null&&s.parents.length){const m=At(s.parents);a=C.get(m).y-M,a<=r&&(r=a);const y=E.get(s.branch).pos,$=a-T;C.set(s.id,{x:y,y:$})}})},"setParallelBTPos"),Ot=d(e=>{var a;const t=_(e.parents.filter(r=>r!==null));if(!t)throw new Error(`Closest parent not found for commit ${e.id}`);const o=(a=C.get(t))==null?void 0:a.y;if(o===void 0)throw new Error(`Closest parent position not found for commit ${e.id}`);return o},"findClosestParentPos"),qt=d(e=>Ot(e)+M,"calculateCommitPosition"),Ht=d((e,t)=>{const o=E.get(e.branch);if(!o)throw new Error(`Branch not found for commit ${e.id}`);const a=o.pos,r=t+T;return C.set(e.id,{x:a,y:r}),{x:a,y:r}},"setCommitPosition"),zt=d((e,t,o)=>{const a=E.get(e.branch);if(!a)throw new Error(`Branch not found for commit ${e.id}`);const r=t+o,n=a.pos;C.set(e.id,{x:n,y:r})},"setRootPosition"),St=d((e,t,o,a,r,n)=>{if(n===p.HIGHLIGHT)e.append("rect").attr("x",o.x-10).attr("y",o.y-10).attr("width",20).attr("height",20).attr("class",`commit ${t.id} commit-highlight${r%8} ${a}-outer`),e.append("rect").attr("x",o.x-6).attr("y",o.y-6).attr("width",12).attr("height",12).attr("class",`commit ${t.id} commit${r%8} ${a}-inner`);else if(n===p.CHERRY_PICK)e.append("circle").attr("cx",o.x).attr("cy",o.y).attr("r",10).attr("class",`commit ${t.id} ${a}`),e.append("circle").attr("cx",o.x-3).attr("cy",o.y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${t.id} ${a}`),e.append("circle").attr("cx",o.x+3).attr("cy",o.y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${t.id} ${a}`),e.append("line").attr("x1",o.x+3).attr("y1",o.y+1).attr("x2",o.x).attr("y2",o.y-5).attr("stroke","#fff").attr("class",`commit ${t.id} ${a}`),e.append("line").attr("x1",o.x-3).attr("y1",o.y+1).attr("x2",o.x).attr("y2",o.y-5).attr("stroke","#fff").attr("class",`commit ${t.id} ${a}`);else{const c=e.append("circle");if(c.attr("cx",o.x),c.attr("cy",o.y),c.attr("r",t.type===p.MERGE?9:10),c.attr("class",`commit ${t.id} commit${r%8}`),n===p.MERGE){const s=e.append("circle");s.attr("cx",o.x),s.attr("cy",o.y),s.attr("r",6),s.attr("class",`commit ${a} ${t.id} commit${r%8}`)}n===p.REVERSE&&e.append("path").attr("d",`M ${o.x-5},${o.y-5}L${o.x+5},${o.y+5}M${o.x-5},${o.y+5}L${o.x+5},${o.y-5}`).attr("class",`commit ${a} ${t.id} commit${r%8}`)}},"drawCommitBullet"),Dt=d((e,t,o,a)=>{var r;if(t.type!==p.CHERRY_PICK&&(t.customId&&t.type===p.MERGE||t.type!==p.MERGE)&&(f!=null&&f.showCommitLabel)){const n=e.append("g"),c=n.insert("rect").attr("class","commit-label-bkg"),s=n.append("text").attr("x",a).attr("y",o.y+25).attr("class","commit-label").text(t.id),m=(r=s.node())==null?void 0:r.getBBox();if(m&&(c.attr("x",o.posWithOffset-m.width/2-2).attr("y",o.y+13.5).attr("width",m.width+4).attr("height",m.height+4),g==="TB"||g==="BT"?(c.attr("x",o.x-(m.width+16+5)).attr("y",o.y-12),s.attr("x",o.x-(m.width+16)).attr("y",o.y+m.height-12)):s.attr("x",o.posWithOffset-m.width/2),f.rotateCommitLabel))if(g==="TB"||g==="BT")s.attr("transform","rotate(-45, "+o.x+", "+o.y+")"),c.attr("transform","rotate(-45, "+o.x+", "+o.y+")");else{const y=-7.5-(m.width+10)/25*9.5,$=10+m.width/25*8.5;n.attr("transform","translate("+y+", "+$+") rotate(-45, "+a+", "+o.y+")")}}},"drawCommitLabel"),Nt=d((e,t,o,a)=>{var r;if(t.tags.length>0){let n=0,c=0,s=0;const m=[];for(const y of t.tags.reverse()){const $=e.insert("polygon"),h=e.append("circle"),l=e.append("text").attr("y",o.y-16-n).attr("class","tag-label").text(y),x=(r=l.node())==null?void 0:r.getBBox();if(!x)throw new Error("Tag bbox not found");c=Math.max(c,x.width),s=Math.max(s,x.height),l.attr("x",o.posWithOffset-x.width/2),m.push({tag:l,hole:h,rect:$,yOffset:n}),n+=20}for(const{tag:y,hole:$,rect:h,yOffset:l}of m){const x=s/2,b=o.y-19.2-l;if(h.attr("class","tag-label-bkg").attr("points",`
2
- ${a-c/2-2},${b+2}
3
- ${a-c/2-2},${b-2}
4
- ${o.posWithOffset-c/2-4},${b-x-2}
5
- ${o.posWithOffset+c/2+4},${b-x-2}
6
- ${o.posWithOffset+c/2+4},${b+x+2}
7
- ${o.posWithOffset-c/2-4},${b+x+2}`),$.attr("cy",b).attr("cx",a-c/2+2).attr("r",1.5).attr("class","tag-hole"),g==="TB"||g==="BT"){const w=a+l;h.attr("class","tag-label-bkg").attr("points",`
8
- ${o.x},${w+2}
9
- ${o.x},${w-2}
10
- ${o.x+T},${w-x-2}
11
- ${o.x+T+c+4},${w-x-2}
12
- ${o.x+T+c+4},${w+x+2}
13
- ${o.x+T},${w+x+2}`).attr("transform","translate(12,12) rotate(45, "+o.x+","+a+")"),$.attr("cx",o.x+2).attr("cy",w).attr("transform","translate(12,12) rotate(45, "+o.x+","+a+")"),y.attr("x",o.x+5).attr("y",w+3).attr("transform","translate(14,14) rotate(45, "+o.x+","+a+")")}}}},"drawCommitTags"),Wt=d(e=>{switch(e.customType??e.type){case p.NORMAL:return"commit-normal";case p.REVERSE:return"commit-reverse";case p.HIGHLIGHT:return"commit-highlight";case p.MERGE:return"commit-merge";case p.CHERRY_PICK:return"commit-cherry-pick";default:return"commit-normal"}},"getCommitClassType"),jt=d((e,t,o,a)=>{const r={x:0,y:0};if(!(e.parents.length>0))return t==="TB"?30:t==="BT"?(a.get(e.id)??r).y-M:0;{const n=_(e.parents);if(n){const c=a.get(n)??r;return t==="TB"?c.y+M:t==="BT"?(a.get(e.id)??r).y-M:c.x+M}}return 0},"calculatePosition"),Ft=d((e,t,o)=>{var c,s;const a=g==="BT"&&o?t:t+T,r=g==="TB"||g==="BT"?a:(c=E.get(e.branch))==null?void 0:c.pos,n=g==="TB"||g==="BT"?(s=E.get(e.branch))==null?void 0:s.pos:a;if(n===void 0||r===void 0)throw new Error(`Position were undefined for commit ${e.id}`);return{x:n,y:r,posWithOffset:a}},"getCommitPosition"),K=d((e,t,o)=>{if(!f)throw new Error("GitGraph config not found");const a=e.append("g").attr("class","commit-bullets"),r=e.append("g").attr("class","commit-labels");let n=g==="TB"||g==="BT"?30:0;const c=[...t.keys()],s=(f==null?void 0:f.parallelCommits)??!1,m=d(($,h)=>{var b,w;const l=(b=t.get($))==null?void 0:b.seq,x=(w=t.get(h))==null?void 0:w.seq;return l!==void 0&&x!==void 0?l-x:0},"sortKeys");let y=c.sort(m);g==="BT"&&(s&&Gt(y,t,n),y=y.reverse()),y.forEach($=>{var x;const h=t.get($);if(!h)throw new Error(`Commit not found for key ${$}`);s&&(n=jt(h,g,n,C));const l=Ft(h,n,s);if(o){const b=Wt(h),w=h.customType??h.type,P=((x=E.get(h.branch))==null?void 0:x.index)??0;St(a,h,l,b,P,w),Dt(r,h,l,n),Nt(r,h,l,n)}g==="TB"||g==="BT"?C.set(h.id,{x:l.x,y:l.posWithOffset}):C.set(h.id,{x:l.posWithOffset,y:l.y}),n=g==="BT"&&s?n+M:n+M+T,n>v&&(v=n)})},"drawCommits"),_t=d((e,t,o,a,r)=>{const n=(g==="TB"||g==="BT"?o.x<a.x:o.y<a.y)?t.branch:e.branch,c=d(m=>m.branch===n,"isOnBranchToGetCurve"),s=d(m=>m.seq>e.seq&&m.seq<t.seq,"isBetweenCommits");return[...r.values()].some(m=>s(m)&&c(m))},"shouldRerouteArrow"),A=d((e,t,o=0)=>{const a=e+Math.abs(e-t)/2;if(o>5)return a;if(O.every(n=>Math.abs(n-a)>=10))return O.push(a),a;const r=Math.abs(e-t);return A(e,t-r/5,o+1)},"findLane"),Kt=d((e,t,o,a)=>{var x,b,w,P,S;const r=C.get(t.id),n=C.get(o.id);if(r===void 0||n===void 0)throw new Error(`Commit positions not found for commits ${t.id} and ${o.id}`);const c=_t(t,o,r,n,a);let s,m="",y="",$=0,h=0,l=(x=E.get(o.branch))==null?void 0:x.index;if(o.type===p.MERGE&&t.id!==o.parents[0]&&(l=(b=E.get(t.branch))==null?void 0:b.index),c){m="A 10 10, 0, 0, 0,",y="A 10 10, 0, 0, 1,",$=10,h=10;const L=r.y<n.y?A(r.y,n.y):A(n.y,r.y),B=r.x<n.x?A(r.x,n.x):A(n.x,r.x);g==="TB"?r.x<n.x?s=`M ${r.x} ${r.y} L ${B-$} ${r.y} ${y} ${B} ${r.y+h} L ${B} ${n.y-$} ${m} ${B+h} ${n.y} L ${n.x} ${n.y}`:(l=(w=E.get(t.branch))==null?void 0:w.index,s=`M ${r.x} ${r.y} L ${B+$} ${r.y} ${m} ${B} ${r.y+h} L ${B} ${n.y-$} ${y} ${B-h} ${n.y} L ${n.x} ${n.y}`):g==="BT"?r.x<n.x?s=`M ${r.x} ${r.y} L ${B-$} ${r.y} ${m} ${B} ${r.y-h} L ${B} ${n.y+$} ${y} ${B+h} ${n.y} L ${n.x} ${n.y}`:(l=(P=E.get(t.branch))==null?void 0:P.index,s=`M ${r.x} ${r.y} L ${B+$} ${r.y} ${y} ${B} ${r.y-h} L ${B} ${n.y+$} ${m} ${B-h} ${n.y} L ${n.x} ${n.y}`):r.y<n.y?s=`M ${r.x} ${r.y} L ${r.x} ${L-$} ${m} ${r.x+h} ${L} L ${n.x-$} ${L} ${y} ${n.x} ${L+h} L ${n.x} ${n.y}`:(l=(S=E.get(t.branch))==null?void 0:S.index,s=`M ${r.x} ${r.y} L ${r.x} ${L+$} ${y} ${r.x+h} ${L} L ${n.x-$} ${L} ${m} ${n.x} ${L-h} L ${n.x} ${n.y}`)}else m="A 20 20, 0, 0, 0,",y="A 20 20, 0, 0, 1,",$=20,h=20,g==="TB"?(r.x<n.x&&(s=o.type===p.MERGE&&t.id!==o.parents[0]?`M ${r.x} ${r.y} L ${r.x} ${n.y-$} ${m} ${r.x+h} ${n.y} L ${n.x} ${n.y}`:`M ${r.x} ${r.y} L ${n.x-$} ${r.y} ${y} ${n.x} ${r.y+h} L ${n.x} ${n.y}`),r.x>n.x&&(m="A 20 20, 0, 0, 0,",y="A 20 20, 0, 0, 1,",$=20,h=20,s=o.type===p.MERGE&&t.id!==o.parents[0]?`M ${r.x} ${r.y} L ${r.x} ${n.y-$} ${y} ${r.x-h} ${n.y} L ${n.x} ${n.y}`:`M ${r.x} ${r.y} L ${n.x+$} ${r.y} ${m} ${n.x} ${r.y+h} L ${n.x} ${n.y}`),r.x===n.x&&(s=`M ${r.x} ${r.y} L ${n.x} ${n.y}`)):g==="BT"?(r.x<n.x&&(s=o.type===p.MERGE&&t.id!==o.parents[0]?`M ${r.x} ${r.y} L ${r.x} ${n.y+$} ${y} ${r.x+h} ${n.y} L ${n.x} ${n.y}`:`M ${r.x} ${r.y} L ${n.x-$} ${r.y} ${m} ${n.x} ${r.y-h} L ${n.x} ${n.y}`),r.x>n.x&&(m="A 20 20, 0, 0, 0,",y="A 20 20, 0, 0, 1,",$=20,h=20,s=o.type===p.MERGE&&t.id!==o.parents[0]?`M ${r.x} ${r.y} L ${r.x} ${n.y+$} ${m} ${r.x-h} ${n.y} L ${n.x} ${n.y}`:`M ${r.x} ${r.y} L ${n.x-$} ${r.y} ${m} ${n.x} ${r.y-h} L ${n.x} ${n.y}`),r.x===n.x&&(s=`M ${r.x} ${r.y} L ${n.x} ${n.y}`)):(r.y<n.y&&(s=o.type===p.MERGE&&t.id!==o.parents[0]?`M ${r.x} ${r.y} L ${n.x-$} ${r.y} ${y} ${n.x} ${r.y+h} L ${n.x} ${n.y}`:`M ${r.x} ${r.y} L ${r.x} ${n.y-$} ${m} ${r.x+h} ${n.y} L ${n.x} ${n.y}`),r.y>n.y&&(s=o.type===p.MERGE&&t.id!==o.parents[0]?`M ${r.x} ${r.y} L ${n.x-$} ${r.y} ${m} ${n.x} ${r.y-h} L ${n.x} ${n.y}`:`M ${r.x} ${r.y} L ${r.x} ${n.y+$} ${y} ${r.x+h} ${n.y} L ${n.x} ${n.y}`),r.y===n.y&&(s=`M ${r.x} ${r.y} L ${n.x} ${n.y}`));if(s===void 0)throw new Error("Line definition not found");e.append("path").attr("d",s).attr("class","arrow arrow"+l%8)},"drawArrow"),Yt=d((e,t)=>{const o=e.append("g").attr("class","commit-arrows");[...t.keys()].forEach(a=>{const r=t.get(a);r.parents&&r.parents.length>0&&r.parents.forEach(n=>{Kt(o,t.get(n),r,t)})})},"drawArrows"),Ut=d((e,t)=>{const o=e.append("g");t.forEach((a,r)=>{var x;const n=r%8,c=(x=E.get(a.name))==null?void 0:x.pos;if(c===void 0)throw new Error(`Position not found for branch ${a.name}`);const s=o.append("line");s.attr("x1",0),s.attr("y1",c),s.attr("x2",v),s.attr("y2",c),s.attr("class","branch branch"+n),g==="TB"?(s.attr("y1",30),s.attr("x1",c),s.attr("y2",v),s.attr("x2",c)):g==="BT"&&(s.attr("y1",v),s.attr("x1",c),s.attr("y2",30),s.attr("x2",c)),O.push(c);const m=a.name,y=F(m),$=o.insert("rect"),h=o.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+n);h.node().appendChild(y);const l=y.getBBox();$.attr("class","branchLabelBkg label"+n).attr("rx",4).attr("ry",4).attr("x",-l.width-4-((f==null?void 0:f.rotateCommitLabel)===!0?30:0)).attr("y",-l.height/2+8).attr("width",l.width+18).attr("height",l.height+4),h.attr("transform","translate("+(-l.width-14-((f==null?void 0:f.rotateCommitLabel)===!0?30:0))+", "+(c-l.height/2-1)+")"),g==="TB"?($.attr("x",c-l.width/2-10).attr("y",0),h.attr("transform","translate("+(c-l.width/2-5)+", 0)")):g==="BT"?($.attr("x",c-l.width/2-10).attr("y",v),h.attr("transform","translate("+(c-l.width/2-5)+", "+v+")")):$.attr("transform","translate(-19, "+(c-l.height/2)+")")})},"drawBranches"),Vt=d(function(e,t,o,a,r){return E.set(e,{pos:t,index:o}),t+=50+(r?40:0)+(g==="TB"||g==="BT"?a.width/2:0)},"setBranchPosition"),Qt={parser:Rt,db:j,renderer:{draw:d(function(e,t,o,a){if(It(),u.debug("in gitgraph renderer",e+`
14
- `,"id:",t,o),!f)throw new Error("GitGraph config not found");const r=f.rotateCommitLabel??!1,n=a.db;I=n.getCommits();const c=n.getBranchesAsObjArray();g=n.getDirection();const s=dt(`[id="${t}"]`);let m=0;c.forEach((y,$)=>{var P;const h=F(y.name),l=s.append("g"),x=l.insert("g").attr("class","branchLabel"),b=x.insert("g").attr("class","label branch-label");(P=b.node())==null||P.appendChild(h);const w=h.getBBox();m=Vt(y.name,m,$,w,r),b.remove(),x.remove(),l.remove()}),K(s,I,!1),f.showBranches&&Ut(s,c),Yt(s,I),K(s,I,!0),et.insertTitle(s,"gitTitleText",f.titleTopMargin??0,n.getDiagramTitle()),ot(void 0,s,f.diagramPadding,f.useMaxWidth)},"draw")},styles:d(e=>`
15
- .commit-id,
16
- .commit-msg,
17
- .branch-label {
18
- fill: lightgrey;
19
- color: lightgrey;
20
- font-family: 'trebuchet ms', verdana, arial, sans-serif;
21
- font-family: var(--mermaid-font-family);
22
- }
23
- ${[0,1,2,3,4,5,6,7].map(t=>`
24
- .branch-label${t} { fill: ${e["gitBranchLabel"+t]}; }
25
- .commit${t} { stroke: ${e["git"+t]}; fill: ${e["git"+t]}; }
26
- .commit-highlight${t} { stroke: ${e["gitInv"+t]}; fill: ${e["gitInv"+t]}; }
27
- .label${t} { fill: ${e["git"+t]}; }
28
- .arrow${t} { stroke: ${e["git"+t]}; }
29
- `).join(`
30
- `)}
31
-
32
- .branch {
33
- stroke-width: 1;
34
- stroke: ${e.lineColor};
35
- stroke-dasharray: 2;
36
- }
37
- .commit-label { font-size: ${e.commitLabelFontSize}; fill: ${e.commitLabelColor};}
38
- .commit-label-bkg { font-size: ${e.commitLabelFontSize}; fill: ${e.commitLabelBackground}; opacity: 0.5; }
39
- .tag-label { font-size: ${e.tagLabelFontSize}; fill: ${e.tagLabelColor};}
40
- .tag-label-bkg { fill: ${e.tagLabelBackground}; stroke: ${e.tagLabelBorder}; }
41
- .tag-hole { fill: ${e.textColor}; }
42
-
43
- .commit-merge {
44
- stroke: ${e.primaryColor};
45
- fill: ${e.primaryColor};
46
- }
47
- .commit-reverse {
48
- stroke: ${e.primaryColor};
49
- fill: ${e.primaryColor};
50
- stroke-width: 3;
51
- }
52
- .commit-highlight-outer {
53
- }
54
- .commit-highlight-inner {
55
- stroke: ${e.primaryColor};
56
- fill: ${e.primaryColor};
57
- }
58
-
59
- .arrow { stroke-width: 8; stroke-linecap: round; fill: none}
60
- .gitTitleText {
61
- text-anchor: middle;
62
- font-size: 18px;
63
- fill: ${e.textColor};
64
- }
65
- `,"getStyles")};export{Qt as diagram};
@@ -1 +0,0 @@
1
- import{ax as M,ay as G,az as x,aA as f,aB as y,aC as _}from"./index-OC46250R.js";import{a as z,f as m,c as a,i as l,v,r as k}from"./_baseUniq-Dk7ZPJ3N.js";import{ad as N}from"./mermaid.core-4nVOEVX3.js";var A=M(function(o){return z(G(o,1,x,!0))}),d="\0";class b{constructor(t={}){this._isDirected=!Object.prototype.hasOwnProperty.call(t,"directed")||t.directed,this._isMultigraph=!!Object.prototype.hasOwnProperty.call(t,"multigraph")&&t.multigraph,this._isCompound=!!Object.prototype.hasOwnProperty.call(t,"compound")&&t.compound,this._label=void 0,this._defaultNodeLabelFn=f(void 0),this._defaultEdgeLabelFn=f(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[d]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(t){return this._label=t,this}graph(){return this._label}setDefaultNodeLabel(t){return y(t)||(t=f(t)),this._defaultNodeLabelFn=t,this}nodeCount(){return this._nodeCount}nodes(){return _(this._nodes)}sources(){var t=this;return m(this.nodes(),function(e){return N(t._in[e])})}sinks(){var t=this;return m(this.nodes(),function(e){return N(t._out[e])})}setNodes(t,e){var s=arguments,r=this;return a(t,function(i){s.length>1?r.setNode(i,e):r.setNode(i)}),this}setNode(t,e){return Object.prototype.hasOwnProperty.call(this._nodes,t)?(arguments.length>1&&(this._nodes[t]=e),this):(this._nodes[t]=arguments.length>1?e:this._defaultNodeLabelFn(t),this._isCompound&&(this._parent[t]=d,this._children[t]={},this._children[d][t]=!0),this._in[t]={},this._preds[t]={},this._out[t]={},this._sucs[t]={},++this._nodeCount,this)}node(t){return this._nodes[t]}hasNode(t){return Object.prototype.hasOwnProperty.call(this._nodes,t)}removeNode(t){if(Object.prototype.hasOwnProperty.call(this._nodes,t)){var e=s=>this.removeEdge(this._edgeObjs[s]);delete this._nodes[t],this._isCompound&&(this._removeFromParentsChildList(t),delete this._parent[t],a(this.children(t),s=>{this.setParent(s)}),delete this._children[t]),a(_(this._in[t]),e),delete this._in[t],delete this._preds[t],a(_(this._out[t]),e),delete this._out[t],delete this._sucs[t],--this._nodeCount}return this}setParent(t,e){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(l(e))e=d;else{for(var s=e+="";!l(s);s=this.parent(s))if(s===t)throw new Error("Setting "+e+" as parent of "+t+" would create a cycle");this.setNode(e)}return this.setNode(t),this._removeFromParentsChildList(t),this._parent[t]=e,this._children[e][t]=!0,this}_removeFromParentsChildList(t){delete this._children[this._parent[t]][t]}parent(t){if(this._isCompound){var e=this._parent[t];if(e!==d)return e}}children(t){if(l(t)&&(t=d),this._isCompound){var e=this._children[t];if(e)return _(e)}else{if(t===d)return this.nodes();if(this.hasNode(t))return[]}}predecessors(t){var e=this._preds[t];if(e)return _(e)}successors(t){var e=this._sucs[t];if(e)return _(e)}neighbors(t){var e=this.predecessors(t);if(e)return A(e,this.successors(t))}isLeaf(t){return(this.isDirected()?this.successors(t):this.neighbors(t)).length===0}filterNodes(t){var e=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});e.setGraph(this.graph());var s=this;a(this._nodes,function(n,h){t(h)&&e.setNode(h,n)}),a(this._edgeObjs,function(n){e.hasNode(n.v)&&e.hasNode(n.w)&&e.setEdge(n,s.edge(n))});var r={};function i(n){var h=s.parent(n);return h===void 0||e.hasNode(h)?(r[n]=h,h):h in r?r[h]:i(h)}return this._isCompound&&a(e.nodes(),function(n){e.setParent(n,i(n))}),e}setDefaultEdgeLabel(t){return y(t)||(t=f(t)),this._defaultEdgeLabelFn=t,this}edgeCount(){return this._edgeCount}edges(){return v(this._edgeObjs)}setPath(t,e){var s=this,r=arguments;return k(t,function(i,n){return r.length>1?s.setEdge(i,n,e):s.setEdge(i,n),n}),this}setEdge(){var t,e,s,r,i=!1,n=arguments[0];typeof n=="object"&&n!==null&&"v"in n?(t=n.v,e=n.w,s=n.name,arguments.length===2&&(r=arguments[1],i=!0)):(t=n,e=arguments[1],s=arguments[3],arguments.length>2&&(r=arguments[2],i=!0)),t=""+t,e=""+e,l(s)||(s=""+s);var h=c(this._isDirected,t,e,s);if(Object.prototype.hasOwnProperty.call(this._edgeLabels,h))return i&&(this._edgeLabels[h]=r),this;if(!l(s)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(t),this.setNode(e),this._edgeLabels[h]=i?r:this._defaultEdgeLabelFn(t,e,s);var u=(function(j,D,P,w){var g=""+D,p=""+P;if(!j&&g>p){var F=g;g=p,p=F}var O={v:g,w:p};return w&&(O.name=w),O})(this._isDirected,t,e,s);return t=u.v,e=u.w,Object.freeze(u),this._edgeObjs[h]=u,E(this._preds[e],t),E(this._sucs[t],e),this._in[e][h]=u,this._out[t][h]=u,this._edgeCount++,this}edge(t,e,s){var r=arguments.length===1?C(this._isDirected,arguments[0]):c(this._isDirected,t,e,s);return this._edgeLabels[r]}hasEdge(t,e,s){var r=arguments.length===1?C(this._isDirected,arguments[0]):c(this._isDirected,t,e,s);return Object.prototype.hasOwnProperty.call(this._edgeLabels,r)}removeEdge(t,e,s){var r=arguments.length===1?C(this._isDirected,arguments[0]):c(this._isDirected,t,e,s),i=this._edgeObjs[r];return i&&(t=i.v,e=i.w,delete this._edgeLabels[r],delete this._edgeObjs[r],L(this._preds[e],t),L(this._sucs[t],e),delete this._in[e][r],delete this._out[t][r],this._edgeCount--),this}inEdges(t,e){var s=this._in[t];if(s){var r=v(s);return e?m(r,function(i){return i.v===e}):r}}outEdges(t,e){var s=this._out[t];if(s){var r=v(s);return e?m(r,function(i){return i.w===e}):r}}nodeEdges(t,e){var s=this.inEdges(t,e);if(s)return s.concat(this.outEdges(t,e))}}function E(o,t){o[t]?o[t]++:o[t]=1}function L(o,t){--o[t]||delete o[t]}function c(o,t,e,s){var r=""+t,i=""+e;if(!o&&r>i){var n=r;r=i,i=n}return r+""+i+""+(l(s)?"\0":s)}function C(o,t){return c(o,t.v,t.w,t.name)}b.prototype._nodeCount=0,b.prototype._edgeCount=0;export{b as G};