@marimo-team/frontend 0.16.0 → 0.16.2

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 (284) hide show
  1. package/dist/assets/ConnectedDataExplorerComponent-B5cPvWoQ.js +19 -0
  2. package/dist/assets/{ImageComparisonComponent-fTHv1Ih0.js → ImageComparisonComponent-CqR26LSv.js} +1 -1
  3. package/dist/assets/{VegaLite-Bdi-TyfY.js → VegaLite-DvQDATwI.js} +1 -1
  4. package/dist/assets/_baseEach--KDTwKbG.js +1 -0
  5. package/dist/assets/_baseMap-Cu3o-eyO.js +1 -0
  6. package/dist/assets/{_baseUniq-CCgDNtZb.js → _baseUniq-y7ZXnMo1.js} +1 -1
  7. package/dist/assets/{_createAggregator-DcD0kTA5.js → _createAggregator-ZcHkHPNJ.js} +1 -1
  8. package/dist/assets/{agent-panel-Crv430aI.js → agent-panel-B91RoLct.js} +76 -57
  9. package/dist/assets/{any-language-editor-CQh552Wu.js → any-language-editor-CxfHcm5h.js} +1 -1
  10. package/dist/assets/{architectureDiagram-W76B3OCA-BAJeBxzt.js → architectureDiagram-W76B3OCA-BQsvK8uR.js} +1 -1
  11. package/dist/assets/{between-horizontal-start-Boxgxbt_.js → between-horizontal-start-BmYToIaM.js} +1 -1
  12. package/dist/assets/{blockDiagram-QIGZ2CNN-CL-1svEK.js → blockDiagram-QIGZ2CNN-r3HgCj4w.js} +1 -1
  13. package/dist/assets/{c4Diagram-FPNF74CW-BbEqbCTl.js → c4Diagram-FPNF74CW-BJbPNt41.js} +1 -1
  14. package/dist/assets/channel-DFaEx1fu.js +1 -0
  15. package/dist/assets/chat-panel-IoPMv8e2.js +3 -0
  16. package/dist/assets/{chunk-4BX2VUAB-C--8TXeE.js → chunk-4BX2VUAB-Dv4MZ9Hj.js} +1 -1
  17. package/dist/assets/{chunk-55IACEB6-Bj00HDqq.js → chunk-55IACEB6-CM4AHquB.js} +1 -1
  18. package/dist/assets/{chunk-FMBD7UC4-C-lhB6hN.js → chunk-FMBD7UC4-C_Zz0ENB.js} +1 -1
  19. package/dist/assets/{chunk-K7UQS3LO-B-pGTXPt.js → chunk-K7UQS3LO-DYSmiXYq.js} +1 -1
  20. package/dist/assets/{chunk-QN33PNHL-DqUzGhvm.js → chunk-QN33PNHL-QM4OPuQP.js} +1 -1
  21. package/dist/assets/{chunk-QZHKN3VN-TntJHfSk.js → chunk-QZHKN3VN-CfAsGyeB.js} +1 -1
  22. package/dist/assets/{chunk-TVAH2DTR-HUJb1psV.js → chunk-TVAH2DTR-6j_Cpjsi.js} +1 -1
  23. package/dist/assets/{chunk-TZMSLE5B-BK3C__t3.js → chunk-TZMSLE5B-BHslFJQE.js} +1 -1
  24. package/dist/assets/{circle-play-DBLOv1Yu.js → circle-play-CK3UZRYQ.js} +1 -1
  25. package/dist/assets/classDiagram-KNZD7YFC-BsZtvV5O.js +1 -0
  26. package/dist/assets/classDiagram-v2-RKCZMP56-BsZtvV5O.js +1 -0
  27. package/dist/assets/{clear-button-BeoFbEKH.js → clear-button-C4fDVSv8.js} +1 -1
  28. package/dist/assets/clone-YBEvPE-s.js +1 -0
  29. package/dist/assets/command-palette-D7hOfvf6.js +1 -0
  30. package/dist/assets/{common-C7oJcmCT.js → common-D-lbuUwz.js} +1 -1
  31. package/dist/assets/{compile-7L0MwhyI.js → compile-DVQe1Mzk.js} +1 -1
  32. package/dist/assets/{cose-bilkent-S5V4N54A-BMkGLcVC.js → cose-bilkent-S5V4N54A-D-IS7WC8.js} +1 -1
  33. package/dist/assets/{dagre-5GWH7T2D-BJtRienS.js → dagre-5GWH7T2D-lYu-tEWT.js} +1 -1
  34. package/dist/assets/{data-grid-overlay-editor-DBkmGtNs.js → data-grid-overlay-editor-C5peOCit.js} +1 -1
  35. package/dist/assets/datasources-panel-D3NA20uZ.js +1 -0
  36. package/dist/assets/{dependency-graph-panel-DEdOxp2X.js → dependency-graph-panel-BGVYOfkV.js} +1 -1
  37. package/dist/assets/{diagram-N5W7TBWH-CmECY3nb.js → diagram-N5W7TBWH-BnvIuYUp.js} +1 -1
  38. package/dist/assets/{diagram-QEK2KX5R-DMOVSNKD.js → diagram-QEK2KX5R-DemedRK3.js} +1 -1
  39. package/dist/assets/{diagram-S2PKOQOG-BiJ96PNQ.js → diagram-S2PKOQOG-iiY7AuyH.js} +1 -1
  40. package/dist/assets/{documentation-panel-xULhaEv3.js → documentation-panel-C3dSwOSQ.js} +1 -1
  41. package/dist/assets/edit-page-C5TsEeSo.js +129 -0
  42. package/dist/assets/{ellipsis-vertical-BBqXIlc2.js → ellipsis-vertical-CazJl8M7.js} +1 -1
  43. package/dist/assets/{empty-state-B3dA3G5P.js → empty-state-DW308mFO.js} +1 -1
  44. package/dist/assets/{erDiagram-AWTI2OKA-MP1DiFRo.js → erDiagram-AWTI2OKA-6wQ8Ugg0.js} +1 -1
  45. package/dist/assets/{error-panel-Cc1sv-Ag.js → error-panel-D1VnJ1yP.js} +1 -1
  46. package/dist/assets/file-explorer-panel-0oVd4t-D.js +1 -0
  47. package/dist/assets/{flowDiagram-PVAE7QVJ-BX7caPp7.js → flowDiagram-PVAE7QVJ-C55IUWjm.js} +1 -1
  48. package/dist/assets/{ganttDiagram-OWAHRB6G-B462g4Yf.js → ganttDiagram-OWAHRB6G-DmqCM6ME.js} +4 -4
  49. package/dist/assets/{gitGraphDiagram-NY62KEGX-CGgvZ9-9.js → gitGraphDiagram-NY62KEGX-DBvhAeM_.js} +1 -1
  50. package/dist/assets/{glide-data-editor-C0gUFZON.js → glide-data-editor-CHNuHidQ.js} +4 -4
  51. package/dist/assets/{graph-CHRVBzY5.js → graph-CG6BgUWQ.js} +1 -1
  52. package/dist/assets/home-page-dgivXuSR.js +9 -0
  53. package/dist/assets/{index-Clbi_Yaq.js → index-BTGpssVX.js} +1 -1
  54. package/dist/assets/{index-CQDrxQ0j.js → index-BYVZlBF8.js} +1 -1
  55. package/dist/assets/{index-lYa_leQE.js → index-BelfnXwL.js} +1 -1
  56. package/dist/assets/{index-DRMm6SNo.js → index-BneyUujp.js} +1 -1
  57. package/dist/assets/{index-BY93Ejhl.js → index-C02SqeRj.js} +1 -1
  58. package/dist/assets/{index-C-8WADat.js → index-C7dtgr9A.js} +1 -1
  59. package/dist/assets/{index-D9UKkrr2.js → index-CAQvMTzM.js} +1 -1
  60. package/dist/assets/index-CGDMlQfO.css +1 -0
  61. package/dist/assets/index-CelXfcd8.js +580 -0
  62. package/dist/assets/{index-vmICa5KN.js → index-Csd6QrCV.js} +1 -1
  63. package/dist/assets/{index-DoRmcrKM.js → index-CtPksxf0.js} +1 -1
  64. package/dist/assets/{index-C1v_Z9et.js → index-Cxyk7pt-.js} +1 -1
  65. package/dist/assets/{index-CpTPJo4k.js → index-DAZ-9ri2.js} +1 -1
  66. package/dist/assets/{index-DEQvTChO.js → index-DONRrmA2.js} +1 -1
  67. package/dist/assets/{index-C4Tn5NvJ.js → index-Db36XTG_.js} +1 -1
  68. package/dist/assets/{index-z9bohSQJ.js → index-DdIhdEVw.js} +1 -1
  69. package/dist/assets/{index-C-GhZ7ti.js → index-M_pBKDSe.js} +1 -1
  70. package/dist/assets/{index-C77h_TXN.js → index-_luCZMLM.js} +1 -1
  71. package/dist/assets/{index-D1vmG6DS.js → index-mkubqy9-.js} +1 -1
  72. package/dist/assets/{index-BVgAenPd.js → index-sbO9UaUU.js} +1 -1
  73. package/dist/assets/{index-CWMgowgL.js → index-z4krxQ4j.js} +1 -1
  74. package/dist/assets/infoDiagram-STP46IZ2-wTALjfPc.js +2 -0
  75. package/dist/assets/{isEmpty-DU_ogP_D.js → isEmpty-CqX_YTIf.js} +1 -1
  76. package/dist/assets/{journeyDiagram-BIP6EPQ6-C6EgLP_Q.js → journeyDiagram-BIP6EPQ6-Y5w_Tqe_.js} +1 -1
  77. package/dist/assets/{kanban-definition-6OIFK2YF-BXzYO1yj.js → kanban-definition-6OIFK2YF-DbXs5Rxi.js} +1 -1
  78. package/dist/assets/{layout-jihVw5-i.js → layout-BCNPDACj.js} +1 -1
  79. package/dist/assets/{linear-C4blANlC.js → linear-uO6UVhXt.js} +1 -1
  80. package/dist/assets/links-Drv7cJgN.js +7 -0
  81. package/dist/assets/{logs-panel-D401qzZh.js → logs-panel-BEQ1eRUp.js} +1 -1
  82. package/dist/assets/{markdown-renderer-Cd9eYyaL.js → markdown-renderer-Dmzbb00W.js} +20 -20
  83. package/dist/assets/{mermaid-BEVuRz_O.js → mermaid-qRc4MXIj.js} +1 -1
  84. package/dist/assets/{mermaid.core-CaSnaLH0.js → mermaid.core-CvvJtCRj.js} +4 -4
  85. package/dist/assets/min-DYUOb1RR.js +1 -0
  86. package/dist/assets/{mindmap-definition-Q6HEUPPD-BXUM5MT2.js → mindmap-definition-Q6HEUPPD-G5NognM-.js} +1 -1
  87. package/dist/assets/{number-overlay-editor-4uWXGlPG.js → number-overlay-editor-DPr5sHFu.js} +1 -1
  88. package/dist/assets/outline-panel-gxQXvVi4.js +1 -0
  89. package/dist/assets/{packages-panel-CJL0MVlj.js → packages-panel-B1T0VPlg.js} +1 -1
  90. package/dist/assets/{pieDiagram-ADFJNKIX-Dxt5PVNo.js → pieDiagram-ADFJNKIX-DK9SHkfc.js} +1 -1
  91. package/dist/assets/{quadrantDiagram-LMRXKWRM-D4pUaA31.js → quadrantDiagram-LMRXKWRM-D1DdWF8C.js} +1 -1
  92. package/dist/assets/{react-plotly-cJZ0VWBq.js → react-plotly-CTwajqCb.js} +1 -1
  93. package/dist/assets/{requirementDiagram-4UW4RH46-DVRTjgas.js → requirementDiagram-4UW4RH46-DnjDAypr.js} +1 -1
  94. package/dist/assets/{run-page-BUEnMC9w.js → run-page-CQY9im22.js} +1 -1
  95. package/dist/assets/{sankeyDiagram-GR3RE2ED-CVFnD9C-.js → sankeyDiagram-GR3RE2ED-B67Va-ER.js} +1 -1
  96. package/dist/assets/{scratchpad-panel-BIgRENkI.js → scratchpad-panel-DlDfcDtW.js} +1 -1
  97. package/dist/assets/{secrets-panel-xY5-V_BD.js → secrets-panel-BDGyuGZA.js} +1 -1
  98. package/dist/assets/{sequenceDiagram-C3RYC4MD-_lY4ZN_S.js → sequenceDiagram-C3RYC4MD-DiWgZPtN.js} +1 -1
  99. package/dist/assets/{slides-component-DMjQomc3.css → slides-component-C-LoGC1U.css} +1 -1
  100. package/dist/assets/{slides-component-Xjymwj7X.js → slides-component-DhpPRtQp.js} +1 -1
  101. package/dist/assets/snippets-panel-CLkBXhJ2.js +1 -0
  102. package/dist/assets/sortBy-D4OG7w4O.js +1 -0
  103. package/dist/assets/{state-C4NiC9tO.js → state-Dz_3JyED.js} +1 -1
  104. package/dist/assets/{stateDiagram-KXAO66HF-Da0JQWCn.js → stateDiagram-KXAO66HF-ByF2AULw.js} +1 -1
  105. package/dist/assets/stateDiagram-v2-UMBNRL4Z-CtBJqosP.js +1 -0
  106. package/dist/assets/storage-Dr0CC44z.js +26 -0
  107. package/dist/assets/{terminal-BPwTkXae.js → terminal-BtdissBf.js} +1 -1
  108. package/dist/assets/{time-Dv5_Ouz_.js → time-DKdOTnQg.js} +1 -1
  109. package/dist/assets/{timeline-definition-XQNQX7LJ-Dxh5Zu2e.js → timeline-definition-XQNQX7LJ-DzER9bf6.js} +1 -1
  110. package/dist/assets/tracing-Dpx5M-u3.js +2 -0
  111. package/dist/assets/{tracing-panel-DAzrzNmm.js → tracing-panel-hCjBkSER.js} +2 -2
  112. package/dist/assets/{trash-Dc6DSjz_.js → trash-C6Ko-g5q.js} +1 -1
  113. package/dist/assets/{tree-jheoerAX.js → tree-BHN2gcCF.js} +6 -6
  114. package/dist/assets/{treemap-75Q7IDZK-IgpxeGaf.js → treemap-75Q7IDZK-DR79Mhzt.js} +27 -27
  115. package/dist/assets/variable-panel-PFBCFz36.js +1 -0
  116. package/dist/assets/{vega-component-BpfpiPKI.js → vega-component-Db6-uY4C.js} +1 -1
  117. package/dist/assets/worker-fHbtoWvT.js +1 -0
  118. package/dist/assets/{xychartDiagram-6GGTOJPD-CmNigJ31.js → xychartDiagram-6GGTOJPD-DWzBP3tZ.js} +1 -1
  119. package/dist/index.html +2 -2
  120. package/package.json +5 -4
  121. package/src/__mocks__/requests.ts +1 -0
  122. package/src/components/app-config/user-config-form.tsx +46 -1
  123. package/src/components/chat/acp/__tests__/__snapshots__/prompt.test.ts.snap +62 -43
  124. package/src/components/chat/acp/__tests__/atoms.test.ts +1 -1
  125. package/src/components/chat/acp/__tests__/state.test.ts +36 -36
  126. package/src/components/chat/acp/agent-panel.tsx +24 -27
  127. package/src/components/chat/acp/blocks.tsx +6 -6
  128. package/src/components/chat/acp/prompt.ts +62 -43
  129. package/src/components/chat/chat-panel.tsx +5 -1
  130. package/src/components/chat/markdown-renderer.tsx +6 -10
  131. package/src/components/chat/tool-call-accordion.tsx +52 -20
  132. package/src/components/data-table/SearchBar.tsx +8 -7
  133. package/src/components/data-table/__tests__/column_formatting.test.ts +50 -35
  134. package/src/components/data-table/__tests__/columns.test.tsx +38 -0
  135. package/src/components/data-table/__tests__/data-table.test.tsx +39 -1
  136. package/src/components/data-table/cell-hover-template/feature.ts +14 -0
  137. package/src/components/data-table/cell-hover-template/types.ts +11 -0
  138. package/src/components/data-table/charts/components/form-fields.tsx +41 -37
  139. package/src/components/data-table/charts/forms/common-chart.tsx +2 -2
  140. package/src/components/data-table/column-explorer-panel/column-explorer.tsx +5 -2
  141. package/src/components/data-table/column-formatting/feature.ts +62 -29
  142. package/src/components/data-table/column-formatting/types.ts +1 -0
  143. package/src/components/data-table/column-header.tsx +3 -1
  144. package/src/components/data-table/column-summary/chart-spec-model.tsx +24 -7
  145. package/src/components/data-table/column-summary/column-summary.tsx +18 -9
  146. package/src/components/data-table/columns.tsx +63 -20
  147. package/src/components/data-table/data-table.tsx +10 -2
  148. package/src/components/data-table/date-popover.tsx +85 -75
  149. package/src/components/data-table/filter-pills.tsx +14 -9
  150. package/src/components/data-table/header-items.tsx +5 -1
  151. package/src/components/data-table/pagination.tsx +20 -13
  152. package/src/components/data-table/renderers.tsx +36 -0
  153. package/src/components/data-table/row-viewer-panel/row-viewer.tsx +10 -8
  154. package/src/components/data-table/schemas.ts +16 -0
  155. package/src/components/datasources/column-preview.tsx +6 -2
  156. package/src/components/datasources/datasources.tsx +8 -12
  157. package/src/components/editor/Cell.tsx +2 -0
  158. package/src/components/editor/ai/transport/chat-transport.tsx +4 -1
  159. package/src/components/editor/cell/CellStatus.tsx +23 -20
  160. package/src/components/editor/cell/CreateCellButton.tsx +3 -4
  161. package/src/components/editor/cell/code/language-toggle.tsx +3 -4
  162. package/src/components/editor/chrome/wrapper/footer-items/machine-stats.tsx +39 -28
  163. package/src/components/editor/controls/notebook-menu-dropdown.tsx +4 -2
  164. package/src/components/editor/errors/sql-validation-errors.tsx +34 -0
  165. package/src/components/editor/file-tree/requesting-tree.tsx +14 -8
  166. package/src/components/editor/output/ConsoleOutput.tsx +13 -1
  167. package/src/components/editor/output/MarimoErrorOutput.tsx +60 -1
  168. package/src/components/editor/renderers/CellArray.tsx +3 -4
  169. package/src/components/editor/renderers/slides-layout/slides-layout.tsx +3 -3
  170. package/src/components/editor/renderers/slides-layout/types.ts +1 -0
  171. package/src/components/pages/home-page.tsx +4 -1
  172. package/src/components/slides/slides-component.tsx +1 -1
  173. package/src/components/slides/slides.css +6 -0
  174. package/src/components/terminal/theme.tsx +1 -0
  175. package/src/components/tracing/tracing-spec.ts +5 -4
  176. package/src/components/ui/range-slider.tsx +4 -2
  177. package/src/components/ui/slider.tsx +3 -1
  178. package/src/components/variables/variables-table.tsx +3 -0
  179. package/src/core/MarimoApp.tsx +9 -6
  180. package/src/core/ai/context/__tests__/registry.test.ts +6 -4
  181. package/src/core/ai/context/providers/cell-output.ts +4 -20
  182. package/src/core/ai/context/providers/error.ts +3 -1
  183. package/src/core/ai/context/providers/file.ts +7 -2
  184. package/src/core/ai/context/providers/tables.ts +3 -2
  185. package/src/core/ai/context/providers/variable.ts +6 -4
  186. package/src/core/ai/staged-cells.ts +34 -1
  187. package/src/core/cells/__tests__/add-missing-import.test.ts +67 -22
  188. package/src/core/cells/add-missing-import.ts +24 -7
  189. package/src/core/cells/cells.ts +26 -27
  190. package/src/core/cells/logs.ts +1 -1
  191. package/src/core/codemirror/find-replace/search-highlight.ts +3 -1
  192. package/src/core/codemirror/language/LanguageAdapters.ts +9 -3
  193. package/src/core/codemirror/language/__tests__/extension.test.ts +24 -0
  194. package/src/core/codemirror/language/__tests__/sql-validation.test.ts +133 -0
  195. package/src/core/codemirror/language/languages/sql/sql-mode.ts +20 -0
  196. package/src/core/codemirror/language/languages/sql/sql.ts +90 -3
  197. package/src/core/codemirror/language/languages/sql/validation-errors.ts +79 -0
  198. package/src/core/codemirror/language/panel/panel.tsx +8 -2
  199. package/src/core/codemirror/language/panel/sql.tsx +81 -4
  200. package/src/core/codemirror/lsp/notebook-lsp.ts +8 -2
  201. package/src/core/codemirror/readonly/__tests__/extension.test.ts +1 -1
  202. package/src/core/codemirror/rtc/loro/awareness.ts +52 -17
  203. package/src/core/codemirror/rtc/loro/sync.ts +12 -4
  204. package/src/core/config/config-schema.ts +1 -0
  205. package/src/core/config/config.ts +4 -0
  206. package/src/core/config/feature-flag.tsx +3 -1
  207. package/src/core/datasets/request-registry.ts +17 -1
  208. package/src/core/hotkeys/hotkeys.ts +8 -4
  209. package/src/core/i18n/__tests__/locale-provider.test.tsx +176 -0
  210. package/src/core/i18n/locale-provider.tsx +35 -0
  211. package/src/core/i18n/with-locale.tsx +12 -0
  212. package/src/core/islands/bridge.ts +1 -0
  213. package/src/core/islands/components/web-components.tsx +13 -10
  214. package/src/core/islands/main.ts +1 -0
  215. package/src/core/kernel/RuntimeState.ts +4 -1
  216. package/src/core/kernel/messages.ts +3 -2
  217. package/src/core/network/DeferredRequestRegistry.ts +16 -4
  218. package/src/core/network/requests-network.ts +7 -0
  219. package/src/core/network/requests-static.ts +1 -0
  220. package/src/core/network/requests-toasting.ts +1 -0
  221. package/src/core/network/types.ts +2 -0
  222. package/src/core/runtime/runtime.ts +5 -4
  223. package/src/core/wasm/bridge.ts +10 -1
  224. package/src/core/wasm/store.ts +4 -1
  225. package/src/core/wasm/worker/message-buffer.ts +3 -2
  226. package/src/core/websocket/types.ts +22 -16
  227. package/src/core/websocket/useMarimoWebSocket.tsx +4 -0
  228. package/src/hooks/useFormatting.ts +97 -0
  229. package/src/hooks/useTimer.ts +8 -5
  230. package/src/plugins/core/registerReactComponent.tsx +39 -29
  231. package/src/plugins/impl/DataTablePlugin.tsx +15 -4
  232. package/src/plugins/impl/RangeSliderPlugin.tsx +5 -3
  233. package/src/plugins/impl/SliderPlugin.tsx +3 -1
  234. package/src/plugins/impl/anywidget/model.ts +16 -5
  235. package/src/plugins/impl/data-editor/types.ts +7 -5
  236. package/src/plugins/impl/data-explorer/components/column-summary.tsx +20 -13
  237. package/src/plugins/impl/data-frames/DataFramePlugin.tsx +17 -5
  238. package/src/plugins/impl/panel/utils.ts +6 -4
  239. package/src/plugins/layout/OutlinePlugin.tsx +69 -0
  240. package/src/plugins/layout/StatPlugin.tsx +4 -1
  241. package/src/plugins/plugins.ts +2 -0
  242. package/src/stories/dataframe.stories.tsx +2 -0
  243. package/src/utils/__tests__/dates.test.ts +45 -24
  244. package/src/utils/__tests__/dom.test.ts +167 -0
  245. package/src/utils/__tests__/numbers.test.ts +42 -30
  246. package/src/utils/__tests__/once.test.ts +187 -0
  247. package/src/utils/dates.ts +15 -10
  248. package/src/utils/dom.ts +55 -0
  249. package/src/utils/edit-distance.ts +8 -6
  250. package/src/utils/errors.ts +1 -1
  251. package/src/utils/id-tree.tsx +21 -10
  252. package/src/utils/localStorage.ts +13 -4
  253. package/src/utils/numbers.ts +11 -11
  254. package/src/utils/once.ts +32 -0
  255. package/src/utils/paths.ts +4 -1
  256. package/src/utils/pluralize.ts +12 -5
  257. package/src/utils/python-poet/poet.ts +30 -15
  258. package/src/utils/time.ts +5 -1
  259. package/dist/assets/ConnectedDataExplorerComponent-BErMbWvG.js +0 -19
  260. package/dist/assets/_baseEach-CNBxBxvS.js +0 -1
  261. package/dist/assets/_baseMap-D1WHjKrd.js +0 -1
  262. package/dist/assets/channel-_2eNSz0n.js +0 -1
  263. package/dist/assets/chat-panel-CXh5Wl6C.js +0 -3
  264. package/dist/assets/classDiagram-KNZD7YFC-BGmh9POF.js +0 -1
  265. package/dist/assets/classDiagram-v2-RKCZMP56-BGmh9POF.js +0 -1
  266. package/dist/assets/clone-BFDSPAj3.js +0 -1
  267. package/dist/assets/command-palette-CXZiSv0I.js +0 -1
  268. package/dist/assets/datasources-panel-B7FbYLiy.js +0 -1
  269. package/dist/assets/edit-page-BrYda9VE.js +0 -129
  270. package/dist/assets/file-explorer-panel-Bw59Kva1.js +0 -1
  271. package/dist/assets/home-page-Fb2osjys.js +0 -9
  272. package/dist/assets/index-Cx0bsY1w.css +0 -1
  273. package/dist/assets/index-DKEudB02.js +0 -578
  274. package/dist/assets/infoDiagram-STP46IZ2-CVyrdLc8.js +0 -2
  275. package/dist/assets/links-D59GIweI.js +0 -7
  276. package/dist/assets/min-DUMu_zeK.js +0 -1
  277. package/dist/assets/outline-panel-DIzkvm2I.js +0 -1
  278. package/dist/assets/snippets-panel-CTPYW41n.js +0 -1
  279. package/dist/assets/sortBy-BNZKwiq_.js +0 -1
  280. package/dist/assets/stateDiagram-v2-UMBNRL4Z-D5lYZOOt.js +0 -1
  281. package/dist/assets/storage-CMdLzB_c.js +0 -26
  282. package/dist/assets/tracing-BCIurUfa.js +0 -2
  283. package/dist/assets/variable-panel-DYAiLBmF.js +0 -1
  284. package/dist/assets/worker-X5rxzQGQ.js +0 -1
@@ -1 +0,0 @@
1
- import{c as T,u as Ye,au as ae,K as Ze,co as Qe,r as D,b as fe,j as a,E as xe,ax as Y,ay as P,e4 as se,b1 as ue,a8 as ge,$ as Z,cK as Ge,eQ as Je,eR as et,eS as tt,eT as at,eU as st,bP as it,p as nt,eV as rt,eW as ot,eX as lt,b0 as je,cL as ct,eY as ie,a0 as O,e1 as dt,b7 as ht,as as ye,eZ as pt,e_ as mt,a as M,e$ as ft,L as xt,f0 as ut,d as gt,cl as be,X as ve,cI as z,a1 as jt,aX as V,f1 as yt,e2 as bt,S as vt,bv as kt,f2 as wt,T as ne,e3 as Ft,dX as Ct,dV as _t,aD as Nt,aE as St,f3 as Dt,ec as Pt,dY as Ot,dU as C,f4 as L,f5 as ke,f6 as Mt,f7 as zt,e5 as Rt,c2 as At,__tla as Wt}from"./index-DKEudB02.js";import{e as Q,o as It}from"./links-D59GIweI.js";import{m as Et}from"./icon-32x32-DHZerVul.js";import{h as qt,i as Bt,F as we,__tla as Ht}from"./edit-page-BrYda9VE.js";import{S as re,T as $t}from"./tree-jheoerAX.js";import{E as Tt}from"./ellipsis-vertical-BBqXIlc2.js";import{B as Vt}from"./between-horizontal-start-Boxgxbt_.js";import{__tla as Lt}from"./storage-CMdLzB_c.js";import"./index-CQDrxQ0j.js";import"./index-C77h_TXN.js";import"./index-D1vmG6DS.js";import"./index-lYa_leQE.js";import"./index-DRMm6SNo.js";import"./index-vmICa5KN.js";import"./index-BY93Ejhl.js";import"./index-C-GhZ7ti.js";import"./index-C-8WADat.js";import"./index-DoRmcrKM.js";import"./index-DEQvTChO.js";import"./index-CWMgowgL.js";import"./index-D9UKkrr2.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-BVgAenPd.js";import"./trash-Dc6DSjz_.js";import"./_createAggregator-DcD0kTA5.js";import"./_baseEach-CNBxBxvS.js";import{__tla as Ut}from"./loro_wasm_bg-C1ks32Vm.js";import"./index-C4Tn5NvJ.js";let Fe,Kt=Promise.all([(()=>{try{return Wt}catch{}})(),(()=>{try{return Ht}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"}]]),G=new Map,De=({file:t,onOpenNotebook:e})=>{const{theme:s}=Ye(),{sendFileDetails:r,sendUpdateFile:i}=ae(),o=Ze(Qe),[l,m]=D.useState(""),{data:n,isPending:u,error:f,setData:x}=fe(async()=>{const g=await r({path:t.path}),c=g.contents||"";return m(G.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=D.useRef(l);if(j.current=l,D.useEffect(()=>()=>{if(!(n!=null&&n.contents))return;const g=j.current;g===n.contents?G.delete(t.path):G.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 J;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&&!Y()&&a.jsx(P,{content:"Open notebook",children:a.jsx(Q,{size:"small",onClick:g=>e(g),children:a.jsx(se,{})})}),a.jsx(P,{content:"Download",children:a.jsx(Q,{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(Q,{size:"small",onClick:async()=>{await Z(l)},children:a.jsx(ge,{})})}),a.jsx(P,{content:Ge("global.save"),children:a.jsx(Q,{size:"small",color:l===n.contents?void 0:"green",onClick:d,disabled:l===n.contents,children:a.jsx(qt,{})})})]})]});return h.startsWith("image/")?a.jsxs(a.Fragment,{children:[b,a.jsx("div",{className:"flex-1 overflow-hidden flex flex-col",children:a.jsx(Je,{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:J[h]||J.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"),J={"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 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:Ae,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(Re).join(", "),")"]},t.file.name)}function Re(t){return t.message}function Ae(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=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: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,H,$,X;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(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?(H=Xe=>me(Xe,i.relativeFromRoot(n.path)),e[22]=n.path,e[23]=i,e[24]=H):H=e[24],e[25]!==n||e[26]!==H?($=a.jsx(D.Suspense,{children:a.jsx(De,{onOpenNotebook:H,file:n})}),e[25]=n,e[26]=H,e[27]=$):$=e[27],e[28]!==S||e[29]!==$?(X=a.jsxs(a.Fragment,{children:[S,$]}),e[28]=S,e[29]=$,e[30]=X):X=e[30],X}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,U,E,q,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")?(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]!==A||e[49]!==W||e[50]!==I||e[51]!==E||e[52]!==te?(q=a.jsx($t,{width:"100%",ref:r,height:te,className:"h-full",data:l,initialOpenState:x,openByDefault:!1,renderCursor:Le,disableDrop:Ue,onDelete:A,onRename:W,onMove:I,onSelect:U,onToggle:E,padding:15,rowHeight:30,indent:qe,overscanCount:1e3,disableMultiSelection:!0,children:Te}),e[46]=l,e[47]=x,e[48]=A,e[49]=W,e[50]=I,e[51]=E,e[52]=te,e[53]=q):q=e[53],e[54]!==q||e[55]!==i?(B=a.jsx(pe,{value:i,children:q}),e[54]=q,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},qe=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,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(P,{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(P,{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(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(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(P,{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},He=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&&!Y()&&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},$e=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,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]),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},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=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(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($e,{node:t}):a.jsx(He,{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&&!Y()&&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 Z(t.data.path),O({title:"Copied to clipboard"})},children:[a.jsx(le,{...c}),"Copy path"]}),d&&a.jsxs(C,{onSelect:async()=>{await Z(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 Z(v)},children:[a.jsx(Mt,{...c}),"Copy snippet for reading file"]}),t.data.isMarimoFile&&!Y()&&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}=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,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,au as V,cp as he,dR as E,dS as ue,bi as xe,dT as fe,W as Z,j as s,dU as pe,aS as W,dV as ge,aX as G,dW as ye,dX as be,dY as je,d as K,cL as ve,cF as ee,r as D,b as J,dZ as ke,d_ as we,d$ as te,dG as Ne,X as _e,e0 as ae,a1 as q,dF as Se,bJ as ze,cl as se,e1 as Ce,av as Me,e2 as Ie,e3 as De,T as Pe,aD as Te,aE as Oe,e4 as X,e5 as Re,e6 as We,a0 as Ae,ay as Fe,e7 as Le,e8 as $e,e9 as Ue,bN as Ve,ea as He,eb as Ye,ec as Be,ed as Ee,ee as re,aO as Ge}from"./index-DKEudB02.js";import{G as Je,A as qe,o as Xe,a as Qe,b as Ze,M as Ke,Y as et,L as tt,c as at,d as st,S as rt,P as ot}from"./links-D59GIweI.js";import{C as nt}from"./circle-play-DBLOv1Yu.js";import{T as it}from"./tree-jheoerAX.js";import"./index-C4Tn5NvJ.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 lt=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"}]]),ct=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"}]]),dt=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"}]]),mt=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"}]]),ht={intro:["Introduction",lt,"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",Z,"Format text with parameterized markdown"],plots:["Plots",fe,"Create interactive visualizations"],sql:["SQL",xe,"Query databases directly in marimo"],layout:["Layout",Je,"Customize the layout of your cells' output"],fileformat:["File format",ue,"Understand marimo's pure-Python file format"],"for-jupyter-users":["For Jupyter users",mt,"Transiting from Jupyter to marimo"],"markdown-format":["Markdown format",E,"Using marimo to edit markdown files"]},ut=()=>{const e=C.c(6),{openTutorial:t}=V();let a,o,r,i;return e[0]===Symbol.for("react.memo_cache_sentinel")?(a=s.jsx(dt,{className:"w-4 h-4 mr-2"}),e[0]=a):a=e[0],e[1]===Symbol.for("react.memo_cache_sentinel")?(o=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]=o):o=e[1],e[2]!==t?(r=he.entries(ht).map(n=>{const[c,m]=n,[h,d,u]=m;return s.jsxs(pe,{onSelect:async()=>{const l=await t({tutorialId:c});l&&Xe(l.path)},children:[s.jsx(d,{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:h}),s.jsx("span",{className:"text-xs text-muted-foreground pr-1",children:u})]})})]},c)}),e[2]=t,e[3]=r):r=e[3],e[4]!==r?(i=s.jsxs(be,{children:[o,s.jsx(je,{side:"bottom",align:"end",className:"no-print",children:r})]}),e[4]=r,e[5]=i):i=e[5],i},xt=[{title:"Documentation",description:"Official marimo documentation and API reference",icon:Qe,url:W.docsPage},{title:"GitHub",description:"View source code, report issues, or contribute",icon:Ze,url:W.githubPage},{title:"Community",description:"Join the marimo Discord community",icon:Ke,url:W.discordLink},{title:"YouTube",description:"Watch tutorials and demos",icon:et,url:W.youtube},{title:"Changelog",description:"See what's new in marimo",icon:Z,url:W.releasesPage}],ft=()=>{const e=C.c(2);let t,a;return e[0]===Symbol.for("react.memo_cache_sentinel")?(t=s.jsx(H,{Icon:tt,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:xt.map(pt)})]}),e[1]=a):a=e[1],a},H=e=>{const t=C.c(8),{Icon:a,control:o,children:r}=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]!==r||t[3]!==i?(n=s.jsxs("h2",{className:"flex items-center gap-2 text-xl font-semibold text-muted-foreground select-none",children:[i,r]}),t[2]=r,t[3]=i,t[4]=n):n=t[4],t[5]!==o||t[6]!==n?(c=s.jsxs("div",{className:"flex items-center justify-between gap-2",children:[n,o]}),t[5]=o,t[6]=n,t[7]=c):c=t[7],c};function pt(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 oe=K.createContext({runningNotebooks:new Map,setRunningNotebooks:ve.NOOP}),ne=K.createContext(""),gt=ee("marimo:home:include-markdown",!1,void 0,{getOnInit:!0}),ie=ee("marimo:home:expanded-folders",{},void 0,{getOnInit:!0});function le(e){return`${Ge()}-${encodeURIComponent(e)}`}const yt=()=>{const e=C.c(56),[t,a]=D.useState(0),{getRecentFiles:o,getRunningNotebooks:r}=V();let i,n;e[0]!==o?(i=()=>o(),e[0]=o,e[1]=i):i=e[1],e[2]===Symbol.for("react.memo_cache_sentinel")?(n=[],e[2]=n):n=e[2];const c=J(i,n);let m,h,d,u;e[3]===Symbol.for("react.memo_cache_sentinel")?(m=()=>{a(St)},h={delayMs:1e4,whenVisible:!0},e[3]=m,e[4]=h):(m=e[3],h=e[4]),at(m,h),e[5]!==r?(d=async()=>{const O=await r();return ae.keyBy(O.files,zt)},e[5]=r,e[6]=d):d=e[6],e[7]!==t?(u=[t],e[7]=t,e[8]=u):u=e[8];const l=J(d,u);let x,f,p,g,y,b,w,j,N,v,S,z,_,M,k,I,A,P,T,F;if(e[9]!==c||e[10]!==l){N=Symbol.for("react.early_return_sentinel");e:{const O=ke(c,l);if(O.error)throw O.error;const Q=O.data;if(!Q){let U;e[24]===Symbol.for("react.memo_cache_sentinel")?(U=s.jsx(q,{centered:!0,size:"xlarge"}),e[24]=U):U=e[24],N=U;break e}const[me,Y]=Q;let L,$;g=me,p=D.Suspense,f=oe,w={runningNotebooks:Y,setRunningNotebooks:l.setData},e[25]===Symbol.for("react.memo_cache_sentinel")?(L=s.jsx(ut,{}),$=s.jsx(st,{showAppConfig:!1}),e[25]=L,e[26]=$):(L=e[25],$=e[26]);const B=`This will shutdown the notebook server and terminate all running notebooks (${Y.size}). You'll lose all data that's in memory.`;e[27]!==B?(j=s.jsxs("div",{className:"absolute top-3 right-5 flex gap-3 z-50",children:[L,$,s.jsx(rt,{description:B})]}),e[27]=B,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.jsx("img",{src:"logo.png",alt:"marimo logo",className:"w-48 mb-2"}),y=s.jsx(_t,{}),b=s.jsx(ft,{}),e[29]=y,e[30]=b,e[31]=_):(y=e[29],b=e[30],_=e[31]),x=ce,e[32]===Symbol.for("react.memo_cache_sentinel")?(v=s.jsx(H,{Icon:nt,children:"Running notebooks"}),e[32]=v):v=e[32],S=[...Y.values()]}e[9]=c,e[10]=l,e[11]=x,e[12]=f,e[13]=p,e[14]=g,e[15]=y,e[16]=b,e[17]=w,e[18]=j,e[19]=N,e[20]=v,e[21]=S,e[22]=z,e[23]=_}else x=e[11],f=e[12],p=e[13],g=e[14],y=e[15],b=e[16],w=e[17],j=e[18],N=e[19],v=e[20],S=e[21],z=e[22],_=e[23];return N!==Symbol.for("react.early_return_sentinel")?N:(e[33]!==x||e[34]!==v||e[35]!==S?(M=s.jsx(x,{header:v,files:S}),e[33]=x,e[34]=v,e[35]=S,e[36]=M):M=e[36],e[37]===Symbol.for("react.memo_cache_sentinel")?(k=s.jsx(H,{Icon:Se,children:"Recent notebooks"}),e[37]=k):k=e[37],e[38]!==g.files?(I=s.jsx(ce,{header:k,files:g.files}),e[38]=g.files,e[39]=I):I=e[39],e[40]===Symbol.for("react.memo_cache_sentinel")?(A=s.jsx(ze,{children:s.jsx(bt,{})}),e[40]=A):A=e[40],e[41]!==y||e[42]!==b||e[43]!==M||e[44]!==I||e[45]!==z||e[46]!==_?(P=s.jsxs("div",{className:z,children:[_,y,b,M,I,A]}),e[41]=y,e[42]=b,e[43]=M,e[44]=I,e[45]=z,e[46]=_,e[47]=P):P=e[47],e[48]!==f||e[49]!==w||e[50]!==j||e[51]!==P?(T=s.jsxs(f,{value:w,children:[j,P]}),e[48]=f,e[49]=w,e[50]=j,e[51]=P,e[52]=T):T=e[52],e[53]!==p||e[54]!==T?(F=s.jsx(p,{children:T}),e[53]=p,e[54]=T,e[55]=F):F=e[55],F)},bt=()=>{const e=C.c(41),{getWorkspaceFiles:t}=V(),[a,o]=se(gt),[r,i]=D.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:h,error:d,isFetching:u,refetch:l}=J(n,c);if(m){let k;return e[5]===Symbol.for("react.memo_cache_sentinel")?(k=s.jsx(q,{centered:!0,size:"xlarge",className:"mt-6"}),e[5]=k):k=e[5],k}if(d){let k,I;return e[6]!==d?(k=Ce(d),e[6]=d,e[7]=k):k=e[7],e[8]!==k?(I=s.jsx($e,{kind:"danger",className:"rounded p-4",children:k}),e[8]=k,e[9]=I):I=e[9],I}let x,f,p,g,y,b,w,j,N,v,S,z,_,M;return e[10]===Symbol.for("react.memo_cache_sentinel")?(x=s.jsx(Ue,{size:13}),f=k=>i(k.target.value),e[10]=x,e[11]=f):(x=e[10],f=e[11]),e[12]!==r?(p=s.jsx(Ve,{id:"search",value:r,icon:x,onChange:f,placeholder:"Search",className:"mb-0 border-border"}),e[12]=r,e[13]=p):p=e[13],e[14]===Symbol.for("react.memo_cache_sentinel")?(g=s.jsx(jt,{}),e[14]=g):g=e[14],e[15]!==o?(y=k=>o(!!k),e[15]=o,e[16]=y):y=e[16],e[17]!==a||e[18]!==y?(b=s.jsx(He,{"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")?(w=s.jsx(Ye,{htmlFor:"include-markdown",children:"Include markdown"}),e[20]=w):w=e[20],e[21]!==p||e[22]!==b?(j=s.jsxs("div",{className:"flex items-center gap-2",children:[p,g,b,w]}),e[21]=p,e[22]=b,e[23]=j):j=e[23],e[24]!==l?(N=s.jsx(Be,{className:"w-4 h-4 ml-1 cursor-pointer opacity-70 hover:opacity-100",onClick:()=>l()}),e[24]=l,e[25]=N):N=e[25],e[26]!==u?(v=u&&s.jsx(q,{size:"small"}),e[26]=u,e[27]=v):v=e[27],e[28]!==N||e[29]!==v||e[30]!==j?(S=s.jsxs(H,{Icon:ct,control:j,children:["Workspace",N,v]}),e[28]=N,e[29]=v,e[30]=j,e[31]=S):S=e[31],e[32]!==r||e[33]!==h.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(vt,{searchText:r,files:h.files})}),e[32]=r,e[33]=h.files,e[34]=z):z=e[34],e[35]!==S||e[36]!==z?(_=s.jsxs("div",{className:"flex flex-col gap-2",children:[S,z]}),e[35]=S,e[36]=z,e[37]=_):_=e[37],e[38]!==_||e[39]!==h.root?(M=s.jsx(ne,{value:h.root,children:_}),e[38]=_,e[39]=h.root,e[40]=M):M=e[40],M},jt=()=>{const e=C.c(5),t=Me(ie);let a,o,r;return e[0]!==t?(a=()=>{t({})},e[0]=t,e[1]=a):a=e[1],e[2]===Symbol.for("react.memo_cache_sentinel")?(o=s.jsx(Ee,{className:"w-4 h-4 mr-1"}),e[2]=o):o=e[2],e[3]!==a?(r=s.jsxs(G,{variant:"text",size:"sm",className:"h-fit hidden sm:flex",onClick:a,children:[o,"Collapse all"]}),e[3]=a,e[4]=r):r=e[4],r},vt=e=>{const t=C.c(12),{files:a,searchText:o}=e,[r,i]=se(ie),n=Object.keys(r).length===0,c=D.useRef(void 0);let m,h,d,u;if(t[0]!==n?(m=()=>{var l;n&&((l=c.current)==null||l.closeAll())},h=[n],t[0]=n,t[1]=m,t[2]=h):(m=t[1],h=t[2]),D.useEffect(m,h),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]!==r||t[5]!==i?(d=async l=>{const x=r[l]??!1;i({...r,[l]:!x})},t[4]=r,t[5]=i,t[6]=d):d=t[6],t[7]!==a||t[8]!==r||t[9]!==o||t[10]!==d?(u=s.jsx(it,{ref:c,width:"100%",height:500,searchTerm:o,className:"h-full",idAccessor:Ct,data:a,openByDefault:!1,initialOpenState:r,onToggle:d,padding:5,rowHeight:35,indent:15,overscanCount:1e3,renderCursor:Mt,disableDrop:!0,disableDrag:!0,disableEdit:!0,disableMultiSelection:!0,children:kt}),t[7]=a,t[8]=r,t[9]=o,t[10]=d,t[11]=u):u=t[11],u},kt=e=>{const t=C.c(19),{node:a,style:o}=e,r=a.data.isDirectory?"directory":Ie(a.data.name),i=De[r];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=D.use(ne);let h;t[2]!==c||t[3]!==a.data.isDirectory||t[4]!==a.data.name||t[5]!==a.data.path||t[6]!==m?(h=()=>{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 g=a.data.path.startsWith(m)&&re.isAbsolute(a.data.path)?re.rest(a.data.path,m):a.data.path,y=g.endsWith(".md")||g.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=${g}`).toString(),target:le(g),children:[c,s.jsxs("span",{className:"flex-1 overflow-hidden text-ellipsis",children:[a.data.name,y&&s.jsx(E,{className:"ml-2 inline opacity-80"})]}),s.jsx(de,{filePath:g}),s.jsx(X,{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]=h):h=t[7];const d=h;let u,l,x,f,p;return t[8]===Symbol.for("react.memo_cache_sentinel")?(u=Pe("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=g=>{g.stopPropagation(),a.data.isDirectory&&a.toggle()},x=s.jsx(wt,{node:a}),t[9]=a,t[10]=l,t[11]=x):(l=t[10],x=t[11]),t[12]!==d?(f=d(),t[12]=d,t[13]=f):f=t[13],t[14]!==o||t[15]!==l||t[16]!==x||t[17]!==f?(p=s.jsxs("div",{style:o,className:u,onClick:l,children:[x,f]}),t[14]=o,t[15]=l,t[16]=x,t[17]=f,t[18]=p):p=t[18],p},wt=e=>{const t=C.c(3),{node:a}=e;if(!a.data.isDirectory){let r;return t[0]===Symbol.for("react.memo_cache_sentinel")?(r=s.jsx("span",{className:"w-5 h-5 shrink-0"}),t[0]=r):r=t[0],r}let o;return t[1]!==a.isOpen?(o=a.isOpen?s.jsx(Te,{className:"w-5 h-5 shrink-0"}):s.jsx(Oe,{className:"w-5 h-5 shrink-0"}),t[1]=a.isOpen,t[2]=o):o=t[2],o},ce=e=>{const t=C.c(7),{header:a,files:o}=e;if(o.length===0)return null;let r,i,n;return t[0]!==o?(r=o.map(It),t[0]=o,t[1]=r):r=t[1],t[2]!==r?(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:r}),t[2]=r,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},Nt=e=>{const t=C.c(40),{file:a}=e;let o;t[0]!==a.path?(o=we(a.path),t[0]=a.path,t[1]=o):o=t[1];const r=o;let i,n,c,m;if(t[2]!==a.initializationId||t[3]!==a.path||t[4]!==r){const N=te(r?`?file=${a.initializationId}&session_id=${a.path}`:`?file=${a.path}`);let v;t[9]!==a.path?(v=a.path.endsWith(".md"),t[9]=a.path,t[10]=v):v=t[10],i=v,n="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",c=a.path,m=N.toString(),t[2]=a.initializationId,t[3]=a.path,t[4]=r,t[5]=i,t[6]=n,t[7]=c,t[8]=m}else i=t[5],n=t[6],c=t[7],m=t[8];const h=a.initializationId||a.path;let d,u,l,x,f,p,g,y,b,w,j;return t[11]!==h?(d=le(h),t[11]=h,t[12]=d):d=t[12],t[13]!==i?(u=i&&s.jsx("span",{className:"opacity-80",children:s.jsx(E,{})}),t[13]=i,t[14]=u):u=t[14],t[15]!==a.name||t[16]!==u?(l=s.jsxs("span",{className:"flex items-center gap-2",children:[a.name,u]}),t[15]=a.name,t[16]=u,t[17]=l):l=t[17],t[18]!==a.path?(x=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]=x):x=t[19],t[20]!==l||t[21]!==x?(f=s.jsxs("div",{className:"flex flex-col justify-between flex-1",children:[l,x]}),t[20]=l,t[21]=x,t[22]=f):f=t[22],t[23]!==a.path?(p=s.jsx("div",{children:s.jsx(de,{filePath:a.path})}),t[23]=a.path,t[24]=p):p=t[24],t[25]===Symbol.for("react.memo_cache_sentinel")?(g=s.jsx(X,{size:20,className:"group-hover:opacity-100 opacity-0 transition-all duration-300 text-primary"}),t[25]=g):g=t[25],t[26]!==p?(y=s.jsxs("div",{className:"flex gap-3 items-center",children:[p,g]}),t[26]=p,t[27]=y):y=t[27],t[28]!==a.lastModified?(b=!!a.lastModified&&s.jsx("div",{className:"text-xs text-muted-foreground opacity-80",children:Ne(1e3*a.lastModified)}),t[28]=a.lastModified,t[29]=b):b=t[29],t[30]!==y||t[31]!==b?(w=s.jsxs("div",{className:"flex flex-col gap-1 items-end",children:[y,b]}),t[30]=y,t[31]=b,t[32]=w):w=t[32],t[33]!==f||t[34]!==w||t[35]!==n||t[36]!==c||t[37]!==m||t[38]!==d?(j=s.jsxs("a",{className:n,href:m,target:d,children:[f,w]},c),t[33]=f,t[34]=w,t[35]=n,t[36]=c,t[37]=m,t[38]=d,t[39]=j):j=t[39],j},de=e=>{const t=C.c(10),{filePath:a}=e,{openConfirm:o,closeModal:r}=_e(),{shutdownSession:i}=V(),{runningNotebooks:n,setRunningNotebooks:c}=D.use(oe);if(!n.has(a))return null;let m,h,d;return t[0]!==r||t[1]!==a||t[2]!==o||t[3]!==n||t[4]!==c||t[5]!==i?(m=u=>{u.stopPropagation(),u.preventDefault(),o({title:"Shutdown",description:"This will terminate the Python kernel. You'll lose all data that's in memory.",variant:"destructive",confirmAction:s.jsx(Re,{onClick:()=>{const l=n.get(a);We(l==null?void 0:l.sessionId),i({sessionId:l.sessionId}).then(x=>{c(ae.keyBy(x.files,Dt))}),r(),Ae({description:"Notebook has been shutdown."})},"aria-label":"Confirm Shutdown",children:"Shutdown"})})},t[0]=r,t[1]=a,t[2]=o,t[3]=n,t[4]=c,t[5]=i,t[6]=m):m=t[6],t[7]===Symbol.for("react.memo_cache_sentinel")?(h=s.jsx(ot,{size:14}),t[7]=h):h=t[7],t[8]!==m?(d=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:h})}),t[8]=m,t[9]=d):d=t[9],d},_t=()=>{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 o,r;return e[1]===Symbol.for("react.memo_cache_sentinel")?(o=s.jsx("h2",{className:"text-lg font-semibold",children:"Create a new notebook"}),e[1]=o):o=e[1],e[2]===Symbol.for("react.memo_cache_sentinel")?(r=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:[o,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(X,{size:24})})]}),e[2]=r):r=e[2],r};function St(e){return e+1}function zt(e){return e.path}function Ct(e){return e.path}function Mt(){return null}function It(e){return s.jsx(Nt,{file:e},e.path)}function Dt(e){return e.path}export{yt as default};