@marimo-team/frontend 0.25.1-dev2 → 0.25.1-dev3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/dist/assets/{ConnectedDataExplorerComponent-Bdak5-o8.js → ConnectedDataExplorerComponent-DeqCS430.js} +1 -1
  2. package/dist/assets/{ErrorBoundary-DrliQ_7g.js → ErrorBoundary-DDm0F3Ge.js} +2 -2
  3. package/dist/assets/LazyAnyLanguageCodeMirror-DPoyi1KJ.js +2 -0
  4. package/dist/assets/{RunButton-qknEPbRR.js → RunButton-1O-85ifv.js} +10 -10
  5. package/dist/assets/{abnfDiagram-VCTEODGH-dm832Yw9.js → abnfDiagram-VCTEODGH-DhJEqQ9k.js} +1 -1
  6. package/dist/assets/{add-cell-with-ai-Ovbsj95O.js → add-cell-with-ai-B_rl7cPp.js} +12 -12
  7. package/dist/assets/{agent-panel-CJva58SL.js → agent-panel-nJz0jCo0.js} +1 -1
  8. package/dist/assets/{ai-model-dropdown-1t7m1iFc.js → ai-model-dropdown-BmCwaRek.js} +2 -2
  9. package/dist/assets/{any-language-editor-B7QvjaYO.js → any-language-editor-CxgTzMTD.js} +1 -1
  10. package/dist/assets/app-config-button-CtDuDui6.js +1 -0
  11. package/dist/assets/{architectureDiagram-5GKGNRK7-CiRaYU5G.js → architectureDiagram-5GKGNRK7-BwF4-SE1.js} +1 -1
  12. package/dist/assets/{blockDiagram-I7D4REHJ-BK3JcsXA.js → blockDiagram-I7D4REHJ-B7xaFbfk.js} +1 -1
  13. package/dist/assets/{cache-panel-DxdmvFwH.js → cache-panel-Bd7XcHQd.js} +1 -1
  14. package/dist/assets/{cells-BcQ8Tm3j.js → cells-Cu3p4E4U.js} +32 -32
  15. package/dist/assets/{chat-display-TI342pMF.js → chat-display-CKr8MVOE.js} +1 -1
  16. package/dist/assets/chat-panel-J4XhiL6i.js +4 -0
  17. package/dist/assets/{chat-ui-B1aeiWdr.js → chat-ui-BH1aZhD7.js} +1 -1
  18. package/dist/assets/{chunk-IMKFNOWR-yy9Ec7ZM.js → chunk-IMKFNOWR-Cypkx_kh.js} +1 -1
  19. package/dist/assets/{chunk-SHT3W25Y-lri4OQTX.js → chunk-SHT3W25Y-V37g5TGQ.js} +1 -1
  20. package/dist/assets/{chunk-SVP7TREG-B3ISFgJc.js → chunk-SVP7TREG-CTD0ZEkK.js} +1 -1
  21. package/dist/assets/{chunk-TICWLB2K-CJ7ETjY3.js → chunk-TICWLB2K-BmUJmjwl.js} +1 -1
  22. package/dist/assets/{classDiagram-ZZMXUADV-CIEFh40S.js → classDiagram-ZZMXUADV-BS3U2jc1.js} +1 -1
  23. package/dist/assets/{classDiagram-v2-VYDZK3BY-CIEFh40S.js → classDiagram-v2-VYDZK3BY-BS3U2jc1.js} +1 -1
  24. package/dist/assets/code-visibility-7811giS9.js +1 -0
  25. package/dist/assets/command-palette-ZCeZiFkl.js +1 -0
  26. package/dist/assets/{common-cDzShymV.js → common-BdqirnCM.js} +1 -1
  27. package/dist/assets/{components-B3KlHXnD.js → components-BFIaoBwJ.js} +1 -1
  28. package/dist/assets/components-CzFNo5Dk.js +1 -0
  29. package/dist/assets/config-B4VJJibu.js +1 -0
  30. package/dist/assets/{utils-B3E7otfg.js → config-BxZgoFvi.js} +1 -1
  31. package/dist/assets/config-DpGPGznL.js +1 -0
  32. package/dist/assets/{cynefinDiagram-5FMLGOSQ-1zl1wSTB.js → cynefinDiagram-5FMLGOSQ-CTXT8KNm.js} +1 -1
  33. package/dist/assets/{dagre-DM-Ch8wC.js → dagre-B5pirN9r.js} +1 -1
  34. package/dist/assets/{dagre-GXQ25YYZ-BqoUeivc.js → dagre-GXQ25YYZ-6LiieueL.js} +1 -1
  35. package/dist/assets/{data-grid-overlay-editor-DbqMOWZn.js → data-grid-overlay-editor-87bCN9IO.js} +1 -1
  36. package/dist/assets/{dependency-graph-panel-C-SFFOPF.js → dependency-graph-panel-CHbDGV22.js} +1 -1
  37. package/dist/assets/{diagram-S7CK7UJ4-CF90sb1m.js → diagram-S7CK7UJ4-BZL5Ql7I.js} +1 -1
  38. package/dist/assets/{diagram-UQ7AKVKN-DgbZAUCH.js → diagram-UQ7AKVKN-AhAtqSJG.js} +1 -1
  39. package/dist/assets/{diagram-VX7I27RA-6dC0a_-i.js → diagram-VX7I27RA-COX-CxL0.js} +1 -1
  40. package/dist/assets/{diagram-Z3DM3KII-C1OXYmlB.js → diagram-Z3DM3KII-DXw7fg_D.js} +1 -1
  41. package/dist/assets/{documentation-panel-idK3s0j3.js → documentation-panel-DUlFjJdz.js} +1 -1
  42. package/dist/assets/{ebnfDiagram-PWID7BFC-7gC3cuC7.js → ebnfDiagram-PWID7BFC-Ds-CB5Z_.js} +1 -1
  43. package/dist/assets/{edit-page-_D_Nv3dJ.js → edit-page-D--nkMAI.js} +20 -20
  44. package/dist/assets/{erDiagram-RLTQ6QDP-BsE87b_i.js → erDiagram-RLTQ6QDP-RdxnwvNA.js} +1 -1
  45. package/dist/assets/{error-entries-C-LFkdXb.js → error-entries-BUsiy4Fq.js} +1 -1
  46. package/dist/assets/{error-panel-YAFgCest.js → error-panel-DmaQ2MSS.js} +1 -1
  47. package/dist/assets/{feedback-button-sRQQL2TH.js → feedback-button-DJMAFZ1t.js} +1 -1
  48. package/dist/assets/file-explorer-panel-BZ4A-j8a.js +1 -0
  49. package/dist/assets/{file-name-input-BXq6eIDs.js → file-name-input-CCRQJdng.js} +1 -1
  50. package/dist/assets/{flowDiagram-HODETNUW-B4xRBXB1.js → flowDiagram-HODETNUW-DN8oq7vL.js} +1 -1
  51. package/dist/assets/{gallery-page-CH8TM7bV.js → gallery-page-DFoyByKn.js} +1 -1
  52. package/dist/assets/{glide-data-editor-DPMjaN4R.js → glide-data-editor-jH9-4ffy.js} +4 -4
  53. package/dist/assets/{graphlib-DDJ8O6ZH.js → graphlib-CWJvl2Lb.js} +1 -1
  54. package/dist/assets/has-W-yPT2HD.js +1 -0
  55. package/dist/assets/home-page-D_6gPong.js +4 -0
  56. package/dist/assets/index-Bjli4tSW.js +62 -0
  57. package/dist/assets/{infoDiagram-27XIBGKW-FE7De1I6.js → infoDiagram-27XIBGKW-B0jMwBBO.js} +1 -1
  58. package/dist/assets/{ishikawaDiagram-5VMMS53U-CSEGYrJ-.js → ishikawaDiagram-5VMMS53U-4eji-_U4.js} +1 -1
  59. package/dist/assets/{kanban-definition-UXKFOSKX-d7iAZsOb.js → kanban-definition-UXKFOSKX-BYgV-VZ3.js} +1 -1
  60. package/dist/assets/{logs-panel-xMj01DRN.js → logs-panel-CvwX6Xnb.js} +1 -1
  61. package/dist/assets/{mermaid-CNjXdDrA.js → mermaid-BmcDudwo.js} +4 -4
  62. package/dist/assets/{mindmap-definition-YA3MSWOX-CddM9_uP.js → mindmap-definition-YA3MSWOX-Cz5xXQnv.js} +1 -1
  63. package/dist/assets/{number-overlay-editor-N57if5NT.js → number-overlay-editor-Jcf1i5Xj.js} +1 -1
  64. package/dist/assets/{outline-panel-Garp-f5k.js → outline-panel-4icYQ4vr.js} +1 -1
  65. package/dist/assets/packages-panel-pQzYAoH5.js +1 -0
  66. package/dist/assets/{panels-CnbmgzkS.js → panels-CM1tqwz-.js} +6 -6
  67. package/dist/assets/{pegDiagram-XKGWAZYB-CEns8d-M.js → pegDiagram-XKGWAZYB-CCOAs3UH.js} +1 -1
  68. package/dist/assets/{pieDiagram-E7YTZNPT-wyb0xQ0R.js → pieDiagram-E7YTZNPT-BBxiPx1C.js} +1 -1
  69. package/dist/assets/{process-output-ObDfw1uu.js → process-output-CXjf0zEE.js} +1 -1
  70. package/dist/assets/{railroadDiagram-O6MQD6OU-DZZVHmr2.js → railroadDiagram-O6MQD6OU-BRv2wsAz.js} +1 -1
  71. package/dist/assets/{requirementDiagram-BXWQKSXE-C3Bf4dd5.js → requirementDiagram-BXWQKSXE-HAdL90iQ.js} +1 -1
  72. package/dist/assets/{reveal-component-DgrXq3Kv.js → reveal-component-CiQEczuZ.js} +2 -2
  73. package/dist/assets/run-page-BTAjlR7y.js +1 -0
  74. package/dist/assets/scratchpad-panel-Btg5EoIW.js +1 -0
  75. package/dist/assets/{secrets-panel-4dRIaZfY.js → secrets-panel-C-17vrf1.js} +1 -1
  76. package/dist/assets/{sequenceDiagram-WJ2MYXX4-BIY0mgX7.js → sequenceDiagram-WJ2MYXX4-Bs66qtoH.js} +1 -1
  77. package/dist/assets/session-DXKMv4Bs.js +1 -0
  78. package/dist/assets/session-panel-BYf4LDAo.js +1 -0
  79. package/dist/assets/snippets-panel-BAYAZKCH.js +1 -0
  80. package/dist/assets/{stateDiagram-D77RDMKH-D_xRHRLf.js → stateDiagram-D77RDMKH-CZZcOZaL.js} +1 -1
  81. package/dist/assets/{stateDiagram-v2-MP3YSRHH-BQvYFx_a.js → stateDiagram-v2-MP3YSRHH-sU5f30Vy.js} +1 -1
  82. package/dist/assets/{swimlanes-42K2YHIH-CDQzpfz0.js → swimlanes-42K2YHIH-DmvAwXeY.js} +1 -1
  83. package/dist/assets/{swimlanesDiagram-VR7AAH4N-BAn2JKhB.js → swimlanesDiagram-VR7AAH4N-CNzkvYiI.js} +1 -1
  84. package/dist/assets/{swiper-component-j-Lk25wW.js → swiper-component-C-iHKt3a.js} +1 -1
  85. package/dist/assets/{terminal-BToH-U1t.js → terminal-BJXvwDtX.js} +1 -1
  86. package/dist/assets/{timeline-definition-24CTP7MA-D5Jgj1fz.js → timeline-definition-24CTP7MA-DMBmrnDz.js} +1 -1
  87. package/dist/assets/{tracing-DtKLmNHj.js → tracing-C1gfnMTz.js} +1 -1
  88. package/dist/assets/tracing-panel-CzJ8ckHz.js +2 -0
  89. package/dist/assets/useCellActionButton-ChAk7KSd.js +1 -0
  90. package/dist/assets/useTheme-DcnXlv0_.js +1 -0
  91. package/dist/assets/{constants-BDbGiS7O.js → utils-B4K466FK.js} +1 -1
  92. package/dist/assets/{vega-component-DVSvu4vP.js → vega-component-Dyn2ovlw.js} +1 -1
  93. package/dist/assets/{vega-embed-container-QM1zZmYi.js → vega-embed-container-SaZMhvDB.js} +1 -1
  94. package/dist/assets/{vennDiagram-4TSXK5OY-Cv6jxbpX.js → vennDiagram-4TSXK5OY-CU4ZQxbP.js} +1 -1
  95. package/dist/assets/{wardleyDiagram-VM6X3IG4-lwv-YoWo.js → wardleyDiagram-VM6X3IG4-CqJhzIbP.js} +1 -1
  96. package/dist/assets/{xychartDiagram-S5SC5T6Z-CGM4LlFN.js → xychartDiagram-S5SC5T6Z-CS6EJwUz.js} +1 -1
  97. package/dist/assets/youtube-A9VT7NHb.js +1 -0
  98. package/dist/index.html +10 -10
  99. package/package.json +1 -1
  100. package/src/core/kernel/__tests__/session.test.ts +110 -1
  101. package/src/core/kernel/session.ts +46 -15
  102. package/dist/assets/LazyAnyLanguageCodeMirror-EBegnOE0.js +0 -2
  103. package/dist/assets/app-config-button-vCxNGhe2.js +0 -1
  104. package/dist/assets/chat-panel-CzdR8RG_.js +0 -4
  105. package/dist/assets/code-visibility-G0W4ym3Y.js +0 -1
  106. package/dist/assets/command-palette-DhdK67bL.js +0 -1
  107. package/dist/assets/components-CQVZgYvR.js +0 -1
  108. package/dist/assets/config-CMqNngzA.js +0 -1
  109. package/dist/assets/config-CmBpjGXk.js +0 -1
  110. package/dist/assets/file-explorer-panel-LAa-LxTN.js +0 -1
  111. package/dist/assets/has-CanCEarv.js +0 -1
  112. package/dist/assets/home-page-vDWLpS4F.js +0 -4
  113. package/dist/assets/index-CgQsZfww.js +0 -62
  114. package/dist/assets/packages-panel-B8HU9FAM.js +0 -1
  115. package/dist/assets/run-page-E0qMru0p.js +0 -1
  116. package/dist/assets/scratchpad-panel-CCFyaegO.js +0 -1
  117. package/dist/assets/session-C8nQMsOE.js +0 -1
  118. package/dist/assets/session-panel-CR3BHLhQ.js +0 -1
  119. package/dist/assets/snippets-panel-Dn22yTr_.js +0 -1
  120. package/dist/assets/tracing-panel-C5ybTQyJ.js +0 -2
  121. package/dist/assets/useCellActionButton-Bm9OZdcq.js +0 -1
  122. package/dist/assets/useTheme-Ho3YdAx3.js +0 -1
  123. package/dist/assets/youtube-ELpGJEdR.js +0 -1
@@ -4,6 +4,8 @@ import { Logger } from "@/utils/Logger";
4
4
  import type { TypedString } from "@/utils/typed";
5
5
  import { updateQueryParams } from "@/utils/urls";
6
6
  import { KnownQueryParams } from "../constants";
7
+ import { initialModeAtom } from "../mode";
8
+ import { store } from "../state/jotai";
7
9
 
8
10
  export type SessionId = TypedString<"SessionId">;
9
11
 
@@ -20,31 +22,60 @@ export function isSessionId(value: string | null): value is SessionId {
20
22
  return /^s_[\da-z]{6}$/.test(value);
21
23
  }
22
24
 
23
- const sessionId = (() => {
25
+ let sessionId: SessionId | null = null;
26
+
27
+ function resolveSessionId(): SessionId {
28
+ // Only the editor lets the URL steer the connection: kiosk mode and
29
+ // external editors reattach to a running session through `session_id`.
30
+ // An app served with `marimo run` never does. There, the session id is the
31
+ // only thing that routes a browser to its kernel, so a link that picked it
32
+ // would let the link's author attach to the reader's session afterwards,
33
+ // and a stray `kiosk` flag would make the server refuse the connection.
34
+ const urlMaySteerConnection = store.get(initialModeAtom) === "edit";
35
+
24
36
  const url = new URL(window.location.href);
25
37
  const id = url.searchParams.get(
26
38
  KnownQueryParams.sessionId,
27
39
  ) as SessionId | null;
28
- if (isSessionId(id)) {
29
- // Remove the session_id from the URL
30
- updateQueryParams((params) => {
31
- // Keep the session_id if we are in kiosk mode
32
- // this is so we can resume the same session if the user refreshes the page
33
- if (params.has(KnownQueryParams.kiosk)) {
34
- return;
35
- }
40
+ const urlSessionId = isSessionId(id) ? id : null;
41
+
42
+ updateQueryParams((params) => {
43
+ if (!urlMaySteerConnection) {
36
44
  params.delete(KnownQueryParams.sessionId);
45
+ params.delete(KnownQueryParams.kiosk);
46
+ return;
47
+ }
48
+ // Keep the session_id in kiosk mode so that a refresh resumes the same
49
+ // session.
50
+ if (params.has(KnownQueryParams.kiosk)) {
51
+ return;
52
+ }
53
+ params.delete(KnownQueryParams.sessionId);
54
+ });
55
+
56
+ if (urlSessionId === null) {
57
+ Logger.debug("Starting a new session", { sessionId: id });
58
+ return generateSessionId();
59
+ }
60
+ if (!urlMaySteerConnection) {
61
+ Logger.debug("Ignoring session_id from URL outside the editor", {
62
+ sessionId: urlSessionId,
37
63
  });
38
- Logger.debug("Connecting to existing session", { sessionId: id });
39
- return id;
64
+ return generateSessionId();
40
65
  }
41
- Logger.debug("Starting a new session", { sessionId: id });
42
- return generateSessionId();
43
- })();
66
+ Logger.debug("Connecting to existing session", { sessionId: urlSessionId });
67
+ return urlSessionId;
68
+ }
44
69
 
45
70
  /**
46
- * Resume an existing session or start a new one
71
+ * Resume an existing session or start a new one.
72
+ *
73
+ * Resolved on first use rather than at import time, because the URL is only
74
+ * trusted once the app mode is known.
47
75
  */
48
76
  export function getSessionId(): SessionId {
77
+ if (sessionId === null) {
78
+ sessionId = resolveSessionId();
79
+ }
49
80
  return sessionId;
50
81
  }
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./any-language-editor-B7QvjaYO.js","./rolldown-runtime-B0Z9INg1.js","./react-CUdNIagt.js","./compiler-runtime-BQ9S8nyo.js","./useEventListener-BdZUApHd.js","./objects-snlMn4yk.js","./jsx-runtime-B74pBk57.js","./copy-icon-DFhUGBjO.js","./cn-ldLVeaqm.js","./clsx-DB0hHKMi.js","./tooltip-DR2Z2N4w.js","./fullscreen-BmzAqMKq.js","./react-dom-CKsE8sC1.js","./dist-CyYN7zJg.js","./button-BoklZTGL.js","./check-Wea4hZ6R.js","./createLucideIcon-rHn2EdoM.js","./copy-RyCOE8jo.js","./copy-BhJktFeI.js","./use-toast-CC89xOwH.js","./index-CgQsZfww.js","./useEvent-Dc9HkKI2.js","./cells-BcQ8Tm3j.js","./schemas-BL-NsLlF.js","./debounce-aFmHgJZY.js","./isObject-BCaOs5rp.js","./now-Cmx0b_zA.js","./isSymbol-oX0TOjjx.js","./utils-B3E7otfg.js","./_baseMerge-CQpUq7ep.js","./isArrayLikeObject-DnwgSs_Z.js","./invariant-Ci2dTZ72.js","./config-CmBpjGXk.js","./constants-BDbGiS7O.js","./Deferred-CrTnjj37.js","./session-C8nQMsOE.js","./menu-items-BBdeXCvU.js","./use-restore-focus-B98SEiGc.js","./select-BplWpfFo.js","./useNumberFormatter-C4-_TnkF.js","./context-BFOBKCJB.js","./circle-CeQt3rdW.js","./toast-KNfsFUiB.js","./paths-CzfpItSz.js","./useLifecycle-DKSBdWUf.js","./toDate-BbJ1_N2T.js","./database-zap-CrkOvbyN.js","./write-secret-modal-CBUZw27N.js","./alert-dialog-CeE3i3Qa.js","./input-BDakodZ2.js","./numbers-DsgsDslU.js","./once-Haz_uxEL.js","./arrays-BqUx5USx.js","./useDebounce-DMbg9X18.js","./requests-yTHMxhVa.js","./uuid-k9DpjH68.js","./plus-gbN72xHe.js","./trash-2-BJG-7Qob.js","./preload-helper-HclGiUj8.js","./dist-BczecT6V.js","./dist-BTskHGpb.js","./capabilities-Bj3s1hGN.js","./cjs-C49f7GXV.js","./createReducer-BPvK7C_R.js","./dist-Ccyblc8N.js","./marked.esm-B_3iMIUq.js","./strings-BHZPE0Mc.js","./dist-BN-7G8qZ.js","./badge-DFf033uX.js","./dist-DBqBVprh.js","./dist-Bviq_Dee.js","./dist-CiUBikfn.js","./dist-MRn68vX1.js","./dist-DueXZKz9.js","./stex-CJTNBbet.js","./useTheme-Ho3YdAx3.js","./useAsyncData-DucTwMkf.js","./purify.es-CYRiAeUx.js","./cells-0PFKL3SH.css","./get-DjNf4SIX.js","./ErrorBoundary-DrliQ_7g.js","./config-CMqNngzA.js","./dropdown-menu-VuyoeQOD.js","./chevron-right-DOPs2jx8.js","./hat-glasses-DVgK5i5l.js","./package-BeYhVWvM.js","./errors-D9vyuMar.js","./tooltip-B1vGi-z4.js","./vega-loader.browser-CLRkNgm7.js","./precisionRound-Bq_nmf5u.js","./defaultLocale-CNPGWpMu.js","./defaultLocale-D5bOh7g6.js","./chunk-YOKDWASO-CaoEAGJk.js","./micromark-factory-space-D9Dr-k4J.js","./index-2TQenOiQ.css","./esm-BErdoAcz.js","./dist-CEjBPDxA.js","./dist-DvHtpUI7.js","./dist-yiD-qDpu.js","./dist-Cx42VZlZ.js","./dist-CI-3E0S2.js","./dist-Gcu0m5O1.js","./dist-BH-S-j9V.js","./dist-BYSOsNiK.js","./dist-CCiiXOoB.js","./dist-vrBHmefa.js","./dist-D5LovWSN.js","./dist-DuOZdyY2.js","./dist-Dz4H5Lpr.js","./apl-CFg5GYAr.js","./asciiarmor-DcSiPPgr.js","./asn1-BPjkVyGQ.js","./brainfuck-DunkcVMy.js","./cobol-fTfgAx9-.js","./clike-DVzjdKyz.js","./clojure-B0g4lNAw.js","./css-bBkWhGQX.js","./cmake-DPXbK5QP.js","./coffeescript-Ow8rTsfP.js","./commonlisp-CRQC3SaM.js","./cypher-i9OcNAXL.js","./python-D2ExL5QM.js","./crystal-BrD_FAHX.js","./d-vXL79Y_P.js","./diff-Cpbyjb1r.js","./dtd-BN3Z36N0.js","./dylan-DtbpL-5i.js","./ecl-BWUyrr3C.js","./eiffel-CWDL_R9u.js","./elm-BzsnjhuV.js","./erlang-DXJDmcpF.js","./factor-Tpb8PZTx.js","./simple-mode-DXiLM1-G.js","./forth-Dw2vWL7C.js","./fortran-DKiYgGt5.js","./mllike-DKHdPBJ4.js","./gas-Ei6cTQl-.js","./gherkin-yFF3mfsd.js","./groovy-UTCC12KJ.js","./haskell-BHJQXLHt.js","./haxe-nTPzqrqE.js","./idl-CuG-upqW.js","./javascript-DeVynBqR.js","./julia-pvaK4Pax.js","./livescript-DT1P5eZp.js","./lua-BveDyMVp.js","./mirc-Bjfymsl0.js","./mathematica-BRcOIGly.js","./modelica-DSjP6M5g.js","./mumps-C8StcE5K.js","./mbox-DZvbm2hT.js","./nsis-T1iBtB9C.js","./ntriples-ChQ5ETDi.js","./octave-B1-zg_Ax.js","./oz-Bl-j8Qgc.js","./pascal-BOvYlg0k.js","./perl-Bg-67FLb.js","./pig-Dm1oyrLX.js","./powershell-DohryO0B.js","./properties-C9Sx0CY6.js","./protobuf-CkyW36SJ.js","./pug-Db3Zt5v4.js","./puppet-B65Z6MIR.js","./q-uBS-kSZE.js","./r-BieRum_u.js","./rpm-CmRXh_9v.js","./ruby-B4BmRxk8.js","./sas-DL2uE5J1.js","./scheme-CPTXU9en.js","./shell-B2QETDWa.js","./sieve-DWZh8qcF.js","./smalltalk-BZOwo1hk.js","./sparql-Va5qPe7r.js","./stylus-B7NEtOjg.js","./swift-CyXDuJhH.js","./verilog-48D_RyTw.js","./tcl-DmU4tnXP.js","./textile-DSm0gG7z.js","./toml-DtceOx7T.js","./troff-DXoHE4S9.js","./ttcn-DYcxXVLi.js","./ttcn-cfg-BfQlKCwV.js","./turtle-CljXEmAu.js","./webidl-DXE3DXqw.js","./vb-CHFvWjRU.js","./vbscript-BEDR3krh.js","./velocity-BoKDxc_x.js","./vhdl-B_DNZIiR.js","./xquery-BriQFVWe.js","./yacas-Cyn2f2Yi.js","./z80-BG8AOCL_.js","./mscgen-BLnPHriT.js","./dist-BWSz9T8E.js"])))=>i.map(i=>d[i]);
2
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./react-CUdNIagt.js";import{t as n}from"./createLucideIcon-rHn2EdoM.js";import{t as r}from"./preload-helper-HclGiUj8.js";var i=n(`between-horizontal-start`,[[`rect`,{width:`13`,height:`7`,x:`8`,y:`3`,rx:`1`,key:`pkso9a`}],[`path`,{d:`m2 9 3 3-3 3`,key:`1agib5`}],[`rect`,{width:`13`,height:`7`,x:`8`,y:`14`,rx:`1`,key:`1q5fc1`}]]),a=(0,e(t(),1).lazy)(()=>r(()=>import(`./any-language-editor-B7QvjaYO.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192]),import.meta.url));export{i as n,a as t};
@@ -1 +0,0 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{c as t}from"./useEvent-Dc9HkKI2.js";import{t as n}from"./react-CUdNIagt.js";import{$t as r,Bn as i,En as a,On as o,Xt as s,Yt as c,Zt as l,cn as u,dn as d,en as f,nn as p,tn as m,un as h}from"./cells-BcQ8Tm3j.js";import{t as g}from"./compiler-runtime-BQ9S8nyo.js";import{C as _,O as v,k as y}from"./utils-B3E7otfg.js";import{O as b,d as x,f as S,i as C,n as w,u as T}from"./ai-model-dropdown-1t7m1iFc.js";import{z as E}from"./config-CmBpjGXk.js";import{t as D}from"./jsx-runtime-B74pBk57.js";import{o as O}from"./alert-dialog-CeE3i3Qa.js";import{l as k}from"./select-BplWpfFo.js";import{t as A}from"./tooltip-DR2Z2N4w.js";import{t as j}from"./button-BoklZTGL.js";import{t as M}from"./createLucideIcon-rHn2EdoM.js";import{r as N}from"./useNumberFormatter-C4-_TnkF.js";import{b as P,p as F}from"./write-secret-modal-CBUZw27N.js";import{Ut as I,Wt as L,Xt as R,Zt as ee,r as z}from"./input-BDakodZ2.js";import{t as B}from"./settings-DlKTeV_0.js";import{t as V}from"./use-toast-CC89xOwH.js";import{s as H}from"./arrays-BqUx5USx.js";import{r as U}from"./requests-yTHMxhVa.js";import{r as W}from"./useDebounce-DMbg9X18.js";import{Ui as G,zr as K}from"./index-CgQsZfww.js";import{n as q}from"./useInterval-ChchS0Rl.js";var J=M(`power-off`,[[`path`,{d:`M18.36 6.64A9 9 0 0 1 20.77 15`,key:`dxknvb`}],[`path`,{d:`M6.16 6.16a9 9 0 1 0 12.68 12.68`,key:`1x7qb5`}],[`path`,{d:`M12 2v4`,key:`3427ic`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),Y=g(),X=D(),Z=e=>{let t=(0,Y.c)(15),{description:n,disabled:r,tooltip:i}=e,a=r!==void 0&&r,o=i===void 0?`Shutdown`:i,{openConfirm:s,closeModal:c}=P(),{sendShutdown:l}=U(),u;t[0]===l?u=t[1]:(u=()=>{l(),setTimeout(te,200)},t[0]=l,t[1]=u);let d=u;if(E())return null;let f=a?`disabled`:`red`,p;t[2]!==c||t[3]!==n||t[4]!==d||t[5]!==s?(p=e=>{e.stopPropagation(),s({title:`Shutdown`,description:n,variant:`destructive`,confirmAction:(0,X.jsx)(O,{onClick:()=>{d(),c()},"aria-label":`Confirm Shutdown`,children:`Shutdown`})})},t[2]=c,t[3]=n,t[4]=d,t[5]=s,t[6]=p):p=t[6];let m;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,X.jsx)(N,{strokeWidth:1}),t[7]=m):m=t[7];let h;t[8]!==a||t[9]!==f||t[10]!==p?(h=(0,X.jsx)(q,{"aria-label":`Shutdown`,"data-testid":`shutdown-button`,shape:`circle`,size:`small`,color:f,className:`h-[27px] w-[27px]`,disabled:a,onClick:p,children:m}),t[8]=a,t[9]=f,t[10]=p,t[11]=h):h=t[11];let g;return t[12]!==h||t[13]!==o?(g=(0,X.jsx)(A,{content:o,children:h}),t[12]=h,t[13]=o,t[14]=g):g=t[14],g};function te(){window.close()}var Q=e(n(),1),ne=100,re=()=>{let e=(0,Y.c)(37),[t,n]=_(),{saveAppConfig:u}=U(),d=(0,Q.useId)(),h=(0,Q.useId)(),g;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(g=a(v),e[0]=g):g=e[0];let y;e[1]===t?y=e[2]:(y={resolver:g,defaultValues:t},e[1]=t,e[2]=y);let b=o(y),C;e[3]!==u||e[4]!==n?(C=async e=>{await u({config:e}).then(()=>{n(e)}).catch(()=>{n(e)})},e[3]=u,e[4]=n,e[5]=C):C=e[5];let w=C,T;e[6]===w?T=e[7]:(T=e=>{w(e)},e[6]=w,e[7]=T);let E=W(T,ne),D;e[8]===t.width?D=e[9]:(D=[t.width],e[8]=t.width,e[9]=D),(0,Q.useEffect)(ie,D);let O;e[10]!==E||e[11]!==b?(O=b.handleSubmit(E),e[10]=E,e[11]=b,e[12]=O):O=e[12];let k;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,X.jsxs)(`div`,{children:[(0,X.jsx)(S,{children:`Notebook Settings`}),(0,X.jsx)(x,{children:`Configure how your notebook or application looks and behaves.`})]}),e[13]=k):k=e[13];let A;e[14]===b.control?A=e[15]:(A=(0,X.jsxs)($,{title:`Display`,children:[(0,X.jsx)(r,{control:b.control,name:`width`,render:oe}),(0,X.jsx)(r,{control:b.control,name:`app_title`,render:se})]}),e[14]=b.control,e[15]=A);let j;e[16]===b.control?j=e[17]:(j=(0,X.jsxs)($,{title:`Custom Files`,children:[(0,X.jsx)(r,{control:b.control,name:`css_file`,render:ce}),(0,X.jsx)(r,{control:b.control,name:`html_head_file`,render:le})]}),e[16]=b.control,e[17]=j);let M;e[18]===b.control?M=e[19]:(M=(0,X.jsx)($,{title:`Data`,children:(0,X.jsx)(r,{control:b.control,name:`sql_output`,render:de})}),e[18]=b.control,e[19]=M);let N;e[20]!==d||e[21]!==h?(N=e=>{let{field:t}=e;return(0,X.jsxs)(`div`,{className:`flex flex-col gap-y-1`,children:[(0,X.jsxs)(f,{className:`flex flex-col gap-2`,children:[(0,X.jsx)(s,{children:(0,X.jsxs)(`div`,{className:`flex gap-4`,children:[(0,X.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,X.jsx)(i,{id:d,"data-testid":`html-checkbox`,checked:t.value.includes(`html`),onCheckedChange:()=>{t.onChange(H(t.value,`html`))}}),(0,X.jsx)(m,{htmlFor:d,children:`HTML`})]}),(0,X.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,X.jsx)(i,{id:h,"data-testid":`ipynb-checkbox`,checked:t.value.includes(`ipynb`),onCheckedChange:()=>{t.onChange(H(t.value,`ipynb`))}}),(0,X.jsx)(m,{htmlFor:h,children:`IPYNB`})]})]})}),(0,X.jsx)(p,{})]}),(0,X.jsxs)(l,{children:[`When enabled, marimo will periodically save this notebook in your selected formats (HTML, IPYNB) to a folder named`,` `,(0,X.jsx)(K,{className:`inline`,children:`__marimo__`}),` next to your notebook file.`]})]})},e[20]=d,e[21]=h,e[22]=N):N=e[22];let P;e[23]!==b.control||e[24]!==N?(P=(0,X.jsx)($,{title:`Exporting outputs`,children:(0,X.jsx)(r,{control:b.control,name:`auto_download`,render:N})}),e[23]=b.control,e[24]=N,e[25]=P):P=e[25];let F;e[26]!==P||e[27]!==A||e[28]!==j||e[29]!==M?(F=(0,X.jsxs)(`div`,{className:`grid grid-cols-2 gap-x-8 gap-y-4`,children:[A,j,M,P]}),e[26]=P,e[27]=A,e[28]=j,e[29]=M,e[30]=F):F=e[30];let I;e[31]!==F||e[32]!==O?(I=(0,X.jsxs)(`form`,{onChange:O,className:`flex flex-col gap-6`,children:[k,F]}),e[31]=F,e[32]=O,e[33]=I):I=e[33];let L;return e[34]!==b||e[35]!==I?(L=(0,X.jsx)(c,{...b,children:I}),e[34]=b,e[35]=I,e[36]=L):L=e[36],L},$=e=>{let t=(0,Y.c)(5),{title:n,children:r}=e,i;t[0]===n?i=t[1]:(i=(0,X.jsx)(`h3`,{className:`text-base font-semibold mb-1`,children:n}),t[0]=n,t[1]=i);let a;return t[2]!==r||t[3]!==i?(a=(0,X.jsxs)(`div`,{className:`flex flex-col gap-y-2`,children:[i,r]}),t[2]=r,t[3]=i,t[4]=a):a=t[4],a};function ie(){window.dispatchEvent(new Event(`resize`))}function ae(e){return(0,X.jsx)(`option`,{value:e,children:e},e)}function oe(e){let{field:t}=e;return(0,X.jsxs)(f,{className:`flex flex-row items-center space-x-1 space-y-0`,children:[(0,X.jsx)(m,{children:`Width`}),(0,X.jsx)(s,{children:(0,X.jsx)(k,{"data-testid":`app-width-select`,onChange:e=>t.onChange(e.target.value),value:t.value,disabled:t.disabled,className:`inline-flex mr-2`,children:b().map(ae)})}),(0,X.jsx)(p,{})]})}function se(e){let{field:t}=e;return(0,X.jsxs)(`div`,{className:`flex flex-col gap-y-1`,children:[(0,X.jsxs)(f,{className:`flex flex-row items-center space-x-1 space-y-0`,children:[(0,X.jsx)(m,{children:`App title`}),(0,X.jsx)(s,{children:(0,X.jsx)(z,{...t,value:t.value??``,onChange:e=>{t.onChange(e.target.value),y.safeParse(e.target.value).success&&(document.title=e.target.value)}})}),(0,X.jsx)(p,{})]}),(0,X.jsx)(l,{children:`The application title is put in the title tag in the HTML code and typically displayed in the title bar of the browser window.`})]})}function ce(e){let{field:t}=e;return(0,X.jsxs)(`div`,{className:`flex flex-col gap-y-1`,children:[(0,X.jsxs)(f,{className:`flex flex-row items-center space-x-1 space-y-0`,children:[(0,X.jsx)(m,{className:`shrink-0`,children:`Custom CSS`}),(0,X.jsx)(s,{children:(0,X.jsx)(z,{...t,value:t.value??``,placeholder:`custom.css`,onChange:e=>{t.onChange(e.target.value),y.safeParse(e.target.value).success&&(document.title=e.target.value)}})}),(0,X.jsx)(p,{})]}),(0,X.jsx)(l,{children:`A filepath to a custom css file to be injected into the notebook.`})]})}function le(e){let{field:t}=e;return(0,X.jsxs)(`div`,{className:`flex flex-col gap-y-1`,children:[(0,X.jsxs)(f,{className:`flex flex-row items-center space-x-1 space-y-0`,children:[(0,X.jsx)(m,{className:`shrink-0`,children:`HTML Head`}),(0,X.jsx)(s,{children:(0,X.jsx)(z,{...t,value:t.value??``,placeholder:`head.html`,onChange:e=>{t.onChange(e.target.value)}})}),(0,X.jsx)(p,{})]}),(0,X.jsxs)(l,{children:[`A filepath to an HTML file to be injected into the`,` `,(0,X.jsx)(K,{className:`inline`,children:`<head/>`}),` section of the notebook. Use this to add analytics, custom fonts, meta tags, or external scripts.`]})]})}function ue(e){return(0,X.jsx)(`option`,{value:e.value,children:e.label},e.value)}function de(e){let{field:t}=e;return(0,X.jsxs)(`div`,{className:`flex flex-col gap-y-1`,children:[(0,X.jsxs)(f,{className:`flex flex-row items-center space-x-1 space-y-0`,children:[(0,X.jsx)(m,{children:`SQL Output Type`}),(0,X.jsx)(s,{children:(0,X.jsx)(k,{"data-testid":`sql-output-select`,onChange:e=>{t.onChange(e.target.value),V({title:`Kernel Restart Required`,description:`This change requires a kernel restart to take effect.`})},value:t.value,disabled:t.disabled,className:`inline-flex mr-2`,children:T.map(ue)})}),(0,X.jsx)(p,{})]}),(0,X.jsxs)(l,{children:[`The Python type returned by a SQL cell. For best performance with large datasets, we recommend using`,` `,(0,X.jsx)(K,{className:`inline`,children:`native`}),`. See the`,` `,(0,X.jsx)(F,{href:`https://docs.marimo.io/guides/working_with_data/sql`,children:`SQL guide`}),` `,`for more information.`]})]})}var fe=e=>{let n=(0,Y.c)(32),{showAppConfig:r,disabled:i,tooltip:a}=e,o=r===void 0||r,s=i!==void 0&&i,c=a===void 0?`Settings`:a,[l,f]=t(w),p=s?`disabled`:`hint-green`,m;n[0]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,X.jsx)(B,{strokeWidth:1.8}),n[0]=m):m=n[0];let g;n[1]===c?g=n[2]:(g=(0,X.jsx)(A,{content:c,children:m}),n[1]=c,n[2]=g);let _;n[3]!==s||n[4]!==p||n[5]!==g?(_=(0,X.jsx)(q,{"aria-label":`Config`,"data-testid":`app-config-button`,shape:`circle`,size:`small`,className:`h-[27px] w-[27px]`,disabled:s,color:p,children:g}),n[3]=s,n[4]=p,n[5]=g,n[6]=_):_=n[6];let v=_,y;n[7]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,X.jsxs)(L,{className:`w-[90vw] h-[90vh] overflow-hidden sm:max-w-5xl top-[5vh] p-0`,children:[(0,X.jsx)(G,{children:(0,X.jsx)(R,{children:`User settings`})}),(0,X.jsx)(C,{})]}),n[7]=y):y=n[7];let b=y;if(!o){let e;n[8]===v?e=n[9]:(e=(0,X.jsx)(ee,{children:v}),n[8]=v,n[9]=e);let t;return n[10]!==f||n[11]!==l||n[12]!==e?(t=(0,X.jsxs)(I,{open:l,onOpenChange:f,children:[e,b]}),n[10]=f,n[11]=l,n[12]=e,n[13]=t):t=n[13],t}let x;n[14]===v?x=n[15]:(x=(0,X.jsx)(d,{asChild:!0,children:v}),n[14]=v,n[15]=x);let S,T;n[16]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,X.jsx)(re,{}),T=(0,X.jsx)(`div`,{className:`h-px bg-border my-2`}),n[16]=S,n[17]=T):(S=n[16],T=n[17]);let E;n[18]===f?E=n[19]:(E=()=>f(!0),n[18]=f,n[19]=E);let D;n[20]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,X.jsx)(B,{strokeWidth:1.8,className:`w-4 h-4 mr-2`}),n[20]=D):D=n[20];let O;n[21]===E?O=n[22]:(O=(0,X.jsxs)(h,{className:`w-[650px] overflow-auto max-h-[80vh] max-w-[80vw]`,align:`end`,side:`bottom`,onFocusOutside:pe,children:[S,T,(0,X.jsxs)(j,{onClick:E,variant:`link`,className:`px-0`,children:[D,`User settings`]})]}),n[21]=E,n[22]=O);let k;n[23]!==O||n[24]!==x?(k=(0,X.jsxs)(u,{children:[x,O]}),n[23]=O,n[24]=x,n[25]=k):k=n[25];let M;n[26]!==f||n[27]!==l?(M=(0,X.jsx)(I,{open:l,onOpenChange:f,children:b}),n[26]=f,n[27]=l,n[28]=M):M=n[28];let N;return n[29]!==k||n[30]!==M?(N=(0,X.jsxs)(X.Fragment,{children:[k,M]}),n[29]=k,n[30]=M,n[31]=N):N=n[31],N};function pe(e){return e.preventDefault()}export{Z as n,J as r,fe as t};
@@ -1,4 +0,0 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{c as t,d as n,l as r,t as i,u as a}from"./useEvent-Dc9HkKI2.js";import{t as o}from"./react-CUdNIagt.js";import{D as s,Zn as c,ao as l,br as u,cn as d,dn as f,qa as p,un as m}from"./cells-BcQ8Tm3j.js";import{t as h}from"./compiler-runtime-BQ9S8nyo.js";import{a as g,n as _}from"./utils-B3E7otfg.js";import{c as v,j as y,r as b,t as x}from"./ai-model-dropdown-1t7m1iFc.js";import{g as S,o as C}from"./useEventListener-BdZUApHd.js";import{o as w,z as T}from"./config-CmBpjGXk.js";import{t as E}from"./cn-ldLVeaqm.js";import{t as D}from"./jsx-runtime-B74pBk57.js";import{S as O,T as k,_ as A,w as j,x as M,y as N}from"./fullscreen-BmzAqMKq.js";import{u as P}from"./menu-items-BBdeXCvU.js";import{t as ee}from"./config-CMqNngzA.js";import{a as te,i as F,m as I,n as ne,r as re,s as ie,t as ae}from"./select-BplWpfFo.js";import{i as oe,t as L}from"./tooltip-DR2Z2N4w.js";import{t as R}from"./button-BoklZTGL.js";import{t as z}from"./createLucideIcon-rHn2EdoM.js";import{ot as se}from"./panels-CnbmgzkS.js";import{B as ce,C as le,D as B,E as ue,N as de,R as fe,S as pe,U as me,_ as he,b as ge,c as V,d as _e,f as ve,g as ye,h as be,k as xe,l as Se,m as Ce,n as we,u as H,v as Te,w as U,x as Ee,y as De,z as Oe}from"./add-cell-with-ai-Ovbsj95O.js";import{t as W}from"./bot-message-square-BfGaNy9r.js";import{i as ke,n as Ae,r as je,t as Me}from"./chat-display-TI342pMF.js";import{t as Ne}from"./hat-glasses-DVgK5i5l.js";import{b as Pe,p as Fe}from"./write-secret-modal-CBUZw27N.js";import{t as Ie}from"./plus-gbN72xHe.js";import{Qt as Le,r as Re}from"./input-BDakodZ2.js";import{t as ze}from"./settings-DlKTeV_0.js";import{t as Be}from"./copy-icon-DFhUGBjO.js";import{r as Ve}from"./requests-yTHMxhVa.js";import{t as G}from"./uuid-k9DpjH68.js";import{t as He}from"./context-BFOBKCJB.js";import{Ar as Ue,Dr as We,Fn as Ge,Hn as Ke,Mr as qe,_a as Je,a as Ye,ha as K,kr as Xe}from"./index-CgQsZfww.js";import{t as Ze}from"./empty-state-CzxjZqGW.js";import{t as Qe}from"./scroll-to-bottom-button-BSCkDXet.js";import{g as $e,p as et}from"./edit-page-_D_Nv3dJ.js";var q=e(o(),1),J=D();function tt(e,t){return q.useReducer((e,n)=>t[e][n]??e,e)}var nt=`ScrollArea`,[rt,it]=j(nt),[at,Y]=rt(nt),ot=q.forwardRef((e,t)=>{let{__scopeScrollArea:n,type:r=`hover`,dir:i,scrollHideDelay:a=600,...o}=e,[s,c]=q.useState(null),[l,u]=q.useState(null),[d,f]=q.useState(null),[p,m]=q.useState(null),[h,g]=q.useState(null),[_,v]=q.useState(0),[y,b]=q.useState(0),[x,S]=q.useState(!1),[w,T]=q.useState(!1),E=C(t,e=>c(e)),D=P(i);return(0,J.jsx)(at,{scope:n,type:r,dir:D,scrollHideDelay:a,scrollArea:s,viewport:l,onViewportChange:u,content:d,onContentChange:f,scrollbarX:p,onScrollbarXChange:m,scrollbarXEnabled:x,onScrollbarXEnabledChange:S,scrollbarY:h,onScrollbarYChange:g,scrollbarYEnabled:w,onScrollbarYEnabledChange:T,onCornerWidthChange:v,onCornerHeightChange:b,children:(0,J.jsx)(k.div,{dir:D,...o,ref:E,style:{position:`relative`,"--radix-scroll-area-corner-width":_+`px`,"--radix-scroll-area-corner-height":y+`px`,...e.style}})})});ot.displayName=nt;var st=`ScrollAreaViewport`,ct=q.forwardRef((e,t)=>{let{__scopeScrollArea:n,children:r,nonce:i,...a}=e,o=Y(st,n),s=q.useRef(null),c=C(t,s,o.onViewportChange);return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`},nonce:i}),(0,J.jsx)(k.div,{"data-radix-scroll-area-viewport":``,...a,ref:c,style:{overflowX:o.scrollbarXEnabled?`scroll`:`hidden`,overflowY:o.scrollbarYEnabled?`scroll`:`hidden`,...e.style},children:(0,J.jsx)(`div`,{ref:o.onContentChange,style:{minWidth:`100%`,display:`table`},children:r})})]})});ct.displayName=st;var X=`ScrollAreaScrollbar`,Z=q.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=Y(X,e.__scopeScrollArea),{onScrollbarXEnabledChange:a,onScrollbarYEnabledChange:o}=i,s=e.orientation===`horizontal`;return q.useEffect(()=>(s?a(!0):o(!0),()=>{s?a(!1):o(!1)}),[s,a,o]),i.type===`hover`?(0,J.jsx)(lt,{...r,ref:t,forceMount:n}):i.type===`scroll`?(0,J.jsx)(ut,{...r,ref:t,forceMount:n}):i.type===`auto`?(0,J.jsx)(dt,{...r,ref:t,forceMount:n}):i.type===`always`?(0,J.jsx)(ft,{...r,ref:t}):null});Z.displayName=X;var lt=q.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=Y(X,e.__scopeScrollArea),[a,o]=q.useState(!1);return q.useEffect(()=>{let e=i.scrollArea,t=0;if(e){let n=()=>{window.clearTimeout(t),o(!0)},r=()=>{t=window.setTimeout(()=>o(!1),i.scrollHideDelay)};return e.addEventListener(`pointerenter`,n),e.addEventListener(`pointerleave`,r),()=>{window.clearTimeout(t),e.removeEventListener(`pointerenter`,n),e.removeEventListener(`pointerleave`,r)}}},[i.scrollArea,i.scrollHideDelay]),(0,J.jsx)(N,{present:n||a,children:(0,J.jsx)(dt,{"data-state":a?`visible`:`hidden`,...r,ref:t})})}),ut=q.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=Y(X,e.__scopeScrollArea),a=e.orientation===`horizontal`,o=Mt(()=>c(`SCROLL_END`),100),[s,c]=tt(`hidden`,{hidden:{SCROLL:`scrolling`},scrolling:{SCROLL_END:`idle`,POINTER_ENTER:`interacting`},interacting:{SCROLL:`interacting`,POINTER_LEAVE:`idle`},idle:{HIDE:`hidden`,SCROLL:`scrolling`,POINTER_ENTER:`interacting`}});return q.useEffect(()=>{if(s===`idle`){let e=window.setTimeout(()=>c(`HIDE`),i.scrollHideDelay);return()=>window.clearTimeout(e)}},[s,i.scrollHideDelay,c]),q.useEffect(()=>{let e=i.viewport,t=a?`scrollLeft`:`scrollTop`;if(e){let n=e[t],r=()=>{let r=e[t];n!==r&&(c(`SCROLL`),o()),n=r};return e.addEventListener(`scroll`,r),()=>e.removeEventListener(`scroll`,r)}},[i.viewport,a,c,o]),(0,J.jsx)(N,{present:n||s!==`hidden`,children:(0,J.jsx)(ft,{"data-state":s===`hidden`?`hidden`:`visible`,...r,ref:t,onPointerEnter:O(e.onPointerEnter,()=>c(`POINTER_ENTER`)),onPointerLeave:O(e.onPointerLeave,()=>c(`POINTER_LEAVE`))})})}),dt=q.forwardRef((e,t)=>{let n=Y(X,e.__scopeScrollArea),{forceMount:r,...i}=e,[a,o]=q.useState(!1),s=e.orientation===`horizontal`,c=Mt(()=>{if(n.viewport){let e=n.viewport.offsetWidth<n.viewport.scrollWidth,t=n.viewport.offsetHeight<n.viewport.scrollHeight;o(s?e:t)}},10);return Q(n.viewport,c),Q(n.content,c),(0,J.jsx)(N,{present:r||a,children:(0,J.jsx)(ft,{"data-state":a?`visible`:`hidden`,...i,ref:t})})}),ft=q.forwardRef((e,t)=>{let{orientation:n=`vertical`,...r}=e,i=Y(X,e.__scopeScrollArea),a=q.useRef(null),o=q.useRef(0),[s,c]=q.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),l=Tt(s.viewport,s.content),u={...r,sizes:s,onSizesChange:c,hasThumb:l>0&&l<1,onThumbChange:e=>a.current=e,onThumbPointerUp:()=>o.current=0,onThumbPointerDown:e=>o.current=e};function d(e,t){return Dt(e,o.current,s,t)}return n===`horizontal`?(0,J.jsx)(pt,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollLeft,t=Ot(e,s,i.dir);a.current.style.transform=`translate3d(${t}px, 0, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollLeft=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollLeft=d(e,i.dir))}}):n===`vertical`?(0,J.jsx)(mt,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollTop,t=Ot(e,s);a.current.style.transform=`translate3d(0, ${t}px, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollTop=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollTop=d(e))}}):null}),pt=q.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...i}=e,a=Y(X,e.__scopeScrollArea),[o,s]=q.useState(),c=q.useRef(null),l=C(t,c,a.onScrollbarXChange);return q.useEffect(()=>{c.current&&s(getComputedStyle(c.current))},[c]),(0,J.jsx)(_t,{"data-orientation":`horizontal`,...i,ref:l,sizes:n,style:{bottom:0,left:a.dir===`rtl`?`var(--radix-scroll-area-corner-width)`:0,right:a.dir===`ltr`?`var(--radix-scroll-area-corner-width)`:0,"--radix-scroll-area-thumb-width":Et(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,n)=>{if(a.viewport){let r=a.viewport.scrollLeft+t.deltaX;e.onWheelScroll(r),At(r,n)&&t.preventDefault()}},onResize:()=>{c.current&&a.viewport&&o&&r({content:a.viewport.scrollWidth,viewport:a.viewport.offsetWidth,scrollbar:{size:c.current.clientWidth,paddingStart:wt(o.paddingLeft),paddingEnd:wt(o.paddingRight)}})}})}),mt=q.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...i}=e,a=Y(X,e.__scopeScrollArea),[o,s]=q.useState(),c=q.useRef(null),l=C(t,c,a.onScrollbarYChange);return q.useEffect(()=>{c.current&&s(getComputedStyle(c.current))},[c]),(0,J.jsx)(_t,{"data-orientation":`vertical`,...i,ref:l,sizes:n,style:{top:0,right:a.dir===`ltr`?0:void 0,left:a.dir===`rtl`?0:void 0,bottom:`var(--radix-scroll-area-corner-height)`,"--radix-scroll-area-thumb-height":Et(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,n)=>{if(a.viewport){let r=a.viewport.scrollTop+t.deltaY;e.onWheelScroll(r),At(r,n)&&t.preventDefault()}},onResize:()=>{c.current&&a.viewport&&o&&r({content:a.viewport.scrollHeight,viewport:a.viewport.offsetHeight,scrollbar:{size:c.current.clientHeight,paddingStart:wt(o.paddingTop),paddingEnd:wt(o.paddingBottom)}})}})}),[ht,gt]=rt(X),_t=q.forwardRef((e,t)=>{let{__scopeScrollArea:n,sizes:r,hasThumb:i,onThumbChange:a,onThumbPointerUp:o,onThumbPointerDown:s,onThumbPositionChange:c,onDragScroll:l,onWheelScroll:u,onResize:d,...f}=e,p=Y(X,n),[m,h]=q.useState(null),g=C(t,e=>h(e)),_=q.useRef(null),v=q.useRef(``),y=p.viewport,b=r.content-r.viewport,x=A(u),S=A(c),w=Mt(d,10);function T(e){if(_.current){let t=e.clientX-_.current.left,n=e.clientY-_.current.top;l({x:t,y:n})}}return q.useEffect(()=>{let e=e=>{let t=e.target;m?.contains(t)&&x(e,b)};return document.addEventListener(`wheel`,e,{passive:!1}),()=>document.removeEventListener(`wheel`,e,{passive:!1})},[y,m,b,x]),q.useEffect(S,[r,S]),Q(m,w),Q(p.content,w),(0,J.jsx)(ht,{scope:n,scrollbar:m,hasThumb:i,onThumbChange:A(a),onThumbPointerUp:A(o),onThumbPositionChange:S,onThumbPointerDown:A(s),children:(0,J.jsx)(k.div,{...f,ref:g,style:{position:`absolute`,...f.style},onPointerDown:O(e.onPointerDown,e=>{e.button===0&&(e.target.setPointerCapture(e.pointerId),_.current=m.getBoundingClientRect(),v.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect=`none`,p.viewport&&(p.viewport.style.scrollBehavior=`auto`),T(e))}),onPointerMove:O(e.onPointerMove,T),onPointerUp:O(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=v.current,p.viewport&&(p.viewport.style.scrollBehavior=``),_.current=null})})})}),vt=`ScrollAreaThumb`,yt=q.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=gt(vt,e.__scopeScrollArea);return(0,J.jsx)(N,{present:n||i.hasThumb,children:(0,J.jsx)(bt,{ref:t,...r})})}),bt=q.forwardRef((e,t)=>{let{__scopeScrollArea:n,style:r,...i}=e,a=Y(vt,n),o=gt(vt,n),{onThumbPositionChange:s}=o,c=C(t,e=>o.onThumbChange(e)),l=q.useRef(void 0),u=Mt(()=>{l.current&&=(l.current(),void 0)},100);return q.useEffect(()=>{let e=a.viewport;if(e){let t=()=>{if(u(),!l.current){let t=jt(e,s);l.current=t,s()}};return s(),e.addEventListener(`scroll`,t),()=>e.removeEventListener(`scroll`,t)}},[a.viewport,u,s]),(0,J.jsx)(k.div,{"data-state":o.hasThumb?`visible`:`hidden`,...i,ref:c,style:{width:`var(--radix-scroll-area-thumb-width)`,height:`var(--radix-scroll-area-thumb-height)`,...r},onPointerDownCapture:O(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;o.onThumbPointerDown({x:n,y:r})}),onPointerUp:O(e.onPointerUp,o.onThumbPointerUp)})});yt.displayName=vt;var xt=`ScrollAreaCorner`,St=q.forwardRef((e,t)=>{let n=Y(xt,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!==`scroll`&&r?(0,J.jsx)(Ct,{...e,ref:t}):null});St.displayName=xt;var Ct=q.forwardRef((e,t)=>{let{__scopeScrollArea:n,...r}=e,i=Y(xt,n),[a,o]=q.useState(0),[s,c]=q.useState(0),l=!!(a&&s);return Q(i.scrollbarX,()=>{let e=i.scrollbarX?.offsetHeight||0;i.onCornerHeightChange(e),c(e)}),Q(i.scrollbarY,()=>{let e=i.scrollbarY?.offsetWidth||0;i.onCornerWidthChange(e),o(e)}),l?(0,J.jsx)(k.div,{...r,ref:t,style:{width:a,height:s,position:`absolute`,right:i.dir===`ltr`?0:void 0,left:i.dir===`rtl`?0:void 0,bottom:0,...e.style}}):null});function wt(e){return e?parseInt(e,10):0}function Tt(e,t){let n=e/t;return isNaN(n)?0:n}function Et(e){let t=Tt(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function Dt(e,t,n,r=`ltr`){let i=Et(n),a=i/2,o=t||a,s=i-o,c=n.scrollbar.paddingStart+o,l=n.scrollbar.size-n.scrollbar.paddingEnd-s,u=n.content-n.viewport,d=r===`ltr`?[0,u]:[u*-1,0];return kt([c,l],d)(e)}function Ot(e,t,n=`ltr`){let r=Et(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-i,o=t.content-t.viewport,s=a-r,c=n===`ltr`?[0,o]:[o*-1,0],l=I(e,c);return kt([0,o],[0,s])(l)}function kt(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function At(e,t){return e>0&&e<t}var jt=(e,t=()=>{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return(function i(){let a={left:e.scrollLeft,top:e.scrollTop},o=n.left!==a.left,s=n.top!==a.top;(o||s)&&t(),n=a,r=window.requestAnimationFrame(i)})(),()=>window.cancelAnimationFrame(r)};function Mt(e,t){let n=A(e),r=q.useRef(0);return q.useEffect(()=>()=>window.clearTimeout(r.current),[]),q.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function Q(e,t){let n=A(t);M(()=>{let t=0;if(e){let r=new ResizeObserver(()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(n)});return r.observe(e),()=>{window.cancelAnimationFrame(t),r.unobserve(e)}}},[e,n])}var Nt=ot,Pt=ct,Ft=St,It=z(`notebook-text`,[[`path`,{d:`M2 6h4`,key:`aawbzj`}],[`path`,{d:`M2 10h4`,key:`l0bgd4`}],[`path`,{d:`M2 14h4`,key:`1gsvsf`}],[`path`,{d:`M2 18h4`,key:`1bu2t1`}],[`rect`,{width:`16`,height:`20`,x:`4`,y:`2`,rx:`2`,key:`1nb95v`}],[`path`,{d:`M9.5 8h5`,key:`11mslq`}],[`path`,{d:`M9.5 12H16`,key:`ktog6x`}],[`path`,{d:`M9.5 16H14`,key:`p1seyn`}]]),Lt=z(`sliders-horizontal`,[[`path`,{d:`M10 5H3`,key:`1qgfaw`}],[`path`,{d:`M12 19H3`,key:`yhmn1j`}],[`path`,{d:`M14 3v4`,key:`1sua03`}],[`path`,{d:`M16 17v4`,key:`1q0r14`}],[`path`,{d:`M21 12h-9`,key:`1o4lsq`}],[`path`,{d:`M21 19h-5`,key:`1rlt1p`}],[`path`,{d:`M21 5h-7`,key:`1oszz2`}],[`path`,{d:`M8 10v4`,key:`tgpxqk`}],[`path`,{d:`M8 12H3`,key:`a7s4jb`}]]),$=h(),Rt=({chatState:e,chatId:t,messages:n})=>{if(!t)return S.warn(`No active chat`),e;let r=e.chats.get(t);if(!r)return S.warn(`No active chat`),e;let i=new Map(e.chats),a=Date.now();return i.set(r.id,{...r,messages:n,updatedAt:a}),{...e,chats:i}},zt=class extends ce{onChunkReceived;constructor(e,t){super(e),this.onChunkReceived=t}processResponseStream(e){let t=this.onChunkReceived;return super.processResponseStream(e).pipeThrough(new TransformStream({async transform(e,n){t(e),n.enqueue(e)}}))}},Bt=q.forwardRef((e,t)=>{let n=(0,$.c)(15),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:i,children:r,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o;n[4]===i?o=n[5]:(o=E(`relative overflow-hidden`,i),n[4]=i,n[5]=o);let s;n[6]===r?s=n[7]:(s=(0,J.jsx)(Pt,{className:`h-full w-full rounded-[inherit]`,children:r}),n[6]=r,n[7]=s);let c,l;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,J.jsx)(Vt,{}),l=(0,J.jsx)(Ft,{}),n[8]=c,n[9]=l):(c=n[8],l=n[9]);let u;return n[10]!==a||n[11]!==t||n[12]!==o||n[13]!==s?(u=(0,J.jsxs)(Nt,{ref:t,className:o,...a,children:[s,c,l]}),n[10]=a,n[11]=t,n[12]=o,n[13]=s,n[14]=u):u=n[14],u});Bt.displayName=Nt.displayName;var Vt=q.forwardRef((e,t)=>{let n=(0,$.c)(14),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,orientation:a,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o=a===void 0?`vertical`:a,s=o===`vertical`&&`h-full w-2.5 border-l border-l-transparent p-px`,c=o===`horizontal`&&`h-2.5 flex-col border-t border-t-transparent p-px`,l;n[4]!==r||n[5]!==s||n[6]!==c?(l=E(`flex touch-none select-none transition-colors`,s,c,r),n[4]=r,n[5]=s,n[6]=c,n[7]=l):l=n[7];let u;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,J.jsx)(yt,{className:`relative flex-1 rounded-full bg-border`}),n[8]=u):u=n[8];let d;return n[9]!==o||n[10]!==i||n[11]!==t||n[12]!==l?(d=(0,J.jsx)(Z,{ref:t,orientation:o,className:l,...i,children:u}),n[9]=o,n[10]=i,n[11]=t,n[12]=l,n[13]=d):d=n[13],d});Vt.displayName=Z.displayName;var Ht=[{label:`Today`,days:0},{label:`Yesterday`,days:1},{label:`2d ago`,days:2},{label:`3d ago`,days:3},{label:`This week`,days:7},{label:`This month`,days:30}],Ut=e=>{let t=Date.now(),n=Ht.map(e=>({...e,chats:[]})),r={label:`Older`,days:1/0,chats:[]},i=e=>{switch(e){case 0:return n[0];case 1:return n[1];case 2:return n[2];case 3:return n[3];default:return e>=4&&e<=7?n[4]:e>=8&&e<=30?n[5]:r}};for(let n of e)i(Math.floor((t-n.updatedAt)/864e5)).chats.push(n);return[...n,r].filter(e=>e.chats.length>0)},Wt=e=>{let t=(0,$.c)(36),{activeChatId:n,setActiveChat:i}=e,a=r(Ue),{locale:o}=He(),[s,c]=(0,q.useState)(``),u;t[0]===a.chats?u=t[1]:(u=[...a.chats.values()].toSorted(Gt),t[0]=a.chats,t[1]=u);let p=u,h;bb0:{if(!s.trim()){h=p;break bb0}let e;if(t[2]!==p||t[3]!==s){let n;t[5]===s?n=t[6]:(n=e=>e.title.toLowerCase().includes(s.toLowerCase()),t[5]=s,t[6]=n),e=p.filter(n),t[2]=p,t[3]=s,t[4]=e}else e=t[4];h=e}let g=h,_;t[7]===g?_=t[8]:(_=Ut(g),t[7]=g,t[8]=_);let v=_,y;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,J.jsx)(L,{content:`Previous chats`,children:(0,J.jsx)(f,{asChild:!0,children:(0,J.jsx)(R,{variant:`text`,size:`icon`,children:(0,J.jsx)(l,{className:`h-4 w-4`})})})}),t[9]=y):y=t[9];let b;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(b=e=>c(e.target.value),t[10]=b):b=t[10];let x;t[11]===s?x=t[12]:(x=(0,J.jsx)(`div`,{className:`pt-3 px-3 w-full`,children:(0,J.jsx)(Re,{placeholder:`Search chat history...`,value:s,onChange:b,className:`text-xs`})}),t[11]=s,t[12]=x);let S;t[13]===p.length?S=t[14]:(S=p.length===0&&(0,J.jsx)(Ze,{title:`No chats yet`,description:`Start a new chat to get started`,icon:(0,J.jsx)(W,{})}),t[13]=p.length,t[14]=S);let C;t[15]!==p.length||t[16]!==g.length||t[17]!==s?(C=g.length===0&&s&&p.length>0&&(0,J.jsx)(Ze,{title:`No chats found`,description:`No chats match "${s}"`,icon:(0,J.jsx)(Le,{})}),t[15]=p.length,t[16]=g.length,t[17]=s,t[18]=C):C=t[18];let w;if(t[19]!==n||t[20]!==v||t[21]!==o||t[22]!==i){let e;t[24]!==n||t[25]!==v.length||t[26]!==o||t[27]!==i?(e=(e,t)=>(0,J.jsxs)(`div`,{className:`space-y-2`,children:[(0,J.jsx)(`div`,{className:`text-xs px-1 text-muted-foreground/60`,children:e.label}),(0,J.jsx)(`div`,{children:e.chats.map(e=>(0,J.jsxs)(`button`,{className:E(`w-full p-1 rounded-md cursor-pointer text-left flex items-center justify-between`,e.id===n&&`bg-accent`,e.id!==n&&`hover:bg-muted/20`),onClick:()=>{i(e.id)},type:`button`,children:[(0,J.jsx)(`div`,{className:`flex-1 min-w-0`,children:(0,J.jsx)(`div`,{className:`text-sm truncate`,children:e.title})}),(0,J.jsx)(`div`,{className:`text-xs text-muted-foreground/60 ml-2 shrink-0`,children:Ge(e.updatedAt,o)})]},e.id))}),t!==v.length-1&&(0,J.jsx)(`hr`,{})]},e.label),t[24]=n,t[25]=v.length,t[26]=o,t[27]=i,t[28]=e):e=t[28],w=v.map(e),t[19]=n,t[20]=v,t[21]=o,t[22]=i,t[23]=w}else w=t[23];let T;t[29]!==S||t[30]!==C||t[31]!==w?(T=(0,J.jsx)(Bt,{className:`h-[450px] p-2`,children:(0,J.jsxs)(`div`,{className:`space-y-3`,children:[S,C,w]})}),t[29]=S,t[30]=C,t[31]=w,t[32]=T):T=t[32];let D;return t[33]!==T||t[34]!==x?(D=(0,J.jsxs)(d,{children:[y,(0,J.jsxs)(m,{className:`w-[480px] p-0`,align:`start`,side:`right`,children:[x,T]})]}),t[33]=T,t[34]=x,t[35]=D):D=t[35],D};function Gt(e,t){return t.updatedAt-e.updatedAt}var Kt=()=>{let e=(0,$.c)(17),[n,r]=t(Xe),i=n.webSearch,a=i?`Capabilities (web search enabled)`:`Capabilities`,o=i||void 0,s=i&&`bg-primary/15 text-primary ring-1 ring-primary/30 opacity-100 hover:bg-primary/20`,c;e[0]===s?c=e[1]:(c=E(`h-6 w-6 shrink-0 bg-muted hover:bg-muted/30`,s),e[0]=s,e[1]=c);let l;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,J.jsx)(Lt,{className:`h-3.5 w-3.5`}),e[2]=l):l=e[2];let u;e[3]!==a||e[4]!==o||e[5]!==c?(u=(0,J.jsx)(f,{asChild:!0,children:(0,J.jsx)(R,{"aria-label":`Capabilities`,title:a,"data-active":o,variant:`text`,size:`icon`,className:c,children:l})}),e[3]=a,e[4]=o,e[5]=c,e[6]=u):u=e[6];let p;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,J.jsx)(`span`,{className:`text-sm font-semibold`,children:`Web search`}),e[7]=p):p=e[7];let h;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,J.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[p,(0,J.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[`Search the web when the model supports it.`,` `,(0,J.jsx)(Fe,{href:`https://docs.marimo.io/guides/editor_features/tools#web-search-and-fetch`,children:`Learn more`})]})]}),e[8]=h):h=e[8];let g;e[9]===r?g=e[10]:(g=e=>r(t=>({...t,webSearch:e})),e[9]=r,e[10]=g);let _;e[11]!==g||e[12]!==i?(_=(0,J.jsx)(m,{className:`w-76 p-3`,align:`start`,side:`top`,children:(0,J.jsxs)(`label`,{htmlFor:`web-search-toggle`,className:`flex items-start justify-between gap-3 cursor-pointer`,children:[h,(0,J.jsx)(Ye,{id:`web-search-toggle`,"aria-label":`Web search`,size:`sm`,checked:i,onCheckedChange:g})]})}),e[11]=g,e[12]=i,e[13]=_):_=e[13];let v;return e[14]!==u||e[15]!==_?(v=(0,J.jsxs)(d,{children:[u,_]}),e[14]=u,e[15]=_,e[16]=v):v=e[16],v};function qt(){return G()}function Jt(e){let t=(0,$.c)(4),[n,r]=(0,q.useState)(qt),a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=()=>r(qt()),t[0]=a):a=t[0];let o=i(a),s=e??n,c;return t[1]!==o||t[2]!==s?(c={chatControllerId:s,renewDraftChatId:o},t[1]=o,t[2]=s,t[3]=c):c=t[3],c}var Yt=`manual`,Xt=(0,q.memo)(e=>{let t=(0,$.c)(18),{message:n}=e,r;t[0]===n.parts?r=t[1]:(r=n.parts.filter(an).map(on).join(`
2
- `),t[0]=n.parts,t[1]=r);let i=r,a,o,s;if(t[2]!==n.parts){let e=n.parts.filter(sn);s=`flex justify-end`,a=`w-[95%] bg-background border border-dashed p-2 rounded-sm opacity-70`,o=e.map(cn),t[2]=n.parts,t[3]=a,t[4]=o,t[5]=s}else a=t[3],o=t[4],s=t[5];let c;t[6]===i?c=t[7]:(c=(0,J.jsx)(`span`,{className:`wrap-break-word`,children:i}),t[6]=i,t[7]=c);let l;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,J.jsx)(Je,{className:`h-3.5 w-3.5 shrink-0 animate-spin`}),t[8]=l):l=t[8];let u;t[9]===c?u=t[10]:(u=(0,J.jsxs)(`div`,{className:`flex items-center justify-end gap-2 text-sm text-muted-foreground`,children:[c,l]}),t[9]=c,t[10]=u);let d;t[11]!==a||t[12]!==o||t[13]!==u?(d=(0,J.jsxs)(`div`,{className:a,children:[o,u]}),t[11]=a,t[12]=o,t[13]=u,t[14]=d):d=t[14];let f;return t[15]!==s||t[16]!==d?(f=(0,J.jsx)(`div`,{className:s,children:d}),t[15]=s,t[16]=d,t[17]=f):f=t[17],f});Xt.displayName=`QueuedMessageDisplay`;var Zt=e=>{let t=(0,$.c)(18),{onNewChat:n,activeChatId:r,setActiveChat:i}=e,{handleClick:a}=b(),o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,J.jsx)(Ie,{className:`h-4 w-4`}),t[0]=o):o=t[0];let s;t[1]===n?s=t[2]:(s=(0,J.jsx)(L,{content:`New chat`,children:(0,J.jsx)(R,{variant:`text`,size:`icon`,onClick:n,children:o})}),t[1]=n,t[2]=s);let c;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,J.jsx)(v,{}),t[3]=c):c=t[3];let l;t[4]===a?l=t[5]:(l=()=>a(`ai`),t[4]=a,t[5]=l);let u;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,J.jsx)(ze,{className:`h-4 w-4`}),t[6]=u):u=t[6];let d;t[7]===l?d=t[8]:(d=(0,J.jsx)(L,{content:`AI Settings`,children:(0,J.jsx)(R,{variant:`text`,size:`xs`,className:`hover:bg-foreground/10 py-2`,onClick:l,children:u})}),t[7]=l,t[8]=d);let f;t[9]!==r||t[10]!==i?(f=(0,J.jsx)(Wt,{activeChatId:r,setActiveChat:i}),t[9]=r,t[10]=i,t[11]=f):f=t[11];let p;t[12]!==d||t[13]!==f?(p=(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[c,d,f]}),t[12]=d,t[13]=f,t[14]=p):p=t[14];let m;return t[15]!==s||t[16]!==p?(m=(0,J.jsxs)(`div`,{className:`flex border-b px-2 py-1 justify-between shrink-0 items-center`,children:[s,p]}),t[15]=s,t[16]=p,t[17]=m):m=t[17],m},Qt=(0,q.memo)(e=>{let t=(0,$.c)(17),{message:n,index:r,onEdit:i,isStreamingReasoning:a,isLast:o,isActive:s,addToolApprovalResponse:c}=e,l;t[0]!==r||t[1]!==i?(l=e=>{let t=(e.parts?.filter(ln))?.map(un).join(`
3
- `),n=e.parts?.filter(dn);return(0,J.jsxs)(`div`,{className:`w-[95%] bg-background border p-1 rounded-sm`,children:[n?.map(fn),(0,J.jsx)(we,{value:t,placeholder:`Type your message...`,onChange:pn,onSubmit:(e,t)=>{t.trim()&&i(r,t)},onClose:mn},e.id)]})},t[0]=r,t[1]=i,t[2]=l):l=t[2];let u=l,d;t[3]!==c||t[4]!==s||t[5]!==o||t[6]!==a?(d=e=>{let t=e.parts.filter(hn).map(gn).join(`
4
- `);return(0,J.jsxs)(`div`,{className:`w-[95%] wrap-break-word`,children:[(0,J.jsx)(`div`,{className:`absolute right-1 top-1 opacity-0 group-hover:opacity-100 transition-opacity`,children:(0,J.jsx)(Be,{className:`h-3 w-3`,value:t||``})}),Me({message:e,isStreamingReasoning:a,isLast:o,isActive:s,addToolApprovalResponse:c})]})},t[3]=c,t[4]=s,t[5]=o,t[6]=a,t[7]=d):d=t[7];let f=d,p=n.role===`user`?`justify-end`:`justify-start`,m;t[8]===p?m=t[9]:(m=E(`flex group relative`,p),t[8]=p,t[9]=m);let h;t[10]!==n||t[11]!==f||t[12]!==u?(h=n.role===`user`?u(n):f(n),t[10]=n,t[11]=f,t[12]=u,t[13]=h):h=t[13];let g;return t[14]!==m||t[15]!==h?(g=(0,J.jsx)(`div`,{className:m,children:h}),t[14]=m,t[15]=h,t[16]=g):g=t[16],g});Qt.displayName=`ChatMessage`;var $t=(0,q.memo)(e=>{let t=(0,$.c)(43),{isEmpty:n,onSendClick:i,isLoading:a,onStop:o,fileInputRef:s,onAddFiles:c,onAddContext:l}=e,u=r(_),d=u?.mode||Yt,f=u?.models?.chat_model||`openai/gpt-4o`,p=y.parse(f).providerId,{saveModeChange:m}=ee(),h;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(h=[{value:`manual`,label:`Manual`,subtitle:`Pure chat, no tool usage`,Icon:K},{value:`ask`,label:`Ask`,subtitle:`AI with access to read-only tools like documentation search`,Icon:It},{value:`agent`,label:`Agent`,subtitle:`AI with access to read and write tools`,Icon:Ne},{value:`code_mode`,label:`Code Mode (beta)`,subtitle:`AI with access to the notebook's kernel. Potentially destructive.`,Icon:se}],t[0]=h):h=t[0];let g=h,v=Ce.has(p),b;t[1]!==d||t[2]!==g?(b=g.find(e=>e.value===d),t[1]=d,t[2]=g,t[3]=b):b=t[3];let S=b,C=S?.Icon,w=S?.label,T;t[4]===C?T=t[5]:(T=C&&(0,J.jsx)(C,{className:`h-3 w-3`}),t[4]=C,t[5]=T);let E;t[6]===w?E=t[7]:(E=(0,J.jsx)(`span`,{className:`text-nowrap`,children:w}),t[6]=w,t[7]=E);let D;t[8]!==T||t[9]!==E?(D=(0,J.jsxs)(ie,{className:`h-6 text-xs border-border shadow-none! ring-0! bg-muted hover:bg-muted/30 py-0 px-2 gap-1.5 shrink-0`,children:[T,E]}),t[8]=T,t[9]=E,t[10]=D):D=t[10];let O;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,J.jsx)(te,{className:`text-xs uppercase tracking-wider text-muted-foreground/70 font-medium`,children:`AI Mode`}),t[11]=O):O=t[11];let k;t[12]===g?k=t[13]:(k=(0,J.jsx)(ne,{children:(0,J.jsxs)(re,{children:[O,g.map(_n)]})}),t[12]=g,t[13]=k);let A;t[14]!==d||t[15]!==m||t[16]!==D||t[17]!==k?(A=(0,J.jsxs)(ae,{value:d,onValueChange:m,children:[D,k]}),t[14]=d,t[15]=m,t[16]=D,t[17]=k,t[18]=A):A=t[18];let j,M;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,J.jsx)(x,{placeholder:`Model`,triggerClassName:`h-6 text-xs shadow-none! ring-0! bg-muted hover:bg-muted/30 rounded-sm max-w-[200px]`,iconSize:`small`,showAddCustomModelDocs:!0,forRole:`chat`}),j=(0,J.jsx)(Kt,{}),t[19]=j,t[20]=M):(j=t[19],M=t[20]);let N;t[21]===A?N=t[22]:(N=(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1`,children:[A,M,j]}),t[21]=A,t[22]=N);let P;t[23]!==a||t[24]!==l?(P=(0,J.jsx)(V,{handleAddContext:l,isLoading:a}),t[23]=a,t[24]=l,t[25]=P):P=t[25];let F;t[26]!==s||t[27]!==v||t[28]!==a||t[29]!==c?(F=v&&(0,J.jsx)(Se,{fileInputRef:s,isLoading:a,onAddFiles:c}),t[26]=s,t[27]=v,t[28]=a,t[29]=c,t[30]=F):F=t[30];let I;t[31]!==n||t[32]!==a||t[33]!==i||t[34]!==o?(I=(0,J.jsx)(ve,{isLoading:a,onStop:o,onSendClick:i,isEmpty:n}),t[31]=n,t[32]=a,t[33]=i,t[34]=o,t[35]=I):I=t[35];let L;t[36]!==P||t[37]!==F||t[38]!==I?(L=(0,J.jsxs)(`div`,{className:`flex flex-row ml-auto`,children:[P,F,I]}),t[36]=P,t[37]=F,t[38]=I,t[39]=L):L=t[39];let R;return t[40]!==N||t[41]!==L?(R=(0,J.jsx)(oe,{children:(0,J.jsxs)(`div`,{className:`px-3 py-2 border-t border-border/20 flex flex-wrap items-center gap-1`,children:[N,L]})}),t[40]=N,t[41]=L,t[42]=R):R=t[42],R});$t.displayName=`ChatInputFooter`;var en=(0,q.memo)(e=>{let t=(0,$.c)(31),{placeholder:n,input:r,inputClassName:a,setInput:o,onSubmit:s,inputRef:c,isLoading:l,onStop:u,fileInputRef:d,onAddFiles:f,onClose:p}=e,m;t[0]!==r||t[1]!==s?(m=()=>{r.trim()&&s(void 0,r)},t[0]=r,t[1]=s,t[2]=m):m=t[2];let h=i(m),g;t[3]===a?g=t[4]:(g=E(`px-2 py-1.5`,a),t[3]=a,t[4]=g);let _=n||`Type your message...`,v;t[5]!==r||t[6]!==c||t[7]!==f||t[8]!==p||t[9]!==s||t[10]!==o||t[11]!==_?(v=(0,J.jsx)(we,{className:`max-h-[400px]`,inputRef:c,value:r,onChange:o,onSubmit:s,onClose:p,onAddFiles:f,placeholder:_}),t[5]=r,t[6]=c,t[7]=f,t[8]=p,t[9]=s,t[10]=o,t[11]=_,t[12]=v):v=t[12];let y;t[13]!==g||t[14]!==v?(y=(0,J.jsx)(`div`,{className:g,children:v}),t[13]=g,t[14]=v,t[15]=y):y=t[15];let b;t[16]===r?b=t[17]:(b=r.trim(),t[16]=r,t[17]=b);let x=!b,S;t[18]===c?S=t[19]:(S=()=>U(c),t[18]=c,t[19]=S);let C;t[20]!==d||t[21]!==h||t[22]!==l||t[23]!==f||t[24]!==u||t[25]!==x||t[26]!==S?(C=(0,J.jsx)($t,{isEmpty:x,onAddContext:S,onSendClick:h,isLoading:l,onStop:u,fileInputRef:d,onAddFiles:f}),t[20]=d,t[21]=h,t[22]=l,t[23]=f,t[24]=u,t[25]=x,t[26]=S,t[27]=C):C=t[27];let w;return t[28]!==y||t[29]!==C?(w=(0,J.jsxs)(`div`,{className:`relative shrink-0 flex flex-col border-t`,children:[y,C]}),t[28]=y,t[29]=C,t[30]=w):w=t[30],w});en.displayName=`ChatInput`;var tn=e=>{let t=(0,$.c)(5),{onPairWithAgent:n}=e;if(T())return null;let r,i,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,J.jsx)(p,{className:`h-3.5 w-3.5 shrink-0`}),i=(0,J.jsx)(`span`,{children:`Work on this notebook with your own agent`}),a=(0,J.jsx)($e,{className:`h-3 w-3 shrink-0`}),t[0]=r,t[1]=i,t[2]=a):(r=t[0],i=t[1],a=t[2]);let o;return t[3]===n?o=t[4]:(o=(0,J.jsxs)(R,{variant:`text`,className:`gap-1.5 text-sm text-link hover:underline`,onClick:n,children:[r,i,a]}),t[3]=n,t[4]=o),o},nn=()=>{let e=(0,$.c)(6),t=r(g),{handleClick:n}=b();if(!t){let t;e[0]===n?t=e[1]:(t=(0,J.jsx)(R,{variant:`outline`,size:`sm`,onClick:()=>n(`ai`,`ai-providers`),children:`Edit AI settings`}),e[0]=n,e[1]=t);let r;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,J.jsx)(W,{}),e[2]=r):r=e[2];let i;return e[3]===t?i=e[4]:(i=(0,J.jsx)(Ze,{title:`Chat with AI`,description:`No AI provider configured or Chat model not selected`,action:t,icon:r}),e[3]=t,e[4]=i),i}let i;return e[5]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,J.jsx)(rn,{}),e[5]=i):i=e[5],i},rn=()=>{let e=a(Ue),[r,o]=t(We),[l,d]=t(qe),[f,p]=(0,q.useState)(``),[m,h]=(0,q.useState)(``),[g,v]=(0,q.useState)(!0),{files:y,addFiles:b,clearFiles:x,removeFile:C}=pe(),{messages:T,enqueue:D,flushNext:O,clear:k,hasQueuedRef:A}=le(),j=(0,q.useRef)(null),M=(0,q.useRef)(null),N=(0,q.useRef)(null),P=(0,q.useRef)(null),ee=(0,q.useRef)(null),[te,F]=(0,q.useState)(null),I=i(()=>{ee.current=null,F(null)}),ne=w(),{invokeAiTool:re,sendRun:ie}=Ve(),{openModal:ae,closeModal:L}=Pe(),z=r?.id,{chatControllerId:se,renewDraftChatId:ce}=Jt(z),V=n(),{addStagedCell:ve}=de(),{createNewCell:Se,prepareForRun:Ce}=s(),we={addStagedCell:ve,createNewCell:Se,prepareForRun:Ce,sendRun:ie,store:V},{messages:H,sendMessage:U,error:W,status:Me,regenerate:Ne,stop:Fe,addToolOutput:Ie,addToolApprovalResponse:Le,id:Re}=Oe({id:se,throttle:100,sendAutomaticallyWhen:({messages:e})=>Te(e),messages:r?.messages||[],transport:new zt({api:ne.getAiURL(`chat`).toString(),headers:()=>ne.headers(),prepareSendMessagesRequest:async e=>{let t=await me({messages:e.messages});t.success||S.debug(`Outgoing chat messages failed AI SDK schema validation`,t.error);let n={uiMessages:e.messages,includeOtherCode:c(``),options:V.get(Xe)},r=V.get(_)?.mode||Yt,i=xe.getToolSchemas(r);return{api:ne.getAiURL(`chat`).toString(),body:{tools:i,...e,...n}}}},e=>{let t=je(e);t!==void 0&&(ee.current=t)}),onFinish:({messages:t,isError:n,isAbort:r,finishReason:i})=>{if(e(e=>Rt({chatState:e,chatId:e.activeChatId,messages:t})),r){let e=ke({isAbort:!0,streamReason:ee.current});if(I(),e!=null){let t=Ae(e);S.debug(`Chat stream aborted`,{reason:e,finishReason:i}),F(t)}}else I();Be(t,{isError:n,isAbort:r})},onToolCall:async({toolCall:e})=>{await he({invokeAiTool:re,addToolOutput:Ie,toolCall:{toolName:e.toolName,toolCallId:e.toolCallId,input:e.input},toolContext:we})},onError:e=>{S.error(`An error occurred:`,e)}}),ze=i(e=>{I(),U({role:`user`,parts:e})}),Be=i((e,t)=>{A.current&&Ee({isError:t.isError,isAbort:t.isAbort,hasPendingToolCalls:Te(e),hasUnresolvedToolCalls:De(e)})&&O(ze)}),G=Me===`submitted`||Me===`streaming`,He=(0,q.useRef)(G);He.current=G;let Ge=i(e=>{He.current||A.current?D(e):ze(e)}),Ye=i(()=>{let e=N.current;if(!e)return;let{scrollTop:t,scrollHeight:n,clientHeight:r}=e,i=n>r?Math.abs(n-r-t)<5:!0;v(i)}),K=i((e=!1)=>{let t=N.current;t&&t.scrollTo({top:t.scrollHeight,behavior:e?`smooth`:`auto`})}),Ze=G&&H.length>0&&ge(H);(0,q.useEffect)(()=>{v(!0),k(),I()},[z,k,I]),(0,q.useEffect)(()=>{if(!g)return;let e=requestAnimationFrame(()=>{K()});return()=>cancelAnimationFrame(e)},[H,T,G,g,K]),(0,q.useEffect)(()=>{G||Be(H,{isError:W!=null,isAbort:!1})},[H,G,W,Be]);let $e=i(t=>{let n=Date.now(),r={id:Re,title:ye(t),messages:[],createdAt:n,updatedAt:n};e(e=>{let t=new Map(e.chats);return t.set(r.id,r),{...e,chats:t,activeChatId:r.id}})}),tt=i(async(e,t)=>{$e(e);let n=t&&t.length>0?await be(t):void 0,{contextPart:r,attachments:i}=await B(e);U({role:`user`,parts:[{type:`text`,text:e},...r?[r]:[],...n??[],...i]}),x(),p(``)}),nt=i(()=>{ce(),o(null),p(``),h(``),k(),x()}),rt=i(()=>{ae((0,J.jsx)(et,{onClose:L}))}),it=i(async(e,t)=>{let n=H[e],r=n.parts?.filter(e=>e.type===`file`&&!ue(e))??[],{contextPart:i,attachments:a}=await B(t),o=n.id;U({messageId:o,role:`user`,parts:[{type:`text`,text:t},...i?[i]:[],...r,...a]})}),at=i(async(e,t)=>{if(!t.trim())return;M.current?.view&&fe(M.current.view);let n=y?await be(y):void 0,{contextPart:r,attachments:i}=await B(t);e?.preventDefault(),Ge([{type:`text`,text:t},...r?[r]:[],...n??[],...i]),p(``),x()}),Y=()=>{I(),Ne()},ot=i(()=>{m.trim()&&(j.current?.view&&fe(j.current.view),tt(m.trim(),y))}),st=()=>j.current?.editor?.blur(),ct=i(async e=>{z??($e(e),p(m));let{contextPart:t,attachments:n}=await B(e);Ge([{type:`text`,text:e},...t?[t]:[],...n])}),X=H.length===0;(0,q.useEffect)(()=>{if(!l)return;d(null);let{prompt:e,submit:t}=l;t?ct(e):X?(h(e),u(j)):(p(e),u(M))},[l,d,X,ct]);let Z=X?(0,J.jsx)(en,{placeholder:`Ask anything, @ to include context about tables or dataframes`,input:m,inputRef:j,inputClassName:`px-1 py-0`,setInput:h,onSubmit:ot,isLoading:G,onStop:Fe,fileInputRef:P,onAddFiles:b,onClose:st},`new-thread-input`):(0,J.jsx)(en,{input:f,setInput:p,onSubmit:at,inputRef:M,isLoading:G,onStop:Fe,onClose:()=>M.current?.editor?.blur(),fileInputRef:P,onAddFiles:b}),lt=y&&y.length>0&&(0,J.jsx)(`div`,{className:E(`flex flex-row gap-1 flex-wrap p-1`,X&&`py-2 px-1`),children:y?.map(e=>(0,J.jsx)(_e,{file:e,onRemove:()=>C(e)},e.name))});return(0,J.jsxs)(`div`,{className:`flex flex-col h-[calc(100%-53px)]`,children:[(0,J.jsx)(oe,{children:(0,J.jsx)(Zt,{onNewChat:nt,activeChatId:r?.id,setActiveChat:o})}),(0,J.jsxs)(`div`,{className:`flex-1 flex flex-col overflow-hidden relative min-h-0`,children:[(0,J.jsxs)(`div`,{className:`flex-1 px-3 bg-(--slate-1) gap-4 py-3 flex flex-col overflow-y-auto`,ref:N,onScroll:Ye,children:[X&&(0,J.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,J.jsxs)(`div`,{className:`rounded-md border bg-background`,children:[lt,Z]}),(0,J.jsx)(tn,{onPairWithAgent:rt})]}),H.map((e,t)=>(0,J.jsx)(Qt,{message:e,index:t,onEdit:it,isStreamingReasoning:Ze,isLast:t===H.length-1,isActive:G,addToolApprovalResponse:Le},e.id)),T.map(e=>(0,J.jsx)(Xt,{message:e},e.id)),G&&(0,J.jsx)(`div`,{className:`flex justify-center py-4`,children:(0,J.jsx)(Je,{className:`h-4 w-4 animate-spin`})}),W&&(0,J.jsxs)(`div`,{className:`flex items-center justify-center space-x-2 mb-4`,children:[(0,J.jsx)(Ke,{error:W||Error(`Unknown error`)}),(0,J.jsx)(R,{variant:`outline`,size:`sm`,onClick:Y,children:`Retry`})]}),te&&!G&&!W&&(0,J.jsx)(`div`,{className:`flex justify-center py-2`,children:(0,J.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:te})})]}),(0,J.jsx)(Qe,{isVisible:!g&&(H.length>0||T.length>0),onScrollToBottom:()=>K(!0)})]}),G&&(0,J.jsx)(`div`,{className:`w-full flex justify-center items-center z-20 border-t`,children:(0,J.jsx)(R,{variant:`linkDestructive`,size:`sm`,onClick:Fe,children:`Stop`})}),!X&&(0,J.jsxs)(J.Fragment,{children:[lt,Z]})]})};function an(e){return e.type===`text`}function on(e){return e.text}function sn(e){return e.type===`file`}function cn(e,t){return(0,J.jsx)(H,{attachment:e},t)}function ln(e){return e.type===`text`}function un(e){return e.text}function dn(e){return e.type===`file`}function fn(e,t){return(0,J.jsx)(H,{attachment:e},t)}function pn(){}function mn(){}function hn(e){return e.type===`text`}function gn(e){return e.text}function _n(e){return(0,J.jsx)(F,{value:e.value,className:`text-xs py-1`,children:(0,J.jsxs)(`div`,{className:`flex items-start gap-2.5`,children:[(0,J.jsx)(`span`,{className:`mt-1 text-muted-foreground`,children:(0,J.jsx)(e.Icon,{className:`h-3 w-3`})}),(0,J.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,J.jsx)(`span`,{className:`font-semibold`,children:e.label}),(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:e.subtitle})]})]})},e.value)}export{nn as default};
@@ -1 +0,0 @@
1
- import{f as e,l as t}from"./useEvent-Dc9HkKI2.js";import{t as n}from"./compiler-runtime-BQ9S8nyo.js";import{t as r}from"./utils-B3E7otfg.js";import{r as i}from"./constants-BDbGiS7O.js";import{M as a,O as o,T as s,_ as c,l,z as u}from"./config-CmBpjGXk.js";import{i as d}from"./strings-BHZPE0Mc.js";import{Dt as f,Va as p,li as m,oi as h}from"./index-CgQsZfww.js";var g=n(),_={canHealthCheck:!1,canShutdown:!1,canRestart:!1,supportsLsp:!1},v={kind:`wasm`,label:`Pyodide`,capabilities:_,state:e(e=>{let t=e(m);switch(t.kind){case`loading`:return{kind:`connecting`,progress:{label:t.message}};case`ready`:return{kind:`ready`};case`error`:return{kind:`failed`,error:{message:t.message,errorKind:`init`}}}})},y={kind:`remote`,label:`Kernel`,capabilities:{canHealthCheck:!0,canShutdown:!0,canRestart:!0,supportsLsp:!0},state:e(e=>{let t=e(c);switch(t.state){case s.OPEN:return{kind:`ready`};case s.CONNECTING:return{kind:`connecting`,progress:{label:`Connecting…`}};case s.NOT_STARTED:return{kind:`connecting`,progress:{label:`Not connected`}};case s.CLOSING:case s.CLOSED:return{kind:`failed`,error:{message:t.state===s.CLOSED?t.reason:`Disconnecting`,errorKind:`runtime`}}}})},b={kind:`static`,label:`Static`,capabilities:_,state:e({kind:`ready`})},x={kind:`islands`,label:`Islands`,capabilities:_,state:e(e=>{let t=e(f);return t===!0?{kind:`ready`}:typeof t==`string`?{kind:`failed`,error:{message:t,errorKind:`init`}}:{kind:`connecting`,progress:{label:`Initializing islands…`}}})};function S(){return l()?b:r()?x:u()?v:y}var C=e(S());e(e=>{let t=e(C);return e(t.state).kind!==`ready`||t.kind===`static`?!1:t.kind!==`remote`||e(h).isInstantiated});function w(e){let n=(0,g.c)(2),r=t(o),{mode:s}=t(a),c=t(p),l=t(C).kind;if(r&&l===`remote`)return!0;switch(s){case`edit`:case`present`:return!0;case`home`:case`gallery`:return!1;case`read`:{if(!c||new URLSearchParams(window.location.search).get(i.includeCode)===`false`)return!1;let t;return n[0]===e?t=n[1]:(t=e.some(T),n[0]=e,n[1]=t),t}default:return d(s),!1}}function T(e){return!!e.code}export{C as n,w as t};
@@ -1 +0,0 @@
1
- import{c as e,l as t}from"./useEvent-Dc9HkKI2.js";import{Ft as n,_n as r,bn as i,gn as a,hn as o,mn as s,pn as c,vn as l,yn as u}from"./cells-BcQ8Tm3j.js";import{t as d}from"./compiler-runtime-BQ9S8nyo.js";import{C as f,g as p,w as m}from"./utils-B3E7otfg.js";import{D as h,O as g}from"./ai-model-dropdown-1t7m1iFc.js";import{m as _,t as v,u as y}from"./useEventListener-BdZUApHd.js";import{t as b}from"./objects-snlMn4yk.js";import{t as x}from"./jsx-runtime-B74pBk57.js";import{t as S}from"./useCellActionButton-Bm9OZdcq.js";import{r as C}from"./requests-yTHMxhVa.js";import{St as w}from"./index-CgQsZfww.js";import{i as T}from"./feedback-button-sRQQL2TH.js";import{n as E,r as D}from"./edit-page-_D_Nv3dJ.js";var O=d(),k=3;function A(){let e=(0,O.c)(7),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[],e[0]=t):t=e[0];let[n,r]=T(`marimo:commands`,t),i;e[1]!==n||e[2]!==r?(i=e=>{let t=j([e,...n]);r(t.slice(0,k))},e[1]=n,e[2]=r,e[3]=i):i=e[3];let a;return e[4]!==n||e[5]!==i?(a={recentCommands:n,addRecentCommand:i},e[4]=n,e[5]=i,e[6]=a):a=e[6],a}function j(e){return[...new Set(e)]}function M(e){return e.dropdown!==void 0}function N(e,t=``){return e.flatMap(e=>!e.label||e.hidden?[]:M(e)?N(e.dropdown,`${t+e.label} > `):{...e,label:t+e.label,additionalKeywords:e.additionalKeywords})}function P(){let e=(0,O.c)(87),[t,n]=m(),[r,i]=f(),{saveAppConfig:a,saveUserConfig:o}=C(),s;e[0]!==o||e[1]!==n?(s=async e=>{await o({config:e}).then(()=>{n(t=>({...t,...e}))})},e[0]=o,e[1]=n,e[2]=s):s=e[2];let c=s,l;e[3]!==a||e[4]!==i?(l=async e=>{await a({config:e}).then(()=>{i(e)})},e[3]=a,e[4]=i,e[5]=l):l=e[5];let u=l,d;if(e[6]!==r||e[7]!==t.completion||e[8]!==t.display||e[9]!==t.keymap||e[10]!==u||e[11]!==c){let n;e[13]===r?n=e[14]:(n=e=>e!==r.width,e[13]=r,e[14]=n);let i;e[15]!==r||e[16]!==u?(i=e=>({label:`App config > Set width=${e}`,handle:()=>{u({...r,width:e})}}),e[15]=r,e[16]=u,e[17]=i):i=e[17];let a;e[18]!==t.display||e[19]!==c?(a={label:`Config > Set theme: dark`,handle:()=>{c({display:{...t.display,theme:`dark`}})}},e[18]=t.display,e[19]=c,e[20]=a):a=e[20];let o;e[21]!==t.display||e[22]!==c?(o={label:`Config > Set theme: light`,handle:()=>{c({display:{...t.display,theme:`light`}})}},e[21]=t.display,e[22]=c,e[23]=o):o=e[23];let s;e[24]!==t.display||e[25]!==c?(s={label:`Config > Set theme: system`,handle:()=>{c({display:{...t.display,theme:`system`}})}},e[24]=t.display,e[25]=c,e[26]=s):s=e[26];let l=t.keymap.preset===`vim`,f;e[27]!==t.keymap||e[28]!==c?(f=()=>{c({keymap:{...t.keymap,preset:`vim`}})},e[27]=t.keymap,e[28]=c,e[29]=f):f=e[29];let p;e[30]!==l||e[31]!==f?(p={label:`Config > Switch keymap to VIM`,hidden:l,handle:f},e[30]=l,e[31]=f,e[32]=p):p=e[32];let m=t.keymap.preset==="default",h;e[33]!==t.keymap||e[34]!==c?(h=()=>{c({keymap:{...t.keymap,preset:`default`}})},e[33]=t.keymap,e[34]=c,e[35]=h):h=e[35];let _;e[36]!==m||e[37]!==h?(_={label:`Config > Switch keymap to default (current: VIM)`,hidden:m,handle:h},e[36]=m,e[37]=h,e[38]=_):_=e[38];let v;e[39]!==t.completion||e[40]!==c?(v=()=>{c({completion:{...t.completion,copilot:!1}})},e[39]=t.completion,e[40]=c,e[41]=v):v=e[41];let y=t.completion.copilot!==`github`,b;e[42]!==v||e[43]!==y?(b={label:`Config > Disable GitHub Copilot`,handle:v,hidden:y},e[42]=v,e[43]=y,e[44]=b):b=e[44];let x;e[45]!==t.completion||e[46]!==c?(x=()=>{c({completion:{...t.completion,copilot:`github`}})},e[45]=t.completion,e[46]=c,e[47]=x):x=e[47];let S=t.completion.copilot===`github`,C;e[48]!==x||e[49]!==S?(C={label:`Config > Enable GitHub Copilot`,handle:x,hidden:S},e[48]=x,e[49]=S,e[50]=C):C=e[50];let w=!t.display.reference_highlighting,T;e[51]!==t.display||e[52]!==c?(T=()=>{c({display:{...t.display,reference_highlighting:!1}})},e[51]=t.display,e[52]=c,e[53]=T):T=e[53];let E;e[54]!==w||e[55]!==T?(E={label:`Config > Disable reference highlighting`,hidden:w,handle:T},e[54]=w,e[55]=T,e[56]=E):E=e[56];let D;e[57]!==t.display||e[58]!==c?(D=()=>{c({display:{...t.display,reference_highlighting:!0}})},e[57]=t.display,e[58]=c,e[59]=D):D=e[59];let O;e[60]!==t.display.reference_highlighting||e[61]!==D?(O={label:`Config > Enable reference highlighting`,hidden:t.display.reference_highlighting,handle:D},e[60]=t.display.reference_highlighting,e[61]=D,e[62]=O):O=e[62];let k=!(t.display.code_lens??!0),A;e[63]!==t.display||e[64]!==c?(A=()=>{c({display:{...t.display,code_lens:!1}})},e[63]=t.display,e[64]=c,e[65]=A):A=e[65];let j;e[66]!==k||e[67]!==A?(j={label:`Config > Disable code lens`,hidden:k,handle:A},e[66]=k,e[67]=A,e[68]=j):j=e[68];let M=t.display.code_lens??!0,N;e[69]!==t.display||e[70]!==c?(N=()=>{c({display:{...t.display,code_lens:!0}})},e[69]=t.display,e[70]=c,e[71]=N):N=e[71];let P;e[72]!==M||e[73]!==N?(P={label:`Config > Enable code lens`,hidden:M,handle:N},e[72]=M,e[73]=N,e[74]=P):P=e[74];let I=t.display.cell_output===`above`,L;e[75]!==t.display||e[76]!==c?(L=()=>{c({display:{...t.display,cell_output:`above`}})},e[75]=t.display,e[76]=c,e[77]=L):L=e[77];let R;e[78]!==I||e[79]!==L?(R={label:`Config > Set cell output area: above`,hidden:I,handle:L},e[78]=I,e[79]=L,e[80]=R):R=e[80];let z=t.display.cell_output===`below`,B;e[81]!==t.display||e[82]!==c?(B=()=>{c({display:{...t.display,cell_output:`below`}})},e[81]=t.display,e[82]=c,e[83]=B):B=e[83];let V;e[84]!==z||e[85]!==B?(V={label:`Config > Set cell output area: below`,hidden:z,handle:B},e[84]=z,e[85]=B,e[86]=V):V=e[86],d=[...g().filter(n).map(i),a,o,s,p,_,b,C,E,O,j,P,R,V].filter(F),e[6]=r,e[7]=t.completion,e[8]=t.display,e[9]=t.keymap,e[10]=u,e[11]=c,e[12]=d}else d=e[12];return d}function F(e){return!e.hidden}var I=x(),L=()=>{let d=(0,O.c)(37),[f,m]=e(D),g=h(),x=t(n),C=t(p),T;d[0]===x?T=d[1]:(T={cell:x},d[0]=x,d[1]=T);let k=S(T).flat();k=N(k);let j=P(),F=E();F=[...N(F),...N(j)];let L=F.filter(R),V=b.keyBy(L,z),{recentCommands:H,addRecentCommand:U}=A(),W;d[2]===H?W=d[3]:(W=new Set(H),d[2]=H,d[3]=W);let G=W,K;d[4]!==C||d[5]!==m?(K=e=>{_(C.getHotkey(`global.commandPalette`).key)(e)&&(e.preventDefault(),m(B))},d[4]=C,d[5]=m,d[6]=K):K=d[6],v(document,`keydown`,K);let q;d[7]!==U||d[8]!==C||d[9]!==g||d[10]!==m?(q=(e,t)=>{let n=g[e];if(!n)return null;let a=C.getHotkey(e);return(0,I.jsxs)(r,{disabled:t.disabled,keywords:a.additionalKeywords,onSelect:()=>{U(e),m(!1),requestAnimationFrame(()=>{n()})},value:a.name,children:[(0,I.jsxs)(`span`,{children:[a.name,t.tooltip&&(0,I.jsx)(`span`,{className:`ml-2`,children:t.tooltip})]}),(0,I.jsx)(i,{children:(0,I.jsx)(w,{shortcut:a.key})})]},e)},d[7]=U,d[8]=C,d[9]=g,d[10]=m,d[11]=q):q=d[11];let ee=q,J;d[12]!==U||d[13]!==C||d[14]!==m?(J=e=>{let{label:t,handle:n,props:a,hotkey:o,additionalKeywords:s}=e,c=a===void 0?{}:a;return(0,I.jsxs)(r,{disabled:c.disabled,keywords:s,onSelect:()=>{U(t),m(!1),requestAnimationFrame(()=>{n()})},value:t,children:[(0,I.jsxs)(`span`,{children:[t,c.tooltip&&(0,I.jsxs)(`span`,{className:`ml-2`,children:[`(`,c.tooltip,`)`]})]}),o&&(0,I.jsx)(i,{children:(0,I.jsx)(w,{shortcut:C.getHotkey(o).key})})]},t)},d[12]=U,d[13]=C,d[14]=m,d[15]=J):J=d[15];let Y=J,te=c,X;d[16]===Symbol.for(`react.memo_cache_sentinel`)?(X=(0,I.jsx)(a,{placeholder:`Type to search...`}),d[16]=X):X=d[16];let ne=l,Z;d[17]===Symbol.for(`react.memo_cache_sentinel`)?(Z=(0,I.jsx)(s,{children:`No results found.`}),d[17]=Z):Z=d[17];let re=H.length>0&&(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(o,{heading:`Recently Used`,children:H.map(e=>{let t=V[e];return y(e)?ee(e,{disabled:t?.disabled,tooltip:t?.tooltip}):t&&!M(t)?Y({label:t.label,handle:t.handleHeadless||t.handle,props:{disabled:t.disabled,tooltip:t.tooltip},additionalKeywords:t.additionalKeywords}):null})}),(0,I.jsx)(u,{})]}),ie=o,ae=C.iterate().map(e=>{if(G.has(e))return null;let t=V[e];return ee(e,{disabled:t?.disabled,tooltip:t?.tooltip})}),oe=L.map(e=>G.has(e.label)?null:Y({label:e.label,handle:e.handleHeadless||e.handle,props:{disabled:e.disabled,tooltip:e.tooltip},additionalKeywords:e.additionalKeywords})),se;d[18]!==G||d[19]!==Y?(se=e=>G.has(e.label)?null:Y({label:`Cell > ${e.label}`,handle:e.handleHeadless||e.handle,props:{disabled:e.disabled,tooltip:e.tooltip},additionalKeywords:e.additionalKeywords}),d[18]=G,d[19]=Y,d[20]=se):se=d[20];let ce=k.map(se),Q;d[21]!==ie||d[22]!==oe||d[23]!==ce||d[24]!==ae?(Q=(0,I.jsxs)(ie,{heading:`Commands`,children:[ae,oe,ce]}),d[21]=ie,d[22]=oe,d[23]=ce,d[24]=ae,d[25]=Q):Q=d[25];let $;d[26]!==ne||d[27]!==Q||d[28]!==Z||d[29]!==re?($=(0,I.jsxs)(ne,{children:[Z,re,Q]}),d[26]=ne,d[27]=Q,d[28]=Z,d[29]=re,d[30]=$):$=d[30];let le;return d[31]!==te||d[32]!==f||d[33]!==m||d[34]!==$||d[35]!==X?(le=(0,I.jsxs)(te,{open:f,onOpenChange:m,children:[X,$]}),d[31]=te,d[32]=f,d[33]=m,d[34]=$,d[35]=X,d[36]=le):le=d[36],le};function R(e){return!e.hotkey}function z(e){return e.label}function B(e){return!e}export{L as default};
@@ -1 +0,0 @@
1
- import{t as e}from"./compiler-runtime-BQ9S8nyo.js";import{t}from"./objects-snlMn4yk.js";import{n}from"./constants-BDbGiS7O.js";import{t as r}from"./jsx-runtime-B74pBk57.js";import{a as i,p as a,r as o,t as s}from"./dropdown-menu-VuyoeQOD.js";import{t as c}from"./button-BoklZTGL.js";import{t as l}from"./createLucideIcon-rHn2EdoM.js";import{a as u,i as d,o as f,r as p}from"./paths-CzfpItSz.js";import{a as m,i as h,n as g,r as _,t as v}from"./youtube-ELpGJEdR.js";import{t as y}from"./package-BeYhVWvM.js";import{r as b}from"./requests-yTHMxhVa.js";import{Ca as x,Ia as S,Jr as C,O as w,Vn as T}from"./index-CgQsZfww.js";import{t as E}from"./github-khsXwCtv.js";import{n as D}from"./marimo-icons-B_1oPpIE.js";var O=l(`book-open`,[[`path`,{d:`M12 7v14`,key:`1akyts`}],[`path`,{d:`M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z`,key:`ruj8y`}]]),k=l(`graduation-cap`,[[`path`,{d:`M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z`,key:`j76jl0`}],[`path`,{d:`M22 10v6`,key:`1lu8f3`}],[`path`,{d:`M6 12.5V16a6 3 0 0 0 12 0v-3.5`,key:`1r8lef`}]]),A=l(`orbit`,[[`path`,{d:`M20.341 6.484A10 10 0 0 1 10.266 21.85`,key:`1enhxb`}],[`path`,{d:`M3.659 17.516A10 10 0 0 1 13.74 2.152`,key:`1crzgf`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}],[`circle`,{cx:`19`,cy:`5`,r:`2`,key:`mhkx31`}],[`circle`,{cx:`5`,cy:`19`,r:`2`,key:`v8kfzx`}]]),j=l(`panels-top-left`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M3 9h18`,key:`1pudct`}],[`path`,{d:`M9 21V9`,key:`1oto5p`}]]),M=e(),N=r(),P={intro:[`Introduction`,O,`Get started with marimo basics`],dataflow:[`Dataflow`,f,`Learn how cells interact with each other`],ui:[`UI Elements`,j,`Create interactive UI components`],markdown:[`Markdown`,p,`Format text with parameterized markdown`],plots:[`Plots`,S,`Create interactive visualizations`],sql:[`SQL`,d,`Query databases directly in marimo`],layout:[`Layout`,m,`Customize the layout of your cells' output`],fileformat:[`File format`,x,`Understand marimo's pure-Python file format`],"external-dependencies":[`External dependencies`,y,`Declare dependencies with Python script metadata`],"for-jupyter-users":[`For Jupyter users`,A,`Transiting from Jupyter to marimo`],"markdown-format":[`Markdown format`,w,`Using marimo to edit markdown files`]},F=()=>{let e=(0,M.c)(6),{openTutorial:n}=b(),r;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,N.jsx)(k,{className:`w-4 h-4 mr-2`}),e[0]=r):r=e[0];let l;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,N.jsx)(a,{asChild:!0,children:(0,N.jsxs)(c,{"data-testid":`open-tutorial-button`,size:`xs`,variant:`outline`,children:[r,`Tutorials`,(0,N.jsx)(C,{className:`w-3 h-3 ml-1`})]})}),e[1]=l):l=e[1];let u;e[2]===n?u=e[3]:(u=t.entries(P).map(e=>{let[t,r]=e,[a,o,s]=r;return(0,N.jsxs)(i,{onSelect:async()=>{let e=await n({tutorialId:t});e&&g(e.path)},children:[(0,N.jsx)(o,{strokeWidth:1.5,className:`w-4 h-4 mr-3 self-start mt-1.5 text-muted-foreground`}),(0,N.jsx)(`div`,{className:`flex items-center`,children:(0,N.jsxs)(`div`,{className:`flex flex-col`,children:[(0,N.jsx)(`span`,{children:a}),(0,N.jsx)(`span`,{className:`text-xs text-muted-foreground pr-1`,children:s})]})})]},t)}),e[2]=n,e[3]=u);let d;return e[4]===u?d=e[5]:(d=(0,N.jsxs)(s,{children:[l,(0,N.jsx)(o,{side:`bottom`,align:`end`,className:`print:hidden`,children:u})]}),e[4]=u,e[5]=d),d},I=[{title:`Documentation`,description:`Official marimo documentation and API reference`,icon:u,url:n.docsPage},{title:`GitHub`,description:`View source code, report issues, or contribute`,icon:E,url:n.githubPage},{title:`Community`,description:`Join the marimo Discord community`,icon:_,url:n.discordLink},{title:`molab`,description:`Run marimo notebooks in the cloud`,icon:D,url:n.molab},{title:`YouTube`,description:`Watch tutorials and demos`,icon:v,url:n.youtube},{title:`Changelog`,description:`See what's new in marimo`,icon:p,url:n.releasesPage}],L=()=>{let e=(0,M.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,N.jsx)(z,{Icon:h,children:`Resources`}),e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,N.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[t,(0,N.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3`,children:I.map(B)})]}),e[1]=n):n=e[1],n},R=e=>{let t=(0,M.c)(2),{fileCount:n}=e,r;return t[0]===n?r=t[1]:(r=(0,N.jsxs)(T,{kind:`warn`,className:`rounded p-4`,children:[`Showing `,n,` files. Some files and folders were skipped because your workspace is large or deeply nested. Start marimo from a subfolder to see them.`]}),t[0]=n,t[1]=r),r},z=e=>{let t=(0,M.c)(8),{Icon:n,control:r,children:i}=e,a;t[0]===n?a=t[1]:(a=(0,N.jsx)(n,{className:`h-5 w-5`}),t[0]=n,t[1]=a);let o;t[2]!==i||t[3]!==a?(o=(0,N.jsxs)(`h2`,{className:`flex items-center gap-2 text-xl font-semibold text-muted-foreground select-none`,children:[a,i]}),t[2]=i,t[3]=a,t[4]=o):o=t[4];let s;return t[5]!==r||t[6]!==o?(s=(0,N.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[o,r]}),t[5]=r,t[6]=o,t[7]=s):s=t[7],s};function B(e){return(0,N.jsxs)(`a`,{href:e.url,target:`_blank`,"aria-label":`${e.title}: ${e.description}`,className:`flex items-start gap-3 py-3 px-3 rounded-lg border hover:bg-accent/20 transition-colors shadow-xs`,children:[(0,N.jsx)(e.icon,{className:`w-5 h-5 mt-1.5 text-primary`}),(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`h3`,{className:`font-medium`,children:e.title}),(0,N.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e.description})]})]},e.title)}export{R as i,F as n,L as r,z as t};
@@ -1 +0,0 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{u as t}from"./useEvent-Dc9HkKI2.js";import{t as n}from"./react-CUdNIagt.js";import{t as r}from"./compiler-runtime-BQ9S8nyo.js";import{D as i,b as a}from"./utils-B3E7otfg.js";import{o}from"./useEventListener-BdZUApHd.js";import{t as s}from"./cn-ldLVeaqm.js";import{t as c}from"./jsx-runtime-B74pBk57.js";import{S as l,T as u,b as d,v as f,w as p,x as m,y as h}from"./fullscreen-BmzAqMKq.js";import{d as g,u as _}from"./menu-items-BBdeXCvU.js";import{a as v}from"./useNumberFormatter-C4-_TnkF.js";import{r as y}from"./requests-yTHMxhVa.js";var b=e(n(),1),x=c(),S=`Collapsible`,[ee,te]=p(S),[ne,C]=ee(S),w=b.forwardRef((e,t)=>{let{__scopeCollapsible:n,open:r,defaultOpen:i,disabled:a,onOpenChange:o,...s}=e,[c,l]=d({prop:r,defaultProp:i??!1,onChange:o,caller:S});return(0,x.jsx)(ne,{scope:n,disabled:a,contentId:f(),open:c,onOpenToggle:b.useCallback(()=>l(e=>!e),[l]),children:(0,x.jsx)(u.div,{"data-state":k(c),"data-disabled":a?``:void 0,...s,ref:t})})});w.displayName=S;var T=`CollapsibleTrigger`,E=b.forwardRef((e,t)=>{let{__scopeCollapsible:n,...r}=e,i=C(T,n);return(0,x.jsx)(u.button,{type:`button`,"aria-controls":i.contentId,"aria-expanded":i.open||!1,"data-state":k(i.open),"data-disabled":i.disabled?``:void 0,disabled:i.disabled,...r,ref:t,onClick:l(e.onClick,i.onOpenToggle)})});E.displayName=T;var D=`CollapsibleContent`,O=b.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=C(D,e.__scopeCollapsible);return(0,x.jsx)(h,{present:n||i.open,children:({present:e})=>(0,x.jsx)(re,{...r,ref:t,present:e})})});O.displayName=D;var re=b.forwardRef((e,t)=>{let{__scopeCollapsible:n,present:r,children:i,...a}=e,s=C(D,n),[c,l]=b.useState(r),d=b.useRef(null),f=o(t,d),p=b.useRef(0),h=p.current,g=b.useRef(0),_=g.current,v=s.open||c,y=b.useRef(v),S=b.useRef(void 0);return b.useEffect(()=>{let e=requestAnimationFrame(()=>y.current=!1);return()=>cancelAnimationFrame(e)},[]),m(()=>{let e=d.current;if(e){S.current=S.current||{transitionDuration:e.style.transitionDuration,animationName:e.style.animationName},e.style.transitionDuration=`0s`,e.style.animationName=`none`;let t=e.getBoundingClientRect();p.current=t.height,g.current=t.width,y.current||(e.style.transitionDuration=S.current.transitionDuration,e.style.animationName=S.current.animationName),l(r)}},[s.open,r]),(0,x.jsx)(u.div,{"data-state":k(s.open),"data-disabled":s.disabled?``:void 0,id:s.contentId,hidden:!v,...a,ref:f,style:{"--radix-collapsible-content-height":h?`${h}px`:void 0,"--radix-collapsible-content-width":_?`${_}px`:void 0,...e.style},children:v&&i})});function k(e){return e?`open`:`closed`}var ie=w,ae=E,oe=O,A=`Accordion`,se=[`Home`,`End`,`ArrowDown`,`ArrowUp`,`ArrowLeft`,`ArrowRight`],[j,ce,le]=g(A),[M,ue]=p(A,[le,te]),N=te(),P=b.forwardRef((e,t)=>{let{type:n,...r}=e,i=r,a=r;return(0,x.jsx)(j.Provider,{scope:e.__scopeAccordion,children:n===`multiple`?(0,x.jsx)(me,{...a,ref:t}):(0,x.jsx)(pe,{...i,ref:t})})});P.displayName=A;var[F,de]=M(A),[I,fe]=M(A,{collapsible:!1}),pe=b.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},collapsible:a=!1,...o}=e,[s,c]=d({prop:n,defaultProp:r??``,onChange:i,caller:A});return(0,x.jsx)(F,{scope:e.__scopeAccordion,value:b.useMemo(()=>s?[s]:[],[s]),onItemOpen:c,onItemClose:b.useCallback(()=>a&&c(``),[a,c]),children:(0,x.jsx)(I,{scope:e.__scopeAccordion,collapsible:a,children:(0,x.jsx)(R,{...o,ref:t})})})}),me=b.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},...a}=e,[o,s]=d({prop:n,defaultProp:r??[],onChange:i,caller:A}),c=b.useCallback(e=>s((t=[])=>[...t,e]),[s]),l=b.useCallback(e=>s((t=[])=>t.filter(t=>t!==e)),[s]);return(0,x.jsx)(F,{scope:e.__scopeAccordion,value:o,onItemOpen:c,onItemClose:l,children:(0,x.jsx)(I,{scope:e.__scopeAccordion,collapsible:!0,children:(0,x.jsx)(R,{...a,ref:t})})})}),[he,L]=M(A),R=b.forwardRef((e,t)=>{let{__scopeAccordion:n,disabled:r,dir:i,orientation:a=`vertical`,...s}=e,c=b.useRef(null),d=o(c,t),f=ce(n),p=_(i)===`ltr`,m=l(e.onKeyDown,e=>{if(!se.includes(e.key))return;let t=e.target,n=f().filter(e=>!e.ref.current?.disabled),r=n.findIndex(e=>e.ref.current===t),i=n.length;if(r===-1)return;e.preventDefault();let o=r,s=i-1,c=()=>{o=r+1,o>s&&(o=0)},l=()=>{o=r-1,o<0&&(o=s)};switch(e.key){case`Home`:o=0;break;case`End`:o=s;break;case`ArrowRight`:a===`horizontal`&&(p?c():l());break;case`ArrowDown`:a===`vertical`&&c();break;case`ArrowLeft`:a===`horizontal`&&(p?l():c());break;case`ArrowUp`:a===`vertical`&&l()}n[o%i].ref.current?.focus()});return(0,x.jsx)(he,{scope:n,disabled:r,direction:i,orientation:a,children:(0,x.jsx)(j.Slot,{scope:n,children:(0,x.jsx)(u.div,{...s,"data-orientation":a,ref:d,onKeyDown:r?void 0:m})})})}),z=`AccordionItem`,[ge,B]=M(z),V=b.forwardRef((e,t)=>{let{__scopeAccordion:n,value:r,...i}=e,a=L(z,n),o=de(z,n),s=N(n),c=f(),l=r&&o.value.includes(r)||!1,u=a.disabled||e.disabled;return(0,x.jsx)(ge,{scope:n,open:l,disabled:u,triggerId:c,children:(0,x.jsx)(ie,{"data-orientation":a.orientation,"data-state":J(l),...s,...i,ref:t,disabled:u,open:l,onOpenChange:e=>{e?o.onItemOpen(r):o.onItemClose(r)}})})});V.displayName=z;var H=`AccordionHeader`,U=b.forwardRef((e,t)=>{let{__scopeAccordion:n,...r}=e,i=L(A,n),a=B(H,n);return(0,x.jsx)(u.h3,{"data-orientation":i.orientation,"data-state":J(a.open),"data-disabled":a.disabled?``:void 0,...r,ref:t})});U.displayName=H;var W=`AccordionTrigger`,G=b.forwardRef((e,t)=>{let{__scopeAccordion:n,...r}=e,i=L(A,n),a=B(W,n),o=fe(W,n),s=N(n);return(0,x.jsx)(j.ItemSlot,{scope:n,children:(0,x.jsx)(ae,{"aria-disabled":a.open&&!o.collapsible||void 0,"data-orientation":i.orientation,id:a.triggerId,...s,...r,ref:t})})});G.displayName=W;var K=`AccordionContent`,q=b.forwardRef((e,t)=>{let{__scopeAccordion:n,...r}=e,i=L(A,n),a=B(K,n),o=N(n);return(0,x.jsx)(oe,{role:`region`,"aria-labelledby":a.triggerId,"data-orientation":i.orientation,...o,...r,ref:t,style:{"--radix-accordion-content-height":`var(--radix-collapsible-content-height)`,"--radix-accordion-content-width":`var(--radix-collapsible-content-width)`,...e.style}})});q.displayName=K;function J(e){return e?`open`:`closed`}var _e=P,Y=V,ve=U,X=G,Z=q,Q=r(),ye=_e,be=b.forwardRef((e,t)=>{let n=(0,Q.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=s(`border-b`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,x.jsx)(Y,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});be.displayName=`AccordionItem`;var xe=b.forwardRef((e,t)=>{let n=(0,Q.c)(12),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:i,children:r,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o;n[4]===i?o=n[5]:(o=s(`flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180 text-start`,i),n[4]=i,n[5]=o);let c;n[6]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,x.jsx)(v,{className:`h-4 w-4 transition-transform duration-200`}),n[6]=c):c=n[6];let l;return n[7]!==r||n[8]!==a||n[9]!==t||n[10]!==o?(l=(0,x.jsx)(ve,{className:`flex`,children:(0,x.jsxs)(X,{ref:t,className:o,...a,children:[r,c]})}),n[7]=r,n[8]=a,n[9]=t,n[10]=o,n[11]=l):l=n[11],l});xe.displayName=X.displayName;var $=b.forwardRef((e,t)=>{let n=(0,Q.c)(17),r,i,a,o;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4]):({className:i,children:r,wrapperClassName:o,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o);let c;n[5]===i?c=n[6]:(c=s(`overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down`,i),n[5]=i,n[6]=c);let l;n[7]===o?l=n[8]:(l=s(`pb-4 pt-0`,o),n[7]=o,n[8]=l);let u;n[9]!==r||n[10]!==l?(u=(0,x.jsx)(`div`,{className:l,children:r}),n[9]=r,n[10]=l,n[11]=u):u=n[11];let d;return n[12]!==a||n[13]!==t||n[14]!==c||n[15]!==u?(d=(0,x.jsx)(Z,{ref:t,className:c,...a,children:u}),n[12]=a,n[13]=t,n[14]=c,n[15]=u,n[16]=d):d=n[16],d});$.displayName=Z.displayName;var Se=class{map=new Map;get(e){return this.map.get(e)??[]}set(e,t){this.map.set(e,t)}add(e,t){this.map.has(e)?this.map.get(e).push(t):this.map.set(e,[t])}has(e){return this.map.has(e)}delete(e){return this.map.delete(e)}clear(){this.map.clear()}keys(){return this.map.keys()}values(){return this.map.values()}entries(){return this.map.entries()}forEach(e){this.map.forEach(e)}flatValues(){let e=[];for(let t of this.map.values())e.push(...t);return e}get size(){return this.map.size}},Ce=e=>{switch(e){case`chat`:return`chat_model`;case`autocomplete`:return`autocomplete_model`;case`edit`:return`edit_model`}},we=()=>{let e=(0,Q.c)(10),n=t(i),{saveUserConfig:r}=y(),o;e[0]!==r||e[1]!==n?(o=async e=>{let t={ai:e};await r({config:t}).then(()=>{n(e=>a(e,t))})},e[0]=r,e[1]=n,e[2]=o):o=e[2];let s=o,c;e[3]===s?c=e[4]:(c=async(e,t)=>{let n=Ce(t);n&&await s({models:{[n]:e}})},e[3]=s,e[4]=c);let l=c,u;e[5]===s?u=e[6]:(u=async e=>{await s({mode:e})},e[5]=s,e[6]=u);let d=u,f;return e[7]!==d||e[8]!==l?(f={saveModelChange:l,saveModeChange:d},e[7]=d,e[8]=l,e[9]=f):f=e[9],f};export{be as a,Y as c,$ as i,_e as l,Se as n,xe as o,ye as r,Z as s,we as t,X as u};
@@ -1 +0,0 @@
1
- import{a as e,c as t,f as n,l as r,r as i,t as a}from"./useEvent-Dc9HkKI2.js";import{t as o}from"./compiler-runtime-BQ9S8nyo.js";import{t as s}from"./utils-B3E7otfg.js";import{g as c}from"./useEventListener-BdZUApHd.js";import{t as l}from"./invariant-Ci2dTZ72.js";import{r as u}from"./constants-BDbGiS7O.js";import{t as d}from"./Deferred-CrTnjj37.js";import{t as f}from"./session-C8nQMsOE.js";var p=o();function m(e,t){if(e==null)throw Error(t||`Expected value but got ${e}`)}function h(){return typeof document<`u`&&document.querySelector(`marimo-wasm`)!==null}var g=Symbol(``);function _(e,t){return n(e,function(e,n,r){n(this,t(e(this),r))})}function v(e,t){let n=null,r=new Map,i=new Set,a=i=>{let s;if(t===void 0)s=r.get(i);else for(let[e,n]of r)if(t(e,i)){s=n;break}if(s!==void 0){if(n?.(s[1],i))a.remove(i);else return s[0]}let c=e(i);return r.set(i,[c,Date.now()]),o(`CREATE`,i,c),c},o=(e,t,n)=>{for(let r of i)r({type:e,param:t,atom:n})};return a.unstable_listen=e=>(i.add(e),()=>{i.delete(e)}),a.getParams=()=>r.keys(),a.remove=e=>{if(t===void 0){if(!r.has(e))return;let[t]=r.get(e);r.delete(e),o(`REMOVE`,e,t)}else for(let[n,[i]]of r)if(t(n,e)){r.delete(n),o(`REMOVE`,n,i);break}},a.setShouldRemove=e=>{if(n=e,n)for(let[e,[t,i]]of r)n(i,e)&&(r.delete(e),o(`REMOVE`,e,t))},a}var y=(e,t,n)=>(t.has(n)?t:t.set(n,e())).get(n),ee=new WeakMap,b=(e,t,n,r)=>y(e,y(()=>new WeakMap,y(()=>new WeakMap,ee,t),n),r);function x(e,t,r=Object.is){return b(()=>{let i=Symbol(),a=([e,n])=>{if(n===i)return t(e);let a=t(e,n);return r(n,a)?n:a},o=n(t=>{let n=t(o),r=t(e);return a([r,n])});return o.init=i,o},e,t,r)}var S=(e,t,n)=>(t.has(n)?t:t.set(n,e())).get(n),te=new WeakMap,C=(e,t,n)=>S(e,S(()=>new WeakMap,te,t),n),ne={},w=e=>!!e.write,T=e=>typeof e==`function`;function E(e,t){return C(()=>{let r=new WeakMap,i=(o,s)=>{let c=r.get(o);if(c)return c;let l=s&&r.get(s),u=[],d=[];return o.forEach((r,s)=>{let c=t?t(r):s;d[s]=c;let f=l&&l.atomList[l.keyList.indexOf(c)];if(f){u[s]=f;return}let p=t=>{let n=t(a),r=t(e),s=i(r,n?.arr).keyList.indexOf(c);if(s<0||s>=r.length){let e=o[i(o).keyList.indexOf(c)];if(e)return e;throw Error(`splitAtom: index out of bounds for read`)}return r[s]};u[s]=w(e)?n(p,(t,n,r)=>{let o=t(a),s=t(e),l=i(s,o?.arr).keyList.indexOf(c);if(l<0||l>=s.length)throw Error(`splitAtom: index out of bounds for write`);let u=T(r)?r(s[l]):r;Object.is(s[l],u)||n(e,[...s.slice(0,l),u,...s.slice(l+1)])}):n(p)}),c=l&&l.keyList.length===d.length&&l.keyList.every((e,t)=>e===d[t])?l:{arr:o,atomList:u,keyList:d},r.set(o,c),c},a=n(t=>{let n=t(a),r=t(e);return i(r,n?.arr)});a.init=void 0;let o=w(e)?n(e=>e(a).atomList,(t,n,r)=>{switch(r.type){case`remove`:{let i=t(o).indexOf(r.atom);if(i>=0){let r=t(e);n(e,[...r.slice(0,i),...r.slice(i+1)])}break}case`insert`:{let i=r.before?t(o).indexOf(r.before):t(o).length;if(i>=0){let a=t(e);n(e,[...a.slice(0,i),r.value,...a.slice(i)])}break}case`move`:{let i=t(o).indexOf(r.atom),a=r.before?t(o).indexOf(r.before):t(o).length;if(i>=0&&a>=0){let r=t(e);i<a?n(e,[...r.slice(0,i),...r.slice(i+1,a),r[i],...r.slice(a)]):n(e,[...r.slice(0,a),r[i],...r.slice(a,i),...r.slice(i+1)])}break}}}):n(e=>e(a).atomList);return o},e,t||ne)}var D=e=>typeof e?.then==`function`;function O(e=()=>{try{return window.localStorage}catch{return}},t){let n,r,i={getItem:(i,a)=>{let o=e=>{if(e||=``,n!==e){try{r=JSON.parse(e,t?.reviver)}catch{return a}n=e}return r},s=e()?.getItem(i)??null;return D(s)?s.then(o):o(s)},setItem:(n,r)=>e()?.setItem(n,JSON.stringify(r,t?.replacer)),removeItem:t=>e()?.removeItem(t)},a=e=>(n,r,i)=>e(n,e=>{let n;try{n=JSON.parse(e||``,t?.reviver)}catch{n=i}r(n)}),o;try{o=e()?.subscribe}catch{}return!o&&typeof window<`u`&&typeof window.addEventListener==`function`&&window.Storage&&(o=(t,n)=>{if(!(e()instanceof window.Storage))return()=>{};let r=r=>{r.storageArea===e()&&r.key===t&&n(r.newValue)};return window.addEventListener(`storage`,r),()=>{window.removeEventListener(`storage`,r)}}),o&&(i.subscribe=a(o)),i}var re=O();function ie(e,t,r=re,i){let a=i?.getOnInit,o=n(a?r.getItem(e,t):t);return o.onMount=n=>(n(r.getItem(e,t)),r.subscribe?.call(r,e,n,t)),n(e=>e(o),(n,i,a)=>{let s=typeof a==`function`?a(n(o)):a;return s===g?(i(o,t),r.removeItem(e)):D(s)?s.then(t=>(i(o,t),r.setItem(e,t))):(i(o,s),r.setItem(e,s))})}function ae(){let e=i.get(A);return m(e,`internal-error: initial mode not found`),l(e!==`present`,`internal-error: initial mode cannot be 'present'`),e}function oe(e){return e===`read`||e===`home`||e===`gallery`?e:e===`edit`?`present`:`edit`}async function se(e){let t=i.get(k);if(t.mode!==`edit`){await e();return}i.set(k,{...t,mode:`present`});try{await new Promise(e=>setTimeout(e,100)),await new Promise(e=>requestAnimationFrame(e)),await new Promise(e=>requestAnimationFrame(e)),await e()}finally{i.set(k,t)}}var k=n({mode:s()?`read`:`not-set`,cellAnchor:null}),A=n(void 0);function j(){let e=i.get(A);return e!==`home`&&e!==`gallery`}var M=n(!1);function N(){let e=(0,p.c)(1),{mode:t}=r(k),n=r(M),i;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=new URLSearchParams(window.location.search).get(u.kiosk),e[0]=i):i=e[0],t!==`read`&&!n&&i!==`true`}var P={NOT_STARTED:`NOT_STARTED`,CONNECTING:`CONNECTING`,OPEN:`OPEN`,CLOSING:`CLOSING`,CLOSED:`CLOSED`},F={KERNEL_DISCONNECTED:`KERNEL_DISCONNECTED`,KERNEL_STARTUP_ERROR:`KERNEL_STARTUP_ERROR`},I=n({state:P.NOT_STARTED}),L=_(null,(e,t)=>t===null?null:{phase:t.phase,logs:t.log_mode===`append`&&e?.phase===t.phase?e.logs+t.logs:t.logs});function R(){return e(I,e=>e.state===P.OPEN)}function z(){return j()?R():Promise.resolve()}var B=n(e=>e(I).state===P.CONNECTING),V=n(e=>e(I).state===P.OPEN),H=n(e=>{let t=e(I);return t.state===P.OPEN||t.state===P.NOT_STARTED});n(e=>e(I).state===P.CLOSED);var U=n(e=>e(I).state===P.NOT_STARTED);function W(e){return e===P.CONNECTING}function ce(e){return e===P.OPEN}function G(e){return e===P.CLOSING}function K(e){return e===P.NOT_STARTED}function le(e){return e===P.CLOSED||e===P.CLOSING||e===P.CONNECTING}function ue(e){switch(e){case P.CLOSED:return`App disconnected`;case P.CONNECTING:return`Connecting to a runtime ...`;case P.CLOSING:return`App disconnecting...`;case P.OPEN:return``;case P.NOT_STARTED:return`Click to connect to a runtime`;default:return``}}function de(e){if(typeof e!=`object`||!e||Array.isArray(e))return!1;for(let t of Object.values(e))if(typeof t!=`string`)return!1;return!0}function fe(e){if(typeof e!=`object`||!e||Array.isArray(e))return!1;let t=e;return!(!de(t.files)||t.modelNotifications!==void 0&&!Array.isArray(t.modelNotifications))}function q(){let e=typeof window>`u`?void 0:window.__MARIMO_STATIC__;return fe(e)?e:void 0}function J(){return q()!==void 0}function pe(){let e=q();return l(e!==void 0,`Not a static notebook`),e.files}function me(){return q()?.modelNotifications}var he=class{initialHealthyCheck=new d;config;lazy;constructor(e,t=!1){this.config=e,this.lazy=t;try{new URL(this.config.url)}catch(e){throw Error(`Invalid runtime URL: ${this.config.url}. ${e instanceof Error?e.message:`Unknown error`}`,{cause:e})}this.lazy||this.init()}get isLazy(){return this.lazy}get httpURL(){return new URL(this.config.url)}get isSameOrigin(){return this.httpURL.origin===window.location.origin}get isServerless(){return h()||s()||J()}formatHttpURL({path:e=``,searchParams:t,restrictToKnownQueryParams:n=!0}){let r=this.httpURL,i=new URLSearchParams(window.location.search);if(t)for(let[e,n]of t.entries())r.searchParams.set(e,n);for(let[e,t]of i.entries())n&&!Object.values(u).includes(e)||r.searchParams.set(e,t);return r.pathname=`${r.pathname.replace(/\/$/,``)}/${e.replace(/^\//,``)}`,r.hash=``,r}appendCrossOriginAuth(e){return!this.isSameOrigin&&this.config.authToken&&e.searchParams.set(u.accessToken,this.config.authToken),e}formatNavigableHttpURL(e,t){let n=this.formatHttpURL({path:e,searchParams:t});return n.searchParams.delete(u.accessToken),this.appendCrossOriginAuth(n)}formatWsURL(e,t){let n=this.formatHttpURL({path:e,searchParams:t,restrictToKnownQueryParams:!1});return ge(this.appendCrossOriginAuth(n).toString())}getSessionSearchParams(e){let t=new URL(this.config.url),n=new URLSearchParams(t.search);return new URLSearchParams(window.location.search).forEach((e,t)=>{n.has(t)||n.set(t,e)}),n.set(u.sessionId,e),n}getWsURL(e){return this.formatWsURL(`/ws`,this.getSessionSearchParams(e))}getSseURL(e){let t=this.formatHttpURL({path:`/sse`,searchParams:this.getSessionSearchParams(e),restrictToKnownQueryParams:!1});return t.searchParams.delete(u.accessToken),t}getWsSyncURL(e){return this.formatWsURL(`/ws_sync`,this.getSessionSearchParams(e))}getTerminalWsURL(e){let t=this.formatWsURL(`/terminal/ws`);return e&&(t.searchParams.set(`rows`,String(e.rows)),t.searchParams.set(`cols`,String(e.cols))),t}getLSPURL(e){if(e===`copilot`){let t=this.formatWsURL(`/lsp/${e}`),n=t.searchParams.get(u.accessToken);return t.search=``,n&&t.searchParams.set(u.accessToken,n),t}return this.formatWsURL(`/lsp/${e}`)}getAiURL(e){return this.formatHttpURL({path:`/api/ai/${e}`})}healthURL(){return this.formatHttpURL({path:`/health`})}async fetchHealth(){try{return await fetch(this.healthURL().toString())}catch(e){return c.error(`Failed to check health: ${e instanceof Error?e.message:`Unknown error`}`,{cause:e}),null}}async reconcileFromHealth(){if(this.isServerless)return!0;let e=await this.fetchHealth();if(!e)return!1;if(e.redirected){c.debug(`Runtime redirected to ${e.url}`);let t=new URL(e.url);t.pathname=t.pathname.replace(/\/health$/,``),this.config.url=t.toString()}return e.ok&&this.setDOMBaseUri(this.config.url),e.ok}async probeHealth(){return this.isServerless?!0:(await this.fetchHealth())?.ok??!1}setDOMBaseUri(e){e=e.split(`?`,1)[0],e.endsWith(`/`)||(e+=`/`);let t=document.querySelector(`base`);t?t.setAttribute(`href`,e):(t=document.createElement(`base`),t.setAttribute(`href`,e),document.head.append(t))}async init(e){c.debug(`Initializing runtime...`);let t=0;for(;!await this.reconcileFromHealth();){if(t>=25){c.error(`Failed to connect after 25 retries`),this.initialHealthyCheck.reject(Error(`Failed to connect after 25 retries`));return}if(!e?.disableRetryDelay){let e=Math.min(100*1.2**t,2e3);await new Promise(t=>setTimeout(t,e))}t++}c.debug(`Runtime is healthy`),this.initialHealthyCheck.resolve()}async waitForHealthy(){return this.initialHealthyCheck.promise}headers(){let e={"Marimo-Session-Id":f(),"Marimo-Server-Token":this.config.serverToken??``,"x-runtime-url":this.httpURL.toString()};return this.config.authToken&&(e.Authorization=`Bearer ${this.config.authToken}`),e}sessionHeaders(){return{"Marimo-Session-Id":f()}}};function ge(e){if(!e.startsWith(`http`)){c.warn(`URL must start with http: ${e}`);let t=new URL(e);return t.protocol=`ws`,t}return new URL(e.replace(/^http/,`ws`))}function _e(){let e=new URL(document.baseURI);return e.search=``,e.hash=``,e.toString()}var Y={lazy:!0,url:_e()},X=n(Y),Z=n(e=>{let t=e(X);return new he(t,t.lazy)});function Q(){return r(Z)}function ve(){let e=(0,p.c)(4),n=Q(),[r,i]=t(I),o;return e[0]!==r.state||e[1]!==n||e[2]!==i?(o=async()=>{K(r.state)?(i({state:P.CONNECTING}),await n.init()):c.log(`Runtime already started or starting...`)},e[0]=r.state,e[1]=n,e[2]=i,e[3]=o):o=e[3],a(o)}function $(){return i.get(Z)}function ye(e){if(e.startsWith(`http`))return new URL(e);let t=$().httpURL.toString();return t.startsWith(`blob:`)&&(t=t.replace(`blob:`,``)),new URL(e,t)}export{oe as A,m as B,z as C,A as D,ae as E,ie as F,O as I,x as L,k as M,v as N,M as O,_ as P,E as R,R as S,P as T,I as _,ve as a,U as b,pe as c,G as d,ce as f,H as g,K as h,X as i,N as j,se as k,J as l,le as m,ye as n,Q as o,W as p,$ as r,me as s,Y as t,ue as u,V as v,F as w,L as x,B as y,h as z};
@@ -1 +0,0 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{c as t,f as n,l as r,t as i}from"./useEvent-Dc9HkKI2.js";import{t as a}from"./react-CUdNIagt.js";import{Cn as o,Ct as s,D as c,Et as l,Qr as u,Rt as d,St as f,Tt as p,_n as m,bt as h,fn as g,gn as _,lo as v,wt as y,xt as b,yt as x,za as S}from"./cells-BcQ8Tm3j.js";import{t as C}from"./react-dom-CKsE8sC1.js";import{t as w}from"./compiler-runtime-BQ9S8nyo.js";import{g as T,p as E}from"./utils-B3E7otfg.js";import{g as D}from"./useEventListener-BdZUApHd.js";import{t as O}from"./invariant-Ci2dTZ72.js";import{F as k,r as A,z as j}from"./config-CmBpjGXk.js";import{t as M}from"./cn-ldLVeaqm.js";import{t as N}from"./jsx-runtime-B74pBk57.js";import{r as P}from"./config-CMqNngzA.js";import{o as F}from"./alert-dialog-CeE3i3Qa.js";import{a as I,c as L,p as R,r as z,t as B}from"./dropdown-menu-VuyoeQOD.js";import{t as V}from"./tooltip-DR2Z2N4w.js";import{t as H}from"./button-BoklZTGL.js";import{t as U}from"./createLucideIcon-rHn2EdoM.js";import{n as W,t as G}from"./paths-CzfpItSz.js";import{st as K}from"./panels-CnbmgzkS.js";import{n as ee}from"./LazyAnyLanguageCodeMirror-EBegnOE0.js";import{r as te}from"./useNumberFormatter-C4-_TnkF.js";import{A as ne,B as re,F as ie,M as q,z as ae}from"./RunButton-qknEPbRR.js";import{u as J}from"./toDate-BbJ1_N2T.js";import{t as oe}from"./copy-RyCOE8jo.js";import{n as Y}from"./youtube-ELpGJEdR.js";import{b as se}from"./write-secret-modal-CBUZw27N.js";import{a as ce,c as le,d as ue,f as de,i as fe,l as pe,m as X,n as me,p as he,r as ge,t as _e,u as ve}from"./file-name-input-BXq6eIDs.js";import{a as ye}from"./input-BDakodZ2.js";import{n as be}from"./copy-BhJktFeI.js";import{t as xe}from"./use-toast-CC89xOwH.js";import{t as Se}from"./copy-icon-DFhUGBjO.js";import{Tt as Ce}from"./dist-BczecT6V.js";import{n as we,r as Te,t as Ee}from"./requests-yTHMxhVa.js";import{t as De}from"./context-BFOBKCJB.js";import{t as Oe}from"./useDebounce-DMbg9X18.js";import{n as ke}from"./useAsyncData-DucTwMkf.js";import{a as Ae}from"./errors-D9vyuMar.js";import{A as je,Bt as Me,Ca as Ne,Da as Pe,Et as Fe,Ft as Ie,Gt as Le,Hn as Re,Ir as ze,It as Be,Lr as Ve,Lt as He,Pt as Ue,S as We,Sa as Ge,Zt as Ke,_a as qe,_i as Je,c as Ye,ei as Xe,en as Ze,g as Qe,h as $e,hi as et,in as tt,ja as nt,l as rt,m as it,nn as at,oa as ot,p as st,pa as ct,rn as lt,sa as ut,tn as dt,u as ft,zt as pt}from"./index-CgQsZfww.js";import{t as mt}from"./empty-state-CzxjZqGW.js";import{a as ht,i as gt,n as _t,o as vt,r as yt,s as bt,t as xt}from"./components-B3KlHXnD.js";import{n as St,t as Ct}from"./marimo-icons-B_1oPpIE.js";var wt=U(`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`}]]),Tt=U(`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`}]]),Et=U(`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`}]]),Dt=U(`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`}]]),Ot=U(`folder-plus`,[[`path`,{d:`M12 10v6`,key:`1bos4e`}],[`path`,{d:`M9 13h6`,key:`1uhe8q`}],[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]),kt=U(`folder-root`,[[`path`,{d:`M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z`,key:`1fr9dc`}],[`circle`,{cx:`12`,cy:`13`,r:`2`,key:`1c1ljs`}],[`path`,{d:`M12 15v5`,key:`11xva1`}]]),At=U(`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`}]]),jt=U(`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`}]]),Mt=U(`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`}]]),Z=e(a(),1),Q=w(),$=N(),Nt=e=>{let t=(0,Q.c)(17),{filename:n,filenameIcon:r,onBack:i,onRefresh:a,onDownload:o,actions:s}=e,c;t[0]===i?c=t[1]:(c=i&&(0,$.jsx)(V,{content:`Back to file list`,children:(0,$.jsx)(H,{variant:`text`,size:`xs`,onClick:i,children:(0,$.jsx)(K,{className:`h-4 w-4`})})}),t[0]=i,t[1]=c);let l;t[2]!==n||t[3]!==r?(l=n?(0,$.jsxs)(`span`,{className:`flex items-center gap-1.5 flex-1 min-w-0 text-xs font-semibold truncate`,children:[r,n]}):(0,$.jsx)(`span`,{className:`flex-1`}),t[2]=n,t[3]=r,t[4]=l):l=t[4];let u;t[5]===a?u=t[6]:(u=a&&(0,$.jsx)(V,{content:`Refresh`,children:(0,$.jsx)(H,{variant:`text`,size:`xs`,onClick:a,children:(0,$.jsx)(ct,{className:`h-3.5 w-3.5`})})}),t[5]=a,t[6]=u);let d;t[7]===o?d=t[8]:(d=o&&(0,$.jsx)(V,{content:`Download`,children:(0,$.jsx)(H,{variant:`text`,size:`xs`,onClick:o,children:(0,$.jsx)(nt,{className:`h-3.5 w-3.5`})})}),t[7]=o,t[8]=d);let f;t[9]!==s||t[10]!==u||t[11]!==d?(f=(0,$.jsxs)(`div`,{className:`flex items-center gap-0.5 shrink-0`,children:[u,s,d]}),t[9]=s,t[10]=u,t[11]=d,t[12]=f):f=t[12];let p;return t[13]!==c||t[14]!==l||t[15]!==f?(p=(0,$.jsxs)(`div`,{className:`flex items-center shrink-0 border-b px-1 gap-1`,children:[c,l,f]}),t[13]=c,t[14]=l,t[15]=f,t[16]=p):p=t[16],p},Pt=new Set([`http`,`file`,`in-memory`]);function Ft(e){return JSON.stringify(e).slice(1,-1)}var It=new Set([`datasets`,`spaces`,`buckets`]);function Lt(e){let t=e.split(`/`).filter(Boolean);return t[0]===`datasets`&&t.length>=4?{repoType:`dataset`,repoId:`${t[1]}/${t[2]}`,filename:t.slice(3).join(`/`)}:t[0]===`spaces`&&t.length>=4?{repoType:`space`,repoId:`${t[1]}/${t[2]}`,filename:t.slice(3).join(`/`)}:t.length>=3&&!It.has(t[0])?{repoType:`model`,repoId:`${t[0]}/${t[1]}`,filename:t.slice(2).join(`/`)}:null}function Rt(e){return`from huggingface_hub import hf_hub_download\n\nlocal_path = hf_hub_download(\n repo_id="${Ft(e.repoId)}",\n filename="${Ft(e.filename)}",\n repo_type="${Ft(e.repoType)}",\n)`}var zt=[{id:`read-file`,label:`Insert read snippet`,icon:wt,getCode:e=>{if(e.entry.kind===`directory`)return null;let t=Ft(e.entry.path);if(e.backendType===`huggingface`){let t=Lt(e.entry.path);return t?`${Rt(t)}\n\nwith open(local_path, "rb") as f:\n _data = f.read()\n_data`:null}return e.backendType===`obstore`?`_data = ${e.variableName}.get("${t}").bytes()\n_data`:`_data = ${e.variableName}.cat_file("${t}")\n_data`}},{id:`download-file`,label:`Insert download snippet`,icon:Dt,getCode:e=>{if(e.entry.kind===`directory`)return null;let t=Ft(e.entry.path);if(e.backendType===`huggingface`){let t=Lt(e.entry.path);return t?`${Rt(t)}\nlocal_path`:null}if(e.backendType===`obstore`)return Pt.has(e.protocol)?null:`from datetime import timedelta\nfrom obstore import sign\n\nsigned_url = sign(\n ${e.variableName}, "GET", "${t}",\n expires_in=timedelta(hours=1),\n)\nsigned_url`;let n=Ft(e.entry.path.split(`/`).pop()||`download`);return`${e.variableName}.get("${t}", "${n}")`}}],Bt=104857600;function Vt(e){let t=e.endsWith(`/`)?e.slice(0,-1):e,n=t.split(`/`);return n[n.length-1]||t}var Ht=e=>{let t=(0,Q.c)(83),{entry:n,namespace:r,protocol:i,backendType:a,onBack:o}=e,{locale:s}=De(),c=We(),u;t[0]===n.path?u=t[1]:(u=Vt(n.path),t[0]=n.path,t[1]=u);let d=u,f=n.mimeType||`text/plain`,p;t[2]===f?p=t[3]:(p=He(f),t[2]=f,t[3]=p);let m=p,h=m&&n.size>Bt&&n.size>0,g,_;t[4]!==n.path||t[5]!==m||t[6]!==r||t[7]!==h?(g=async()=>{if(h)return null;let e=await l.request({namespace:r,path:n.path,preview:!m});if(e.error)throw Error(e.error);if(!e.url)throw Error(`No URL returned`);if(m)return{type:`media`,url:e.url};let t=await fetch(e.url);if(!t.ok)throw Error(`Failed to fetch preview: ${t.statusText}`);return{type:`text`,content:await t.text()}},_=[r,n.path,m,h],t[4]=n.path,t[5]=m,t[6]=r,t[7]=h,t[8]=g,t[9]=_):(g=t[8],_=t[9]);let{data:v,isPending:y,error:b,refetch:x}=ke(g,_),S;t[10]!==n.path||t[11]!==d||t[12]!==r?(S=async()=>{try{let e=await l.request({namespace:r,path:n.path});if(e.error){xe({title:`Download failed`,description:e.error,variant:`danger`});return}e.url&&Me(e.url,e.filename??d)}catch(e){let t=e;D.error(`Failed to download storage entry`,t),xe({title:`Download failed`,description:String(t),variant:`danger`})}},t[10]=n.path,t[11]=d,t[12]=r,t[13]=S):S=t[13];let C=S,w;t[14]!==c||t[15]!==a||t[16]!==n||t[17]!==r||t[18]!==i?(w=zt.map(e=>{let t=e.getCode({variableName:r,protocol:i,entry:n,backendType:a});if(t===null)return null;let o=e.icon;return(0,$.jsx)(V,{content:e.label,children:(0,$.jsx)(H,{variant:`text`,size:`xs`,onClick:()=>c(t),"aria-label":e.label,children:(0,$.jsx)(o,{className:`h-3.5 w-3.5`})})},e.id)}),t[14]=c,t[15]=a,t[16]=n,t[17]=r,t[18]=i,t[19]=w):w=t[19];let T=w,E;t[20]===d?E=t[21]:(E=Qe(d),t[20]=d,t[21]=E);let O;t[22]!==C||t[23]!==d||t[24]!==o||t[25]!==T||t[26]!==E?(O=(0,$.jsx)(Nt,{filename:d,filenameIcon:E,onBack:o,onDownload:C,actions:T}),t[22]=C,t[23]=d,t[24]=o,t[25]=T,t[26]=E,t[27]=O):O=t[27];let k=O,A;t[28]!==n.lastModified||t[29]!==n.path||t[30]!==n.size||t[31]!==s||t[32]!==f?(A=e=>{let{includeMime:t}=e,r=t!==void 0&&t;return(0,$.jsxs)(`div`,{className:`grid grid-cols-[auto_1fr] gap-x-4 gap-y-1.5 p-4 text-xs`,children:[(0,$.jsx)(`span`,{className:`text-muted-foreground font-medium`,children:`Path`}),(0,$.jsxs)(`div`,{className:`truncate flex items-center gap-1.5`,children:[(0,$.jsx)(`span`,{className:`font-mono text-[11px]`,children:n.path}),(0,$.jsx)(Se,{value:n.path,className:`h-3 w-3`})]}),r&&(0,$.jsx)(`span`,{className:`text-muted-foreground font-medium`,children:`Type`}),r&&(0,$.jsx)(`span`,{children:f}),n.size>0&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{className:`text-muted-foreground font-medium`,children:`Size`}),(0,$.jsx)(`span`,{children:ie(n.size,s)})]}),n.lastModified!=null&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{className:`text-muted-foreground font-medium`,children:`Modified`}),(0,$.jsx)(`span`,{children:new Date(n.lastModified*1e3).toLocaleString()})]})]})},t[28]=n.lastModified,t[29]=n.path,t[30]=n.size,t[31]=s,t[32]=f,t[33]=A):A=t[33];let j=A;if(h){let e;t[34]===j?e=t[35]:(e=j({includeMime:!0}),t[34]=j,t[35]=e);let r;t[36]!==n.size||t[37]!==s?(r=ie(n.size,s),t[36]=n.size,t[37]=s,t[38]=r):r=t[38];let i;t[39]===r?i=t[40]:(i=(0,$.jsxs)(`div`,{className:`px-4 pb-4 text-xs text-muted-foreground italic`,children:[`File is too large to preview (`,r,`).`]}),t[39]=r,t[40]=i);let a;return t[41]!==k||t[42]!==e||t[43]!==i?(a=(0,$.jsxs)(`div`,{className:`flex flex-col h-full`,children:[k,e,i]}),t[41]=k,t[42]=e,t[43]=i,t[44]=a):a=t[44],a}if(y){let e;t[45]===j?e=t[46]:(e=j({}),t[45]=j,t[46]=e);let n;t[47]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,$.jsxs)(`div`,{className:`flex-1 flex items-center justify-center gap-2 text-xs text-muted-foreground min-h-24`,children:[(0,$.jsx)(qe,{className:`h-4 w-4 animate-spin`}),`Loading preview...`]}),t[47]=n):n=t[47];let r;return t[48]!==k||t[49]!==e?(r=(0,$.jsxs)(`div`,{className:`flex flex-col h-full`,children:[k,e,n]}),t[48]=k,t[49]=e,t[50]=r):r=t[50],r}if(b){let e;t[51]===j?e=t[52]:(e=j({includeMime:!0}),t[51]=j,t[52]=e);let n;t[53]===b.message?n=t[54]:(n=(0,$.jsxs)(`div`,{className:`px-4 pb-4 text-xs text-destructive`,children:[`Failed to load preview: `,b.message]}),t[53]=b.message,t[54]=n);let r;t[55]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,$.jsx)(ct,{className:`h-3 w-3 mr-1`}),t[55]=r):r=t[55];let i;t[56]===x?i=t[57]:(i=(0,$.jsx)(`div`,{className:`px-4 pb-4`,children:(0,$.jsxs)(H,{variant:`secondary`,size:`xs`,onClick:x,children:[r,`Retry`]})}),t[56]=x,t[57]=i);let a;return t[58]!==k||t[59]!==e||t[60]!==n||t[61]!==i?(a=(0,$.jsxs)(`div`,{className:`flex flex-col h-full`,children:[k,e,n,i]}),t[58]=k,t[59]=e,t[60]=n,t[61]=i,t[62]=a):a=t[62],a}if(v){let e;t[63]===j?e=t[64]:(e=j({}),t[63]=j,t[64]=e);let n=v.type===`text`?v.content:void 0,r;t[65]!==v.type||t[66]!==v.url?(r=v.type===`media`?{url:v.url}:void 0,t[65]=v.type,t[66]=v.url,t[67]=r):r=t[67];let i;t[68]!==f||t[69]!==d||t[70]!==n||t[71]!==r?(i=(0,$.jsx)(Ue,{mimeType:f,filename:d,contents:n,mediaSource:r}),t[68]=f,t[69]=d,t[70]=n,t[71]=r,t[72]=i):i=t[72];let a;return t[73]!==k||t[74]!==e||t[75]!==i?(a=(0,$.jsxs)(`div`,{className:`flex flex-col h-full`,children:[k,e,i]}),t[73]=k,t[74]=e,t[75]=i,t[76]=a):a=t[76],a}let M;t[77]===j?M=t[78]:(M=j({includeMime:!0}),t[77]=j,t[78]=M);let N;t[79]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,$.jsxs)(`div`,{className:`p-4 flex items-center gap-2 text-xs text-muted-foreground`,children:[(0,$.jsx)(Ne,{className:`h-4 w-4`}),`Preview not available for this file type.`]}),t[79]=N):N=t[79];let P;return t[80]!==k||t[81]!==M?(P=(0,$.jsxs)(`div`,{className:`flex flex-col h-full`,children:[k,M,N]}),t[80]=k,t[81]=M,t[82]=P):P=t[82],P},Ut=16;function Wt(e){return{paddingLeft:e*Ut}}function Gt(e,t){return new Date(e*1e3).toLocaleDateString(t,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}function Kt(e){let t=e.endsWith(`/`)?e.slice(0,-1):e,n=t.split(`/`);return n[n.length-1]||t}function qt(e){return e.endsWith(`/`)?e:`${e}/`}function Jt(e,t){let n=e.metadata?.id;return typeof n==`string`&&n.length>0?n:`${e.path}::${t}`}function Yt(e,{namespace:t,searchValue:n,entriesByPath:r}){let i=n.trim().toLowerCase(),a=e.path.toLowerCase();if(Kt(e.path).toLowerCase().includes(i)||a.includes(i))return!0;if(e.kind===`directory`){let i=r.get(p(t,qt(e.path)));if(i)return i.some(e=>Yt(e,{namespace:t,searchValue:n,entriesByPath:r}))}return!1}function Xt(e,t){return t.searchValue.trim()?e.filter(e=>Yt(e,t)):e}var Zt=5;function Qt(e){return{query:e,status:`idle`}}function $t(e){return e.status===`idle`||e.status===`error`||e.status===`capped`}function en(e,t,n){return t.get(e)===void 0||n.get(e)?.nextPageToken!=null}function tn({hasSearch:e,hasLoadedMatches:t,isPending:n,remoteSearch:r,searchKey:i,entriesByPath:a,pageMetadataByPath:o}){return!e||t||n||!$t(r)?!1:en(i,a,o)}function nn(e){let t=e.trim(),n=t.lastIndexOf(`/`);return n===-1?``:t.slice(0,n+1)}function rn(e,t){let n=t.trim().toLowerCase();return!n||e.path.toLowerCase().includes(n)||Kt(e.path).toLowerCase().includes(n)}var an=e=>{let t=(0,Q.c)(15),{depth:n,isLoading:r,error:i,onLoadMore:a}=e,o;t[0]===n?o=t[1]:(o=Wt(n),t[0]=n,t[1]=o);let s;t[2]===r?s=t[3]:(s=r&&(0,$.jsx)(qe,{className:`h-3 w-3 mr-1 animate-spin`}),t[2]=r,t[3]=s);let c=r?`Loading...`:`Load more`,l;t[4]!==r||t[5]!==a||t[6]!==s||t[7]!==c?(l=(0,$.jsxs)(H,{variant:`text`,size:`xs`,className:`h-6 px-0 hover:text-blue-600`,disabled:r,onClick:a,children:[s,c]}),t[4]=r,t[5]=a,t[6]=s,t[7]=c,t[8]=l):l=t[8];let u;t[9]===i?u=t[10]:(u=i&&(0,$.jsxs)(`span`,{className:`ml-2 text-destructive`,children:[`Failed to load: `,i.message]}),t[9]=i,t[10]=u);let d;return t[11]!==o||t[12]!==l||t[13]!==u?(d=(0,$.jsxs)(`div`,{className:`py-px text-xs`,style:o,children:[l,u]}),t[11]=o,t[12]=l,t[13]=u,t[14]=d):d=t[14],d},on=e=>{let t=(0,Q.c)(44),{namespace:n,protocol:r,rootPath:i,backendType:a,prefix:o,depth:c,locale:l,searchValue:u,onOpenFile:d}=e,{entriesByPath:f}=b(),{entries:p,isPending:m,error:h,hasMore:g,loadMore:_,isLoadingMore:v,loadMoreError:y}=s(n,o);if(m){let e;t[0]===c?e=t[1]:(e=Wt(c),t[0]=c,t[1]=e);let n;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,$.jsx)(qe,{className:`h-3 w-3 animate-spin`}),t[2]=n):n=t[2];let r;return t[3]===e?r=t[4]:(r=(0,$.jsxs)(`div`,{className:`flex items-center gap-1.5 py-1 text-xs text-muted-foreground`,style:e,children:[n,`Loading...`]}),t[3]=e,t[4]=r),r}if(h){let e;t[5]===c?e=t[6]:(e=Wt(c),t[5]=c,t[6]=e);let n;return t[7]!==h.message||t[8]!==e?(n=(0,$.jsxs)(`div`,{className:`py-1 text-xs text-destructive`,style:e,children:[`Failed to load: `,h.message]}),t[7]=h.message,t[8]=e,t[9]=n):n=t[9],n}if(p.length===0){let e;t[10]===c?e=t[11]:(e=Wt(c),t[10]=c,t[11]=e);let n;return t[12]===e?n=t[13]:(n=(0,$.jsx)(`div`,{className:`py-1 text-xs text-muted-foreground italic`,style:e,children:`Empty`}),t[12]=e,t[13]=n),n}let x;if(t[14]!==a||t[15]!==p||t[16]!==c||t[17]!==f||t[18]!==l||t[19]!==n||t[20]!==d||t[21]!==r||t[22]!==i||t[23]!==u){let e=Xt(p,{namespace:n,searchValue:u,entriesByPath:f}),o;t[25]!==a||t[26]!==p||t[27]!==c||t[28]!==l||t[29]!==n||t[30]!==d||t[31]!==r||t[32]!==i||t[33]!==u?(o=e=>{let t=Jt(e,p.indexOf(e));return(0,$.jsx)(sn,{rowKey:t,entry:e,namespace:n,protocol:r,rootPath:i,backendType:a,depth:c,locale:l,searchValue:u,onOpenFile:d},t)},t[25]=a,t[26]=p,t[27]=c,t[28]=l,t[29]=n,t[30]=d,t[31]=r,t[32]=i,t[33]=u,t[34]=o):o=t[34],x=e.map(o),t[14]=a,t[15]=p,t[16]=c,t[17]=f,t[18]=l,t[19]=n,t[20]=d,t[21]=r,t[22]=i,t[23]=u,t[24]=x}else x=t[24];let S;t[35]!==c||t[36]!==g||t[37]!==v||t[38]!==_||t[39]!==y?(S=g&&(0,$.jsx)(an,{depth:c,isLoading:v,error:y,onLoadMore:_}),t[35]=c,t[36]=g,t[37]=v,t[38]=_,t[39]=y,t[40]=S):S=t[40];let C;return t[41]!==x||t[42]!==S?(C=(0,$.jsxs)($.Fragment,{children:[x,S]}),t[41]=x,t[42]=S,t[43]=C):C=t[43],C},sn=e=>{let t=(0,Q.c)(115),{entry:n,rowKey:r,namespace:i,protocol:a,rootPath:o,backendType:s,depth:c,locale:u,searchValue:d,onOpenFile:f}=e,[h,g]=(0,Z.useState)(!1),{entriesByPath:_}=b(),v=We(),y=n.kind===`directory`,x,S,C,w,T,E,O,k,A,j,N;if(t[0]!==s||t[1]!==c||t[2]!==_||t[3]!==n||t[4]!==y||t[5]!==h||t[6]!==i||t[7]!==f||t[8]!==a||t[9]!==r||t[10]!==d){w=Kt(n.path);let e;t[22]===d?e=t[23]:(e=d.trim(),t[22]=d,t[23]=e);let o=!!e;T=y&&o&&w.toLowerCase().includes(d.trim().toLowerCase());let u;t[24]!==_||t[25]!==n.path||t[26]!==o||t[27]!==y||t[28]!==i||t[29]!==d?(u=y&&o&&!!_.get(p(i,qt(n.path)))?.some(e=>Yt(e,{namespace:i,searchValue:d,entriesByPath:_})),t[24]=_,t[25]=n.path,t[26]=o,t[27]=y,t[28]=i,t[29]=d,t[30]=u):u=t[30],S=h||u;let v;t[31]!==n.path||t[32]!==i?(v=async()=>{try{let e=await l.request({namespace:i,path:n.path});if(e.error){xe({title:`Download failed`,description:e.error,variant:`danger`});return}e.url&&Me(e.url,e.filename??`download`)}catch(e){let t=e;D.error(`Failed to download storage entry`,t),xe({title:`Download failed`,description:String(t),variant:`danger`})}},t[31]=n.path,t[32]=i,t[33]=v):v=t[33],C=v,x=m;let b=y&&`font-medium`;t[34]===b?E=t[35]:(E=M(`text-xs flex items-center gap-1.5 cursor-pointer rounded-none group h-6.5`,b),t[34]=b,t[35]=E),t[36]===c?O=t[37]:(O=Wt(c),t[36]=c,t[37]=O),k=`${i}:${r}`,t[38]!==s||t[39]!==S||t[40]!==n||t[41]!==y||t[42]!==i||t[43]!==f||t[44]!==a?(A=()=>{y?g(!S):f({entry:n,namespace:i,protocol:a,backendType:s})},t[38]=s,t[39]=S,t[40]=n,t[41]=y,t[42]=i,t[43]=f,t[44]=a,t[45]=A):A=t[45],t[46]!==S||t[47]!==y?(j=y?(0,$.jsx)(lt,{isExpanded:S,className:`h-3 w-3`}):(0,$.jsx)(`span`,{className:`w-3 shrink-0`}),t[46]=S,t[47]=y,t[48]=j):j=t[48],N=y?(0,$.jsx)(Ge,{className:M(`h-3.5 w-3.5 shrink-0`,it.directory)}):Qe(w),t[0]=s,t[1]=c,t[2]=_,t[3]=n,t[4]=y,t[5]=h,t[6]=i,t[7]=f,t[8]=a,t[9]=r,t[10]=d,t[11]=x,t[12]=S,t[13]=C,t[14]=w,t[15]=T,t[16]=E,t[17]=O,t[18]=k,t[19]=A,t[20]=j,t[21]=N}else x=t[11],S=t[12],C=t[13],w=t[14],T=t[15],E=t[16],O=t[17],k=t[18],A=t[19],j=t[20],N=t[21];let P;t[49]===w?P=t[50]:(P=(0,$.jsx)(`span`,{className:`truncate flex-1 text-left`,children:w}),t[49]=w,t[50]=P);let F;t[51]!==n.size||t[52]!==u?(F=n.size>0&&(0,$.jsx)(`span`,{className:`text-[10px] text-muted-foreground pr-2 tabular-nums`,children:ie(n.size,u)}),t[51]=n.size,t[52]=u,t[53]=F):F=t[53];let H;t[54]!==n.lastModified||t[55]!==u?(H=n.lastModified!=null&&(0,$.jsx)(V,{content:`Last modified: ${new Date(n.lastModified*1e3).toLocaleString()}`,children:(0,$.jsx)(`span`,{className:`text-[10px] text-muted-foreground pr-1 whitespace-nowrap`,children:Gt(n.lastModified,u)})}),t[54]=n.lastModified,t[55]=u,t[56]=H):H=t[56];let U;t[57]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,$.jsx)(R,{asChild:!0,children:(0,$.jsx)(dt,{iconClassName:`h-3 w-3`,onClick:un})}),t[57]=U):U=t[57];let W;t[58]!==s||t[59]!==n||t[60]!==y||t[61]!==i||t[62]!==f||t[63]!==a?(W=!y&&(0,$.jsxs)(I,{onSelect:()=>f({entry:n,namespace:i,protocol:a,backendType:s}),children:[(0,$.jsx)(Mt,{className:`h-3.5 w-3.5 mr-2`}),`View`]}),t[58]=s,t[59]=n,t[60]=y,t[61]=i,t[62]=f,t[63]=a,t[64]=W):W=t[64];let G;t[65]===n.path?G=t[66]:(G=async()=>{await be(n.path),xe({title:`Copied to clipboard`})},t[65]=n.path,t[66]=G);let K;t[67]===Symbol.for(`react.memo_cache_sentinel`)?(K=(0,$.jsx)(oe,{className:Ze}),t[67]=K):K=t[67];let ee;t[68]===G?ee=t[69]:(ee=(0,$.jsxs)(I,{onSelect:G,children:[K,`Copy path`]}),t[68]=G,t[69]=ee);let te;t[70]!==C||t[71]!==y?(te=!y&&(0,$.jsxs)(I,{onSelect:()=>C(),children:[(0,$.jsx)(nt,{className:`h-3.5 w-3.5 mr-2`}),`Download`]}),t[70]=C,t[71]=y,t[72]=te):te=t[72];let ne;t[73]===Symbol.for(`react.memo_cache_sentinel`)?(ne=(0,$.jsx)(L,{}),t[73]=ne):ne=t[73];let re;t[74]!==v||t[75]!==s||t[76]!==n||t[77]!==i||t[78]!==a?(re=zt.map(e=>{let t=e.getCode({variableName:i,protocol:a,entry:n,backendType:s});if(t===null)return null;let r=e.icon;return(0,$.jsxs)(I,{onSelect:()=>v(t),children:[(0,$.jsx)(r,{className:Ze}),e.label]},e.id)}),t[74]=v,t[75]=s,t[76]=n,t[77]=i,t[78]=a,t[79]=re):re=t[79];let q;t[80]!==W||t[81]!==ee||t[82]!==te||t[83]!==re?(q=(0,$.jsxs)(B,{children:[U,(0,$.jsxs)(z,{align:`end`,onClick:dn,onCloseAutoFocus:fn,children:[W,ee,te,ne,re]})]}),t[80]=W,t[81]=ee,t[82]=te,t[83]=re,t[84]=q):q=t[84];let ae;t[85]!==q||t[86]!==F||t[87]!==H?(ae=(0,$.jsxs)(`div`,{className:`flex items-center`,children:[F,H,q]}),t[85]=q,t[86]=F,t[87]=H,t[88]=ae):ae=t[88];let J;t[89]!==x||t[90]!==E||t[91]!==ae||t[92]!==O||t[93]!==k||t[94]!==A||t[95]!==j||t[96]!==N||t[97]!==P?(J=(0,$.jsxs)(x,{className:E,style:O,value:k,onSelect:A,children:[j,N,P,ae]}),t[89]=x,t[90]=E,t[91]=ae,t[92]=O,t[93]=k,t[94]=A,t[95]=j,t[96]=N,t[97]=P,t[98]=J):J=t[98];let Y;t[99]!==s||t[100]!==c||t[101]!==S||t[102]!==n.path||t[103]!==y||t[104]!==u||t[105]!==i||t[106]!==f||t[107]!==a||t[108]!==o||t[109]!==d||t[110]!==T?(Y=y&&S&&(0,$.jsx)(on,{namespace:i,protocol:a,rootPath:o,backendType:s,prefix:qt(n.path),depth:c+1,locale:u,searchValue:T?``:d,onOpenFile:f}),t[99]=s,t[100]=c,t[101]=S,t[102]=n.path,t[103]=y,t[104]=u,t[105]=i,t[106]=f,t[107]=a,t[108]=o,t[109]=d,t[110]=T,t[111]=Y):Y=t[111];let se;return t[112]!==J||t[113]!==Y?(se=(0,$.jsxs)($.Fragment,{children:[J,Y]}),t[112]=J,t[113]=Y,t[114]=se):se=t[114],se},cn=e=>{let t=(0,Q.c)(66),{namespace:n,locale:r,searchValue:i,remoteSearch:a,onContinueRemoteSearch:o,onOpenFile:c}=e,[l,u]=(0,Z.useState)(!0),{entriesByPath:d,pageMetadataByPath:h}=b(),{clearNamespaceCache:g}=f(),_=n.name??n.displayName,{entries:v,isPending:y,error:x,hasMore:S,loadMore:C,isLoadingMore:w,loadMoreError:T,refetch:E}=s(_),D;t[0]!==g||t[1]!==_||t[2]!==E?(D=e=>{e.stopPropagation(),g(_),E()},t[0]=g,t[1]=_,t[2]=E,t[3]=D):D=t[3];let O=D,k=y?n.storageEntries:v,A;if(t[4]!==k||t[5]!==d||t[6]!==x||t[7]!==O||t[8]!==S||t[9]!==l||t[10]!==w||t[11]!==y||t[12]!==C||t[13]!==T||t[14]!==r||t[15]!==n.backendType||t[16]!==n.displayName||t[17]!==n.name||t[18]!==n.protocol||t[19]!==n.rootPath||t[20]!==_||t[21]!==o||t[22]!==c||t[23]!==h||t[24]!==a||t[25]!==i){let e=Xt(k,{namespace:_,searchValue:i,entriesByPath:d}),s=nn(i),f=p(_,s),g=s===``?[]:d.get(f)??[],v=Xt(g,{namespace:_,searchValue:i,entriesByPath:d}),b;t[27]===i?b=t[28]:(b=i.trim(),t[27]=i,t[28]=b);let E=!!b,D=e.length>0||v.length>0,j=s!==``&&tn({hasSearch:E,hasLoadedMatches:D,isPending:y,remoteSearch:a,searchKey:f,entriesByPath:d,pageMetadataByPath:h}),M=E&&e.length===0,N;bb0:{if(y&&k.length===0){let e;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,$.jsx)(qe,{className:`h-3 w-3 animate-spin`}),`Loading...`]}),t[29]=e):e=t[29],N=e;break bb0}if(a.status===`searching`){let e;t[30]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,$.jsx)(qe,{className:`h-3 w-3 animate-spin`}),`Searching more entries...`]}),t[30]=e):e=t[30],N=e;break bb0}if(a.status===`error`){let e;t[31]===a.error.message?e=t[32]:(e=(0,$.jsxs)(`span`,{className:`text-destructive`,children:[`Search failed: `,a.error.message]}),t[31]=a.error.message,t[32]=e),N=e;break bb0}if(a.status===`capped`){let e;t[33]===o?e=t[34]:(e=(0,$.jsx)(H,{variant:`text`,size:`xs`,className:`h-5 px-0 text-xs hover:text-blue-600`,onClick:o,children:`Continue searching`}),t[33]=o,t[34]=e);let n;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,$.jsx)(`span`,{className:`text-[10px]`,children:`(or press Enter)`}),t[35]=n):n=t[35];let r;t[36]===e?r=t[37]:(r=(0,$.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[`Searched more entries.`,e,n]}),t[36]=e,t[37]=r),N=r;break bb0}if(a.status===`exhausted`&&!D){N=`No matches`;break bb0}if(!E&&!y&&k.length===0){N=`No entries`;break bb0}if(j){let e;t[38]===o?e=t[39]:(e=(0,$.jsx)(H,{variant:`text`,size:`xs`,className:`h-5 px-0 text-xs hover:text-blue-600`,onClick:o,children:`Search more entries`}),t[38]=o,t[39]=e);let n;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,$.jsx)(`span`,{className:`text-[10px]`,children:`(or press Enter)`}),t[40]=n):n=t[40];let r;t[41]===e?r=t[42]:(r=(0,$.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[`No loaded matches.`,e,n]}),t[41]=e,t[42]=r),N=r;break bb0}if(E&&!D&&k.length>0){N=`No matches`;break bb0}N=null}let P=N,F;t[43]===l?F=t[44]:(F=()=>u(!l),t[43]=l,t[44]=F);let I;t[45]===l?I=t[46]:(I=(0,$.jsx)(lt,{isExpanded:l,className:`h-3 w-3`}),t[45]=l,t[46]=I);let L;t[47]===n.protocol?L=t[48]:(L=(0,$.jsx)(q,{protocol:n.protocol}),t[47]=n.protocol,t[48]=L);let R;t[49]===n.displayName?R=t[50]:(R=(0,$.jsx)(`span`,{children:n.displayName}),t[49]=n.displayName,t[50]=R);let z;t[51]===n.name?z=t[52]:(z=n.name&&(0,$.jsxs)(`span`,{className:`text-xs text-muted-foreground font-normal`,children:[`(`,(0,$.jsx)(bt,{variableName:n.name}),`)`]}),t[51]=n.name,t[52]=z);let B;t[53]===O?B=t[54]:(B=(0,$.jsx)(at,{onClick:O,tooltip:`Refresh storage connection`,className:`p-0`,iconClassName:`h-3 w-3`}),t[53]=O,t[54]=B);let V=n.rootPath||`(root)`,U;t[55]===V?U=t[56]:(U=(0,$.jsx)(`span`,{className:`text-[10px] text-muted-foreground font-normal tabular-nums ml-auto`,children:V}),t[55]=V,t[56]=U);let W;t[57]!==n.name||t[58]!==B||t[59]!==U||t[60]!==F||t[61]!==I||t[62]!==L||t[63]!==R||t[64]!==z?(W=(0,$.jsxs)(m,{value:n.name,onSelect:F,className:`flex flex-row font-semibold h-7 text-xs gap-1.5 bg-(--slate-2) text-muted-foreground rounded-none`,children:[I,L,R,z,B,U]}),t[57]=n.name,t[58]=B,t[59]=U,t[60]=F,t[61]=I,t[62]=L,t[63]=R,t[64]=z,t[65]=W):W=t[65],A=(0,$.jsxs)($.Fragment,{children:[W,l&&(0,$.jsxs)($.Fragment,{children:[x&&k.length===0&&(0,$.jsx)(Ke,{error:x,style:Wt(1),className:`py-1 text-xs h-auto overflow-auto max-h-32 items-start`,showIcon:!1}),!x&&P&&(0,$.jsx)(`div`,{className:`py-1 text-xs text-muted-foreground italic`,style:Wt(1),children:P}),e.map(e=>{let t=Jt(e,k.indexOf(e));return(0,$.jsx)(sn,{rowKey:t,entry:e,namespace:_,protocol:n.protocol,rootPath:n.rootPath,backendType:n.backendType,depth:1,locale:r,searchValue:i,onOpenFile:c},t)}),M&&v.map(e=>{let t=Jt(e,g.indexOf(e));return(0,$.jsx)(sn,{rowKey:`remote-search:${t}`,entry:e,namespace:_,protocol:n.protocol,rootPath:n.rootPath,backendType:n.backendType,depth:1,locale:r,searchValue:i,onOpenFile:c},`remote-search:${t}`)}),S&&!j&&(0,$.jsx)(an,{depth:1,isLoading:w,error:T,onLoadMore:C})]})]}),t[4]=k,t[5]=d,t[6]=x,t[7]=O,t[8]=S,t[9]=l,t[10]=w,t[11]=y,t[12]=C,t[13]=T,t[14]=r,t[15]=n.backendType,t[16]=n.displayName,t[17]=n.name,t[18]=n.protocol,t[19]=n.rootPath,t[20]=_,t[21]=o,t[22]=c,t[23]=h,t[24]=a,t[25]=i,t[26]=A}else A=t[26];return A},ln=()=>{let e=(0,Q.c)(63),{namespaces:t,entriesByPath:n,pageMetadataByPath:r}=b(),{locale:i}=De(),[a,s]=(0,Z.useState)(``),c;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(c={},e[0]=c):c=e[0];let[l,u]=(0,Z.useState)(c),[d,f]=(0,Z.useState)(null),m=y(),h;e[1]===a?h=e[2]:(h=a.trim(),e[1]=a,e[2]=h);let v=!!h,x;e[3]===a?x=e[4]:(x=a.trim(),e[3]=a,e[4]=x);let S=x,C;e[5]!==S||e[6]!==l?(C=e=>{let t=l[e];return t?.query===S?t:Qt(S)},e[5]=S,e[6]=l,e[7]=C):C=e[7];let w=C,T;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(T=(e,t)=>{u(n=>({...n,[e]:t}))},e[8]=T):T=e[8];let E=T,D;e[9]!==S||e[10]!==n||e[11]!==r||e[12]!==w?(D=e=>{if(!S)return!1;let t=e.name??e.displayName,i=nn(S);if(i===``||!$t(w(t))||Xt(n.get(p(t,``))??e.storageEntries,{namespace:t,searchValue:S,entriesByPath:n}).length>0)return!1;let a=p(t,i);return Xt(n.get(a)??[],{namespace:t,searchValue:S,entriesByPath:n}).length>0?!1:en(a,n,r)},e[9]=S,e[10]=n,e[11]=r,e[12]=w,e[13]=D):D=e[13];let O=D,k;e[14]!==O||e[15]!==S||e[16]!==n||e[17]!==m||e[18]!==r?(k=async e=>{if(!O(e))return;let t=S,i=e.name??e.displayName,a=nn(t),o=p(i,a),s=n.get(o),c=r.get(o)?.nextPageToken??null,l=s!==void 0;E(i,{query:t,status:`searching`});try{for(let e=0;e<Zt;e++){let e=!l||c!==null,n=[];if(e){let e=await m({namespace:i,prefix:a,pageToken:c,append:l});n=e.entries,c=e.next_page_token??null,l=!0}if((e?n:s??[]).some(e=>rn(e,t))){E(i,{query:t,status:`found`});return}if(c===null){E(i,{query:t,status:`exhausted`});return}}E(i,{query:t,status:`capped`})}catch(e){let n=e;E(i,{query:t,status:`error`,error:n instanceof Error?n:Error(String(n))})}},e[14]=O,e[15]=S,e[16]=n,e[17]=m,e[18]=r,e[19]=k):k=e[19];let A=k,j;e[20]!==O||e[21]!==A||e[22]!==t?(j=()=>{let e=t.filter(O);for(let t of e)A(t)},e[20]=O,e[21]=A,e[22]=t,e[23]=j):j=e[23];let N=j;if(t.length===0){let t;return e[24]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsx)(mt,{title:`No storage connected`,description:(0,$.jsxs)(`span`,{children:[`Create an obstore or fsspec connection in your notebook. See the`,` `,(0,$.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,$.jsx)(vt,{group:`storage`,label:`Add remote storage`,variant:`outline`,size:`sm`}),icon:(0,$.jsx)(re,{className:`h-8 w-8`})}),e[24]=t):t=e[24],t}let P;e[25]===d?P=e[26]:(P=d&&(0,$.jsx)(Ht,{entry:d.entry,namespace:d.namespace,protocol:d.protocol,backendType:d.backendType,onBack:()=>f(null)}),e[25]=d,e[26]=P);let F=d&&`hidden`,I;e[27]===F?I=e[28]:(I=M(`border-b bg-background rounded-none h-full pb-10 overflow-auto outline-hidden scrollbar-thin`,F),e[27]=F,e[28]=I);let L;e[29]!==O||e[30]!==N||e[31]!==t?(L=e=>{e.key===`Enter`&&t.some(O)&&(e.preventDefault(),N())},e[29]=O,e[30]=N,e[31]=t,e[32]=L):L=e[32];let R;e[33]!==a||e[34]!==L?(R=(0,$.jsx)(_,{placeholder:`Search entries...`,className:`h-6 m-1`,value:a,onValueChange:s,onKeyDown:L,rootClassName:`flex-1 border-b-0`}),e[33]=a,e[34]=L,e[35]=R):R=e[35];let z;e[36]===v?z=e[37]:(z=v&&(0,$.jsx)(H,{variant:`text`,size:`xs`,className:`float-right border-none px-2 m-0 h-full`,onClick:()=>s(``),children:(0,$.jsx)(te,{className:`h-4 w-4`})}),e[36]=v,e[37]=z);let B,U;e[38]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,$.jsx)(V,{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,$.jsx)(J,{className:`h-3.5 w-3.5 shrink-0 cursor-help text-muted-foreground hover:text-foreground mr-2`})}),U=(0,$.jsx)(vt,{group:`storage`,label:`Add remote storage`,compact:!0,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`}),e[38]=B,e[39]=U):(B=e[38],U=e[39]);let W;e[40]!==R||e[41]!==z?(W=(0,$.jsxs)(`div`,{className:`flex items-center w-full border-b`,children:[R,z,B,U]}),e[40]=R,e[41]=z,e[42]=W):W=e[42];let G;if(e[43]!==A||e[44]!==i||e[45]!==t||e[46]!==w||e[47]!==a){let n;e[49]!==A||e[50]!==i||e[51]!==w||e[52]!==a?(n=e=>{let t=e.name??e.displayName;return(0,$.jsx)(cn,{namespace:e,locale:i,searchValue:a,remoteSearch:w(t),onContinueRemoteSearch:()=>void A(e),onOpenFile:f},t)},e[49]=A,e[50]=i,e[51]=w,e[52]=a,e[53]=n):n=e[53],G=t.map(n),e[43]=A,e[44]=i,e[45]=t,e[46]=w,e[47]=a,e[48]=G}else G=e[48];let K;e[54]===G?K=e[55]:(K=(0,$.jsx)(o,{className:`flex flex-col`,children:G}),e[54]=G,e[55]=K);let ee;e[56]!==I||e[57]!==W||e[58]!==K?(ee=(0,$.jsxs)(g,{className:I,shouldFilter:!1,children:[W,K]}),e[56]=I,e[57]=W,e[58]=K,e[59]=ee):ee=e[59];let ne;return e[60]!==ee||e[61]!==P?(ne=(0,$.jsxs)(`div`,{className:`h-full flex flex-col`,children:[P,ee]}),e[60]=ee,e[61]=P,e[62]=ne):ne=e[62],ne};function un(e){return e.stopPropagation()}function dn(e){return e.stopPropagation()}function fn(e){return e.preventDefault()}var pn=(0,Z.createContext)(null);function mn(){return(0,Z.useContext)(pn)??void 0}var hn=e=>{let t=(0,Q.c)(3),{children:n}=e,r=he(),i;return t[0]!==n||t[1]!==r?(i=(0,$.jsx)(pn.Provider,{value:r,children:n}),t[0]=n,t[1]=r,t[2]=i):i=t[2],i},gn=e=>{let t=(0,Q.c)(5),{children:n}=e,[r,i]=(0,Z.useState)(null),a;t[0]!==n||t[1]!==r?(a=r&&(0,$.jsx)(X,{backend:ue,options:{rootElement:r},children:(0,$.jsx)(hn,{children:n})}),t[0]=n,t[1]=r,t[2]=a):a=t[2];let o;return t[3]===a?o=t[4]:(o=(0,$.jsx)(`div`,{ref:i,className:`contents`,children:a}),t[3]=a,t[4]=o),o},_n=e(C(),1),vn=200;function yn({query:e,tree:t,showHiddenFiles:n}){let{sendSearchFiles:r}=Te(),i=Oe(e,300),a=(0,Z.useRef)(Promise.resolve()),[o,s]=(0,Z.useState)(0),c=(0,Z.useCallback)(()=>s(e=>e+1),[]),[l,u]=(0,Z.useState)({status:`idle`});return(0,Z.useEffect)(()=>{let o=!1;if(!e||e!==i)return;u({status:`loading`,query:e});let s=a.current.then(async()=>{let i=new Map,a=!1,s=0,c=t.getRoots();for(let t of c){if(o)return;try{let o=await r({query:e,path:t.path,includeFiles:!0,includeDirectories:!0,includeHidden:n,depth:20,limit:vn});a||=o.files.length>=vn;for(let e of o.files){let n=i.get(e.path);n&&(!t.isPrimary||n.isPrimaryRoot)||i.set(e.path,{...e,id:pe(t.path,e.path),children:[],isRoot:!1,rootPath:t.path,isPrimaryRoot:t.isPrimary})}}catch{s+=1}}if(!o){if(c.length>0&&s===c.length){u({status:`error`,query:e,error:Error(`Could not search any root`)});return}let t=t=>{let n=t.name.toLowerCase(),r=e.toLowerCase();return n===r?0:n.startsWith(r)?1:2},n=[...i.values()].toSorted((e,n)=>t(e)-t(n)||e.name.localeCompare(n.name));u({status:`success`,isPartial:s>0,query:e,files:n.slice(0,vn),hasMore:a||n.length>vn})}});return a.current=s.catch(t=>{o||u({status:`error`,query:e,error:t})}),()=>{o=!0}},[e,i,t,n,o,r]),e?e!==i||l.status===`idle`||l.query!==e?{state:{status:`loading`,query:e},refetch:c}:{state:l,refetch:c}:{state:{status:`idle`},refetch:c}}function bn(e,t){let n=(0,Q.c)(7),r=e.tree,i=(0,Z.useRef)(null),a,o;n[0]!==t||n[1]!==e.data.isDirectory||n[2]!==e.id||n[3]!==e.isOpen||n[4]!==r?(a=()=>{if(!t){i.current=null;return}if(!e.data.isDirectory||e.isOpen||i.current===e.id)return;let n=window.setTimeout(()=>{i.current=e.id,r.open(e.id)},600);return()=>window.clearTimeout(n)},o=[t,e.data.isDirectory,e.isOpen,e.id,r],n[0]=t,n[1]=e.data.isDirectory,n[2]=e.id,n[3]=e.isOpen,n[4]=r,n[5]=a,n[6]=o):(a=n[5],o=n[6]),(0,Z.useEffect)(a,o)}async function xn(e,t){if(!j()){let n=A().formatNavigableHttpURL(`api/files/download`,new URLSearchParams({path:e}));Me(n.toString(),t);return}let n=await Ee().sendFileDetails({path:e});if(n.isBase64&&n.contents){let e=et(Je(n.contents,n.mimeType||`application/octet-stream`));pt(e,t)}else pt(new Blob([n.contents||``],{type:n.mimeType||`application/octet-stream`}),t)}var Sn=e=>{let t=(0,Q.c)(21),{file:n,mimeType:r,message:i,onDownload:a}=e,{locale:o}=De(),s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,$.jsx)(`span`,{className:`text-muted-foreground font-medium`,children:`Path`}),t[0]=s):s=t[0];let c;t[1]===n.path?c=t[2]:(c=(0,$.jsx)(`span`,{className:`font-mono text-xs break-all`,children:n.path}),t[1]=n.path,t[2]=c);let l;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,$.jsx)(`span`,{className:`text-muted-foreground font-medium`,children:`Type`}),t[3]=l):l=t[3];let u;t[4]===r?u=t[5]:(u=(0,$.jsx)(`span`,{children:r}),t[4]=r,t[5]=u);let d;t[6]!==n.size||t[7]!==o?(d=n.size!=null&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{className:`text-muted-foreground font-medium`,children:`Size`}),(0,$.jsx)(`span`,{children:ie(n.size,o)})]}),t[6]=n.size,t[7]=o,t[8]=d):d=t[8];let f;t[9]!==c||t[10]!==u||t[11]!==d?(f=(0,$.jsxs)(`div`,{className:`grid grid-cols-[auto_1fr] gap-x-4 gap-y-2`,children:[s,c,l,u,d]}),t[9]=c,t[10]=u,t[11]=d,t[12]=f):f=t[12];let p;t[13]===i?p=t[14]:(p=(0,$.jsx)(`div`,{className:`mt-4 text-muted-foreground italic`,children:i}),t[13]=i,t[14]=p);let m;t[15]===a?m=t[16]:(m=a&&(0,$.jsxs)(H,{variant:`outline`,size:`sm`,className:`mt-4`,onClick:a,children:[(0,$.jsx)(nt,{className:`h-3.5 w-3.5 mr-2`}),`Download`]}),t[15]=a,t[16]=m);let h;return t[17]!==f||t[18]!==p||t[19]!==m?(h=(0,$.jsxs)(`div`,{className:`p-4 text-sm`,children:[f,p,m]}),t[17]=f,t[18]=p,t[19]=m,t[20]=h):h=t[20],h};function Cn(e,t){let n=e||`text/plain`;return He(n)?`media`:t?`unsupported`:n===`text/csv`?`csv`:n.startsWith(`text/`)||n!=="default"&&n in Ie||e==null?`text`:`unsupported`}var wn=10485760,Tn=new Map,En=({file:e,onOpenNotebook:t})=>{let{sendFileDetails:n,sendUpdateFile:i}=Te(),a=r(T),o=r(E),s=r(S),[c,l]=(0,Z.useState)(``),{data:u,isPending:d,error:f,setData:p,refetch:m}=ke(async()=>{let t=await n({path:e.path,maxBytes:wn}),r=Cn(t.mimeType,t.isBase64);if(!t.isTooLarge&&r===`text`){let n=t.contents||``;l(Tn.get(e.path)??n)}return t},[e.path]),h=async()=>{c!==u?.contents&&await i({path:e.path,contents:c}).then(e=>{e.success&&(p(e=>({...e,contents:c})),l(c))})},g=(0,Z.useRef)(c);if(g.current=c,(0,Z.useEffect)(()=>()=>{if(u?.contents==null||u.isTooLarge||Cn(u.mimeType,u.isBase64)!==`text`)return;let t=g.current;t===u.contents?Tn.delete(e.path):Tn.set(e.path,t)},[e.path,u?.contents,u?.isTooLarge,u?.mimeType,u?.isBase64]),f)return(0,$.jsx)(Re,{error:f});if(d||!u)return null;let _=u.mimeType||`text/plain`,v=Cn(u.mimeType,u.isBase64),y=v===`text`,b=v===`csv`,x=v===`media`,C=s&&u.file.isMarimoFile&&(e.path===s||e.path.endsWith(`/${s}`)),w=async()=>{await xn(e.path,u.file.name)},D=Ce.of([{key:a.getHotkey(`global.save`).key,stopPropagation:!0,run:()=>c!==u.contents&&(h(),!0)}]),O=(0,$.jsx)(Nt,{filename:u.file.name,onRefresh:m,onDownload:o?void 0:w,actions:(0,$.jsxs)($.Fragment,{children:[u.file.isMarimoFile&&t&&!j()&&(0,$.jsx)(V,{content:`Open notebook`,children:(0,$.jsx)(H,{variant:`text`,size:`xs`,"aria-label":`Open notebook`,onClick:e=>t(e),children:(0,$.jsx)(Pe,{className:`h-3.5 w-3.5`})})}),y&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(V,{content:`Copy contents to clipboard`,children:(0,$.jsx)(H,{variant:`text`,size:`xs`,onClick:async()=>{await be(c)},children:(0,$.jsx)(oe,{className:`h-3.5 w-3.5`})})}),(0,$.jsx)(V,{content:Fe(`global.save`),children:(0,$.jsx)(H,{variant:`text`,size:`xs`,onClick:h,disabled:c===u.contents,children:(0,$.jsx)(ae,{className:`h-3.5 w-3.5`})})})]})]})});if(u.isTooLarge||v===`unsupported`)return(0,$.jsxs)($.Fragment,{children:[O,(0,$.jsx)(Sn,{file:u.file,mimeType:_,message:u.isTooLarge?`File is too large to preview.`:`This file type cannot be previewed.`,onDownload:o?void 0:w})]});let k=y&&C&&(0,$.jsxs)(ze,{variant:`warning`,className:`rounded-none`,children:[(0,$.jsx)(ut,{className:`h-4 w-4`}),(0,$.jsx)(Ve,{children:`Editing the notebook file directly while running in marimo's editor may cause unintended changes. Please use with caution.`})]}),A=x&&u.contents?Be({contents:u.contents,mimeType:_,isBase64:u.isBase64??!1}):void 0;return(0,$.jsxs)($.Fragment,{children:[O,k,(0,$.jsx)(Ue,{mimeType:_,filename:u.file.name,contents:y?c:b?u.contents??void 0:void 0,mediaSource:A,readOnly:!y,onChange:y?l:void 0,extensions:y?[D]:[]})]})};function Dn({node:e,attrs:t,innerRef:n,children:r,ariaLabel:i=e.data.name}){return(0,$.jsx)(`div`,{...t,ref:n,"aria-label":i,"aria-expanded":e.isInternal?e.isOpen:void 0,onFocus:n=>{n.stopPropagation(),t.onFocus?.(n),n.target===n.currentTarget&&!e.isFocused&&e.focus()},onClick:n=>{t.onClick?t.onClick(n):e.select(),n.defaultPrevented||n.currentTarget.focus({preventScroll:!0})},children:r})}function On(e){let t=(0,Q.c)(25),{treeRef:n,search:r,height:i,onReveal:a}=e,o=mn(),{state:s,refetch:c}=r;if(s.status===`idle`)return null;if(s.status===`error`){let e;return t[0]===c?e=t[1]:(e=(0,$.jsxs)(`div`,{role:`alert`,className:`px-3 py-2 text-sm`,children:[`Could not search files.`,` `,(0,$.jsx)(`button`,{type:`button`,className:`underline`,onClick:c,children:`Retry`})]}),t[0]=c,t[1]=e),e}if(s.status===`loading`){let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsxs)(`div`,{role:`status`,className:`flex items-center gap-2 px-3 py-2 text-sm text-muted-foreground`,children:[(0,$.jsx)(Xe,{size:`small`}),`Searching files…`]}),t[2]=e):e=t[2],e}let{files:l,hasMore:u,isPartial:d}=s,f=l.length,p;t[3]===n?p=t[4]:(p=e=>{e.key===`Enter`&&e.target instanceof HTMLElement&&e.target.closest(`[role="tree"]`)&&(e.preventDefault(),e.stopPropagation(),n.current?.focusedNode?.activate())},t[3]=n,t[4]=p);let m;t[5]!==d||t[6]!==c?(m=d&&(0,$.jsxs)(`div`,{role:`alert`,className:`px-3 py-2 text-xs text-muted-foreground`,children:[`Some locations could not be searched.`,` `,(0,$.jsx)(`button`,{type:`button`,className:`underline`,onClick:c,children:`Retry`})]}),t[5]=d,t[6]=c,t[7]=m):m=t[7];let h=l.length?`${f} ${f===1?`match`:`matches`}`:`No matching files or folders.`,g=u&&` · Refine your search for more results.`,_;t[8]!==h||t[9]!==g?(_=(0,$.jsxs)(`p`,{role:`status`,className:`px-3 py-2 text-xs text-muted-foreground`,children:[h,g]}),t[8]=h,t[9]=g,t[10]=_):_=t[10];let v=Math.max(0,i-48-(d?48:0)),y;t[11]===a?y=t[12]:(y=e=>{a(e.data)},t[11]=a,t[12]=y);let b;t[13]!==o||t[14]!==l||t[15]!==v||t[16]!==y||t[17]!==n?(b=(0,$.jsx)(ve,{ref:n,data:l,childrenAccessor:kn,width:`100%`,height:v,rowHeight:48,overscanCount:8,dndManager:o,disableDrag:!0,disableDrop:!0,disableEdit:!0,disableMultiSelection:!0,selectionFollowsFocus:!0,rowClassName:`outline-none focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-ring`,renderRow:An,onActivate:y,children:jn}),t[13]=o,t[14]=l,t[15]=v,t[16]=y,t[17]=n,t[18]=b):b=t[18];let x;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,$.jsx)(`p`,{className:`px-3 text-xs text-muted-foreground`,children:`Enter or double-click to open · Esc to clear`}),t[19]=x):x=t[19];let S;return t[20]!==p||t[21]!==m||t[22]!==_||t[23]!==b?(S=(0,$.jsxs)(`div`,{onKeyDownCapture:p,children:[m,_,b,x]}),t[20]=p,t[21]=m,t[22]=_,t[23]=b,t[24]=S):S=t[24],S}function kn(){return null}function An(e){let t=(0,Q.c)(2),n;return t[0]===e?n=t[1]:(n=(0,$.jsx)(Dn,{...e,ariaLabel:e.node.data.path}),t[0]=e,t[1]=n),n}function jn(e){let t=(0,Q.c)(19),{node:n}=e,r=n.data.isDirectory?Ge:Ne,i=n.isSelected&&`bg-accent/60`,a;t[0]===i?a=t[1]:(a=M(`flex h-full items-start gap-2.5 px-3 py-1 cursor-pointer hover:bg-accent/50`,i),t[0]=i,t[1]=a);let o;t[2]===n?o=t[3]:(o=e=>{e.stopPropagation(),n.activate()},t[2]=n,t[3]=o);let s;t[4]===r?s=t[5]:(s=(0,$.jsx)(r,{className:`mt-0.5 h-4 w-4 shrink-0 text-muted-foreground`}),t[4]=r,t[5]=s);let c;t[6]===n.data.name?c=t[7]:(c=(0,$.jsx)(`div`,{className:`truncate text-sm leading-5`,children:n.data.name}),t[6]=n.data.name,t[7]=c);let l;t[8]===n.data.path?l=t[9]:(l=(0,$.jsx)(`div`,{className:`truncate text-xs leading-4 text-muted-foreground`,children:n.data.path}),t[8]=n.data.path,t[9]=l);let u;t[10]!==c||t[11]!==l?(u=(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[c,l]}),t[10]=c,t[11]=l,t[12]=u):u=t[12];let d;return t[13]!==n.data.path||t[14]!==a||t[15]!==o||t[16]!==s||t[17]!==u?(d=(0,$.jsxs)(`div`,{className:a,onDoubleClick:o,title:n.data.path,children:[s,u]}),t[13]=n.data.path,t[14]=a,t[15]=o,t[16]=s,t[17]=u,t[18]=d):d=t[18],d}function Mn(e){let t=(0,Q.c)(2),n;return t[0]===e?n=t[1]:(n=e.node.data.isDirectory?(0,$.jsx)(Nn,{...e}):(0,$.jsx)(Dn,{...e}),t[0]=e,t[1]=n),n}function Nn(e){let t=(0,Q.c)(15),{node:n}=e,r=n.tree,i=(0,Z.useRef)(null),a;t[0]!==n||t[1]!==r?(a=()=>({accept:`NODE`,canDrop:()=>r.canDrop(),collect:Pn,hover:()=>{(r.state.dnd.parentId!==n.id||r.state.dnd.index!==null)&&r.dispatch({type:`DND_HOVERING`,parentId:n.id,index:null}),r.canDrop()||r.hideCursor()},drop:()=>{r.canDrop()&&(r.props.onMove?.({dragIds:r.state.dnd.dragIds,dragNodes:r.dragNodes,parentId:n.id,parentNode:n,index:0}),r.open(n.id))}}),t[0]=n,t[1]=r,t[2]=a):a=t[2];let o;t[3]!==n.id||t[4]!==r?(o=[r,n.id],t[3]=n.id,t[4]=r,t[5]=o):o=t[5];let[s,c]=de(a,o),{isHovering:l}=s;bn(n,l);let u,d;t[6]!==n.isEditing||t[7]!==n.isFocused?(u=()=>{n.isFocused&&!n.isEditing&&i.current?.focus({preventScroll:!0})},d=[n.isFocused,n.isEditing],t[6]=n.isEditing,t[7]=n.isFocused,t[8]=u,t[9]=d):(u=t[8],d=t[9]),(0,Z.useEffect)(u,d);let f;t[10]===c?f=t[11]:(f=e=>{i.current=e,c(e)},t[10]=c,t[11]=f);let p;return t[12]!==e||t[13]!==f?(p=(0,$.jsx)(Dn,{...e,innerRef:f}),t[12]=e,t[13]=f,t[14]=p):p=t[14],p}function Pn(e){return{isHovering:e.isOver({shallow:!0})&&e.canDrop()}}var Fn=n(e=>{let t=e(we);return O(t,`no requestClientAtom set`),new le({getRoots:t.getFileRoots,listFiles:t.sendListFiles,createFileOrFolder:t.sendCreateFileOrFolder,deleteFileOrFolder:t.sendDeleteFileOrFolder,copyFileOrFolder:t.sendCopyFileOrFolder,renameFileOrFolder:t.sendRenameFileOrFolder})}),In=n({}),Ln=` `,Rn={directory:e=>`os.listdir("${e}")`,python:e=>`with open("${e}", "r") as _f:\n${Ln}...\n`,json:e=>`with open("${e}", "r") as _f:\n${Ln}_data = json.load(_f)\n`,code:e=>`with open("${e}", "r") as _f:\n${Ln}...\n`,text:e=>`with open("${e}", "r") as _f:\n${Ln}...\n`,image:e=>`mo.image("${e}")`,audio:e=>`mo.audio("${e}")`,video:e=>`mo.video("${e}")`,pdf:e=>`with open("${e}", "rb") as _f:\n${Ln}...\n`,zip:e=>`with open("${e}", "rb") as _f:\n${Ln}...\n`,data:e=>`with open("${e}", "r") as _f:\n${Ln}...\n`,unknown:e=>`with open("${e}", "r") as _f:\n${Ln}...\n`},zn=104857600,Bn=5,Vn=`data-file-explorer-directory-path`;function Hn(e){let{destinationPath:t,getDestinationLabel:n=e=>e,onUploadStart:r,refreshDestination:i,...a}=e,{sendCreateFileOrFolder:o}=Te();return rt({multiple:!0,maxSize:zn,...a,onError:e=>{D.error(e),xe({title:`File upload failed`,description:e.message,variant:`danger`})},onDropRejected:e=>{xe({title:`File upload failed`,description:(0,$.jsx)(`div`,{className:`flex flex-col gap-1`,children:e.map(e=>(0,$.jsxs)(`div`,{children:[e.file.name,` (`,e.errors.map(e=>e.message).join(`, `),`)`]},e.file.name))}),variant:`danger`})},onDrop:async(e,a,s)=>{if(e.length===0)return;let c=typeof t==`function`?t(s):t,l=n(c),u=e.length===1?`Uploading file to ${l}...`:`Uploading files to ${l}...`;r?.(c,e);let d;try{d=await Le(u,async t=>(t.addTotal(e.length),Un({files:e,destinationPath:c,createFile:o,onFileProcessed:()=>t.increment(1)})))}catch{await i(c);return}await i(c),Kn(d,l)}})}async function Un({files:e,destinationPath:t,createFile:n,onFileProcessed:r}){let i=await Ye(e,Bn,async e=>{try{return{file:e,response:await n({path:Wn({destinationPath:t,filePath:Jn(qn(e))}),type:`file`,name:e.name,file:e})}}catch(t){return{file:e,response:{success:!1,message:Ae(t)}}}finally{r?.()}});return{successful:i.filter(({response:e})=>e.success),failed:i.filter(({response:e})=>!e.success)}}function Wn({destinationPath:e,filePath:t}){if(!t)return e;if(W.isAbsolute(t))throw Error(`Upload path must be relative: ${t}`);let n=t.split(/[\\/]+/).slice(0,-1).filter(Boolean);if(n.includes(`..`))throw Error(`Upload path cannot contain parent traversal: ${t}`);let r=n.filter(e=>e!==`.`);if(r.length===0)return e;let i=G.guessDeliminator(e),a=r.join(i.deliminator);return i.join(e,a)}function Gn(e,t){return e instanceof Element&&e.closest(`[${Vn}]`)?.getAttribute(Vn)||t}function Kn(e,t){let n=e.successful.length+e.failed.length;if(e.failed.length>0){let r;r=e.successful.length===0?n===1?`File upload failed`:`Files failed to upload`:`${e.successful.length} of ${n} files uploaded`,xe({title:r,description:(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,$.jsxs)(`div`,{children:[`Destination: `,t,`.`]}),e.failed.map(({file:e,response:t},n)=>(0,$.jsxs)(`div`,{children:[e.name,`:`,` `,t.message||`The server rejected the upload.`]},`${e.name}-${n}`))]}),variant:`danger`});return}let r=e.successful.filter(({file:e,response:t})=>t.info?.name&&t.info.name!==e.name);xe({title:n===1?`File uploaded`:`${n} files uploaded`,description:r.length===0?`Uploaded to ${t}.`:(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,$.jsxs)(`div`,{children:[`Uploaded to `,t,`.`]}),r.map(({file:e,response:t},n)=>(0,$.jsxs)(`div`,{children:[e.name,` was saved as `,t.info?.name,`.`]},`${e.name}-${n}`))]})})}function qn(e){if(e.webkitRelativePath)return e.webkitRelativePath;if(`path`in e&&typeof e.path==`string`)return e.path;if(`relativePath`in e&&typeof e.relativePath==`string`)return e.relativePath}function Jn(e){if(e)return e.replace(/^\/+/,``)}var Yn=k(`marimo:showHiddenFiles`,!0,u,{getOnInit:!0}),Xn=Z.createContext(null),Zn=e=>{let n=(0,Q.c)(161),{height:r,externalDropDestinationPath:a}=e,o=a===void 0?null:a,s=(0,Z.useRef)(null),c=(0,Z.useRef)(null),l=(0,Z.useRef)(null),[u,d]=(0,Z.useState)(``),[f,p]=(0,Z.useState)(null),m=mn(),[h]=t(Fn),g;n[0]===Symbol.for(`react.memo_cache_sentinel`)?(g=[],n[0]=g):g=n[0];let[_,v]=(0,Z.useState)(g),[y,b]=(0,Z.useState)(null),[x,S]=(0,Z.useState)(null),[C,w]=t(Yn),T;n[1]===u?T=n[2]:(T=u.trim(),n[1]=u,n[2]=T);let E;n[3]!==C||n[4]!==T||n[5]!==h?(E={query:T,tree:h,showHiddenFiles:C},n[3]=C,n[4]=T,n[5]=h,n[6]=E):E=n[6];let D=yn(E),[O,k]=t(In),A;n[7]===h?A=n[8]:(A=e=>h.refreshPath(e),n[7]=h,n[8]=A);let j=i(A),M=(0,Z.useRef)(``),N;n[9]===Symbol.for(`react.memo_cache_sentinel`)?(N=()=>M.current,n[9]=N):N=n[9];let P;n[10]===h?P=n[11]:(P=e=>ir(h,e),n[10]=h,n[11]=P);let I;n[12]!==j||n[13]!==P?(I={noClick:!0,noDrag:!0,noKeyboard:!0,destinationPath:N,getDestinationLabel:P,refreshDestination:j},n[12]=j,n[13]=P,n[14]=I):I=n[14];let{getInputProps:L,open:R}=Hn(I),z;n[15]===R?z=n[16]:(z=e=>{M.current=e,R()},n[15]=R,n[16]=z);let B=i(z),{openPrompt:V,openConfirm:U}=se(),W;n[17]===h?W=n[18]:(W=()=>h.initialize(v),n[17]=h,n[18]=W);let G;n[19]===Symbol.for(`react.memo_cache_sentinel`)?(G=[],n[19]=G):G=n[19];let{isPending:ee,error:ne}=ke(W,G),re;n[20]!==O||n[21]!==D||n[22]!==h?(re=async()=>{await h.refreshAll(Object.keys(O).filter(e=>O[e])),D.refetch()},n[20]=O,n[21]=D,n[22]=h,n[23]=re):re=n[23];let ie=i(re),q;n[24]!==w||n[25]!==C?(q=()=>{w(!C)},n[24]=w,n[25]=C,n[26]=q):q=n[26];let ae=i(q),J;n[27]!==V||n[28]!==x?.id||n[29]!==h?(J=async()=>{V({title:`Folder name`,onConfirm:async e=>{h.createFolder(e,x?.id??null)}})},n[27]=V,n[28]=x?.id,n[29]=h,n[30]=J):J=n[30];let oe=i(J),Y;n[31]!==V||n[32]!==x?.id||n[33]!==h?(Y=async()=>{V({title:`File name`,onConfirm:async e=>{h.createFile({name:e,parentId:x?.id??null})}})},n[31]=V,n[32]=x?.id,n[33]=h,n[34]=Y):Y=n[34];let ce=i(Y),le;n[35]!==V||n[36]!==x?.id||n[37]!==h?(le=async()=>{V({title:`Notebook name`,onConfirm:async e=>{h.createFile({name:e,parentId:x?.id??null,type:`notebook`})}})},n[35]=V,n[36]=x?.id,n[37]=h,n[38]=le):le=n[38];let ue=i(le),de;n[39]===k?de=n[40]:(de=()=>{s.current?.closeAll(),k({})},n[39]=k,n[40]=de);let fe=i(de),pe;n[41]!==_||n[42]!==C?(pe=ar(_,C),n[41]=_,n[42]=C,n[43]=pe):pe=n[43];let X=pe,me,he;n[44]!==x||n[45]!==X?(me=()=>{x&&!sr(X,x.id)&&S(null)},he=[x,X],n[44]=x,n[45]=X,n[46]=me,n[47]=he):(me=n[46],he=n[47]),Z.useEffect(me,he);let ge;n[48]!==o||n[49]!==B||n[50]!==h?(ge={tree:h,uploadFiles:B,externalDropDestinationPath:o},n[48]=o,n[49]=B,n[50]=h,n[51]=ge):ge=n[51];let _e=ge,be;n[52]!==y||n[53]!==u||n[54]!==f?(be=()=>{if(f&&!y){let e=u.trim()?c.current:s.current;e?.openParents(f),e?.select(f);let t=e?.get(f);t?.data.isDirectory&&t.open(),p(null)}},n[52]=y,n[53]=u,n[54]=f,n[55]=be):be=n[55];let xe;n[56]!==_||n[57]!==y||n[58]!==u||n[59]!==f?(xe=[f,u,y,_],n[56]=_,n[57]=y,n[58]=u,n[59]=f,n[60]=xe):xe=n[60],Z.useEffect(be,xe);let Se;n[61]===h?Se=n[62]:(Se=async e=>{if(!e.isDirectory){b(e);return}await h.reveal(e)&&(d(``),p(e.id))},n[61]=h,n[62]=Se);let Ce=Se,we;n[63]===u?we=n[64]:(we=e=>{if((e.ctrlKey||e.metaKey)&&e.key===`f`){e.preventDefault(),e.stopPropagation(),l.current?.focus(),l.current?.select();return}if(e.key===`Escape`&&u){e.preventDefault(),e.stopPropagation(),d(``),l.current?.focus();return}let t=e.target instanceof Element?e.target.getAttribute(`role`):null;if(u.trim()||t!==`treeitem`&&t!==`tree`)return;let n=s.current?.focusedNode;!n||s.current?.isEditing||(e.key===`Enter`?(e.preventDefault(),e.stopPropagation(),n.data.isDirectory?n.toggle():n.activate()):e.key===`F2`&&!n.data.isRoot?(e.preventDefault(),e.stopPropagation(),n.edit()):(e.key===`Delete`||e.key===`Backspace`)&&(e.preventDefault(),e.stopPropagation(),n.data.isRoot||n.tree.delete(n.id)))},n[63]=u,n[64]=we);let Te=we;if(ee){let e;return n[65]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(Xe,{size:`medium`,centered:!0}),n[65]=e):e=n[65],e}if(ne){let e;return n[66]===ne?e=n[67]:(e=(0,$.jsx)(Re,{error:ne}),n[66]=ne,n[67]=e),e}let Ee;n[68]!==y||n[69]!==h?(Ee=y?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`flex items-center pl-1 pr-3 shrink-0 border-b justify-between`,children:[(0,$.jsx)(H,{autoFocus:!0,"aria-label":`Back to files`,onClick:()=>{p(y.id),b(null)},"data-testid":`file-explorer-back-button`,variant:`text`,size:`xs`,className:`mb-0`,children:(0,$.jsx)(K,{size:16})}),(0,$.jsx)(`span`,{className:`font-bold`,children:y.name})]}),(0,$.jsx)(Z.Suspense,{children:(0,$.jsx)(En,{onOpenNotebook:h.isPrimaryNode(y)?e=>{let t=h.getPrimaryRelativePath(y.path);t!==null&&rr(e,t)}:void 0,file:y})})]}):null,n[68]=y,n[69]=h,n[70]=Ee):Ee=n[70];let De=Ee,Oe=!!y,Ae;n[71]===L?Ae=n[72]:(Ae=L(),n[71]=L,n[72]=Ae);let je;n[73]===Ae?je=n[74]:(je=(0,$.jsx)(`input`,{"data-testid":`file-explorer-upload-input`,...Ae}),n[73]=Ae,n[74]=je);let Me;n[75]!==x?.path||n[76]!==h?(Me=x?.path??h.getPrimaryRootPath(),n[75]=x?.path,n[76]=h,n[77]=Me):Me=n[77];let Ne;n[78]!==x?.path||n[79]!==h?(Ne=x?.path??h.getPrimaryRootPath(),n[78]=x?.path,n[79]=h,n[80]=Ne):Ne=n[80];let Pe;n[81]!==Ne||n[82]!==h?(Pe=ir(h,Ne),n[81]=Ne,n[82]=h,n[83]=Pe):Pe=n[83];let Fe;n[84]!==fe||n[85]!==ce||n[86]!==oe||n[87]!==ue||n[88]!==ae||n[89]!==ie||n[90]!==B||n[91]!==C||n[92]!==Me||n[93]!==Pe?(Fe=(0,$.jsx)($n,{onRefresh:ie,onHidden:ae,showHiddenFiles:C,onCreateFile:ce,onCreateNotebook:ue,onCreateFolder:oe,onCollapseAll:fe,uploadDestinationPath:Me,uploadDestinationLabel:Pe,onUpload:B}),n[84]=fe,n[85]=ce,n[86]=oe,n[87]=ue,n[88]=ae,n[89]=ie,n[90]=B,n[91]=C,n[92]=Me,n[93]=Pe,n[94]=Fe):Fe=n[94];let Ie;n[95]===Symbol.for(`react.memo_cache_sentinel`)?(Ie=e=>d(e.target.value),n[95]=Ie):Ie=n[95];let Le;n[96]===u?Le=n[97]:(Le=e=>{let t=u.trim()?c.current:s.current;e.key===`ArrowDown`?(e.preventDefault(),t?.focus(t.firstNode)):e.key===`Enter`&&u.trim()&&(e.preventDefault(),t?.firstNode?.activate())},n[96]=u,n[97]=Le);let ze;n[98]!==u||n[99]!==Le?(ze=(0,$.jsx)(ye,{ref:l,className:`rounded-none pr-6 focus-visible:outline-1 focus-visible:outline-ring/50`,clearable:!1,"aria-label":`Search files and folders`,placeholder:`Search`,title:`Search names in all configured roots, up to 20 folders deep. Generated directories such as node_modules and .git are excluded.`,value:u,onChange:Ie,onKeyDown:Le}),n[98]=u,n[99]=Le,n[100]=ze):ze=n[100];let Be;n[101]===u?Be=n[102]:(Be=u&&(0,$.jsx)(H,{variant:`text`,size:`icon`,className:`absolute right-3 top-1/2 h-5 w-5 -translate-y-1/2`,"aria-label":`Clear search`,onClick:()=>{d(``),l.current?.focus()},children:(0,$.jsx)(te,{className:`h-3 w-3`})}),n[101]=u,n[102]=Be);let Ve;n[103]!==ze||n[104]!==Be?(Ve=(0,$.jsxs)(`div`,{className:`relative -mt-1`,children:[ze,Be]}),n[103]=ze,n[104]=Be,n[105]=Ve):Ve=n[105];let He;n[106]!==Fe||n[107]!==Ve?(He=(0,$.jsxs)(`div`,{children:[Fe,Ve]}),n[106]=Fe,n[107]=Ve,n[108]=He):He=n[108];let Ue;n[109]===u?Ue=n[110]:(Ue=u.trim(),n[109]=u,n[110]=Ue);let We=!Ue,Ge=Math.max(0,r-63),Ke;n[111]!==Ce||n[112]!==D||n[113]!==Ge?(Ke=(0,$.jsx)(On,{treeRef:c,search:D,height:Ge,onReveal:Ce}),n[111]=Ce,n[112]=D,n[113]=Ge,n[114]=Ke):Ke=n[114];let qe;n[115]!==We||n[116]!==Ke?(qe=(0,$.jsx)(`div`,{hidden:We,children:Ke}),n[115]=We,n[116]=Ke,n[117]=qe):qe=n[117];let Je;n[118]===u?Je=n[119]:(Je=u.trim(),n[118]=u,n[119]=Je);let Ye=!!Je,Ze=Math.max(0,r-63),Qe;n[120]===Symbol.for(`react.memo_cache_sentinel`)?(Qe=e=>(0,$.jsx)(cr,{...e,tree:s.current}),n[120]=Qe):Qe=n[120];let $e;n[121]!==U||n[122]!==h?($e=async e=>{let{ids:t}=e;U({title:`Delete file`,description:`Are you sure you want to delete the selected file or folder?`,confirmAction:(0,$.jsx)(F,{onClick:async()=>{for(let e of t)await h.delete(e)},children:`Delete`})})},n[121]=U,n[122]=h,n[123]=$e):$e=n[123];let et,tt;n[124]===h?(et=n[125],tt=n[126]):(et=async e=>{let{id:t,name:n}=e;await h.rename(t,n)},tt=async e=>{let{dragIds:t,parentId:n}=e;await h.move(t,n)},n[124]=h,n[125]=et,n[126]=tt);let nt,rt;n[127]===Symbol.for(`react.memo_cache_sentinel`)?(nt=e=>{let t=e[0];if(!t){S(null);return}if(t.data.isDirectory){S({id:t.id,path:t.data.path});return}S(null)},rt=e=>{e.data.isDirectory||b(e.data)},n[127]=nt,n[128]=rt):(nt=n[127],rt=n[128]);let it;n[129]!==O||n[130]!==k||n[131]!==h?(it=async e=>{if(!(s.current?.isOpen(e)??!(O[e]??!1))){k(t=>({...t,[e]:!1}));return}let t=await h.expand(e);t||s.current?.close(e);let n=t&&(s.current?.isOpen(e)??!1);k(t=>({...t,[e]:n}))},n[129]=O,n[130]=k,n[131]=h,n[132]=it):it=n[132];let at;n[133]!==m||n[134]!==O||n[135]!==Ze||n[136]!==$e||n[137]!==et||n[138]!==tt||n[139]!==it||n[140]!==X?(at=(0,$.jsx)(ve,{width:`100%`,ref:s,height:Ze,className:`h-full`,data:X,childrenAccessor:lr,selectionFollowsFocus:!0,rowClassName:`outline-none focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-ring`,renderRow:Mn,renderDragPreview:Qe,disableEdit:ur,initialOpenState:O,openByDefault:!1,dndManager:m,renderCursor:dr,disableDrag:fr,disableDrop:mr,onDelete:$e,onRename:et,onMove:tt,onSelect:nt,onActivate:rt,onToggle:it,padding:15,rowHeight:30,indent:Qn,overscanCount:8,disableMultiSelection:!0,children:tr}),n[133]=m,n[134]=O,n[135]=Ze,n[136]=$e,n[137]=et,n[138]=tt,n[139]=it,n[140]=X,n[141]=at):at=n[141];let ot;n[142]!==_e||n[143]!==at?(ot=(0,$.jsx)(Xn,{value:_e,children:at}),n[142]=_e,n[143]=at,n[144]=ot):ot=n[144];let st;n[145]===X.length?st=n[146]:(st=!X.length&&(0,$.jsx)(`p`,{role:`status`,className:`absolute top-2 left-3 text-sm text-muted-foreground`,children:`No visible files.`}),n[145]=X.length,n[146]=st);let ct;n[147]!==Ye||n[148]!==ot||n[149]!==st?(ct=(0,$.jsxs)(`div`,{hidden:Ye,className:`relative`,children:[ot,st]}),n[147]=Ye,n[148]=ot,n[149]=st,n[150]=ct):ct=n[150];let lt;n[151]!==Te||n[152]!==Oe||n[153]!==je||n[154]!==He||n[155]!==qe||n[156]!==ct?(lt=(0,$.jsxs)(`div`,{hidden:Oe,onKeyDownCapture:Te,children:[je,He,qe,ct]}),n[151]=Te,n[152]=Oe,n[153]=je,n[154]=He,n[155]=qe,n[156]=ct,n[157]=lt):lt=n[157];let ut;return n[158]!==De||n[159]!==lt?(ut=(0,$.jsxs)($.Fragment,{children:[De,lt]}),n[158]=De,n[159]=lt,n[160]=ut):ut=n[160],ut},Qn=15,$n=e=>{let t=(0,Q.c)(35),{onRefresh:n,onHidden:r,showHiddenFiles:i,onCreateFile:a,onCreateNotebook:o,onCreateFolder:s,onCollapseAll:c,uploadDestinationPath:l,uploadDestinationLabel:u,onUpload:d}=e,f=`Upload files to ${u}`,p;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,$.jsx)(St,{size:16}),t[0]=p):p=t[0];let m;t[1]===o?m=t[2]:(m=(0,$.jsx)(V,{content:`Add notebook`,children:(0,$.jsx)(H,{"data-testid":`file-explorer-add-notebook-button`,onClick:o,variant:`text`,size:`xs`,children:p})}),t[1]=o,t[2]=m);let h;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,$.jsx)(Et,{size:16}),t[3]=h):h=t[3];let g;t[4]===a?g=t[5]:(g=(0,$.jsx)(V,{content:`Add file`,children:(0,$.jsx)(H,{"data-testid":`file-explorer-add-file-button`,onClick:a,variant:`text`,size:`xs`,children:h})}),t[4]=a,t[5]=g);let _;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,$.jsx)(Ot,{size:16}),t[6]=_):_=t[6];let v;t[7]===s?v=t[8]:(v=(0,$.jsx)(V,{content:`Add folder`,children:(0,$.jsx)(H,{"data-testid":`file-explorer-add-folder-button`,onClick:s,variant:`text`,size:`xs`,children:_})}),t[7]=s,t[8]=v);let y;t[9]!==d||t[10]!==l?(y=()=>d(l),t[9]=d,t[10]=l,t[11]=y):y=t[11];let b;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,$.jsx)(ot,{size:16}),t[12]=b):b=t[12];let x;t[13]!==y||t[14]!==f?(x=(0,$.jsx)(H,{"data-testid":`file-explorer-upload-button`,"aria-label":f,onClick:y,variant:`text`,size:`xs`,children:b}),t[13]=y,t[14]=f,t[15]=x):x=t[15];let S;t[16]!==x||t[17]!==f?(S=(0,$.jsx)(V,{content:f,children:x}),t[16]=x,t[17]=f,t[18]=S):S=t[18];let C;t[19]===n?C=t[20]:(C=(0,$.jsx)(at,{"data-testid":`file-explorer-refresh-button`,onClick:n}),t[19]=n,t[20]=C);let w;t[21]!==r||t[22]!==i?(w=(0,$.jsx)(tt,{"data-testid":`file-explorer-hidden-files-button`,isVisible:i,onToggle:r,showTooltip:`Show hidden files`,hideTooltip:`Hide hidden files`}),t[21]=r,t[22]=i,t[23]=w):w=t[23];let T;t[24]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,$.jsx)(Tt,{size:16}),t[24]=T):T=t[24];let E;t[25]===c?E=t[26]:(E=(0,$.jsx)(V,{content:`Collapse all folders`,children:(0,$.jsx)(H,{"data-testid":`file-explorer-collapse-button`,onClick:c,variant:`text`,size:`xs`,children:T})}),t[25]=c,t[26]=E);let D;return t[27]!==S||t[28]!==C||t[29]!==w||t[30]!==E||t[31]!==m||t[32]!==g||t[33]!==v?(D=(0,$.jsxs)(`div`,{className:`flex items-center justify-end px-2 shrink-0`,children:[m,g,v,S,C,w,E]}),t[27]=S,t[28]=C,t[29]=w,t[30]=E,t[31]=m,t[32]=g,t[33]=v,t[34]=D):D=t[34],D},er=e=>{let t=(0,Q.c)(11),{node:n,onOpenMarimoFile:r}=e,i;t[0]!==n.data.isMarimoFile||t[1]!==n.data.isPrimaryRoot||t[2]!==r?(i=n.data.isMarimoFile&&n.data.isPrimaryRoot&&!j()&&(0,$.jsxs)(`span`,{"data-testid":`file-explorer-open-marimo-button`,className:`shrink-0 ml-2 text-sm hidden group-hover:inline hover:underline`,onClick:r,children:[`open `,(0,$.jsx)(Pe,{className:`inline ml-1`,size:12})]}),t[0]=n.data.isMarimoFile,t[1]=n.data.isPrimaryRoot,t[2]=r,t[3]=i):i=t[3];let a;t[4]!==n.data.name||t[5]!==i?(a=(0,$.jsxs)(`span`,{className:`flex-1 overflow-hidden text-ellipsis`,children:[n.data.name,i]}),t[4]=n.data.name,t[5]=i,t[6]=a):a=t[6];let o=a,s;return t[7]!==o||t[8]!==n.data.isRoot||t[9]!==n.data.path?(s=n.data.isRoot?(0,$.jsx)(V,{content:n.data.path,children:o}):o,t[7]=o,t[8]=n.data.isRoot,t[9]=n.data.path,t[10]=s):s=t[10],s},tr=e=>{let t=(0,Q.c)(123),{node:n,style:a,dragHandle:o}=e,{openFile:s}=Te(),l=r(E),u;t[0]!==n.data.isDirectory||t[1]!==n.data.name?(u=n.data.isDirectory?`directory`:$e(n.data.name),t[0]=n.data.isDirectory,t[1]=n.data.name,t[2]=u):u=t[2];let f=u,p=st[f],{openPrompt:m}=se(),{createNewCell:h}=c(),g=d(),_;t[3]!==h||t[4]!==g?(_=e=>{h({code:e,before:!1,cellId:g??`__end__`})},t[3]=h,t[4]=g,t[5]=_):_=t[5];let y=_,b=(0,Z.use)(Xn),x=b?.tree,S=n.data.isDirectory&&b?.externalDropDestinationPath===n.data.path;bn(n,S);let C;t[6]!==n.data.path||t[7]!==x?(C=async e=>{let t=x?.getPrimaryRelativePath(n.data.path);t!=null&&rr(e,t)},t[6]=n.data.path,t[7]=x,t[8]=C):C=t[8];let w=C,T;t[9]!==n.id||t[10]!==n.tree?(T=async e=>{e.stopPropagation(),e.preventDefault(),await n.tree.delete(n.id)},t[9]=n.id,t[10]=n.tree,t[11]=T):T=t[11];let D=T,O;t[12]!==n||t[13]!==m||t[14]!==x?(O=async()=>{n.open(),m({title:`Folder name`,onConfirm:async e=>{x?.createFolder(e,n.id)}})},t[12]=n,t[13]=m,t[14]=x,t[15]=O):O=t[15];let k=i(O),A;t[16]!==n||t[17]!==m||t[18]!==x?(A=async()=>{n.open(),m({title:`File name`,onConfirm:async e=>{x?.createFile({name:e,parentId:n.id})}})},t[16]=n,t[17]=m,t[18]=x,t[19]=A):A=t[19];let N=i(A),P;t[20]!==n||t[21]!==m||t[22]!==x?(P=async()=>{n.open(),m({title:`Notebook name`,onConfirm:async e=>{x?.createFile({name:e,parentId:n.id,type:`notebook`})}})},t[20]=n,t[21]=m,t[22]=x,t[23]=P):P=t[23];let F=i(P),R;t[24]!==n.data.name||t[25]!==n.id||t[26]!==x?(R=async()=>{x&&await x.copy(n.id,ft(n.data.name))},t[24]=n.data.name,t[25]=n.id,t[26]=x,t[27]=R):R=t[27];let z=i(R),B;t[28]!==n.data.isDirectory||t[29]!==n.data.path?(B=n.data.isDirectory?{[Vn]:n.data.path}:{},t[28]=n.data.isDirectory,t[29]=n.data.path,t[30]=B):B=t[30];let V;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(V=M(`relative flex h-full items-center cursor-pointer ml-1 text-muted-foreground whitespace-nowrap group`),t[31]=V):V=t[31];let H=!n.data.isRoot,U,W;t[32]===n?(U=t[33],W=t[34]):(U=()=>{n.data.isDirectory&&n.toggle()},W=e=>{e.stopPropagation(),n.data.isDirectory||n.activate()},t[32]=n,t[33]=U,t[34]=W);let G;t[35]===n.level?G=t[36]:(G=Array.from({length:n.level},hr),t[35]=n.level,t[36]=G);let K;t[37]===n?K=t[38]:(K=(0,$.jsx)(nr,{node:n}),t[37]=n,t[38]=K);let te;t[39]!==n.data.isDirectory||t[40]!==n.tree||t[41]!==n.willReceiveDrop?(te=n.willReceiveDrop&&n.tree.canDrop()&&n.data.isDirectory&&`bg-primary/15 hover:bg-primary/15 text-accent-foreground`,t[39]=n.data.isDirectory,t[40]=n.tree,t[41]=n.willReceiveDrop,t[42]=te):te=t[42];let ne=n.isSelected&&`bg-accent/60 hover:bg-accent/60 text-accent-foreground`,re=S&&`bg-primary/15 hover:bg-primary/15 text-accent-foreground`,ie;t[43]!==te||t[44]!==ne||t[45]!==re?(ie=M(`flex items-center pl-1 py-1 cursor-pointer hover:bg-accent/50 hover:text-accent-foreground rounded-l flex-1 overflow-hidden group`,te,ne,re),t[43]=te,t[44]=ne,t[45]=re,t[46]=ie):ie=t[46];let q;t[47]!==p||t[48]!==f||t[49]!==n.data.isMarimoFile||t[50]!==n.data.isRoot?(q=n.data.isRoot?(0,$.jsx)(kt,{className:`w-4 h-4 shrink-0 mr-2 text-primary`,strokeWidth:1.5}):n.data.isMarimoFile?(0,$.jsx)(Ct,{className:`w-4 h-4 shrink-0 mr-2`,strokeWidth:1.5}):(0,$.jsx)(p,{className:M(`w-4 h-4 shrink-0 mr-2`,it[f]),strokeWidth:1.5}),t[47]=p,t[48]=f,t[49]=n.data.isMarimoFile,t[50]=n.data.isRoot,t[51]=q):q=t[51];let ae;t[52]!==w||t[53]!==n?(ae=n.isEditing?(0,$.jsx)(_e,{node:n}):(0,$.jsx)(er,{node:n,onOpenMarimoFile:w}),t[52]=w,t[53]=n,t[54]=ae):ae=t[54];let J;t[55]===n?J=t[56]:(J=!n.data.isDirectory&&(0,$.jsxs)(I,{onSelect:()=>n.activate(),"data-testid":`file-explorer-open-file-menu-item`,children:[(0,$.jsx)(Mt,{className:`h-3.5 w-3.5 mr-2`}),`Open file`]}),t[55]=n,t[56]=J);let oe;t[57]!==n.data.isDirectory||t[58]!==n.data.path||t[59]!==s?(oe=!n.data.isDirectory&&!j()&&(0,$.jsxs)(I,{onSelect:()=>{s({path:n.data.path})},"data-testid":`file-explorer-open-external-menu-item`,children:[(0,$.jsx)(Pe,{className:`h-3.5 w-3.5 mr-2`}),`Open file in external editor`]}),t[57]=n.data.isDirectory,t[58]=n.data.path,t[59]=s,t[60]=oe):oe=t[60];let Y;t[61]!==b||t[62]!==N||t[63]!==k||t[64]!==F||t[65]!==n.data.isDirectory||t[66]!==n.data.path?(Y=n.data.isDirectory&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(I,{onSelect:()=>F(),"data-testid":`file-explorer-create-notebook-menu-item`,children:[(0,$.jsx)(St,{className:`h-3.5 w-3.5 mr-2`}),`Create notebook`]}),(0,$.jsxs)(I,{onSelect:()=>N(),"data-testid":`file-explorer-create-file-menu-item`,children:[(0,$.jsx)(Et,{className:`h-3.5 w-3.5 mr-2`}),`Create file`]}),(0,$.jsxs)(I,{onSelect:()=>k(),"data-testid":`file-explorer-create-folder-menu-item`,children:[(0,$.jsx)(Ot,{className:`h-3.5 w-3.5 mr-2`}),`Create folder`]}),(0,$.jsxs)(I,{onSelect:()=>b?.uploadFiles(n.data.path),"data-testid":`file-explorer-upload-files-menu-item`,children:[(0,$.jsx)(ot,{className:`h-3.5 w-3.5 mr-2`}),`Upload files here`]}),(0,$.jsx)(L,{})]}),t[61]=b,t[62]=N,t[63]=k,t[64]=F,t[65]=n.data.isDirectory,t[66]=n.data.path,t[67]=Y):Y=t[67];let le;t[68]!==z||t[69]!==n?(le=!n.data.isRoot&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(ce,{onSelect:()=>n.edit(),testId:`file-explorer-rename-menu-item`}),(0,$.jsx)(ge,{onSelect:z,testId:`file-explorer-duplicate-menu-item`})]}),t[68]=z,t[69]=n,t[70]=le):le=t[70];let ue;t[71]===n.data.path?ue=t[72]:(ue=async()=>{await be(n.data.path),xe({title:`Copied to clipboard`})},t[71]=n.data.path,t[72]=ue);let de;t[73]===Symbol.for(`react.memo_cache_sentinel`)?(de=(0,$.jsx)(At,{className:Ze}),t[73]=de):de=t[73];let pe;t[74]===ue?pe=t[75]:(pe=(0,$.jsxs)(I,{onSelect:ue,"data-testid":`file-explorer-copy-path-menu-item`,children:[de,`Copy path`]}),t[74]=ue,t[75]=pe);let X;t[76]!==n.data.isPrimaryRoot||t[77]!==n.data.isRoot||t[78]!==n.data.path||t[79]!==x?(X=x&&n.data.isPrimaryRoot&&!n.data.isRoot&&(0,$.jsxs)(I,{onSelect:async()=>{let e=x.getPrimaryRelativePath(n.data.path);e!==null&&(await be(e),xe({title:`Copied to clipboard`}))},"data-testid":`file-explorer-copy-relative-path-menu-item`,children:[(0,$.jsx)(At,{className:`h-3.5 w-3.5 mr-2`}),`Copy relative path`]}),t[76]=n.data.isPrimaryRoot,t[77]=n.data.isRoot,t[78]=n.data.path,t[79]=x,t[80]=X):X=t[80];let he;t[81]!==f||t[82]!==y||t[83]!==n.data?(he=!n.data.isRoot&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(L,{}),(0,$.jsxs)(I,{onSelect:()=>{let{path:e}=n.data,t=Rn[f](e);y(t)},"data-testid":`file-explorer-insert-snippet-menu-item`,children:[(0,$.jsx)(ee,{className:`h-3.5 w-3.5 mr-2`}),`Insert snippet for reading file`]}),(0,$.jsxs)(I,{onSelect:async()=>{xe({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:e}=n.data,t=Rn[f](e);await be(t)},"data-testid":`file-explorer-copy-snippet-menu-item`,children:[(0,$.jsx)(v,{className:`h-3.5 w-3.5 mr-2`}),`Copy snippet for reading file`]})]}),t[81]=f,t[82]=y,t[83]=n.data,t[84]=he):he=t[84];let ve;t[85]!==w||t[86]!==n.data.isMarimoFile||t[87]!==n.data.isPrimaryRoot?(ve=n.data.isMarimoFile&&n.data.isPrimaryRoot&&!j()&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(L,{}),(0,$.jsxs)(I,{onSelect:w,"data-testid":`file-explorer-open-notebook-menu-item`,children:[(0,$.jsx)(jt,{className:`h-3.5 w-3.5 mr-2`}),`Open notebook`]})]}),t[85]=w,t[86]=n.data.isMarimoFile,t[87]=n.data.isPrimaryRoot,t[88]=ve):ve=t[88];let ye;t[89]!==l||t[90]!==n.data.isDirectory||t[91]!==n.data.name||t[92]!==n.data.path?(ye=!n.data.isDirectory&&!l&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(L,{}),(0,$.jsxs)(I,{onSelect:async()=>{await xn(n.data.path,n.data.name)},"data-testid":`file-explorer-download-menu-item`,children:[(0,$.jsx)(nt,{className:`h-3.5 w-3.5 mr-2`}),`Download`]})]}),t[89]=l,t[90]=n.data.isDirectory,t[91]=n.data.name,t[92]=n.data.path,t[93]=ye):ye=t[93];let Se;t[94]!==D||t[95]!==n.data.isRoot?(Se=!n.data.isRoot&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(L,{}),(0,$.jsx)(me,{onSelect:D,testId:`file-explorer-delete-menu-item`})]}),t[94]=D,t[95]=n.data.isRoot,t[96]=Se):Se=t[96];let Ce;t[97]!==J||t[98]!==oe||t[99]!==Y||t[100]!==le||t[101]!==pe||t[102]!==X||t[103]!==he||t[104]!==ve||t[105]!==ye||t[106]!==Se?(Ce=(0,$.jsxs)(fe,{testId:`file-explorer-more-button`,iconClassName:`w-5 h-5`,children:[J,oe,Y,le,pe,X,he,ve,ye,Se]}),t[97]=J,t[98]=oe,t[99]=Y,t[100]=le,t[101]=pe,t[102]=X,t[103]=he,t[104]=ve,t[105]=ye,t[106]=Se,t[107]=Ce):Ce=t[107];let we;t[108]!==ie||t[109]!==q||t[110]!==ae||t[111]!==Ce?(we=(0,$.jsxs)(`span`,{className:ie,children:[q,ae,Ce]}),t[108]=ie,t[109]=q,t[110]=ae,t[111]=Ce,t[112]=we):we=t[112];let Ee;return t[113]!==o||t[114]!==a||t[115]!==H||t[116]!==U||t[117]!==W||t[118]!==G||t[119]!==K||t[120]!==we||t[121]!==B?(Ee=(0,$.jsxs)(`div`,{style:a,ref:o,...B,className:V,draggable:H,onClick:U,onDoubleClick:W,children:[G,K,we]}),t[113]=o,t[114]=a,t[115]=H,t[116]=U,t[117]=W,t[118]=G,t[119]=K,t[120]=we,t[121]=B,t[122]=Ee):Ee=t[122],Ee},nr=e=>{let t=(0,Q.c)(6),{node:n}=e;if(!n.data.isDirectory){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(`span`,{className:`w-4 h-4 shrink-0`}),t[0]=e):e=t[0],e}if(n.data.loadState===`loading`){let e=`Loading ${n.data.name}`,r;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,$.jsx)(Xe,{size:`small`}),t[1]=r):r=t[1];let i;return t[2]===e?i=t[3]:(i=(0,$.jsx)(`span`,{role:`status`,"aria-label":e,className:`w-4 h-4 shrink-0`,children:r}),t[2]=e,t[3]=i),i}let r;return t[4]===n.isOpen?r=t[5]:(r=(0,$.jsx)(lt,{isExpanded:n.isOpen,className:`w-4 h-4`}),t[4]=n.isOpen,t[5]=r),r};function rr(e,t){e.stopPropagation(),e.preventDefault(),Y(t)}function ir(e,t){return e.getDisplayPath(t)}function ar(e,t){if(t)return e;let n=[];for(let r of e){if(!r.isRoot&&or(r.name))continue;let e=r;if(r.children){let n=ar(r.children,t);n!==r.children&&(e={...r,children:n})}n.push(e)}return n}function or(e){return!!e.startsWith(`.`)}function sr(e,t){return e.some(e=>e.id===t||(e.children?sr(e.children,t):!1))}function cr(e){let t=(0,Q.c)(22),{mouse:n,id:r,isDragging:i,tree:a}=e,o,s,c;if(t[0]!==r||t[1]!==i||t[2]!==n||t[3]!==a){c=Symbol.for(`react.early_return_sentinel`);bb0:{if(o=a?.get(r),!i||!n||!o){c=null;break bb0}s=o.data.isDirectory?`directory`:$e(o.data.name)}t[0]=r,t[1]=i,t[2]=n,t[3]=a,t[4]=o,t[5]=s,t[6]=c}else o=t[4],s=t[5],c=t[6];if(c!==Symbol.for(`react.early_return_sentinel`))return c;let l=s,u=st[l],d=`translate3d(${n.x+12}px, ${n.y+12}px, 0)`,f;t[7]===d?f=t[8]:(f={transform:d},t[7]=d,t[8]=f);let p=it[l],m;t[9]===p?m=t[10]:(m=M(`h-4 w-4 shrink-0`,p),t[9]=p,t[10]=m);let h;t[11]!==u||t[12]!==m?(h=(0,$.jsx)(u,{className:m}),t[11]=u,t[12]=m,t[13]=h):h=t[13];let g;t[14]===o.data.name?g=t[15]:(g=(0,$.jsx)(`span`,{className:`truncate`,children:o.data.name}),t[14]=o.data.name,t[15]=g);let _;t[16]!==h||t[17]!==g?(_=(0,$.jsxs)(`div`,{className:`flex max-w-72 items-center gap-2 rounded-md border border-border bg-popover px-3 py-2 text-sm text-popover-foreground shadow-md`,children:[h,g]}),t[16]=h,t[17]=g,t[18]=_):_=t[18];let v;return t[19]!==f||t[20]!==_?(v=(0,_n.createPortal)((0,$.jsx)(`div`,{className:`pointer-events-none fixed left-0 top-0 z-[1000] opacity-[0.85]`,style:f,children:_}),document.body),t[19]=f,t[20]=_,t[21]=v):v=t[21],v}function lr(e){return e.isDirectory?e.children:null}function ur(e){return e.isRoot}function dr(){return null}function fr(e){return e.isRoot}function pr(e){return e.data.isRoot}function mr(e){let{parentNode:t,dragNodes:n}=e;return n.some(pr)||(t?!t.data.isDirectory:!1)}function hr(e,t){return(0,$.jsx)(`span`,{"aria-hidden":`true`,className:`pointer-events-none absolute inset-y-0 border-l border-border`,style:{left:t*Qn+8}},t)}var gr=e=>{let t=(0,Q.c)(44),{height:n}=e,i=r(Fn),[a,o]=(0,Z.useState)(null),s;t[0]===i?s=t[1]:(s=e=>_r(e,i.getPrimaryRootPath()),t[0]=i,t[1]=s);let c=s,l;t[2]===i?l=t[3]:(l=e=>i.refreshPath(e),t[2]=i,t[3]=l);let u=l,d;t[4]===i?d=t[5]:(d=e=>ir(i,e),t[4]=i,t[5]=d);let f,p;t[6]===c?(f=t[7],p=t[8]):(f=e=>o(c(e)),p=e=>o(c(e)),t[6]=c,t[7]=f,t[8]=p);let m,h;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(m=()=>o(null),h=()=>o(null),t[9]=m,t[10]=h):(m=t[9],h=t[10]);let g;t[11]!==c||t[12]!==u||t[13]!==d||t[14]!==f||t[15]!==p?(g={noClick:!0,noKeyboard:!0,destinationPath:c,getDestinationLabel:d,refreshDestination:u,onDragEnter:f,onDragOver:p,onDragLeave:m,onUploadStart:h},t[11]=c,t[12]=u,t[13]=d,t[14]=f,t[15]=p,t[16]=g):g=t[16];let{getRootProps:_,getInputProps:v,isDragActive:y}=Hn(g),b;t[17]!==a||t[18]!==i?(b=a??i.getPrimaryRootPath(),t[17]=a,t[18]=i,t[19]=b):b=t[19];let x=b,S;t[20]!==x||t[21]!==i?(S=ir(i,x),t[20]=x,t[21]=i,t[22]=S):S=t[22];let C=S,w;t[23]===_?w=t[24]:(w=_(),t[23]=_,t[24]=w);let T;t[25]===Symbol.for(`react.memo_cache_sentinel`)?(T=M(`flex flex-col overflow-hidden relative`),t[25]=T):T=t[25];let E;t[26]===n?E=t[27]:(E={height:n},t[26]=n,t[27]=E);let D;t[28]===v?D=t[29]:(D=v(),t[28]=v,t[29]=D);let O;t[30]===D?O=t[31]:(O=(0,$.jsx)(`input`,{...D}),t[30]=D,t[31]=O);let k;t[32]!==C||t[33]!==y?(k=y&&(0,$.jsx)(`div`,{className:`absolute inset-0 flex items-start justify-center pt-3 bg-accent/20 z-10 border-2 border-dashed border-primary/90 rounded-lg pointer-events-none`,children:(0,$.jsxs)(`span`,{className:`px-3 py-1.5 rounded-md bg-background/95 border shadow-sm text-sm font-semibold text-primary`,children:[`Drop files into `,C]})}),t[32]=C,t[33]=y,t[34]=k):k=t[34];let A=y?x:null,j;t[35]!==n||t[36]!==A?(j=(0,$.jsx)(Zn,{height:n,externalDropDestinationPath:A}),t[35]=n,t[36]=A,t[37]=j):j=t[37];let N;return t[38]!==w||t[39]!==E||t[40]!==O||t[41]!==k||t[42]!==j?(N=(0,$.jsx)(gn,{children:(0,$.jsxs)(`div`,{...w,className:T,style:E,children:[O,k,j]})}),t[38]=w,t[39]=E,t[40]=O,t[41]=k,t[42]=j,t[43]=N):N=t[43],N};function _r(e,t){return Array.isArray(e)?t:Gn(e.target,t)}var vr=()=>{let e=(0,Q.c)(40),{ref:n,height:i}=je(),a=i===void 0?500:i,[o,s]=t(ne),c=r(h).length,l=x(`storage`),u;bb0:{if(!o.hasUserInteracted&&c>0){if(o.openSections.includes(`remote-storage`)){u=o.openSections;break bb0}let t;e[0]===o.openSections?t=e[1]:(t=[...o.openSections,`remote-storage`],e[0]=o.openSections,e[1]=t),u=t;break bb0}u=o.openSections}let d=u,f;e[2]===s?f=e[3]:(f=e=>{s({openSections:e,hasUserInteracted:!0})},e[2]=s,e[3]=f);let p=f,m=a-66,g;e[4]===d?g=e[5]:(g=d.includes(`remote-storage`),e[4]=d,e[5]=g);let _=g,v=l.length>0,y;e[6]!==d||e[7]!==_?(y=_&&d.includes(`files`),e[6]=d,e[7]=_,e[8]=y):y=e[8];let b=y,S;e[9]!==m||e[10]!==b?(S=b?Math.round(m*.4):m,e[9]=m,e[10]=b,e[11]=S):S=e[11];let C=S,w=Math.max(200,b?m-C:m),T;e[12]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,$.jsx)(re,{className:`w-4 h-4`}),e[12]=T):T=e[12];let E;e[13]===c?E=e[14]:(E=c>0&&(0,$.jsx)(ht,{children:c}),e[13]=c,e[14]=E);let D;e[15]!==l.length||e[16]!==v?(D=v&&(0,$.jsx)(xt,{count:l.length,type:`storage`}),e[15]=l.length,e[16]=v,e[17]=D):D=e[17];let O;e[18]!==E||e[19]!==D?(O=(0,$.jsxs)(gt,{children:[T,` Remote storage`,E,D]}),e[18]=E,e[19]=D,e[20]=O):O=e[20];let k;e[21]===C?k=e[22]:(k={maxHeight:C},e[21]=C,e[22]=k);let A;e[23]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,$.jsx)(ln,{}),e[23]=A):A=e[23];let j;e[24]===k?j=e[25]:(j=(0,$.jsx)(_t,{className:`overflow-auto`,style:k,children:A}),e[24]=k,e[25]=j);let M;e[26]!==j||e[27]!==O?(M=(0,$.jsxs)(yt,{value:`remote-storage`,children:[O,j]}),e[26]=j,e[27]=O,e[28]=M):M=e[28];let N;e[29]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,$.jsxs)(gt,{children:[(0,$.jsx)(Ne,{className:`w-4 h-4`}),`Files`]}),e[29]=N):N=e[29];let F;e[30]===w?F=e[31]:(F=(0,$.jsxs)(yt,{value:`files`,children:[N,(0,$.jsx)(_t,{children:(0,$.jsx)(gr,{height:w})})]}),e[30]=w,e[31]=F);let I;e[32]!==p||e[33]!==d||e[34]!==M||e[35]!==F?(I=(0,$.jsxs)(P,{type:`multiple`,value:d,onValueChange:p,children:[M,F]}),e[32]=p,e[33]=d,e[34]=M,e[35]=F,e[36]=I):I=e[36];let L;return e[37]!==n||e[38]!==I?(L=(0,$.jsx)(`div`,{ref:n,className:`h-full overflow-auto`,children:I}),e[37]=n,e[38]=I,e[39]=L):L=e[39],L};export{vr as default,_r as getUploadDestinationForEvent};
@@ -1 +0,0 @@
1
- import{Ga as e}from"./index-CgQsZfww.js";var t=Object.prototype.hasOwnProperty;function n(e,n){return e!=null&&t.call(e,n)}function r(t,r){return t!=null&&e(t,r,n)}export{r as t};
@@ -1,4 +0,0 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{c as t,t as n,u as r}from"./useEvent-Dc9HkKI2.js";import{t as i}from"./react-CUdNIagt.js";import{Bn as a,Qr as o,Ya as s,ao as c}from"./cells-BcQ8Tm3j.js";import{t as l}from"./compiler-runtime-BQ9S8nyo.js";import{_ as u}from"./useEventListener-BdZUApHd.js";import{B as d,F as f}from"./config-CmBpjGXk.js";import{t as p}from"./ErrorBoundary-DrliQ_7g.js";import{t as m}from"./cn-ldLVeaqm.js";import{t as h}from"./jsx-runtime-B74pBk57.js";import{o as g}from"./alert-dialog-CeE3i3Qa.js";import{d as _}from"./select-BplWpfFo.js";import{c as v}from"./dropdown-menu-VuyoeQOD.js";import{t as y}from"./tooltip-DR2Z2N4w.js";import{t as b}from"./button-BoklZTGL.js";import{t as x}from"./createLucideIcon-rHn2EdoM.js";import{n as S}from"./paths-CzfpItSz.js";import{i as C,n as w,r as T,t as E}from"./components-CQVZgYvR.js";import{a as D}from"./useNumberFormatter-C4-_TnkF.js";import{t as O}from"./chevron-right-DOPs2jx8.js";import{t as k}from"./circle-play-X3K8DkEc.js";import{b as A}from"./write-secret-modal-CBUZw27N.js";import{a as j,i as M,n as N,o as P,r as F,s as I,t as L,u as R}from"./file-name-input-BXq6eIDs.js";import{n as z,r as B,t as V}from"./app-config-button-vCxNGhe2.js";import{Qt as ee,r as te}from"./input-BDakodZ2.js";import{t as H}from"./use-toast-CC89xOwH.js";import{r as U}from"./requests-yTHMxhVa.js";import{c as W,n as G,o as ne,t as re}from"./session-C8nQMsOE.js";import{t as ie}from"./context-BFOBKCJB.js";import{n as K,t as ae}from"./useAsyncData-DucTwMkf.js";import{a as oe}from"./errors-D9vyuMar.js";import{Da as q,Fn as se,O as ce,Pa as le,Pn as ue,Vn as de,ei as J,h as fe,p as pe}from"./index-CgQsZfww.js";import{t as me}from"./useInterval-ChchS0Rl.js";var he=x(`book-text`,[[`path`,{d:`M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20`,key:`k3hazp`}],[`path`,{d:`M8 11h8`,key:`vwpz6n`}],[`path`,{d:`M8 7h6`,key:`1f0q6e`}]]),Y=l(),X=e(i(),1),Z=X.createContext({runningNotebooks:new Map,setRunningNotebooks:u.NOOP}),Q=X.createContext({root:``,refreshWorkspace:u.NOOP}),ge=f(`marimo:home:include-markdown`,!1,o,{getOnInit:!0}),_e=f(`marimo:home:expanded-folders`,{},o,{getOnInit:!0}),$=h();function ve(e){return`${re()}-${encodeURIComponent(e)}`}var ye=()=>{let e=(0,Y.c)(58),[t,n]=(0,X.useState)(0),{getRecentFiles:r,getRunningNotebooks:i}=U(),a;e[0]===r?a=e[1]:(a=()=>r(),e[0]=r,e[1]=a);let o;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(o=[],e[2]=o):o=e[2];let s=K(a,o),l,u;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(l=()=>{n(Ae)},u={delayMs:1e4,whenVisible:!0},e[3]=l,e[4]=u):(l=e[3],u=e[4]),me(l,u);let d;e[5]===i?d=e[6]:(d=async()=>{let e=await i();return ue.keyBy(e.files,je)},e[5]=i,e[6]=d);let f;e[7]===t?f=e[8]:(f=[t],e[7]=t,e[8]=f);let m=K(d,f),h,g,_,v,y,b,x,S,C,D,O,A,j;if(e[9]!==s||e[10]!==m){C=Symbol.for(`react.early_return_sentinel`);bb0:{let t=ae(s,m);if(t.error)throw t.error;let n=t.data;if(!n){let t;e[24]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsx)(J,{centered:!0,size:`xlarge`}),e[24]=t):t=e[24],C=t;break bb0}let[r,i]=n;v=r,_=X.Suspense,g=Z,x={runningNotebooks:i,setRunningNotebooks:m.setData};let a,o;e[25]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,$.jsx)(w,{}),o=(0,$.jsx)(V,{showAppConfig:!1}),e[25]=a,e[26]=o):(a=e[25],o=e[26]);let c=`This will shutdown the notebook server and terminate all running notebooks (${i.size}). You'll lose all data that's in memory.`;e[27]===c?S=e[28]:(S=(0,$.jsxs)(`div`,{className:`absolute top-3 right-5 flex gap-3 z-50`,children:[a,o,(0,$.jsx)(z,{description:c})]}),e[27]=c,e[28]=S),A=`flex flex-col gap-6 max-w-6xl container pt-5 pb-20 z-10`,e[29]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,$.jsx)(`img`,{src:`logo.png`,alt:`marimo logo`,className:`w-48 mb-2`}),y=(0,$.jsx)(ke,{}),b=(0,$.jsx)(T,{}),e[29]=y,e[30]=b,e[31]=j):(y=e[29],b=e[30],j=e[31]),h=Ee,e[32]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,$.jsx)(E,{Icon:k,children:`Running notebooks`}),e[32]=D):D=e[32],O=[...i.values()]}e[9]=s,e[10]=m,e[11]=h,e[12]=g,e[13]=_,e[14]=v,e[15]=y,e[16]=b,e[17]=x,e[18]=S,e[19]=C,e[20]=D,e[21]=O,e[22]=A,e[23]=j}else h=e[11],g=e[12],_=e[13],v=e[14],y=e[15],b=e[16],x=e[17],S=e[18],C=e[19],D=e[20],O=e[21],A=e[22],j=e[23];if(C!==Symbol.for(`react.early_return_sentinel`))return C;let M;e[33]!==h||e[34]!==D||e[35]!==O?(M=(0,$.jsx)(h,{header:D,files:O}),e[33]=h,e[34]=D,e[35]=O,e[36]=M):M=e[36];let N;e[37]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,$.jsx)(E,{Icon:c,children:`Recent notebooks`}),e[37]=N):N=e[37];let P;e[38]===v.files?P=e[39]:(P=(0,$.jsx)(Ee,{header:N,files:v.files}),e[38]=v.files,e[39]=P);let F;e[40]===s.refetch?F=e[41]:(F=(0,$.jsx)(p,{children:(0,$.jsx)(be,{onRefreshRecents:s.refetch})}),e[40]=s.refetch,e[41]=F);let I;e[42]!==y||e[43]!==b||e[44]!==M||e[45]!==P||e[46]!==F||e[47]!==A||e[48]!==j?(I=(0,$.jsxs)(`div`,{className:A,children:[j,y,b,M,P,F]}),e[42]=y,e[43]=b,e[44]=M,e[45]=P,e[46]=F,e[47]=A,e[48]=j,e[49]=I):I=e[49];let L;e[50]!==g||e[51]!==x||e[52]!==S||e[53]!==I?(L=(0,$.jsxs)(g,{value:x,children:[S,I]}),e[50]=g,e[51]=x,e[52]=S,e[53]=I,e[54]=L):L=e[54];let R;return e[55]!==_||e[56]!==L?(R=(0,$.jsx)(_,{children:L}),e[55]=_,e[56]=L,e[57]=R):R=e[57],R},be=e=>{let r=(0,Y.c)(54),{onRefreshRecents:i}=e,{getWorkspaceFiles:o}=U(),[c,l]=t(ge),[u,d]=(0,X.useState)(``),f;r[0]!==o||r[1]!==c?(f=()=>o({includeMarkdown:c}),r[0]=o,r[1]=c,r[2]=f):f=r[2];let p;r[3]===c?p=r[4]:(p=[c],r[3]=c,r[4]=p);let{isPending:m,data:h,error:g,isFetching:v,refetch:y}=K(f,p),x;r[5]!==i||r[6]!==y?(x=()=>{y(),i()},r[5]=i,r[6]=y,r[7]=x):x=r[7];let S=n(x);h?.root;let w=h?.root??``,T;r[8]!==S||r[9]!==w?(T={root:w,refreshWorkspace:S},r[8]=S,r[9]=w,r[10]=T):T=r[10];let D=T;if(m){let e;return r[11]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(J,{centered:!0,size:`xlarge`,className:`mt-6`}),r[11]=e):e=r[11],e}if(g){let e;r[12]===g?e=r[13]:(e=oe(g),r[12]=g,r[13]=e);let t;return r[14]===e?t=r[15]:(t=(0,$.jsx)(de,{kind:`danger`,className:`rounded p-4`,children:e}),r[14]=e,r[15]=t),t}let O;r[16]!==h.fileCount||r[17]!==h.hasMore?(O=h.hasMore&&(0,$.jsx)(C,{fileCount:h.fileCount}),r[16]=h.fileCount,r[17]=h.hasMore,r[18]=O):O=r[18];let k,A;r[19]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,$.jsx)(ee,{size:13}),A=e=>d(e.target.value),r[19]=k,r[20]=A):(k=r[19],A=r[20]);let j;r[21]===u?j=r[22]:(j=(0,$.jsx)(te,{id:`search`,value:u,icon:k,onChange:A,placeholder:`Search`,className:`mb-0 border-border`}),r[21]=u,r[22]=j);let M;r[23]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,$.jsx)(xe,{}),r[23]=M):M=r[23];let N;r[24]===l?N=r[25]:(N=e=>l(!!e),r[24]=l,r[25]=N);let P;r[26]!==c||r[27]!==N?(P=(0,$.jsx)(a,{"data-testid":`include-markdown-checkbox`,id:`include-markdown`,checked:c,onCheckedChange:N}),r[26]=c,r[27]=N,r[28]=P):P=r[28];let F;r[29]===Symbol.for(`react.memo_cache_sentinel`)?(F=(0,$.jsx)(_,{htmlFor:`include-markdown`,children:`Include markdown`}),r[29]=F):F=r[29];let I;r[30]!==P||r[31]!==j?(I=(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[j,M,P,F]}),r[30]=P,r[31]=j,r[32]=I):I=r[32];let L;r[33]===y?L=r[34]:(L=()=>y(),r[33]=y,r[34]=L);let R;r[35]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,$.jsx)(s,{className:`w-4 h-4`}),r[35]=R):R=r[35];let z;r[36]===L?z=r[37]:(z=(0,$.jsx)(b,{variant:`text`,size:`icon`,className:`w-4 h-4 ml-1 p-0 opacity-70 hover:opacity-100`,onClick:L,"aria-label":`Refresh workspace`,children:R}),r[36]=L,r[37]=z);let B;r[38]===v?B=r[39]:(B=v&&(0,$.jsx)(J,{size:`small`}),r[38]=v,r[39]=B);let V;r[40]!==I||r[41]!==z||r[42]!==B?(V=(0,$.jsxs)(E,{Icon:he,control:I,children:[`Workspace`,z,B]}),r[40]=I,r[41]=z,r[42]=B,r[43]=V):V=r[43];let H;r[44]!==u||r[45]!==h.files?(H=(0,$.jsx)(`div`,{className:`flex flex-col divide-y divide-(--slate-3) border rounded overflow-hidden max-h-192 overflow-y-auto shadow-sm bg-background`,children:(0,$.jsx)(Se,{searchText:u,files:h.files})}),r[44]=u,r[45]=h.files,r[46]=H):H=r[46];let W;r[47]!==V||r[48]!==H||r[49]!==O?(W=(0,$.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[O,V,H]}),r[47]=V,r[48]=H,r[49]=O,r[50]=W):W=r[50];let G;return r[51]!==W||r[52]!==D?(G=(0,$.jsx)(Q,{value:D,children:W}),r[51]=W,r[52]=D,r[53]=G):G=r[53],G},xe=()=>{let e=(0,Y.c)(5),t=r(_e),n;e[0]===t?n=e[1]:(n=()=>{t({})},e[0]=t,e[1]=n);let i;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,$.jsx)(le,{className:`w-4 h-4 mr-1`}),e[2]=i):i=e[2];let a;return e[3]===n?a=e[4]:(a=(0,$.jsxs)(b,{variant:`text`,size:`sm`,className:`h-fit hidden sm:flex`,onClick:n,children:[i,`Collapse all`]}),e[3]=n,e[4]=a),a},Se=e=>{let r=(0,Y.c)(22),{files:i,searchText:a}=e,[o,s]=t(_e),c;r[0]===o?c=r[1]:(c=Object.keys(o),r[0]=o,r[1]=c);let l=c.length===0,u=(0,X.useRef)(void 0),{root:d,refreshWorkspace:f}=(0,X.use)(Q),p;r[2]===d?p=r[3]:(p={root:d},r[2]=d,r[3]=p);let{renameFile:m}=P(p),h,g;r[4]===l?(h=r[5],g=r[6]):(h=()=>{l&&u.current?.closeAll()},g=[l],r[4]=l,r[5]=h,r[6]=g),(0,X.useEffect)(h,g);let _;r[7]!==f||r[8]!==m?(_=async(e,t)=>{let n=u.current?.get(e);if(!n){H({title:`Failed`,description:`Node with id ${e} not found in the tree`});return}await m(n.data,t)&&f()},r[7]=f,r[8]=m,r[9]=_):_=r[9];let v=n(_);if(i.length===0){let e;return r[10]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(`div`,{className:`flex flex-col px-5 py-10 items-center justify-center`,children:(0,$.jsx)(`p`,{className:`text-center text-muted-foreground`,children:`No files in this workspace`})}),r[10]=e):e=r[10],e}let y;r[11]!==o||r[12]!==s?(y=async e=>{let t=o[e]??!1;s({...o,[e]:!t})},r[11]=o,r[12]=s,r[13]=y):y=r[13];let b;r[14]===v?b=r[15]:(b=async e=>{let{id:t,name:n}=e;await v(t,n)},r[14]=v,r[15]=b);let x;return r[16]!==i||r[17]!==o||r[18]!==a||r[19]!==y||r[20]!==b?(x=(0,$.jsx)(R,{ref:u,width:`100%`,height:500,searchTerm:a,className:`h-full`,idAccessor:Me,data:i,openByDefault:!1,initialOpenState:o,onToggle:y,onRename:b,padding:5,rowHeight:35,indent:15,overscanCount:1e3,renderCursor:Ne,disableDrop:!0,disableDrag:!0,disableMultiSelection:!0,children:Ce}),r[16]=i,r[17]=o,r[18]=a,r[19]=y,r[20]=b,r[21]=x):x=r[21],x},Ce=e=>{let t=(0,Y.c)(18),{node:n,style:r}=e,i=n.data.isDirectory?`directory`:fe(n.data.name),a=pe[i],o;t[0]===a?o=t[1]:(o=(0,$.jsx)(a,{className:`w-5 h-5 shrink-0`,strokeWidth:1.5}),t[0]=a,t[1]=o);let s=o,{root:c}=(0,X.use)(Q),{runningNotebooks:l}=(0,X.use)(Z),u;t[2]!==s||t[3]!==n||t[4]!==c||t[5]!==l?(u=()=>{if(n.isEditing)return(0,$.jsxs)(`div`,{className:`flex items-center pl-1 cursor-pointer hover:bg-accent/50 hover:text-accent-foreground rounded-l flex-1 overflow-hidden h-full pr-3 gap-2`,children:[s,(0,$.jsx)(L,{node:n})]});if(n.data.isDirectory)return(0,$.jsxs)(`span`,{className:`flex items-center pl-1 cursor-pointer hover:bg-accent/50 hover:text-accent-foreground rounded-l flex-1 overflow-hidden h-full pr-3 gap-2`,children:[s,n.data.name]});let e=n.data.path.startsWith(c)&&S.isAbsolute(n.data.path)?S.rest(n.data.path,c):n.data.path,t=e.endsWith(`.md`)||e.endsWith(`.qmd`),r=l.has(e);return(0,$.jsxs)(`a`,{className:`flex items-center pl-1 cursor-pointer hover:bg-accent/50 hover:text-accent-foreground rounded-l flex-1 overflow-hidden h-full pr-3 gap-2`,href:W(`?file=${encodeURIComponent(e)}`).toString(),target:ve(e),children:[s,(0,$.jsxs)(`span`,{className:`flex-1 overflow-hidden text-ellipsis`,children:[n.data.name,t&&(0,$.jsx)(ce,{className:`ml-2 inline opacity-80`})]}),(0,$.jsx)(we,{node:n,isRunning:r}),(0,$.jsx)(`div`,{className:`w-8 h-8 flex items-center justify-center shrink-0`,children:(0,$.jsx)(Oe,{filePath:e})}),(0,$.jsx)(q,{size:20,className:`group-hover:opacity-100 opacity-0 text-primary shrink-0`})]})},t[2]=s,t[3]=n,t[4]=c,t[5]=l,t[6]=u):u=t[6];let d=u,f;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(f=m(`flex items-center cursor-pointer ml-1 text-muted-foreground whitespace-nowrap group h-full`),t[7]=f):f=t[7];let p,h;t[8]===n?(p=t[9],h=t[10]):(p=e=>{e.stopPropagation(),n.data.isDirectory&&n.toggle()},h=(0,$.jsx)(Te,{node:n}),t[8]=n,t[9]=p,t[10]=h);let g;t[11]===d?g=t[12]:(g=d(),t[11]=d,t[12]=g);let _;return t[13]!==r||t[14]!==p||t[15]!==h||t[16]!==g?(_=(0,$.jsxs)(`div`,{style:r,className:f,onClick:p,children:[h,g]}),t[13]=r,t[14]=p,t[15]=h,t[16]=g,t[17]=_):_=t[17],_},we=e=>{let t=(0,Y.c)(19),{node:n,isRunning:r}=e,{root:i,refreshWorkspace:a}=(0,X.use)(Q),o;t[0]!==n||t[1]!==a||t[2]!==i?(o={node:n,root:i,onAfterChange:a},t[0]=n,t[1]=a,t[2]=i,t[3]=o):o=t[3];let{handleRename:s,handleDuplicate:c,handleDelete:l}=I(o),u=r?`Stop the notebook's kernel before renaming or deleting.`:void 0,d;t[4]!==s||t[5]!==r||t[6]!==u?(d=(0,$.jsx)(j,{onSelect:s,disabled:r,title:u}),t[4]=s,t[5]=r,t[6]=u,t[7]=d):d=t[7];let f;t[8]===c?f=t[9]:(f=(0,$.jsx)(F,{onSelect:c}),t[8]=c,t[9]=f);let p;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,$.jsx)(v,{}),t[10]=p):p=t[10];let m;t[11]!==l||t[12]!==r||t[13]!==u?(m=(0,$.jsx)(N,{onSelect:l,disabled:r,title:u}),t[11]=l,t[12]=r,t[13]=u,t[14]=m):m=t[14];let h;return t[15]!==d||t[16]!==f||t[17]!==m?(h=(0,$.jsxs)(M,{testId:`workspace-more-button`,buttonClassName:`w-8 h-8 p-0 shrink-0`,contentClassName:`print:hidden w-fit min-w-[140px]`,preventDefaultOnTrigger:!0,children:[d,f,p,m]}),t[15]=d,t[16]=f,t[17]=m,t[18]=h):h=t[18],h},Te=e=>{let t=(0,Y.c)(3),{node:n}=e;if(!n.data.isDirectory){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(`span`,{className:`w-5 h-5 shrink-0`}),t[0]=e):e=t[0],e}let r;return t[1]===n.isOpen?r=t[2]:(r=n.isOpen?(0,$.jsx)(D,{className:`w-5 h-5 shrink-0`}):(0,$.jsx)(O,{className:`w-5 h-5 shrink-0`}),t[1]=n.isOpen,t[2]=r),r},Ee=e=>{let t=(0,Y.c)(7),{header:n,files:r}=e;if(r.length===0)return null;let i;t[0]===r?i=t[1]:(i=r.map(Pe),t[0]=r,t[1]=i);let a;t[2]===i?a=t[3]:(a=(0,$.jsx)(`div`,{className:`flex flex-col divide-y divide-(--slate-3) border rounded overflow-hidden max-h-192 overflow-y-auto shadow-sm bg-background`,children:i}),t[2]=i,t[3]=a);let o;return t[4]!==n||t[5]!==a?(o=(0,$.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[n,a]}),t[4]=n,t[5]=a,t[6]=o):o=t[6],o},De=e=>{let t=(0,Y.c)(41),{file:n}=e,{locale:r}=ie(),i;t[0]===n.path?i=t[1]:(i=G(n.path),t[0]=n.path,t[1]=i);let a=i,o,s,c,l;if(t[2]!==n.initializationId||t[3]!==n.path||t[4]!==a){let e=W(a?`?file=${encodeURIComponent(n.initializationId??n.path)}&session_id=${n.path}`:`?file=${encodeURIComponent(n.path)}`),r;t[9]===n.path?r=t[10]:(r=n.path.endsWith(`.md`),t[9]=n.path,t[10]=r),o=r,s=`py-1.5 px-4 hover:bg-(--blue-2) hover:text-primary transition-all duration-300 cursor-pointer group relative flex gap-4 items-center`,c=n.path,l=e.toString(),t[2]=n.initializationId,t[3]=n.path,t[4]=a,t[5]=o,t[6]=s,t[7]=c,t[8]=l}else o=t[5],s=t[6],c=t[7],l=t[8];let u=n.initializationId||n.path,d;t[11]===u?d=t[12]:(d=ve(u),t[11]=u,t[12]=d);let f;t[13]===o?f=t[14]:(f=o&&(0,$.jsx)(`span`,{className:`opacity-80`,children:(0,$.jsx)(ce,{})}),t[13]=o,t[14]=f);let p;t[15]!==n.name||t[16]!==f?(p=(0,$.jsxs)(`span`,{className:`flex items-center gap-2`,children:[n.name,f]}),t[15]=n.name,t[16]=f,t[17]=p):p=t[17];let m;t[18]===n.path?m=t[19]:(m=(0,$.jsx)(`p`,{title:n.path,className:`text-sm text-muted-foreground overflow-hidden whitespace-nowrap text-ellipsis`,children:n.path}),t[18]=n.path,t[19]=m);let h;t[20]!==p||t[21]!==m?(h=(0,$.jsxs)(`div`,{className:`flex flex-col justify-between flex-1`,children:[p,m]}),t[20]=p,t[21]=m,t[22]=h):h=t[22];let g;t[23]===n.path?g=t[24]:(g=(0,$.jsx)(`div`,{children:(0,$.jsx)(Oe,{filePath:n.path})}),t[23]=n.path,t[24]=g);let _;t[25]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,$.jsx)(q,{size:20,className:`group-hover:opacity-100 opacity-0 transition-all duration-300 text-primary`}),t[25]=_):_=t[25];let v;t[26]===g?v=t[27]:(v=(0,$.jsxs)(`div`,{className:`flex gap-3 items-center`,children:[g,_]}),t[26]=g,t[27]=v);let y;t[28]!==n.lastModified||t[29]!==r?(y=!!n.lastModified&&(0,$.jsx)(`div`,{className:`text-xs text-muted-foreground opacity-80`,children:se(n.lastModified*1e3,r)}),t[28]=n.lastModified,t[29]=r,t[30]=y):y=t[30];let b;t[31]!==v||t[32]!==y?(b=(0,$.jsxs)(`div`,{className:`flex flex-col gap-1 items-end`,children:[v,y]}),t[31]=v,t[32]=y,t[33]=b):b=t[33];let x;return t[34]!==h||t[35]!==b||t[36]!==s||t[37]!==c||t[38]!==l||t[39]!==d?(x=(0,$.jsxs)(`a`,{className:s,href:l,target:d,children:[h,b]},c),t[34]=h,t[35]=b,t[36]=s,t[37]=c,t[38]=l,t[39]=d,t[40]=x):x=t[40],x},Oe=e=>{let t=(0,Y.c)(10),{filePath:n}=e,{openConfirm:r,closeModal:i}=A(),{shutdownSession:a}=U(),{runningNotebooks:o,setRunningNotebooks:s}=(0,X.use)(Z);if(!o.has(n))return null;let c;t[0]!==i||t[1]!==n||t[2]!==r||t[3]!==o||t[4]!==s||t[5]!==a?(c=e=>{e.stopPropagation(),e.preventDefault(),r({title:`Shutdown`,description:`This will terminate the Python kernel. You'll lose all data that's in memory.`,variant:`destructive`,confirmAction:(0,$.jsx)(g,{onClick:()=>{let e=o.get(n);d(e?.sessionId),a({sessionId:e.sessionId}).then(e=>{s(ue.keyBy(e.files,Fe))}),i(),H({description:`Notebook has been shutdown.`})},"aria-label":`Confirm Shutdown`,children:`Shutdown`})})},t[0]=i,t[1]=n,t[2]=r,t[3]=o,t[4]=s,t[5]=a,t[6]=c):c=t[6];let l;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,$.jsx)(B,{size:14}),t[7]=l):l=t[7];let u;return t[8]===c?u=t[9]:(u=(0,$.jsx)(y,{content:`Shutdown`,children:(0,$.jsx)(b,{size:`icon`,variant:`outline`,className:`opacity-80 hover:opacity-100 hover:bg-accent text-destructive border-destructive hover:border-destructive hover:text-destructive bg-background hover:bg-(--red-1)`,onClick:c,children:l})}),t[8]=c,t[9]=u),u},ke=()=>{let e=(0,Y.c)(3),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=ne(),e[0]=t):t=e[0];let n=t,r;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,$.jsx)(`h2`,{className:`text-lg font-semibold`,children:`Create a new notebook`}),e[1]=r):r=e[1];let i;return e[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,$.jsxs)(`a`,{className:`relative rounded-lg p-6 group
2
- text-primary hover:bg-(--blue-2) shadow-md-solid shadow-accent border bg-(--blue-1)
3
- transition-all duration-300 cursor-pointer
4
- `,href:n,target:`_blank`,rel:`noreferrer`,children:[r,(0,$.jsx)(`div`,{className:`group-hover:opacity-100 opacity-0 absolute right-5 top-0 bottom-0 rounded-lg flex items-center justify-center transition-all duration-300`,children:(0,$.jsx)(q,{size:24})})]}),e[2]=i):i=e[2],i};function Ae(e){return e+1}function je(e){return e.path}function Me(e){return e.path}function Ne(){return null}function Pe(e){return(0,$.jsx)(De,{file:e},e.path)}function Fe(e){return e.path}export{ye as default};