diff --git a/be/app/api.go b/be/app/api.go index 53f22a0..d2d79c6 100644 --- a/be/app/api.go +++ b/be/app/api.go @@ -26,7 +26,9 @@ func ApiCORS(w http.ResponseWriter, r *http.Request) (http.ResponseWriter, *http func ApiGet(w http.ResponseWriter, r *http.Request) { file := "" // base directory - if r.URL.Path != "/" { + if strings.Contains(r.URL.Path, "/config.js") { + file = "../public/config.js" + } else if r.URL.Path != "/" { file = "../public" + r.URL.Path // request } @@ -40,7 +42,7 @@ func ApiGet(w http.ResponseWriter, r *http.Request) { file = "../public/index.html" // default } - http.ServeFile(w, r, file) // serve file + http.ServeFile(w, r, file) } func ApiPost(w http.ResponseWriter, r *http.Request) { diff --git a/be/index.html b/be/index.html deleted file mode 100644 index bc22877..0000000 --- a/be/index.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - 404 - BALLS - - - -

Balls found

- So not the content you're looking for. - - diff --git a/be/macrame b/be/macrame new file mode 100644 index 0000000..54cd577 Binary files /dev/null and b/be/macrame differ diff --git a/be/macrame.exe b/be/macrame.exe new file mode 100644 index 0000000..92c1313 Binary files /dev/null and b/be/macrame.exe differ diff --git a/be/main.exe b/be/main.exe new file mode 100644 index 0000000..54cd577 Binary files /dev/null and b/be/main.exe differ diff --git a/be/main.go b/be/main.go index 7ebde9d..9dacc72 100644 --- a/be/main.go +++ b/be/main.go @@ -30,6 +30,8 @@ func main() { func apiInit(w http.ResponseWriter, r *http.Request) { app.ApiCORS(w, r) + app.MCRMLog("Remote IP: " + r.RemoteAddr) + if r.Method == "GET" { app.ApiGet(w, r) } else if r.Method == "POST" { diff --git a/fe/package-lock.json b/fe/package-lock.json index a8cd401..96e15e3 100644 --- a/fe/package-lock.json +++ b/fe/package-lock.json @@ -24,6 +24,7 @@ "eslint-plugin-vue": "^9.32.0", "pinia": "^3.0.1", "prettier": "^3.5.1", + "qrcode": "^1.5.4", "sass-embedded": "^1.85.1", "tailwindcss": "^4.0.9", "uuid": "^11.1.0", @@ -1960,6 +1961,15 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -2104,6 +2114,15 @@ "node": ">=6" } }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/caniuse-lite": { "version": "1.0.30001710", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001710.tgz", @@ -2140,6 +2159,17 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -2257,6 +2287,15 @@ } } }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -2320,6 +2359,12 @@ "node": ">=8" } }, + "node_modules/dijkstrajs": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz", + "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==", + "dev": true + }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -2340,6 +2385,12 @@ "integrity": "sha512-QgX9EBvWGmvSRa74zqfnG7+Eno0Ak0vftBll0Pt2/z5b3bEGYL6OUXLgKPtvx73dn3dvwrlyVkjPKRRlhLYTEg==", "dev": true }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, "node_modules/enhanced-resolve": { "version": "5.18.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", @@ -2900,6 +2951,15 @@ "node": ">=6.9.0" } }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, "node_modules/get-intrinsic": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", @@ -3121,6 +3181,15 @@ "node": ">=0.10.0" } }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -3786,6 +3855,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -3878,6 +3956,15 @@ } } }, + "node_modules/pngjs": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", + "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/postcss": { "version": "8.5.3", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", @@ -3984,6 +4071,38 @@ "node": ">=6" } }, + "node_modules/qrcode": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.4.tgz", + "integrity": "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==", + "dev": true, + "dependencies": { + "dijkstrajs": "^1.0.1", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "qrcode": "bin/qrcode" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -4429,6 +4548,12 @@ "node": ">=10" } }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -4493,6 +4618,32 @@ "node": ">=0.10.0" } }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-final-newline": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", @@ -4742,9 +4893,9 @@ "devOptional": true }, "node_modules/vite": { - "version": "6.2.5", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.5.tgz", - "integrity": "sha512-j023J/hCAa4pRIUH6J9HemwYfjB5llR2Ps0CWeikOtdR8+pAURAk0DoJC5/mm9kd+UgdnIy7d6HE4EAvlYhPhA==", + "version": "6.2.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.6.tgz", + "integrity": "sha512-9xpjNl3kR4rVDZgPNdTL0/c6ao4km69a/2ihNQbcANz8RuCOK3hQBmLSJf3bRKVQjVMda+YvizNE8AwvogcPbw==", "dependencies": { "esbuild": "^0.25.0", "postcss": "^8.5.3", @@ -5018,6 +5169,12 @@ "node": ">= 8" } }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true + }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", @@ -5027,6 +5184,20 @@ "node": ">=0.10.0" } }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/xml-name-validator": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", @@ -5036,12 +5207,105 @@ "node": ">=12" } }, + "node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, + "node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/fe/package.json b/fe/package.json index e9698b4..f23dda3 100644 --- a/fe/package.json +++ b/fe/package.json @@ -27,6 +27,7 @@ "eslint-plugin-vue": "^9.32.0", "pinia": "^3.0.1", "prettier": "^3.5.1", + "qrcode": "^1.5.4", "sass-embedded": "^1.85.1", "tailwindcss": "^4.0.9", "uuid": "^11.1.0", diff --git a/fe/src/assets/style/_content.css b/fe/src/assets/style/_content.css index f0a69b6..87f75b1 100644 --- a/fe/src/assets/style/_content.css +++ b/fe/src/assets/style/_content.css @@ -41,3 +41,7 @@ ul { strong { @apply font-bold; } + +a { + @apply underline text-amber-400 hover:text-amber-300; +} diff --git a/fe/src/components/base/MainMenu.vue b/fe/src/components/base/MainMenu.vue index ec4b78e..92d5335 100644 --- a/fe/src/components/base/MainMenu.vue +++ b/fe/src/components/base/MainMenu.vue @@ -107,6 +107,8 @@ nav { items-center gap-2 px-4 py-2 + text-white + no-underline border-transparent transition-colors; diff --git a/fe/src/components/macros/parts/RecorderFooter.vue b/fe/src/components/macros/parts/RecorderFooter.vue index 79307d2..fa90274 100644 --- a/fe/src/components/macros/parts/RecorderFooter.vue +++ b/fe/src/components/macros/parts/RecorderFooter.vue @@ -51,6 +51,7 @@ onMounted(() => { const toggleSave = () => { if (!macroRecorder.save()) errorDialog.value.toggleDialog(true) + else window.location.reload() } diff --git a/fe/src/router/index.js b/fe/src/router/index.js index 1f34b50..322dcb1 100644 --- a/fe/src/router/index.js +++ b/fe/src/router/index.js @@ -1,6 +1,5 @@ import { createRouter, createWebHistory } from 'vue-router' -import HomeView from '../views/HomeView.vue' -import { useDeviceStore } from '@/stores/device' +import DashboardView from '../views/DashboardView.vue' import { checkAuth, isLocal } from '@/services/ApiService' const router = createRouter({ @@ -8,8 +7,8 @@ const router = createRouter({ routes: [ { path: '/', - name: 'home', - component: HomeView, + name: 'dashboard', + component: DashboardView, }, { path: '/panels', diff --git a/fe/src/views/DashboardView.vue b/fe/src/views/DashboardView.vue new file mode 100644 index 0000000..962b7cc --- /dev/null +++ b/fe/src/views/DashboardView.vue @@ -0,0 +1,97 @@ + + + + + diff --git a/fe/src/views/HomeView.vue b/fe/src/views/HomeView.vue deleted file mode 100644 index aea2793..0000000 --- a/fe/src/views/HomeView.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - - diff --git a/panels/test_panel/index.html b/panels/test_panel/index.html index 47081e5..3170836 100644 --- a/panels/test_panel/index.html +++ b/panels/test_panel/index.html @@ -21,105 +21,105 @@ id="button_2" mcrm__button > - Close window + Close application
- button3 + Run
- button4 + Files
- button5 + Settings
- button6 + New Desktop
- button7 + Displays
- button8 + Task View
- button9 + New Window
- button10 + Close Window
- button11 + Previous Tab
- button12 + Next Tab
- button13 + Close Tab
- button14 + New Tab
- button15 + Fullscreen
- button16 + Home
diff --git a/panels/test_panel/output.css b/panels/test_panel/output.css index f391388..efa863f 100644 --- a/panels/test_panel/output.css +++ b/panels/test_panel/output.css @@ -1,66 +1,69 @@ -.m-0 { - margin: calc(var(--spacing) * 0); +/*! tailwindcss v4.1.2 | MIT License | https://tailwindcss.com */ +@layer theme, utilities; +@layer theme { + :root, :host { + --color-red-500: oklch(63.7% 0.237 25.331); + --color-sky-400: oklch(74.6% 0.16 232.661); + --color-rose-400: oklch(71.2% 0.194 13.428); + --color-slate-400: oklch(70.4% 0.04 256.788); + --color-slate-500: oklch(55.4% 0.046 257.417); + --spacing: 0.25rem; + } } -.flex { - display: flex; +@layer utilities { + .m-0 { + margin: calc(var(--spacing) * 0); + } + .flex { + display: flex; + } + .grid { + display: grid; + } + .aspect-\[9\/20\] { + aspect-ratio: 9/20; + } + .size-full { + width: 100%; + height: 100%; + } + .h-full { + height: 100%; + } + .h-screen { + height: 100vh; + } + .w-screen { + width: 100vw; + } + .grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + .grid-rows-8 { + grid-template-rows: repeat(8, minmax(0, 1fr)); + } + .items-center { + align-items: center; + } + .justify-center { + justify-content: center; + } + .gap-2 { + gap: calc(var(--spacing) * 2); + } + .bg-rose-400 { + background-color: var(--color-rose-400); + } + .bg-sky-400 { + background-color: var(--color-sky-400); + } + .bg-slate-400 { + background-color: var(--color-slate-400); + } + .bg-slate-500 { + background-color: var(--color-slate-500); + } } -.grid { - display: grid; -} -.aspect-\[9\/20\] { - aspect-ratio: 9/20; -} -.size-full { - width: 100%; - height: 100%; -} -.h-dvh { - height: 100dvh; -} -.h-full { - height: 100%; -} -.h-screen { - height: 100vh; -} -.w-dvw { - width: 100dvw; -} -.w-screen { - width: 100vw; -} -.grid-cols-2 { - grid-template-columns: repeat(2, minmax(0, 1fr)); -} -.grid-rows-8 { - grid-template-rows: repeat(8, minmax(0, 1fr)); -} -.items-center { - align-items: center; -} -.justify-center { - justify-content: center; -} -.gap-2 { - gap: calc(var(--spacing) * 2); -} -.border { - border-style: var(--tw-border-style); - border-width: 1px; -} -.border-red-500 { - border-color: var(--color-red-500); -} -.bg-sky-400 { - background-color: var(--color-sky-400); -} -.bg-slate-400 { - background-color: var(--color-slate-400); -} -.bg-slate-500 { - background-color: var(--color-slate-500); -} - body * { box-sizing: border-box; } diff --git a/panels/test_panel/panel.json b/panels/test_panel/panel.json index 48c4261..27afffd 100644 --- a/panels/test_panel/panel.json +++ b/panels/test_panel/panel.json @@ -1,11 +1 @@ -{ - "dir": "", - "name": "Test Panel 1", - "description": "This is the very first panel to be created. It is a test panel for a mobile phone.", - "aspectRatio": "10/20", - "macros": { - "button_1": "Task_manager", - "button_16": "Task_manager", - "button_2": "ALT+F4" - } -} +{"dir":"","name":"Test Panel 1","description":"This is the very first panel to be created. It is a test panel for a mobile phone.","aspectRatio":"10/20","macros":{"button_1":"Task_Manager","button_10":"Close_Browser_Window","button_11":"Previous_Tab","button_12":"Next_Tab","button_13":"Close_Tab","button_14":"New_Tab","button_15":"Fullscreen","button_16":"Home","button_2":"Close_Application","button_3":"RunDialog","button_4":"Files","button_5":"Settings","button_6":"New_Desktop","button_7":"Displays","button_8":"Task_view","button_9":"New_Window"}} \ No newline at end of file diff --git a/test-config.js b/test-config.js new file mode 100644 index 0000000..9fa3d82 --- /dev/null +++ b/test-config.js @@ -0,0 +1,5 @@ +window.__CONFIG__ = { + "MCRM__IV": "7290919109450742", + "MCRM__PORT": "52893", + "MCRM__SALT": "UQrNepgDabFnvSC/xqKt7MyQQVLS" +}; \ No newline at end of file