@marimo-team/frontend 0.23.16-dev51 → 0.23.16-dev52
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{CellStatus-DciB5rbr.js → CellStatus-BT88_2jw.js} +1 -1
- package/dist/assets/{JsonOutput-BM3vve9F.js → JsonOutput-0XYUxjxO.js} +12 -12
- package/dist/assets/{MarimoErrorOutput-Bh0y53Du.js → MarimoErrorOutput-DuwnzR5D.js} +4 -4
- package/dist/assets/{RenderHTML-B9jx7Dsm.js → RenderHTML-BPdXbewN.js} +1 -1
- package/dist/assets/{RunButton-DMtHbFuA.js → RunButton-DJyvIhMO.js} +1 -1
- package/dist/assets/{add-cell-with-ai-BcRYriMM.js → add-cell-with-ai-Dspw1-mO.js} +12 -12
- package/dist/assets/add-connection-dialog-B1fFBVqJ.js +178 -0
- package/dist/assets/{agent-panel-B31W_VwU.js → agent-panel-iPdDqSEd.js} +4 -4
- package/dist/assets/{ai-model-dropdown-B3D05oQh.js → ai-model-dropdown-BC1SNLKb.js} +3 -3
- package/dist/assets/{app-config-button-D_mjovwU.js → app-config-button-CuE-bLFn.js} +1 -1
- package/dist/assets/{blob-BJREJiQp.js → blob-C23KHI9W.js} +1 -1
- package/dist/assets/{cell-editor-BOhZHoLm.js → cell-editor-D8UAfiUa.js} +11 -11
- package/dist/assets/cell-link-Bu5k33_H.js +1 -0
- package/dist/assets/{cells-Jr-5Pc9f.js → cells-C3V6s-g5.js} +53 -53
- package/dist/assets/{chat-display-Djy1Jt6b.js → chat-display-DSMFTDiK.js} +1 -1
- package/dist/assets/{chat-panel-B2nYSE_l.js → chat-panel-DuGaXa17.js} +4 -4
- package/dist/assets/{chat-ui-DlG0En7w.js → chat-ui-TD66NC03.js} +4 -4
- package/dist/assets/{column-preview-BUHlI5va.js → column-preview-Dqt5ygdi.js} +1 -1
- package/dist/assets/{command-palette-rEJmXCZM.js → command-palette-DgyUILpb.js} +1 -1
- package/dist/assets/{common-CZc3fQI4.js → common-CIJsW5yR.js} +1 -1
- package/dist/assets/{components-GAYCj6Mx.js → components-CniQJAsf.js} +1 -1
- package/dist/assets/{datasource-AWkkAeiS.js → datasource-YLl5kKpx.js} +2 -2
- package/dist/assets/{dependency-graph-panel-wcqTPq6b.js → dependency-graph-panel-MPHqARlX.js} +4 -4
- package/dist/assets/{documentation-panel-Eu8MIkoU.js → documentation-panel-DZnNktBv.js} +1 -1
- package/dist/assets/{download-CQ7iZFJL.js → download-CSWknseP.js} +2 -2
- package/dist/assets/{edit-page-Cw7nN6HC.js → edit-page-DVXg8Ibp.js} +6 -6
- package/dist/assets/error-entries-DIjVQBFa.js +8 -0
- package/dist/assets/{error-panel-BZzr0PA1.js → error-panel-CJSBDHOq.js} +1 -1
- package/dist/assets/{file-explorer-panel-C1W7g_Wp.js → file-explorer-panel-sHVZyshk.js} +4 -4
- package/dist/assets/{file-icons-BAqZR08W.js → file-icons-DDUQU--N.js} +1 -1
- package/dist/assets/{file-name-input-0MiZVw5r.js → file-name-input-CQjQP_zG.js} +1 -1
- package/dist/assets/{floating-outline-C6g75zrP.js → floating-outline-D1iQUiR_.js} +1 -1
- package/dist/assets/{focus-C0HXXg3V.js → focus-D_UTw9HF.js} +1 -1
- package/dist/assets/{form-C051zAev.js → form-B6jUSJBp.js} +1 -1
- package/dist/assets/{form-DT44Rmhp.js → form-Bp7lk3pm.js} +1 -1
- package/dist/assets/{home-page-CJz9IHZ2.js → home-page-CX6IV-hM.js} +2 -2
- package/dist/assets/{html-to-image-CfjhKLA4.js → html-to-image-kpOREGyr.js} +2 -2
- package/dist/assets/index-8Nlyq3mV.css +2 -0
- package/dist/assets/{index-CrEgp1mR.js → index-CrJhpWGp.js} +6 -6
- package/dist/assets/{layout-D4bpsgVD.js → layout-DdPE4xZU.js} +5 -5
- package/dist/assets/{logs-panel-CsaY3O1m.js → logs-panel-DnNiJzUQ.js} +1 -1
- package/dist/assets/{markdown-renderer-BgqeO4JR.js → markdown-renderer-CqljiwGm.js} +2 -2
- package/dist/assets/{name-cell-input-DcU8Rfrz.js → name-cell-input-BQzQI3Ja.js} +1 -1
- package/dist/assets/{outline-panel-D-CHPZQM.js → outline-panel-BIgVnAC7.js} +1 -1
- package/dist/assets/{packages-panel-dq7QVZl1.js → packages-panel-_HiSQVV7.js} +1 -1
- package/dist/assets/panels-b-OL36p2.js +4 -0
- package/dist/assets/{process-output-NbwnUu05.js → process-output-CJkR5qgD.js} +1 -1
- package/dist/assets/{radio-group-rhQpGwU-.js → radio-group-Dm-ZV-tP.js} +1 -1
- package/dist/assets/readonly-code-display-BiNt9i32.js +1 -0
- package/dist/assets/{readonly-python-code-Q_1Y3VyZ.js → readonly-python-code-DMKb3G0K.js} +1 -1
- package/dist/assets/{reveal-component-CedpDwM8.js → reveal-component-DN6-mIsb.js} +2 -2
- package/dist/assets/{run-page-CGoux5cj.js → run-page-BKCqJ0uJ.js} +1 -1
- package/dist/assets/scratchpad-panel-DwZEAfW1.js +1 -0
- package/dist/assets/{session-panel-OIot3eyB.js → session-panel-B-9BnZxS.js} +1 -1
- package/dist/assets/{skeleton-BRvjFlRu.js → skeleton-B72xXZAF.js} +1 -1
- package/dist/assets/{snippets-panel-YFyH2hUM.js → snippets-panel-Brc_pmTk.js} +1 -1
- package/dist/assets/{state-bHyw5u3R.js → state-BTAocii6.js} +1 -1
- package/dist/assets/state-D9oG57zx.js +3 -0
- package/dist/assets/{tracing-CDMM1BB2.js → tracing-Cn9cTT65.js} +1 -1
- package/dist/assets/{tracing-panel-BH5Zbvl9.js → tracing-panel-FWoe3_eY.js} +2 -2
- package/dist/assets/{tree-actions-DDveUIHK.js → tree-actions-rPl1v1gM.js} +1 -1
- package/dist/assets/useCellActionButton-Du3JXpNf.js +1 -0
- package/dist/assets/{useDeleteCell-BIopCngo.js → useDeleteCell-DHOwR-CG.js} +1 -1
- package/dist/assets/{useDependencyPanelTab-snM337f9.js → useDependencyPanelTab-B2PCtSi6.js} +1 -1
- package/dist/assets/{useNotebookActions-CsZfWFKy.js → useNotebookActions-DfQAtofT.js} +4 -4
- package/dist/assets/useRunCells-Dg11M4pT.js +1 -0
- package/dist/assets/{useSplitCell-BTmKY1CU.js → useSplitCell-BwWVHida.js} +1 -1
- package/dist/index.html +24 -24
- package/package.json +1 -1
- package/src/__mocks__/requests.ts +1 -0
- package/src/components/editor/connections/__tests__/quick-add-data-sources.test.tsx +113 -0
- package/src/components/editor/connections/add-connection-dialog.tsx +2 -0
- package/src/components/editor/connections/quick-add-data-sources.tsx +106 -0
- package/src/core/datasets/data-source-discovery.ts +5 -0
- package/src/core/datasets/request-registry.ts +11 -0
- package/src/core/islands/bootstrap.ts +1 -0
- package/src/core/islands/bridge.ts +1 -0
- package/src/core/kernel/messages.ts +2 -0
- package/src/core/network/__tests__/requests-lazy.test.ts +15 -0
- package/src/core/network/__tests__/requests-network.test.ts +14 -0
- package/src/core/network/requests-lazy.ts +1 -0
- package/src/core/network/requests-network.ts +8 -0
- package/src/core/network/requests-static.ts +1 -0
- package/src/core/network/requests-toasting.tsx +1 -0
- package/src/core/network/types.ts +2 -0
- package/src/core/wasm/bridge.ts +10 -0
- package/src/core/websocket/useMarimoKernelConnection.tsx +4 -0
- package/src/hooks/__tests__/useDataSourceDiscovery.test.ts +80 -0
- package/src/hooks/useDataSourceDiscovery.ts +18 -0
- package/dist/assets/add-connection-dialog-syjRSNPT.js +0 -178
- package/dist/assets/cell-link-DqNEv3f9.js +0 -1
- package/dist/assets/error-entries-Cr8uVukN.js +0 -8
- package/dist/assets/index-D6Dp_PFj.css +0 -2
- package/dist/assets/panels-DWoniKhE.js +0 -4
- package/dist/assets/readonly-code-display-CVY2f7EZ.js +0 -1
- package/dist/assets/scratchpad-panel-BLuF25yR.js +0 -1
- package/dist/assets/state-DB_fxbhn.js +0 -3
- package/dist/assets/useCellActionButton-D5ix_g2a.js +0 -1
- package/dist/assets/useRunCells-CF_V8X2K.js +0 -1
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import{_i as b,kt as k,rt as s,vi as h,y as g,yi as u}from"./cells-C3V6s-g5.js";import{i as D}from"./strings--BknHX9C.js";function H(t){if(h(t.mimetype)){if(!Array.isArray(t.data))return null;let r=t.data.filter(e=>!e.type.includes("ancestor"));return r.length===0?null:{errorData:r}}return u(t.mimetype)?typeof t.data!="string"||t.data.length===0?null:{errorData:[],tracebackHtml:t.data}:null}function T(t){return t.some(r=>"traceback"in r&&r.traceback)}function v(t){let r=t==null?void 0:t.find(e=>u(e.mimetype));if(!(!r||typeof r.data!="string"||r.data.length===0))return r.data}function w(t,r){if(t.tracebackHtml)return t.tracebackHtml;if(!T(t.errorData))return v(r)}function x(t){let{cellIds:r,cellRuntime:e,cellData:n}=t.get(g),i=[];for(let[f,a]of r.inOrderIds.entries()){let o=e[a],c=o.output;if(!c||!b(c.mimetype))continue;let l=H(c);if(!l)continue;let d=k(n[a].name,f),y=n[a].lastCodeRun??n[a].code;i.push({cellId:a,cellName:d,cellCode:y,errorData:l.errorData,tracebackHtml:w(l,o.consoleOutputs)})}return i}function p(t){return t.type==="setup-refs"?"The setup cell cannot have references":t.type==="cycle"?"This cell is in a cycle":t.type==="multiple-defs"?`The variable '${t.name}' was defined by another cell`:t.type==="import-star"||t.type==="ancestor-stopped"||t.type==="ancestor-prevented"||t.type==="exception"||t.type==="strict-exception"?t.msg:t.type==="interruption"?"This cell was interrupted and needs to be re-run":t.type==="syntax"||t.type==="unknown"||t.type==="sql-error"?t.msg:t.type==="internal"?t.msg||"An internal error occurred":(D(t),"Unknown error")}function m(t){let r=p(t);return"traceback"in t&&t.traceback&&(r+=`
|
|
2
|
+
|
|
3
|
+
Traceback:
|
|
4
|
+
${s(t.traceback)}`),r}function A(t){let r=[t.cellName];return t.tracebackHtml&&r.push(s(t.tracebackHtml)),t.errorData.length>0&&r.push(t.errorData.map(m).join(`
|
|
5
|
+
|
|
6
|
+
`)),r.join(`
|
|
7
|
+
|
|
8
|
+
`)}export{x as i,A as n,m as r,p as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as i}from"./chunk-LvLJmgfZ.js";import"./useEvent-D91BmmQi.js";import{t as l}from"./react-Bj1aDYRI.js";import{k as a}from"./cells-
|
|
1
|
+
import{s as i}from"./chunk-LvLJmgfZ.js";import"./useEvent-D91BmmQi.js";import{t as l}from"./react-Bj1aDYRI.js";import{k as a}from"./cells-C3V6s-g5.js";import"./react-dom-CSu739Rf.js";import{t as s}from"./compiler-runtime-B3qBwwSJ.js";import{t as c}from"./jsx-runtime-Blw4afVn.js";import"./fullscreen-CTDqNQr6.js";import"./dist-12S8I4CH.js";import"./cjs-D5tzp-Y6.js";import"./main-BNL5rxQw.js";import"./useNonce-CbdaHKzX.js";import{t as d}from"./createLucideIcon-w-Qo9n0R.js";import{t as h}from"./MarimoErrorOutput-DuwnzR5D.js";import"./dist-DcwTQG1A.js";import"./dist-DnjsPBRJ.js";import"./dist-BJZAIIze.js";import"./dist-aRc_dRed.js";import"./dist-CPjTeT8p.js";import"./session-BmukRjSi.js";import"./purify.es-CWmnYhGI.js";import{n as f}from"./cell-link-Bu5k33_H.js";import{t as n}from"./empty-state-yX2_pzkH.js";var x=d("party-popper",[["path",{d:"M5.8 11.3 2 22l10.7-3.79",key:"gwxi1d"}],["path",{d:"M4 3h.01",key:"1vcuye"}],["path",{d:"M22 8h.01",key:"1mrtc2"}],["path",{d:"M15 2h.01",key:"1cjtqr"}],["path",{d:"M22 20h.01",key:"1mrys2"}],["path",{d:"m22 2-2.24.75a2.9 2.9 0 0 0-1.96 3.12c.1.86-.57 1.63-1.45 1.63h-.38c-.86 0-1.6.6-1.76 1.44L14 10",key:"hbicv8"}],["path",{d:"m22 13-.82-.33c-.86-.34-1.82.2-1.98 1.11c-.11.7-.72 1.22-1.43 1.22H17",key:"1i94pl"}],["path",{d:"m11 2 .33.82c.34.86-.2 1.82-1.11 1.98C9.52 4.9 9 5.52 9 6.23V7",key:"1cofks"}],["path",{d:"M11 13c1.93 1.93 2.83 4.17 2 5-.83.83-3.07-.07-5-2-1.93-1.93-2.83-4.17-2-5 .83-.83 3.07.07 5 2Z",key:"4kbmks"}]]),y=s();l();var r=i(c(),1),k=()=>{let t=(0,y.c)(5),m=a();if(m.length===0){let p;return t[0]===Symbol.for("react.memo_cache_sentinel")?(p=(0,r.jsx)(n,{title:"No errors!",icon:(0,r.jsx)(x,{})}),t[0]=p):p=t[0],p}let o;t[1]===m?o=t[2]:(o=m.map(u),t[1]=m,t[2]=o);let e;return t[3]===o?e=t[4]:(e=(0,r.jsx)("div",{className:"flex flex-col h-full overflow-auto",children:o}),t[3]=o,t[4]=e),e};function u(t){return(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-xs font-mono font-semibold bg-muted border-y px-2 py-1",children:(0,r.jsx)(f,{cellId:t.cellId})}),(0,r.jsx)("div",{className:"px-2",children:(0,r.jsx)(h,{errors:t.output.data,cellId:t.cellId},t.cellId)},t.cellId)]},t.cellId)}export{k as default};
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import{s as Je}from"./chunk-LvLJmgfZ.js";import{i as Et,l as _e,n as ae,p as Ye,u as ge}from"./useEvent-D91BmmQi.js";import{t as At}from"./react-Bj1aDYRI.js";import{
|
|
1
|
+
import{s as Je}from"./chunk-LvLJmgfZ.js";import{i as Et,l as _e,n as ae,p as Ye,u as ge}from"./useEvent-D91BmmQi.js";import{t as At}from"./react-Bj1aDYRI.js";import{Bn as Xe,E as Ht,Gi as Ze,Vi as qt,jr as Ut}from"./cells-C3V6s-g5.js";import"./react-dom-CSu739Rf.js";import{t as oe}from"./compiler-runtime-B3qBwwSJ.js";import{g as De}from"./useEventListener-C0195JsF.js";import{t as Wt}from"./invariant-CkiqGLcK.js";import{g as Kt,p as Qe}from"./utils-BWBBpCkT.js";import{M as je,r as Gt}from"./config-B-Q7J_6d.js";import{t as le}from"./cn-DYvqRARy.js";import{t as Jt}from"./jsx-runtime-Blw4afVn.js";import"./fullscreen-CTDqNQr6.js";import{r as Yt}from"./config-BJVx3eBW.js";import{o as Xt}from"./alert-dialog-Bb8Lz8ko.js";import"./popover-Bcz1Zikb.js";import{a as X,c as ue,p as Zt,r as Qt,t as ea}from"./dropdown-menu-dHmZR8bI.js";import{It as Fe,a as ta,h as aa,i as et,o as ra,s as tt}from"./JsonOutput-0XYUxjxO.js";import{i as Te,l as na,r as at}from"./download-CSWknseP.js";import{r as rt}from"./radio-group-Dm-ZV-tP.js";import{t as Z}from"./tooltip-4bZlU7jl.js";import{n as sa,t as H}from"./button-DDGiD1NW.js";import{Tt as oa}from"./dist-12S8I4CH.js";import"./cjs-D5tzp-Y6.js";import"./main-BNL5rxQw.js";import"./useNonce-CbdaHKzX.js";import{n as la,r as ze,t as ia}from"./requests-9-v2bhoi.js";import{t as ne}from"./createLucideIcon-w-Qo9n0R.js";import{a as ca,i as nt,l as st,n as Me,o as ye,r as da,s as Oe,t as ma}from"./state-DDag0B_B.js";import{n as pa}from"./LazyAnyLanguageCodeMirror-DPOEues4.js";import{t as ha}from"./x-C-Eq0ag8.js";import{a as xa,i as Le,n as fa,r as ot,t as be}from"./tree-actions-rPl1v1gM.js";import{a as ua}from"./markdown-renderer-CqljiwGm.js";import{u as ya}from"./toDate-Ct2FT81-.js";import{t as lt}from"./copy-3iHFdt22.js";import{t as $e}from"./external-link-BOlXZUla.js";import{a as ga,i as it,n as ct,r as ja,t as ba}from"./file-icons-DDUQU--N.js";import{t as dt}from"./file-CJH9JNGH.js";import{i as mt,r as va,t as pt}from"./add-connection-dialog-B1fFBVqJ.js";import{n as ve,t as wa}from"./spinner-D-V4psAa.js";import{a as Na,c as ka,d as Sa,f as Ca,i as _a,l as Fa,n as Ma,r as Pa,t as Da,u as Ta}from"./file-name-input-CQjQP_zG.js";import{t as ht}from"./plus-AgXtozBz.js";import{t as xt}from"./refresh-cw-CYq4mK5a.js";import{t as za}from"./save-DBuEmnnF.js";import{t as Oa}from"./triangle-alert-BL4YVsPy.js";import{n as La,t as $a}from"./es-gYgfF8y5.js";import"./dist-DcwTQG1A.js";import"./dist-DnjsPBRJ.js";import"./dist-BJZAIIze.js";import"./dist-aRc_dRed.js";import"./dist-CPjTeT8p.js";import{t as re}from"./use-toast-BwJoaaDM.js";import{t as Ba}from"./paths-BKO-pHK6.js";import"./session-BmukRjSi.js";import"./purify.es-CWmnYhGI.js";import"./dates-C2LWzsCZ.js";import{n as we}from"./copy-Bxb1_Gtw.js";import{t as Va}from"./copy-icon-neDQUo4Q.js";import{t as Be}from"./context-BFPaAUK_.js";import{n as ft}from"./ImperativeModal-fY-ZfT0b.js";import{t as Ra}from"./blob-C23KHI9W.js";import"./tooltip-B7U4xkIN.js";import"./vega-loader.browser-Dun7Qe4B.js";import"./defaultLocale-DOVIEEPN.js";import"./defaultLocale-BUCH2FMc.js";import{n as Ia,t as Ea}from"./alert-jlwhGxSb.js";import{n as ut}from"./error-banner-BSxEOIn2.js";import"./chunk-5FQGJX7Z-BEbM01OT.js";import"./html-to-image-kpOREGyr.js";import{o as Aa}from"./focus-D_UTw9HF.js";import{n as Ve}from"./useAsyncData-Bg5iAViP.js";import"./react-resizable-panels.browser.esm-Z-MD3n3J.js";import{a as Ha,f as qa,o as yt,t as Ua}from"./command-Dqxie4gq.js";import{a as Wa}from"./renderShortcut-Bl8_FVn8.js";import{t as Ka}from"./bundle.esm-D0TWQ6iT.js";import{n as Ga}from"./pathUtils-BbJtW9Mp.js";import{n as Ja}from"./semaphore-YOr3WMiw.js";import{t as Ya}from"./empty-state-yX2_pzkH.js";import{t as Pe}from"./formatting-DQX9QUSf.js";import{a as Xa,i as Za,n as gt,r as jt,t as bt}from"./components-CniQJAsf.js";import{n as vt,t as Qa}from"./marimo-icons-Bq_N9GGs.js";import{t as er}from"./links-CiT7FeSM.js";var tr=ne("book-plus",[["path",{d:"M12 7v6",key:"lw1j43"}],["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:"M9 10h6",key:"9gxzsh"}]]),ar=ne("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"}]]),wt=ne("file-plus-corner",[["path",{d:"M11.35 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v5.35",key:"17jvcc"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M14 19h6",key:"bvotb8"}],["path",{d:"M17 16v6",key:"18yu1i"}]]),rr=ne("file-symlink",[["path",{d:"M4 11V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h7",key:"huwfnr"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"m10 18 3-3-3-3",key:"18f6ys"}]]),Nt=ne("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"}]]),kt=ne("list-tree",[["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"M3 10a2 2 0 0 0 2 2h3",key:"1npucw"}],["path",{d:"M3 5v12a2 2 0 0 0 2 2h3",key:"x1gjn2"}]]),nr=ne("square-play",[["rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",key:"h1oib"}],["path",{d:"M9 9.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997A1 1 0 0 1 9 14.996z",key:"kmsa83"}]]),St=ne("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"}]]),L=Je(At(),1),sr=oe(),a=Je(Jt(),1);const Ct=t=>{let e=(0,sr.c)(17),{filename:r,filenameIcon:o,onBack:i,onRefresh:n,onDownload:m,actions:l}=t,c;e[0]===i?c=e[1]:(c=i&&(0,a.jsx)(Z,{content:"Back to file list",children:(0,a.jsx)(H,{variant:"text",size:"xs",onClick:i,children:(0,a.jsx)(st,{className:"h-4 w-4"})})}),e[0]=i,e[1]=c);let s;e[2]!==r||e[3]!==o?(s=r?(0,a.jsxs)("span",{className:"flex items-center gap-1.5 flex-1 min-w-0 text-xs font-semibold truncate",children:[o,r]}):(0,a.jsx)("span",{className:"flex-1"}),e[2]=r,e[3]=o,e[4]=s):s=e[4];let f;e[5]===n?f=e[6]:(f=n&&(0,a.jsx)(Z,{content:"Refresh",children:(0,a.jsx)(H,{variant:"text",size:"xs",onClick:n,children:(0,a.jsx)(xt,{className:"h-3.5 w-3.5"})})}),e[5]=n,e[6]=f);let p;e[7]===m?p=e[8]:(p=m&&(0,a.jsx)(Z,{content:"Download",children:(0,a.jsx)(H,{variant:"text",size:"xs",onClick:m,children:(0,a.jsx)(Fe,{className:"h-3.5 w-3.5"})})}),e[7]=m,e[8]=p);let x;e[9]!==l||e[10]!==f||e[11]!==p?(x=(0,a.jsxs)("div",{className:"flex items-center gap-0.5 shrink-0",children:[f,l,p]}),e[9]=l,e[10]=f,e[11]=p,e[12]=x):x=e[12];let u;return e[13]!==c||e[14]!==s||e[15]!==x?(u=(0,a.jsxs)("div",{className:"flex items-center shrink-0 border-b px-1 gap-1",children:[c,s,x]}),e[13]=c,e[14]=s,e[15]=x,e[16]=u):u=e[16],u};var or=new Set(["http","file","in-memory"]);function Re(t){return JSON.stringify(t).slice(1,-1)}const _t=[{id:"read-file",label:"Insert read snippet",icon:tr,getCode:t=>{if(t.entry.kind==="directory")return null;let e=Re(t.entry.path);return t.backendType==="obstore"?`_data = ${t.variableName}.get("${e}").bytes()
|
|
2
2
|
_data`:`_data = ${t.variableName}.cat_file("${e}")
|
|
3
|
-
_data`}},{id:"download-file",label:"Insert download snippet",icon:rr,getCode:t=>{if(t.entry.kind==="directory")return null;let e=
|
|
3
|
+
_data`}},{id:"download-file",label:"Insert download snippet",icon:rr,getCode:t=>{if(t.entry.kind==="directory")return null;let e=Re(t.entry.path);if(t.backendType==="obstore")return or.has(t.protocol)?null:`from datetime import timedelta
|
|
4
4
|
from obstore import sign
|
|
5
5
|
|
|
6
6
|
signed_url = sign(
|
|
7
7
|
${t.variableName}, "GET", "${e}",
|
|
8
8
|
expires_in=timedelta(hours=1),
|
|
9
9
|
)
|
|
10
|
-
signed_url`;let r=Ve(t.entry.path.split("/").pop()||"download");return`${t.variableName}.get("${e}", "${r}")`}}];var lr=100*1024*1024;function ir(t){let e=t.endsWith("/")?t.slice(0,-1):t,r=e.split("/");return r[r.length-1]||e}const cr=({entry:t,namespace:e,protocol:r,backendType:o,onBack:i})=>{let{locale:n}=Be(),m=rt(),l=ir(t.path),c=t.mimeType||"text/plain",s=tt(c),f=s&&t.size>lr&&t.size>0,{data:p,isPending:x,error:u,refetch:y}=Re(async()=>{if(f)return null;let d=await Oe.request({namespace:e,path:t.path,preview:!s});if(d.error)throw Error(d.error);if(!d.url)throw Error("No URL returned");if(s)return{type:"media",url:d.url};let v=await fetch(d.url);if(!v.ok)throw Error(`Failed to fetch preview: ${v.statusText}`);return{type:"text",content:await v.text()}},[e,t.path,s,f]),N=(0,L.useCallback)(async()=>{try{let d=await Oe.request({namespace:e,path:t.path});if(d.error){re({title:"Download failed",description:d.error,variant:"danger"});return}d.url&&Te(d.url,d.filename??l)}catch(d){De.error("Failed to download storage entry",d),re({title:"Download failed",description:String(d),variant:"danger"})}},[e,t.path,l]),g=_t.map(d=>{let v=d.getCode({variableName:e,protocol:r,entry:t,backendType:o});if(v===null)return null;let F=d.icon;return(0,a.jsx)(Z,{content:d.label,children:(0,a.jsx)(H,{variant:"text",size:"xs",onClick:()=>m(v),"aria-label":d.label,children:(0,a.jsx)(F,{className:"h-3.5 w-3.5"})})},d.id)}),_=(0,a.jsx)(Ct,{filename:l,filenameIcon:it(l),onBack:i,onDownload:N,actions:g}),j=({includeMime:d=!1})=>(0,a.jsxs)("div",{className:"grid grid-cols-[auto_1fr] gap-x-4 gap-y-1.5 p-4 text-xs",children:[(0,a.jsx)("span",{className:"text-muted-foreground font-medium",children:"Path"}),(0,a.jsxs)("div",{className:"truncate flex items-center gap-1.5",children:[(0,a.jsx)("span",{className:"font-mono text-[11px]",children:t.path}),(0,a.jsx)(Ra,{value:t.path,className:"h-3 w-3"})]}),d&&(0,a.jsx)("span",{className:"text-muted-foreground font-medium",children:"Type"}),d&&(0,a.jsx)("span",{children:c}),t.size>0&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"text-muted-foreground font-medium",children:"Size"}),(0,a.jsx)("span",{children:Pe(t.size,n)})]}),t.lastModified!=null&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"text-muted-foreground font-medium",children:"Modified"}),(0,a.jsx)("span",{children:new Date(t.lastModified*1e3).toLocaleString()})]})]});return f?(0,a.jsxs)("div",{className:"flex flex-col h-full",children:[_,j({includeMime:!0}),(0,a.jsxs)("div",{className:"px-4 pb-4 text-xs text-muted-foreground italic",children:["File is too large to preview (",Pe(t.size,n),")."]})]}):x?(0,a.jsxs)("div",{className:"flex flex-col h-full",children:[_,j({}),(0,a.jsxs)("div",{className:"flex-1 flex items-center justify-center gap-2 text-xs text-muted-foreground min-h-24",children:[(0,a.jsx)(ve,{className:"h-4 w-4 animate-spin"}),"Loading preview..."]})]}):u?(0,a.jsxs)("div",{className:"flex flex-col h-full",children:[_,j({includeMime:!0}),(0,a.jsxs)("div",{className:"px-4 pb-4 text-xs text-destructive",children:["Failed to load preview: ",u.message]}),(0,a.jsx)("div",{className:"px-4 pb-4",children:(0,a.jsxs)(H,{variant:"secondary",size:"xs",onClick:y,children:[(0,a.jsx)(xt,{className:"h-3 w-3 mr-1"}),"Retry"]})})]}):p?(0,a.jsxs)("div",{className:"flex flex-col h-full",children:[_,j({}),(0,a.jsx)(et,{mimeType:c,contents:p.type==="text"?p.content:void 0,mediaSource:p.type==="media"?{url:p.url}:void 0})]}):(0,a.jsxs)("div",{className:"flex flex-col h-full",children:[_,j({includeMime:!0}),(0,a.jsxs)("div",{className:"p-4 flex items-center gap-2 text-xs text-muted-foreground",children:[(0,a.jsx)(dt,{className:"h-4 w-4"}),"Preview not available for this file type."]})]})};var Ie=oe(),dr=16;function ie(t){return{paddingLeft:t*dr}}function mr(t,e){return new Date(t*1e3).toLocaleDateString(e,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function Ee(t){let e=t.endsWith("/")?t.slice(0,-1):t,r=e.split("/");return r[r.length-1]||e}function Ae(t){return t.endsWith("/")?t:`${t}/`}function He(t,e){var o;let r=(o=t.metadata)==null?void 0:o.id;return typeof r=="string"&&r.length>0?r:`${t.path}::${e}`}function qe(t,{namespace:e,searchValue:r,entriesByPath:o}){let i=r.trim().toLowerCase(),n=t.path.toLowerCase();if(Ee(t.path).toLowerCase().includes(i)||n.includes(i))return!0;if(t.kind==="directory"){let m=o.get(ye(e,Ae(t.path)));if(m)return m.some(l=>qe(l,{namespace:e,searchValue:r,entriesByPath:o}))}return!1}function Ne(t,e){return e.searchValue.trim()?t.filter(r=>qe(r,e)):t}var pr=5;function hr(t){return{query:t,status:"idle"}}function Ft(t){return t.status==="idle"||t.status==="error"||t.status==="capped"}function Mt(t,e,r){var o;return e.get(t)===void 0||((o=r.get(t))==null?void 0:o.nextPageToken)!=null}function xr({hasSearch:t,hasLoadedMatches:e,isPending:r,remoteSearch:o,searchKey:i,entriesByPath:n,pageMetadataByPath:m}){return!t||e||r||!Ft(o)?!1:Mt(i,n,m)}function Ue(t){let e=t.trim(),r=e.lastIndexOf("/");return r===-1?"":e.slice(0,r+1)}function fr(t,e){let r=e.trim().toLowerCase();return r?t.path.toLowerCase().includes(r)||Ee(t.path).toLowerCase().includes(r):!0}var Pt=t=>{let e=(0,Ie.c)(15),{depth:r,isLoading:o,error:i,onLoadMore:n}=t,m;e[0]===r?m=e[1]:(m=ie(r),e[0]=r,e[1]=m);let l;e[2]===o?l=e[3]:(l=o&&(0,a.jsx)(ve,{className:"h-3 w-3 mr-1 animate-spin"}),e[2]=o,e[3]=l);let c=o?"Loading...":"Load more",s;e[4]!==o||e[5]!==n||e[6]!==l||e[7]!==c?(s=(0,a.jsxs)(H,{variant:"text",size:"xs",className:"h-6 px-0 hover:text-blue-600",disabled:o,onClick:n,children:[l,c]}),e[4]=o,e[5]=n,e[6]=l,e[7]=c,e[8]=s):s=e[8];let f;e[9]===i?f=e[10]:(f=i&&(0,a.jsxs)("span",{className:"ml-2 text-destructive",children:["Failed to load: ",i.message]}),e[9]=i,e[10]=f);let p;return e[11]!==m||e[12]!==s||e[13]!==f?(p=(0,a.jsxs)("div",{className:"py-px text-xs",style:m,children:[s,f]}),e[11]=m,e[12]=s,e[13]=f,e[14]=p):p=e[14],p},ur=t=>{let e=(0,Ie.c)(44),{namespace:r,protocol:o,rootPath:i,backendType:n,prefix:m,depth:l,locale:c,searchValue:s,onOpenFile:f}=t,{entriesByPath:p}=Me(),{entries:x,isPending:u,error:y,hasMore:N,loadMore:g,isLoadingMore:_,loadMoreError:j}=nt(r,m);if(u){let h;e[0]===l?h=e[1]:(h=ie(l),e[0]=l,e[1]=h);let w;e[2]===Symbol.for("react.memo_cache_sentinel")?(w=(0,a.jsx)(ve,{className:"h-3 w-3 animate-spin"}),e[2]=w):w=e[2];let S;return e[3]===h?S=e[4]:(S=(0,a.jsxs)("div",{className:"flex items-center gap-1.5 py-1 text-xs text-muted-foreground",style:h,children:[w,"Loading..."]}),e[3]=h,e[4]=S),S}if(y){let h;e[5]===l?h=e[6]:(h=ie(l),e[5]=l,e[6]=h);let w;return e[7]!==y.message||e[8]!==h?(w=(0,a.jsxs)("div",{className:"py-1 text-xs text-destructive",style:h,children:["Failed to load: ",y.message]}),e[7]=y.message,e[8]=h,e[9]=w):w=e[9],w}if(x.length===0){let h;e[10]===l?h=e[11]:(h=ie(l),e[10]=l,e[11]=h);let w;return e[12]===h?w=e[13]:(w=(0,a.jsx)("div",{className:"py-1 text-xs text-muted-foreground italic",style:h,children:"Empty"}),e[12]=h,e[13]=w),w}let d;if(e[14]!==n||e[15]!==x||e[16]!==l||e[17]!==p||e[18]!==c||e[19]!==r||e[20]!==f||e[21]!==o||e[22]!==i||e[23]!==s){let h=Ne(x,{namespace:r,searchValue:s,entriesByPath:p}),w;e[25]!==n||e[26]!==x||e[27]!==l||e[28]!==c||e[29]!==r||e[30]!==f||e[31]!==o||e[32]!==i||e[33]!==s?(w=S=>{let M=He(S,x.indexOf(S));return(0,a.jsx)(We,{rowKey:M,entry:S,namespace:r,protocol:o,rootPath:i,backendType:n,depth:l,locale:c,searchValue:s,onOpenFile:f},M)},e[25]=n,e[26]=x,e[27]=l,e[28]=c,e[29]=r,e[30]=f,e[31]=o,e[32]=i,e[33]=s,e[34]=w):w=e[34],d=h.map(w),e[14]=n,e[15]=x,e[16]=l,e[17]=p,e[18]=c,e[19]=r,e[20]=f,e[21]=o,e[22]=i,e[23]=s,e[24]=d}else d=e[24];let v;e[35]!==l||e[36]!==N||e[37]!==_||e[38]!==g||e[39]!==j?(v=N&&(0,a.jsx)(Pt,{depth:l,isLoading:_,error:j,onLoadMore:g}),e[35]=l,e[36]=N,e[37]=_,e[38]=g,e[39]=j,e[40]=v):v=e[40];let F;return e[41]!==d||e[42]!==v?(F=(0,a.jsxs)(a.Fragment,{children:[d,v]}),e[41]=d,e[42]=v,e[43]=F):F=e[43],F},We=({entry:t,rowKey:e,namespace:r,protocol:o,rootPath:i,backendType:n,depth:m,locale:l,searchValue:c,onOpenFile:s})=>{var F;let[f,p]=(0,L.useState)(!1),{entriesByPath:x}=Me(),u=rt(),y=t.kind==="directory",N=Ee(t.path),g=!!c.trim(),_=y&&g&&N.toLowerCase().includes(c.trim().toLowerCase()),j=y&&g&&!!((F=x.get(ye(r,Ae(t.path))))!=null&&F.some(h=>qe(h,{namespace:r,searchValue:c,entriesByPath:x}))),d=f||j,v=(0,L.useCallback)(async()=>{try{let h=await Oe.request({namespace:r,path:t.path});if(h.error){re({title:"Download failed",description:h.error,variant:"danger"});return}h.url&&Te(h.url,h.filename??"download")}catch(h){De.error("Failed to download storage entry",h),re({title:"Download failed",description:String(h),variant:"danger"})}},[r,t.path]);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(yt,{className:le("text-xs flex items-center gap-1.5 cursor-pointer rounded-none group h-6.5",y&&"font-medium"),style:ie(m),value:`${r}:${e}`,onSelect:()=>{y?p(!d):s({entry:t,namespace:r,protocol:o,backendType:n})},children:[y?(0,a.jsx)(Le,{isExpanded:d,className:"h-3 w-3"}):(0,a.jsx)("span",{className:"w-3 shrink-0"}),y?(0,a.jsx)(ga,{className:le("h-3.5 w-3.5 shrink-0",ct.directory)}):it(N),(0,a.jsx)("span",{className:"truncate flex-1 text-left",children:N}),(0,a.jsxs)("div",{className:"flex items-center",children:[t.size>0&&(0,a.jsx)("span",{className:"text-[10px] text-muted-foreground pr-2 opacity-0 group-hover:opacity-100 transition-opacity tabular-nums",children:Pe(t.size,l)}),t.lastModified!=null&&(0,a.jsx)(Z,{content:`Last modified: ${new Date(t.lastModified*1e3).toLocaleString()}`,children:(0,a.jsx)("span",{className:"text-[10px] text-muted-foreground pr-1 opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap",children:mr(t.lastModified,l)})}),(0,a.jsxs)(ea,{children:[(0,a.jsx)(Zt,{asChild:!0,children:(0,a.jsx)(fa,{iconClassName:"h-3 w-3",onClick:h=>h.stopPropagation()})}),(0,a.jsxs)(Qt,{align:"end",onClick:h=>h.stopPropagation(),onCloseAutoFocus:h=>h.preventDefault(),children:[!y&&(0,a.jsxs)(X,{onSelect:()=>s({entry:t,namespace:r,protocol:o,backendType:n}),children:[(0,a.jsx)(St,{className:"h-3.5 w-3.5 mr-2"}),"View"]}),(0,a.jsxs)(X,{onSelect:async()=>{await we(t.path),re({title:"Copied to clipboard"})},children:[(0,a.jsx)(lt,{className:be}),"Copy path"]}),!y&&(0,a.jsxs)(X,{onSelect:()=>v(),children:[(0,a.jsx)(Fe,{className:"h-3.5 w-3.5 mr-2"}),"Download"]}),(0,a.jsx)(ue,{}),_t.map(h=>{let w=h.getCode({variableName:r,protocol:o,entry:t,backendType:n});if(w===null)return null;let S=h.icon;return(0,a.jsxs)(X,{onSelect:()=>u(w),children:[(0,a.jsx)(S,{className:be}),h.label]},h.id)})]})]})]})]}),y&&d&&(0,a.jsx)(ur,{namespace:r,protocol:o,rootPath:i,backendType:n,prefix:Ae(t.path),depth:m+1,locale:l,searchValue:_?"":c,onOpenFile:s})]})},yr=t=>{let e=(0,Ie.c)(64),{namespace:r,locale:o,searchValue:i,remoteSearch:n,onContinueRemoteSearch:m,onOpenFile:l}=t,[c,s]=(0,L.useState)(!0),{entriesByPath:f,pageMetadataByPath:p}=Me(),{clearNamespaceCache:x}=da(),u=r.name??r.displayName,{entries:y,isPending:N,error:g,hasMore:_,loadMore:j,isLoadingMore:d,loadMoreError:v,refetch:F}=nt(u),h;e[0]!==x||e[1]!==u||e[2]!==F?(h=D=>{D.stopPropagation(),x(u),F()},e[0]=x,e[1]=u,e[2]=F,e[3]=h):h=e[3];let w=h,S=N?r.storageEntries:y,M;if(e[4]!==S||e[5]!==f||e[6]!==g||e[7]!==w||e[8]!==_||e[9]!==c||e[10]!==d||e[11]!==N||e[12]!==j||e[13]!==v||e[14]!==o||e[15]!==r.backendType||e[16]!==r.displayName||e[17]!==r.name||e[18]!==r.protocol||e[19]!==r.rootPath||e[20]!==u||e[21]!==m||e[22]!==l||e[23]!==p||e[24]!==n||e[25]!==i){let D=Ne(S,{namespace:u,searchValue:i,entriesByPath:f}),C=Ue(i),P=ye(u,C),B=C===""?[]:f.get(P)??[],z=Ne(B,{namespace:u,searchValue:i,entriesByPath:f}),G=!!i.trim(),ee=D.length>0||z.length>0,Q=C!==""&&xr({hasSearch:G,hasLoadedMatches:ee,isPending:N,remoteSearch:n,searchKey:P,entriesByPath:f,pageMetadataByPath:p}),J=G&&D.length===0,R;e:{if(N&&S.length===0){let b;e[27]===Symbol.for("react.memo_cache_sentinel")?(b=(0,a.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,a.jsx)(ve,{className:"h-3 w-3 animate-spin"}),"Loading..."]}),e[27]=b):b=e[27],R=b;break e}if(n.status==="searching"){let b;e[28]===Symbol.for("react.memo_cache_sentinel")?(b=(0,a.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,a.jsx)(ve,{className:"h-3 w-3 animate-spin"}),"Searching more entries..."]}),e[28]=b):b=e[28],R=b;break e}if(n.status==="error"){let b;e[29]===n.error.message?b=e[30]:(b=(0,a.jsxs)("span",{className:"text-destructive",children:["Search failed: ",n.error.message]}),e[29]=n.error.message,e[30]=b),R=b;break e}if(n.status==="capped"){let b;e[31]===m?b=e[32]:(b=(0,a.jsx)(H,{variant:"text",size:"xs",className:"h-5 px-0 text-xs hover:text-blue-600",onClick:m,children:"Continue searching"}),e[31]=m,e[32]=b);let T;e[33]===Symbol.for("react.memo_cache_sentinel")?(T=(0,a.jsx)("span",{className:"text-[10px]",children:"(or press Enter)"}),e[33]=T):T=e[33];let $;e[34]===b?$=e[35]:($=(0,a.jsxs)("span",{className:"flex items-center gap-1.5",children:["Searched more entries.",b,T]}),e[34]=b,e[35]=$),R=$;break e}if(n.status==="exhausted"&&!ee){R="No matches";break e}if(!G&&!N&&S.length===0){R="No entries";break e}if(Q){let b;e[36]===m?b=e[37]:(b=(0,a.jsx)(H,{variant:"text",size:"xs",className:"h-5 px-0 text-xs hover:text-blue-600",onClick:m,children:"Search more entries"}),e[36]=m,e[37]=b);let T;e[38]===Symbol.for("react.memo_cache_sentinel")?(T=(0,a.jsx)("span",{className:"text-[10px]",children:"(or press Enter)"}),e[38]=T):T=e[38];let $;e[39]===b?$=e[40]:($=(0,a.jsxs)("span",{className:"flex items-center gap-1.5",children:["No loaded matches.",b,T]}),e[39]=b,e[40]=$),R=$;break e}if(G&&!ee&&S.length>0){R="No matches";break e}R=null}let K=R,V;e[41]===c?V=e[42]:(V=()=>s(!c),e[41]=c,e[42]=V);let I;e[43]===c?I=e[44]:(I=(0,a.jsx)(Le,{isExpanded:c,className:"h-3 w-3"}),e[43]=c,e[44]=I);let q;e[45]===r.protocol?q=e[46]:(q=(0,a.jsx)(va,{protocol:r.protocol}),e[45]=r.protocol,e[46]=q);let E;e[47]===r.displayName?E=e[48]:(E=(0,a.jsx)("span",{children:r.displayName}),e[47]=r.displayName,e[48]=E);let A;e[49]===r.name?A=e[50]:(A=r.name&&(0,a.jsxs)("span",{className:"text-xs text-muted-foreground font-normal",children:["(",(0,a.jsx)(Xa,{variableName:r.name}),")"]}),e[49]=r.name,e[50]=A);let U;e[51]===w?U=e[52]:(U=(0,a.jsx)(ot,{onClick:w,tooltip:"Refresh storage connection",className:"p-0",iconClassName:"h-3 w-3"}),e[51]=w,e[52]=U);let Y=r.rootPath||"(root)",k;e[53]===Y?k=e[54]:(k=(0,a.jsx)("span",{className:"text-[10px] text-muted-foreground font-normal tabular-nums ml-auto",children:Y}),e[53]=Y,e[54]=k);let O;e[55]!==r.name||e[56]!==k||e[57]!==V||e[58]!==I||e[59]!==q||e[60]!==E||e[61]!==A||e[62]!==U?(O=(0,a.jsxs)(yt,{value:r.name,onSelect:V,className:"flex flex-row font-semibold h-7 text-xs gap-1.5 bg-(--slate-2) text-muted-foreground rounded-none",children:[I,q,E,A,U,k]}),e[55]=r.name,e[56]=k,e[57]=V,e[58]=I,e[59]=q,e[60]=E,e[61]=A,e[62]=U,e[63]=O):O=e[63],M=(0,a.jsxs)(a.Fragment,{children:[O,c&&(0,a.jsxs)(a.Fragment,{children:[g&&S.length===0&&(0,a.jsx)(aa,{error:g,style:ie(1),className:"py-1 text-xs h-auto overflow-auto max-h-32 items-start",showIcon:!1}),!g&&K&&(0,a.jsx)("div",{className:"py-1 text-xs text-muted-foreground italic",style:ie(1),children:K}),D.map(b=>{let T=He(b,S.indexOf(b));return(0,a.jsx)(We,{rowKey:T,entry:b,namespace:u,protocol:r.protocol,rootPath:r.rootPath,backendType:r.backendType,depth:1,locale:o,searchValue:i,onOpenFile:l},T)}),J&&z.map(b=>{let T=He(b,B.indexOf(b));return(0,a.jsx)(We,{rowKey:`remote-search:${T}`,entry:b,namespace:u,protocol:r.protocol,rootPath:r.rootPath,backendType:r.backendType,depth:1,locale:o,searchValue:i,onOpenFile:l},`remote-search:${T}`)}),_&&!Q&&(0,a.jsx)(Pt,{depth:1,isLoading:d,error:v,onLoadMore:j})]})]}),e[4]=S,e[5]=f,e[6]=g,e[7]=w,e[8]=_,e[9]=c,e[10]=d,e[11]=N,e[12]=j,e[13]=v,e[14]=o,e[15]=r.backendType,e[16]=r.displayName,e[17]=r.name,e[18]=r.protocol,e[19]=r.rootPath,e[20]=u,e[21]=m,e[22]=l,e[23]=p,e[24]=n,e[25]=i,e[26]=M}else M=e[26];return M};const gr=()=>{let{namespaces:t,entriesByPath:e,pageMetadataByPath:r}=Me(),{locale:o}=Be(),[i,n]=(0,L.useState)(""),[m,l]=(0,L.useState)({}),[c,s]=(0,L.useState)(null),f=ca(),p=!!i.trim(),x=i.trim(),u=(0,L.useCallback)(j=>{let d=m[j];return(d==null?void 0:d.query)===x?d:hr(x)},[x,m]),y=(0,L.useCallback)((j,d)=>{l(v=>({...v,[j]:d}))},[]),N=(0,L.useCallback)(j=>{if(!x)return!1;let d=j.name??j.displayName,v=Ue(x);if(v===""||!Ft(u(d))||Ne(e.get(ye(d,""))??j.storageEntries,{namespace:d,searchValue:x,entriesByPath:e}).length>0)return!1;let F=ye(d,v);return Ne(e.get(F)??[],{namespace:d,searchValue:x,entriesByPath:e}).length>0?!1:Mt(F,e,r)},[x,e,r,u]),g=(0,L.useCallback)(async j=>{var D;if(!N(j))return;let d=x,v=j.name??j.displayName,F=Ue(d),h=ye(v,F),w=e.get(h),S=((D=r.get(h))==null?void 0:D.nextPageToken)??null,M=w!==void 0;y(v,{query:d,status:"searching"});try{for(let C=0;C<pr;C++){let P=!M||S!==null,B=[];if(P){let z=await f({namespace:v,prefix:F,pageToken:S,append:M});B=z.entries,S=z.next_page_token??null,M=!0}if((P?B:w??[]).some(z=>fr(z,d))){y(v,{query:d,status:"found"});return}if(S===null){y(v,{query:d,status:"exhausted"});return}}y(v,{query:d,status:"capped"})}catch(C){y(v,{query:d,status:"error",error:C instanceof Error?C:Error(String(C))})}},[N,x,e,f,r,y]),_=(0,L.useCallback)(()=>{let j=t.filter(N);for(let d of j)g(d)},[N,g,t]);return t.length===0?(0,a.jsx)(Ya,{title:"No storage connected",description:(0,a.jsxs)("span",{children:["Create an obstore or fsspec connection in your notebook. See the"," ",(0,a.jsx)("a",{className:"text-link",href:"https://docs.marimo.io/guides/working_with_data/remote_storage/#quick-start",target:"_blank",rel:"noopener noreferrer",children:"docs"}),"."]}),action:(0,a.jsx)(pt,{defaultTab:"storage",children:(0,a.jsxs)(H,{variant:"outline",size:"sm",children:["Add remote storage",(0,a.jsx)(ht,{className:"h-4 w-4 ml-2"})]})}),icon:(0,a.jsx)(mt,{className:"h-8 w-8"})}):(0,a.jsxs)("div",{className:"h-full flex flex-col",children:[c&&(0,a.jsx)(cr,{entry:c.entry,namespace:c.namespace,protocol:c.protocol,backendType:c.backendType,onBack:()=>s(null)}),(0,a.jsxs)(Ua,{className:le("border-b bg-background rounded-none h-full pb-10 overflow-auto outline-hidden scrollbar-thin",c&&"hidden"),shouldFilter:!1,children:[(0,a.jsxs)("div",{className:"flex items-center w-full border-b",children:[(0,a.jsx)(Ha,{placeholder:"Search entries...",className:"h-6 m-1",value:i,onValueChange:n,onKeyDown:j=>{j.key==="Enter"&&t.some(N)&&(j.preventDefault(),_())},rootClassName:"flex-1 border-b-0"}),p&&(0,a.jsx)(H,{variant:"text",size:"xs",className:"float-right border-none px-2 m-0 h-full",onClick:()=>n(""),children:(0,a.jsx)(ha,{className:"h-4 w-4"})}),(0,a.jsx)(Z,{content:"Search by file name within loaded entries, or by prefix (e.g. 'folder/x') for backend search. Press Enter to fetch more results.",delayDuration:200,children:(0,a.jsx)(ya,{className:"h-3.5 w-3.5 shrink-0 cursor-help text-muted-foreground hover:text-foreground mr-2"})}),(0,a.jsx)(pt,{defaultTab:"storage",children:(0,a.jsx)(H,{variant:"ghost",size:"sm",className:"px-2 border-0 border-l border-muted-background rounded-none focus-visible:ring-0 focus-visible:ring-offset-0",children:(0,a.jsx)(ht,{className:"h-4 w-4"})})})]}),(0,a.jsx)(qa,{className:"flex flex-col",children:t.map(j=>{let d=j.name??j.displayName;return(0,a.jsx)(yr,{namespace:j,locale:o,searchValue:i,remoteSearch:u(d),onContinueRemoteSearch:()=>{g(j)},onOpenFile:s},d)})})]})]})};var Dt=oe(),Tt=(0,L.createContext)(null);function jr(){return(0,L.useContext)(Tt)??void 0}var br=t=>{let e=(0,Dt.c)(3),{children:r}=t,o=Sa(),i;return e[0]!==r||e[1]!==o?(i=(0,a.jsx)(Tt.Provider,{value:o,children:r}),e[0]=r,e[1]=o,e[2]=i):i=e[2],i};const vr=t=>{let e=(0,Dt.c)(5),{children:r}=t,[o,i]=(0,L.useState)(null),n;e[0]!==r||e[1]!==o?(n=o&&(0,a.jsx)(Ca,{backend:Ta,options:{rootElement:o},children:(0,a.jsx)(br,{children:r})}),e[0]=r,e[1]=o,e[2]=n):n=e[2];let m;return e[3]===n?m=e[4]:(m=(0,a.jsx)("div",{ref:i,className:"contents",children:n}),e[3]=n,e[4]=m),m};async function zt(t,e){if(!je()){Te(Gt().formatNavigableHttpURL("api/files/download",new URLSearchParams({path:t})).toString(),e);return}let r=await ia().sendFileDetails({path:t});r.isBase64&&r.contents?at(Va(ua(r.contents,r.mimeType||"application/octet-stream")),e):at(new Blob([r.contents||""],{type:r.mimeType||"application/octet-stream"}),e)}var wr=oe();const Nr=t=>{let e=(0,wr.c)(21),{file:r,mimeType:o,message:i,onDownload:n}=t,{locale:m}=Be(),l;e[0]===Symbol.for("react.memo_cache_sentinel")?(l=(0,a.jsx)("span",{className:"text-muted-foreground font-medium",children:"Path"}),e[0]=l):l=e[0];let c;e[1]===r.path?c=e[2]:(c=(0,a.jsx)("span",{className:"font-mono text-xs break-all",children:r.path}),e[1]=r.path,e[2]=c);let s;e[3]===Symbol.for("react.memo_cache_sentinel")?(s=(0,a.jsx)("span",{className:"text-muted-foreground font-medium",children:"Type"}),e[3]=s):s=e[3];let f;e[4]===o?f=e[5]:(f=(0,a.jsx)("span",{children:o}),e[4]=o,e[5]=f);let p;e[6]!==r.size||e[7]!==m?(p=r.size!=null&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"text-muted-foreground font-medium",children:"Size"}),(0,a.jsx)("span",{children:Pe(r.size,m)})]}),e[6]=r.size,e[7]=m,e[8]=p):p=e[8];let x;e[9]!==c||e[10]!==f||e[11]!==p?(x=(0,a.jsxs)("div",{className:"grid grid-cols-[auto_1fr] gap-x-4 gap-y-2",children:[l,c,s,f,p]}),e[9]=c,e[10]=f,e[11]=p,e[12]=x):x=e[12];let u;e[13]===i?u=e[14]:(u=(0,a.jsx)("div",{className:"mt-4 text-muted-foreground italic",children:i}),e[13]=i,e[14]=u);let y;e[15]===n?y=e[16]:(y=n&&(0,a.jsxs)(H,{variant:"outline",size:"sm",className:"mt-4",onClick:n,children:[(0,a.jsx)(Fe,{className:"h-3.5 w-3.5 mr-2"}),"Download"]}),e[15]=n,e[16]=y);let N;return e[17]!==x||e[18]!==u||e[19]!==y?(N=(0,a.jsxs)("div",{className:"p-4 text-sm",children:[x,u,y]}),e[17]=x,e[18]=u,e[19]=y,e[20]=N):N=e[20],N};function Ke(t,e){let r=t||"text/plain";return tt(r)?"media":e?"unsupported":r==="text/csv"?"csv":r.startsWith("text/")||r!=="default"&&r in ta||t==null?"text":"unsupported"}var Ge=new Map;const kr=({file:t,onOpenNotebook:e})=>{let{sendFileDetails:r,sendUpdateFile:o}=ze(),i=ge(Kt),n=ge(Qe),m=ge(qt),[l,c]=(0,L.useState)(""),{data:s,isPending:f,error:p,setData:x,refetch:u}=Re(async()=>{let C=await r({path:t.path,maxBytes:10485760}),P=Ke(C.mimeType,C.isBase64);if(!C.isTooLarge&&P==="text"){let B=C.contents||"";c(Ge.get(t.path)??B)}return C},[t.path]),y=async()=>{l!==(s==null?void 0:s.contents)&&await o({path:t.path,contents:l}).then(C=>{C.success&&(x(P=>({...P,contents:l})),c(l))})},N=(0,L.useRef)(l);if(N.current=l,(0,L.useEffect)(()=>()=>{if((s==null?void 0:s.contents)==null||s.isTooLarge||Ke(s.mimeType,s.isBase64)!=="text")return;let C=N.current;C===s.contents?Ge.delete(t.path):Ge.set(t.path,C)},[t.path,s==null?void 0:s.contents,s==null?void 0:s.isTooLarge,s==null?void 0:s.mimeType,s==null?void 0:s.isBase64]),p)return(0,a.jsx)(ut,{error:p});if(f||!s)return null;let g=s.mimeType||"text/plain",_=Ke(s.mimeType,s.isBase64),j=_==="text",d=_==="csv",v=_==="media",F=m&&s.file.isMarimoFile&&(t.path===m||t.path.endsWith(`/${m}`)),h=async()=>{await zt(t.path,s.file.name)},w=oa.of([{key:i.getHotkey("global.save").key,stopPropagation:!0,run:()=>l===s.contents?!1:(y(),!0)}]),S=(0,a.jsx)(Ct,{filename:s.file.name,onRefresh:u,onDownload:n?void 0:h,actions:(0,a.jsxs)(a.Fragment,{children:[t.isMarimoFile&&!je()&&(0,a.jsx)(Z,{content:"Open notebook",children:(0,a.jsx)(H,{variant:"text",size:"xs",onClick:C=>e(C),children:(0,a.jsx)($e,{className:"h-3.5 w-3.5"})})}),j&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(Z,{content:"Copy contents to clipboard",children:(0,a.jsx)(H,{variant:"text",size:"xs",onClick:async()=>{await we(l)},children:(0,a.jsx)(lt,{className:"h-3.5 w-3.5"})})}),(0,a.jsx)(Z,{content:Wa("global.save"),children:(0,a.jsx)(H,{variant:"text",size:"xs",onClick:y,disabled:l===s.contents,children:(0,a.jsx)(za,{className:"h-3.5 w-3.5"})})})]})]})});if(s.isTooLarge||_==="unsupported")return(0,a.jsxs)(a.Fragment,{children:[S,(0,a.jsx)(Nr,{file:s.file,mimeType:g,message:s.isTooLarge?"File is too large to preview.":"This file type cannot be previewed.",onDownload:n?void 0:h})]});let M=j&&F&&(0,a.jsxs)(Ea,{variant:"warning",className:"rounded-none",children:[(0,a.jsx)(Oa,{className:"h-4 w-4"}),(0,a.jsx)(Ia,{children:"Editing the notebook file directly while running in marimo's editor may cause unintended changes. Please use with caution."})]}),D=v&&s.contents?ra({contents:s.contents,mimeType:g,isBase64:s.isBase64??!1}):void 0;return(0,a.jsxs)(a.Fragment,{children:[S,M,(0,a.jsx)(et,{mimeType:g,contents:j?l:d?s.contents??void 0:void 0,mediaSource:D,readOnly:!j,onChange:j?c:void 0,extensions:j?[w]:[]})]})},Ot=Ye(t=>{let e=t(la);return Wt(e,"no requestClientAtom set"),new ka({listFiles:e.sendListFiles,createFileOrFolder:e.sendCreateFileOrFolder,deleteFileOrFolder:e.sendDeleteFileOrFolder,copyFileOrFolder:e.sendCopyFileOrFolder,renameFileOrFolder:e.sendRenameFileOrFolder})}),Sr=Ye({});async function Cr(){await Et.get(Ot).refreshAll([])}var se=" ";const Lt={directory:t=>`os.listdir("${t}")`,python:t=>`with open("${t}", "r") as _f:
|
|
10
|
+
signed_url`;let r=Re(t.entry.path.split("/").pop()||"download");return`${t.variableName}.get("${e}", "${r}")`}}];var lr=100*1024*1024;function ir(t){let e=t.endsWith("/")?t.slice(0,-1):t,r=e.split("/");return r[r.length-1]||e}const cr=({entry:t,namespace:e,protocol:r,backendType:o,onBack:i})=>{let{locale:n}=Be(),m=rt(),l=ir(t.path),c=t.mimeType||"text/plain",s=tt(c),f=s&&t.size>lr&&t.size>0,{data:p,isPending:x,error:u,refetch:y}=Ve(async()=>{if(f)return null;let d=await Oe.request({namespace:e,path:t.path,preview:!s});if(d.error)throw Error(d.error);if(!d.url)throw Error("No URL returned");if(s)return{type:"media",url:d.url};let v=await fetch(d.url);if(!v.ok)throw Error(`Failed to fetch preview: ${v.statusText}`);return{type:"text",content:await v.text()}},[e,t.path,s,f]),N=(0,L.useCallback)(async()=>{try{let d=await Oe.request({namespace:e,path:t.path});if(d.error){re({title:"Download failed",description:d.error,variant:"danger"});return}d.url&&Te(d.url,d.filename??l)}catch(d){De.error("Failed to download storage entry",d),re({title:"Download failed",description:String(d),variant:"danger"})}},[e,t.path,l]),g=_t.map(d=>{let v=d.getCode({variableName:e,protocol:r,entry:t,backendType:o});if(v===null)return null;let F=d.icon;return(0,a.jsx)(Z,{content:d.label,children:(0,a.jsx)(H,{variant:"text",size:"xs",onClick:()=>m(v),"aria-label":d.label,children:(0,a.jsx)(F,{className:"h-3.5 w-3.5"})})},d.id)}),_=(0,a.jsx)(Ct,{filename:l,filenameIcon:it(l),onBack:i,onDownload:N,actions:g}),j=({includeMime:d=!1})=>(0,a.jsxs)("div",{className:"grid grid-cols-[auto_1fr] gap-x-4 gap-y-1.5 p-4 text-xs",children:[(0,a.jsx)("span",{className:"text-muted-foreground font-medium",children:"Path"}),(0,a.jsxs)("div",{className:"truncate flex items-center gap-1.5",children:[(0,a.jsx)("span",{className:"font-mono text-[11px]",children:t.path}),(0,a.jsx)(Va,{value:t.path,className:"h-3 w-3"})]}),d&&(0,a.jsx)("span",{className:"text-muted-foreground font-medium",children:"Type"}),d&&(0,a.jsx)("span",{children:c}),t.size>0&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"text-muted-foreground font-medium",children:"Size"}),(0,a.jsx)("span",{children:Pe(t.size,n)})]}),t.lastModified!=null&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"text-muted-foreground font-medium",children:"Modified"}),(0,a.jsx)("span",{children:new Date(t.lastModified*1e3).toLocaleString()})]})]});return f?(0,a.jsxs)("div",{className:"flex flex-col h-full",children:[_,j({includeMime:!0}),(0,a.jsxs)("div",{className:"px-4 pb-4 text-xs text-muted-foreground italic",children:["File is too large to preview (",Pe(t.size,n),")."]})]}):x?(0,a.jsxs)("div",{className:"flex flex-col h-full",children:[_,j({}),(0,a.jsxs)("div",{className:"flex-1 flex items-center justify-center gap-2 text-xs text-muted-foreground min-h-24",children:[(0,a.jsx)(ve,{className:"h-4 w-4 animate-spin"}),"Loading preview..."]})]}):u?(0,a.jsxs)("div",{className:"flex flex-col h-full",children:[_,j({includeMime:!0}),(0,a.jsxs)("div",{className:"px-4 pb-4 text-xs text-destructive",children:["Failed to load preview: ",u.message]}),(0,a.jsx)("div",{className:"px-4 pb-4",children:(0,a.jsxs)(H,{variant:"secondary",size:"xs",onClick:y,children:[(0,a.jsx)(xt,{className:"h-3 w-3 mr-1"}),"Retry"]})})]}):p?(0,a.jsxs)("div",{className:"flex flex-col h-full",children:[_,j({}),(0,a.jsx)(et,{mimeType:c,contents:p.type==="text"?p.content:void 0,mediaSource:p.type==="media"?{url:p.url}:void 0})]}):(0,a.jsxs)("div",{className:"flex flex-col h-full",children:[_,j({includeMime:!0}),(0,a.jsxs)("div",{className:"p-4 flex items-center gap-2 text-xs text-muted-foreground",children:[(0,a.jsx)(dt,{className:"h-4 w-4"}),"Preview not available for this file type."]})]})};var Ie=oe(),dr=16;function ie(t){return{paddingLeft:t*dr}}function mr(t,e){return new Date(t*1e3).toLocaleDateString(e,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function Ee(t){let e=t.endsWith("/")?t.slice(0,-1):t,r=e.split("/");return r[r.length-1]||e}function Ae(t){return t.endsWith("/")?t:`${t}/`}function He(t,e){var o;let r=(o=t.metadata)==null?void 0:o.id;return typeof r=="string"&&r.length>0?r:`${t.path}::${e}`}function qe(t,{namespace:e,searchValue:r,entriesByPath:o}){let i=r.trim().toLowerCase(),n=t.path.toLowerCase();if(Ee(t.path).toLowerCase().includes(i)||n.includes(i))return!0;if(t.kind==="directory"){let m=o.get(ye(e,Ae(t.path)));if(m)return m.some(l=>qe(l,{namespace:e,searchValue:r,entriesByPath:o}))}return!1}function Ne(t,e){return e.searchValue.trim()?t.filter(r=>qe(r,e)):t}var pr=5;function hr(t){return{query:t,status:"idle"}}function Ft(t){return t.status==="idle"||t.status==="error"||t.status==="capped"}function Mt(t,e,r){var o;return e.get(t)===void 0||((o=r.get(t))==null?void 0:o.nextPageToken)!=null}function xr({hasSearch:t,hasLoadedMatches:e,isPending:r,remoteSearch:o,searchKey:i,entriesByPath:n,pageMetadataByPath:m}){return!t||e||r||!Ft(o)?!1:Mt(i,n,m)}function Ue(t){let e=t.trim(),r=e.lastIndexOf("/");return r===-1?"":e.slice(0,r+1)}function fr(t,e){let r=e.trim().toLowerCase();return r?t.path.toLowerCase().includes(r)||Ee(t.path).toLowerCase().includes(r):!0}var Pt=t=>{let e=(0,Ie.c)(15),{depth:r,isLoading:o,error:i,onLoadMore:n}=t,m;e[0]===r?m=e[1]:(m=ie(r),e[0]=r,e[1]=m);let l;e[2]===o?l=e[3]:(l=o&&(0,a.jsx)(ve,{className:"h-3 w-3 mr-1 animate-spin"}),e[2]=o,e[3]=l);let c=o?"Loading...":"Load more",s;e[4]!==o||e[5]!==n||e[6]!==l||e[7]!==c?(s=(0,a.jsxs)(H,{variant:"text",size:"xs",className:"h-6 px-0 hover:text-blue-600",disabled:o,onClick:n,children:[l,c]}),e[4]=o,e[5]=n,e[6]=l,e[7]=c,e[8]=s):s=e[8];let f;e[9]===i?f=e[10]:(f=i&&(0,a.jsxs)("span",{className:"ml-2 text-destructive",children:["Failed to load: ",i.message]}),e[9]=i,e[10]=f);let p;return e[11]!==m||e[12]!==s||e[13]!==f?(p=(0,a.jsxs)("div",{className:"py-px text-xs",style:m,children:[s,f]}),e[11]=m,e[12]=s,e[13]=f,e[14]=p):p=e[14],p},ur=t=>{let e=(0,Ie.c)(44),{namespace:r,protocol:o,rootPath:i,backendType:n,prefix:m,depth:l,locale:c,searchValue:s,onOpenFile:f}=t,{entriesByPath:p}=Me(),{entries:x,isPending:u,error:y,hasMore:N,loadMore:g,isLoadingMore:_,loadMoreError:j}=nt(r,m);if(u){let h;e[0]===l?h=e[1]:(h=ie(l),e[0]=l,e[1]=h);let w;e[2]===Symbol.for("react.memo_cache_sentinel")?(w=(0,a.jsx)(ve,{className:"h-3 w-3 animate-spin"}),e[2]=w):w=e[2];let S;return e[3]===h?S=e[4]:(S=(0,a.jsxs)("div",{className:"flex items-center gap-1.5 py-1 text-xs text-muted-foreground",style:h,children:[w,"Loading..."]}),e[3]=h,e[4]=S),S}if(y){let h;e[5]===l?h=e[6]:(h=ie(l),e[5]=l,e[6]=h);let w;return e[7]!==y.message||e[8]!==h?(w=(0,a.jsxs)("div",{className:"py-1 text-xs text-destructive",style:h,children:["Failed to load: ",y.message]}),e[7]=y.message,e[8]=h,e[9]=w):w=e[9],w}if(x.length===0){let h;e[10]===l?h=e[11]:(h=ie(l),e[10]=l,e[11]=h);let w;return e[12]===h?w=e[13]:(w=(0,a.jsx)("div",{className:"py-1 text-xs text-muted-foreground italic",style:h,children:"Empty"}),e[12]=h,e[13]=w),w}let d;if(e[14]!==n||e[15]!==x||e[16]!==l||e[17]!==p||e[18]!==c||e[19]!==r||e[20]!==f||e[21]!==o||e[22]!==i||e[23]!==s){let h=Ne(x,{namespace:r,searchValue:s,entriesByPath:p}),w;e[25]!==n||e[26]!==x||e[27]!==l||e[28]!==c||e[29]!==r||e[30]!==f||e[31]!==o||e[32]!==i||e[33]!==s?(w=S=>{let M=He(S,x.indexOf(S));return(0,a.jsx)(We,{rowKey:M,entry:S,namespace:r,protocol:o,rootPath:i,backendType:n,depth:l,locale:c,searchValue:s,onOpenFile:f},M)},e[25]=n,e[26]=x,e[27]=l,e[28]=c,e[29]=r,e[30]=f,e[31]=o,e[32]=i,e[33]=s,e[34]=w):w=e[34],d=h.map(w),e[14]=n,e[15]=x,e[16]=l,e[17]=p,e[18]=c,e[19]=r,e[20]=f,e[21]=o,e[22]=i,e[23]=s,e[24]=d}else d=e[24];let v;e[35]!==l||e[36]!==N||e[37]!==_||e[38]!==g||e[39]!==j?(v=N&&(0,a.jsx)(Pt,{depth:l,isLoading:_,error:j,onLoadMore:g}),e[35]=l,e[36]=N,e[37]=_,e[38]=g,e[39]=j,e[40]=v):v=e[40];let F;return e[41]!==d||e[42]!==v?(F=(0,a.jsxs)(a.Fragment,{children:[d,v]}),e[41]=d,e[42]=v,e[43]=F):F=e[43],F},We=({entry:t,rowKey:e,namespace:r,protocol:o,rootPath:i,backendType:n,depth:m,locale:l,searchValue:c,onOpenFile:s})=>{var F;let[f,p]=(0,L.useState)(!1),{entriesByPath:x}=Me(),u=rt(),y=t.kind==="directory",N=Ee(t.path),g=!!c.trim(),_=y&&g&&N.toLowerCase().includes(c.trim().toLowerCase()),j=y&&g&&!!((F=x.get(ye(r,Ae(t.path))))!=null&&F.some(h=>qe(h,{namespace:r,searchValue:c,entriesByPath:x}))),d=f||j,v=(0,L.useCallback)(async()=>{try{let h=await Oe.request({namespace:r,path:t.path});if(h.error){re({title:"Download failed",description:h.error,variant:"danger"});return}h.url&&Te(h.url,h.filename??"download")}catch(h){De.error("Failed to download storage entry",h),re({title:"Download failed",description:String(h),variant:"danger"})}},[r,t.path]);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(yt,{className:le("text-xs flex items-center gap-1.5 cursor-pointer rounded-none group h-6.5",y&&"font-medium"),style:ie(m),value:`${r}:${e}`,onSelect:()=>{y?p(!d):s({entry:t,namespace:r,protocol:o,backendType:n})},children:[y?(0,a.jsx)(Le,{isExpanded:d,className:"h-3 w-3"}):(0,a.jsx)("span",{className:"w-3 shrink-0"}),y?(0,a.jsx)(ga,{className:le("h-3.5 w-3.5 shrink-0",ct.directory)}):it(N),(0,a.jsx)("span",{className:"truncate flex-1 text-left",children:N}),(0,a.jsxs)("div",{className:"flex items-center",children:[t.size>0&&(0,a.jsx)("span",{className:"text-[10px] text-muted-foreground pr-2 opacity-0 group-hover:opacity-100 transition-opacity tabular-nums",children:Pe(t.size,l)}),t.lastModified!=null&&(0,a.jsx)(Z,{content:`Last modified: ${new Date(t.lastModified*1e3).toLocaleString()}`,children:(0,a.jsx)("span",{className:"text-[10px] text-muted-foreground pr-1 opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap",children:mr(t.lastModified,l)})}),(0,a.jsxs)(ea,{children:[(0,a.jsx)(Zt,{asChild:!0,children:(0,a.jsx)(fa,{iconClassName:"h-3 w-3",onClick:h=>h.stopPropagation()})}),(0,a.jsxs)(Qt,{align:"end",onClick:h=>h.stopPropagation(),onCloseAutoFocus:h=>h.preventDefault(),children:[!y&&(0,a.jsxs)(X,{onSelect:()=>s({entry:t,namespace:r,protocol:o,backendType:n}),children:[(0,a.jsx)(St,{className:"h-3.5 w-3.5 mr-2"}),"View"]}),(0,a.jsxs)(X,{onSelect:async()=>{await we(t.path),re({title:"Copied to clipboard"})},children:[(0,a.jsx)(lt,{className:be}),"Copy path"]}),!y&&(0,a.jsxs)(X,{onSelect:()=>v(),children:[(0,a.jsx)(Fe,{className:"h-3.5 w-3.5 mr-2"}),"Download"]}),(0,a.jsx)(ue,{}),_t.map(h=>{let w=h.getCode({variableName:r,protocol:o,entry:t,backendType:n});if(w===null)return null;let S=h.icon;return(0,a.jsxs)(X,{onSelect:()=>u(w),children:[(0,a.jsx)(S,{className:be}),h.label]},h.id)})]})]})]})]}),y&&d&&(0,a.jsx)(ur,{namespace:r,protocol:o,rootPath:i,backendType:n,prefix:Ae(t.path),depth:m+1,locale:l,searchValue:_?"":c,onOpenFile:s})]})},yr=t=>{let e=(0,Ie.c)(64),{namespace:r,locale:o,searchValue:i,remoteSearch:n,onContinueRemoteSearch:m,onOpenFile:l}=t,[c,s]=(0,L.useState)(!0),{entriesByPath:f,pageMetadataByPath:p}=Me(),{clearNamespaceCache:x}=da(),u=r.name??r.displayName,{entries:y,isPending:N,error:g,hasMore:_,loadMore:j,isLoadingMore:d,loadMoreError:v,refetch:F}=nt(u),h;e[0]!==x||e[1]!==u||e[2]!==F?(h=D=>{D.stopPropagation(),x(u),F()},e[0]=x,e[1]=u,e[2]=F,e[3]=h):h=e[3];let w=h,S=N?r.storageEntries:y,M;if(e[4]!==S||e[5]!==f||e[6]!==g||e[7]!==w||e[8]!==_||e[9]!==c||e[10]!==d||e[11]!==N||e[12]!==j||e[13]!==v||e[14]!==o||e[15]!==r.backendType||e[16]!==r.displayName||e[17]!==r.name||e[18]!==r.protocol||e[19]!==r.rootPath||e[20]!==u||e[21]!==m||e[22]!==l||e[23]!==p||e[24]!==n||e[25]!==i){let D=Ne(S,{namespace:u,searchValue:i,entriesByPath:f}),C=Ue(i),P=ye(u,C),B=C===""?[]:f.get(P)??[],z=Ne(B,{namespace:u,searchValue:i,entriesByPath:f}),G=!!i.trim(),ee=D.length>0||z.length>0,Q=C!==""&&xr({hasSearch:G,hasLoadedMatches:ee,isPending:N,remoteSearch:n,searchKey:P,entriesByPath:f,pageMetadataByPath:p}),J=G&&D.length===0,V;e:{if(N&&S.length===0){let b;e[27]===Symbol.for("react.memo_cache_sentinel")?(b=(0,a.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,a.jsx)(ve,{className:"h-3 w-3 animate-spin"}),"Loading..."]}),e[27]=b):b=e[27],V=b;break e}if(n.status==="searching"){let b;e[28]===Symbol.for("react.memo_cache_sentinel")?(b=(0,a.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,a.jsx)(ve,{className:"h-3 w-3 animate-spin"}),"Searching more entries..."]}),e[28]=b):b=e[28],V=b;break e}if(n.status==="error"){let b;e[29]===n.error.message?b=e[30]:(b=(0,a.jsxs)("span",{className:"text-destructive",children:["Search failed: ",n.error.message]}),e[29]=n.error.message,e[30]=b),V=b;break e}if(n.status==="capped"){let b;e[31]===m?b=e[32]:(b=(0,a.jsx)(H,{variant:"text",size:"xs",className:"h-5 px-0 text-xs hover:text-blue-600",onClick:m,children:"Continue searching"}),e[31]=m,e[32]=b);let T;e[33]===Symbol.for("react.memo_cache_sentinel")?(T=(0,a.jsx)("span",{className:"text-[10px]",children:"(or press Enter)"}),e[33]=T):T=e[33];let $;e[34]===b?$=e[35]:($=(0,a.jsxs)("span",{className:"flex items-center gap-1.5",children:["Searched more entries.",b,T]}),e[34]=b,e[35]=$),V=$;break e}if(n.status==="exhausted"&&!ee){V="No matches";break e}if(!G&&!N&&S.length===0){V="No entries";break e}if(Q){let b;e[36]===m?b=e[37]:(b=(0,a.jsx)(H,{variant:"text",size:"xs",className:"h-5 px-0 text-xs hover:text-blue-600",onClick:m,children:"Search more entries"}),e[36]=m,e[37]=b);let T;e[38]===Symbol.for("react.memo_cache_sentinel")?(T=(0,a.jsx)("span",{className:"text-[10px]",children:"(or press Enter)"}),e[38]=T):T=e[38];let $;e[39]===b?$=e[40]:($=(0,a.jsxs)("span",{className:"flex items-center gap-1.5",children:["No loaded matches.",b,T]}),e[39]=b,e[40]=$),V=$;break e}if(G&&!ee&&S.length>0){V="No matches";break e}V=null}let K=V,R;e[41]===c?R=e[42]:(R=()=>s(!c),e[41]=c,e[42]=R);let I;e[43]===c?I=e[44]:(I=(0,a.jsx)(Le,{isExpanded:c,className:"h-3 w-3"}),e[43]=c,e[44]=I);let q;e[45]===r.protocol?q=e[46]:(q=(0,a.jsx)(va,{protocol:r.protocol}),e[45]=r.protocol,e[46]=q);let E;e[47]===r.displayName?E=e[48]:(E=(0,a.jsx)("span",{children:r.displayName}),e[47]=r.displayName,e[48]=E);let A;e[49]===r.name?A=e[50]:(A=r.name&&(0,a.jsxs)("span",{className:"text-xs text-muted-foreground font-normal",children:["(",(0,a.jsx)(Xa,{variableName:r.name}),")"]}),e[49]=r.name,e[50]=A);let U;e[51]===w?U=e[52]:(U=(0,a.jsx)(ot,{onClick:w,tooltip:"Refresh storage connection",className:"p-0",iconClassName:"h-3 w-3"}),e[51]=w,e[52]=U);let Y=r.rootPath||"(root)",k;e[53]===Y?k=e[54]:(k=(0,a.jsx)("span",{className:"text-[10px] text-muted-foreground font-normal tabular-nums ml-auto",children:Y}),e[53]=Y,e[54]=k);let O;e[55]!==r.name||e[56]!==k||e[57]!==R||e[58]!==I||e[59]!==q||e[60]!==E||e[61]!==A||e[62]!==U?(O=(0,a.jsxs)(yt,{value:r.name,onSelect:R,className:"flex flex-row font-semibold h-7 text-xs gap-1.5 bg-(--slate-2) text-muted-foreground rounded-none",children:[I,q,E,A,U,k]}),e[55]=r.name,e[56]=k,e[57]=R,e[58]=I,e[59]=q,e[60]=E,e[61]=A,e[62]=U,e[63]=O):O=e[63],M=(0,a.jsxs)(a.Fragment,{children:[O,c&&(0,a.jsxs)(a.Fragment,{children:[g&&S.length===0&&(0,a.jsx)(aa,{error:g,style:ie(1),className:"py-1 text-xs h-auto overflow-auto max-h-32 items-start",showIcon:!1}),!g&&K&&(0,a.jsx)("div",{className:"py-1 text-xs text-muted-foreground italic",style:ie(1),children:K}),D.map(b=>{let T=He(b,S.indexOf(b));return(0,a.jsx)(We,{rowKey:T,entry:b,namespace:u,protocol:r.protocol,rootPath:r.rootPath,backendType:r.backendType,depth:1,locale:o,searchValue:i,onOpenFile:l},T)}),J&&z.map(b=>{let T=He(b,B.indexOf(b));return(0,a.jsx)(We,{rowKey:`remote-search:${T}`,entry:b,namespace:u,protocol:r.protocol,rootPath:r.rootPath,backendType:r.backendType,depth:1,locale:o,searchValue:i,onOpenFile:l},`remote-search:${T}`)}),_&&!Q&&(0,a.jsx)(Pt,{depth:1,isLoading:d,error:v,onLoadMore:j})]})]}),e[4]=S,e[5]=f,e[6]=g,e[7]=w,e[8]=_,e[9]=c,e[10]=d,e[11]=N,e[12]=j,e[13]=v,e[14]=o,e[15]=r.backendType,e[16]=r.displayName,e[17]=r.name,e[18]=r.protocol,e[19]=r.rootPath,e[20]=u,e[21]=m,e[22]=l,e[23]=p,e[24]=n,e[25]=i,e[26]=M}else M=e[26];return M};const gr=()=>{let{namespaces:t,entriesByPath:e,pageMetadataByPath:r}=Me(),{locale:o}=Be(),[i,n]=(0,L.useState)(""),[m,l]=(0,L.useState)({}),[c,s]=(0,L.useState)(null),f=ca(),p=!!i.trim(),x=i.trim(),u=(0,L.useCallback)(j=>{let d=m[j];return(d==null?void 0:d.query)===x?d:hr(x)},[x,m]),y=(0,L.useCallback)((j,d)=>{l(v=>({...v,[j]:d}))},[]),N=(0,L.useCallback)(j=>{if(!x)return!1;let d=j.name??j.displayName,v=Ue(x);if(v===""||!Ft(u(d))||Ne(e.get(ye(d,""))??j.storageEntries,{namespace:d,searchValue:x,entriesByPath:e}).length>0)return!1;let F=ye(d,v);return Ne(e.get(F)??[],{namespace:d,searchValue:x,entriesByPath:e}).length>0?!1:Mt(F,e,r)},[x,e,r,u]),g=(0,L.useCallback)(async j=>{var D;if(!N(j))return;let d=x,v=j.name??j.displayName,F=Ue(d),h=ye(v,F),w=e.get(h),S=((D=r.get(h))==null?void 0:D.nextPageToken)??null,M=w!==void 0;y(v,{query:d,status:"searching"});try{for(let C=0;C<pr;C++){let P=!M||S!==null,B=[];if(P){let z=await f({namespace:v,prefix:F,pageToken:S,append:M});B=z.entries,S=z.next_page_token??null,M=!0}if((P?B:w??[]).some(z=>fr(z,d))){y(v,{query:d,status:"found"});return}if(S===null){y(v,{query:d,status:"exhausted"});return}}y(v,{query:d,status:"capped"})}catch(C){y(v,{query:d,status:"error",error:C instanceof Error?C:Error(String(C))})}},[N,x,e,f,r,y]),_=(0,L.useCallback)(()=>{let j=t.filter(N);for(let d of j)g(d)},[N,g,t]);return t.length===0?(0,a.jsx)(Ya,{title:"No storage connected",description:(0,a.jsxs)("span",{children:["Create an obstore or fsspec connection in your notebook. See the"," ",(0,a.jsx)("a",{className:"text-link",href:"https://docs.marimo.io/guides/working_with_data/remote_storage/#quick-start",target:"_blank",rel:"noopener noreferrer",children:"docs"}),"."]}),action:(0,a.jsx)(pt,{defaultTab:"storage",children:(0,a.jsxs)(H,{variant:"outline",size:"sm",children:["Add remote storage",(0,a.jsx)(ht,{className:"h-4 w-4 ml-2"})]})}),icon:(0,a.jsx)(mt,{className:"h-8 w-8"})}):(0,a.jsxs)("div",{className:"h-full flex flex-col",children:[c&&(0,a.jsx)(cr,{entry:c.entry,namespace:c.namespace,protocol:c.protocol,backendType:c.backendType,onBack:()=>s(null)}),(0,a.jsxs)(Ua,{className:le("border-b bg-background rounded-none h-full pb-10 overflow-auto outline-hidden scrollbar-thin",c&&"hidden"),shouldFilter:!1,children:[(0,a.jsxs)("div",{className:"flex items-center w-full border-b",children:[(0,a.jsx)(Ha,{placeholder:"Search entries...",className:"h-6 m-1",value:i,onValueChange:n,onKeyDown:j=>{j.key==="Enter"&&t.some(N)&&(j.preventDefault(),_())},rootClassName:"flex-1 border-b-0"}),p&&(0,a.jsx)(H,{variant:"text",size:"xs",className:"float-right border-none px-2 m-0 h-full",onClick:()=>n(""),children:(0,a.jsx)(ha,{className:"h-4 w-4"})}),(0,a.jsx)(Z,{content:"Search by file name within loaded entries, or by prefix (e.g. 'folder/x') for backend search. Press Enter to fetch more results.",delayDuration:200,children:(0,a.jsx)(ya,{className:"h-3.5 w-3.5 shrink-0 cursor-help text-muted-foreground hover:text-foreground mr-2"})}),(0,a.jsx)(pt,{defaultTab:"storage",children:(0,a.jsx)(H,{variant:"ghost",size:"sm",className:"px-2 border-0 border-l border-muted-background rounded-none focus-visible:ring-0 focus-visible:ring-offset-0",children:(0,a.jsx)(ht,{className:"h-4 w-4"})})})]}),(0,a.jsx)(qa,{className:"flex flex-col",children:t.map(j=>{let d=j.name??j.displayName;return(0,a.jsx)(yr,{namespace:j,locale:o,searchValue:i,remoteSearch:u(d),onContinueRemoteSearch:()=>{g(j)},onOpenFile:s},d)})})]})]})};var Dt=oe(),Tt=(0,L.createContext)(null);function jr(){return(0,L.useContext)(Tt)??void 0}var br=t=>{let e=(0,Dt.c)(3),{children:r}=t,o=Sa(),i;return e[0]!==r||e[1]!==o?(i=(0,a.jsx)(Tt.Provider,{value:o,children:r}),e[0]=r,e[1]=o,e[2]=i):i=e[2],i};const vr=t=>{let e=(0,Dt.c)(5),{children:r}=t,[o,i]=(0,L.useState)(null),n;e[0]!==r||e[1]!==o?(n=o&&(0,a.jsx)(Ca,{backend:Ta,options:{rootElement:o},children:(0,a.jsx)(br,{children:r})}),e[0]=r,e[1]=o,e[2]=n):n=e[2];let m;return e[3]===n?m=e[4]:(m=(0,a.jsx)("div",{ref:i,className:"contents",children:n}),e[3]=n,e[4]=m),m};async function zt(t,e){if(!je()){Te(Gt().formatNavigableHttpURL("api/files/download",new URLSearchParams({path:t})).toString(),e);return}let r=await ia().sendFileDetails({path:t});r.isBase64&&r.contents?at(Ra(ua(r.contents,r.mimeType||"application/octet-stream")),e):at(new Blob([r.contents||""],{type:r.mimeType||"application/octet-stream"}),e)}var wr=oe();const Nr=t=>{let e=(0,wr.c)(21),{file:r,mimeType:o,message:i,onDownload:n}=t,{locale:m}=Be(),l;e[0]===Symbol.for("react.memo_cache_sentinel")?(l=(0,a.jsx)("span",{className:"text-muted-foreground font-medium",children:"Path"}),e[0]=l):l=e[0];let c;e[1]===r.path?c=e[2]:(c=(0,a.jsx)("span",{className:"font-mono text-xs break-all",children:r.path}),e[1]=r.path,e[2]=c);let s;e[3]===Symbol.for("react.memo_cache_sentinel")?(s=(0,a.jsx)("span",{className:"text-muted-foreground font-medium",children:"Type"}),e[3]=s):s=e[3];let f;e[4]===o?f=e[5]:(f=(0,a.jsx)("span",{children:o}),e[4]=o,e[5]=f);let p;e[6]!==r.size||e[7]!==m?(p=r.size!=null&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"text-muted-foreground font-medium",children:"Size"}),(0,a.jsx)("span",{children:Pe(r.size,m)})]}),e[6]=r.size,e[7]=m,e[8]=p):p=e[8];let x;e[9]!==c||e[10]!==f||e[11]!==p?(x=(0,a.jsxs)("div",{className:"grid grid-cols-[auto_1fr] gap-x-4 gap-y-2",children:[l,c,s,f,p]}),e[9]=c,e[10]=f,e[11]=p,e[12]=x):x=e[12];let u;e[13]===i?u=e[14]:(u=(0,a.jsx)("div",{className:"mt-4 text-muted-foreground italic",children:i}),e[13]=i,e[14]=u);let y;e[15]===n?y=e[16]:(y=n&&(0,a.jsxs)(H,{variant:"outline",size:"sm",className:"mt-4",onClick:n,children:[(0,a.jsx)(Fe,{className:"h-3.5 w-3.5 mr-2"}),"Download"]}),e[15]=n,e[16]=y);let N;return e[17]!==x||e[18]!==u||e[19]!==y?(N=(0,a.jsxs)("div",{className:"p-4 text-sm",children:[x,u,y]}),e[17]=x,e[18]=u,e[19]=y,e[20]=N):N=e[20],N};function Ke(t,e){let r=t||"text/plain";return tt(r)?"media":e?"unsupported":r==="text/csv"?"csv":r.startsWith("text/")||r!=="default"&&r in ta||t==null?"text":"unsupported"}var Ge=new Map;const kr=({file:t,onOpenNotebook:e})=>{let{sendFileDetails:r,sendUpdateFile:o}=ze(),i=ge(Kt),n=ge(Qe),m=ge(qt),[l,c]=(0,L.useState)(""),{data:s,isPending:f,error:p,setData:x,refetch:u}=Ve(async()=>{let C=await r({path:t.path,maxBytes:10485760}),P=Ke(C.mimeType,C.isBase64);if(!C.isTooLarge&&P==="text"){let B=C.contents||"";c(Ge.get(t.path)??B)}return C},[t.path]),y=async()=>{l!==(s==null?void 0:s.contents)&&await o({path:t.path,contents:l}).then(C=>{C.success&&(x(P=>({...P,contents:l})),c(l))})},N=(0,L.useRef)(l);if(N.current=l,(0,L.useEffect)(()=>()=>{if((s==null?void 0:s.contents)==null||s.isTooLarge||Ke(s.mimeType,s.isBase64)!=="text")return;let C=N.current;C===s.contents?Ge.delete(t.path):Ge.set(t.path,C)},[t.path,s==null?void 0:s.contents,s==null?void 0:s.isTooLarge,s==null?void 0:s.mimeType,s==null?void 0:s.isBase64]),p)return(0,a.jsx)(ut,{error:p});if(f||!s)return null;let g=s.mimeType||"text/plain",_=Ke(s.mimeType,s.isBase64),j=_==="text",d=_==="csv",v=_==="media",F=m&&s.file.isMarimoFile&&(t.path===m||t.path.endsWith(`/${m}`)),h=async()=>{await zt(t.path,s.file.name)},w=oa.of([{key:i.getHotkey("global.save").key,stopPropagation:!0,run:()=>l===s.contents?!1:(y(),!0)}]),S=(0,a.jsx)(Ct,{filename:s.file.name,onRefresh:u,onDownload:n?void 0:h,actions:(0,a.jsxs)(a.Fragment,{children:[t.isMarimoFile&&!je()&&(0,a.jsx)(Z,{content:"Open notebook",children:(0,a.jsx)(H,{variant:"text",size:"xs",onClick:C=>e(C),children:(0,a.jsx)($e,{className:"h-3.5 w-3.5"})})}),j&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(Z,{content:"Copy contents to clipboard",children:(0,a.jsx)(H,{variant:"text",size:"xs",onClick:async()=>{await we(l)},children:(0,a.jsx)(lt,{className:"h-3.5 w-3.5"})})}),(0,a.jsx)(Z,{content:Wa("global.save"),children:(0,a.jsx)(H,{variant:"text",size:"xs",onClick:y,disabled:l===s.contents,children:(0,a.jsx)(za,{className:"h-3.5 w-3.5"})})})]})]})});if(s.isTooLarge||_==="unsupported")return(0,a.jsxs)(a.Fragment,{children:[S,(0,a.jsx)(Nr,{file:s.file,mimeType:g,message:s.isTooLarge?"File is too large to preview.":"This file type cannot be previewed.",onDownload:n?void 0:h})]});let M=j&&F&&(0,a.jsxs)(Ea,{variant:"warning",className:"rounded-none",children:[(0,a.jsx)(Oa,{className:"h-4 w-4"}),(0,a.jsx)(Ia,{children:"Editing the notebook file directly while running in marimo's editor may cause unintended changes. Please use with caution."})]}),D=v&&s.contents?ra({contents:s.contents,mimeType:g,isBase64:s.isBase64??!1}):void 0;return(0,a.jsxs)(a.Fragment,{children:[S,M,(0,a.jsx)(et,{mimeType:g,contents:j?l:d?s.contents??void 0:void 0,mediaSource:D,readOnly:!j,onChange:j?c:void 0,extensions:j?[w]:[]})]})},Ot=Ye(t=>{let e=t(la);return Wt(e,"no requestClientAtom set"),new ka({listFiles:e.sendListFiles,createFileOrFolder:e.sendCreateFileOrFolder,deleteFileOrFolder:e.sendDeleteFileOrFolder,copyFileOrFolder:e.sendCopyFileOrFolder,renameFileOrFolder:e.sendRenameFileOrFolder})}),Sr=Ye({});async function Cr(){await Et.get(Ot).refreshAll([])}var se=" ";const Lt={directory:t=>`os.listdir("${t}")`,python:t=>`with open("${t}", "r") as _f:
|
|
11
11
|
${se}...
|
|
12
12
|
`,json:t=>`with open("${t}", "r") as _f:
|
|
13
13
|
${se}_data = json.load(_f)
|
|
@@ -23,4 +23,4 @@ ${se}...
|
|
|
23
23
|
${se}...
|
|
24
24
|
`,unknown:t=>`with open("${t}", "r") as _f:
|
|
25
25
|
${se}...
|
|
26
|
-
`};var _r=oe(),Fr=1024*1024*100,Mr=5;function $t(t){let e=(0,_r.c)(7),r;e[0]===t?r=e[1]:(r=t===void 0?{}:t,e[0]=t,e[1]=r);let o=r,{sendCreateFileOrFolder:i}=ze(),n;e[2]===i?n=e[3]:(n=async l=>{if(l.length===0)return;let c=l.length===1;await na(c?"Uploading file...":"Uploading files...",async s=>{s.addTotal(l.length),await Ja(l,Mr,async f=>{let p=Lr(Or(f)),x="";p&&(x=Ba.guessDeliminator(p).dirname(p)),await i({path:x,type:"file",name:f.name,file:f}),s.increment(1)}),await Cr()},{title:c?"File uploaded":`${l.length} files uploaded`})},e[2]=i,e[3]=n);let m;return e[4]!==o||e[5]!==n?(m={multiple:!0,maxSize:Fr,onError:zr,onDropRejected:Pr,onDrop:n,...o},e[4]=o,e[5]=n,e[6]=m):m=e[6],$a(m)}function Pr(t){re({title:"File upload failed",description:(0,a.jsx)("div",{className:"flex flex-col gap-1",children:t.map(Dr)}),variant:"danger"})}function Dr(t){return(0,a.jsxs)("div",{children:[t.file.name," (",t.errors.map(Tr).join(", "),")"]},t.file.name)}function Tr(t){return t.message}function zr(t){De.error(t),re({title:"File upload failed",description:t.message,variant:"danger"})}function Or(t){if(t.webkitRelativePath)return t.webkitRelativePath;if("path"in t&&typeof t.path=="string")return t.path;if("relativePath"in t&&typeof t.relativePath=="string")return t.relativePath}function Lr(t){if(t)return t.replace(/^\/+/,"")}var ke=oe(),$r=Xe("marimo:showHiddenFiles",!0,Ze,{getOnInit:!0}),Bt=L.createContext(null);const Br=t=>{let e=(0,ke.c)(73),{height:r}=t,o=(0,L.useRef)(null),i=jr(),[n]=_e(Ot),m;e[0]===Symbol.for("react.memo_cache_sentinel")?(m=[],e[0]=m):m=e[0];let[l,c]=(0,L.useState)(m),[s,f]=(0,L.useState)(null),[p,x]=_e($r),{openPrompt:u}=ft(),[y,N]=_e(Sr),g;e[1]===n?g=e[2]:(g=()=>n.initialize(c),e[1]=n,e[2]=g);let _;e[3]===Symbol.for("react.memo_cache_sentinel")?(_=[],e[3]=_):_=e[3];let{isPending:j,error:d}=Re(g,_),v;e[4]!==y||e[5]!==n?(v=()=>n.refreshAll(Object.keys(y).filter(k=>y[k])),e[4]=y,e[5]=n,e[6]=v):v=e[6];let F=ae(v),h;e[7]!==x||e[8]!==p?(h=()=>{x(!p)},e[7]=x,e[8]=p,e[9]=h):h=e[9];let w=ae(h),S;e[10]!==u||e[11]!==n?(S=async()=>{u({title:"Folder name",onConfirm:async k=>{n.createFolder(k,null)}})},e[10]=u,e[11]=n,e[12]=S):S=e[12];let M=ae(S),D;e[13]!==u||e[14]!==n?(D=async()=>{u({title:"File name",onConfirm:async k=>{n.createFile({name:k,parentId:null})}})},e[13]=u,e[14]=n,e[15]=D):D=e[15];let C=ae(D),P;e[16]!==u||e[17]!==n?(P=async()=>{u({title:"Notebook name",onConfirm:async k=>{n.createFile({name:k,parentId:null,type:"notebook"})}})},e[16]=u,e[17]=n,e[18]=P):P=e[18];let B=ae(P),z;e[19]===N?z=e[20]:(z=()=>{var k;(k=o.current)==null||k.closeAll(),N({})},e[19]=N,e[20]=z);let G=ae(z),ee;e[21]!==l||e[22]!==p?(ee=Vt(l,p),e[21]=l,e[22]=p,e[23]=ee):ee=e[23];let Q=ee;if(j){let k;return e[24]===Symbol.for("react.memo_cache_sentinel")?(k=(0,a.jsx)(wa,{size:"medium",centered:!0}),e[24]=k):k=e[24],k}if(d){let k;return e[25]===d?k=e[26]:(k=(0,a.jsx)(ut,{error:d}),e[25]=d,e[26]=k),k}if(s){let k;e[27]===Symbol.for("react.memo_cache_sentinel")?(k=()=>f(null),e[27]=k):k=e[27];let O;e[28]===Symbol.for("react.memo_cache_sentinel")?(O=(0,a.jsx)(H,{onClick:k,"data-testid":"file-explorer-back-button",variant:"text",size:"xs",className:"mb-0",children:(0,a.jsx)(st,{size:16})}),e[28]=O):O=e[28];let b;e[29]===s.name?b=e[30]:(b=(0,a.jsxs)("div",{className:"flex items-center pl-1 pr-3 shrink-0 border-b justify-between",children:[O,(0,a.jsx)("span",{className:"font-bold",children:s.name})]}),e[29]=s.name,e[30]=b);let T;e[31]!==s.path||e[32]!==n?(T=ce=>Rt(ce,n.relativeFromRoot(s.path)),e[31]=s.path,e[32]=n,e[33]=T):T=e[33];let $;e[34]!==s||e[35]!==T?($=(0,a.jsx)(L.Suspense,{children:(0,a.jsx)(kr,{onOpenNotebook:T,file:s})}),e[34]=s,e[35]=T,e[36]=$):$=e[36];let te;return e[37]!==b||e[38]!==$?(te=(0,a.jsxs)(a.Fragment,{children:[b,$]}),e[37]=b,e[38]=$,e[39]=te):te=e[39],te}let J;e[40]!==G||e[41]!==C||e[42]!==M||e[43]!==B||e[44]!==w||e[45]!==F||e[46]!==p||e[47]!==n?(J=(0,a.jsx)(Vr,{onRefresh:F,onHidden:w,showHiddenFiles:p,onCreateFile:C,onCreateNotebook:B,onCreateFolder:M,onCollapseAll:G,tree:n}),e[40]=G,e[41]=C,e[42]=M,e[43]=B,e[44]=w,e[45]=F,e[46]=p,e[47]=n,e[48]=J):J=e[48];let R=r-33,K,V,I;e[49]===n?(K=e[50],V=e[51],I=e[52]):(K=async k=>{let{ids:O}=k;for(let b of O)await n.delete(b)},V=async k=>{let{id:O,name:b}=k;await n.rename(O,b)},I=async k=>{let{dragIds:O,parentId:b}=k;await n.move(O,b)},e[49]=n,e[50]=K,e[51]=V,e[52]=I);let q;e[53]===Symbol.for("react.memo_cache_sentinel")?(q=k=>{let O=k[0];O&&(O.data.isDirectory||f(O.data))},e[53]=q):q=e[53];let E;e[54]!==y||e[55]!==N||e[56]!==n?(E=async k=>{if(await n.expand(k)){let O=y[k]??!1;N({...y,[k]:!O})}},e[54]=y,e[55]=N,e[56]=n,e[57]=E):E=e[57];let A;e[58]!==i||e[59]!==y||e[60]!==R||e[61]!==K||e[62]!==V||e[63]!==I||e[64]!==E||e[65]!==Q?(A=(0,a.jsx)(Fa,{width:"100%",ref:o,height:R,className:"h-full",data:Q,initialOpenState:y,openByDefault:!1,dndManager:i,renderCursor:qr,disableDrop:Ur,onDelete:K,onRename:V,onMove:I,onSelect:q,onToggle:E,padding:15,rowHeight:30,indent:Rr,overscanCount:1e3,disableMultiSelection:!0,children:Er}),e[58]=i,e[59]=y,e[60]=R,e[61]=K,e[62]=V,e[63]=I,e[64]=E,e[65]=Q,e[66]=A):A=e[66];let U;e[67]!==A||e[68]!==n?(U=(0,a.jsx)(Bt,{value:n,children:A}),e[67]=A,e[68]=n,e[69]=U):U=e[69];let Y;return e[70]!==J||e[71]!==U?(Y=(0,a.jsxs)(a.Fragment,{children:[J,U]}),e[70]=J,e[71]=U,e[72]=Y):Y=e[72],Y};var Rr=15,Vr=t=>{let e=(0,ke.c)(37),{onRefresh:r,onHidden:o,showHiddenFiles:i,onCreateFile:n,onCreateNotebook:m,onCreateFolder:l,onCollapseAll:c}=t,s;e[0]===Symbol.for("react.memo_cache_sentinel")?(s={noDrag:!0,noDragEventsBubbling:!0},e[0]=s):s=e[0];let{getRootProps:f,getInputProps:p}=$t(s),x;e[1]===Symbol.for("react.memo_cache_sentinel")?(x=(0,a.jsx)(vt,{size:16}),e[1]=x):x=e[1];let u;e[2]===m?u=e[3]:(u=(0,a.jsx)(Z,{content:"Add notebook",children:(0,a.jsx)(H,{"data-testid":"file-explorer-add-notebook-button",onClick:m,variant:"text",size:"xs",children:x})}),e[2]=m,e[3]=u);let y;e[4]===Symbol.for("react.memo_cache_sentinel")?(y=(0,a.jsx)(wt,{size:16}),e[4]=y):y=e[4];let N;e[5]===n?N=e[6]:(N=(0,a.jsx)(Z,{content:"Add file",children:(0,a.jsx)(H,{"data-testid":"file-explorer-add-file-button",onClick:n,variant:"text",size:"xs",children:y})}),e[5]=n,e[6]=N);let g;e[7]===Symbol.for("react.memo_cache_sentinel")?(g=(0,a.jsx)(Nt,{size:16}),e[7]=g):g=e[7];let _;e[8]===l?_=e[9]:(_=(0,a.jsx)(Z,{content:"Add folder",children:(0,a.jsx)(H,{"data-testid":"file-explorer-add-folder-button",onClick:l,variant:"text",size:"xs",children:g})}),e[8]=l,e[9]=_);let j;e[10]===f?j=e[11]:(j=f({}),e[10]=f,e[11]=j);let d,v;e[12]===Symbol.for("react.memo_cache_sentinel")?(v=sa({variant:"text",size:"xs"}),d=(0,a.jsx)(La,{size:16}),e[12]=d,e[13]=v):(d=e[12],v=e[13]);let F;e[14]===j?F=e[15]:(F=(0,a.jsx)(Z,{content:"Upload file",children:(0,a.jsx)("button",{"data-testid":"file-explorer-upload-button",...j,className:v,children:d})}),e[14]=j,e[15]=F);let h;e[16]===p?h=e[17]:(h=p({}),e[16]=p,e[17]=h);let w;e[18]===h?w=e[19]:(w=(0,a.jsx)("input",{...h,type:"file"}),e[18]=h,e[19]=w);let S;e[20]===r?S=e[21]:(S=(0,a.jsx)(ot,{"data-testid":"file-explorer-refresh-button",onClick:r}),e[20]=r,e[21]=S);let M;e[22]!==o||e[23]!==i?(M=(0,a.jsx)(xa,{"data-testid":"file-explorer-hidden-files-button",isVisible:i,onToggle:o,showTooltip:"Show hidden files",hideTooltip:"Hide hidden files"}),e[22]=o,e[23]=i,e[24]=M):M=e[24];let D;e[25]===Symbol.for("react.memo_cache_sentinel")?(D=(0,a.jsx)(ar,{size:16}),e[25]=D):D=e[25];let C;e[26]===c?C=e[27]:(C=(0,a.jsx)(Z,{content:"Collapse all folders",children:(0,a.jsx)(H,{"data-testid":"file-explorer-collapse-button",onClick:c,variant:"text",size:"xs",children:D})}),e[26]=c,e[27]=C);let P;return e[28]!==F||e[29]!==w||e[30]!==S||e[31]!==M||e[32]!==C||e[33]!==u||e[34]!==N||e[35]!==_?(P=(0,a.jsxs)("div",{className:"flex items-center justify-end px-2 shrink-0 border-b",children:[u,N,_,F,w,S,M,C]}),e[28]=F,e[29]=w,e[30]=S,e[31]=M,e[32]=C,e[33]=u,e[34]=N,e[35]=_,e[36]=P):P=e[36],P},Ir=t=>{let e=(0,ke.c)(9),{node:r,onOpenMarimoFile:o}=t,i;e[0]===r?i=e[1]:(i=l=>{r.data.isDirectory||(l.stopPropagation(),r.select())},e[0]=r,e[1]=i);let n;e[2]!==r.data.isMarimoFile||e[3]!==o?(n=r.data.isMarimoFile&&!je()&&(0,a.jsxs)("span",{"data-testid":"file-explorer-open-marimo-button",className:"shrink-0 ml-2 text-sm hidden group-hover:inline hover:underline",onClick:o,children:["open ",(0,a.jsx)($e,{className:"inline ml-1",size:12})]}),e[2]=r.data.isMarimoFile,e[3]=o,e[4]=n):n=e[4];let m;return e[5]!==r.data.name||e[6]!==i||e[7]!==n?(m=(0,a.jsxs)("span",{className:"flex-1 overflow-hidden text-ellipsis",onClick:i,children:[r.data.name,n]}),e[5]=r.data.name,e[6]=i,e[7]=n,e[8]=m):m=e[8],m},Er=t=>{let e=(0,ke.c)(115),{node:r,style:o,dragHandle:i}=t,{openFile:n}=ze(),m=ge(Qe),l;e[0]!==r.data.isDirectory||e[1]!==r.data.name?(l=r.data.isDirectory?"directory":ja(r.data.name),e[0]=r.data.isDirectory,e[1]=r.data.name,e[2]=l):l=e[2];let c=l,s=ba[c],{openConfirm:f,openPrompt:p}=ft(),{createNewCell:x}=Ut(),u=Aa(),y;e[3]!==x||e[4]!==u?(y=W=>{x({code:W,before:!1,cellId:u??"__end__"})},e[3]=x,e[4]=u,e[5]=y):y=e[5];let N=y,g=(0,L.use)(Bt),_;e[6]!==r.data.path||e[7]!==g?(_=async W=>{Rt(W,g?g.relativeFromRoot(r.data.path):r.data.path)},e[6]=r.data.path,e[7]=g,e[8]=_):_=e[8];let j=_,d;e[9]!==r.data.name||e[10]!==r.id||e[11]!==r.tree||e[12]!==f?(d=async W=>{W.stopPropagation(),W.preventDefault(),f({title:"Delete file",description:`Are you sure you want to delete ${r.data.name}?`,confirmAction:(0,a.jsx)(Xt,{onClick:async()=>{await r.tree.delete(r.id)},"aria-label":"Confirm",children:"Delete"})})},e[9]=r.data.name,e[10]=r.id,e[11]=r.tree,e[12]=f,e[13]=d):d=e[13];let v=d,F;e[14]!==r||e[15]!==p||e[16]!==g?(F=async()=>{r.open(),p({title:"Folder name",onConfirm:async W=>{g==null||g.createFolder(W,r.id)}})},e[14]=r,e[15]=p,e[16]=g,e[17]=F):F=e[17];let h=ae(F),w;e[18]!==r||e[19]!==p||e[20]!==g?(w=async()=>{r.open(),p({title:"File name",onConfirm:async W=>{g==null||g.createFile({name:W,parentId:r.id})}})},e[18]=r,e[19]=p,e[20]=g,e[21]=w):w=e[21];let S=ae(w),M;e[22]!==r||e[23]!==p||e[24]!==g?(M=async()=>{r.open(),p({title:"Notebook name",onConfirm:async W=>{g==null||g.createFile({name:W,parentId:r.id,type:"notebook"})}})},e[22]=r,e[23]=p,e[24]=g,e[25]=M):M=e[25];let D=ae(M),C;e[26]!==r.data.name||e[27]!==r.id||e[28]!==g?(C=async()=>{g&&await g.copy(r.id,Ga(r.data.name))},e[26]=r.data.name,e[27]=r.id,e[28]=g,e[29]=C):C=e[29];let P=ae(C),B;e[30]===Symbol.for("react.memo_cache_sentinel")?(B=le("flex items-center cursor-pointer ml-1 text-muted-foreground whitespace-nowrap group"),e[30]=B):B=e[30];let z,G;e[31]===r?(z=e[32],G=e[33]):(z=W=>{W.stopPropagation(),r.data.isDirectory&&r.toggle()},G=(0,a.jsx)(Ar,{node:r}),e[31]=r,e[32]=z,e[33]=G);let ee=r.willReceiveDrop&&r.data.isDirectory&&"bg-accent/80 hover:bg-accent/80 text-accent-foreground",Q;e[34]===ee?Q=e[35]:(Q=le("flex items-center pl-1 py-1 cursor-pointer hover:bg-accent/50 hover:text-accent-foreground rounded-l flex-1 overflow-hidden group",ee),e[34]=ee,e[35]=Q);let J;e[36]!==s||e[37]!==c||e[38]!==r.data.isMarimoFile?(J=r.data.isMarimoFile?(0,a.jsx)(Qa,{className:"w-5 h-5 shrink-0 mr-2",strokeWidth:1.5}):(0,a.jsx)(s,{className:le("w-5 h-5 shrink-0 mr-2",ct[c]),strokeWidth:1.5}),e[36]=s,e[37]=c,e[38]=r.data.isMarimoFile,e[39]=J):J=e[39];let R;e[40]!==j||e[41]!==r?(R=r.isEditing?(0,a.jsx)(Da,{node:r}):(0,a.jsx)(Ir,{node:r,onOpenMarimoFile:j}),e[40]=j,e[41]=r,e[42]=R):R=e[42];let K;e[43]===r?K=e[44]:(K=!r.data.isDirectory&&(0,a.jsxs)(X,{onSelect:()=>r.select(),"data-testid":"file-explorer-open-file-menu-item",children:[(0,a.jsx)(St,{className:"h-3.5 w-3.5 mr-2"}),"Open file"]}),e[43]=r,e[44]=K);let V;e[45]!==r.data.isDirectory||e[46]!==r.data.path||e[47]!==n?(V=!r.data.isDirectory&&!je()&&(0,a.jsxs)(X,{onSelect:()=>{n({path:r.data.path})},"data-testid":"file-explorer-open-external-menu-item",children:[(0,a.jsx)($e,{className:"h-3.5 w-3.5 mr-2"}),"Open file in external editor"]}),e[45]=r.data.isDirectory,e[46]=r.data.path,e[47]=n,e[48]=V):V=e[48];let I;e[49]!==S||e[50]!==h||e[51]!==D||e[52]!==r.data.isDirectory?(I=r.data.isDirectory&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(X,{onSelect:()=>D(),"data-testid":"file-explorer-create-notebook-menu-item",children:[(0,a.jsx)(vt,{className:"h-3.5 w-3.5 mr-2"}),"Create notebook"]}),(0,a.jsxs)(X,{onSelect:()=>S(),"data-testid":"file-explorer-create-file-menu-item",children:[(0,a.jsx)(wt,{className:"h-3.5 w-3.5 mr-2"}),"Create file"]}),(0,a.jsxs)(X,{onSelect:()=>h(),"data-testid":"file-explorer-create-folder-menu-item",children:[(0,a.jsx)(Nt,{className:"h-3.5 w-3.5 mr-2"}),"Create folder"]}),(0,a.jsx)(ue,{})]}),e[49]=S,e[50]=h,e[51]=D,e[52]=r.data.isDirectory,e[53]=I):I=e[53];let q;e[54]===r?q=e[55]:(q=(0,a.jsx)(Na,{onSelect:()=>r.edit(),testId:"file-explorer-rename-menu-item"}),e[54]=r,e[55]=q);let E;e[56]===P?E=e[57]:(E=(0,a.jsx)(Pa,{onSelect:P,testId:"file-explorer-duplicate-menu-item"}),e[56]=P,e[57]=E);let A;e[58]===r.data.path?A=e[59]:(A=async()=>{await we(r.data.path),re({title:"Copied to clipboard"})},e[58]=r.data.path,e[59]=A);let U;e[60]===Symbol.for("react.memo_cache_sentinel")?(U=(0,a.jsx)(kt,{className:be}),e[60]=U):U=e[60];let Y;e[61]===A?Y=e[62]:(Y=(0,a.jsxs)(X,{onSelect:A,"data-testid":"file-explorer-copy-path-menu-item",children:[U,"Copy path"]}),e[61]=A,e[62]=Y);let k;e[63]!==r.data.path||e[64]!==g?(k=g&&(0,a.jsxs)(X,{onSelect:async()=>{await we(g.relativeFromRoot(r.data.path)),re({title:"Copied to clipboard"})},"data-testid":"file-explorer-copy-relative-path-menu-item",children:[(0,a.jsx)(kt,{className:"h-3.5 w-3.5 mr-2"}),"Copy relative path"]}),e[63]=r.data.path,e[64]=g,e[65]=k):k=e[65];let O;e[66]===Symbol.for("react.memo_cache_sentinel")?(O=(0,a.jsx)(ue,{}),e[66]=O):O=e[66];let b;e[67]!==c||e[68]!==N||e[69]!==r.data?(b=()=>{let{path:W}=r.data;N(Lt[c](W))},e[67]=c,e[68]=N,e[69]=r.data,e[70]=b):b=e[70];let T;e[71]===Symbol.for("react.memo_cache_sentinel")?(T=(0,a.jsx)(pa,{className:be}),e[71]=T):T=e[71];let $;e[72]===b?$=e[73]:($=(0,a.jsxs)(X,{onSelect:b,"data-testid":"file-explorer-insert-snippet-menu-item",children:[T,"Insert snippet for reading file"]}),e[72]=b,e[73]=$);let te;e[74]!==c||e[75]!==r.data?(te=async()=>{re({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"});let{path:W}=r.data;await we(Lt[c](W))},e[74]=c,e[75]=r.data,e[76]=te):te=e[76];let ce;e[77]===Symbol.for("react.memo_cache_sentinel")?(ce=(0,a.jsx)(Ht,{className:be}),e[77]=ce):ce=e[77];let de;e[78]===te?de=e[79]:(de=(0,a.jsxs)(X,{onSelect:te,"data-testid":"file-explorer-copy-snippet-menu-item",children:[ce,"Copy snippet for reading file"]}),e[78]=te,e[79]=de);let me;e[80]!==j||e[81]!==r.data.isMarimoFile?(me=r.data.isMarimoFile&&!je()&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(ue,{}),(0,a.jsxs)(X,{onSelect:j,"data-testid":"file-explorer-open-notebook-menu-item",children:[(0,a.jsx)(nr,{className:"h-3.5 w-3.5 mr-2"}),"Open notebook"]})]}),e[80]=j,e[81]=r.data.isMarimoFile,e[82]=me):me=e[82];let Se;e[83]===Symbol.for("react.memo_cache_sentinel")?(Se=(0,a.jsx)(ue,{}),e[83]=Se):Se=e[83];let pe;e[84]!==m||e[85]!==r.data.isDirectory||e[86]!==r.data.name||e[87]!==r.data.path?(pe=!r.data.isDirectory&&!m&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(X,{onSelect:async()=>{await zt(r.data.path,r.data.name)},"data-testid":"file-explorer-download-menu-item",children:[(0,a.jsx)(Fe,{className:"h-3.5 w-3.5 mr-2"}),"Download"]}),(0,a.jsx)(ue,{})]}),e[84]=m,e[85]=r.data.isDirectory,e[86]=r.data.name,e[87]=r.data.path,e[88]=pe):pe=e[88];let he;e[89]===v?he=e[90]:(he=(0,a.jsx)(Ma,{onSelect:v,testId:"file-explorer-delete-menu-item"}),e[89]=v,e[90]=he);let xe;e[91]!==K||e[92]!==V||e[93]!==I||e[94]!==q||e[95]!==E||e[96]!==Y||e[97]!==k||e[98]!==$||e[99]!==de||e[100]!==me||e[101]!==pe||e[102]!==he?(xe=(0,a.jsxs)(_a,{testId:"file-explorer-more-button",iconClassName:"w-5 h-5",children:[K,V,I,q,E,Y,k,O,$,de,me,Se,pe,he]}),e[91]=K,e[92]=V,e[93]=I,e[94]=q,e[95]=E,e[96]=Y,e[97]=k,e[98]=$,e[99]=de,e[100]=me,e[101]=pe,e[102]=he,e[103]=xe):xe=e[103];let fe;e[104]!==Q||e[105]!==J||e[106]!==R||e[107]!==xe?(fe=(0,a.jsxs)("span",{className:Q,children:[J,R,xe]}),e[104]=Q,e[105]=J,e[106]=R,e[107]=xe,e[108]=fe):fe=e[108];let Ce;return e[109]!==i||e[110]!==o||e[111]!==z||e[112]!==G||e[113]!==fe?(Ce=(0,a.jsxs)("div",{style:o,ref:i,className:B,draggable:!0,onClick:z,children:[G,fe]}),e[109]=i,e[110]=o,e[111]=z,e[112]=G,e[113]=fe,e[114]=Ce):Ce=e[114],Ce},Ar=t=>{let e=(0,ke.c)(3),{node:r}=t;if(!r.data.isDirectory){let i;return e[0]===Symbol.for("react.memo_cache_sentinel")?(i=(0,a.jsx)("span",{className:"w-4 h-4 shrink-0"}),e[0]=i):i=e[0],i}let o;return e[1]===r.isOpen?o=e[2]:(o=(0,a.jsx)(Le,{isExpanded:r.isOpen,className:"w-4 h-4"}),e[1]=r.isOpen,e[2]=o),o};function Rt(t,e){t.stopPropagation(),t.preventDefault(),er(e)}function Vt(t,e){if(e)return t;let r=[];for(let o of t){if(Hr(o.name))continue;let i=o;if(o.children){let n=Vt(o.children,e);n!==o.children&&(i={...o,children:n})}r.push(i)}return r}function Hr(t){return!!t.startsWith(".")}function qr(){return null}function Ur(t){let{parentNode:e}=t;return!e.data.isDirectory}var It=oe(),Wr=Xe("marimo:file-explorer-panel:state",{openSections:["files"],hasUserInteracted:!1},Ze),Kr=t=>{let e=(0,It.c)(20),{height:r}=t,o;e[0]===Symbol.for("react.memo_cache_sentinel")?(o={noClick:!0,noKeyboard:!0},e[0]=o):o=e[0];let{getRootProps:i,getInputProps:n,isDragActive:m}=$t(o),l;e[1]===i?l=e[2]:(l=i(),e[1]=i,e[2]=l);let c;e[3]===Symbol.for("react.memo_cache_sentinel")?(c=le("flex flex-col overflow-hidden relative"),e[3]=c):c=e[3];let s;e[4]===r?s=e[5]:(s={height:r},e[4]=r,e[5]=s);let f;e[6]===n?f=e[7]:(f=n(),e[6]=n,e[7]=f);let p;e[8]===f?p=e[9]:(p=(0,a.jsx)("input",{...f}),e[8]=f,e[9]=p);let x;e[10]===m?x=e[11]:(x=m&&(0,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"}),e[10]=m,e[11]=x);let u;e[12]===r?u=e[13]:(u=(0,a.jsx)(Br,{height:r}),e[12]=r,e[13]=u);let y;return e[14]!==l||e[15]!==s||e[16]!==p||e[17]!==x||e[18]!==u?(y=(0,a.jsx)(vr,{children:(0,a.jsxs)("div",{...l,className:c,style:s,children:[p,x,u]})}),e[14]=l,e[15]=s,e[16]=p,e[17]=x,e[18]=u,e[19]=y):y=e[19],y},Gr=33,Jr=()=>{let t=(0,It.c)(36),{ref:e,height:r}=Ka(),o=r===void 0?500:r,[i,n]=_e(Wr),m=ge(ma).length,l;e:{if(!i.hasUserInteracted&&m>0){if(i.openSections.includes("remote-storage")){l=i.openSections;break e}let z;t[0]===i.openSections?z=t[1]:(z=[...i.openSections,"remote-storage"],t[0]=i.openSections,t[1]=z),l=z;break e}l=i.openSections}let c=l,s;t[2]===n?s=t[3]:(s=z=>{n({openSections:z,hasUserInteracted:!0})},t[2]=n,t[3]=s);let f=s,p=o-Gr*2,x;t[4]===c?x=t[5]:(x=c.includes("remote-storage"),t[4]=c,t[5]=x);let u=x,y;t[6]!==c||t[7]!==u?(y=u&&c.includes("files"),t[6]=c,t[7]=u,t[8]=y):y=t[8];let N=y,g;t[9]!==p||t[10]!==N?(g=N?Math.round(p*.4):p,t[9]=p,t[10]=N,t[11]=g):g=t[11];let _=g,j=Math.max(200,N?p-_:p),d;t[12]===Symbol.for("react.memo_cache_sentinel")?(d=(0,a.jsx)(mt,{className:"w-4 h-4"}),t[12]=d):d=t[12];let v;t[13]===m?v=t[14]:(v=m>0&&(0,a.jsx)(Za,{children:m}),t[13]=m,t[14]=v);let F;t[15]===v?F=t[16]:(F=(0,a.jsxs)(jt,{children:[d," Remote storage",v]}),t[15]=v,t[16]=F);let h;t[17]===_?h=t[18]:(h={maxHeight:_},t[17]=_,t[18]=h);let w;t[19]===Symbol.for("react.memo_cache_sentinel")?(w=(0,a.jsx)(gr,{}),t[19]=w):w=t[19];let S;t[20]===h?S=t[21]:(S=(0,a.jsx)(bt,{className:"overflow-auto",style:h,children:w}),t[20]=h,t[21]=S);let M;t[22]!==S||t[23]!==F?(M=(0,a.jsxs)(gt,{value:"remote-storage",children:[F,S]}),t[22]=S,t[23]=F,t[24]=M):M=t[24];let D;t[25]===Symbol.for("react.memo_cache_sentinel")?(D=(0,a.jsxs)(jt,{children:[(0,a.jsx)(dt,{className:"w-4 h-4"}),"Files"]}),t[25]=D):D=t[25];let C;t[26]===j?C=t[27]:(C=(0,a.jsxs)(gt,{value:"files",children:[D,(0,a.jsx)(bt,{children:(0,a.jsx)(Kr,{height:j})})]}),t[26]=j,t[27]=C);let P;t[28]!==f||t[29]!==c||t[30]!==M||t[31]!==C?(P=(0,a.jsxs)(Yt,{type:"multiple",value:c,onValueChange:f,children:[M,C]}),t[28]=f,t[29]=c,t[30]=M,t[31]=C,t[32]=P):P=t[32];let B;return t[33]!==e||t[34]!==P?(B=(0,a.jsx)("div",{ref:e,className:"h-full overflow-auto",children:P}),t[33]=e,t[34]=P,t[35]=B):B=t[35],B};export{Jr as default};
|
|
26
|
+
`};var _r=oe(),Fr=1024*1024*100,Mr=5;function $t(t){let e=(0,_r.c)(7),r;e[0]===t?r=e[1]:(r=t===void 0?{}:t,e[0]=t,e[1]=r);let o=r,{sendCreateFileOrFolder:i}=ze(),n;e[2]===i?n=e[3]:(n=async l=>{if(l.length===0)return;let c=l.length===1;await na(c?"Uploading file...":"Uploading files...",async s=>{s.addTotal(l.length),await Ja(l,Mr,async f=>{let p=Lr(Or(f)),x="";p&&(x=Ba.guessDeliminator(p).dirname(p)),await i({path:x,type:"file",name:f.name,file:f}),s.increment(1)}),await Cr()},{title:c?"File uploaded":`${l.length} files uploaded`})},e[2]=i,e[3]=n);let m;return e[4]!==o||e[5]!==n?(m={multiple:!0,maxSize:Fr,onError:zr,onDropRejected:Pr,onDrop:n,...o},e[4]=o,e[5]=n,e[6]=m):m=e[6],$a(m)}function Pr(t){re({title:"File upload failed",description:(0,a.jsx)("div",{className:"flex flex-col gap-1",children:t.map(Dr)}),variant:"danger"})}function Dr(t){return(0,a.jsxs)("div",{children:[t.file.name," (",t.errors.map(Tr).join(", "),")"]},t.file.name)}function Tr(t){return t.message}function zr(t){De.error(t),re({title:"File upload failed",description:t.message,variant:"danger"})}function Or(t){if(t.webkitRelativePath)return t.webkitRelativePath;if("path"in t&&typeof t.path=="string")return t.path;if("relativePath"in t&&typeof t.relativePath=="string")return t.relativePath}function Lr(t){if(t)return t.replace(/^\/+/,"")}var ke=oe(),$r=Ze("marimo:showHiddenFiles",!0,Xe,{getOnInit:!0}),Bt=L.createContext(null);const Br=t=>{let e=(0,ke.c)(73),{height:r}=t,o=(0,L.useRef)(null),i=jr(),[n]=_e(Ot),m;e[0]===Symbol.for("react.memo_cache_sentinel")?(m=[],e[0]=m):m=e[0];let[l,c]=(0,L.useState)(m),[s,f]=(0,L.useState)(null),[p,x]=_e($r),{openPrompt:u}=ft(),[y,N]=_e(Sr),g;e[1]===n?g=e[2]:(g=()=>n.initialize(c),e[1]=n,e[2]=g);let _;e[3]===Symbol.for("react.memo_cache_sentinel")?(_=[],e[3]=_):_=e[3];let{isPending:j,error:d}=Ve(g,_),v;e[4]!==y||e[5]!==n?(v=()=>n.refreshAll(Object.keys(y).filter(k=>y[k])),e[4]=y,e[5]=n,e[6]=v):v=e[6];let F=ae(v),h;e[7]!==x||e[8]!==p?(h=()=>{x(!p)},e[7]=x,e[8]=p,e[9]=h):h=e[9];let w=ae(h),S;e[10]!==u||e[11]!==n?(S=async()=>{u({title:"Folder name",onConfirm:async k=>{n.createFolder(k,null)}})},e[10]=u,e[11]=n,e[12]=S):S=e[12];let M=ae(S),D;e[13]!==u||e[14]!==n?(D=async()=>{u({title:"File name",onConfirm:async k=>{n.createFile({name:k,parentId:null})}})},e[13]=u,e[14]=n,e[15]=D):D=e[15];let C=ae(D),P;e[16]!==u||e[17]!==n?(P=async()=>{u({title:"Notebook name",onConfirm:async k=>{n.createFile({name:k,parentId:null,type:"notebook"})}})},e[16]=u,e[17]=n,e[18]=P):P=e[18];let B=ae(P),z;e[19]===N?z=e[20]:(z=()=>{var k;(k=o.current)==null||k.closeAll(),N({})},e[19]=N,e[20]=z);let G=ae(z),ee;e[21]!==l||e[22]!==p?(ee=Rt(l,p),e[21]=l,e[22]=p,e[23]=ee):ee=e[23];let Q=ee;if(j){let k;return e[24]===Symbol.for("react.memo_cache_sentinel")?(k=(0,a.jsx)(wa,{size:"medium",centered:!0}),e[24]=k):k=e[24],k}if(d){let k;return e[25]===d?k=e[26]:(k=(0,a.jsx)(ut,{error:d}),e[25]=d,e[26]=k),k}if(s){let k;e[27]===Symbol.for("react.memo_cache_sentinel")?(k=()=>f(null),e[27]=k):k=e[27];let O;e[28]===Symbol.for("react.memo_cache_sentinel")?(O=(0,a.jsx)(H,{onClick:k,"data-testid":"file-explorer-back-button",variant:"text",size:"xs",className:"mb-0",children:(0,a.jsx)(st,{size:16})}),e[28]=O):O=e[28];let b;e[29]===s.name?b=e[30]:(b=(0,a.jsxs)("div",{className:"flex items-center pl-1 pr-3 shrink-0 border-b justify-between",children:[O,(0,a.jsx)("span",{className:"font-bold",children:s.name})]}),e[29]=s.name,e[30]=b);let T;e[31]!==s.path||e[32]!==n?(T=ce=>Vt(ce,n.relativeFromRoot(s.path)),e[31]=s.path,e[32]=n,e[33]=T):T=e[33];let $;e[34]!==s||e[35]!==T?($=(0,a.jsx)(L.Suspense,{children:(0,a.jsx)(kr,{onOpenNotebook:T,file:s})}),e[34]=s,e[35]=T,e[36]=$):$=e[36];let te;return e[37]!==b||e[38]!==$?(te=(0,a.jsxs)(a.Fragment,{children:[b,$]}),e[37]=b,e[38]=$,e[39]=te):te=e[39],te}let J;e[40]!==G||e[41]!==C||e[42]!==M||e[43]!==B||e[44]!==w||e[45]!==F||e[46]!==p||e[47]!==n?(J=(0,a.jsx)(Rr,{onRefresh:F,onHidden:w,showHiddenFiles:p,onCreateFile:C,onCreateNotebook:B,onCreateFolder:M,onCollapseAll:G,tree:n}),e[40]=G,e[41]=C,e[42]=M,e[43]=B,e[44]=w,e[45]=F,e[46]=p,e[47]=n,e[48]=J):J=e[48];let V=r-33,K,R,I;e[49]===n?(K=e[50],R=e[51],I=e[52]):(K=async k=>{let{ids:O}=k;for(let b of O)await n.delete(b)},R=async k=>{let{id:O,name:b}=k;await n.rename(O,b)},I=async k=>{let{dragIds:O,parentId:b}=k;await n.move(O,b)},e[49]=n,e[50]=K,e[51]=R,e[52]=I);let q;e[53]===Symbol.for("react.memo_cache_sentinel")?(q=k=>{let O=k[0];O&&(O.data.isDirectory||f(O.data))},e[53]=q):q=e[53];let E;e[54]!==y||e[55]!==N||e[56]!==n?(E=async k=>{if(await n.expand(k)){let O=y[k]??!1;N({...y,[k]:!O})}},e[54]=y,e[55]=N,e[56]=n,e[57]=E):E=e[57];let A;e[58]!==i||e[59]!==y||e[60]!==V||e[61]!==K||e[62]!==R||e[63]!==I||e[64]!==E||e[65]!==Q?(A=(0,a.jsx)(Fa,{width:"100%",ref:o,height:V,className:"h-full",data:Q,initialOpenState:y,openByDefault:!1,dndManager:i,renderCursor:qr,disableDrop:Ur,onDelete:K,onRename:R,onMove:I,onSelect:q,onToggle:E,padding:15,rowHeight:30,indent:Vr,overscanCount:1e3,disableMultiSelection:!0,children:Er}),e[58]=i,e[59]=y,e[60]=V,e[61]=K,e[62]=R,e[63]=I,e[64]=E,e[65]=Q,e[66]=A):A=e[66];let U;e[67]!==A||e[68]!==n?(U=(0,a.jsx)(Bt,{value:n,children:A}),e[67]=A,e[68]=n,e[69]=U):U=e[69];let Y;return e[70]!==J||e[71]!==U?(Y=(0,a.jsxs)(a.Fragment,{children:[J,U]}),e[70]=J,e[71]=U,e[72]=Y):Y=e[72],Y};var Vr=15,Rr=t=>{let e=(0,ke.c)(37),{onRefresh:r,onHidden:o,showHiddenFiles:i,onCreateFile:n,onCreateNotebook:m,onCreateFolder:l,onCollapseAll:c}=t,s;e[0]===Symbol.for("react.memo_cache_sentinel")?(s={noDrag:!0,noDragEventsBubbling:!0},e[0]=s):s=e[0];let{getRootProps:f,getInputProps:p}=$t(s),x;e[1]===Symbol.for("react.memo_cache_sentinel")?(x=(0,a.jsx)(vt,{size:16}),e[1]=x):x=e[1];let u;e[2]===m?u=e[3]:(u=(0,a.jsx)(Z,{content:"Add notebook",children:(0,a.jsx)(H,{"data-testid":"file-explorer-add-notebook-button",onClick:m,variant:"text",size:"xs",children:x})}),e[2]=m,e[3]=u);let y;e[4]===Symbol.for("react.memo_cache_sentinel")?(y=(0,a.jsx)(wt,{size:16}),e[4]=y):y=e[4];let N;e[5]===n?N=e[6]:(N=(0,a.jsx)(Z,{content:"Add file",children:(0,a.jsx)(H,{"data-testid":"file-explorer-add-file-button",onClick:n,variant:"text",size:"xs",children:y})}),e[5]=n,e[6]=N);let g;e[7]===Symbol.for("react.memo_cache_sentinel")?(g=(0,a.jsx)(Nt,{size:16}),e[7]=g):g=e[7];let _;e[8]===l?_=e[9]:(_=(0,a.jsx)(Z,{content:"Add folder",children:(0,a.jsx)(H,{"data-testid":"file-explorer-add-folder-button",onClick:l,variant:"text",size:"xs",children:g})}),e[8]=l,e[9]=_);let j;e[10]===f?j=e[11]:(j=f({}),e[10]=f,e[11]=j);let d,v;e[12]===Symbol.for("react.memo_cache_sentinel")?(v=sa({variant:"text",size:"xs"}),d=(0,a.jsx)(La,{size:16}),e[12]=d,e[13]=v):(d=e[12],v=e[13]);let F;e[14]===j?F=e[15]:(F=(0,a.jsx)(Z,{content:"Upload file",children:(0,a.jsx)("button",{"data-testid":"file-explorer-upload-button",...j,className:v,children:d})}),e[14]=j,e[15]=F);let h;e[16]===p?h=e[17]:(h=p({}),e[16]=p,e[17]=h);let w;e[18]===h?w=e[19]:(w=(0,a.jsx)("input",{...h,type:"file"}),e[18]=h,e[19]=w);let S;e[20]===r?S=e[21]:(S=(0,a.jsx)(ot,{"data-testid":"file-explorer-refresh-button",onClick:r}),e[20]=r,e[21]=S);let M;e[22]!==o||e[23]!==i?(M=(0,a.jsx)(xa,{"data-testid":"file-explorer-hidden-files-button",isVisible:i,onToggle:o,showTooltip:"Show hidden files",hideTooltip:"Hide hidden files"}),e[22]=o,e[23]=i,e[24]=M):M=e[24];let D;e[25]===Symbol.for("react.memo_cache_sentinel")?(D=(0,a.jsx)(ar,{size:16}),e[25]=D):D=e[25];let C;e[26]===c?C=e[27]:(C=(0,a.jsx)(Z,{content:"Collapse all folders",children:(0,a.jsx)(H,{"data-testid":"file-explorer-collapse-button",onClick:c,variant:"text",size:"xs",children:D})}),e[26]=c,e[27]=C);let P;return e[28]!==F||e[29]!==w||e[30]!==S||e[31]!==M||e[32]!==C||e[33]!==u||e[34]!==N||e[35]!==_?(P=(0,a.jsxs)("div",{className:"flex items-center justify-end px-2 shrink-0 border-b",children:[u,N,_,F,w,S,M,C]}),e[28]=F,e[29]=w,e[30]=S,e[31]=M,e[32]=C,e[33]=u,e[34]=N,e[35]=_,e[36]=P):P=e[36],P},Ir=t=>{let e=(0,ke.c)(9),{node:r,onOpenMarimoFile:o}=t,i;e[0]===r?i=e[1]:(i=l=>{r.data.isDirectory||(l.stopPropagation(),r.select())},e[0]=r,e[1]=i);let n;e[2]!==r.data.isMarimoFile||e[3]!==o?(n=r.data.isMarimoFile&&!je()&&(0,a.jsxs)("span",{"data-testid":"file-explorer-open-marimo-button",className:"shrink-0 ml-2 text-sm hidden group-hover:inline hover:underline",onClick:o,children:["open ",(0,a.jsx)($e,{className:"inline ml-1",size:12})]}),e[2]=r.data.isMarimoFile,e[3]=o,e[4]=n):n=e[4];let m;return e[5]!==r.data.name||e[6]!==i||e[7]!==n?(m=(0,a.jsxs)("span",{className:"flex-1 overflow-hidden text-ellipsis",onClick:i,children:[r.data.name,n]}),e[5]=r.data.name,e[6]=i,e[7]=n,e[8]=m):m=e[8],m},Er=t=>{let e=(0,ke.c)(115),{node:r,style:o,dragHandle:i}=t,{openFile:n}=ze(),m=ge(Qe),l;e[0]!==r.data.isDirectory||e[1]!==r.data.name?(l=r.data.isDirectory?"directory":ja(r.data.name),e[0]=r.data.isDirectory,e[1]=r.data.name,e[2]=l):l=e[2];let c=l,s=ba[c],{openConfirm:f,openPrompt:p}=ft(),{createNewCell:x}=Ht(),u=Aa(),y;e[3]!==x||e[4]!==u?(y=W=>{x({code:W,before:!1,cellId:u??"__end__"})},e[3]=x,e[4]=u,e[5]=y):y=e[5];let N=y,g=(0,L.use)(Bt),_;e[6]!==r.data.path||e[7]!==g?(_=async W=>{Vt(W,g?g.relativeFromRoot(r.data.path):r.data.path)},e[6]=r.data.path,e[7]=g,e[8]=_):_=e[8];let j=_,d;e[9]!==r.data.name||e[10]!==r.id||e[11]!==r.tree||e[12]!==f?(d=async W=>{W.stopPropagation(),W.preventDefault(),f({title:"Delete file",description:`Are you sure you want to delete ${r.data.name}?`,confirmAction:(0,a.jsx)(Xt,{onClick:async()=>{await r.tree.delete(r.id)},"aria-label":"Confirm",children:"Delete"})})},e[9]=r.data.name,e[10]=r.id,e[11]=r.tree,e[12]=f,e[13]=d):d=e[13];let v=d,F;e[14]!==r||e[15]!==p||e[16]!==g?(F=async()=>{r.open(),p({title:"Folder name",onConfirm:async W=>{g==null||g.createFolder(W,r.id)}})},e[14]=r,e[15]=p,e[16]=g,e[17]=F):F=e[17];let h=ae(F),w;e[18]!==r||e[19]!==p||e[20]!==g?(w=async()=>{r.open(),p({title:"File name",onConfirm:async W=>{g==null||g.createFile({name:W,parentId:r.id})}})},e[18]=r,e[19]=p,e[20]=g,e[21]=w):w=e[21];let S=ae(w),M;e[22]!==r||e[23]!==p||e[24]!==g?(M=async()=>{r.open(),p({title:"Notebook name",onConfirm:async W=>{g==null||g.createFile({name:W,parentId:r.id,type:"notebook"})}})},e[22]=r,e[23]=p,e[24]=g,e[25]=M):M=e[25];let D=ae(M),C;e[26]!==r.data.name||e[27]!==r.id||e[28]!==g?(C=async()=>{g&&await g.copy(r.id,Ga(r.data.name))},e[26]=r.data.name,e[27]=r.id,e[28]=g,e[29]=C):C=e[29];let P=ae(C),B;e[30]===Symbol.for("react.memo_cache_sentinel")?(B=le("flex items-center cursor-pointer ml-1 text-muted-foreground whitespace-nowrap group"),e[30]=B):B=e[30];let z,G;e[31]===r?(z=e[32],G=e[33]):(z=W=>{W.stopPropagation(),r.data.isDirectory&&r.toggle()},G=(0,a.jsx)(Ar,{node:r}),e[31]=r,e[32]=z,e[33]=G);let ee=r.willReceiveDrop&&r.data.isDirectory&&"bg-accent/80 hover:bg-accent/80 text-accent-foreground",Q;e[34]===ee?Q=e[35]:(Q=le("flex items-center pl-1 py-1 cursor-pointer hover:bg-accent/50 hover:text-accent-foreground rounded-l flex-1 overflow-hidden group",ee),e[34]=ee,e[35]=Q);let J;e[36]!==s||e[37]!==c||e[38]!==r.data.isMarimoFile?(J=r.data.isMarimoFile?(0,a.jsx)(Qa,{className:"w-5 h-5 shrink-0 mr-2",strokeWidth:1.5}):(0,a.jsx)(s,{className:le("w-5 h-5 shrink-0 mr-2",ct[c]),strokeWidth:1.5}),e[36]=s,e[37]=c,e[38]=r.data.isMarimoFile,e[39]=J):J=e[39];let V;e[40]!==j||e[41]!==r?(V=r.isEditing?(0,a.jsx)(Da,{node:r}):(0,a.jsx)(Ir,{node:r,onOpenMarimoFile:j}),e[40]=j,e[41]=r,e[42]=V):V=e[42];let K;e[43]===r?K=e[44]:(K=!r.data.isDirectory&&(0,a.jsxs)(X,{onSelect:()=>r.select(),"data-testid":"file-explorer-open-file-menu-item",children:[(0,a.jsx)(St,{className:"h-3.5 w-3.5 mr-2"}),"Open file"]}),e[43]=r,e[44]=K);let R;e[45]!==r.data.isDirectory||e[46]!==r.data.path||e[47]!==n?(R=!r.data.isDirectory&&!je()&&(0,a.jsxs)(X,{onSelect:()=>{n({path:r.data.path})},"data-testid":"file-explorer-open-external-menu-item",children:[(0,a.jsx)($e,{className:"h-3.5 w-3.5 mr-2"}),"Open file in external editor"]}),e[45]=r.data.isDirectory,e[46]=r.data.path,e[47]=n,e[48]=R):R=e[48];let I;e[49]!==S||e[50]!==h||e[51]!==D||e[52]!==r.data.isDirectory?(I=r.data.isDirectory&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(X,{onSelect:()=>D(),"data-testid":"file-explorer-create-notebook-menu-item",children:[(0,a.jsx)(vt,{className:"h-3.5 w-3.5 mr-2"}),"Create notebook"]}),(0,a.jsxs)(X,{onSelect:()=>S(),"data-testid":"file-explorer-create-file-menu-item",children:[(0,a.jsx)(wt,{className:"h-3.5 w-3.5 mr-2"}),"Create file"]}),(0,a.jsxs)(X,{onSelect:()=>h(),"data-testid":"file-explorer-create-folder-menu-item",children:[(0,a.jsx)(Nt,{className:"h-3.5 w-3.5 mr-2"}),"Create folder"]}),(0,a.jsx)(ue,{})]}),e[49]=S,e[50]=h,e[51]=D,e[52]=r.data.isDirectory,e[53]=I):I=e[53];let q;e[54]===r?q=e[55]:(q=(0,a.jsx)(Na,{onSelect:()=>r.edit(),testId:"file-explorer-rename-menu-item"}),e[54]=r,e[55]=q);let E;e[56]===P?E=e[57]:(E=(0,a.jsx)(Pa,{onSelect:P,testId:"file-explorer-duplicate-menu-item"}),e[56]=P,e[57]=E);let A;e[58]===r.data.path?A=e[59]:(A=async()=>{await we(r.data.path),re({title:"Copied to clipboard"})},e[58]=r.data.path,e[59]=A);let U;e[60]===Symbol.for("react.memo_cache_sentinel")?(U=(0,a.jsx)(kt,{className:be}),e[60]=U):U=e[60];let Y;e[61]===A?Y=e[62]:(Y=(0,a.jsxs)(X,{onSelect:A,"data-testid":"file-explorer-copy-path-menu-item",children:[U,"Copy path"]}),e[61]=A,e[62]=Y);let k;e[63]!==r.data.path||e[64]!==g?(k=g&&(0,a.jsxs)(X,{onSelect:async()=>{await we(g.relativeFromRoot(r.data.path)),re({title:"Copied to clipboard"})},"data-testid":"file-explorer-copy-relative-path-menu-item",children:[(0,a.jsx)(kt,{className:"h-3.5 w-3.5 mr-2"}),"Copy relative path"]}),e[63]=r.data.path,e[64]=g,e[65]=k):k=e[65];let O;e[66]===Symbol.for("react.memo_cache_sentinel")?(O=(0,a.jsx)(ue,{}),e[66]=O):O=e[66];let b;e[67]!==c||e[68]!==N||e[69]!==r.data?(b=()=>{let{path:W}=r.data;N(Lt[c](W))},e[67]=c,e[68]=N,e[69]=r.data,e[70]=b):b=e[70];let T;e[71]===Symbol.for("react.memo_cache_sentinel")?(T=(0,a.jsx)(pa,{className:be}),e[71]=T):T=e[71];let $;e[72]===b?$=e[73]:($=(0,a.jsxs)(X,{onSelect:b,"data-testid":"file-explorer-insert-snippet-menu-item",children:[T,"Insert snippet for reading file"]}),e[72]=b,e[73]=$);let te;e[74]!==c||e[75]!==r.data?(te=async()=>{re({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"});let{path:W}=r.data;await we(Lt[c](W))},e[74]=c,e[75]=r.data,e[76]=te):te=e[76];let ce;e[77]===Symbol.for("react.memo_cache_sentinel")?(ce=(0,a.jsx)(Ut,{className:be}),e[77]=ce):ce=e[77];let de;e[78]===te?de=e[79]:(de=(0,a.jsxs)(X,{onSelect:te,"data-testid":"file-explorer-copy-snippet-menu-item",children:[ce,"Copy snippet for reading file"]}),e[78]=te,e[79]=de);let me;e[80]!==j||e[81]!==r.data.isMarimoFile?(me=r.data.isMarimoFile&&!je()&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(ue,{}),(0,a.jsxs)(X,{onSelect:j,"data-testid":"file-explorer-open-notebook-menu-item",children:[(0,a.jsx)(nr,{className:"h-3.5 w-3.5 mr-2"}),"Open notebook"]})]}),e[80]=j,e[81]=r.data.isMarimoFile,e[82]=me):me=e[82];let Se;e[83]===Symbol.for("react.memo_cache_sentinel")?(Se=(0,a.jsx)(ue,{}),e[83]=Se):Se=e[83];let pe;e[84]!==m||e[85]!==r.data.isDirectory||e[86]!==r.data.name||e[87]!==r.data.path?(pe=!r.data.isDirectory&&!m&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(X,{onSelect:async()=>{await zt(r.data.path,r.data.name)},"data-testid":"file-explorer-download-menu-item",children:[(0,a.jsx)(Fe,{className:"h-3.5 w-3.5 mr-2"}),"Download"]}),(0,a.jsx)(ue,{})]}),e[84]=m,e[85]=r.data.isDirectory,e[86]=r.data.name,e[87]=r.data.path,e[88]=pe):pe=e[88];let he;e[89]===v?he=e[90]:(he=(0,a.jsx)(Ma,{onSelect:v,testId:"file-explorer-delete-menu-item"}),e[89]=v,e[90]=he);let xe;e[91]!==K||e[92]!==R||e[93]!==I||e[94]!==q||e[95]!==E||e[96]!==Y||e[97]!==k||e[98]!==$||e[99]!==de||e[100]!==me||e[101]!==pe||e[102]!==he?(xe=(0,a.jsxs)(_a,{testId:"file-explorer-more-button",iconClassName:"w-5 h-5",children:[K,R,I,q,E,Y,k,O,$,de,me,Se,pe,he]}),e[91]=K,e[92]=R,e[93]=I,e[94]=q,e[95]=E,e[96]=Y,e[97]=k,e[98]=$,e[99]=de,e[100]=me,e[101]=pe,e[102]=he,e[103]=xe):xe=e[103];let fe;e[104]!==Q||e[105]!==J||e[106]!==V||e[107]!==xe?(fe=(0,a.jsxs)("span",{className:Q,children:[J,V,xe]}),e[104]=Q,e[105]=J,e[106]=V,e[107]=xe,e[108]=fe):fe=e[108];let Ce;return e[109]!==i||e[110]!==o||e[111]!==z||e[112]!==G||e[113]!==fe?(Ce=(0,a.jsxs)("div",{style:o,ref:i,className:B,draggable:!0,onClick:z,children:[G,fe]}),e[109]=i,e[110]=o,e[111]=z,e[112]=G,e[113]=fe,e[114]=Ce):Ce=e[114],Ce},Ar=t=>{let e=(0,ke.c)(3),{node:r}=t;if(!r.data.isDirectory){let i;return e[0]===Symbol.for("react.memo_cache_sentinel")?(i=(0,a.jsx)("span",{className:"w-4 h-4 shrink-0"}),e[0]=i):i=e[0],i}let o;return e[1]===r.isOpen?o=e[2]:(o=(0,a.jsx)(Le,{isExpanded:r.isOpen,className:"w-4 h-4"}),e[1]=r.isOpen,e[2]=o),o};function Vt(t,e){t.stopPropagation(),t.preventDefault(),er(e)}function Rt(t,e){if(e)return t;let r=[];for(let o of t){if(Hr(o.name))continue;let i=o;if(o.children){let n=Rt(o.children,e);n!==o.children&&(i={...o,children:n})}r.push(i)}return r}function Hr(t){return!!t.startsWith(".")}function qr(){return null}function Ur(t){let{parentNode:e}=t;return!e.data.isDirectory}var It=oe(),Wr=Ze("marimo:file-explorer-panel:state",{openSections:["files"],hasUserInteracted:!1},Xe),Kr=t=>{let e=(0,It.c)(20),{height:r}=t,o;e[0]===Symbol.for("react.memo_cache_sentinel")?(o={noClick:!0,noKeyboard:!0},e[0]=o):o=e[0];let{getRootProps:i,getInputProps:n,isDragActive:m}=$t(o),l;e[1]===i?l=e[2]:(l=i(),e[1]=i,e[2]=l);let c;e[3]===Symbol.for("react.memo_cache_sentinel")?(c=le("flex flex-col overflow-hidden relative"),e[3]=c):c=e[3];let s;e[4]===r?s=e[5]:(s={height:r},e[4]=r,e[5]=s);let f;e[6]===n?f=e[7]:(f=n(),e[6]=n,e[7]=f);let p;e[8]===f?p=e[9]:(p=(0,a.jsx)("input",{...f}),e[8]=f,e[9]=p);let x;e[10]===m?x=e[11]:(x=m&&(0,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"}),e[10]=m,e[11]=x);let u;e[12]===r?u=e[13]:(u=(0,a.jsx)(Br,{height:r}),e[12]=r,e[13]=u);let y;return e[14]!==l||e[15]!==s||e[16]!==p||e[17]!==x||e[18]!==u?(y=(0,a.jsx)(vr,{children:(0,a.jsxs)("div",{...l,className:c,style:s,children:[p,x,u]})}),e[14]=l,e[15]=s,e[16]=p,e[17]=x,e[18]=u,e[19]=y):y=e[19],y},Gr=33,Jr=()=>{let t=(0,It.c)(36),{ref:e,height:r}=Ka(),o=r===void 0?500:r,[i,n]=_e(Wr),m=ge(ma).length,l;e:{if(!i.hasUserInteracted&&m>0){if(i.openSections.includes("remote-storage")){l=i.openSections;break e}let z;t[0]===i.openSections?z=t[1]:(z=[...i.openSections,"remote-storage"],t[0]=i.openSections,t[1]=z),l=z;break e}l=i.openSections}let c=l,s;t[2]===n?s=t[3]:(s=z=>{n({openSections:z,hasUserInteracted:!0})},t[2]=n,t[3]=s);let f=s,p=o-Gr*2,x;t[4]===c?x=t[5]:(x=c.includes("remote-storage"),t[4]=c,t[5]=x);let u=x,y;t[6]!==c||t[7]!==u?(y=u&&c.includes("files"),t[6]=c,t[7]=u,t[8]=y):y=t[8];let N=y,g;t[9]!==p||t[10]!==N?(g=N?Math.round(p*.4):p,t[9]=p,t[10]=N,t[11]=g):g=t[11];let _=g,j=Math.max(200,N?p-_:p),d;t[12]===Symbol.for("react.memo_cache_sentinel")?(d=(0,a.jsx)(mt,{className:"w-4 h-4"}),t[12]=d):d=t[12];let v;t[13]===m?v=t[14]:(v=m>0&&(0,a.jsx)(Za,{children:m}),t[13]=m,t[14]=v);let F;t[15]===v?F=t[16]:(F=(0,a.jsxs)(jt,{children:[d," Remote storage",v]}),t[15]=v,t[16]=F);let h;t[17]===_?h=t[18]:(h={maxHeight:_},t[17]=_,t[18]=h);let w;t[19]===Symbol.for("react.memo_cache_sentinel")?(w=(0,a.jsx)(gr,{}),t[19]=w):w=t[19];let S;t[20]===h?S=t[21]:(S=(0,a.jsx)(bt,{className:"overflow-auto",style:h,children:w}),t[20]=h,t[21]=S);let M;t[22]!==S||t[23]!==F?(M=(0,a.jsxs)(gt,{value:"remote-storage",children:[F,S]}),t[22]=S,t[23]=F,t[24]=M):M=t[24];let D;t[25]===Symbol.for("react.memo_cache_sentinel")?(D=(0,a.jsxs)(jt,{children:[(0,a.jsx)(dt,{className:"w-4 h-4"}),"Files"]}),t[25]=D):D=t[25];let C;t[26]===j?C=t[27]:(C=(0,a.jsxs)(gt,{value:"files",children:[D,(0,a.jsx)(bt,{children:(0,a.jsx)(Kr,{height:j})})]}),t[26]=j,t[27]=C);let P;t[28]!==f||t[29]!==c||t[30]!==M||t[31]!==C?(P=(0,a.jsxs)(Yt,{type:"multiple",value:c,onValueChange:f,children:[M,C]}),t[28]=f,t[29]=c,t[30]=M,t[31]=C,t[32]=P):P=t[32];let B;return t[33]!==e||t[34]!==P?(B=(0,a.jsx)("div",{ref:e,className:"h-full overflow-auto",children:P}),t[33]=e,t[34]=P,t[35]=B):B=t[35],B};export{Jr as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as y}from"./chunk-LvLJmgfZ.js";import{
|
|
1
|
+
import{s as y}from"./chunk-LvLJmgfZ.js";import{wr as d}from"./cells-C3V6s-g5.js";import{t as f}from"./cn-DYvqRARy.js";import{t as g}from"./jsx-runtime-Blw4afVn.js";import{t as e}from"./createLucideIcon-w-Qo9n0R.js";import{n as c,t as k}from"./file-headphone-DAu6VO6j.js";import{t as u}from"./file-CJH9JNGH.js";import{t as v}from"./image-5XI2VU-q.js";var r=e("file-code",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 12.5 8 15l2 2.5",key:"1tg20x"}],["path",{d:"m14 12.5 2 2.5-2 2.5",key:"yinavb"}]]),l=e("file-play",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M15.033 13.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56v-4.704a.645.645 0 0 1 .967-.56z",key:"1tzo1f"}]]),x=e("file-spreadsheet",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M8 13h2",key:"yr2amv"}],["path",{d:"M14 13h2",key:"un5t4a"}],["path",{d:"M8 17h2",key:"2yhykz"}],["path",{d:"M14 17h2",key:"10kma7"}]]),z=e("folder-archive",[["circle",{cx:"15",cy:"19",r:"2",key:"u2pros"}],["path",{d:"M20.9 19.8A2 2 0 0 0 22 18V8a2 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 2h5.1",key:"1jj40k"}],["path",{d:"M15 11v-1",key:"cntcp"}],["path",{d:"M15 17v-2",key:"1279jj"}]]),p=e("folder",[["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"}]]),M=y(g(),1),j={py:"python",txt:"text",md:"text",qmd:"text",log:"text",png:"image",jpg:"image",jpeg:"image",gif:"image",svg:"image",webp:"image",csv:"data",parquet:"data",arrow:"data",xlsx:"data",json:"json",js:"code",ts:"code",tsx:"code",html:"code",css:"code",toml:"code",yaml:"code",yml:"code",wasm:"code",mp3:"audio",m4a:"audio",ogg:"audio",wav:"audio",mp4:"video",m4v:"video",mpeg:"video",webm:"video",mkv:"video",pdf:"pdf",zip:"zip",tar:"zip",gz:"zip"};function i(o){var a;let t=(a=o.split(".").pop())==null?void 0:a.toLowerCase();return t?j[t]??"unknown":"unknown"}const m={directory:p,python:r,code:r,json:c,text:d,image:v,audio:k,video:l,data:x,pdf:d,zip:z,unknown:u},s={directory:"text-amber-500",python:"text-blue-500",code:"text-blue-500",json:"text-blue-500",text:"text-muted-foreground",image:"text-purple-500",audio:"text-orange-500",video:"text-orange-500",data:"text-green-500",pdf:"text-red-500",zip:"text-muted-foreground",unknown:"text-muted-foreground"};function w(o,t){let a=i(o),h=m[a],n=s[a];return(0,M.jsx)(h,{className:f("h-3.5 w-3.5 shrink-0",n,t)})}export{p as a,w as i,s as n,i as r,m as t};
|