@marimo-team/frontend 0.24.1-dev20 → 0.24.1-dev21
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-B_dBNTJO.js → CellStatus-DsvXjUsv.js} +1 -1
- package/dist/assets/{ConnectedDataExplorerComponent-DLvmqIcV.js → ConnectedDataExplorerComponent-WU7zjB7Z.js} +1 -1
- package/dist/assets/{JsonOutput-C5g_bqiZ.js → JsonOutput-D62UH4Ip.js} +7 -7
- package/dist/assets/{MarimoErrorOutput-Cb0evuEp.js → MarimoErrorOutput-B_IfCm1k.js} +7 -7
- package/dist/assets/{RenderHTML-BoN8Qu7U.js → RenderHTML-DY5kbf6q.js} +1 -1
- package/dist/assets/{RunButton-C3V3v58F.js → RunButton-BfHw11b3.js} +1 -1
- package/dist/assets/{add-cell-with-ai-C5JH9LS2.js → add-cell-with-ai-B25FLoLF.js} +12 -12
- package/dist/assets/{add-connection-dialog-DHyonb9T.js → add-connection-dialog-B05rbnef.js} +6 -6
- package/dist/assets/{agent-panel-D7DLUBam.js → agent-panel-CQobsqAS.js} +6 -6
- package/dist/assets/{ai-model-dropdown-DWDm50eM.js → ai-model-dropdown-CmDWOIkZ.js} +3 -3
- package/dist/assets/{app-config-button-DhZke6rt.js → app-config-button-BkwiW00-.js} +1 -1
- package/dist/assets/{blob-XD7AvCQ1.js → blob-BqDSSN5X.js} +1 -1
- package/dist/assets/{cell-editor-DZg8uKWr.js → cell-editor-CefMlZnX.js} +8 -8
- package/dist/assets/cell-link-CP4zF1rO.js +1 -0
- package/dist/assets/{cells-BvgwUKB9.js → cells-DD-zwhxi.js} +72 -72
- package/dist/assets/{chat-display-CR9X_gwB.js → chat-display-59QZ49m7.js} +1 -1
- package/dist/assets/{chat-panel-DnGBFlLk.js → chat-panel-CDZbG1OG.js} +2 -2
- package/dist/assets/{chat-ui-BVFULpKr.js → chat-ui-DoBTbTFY.js} +1 -1
- package/dist/assets/{column-preview-DMqGohE5.js → column-preview-BNg0hwmL.js} +1 -1
- package/dist/assets/{command-palette-fK5U3VCd.js → command-palette-gEcd355-.js} +1 -1
- package/dist/assets/{common-Dx_4ekWj.js → common-CcYiDLMe.js} +1 -1
- package/dist/assets/{components-DVs9Yu7X.js → components-B4D3PZ3j.js} +1 -1
- package/dist/assets/{datasource-Le540Ng6.js → datasource-DAM_bXu_.js} +2 -2
- package/dist/assets/dependency-graph-panel-01bZMvwS.js +5 -0
- package/dist/assets/{documentation-panel-RJNMjUK6.js → documentation-panel-BhruLk_O.js} +1 -1
- package/dist/assets/{download-B8NwKEtr.js → download-DT1x-ePG.js} +1 -1
- package/dist/assets/{edit-page-DUnHDaYA.js → edit-page-C8uQVdbi.js} +6 -6
- package/dist/assets/{error-entries-yYB8PZoo.js → error-entries-Dg9m5P8l.js} +3 -3
- package/dist/assets/{error-panel-Dr928gBs.js → error-panel-By_xNe1V.js} +1 -1
- package/dist/assets/{file-explorer-panel-Brf39GIG.js → file-explorer-panel-BzTVzCS7.js} +3 -3
- package/dist/assets/{file-icons-D39zbjsS.js → file-icons-Dop5RazI.js} +1 -1
- package/dist/assets/{file-name-input-BLH5fTEA.js → file-name-input-C5_fsJ6t.js} +1 -1
- package/dist/assets/{floating-outline-UPrDtFZF.js → floating-outline-Bt2aLttK.js} +1 -1
- package/dist/assets/{focus-BArgHYf8.js → focus-DCZbWsqm.js} +1 -1
- package/dist/assets/{form-BvzcNsxB.js → form-Cj3PfSUI.js} +1 -1
- package/dist/assets/{form-BN1AKD58.js → form-DHy5wB3F.js} +1 -1
- package/dist/assets/{glide-data-editor-BNZxtmKn.js → glide-data-editor-BPPCsS2s.js} +2 -2
- package/dist/assets/{home-page-Dwl_Carc.js → home-page-EsENjhWM.js} +2 -2
- package/dist/assets/{html-to-image-DKEUbBwc.js → html-to-image-CajdmeRM.js} +1 -1
- package/dist/assets/{index-Dqr3-dR1.js → index-BZ-HxYIU.js} +11 -11
- package/dist/assets/index-CxZ6uZaz.css +2 -0
- package/dist/assets/{layout-YbL5eg7A.js → layout-B73d8K81.js} +5 -5
- package/dist/assets/{logs-panel-DItocggZ.js → logs-panel-CYMHvjs-.js} +1 -1
- package/dist/assets/{markdown-renderer-D7RLn6TA.js → markdown-renderer-DM-Whfio.js} +1 -1
- package/dist/assets/{name-cell-input-jausH-CL.js → name-cell-input-DF8MnZDV.js} +1 -1
- package/dist/assets/{outline-panel-C_pASL6b.js → outline-panel-Q7h5hFfo.js} +1 -1
- package/dist/assets/{packages-panel-ItQn6qH4.js → packages-panel-BW4xGU0r.js} +1 -1
- package/dist/assets/panel-accordion-state-iff6EfKa.js +1 -0
- package/dist/assets/{panels-Bhzy-m2X.js → panels-BqKyRqOy.js} +2 -2
- package/dist/assets/{process-output-ClE9lj2U.js → process-output-B9grqmZC.js} +1 -1
- package/dist/assets/{radio-group-CSwRGU0A.js → radio-group-B8t5cIdU.js} +1 -1
- package/dist/assets/{readonly-code-display-kRUXu5aJ.js → readonly-code-display-CY-jDwQL.js} +1 -1
- package/dist/assets/{readonly-python-code-BCOkadQf.js → readonly-python-code-DFjpK9Hc.js} +1 -1
- package/dist/assets/{reveal-component-CnIgubBp.js → reveal-component-DWjuDjk-.js} +2 -2
- package/dist/assets/{run-page-Du8ylzny.js → run-page-DNJz4YBq.js} +1 -1
- package/dist/assets/{scratchpad-panel-BEn7TrAb.js → scratchpad-panel-BOQN7LjT.js} +1 -1
- package/dist/assets/{session-panel-CidCOM4_.js → session-panel-C9zMMa1x.js} +1 -1
- package/dist/assets/{skeleton-CL2xKYhl.js → skeleton-mj_3hAv8.js} +1 -1
- package/dist/assets/{snippets-panel-V4x4wLMQ.js → snippets-panel-C-VlGXwd.js} +1 -1
- package/dist/assets/spec-C_psFYbu.js +1 -0
- package/dist/assets/{state-C7arWhwL.js → state-BSVx1akM.js} +2 -2
- package/dist/assets/{state-m2zUPztG.js → state-C1e6in0R.js} +1 -1
- package/dist/assets/{tracing-Cmwuiwj9.js → tracing-D-L-9q2d.js} +1 -1
- package/dist/assets/{tracing-panel-CCXeYfOu.js → tracing-panel-DQzhu-hj.js} +2 -2
- package/dist/assets/{tree-actions-QMLf8Qhz.js → tree-actions-BBmIijvt.js} +1 -1
- package/dist/assets/{useCellActionButton-D8qyXNKv.js → useCellActionButton-COoOWq__.js} +1 -1
- package/dist/assets/{useDeleteCell-Ctnxl8AT.js → useDeleteCell-C802AuEJ.js} +1 -1
- package/dist/assets/{useDependencyPanelTab-CYSEZi6j.js → useDependencyPanelTab-DR6NOy5O.js} +1 -1
- package/dist/assets/{useNotebookActions-CblNR75b.js → useNotebookActions-BXVkcfqk.js} +4 -4
- package/dist/assets/{useRunCells-DjQN3XYP.js → useRunCells-DuxMdaXo.js} +1 -1
- package/dist/assets/{useSplitCell-BG8Zd4lw.js → useSplitCell-B1EAP5Nv.js} +1 -1
- package/dist/assets/{utils-Y4n-X10o.js → utils-Bp3MLwWq.js} +1 -1
- package/dist/assets/{vega-component-1VoQOWvU.js → vega-component-dzk5T-cc.js} +1 -1
- package/dist/assets/{vega-embed-container-CH1lX0V6.js → vega-embed-container-D0V0wn9T.js} +1 -1
- package/dist/index.html +26 -26
- package/package.json +1 -1
- package/src/components/data-table/__tests__/column_formatting.test.ts +7 -0
- package/src/components/data-table/charts/__tests__/schemas.test.ts +17 -2
- package/src/components/data-table/charts/chart-spec/types.ts +2 -0
- package/src/components/data-table/column-formatting/feature.ts +1 -0
- package/src/components/data-table/column-formatting/types.ts +1 -0
- package/src/components/data-table/column-summary/chart-spec-model.tsx +1 -0
- package/src/components/data-table/column-summary/column-summary.tsx +1 -0
- package/src/components/data-table/columns.tsx +4 -3
- package/src/components/datasets/__tests__/icons.test.ts +10 -2
- package/src/components/datasets/icons.tsx +4 -0
- package/src/components/datasources/__tests__/components.test.tsx +14 -1
- package/src/core/codemirror/language/languages/sql/__tests__/renderers.test.tsx +15 -4
- package/src/core/codemirror/language/languages/sql/renderers.tsx +1 -0
- package/src/core/kernel/messages.ts +1 -0
- package/src/plugins/impl/__tests__/DataEditorPlugin.test.ts +13 -1
- package/src/plugins/impl/data-editor/glide-data-editor.tsx +1 -0
- package/src/plugins/impl/data-editor/glide-utils.ts +1 -0
- package/src/plugins/impl/data-frames/__tests__/schema.test.ts +9 -1
- package/src/plugins/impl/data-frames/utils/__tests__/operators.test.ts +8 -0
- package/src/plugins/impl/data-frames/utils/operators.ts +1 -1
- package/src/plugins/impl/vega/__tests__/vega.test.ts +22 -4
- package/src/plugins/impl/vega/utils.ts +3 -0
- package/dist/assets/cell-link-WDIIwzUn.js +0 -1
- package/dist/assets/dependency-graph-panel-BsdBM_AS.js +0 -5
- package/dist/assets/index-n_AVX7aW.css +0 -2
- package/dist/assets/panel-accordion-state-DaMmC7UV.js +0 -1
- package/dist/assets/spec-NeCHOv2Z.js +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import{Ai as
|
|
1
|
+
import{Ai as b,Mi as s,ji as k,kt as h,rt as u,y as g}from"./cells-DD-zwhxi.js";import{i as D}from"./strings-DmKKoXrM.js";function H(t){if(k(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 s(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 w(t){let r=t==null?void 0:t.find(e=>s(e.mimetype));if(!(!r||typeof r.data!="string"||r.data.length===0))return r.data}function x(t,r){if(t.tracebackHtml)return t.tracebackHtml;if(!T(t.errorData))return w(r)}function A(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=h(n[a].name,f),y=n[a].lastCodeRun??n[a].code;i.push({cellId:a,cellName:d,cellCode:y,errorData:l.errorData,tracebackHtml:x(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
2
|
|
|
3
3
|
Traceback:
|
|
4
|
-
${u(t.traceback)}`),
|
|
4
|
+
${u(t.traceback)}`),r}function j(t){let r=[t.cellName];return t.tracebackHtml&&r.push(u(t.tracebackHtml)),t.errorData.length>0&&r.push(t.errorData.map(m).join(`
|
|
5
5
|
|
|
6
|
-
`)),
|
|
6
|
+
`)),r.join(`
|
|
7
7
|
|
|
8
8
|
`)}export{A as i,j as n,m as r,p as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as i}from"./chunk-C4rtOYze.js";import"./useEvent-GCVIknuR.js";import{t as l}from"./react-C60yClUi.js";import{k as a}from"./cells-
|
|
1
|
+
import{o as i}from"./chunk-C4rtOYze.js";import"./useEvent-GCVIknuR.js";import{t as l}from"./react-C60yClUi.js";import{k as a}from"./cells-DD-zwhxi.js";import"./react-dom-Ba2zmJWD.js";import{t as c}from"./compiler-runtime-DnimoHo0.js";import{t as s}from"./jsx-runtime-3wZU7vFS.js";import"./fullscreen-CrevbcR_.js";import"./dist-CeF1Em5L.js";import"./cjs-DCKmcMBz.js";import"./useNonce-C2dwX-sI.js";import{t as d}from"./createLucideIcon-B8oVfJNp.js";import{t as h}from"./MarimoErrorOutput-B_IfCm1k.js";import"./dist-BPoMypmC.js";import"./dist-5bwTcyKs.js";import"./dist-BVNaV53g.js";import"./dist-BrqkjqDe.js";import"./dist-Bm9PT5P9.js";import"./session-D-SddyN0.js";import"./purify.es-Bwm8T4QC.js";import{n as f}from"./cell-link-CP4zF1rO.js";import{t as n}from"./empty-state-CBq3j1LH.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=c();l();var r=i(s(),1),k=()=>{let t=(0,y.c)(5),e=a();if(e.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]===e?o=t[2]:(o=e.map(u),t[1]=e,t[2]=o);let m;return t[3]===o?m=t[4]:(m=(0,r.jsx)("div",{className:"flex flex-col h-full overflow-auto",children:o}),t[3]=o,t[4]=m),m};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,4 +1,4 @@
|
|
|
1
|
-
import{o as Je}from"./chunk-C4rtOYze.js";import{i as Et,l as Fe,n as ae,p as Ye,u as je}from"./useEvent-GCVIknuR.js";import{t as At}from"./react-C60yClUi.js";import{E as Ht,Kn as qt,
|
|
1
|
+
import{o as Je}from"./chunk-C4rtOYze.js";import{i as Et,l as Fe,n as ae,p as Ye,u as je}from"./useEvent-GCVIknuR.js";import{t as At}from"./react-C60yClUi.js";import{E as Ht,Kn as qt,Wr as Wt,aa as Kt,ta as Ut}from"./cells-DD-zwhxi.js";import"./react-dom-Ba2zmJWD.js";import{t as oe}from"./compiler-runtime-DnimoHo0.js";import{g as Te}from"./useEventListener-DpNnLPuE.js";import{t as Gt}from"./invariant-BUdrueMv.js";import{g as Jt,p as Xe}from"./utils-C8Yt16Y7.js";import{N as be,r as Yt}from"./config-DFK5eCC3.js";import{t as le}from"./cn-DCUzRj2J.js";import{t as Xt}from"./jsx-runtime-3wZU7vFS.js";import"./fullscreen-CrevbcR_.js";import{r as Zt}from"./config-DjP9S1hr.js";import{o as Qt}from"./alert-dialog-D_kB5FIu.js";import"./popover-B96fOqfH.js";import{a as X,c as ue,p as ea,r as ta,t as aa}from"./dropdown-menu-DWGvf_Bw.js";import{Lt as Me,a as ra,h as na,i as Ze,o as sa,s as Qe}from"./JsonOutput-D62UH4Ip.js";import{c as oa,n as et,r as ze}from"./download-DT1x-ePG.js";import{r as tt}from"./radio-group-B8t5cIdU.js";import{t as Z}from"./tooltip-C9LWGQ7Y.js";import{n as la,t as H}from"./button-W__YVea9.js";import{Tt as ia}from"./dist-CeF1Em5L.js";import"./cjs-DCKmcMBz.js";import"./useNonce-C2dwX-sI.js";import{n as ca,r as $e,t as da}from"./requests-B9zEd_sW.js";import{t as ne}from"./createLucideIcon-B8oVfJNp.js";import{t as at}from"./arrow-left-bDqa4sSj.js";import{n as ma}from"./LazyAnyLanguageCodeMirror-DUvRReKp.js";import{t as pa}from"./x-4y-nyVDU.js";import{a as ha,i as Oe,n as xa,r as rt,t as ve}from"./tree-actions-BBmIijvt.js";import{a as fa}from"./markdown-renderer-DM-Whfio.js";import{u as ua}from"./toDate-QOk09NqD.js";import{t as nt}from"./copy-DlR5UiIE.js";import{t as Le}from"./external-link-C8y9rFms.js";import{a as ya,i as st,n as ot,r as ga,t as ja}from"./file-icons-Dop5RazI.js";import{t as lt}from"./file-BjlLTeSV.js";import{n as it,t as ba}from"./components-CozWCL5N.js";import{n as we,t as va}from"./spinner-Cj3eM5bt.js";import{a as wa,c as Na,d as ka,f as _a,i as Sa,l as Ca,n as Fa,r as Ma,t as Pa,u as Da}from"./file-name-input-C5_fsJ6t.js";import{t as ct}from"./plus-r1QITpsJ.js";import{t as dt}from"./refresh-cw-DPUCy0Ep.js";import{t as Ta}from"./save-DeHQ9WTn.js";import{t as za}from"./triangle-alert-DGiOSARf.js";import{n as $a,t as Oa}from"./es-dmMPFhRH.js";import"./dist-BPoMypmC.js";import"./dist-5bwTcyKs.js";import"./dist-BVNaV53g.js";import"./dist-BrqkjqDe.js";import"./dist-Bm9PT5P9.js";import{t as re}from"./use-toast-DjpWVza6.js";import{t as La}from"./paths-D5zczhUD.js";import"./session-D-SddyN0.js";import"./purify.es-Bwm8T4QC.js";import"./dates-CZTDC2tF.js";import{n as Ne}from"./copy-HCSOwOwk.js";import{t as Ba}from"./copy-icon-Cn8LzPNx.js";import{t as Be}from"./context-BJMN4ll3.js";import{n as mt}from"./ImperativeModal-Dxj31V4A.js";import{t as Ia}from"./blob-BqDSSN5X.js";import"./tooltip-BUmTS76K.js";import"./vega-loader.browser-DLY285WP.js";import"./defaultLocale-CGJY8D9C.js";import"./defaultLocale-DzliDDTm.js";import{n as Ra,t as Va}from"./alert-CHWQT4zh.js";import{n as pt}from"./error-banner-d0-XOKtd.js";import"./chunk-5FQGJX7Z-B4N_BMo6.js";import"./html-to-image-CajdmeRM.js";import{o as Ea}from"./focus-DCZbWsqm.js";import{n as Ie}from"./useAsyncData-BcvSvTUt.js";import"./react-resizable-panels.browser.esm-CLaR27oP.js";import{a as Aa,f as Ha,o as ht,t as qa}from"./command-D5LtSvbN.js";import{a as Wa}from"./renderShortcut-C6HKXhBl.js";import{t as Ka}from"./bundle.esm-DTvm8QXy.js";import{n as Ua}from"./pathUtils-BCwK34YQ.js";import{n as Ga}from"./semaphore-X3ApuO41.js";import{t as Ja}from"./empty-state-CBq3j1LH.js";import{t as Pe}from"./formatting-CjSzbmdF.js";import{a as Ya,i as Xa,n as xt,r as ft,t as ut}from"./components-B4D3PZ3j.js";import{t as yt}from"./add-connection-dialog-B05rbnef.js";import{a as Za,i as gt,n as De,o as ye,r as Qa,s as Re,t as er}from"./state-BFx9-sFK.js";import{n as jt,t as tr}from"./marimo-icons-CW8-Txe-.js";import{t as ar}from"./links-STGde2qx.js";import{n as rr}from"./panel-accordion-state-iff6EfKa.js";var nr=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"}]]),sr=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"}]]),bt=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"}]]),or=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"}]]),vt=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"}]]),wt=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"}]]),lr=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"}]]),Nt=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"}]]),O=Je(At(),1),ir=oe(),a=Je(Xt(),1);const kt=t=>{let e=(0,ir.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)(at,{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)(dt,{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)(Me,{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 cr=new Set(["http","file","in-memory"]);function ge(t){return JSON.stringify(t).slice(1,-1)}var dr=new Set(["datasets","spaces","buckets"]);function _t(t){let e=t.split("/").filter(Boolean);return e[0]==="datasets"&&e.length>=4?{repoType:"dataset",repoId:`${e[1]}/${e[2]}`,filename:e.slice(3).join("/")}:e[0]==="spaces"&&e.length>=4?{repoType:"space",repoId:`${e[1]}/${e[2]}`,filename:e.slice(3).join("/")}:e.length>=3&&!dr.has(e[0])?{repoType:"model",repoId:`${e[0]}/${e[1]}`,filename:e.slice(2).join("/")}:null}function St(t){return`from huggingface_hub import hf_hub_download
|
|
2
2
|
|
|
3
3
|
local_path = hf_hub_download(
|
|
4
4
|
repo_id="${ge(t.repoId)}",
|
|
@@ -18,7 +18,7 @@ signed_url = sign(
|
|
|
18
18
|
${t.variableName}, "GET", "${e}",
|
|
19
19
|
expires_in=timedelta(hours=1),
|
|
20
20
|
)
|
|
21
|
-
signed_url`;let r=ge(t.entry.path.split("/").pop()||"download");return`${t.variableName}.get("${e}", "${r}")`}}];var mr=100*1024*1024;function pr(t){let e=t.endsWith("/")?t.slice(0,-1):t,r=e.split("/");return r[r.length-1]||e}const hr=({entry:t,namespace:e,protocol:r,backendType:o,onBack:i})=>{let{locale:n}=Be(),m=tt(),l=pr(t.path),c=t.mimeType||"text/plain",s=Qe(c),f=s&&t.size>mr&&t.size>0,{data:p,isPending:x,error:u,refetch:y}=Ie(async()=>{if(f)return null;let d=await Re.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,O.useCallback)(async()=>{try{let d=await Re.request({namespace:e,path:t.path});if(d.error){re({title:"Download failed",description:d.error,variant:"danger"});return}d.url&&ze(d.url,d.filename??l)}catch(d){Te.error("Failed to download storage entry",d),re({title:"Download failed",description:String(d),variant:"danger"})}},[e,t.path,l]),g=Ct.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)}),C=(0,a.jsx)(kt,{filename:l,filenameIcon:st(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)(Ba,{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:[C,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:[C,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)(we,{className:"h-4 w-4 animate-spin"}),"Loading preview..."]})]}):u?(0,a.jsxs)("div",{className:"flex flex-col h-full",children:[C,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)(dt,{className:"h-3 w-3 mr-1"}),"Retry"]})})]}):p?(0,a.jsxs)("div",{className:"flex flex-col h-full",children:[C,j({}),(0,a.jsx)(Ze,{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:[C,j({includeMime:!0}),(0,a.jsxs)("div",{className:"p-4 flex items-center gap-2 text-xs text-muted-foreground",children:[(0,a.jsx)(lt,{className:"h-4 w-4"}),"Preview not available for this file type."]})]})};var Ve=oe(),xr=16;function ie(t){return{paddingLeft:t*xr}}function fr(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 ke(t,e){return e.searchValue.trim()?t.filter(r=>qe(r,e)):t}var ur=5;function yr(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 gr({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 jr(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,Ve.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)(we,{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},br=t=>{let e=(0,Ve.c)(44),{namespace:r,protocol:o,rootPath:i,backendType:n,prefix:m,depth:l,locale:c,searchValue:s,onOpenFile:f}=t,{entriesByPath:p}=De(),{entries:x,isPending:u,error:y,hasMore:N,loadMore:g,isLoadingMore:C,loadMoreError:j}=gt(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)(we,{className:"h-3 w-3 animate-spin"}),e[2]=w):w=e[2];let _;return e[3]===h?_=e[4]:(_=(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]=_),_}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=ke(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=_=>{let M=He(_,x.indexOf(_));return(0,a.jsx)(Ke,{rowKey:M,entry:_,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]!==C||e[38]!==g||e[39]!==j?(v=N&&(0,a.jsx)(Pt,{depth:l,isLoading:C,error:j,onLoadMore:g}),e[35]=l,e[36]=N,e[37]=C,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},Ke=({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,O.useState)(!1),{entriesByPath:x}=De(),u=tt(),y=t.kind==="directory",N=Ee(t.path),g=!!c.trim(),C=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,O.useCallback)(async()=>{try{let h=await Re.request({namespace:r,path:t.path});if(h.error){re({title:"Download failed",description:h.error,variant:"danger"});return}h.url&&ze(h.url,h.filename??"download")}catch(h){Te.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)(ht,{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)(Oe,{isExpanded:d,className:"h-3 w-3"}):(0,a.jsx)("span",{className:"w-3 shrink-0"}),y?(0,a.jsx)(ya,{className:le("h-3.5 w-3.5 shrink-0",ot.directory)}):st(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:fr(t.lastModified,l)})}),(0,a.jsxs)(aa,{children:[(0,a.jsx)(ea,{asChild:!0,children:(0,a.jsx)(xa,{iconClassName:"h-3 w-3",onClick:h=>h.stopPropagation()})}),(0,a.jsxs)(ta,{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)(Nt,{className:"h-3.5 w-3.5 mr-2"}),"View"]}),(0,a.jsxs)(X,{onSelect:async()=>{await Ne(t.path),re({title:"Copied to clipboard"})},children:[(0,a.jsx)(nt,{className:ve}),"Copy path"]}),!y&&(0,a.jsxs)(X,{onSelect:()=>v(),children:[(0,a.jsx)(Me,{className:"h-3.5 w-3.5 mr-2"}),"Download"]}),(0,a.jsx)(ue,{}),Ct.map(h=>{let w=h.getCode({variableName:r,protocol:o,entry:t,backendType:n});if(w===null)return null;let _=h.icon;return(0,a.jsxs)(X,{onSelect:()=>u(w),children:[(0,a.jsx)(_,{className:ve}),h.label]},h.id)})]})]})]})]}),y&&d&&(0,a.jsx)(br,{namespace:r,protocol:o,rootPath:i,backendType:n,prefix:Ae(t.path),depth:m+1,locale:l,searchValue:C?"":c,onOpenFile:s})]})},vr=t=>{let e=(0,Ve.c)(64),{namespace:r,locale:o,searchValue:i,remoteSearch:n,onContinueRemoteSearch:m,onOpenFile:l}=t,[c,s]=(0,O.useState)(!0),{entriesByPath:f,pageMetadataByPath:p}=De(),{clearNamespaceCache:x}=Qa(),u=r.name??r.displayName,{entries:y,isPending:N,error:g,hasMore:C,loadMore:j,isLoadingMore:d,loadMoreError:v,refetch:F}=gt(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,_=N?r.storageEntries:y,M;if(e[4]!==_||e[5]!==f||e[6]!==g||e[7]!==w||e[8]!==C||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=ke(_,{namespace:u,searchValue:i,entriesByPath:f}),S=Ue(i),P=ye(u,S),B=S===""?[]:f.get(P)??[],z=ke(B,{namespace:u,searchValue:i,entriesByPath:f}),G=!!i.trim(),ee=D.length>0||z.length>0,Q=S!==""&&gr({hasSearch:G,hasLoadedMatches:ee,isPending:N,remoteSearch:n,searchKey:P,entriesByPath:f,pageMetadataByPath:p}),J=G&&D.length===0,I;e:{if(N&&_.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)(we,{className:"h-3 w-3 animate-spin"}),"Loading..."]}),e[27]=b):b=e[27],I=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)(we,{className:"h-3 w-3 animate-spin"}),"Searching more entries..."]}),e[28]=b):b=e[28],I=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),I=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 L;e[34]===b?L=e[35]:(L=(0,a.jsxs)("span",{className:"flex items-center gap-1.5",children:["Searched more entries.",b,T]}),e[34]=b,e[35]=L),I=L;break e}if(n.status==="exhausted"&&!ee){I="No matches";break e}if(!G&&!N&&_.length===0){I="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 L;e[39]===b?L=e[40]:(L=(0,a.jsxs)("span",{className:"flex items-center gap-1.5",children:["No loaded matches.",b,T]}),e[39]=b,e[40]=L),I=L;break e}if(G&&!ee&&_.length>0){I="No matches";break e}I=null}let W=I,R;e[41]===c?R=e[42]:(R=()=>s(!c),e[41]=c,e[42]=R);let V;e[43]===c?V=e[44]:(V=(0,a.jsx)(Oe,{isExpanded:c,className:"h-3 w-3"}),e[43]=c,e[44]=V);let q;e[45]===r.protocol?q=e[46]:(q=(0,a.jsx)(ba,{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)(Ya,{variableName:r.name}),")"]}),e[49]=r.name,e[50]=A);let U;e[51]===w?U=e[52]:(U=(0,a.jsx)(rt,{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 $;e[55]!==r.name||e[56]!==k||e[57]!==R||e[58]!==V||e[59]!==q||e[60]!==E||e[61]!==A||e[62]!==U?($=(0,a.jsxs)(ht,{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:[V,q,E,A,U,k]}),e[55]=r.name,e[56]=k,e[57]=R,e[58]=V,e[59]=q,e[60]=E,e[61]=A,e[62]=U,e[63]=$):$=e[63],M=(0,a.jsxs)(a.Fragment,{children:[$,c&&(0,a.jsxs)(a.Fragment,{children:[g&&_.length===0&&(0,a.jsx)(na,{error:g,style:ie(1),className:"py-1 text-xs h-auto overflow-auto max-h-32 items-start",showIcon:!1}),!g&&W&&(0,a.jsx)("div",{className:"py-1 text-xs text-muted-foreground italic",style:ie(1),children:W}),D.map(b=>{let T=He(b,_.indexOf(b));return(0,a.jsx)(Ke,{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)(Ke,{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}`)}),C&&!Q&&(0,a.jsx)(Pt,{depth:1,isLoading:d,error:v,onLoadMore:j})]})]}),e[4]=_,e[5]=f,e[6]=g,e[7]=w,e[8]=C,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 wr=()=>{let{namespaces:t,entriesByPath:e,pageMetadataByPath:r}=De(),{locale:o}=Be(),[i,n]=(0,O.useState)(""),[m,l]=(0,O.useState)({}),[c,s]=(0,O.useState)(null),f=Za(),p=!!i.trim(),x=i.trim(),u=(0,O.useCallback)(j=>{let d=m[j];return(d==null?void 0:d.query)===x?d:yr(x)},[x,m]),y=(0,O.useCallback)((j,d)=>{l(v=>({...v,[j]:d}))},[]),N=(0,O.useCallback)(j=>{if(!x)return!1;let d=j.name??j.displayName,v=Ue(x);if(v===""||!Ft(u(d))||ke(e.get(ye(d,""))??j.storageEntries,{namespace:d,searchValue:x,entriesByPath:e}).length>0)return!1;let F=ye(d,v);return ke(e.get(F)??[],{namespace:d,searchValue:x,entriesByPath:e}).length>0?!1:Mt(F,e,r)},[x,e,r,u]),g=(0,O.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),_=((D=r.get(h))==null?void 0:D.nextPageToken)??null,M=w!==void 0;y(v,{query:d,status:"searching"});try{for(let S=0;S<ur;S++){let P=!M||_!==null,B=[];if(P){let z=await f({namespace:v,prefix:F,pageToken:_,append:M});B=z.entries,_=z.next_page_token??null,M=!0}if((P?B:w??[]).some(z=>jr(z,d))){y(v,{query:d,status:"found"});return}if(_===null){y(v,{query:d,status:"exhausted"});return}}y(v,{query:d,status:"capped"})}catch(S){y(v,{query:d,status:"error",error:S instanceof Error?S:Error(String(S))})}},[N,x,e,f,r,y]),C=(0,O.useCallback)(()=>{let j=t.filter(N);for(let d of j)g(d)},[N,g,t]);return t.length===0?(0,a.jsx)(Ja,{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)(yt,{defaultTab:"storage",children:(0,a.jsxs)(H,{variant:"outline",size:"sm",children:["Add remote storage",(0,a.jsx)(ct,{className:"h-4 w-4 ml-2"})]})}),icon:(0,a.jsx)(it,{className:"h-8 w-8"})}):(0,a.jsxs)("div",{className:"h-full flex flex-col",children:[c&&(0,a.jsx)(hr,{entry:c.entry,namespace:c.namespace,protocol:c.protocol,backendType:c.backendType,onBack:()=>s(null)}),(0,a.jsxs)(qa,{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)(Aa,{placeholder:"Search entries...",className:"h-6 m-1",value:i,onValueChange:n,onKeyDown:j=>{j.key==="Enter"&&t.some(N)&&(j.preventDefault(),C())},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)(pa,{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)(ua,{className:"h-3.5 w-3.5 shrink-0 cursor-help text-muted-foreground hover:text-foreground mr-2"})}),(0,a.jsx)(yt,{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)(ct,{className:"h-4 w-4"})})})]}),(0,a.jsx)(Ha,{className:"flex flex-col",children:t.map(j=>{let d=j.name??j.displayName;return(0,a.jsx)(vr,{namespace:j,locale:o,searchValue:i,remoteSearch:u(d),onContinueRemoteSearch:()=>{g(j)},onOpenFile:s},d)})})]})]})};var Dt=oe(),Tt=(0,O.createContext)(null);function Nr(){return(0,O.useContext)(Tt)??void 0}var kr=t=>{let e=(0,Dt.c)(3),{children:r}=t,o=ka(),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 _r=t=>{let e=(0,Dt.c)(5),{children:r}=t,[o,i]=(0,O.useState)(null),n;e[0]!==r||e[1]!==o?(n=o&&(0,a.jsx)(_a,{backend:Da,options:{rootElement:o},children:(0,a.jsx)(kr,{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(!be()){ze(Yt().formatNavigableHttpURL("api/files/download",new URLSearchParams({path:t})).toString(),e);return}let r=await da().sendFileDetails({path:t});r.isBase64&&r.contents?et(Ia(fa(r.contents,r.mimeType||"application/octet-stream")),e):et(new Blob([r.contents||""],{type:r.mimeType||"application/octet-stream"}),e)}var Sr=oe();const Cr=t=>{let e=(0,Sr.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)(Me,{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 We(t,e){let r=t||"text/plain";return Qe(r)?"media":e?"unsupported":r==="text/csv"?"csv":r.startsWith("text/")||r!=="default"&&r in ra||t==null?"text":"unsupported"}var Ge=new Map;const Fr=({file:t,onOpenNotebook:e})=>{let{sendFileDetails:r,sendUpdateFile:o}=$e(),i=je(Jt),n=je(Xe),m=je(Kt),[l,c]=(0,O.useState)(""),{data:s,isPending:f,error:p,setData:x,refetch:u}=Ie(async()=>{let S=await r({path:t.path,maxBytes:10485760}),P=We(S.mimeType,S.isBase64);if(!S.isTooLarge&&P==="text"){let B=S.contents||"";c(Ge.get(t.path)??B)}return S},[t.path]),y=async()=>{l!==(s==null?void 0:s.contents)&&await o({path:t.path,contents:l}).then(S=>{S.success&&(x(P=>({...P,contents:l})),c(l))})},N=(0,O.useRef)(l);if(N.current=l,(0,O.useEffect)(()=>()=>{if((s==null?void 0:s.contents)==null||s.isTooLarge||We(s.mimeType,s.isBase64)!=="text")return;let S=N.current;S===s.contents?Ge.delete(t.path):Ge.set(t.path,S)},[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)(pt,{error:p});if(f||!s)return null;let g=s.mimeType||"text/plain",C=We(s.mimeType,s.isBase64),j=C==="text",d=C==="csv",v=C==="media",F=m&&s.file.isMarimoFile&&(t.path===m||t.path.endsWith(`/${m}`)),h=async()=>{await zt(t.path,s.file.name)},w=ia.of([{key:i.getHotkey("global.save").key,stopPropagation:!0,run:()=>l===s.contents?!1:(y(),!0)}]),_=(0,a.jsx)(kt,{filename:s.file.name,onRefresh:u,onDownload:n?void 0:h,actions:(0,a.jsxs)(a.Fragment,{children:[t.isMarimoFile&&!be()&&(0,a.jsx)(Z,{content:"Open notebook",children:(0,a.jsx)(H,{variant:"text",size:"xs",onClick:S=>e(S),children:(0,a.jsx)(Le,{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 Ne(l)},children:(0,a.jsx)(nt,{className:"h-3.5 w-3.5"})})}),(0,a.jsx)(Z,{content:Ua("global.save"),children:(0,a.jsx)(H,{variant:"text",size:"xs",onClick:y,disabled:l===s.contents,children:(0,a.jsx)(Ta,{className:"h-3.5 w-3.5"})})})]})]})});if(s.isTooLarge||C==="unsupported")return(0,a.jsxs)(a.Fragment,{children:[_,(0,a.jsx)(Cr,{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)(Va,{variant:"warning",className:"rounded-none",children:[(0,a.jsx)(za,{className:"h-4 w-4"}),(0,a.jsx)(Ra,{children:"Editing the notebook file directly while running in marimo's editor may cause unintended changes. Please use with caution."})]}),D=v&&s.contents?sa({contents:s.contents,mimeType:g,isBase64:s.isBase64??!1}):void 0;return(0,a.jsxs)(a.Fragment,{children:[_,M,(0,a.jsx)(Ze,{mimeType:g,contents:j?l:d?s.contents??void 0:void 0,mediaSource:D,readOnly:!j,onChange:j?c:void 0,extensions:j?[w]:[]})]})},$t=Ye(t=>{let e=t(ca);return Gt(e,"no requestClientAtom set"),new Na({listFiles:e.sendListFiles,createFileOrFolder:e.sendCreateFileOrFolder,deleteFileOrFolder:e.sendDeleteFileOrFolder,copyFileOrFolder:e.sendCopyFileOrFolder,renameFileOrFolder:e.sendRenameFileOrFolder})}),Mr=Ye({});async function Pr(){await Et.get($t).refreshAll([])}var se=" ";const Ot={directory:t=>`os.listdir("${t}")`,python:t=>`with open("${t}", "r") as _f:
|
|
21
|
+
signed_url`;let r=ge(t.entry.path.split("/").pop()||"download");return`${t.variableName}.get("${e}", "${r}")`}}];var mr=100*1024*1024;function pr(t){let e=t.endsWith("/")?t.slice(0,-1):t,r=e.split("/");return r[r.length-1]||e}const hr=({entry:t,namespace:e,protocol:r,backendType:o,onBack:i})=>{let{locale:n}=Be(),m=tt(),l=pr(t.path),c=t.mimeType||"text/plain",s=Qe(c),f=s&&t.size>mr&&t.size>0,{data:p,isPending:x,error:u,refetch:y}=Ie(async()=>{if(f)return null;let d=await Re.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,O.useCallback)(async()=>{try{let d=await Re.request({namespace:e,path:t.path});if(d.error){re({title:"Download failed",description:d.error,variant:"danger"});return}d.url&&ze(d.url,d.filename??l)}catch(d){Te.error("Failed to download storage entry",d),re({title:"Download failed",description:String(d),variant:"danger"})}},[e,t.path,l]),g=Ct.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)}),C=(0,a.jsx)(kt,{filename:l,filenameIcon:st(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)(Ba,{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:[C,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:[C,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)(we,{className:"h-4 w-4 animate-spin"}),"Loading preview..."]})]}):u?(0,a.jsxs)("div",{className:"flex flex-col h-full",children:[C,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)(dt,{className:"h-3 w-3 mr-1"}),"Retry"]})})]}):p?(0,a.jsxs)("div",{className:"flex flex-col h-full",children:[C,j({}),(0,a.jsx)(Ze,{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:[C,j({includeMime:!0}),(0,a.jsxs)("div",{className:"p-4 flex items-center gap-2 text-xs text-muted-foreground",children:[(0,a.jsx)(lt,{className:"h-4 w-4"}),"Preview not available for this file type."]})]})};var Ve=oe(),xr=16;function ie(t){return{paddingLeft:t*xr}}function fr(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 ke(t,e){return e.searchValue.trim()?t.filter(r=>qe(r,e)):t}var ur=5;function yr(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 gr({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 We(t){let e=t.trim(),r=e.lastIndexOf("/");return r===-1?"":e.slice(0,r+1)}function jr(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,Ve.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)(we,{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},br=t=>{let e=(0,Ve.c)(44),{namespace:r,protocol:o,rootPath:i,backendType:n,prefix:m,depth:l,locale:c,searchValue:s,onOpenFile:f}=t,{entriesByPath:p}=De(),{entries:x,isPending:u,error:y,hasMore:N,loadMore:g,isLoadingMore:C,loadMoreError:j}=gt(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)(we,{className:"h-3 w-3 animate-spin"}),e[2]=w):w=e[2];let _;return e[3]===h?_=e[4]:(_=(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]=_),_}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=ke(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=_=>{let M=He(_,x.indexOf(_));return(0,a.jsx)(Ke,{rowKey:M,entry:_,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]!==C||e[38]!==g||e[39]!==j?(v=N&&(0,a.jsx)(Pt,{depth:l,isLoading:C,error:j,onLoadMore:g}),e[35]=l,e[36]=N,e[37]=C,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},Ke=({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,O.useState)(!1),{entriesByPath:x}=De(),u=tt(),y=t.kind==="directory",N=Ee(t.path),g=!!c.trim(),C=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,O.useCallback)(async()=>{try{let h=await Re.request({namespace:r,path:t.path});if(h.error){re({title:"Download failed",description:h.error,variant:"danger"});return}h.url&&ze(h.url,h.filename??"download")}catch(h){Te.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)(ht,{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)(Oe,{isExpanded:d,className:"h-3 w-3"}):(0,a.jsx)("span",{className:"w-3 shrink-0"}),y?(0,a.jsx)(ya,{className:le("h-3.5 w-3.5 shrink-0",ot.directory)}):st(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:fr(t.lastModified,l)})}),(0,a.jsxs)(aa,{children:[(0,a.jsx)(ea,{asChild:!0,children:(0,a.jsx)(xa,{iconClassName:"h-3 w-3",onClick:h=>h.stopPropagation()})}),(0,a.jsxs)(ta,{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)(Nt,{className:"h-3.5 w-3.5 mr-2"}),"View"]}),(0,a.jsxs)(X,{onSelect:async()=>{await Ne(t.path),re({title:"Copied to clipboard"})},children:[(0,a.jsx)(nt,{className:ve}),"Copy path"]}),!y&&(0,a.jsxs)(X,{onSelect:()=>v(),children:[(0,a.jsx)(Me,{className:"h-3.5 w-3.5 mr-2"}),"Download"]}),(0,a.jsx)(ue,{}),Ct.map(h=>{let w=h.getCode({variableName:r,protocol:o,entry:t,backendType:n});if(w===null)return null;let _=h.icon;return(0,a.jsxs)(X,{onSelect:()=>u(w),children:[(0,a.jsx)(_,{className:ve}),h.label]},h.id)})]})]})]})]}),y&&d&&(0,a.jsx)(br,{namespace:r,protocol:o,rootPath:i,backendType:n,prefix:Ae(t.path),depth:m+1,locale:l,searchValue:C?"":c,onOpenFile:s})]})},vr=t=>{let e=(0,Ve.c)(64),{namespace:r,locale:o,searchValue:i,remoteSearch:n,onContinueRemoteSearch:m,onOpenFile:l}=t,[c,s]=(0,O.useState)(!0),{entriesByPath:f,pageMetadataByPath:p}=De(),{clearNamespaceCache:x}=Qa(),u=r.name??r.displayName,{entries:y,isPending:N,error:g,hasMore:C,loadMore:j,isLoadingMore:d,loadMoreError:v,refetch:F}=gt(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,_=N?r.storageEntries:y,M;if(e[4]!==_||e[5]!==f||e[6]!==g||e[7]!==w||e[8]!==C||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=ke(_,{namespace:u,searchValue:i,entriesByPath:f}),S=We(i),P=ye(u,S),B=S===""?[]:f.get(P)??[],z=ke(B,{namespace:u,searchValue:i,entriesByPath:f}),G=!!i.trim(),ee=D.length>0||z.length>0,Q=S!==""&&gr({hasSearch:G,hasLoadedMatches:ee,isPending:N,remoteSearch:n,searchKey:P,entriesByPath:f,pageMetadataByPath:p}),J=G&&D.length===0,I;e:{if(N&&_.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)(we,{className:"h-3 w-3 animate-spin"}),"Loading..."]}),e[27]=b):b=e[27],I=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)(we,{className:"h-3 w-3 animate-spin"}),"Searching more entries..."]}),e[28]=b):b=e[28],I=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),I=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 L;e[34]===b?L=e[35]:(L=(0,a.jsxs)("span",{className:"flex items-center gap-1.5",children:["Searched more entries.",b,T]}),e[34]=b,e[35]=L),I=L;break e}if(n.status==="exhausted"&&!ee){I="No matches";break e}if(!G&&!N&&_.length===0){I="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 L;e[39]===b?L=e[40]:(L=(0,a.jsxs)("span",{className:"flex items-center gap-1.5",children:["No loaded matches.",b,T]}),e[39]=b,e[40]=L),I=L;break e}if(G&&!ee&&_.length>0){I="No matches";break e}I=null}let U=I,R;e[41]===c?R=e[42]:(R=()=>s(!c),e[41]=c,e[42]=R);let V;e[43]===c?V=e[44]:(V=(0,a.jsx)(Oe,{isExpanded:c,className:"h-3 w-3"}),e[43]=c,e[44]=V);let q;e[45]===r.protocol?q=e[46]:(q=(0,a.jsx)(ba,{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)(Ya,{variableName:r.name}),")"]}),e[49]=r.name,e[50]=A);let W;e[51]===w?W=e[52]:(W=(0,a.jsx)(rt,{onClick:w,tooltip:"Refresh storage connection",className:"p-0",iconClassName:"h-3 w-3"}),e[51]=w,e[52]=W);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 $;e[55]!==r.name||e[56]!==k||e[57]!==R||e[58]!==V||e[59]!==q||e[60]!==E||e[61]!==A||e[62]!==W?($=(0,a.jsxs)(ht,{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:[V,q,E,A,W,k]}),e[55]=r.name,e[56]=k,e[57]=R,e[58]=V,e[59]=q,e[60]=E,e[61]=A,e[62]=W,e[63]=$):$=e[63],M=(0,a.jsxs)(a.Fragment,{children:[$,c&&(0,a.jsxs)(a.Fragment,{children:[g&&_.length===0&&(0,a.jsx)(na,{error:g,style:ie(1),className:"py-1 text-xs h-auto overflow-auto max-h-32 items-start",showIcon:!1}),!g&&U&&(0,a.jsx)("div",{className:"py-1 text-xs text-muted-foreground italic",style:ie(1),children:U}),D.map(b=>{let T=He(b,_.indexOf(b));return(0,a.jsx)(Ke,{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)(Ke,{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}`)}),C&&!Q&&(0,a.jsx)(Pt,{depth:1,isLoading:d,error:v,onLoadMore:j})]})]}),e[4]=_,e[5]=f,e[6]=g,e[7]=w,e[8]=C,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 wr=()=>{let{namespaces:t,entriesByPath:e,pageMetadataByPath:r}=De(),{locale:o}=Be(),[i,n]=(0,O.useState)(""),[m,l]=(0,O.useState)({}),[c,s]=(0,O.useState)(null),f=Za(),p=!!i.trim(),x=i.trim(),u=(0,O.useCallback)(j=>{let d=m[j];return(d==null?void 0:d.query)===x?d:yr(x)},[x,m]),y=(0,O.useCallback)((j,d)=>{l(v=>({...v,[j]:d}))},[]),N=(0,O.useCallback)(j=>{if(!x)return!1;let d=j.name??j.displayName,v=We(x);if(v===""||!Ft(u(d))||ke(e.get(ye(d,""))??j.storageEntries,{namespace:d,searchValue:x,entriesByPath:e}).length>0)return!1;let F=ye(d,v);return ke(e.get(F)??[],{namespace:d,searchValue:x,entriesByPath:e}).length>0?!1:Mt(F,e,r)},[x,e,r,u]),g=(0,O.useCallback)(async j=>{var D;if(!N(j))return;let d=x,v=j.name??j.displayName,F=We(d),h=ye(v,F),w=e.get(h),_=((D=r.get(h))==null?void 0:D.nextPageToken)??null,M=w!==void 0;y(v,{query:d,status:"searching"});try{for(let S=0;S<ur;S++){let P=!M||_!==null,B=[];if(P){let z=await f({namespace:v,prefix:F,pageToken:_,append:M});B=z.entries,_=z.next_page_token??null,M=!0}if((P?B:w??[]).some(z=>jr(z,d))){y(v,{query:d,status:"found"});return}if(_===null){y(v,{query:d,status:"exhausted"});return}}y(v,{query:d,status:"capped"})}catch(S){y(v,{query:d,status:"error",error:S instanceof Error?S:Error(String(S))})}},[N,x,e,f,r,y]),C=(0,O.useCallback)(()=>{let j=t.filter(N);for(let d of j)g(d)},[N,g,t]);return t.length===0?(0,a.jsx)(Ja,{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)(yt,{defaultTab:"storage",children:(0,a.jsxs)(H,{variant:"outline",size:"sm",children:["Add remote storage",(0,a.jsx)(ct,{className:"h-4 w-4 ml-2"})]})}),icon:(0,a.jsx)(it,{className:"h-8 w-8"})}):(0,a.jsxs)("div",{className:"h-full flex flex-col",children:[c&&(0,a.jsx)(hr,{entry:c.entry,namespace:c.namespace,protocol:c.protocol,backendType:c.backendType,onBack:()=>s(null)}),(0,a.jsxs)(qa,{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)(Aa,{placeholder:"Search entries...",className:"h-6 m-1",value:i,onValueChange:n,onKeyDown:j=>{j.key==="Enter"&&t.some(N)&&(j.preventDefault(),C())},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)(pa,{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)(ua,{className:"h-3.5 w-3.5 shrink-0 cursor-help text-muted-foreground hover:text-foreground mr-2"})}),(0,a.jsx)(yt,{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)(ct,{className:"h-4 w-4"})})})]}),(0,a.jsx)(Ha,{className:"flex flex-col",children:t.map(j=>{let d=j.name??j.displayName;return(0,a.jsx)(vr,{namespace:j,locale:o,searchValue:i,remoteSearch:u(d),onContinueRemoteSearch:()=>{g(j)},onOpenFile:s},d)})})]})]})};var Dt=oe(),Tt=(0,O.createContext)(null);function Nr(){return(0,O.useContext)(Tt)??void 0}var kr=t=>{let e=(0,Dt.c)(3),{children:r}=t,o=ka(),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 _r=t=>{let e=(0,Dt.c)(5),{children:r}=t,[o,i]=(0,O.useState)(null),n;e[0]!==r||e[1]!==o?(n=o&&(0,a.jsx)(_a,{backend:Da,options:{rootElement:o},children:(0,a.jsx)(kr,{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(!be()){ze(Yt().formatNavigableHttpURL("api/files/download",new URLSearchParams({path:t})).toString(),e);return}let r=await da().sendFileDetails({path:t});r.isBase64&&r.contents?et(Ia(fa(r.contents,r.mimeType||"application/octet-stream")),e):et(new Blob([r.contents||""],{type:r.mimeType||"application/octet-stream"}),e)}var Sr=oe();const Cr=t=>{let e=(0,Sr.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)(Me,{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 Ue(t,e){let r=t||"text/plain";return Qe(r)?"media":e?"unsupported":r==="text/csv"?"csv":r.startsWith("text/")||r!=="default"&&r in ra||t==null?"text":"unsupported"}var Ge=new Map;const Fr=({file:t,onOpenNotebook:e})=>{let{sendFileDetails:r,sendUpdateFile:o}=$e(),i=je(Jt),n=je(Xe),m=je(Ut),[l,c]=(0,O.useState)(""),{data:s,isPending:f,error:p,setData:x,refetch:u}=Ie(async()=>{let S=await r({path:t.path,maxBytes:10485760}),P=Ue(S.mimeType,S.isBase64);if(!S.isTooLarge&&P==="text"){let B=S.contents||"";c(Ge.get(t.path)??B)}return S},[t.path]),y=async()=>{l!==(s==null?void 0:s.contents)&&await o({path:t.path,contents:l}).then(S=>{S.success&&(x(P=>({...P,contents:l})),c(l))})},N=(0,O.useRef)(l);if(N.current=l,(0,O.useEffect)(()=>()=>{if((s==null?void 0:s.contents)==null||s.isTooLarge||Ue(s.mimeType,s.isBase64)!=="text")return;let S=N.current;S===s.contents?Ge.delete(t.path):Ge.set(t.path,S)},[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)(pt,{error:p});if(f||!s)return null;let g=s.mimeType||"text/plain",C=Ue(s.mimeType,s.isBase64),j=C==="text",d=C==="csv",v=C==="media",F=m&&s.file.isMarimoFile&&(t.path===m||t.path.endsWith(`/${m}`)),h=async()=>{await zt(t.path,s.file.name)},w=ia.of([{key:i.getHotkey("global.save").key,stopPropagation:!0,run:()=>l===s.contents?!1:(y(),!0)}]),_=(0,a.jsx)(kt,{filename:s.file.name,onRefresh:u,onDownload:n?void 0:h,actions:(0,a.jsxs)(a.Fragment,{children:[t.isMarimoFile&&!be()&&(0,a.jsx)(Z,{content:"Open notebook",children:(0,a.jsx)(H,{variant:"text",size:"xs",onClick:S=>e(S),children:(0,a.jsx)(Le,{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 Ne(l)},children:(0,a.jsx)(nt,{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)(Ta,{className:"h-3.5 w-3.5"})})})]})]})});if(s.isTooLarge||C==="unsupported")return(0,a.jsxs)(a.Fragment,{children:[_,(0,a.jsx)(Cr,{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)(Va,{variant:"warning",className:"rounded-none",children:[(0,a.jsx)(za,{className:"h-4 w-4"}),(0,a.jsx)(Ra,{children:"Editing the notebook file directly while running in marimo's editor may cause unintended changes. Please use with caution."})]}),D=v&&s.contents?sa({contents:s.contents,mimeType:g,isBase64:s.isBase64??!1}):void 0;return(0,a.jsxs)(a.Fragment,{children:[_,M,(0,a.jsx)(Ze,{mimeType:g,contents:j?l:d?s.contents??void 0:void 0,mediaSource:D,readOnly:!j,onChange:j?c:void 0,extensions:j?[w]:[]})]})},$t=Ye(t=>{let e=t(ca);return Gt(e,"no requestClientAtom set"),new Na({listFiles:e.sendListFiles,createFileOrFolder:e.sendCreateFileOrFolder,deleteFileOrFolder:e.sendDeleteFileOrFolder,copyFileOrFolder:e.sendCopyFileOrFolder,renameFileOrFolder:e.sendRenameFileOrFolder})}),Mr=Ye({});async function Pr(){await Et.get($t).refreshAll([])}var se=" ";const Ot={directory:t=>`os.listdir("${t}")`,python:t=>`with open("${t}", "r") as _f:
|
|
22
22
|
${se}...
|
|
23
23
|
`,json:t=>`with open("${t}", "r") as _f:
|
|
24
24
|
${se}_data = json.load(_f)
|
|
@@ -34,4 +34,4 @@ ${se}...
|
|
|
34
34
|
${se}...
|
|
35
35
|
`,unknown:t=>`with open("${t}", "r") as _f:
|
|
36
36
|
${se}...
|
|
37
|
-
`};var Dr=oe(),Tr=1024*1024*100,zr=5;function Lt(t){let e=(0,Dr.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}=$e(),n;e[2]===i?n=e[3]:(n=async l=>{if(l.length===0)return;let c=l.length===1;await oa(c?"Uploading file...":"Uploading files...",async s=>{s.addTotal(l.length),await Ga(l,zr,async f=>{let p=Rr(Ir(f)),x="";p&&(x=La.guessDeliminator(p).dirname(p)),await i({path:x,type:"file",name:f.name,file:f}),s.increment(1)}),await Pr()},{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:Tr,onError:Br,onDropRejected:$r,onDrop:n,...o},e[4]=o,e[5]=n,e[6]=m):m=e[6],Oa(m)}function $r(t){re({title:"File upload failed",description:(0,a.jsx)("div",{className:"flex flex-col gap-1",children:t.map(Or)}),variant:"danger"})}function Or(t){return(0,a.jsxs)("div",{children:[t.file.name," (",t.errors.map(Lr).join(", "),")"]},t.file.name)}function Lr(t){return t.message}function Br(t){Te.error(t),re({title:"File upload failed",description:t.message,variant:"danger"})}function Ir(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 Rr(t){if(t)return t.replace(/^\/+/,"")}var _e=oe(),Vr=Wt("marimo:showHiddenFiles",!0,qt,{getOnInit:!0}),Bt=O.createContext(null);const Er=t=>{let e=(0,_e.c)(73),{height:r}=t,o=(0,O.useRef)(null),i=Nr(),[n]=Fe($t),m;e[0]===Symbol.for("react.memo_cache_sentinel")?(m=[],e[0]=m):m=e[0];let[l,c]=(0,O.useState)(m),[s,f]=(0,O.useState)(null),[p,x]=Fe(Vr),{openPrompt:u}=mt(),[y,N]=Fe(Mr),g;e[1]===n?g=e[2]:(g=()=>n.initialize(c),e[1]=n,e[2]=g);let C;e[3]===Symbol.for("react.memo_cache_sentinel")?(C=[],e[3]=C):C=e[3];let{isPending:j,error:d}=Ie(g,C),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),_;e[10]!==u||e[11]!==n?(_=async()=>{u({title:"Folder name",onConfirm:async k=>{n.createFolder(k,null)}})},e[10]=u,e[11]=n,e[12]=_):_=e[12];let M=ae(_),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 S=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)(va,{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)(pt,{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 $;e[28]===Symbol.for("react.memo_cache_sentinel")?($=(0,a.jsx)(H,{onClick:k,"data-testid":"file-explorer-back-button",variant:"text",size:"xs",className:"mb-0",children:(0,a.jsx)(at,{size:16})}),e[28]=$):$=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:[$,(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=>It(ce,n.relativeFromRoot(s.path)),e[31]=s.path,e[32]=n,e[33]=T):T=e[33];let L;e[34]!==s||e[35]!==T?(L=(0,a.jsx)(O.Suspense,{children:(0,a.jsx)(Fr,{onOpenNotebook:T,file:s})}),e[34]=s,e[35]=T,e[36]=L):L=e[36];let te;return e[37]!==b||e[38]!==L?(te=(0,a.jsxs)(a.Fragment,{children:[b,L]}),e[37]=b,e[38]=L,e[39]=te):te=e[39],te}let J;e[40]!==G||e[41]!==S||e[42]!==M||e[43]!==B||e[44]!==w||e[45]!==F||e[46]!==p||e[47]!==n?(J=(0,a.jsx)(Hr,{onRefresh:F,onHidden:w,showHiddenFiles:p,onCreateFile:S,onCreateNotebook:B,onCreateFolder:M,onCollapseAll:G,tree:n}),e[40]=G,e[41]=S,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 I=r-33,W,R,V;e[49]===n?(W=e[50],R=e[51],V=e[52]):(W=async k=>{let{ids:$}=k;for(let b of $)await n.delete(b)},R=async k=>{let{id:$,name:b}=k;await n.rename($,b)},V=async k=>{let{dragIds:$,parentId:b}=k;await n.move($,b)},e[49]=n,e[50]=W,e[51]=R,e[52]=V);let q;e[53]===Symbol.for("react.memo_cache_sentinel")?(q=k=>{let $=k[0];$&&($.data.isDirectory||f($.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 $=y[k]??!1;N({...y,[k]:!$})}},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]!==I||e[61]!==W||e[62]!==R||e[63]!==V||e[64]!==E||e[65]!==Q?(A=(0,a.jsx)(Ca,{width:"100%",ref:o,height:I,className:"h-full",data:Q,initialOpenState:y,openByDefault:!1,dndManager:i,renderCursor:Gr,disableDrop:Jr,onDelete:W,onRename:R,onMove:V,onSelect:q,onToggle:E,padding:15,rowHeight:30,indent:Ar,overscanCount:1e3,disableMultiSelection:!0,children:Ur}),e[58]=i,e[59]=y,e[60]=I,e[61]=W,e[62]=R,e[63]=V,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 Ar=15,Hr=t=>{let e=(0,_e.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}=Lt(s),x;e[1]===Symbol.for("react.memo_cache_sentinel")?(x=(0,a.jsx)(jt,{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)(bt,{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)(vt,{size:16}),e[7]=g):g=e[7];let C;e[8]===l?C=e[9]:(C=(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]=C);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=la({variant:"text",size:"xs"}),d=(0,a.jsx)($a,{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 _;e[20]===r?_=e[21]:(_=(0,a.jsx)(rt,{"data-testid":"file-explorer-refresh-button",onClick:r}),e[20]=r,e[21]=_);let M;e[22]!==o||e[23]!==i?(M=(0,a.jsx)(ha,{"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)(sr,{size:16}),e[25]=D):D=e[25];let S;e[26]===c?S=e[27]:(S=(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]=S);let P;return e[28]!==F||e[29]!==w||e[30]!==_||e[31]!==M||e[32]!==S||e[33]!==u||e[34]!==N||e[35]!==C?(P=(0,a.jsxs)("div",{className:"flex items-center justify-end px-2 shrink-0 border-b",children:[u,N,C,F,w,_,M,S]}),e[28]=F,e[29]=w,e[30]=_,e[31]=M,e[32]=S,e[33]=u,e[34]=N,e[35]=C,e[36]=P):P=e[36],P},qr=t=>{let e=(0,_e.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&&!be()&&(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)(Le,{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},Ur=t=>{let e=(0,_e.c)(115),{node:r,style:o,dragHandle:i}=t,{openFile:n}=$e(),m=je(Xe),l;e[0]!==r.data.isDirectory||e[1]!==r.data.name?(l=r.data.isDirectory?"directory":ga(r.data.name),e[0]=r.data.isDirectory,e[1]=r.data.name,e[2]=l):l=e[2];let c=l,s=ja[c],{openConfirm:f,openPrompt:p}=mt(),{createNewCell:x}=Ht(),u=Ea(),y;e[3]!==x||e[4]!==u?(y=K=>{x({code:K,before:!1,cellId:u??"__end__"})},e[3]=x,e[4]=u,e[5]=y):y=e[5];let N=y,g=(0,O.use)(Bt),C;e[6]!==r.data.path||e[7]!==g?(C=async K=>{It(K,g?g.relativeFromRoot(r.data.path):r.data.path)},e[6]=r.data.path,e[7]=g,e[8]=C):C=e[8];let j=C,d;e[9]!==r.data.name||e[10]!==r.id||e[11]!==r.tree||e[12]!==f?(d=async K=>{K.stopPropagation(),K.preventDefault(),f({title:"Delete file",description:`Are you sure you want to delete ${r.data.name}?`,confirmAction:(0,a.jsx)(Qt,{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 K=>{g==null||g.createFolder(K,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 K=>{g==null||g.createFile({name:K,parentId:r.id})}})},e[18]=r,e[19]=p,e[20]=g,e[21]=w):w=e[21];let _=ae(w),M;e[22]!==r||e[23]!==p||e[24]!==g?(M=async()=>{r.open(),p({title:"Notebook name",onConfirm:async K=>{g==null||g.createFile({name:K,parentId:r.id,type:"notebook"})}})},e[22]=r,e[23]=p,e[24]=g,e[25]=M):M=e[25];let D=ae(M),S;e[26]!==r.data.name||e[27]!==r.id||e[28]!==g?(S=async()=>{g&&await g.copy(r.id,Wa(r.data.name))},e[26]=r.data.name,e[27]=r.id,e[28]=g,e[29]=S):S=e[29];let P=ae(S),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=K=>{K.stopPropagation(),r.data.isDirectory&&r.toggle()},G=(0,a.jsx)(Kr,{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)(tr,{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",ot[c]),strokeWidth:1.5}),e[36]=s,e[37]=c,e[38]=r.data.isMarimoFile,e[39]=J):J=e[39];let I;e[40]!==j||e[41]!==r?(I=r.isEditing?(0,a.jsx)(Pa,{node:r}):(0,a.jsx)(qr,{node:r,onOpenMarimoFile:j}),e[40]=j,e[41]=r,e[42]=I):I=e[42];let W;e[43]===r?W=e[44]:(W=!r.data.isDirectory&&(0,a.jsxs)(X,{onSelect:()=>r.select(),"data-testid":"file-explorer-open-file-menu-item",children:[(0,a.jsx)(Nt,{className:"h-3.5 w-3.5 mr-2"}),"Open file"]}),e[43]=r,e[44]=W);let R;e[45]!==r.data.isDirectory||e[46]!==r.data.path||e[47]!==n?(R=!r.data.isDirectory&&!be()&&(0,a.jsxs)(X,{onSelect:()=>{n({path:r.data.path})},"data-testid":"file-explorer-open-external-menu-item",children:[(0,a.jsx)(Le,{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 V;e[49]!==_||e[50]!==h||e[51]!==D||e[52]!==r.data.isDirectory?(V=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)(jt,{className:"h-3.5 w-3.5 mr-2"}),"Create notebook"]}),(0,a.jsxs)(X,{onSelect:()=>_(),"data-testid":"file-explorer-create-file-menu-item",children:[(0,a.jsx)(bt,{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)(vt,{className:"h-3.5 w-3.5 mr-2"}),"Create folder"]}),(0,a.jsx)(ue,{})]}),e[49]=_,e[50]=h,e[51]=D,e[52]=r.data.isDirectory,e[53]=V):V=e[53];let q;e[54]===r?q=e[55]:(q=(0,a.jsx)(wa,{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)(Ma,{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 Ne(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)(wt,{className:ve}),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 Ne(g.relativeFromRoot(r.data.path)),re({title:"Copied to clipboard"})},"data-testid":"file-explorer-copy-relative-path-menu-item",children:[(0,a.jsx)(wt,{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 $;e[66]===Symbol.for("react.memo_cache_sentinel")?($=(0,a.jsx)(ue,{}),e[66]=$):$=e[66];let b;e[67]!==c||e[68]!==N||e[69]!==r.data?(b=()=>{let{path:K}=r.data;N(Ot[c](K))},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)(ma,{className:ve}),e[71]=T):T=e[71];let L;e[72]===b?L=e[73]:(L=(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]=L);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:K}=r.data;await Ne(Ot[c](K))},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:ve}),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&&!be()&&(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)(lr,{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)(Me,{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)(Fa,{onSelect:v,testId:"file-explorer-delete-menu-item"}),e[89]=v,e[90]=he);let xe;e[91]!==W||e[92]!==R||e[93]!==V||e[94]!==q||e[95]!==E||e[96]!==Y||e[97]!==k||e[98]!==L||e[99]!==de||e[100]!==me||e[101]!==pe||e[102]!==he?(xe=(0,a.jsxs)(Sa,{testId:"file-explorer-more-button",iconClassName:"w-5 h-5",children:[W,R,V,q,E,Y,k,$,L,de,me,Se,pe,he]}),e[91]=W,e[92]=R,e[93]=V,e[94]=q,e[95]=E,e[96]=Y,e[97]=k,e[98]=L,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]!==I||e[107]!==xe?(fe=(0,a.jsxs)("span",{className:Q,children:[J,I,xe]}),e[104]=Q,e[105]=J,e[106]=I,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},Kr=t=>{let e=(0,_e.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)(Oe,{isExpanded:r.isOpen,className:"w-4 h-4"}),e[1]=r.isOpen,e[2]=o),o};function It(t,e){t.stopPropagation(),t.preventDefault(),ar(e)}function Rt(t,e){if(e)return t;let r=[];for(let o of t){if(Wr(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 Wr(t){return!!t.startsWith(".")}function Gr(){return null}function Jr(t){let{parentNode:e}=t;return!e.data.isDirectory}var Vt=oe(),Yr=t=>{let e=(0,Vt.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}=Lt(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)(Er,{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)(_r,{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},Xr=33,Zr=()=>{let t=(0,Vt.c)(36),{ref:e,height:r}=Ka(),o=r===void 0?500:r,[i,n]=Fe(rr),m=je(er).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-Xr*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 C=g,j=Math.max(200,N?p-C:p),d;t[12]===Symbol.for("react.memo_cache_sentinel")?(d=(0,a.jsx)(it,{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)(Xa,{children:m}),t[13]=m,t[14]=v);let F;t[15]===v?F=t[16]:(F=(0,a.jsxs)(ft,{children:[d," Remote storage",v]}),t[15]=v,t[16]=F);let h;t[17]===C?h=t[18]:(h={maxHeight:C},t[17]=C,t[18]=h);let w;t[19]===Symbol.for("react.memo_cache_sentinel")?(w=(0,a.jsx)(wr,{}),t[19]=w):w=t[19];let _;t[20]===h?_=t[21]:(_=(0,a.jsx)(ut,{className:"overflow-auto",style:h,children:w}),t[20]=h,t[21]=_);let M;t[22]!==_||t[23]!==F?(M=(0,a.jsxs)(xt,{value:"remote-storage",children:[F,_]}),t[22]=_,t[23]=F,t[24]=M):M=t[24];let D;t[25]===Symbol.for("react.memo_cache_sentinel")?(D=(0,a.jsxs)(ft,{children:[(0,a.jsx)(lt,{className:"w-4 h-4"}),"Files"]}),t[25]=D):D=t[25];let S;t[26]===j?S=t[27]:(S=(0,a.jsxs)(xt,{value:"files",children:[D,(0,a.jsx)(ut,{children:(0,a.jsx)(Yr,{height:j})})]}),t[26]=j,t[27]=S);let P;t[28]!==f||t[29]!==c||t[30]!==M||t[31]!==S?(P=(0,a.jsxs)(Zt,{type:"multiple",value:c,onValueChange:f,children:[M,S]}),t[28]=f,t[29]=c,t[30]=M,t[31]=S,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{Zr as default};
|
|
37
|
+
`};var Dr=oe(),Tr=1024*1024*100,zr=5;function Lt(t){let e=(0,Dr.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}=$e(),n;e[2]===i?n=e[3]:(n=async l=>{if(l.length===0)return;let c=l.length===1;await oa(c?"Uploading file...":"Uploading files...",async s=>{s.addTotal(l.length),await Ga(l,zr,async f=>{let p=Rr(Ir(f)),x="";p&&(x=La.guessDeliminator(p).dirname(p)),await i({path:x,type:"file",name:f.name,file:f}),s.increment(1)}),await Pr()},{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:Tr,onError:Br,onDropRejected:$r,onDrop:n,...o},e[4]=o,e[5]=n,e[6]=m):m=e[6],Oa(m)}function $r(t){re({title:"File upload failed",description:(0,a.jsx)("div",{className:"flex flex-col gap-1",children:t.map(Or)}),variant:"danger"})}function Or(t){return(0,a.jsxs)("div",{children:[t.file.name," (",t.errors.map(Lr).join(", "),")"]},t.file.name)}function Lr(t){return t.message}function Br(t){Te.error(t),re({title:"File upload failed",description:t.message,variant:"danger"})}function Ir(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 Rr(t){if(t)return t.replace(/^\/+/,"")}var _e=oe(),Vr=Kt("marimo:showHiddenFiles",!0,qt,{getOnInit:!0}),Bt=O.createContext(null);const Er=t=>{let e=(0,_e.c)(73),{height:r}=t,o=(0,O.useRef)(null),i=Nr(),[n]=Fe($t),m;e[0]===Symbol.for("react.memo_cache_sentinel")?(m=[],e[0]=m):m=e[0];let[l,c]=(0,O.useState)(m),[s,f]=(0,O.useState)(null),[p,x]=Fe(Vr),{openPrompt:u}=mt(),[y,N]=Fe(Mr),g;e[1]===n?g=e[2]:(g=()=>n.initialize(c),e[1]=n,e[2]=g);let C;e[3]===Symbol.for("react.memo_cache_sentinel")?(C=[],e[3]=C):C=e[3];let{isPending:j,error:d}=Ie(g,C),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),_;e[10]!==u||e[11]!==n?(_=async()=>{u({title:"Folder name",onConfirm:async k=>{n.createFolder(k,null)}})},e[10]=u,e[11]=n,e[12]=_):_=e[12];let M=ae(_),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 S=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)(va,{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)(pt,{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 $;e[28]===Symbol.for("react.memo_cache_sentinel")?($=(0,a.jsx)(H,{onClick:k,"data-testid":"file-explorer-back-button",variant:"text",size:"xs",className:"mb-0",children:(0,a.jsx)(at,{size:16})}),e[28]=$):$=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:[$,(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=>It(ce,n.relativeFromRoot(s.path)),e[31]=s.path,e[32]=n,e[33]=T):T=e[33];let L;e[34]!==s||e[35]!==T?(L=(0,a.jsx)(O.Suspense,{children:(0,a.jsx)(Fr,{onOpenNotebook:T,file:s})}),e[34]=s,e[35]=T,e[36]=L):L=e[36];let te;return e[37]!==b||e[38]!==L?(te=(0,a.jsxs)(a.Fragment,{children:[b,L]}),e[37]=b,e[38]=L,e[39]=te):te=e[39],te}let J;e[40]!==G||e[41]!==S||e[42]!==M||e[43]!==B||e[44]!==w||e[45]!==F||e[46]!==p||e[47]!==n?(J=(0,a.jsx)(Hr,{onRefresh:F,onHidden:w,showHiddenFiles:p,onCreateFile:S,onCreateNotebook:B,onCreateFolder:M,onCollapseAll:G,tree:n}),e[40]=G,e[41]=S,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 I=r-33,U,R,V;e[49]===n?(U=e[50],R=e[51],V=e[52]):(U=async k=>{let{ids:$}=k;for(let b of $)await n.delete(b)},R=async k=>{let{id:$,name:b}=k;await n.rename($,b)},V=async k=>{let{dragIds:$,parentId:b}=k;await n.move($,b)},e[49]=n,e[50]=U,e[51]=R,e[52]=V);let q;e[53]===Symbol.for("react.memo_cache_sentinel")?(q=k=>{let $=k[0];$&&($.data.isDirectory||f($.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 $=y[k]??!1;N({...y,[k]:!$})}},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]!==I||e[61]!==U||e[62]!==R||e[63]!==V||e[64]!==E||e[65]!==Q?(A=(0,a.jsx)(Ca,{width:"100%",ref:o,height:I,className:"h-full",data:Q,initialOpenState:y,openByDefault:!1,dndManager:i,renderCursor:Gr,disableDrop:Jr,onDelete:U,onRename:R,onMove:V,onSelect:q,onToggle:E,padding:15,rowHeight:30,indent:Ar,overscanCount:1e3,disableMultiSelection:!0,children:Wr}),e[58]=i,e[59]=y,e[60]=I,e[61]=U,e[62]=R,e[63]=V,e[64]=E,e[65]=Q,e[66]=A):A=e[66];let W;e[67]!==A||e[68]!==n?(W=(0,a.jsx)(Bt,{value:n,children:A}),e[67]=A,e[68]=n,e[69]=W):W=e[69];let Y;return e[70]!==J||e[71]!==W?(Y=(0,a.jsxs)(a.Fragment,{children:[J,W]}),e[70]=J,e[71]=W,e[72]=Y):Y=e[72],Y};var Ar=15,Hr=t=>{let e=(0,_e.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}=Lt(s),x;e[1]===Symbol.for("react.memo_cache_sentinel")?(x=(0,a.jsx)(jt,{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)(bt,{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)(vt,{size:16}),e[7]=g):g=e[7];let C;e[8]===l?C=e[9]:(C=(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]=C);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=la({variant:"text",size:"xs"}),d=(0,a.jsx)($a,{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 _;e[20]===r?_=e[21]:(_=(0,a.jsx)(rt,{"data-testid":"file-explorer-refresh-button",onClick:r}),e[20]=r,e[21]=_);let M;e[22]!==o||e[23]!==i?(M=(0,a.jsx)(ha,{"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)(sr,{size:16}),e[25]=D):D=e[25];let S;e[26]===c?S=e[27]:(S=(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]=S);let P;return e[28]!==F||e[29]!==w||e[30]!==_||e[31]!==M||e[32]!==S||e[33]!==u||e[34]!==N||e[35]!==C?(P=(0,a.jsxs)("div",{className:"flex items-center justify-end px-2 shrink-0 border-b",children:[u,N,C,F,w,_,M,S]}),e[28]=F,e[29]=w,e[30]=_,e[31]=M,e[32]=S,e[33]=u,e[34]=N,e[35]=C,e[36]=P):P=e[36],P},qr=t=>{let e=(0,_e.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&&!be()&&(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)(Le,{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},Wr=t=>{let e=(0,_e.c)(115),{node:r,style:o,dragHandle:i}=t,{openFile:n}=$e(),m=je(Xe),l;e[0]!==r.data.isDirectory||e[1]!==r.data.name?(l=r.data.isDirectory?"directory":ga(r.data.name),e[0]=r.data.isDirectory,e[1]=r.data.name,e[2]=l):l=e[2];let c=l,s=ja[c],{openConfirm:f,openPrompt:p}=mt(),{createNewCell:x}=Ht(),u=Ea(),y;e[3]!==x||e[4]!==u?(y=K=>{x({code:K,before:!1,cellId:u??"__end__"})},e[3]=x,e[4]=u,e[5]=y):y=e[5];let N=y,g=(0,O.use)(Bt),C;e[6]!==r.data.path||e[7]!==g?(C=async K=>{It(K,g?g.relativeFromRoot(r.data.path):r.data.path)},e[6]=r.data.path,e[7]=g,e[8]=C):C=e[8];let j=C,d;e[9]!==r.data.name||e[10]!==r.id||e[11]!==r.tree||e[12]!==f?(d=async K=>{K.stopPropagation(),K.preventDefault(),f({title:"Delete file",description:`Are you sure you want to delete ${r.data.name}?`,confirmAction:(0,a.jsx)(Qt,{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 K=>{g==null||g.createFolder(K,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 K=>{g==null||g.createFile({name:K,parentId:r.id})}})},e[18]=r,e[19]=p,e[20]=g,e[21]=w):w=e[21];let _=ae(w),M;e[22]!==r||e[23]!==p||e[24]!==g?(M=async()=>{r.open(),p({title:"Notebook name",onConfirm:async K=>{g==null||g.createFile({name:K,parentId:r.id,type:"notebook"})}})},e[22]=r,e[23]=p,e[24]=g,e[25]=M):M=e[25];let D=ae(M),S;e[26]!==r.data.name||e[27]!==r.id||e[28]!==g?(S=async()=>{g&&await g.copy(r.id,Ua(r.data.name))},e[26]=r.data.name,e[27]=r.id,e[28]=g,e[29]=S):S=e[29];let P=ae(S),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=K=>{K.stopPropagation(),r.data.isDirectory&&r.toggle()},G=(0,a.jsx)(Kr,{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)(tr,{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",ot[c]),strokeWidth:1.5}),e[36]=s,e[37]=c,e[38]=r.data.isMarimoFile,e[39]=J):J=e[39];let I;e[40]!==j||e[41]!==r?(I=r.isEditing?(0,a.jsx)(Pa,{node:r}):(0,a.jsx)(qr,{node:r,onOpenMarimoFile:j}),e[40]=j,e[41]=r,e[42]=I):I=e[42];let U;e[43]===r?U=e[44]:(U=!r.data.isDirectory&&(0,a.jsxs)(X,{onSelect:()=>r.select(),"data-testid":"file-explorer-open-file-menu-item",children:[(0,a.jsx)(Nt,{className:"h-3.5 w-3.5 mr-2"}),"Open file"]}),e[43]=r,e[44]=U);let R;e[45]!==r.data.isDirectory||e[46]!==r.data.path||e[47]!==n?(R=!r.data.isDirectory&&!be()&&(0,a.jsxs)(X,{onSelect:()=>{n({path:r.data.path})},"data-testid":"file-explorer-open-external-menu-item",children:[(0,a.jsx)(Le,{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 V;e[49]!==_||e[50]!==h||e[51]!==D||e[52]!==r.data.isDirectory?(V=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)(jt,{className:"h-3.5 w-3.5 mr-2"}),"Create notebook"]}),(0,a.jsxs)(X,{onSelect:()=>_(),"data-testid":"file-explorer-create-file-menu-item",children:[(0,a.jsx)(bt,{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)(vt,{className:"h-3.5 w-3.5 mr-2"}),"Create folder"]}),(0,a.jsx)(ue,{})]}),e[49]=_,e[50]=h,e[51]=D,e[52]=r.data.isDirectory,e[53]=V):V=e[53];let q;e[54]===r?q=e[55]:(q=(0,a.jsx)(wa,{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)(Ma,{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 Ne(r.data.path),re({title:"Copied to clipboard"})},e[58]=r.data.path,e[59]=A);let W;e[60]===Symbol.for("react.memo_cache_sentinel")?(W=(0,a.jsx)(wt,{className:ve}),e[60]=W):W=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:[W,"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 Ne(g.relativeFromRoot(r.data.path)),re({title:"Copied to clipboard"})},"data-testid":"file-explorer-copy-relative-path-menu-item",children:[(0,a.jsx)(wt,{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 $;e[66]===Symbol.for("react.memo_cache_sentinel")?($=(0,a.jsx)(ue,{}),e[66]=$):$=e[66];let b;e[67]!==c||e[68]!==N||e[69]!==r.data?(b=()=>{let{path:K}=r.data;N(Ot[c](K))},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)(ma,{className:ve}),e[71]=T):T=e[71];let L;e[72]===b?L=e[73]:(L=(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]=L);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:K}=r.data;await Ne(Ot[c](K))},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)(Wt,{className:ve}),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&&!be()&&(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)(lr,{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)(Me,{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)(Fa,{onSelect:v,testId:"file-explorer-delete-menu-item"}),e[89]=v,e[90]=he);let xe;e[91]!==U||e[92]!==R||e[93]!==V||e[94]!==q||e[95]!==E||e[96]!==Y||e[97]!==k||e[98]!==L||e[99]!==de||e[100]!==me||e[101]!==pe||e[102]!==he?(xe=(0,a.jsxs)(Sa,{testId:"file-explorer-more-button",iconClassName:"w-5 h-5",children:[U,R,V,q,E,Y,k,$,L,de,me,Se,pe,he]}),e[91]=U,e[92]=R,e[93]=V,e[94]=q,e[95]=E,e[96]=Y,e[97]=k,e[98]=L,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]!==I||e[107]!==xe?(fe=(0,a.jsxs)("span",{className:Q,children:[J,I,xe]}),e[104]=Q,e[105]=J,e[106]=I,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},Kr=t=>{let e=(0,_e.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)(Oe,{isExpanded:r.isOpen,className:"w-4 h-4"}),e[1]=r.isOpen,e[2]=o),o};function It(t,e){t.stopPropagation(),t.preventDefault(),ar(e)}function Rt(t,e){if(e)return t;let r=[];for(let o of t){if(Ur(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 Ur(t){return!!t.startsWith(".")}function Gr(){return null}function Jr(t){let{parentNode:e}=t;return!e.data.isDirectory}var Vt=oe(),Yr=t=>{let e=(0,Vt.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}=Lt(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)(Er,{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)(_r,{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},Xr=33,Zr=()=>{let t=(0,Vt.c)(36),{ref:e,height:r}=Ka(),o=r===void 0?500:r,[i,n]=Fe(rr),m=je(er).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-Xr*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 C=g,j=Math.max(200,N?p-C:p),d;t[12]===Symbol.for("react.memo_cache_sentinel")?(d=(0,a.jsx)(it,{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)(Xa,{children:m}),t[13]=m,t[14]=v);let F;t[15]===v?F=t[16]:(F=(0,a.jsxs)(ft,{children:[d," Remote storage",v]}),t[15]=v,t[16]=F);let h;t[17]===C?h=t[18]:(h={maxHeight:C},t[17]=C,t[18]=h);let w;t[19]===Symbol.for("react.memo_cache_sentinel")?(w=(0,a.jsx)(wr,{}),t[19]=w):w=t[19];let _;t[20]===h?_=t[21]:(_=(0,a.jsx)(ut,{className:"overflow-auto",style:h,children:w}),t[20]=h,t[21]=_);let M;t[22]!==_||t[23]!==F?(M=(0,a.jsxs)(xt,{value:"remote-storage",children:[F,_]}),t[22]=_,t[23]=F,t[24]=M):M=t[24];let D;t[25]===Symbol.for("react.memo_cache_sentinel")?(D=(0,a.jsxs)(ft,{children:[(0,a.jsx)(lt,{className:"w-4 h-4"}),"Files"]}),t[25]=D):D=t[25];let S;t[26]===j?S=t[27]:(S=(0,a.jsxs)(xt,{value:"files",children:[D,(0,a.jsx)(ut,{children:(0,a.jsx)(Yr,{height:j})})]}),t[26]=j,t[27]=S);let P;t[28]!==f||t[29]!==c||t[30]!==M||t[31]!==S?(P=(0,a.jsxs)(Zt,{type:"multiple",value:c,onValueChange:f,children:[M,S]}),t[28]=f,t[29]=c,t[30]=M,t[31]=S,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{Zr as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as y}from"./chunk-C4rtOYze.js";import{
|
|
1
|
+
import{o as y}from"./chunk-C4rtOYze.js";import{Lr as d}from"./cells-DD-zwhxi.js";import{t as f}from"./cn-DCUzRj2J.js";import{t as g}from"./jsx-runtime-3wZU7vFS.js";import{t as e}from"./createLucideIcon-B8oVfJNp.js";import{n as c,t as k}from"./file-headphone-BjKz3ZV1.js";import{t as u}from"./file-BjlLTeSV.js";import{t as v}from"./image-Dvcyi0uu.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};
|