diff --git a/check_update.php b/check_update.php new file mode 100644 index 0000000..5a8bad1 --- /dev/null +++ b/check_update.php @@ -0,0 +1,8 @@ + (int)$updateCount, + 'upToDate' => $updateCount === '0', +]); diff --git a/index.php b/index.php index c8f91ad..5258160 100644 --- a/index.php +++ b/index.php @@ -1,575 +1,501 @@ - - - + + + - - - THOS - + + - .theme-xp { - --window-bg: #ece9d8; - --window-border: #3a6ea5; - --window-blur: none; - --header-bg: linear-gradient(to bottom, #0a246a, #1c4dbd); - --header-color: white; - --font-color: black; - } - - body { - margin: 0; - font-family: 'Inter', sans-serif; - background: #121212; - color: white; - overflow: hidden; - } - - #app-bar { - position: fixed; - top: 0; - left: 0; - width: 200px; - height: 100vh; - background: var(--window-bg); - backdrop-filter: var(--window-blur); - -webkit-backdrop-filter: var(--window-blur); - border: 1px solid var(--window-border); - padding: 10px; - box-sizing: border-box; - z-index: 9999; - } - - .app-btn { - display: block; - margin: 10px 0; - padding: 10px; - background: #292929; - border: none; - color: white; - cursor: pointer; - border-radius: 8px; - transition: background 0.3s ease; - } - - .app-btn:hover { - background: var(--accent); - } - - .window { - position: absolute; - width: 600px; - height: 400px; - background: var(--window-bg); - backdrop-filter: var(--window-blur); - -webkit-backdrop-filter: var(--window-blur); - border: 1px solid var(--window-border); - border-radius: 12px; - resize: both; - overflow: hidden; - z-index: 1; - transition: box-shadow 0.2s ease, backdrop-filter 0.3s ease; - box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25); - } - - - .window.active { - box-shadow: 0 0 20px var(--accent), 0 8px 24px rgba(0, 0, 0, 0.3); - } - - .window-header { - background: var(--header-bg); - color: var(--header-color); - padding: 6px 12px; - cursor: grab; - display: flex; - align-items: center; - justify-content: space-between; - font-weight: bold; - backdrop-filter: var(--window-blur); - -webkit-backdrop-filter: var(--window-blur); - border-bottom: 1px solid var(--window-border); - } - - .window-header:active { - cursor: grabbing; - } - - - .window-header button { - background: transparent; - border: none; - color: inherit; - font-weight: bold; - font-size: 1.1em; - cursor: pointer; - user-select: none; - padding: 0 6px; - transition: color 0.2s ease; - } - - .window-header button:hover { - color: var(--header-hover); - } - - - .window-content { - background: var(--window-bg); - backdrop-filter: var(--window-blur); - -webkit-backdrop-filter: var(--window-blur); - border: 1px solid var(--window-border); - width: 100%; - height: calc(100% - 32px); - border: none; - } - - .sparkle { - position: absolute; - width: 6px; - height: 6px; - background: radial-gradient(circle at center, var(--accent) 0%, transparent 70%); - border-radius: 50%; - filter: drop-shadow(0 0 6px var(--accent)); - animation: sparkle 1.2s infinite ease-in-out; - pointer-events: none; - } - - @keyframes sparkle { - - 0%, - 100% { - opacity: 0; - transform: scale(0.5) rotate(0deg); - } - - 50% { - opacity: 1; - transform: scale(1) rotate(45deg); - } - } - - #screensaver { - display: none; - position: fixed; - top: 0; - left: 0; - width: 100vw; - height: 100vh; - border: none; - z-index: 9999; - } - - #drag-overlay { - position: fixed; - top: 0; - left: 0; - width: 100vw; - height: 100vh; - z-index: 99999; - display: none; - cursor: grabbing; - } - - #fullscreen-toggle { - border: none; - background: transparent; - cursor: pointer; - backdrop-filter: blur(2px); - -webkit-backdrop-filter: blur(2px); - border-radius: 4px; - } - - #fullscreen-toggle:hover { - color: var(--accent); - } - - .grayscale-bg { - filter: grayscale(100%) brightness(0.9); - } - - .notification { - display: flex; - flex-direction: column; - gap: 0.25rem; - padding: 1rem 1.25rem; - border-radius: 1rem; - border: 2px solid transparent; - box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3); - color: white; - min-width: 260px; - max-width: 340px; - pointer-events: auto; - animation: fadeInUp 0.3s ease-out; - position: relative; - transition: transform 0.2s ease, opacity 0.2s ease; - background: var(--window-bg); - backdrop-filter: var(--window-blur); - -webkit-backdrop-filter: var(--window-blur); - color: var(--accent); - } - - .notification-dismiss { - background: transparent; - border: none; - cursor: pointer; - } - - .notification.success { - border-color: #4caf50; - } - - .notification.error { - border-color: #f44336; - } - - .notification.info { - border-color: var(--accent, #00bcd4); - } - - @keyframes slideIn { - from { - transform: translateX(100%) scale(0.95); - opacity: 0; - } - - to { - transform: translateX(0) scale(1); - opacity: 1; - } - } - - @keyframes fadeOut { - from { - opacity: 1; - transform: translateX(0) scale(1); - } - - to { - opacity: 0; - transform: translateX(50%) scale(0.95); - } - } - - - - - -
-
-
-
-
- -
+ +
-
- +
+ - + - + - + - +
+ +
+ +
+
+ +
+
+ + THOS
- -
- -
-
- -
-
- - THOS -
-
-
-
- -
-
-
- - - -
-
- - - - + window.notify = notify; + + - \ No newline at end of file + \ No newline at end of file diff --git a/run_update.php b/run_update.php new file mode 100644 index 0000000..efd2083 --- /dev/null +++ b/run_update.php @@ -0,0 +1,14 @@ +&1"); + echo "✅ Git update applied:\n$output"; +} elseif ($mode === 'curl') { + // Placeholder for future upgrade logic + $output = shell_exec("curl -s https://your.url/thos-update.sh | sudo bash 2>&1"); + echo "🔧 Installer run:\n$output"; +} else { + http_response_code(400); + echo "❌ Unknown update mode"; +} diff --git a/save_state.php b/save_state.php index c8f2b89..c4f27f7 100644 --- a/save_state.php +++ b/save_state.php @@ -1,6 +1,5 @@ diff --git a/settings.php b/settings.php index eca6378..10ed03d 100644 --- a/settings.php +++ b/settings.php @@ -85,6 +85,19 @@
+
+ + +

+