+
(
+
+
+
+ )}
+ />
+ {}
+
+ );
+});
+
+export default DocumentFileTree;
diff --git a/src/components/documents/FileSystem/DocumentFileTree/styles.module.scss b/src/components/documents/FileSystem/DocumentFileTree/styles.module.scss
new file mode 100644
index 000000000..50483d362
--- /dev/null
+++ b/src/components/documents/FileSystem/DocumentFileTree/styles.module.scss
@@ -0,0 +1,30 @@
+.container {
+ display: flex;
+ align-items: flex-start;
+ width: 100%;
+ flex-wrap: wrap;
+ .tree {
+ --trees-search-bg: var(--ifm-background-surface-color);
+ --trees-bg: var(--ifm-background-color);
+ // --trees-search-fg
+ // --trees-border-color
+ // --trees-accent
+ // --trees-fg-muted
+ // --trees-bg-muted
+ color-scheme: light;
+ }
+ .selectedFile {
+ flex-grow: 1;
+ flex-shrink: 1;
+ flex-basis: 300px;
+ max-width: 1200px;
+ }
+}
+
+[data-theme='dark'] {
+ .container {
+ .tree {
+ color-scheme: dark;
+ }
+ }
+}
diff --git a/src/components/documents/FileSystem/File/CodeEditorSelector.tsx b/src/components/documents/FileSystem/DocumentView/CodeEditorSelector.tsx
similarity index 100%
rename from src/components/documents/FileSystem/File/CodeEditorSelector.tsx
rename to src/components/documents/FileSystem/DocumentView/CodeEditorSelector.tsx
diff --git a/src/components/documents/FileSystem/DocumentView/index.tsx b/src/components/documents/FileSystem/DocumentView/index.tsx
new file mode 100644
index 000000000..58862b574
--- /dev/null
+++ b/src/components/documents/FileSystem/DocumentView/index.tsx
@@ -0,0 +1,31 @@
+import React from 'react';
+import styles from './styles.module.scss';
+import { observer } from 'mobx-react-lite';
+import { QuillV2Component } from '../../QuillV2';
+import { ExcalidocComponent } from '@tdev/excalidoc/Component';
+import CodeEditorSelector from './CodeEditorSelector';
+import iCode from '@tdev-models/documents/iCode';
+import { DocumentModelType } from '@tdev-api/document';
+
+interface Props {
+ document?: DocumentModelType;
+}
+
+const DocumentView = observer((props: Props) => {
+ const { document } = props;
+ if (!document) {
+ return null;
+ }
+ if (document.type === 'script' || document.type === 'pyodide_code' || document.type === 'code') {
+ return