diff --git a/biome.json b/biome.json
index 5479d49cd..5ab3cf6f0 100644
--- a/biome.json
+++ b/biome.json
@@ -1,12 +1,10 @@
{
- "$schema": "https://biomejs.dev/schemas/1.8.3/schema.json",
+ "$schema": "https://biomejs.dev/schemas/2.1.1/schema.json",
"formatter": {
"enabled": true,
"indentStyle": "tab"
},
- "organizeImports": {
- "enabled": true
- },
+ "assist": { "actions": { "source": { "organizeImports": "on" } } },
"linter": {
"enabled": true,
"rules": {
@@ -34,23 +32,21 @@
"globals": ["Global1"]
},
"files": {
- "include": [
- "src/**/*",
- "utils/**/*.js",
- "www/**/*.js",
- "www/res/**/*.css",
- "src/plugins/terminal"
- ],
- "ignore": [
- "ace-builds",
- "www/js/**/*.js",
- "www/css/**/*.css",
- "src/plugins/**/*",
- "plugins/**/*",
- "hooks/**/*",
- "fastlane/**/*",
- "res/**/*",
- "platforms/**/*"
+ "includes": [
+ "**/src/**/*",
+ "**/utils/**/*.js",
+ "**/www/**/*.js",
+ "**/www/res/**/*.css",
+ "**/src/plugins/terminal/**",
+ "!**/ace-builds",
+ "!**/www/js/**/*.js",
+ "!**/www/css/**/*.css",
+ "!**/src/plugins/**/*",
+ "!**/plugins/**/*",
+ "!**/hooks/**/*",
+ "!**/fastlane/**/*",
+ "!**/res/**/*",
+ "!**/platforms/**/*"
]
}
}
diff --git a/package-lock.json b/package-lock.json
index 62e57cc9d..10c1af0e1 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -49,7 +49,7 @@
"@babel/preset-env": "^7.24.6",
"@babel/runtime": "^7.24.6",
"@babel/runtime-corejs3": "^7.24.6",
- "@biomejs/biome": "1.8.3",
+ "@biomejs/biome": "2.1.1",
"@types/ace": "^0.0.52",
"@types/url-parse": "^1.4.11",
"autoprefixer": "^10.4.19",
@@ -1942,11 +1942,11 @@
}
},
"node_modules/@biomejs/biome": {
- "version": "1.8.3",
- "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-1.8.3.tgz",
- "integrity": "sha512-/uUV3MV+vyAczO+vKrPdOW0Iaet7UnJMU4bNMinggGJTAnBPjCoLEYcyYtYHNnUNYlv4xZMH6hVIQCAozq8d5w==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-2.1.1.tgz",
+ "integrity": "sha512-HFGYkxG714KzG+8tvtXCJ1t1qXQMzgWzfvQaUjxN6UeKv+KvMEuliInnbZLJm6DXFXwqVi6446EGI0sGBLIYng==",
"dev": true,
- "hasInstallScript": true,
+ "license": "MIT OR Apache-2.0",
"bin": {
"biome": "bin/biome"
},
@@ -1958,24 +1958,25 @@
"url": "https://opencollective.com/biome"
},
"optionalDependencies": {
- "@biomejs/cli-darwin-arm64": "1.8.3",
- "@biomejs/cli-darwin-x64": "1.8.3",
- "@biomejs/cli-linux-arm64": "1.8.3",
- "@biomejs/cli-linux-arm64-musl": "1.8.3",
- "@biomejs/cli-linux-x64": "1.8.3",
- "@biomejs/cli-linux-x64-musl": "1.8.3",
- "@biomejs/cli-win32-arm64": "1.8.3",
- "@biomejs/cli-win32-x64": "1.8.3"
+ "@biomejs/cli-darwin-arm64": "2.1.1",
+ "@biomejs/cli-darwin-x64": "2.1.1",
+ "@biomejs/cli-linux-arm64": "2.1.1",
+ "@biomejs/cli-linux-arm64-musl": "2.1.1",
+ "@biomejs/cli-linux-x64": "2.1.1",
+ "@biomejs/cli-linux-x64-musl": "2.1.1",
+ "@biomejs/cli-win32-arm64": "2.1.1",
+ "@biomejs/cli-win32-x64": "2.1.1"
}
},
"node_modules/@biomejs/cli-darwin-arm64": {
- "version": "1.8.3",
- "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.8.3.tgz",
- "integrity": "sha512-9DYOjclFpKrH/m1Oz75SSExR8VKvNSSsLnVIqdnKexj6NwmiMlKk94Wa1kZEdv6MCOHGHgyyoV57Cw8WzL5n3A==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.1.1.tgz",
+ "integrity": "sha512-2Muinu5ok4tWxq4nu5l19el48cwCY/vzvI7Vjbkf3CYIQkjxZLyj0Ad37Jv2OtlXYaLvv+Sfu1hFeXt/JwRRXQ==",
"cpu": [
"arm64"
],
"dev": true,
+ "license": "MIT OR Apache-2.0",
"optional": true,
"os": [
"darwin"
@@ -1985,13 +1986,14 @@
}
},
"node_modules/@biomejs/cli-darwin-x64": {
- "version": "1.8.3",
- "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.8.3.tgz",
- "integrity": "sha512-UeW44L/AtbmOF7KXLCoM+9PSgPo0IDcyEUfIoOXYeANaNXXf9mLUwV1GeF2OWjyic5zj6CnAJ9uzk2LT3v/wAw==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.1.1.tgz",
+ "integrity": "sha512-cC8HM5lrgKQXLAK+6Iz2FrYW5A62pAAX6KAnRlEyLb+Q3+Kr6ur/sSuoIacqlp1yvmjHJqjYfZjPvHWnqxoEIA==",
"cpu": [
"x64"
],
"dev": true,
+ "license": "MIT OR Apache-2.0",
"optional": true,
"os": [
"darwin"
@@ -2001,13 +2003,14 @@
}
},
"node_modules/@biomejs/cli-linux-arm64": {
- "version": "1.8.3",
- "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.8.3.tgz",
- "integrity": "sha512-fed2ji8s+I/m8upWpTJGanqiJ0rnlHOK3DdxsyVLZQ8ClY6qLuPc9uehCREBifRJLl/iJyQpHIRufLDeotsPtw==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.1.1.tgz",
+ "integrity": "sha512-tw4BEbhAUkWPe4WBr6IX04DJo+2jz5qpPzpW/SWvqMjb9QuHY8+J0M23V8EPY/zWU4IG8Ui0XESapR1CB49Q7g==",
"cpu": [
"arm64"
],
"dev": true,
+ "license": "MIT OR Apache-2.0",
"optional": true,
"os": [
"linux"
@@ -2017,13 +2020,14 @@
}
},
"node_modules/@biomejs/cli-linux-arm64-musl": {
- "version": "1.8.3",
- "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.8.3.tgz",
- "integrity": "sha512-9yjUfOFN7wrYsXt/T/gEWfvVxKlnh3yBpnScw98IF+oOeCYb5/b/+K7YNqKROV2i1DlMjg9g/EcN9wvj+NkMuQ==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.1.1.tgz",
+ "integrity": "sha512-/7FBLnTswu4jgV9ttI3AMIdDGqVEPIZd8I5u2D4tfCoj8rl9dnjrEQbAIDlWhUXdyWlFSz8JypH3swU9h9P+2A==",
"cpu": [
"arm64"
],
"dev": true,
+ "license": "MIT OR Apache-2.0",
"optional": true,
"os": [
"linux"
@@ -2033,13 +2037,14 @@
}
},
"node_modules/@biomejs/cli-linux-x64": {
- "version": "1.8.3",
- "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-1.8.3.tgz",
- "integrity": "sha512-I8G2QmuE1teISyT8ie1HXsjFRz9L1m5n83U1O6m30Kw+kPMPSKjag6QGUn+sXT8V+XWIZxFFBoTDEDZW2KPDDw==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-2.1.1.tgz",
+ "integrity": "sha512-3WJ1GKjU7NzZb6RTbwLB59v9cTIlzjbiFLDB0z4376TkDqoNYilJaC37IomCr/aXwuU8QKkrYoHrgpSq5ffJ4Q==",
"cpu": [
"x64"
],
"dev": true,
+ "license": "MIT OR Apache-2.0",
"optional": true,
"os": [
"linux"
@@ -2049,13 +2054,14 @@
}
},
"node_modules/@biomejs/cli-linux-x64-musl": {
- "version": "1.8.3",
- "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.8.3.tgz",
- "integrity": "sha512-UHrGJX7PrKMKzPGoEsooKC9jXJMa28TUSMjcIlbDnIO4EAavCoVmNQaIuUSH0Ls2mpGMwUIf+aZJv657zfWWjA==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.1.1.tgz",
+ "integrity": "sha512-kUu+loNI3OCD2c12cUt7M5yaaSjDnGIksZwKnueubX6c/HWUyi/0mPbTBHR49Me3F0KKjWiKM+ZOjsmC+lUt9g==",
"cpu": [
"x64"
],
"dev": true,
+ "license": "MIT OR Apache-2.0",
"optional": true,
"os": [
"linux"
@@ -2065,13 +2071,14 @@
}
},
"node_modules/@biomejs/cli-win32-arm64": {
- "version": "1.8.3",
- "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.8.3.tgz",
- "integrity": "sha512-J+Hu9WvrBevfy06eU1Na0lpc7uR9tibm9maHynLIoAjLZpQU3IW+OKHUtyL8p6/3pT2Ju5t5emReeIS2SAxhkQ==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.1.1.tgz",
+ "integrity": "sha512-vEHK0v0oW+E6RUWLoxb2isI3rZo57OX9ZNyyGH701fZPj6Il0Rn1f5DMNyCmyflMwTnIQstEbs7n2BxYSqQx4Q==",
"cpu": [
"arm64"
],
"dev": true,
+ "license": "MIT OR Apache-2.0",
"optional": true,
"os": [
"win32"
@@ -2081,13 +2088,14 @@
}
},
"node_modules/@biomejs/cli-win32-x64": {
- "version": "1.8.3",
- "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-1.8.3.tgz",
- "integrity": "sha512-/PJ59vA1pnQeKahemaQf4Nyj7IKUvGQSc3Ze1uIGi+Wvr1xF7rGobSrAAG01T/gUDG21vkDsZYM03NAmPiVkqg==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-2.1.1.tgz",
+ "integrity": "sha512-i2PKdn70kY++KEF/zkQFvQfX1e8SkA8hq4BgC+yE9dZqyLzB/XStY2MvwI3qswlRgnGpgncgqe0QYKVS1blksg==",
"cpu": [
"x64"
],
"dev": true,
+ "license": "MIT OR Apache-2.0",
"optional": true,
"os": [
"win32"
@@ -2834,12 +2842,13 @@
"peer": true
},
"node_modules/@types/node": {
- "version": "20.11.13",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.13.tgz",
- "integrity": "sha512-5G4zQwdiQBSWYTDAH1ctw2eidqdhMJaNsiIDKHFr55ihz5Trl2qqR8fdrT732yPBho5gkNxXm67OxWFBqX9aPg==",
+ "version": "24.1.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-24.1.0.tgz",
+ "integrity": "sha512-ut5FthK5moxFKH2T1CUOC6ctR67rQRvvHdFLCD2Ql6KXmMuCrjsSsRI9UsLCm9M18BMwClv4pn327UvB7eeO1w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "undici-types": "~5.26.4"
+ "undici-types": "~7.8.0"
}
},
"node_modules/@types/trusted-types": {
@@ -10121,6 +10130,126 @@
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
+ "node_modules/ts-loader": {
+ "version": "9.5.2",
+ "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.2.tgz",
+ "integrity": "sha512-Qo4piXvOTWcMGIgRiuFa6nHNm+54HbYaZCKqc9eeZCLRy3XqafQgwX2F7mofrbJG3g7EEb+lkiR+z2Lic2s3Zw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "enhanced-resolve": "^5.0.0",
+ "micromatch": "^4.0.0",
+ "semver": "^7.3.4",
+ "source-map": "^0.7.4"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "typescript": "*",
+ "webpack": "^5.0.0"
+ }
+ },
+ "node_modules/ts-loader/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/ts-loader/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/ts-loader/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/ts-loader/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/ts-loader/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ts-loader/node_modules/semver": {
+ "version": "7.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+ "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/ts-loader/node_modules/source-map": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/ts-loader/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/tslib": {
"version": "1.14.1",
"license": "0BSD"
@@ -10170,16 +10299,31 @@
"is-typedarray": "^1.0.0"
}
},
+ "node_modules/typescript": {
+ "version": "5.8.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz",
+ "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
"node_modules/uc.micro": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz",
"integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A=="
},
"node_modules/undici-types": {
- "version": "5.26.5",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
- "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
- "dev": true
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz",
+ "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/unicode-canonical-property-names-ecmascript": {
"version": "2.0.0",
diff --git a/package.json b/package.json
index 88206ac5d..f29ca0c5c 100644
--- a/package.json
+++ b/package.json
@@ -59,7 +59,7 @@
"@babel/preset-env": "^7.24.6",
"@babel/runtime": "^7.24.6",
"@babel/runtime-corejs3": "^7.24.6",
- "@biomejs/biome": "1.8.3",
+ "@biomejs/biome": "2.1.1",
"@types/ace": "^0.0.52",
"@types/url-parse": "^1.4.11",
"autoprefixer": "^10.4.19",
@@ -129,4 +129,4 @@
"yargs": "^17.7.2"
},
"browserslist": "cover 100%,not android < 5"
-}
\ No newline at end of file
+}
diff --git a/src/ace/colorView.js b/src/ace/colorView.js
index 3952c2241..1624544e3 100644
--- a/src/ace/colorView.js
+++ b/src/ace/colorView.js
@@ -8,10 +8,10 @@ import {
HEX,
HSL,
HSLA,
+ isValidColor,
NAMED_COLORS,
RGB,
RGBA,
- isValidColor,
} from "utils/color/regex";
const COLORPICKER_TOKEN_CLASS = ".ace_color";
diff --git a/src/ace/commands.js b/src/ace/commands.js
index 233a23c0b..8f8f0047d 100644
--- a/src/ace/commands.js
+++ b/src/ace/commands.js
@@ -1,5 +1,5 @@
-import prompt from "dialogs/prompt";
import fsOperation from "fileSystem";
+import prompt from "dialogs/prompt";
import actions from "handlers/quickTools";
import keyBindings from "lib/keyBindings";
import settings from "lib/settings";
diff --git a/src/components/terminal/terminalTouchSelection.css b/src/components/terminal/terminalTouchSelection.css
index 2cb7b1896..990a44fca 100644
--- a/src/components/terminal/terminalTouchSelection.css
+++ b/src/components/terminal/terminalTouchSelection.css
@@ -3,133 +3,133 @@
*/
.terminal-selection-overlay {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- pointer-events: none;
- z-index: 100;
- overflow: hidden;
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ pointer-events: none;
+ z-index: 100;
+ overflow: hidden;
}
.terminal-selection-handle {
- position: absolute;
- background: #2196f3;
- border: 2px solid #fff;
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
- display: none;
- pointer-events: auto;
- touch-action: none;
- z-index: 101;
- cursor: grab;
- transition: transform 0.15s ease;
+ position: absolute;
+ background: #2196f3;
+ border: 2px solid #fff;
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
+ display: none;
+ pointer-events: auto;
+ touch-action: none;
+ z-index: 101;
+ cursor: grab;
+ transition: transform 0.15s ease;
}
.terminal-selection-handle:active {
- cursor: grabbing;
+ cursor: grabbing;
}
.terminal-selection-handle-start,
.terminal-selection-handle-end {
- transform: rotate(135deg);
- border-radius: 50% 50% 50% 0;
+ transform: rotate(135deg);
+ border-radius: 50% 50% 50% 0;
}
.terminal-context-menu {
- position: absolute;
- background-color: var(--secondary-color);
- border-radius: 4px;
- height: 40px;
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
- box-shadow: 0 4px 12px var(--box-shadow-color);
- border: none;
- border: solid 1px var(--popup-border-color);
- z-index: 1000;
- min-width: 200px;
- animation: fadeIn 0.2s ease;
- flex-direction: row;
- align-items: center;
- justify-content: space-around;
- pointer-events: auto;
+ position: absolute;
+ background-color: var(--secondary-color);
+ border-radius: 4px;
+ height: 40px;
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
+ box-shadow: 0 4px 12px var(--box-shadow-color);
+ border: none;
+ border: solid 1px var(--popup-border-color);
+ z-index: 1000;
+ min-width: 200px;
+ animation: fadeIn 0.2s ease;
+ flex-direction: row;
+ align-items: center;
+ justify-content: space-around;
+ pointer-events: auto;
}
@keyframes fadeIn {
- from {
- opacity: 0;
- transform: translateY(10px);
- }
- to {
- opacity: 1;
- transform: translateY(0);
- }
+ from {
+ opacity: 0;
+ transform: translateY(10px);
+ }
+ to {
+ opacity: 1;
+ transform: translateY(0);
+ }
}
.terminal-context-menu button {
- display: inline-block;
- flex: 1;
- padding: 12px 16px;
- border: none;
- background: transparent;
- color: #fff;
- font-size: 14px;
- font-weight: 500;
- text-align: center;
- cursor: pointer;
- border-radius: 16px;
- margin: 0 4px;
- transition: background-color 0.15s ease;
- white-space: nowrap;
- pointer-events: auto;
+ display: inline-block;
+ flex: 1;
+ padding: 12px 16px;
+ border: none;
+ background: transparent;
+ color: #fff;
+ font-size: 14px;
+ font-weight: 500;
+ text-align: center;
+ cursor: pointer;
+ border-radius: 16px;
+ margin: 0 4px;
+ transition: background-color 0.15s ease;
+ white-space: nowrap;
+ pointer-events: auto;
}
.terminal-context-menu button:hover,
.terminal-context-menu button:focus {
- background: #616161;
- outline: none;
+ background: #616161;
+ outline: none;
}
.terminal-context-menu button:active {
- background: #757575;
+ background: #757575;
}
@media (min-width: 768px) {
- .terminal-selection-handle {
- width: 28px;
- height: 28px;
- }
-
- .terminal-context-menu {
- min-width: 240px;
- }
-
- .terminal-context-menu button {
- padding: 14px 18px;
- font-size: 16px;
- }
+ .terminal-selection-handle {
+ width: 28px;
+ height: 28px;
+ }
+
+ .terminal-context-menu {
+ min-width: 240px;
+ }
+
+ .terminal-context-menu button {
+ padding: 14px 18px;
+ font-size: 16px;
+ }
}
@media (prefers-contrast: high) {
- .terminal-selection-handle {
- border-width: 3px;
- box-shadow: 0 3px 12px rgba(0, 0, 0, 0.6);
- }
-
- .terminal-context-menu {
- border: 2px solid #000;
- }
+ .terminal-selection-handle {
+ border-width: 3px;
+ box-shadow: 0 3px 12px rgba(0, 0, 0, 0.6);
+ }
+
+ .terminal-context-menu {
+ border: 2px solid #000;
+ }
}
@media (prefers-reduced-motion: reduce) {
- .terminal-selection-handle {
- transition: none;
- }
+ .terminal-selection-handle {
+ transition: none;
+ }
- .terminal-context-menu {
- animation: none;
- }
+ .terminal-context-menu {
+ animation: none;
+ }
- .terminal-context-menu button {
- transition: none;
- }
+ .terminal-context-menu button {
+ transition: none;
+ }
}
diff --git a/src/components/toast/index.js b/src/components/toast/index.js
index bdedd467a..bed7ace02 100644
--- a/src/components/toast/index.js
+++ b/src/components/toast/index.js
@@ -17,14 +17,12 @@ export default function toast(message, duration = 0, bgColor, color) {
style={{ backgroundColor: bgColor, color }}
>
{message}
- {duration === false ? (
-
- ) : (
- ""
- )}
+ {duration === false
+ ?
+ : ""}
);
diff --git a/src/dialogs/select.js b/src/dialogs/select.js
index 9503e3de5..764dee865 100644
--- a/src/dialogs/select.js
+++ b/src/dialogs/select.js
@@ -48,9 +48,9 @@ function select(title, items, options = {}) {
const $list = tag("ul", {
className: `scroll${!textTransform ? " no-text-transform" : ""}`,
});
- const $titleSpan = title ? (
- {title}
- ) : null;
+ const $titleSpan = title
+ ? {title}
+ : null;
const $select = (
{$titleSpan ? [$titleSpan, $list] : $list}
diff --git a/src/fileSystem/externalFs.js b/src/fileSystem/externalFs.js
index 8f6b22f2f..8ff1a291e 100644
--- a/src/fileSystem/externalFs.js
+++ b/src/fileSystem/externalFs.js
@@ -1,7 +1,7 @@
import loader from "dialogs/loader";
-import Url from "utils/Url";
import { decode, encode } from "utils/encodings";
import helpers from "utils/helpers";
+import Url from "utils/Url";
const externalFs = {
async readFile(url) {
diff --git a/src/fileSystem/ftp.js b/src/fileSystem/ftp.js
index 7002e89eb..8ba1ea720 100644
--- a/src/fileSystem/ftp.js
+++ b/src/fileSystem/ftp.js
@@ -1,9 +1,9 @@
import settings from "lib/settings";
import mimeType from "mime-types";
-import Path from "utils/Path";
-import Url from "utils/Url";
import { decode, encode } from "utils/encodings";
import helpers from "utils/helpers";
+import Path from "utils/Path";
+import Url from "utils/Url";
import internalFs from "./internalFs";
class FtpClient {
diff --git a/src/fileSystem/index.js b/src/fileSystem/index.js
index d61e6e967..2d74065ad 100644
--- a/src/fileSystem/index.js
+++ b/src/fileSystem/index.js
@@ -1,6 +1,6 @@
import ajax from "@deadlyjack/ajax";
-import Url from "utils/Url";
import { decode } from "utils/encodings";
+import Url from "utils/Url";
import externalFs from "./externalFs";
import Ftp from "./ftp";
import internalFs from "./internalFs";
diff --git a/src/fileSystem/internalFs.js b/src/fileSystem/internalFs.js
index c53654cf7..870da7c41 100644
--- a/src/fileSystem/internalFs.js
+++ b/src/fileSystem/internalFs.js
@@ -1,8 +1,8 @@
-import ajax from "@deadlyjack/ajax";
import fsOperation from "fileSystem";
-import Url from "utils/Url";
+import ajax from "@deadlyjack/ajax";
import { decode, encode } from "utils/encodings";
import helpers from "utils/helpers";
+import Url from "utils/Url";
const internalFs = {
/**
diff --git a/src/fileSystem/sftp.js b/src/fileSystem/sftp.js
index 8c582113e..539a11e48 100644
--- a/src/fileSystem/sftp.js
+++ b/src/fileSystem/sftp.js
@@ -1,9 +1,9 @@
import settings from "lib/settings";
import mimeType from "mime-types";
-import Path from "utils/Path";
-import Url from "utils/Url";
import { decode, encode } from "utils/encodings";
import helpers from "utils/helpers";
+import Path from "utils/Path";
+import Url from "utils/Url";
import internalFs from "./internalFs";
class SftpClient {
diff --git a/src/handlers/keyboard.js b/src/handlers/keyboard.js
index 83ab2c24b..62567f8fe 100644
--- a/src/handlers/keyboard.js
+++ b/src/handlers/keyboard.js
@@ -1,6 +1,6 @@
import {
- HARDKEYBOARDHIDDEN_NO,
getSystemConfiguration,
+ HARDKEYBOARDHIDDEN_NO,
} from "lib/systemConfiguration";
import KeyboardEvent from "utils/keyboardEvent";
import windowResize from "./windowResize";
diff --git a/src/lib/acode.js b/src/lib/acode.js
index 7bec984d8..f278cf142 100644
--- a/src/lib/acode.js
+++ b/src/lib/acode.js
@@ -1,4 +1,7 @@
+import fsOperation from "fileSystem";
+import sidebarApps from "sidebarApps";
import ajax from "@deadlyjack/ajax";
+import { addMode, removeMode } from "ace/modelist";
import Contextmenu from "components/contextmenu";
import inputhints from "components/inputhints";
import Page from "components/page";
@@ -16,7 +19,7 @@ import loader from "dialogs/loader";
import multiPrompt from "dialogs/multiPrompt";
import prompt from "dialogs/prompt";
import select from "dialogs/select";
-import fsOperation from "fileSystem";
+import { addIntentHandler, removeIntentHandler } from "handlers/intent";
import keyboardHandler from "handlers/keyboard";
import purchaseListener from "handlers/purchase";
import windowResize from "handlers/windowResize";
@@ -27,27 +30,21 @@ import files from "lib/fileList";
import fileTypeHandler from "lib/fileTypeHandler";
import fonts from "lib/fonts";
import NotificationManager from "lib/notificationManager";
-import openFolder from "lib/openFolder";
+import openFolder, { addedFolder } from "lib/openFolder";
import projects from "lib/projects";
import selectionMenu from "lib/selectionMenu";
import appSettings from "lib/settings";
import FileBrowser from "pages/fileBrowser";
import formatterSettings from "settings/formatterSettings";
-import sidebarApps from "sidebarApps";
import ThemeBuilder from "theme/builder";
import themes from "theme/list";
-import Url from "utils/Url";
import Color from "utils/color";
-import encodings from "utils/encodings";
+import encodings, { decode, encode } from "utils/encodings";
import helpers from "utils/helpers";
import KeyboardEvent from "utils/keyboardEvent";
+import Url from "utils/Url";
import constants from "./constants";
-import { addMode, removeMode } from "ace/modelist";
-import { addIntentHandler, removeIntentHandler } from "handlers/intent";
-import { addedFolder } from "lib/openFolder";
-import { decode, encode } from "utils/encodings";
-
export default class Acode {
#modules = {};
#pluginsInit = {};
diff --git a/src/lib/auth.js b/src/lib/auth.js
index e8ac126e9..4d0763a41 100644
--- a/src/lib/auth.js
+++ b/src/lib/auth.js
@@ -1,5 +1,5 @@
-import toast from "components/toast";
import fsOperation from "fileSystem";
+import toast from "components/toast";
import { addIntentHandler } from "handlers/intent";
import constants from "./constants";
diff --git a/src/lib/checkFiles.js b/src/lib/checkFiles.js
index 9f585f9b4..3b369d481 100644
--- a/src/lib/checkFiles.js
+++ b/src/lib/checkFiles.js
@@ -1,6 +1,6 @@
+import fsOperation from "fileSystem";
import alert from "dialogs/alert";
import confirm from "dialogs/confirm";
-import fsOperation from "fileSystem";
let checkFileEnabled = true;
diff --git a/src/lib/commands.js b/src/lib/commands.js
index e0bf653f3..94408dd80 100644
--- a/src/lib/commands.js
+++ b/src/lib/commands.js
@@ -1,10 +1,10 @@
+import fsOperation from "fileSystem";
import Sidebar from "components/sidebar";
import { TerminalManager } from "components/terminal";
import color from "dialogs/color";
import confirm from "dialogs/confirm";
import prompt from "dialogs/prompt";
import select from "dialogs/select";
-import fsOperation from "fileSystem";
import actions from "handlers/quickTools";
import recents from "lib/recents";
import FileBrowser from "pages/fileBrowser";
@@ -18,9 +18,9 @@ import findFile from "palettes/findFile";
import browser from "plugins/browser";
import help from "settings/helpSettings";
import mainSettings from "settings/mainSettings";
-import Url from "utils/Url";
import { getColorRange } from "utils/color/regex";
import helpers from "utils/helpers";
+import Url from "utils/Url";
import checkFiles from "./checkFiles";
import constants from "./constants";
import EditorFile from "./editorFile";
diff --git a/src/lib/editorFile.js b/src/lib/editorFile.js
index 99f9d9034..c8c96d64f 100644
--- a/src/lib/editorFile.js
+++ b/src/lib/editorFile.js
@@ -1,14 +1,14 @@
+import fsOperation from "fileSystem";
import Sidebar from "components/sidebar";
import tile from "components/tile";
import confirm from "dialogs/confirm";
import DOMPurify from "dompurify";
-import fsOperation from "fileSystem";
import startDrag from "handlers/editorFileTab";
import tag from "html-tag-js";
import mimeTypes from "mime-types";
+import helpers from "utils/helpers";
import Path from "utils/Path";
import Url from "utils/Url";
-import helpers from "utils/helpers";
import constants from "./constants";
import openFolder from "./openFolder";
import run from "./run";
diff --git a/src/lib/editorManager.js b/src/lib/editorManager.js
index be5b92c19..83151c2bd 100644
--- a/src/lib/editorManager.js
+++ b/src/lib/editorManager.js
@@ -1,21 +1,18 @@
-import initColorView from "ace/colorView";
-import { deactivateColorView } from "ace/colorView";
+import sidebarApps from "sidebarApps";
+import initColorView, { deactivateColorView } from "ace/colorView";
import { setCommands, setKeyBindings } from "ace/commands";
-import touchListeners from "ace/touchHandler";
-import { scrollAnimationFrame } from "ace/touchHandler";
+import touchListeners, { scrollAnimationFrame } from "ace/touchHandler";
import list from "components/collapsableList";
import quickTools from "components/quickTools";
import ScrollBar from "components/scrollbar";
import SideButton, { sideButtonContainer } from "components/sideButton";
-import keyboardHandler from "handlers/keyboard";
-import { keydownState } from "handlers/keyboard";
+import keyboardHandler, { keydownState } from "handlers/keyboard";
import actions from "handlers/quickTools";
-import sidebarApps from "sidebarApps";
import EditorFile from "./editorFile";
import appSettings from "./settings";
import {
- HARDKEYBOARDHIDDEN_NO,
getSystemConfiguration,
+ HARDKEYBOARDHIDDEN_NO,
} from "./systemConfiguration";
/**
diff --git a/src/lib/fileList.js b/src/lib/fileList.js
index 79a04c5dc..4d390e1ed 100644
--- a/src/lib/fileList.js
+++ b/src/lib/fileList.js
@@ -1,5 +1,5 @@
-import toast from "components/toast";
import fsOperation from "fileSystem";
+import toast from "components/toast";
import { minimatch } from "minimatch";
import Url from "utils/Url";
import { addedFolder } from "./openFolder";
diff --git a/src/lib/fonts.js b/src/lib/fonts.js
index bc423fe40..26c83810e 100644
--- a/src/lib/fonts.js
+++ b/src/lib/fonts.js
@@ -1,7 +1,7 @@
-import loader from "dialogs/loader";
import fsOperation from "fileSystem";
-import Url from "utils/Url";
+import loader from "dialogs/loader";
import helpers from "utils/helpers";
+import Url from "utils/Url";
const fonts = new Map();
diff --git a/src/lib/installPlugin.js b/src/lib/installPlugin.js
index 84b9b20bd..8521c014d 100644
--- a/src/lib/installPlugin.js
+++ b/src/lib/installPlugin.js
@@ -1,12 +1,12 @@
+import fsOperation from "fileSystem";
import ajax from "@deadlyjack/ajax";
import alert from "dialogs/alert";
import confirm from "dialogs/confirm";
import loader from "dialogs/loader";
-import fsOperation from "fileSystem";
import purchaseListener from "handlers/purchase";
import JSZip from "jszip";
-import Url from "utils/Url";
import helpers from "utils/helpers";
+import Url from "utils/Url";
import constants from "./constants";
import InstallState from "./installState";
import loadPlugin from "./loadPlugin";
diff --git a/src/lib/loadPlugin.js b/src/lib/loadPlugin.js
index cc0b0d13f..4078f29c9 100644
--- a/src/lib/loadPlugin.js
+++ b/src/lib/loadPlugin.js
@@ -1,7 +1,7 @@
-import Page from "components/page";
import fsOperation from "fileSystem";
-import Url from "utils/Url";
+import Page from "components/page";
import helpers from "utils/helpers";
+import Url from "utils/Url";
import actionStack from "./actionStack";
export default async function loadPlugin(pluginId, justInstalled = false) {
diff --git a/src/lib/main.js b/src/lib/main.js
index 7252bdf40..298e1375b 100644
--- a/src/lib/main.js
+++ b/src/lib/main.js
@@ -10,15 +10,18 @@ import "lib/polyfill";
import "ace/supportedModes";
import "components/WebComponents";
+import fsOperation from "fileSystem";
+import sidebarApps from "sidebarApps";
import ajax from "@deadlyjack/ajax";
+import { setKeyBindings } from "ace/commands";
+import { initModes } from "ace/modelist";
import Contextmenu from "components/contextmenu";
import Sidebar from "components/sidebar";
import tile from "components/tile";
import toast from "components/toast";
import tutorial from "components/tutorial";
-import fsOperation from "fileSystem";
import intentHandler, { processPendingIntents } from "handlers/intent";
-import keyboardHandler from "handlers/keyboard";
+import keyboardHandler, { keydownState } from "handlers/keyboard";
import quickToolsInit from "handlers/quickToolsInit";
import windowResize from "handlers/windowResize";
import Acode from "lib/acode";
@@ -28,31 +31,25 @@ import checkFiles from "lib/checkFiles";
import checkPluginsUpdate from "lib/checkPluginsUpdate";
import EditorFile from "lib/editorFile";
import EditorManager from "lib/editorManager";
+import { initFileList } from "lib/fileList";
import lang from "lib/lang";
import loadPlugins from "lib/loadPlugins";
import Logger from "lib/logger";
-import openFolder from "lib/openFolder";
+import NotificationManager from "lib/notificationManager";
+import openFolder, { addedFolder } from "lib/openFolder";
import restoreFiles from "lib/restoreFiles";
import settings from "lib/settings";
import startAd from "lib/startAd";
import mustache from "mustache";
import plugins from "pages/plugins";
import otherSettings from "settings/appSettings";
-import sidebarApps from "sidebarApps";
import themes from "theme/list";
-import Url from "utils/Url";
+import { getEncoding, initEncodings } from "utils/encodings";
import helpers from "utils/helpers";
import loadPolyFill from "utils/polyfill";
+import Url from "utils/Url";
import $_fileMenu from "views/file-menu.hbs";
import $_menu from "views/menu.hbs";
-
-import { setKeyBindings } from "ace/commands";
-import { initModes } from "ace/modelist";
-import { keydownState } from "handlers/keyboard";
-import { initFileList } from "lib/fileList";
-import NotificationManager from "lib/notificationManager";
-import { addedFolder } from "lib/openFolder";
-import { getEncoding, initEncodings } from "utils/encodings";
import auth, { loginEvents } from "./auth";
const previousVersionCode = Number.parseInt(localStorage.versionCode, 10);
diff --git a/src/lib/openFile.js b/src/lib/openFile.js
index 62edc44e0..d4e9bc44a 100644
--- a/src/lib/openFile.js
+++ b/src/lib/openFile.js
@@ -1,8 +1,8 @@
+import fsOperation from "fileSystem";
import AudioPlayer from "components/audioPlayer";
import alert from "dialogs/alert";
import confirm from "dialogs/confirm";
import loader from "dialogs/loader";
-import fsOperation from "fileSystem";
import { reopenWithNewEncoding } from "palettes/changeEncoding";
import { decode } from "utils/encodings";
import helpers from "utils/helpers";
diff --git a/src/lib/openFolder.js b/src/lib/openFolder.js
index 1d3bda2ed..bbbcb99db 100644
--- a/src/lib/openFolder.js
+++ b/src/lib/openFolder.js
@@ -1,3 +1,5 @@
+import fsOperation from "fileSystem";
+import sidebarApps from "sidebarApps";
import collapsableList from "components/collapsableList";
import Sidebar from "components/sidebar";
import tile from "components/tile";
@@ -7,12 +9,10 @@ import confirm from "dialogs/confirm";
import prompt from "dialogs/prompt";
import select from "dialogs/select";
import escapeStringRegexp from "escape-string-regexp";
-import fsOperation from "fileSystem";
import FileBrowser from "pages/fileBrowser";
-import sidebarApps from "sidebarApps";
+import helpers from "utils/helpers";
import Path from "utils/Path";
import Url from "utils/Url";
-import helpers from "utils/helpers";
import constants from "./constants";
import * as FileList from "./fileList";
import openFile from "./openFile";
diff --git a/src/lib/recents.js b/src/lib/recents.js
index 59ed7cc65..9eb3bad84 100644
--- a/src/lib/recents.js
+++ b/src/lib/recents.js
@@ -1,7 +1,7 @@
import select from "dialogs/select";
import escapeStringRegexp from "escape-string-regexp";
-import Url from "utils/Url";
import helpers from "utils/helpers";
+import Url from "utils/Url";
const recents = {
/**
diff --git a/src/lib/remoteStorage.js b/src/lib/remoteStorage.js
index 1050eaf80..96dee270a 100644
--- a/src/lib/remoteStorage.js
+++ b/src/lib/remoteStorage.js
@@ -1,11 +1,11 @@
-import loader from "dialogs/loader";
-import multiPrompt from "dialogs/multiPrompt";
import fsOperation from "fileSystem";
import Ftp from "fileSystem/ftp";
import Sftp from "fileSystem/sftp";
+import loader from "dialogs/loader";
+import multiPrompt from "dialogs/multiPrompt";
import URLParse from "url-parse";
-import Url from "utils/Url";
import helpers from "utils/helpers";
+import Url from "utils/Url";
export default {
/**
diff --git a/src/lib/run.js b/src/lib/run.js
index 79048a77f..062a45c18 100644
--- a/src/lib/run.js
+++ b/src/lib/run.js
@@ -1,7 +1,7 @@
+import fsOperation from "fileSystem";
import tutorial from "components/tutorial";
import alert from "dialogs/alert";
import box from "dialogs/box";
-import fsOperation from "fileSystem";
import markdownIt from "markdown-it";
import anchor from "markdown-it-anchor";
import markdownItFootnote from "markdown-it-footnote";
@@ -11,8 +11,8 @@ import mimeType from "mime-types";
import mustache from "mustache";
import path from "path-browserify";
import browser from "plugins/browser";
-import Url from "utils/Url";
import helpers from "utils/helpers";
+import Url from "utils/Url";
import $_console from "views/console.hbs";
import $_markdown from "views/markdown.hbs";
import constants from "./constants";
diff --git a/src/lib/saveFile.js b/src/lib/saveFile.js
index 79ab7ce0b..a80813ca8 100644
--- a/src/lib/saveFile.js
+++ b/src/lib/saveFile.js
@@ -1,10 +1,10 @@
+import fsOperation from "fileSystem";
import prompt from "dialogs/prompt";
import select from "dialogs/select";
-import fsOperation from "fileSystem";
import recents from "lib/recents";
import FileBrowser from "pages/fileBrowser";
-import Url from "utils/Url";
import helpers from "utils/helpers";
+import Url from "utils/Url";
import constants from "./constants";
import EditorFile from "./editorFile";
import openFolder from "./openFolder";
diff --git a/src/lib/settings.js b/src/lib/settings.js
index 85a535651..21ef2be55 100644
--- a/src/lib/settings.js
+++ b/src/lib/settings.js
@@ -2,8 +2,8 @@ import fsOperation from "fileSystem";
import ThemeBuilder from "theme/builder";
import themes from "theme/list";
import { getSystemEditorTheme } from "theme/preInstalled";
-import Url from "utils/Url";
import helpers from "utils/helpers";
+import Url from "utils/Url";
import constants from "./constants";
import lang from "./lang";
import { isDeviceDarkTheme } from "./systemConfiguration";
diff --git a/src/lib/showFileInfo.js b/src/lib/showFileInfo.js
index 9adaa5bd9..77eeebcca 100644
--- a/src/lib/showFileInfo.js
+++ b/src/lib/showFileInfo.js
@@ -1,9 +1,9 @@
-import box from "dialogs/box";
import fsOperation from "fileSystem";
+import box from "dialogs/box";
import { filesize } from "filesize";
import mustache from "mustache";
-import Url from "utils/Url";
import helpers from "utils/helpers";
+import Url from "utils/Url";
import $_fileInfo from "views/file-info.hbs";
import settings from "./settings";
diff --git a/src/pages/fileBrowser/fileBrowser.js b/src/pages/fileBrowser/fileBrowser.js
index 358fd469e..f3806f994 100644
--- a/src/pages/fileBrowser/fileBrowser.js
+++ b/src/pages/fileBrowser/fileBrowser.js
@@ -1,5 +1,7 @@
import "./fileBrowser.scss";
+import fsOperation from "fileSystem";
+import externalFs from "fileSystem/externalFs";
import Checkbox from "components/checkbox";
import Contextmenu from "components/contextmenu";
import Page from "components/page";
@@ -9,8 +11,6 @@ import confirm from "dialogs/confirm";
import loader from "dialogs/loader";
import prompt from "dialogs/prompt";
import select from "dialogs/select";
-import fsOperation from "fileSystem";
-import externalFs from "fileSystem/externalFs";
import JSZip from "jszip";
import actionStack from "lib/actionStack";
import checkFiles from "lib/checkFiles";
@@ -24,10 +24,10 @@ import mimeTypes from "mime-types";
import mustache from "mustache";
import filesSettings from "settings/filesSettings";
import URLParse from "url-parse";
-import Url from "utils/Url";
import helpers from "utils/helpers";
-import _addMenuHome from "./add-menu-home.hbs";
+import Url from "utils/Url";
import _addMenu from "./add-menu.hbs";
+import _addMenuHome from "./add-menu-home.hbs";
import _template from "./fileBrowser.hbs";
import _list from "./list.hbs";
import util from "./util";
diff --git a/src/pages/fileBrowser/index.js b/src/pages/fileBrowser/index.js
index e2da0d9e2..63becfb32 100644
--- a/src/pages/fileBrowser/index.js
+++ b/src/pages/fileBrowser/index.js
@@ -1,8 +1,8 @@
import alert from "dialogs/alert";
import openFile from "lib/openFile";
import openFolder, { addedFolder } from "lib/openFolder";
-import Url from "utils/Url";
import helpers from "utils/helpers";
+import Url from "utils/Url";
/**
* @typedef {"file"|"folder"|"both"} BrowseMode
diff --git a/src/pages/plugin/plugin.js b/src/pages/plugin/plugin.js
index 89e513aea..f72be3277 100644
--- a/src/pages/plugin/plugin.js
+++ b/src/pages/plugin/plugin.js
@@ -1,9 +1,9 @@
import "./plugin.scss";
+import fsOperation from "fileSystem";
import ajax from "@deadlyjack/ajax";
import Page from "components/page";
import alert from "dialogs/alert";
import loader from "dialogs/loader";
-import fsOperation from "fileSystem";
import purchaseListener from "handlers/purchase";
import actionStack from "lib/actionStack";
import constants from "lib/constants";
@@ -15,8 +15,8 @@ import anchor from "markdown-it-anchor";
import markdownItFootnote from "markdown-it-footnote";
import MarkdownItGitHubAlerts from "markdown-it-github-alerts";
import markdownItTaskLists from "markdown-it-task-lists";
-import Url from "utils/Url";
import helpers from "utils/helpers";
+import Url from "utils/Url";
import view from "./plugin.view.js";
let $lastPluginPage;
diff --git a/src/pages/plugin/plugin.view.js b/src/pages/plugin/plugin.view.js
index 57f7dfb6d..9544272c9 100644
--- a/src/pages/plugin/plugin.view.js
+++ b/src/pages/plugin/plugin.view.js
@@ -1,13 +1,13 @@
+import fsOperation from "fileSystem";
import TabView from "components/tabView";
import toast from "components/toast";
import alert from "dialogs/alert";
import DOMPurify from "dompurify";
-import fsOperation from "fileSystem";
import Ref from "html-tag-js/ref";
import actionStack from "lib/actionStack";
import constants from "lib/constants";
-import Url from "utils/Url";
import helpers from "utils/helpers";
+import Url from "utils/Url";
export default (props) => {
const {
@@ -52,12 +52,12 @@ export default (props) => {
@@ -69,16 +69,14 @@ export default (props) => {
{author}
- {authorVerified ? (
- {
- toast(strings["verified publisher"]);
- }}
- className="licons verified verified-tick"
- >
- ) : (
- ""
- )}
+ {authorVerified
+ ? {
+ toast(strings["verified publisher"]);
+ }}
+ className="licons verified verified-tick"
+ >
+ : ""}
{
{license || "Unknown"}
- {votesUp !== undefined ? (
-
-
-
-
- {helpers.formatDownloadCount(
- typeof downloads === "string"
- ? Number.parseInt(downloads)
- : downloads,
- )}
-
- downloads
-
-
-
-
= 80 ? "rating-high" : rating.replace("%", "") >= 50 ? "rating-medium" : "rating-low"}`}
+ {votesUp !== undefined
+ ?
+
+
+
+ {helpers.formatDownloadCount(
+ typeof downloads === "string"
+ ? Number.parseInt(downloads)
+ : downloads,
+ )}
+
+ downloads
+
+
+
+ = 80 ? "rating-high" : rating.replace("%", "") >= 50 ? "rating-medium" : "rating-low"}`}
+ >
+ {rating}
+
+
+
- {rating}
-
+
+ {commentCount}
+ reviews
+
-
-
-
{commentCount}
-
reviews
+ : null}
+ {Array.isArray(keywords) && keywords.length
+ ?
+ {keywords.map((keyword) => (
+ {keyword}
+ ))}
-
- ) : null}
- {Array.isArray(keywords) && keywords.length ? (
-
- {keywords.map((keyword) => (
- {keyword}
- ))}
-
- ) : null}
+ : null}
diff --git a/src/pages/quickTools/quickTools.js b/src/pages/quickTools/quickTools.js
index 67fed691a..5970fa7f6 100644
--- a/src/pages/quickTools/quickTools.js
+++ b/src/pages/quickTools/quickTools.js
@@ -1,7 +1,7 @@
import "./style.scss";
-import WCPage from "components/WebComponents/wcPage";
import Page from "components/page";
import items, { description } from "components/quickTools/items";
+import WCPage from "components/WebComponents/wcPage";
import select from "dialogs/select";
import actionStack from "lib/actionStack";
import settings from "lib/settings";
diff --git a/src/palettes/changeEncoding/index.js b/src/palettes/changeEncoding/index.js
index 3e2083714..898ed5ab9 100644
--- a/src/palettes/changeEncoding/index.js
+++ b/src/palettes/changeEncoding/index.js
@@ -1,6 +1,6 @@
+import fsOperation from "fileSystem";
import palette from "components/palette";
import confirm from "dialogs/confirm";
-import fsOperation from "fileSystem";
import encodings from "utils/encodings";
export default function changeEncoding() {
diff --git a/src/settings/appSettings.js b/src/settings/appSettings.js
index 5b1ba4632..a83ca2e57 100644
--- a/src/settings/appSettings.js
+++ b/src/settings/appSettings.js
@@ -1,8 +1,8 @@
+import fsOperation from "fileSystem";
import ajax from "@deadlyjack/ajax";
import { resetKeyBindings } from "ace/commands";
import settingsPage from "components/settingsPage";
import loader from "dialogs/loader";
-import fsOperation from "fileSystem";
import actions from "handlers/quickTools";
import actionStack from "lib/actionStack";
import constants from "lib/constants";
@@ -10,9 +10,9 @@ import lang from "lib/lang";
import openFile from "lib/openFile";
import appSettings from "lib/settings";
import QuickToolsSettings from "pages/quickTools";
-import Url from "utils/Url";
import encodings, { getEncoding } from "utils/encodings";
import helpers from "utils/helpers";
+import Url from "utils/Url";
export default function otherSettings() {
const values = appSettings.value;
diff --git a/src/settings/backupRestore.js b/src/settings/backupRestore.js
index 4564e3196..522d572c8 100644
--- a/src/settings/backupRestore.js
+++ b/src/settings/backupRestore.js
@@ -1,13 +1,13 @@
+import fsOperation from "fileSystem";
import settingsPage from "components/settingsPage";
import toast from "components/toast";
import alert from "dialogs/alert";
-import fsOperation from "fileSystem";
import constants from "lib/constants";
import appSettings from "lib/settings";
import FileBrowser from "pages/fileBrowser";
+import helpers from "utils/helpers";
import Uri from "utils/Uri";
import Url from "utils/Url";
-import helpers from "utils/helpers";
function backupRestore() {
const title =
diff --git a/src/settings/terminalSettings.js b/src/settings/terminalSettings.js
index d400ca495..e101b9872 100644
--- a/src/settings/terminalSettings.js
+++ b/src/settings/terminalSettings.js
@@ -1,3 +1,4 @@
+import fsOperation from "fileSystem";
import settingsPage from "components/settingsPage";
import {
DEFAULT_TERMINAL_SETTINGS,
@@ -6,7 +7,6 @@ import {
import toast from "components/toast";
import alert from "dialogs/alert";
import loader from "dialogs/loader";
-import fsOperation from "fileSystem";
import fonts from "lib/fonts";
import appSettings from "lib/settings";
import FileBrowser from "pages/fileBrowser";
diff --git a/src/sidebarApps/extensions/index.js b/src/sidebarApps/extensions/index.js
index 1679e847a..cece90a40 100644
--- a/src/sidebarApps/extensions/index.js
+++ b/src/sidebarApps/extensions/index.js
@@ -1,12 +1,12 @@
import "./style.scss";
+import fsOperation from "fileSystem";
import ajax from "@deadlyjack/ajax";
import collapsableList from "components/collapsableList";
import Sidebar from "components/sidebar";
import alert from "dialogs/alert";
import prompt from "dialogs/prompt";
import select from "dialogs/select";
-import fsOperation from "fileSystem";
import purchaseListener from "handlers/purchase";
import constants from "lib/constants";
import InstallState from "lib/installState";
@@ -14,8 +14,8 @@ import loadPlugin from "lib/loadPlugin";
import settings from "lib/settings";
import FileBrowser from "pages/fileBrowser";
import plugin from "pages/plugin";
-import Url from "utils/Url";
import helpers from "utils/helpers";
+import Url from "utils/Url";
/** @type {HTMLElement} */
let $installed = null;
@@ -469,22 +469,20 @@ function ListItem({ icon, name, id, version, downloads, installed, source }) {
>
{name}
- {installed ? (
- <>
- {source ? (
-
- ) : null}
-
- >
- ) : (
-
- )}
+ {installed
+ ? <>
+ {source
+ ?
+ : null}
+
+ >
+ : }
);
diff --git a/src/sidebarApps/searchInFiles/index.js b/src/sidebarApps/searchInFiles/index.js
index 8ab82a162..791157d05 100644
--- a/src/sidebarApps/searchInFiles/index.js
+++ b/src/sidebarApps/searchInFiles/index.js
@@ -1,11 +1,10 @@
import "./styles.scss";
+import fsOperation from "fileSystem";
import addTouchListeners from "ace/touchHandler";
import autosize from "autosize";
import Checkbox from "components/checkbox";
-import Sidebar from "components/sidebar";
-import { preventSlide } from "components/sidebar";
+import Sidebar, { preventSlide } from "components/sidebar";
import escapeStringRegexp from "escape-string-regexp";
-import fsOperation from "fileSystem";
import Ref from "html-tag-js/ref";
import files, { Tree } from "lib/fileList";
import openFile from "lib/openFile";
diff --git a/src/styles/page.scss b/src/styles/page.scss
index f5eb511cc..a006f4029 100644
--- a/src/styles/page.scss
+++ b/src/styles/page.scss
@@ -324,6 +324,14 @@ wc-page {
#quicktools-toggler {
transform: translate3d(0, -40px, 0);
+
+ @media (min-width: 769px) {
+ transform: translate3d(0, -50px, 0);
+ }
+
+ @media (min-width: 1024px) {
+ transform: translate3d(0, -60px, 0);
+ }
}
&.top-bar {
@@ -352,6 +360,14 @@ wc-page {
#quicktools-toggler {
transform: translate3d(0, -80px, 0);
+
+ @media (min-width: 769px) {
+ transform: translate3d(0, -100px, 0);
+ }
+
+ @media (min-width: 1024px) {
+ transform: translate3d(0, -120px, 0);
+ }
}
&.top-bar {
@@ -380,6 +396,14 @@ wc-page {
#quicktools-toggler {
transform: translate3d(0, -140px, 0);
+
+ @media (min-width: 769px) {
+ transform: translate3d(0, -150px, 0);
+ }
+
+ @media (min-width: 1024px) {
+ transform: translate3d(0, -180px, 0);
+ }
}
&.top-bar {
diff --git a/src/theme/list.js b/src/theme/list.js
index 0c8b308f8..90cfd0150 100644
--- a/src/theme/list.js
+++ b/src/theme/list.js
@@ -1,7 +1,7 @@
import fsOperation from "fileSystem";
import { isDeviceDarkTheme } from "lib/systemConfiguration";
-import Url from "utils/Url";
import color from "utils/color";
+import Url from "utils/Url";
import fonts from "../lib/fonts";
import settings from "../lib/settings";
import ThemeBuilder from "./builder";
diff --git a/src/utils/helpers.js b/src/utils/helpers.js
index 1b805e82f..9eed0489a 100644
--- a/src/utils/helpers.js
+++ b/src/utils/helpers.js
@@ -1,8 +1,7 @@
-import ajax from "@deadlyjack/ajax";
-import escapeStringRegexp from "escape-string-regexp";
import fsOperation from "fileSystem";
-
+import ajax from "@deadlyjack/ajax";
import alert from "dialogs/alert";
+import escapeStringRegexp from "escape-string-regexp";
import constants from "lib/constants";
import path from "./Path";
import Uri from "./Uri";