first commit

This commit is contained in:
Leonardo
2026-02-18 22:36:45 -03:00
parent ec6b6ef53a
commit 676042268b
122 changed files with 26354 additions and 1615 deletions
+79 -69
View File
@@ -1,86 +1,96 @@
import { computed, reactive } from 'vue';
import { computed, reactive } from 'vue'
const layoutConfig = reactive({
preset: 'Aura',
primary: 'emerald',
surface: null,
darkTheme: false,
menuMode: 'static'
});
preset: 'Aura',
primary: 'emerald',
surface: null,
darkTheme: false,
menuMode: 'static'
})
const layoutState = reactive({
staticMenuInactive: false,
overlayMenuActive: false,
profileSidebarVisible: false,
configSidebarVisible: false,
sidebarExpanded: false,
menuHoverActive: false,
activeMenuItem: null,
activePath: null
});
staticMenuInactive: false,
overlayMenuActive: false,
mobileMenuActive: false, // ✅ ADICIONA (estava faltando)
profileSidebarVisible: false,
configSidebarVisible: false,
sidebarExpanded: false,
menuHoverActive: false,
activeMenuItem: null,
activePath: null
})
export function useLayout() {
const toggleDarkMode = () => {
if (!document.startViewTransition) {
executeDarkModeToggle();
export function useLayout () {
const toggleDarkMode = () => {
if (!document.startViewTransition) {
executeDarkModeToggle()
return
}
return;
}
document.startViewTransition(() => executeDarkModeToggle(event))
}
document.startViewTransition(() => executeDarkModeToggle(event));
};
const executeDarkModeToggle = () => {
layoutConfig.darkTheme = !layoutConfig.darkTheme
document.documentElement.classList.toggle('app-dark')
}
const executeDarkModeToggle = () => {
layoutConfig.darkTheme = !layoutConfig.darkTheme;
document.documentElement.classList.toggle('app-dark');
};
const isDesktop = () => window.innerWidth > 991
const toggleMenu = () => {
if (isDesktop()) {
if (layoutConfig.menuMode === 'static') {
layoutState.staticMenuInactive = !layoutState.staticMenuInactive;
}
const toggleMenu = () => {
if (isDesktop()) {
if (layoutConfig.menuMode === 'static') {
layoutState.staticMenuInactive = !layoutState.staticMenuInactive
}
if (layoutConfig.menuMode === 'overlay') {
layoutState.overlayMenuActive = !layoutState.overlayMenuActive;
}
} else {
layoutState.mobileMenuActive = !layoutState.mobileMenuActive;
}
};
if (layoutConfig.menuMode === 'overlay') {
layoutState.overlayMenuActive = !layoutState.overlayMenuActive
}
} else {
layoutState.mobileMenuActive = !layoutState.mobileMenuActive
}
}
const toggleConfigSidebar = () => {
layoutState.configSidebarVisible = !layoutState.configSidebarVisible;
};
const toggleConfigSidebar = () => {
layoutState.configSidebarVisible = !layoutState.configSidebarVisible
}
const hideMobileMenu = () => {
layoutState.mobileMenuActive = false;
};
const hideMobileMenu = () => {
layoutState.mobileMenuActive = false
}
const changeMenuMode = (event) => {
layoutConfig.menuMode = event.value;
layoutState.staticMenuInactive = false;
layoutState.mobileMenuActive = false;
layoutState.sidebarExpanded = false;
layoutState.menuHoverActive = false;
layoutState.anchored = false;
};
// ✅ use isso ao navegar: mantém menu aberto no desktop, fecha só no mobile
const closeMenuOnNavigate = () => {
if (!isDesktop()) {
layoutState.mobileMenuActive = false
layoutState.overlayMenuActive = false
layoutState.menuHoverActive = false
}
}
const isDarkTheme = computed(() => layoutConfig.darkTheme);
const isDesktop = () => window.innerWidth > 991;
const changeMenuMode = (event) => {
layoutConfig.menuMode = event.value
layoutState.staticMenuInactive = false
layoutState.mobileMenuActive = false
layoutState.sidebarExpanded = false
layoutState.menuHoverActive = false
layoutState.anchored = false
}
const hasOpenOverlay = computed(() => layoutState.overlayMenuActive);
const isDarkTheme = computed(() => layoutConfig.darkTheme)
const hasOpenOverlay = computed(() => layoutState.overlayMenuActive)
return {
layoutConfig,
layoutState,
isDarkTheme,
toggleDarkMode,
toggleConfigSidebar,
toggleMenu,
hideMobileMenu,
changeMenuMode,
isDesktop,
hasOpenOverlay
};
return {
layoutConfig,
layoutState,
isDarkTheme,
toggleDarkMode,
toggleConfigSidebar,
toggleMenu,
hideMobileMenu,
closeMenuOnNavigate, // ✅ exporta
changeMenuMode,
isDesktop,
hasOpenOverlay
}
}