diff --git a/.eslintrc.json b/.eslintrc.json
new file mode 100644
index 0000000000..06cc47d9a2
--- /dev/null
+++ b/.eslintrc.json
@@ -0,0 +1,35 @@
+{
+ "root": true,
+ "ignorePatterns": ["**/*"],
+ "plugins": ["@nrwl/nx"],
+ "overrides": [
+ {
+ "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
+ "rules": {
+ "@nrwl/nx/enforce-module-boundaries": [
+ "error",
+ {
+ "enforceBuildableLibDependency": true,
+ "allow": [],
+ "depConstraints": [
+ {
+ "sourceTag": "*",
+ "onlyDependOnLibsWithTags": ["*"]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "files": ["*.ts", "*.tsx"],
+ "extends": ["plugin:@nrwl/nx/typescript"],
+ "rules": {}
+ },
+ {
+ "files": ["*.js", "*.jsx"],
+ "extends": ["plugin:@nrwl/nx/javascript"],
+ "rules": {}
+ }
+ ]
+}
diff --git a/apps/remix-ide/src/app/components/main-panel.js b/apps/remix-ide/src/app/components/main-panel.js
index 66e6a50245..c976a8c159 100644
--- a/apps/remix-ide/src/app/components/main-panel.js
+++ b/apps/remix-ide/src/app/components/main-panel.js
@@ -1,3 +1,7 @@
+/* global Node, requestAnimationFrame */ // eslint-disable-line
+import React from 'react' // eslint-disable-line
+import ReactDOM from 'react-dom' // eslint-disable-line
+import { RemixUiMainPanel } from '@remix-ui/main-panel' // eslint-disable-line
import { AbstractPanel } from './panel'
import * as packageJson from '../../../../../package.json'
const yo = require('yo-yo')
@@ -22,6 +26,7 @@ const profile = {
export class MainPanel extends AbstractPanel {
constructor () {
super(profile)
+ this.element = document.createElement('div')
}
focus (name) {
@@ -29,10 +34,24 @@ export class MainPanel extends AbstractPanel {
super.focus(name)
}
+ // onActivation () {
+ // this.renderComponent()
+ // }
+
render () {
+ // return this.element
return yo`
${this.view}
`
}
+
+ // renderComponent () {
+ // ReactDOM.render(
+ // ,
+ // this.element
+ // )
+ // }
}
diff --git a/libs/remix-ui/abstract-panel/.babelrc b/libs/remix-ui/abstract-panel/.babelrc
new file mode 100644
index 0000000000..ccae900be4
--- /dev/null
+++ b/libs/remix-ui/abstract-panel/.babelrc
@@ -0,0 +1,12 @@
+{
+ "presets": [
+ [
+ "@nrwl/react/babel",
+ {
+ "runtime": "automatic",
+ "useBuiltIns": "usage"
+ }
+ ]
+ ],
+ "plugins": []
+}
diff --git a/libs/remix-ui/abstract-panel/.eslintrc.json b/libs/remix-ui/abstract-panel/.eslintrc.json
new file mode 100644
index 0000000000..50e59482cf
--- /dev/null
+++ b/libs/remix-ui/abstract-panel/.eslintrc.json
@@ -0,0 +1,18 @@
+{
+ "extends": ["plugin:@nrwl/nx/react", "../../../.eslintrc.json"],
+ "ignorePatterns": ["!**/*"],
+ "overrides": [
+ {
+ "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
+ "rules": {}
+ },
+ {
+ "files": ["*.ts", "*.tsx"],
+ "rules": {}
+ },
+ {
+ "files": ["*.js", "*.jsx"],
+ "rules": {}
+ }
+ ]
+}
diff --git a/libs/remix-ui/abstract-panel/README.md b/libs/remix-ui/abstract-panel/README.md
new file mode 100644
index 0000000000..afe064e666
--- /dev/null
+++ b/libs/remix-ui/abstract-panel/README.md
@@ -0,0 +1,7 @@
+# remix-ui-abstract-panel
+
+This library was generated with [Nx](https://nx.dev).
+
+## Running unit tests
+
+Run `nx test remix-ui-abstract-panel` to execute the unit tests via [Jest](https://jestjs.io).
diff --git a/libs/remix-ui/abstract-panel/package.json b/libs/remix-ui/abstract-panel/package.json
new file mode 100644
index 0000000000..d2d23f51ff
--- /dev/null
+++ b/libs/remix-ui/abstract-panel/package.json
@@ -0,0 +1,4 @@
+{
+ "name": "@remix-ui/abstract-panel",
+ "version": "0.0.1"
+}
diff --git a/libs/remix-ui/abstract-panel/src/index.ts b/libs/remix-ui/abstract-panel/src/index.ts
new file mode 100644
index 0000000000..2cc84aaa4c
--- /dev/null
+++ b/libs/remix-ui/abstract-panel/src/index.ts
@@ -0,0 +1 @@
+export * from './lib/remix-ui-abstract-panel';
diff --git a/libs/remix-ui/abstract-panel/src/lib/remix-ui-abstract-panel.module.css b/libs/remix-ui/abstract-panel/src/lib/remix-ui-abstract-panel.module.css
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/libs/remix-ui/abstract-panel/src/lib/remix-ui-abstract-panel.tsx b/libs/remix-ui/abstract-panel/src/lib/remix-ui-abstract-panel.tsx
new file mode 100644
index 0000000000..8d0a1f8347
--- /dev/null
+++ b/libs/remix-ui/abstract-panel/src/lib/remix-ui-abstract-panel.tsx
@@ -0,0 +1,14 @@
+import './remix-ui-abstract-panel.module.css';
+
+/* eslint-disable-next-line */
+export interface RemixUiAbstractPanelProps {}
+
+export function RemixUiAbstractPanel(props: RemixUiAbstractPanelProps) {
+ return (
+
+
Welcome to remix-ui-abstract-panel!
+
+ );
+}
+
+export default RemixUiAbstractPanel;
diff --git a/libs/remix-ui/abstract-panel/tsconfig.json b/libs/remix-ui/abstract-panel/tsconfig.json
new file mode 100644
index 0000000000..8bd701c578
--- /dev/null
+++ b/libs/remix-ui/abstract-panel/tsconfig.json
@@ -0,0 +1,20 @@
+{
+ "extends": "../../../tsconfig.base.json",
+ "compilerOptions": {
+ "jsx": "react-jsx",
+ "allowJs": true,
+ "esModuleInterop": true,
+ "allowSyntheticDefaultImports": true,
+ "forceConsistentCasingInFileNames": true,
+ "strict": true,
+ "noImplicitReturns": true,
+ "noFallthroughCasesInSwitch": true
+ },
+ "files": [],
+ "include": [],
+ "references": [
+ {
+ "path": "./tsconfig.lib.json"
+ }
+ ]
+}
diff --git a/libs/remix-ui/abstract-panel/tsconfig.lib.json b/libs/remix-ui/abstract-panel/tsconfig.lib.json
new file mode 100644
index 0000000000..b560bc4dec
--- /dev/null
+++ b/libs/remix-ui/abstract-panel/tsconfig.lib.json
@@ -0,0 +1,13 @@
+{
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "outDir": "../../../dist/out-tsc",
+ "types": ["node"]
+ },
+ "files": [
+ "../../../node_modules/@nrwl/react/typings/cssmodule.d.ts",
+ "../../../node_modules/@nrwl/react/typings/image.d.ts"
+ ],
+ "exclude": ["**/*.spec.ts", "**/*.spec.tsx"],
+ "include": ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"]
+}
diff --git a/libs/remix-ui/main-panel/.babelrc b/libs/remix-ui/main-panel/.babelrc
new file mode 100644
index 0000000000..ccae900be4
--- /dev/null
+++ b/libs/remix-ui/main-panel/.babelrc
@@ -0,0 +1,12 @@
+{
+ "presets": [
+ [
+ "@nrwl/react/babel",
+ {
+ "runtime": "automatic",
+ "useBuiltIns": "usage"
+ }
+ ]
+ ],
+ "plugins": []
+}
diff --git a/libs/remix-ui/main-panel/.eslintrc.json b/libs/remix-ui/main-panel/.eslintrc.json
new file mode 100644
index 0000000000..50e59482cf
--- /dev/null
+++ b/libs/remix-ui/main-panel/.eslintrc.json
@@ -0,0 +1,18 @@
+{
+ "extends": ["plugin:@nrwl/nx/react", "../../../.eslintrc.json"],
+ "ignorePatterns": ["!**/*"],
+ "overrides": [
+ {
+ "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
+ "rules": {}
+ },
+ {
+ "files": ["*.ts", "*.tsx"],
+ "rules": {}
+ },
+ {
+ "files": ["*.js", "*.jsx"],
+ "rules": {}
+ }
+ ]
+}
diff --git a/libs/remix-ui/main-panel/README.md b/libs/remix-ui/main-panel/README.md
new file mode 100644
index 0000000000..94b0df71d8
--- /dev/null
+++ b/libs/remix-ui/main-panel/README.md
@@ -0,0 +1,7 @@
+# remix-ui-main-panel
+
+This library was generated with [Nx](https://nx.dev).
+
+## Running unit tests
+
+Run `nx test remix-ui-main-panel` to execute the unit tests via [Jest](https://jestjs.io).
diff --git a/libs/remix-ui/main-panel/package.json b/libs/remix-ui/main-panel/package.json
new file mode 100644
index 0000000000..3abca6713c
--- /dev/null
+++ b/libs/remix-ui/main-panel/package.json
@@ -0,0 +1,4 @@
+{
+ "name": "@remix-ui/main-panel",
+ "version": "0.0.1"
+}
diff --git a/libs/remix-ui/main-panel/src/index.ts b/libs/remix-ui/main-panel/src/index.ts
new file mode 100644
index 0000000000..ef68ed6db3
--- /dev/null
+++ b/libs/remix-ui/main-panel/src/index.ts
@@ -0,0 +1 @@
+export * from './lib/remix-ui-main-panel';
diff --git a/libs/remix-ui/main-panel/src/lib/remix-ui-main-panel.module.css b/libs/remix-ui/main-panel/src/lib/remix-ui-main-panel.module.css
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/libs/remix-ui/main-panel/src/lib/remix-ui-main-panel.tsx b/libs/remix-ui/main-panel/src/lib/remix-ui-main-panel.tsx
new file mode 100644
index 0000000000..bf6b8328e7
--- /dev/null
+++ b/libs/remix-ui/main-panel/src/lib/remix-ui-main-panel.tsx
@@ -0,0 +1,19 @@
+import React from 'react' // eslint-disable-line
+import './remix-ui-main-panel.module.css';
+
+/* eslint-disable-next-line */
+export interface RemixUiMainPanelProps {
+ plugin: any
+}
+
+export const RemixUiMainPanel = (props: RemixUiMainPanelProps) => {
+ return (
+
+ {console.log( props.plugin.view)}
+
Remix UI Main Panel
+ {/* { props.plugin.view } */}
+
+ );
+}
+
+export default RemixUiMainPanel;
diff --git a/libs/remix-ui/main-panel/tsconfig.json b/libs/remix-ui/main-panel/tsconfig.json
new file mode 100644
index 0000000000..8bd701c578
--- /dev/null
+++ b/libs/remix-ui/main-panel/tsconfig.json
@@ -0,0 +1,20 @@
+{
+ "extends": "../../../tsconfig.base.json",
+ "compilerOptions": {
+ "jsx": "react-jsx",
+ "allowJs": true,
+ "esModuleInterop": true,
+ "allowSyntheticDefaultImports": true,
+ "forceConsistentCasingInFileNames": true,
+ "strict": true,
+ "noImplicitReturns": true,
+ "noFallthroughCasesInSwitch": true
+ },
+ "files": [],
+ "include": [],
+ "references": [
+ {
+ "path": "./tsconfig.lib.json"
+ }
+ ]
+}
diff --git a/libs/remix-ui/main-panel/tsconfig.lib.json b/libs/remix-ui/main-panel/tsconfig.lib.json
new file mode 100644
index 0000000000..b560bc4dec
--- /dev/null
+++ b/libs/remix-ui/main-panel/tsconfig.lib.json
@@ -0,0 +1,13 @@
+{
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "outDir": "../../../dist/out-tsc",
+ "types": ["node"]
+ },
+ "files": [
+ "../../../node_modules/@nrwl/react/typings/cssmodule.d.ts",
+ "../../../node_modules/@nrwl/react/typings/image.d.ts"
+ ],
+ "exclude": ["**/*.spec.ts", "**/*.spec.tsx"],
+ "include": ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"]
+}
diff --git a/libs/remix-ui/terminal/src/lib/remix-ui-terminal.tsx b/libs/remix-ui/terminal/src/lib/remix-ui-terminal.tsx
index 3c13ed625c..5dcd5872e4 100644
--- a/libs/remix-ui/terminal/src/lib/remix-ui-terminal.tsx
+++ b/libs/remix-ui/terminal/src/lib/remix-ui-terminal.tsx
@@ -87,9 +87,15 @@ export const RemixUiTerminal = (props: RemixUiTerminalProps) => {
props.onReady({
logHtml: (html) => {
scriptRunnerDispatch({ type: 'html', payload: { message: [html.innerText] } })
+
+ setTimeout(() => {
+ }, 100)
},
+
log: (message) => {
- scriptRunnerDispatch({ type: 'log', payload: { message: [message] } })
+ setTimeout(() => {
+ scriptRunnerDispatch({ type: 'log', payload: { message: [message] } })
+ }, 100)
}
})
}, [])
diff --git a/nx.json b/nx.json
index fd90c35f84..6edf3bfc33 100644
--- a/nx.json
+++ b/nx.json
@@ -138,14 +138,12 @@
},
"remix-ui-tabs": {
"tags": []
+ },
+ "remix-ui-main-panel": {
+ "tags": []
+ },
+ "remix-ui-abstract-panel": {
+ "tags": []
}
- },
- "targetDependencies": {
- "build": [
- {
- "target": "build",
- "projects": "dependencies"
- }
- ]
}
}
diff --git a/package.json b/package.json
index eafe773515..eeee6affb2 100644
--- a/package.json
+++ b/package.json
@@ -161,6 +161,7 @@
"chokidar": "^2.1.8",
"color-support": "^1.1.3",
"commander": "^2.20.3",
+ "core-js": "^3.6.5",
"deep-equal": "^1.0.1",
"document-register-element": "1.13.1",
"ethereumjs-util": "^7.0.10",
@@ -186,6 +187,7 @@
"react-bootstrap": "^1.6.4",
"react-dom": "^17.0.2",
"react-tabs": "^3.2.2",
+ "regenerator-runtime": "0.13.7",
"selenium": "^2.20.0",
"signale": "^1.4.0",
"string-similarity": "^4.0.4",
diff --git a/tsconfig.base.json b/tsconfig.base.json
index c87af8611e..dd7f9d7c37 100644
--- a/tsconfig.base.json
+++ b/tsconfig.base.json
@@ -67,9 +67,9 @@
"@remix-ui/editor": ["libs/remix-ui/editor/src/index.ts"],
"@remix-ui/tabs": ["libs/remix-ui/tabs/src/index.ts"],
"@remix-ui/helper": ["libs/remix-ui/helper/src/index.ts"],
- "@remix-ui/vertical-icons-panel": [
- "libs/remix-ui/vertical-icons-panel/src/index.ts"
- ]
+ "@remix-ui/vertical-icons-panel": ["libs/remix-ui/vertical-icons-panel/src/index.ts"],
+ "@remix-ui/main-panel": ["libs/remix-ui/main-panel/src/index.ts"],
+ "@remix-ui/side-panel": ["libs/remix-ui/side-panel/src/index.ts"]
}
},
"exclude": ["node_modules", "tmp"]
diff --git a/workspace.json b/workspace.json
index 5c51162cd7..a66ea5977e 100644
--- a/workspace.json
+++ b/workspace.json
@@ -1,5 +1,71 @@
{
"version": 1,
+ "cli": {
+ "defaultCollection": "@nrwl/react"
+ },
+ "defaultProject": "remix-ide",
+ "schematics": {
+ "@nrwl/workspace": {
+ "library": {
+ "linter": "eslint"
+ }
+ },
+ "@nrwl/cypress": {
+ "cypress-project": {
+ "linter": "eslint"
+ }
+ },
+ "@nrwl/react": {
+ "application": {
+ "style": "css",
+ "linter": "eslint",
+ "babel": true
+ },
+ "component": {
+ "style": "css"
+ },
+ "library": {
+ "style": "css",
+ "linter": "eslint"
+ }
+ },
+ "@nrwl/next": {
+ "application": {
+ "linter": "eslint"
+ }
+ },
+ "@nrwl/web": {
+ "application": {
+ "linter": "eslint"
+ }
+ },
+ "@nrwl/node": {
+ "application": {
+ "linter": "eslint"
+ },
+ "library": {
+ "linter": "eslint"
+ }
+ },
+ "@nrwl/nx-plugin": {
+ "plugin": {
+ "linter": "eslint"
+ }
+ },
+ "@nrwl/nest": {
+ "application": {
+ "linter": "eslint"
+ }
+ },
+ "@nrwl/express": {
+ "application": {
+ "linter": "eslint"
+ },
+ "library": {
+ "linter": "eslint"
+ }
+ }
+ },
"projects": {
"remix-ide": {
"root": "apps/remix-ide",
@@ -1068,87 +1134,79 @@
}
}
}
- }
- },
- "remix-ui-editor": {
- "root": "libs/remix-ui/editor",
- "sourceRoot": "libs/remix-ui/editor/src",
- "projectType": "library",
- "schematics": {},
- "architect": {
- "lint": {
- "builder": "@nrwl/linter:lint",
- "options": {
- "linter": "eslint",
- "babel": true
- },
- "component": {
- "style": "css"
- },
- "library": {
- "style": "css",
- "linter": "eslint"
- }
- },
- "library": {
- "linter": "eslint"
- }
},
- "@nrwl/nx-plugin": {
- "plugin": {
- "linter": "eslint"
- }
- },
- "@nrwl/web": {
- "application": {
- "linter": "eslint"
- }
- },
- "@nrwl/node": {
- "application": {
- "linter": "eslint"
+ "remix-ui-main-panel": {
+ "root": "libs/remix-ui/main-panel",
+ "sourceRoot": "libs/remix-ui/main-panel/src",
+ "projectType": "library",
+ "architect": {
+ "build": {
+ "builder": "@nrwl/web:package",
+ "outputs": ["{options.outputPath}"],
+ "options": {
+ "outputPath": "dist/libs/remix-ui/main-panel",
+ "tsConfig": "libs/remix-ui/main-panel/tsconfig.lib.json",
+ "project": "libs/remix-ui/main-panel/package.json",
+ "entryFile": "libs/remix-ui/main-panel/src/index.ts",
+ "external": ["react/jsx-runtime"],
+ "rollupConfig": "@nrwl/react/plugins/bundle-rollup",
+ "assets": [
+ {
+ "glob": "libs/remix-ui/main-panel/README.md",
+ "input": ".",
+ "output": "."
+ }
+ ]
+ }
},
- "library": {
- "linter": "eslint"
+ "lint": {
+ "builder": "@nrwl/linter:eslint",
+ "options": {
+ "lintFilePatterns": [
+ "libs/remix-ui/main-panel/**/*.{ts,tsx,js,jsx}"
+ ]
+ }
}
}
},
- "cli": {
- "defaultCollection": "@nrwl/react"
- },
- "schematics": {
- "@nrwl/workspace": {
- "library": {
- "linter": "eslint"
- }
- },
- "@nrwl/cypress": {
- "cypress-project": {
- "linter": "eslint"
- }
- },
- "@nrwl/react": {
- "application": {
- "style": "css",
- "linter": "eslint",
- "babel": true
- },
- "component": {
- "style": "css"
+ "remix-ui-abstract-panel": {
+ "root": "libs/remix-ui/abstract-panel",
+ "sourceRoot": "libs/remix-ui/abstract-panel/src",
+ "projectType": "library",
+ "architect": {
+ "build": {
+ "builder": "@nrwl/web:package",
+ "outputs": ["{options.outputPath}"],
+ "options": {
+ "outputPath": "dist/libs/remix-ui/abstract-panel",
+ "tsConfig": "libs/remix-ui/abstract-panel/tsconfig.lib.json",
+ "project": "libs/remix-ui/abstract-panel/package.json",
+ "entryFile": "libs/remix-ui/abstract-panel/src/index.ts",
+ "external": ["react/jsx-runtime"],
+ "rollupConfig": "@nrwl/react/plugins/bundle-rollup",
+ "assets": [
+ {
+ "glob": "libs/remix-ui/abstract-panel/README.md",
+ "input": ".",
+ "output": "."
+ }
+ ]
+ }
},
- "library": {
- "style": "css",
- "linter": "eslint"
+ "lint": {
+ "builder": "@nrwl/linter:eslint",
+ "options": {
+ "lintFilePatterns": [
+ "libs/remix-ui/abstract-panel/**/*.{ts,tsx,js,jsx}"
+ ]
+ }
}
- },
- "library": {
- "linter": "eslint"
- }
- },
- "@nrwl/nx-plugin": {
- "plugin": {
- "linter": "eslint"
}
- },
- "defaultProject": "remix-ide"
+ }
+ },
+ "@nrwl/nx-plugin": {
+ "plugin": {
+ "linter": "eslint"
+ }
+ }
}