diff --git a/package.json b/package.json index cfea399..3c3acee 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { - "name": "cvmwebapp", + "name": "collab-vm-1.2-webapp", "version": "2.0.0", - "description": "kill me", + "description": "Official webapp for the CollabVM 1.2.x protocol", "private": true, "scripts": { "build": "parcel build --no-source-maps --dist-dir dist --public-url '.' src/html/index.html", @@ -14,17 +14,25 @@ "author": "Elijah R", "license": "GPL-3.0", "dependencies": { - "@fortawesome/fontawesome-free": "^6.6.0", + "@fortawesome/fontawesome-svg-core": "^6.7.2", + "@fortawesome/free-brands-svg-icons": "^6.7.2", + "@fortawesome/free-regular-svg-icons": "^6.7.2", + "@fortawesome/free-solid-svg-icons": "^6.7.2", + "@fortawesome/vue-fontawesome": "^3.0.8", "@popperjs/core": "^2.11.8", + "@twemoji/api": "^15.1.0", "bootstrap": "^5.3.3", "dayjs": "^1.11.13", "dompurify": "^3.2.4", "msgpackr": "^1.11.2", "nanoevents": "^9.1.0", - "simple-keyboard": "^3.8.14" + "simple-keyboard": "^3.8.14", + "vue": "^3.5.13" }, "devDependencies": { "@hcaptcha/types": "^1.0.4", + "@parcel/transformer-sass": "2.12.0", + "@parcel/transformer-vue": "2.12.0", "@types/bootstrap": "^5.2.10", "@types/cloudflare-turnstile": "^0.2.2", "@types/dompurify": "^3.0.5", diff --git a/src/assets/NotoColorEmoji.ttf b/src/assets/NotoColorEmoji.ttf deleted file mode 100644 index cf7a47e..0000000 Binary files a/src/assets/NotoColorEmoji.ttf and /dev/null differ diff --git a/src/css/style.css b/src/css/style.css deleted file mode 100644 index b64be47..0000000 --- a/src/css/style.css +++ /dev/null @@ -1,351 +0,0 @@ -#vmview { - display: none; - padding-right: 0 !important; - padding-left: 0 !important; -} -/*.vmtile { - text-decoration: none; - color: #FFFFFF; - font-size: 16pt; - border: 2px solid #575757; - border-radius: 15px; - height: fit-content; - width: fit-content; - display: block; - padding: 4px; -}*/ -#vmDisplay, #btns { - text-align: center; - display: block; - margin-bottom: 10px; -} - -#vmlist > div.row > div { - padding-bottom: 10px; -} -#vmlist div.col-md-3 > div.card:hover { - cursor: pointer; - border-color: rgb(8, 121, 250); -} - -.vmtile > img { - margin-bottom: 2px; -} - -.chat-table, .username-table { - overflow-y: auto; - border: 1px solid #575757; -} -.chat-table { - height: 30vh; -} - -.username-table { - max-height: 30vh; -} -.username-table > table > thead { - position: sticky; - top: 0; -} - -#turnstatus { - text-align: center; -} -#voteResetPanel { - text-align: center; -} - -.focused { - box-shadow: 0 0 9px 0 rgba(45,213,255,.75); - -moz-box-shadow: 0 0 9px 0 rgba(45,213,255,.75); - -webkit-box-shadow: 0 0 9px 0 rgba(45,213,255,.75) -} - -.waiting { - box-shadow: 0 0 9px 0 rgba(242,255,63,.75); - -moz-box-shadow: 0 0 9px 0 rgba(242,255,63,.75); - -webkit-box-shadow: 0 0 9px 0 rgba(242,255,63,.75) -} - -#staffbtns { - display: none; -} - -#staffbtns > button { - display: none; -} - -#qemuMonitorOutput { - height: 180px; -} - -#xssCheckboxContainer { - display: none; -} - -#forceVotePanel { - display: none; -} - -tr.user-admin .userlist-username, .chat-username-admin, .username-admin { - color: #FF0000 !important; -} - -tr.user-moderator .userlist-username, .chat-username-moderator, .username-moderator { - color: #00FF00 !important; -} - -html[data-bs-theme="dark"] { - tr.user-unregistered .userlist-username, .chat-username-unregistered, .username-unregistered { - color: #b1b1b1 !important; - } - - tr.user-registered .userlist-username, .chat-username-registered, .username-registered { - color: #FFFFFF !important; - } - - tr.user-registered.user-turn .userlist-username, tr.user-registered.user-waiting .userlist-username { - color: #000000 !important; - --bs-table-color: #000000 !important; - } - - tr.user-unregistered.user-turn .userlist-username, tr.user-unregistered.user-waiting .userlist-username { - color: #585858 !important; - --bs-table-color: #585858 !important; - } -} - -html[data-bs-theme="light"] { - tr.user-unregistered .userlist-username, .chat-username-unregistered, .username-unregistered { - color: #6b6b6b !important; - } - - tr.user-registered .userlist-username, .chat-username-registered, .username-registered { - color: #000 !important; - } -} - -tr.user-turn > td { - background-color: #cfe2ff !important; - --bs-table-bg-state: #cfe2ff !important; - color: #000000; - --bs-table-color: #000000; -} - -tr.user-turn:hover, tr.user-turn > td:hover { - background-color: #bacbe6 !important; - --bs-table-bg-state: #bacbe6 !important; -} - -tr.user-waiting > td { - background-color: #fff3cd !important; - --bs-table-bg-state: #fff3cd !important; - color: #000000; - --bs-table-color: #000000; -} - -.tr.user-waiting:hover, tr.user-waiting > td:hover { - background-color: #ece1be !important; - --bs-table-bg-state: #ece1be !important; -} - -.user-current .userlist-username { - font-style: italic; -} - -/* Start OSK */ -.osk-container { - display: flex; - flex-wrap: wrap; - justify-content: center; - max-width: 1024px; - margin: 0 auto; - margin-bottom: 10px; - border-radius: 5px; -} - -.simple-keyboard.hg-theme-default { - display: inline-block; -} - -.osk-main.simple-keyboard { - max-width: 640px; - background: none; -} - -.osk-main.simple-keyboard .hg-row:first-child { - margin-bottom: 8.51px; /* wtf? */ -} - -.osk-arrows.simple-keyboard { - align-self: flex-end; - background: none; -} - -.simple-keyboard .hg-button.selectedButton { - background: rgba(5, 25, 70, 0.53); - color: white; -} - -.simple-keyboard .hg-button.emptySpace { - pointer-events: none; - background: none; - border: none; - box-shadow: none; -} - -.osk-arrows .hg-row { - justify-content: center; -} - -.osk-arrows .hg-button { - width: 50px; - flex-grow: 0 !important; - justify-content: center !important; - display: flex !important; - align-items: center !important; -} - -.controlArrows { - display: flex; - align-items: center; - justify-content: space-between; - flex-flow: column; -} - -.osk-control.simple-keyboard { - background: none; -} - -.osk-control.simple-keyboard .hg-row:first-child { - margin-bottom: 8.51px; -} - -.osk-control .hg-button { - width: 50px; - flex-grow: 0 !important; - justify-content: center !important; - display: flex !important; - align-items: center !important; -} - -.numPad { - display: flex; - align-items: flex-end; -} - -.osk-numpad.simple-keyboard { - background: none; -} - -.osk-numpad.simple-keyboard { - width: 160px; -} - -.osk-numpad.simple-keyboard .hg-button { - width: 50px; - justify-content: center; - display: flex; - align-items: center; -} - -.osk-numpadEnd.simple-keyboard { - width: 50px; - background: none; - margin: 0; - padding: 5px 5px 5px 0; -} - -.osk-numpadEnd.simple-keyboard .hg-button { - align-items: center; - justify-content: center; - display: flex; -} - -.osk-numpadEnd .hg-button.hg-standardBtn.hg-button-plus { - height: 85px; -} - -.osk-numpadEnd.simple-keyboard .hg-button.hg-button-enter { - height: 85px; -} - -.simple-keyboard.hg-theme-default .hg-button.hg-selectedButton { - background: rgba(5, 25, 70, 0.53); - color: white; -} - -.hg-button.hg-functionBtn.hg-button-space { - width: 350px; -} - -@media screen and (max-width: 640px) { - .hg-button:not(:last-child) { - margin-right: 1px !important; - } -} - -/* -Theme: cvmDark -*/ - -.simple-keyboard.cvmDark .hg-button { - border-bottom: none; - background: rgba(0, 0, 0, 0.5); - color: white; -} - -.simple-keyboard.cvmDark .hg-button:active { - background: #1c4995; - color: white; -} - -#root .simple-keyboard.cvmDark + .simple-keyboard-preview { - background: #1c4995; -} - -/* -Theme: cvmDisabled -*/ -.simple-keyboard.cvmDisabled .hg-button { - border-bottom: none; - pointer-events: none; - background: gray; - color: white; -} - -/* End OSK */ - -#badPasswordAlert { - display: none; -} - -/* NSFW Blur */ -.cvm-nsfw { - img { - filter:blur(40px)!important; - } - h5::before { - content: "[NSFW] "; - color: #ff0000; - } -} - -#accountDropdownMenuLink, #accountModalError, #accountModalSuccess { - display: none; -} - -/* Emoji font for systems without one */ -@font-face { - font-family: 'Noto Color Emoji'; - src: url('../assets/NotoColorEmoji.ttf'); -} - -.userlist-flag { - padding-right: 0.5rem; - user-select: none; -} - -.userlist-flag:empty { - display: none; -} diff --git a/src/html/index.html b/src/html/index.html index 2306ad3..007552e 100644 --- a/src/html/index.html +++ b/src/html/index.html @@ -4,10 +4,7 @@
| () | - - -
|---|