diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d6b59e4..09f9539 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,7 +13,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-latest, windows-latest, macos-latest] + os: [ubuntu-latest, windows-latest] permissions: contents: write @@ -34,12 +34,6 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Build Mac x64 - if: matrix.os == 'macos-latest' - run: npx electron-builder --mac --x64 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Upload Release uses: softprops/action-gh-release@v1 with: diff --git a/.gitignore b/.gitignore index b584e3a..3bd55ca 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ node_modules dist -test \ No newline at end of file +test +.idea \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..c8a9791 --- /dev/null +++ b/README.md @@ -0,0 +1,27 @@ +

WebBox

+ +--- + +![WebBox Logo](./resources/banner/banner.png) + +WebBox is an interactive code editor focused on web development, providing live window updates. + +--- + +* [Create a File](./docs/CreateFile.md) +* [Open a File](./docs/OpenFile.md) +* [Save a File](./docs/SaveFile.md) +* [Viewer Windows](./docs/ViewerWindows.md) +* [Shortcuts](./docs/Shortcuts.md) +* [Customize Colors](./docs/CustomColors.md) + +--- + +Developed as a school project by **Ethan Mahlstedt** + +--- + +Want to help? Send me a [mail](mailto:ethan.mahlstedt@hotmail.com) + +--- +

Last modified at 13/05/25 by Ethan Mahlstedt; v1.0.0-rc2

\ No newline at end of file diff --git a/docs/CreateFile.md b/docs/CreateFile.md new file mode 100644 index 0000000..37cf08a --- /dev/null +++ b/docs/CreateFile.md @@ -0,0 +1,28 @@ +###### Go back to [index](../README.md) + +--- + +# Create File + +### Shortcut `Ctrl + N` + +--- + +WebBox can create files using the built-in file creation function. The **"Create File"** function is capable of creating files based of presets saved on the `filePresets` folder. + +
+ Create File Dialog +
+ +--- + +Filename **must** include extension. + +--- + + +Filename and folder **are mandatory**. + +--- + +

Last modified at 12/05/25 by Ethan Mahlstedt; v1.0-rc1

\ No newline at end of file diff --git a/docs/CustomColors.md b/docs/CustomColors.md new file mode 100644 index 0000000..52ce308 --- /dev/null +++ b/docs/CustomColors.md @@ -0,0 +1,17 @@ +###### Go back to [index](../README.md) + +--- + +# Use custom colors + +--- + +If you want to use custom colors, you must edit the files located at `editor/front`. + +`editor.css` includes all the editor window color configuration. + +`highlighter.css` includes the highlighter color configuration in [highlight.js](https://highlightjs.org/) syntax + +--- + +

Last modified at 14/05/25 by Ethan Mahlstedt; v1.0-rc2

\ No newline at end of file diff --git a/docs/OpenFile.md b/docs/OpenFile.md new file mode 100644 index 0000000..29d1d4b --- /dev/null +++ b/docs/OpenFile.md @@ -0,0 +1,27 @@ +###### Go back to [index](../README.md) + +--- + +# Open File + +### Shortcut `Ctrl + O` + +--- + +To open files, WebBox will prompt you to choose a file that matches the following file types: + +* **HTML** (.html, .htm) +* **JavaScript** (.js, .jsx, .mjs, .cjs) +* **TypeScript** (.ts, .tsx) +* **CSS** (.css) +* **JSON** (.JSON) +* **Markdown** (.md) +* **PHP** (.php) +* **Text Documents** (.txt) +* **XML** (.xml) + + + +--- + +

Last modified at 14/05/25 by Ethan Mahlstedt; v1.0-rc2

\ No newline at end of file diff --git a/docs/SaveFile.md b/docs/SaveFile.md new file mode 100644 index 0000000..20ae6f6 --- /dev/null +++ b/docs/SaveFile.md @@ -0,0 +1,20 @@ + +###### Go back to [index](../README.md) + +--- + +# Close File + +### Shortcut `Ctrl + Q` + +--- + +When closing files, WebBox will prompt you to save the file if it has unsaved changes. You can choose to save the file or discard the changes. + +![fileSaveDialog.png](../resources/docs/fileSaving/fileSaveDialog.png) + +Whenever a file has unsaved changes, the file name will be displayed in *italic* in the tab bar. This is a visual indicator that the file has unsaved changes. + +--- + +

Last modified at 14/05/25 by Ethan Mahlstedt; v1.0-rc2

\ No newline at end of file diff --git a/docs/Shortcuts.md b/docs/Shortcuts.md new file mode 100644 index 0000000..54e69eb --- /dev/null +++ b/docs/Shortcuts.md @@ -0,0 +1,23 @@ +###### Go back to [index](../README.md) + +--- + +# Shortcuts + +--- + +## Shortcut list + +| Shortcut | Action | +|--------------------|-------------------------------------| +| `Ctrl + N` | Create File | +| `Ctrl + O` | Open File | +| `Ctrl + S` | Save File | +| `Ctrl + Q` | Close File | +| `Ctrl + W` | Open Viewer | +| `Ctrl + Shift + W` | Open Viewer (based on current file) | +| `Ctrl + R` | Refresh Viewer | + +--- + +

Last modified at 14/05/25 by Ethan Mahlstedt; v1.0-rc2

\ No newline at end of file diff --git a/docs/ViewerWindows.md b/docs/ViewerWindows.md new file mode 100644 index 0000000..6b4b35d --- /dev/null +++ b/docs/ViewerWindows.md @@ -0,0 +1,22 @@ + +###### Go back to [index](../README.md) + +--- + +# Viewer Windows + +--- + +WebBox has a built-in viewer that allows you to visualize HTML files on a separate window. + +The viewer is based of a Chromium browser window, which means that it is capable of using all the features of a modern browser. This includes the ability to use JavaScript and CSS files. + +To open the viewer, you can use the **"Open Viewer"** function in the file menu or use the shortcut `Ctrl + W`. If you press the `Shift` Key, the viewer will open a new window off the current opened file (in the case it is a `.html` / `.htm` file), linking the viewer to the file. If not, the viewer will prompt you to pick a valid file type. + +In the case you want to refresh the viewer, you can use the **"Refresh Viewer"** function in the file menu or use the shortcut `Ctrl + R`. This will refresh the current opened file in the viewer. In case the current file is not linked to any window, a prompt will show up, showing you all windows. + +![WindowPickingDialog.png](../resources/docs/ViewerWindows/WindowPickingDialog.png) + +--- + +

Last modified at 14/05/25 by Ethan Mahlstedt; v1.0-rc2

\ No newline at end of file diff --git a/electron-builder.json b/electron-builder.json index dd4b363..57340a6 100644 --- a/electron-builder.json +++ b/electron-builder.json @@ -4,12 +4,20 @@ "directories": { "output": "dist" }, - "files": ["!filePresets/**", "!front/editor/highlighter.css"], + "files": [ + "!filePresets/**", + "!front/editor/highlighter.css", + "!front/editor/editor.css" + ], "extraResources": [ { "from": "filePresets", "to": "../filePresets" }, { "from": "front/editor/highlighter.css", "to": "../front/editor/highlighter.css" + }, + { + "from": "front/editor/editor.css", + "to": "../front/editor/editor.css" } ], "icon": "resources/icon/icon.png", @@ -17,10 +25,6 @@ "target": "zip", "artifactName": "webbox-${version}-win.zip" }, - "mac": { - "target": "zip", - "artifactName": "webbox-${version}-mac-${arch}.zip" - }, "linux": { "target": "zip", "artifactName": "webbox-${version}-linux.zip" diff --git a/front/editor/editor.css b/front/editor/editor.css index 3d00019..7bfdf89 100644 --- a/front/editor/editor.css +++ b/front/editor/editor.css @@ -1,3 +1,5 @@ +/* Editor */ + html, body { height: 100%; @@ -68,8 +70,7 @@ body { .fileDivText { font-family: "Segoe UI"; color: white; - margin: 0; - margin-right: 10px; + margin: 0 10px 0 0; white-space: nowrap; } @@ -92,26 +93,6 @@ body { color: white; } -button { - background-color: gray; - font-family: Arial; - color: black; - padding: 5px 10px; - border-radius: 5px; - border: 1px ridge black; - font-size: 16px; - font-weight: bold; - cursor: pointer; - transition: - background-color 0.3s ease, - color 0.3s ease; -} - -button:hover { - background-color: rgb(64, 64, 64); - color: white; -} - #TextAreaContainer { display: flex; width: calc(100% - 2%); @@ -154,8 +135,6 @@ button:hover { word-wrap: normal; min-height: 100px; /* Ensure it has height */ box-sizing: border-box; - overflow-x: auto; /* Add horizontal scrollbar */ - overflow-y: auto; /* Add vertical scrollbar */ } #saveDialog { @@ -258,7 +237,7 @@ textarea { #fileDirLbl { font-weight: normal; - font-size: 12; + font-size: 12px; text-wrap: wrap; overflow-wrap: anywhere; } diff --git a/front/editor/editor.html b/front/editor/editor.html index 8797730..e6daccd 100644 --- a/front/editor/editor.html +++ b/front/editor/editor.html @@ -14,12 +14,12 @@
- +
-

WebBox vx.x.x

+

WebBox

No opened file...

Open one using the "Open" button or create a new one using the "New diff --git a/front/editor/editor.js b/front/editor/editor.js index 04c3b46..b19d4dd 100644 --- a/front/editor/editor.js +++ b/front/editor/editor.js @@ -71,8 +71,8 @@ OpenedFiles.NEWCOLUMN("usesCRLF"); // Control Variables /////////////////////////////////////////////////////////////// -var fieldShown = false; -var isClosing = false; +let fieldShown = false; +let isClosing = false; let currentFile = null; /////////////////////////////////////////////////////////////// @@ -121,6 +121,7 @@ function openFile(file, callback) { fileFMT.SET("savedScroll", null); fileFMT.SET("savedCursor", null); + // noinspection JSIgnoredPromiseFromCall newFileDiv(file); const fileData = fs.readFileSync(file, { encoding: "utf-8" }); @@ -162,7 +163,7 @@ async function closeFile(file) { } let savedData; - savedData = await fs.readFileSync(file, { encoding: "utf-8" }); + savedData = fs.readFileSync(file, { encoding: "utf-8" }); const data = OpenedFiles.READ( OpenedFiles.FINDQUICKINDEX("fileLink", file), @@ -202,23 +203,8 @@ async function closeFile(file) { saveButton.addEventListener( "click", () => { - fs.writeFileSync(file, normalized, { options: "utf-8" }); - OpenedFiles.DELETE(OpenedFiles.FINDQUICKINDEX("fileLink", file)); - div.remove(); - saveDialog.remove(); - - if (OpenedFiles.GETJSONDATA().length === 0) { - unloadFiles(); - if (isClosing) { - ipcRenderer.send("closeWindow"); - } - return; - } else { - if (currentFile === file) { - const nextFile = OpenedFiles.GETJSONDATA()[0].fileLink; - loadFileIntoEditor(nextFile); - } - } + fs.writeFileSync(file, normalized, { encoding: "utf-8" }); + closeFileClearDialogs(div, saveDialog, file); }, { once: true } ); @@ -229,26 +215,29 @@ async function closeFile(file) { dontSaveButton.addEventListener( "click", () => { - OpenedFiles.DELETE(OpenedFiles.FINDQUICKINDEX("fileLink", file)); - div.remove(); - saveDialog.remove(); - - if (OpenedFiles.GETJSONDATA().length === 0) { - unloadFiles(); - if (isClosing) { - ipcRenderer.send("closeWindow"); - } - return; - } else { - if (currentFile === file) { - const nextFile = OpenedFiles.GETJSONDATA()[0].fileLink; - loadFileIntoEditor(nextFile); - } - } + closeFileClearDialogs(div, saveDialog, file); }, { once: true } ); + function closeFileClearDialogs(div, saveDialog, file) { + OpenedFiles.DELETE(OpenedFiles.FINDQUICKINDEX("fileLink", file)); + div.remove(); + saveDialog.remove(); + + if (OpenedFiles.GETJSONDATA().length === 0) { + unloadFiles(); + if (isClosing) { + ipcRenderer.send("closeWindow"); + } + } else { + if (currentFile === file) { + const nextFile = OpenedFiles.GETJSONDATA()[0].fileLink; + loadFileIntoEditor(nextFile); + } + } + } + const cancelButton = document.createElement("button"); cancelButton.id = "cancelSaveButtonDialog"; cancelButton.innerHTML = "Cancel"; @@ -387,13 +376,14 @@ document.addEventListener("keydown", async (event) => { openNewFile(); } else if (event.key.toLowerCase() === "q") { event.preventDefault(); - closeFile(currentFile); + await closeFile(currentFile); if (OpenedFiles.GETJSONDATA().length === 0) { isClosing = true; ipcRenderer.send("closeWindow"); } } else if (event.key.toLowerCase() === "w") { event.preventDefault(); + // noinspection DuplicatedCode if (currentFile === null) return; if (event.shiftKey) { if (!currentFile.endsWith(".html") && !currentFile.endsWith(".htm")) { @@ -458,7 +448,7 @@ function saveFile() { ? data.replace(/(? { isClosing = true; if (OpenedFiles.GETJSONDATA().length > 0) { event.preventDefault(); + // noinspection ES6MissingAwait OpenedFiles.GETJSONDATA().forEach(async (e) => { await closeFile(e.fileLink); }); @@ -682,7 +673,7 @@ window.addEventListener("blur", () => { /////////////////////////////////////////////////////////////// function checkField() { - fieldShown = OpenedFiles.GETJSONDATA().length > 0 ? true : false; + fieldShown = OpenedFiles.GETJSONDATA().length > 0; if (fieldShown) { document.getElementById("noOpenedFileContainer").style.display = "none"; document.getElementById("noOpenedFileDialog").style.display = "none"; @@ -728,7 +719,7 @@ let dir = null; dirBtn.addEventListener("click", () => { ipcRenderer.invoke("get-dir").then((response) => { - if (response.status == 0) { + if (response.status === 0) { document.getElementById("fileDirLbl").innerHTML = response.dir; dir = response.dir; } @@ -778,13 +769,13 @@ createBtn.addEventListener("click", async () => { if (args.dir == null || args.name == null || args.preset == null) { alert("Argument missing."); } else { - let filedata = ""; + let fileData = ""; if (args.preset !== "none") { - filedata = fs.readFileSync(args.preset, { encoding: "utf-8" }); + fileData = fs.readFileSync(args.preset, { encoding: "utf-8" }); } - fs.writeFileSync(path.join(args.dir, args.name), filedata); + fs.writeFileSync(path.join(args.dir, args.name), fileData); openFile(path.join(args.dir, args.name), () => { loadFileIntoEditor(path.join(args.dir, args.name)); @@ -804,6 +795,7 @@ createBtn.addEventListener("click", async () => { const openViewerBtn = document.getElementById("OpenViewerBtn"); openViewerBtn.addEventListener("click", (event) => { + // noinspection DuplicatedCode if (currentFile === null) return; if (event.shiftKey) { if (!currentFile.endsWith(".html") && !currentFile.endsWith(".htm")) { @@ -880,6 +872,7 @@ ipcRenderer.on("deleteWindow", (event, fileLink) => { ///////////////////////////////////////////////////////// // prettier-ignore +// noinspection JSUnusedLocalSymbols function printOnBackConsole(args) { // eslint-disable-line // Debug function ipcRenderer.send("printOnBackConsole", args); diff --git a/main.js b/main.js index ef1be49..086bb69 100644 --- a/main.js +++ b/main.js @@ -100,7 +100,7 @@ function createNewDisplay(fileLink) { ipcMain.on("new-window", async () => { const result = await dialog.showOpenDialog({ properties: ["openFile"], - filters: [{ name: "HTML Files", extensions: ["html"] }] + filters: [{ name: "HTML Files", extensions: ["html", "htm"] }] }); var flag = true; if (openedDisplays.GETJSONDATA().length > 0) { diff --git a/package-lock.json b/package-lock.json index 5fb6a03..d0a2b68 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "webbox", - "version": "1.0.0-rc1", + "version": "1.0.0-rc2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "webbox", - "version": "1.0.0-rc1", + "version": "1.0.0-rc2", "hasInstallScript": true, "license": "ISC", "dependencies": { @@ -135,6 +135,21 @@ "global-agent": "^3.0.0" } }, + "node_modules/@electron/get/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, "node_modules/@electron/node-gyp": { "version": "10.2.0-electron.1", "resolved": "git+ssh://git@github.com/electron/node-gyp.git#06b29aafb7708acef8b3669835c8a7857ebc92d2", @@ -453,34 +468,6 @@ "balanced-match": "^1.0.0" } }, - "node_modules/@electron/universal/node_modules/fs-extra": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", - "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@electron/universal/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, "node_modules/@electron/universal/node_modules/minimatch": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", @@ -497,16 +484,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@electron/universal/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, "node_modules/@electron/windows-sign": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@electron/windows-sign/-/windows-sign-1.2.1.tgz", @@ -529,50 +506,6 @@ "node": ">=14.14" } }, - "node_modules/@electron/windows-sign/node_modules/fs-extra": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", - "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@electron/windows-sign/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/@electron/windows-sign/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">= 10.0.0" - } - }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", @@ -3011,18 +2944,41 @@ } }, "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", + "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", "dev": true, "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">=6 <7 || >=8" + "node": ">=14.14" + } + }, + "node_modules/fs-extra/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/fs-extra/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" } }, "node_modules/fs-minipass": { diff --git a/package.json b/package.json index 1bc4093..5d38c22 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "webbox", - "version": "1.0.0-rc1", + "version": "1.0.0-rc2", "description": "Live Editor for HTML, CSS and JS", "main": "main.js", "scripts": { diff --git a/resources/docs/ViewerWindows/WindowPickingDialog.png b/resources/docs/ViewerWindows/WindowPickingDialog.png new file mode 100644 index 0000000..76869c9 Binary files /dev/null and b/resources/docs/ViewerWindows/WindowPickingDialog.png differ diff --git a/resources/docs/fileCreation/FileCreationWindow.png b/resources/docs/fileCreation/FileCreationWindow.png new file mode 100644 index 0000000..8b85d26 Binary files /dev/null and b/resources/docs/fileCreation/FileCreationWindow.png differ diff --git a/resources/docs/fileSaving/fileSaveDialog.png b/resources/docs/fileSaving/fileSaveDialog.png new file mode 100644 index 0000000..2cbe724 Binary files /dev/null and b/resources/docs/fileSaving/fileSaveDialog.png differ