@marimo-team/frontend 0.16.0-dev96986 → 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 (253) hide show
  1. package/dist/assets/ConnectedDataExplorerComponent-BErMbWvG.js +19 -0
  2. package/dist/assets/{ImageComparisonComponent-SX7fDaTK.js → ImageComparisonComponent-fTHv1Ih0.js} +1 -1
  3. package/dist/assets/{VegaLite-MJUW3b7C.js → VegaLite-Bdi-TyfY.js} +1 -1
  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-ZRm2b6Zm.js → _createAggregator-DcD0kTA5.js} +1 -1
  8. package/dist/assets/{agent-panel-BBd11wNX.js → agent-panel-Crv430aI.js} +57 -76
  9. package/dist/assets/{any-language-editor-DwAaEQfS.js → any-language-editor-CQh552Wu.js} +1 -1
  10. package/dist/assets/{architectureDiagram-W76B3OCA-BJmVXUoW.js → architectureDiagram-W76B3OCA-BAJeBxzt.js} +1 -1
  11. package/dist/assets/{between-horizontal-start-KiwU-a3C.js → between-horizontal-start-Boxgxbt_.js} +1 -1
  12. package/dist/assets/{blockDiagram-QIGZ2CNN-DzxZjE7B.js → blockDiagram-QIGZ2CNN-CL-1svEK.js} +1 -1
  13. package/dist/assets/{c4Diagram-FPNF74CW-DjmldG_J.js → c4Diagram-FPNF74CW-BbEqbCTl.js} +1 -1
  14. package/dist/assets/channel-_2eNSz0n.js +1 -0
  15. package/dist/assets/chat-panel-CXh5Wl6C.js +3 -0
  16. package/dist/assets/{chunk-4BX2VUAB-EUTQThiZ.js → chunk-4BX2VUAB-C--8TXeE.js} +1 -1
  17. package/dist/assets/{chunk-55IACEB6-DZAiDJxy.js → chunk-55IACEB6-Bj00HDqq.js} +1 -1
  18. package/dist/assets/{chunk-FMBD7UC4-Bd0Czs-J.js → chunk-FMBD7UC4-C-lhB6hN.js} +1 -1
  19. package/dist/assets/{chunk-K7UQS3LO-DEKMIknX.js → chunk-K7UQS3LO-B-pGTXPt.js} +1 -1
  20. package/dist/assets/{chunk-QN33PNHL-E0jwHU_n.js → chunk-QN33PNHL-DqUzGhvm.js} +1 -1
  21. package/dist/assets/{chunk-QZHKN3VN-BzaIHJbq.js → chunk-QZHKN3VN-TntJHfSk.js} +1 -1
  22. package/dist/assets/{chunk-TVAH2DTR-CZFYvqnm.js → chunk-TVAH2DTR-HUJb1psV.js} +1 -1
  23. package/dist/assets/{chunk-TZMSLE5B-BNqnFjtv.js → chunk-TZMSLE5B-BK3C__t3.js} +1 -1
  24. package/dist/assets/{circle-play-D3J_mYrF.js → circle-play-DBLOv1Yu.js} +1 -1
  25. package/dist/assets/classDiagram-KNZD7YFC-BGmh9POF.js +1 -0
  26. package/dist/assets/classDiagram-v2-RKCZMP56-BGmh9POF.js +1 -0
  27. package/dist/assets/{clear-button-ifzRuAR3.js → clear-button-BeoFbEKH.js} +1 -1
  28. package/dist/assets/clone-BFDSPAj3.js +1 -0
  29. package/dist/assets/{command-palette-D2fdVSET.js → command-palette-CXZiSv0I.js} +1 -1
  30. package/dist/assets/{common-Ku-cF_2J.js → common-C7oJcmCT.js} +1 -1
  31. package/dist/assets/{compile-BgZlHW1c.js → compile-7L0MwhyI.js} +1 -1
  32. package/dist/assets/{cose-bilkent-S5V4N54A-CVM83SqK.js → cose-bilkent-S5V4N54A-BMkGLcVC.js} +1 -1
  33. package/dist/assets/{dagre-5GWH7T2D-ouQPkxT3.js → dagre-5GWH7T2D-BJtRienS.js} +1 -1
  34. package/dist/assets/{data-grid-overlay-editor-B47j5GJJ.js → data-grid-overlay-editor-DBkmGtNs.js} +1 -1
  35. package/dist/assets/datasources-panel-B7FbYLiy.js +1 -0
  36. package/dist/assets/{dependency-graph-panel-CZC_B7pK.js → dependency-graph-panel-DEdOxp2X.js} +1 -1
  37. package/dist/assets/{diagram-N5W7TBWH-CQ817ZdR.js → diagram-N5W7TBWH-CmECY3nb.js} +1 -1
  38. package/dist/assets/{diagram-QEK2KX5R-DOK_psUO.js → diagram-QEK2KX5R-DMOVSNKD.js} +1 -1
  39. package/dist/assets/{diagram-S2PKOQOG-CVljmOW8.js → diagram-S2PKOQOG-BiJ96PNQ.js} +1 -1
  40. package/dist/assets/{documentation-panel-C7yIvGg1.js → documentation-panel-xULhaEv3.js} +1 -1
  41. package/dist/assets/edit-page-BrYda9VE.js +129 -0
  42. package/dist/assets/{ellipsis-vertical-C7FjlUsY.js → ellipsis-vertical-BBqXIlc2.js} +1 -1
  43. package/dist/assets/{empty-state-DIOGM_CU.js → empty-state-B3dA3G5P.js} +1 -1
  44. package/dist/assets/{erDiagram-AWTI2OKA-DYu8cEdc.js → erDiagram-AWTI2OKA-MP1DiFRo.js} +1 -1
  45. package/dist/assets/{error-panel-Ddb8RkFG.js → error-panel-Cc1sv-Ag.js} +1 -1
  46. package/dist/assets/file-explorer-panel-Bw59Kva1.js +1 -0
  47. package/dist/assets/{flowDiagram-PVAE7QVJ-CmvW5iTb.js → flowDiagram-PVAE7QVJ-BX7caPp7.js} +1 -1
  48. package/dist/assets/{ganttDiagram-OWAHRB6G-BaKQlCaT.js → ganttDiagram-OWAHRB6G-B462g4Yf.js} +4 -4
  49. package/dist/assets/{gitGraphDiagram-NY62KEGX-CWO24eP6.js → gitGraphDiagram-NY62KEGX-CGgvZ9-9.js} +1 -1
  50. package/dist/assets/{glide-data-editor-CNDLEJ9a.js → glide-data-editor-C0gUFZON.js} +11 -11
  51. package/dist/assets/{graph-BZKTtxsc.js → graph-CHRVBzY5.js} +1 -1
  52. package/dist/assets/home-page-Fb2osjys.js +9 -0
  53. package/dist/assets/{index-zrSUQXha.js → index-BVgAenPd.js} +1 -1
  54. package/dist/assets/{index-Brf2DwUM.js → index-BY93Ejhl.js} +1 -1
  55. package/dist/assets/{index-CerjupfZ.js → index-C-8WADat.js} +1 -1
  56. package/dist/assets/{index-DZhOPkOB.js → index-C-GhZ7ti.js} +1 -1
  57. package/dist/assets/{index-CZaurnA9.js → index-C1v_Z9et.js} +1 -1
  58. package/dist/assets/{index-0XOUPdwT.js → index-C4Tn5NvJ.js} +1 -1
  59. package/dist/assets/{index-B_d_JZGI.js → index-C77h_TXN.js} +1 -1
  60. package/dist/assets/{index-BJVyzkx5.js → index-CQDrxQ0j.js} +1 -1
  61. package/dist/assets/{index-DFrGFNW1.js → index-CWMgowgL.js} +1 -1
  62. package/dist/assets/{index-DmgwT3sx.js → index-Clbi_Yaq.js} +1 -1
  63. package/dist/assets/{index-D-tZfElD.js → index-CpTPJo4k.js} +1 -1
  64. package/dist/assets/index-Cx0bsY1w.css +1 -0
  65. package/dist/assets/{index-DkntzpX4.js → index-D1vmG6DS.js} +1 -1
  66. package/dist/assets/{index-D3PqGupX.js → index-D9UKkrr2.js} +1 -1
  67. package/dist/assets/{index-BgXbBA39.js → index-DEQvTChO.js} +1 -1
  68. package/dist/assets/index-DKEudB02.js +578 -0
  69. package/dist/assets/{index-DCkzth56.js → index-DRMm6SNo.js} +1 -1
  70. package/dist/assets/{index-WXJFkQHg.js → index-DoRmcrKM.js} +1 -1
  71. package/dist/assets/{index-qE8lHQ-N.js → index-lYa_leQE.js} +1 -1
  72. package/dist/assets/{index-CXrWwFX6.js → index-vmICa5KN.js} +1 -1
  73. package/dist/assets/{index-BH7f3aiU.js → index-z9bohSQJ.js} +1 -1
  74. package/dist/assets/infoDiagram-STP46IZ2-CVyrdLc8.js +2 -0
  75. package/dist/assets/{isEmpty-D1t7Gran.js → isEmpty-DU_ogP_D.js} +1 -1
  76. package/dist/assets/{journeyDiagram-BIP6EPQ6-D4Rp6H_h.js → journeyDiagram-BIP6EPQ6-C6EgLP_Q.js} +1 -1
  77. package/dist/assets/{kanban-definition-6OIFK2YF-DFt9DftA.js → kanban-definition-6OIFK2YF-BXzYO1yj.js} +1 -1
  78. package/dist/assets/{layout-D8WXi2_g.js → layout-jihVw5-i.js} +1 -1
  79. package/dist/assets/{linear-BwY8e5hA.js → linear-C4blANlC.js} +1 -1
  80. package/dist/assets/links-D59GIweI.js +7 -0
  81. package/dist/assets/{logs-panel-Dxiyt7dO.js → logs-panel-D401qzZh.js} +1 -1
  82. package/dist/assets/{markdown-renderer-VDu-NBKB.js → markdown-renderer-Cd9eYyaL.js} +20 -20
  83. package/dist/assets/{mermaid-B-O-Puyi.js → mermaid-BEVuRz_O.js} +1 -1
  84. package/dist/assets/{mermaid.core-BFFCqfOn.js → mermaid.core-CaSnaLH0.js} +4 -4
  85. package/dist/assets/min-DUMu_zeK.js +1 -0
  86. package/dist/assets/{mindmap-definition-Q6HEUPPD-kyvIY8Dg.js → mindmap-definition-Q6HEUPPD-BXUM5MT2.js} +1 -1
  87. package/dist/assets/{number-overlay-editor-GjLB2UK4.js → number-overlay-editor-4uWXGlPG.js} +1 -1
  88. package/dist/assets/outline-panel-DIzkvm2I.js +1 -0
  89. package/dist/assets/{packages-panel-nfXB-bKW.js → packages-panel-CJL0MVlj.js} +1 -1
  90. package/dist/assets/{pieDiagram-ADFJNKIX-D8JFQcWR.js → pieDiagram-ADFJNKIX-Dxt5PVNo.js} +1 -1
  91. package/dist/assets/{quadrantDiagram-LMRXKWRM-Nf8GzxXG.js → quadrantDiagram-LMRXKWRM-D4pUaA31.js} +1 -1
  92. package/dist/assets/{react-plotly-CnW9p7ZA.js → react-plotly-cJZ0VWBq.js} +1 -1
  93. package/dist/assets/{requirementDiagram-4UW4RH46-CCUxF8BZ.js → requirementDiagram-4UW4RH46-DVRTjgas.js} +1 -1
  94. package/dist/assets/{run-page-Bl4p3AbZ.js → run-page-BUEnMC9w.js} +1 -1
  95. package/dist/assets/{sankeyDiagram-GR3RE2ED-Sr8kDwP1.js → sankeyDiagram-GR3RE2ED-CVFnD9C-.js} +1 -1
  96. package/dist/assets/{scratchpad-panel-Ja1Mu-W3.js → scratchpad-panel-BIgRENkI.js} +1 -1
  97. package/dist/assets/{secrets-panel-B-3fcSyP.js → secrets-panel-xY5-V_BD.js} +1 -1
  98. package/dist/assets/{sequenceDiagram-C3RYC4MD-CBJ152Q3.js → sequenceDiagram-C3RYC4MD-_lY4ZN_S.js} +1 -1
  99. package/dist/assets/{slides-component-C-LoGC1U.css → slides-component-DMjQomc3.css} +1 -1
  100. package/dist/assets/{slides-component-DGtsVP5o.js → slides-component-Xjymwj7X.js} +1 -1
  101. package/dist/assets/snippets-panel-CTPYW41n.js +1 -0
  102. package/dist/assets/sortBy-BNZKwiq_.js +1 -0
  103. package/dist/assets/{state-B_RCHTH5.js → state-C4NiC9tO.js} +1 -1
  104. package/dist/assets/{stateDiagram-KXAO66HF-BlBFSAZr.js → stateDiagram-KXAO66HF-Da0JQWCn.js} +1 -1
  105. package/dist/assets/stateDiagram-v2-UMBNRL4Z-D5lYZOOt.js +1 -0
  106. package/dist/assets/storage-CMdLzB_c.js +26 -0
  107. package/dist/assets/{terminal-CATzv5Hd.js → terminal-BPwTkXae.js} +1 -1
  108. package/dist/assets/{time-CsYqILfB.js → time-Dv5_Ouz_.js} +1 -1
  109. package/dist/assets/{timeline-definition-XQNQX7LJ-CGrhjuAs.js → timeline-definition-XQNQX7LJ-Dxh5Zu2e.js} +1 -1
  110. package/dist/assets/tracing-BCIurUfa.js +2 -0
  111. package/dist/assets/{tracing-panel-DmzqPUtc.js → tracing-panel-DAzrzNmm.js} +2 -2
  112. package/dist/assets/{trash-rxdjLzkf.js → trash-Dc6DSjz_.js} +1 -1
  113. package/dist/assets/{tree-C2Ul1h1C.js → tree-jheoerAX.js} +1 -1
  114. package/dist/assets/{treemap-75Q7IDZK-N9hyUpyj.js → treemap-75Q7IDZK-IgpxeGaf.js} +27 -27
  115. package/dist/assets/variable-panel-DYAiLBmF.js +1 -0
  116. package/dist/assets/{vega-component-CR_MHOBT.js → vega-component-BpfpiPKI.js} +1 -1
  117. package/dist/assets/worker-X5rxzQGQ.js +1 -0
  118. package/dist/assets/{xychartDiagram-6GGTOJPD-jdLZsMb2.js → xychartDiagram-6GGTOJPD-CmNigJ31.js} +1 -1
  119. package/dist/index.html +2 -2
  120. package/package.json +2 -3
  121. package/src/components/app-config/user-config-form.tsx +1 -46
  122. package/src/components/chat/acp/__tests__/__snapshots__/prompt.test.ts.snap +43 -62
  123. package/src/components/chat/acp/__tests__/atoms.test.ts +1 -1
  124. package/src/components/chat/acp/__tests__/state.test.ts +36 -36
  125. package/src/components/chat/acp/agent-panel.tsx +27 -24
  126. package/src/components/chat/acp/blocks.tsx +6 -6
  127. package/src/components/chat/acp/prompt.ts +43 -62
  128. package/src/components/chat/chat-panel.tsx +1 -5
  129. package/src/components/chat/markdown-renderer.tsx +10 -6
  130. package/src/components/chat/tool-call-accordion.tsx +20 -52
  131. package/src/components/data-table/SearchBar.tsx +7 -8
  132. package/src/components/data-table/__tests__/column_formatting.test.ts +35 -50
  133. package/src/components/data-table/__tests__/data-table.test.tsx +1 -39
  134. package/src/components/data-table/charts/components/form-fields.tsx +37 -41
  135. package/src/components/data-table/charts/forms/common-chart.tsx +2 -2
  136. package/src/components/data-table/column-explorer-panel/column-explorer.tsx +2 -5
  137. package/src/components/data-table/column-formatting/feature.ts +29 -62
  138. package/src/components/data-table/column-formatting/types.ts +0 -1
  139. package/src/components/data-table/column-header.tsx +1 -3
  140. package/src/components/data-table/column-summary/chart-spec-model.tsx +7 -24
  141. package/src/components/data-table/column-summary/column-summary.tsx +9 -18
  142. package/src/components/data-table/columns.tsx +18 -42
  143. package/src/components/data-table/data-table.tsx +2 -10
  144. package/src/components/data-table/date-popover.tsx +75 -85
  145. package/src/components/data-table/filter-pills.tsx +9 -14
  146. package/src/components/data-table/header-items.tsx +1 -5
  147. package/src/components/data-table/pagination.tsx +13 -20
  148. package/src/components/data-table/renderers.tsx +0 -28
  149. package/src/components/data-table/row-viewer-panel/row-viewer.tsx +8 -10
  150. package/src/components/datasources/column-preview.tsx +2 -6
  151. package/src/components/datasources/datasources.tsx +12 -8
  152. package/src/components/editor/ai/transport/chat-transport.tsx +1 -4
  153. package/src/components/editor/cell/CellStatus.tsx +20 -23
  154. package/src/components/editor/cell/CreateCellButton.tsx +4 -3
  155. package/src/components/editor/cell/code/language-toggle.tsx +4 -3
  156. package/src/components/editor/chrome/wrapper/footer-items/machine-stats.tsx +28 -39
  157. package/src/components/editor/controls/notebook-menu-dropdown.tsx +2 -4
  158. package/src/components/editor/file-tree/requesting-tree.tsx +8 -14
  159. package/src/components/editor/renderers/CellArray.tsx +4 -3
  160. package/src/components/editor/renderers/slides-layout/slides-layout.tsx +3 -3
  161. package/src/components/editor/renderers/slides-layout/types.ts +0 -1
  162. package/src/components/pages/home-page.tsx +1 -4
  163. package/src/components/slides/slides-component.tsx +1 -1
  164. package/src/components/slides/slides.css +0 -6
  165. package/src/components/terminal/theme.tsx +0 -1
  166. package/src/components/tracing/tracing-spec.ts +4 -5
  167. package/src/components/ui/range-slider.tsx +2 -4
  168. package/src/components/ui/slider.tsx +1 -3
  169. package/src/components/variables/variables-table.tsx +0 -3
  170. package/src/core/MarimoApp.tsx +6 -9
  171. package/src/core/ai/context/__tests__/registry.test.ts +4 -6
  172. package/src/core/ai/context/providers/cell-output.ts +2 -3
  173. package/src/core/ai/context/providers/error.ts +1 -3
  174. package/src/core/ai/context/providers/file.ts +2 -7
  175. package/src/core/ai/context/providers/tables.ts +2 -3
  176. package/src/core/ai/context/providers/variable.ts +4 -6
  177. package/src/core/cells/logs.ts +1 -1
  178. package/src/core/codemirror/find-replace/search-highlight.ts +1 -3
  179. package/src/core/codemirror/language/LanguageAdapters.ts +3 -9
  180. package/src/core/codemirror/lsp/notebook-lsp.ts +2 -8
  181. package/src/core/codemirror/readonly/__tests__/extension.test.ts +1 -1
  182. package/src/core/codemirror/rtc/loro/awareness.ts +17 -52
  183. package/src/core/codemirror/rtc/loro/sync.ts +4 -12
  184. package/src/core/config/config-schema.ts +0 -1
  185. package/src/core/config/config.ts +0 -4
  186. package/src/core/hotkeys/hotkeys.ts +4 -8
  187. package/src/core/islands/components/web-components.tsx +10 -13
  188. package/src/core/kernel/RuntimeState.ts +1 -4
  189. package/src/core/kernel/messages.ts +2 -2
  190. package/src/core/network/DeferredRequestRegistry.ts +4 -16
  191. package/src/core/runtime/runtime.ts +4 -5
  192. package/src/core/wasm/bridge.ts +1 -5
  193. package/src/core/wasm/store.ts +1 -4
  194. package/src/core/wasm/worker/message-buffer.ts +2 -3
  195. package/src/core/websocket/types.ts +16 -22
  196. package/src/hooks/useTimer.ts +5 -8
  197. package/src/plugins/core/registerReactComponent.tsx +10 -16
  198. package/src/plugins/impl/DataTablePlugin.tsx +0 -4
  199. package/src/plugins/impl/RangeSliderPlugin.tsx +3 -5
  200. package/src/plugins/impl/SliderPlugin.tsx +1 -3
  201. package/src/plugins/impl/anywidget/model.ts +5 -16
  202. package/src/plugins/impl/data-editor/types.ts +5 -7
  203. package/src/plugins/impl/data-explorer/components/column-summary.tsx +13 -20
  204. package/src/plugins/impl/panel/utils.ts +4 -6
  205. package/src/plugins/layout/StatPlugin.tsx +1 -4
  206. package/src/plugins/plugins.ts +0 -2
  207. package/src/utils/__tests__/dates.test.ts +24 -45
  208. package/src/utils/__tests__/numbers.test.ts +30 -42
  209. package/src/utils/dates.ts +10 -15
  210. package/src/utils/edit-distance.ts +6 -8
  211. package/src/utils/errors.ts +1 -1
  212. package/src/utils/id-tree.tsx +10 -21
  213. package/src/utils/localStorage.ts +4 -13
  214. package/src/utils/numbers.ts +11 -11
  215. package/src/utils/once.ts +0 -32
  216. package/src/utils/paths.ts +1 -4
  217. package/src/utils/pluralize.ts +5 -12
  218. package/src/utils/python-poet/poet.ts +15 -30
  219. package/src/utils/time.ts +1 -5
  220. package/dist/assets/ConnectedDataExplorerComponent-CNLoZkWr.js +0 -19
  221. package/dist/assets/_baseEach-9_logFrf.js +0 -1
  222. package/dist/assets/_baseMap-NzEbKt5c.js +0 -1
  223. package/dist/assets/_baseUniq-C5LFcyNC.js +0 -1
  224. package/dist/assets/channel-DHcKBVM4.js +0 -1
  225. package/dist/assets/chat-panel-DgJZr0eS.js +0 -3
  226. package/dist/assets/classDiagram-KNZD7YFC-D-xwLnlX.js +0 -1
  227. package/dist/assets/classDiagram-v2-RKCZMP56-D-xwLnlX.js +0 -1
  228. package/dist/assets/clone-CSxIll62.js +0 -1
  229. package/dist/assets/datasources-panel-Bt41Zir-.js +0 -1
  230. package/dist/assets/edit-page-CyTMQV2u.js +0 -129
  231. package/dist/assets/file-explorer-panel-Oy9DbyFP.js +0 -1
  232. package/dist/assets/home-page-Bvwppn9N.js +0 -9
  233. package/dist/assets/index-DadI618h.css +0 -1
  234. package/dist/assets/index-PmY0x4Zd.js +0 -578
  235. package/dist/assets/infoDiagram-STP46IZ2-CAuVVehw.js +0 -2
  236. package/dist/assets/links-4B6ldZ5P.js +0 -7
  237. package/dist/assets/min-DtVSfYKl.js +0 -1
  238. package/dist/assets/outline-panel-CMJjOoN7.js +0 -1
  239. package/dist/assets/snippets-panel-ClNnwKBM.js +0 -1
  240. package/dist/assets/sortBy-D47H6Vyl.js +0 -1
  241. package/dist/assets/stateDiagram-v2-UMBNRL4Z-DbA-iToo.js +0 -1
  242. package/dist/assets/storage-BNcWOH3-.js +0 -26
  243. package/dist/assets/tracing-DUbJtOyq.js +0 -2
  244. package/dist/assets/variable-panel-BbgupOdG.js +0 -1
  245. package/dist/assets/worker-fHbtoWvT.js +0 -1
  246. package/src/components/data-table/cell-hover-template/feature.ts +0 -14
  247. package/src/components/data-table/cell-hover-template/types.ts +0 -11
  248. package/src/core/i18n/__tests__/locale-provider.test.tsx +0 -176
  249. package/src/core/i18n/locale-provider.tsx +0 -35
  250. package/src/core/i18n/with-locale.tsx +0 -12
  251. package/src/hooks/useFormatting.ts +0 -97
  252. package/src/plugins/layout/OutlinePlugin.tsx +0 -69
  253. package/src/utils/__tests__/once.test.ts +0 -187
@@ -1 +0,0 @@
1
- import{c as T,u as Ze,ax as ae,K as Xe,cs as Ge,r as P,b as fe,j as a,E as xe,aA as Z,aB as D,e8 as se,b4 as ue,a8 as ge,$ as X,cO as Je,eU as Qe,eV as et,eW as tt,eX as at,eY as st,bS as it,p as nt,eZ as rt,e_ as ot,e$ as lt,b3 as je,cP as ct,f0 as ie,a0 as O,e5 as dt,ba as ht,av as ye,f1 as pt,f2 as mt,a as M,f3 as ft,L as xt,f4 as ut,d as gt,cp as be,X as ve,cM as z,a1 as jt,a_ as V,f5 as yt,e6 as bt,S as vt,by as kt,f6 as wt,T as ne,e7 as Ft,d$ as Ct,dZ as _t,aG as Nt,aH as St,f7 as Pt,eg as Dt,e0 as Ot,dY as C,f8 as L,f9 as ke,fa as Mt,fb as zt,e9 as At,c6 as Rt,__tla as Wt}from"./index-PmY0x4Zd.js";import{e as G,o as It}from"./links-4B6ldZ5P.js";import{m as Et}from"./icon-32x32-DHZerVul.js";import{h as Bt,i as Ht,F as we,__tla as $t}from"./edit-page-CyTMQV2u.js";import{S as re,T as qt}from"./tree-C2Ul1h1C.js";import{E as Tt}from"./ellipsis-vertical-C7FjlUsY.js";import{B as Vt}from"./between-horizontal-start-KiwU-a3C.js";import{__tla as Lt}from"./storage-BNcWOH3-.js";import"./index-BJVyzkx5.js";import"./index-B_d_JZGI.js";import"./index-DkntzpX4.js";import"./index-qE8lHQ-N.js";import"./index-DCkzth56.js";import"./index-CXrWwFX6.js";import"./index-Brf2DwUM.js";import"./index-DZhOPkOB.js";import"./index-CerjupfZ.js";import"./index-WXJFkQHg.js";import"./index-BgXbBA39.js";import"./index-DFrGFNW1.js";import"./index-D3PqGupX.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-zrSUQXha.js";import"./trash-rxdjLzkf.js";import"./_createAggregator-ZRm2b6Zm.js";import"./_baseEach-9_logFrf.js";import{__tla as Ut}from"./loro_wasm_bg-C1ks32Vm.js";import"./index-0XOUPdwT.js";let Fe,Kt=Promise.all([(()=>{try{return Wt}catch{}})(),(()=>{try{return $t}catch{}})(),(()=>{try{return Lt}catch{}})(),(()=>{try{return Ut}catch{}})()]).then(async()=>{const Ce=T("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=T("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=T("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=T("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=T("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=T("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,Pe=({file:t,onOpenNotebook:e})=>{const{theme:s}=Ze(),{sendFileDetails:r,sendUpdateFile:i}=ae(),o=Xe(Ge),[l,m]=P.useState(""),{data:n,isPending:u,error:f,setData:x}=fe(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&&(x(c=>({...c,contents:l})),m(l))})},j=P.useRef(l);if(j.current=l,P.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]),f)return a.jsx(xe,{error:f});if(u||!n)return null;const h=n.mimeType||"text/plain",w=h in Q;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&&!Z()&&a.jsx(D,{content:"Open notebook",children:a.jsx(G,{size:"small",onClick:g=>e(g),children:a.jsx(se,{})})}),a.jsx(D,{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(D,{content:"Copy contents to clipboard",children:a.jsx(G,{size:"small",onClick:async()=>{await X(l)},children:a.jsx(ge,{})})}),a.jsx(D,{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(Bt,{})})})]})]});return h.startsWith("image/")?a.jsxs(a.Fragment,{children:[b,a.jsx("div",{className:"flex-1 overflow-hidden flex flex-col",children:a.jsx(Qe,{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(P.Suspense,{children:a.jsx(it,{theme:s==="dark"?"dark":"light",language:Q[h]||Q.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"),Q={"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 De{constructor(e){this.delegate=new re([]),this.callbacks=void 0,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),this.callbacks=e}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 De({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 f="";u&&(f=ie.guessDeliminator(u).dirname(u));const x=(await ut(n)).split(",")[1];await i({path:f,type:"file",name:n.name,contents:x})}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:Re,onDropRejected:Me,onDrop:o,...r},e[4]=r,e[5]=o,e[6]=l):l=e[6],ft(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(Ae).join(", "),")"]},t.file.name)}function Ae(t){return t.message}function Re(t){xt.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),Ee=t=>{const e=M.c(60),{height:s}=t,r=P.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]=P.useState(o),[n,u]=P.useState(null),{openPrompt:f}=ve(),[x,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}=fe(j,h);let g;e[4]!==x||e[5]!==i?(g=()=>{i.refreshAll(Object.keys(x).filter(p=>x[p]))},e[4]=x,e[5]=i,e[6]=g):g=e[6];const c=z(g);let y;e[7]!==f||e[8]!==i?(y=async()=>{f({title:"Folder name",onConfirm:async p=>{i.createFolder(p,null)}})},e[7]=f,e[8]=i,e[9]=y):y=e[9];const v=z(y);let _;e[10]!==f||e[11]!==i?(_=async()=>{f({title:"File name",onConfirm:async p=>{i.createFile(p,null)}})},e[10]=f,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(xe,{error:b}),e[16]=b,e[17]=p):p=e[17],p}if(n){let p,k,S,$,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(V,{onClick:p,"data-testid":"file-explorer-back-button",variant:"text",size:"xs",className:"mb-0",children:a.jsx(Ht,{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?($=Ye=>me(Ye,i.relativeFromRoot(n.path)),e[22]=n.path,e[23]=i,e[24]=$):$=e[24],e[25]!==n||e[26]!==$?(q=a.jsx(P.Suspense,{children:a.jsx(Pe,{onOpenNotebook:$,file:n})}),e[25]=n,e[26]=$,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 A;e[31]!==ee||e[32]!==F||e[33]!==v||e[34]!==c||e[35]!==i?(A=a.jsx(He,{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]=A):A=e[36];const te=s-33;let R,W,I,U,E,B,H,K;return e[37]!==i?(R=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]=R,e[39]=W,e[40]=I):(R=e[38],W=e[39],I=e[40]),e[41]===Symbol.for("react.memo_cache_sentinel")?(U=p=>{const k=p[0];k&&(k.data.isDirectory||u(k.data))},e[41]=U):U=e[41],e[42]!==x||e[43]!==d||e[44]!==i?(E=async p=>{if(await i.expand(p)){const k=x[p]??!1;d({...x,[p]:!k})}},e[42]=x,e[43]=d,e[44]=i,e[45]=E):E=e[45],e[46]!==l||e[47]!==x||e[48]!==R||e[49]!==W||e[50]!==I||e[51]!==E||e[52]!==te?(B=a.jsx(qt,{width:"100%",ref:r,height:te,className:"h-full",data:l,initialOpenState:x,openByDefault:!1,renderCursor:Le,disableDrop:Ue,onDelete:R,onRename:W,onMove:I,onSelect:U,onToggle:E,padding:15,rowHeight:30,indent:Be,overscanCount:1e3,disableMultiSelection:!0,children:Te}),e[46]=l,e[47]=x,e[48]=R,e[49]=W,e[50]=I,e[51]=E,e[52]=te,e[53]=B):B=e[53],e[54]!==B||e[55]!==i?(H=a.jsx(pe,{value:i,children:B}),e[54]=B,e[55]=i,e[56]=H):H=e[56],e[57]!==H||e[58]!==A?(K=a.jsxs(a.Fragment,{children:[A,H]}),e[57]=H,e[58]=A,e[59]=K):K=e[59],K},Be=15,He=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,f,x,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?(f=a.jsx(D,{content:"Add file",children:a.jsx(V,{"data-testid":"file-explorer-add-file-button",onClick:r,variant:"text",size:"xs",children:u})}),e[2]=r,e[3]=f):f=e[3],e[4]===Symbol.for("react.memo_cache_sentinel")?(x=a.jsx(oe,{size:16}),e[4]=x):x=e[4],e[5]!==i?(d=a.jsx(D,{content:"Add folder",children:a.jsx(V,{"data-testid":"file-explorer-add-folder-button",onClick:i,variant:"text",size:"xs",children:x})}),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(Pt,{size:16}),e[9]=h,e[10]=w):(h=e[9],w=e[10]),e[11]!==j?(b=a.jsx(D,{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(Dt,{size:16}),e[17]=y):y=e[17],e[18]!==s?(v=a.jsx(D,{content:"Refresh",children:a.jsx(V,{"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(D,{content:"Collapse all folders",children:a.jsx(V,{"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]!==f||e[27]!==d||e[28]!==b?(N=a.jsxs("div",{className:"flex items-center justify-end px-2 shrink-0 border-b",children:[f,d,b,c,v,F]}),e[23]=c,e[24]=v,e[25]=F,e[26]=f,e[27]=d,e[28]=b,e[29]=N):N=e[29],N},$e=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&&!Z()&&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=P.useRef(null);let i,o,l,m,n;return e[0]!==s.data.name?(i=()=>{var u,f;(u=r.current)==null||u.focus(),(f=r.current)==null||f.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]),P.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},Te=({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:f}=vt(),x=kt(),d=P.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(At,{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(Ve,{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:Et,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($e,{node:t,onOpenMarimoFile:j}),a.jsxs(Ct,{modal:!1,children:[a.jsx(_t,{asChild:!0,tabIndex:-1,onClick:c=>c.stopPropagation(),children:a.jsx(V,{"data-testid":"file-explorer-more-button",variant:"text",tabIndex:-1,size:"xs",className:"mb-0","aria-label":"More options",children:a.jsx(Tt,{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&&!Z()&&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(L,{})]}),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(L,{}),a.jsxs(C,{onSelect:()=>{const{path:y}=t.data,v=ke[l](y);f({code:v,before:!1,cellId:x??"__end__"})},children:[a.jsx(Vt,{...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&&!Z()&&a.jsxs(a.Fragment,{children:[a.jsx(L,{}),a.jsxs(C,{onSelect:j,children:[a.jsx(Ne,{...c}),"Open notebook"]})]}),a.jsx(L,{}),!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(L,{})]}),a.jsxs(C,{onSelect:h,variant:"danger",children:[a.jsx(zt,{...c}),"Delete"]})]})})()]})]})]})},Ve=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 Le(){return null}function Ue(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}=Rt(),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,f,x,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?(f=l(),t[4]=l,t[5]=f):f=t[5],t[6]!==f?(x=a.jsx("input",{...f}),t[6]=f,t[7]=x):x=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(Ee,{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]!==x||t[17]!==d||t[18]!==h?(w=a.jsxs("div",{...n,className:u,children:[x,d,h]}),t[15]=n,t[16]=x,t[17]=d,t[18]=h,t[19]=w):w=t[19],w}});export{Kt as __tla,Fe as default};
@@ -1,9 +0,0 @@
1
- import{c as R,a as C,ax as H,ct as he,dV as Y,dW as ue,bl as xe,dX as fe,W as K,j as s,dY as pe,aV as A,dZ as ge,a_ as G,d_ as ye,d$ as be,e0 as je,d as Z,cP as ve,cJ as ee,r as P,b as q,e1 as ke,bW as we,e2 as Ne,e3 as te,dK as _e,X as Se,e4 as ae,a1 as E,dJ as ze,bM as Ce,cp as se,e5 as Me,ay as Ie,e6 as Pe,e7 as De,T as We,aG as Te,aH as Re,e8 as Q,e9 as Ae,ea as Oe,a0 as $e,aB as Fe,eb as Le,ec as Ve,ed as He,bQ as Be,ee as Je,ef as Ue,eg as Ye,eh as Ge,ei as oe,aR as qe}from"./index-PmY0x4Zd.js";import{G as Ee,A as Qe,o as Xe,a as Ke,b as Ze,M as et,Y as tt,L as at,c as st,d as ot,S as rt,P as nt}from"./links-4B6ldZ5P.js";import{C as it}from"./circle-play-D3J_mYrF.js";import{T as lt}from"./tree-C2Ul1h1C.js";import"./index-0XOUPdwT.js";/**
2
- * @license lucide-react v0.542.0 - ISC
3
- *
4
- * This source code is licensed under the ISC license.
5
- * See the LICENSE file in the root directory of this source tree.
6
- */const ct=R("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]),dt=R("book-text",[["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}],["path",{d:"M8 11h8",key:"vwpz6n"}],["path",{d:"M8 7h6",key:"1f0q6e"}]]),mt=R("graduation-cap",[["path",{d:"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z",key:"j76jl0"}],["path",{d:"M22 10v6",key:"1lu8f3"}],["path",{d:"M6 12.5V16a6 3 0 0 0 12 0v-3.5",key:"1r8lef"}]]),ht=R("orbit",[["path",{d:"M20.341 6.484A10 10 0 0 1 10.266 21.85",key:"1enhxb"}],["path",{d:"M3.659 17.516A10 10 0 0 1 13.74 2.152",key:"1crzgf"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["circle",{cx:"19",cy:"5",r:"2",key:"mhkx31"}],["circle",{cx:"5",cy:"19",r:"2",key:"v8kfzx"}]]),ut={intro:["Introduction",ct,"Get started with marimo basics"],dataflow:["Dataflow",Qe,"Learn how cells interact with each other"],ui:["UI Elements",R("panels-top-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M9 21V9",key:"1oto5p"}]]),"Create interactive UI components"],markdown:["Markdown",K,"Format text with parameterized markdown"],plots:["Plots",fe,"Create interactive visualizations"],sql:["SQL",xe,"Query databases directly in marimo"],layout:["Layout",Ee,"Customize the layout of your cells' output"],fileformat:["File format",ue,"Understand marimo's pure-Python file format"],"for-jupyter-users":["For Jupyter users",ht,"Transiting from Jupyter to marimo"],"markdown-format":["Markdown format",Y,"Using marimo to edit markdown files"]},xt=()=>{const e=C.c(6),{openTutorial:t}=H();let a,r,o,i;return e[0]===Symbol.for("react.memo_cache_sentinel")?(a=s.jsx(mt,{className:"w-4 h-4 mr-2"}),e[0]=a):a=e[0],e[1]===Symbol.for("react.memo_cache_sentinel")?(r=s.jsx(ge,{asChild:!0,children:s.jsxs(G,{"data-testid":"open-tutorial-button",size:"xs",variant:"outline",children:[a,"Tutorials",s.jsx(ye,{className:"w-3 h-3 ml-1"})]})}),e[1]=r):r=e[1],e[2]!==t?(o=he.entries(ut).map(n=>{const[c,m]=n,[d,h,u]=m;return s.jsxs(pe,{onSelect:async()=>{const l=await t({tutorialId:c});l&&Xe(l.path)},children:[s.jsx(h,{strokeWidth:1.5,className:"w-4 h-4 mr-3 self-start mt-1.5 text-muted-foreground"}),s.jsx("div",{className:"flex items-center",children:s.jsxs("div",{className:"flex flex-col",children:[s.jsx("span",{children:d}),s.jsx("span",{className:"text-xs text-muted-foreground pr-1",children:u})]})})]},c)}),e[2]=t,e[3]=o):o=e[3],e[4]!==o?(i=s.jsxs(be,{children:[r,s.jsx(je,{side:"bottom",align:"end",className:"no-print",children:o})]}),e[4]=o,e[5]=i):i=e[5],i},ft=[{title:"Documentation",description:"Official marimo documentation and API reference",icon:Ke,url:A.docsPage},{title:"GitHub",description:"View source code, report issues, or contribute",icon:Ze,url:A.githubPage},{title:"Community",description:"Join the marimo Discord community",icon:et,url:A.discordLink},{title:"YouTube",description:"Watch tutorials and demos",icon:tt,url:A.youtube},{title:"Changelog",description:"See what's new in marimo",icon:K,url:A.releasesPage}],pt=()=>{const e=C.c(2);let t,a;return e[0]===Symbol.for("react.memo_cache_sentinel")?(t=s.jsx(B,{Icon:at,children:"Resources"}),e[0]=t):t=e[0],e[1]===Symbol.for("react.memo_cache_sentinel")?(a=s.jsxs("div",{className:"flex flex-col gap-2",children:[t,s.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3",children:ft.map(gt)})]}),e[1]=a):a=e[1],a},B=e=>{const t=C.c(8),{Icon:a,control:r,children:o}=e;let i,n,c;return t[0]!==a?(i=s.jsx(a,{className:"h-5 w-5"}),t[0]=a,t[1]=i):i=t[1],t[2]!==o||t[3]!==i?(n=s.jsxs("h2",{className:"flex items-center gap-2 text-xl font-semibold text-muted-foreground select-none",children:[i,o]}),t[2]=o,t[3]=i,t[4]=n):n=t[4],t[5]!==r||t[6]!==n?(c=s.jsxs("div",{className:"flex items-center justify-between gap-2",children:[n,r]}),t[5]=r,t[6]=n,t[7]=c):c=t[7],c};function gt(e){return s.jsxs("a",{href:e.url,target:"_blank",className:"flex items-start gap-3 py-3 px-3 rounded-lg border hover:bg-accent/20 transition-colors shadow-xs",children:[s.jsx(e.icon,{className:"w-5 h-5 mt-1.5 text-primary"}),s.jsxs("div",{children:[s.jsx("h3",{className:"font-medium",children:e.title}),s.jsx("p",{className:"text-sm text-muted-foreground",children:e.description})]})]},e.title)}const re=Z.createContext({runningNotebooks:new Map,setRunningNotebooks:ve.NOOP}),ne=Z.createContext(""),yt=ee("marimo:home:include-markdown",!1,void 0,{getOnInit:!0}),ie=ee("marimo:home:expanded-folders",{},void 0,{getOnInit:!0});function le(e){return`${qe()}-${encodeURIComponent(e)}`}const bt=()=>{const e=C.c(56),[t,a]=P.useState(0),{getRecentFiles:r,getRunningNotebooks:o}=H();let i,n;e[0]!==r?(i=()=>r(),e[0]=r,e[1]=i):i=e[1],e[2]===Symbol.for("react.memo_cache_sentinel")?(n=[],e[2]=n):n=e[2];const c=q(i,n);let m,d,h,u;e[3]===Symbol.for("react.memo_cache_sentinel")?(m=()=>{a(zt)},d={delayMs:1e4,whenVisible:!0},e[3]=m,e[4]=d):(m=e[3],d=e[4]),st(m,d),e[5]!==o?(h=async()=>{const T=await o();return ae.keyBy(T.files,Ct)},e[5]=o,e[6]=h):h=e[6],e[7]!==t?(u=[t],e[7]=t,e[8]=u):u=e[8];const l=q(h,u);let x,p,g,f,y,b,k,j,w,_,N,z,S,M,v,I,O,D,W,$;if(e[9]!==c||e[10]!==l){w=Symbol.for("react.early_return_sentinel");e:{const T=ke(c,l);if(T.error)throw T.error;const X=T.data;if(!X){let V;e[24]===Symbol.for("react.memo_cache_sentinel")?(V=s.jsx(E,{centered:!0,size:"xlarge"}),e[24]=V):V=e[24],w=V;break e}const[me,J]=X;let F,L;f=me,g=P.Suspense,p=re,k={runningNotebooks:J,setRunningNotebooks:l.setData},e[25]===Symbol.for("react.memo_cache_sentinel")?(F=s.jsx(xt,{}),L=s.jsx(ot,{showAppConfig:!1}),e[25]=F,e[26]=L):(F=e[25],L=e[26]);const U=`This will shutdown the notebook server and terminate all running notebooks (${J.size}). You'll lose all data that's in memory.`;e[27]!==U?(j=s.jsxs("div",{className:"absolute top-3 right-5 flex gap-3 z-50",children:[F,L,s.jsx(rt,{description:U})]}),e[27]=U,e[28]=j):j=e[28],z="flex flex-col gap-6 max-w-6xl container pt-5 pb-20 z-10",e[29]===Symbol.for("react.memo_cache_sentinel")?(S=s.jsx("img",{src:"logo.png",alt:"marimo logo",className:"w-48 mb-2"}),y=s.jsx(St,{}),b=s.jsx(pt,{}),e[29]=y,e[30]=b,e[31]=S):(y=e[29],b=e[30],S=e[31]),x=ce,e[32]===Symbol.for("react.memo_cache_sentinel")?(_=s.jsx(B,{Icon:it,children:"Running notebooks"}),e[32]=_):_=e[32],N=[...J.values()]}e[9]=c,e[10]=l,e[11]=x,e[12]=p,e[13]=g,e[14]=f,e[15]=y,e[16]=b,e[17]=k,e[18]=j,e[19]=w,e[20]=_,e[21]=N,e[22]=z,e[23]=S}else x=e[11],p=e[12],g=e[13],f=e[14],y=e[15],b=e[16],k=e[17],j=e[18],w=e[19],_=e[20],N=e[21],z=e[22],S=e[23];return w!==Symbol.for("react.early_return_sentinel")?w:(e[33]!==x||e[34]!==_||e[35]!==N?(M=s.jsx(x,{header:_,files:N}),e[33]=x,e[34]=_,e[35]=N,e[36]=M):M=e[36],e[37]===Symbol.for("react.memo_cache_sentinel")?(v=s.jsx(B,{Icon:ze,children:"Recent notebooks"}),e[37]=v):v=e[37],e[38]!==f.files?(I=s.jsx(ce,{header:v,files:f.files}),e[38]=f.files,e[39]=I):I=e[39],e[40]===Symbol.for("react.memo_cache_sentinel")?(O=s.jsx(Ce,{children:s.jsx(jt,{})}),e[40]=O):O=e[40],e[41]!==y||e[42]!==b||e[43]!==M||e[44]!==I||e[45]!==z||e[46]!==S?(D=s.jsxs("div",{className:z,children:[S,y,b,M,I,O]}),e[41]=y,e[42]=b,e[43]=M,e[44]=I,e[45]=z,e[46]=S,e[47]=D):D=e[47],e[48]!==p||e[49]!==k||e[50]!==j||e[51]!==D?(W=s.jsxs(p,{value:k,children:[j,D]}),e[48]=p,e[49]=k,e[50]=j,e[51]=D,e[52]=W):W=e[52],e[53]!==g||e[54]!==W?($=s.jsx(g,{children:W}),e[53]=g,e[54]=W,e[55]=$):$=e[55],$)},jt=()=>{const e=C.c(41),{getWorkspaceFiles:t}=H(),[a,r]=se(yt),[o,i]=P.useState("");let n,c;e[0]!==t||e[1]!==a?(n=()=>t({includeMarkdown:a}),e[0]=t,e[1]=a,e[2]=n):n=e[2],e[3]!==a?(c=[a],e[3]=a,e[4]=c):c=e[4];const{isPending:m,data:d,error:h,isFetching:u,refetch:l}=q(n,c);if(m){let v;return e[5]===Symbol.for("react.memo_cache_sentinel")?(v=s.jsx(E,{centered:!0,size:"xlarge",className:"mt-6"}),e[5]=v):v=e[5],v}if(h){let v,I;return e[6]!==h?(v=Me(h),e[6]=h,e[7]=v):v=e[7],e[8]!==v?(I=s.jsx(Ve,{kind:"danger",className:"rounded p-4",children:v}),e[8]=v,e[9]=I):I=e[9],I}let x,p,g,f,y,b,k,j,w,_,N,z,S,M;return e[10]===Symbol.for("react.memo_cache_sentinel")?(x=s.jsx(He,{size:13}),p=v=>i(v.target.value),e[10]=x,e[11]=p):(x=e[10],p=e[11]),e[12]!==o?(g=s.jsx(Be,{id:"search",value:o,icon:x,onChange:p,placeholder:"Search",className:"mb-0 border-border"}),e[12]=o,e[13]=g):g=e[13],e[14]===Symbol.for("react.memo_cache_sentinel")?(f=s.jsx(vt,{}),e[14]=f):f=e[14],e[15]!==r?(y=v=>r(!!v),e[15]=r,e[16]=y):y=e[16],e[17]!==a||e[18]!==y?(b=s.jsx(Je,{"data-testid":"include-markdown-checkbox",id:"include-markdown",checked:a,onCheckedChange:y}),e[17]=a,e[18]=y,e[19]=b):b=e[19],e[20]===Symbol.for("react.memo_cache_sentinel")?(k=s.jsx(Ue,{htmlFor:"include-markdown",children:"Include markdown"}),e[20]=k):k=e[20],e[21]!==g||e[22]!==b?(j=s.jsxs("div",{className:"flex items-center gap-2",children:[g,f,b,k]}),e[21]=g,e[22]=b,e[23]=j):j=e[23],e[24]!==l?(w=s.jsx(Ye,{className:"w-4 h-4 ml-1 cursor-pointer opacity-70 hover:opacity-100",onClick:()=>l()}),e[24]=l,e[25]=w):w=e[25],e[26]!==u?(_=u&&s.jsx(E,{size:"small"}),e[26]=u,e[27]=_):_=e[27],e[28]!==w||e[29]!==_||e[30]!==j?(N=s.jsxs(B,{Icon:dt,control:j,children:["Workspace",w,_]}),e[28]=w,e[29]=_,e[30]=j,e[31]=N):N=e[31],e[32]!==o||e[33]!==d.files?(z=s.jsx("div",{className:"flex flex-col divide-y divide-(--slate-3) border rounded overflow-hidden max-h-192 overflow-y-auto shadow-sm bg-background",children:s.jsx(kt,{searchText:o,files:d.files})}),e[32]=o,e[33]=d.files,e[34]=z):z=e[34],e[35]!==N||e[36]!==z?(S=s.jsxs("div",{className:"flex flex-col gap-2",children:[N,z]}),e[35]=N,e[36]=z,e[37]=S):S=e[37],e[38]!==S||e[39]!==d.root?(M=s.jsx(ne,{value:d.root,children:S}),e[38]=S,e[39]=d.root,e[40]=M):M=e[40],M},vt=()=>{const e=C.c(5),t=Ie(ie);let a,r,o;return e[0]!==t?(a=()=>{t({})},e[0]=t,e[1]=a):a=e[1],e[2]===Symbol.for("react.memo_cache_sentinel")?(r=s.jsx(Ge,{className:"w-4 h-4 mr-1"}),e[2]=r):r=e[2],e[3]!==a?(o=s.jsxs(G,{variant:"text",size:"sm",className:"h-fit hidden sm:flex",onClick:a,children:[r,"Collapse all"]}),e[3]=a,e[4]=o):o=e[4],o},kt=e=>{const t=C.c(12),{files:a,searchText:r}=e,[o,i]=se(ie),n=Object.keys(o).length===0,c=P.useRef(void 0);let m,d,h,u;if(t[0]!==n?(m=()=>{var l;n&&((l=c.current)==null||l.closeAll())},d=[n],t[0]=n,t[1]=m,t[2]=d):(m=t[1],d=t[2]),P.useEffect(m,d),a.length===0){let l;return t[3]===Symbol.for("react.memo_cache_sentinel")?(l=s.jsx("div",{className:"flex flex-col px-5 py-10 items-center justify-center",children:s.jsx("p",{className:"text-center text-muted-foreground",children:"No files in this workspace"})}),t[3]=l):l=t[3],l}return t[4]!==o||t[5]!==i?(h=async l=>{const x=o[l]??!1;i({...o,[l]:!x})},t[4]=o,t[5]=i,t[6]=h):h=t[6],t[7]!==a||t[8]!==o||t[9]!==r||t[10]!==h?(u=s.jsx(lt,{ref:c,width:"100%",height:500,searchTerm:r,className:"h-full",idAccessor:Mt,data:a,openByDefault:!1,initialOpenState:o,onToggle:h,padding:5,rowHeight:35,indent:15,overscanCount:1e3,renderCursor:It,disableDrop:!0,disableDrag:!0,disableEdit:!0,disableMultiSelection:!0,children:wt}),t[7]=a,t[8]=o,t[9]=r,t[10]=h,t[11]=u):u=t[11],u},wt=e=>{const t=C.c(19),{node:a,style:r}=e,o=a.data.isDirectory?"directory":Pe(a.data.name),i=De[o];let n;t[0]!==i?(n=s.jsx(i,{className:"w-5 h-5 shrink-0",strokeWidth:1.5}),t[0]=i,t[1]=n):n=t[1];const c=n,m=P.use(ne);let d;t[2]!==c||t[3]!==a.data.isDirectory||t[4]!==a.data.name||t[5]!==a.data.path||t[6]!==m?(d=()=>{if(a.data.isDirectory)return s.jsxs("span",{className:"flex items-center pl-1 cursor-pointer hover:bg-accent/50 hover:text-accent-foreground rounded-l flex-1 overflow-hidden h-full pr-3 gap-2",children:[c,a.data.name]});const f=a.data.path.startsWith(m)&&oe.isAbsolute(a.data.path)?oe.rest(a.data.path,m):a.data.path,y=f.endsWith(".md")||f.endsWith(".qmd");return s.jsxs("a",{className:"flex items-center pl-1 cursor-pointer hover:bg-accent/50 hover:text-accent-foreground rounded-l flex-1 overflow-hidden h-full pr-3 gap-2",href:te(`?file=${f}`).toString(),target:le(f),children:[c,s.jsxs("span",{className:"flex-1 overflow-hidden text-ellipsis",children:[a.data.name,y&&s.jsx(Y,{className:"ml-2 inline opacity-80"})]}),s.jsx(de,{filePath:f}),s.jsx(Q,{size:20,className:"group-hover:opacity-100 opacity-0 text-primary"})]})},t[2]=c,t[3]=a.data.isDirectory,t[4]=a.data.name,t[5]=a.data.path,t[6]=m,t[7]=d):d=t[7];const h=d;let u,l,x,p,g;return t[8]===Symbol.for("react.memo_cache_sentinel")?(u=We("flex items-center cursor-pointer ml-1 text-muted-foreground whitespace-nowrap group h-full"),t[8]=u):u=t[8],t[9]!==a?(l=f=>{f.stopPropagation(),a.data.isDirectory&&a.toggle()},x=s.jsx(Nt,{node:a}),t[9]=a,t[10]=l,t[11]=x):(l=t[10],x=t[11]),t[12]!==h?(p=h(),t[12]=h,t[13]=p):p=t[13],t[14]!==r||t[15]!==l||t[16]!==x||t[17]!==p?(g=s.jsxs("div",{style:r,className:u,onClick:l,children:[x,p]}),t[14]=r,t[15]=l,t[16]=x,t[17]=p,t[18]=g):g=t[18],g},Nt=e=>{const t=C.c(3),{node:a}=e;if(!a.data.isDirectory){let o;return t[0]===Symbol.for("react.memo_cache_sentinel")?(o=s.jsx("span",{className:"w-5 h-5 shrink-0"}),t[0]=o):o=t[0],o}let r;return t[1]!==a.isOpen?(r=a.isOpen?s.jsx(Te,{className:"w-5 h-5 shrink-0"}):s.jsx(Re,{className:"w-5 h-5 shrink-0"}),t[1]=a.isOpen,t[2]=r):r=t[2],r},ce=e=>{const t=C.c(7),{header:a,files:r}=e;if(r.length===0)return null;let o,i,n;return t[0]!==r?(o=r.map(Pt),t[0]=r,t[1]=o):o=t[1],t[2]!==o?(i=s.jsx("div",{className:"flex flex-col divide-y divide-(--slate-3) border rounded overflow-hidden max-h-192 overflow-y-auto shadow-sm bg-background",children:o}),t[2]=o,t[3]=i):i=t[3],t[4]!==a||t[5]!==i?(n=s.jsxs("div",{className:"flex flex-col gap-2",children:[a,i]}),t[4]=a,t[5]=i,t[6]=n):n=t[6],n},_t=e=>{const t=C.c(41),{file:a}=e,{locale:r}=we();let o;t[0]!==a.path?(o=Ne(a.path),t[0]=a.path,t[1]=o):o=t[1];const i=o;let n,c,m,d;if(t[2]!==a.initializationId||t[3]!==a.path||t[4]!==i){const _=te(i?`?file=${a.initializationId}&session_id=${a.path}`:`?file=${a.path}`);let N;t[9]!==a.path?(N=a.path.endsWith(".md"),t[9]=a.path,t[10]=N):N=t[10],n=N,c="py-1.5 px-4 hover:bg-(--blue-2) hover:text-primary transition-all duration-300 cursor-pointer group relative flex gap-4 items-center",m=a.path,d=_.toString(),t[2]=a.initializationId,t[3]=a.path,t[4]=i,t[5]=n,t[6]=c,t[7]=m,t[8]=d}else n=t[5],c=t[6],m=t[7],d=t[8];const h=a.initializationId||a.path;let u,l,x,p,g,f,y,b,k,j,w;return t[11]!==h?(u=le(h),t[11]=h,t[12]=u):u=t[12],t[13]!==n?(l=n&&s.jsx("span",{className:"opacity-80",children:s.jsx(Y,{})}),t[13]=n,t[14]=l):l=t[14],t[15]!==a.name||t[16]!==l?(x=s.jsxs("span",{className:"flex items-center gap-2",children:[a.name,l]}),t[15]=a.name,t[16]=l,t[17]=x):x=t[17],t[18]!==a.path?(p=s.jsx("p",{title:a.path,className:"text-sm text-muted-foreground overflow-hidden whitespace-nowrap text-ellipsis",children:a.path}),t[18]=a.path,t[19]=p):p=t[19],t[20]!==x||t[21]!==p?(g=s.jsxs("div",{className:"flex flex-col justify-between flex-1",children:[x,p]}),t[20]=x,t[21]=p,t[22]=g):g=t[22],t[23]!==a.path?(f=s.jsx("div",{children:s.jsx(de,{filePath:a.path})}),t[23]=a.path,t[24]=f):f=t[24],t[25]===Symbol.for("react.memo_cache_sentinel")?(y=s.jsx(Q,{size:20,className:"group-hover:opacity-100 opacity-0 transition-all duration-300 text-primary"}),t[25]=y):y=t[25],t[26]!==f?(b=s.jsxs("div",{className:"flex gap-3 items-center",children:[f,y]}),t[26]=f,t[27]=b):b=t[27],t[28]!==a.lastModified||t[29]!==r?(k=!!a.lastModified&&s.jsx("div",{className:"text-xs text-muted-foreground opacity-80",children:_e(1e3*a.lastModified,r)}),t[28]=a.lastModified,t[29]=r,t[30]=k):k=t[30],t[31]!==b||t[32]!==k?(j=s.jsxs("div",{className:"flex flex-col gap-1 items-end",children:[b,k]}),t[31]=b,t[32]=k,t[33]=j):j=t[33],t[34]!==g||t[35]!==j||t[36]!==c||t[37]!==m||t[38]!==d||t[39]!==u?(w=s.jsxs("a",{className:c,href:d,target:u,children:[g,j]},m),t[34]=g,t[35]=j,t[36]=c,t[37]=m,t[38]=d,t[39]=u,t[40]=w):w=t[40],w},de=e=>{const t=C.c(10),{filePath:a}=e,{openConfirm:r,closeModal:o}=Se(),{shutdownSession:i}=H(),{runningNotebooks:n,setRunningNotebooks:c}=P.use(re);if(!n.has(a))return null;let m,d,h;return t[0]!==o||t[1]!==a||t[2]!==r||t[3]!==n||t[4]!==c||t[5]!==i?(m=u=>{u.stopPropagation(),u.preventDefault(),r({title:"Shutdown",description:"This will terminate the Python kernel. You'll lose all data that's in memory.",variant:"destructive",confirmAction:s.jsx(Ae,{onClick:()=>{const l=n.get(a);Oe(l==null?void 0:l.sessionId),i({sessionId:l.sessionId}).then(x=>{c(ae.keyBy(x.files,Dt))}),o(),$e({description:"Notebook has been shutdown."})},"aria-label":"Confirm Shutdown",children:"Shutdown"})})},t[0]=o,t[1]=a,t[2]=r,t[3]=n,t[4]=c,t[5]=i,t[6]=m):m=t[6],t[7]===Symbol.for("react.memo_cache_sentinel")?(d=s.jsx(nt,{size:14}),t[7]=d):d=t[7],t[8]!==m?(h=s.jsx(Fe,{content:"Shutdown",children:s.jsx(G,{size:"icon",variant:"outline",className:"opacity-80 hover:opacity-100 hover:bg-accent text-destructive border-destructive hover:border-destructive hover:text-destructive bg-background hover:bg-(--red-1)",onClick:m,children:d})}),t[8]=m,t[9]=h):h=t[9],h},St=()=>{const e=C.c(3);let t;e[0]===Symbol.for("react.memo_cache_sentinel")?(t=Le(),e[0]=t):t=e[0];const a=t;let r,o;return e[1]===Symbol.for("react.memo_cache_sentinel")?(r=s.jsx("h2",{className:"text-lg font-semibold",children:"Create a new notebook"}),e[1]=r):r=e[1],e[2]===Symbol.for("react.memo_cache_sentinel")?(o=s.jsxs("a",{className:`relative rounded-lg p-6 group
7
- text-primary hover:bg-(--blue-2) shadow-md-solid shadow-accent border bg-(--blue-1)
8
- transition-all duration-300 cursor-pointer
9
- `,href:a,target:"_blank",rel:"noreferrer",children:[r,s.jsx("div",{className:"group-hover:opacity-100 opacity-0 absolute right-5 top-0 bottom-0 rounded-lg flex items-center justify-center transition-all duration-300",children:s.jsx(Q,{size:24})})]}),e[2]=o):o=e[2],o};function zt(e){return e+1}function Ct(e){return e.path}function Mt(e){return e.path}function It(){return null}function Pt(e){return s.jsx(_t,{file:e},e.path)}function Dt(e){return e.path}export{bt as default};