Compare commits
3 Commits
4e393dd5e9
...
v1.1.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0d985b62b1 | ||
| 4d76d2697b | |||
| 440fffc605 |
6
CHANGELOG.md
Normal file
6
CHANGELOG.md
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
# [1.1.0](https://gitea.malio.fr/MALIO-DEV/Supervisor/compare/v1.0.0...v1.1.0) (2026-03-10)
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* **backup:** add backup scripts workflow ([0863dfa](https://gitea.malio.fr/MALIO-DEV/Supervisor/commit/0863dfad2e3c6272a012c30820381a2610e22d1b))
|
||||||
@@ -20,18 +20,14 @@
|
|||||||
--font-mono: "JetBrains Mono", "Fira Code", monospace;
|
--font-mono: "JetBrains Mono", "Fira Code", monospace;
|
||||||
}
|
}
|
||||||
|
|
||||||
@layer base {
|
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&family=Outfit:wght@300;400;500;600;700;800;900&display=swap');
|
||||||
html {
|
|
||||||
background: rgb(var(--m-bg));
|
|
||||||
color-scheme: dark;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
@layer base {
|
||||||
* {
|
* {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
min-height: 100vh;
|
|
||||||
font-family: var(--font-display);
|
font-family: var(--font-display);
|
||||||
background: rgb(var(--m-bg));
|
background: rgb(var(--m-bg));
|
||||||
color: rgb(var(--m-text));
|
color: rgb(var(--m-text));
|
||||||
@@ -39,10 +35,6 @@
|
|||||||
-moz-osx-font-smoothing: grayscale;
|
-moz-osx-font-smoothing: grayscale;
|
||||||
transition: background-color 0.4s ease, color 0.4s ease;
|
transition: background-color 0.4s ease, color 0.4s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
img {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@layer utilities {
|
@layer utilities {
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
@tailwind base;
|
||||||
|
@tailwind components;
|
||||||
|
@tailwind utilities;
|
||||||
|
|
||||||
@layer base {
|
@layer base {
|
||||||
:root {
|
:root {
|
||||||
--m-primary: 15 20 40;
|
--m-primary: 15 20 40;
|
||||||
|
|||||||
@@ -18,37 +18,39 @@
|
|||||||
<slot name="sidebar" />
|
<slot name="sidebar" />
|
||||||
<nav class="sidebar-nav" aria-label="Sections">
|
<nav class="sidebar-nav" aria-label="Sections">
|
||||||
<p class="nav-label">Navigation</p>
|
<p class="nav-label">Navigation</p>
|
||||||
<div class="flex flex-col gap-2">
|
|
||||||
<div class="bg-m-tertiary rounded-lg border border-m-accent/6">
|
|
||||||
<NuxtLink
|
<NuxtLink
|
||||||
to="/"
|
v-for="item in navItems"
|
||||||
class="flex items-center gap-3 px-4 py-2 rounded-lg text-white hover:bg-m-tertiary/80 transition-colors"
|
:key="item.to"
|
||||||
|
v-slot="{ href, navigate, isExactActive }"
|
||||||
|
:to="item.to"
|
||||||
|
custom
|
||||||
>
|
>
|
||||||
<IconifyIcon
|
<a
|
||||||
icon="mdi:home"
|
:href="href"
|
||||||
class="text-lg"/>
|
class="nav-link"
|
||||||
<p>Home</p>
|
:class="{ 'nav-link-active': isExactActive }"
|
||||||
</NuxtLink>
|
:aria-current="isExactActive ? 'page' : undefined"
|
||||||
</div>
|
@click="navigate(); isMenuOpen = false"
|
||||||
<div class="bg-m-tertiary rounded-lg border border-m-accent/6">
|
|
||||||
<NuxtLink
|
|
||||||
to="/backup"
|
|
||||||
class="flex items-center gap-3 px-4 py-2 rounded-lg text-white hover:bg-m-tertiary/80 transition-colors"
|
|
||||||
>
|
>
|
||||||
<IconifyIcon
|
<span class="nav-link-main">
|
||||||
icon="mdi:data"
|
<span class="nav-icon">
|
||||||
class="text-lg"/>
|
<IconifyIcon :icon="item.icon" class="text-lg" />
|
||||||
<p>Backup</p>
|
</span>
|
||||||
|
<span>
|
||||||
|
<span class="nav-title">{{ item.label }}</span>
|
||||||
|
<span class="nav-caption">{{ item.caption }}</span>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
<span class="nav-pill">{{ item.short }}</span>
|
||||||
|
</a>
|
||||||
</NuxtLink>
|
</NuxtLink>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
<div class="sidebar-footer">
|
<div class="sidebar-footer">
|
||||||
<div class="sidebar-divider" />
|
<div class="sidebar-divider" />
|
||||||
<div class="footer-row">
|
<div class="footer-row">
|
||||||
<p class="font-mono text-[10px] tracking-widest uppercase text-white/40">
|
<p class="font-mono text-[10px] tracking-widest uppercase text-white/40">
|
||||||
Supervisor {{ appVersion }}
|
Supervisor v1.0
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -121,7 +123,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="footer-row">
|
<div class="footer-row">
|
||||||
<p class="font-mono text-[10px] tracking-widest uppercase text-white/40">
|
<p class="font-mono text-[10px] tracking-widest uppercase text-white/40">
|
||||||
Supervisor {{ appVersion }}
|
Supervisor v1.0
|
||||||
</p>
|
</p>
|
||||||
<button class="close-button" type="button" @click="isMenuOpen = false">
|
<button class="close-button" type="button" @click="isMenuOpen = false">
|
||||||
<IconifyIcon icon="mdi:close" class="text-xl" />
|
<IconifyIcon icon="mdi:close" class="text-xl" />
|
||||||
@@ -141,9 +143,6 @@ import {ref} from "vue"
|
|||||||
import { Icon as IconifyIcon } from "@iconify/vue"
|
import { Icon as IconifyIcon } from "@iconify/vue"
|
||||||
import logoSrc from '~/assets/LOGO_CARRE_BLANC.png'
|
import logoSrc from '~/assets/LOGO_CARRE_BLANC.png'
|
||||||
|
|
||||||
const {
|
|
||||||
public: {appVersion}
|
|
||||||
} = useRuntimeConfig()
|
|
||||||
const isMenuOpen = ref(false)
|
const isMenuOpen = ref(false)
|
||||||
const navItems = [
|
const navItems = [
|
||||||
{
|
{
|
||||||
@@ -297,7 +296,8 @@ const navItems = [
|
|||||||
border: 1px solid transparent;
|
border: 1px solid transparent;
|
||||||
color: white;
|
color: white;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
transition: background-color 0.2s ease,
|
transition:
|
||||||
|
background-color 0.2s ease,
|
||||||
border-color 0.2s ease,
|
border-color 0.2s ease,
|
||||||
transform 0.2s ease,
|
transform 0.2s ease,
|
||||||
box-shadow 0.2s ease;
|
box-shadow 0.2s ease;
|
||||||
@@ -316,7 +316,8 @@ const navItems = [
|
|||||||
}
|
}
|
||||||
|
|
||||||
.nav-link-active {
|
.nav-link-active {
|
||||||
background: linear-gradient(135deg, rgb(var(--m-accent) / 0.16), rgb(255 255 255 / 0.04));
|
background:
|
||||||
|
linear-gradient(135deg, rgb(var(--m-accent) / 0.16), rgb(255 255 255 / 0.04));
|
||||||
border-color: rgb(var(--m-accent) / 0.24);
|
border-color: rgb(var(--m-accent) / 0.24);
|
||||||
box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.04);
|
box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.04);
|
||||||
}
|
}
|
||||||
@@ -374,7 +375,8 @@ const navItems = [
|
|||||||
padding: 1rem;
|
padding: 1rem;
|
||||||
border-radius: 16px;
|
border-radius: 16px;
|
||||||
border: 1px solid rgb(var(--m-accent) / 0.14);
|
border: 1px solid rgb(var(--m-accent) / 0.14);
|
||||||
background: radial-gradient(circle at top right, rgb(var(--m-accent) / 0.14), transparent 30%),
|
background:
|
||||||
|
radial-gradient(circle at top right, rgb(var(--m-accent) / 0.14), transparent 30%),
|
||||||
rgb(255 255 255 / 0.04);
|
rgb(255 255 255 / 0.04);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,44 +1,10 @@
|
|||||||
import { execSync } from "node:child_process"
|
|
||||||
import tailwindcss from "@tailwindcss/vite"
|
import tailwindcss from "@tailwindcss/vite"
|
||||||
|
|
||||||
const getRepoVersion = () => {
|
|
||||||
try {
|
|
||||||
const tags = execSync(
|
|
||||||
"git for-each-ref --sort=-version:refname --format='%(refname:short)' refs/tags",
|
|
||||||
{ encoding: "utf8" }
|
|
||||||
)
|
|
||||||
.split("\n")
|
|
||||||
.map((tag) => tag.trim())
|
|
||||||
.filter(Boolean)
|
|
||||||
|
|
||||||
return tags[0] || "dev"
|
|
||||||
} catch {
|
|
||||||
return "dev"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// https://nuxt.com/docs/api/configuration/nuxt-config
|
// https://nuxt.com/docs/api/configuration/nuxt-config
|
||||||
export default defineNuxtConfig({
|
export default defineNuxtConfig({
|
||||||
compatibilityDate: "2025-07-15",
|
compatibilityDate: '2025-07-15',
|
||||||
devtools: { enabled: true },
|
devtools: { enabled: true },
|
||||||
css: ["~/assets/css/main.css"],
|
css: ["~/assets/css/main.css"],
|
||||||
app: {
|
|
||||||
head: {
|
|
||||||
link: [
|
|
||||||
{ rel: "preconnect", href: "https://fonts.googleapis.com" },
|
|
||||||
{ rel: "preconnect", href: "https://fonts.gstatic.com", crossorigin: "" },
|
|
||||||
{
|
|
||||||
rel: "stylesheet",
|
|
||||||
href: "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&family=Outfit:wght@300;400;500;600;700;800;900&display=swap"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
runtimeConfig: {
|
|
||||||
public: {
|
|
||||||
appVersion: getRepoVersion()
|
|
||||||
}
|
|
||||||
},
|
|
||||||
vite: {
|
vite: {
|
||||||
plugins: [tailwindcss()]
|
plugins: [tailwindcss()]
|
||||||
}
|
}
|
||||||
|
|||||||
786
package-lock.json
generated
786
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -11,7 +11,6 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@iconify/vue": "^5.0.0",
|
"@iconify/vue": "^5.0.0",
|
||||||
"iconify": "^1.4.0",
|
|
||||||
"nuxt": "^4.3.1",
|
"nuxt": "^4.3.1",
|
||||||
"vue": "^3.5.29",
|
"vue": "^3.5.29",
|
||||||
"vue-router": "^4.6.4"
|
"vue-router": "^4.6.4"
|
||||||
|
|||||||
Reference in New Issue
Block a user