@marimo-team/frontend 0.24.1-dev84 → 0.24.1-dev85

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 (105) hide show
  1. package/dist/assets/{CellStatus-GcHBZKLm.js → CellStatus-D40JXMpi.js} +1 -1
  2. package/dist/assets/{ConnectedDataExplorerComponent-BU1NZpRe.js → ConnectedDataExplorerComponent-Dkqk66Mv.js} +1 -1
  3. package/dist/assets/{JsonOutput-CUJlEdsN.js → JsonOutput-DeeAtdky.js} +1 -1
  4. package/dist/assets/{MarimoErrorOutput-DCAezqcJ.js → MarimoErrorOutput-Dh-877oV.js} +1 -1
  5. package/dist/assets/{RenderHTML-D9-75ltP.js → RenderHTML-C7JgAfHC.js} +1 -1
  6. package/dist/assets/{RunButton-plSsbubG.js → RunButton-C9d_w3qn.js} +1 -1
  7. package/dist/assets/{add-cell-with-ai-07LjLydm.js → add-cell-with-ai-zrX9HOPy.js} +1 -1
  8. package/dist/assets/{add-connection-dialog-By0i0Fq5.js → add-connection-dialog-OQxtKyCV.js} +1 -1
  9. package/dist/assets/{agent-panel-D01f7IIt.js → agent-panel-DF7_IEEH.js} +1 -1
  10. package/dist/assets/{ai-model-dropdown-DPxSumqI.js → ai-model-dropdown-DIItpu01.js} +1 -1
  11. package/dist/assets/{app-config-button-DV7ZvBMx.js → app-config-button-CeDIYZUc.js} +1 -1
  12. package/dist/assets/{blob-yxfhyyvD.js → blob-iewSQmkZ.js} +1 -1
  13. package/dist/assets/{cell-editor-Bl5DkKIR.js → cell-editor-BkHTcrF-.js} +1 -1
  14. package/dist/assets/{cell-link-hHrWcozB.js → cell-link-ZLZTXwR8.js} +1 -1
  15. package/dist/assets/{cells-yuYDzbAy.js → cells-DyE9dSiM.js} +1 -1
  16. package/dist/assets/{chat-display-BFCcdgia.js → chat-display-B9XOYJaA.js} +1 -1
  17. package/dist/assets/{chat-panel-CS9bLpq9.js → chat-panel-Drx8ToF5.js} +1 -1
  18. package/dist/assets/{chat-ui-lssAqY7E.js → chat-ui-CJ1VFz1m.js} +1 -1
  19. package/dist/assets/{column-preview-BEmcYaKl.js → column-preview-Ls8UnJOt.js} +1 -1
  20. package/dist/assets/{command-palette-DInNqneC.js → command-palette-DWyHSatV.js} +1 -1
  21. package/dist/assets/{common-Bs2kaOs2.js → common-03vbDqrN.js} +1 -1
  22. package/dist/assets/{components-ib4asSo7.js → components-CBlGIIAX.js} +1 -1
  23. package/dist/assets/{components-ByyAzQxP.js → components-J_vBLfsO.js} +1 -1
  24. package/dist/assets/{config-DaNyNpZL.js → config-D4frVGQ4.js} +1 -1
  25. package/dist/assets/{config-Cl3eMWxb.js → config-ycxJQP2b.js} +1 -1
  26. package/dist/assets/{datasource-DeZYq5UY.js → datasource-B4VfwXg_.js} +1 -1
  27. package/dist/assets/{dependency-graph-panel-g10osAFc.js → dependency-graph-panel-B24NhlCS.js} +1 -1
  28. package/dist/assets/{documentation-panel-CZ1mKkDh.js → documentation-panel-C4y_ufGj.js} +1 -1
  29. package/dist/assets/{download-D1crMjD8.js → download-Kg8_rqQH.js} +1 -1
  30. package/dist/assets/{edit-page-ZyGzkf7q.js → edit-page-DL_yo5rn.js} +4 -4
  31. package/dist/assets/{error-entries-B6XTLRyE.js → error-entries-Cy1y8FaI.js} +1 -1
  32. package/dist/assets/{error-panel-lexB3L6f.js → error-panel-D_pwhWfh.js} +1 -1
  33. package/dist/assets/file-explorer-panel-QoJu0RbE.js +1 -0
  34. package/dist/assets/{file-icons-Dx3v6lMu.js → file-icons-BN7fZ7-c.js} +1 -1
  35. package/dist/assets/file-name-input-qU-dl8Og.js +3 -0
  36. package/dist/assets/{floating-outline-3rQEbxxk.js → floating-outline-Coq72JrA.js} +1 -1
  37. package/dist/assets/{glide-data-editor-DZ2Minh8.js → glide-data-editor-DcY3nXI8.js} +1 -1
  38. package/dist/assets/{home-page-Ck-_oVJT.js → home-page-C6NwS9L9.js} +1 -1
  39. package/dist/assets/{index-g9ny2vs0.js → index-DMvKFHTV.js} +5 -5
  40. package/dist/assets/{kiosk-mode-CjT3sqy8.js → kiosk-mode-CzGt3mc2.js} +1 -1
  41. package/dist/assets/{layout-D0Q03BhB.js → layout-ByAlvlct.js} +3 -3
  42. package/dist/assets/{logs-panel-CSbUhhRo.js → logs-panel-zYelRd3A.js} +1 -1
  43. package/dist/assets/{markdown-renderer-BgUTGtM0.js → markdown-renderer-BqMslrdb.js} +1 -1
  44. package/dist/assets/{mermaid-Nzih1WTG.js → mermaid-CeseGGnS.js} +1 -1
  45. package/dist/assets/{name-cell-input-pEE4FGAL.js → name-cell-input-jrtswt5e.js} +1 -1
  46. package/dist/assets/{outline-panel-BgnjEQWg.js → outline-panel-B0P8XNnQ.js} +1 -1
  47. package/dist/assets/{packages-panel-BBP_xysn.js → packages-panel-C08E4Wjm.js} +1 -1
  48. package/dist/assets/{pair-with-agent-modal-Gg8MZHWW.js → pair-with-agent-modal-BZBengJw.js} +1 -1
  49. package/dist/assets/{panel-accordion-state-vpqEc3Kd.js → panel-accordion-state-Cyy4afrx.js} +1 -1
  50. package/dist/assets/{panels-fKt2XFRB.js → panels-DRtPsJ1u.js} +1 -1
  51. package/dist/assets/{process-output-siRm_lza.js → process-output-BiA5MKpM.js} +1 -1
  52. package/dist/assets/{readonly-code-display-CLWV76FT.js → readonly-code-display-B45Jy4vH.js} +1 -1
  53. package/dist/assets/{readonly-python-code-Bor9b9pV.js → readonly-python-code-BQ5Ti6Hw.js} +1 -1
  54. package/dist/assets/{renderShortcut-CS4ccH3x.js → renderShortcut-DK_OucLT.js} +1 -1
  55. package/dist/assets/{reveal-component-B55bWtCO.js → reveal-component-Bna3jncc.js} +1 -1
  56. package/dist/assets/{run-page-mD_6P_t5.js → run-page-CFC5C_It.js} +1 -1
  57. package/dist/assets/{scratchpad-panel-B_7IHnPD.js → scratchpad-panel-m2LRBFI5.js} +1 -1
  58. package/dist/assets/{session-panel-DB5qEYqt.js → session-panel-BV8Whoy8.js} +1 -1
  59. package/dist/assets/{skeleton-TY77TiqZ.js → skeleton-CWFWp9eU.js} +1 -1
  60. package/dist/assets/{snippets-panel-B8Yi81tz.js → snippets-panel-DBzdOGwQ.js} +1 -1
  61. package/dist/assets/state-DPS9Q717.js +3 -0
  62. package/dist/assets/{state-O8w98G11.js → state-rP7TRCla.js} +1 -1
  63. package/dist/assets/{switch-Gl6cozkm.js → switch-CtH5Ct94.js} +1 -1
  64. package/dist/assets/{terminal-DOqqA9Ha.js → terminal-C73iz1fU.js} +1 -1
  65. package/dist/assets/{tracing-DuLkr7ts.js → tracing-BP1J14GT.js} +1 -1
  66. package/dist/assets/{tracing-panel-CeLKVG8M.js → tracing-panel-CQasWudc.js} +2 -2
  67. package/dist/assets/{tree-actions-Bh-Nnaub.js → tree-actions-CrB9REp3.js} +1 -1
  68. package/dist/assets/{useAddCell-_JRYhAFd.js → useAddCell-DHYPnl7W.js} +1 -1
  69. package/dist/assets/{useBoolean-Cu7Eado1.js → useBoolean-ZU5StAbr.js} +1 -1
  70. package/dist/assets/{useCellActionButton-Bi8Lnv3F.js → useCellActionButton-C7bEu9tJ.js} +1 -1
  71. package/dist/assets/{useDeleteCell-CBQiavzs.js → useDeleteCell-CIzxZKUw.js} +1 -1
  72. package/dist/assets/{useDependencyPanelTab-BOn3UJ07.js → useDependencyPanelTab-CLmRGbOD.js} +1 -1
  73. package/dist/assets/{useNotebookActions-C1YIorGp.js → useNotebookActions-Q97EgZxR.js} +1 -1
  74. package/dist/assets/{useRunCells-BFQfLlUl.js → useRunCells-Csh5VYKu.js} +1 -1
  75. package/dist/assets/{useSplitCell-Ig9P6lAn.js → useSplitCell-BfT7UcKM.js} +1 -1
  76. package/dist/assets/{useTheme-D3zvxdF3.js → useTheme-CF-zG9YH.js} +1 -1
  77. package/dist/assets/{utils-CUZQNAWJ.js → utils-CWSZQEjr.js} +1 -1
  78. package/dist/assets/{vega-component-B0MZ_r-y.js → vega-component-Bel2PDO-.js} +1 -1
  79. package/dist/index.html +26 -26
  80. package/package.json +1 -1
  81. package/src/__mocks__/requests.ts +1 -0
  82. package/src/components/editor/chrome/panels/file-explorer-panel.tsx +3 -2
  83. package/src/components/editor/file-tree/__tests__/file-explorer-interactions.test.tsx +31 -18
  84. package/src/components/editor/file-tree/__tests__/file-explorer.test.ts +18 -12
  85. package/src/components/editor/file-tree/__tests__/requesting-tree.test.ts +364 -387
  86. package/src/components/editor/file-tree/file-explorer.tsx +137 -97
  87. package/src/components/editor/file-tree/file-name-input.tsx +5 -1
  88. package/src/components/editor/file-tree/file-viewer.tsx +2 -2
  89. package/src/components/editor/file-tree/requesting-tree.tsx +291 -171
  90. package/src/components/editor/file-tree/state.tsx +1 -0
  91. package/src/core/config/__tests__/config-schema.test.ts +15 -0
  92. package/src/core/config/config-schema.ts +15 -0
  93. package/src/core/islands/bridge.ts +1 -0
  94. package/src/core/network/__tests__/requests-network.test.ts +7 -0
  95. package/src/core/network/__tests__/requests-toasting.test.tsx +10 -0
  96. package/src/core/network/requests-lazy.ts +1 -0
  97. package/src/core/network/requests-network.ts +4 -0
  98. package/src/core/network/requests-static.ts +1 -0
  99. package/src/core/network/requests-toasting.tsx +1 -0
  100. package/src/core/network/types.ts +3 -0
  101. package/src/core/wasm/bridge.ts +9 -0
  102. package/src/core/wasm/worker/types.ts +2 -0
  103. package/dist/assets/file-explorer-panel-DHRH2J-3.js +0 -1
  104. package/dist/assets/file-name-input-DzL8D_7x.js +0 -3
  105. package/dist/assets/state-D1N9_41P.js +0 -3
@@ -1,29 +1,35 @@
1
1
  /* Copyright 2026 Marimo. All rights reserved. */
2
2
  import { describe, expect, it } from "vitest";
3
- import type { FileInfo } from "@/core/network/types";
3
+ import type { FileTreeNode } from "../requesting-tree";
4
4
  import { filterHiddenTree, isDirectoryOrFileHidden } from "../file-explorer";
5
5
 
6
6
  // Helpers to build FileInfo objects for tests
7
- const file = (name: string, path: string): FileInfo => ({
7
+ const file = (name: string, path: string): FileTreeNode => ({
8
8
  id: path,
9
9
  name,
10
10
  path,
11
11
  isDirectory: false,
12
12
  isMarimoFile: false,
13
13
  children: [],
14
+ isRoot: false,
15
+ rootPath: "/",
16
+ isPrimaryRoot: true,
14
17
  });
15
18
 
16
19
  const dir = (
17
20
  name: string,
18
21
  path: string,
19
- children: FileInfo[] = [],
20
- ): FileInfo => ({
22
+ children: FileTreeNode[] = [],
23
+ ): FileTreeNode => ({
21
24
  id: path,
22
25
  name,
23
26
  path,
24
27
  isDirectory: true,
25
28
  isMarimoFile: false,
26
29
  children,
30
+ isRoot: false,
31
+ rootPath: "/",
32
+ isPrimaryRoot: true,
27
33
  });
28
34
 
29
35
  describe("isDirectoryOrFileHidden", () => {
@@ -47,7 +53,7 @@ describe("isDirectoryOrFileHidden", () => {
47
53
 
48
54
  describe("filterHiddenTree", () => {
49
55
  it("should return all items when showHidden is true", () => {
50
- const list: FileInfo[] = [
56
+ const list: FileTreeNode[] = [
51
57
  dir(".git", "/.git", []),
52
58
  file("README.md", "/README.md"),
53
59
  file(".env", "/.env"),
@@ -60,7 +66,7 @@ describe("filterHiddenTree", () => {
60
66
  });
61
67
 
62
68
  it("should filter out hidden files when showHidden is false", () => {
63
- const list: FileInfo[] = [
69
+ const list: FileTreeNode[] = [
64
70
  dir(".git", "/.git"),
65
71
  file("README.md", "/README.md"),
66
72
  file(".env", "/.env"),
@@ -75,7 +81,7 @@ describe("filterHiddenTree", () => {
75
81
  });
76
82
 
77
83
  it("should filter hidden directories recursively", () => {
78
- const list: FileInfo[] = [
84
+ const list: FileTreeNode[] = [
79
85
  dir("src", "/src", [
80
86
  file("index.ts", "/src/index.ts"),
81
87
  file(".DS_Store", "/src/.DS_Store"),
@@ -94,7 +100,7 @@ describe("filterHiddenTree", () => {
94
100
  });
95
101
 
96
102
  it("should handle nested hidden files", () => {
97
- const list: FileInfo[] = [
103
+ const list: FileTreeNode[] = [
98
104
  dir("project", "/project", [
99
105
  dir("src", "/project/src", [
100
106
  file("index.ts", "/project/src/index.ts"),
@@ -114,7 +120,7 @@ describe("filterHiddenTree", () => {
114
120
  });
115
121
 
116
122
  it("should preserve directory structure when no children are filtered", () => {
117
- const list: FileInfo[] = [
123
+ const list: FileTreeNode[] = [
118
124
  dir("src", "/src", [
119
125
  file("index.ts", "/src/index.ts"),
120
126
  file("utils.ts", "/src/utils.ts"),
@@ -128,7 +134,7 @@ describe("filterHiddenTree", () => {
128
134
  });
129
135
 
130
136
  it("should create new object only when children are filtered", () => {
131
- const list: FileInfo[] = [
137
+ const list: FileTreeNode[] = [
132
138
  dir("src", "/src", [
133
139
  file("index.ts", "/src/index.ts"),
134
140
  file(".hidden", "/src/.hidden"),
@@ -148,7 +154,7 @@ describe("filterHiddenTree", () => {
148
154
  });
149
155
 
150
156
  it("should handle empty children arrays", () => {
151
- const list: FileInfo[] = [dir("empty-dir", "/empty-dir", [])];
157
+ const list: FileTreeNode[] = [dir("empty-dir", "/empty-dir", [])];
152
158
 
153
159
  const result = filterHiddenTree(list, false);
154
160
 
@@ -157,7 +163,7 @@ describe("filterHiddenTree", () => {
157
163
  });
158
164
 
159
165
  it("should handle deeply nested structures", () => {
160
- const list: FileInfo[] = [
166
+ const list: FileTreeNode[] = [
161
167
  dir("level1", "/level1", [
162
168
  dir("level2", "/level1/level2", [
163
169
  dir("level3", "/level1/level2/level3", [