diff --git a/resources/js/Components/DashboardLayout/Sidebar.vue b/resources/js/Components/DashboardLayout/Sidebar.vue new file mode 100644 index 0000000..bcaf398 --- /dev/null +++ b/resources/js/Components/DashboardLayout/Sidebar.vue @@ -0,0 +1,30 @@ + + + \ No newline at end of file diff --git a/resources/js/Components/DashboardLayout/Sidebar/Builder.vue b/resources/js/Components/DashboardLayout/Sidebar/Builder.vue new file mode 100644 index 0000000..0278ba4 --- /dev/null +++ b/resources/js/Components/DashboardLayout/Sidebar/Builder.vue @@ -0,0 +1,30 @@ + \ No newline at end of file diff --git a/resources/js/Components/DashboardLayout/Sidebar/Link.vue b/resources/js/Components/DashboardLayout/Sidebar/Link.vue new file mode 100644 index 0000000..859b7c1 --- /dev/null +++ b/resources/js/Components/DashboardLayout/Sidebar/Link.vue @@ -0,0 +1,23 @@ + + + \ No newline at end of file diff --git a/resources/js/Components/DashboardLayout/Sidebar/Links.vue b/resources/js/Components/DashboardLayout/Sidebar/Links.vue new file mode 100644 index 0000000..49e8134 --- /dev/null +++ b/resources/js/Components/DashboardLayout/Sidebar/Links.vue @@ -0,0 +1,41 @@ + + + \ No newline at end of file diff --git a/resources/js/Components/DashboardLayout/SidebarToggler.vue b/resources/js/Components/DashboardLayout/SidebarToggler.vue new file mode 100644 index 0000000..63bdf68 --- /dev/null +++ b/resources/js/Components/DashboardLayout/SidebarToggler.vue @@ -0,0 +1,11 @@ + + + \ No newline at end of file diff --git a/resources/js/Components/DashboardLayout/TopbarDropdown.vue b/resources/js/Components/DashboardLayout/TopbarDropdown.vue new file mode 100644 index 0000000..6edd373 --- /dev/null +++ b/resources/js/Components/DashboardLayout/TopbarDropdown.vue @@ -0,0 +1,55 @@ + + + + + \ No newline at end of file diff --git a/resources/js/Components/Icon.vue b/resources/js/Components/Icon.vue new file mode 100644 index 0000000..87c6501 --- /dev/null +++ b/resources/js/Components/Icon.vue @@ -0,0 +1,16 @@ + + + \ No newline at end of file diff --git a/resources/js/Layouts/DashboardLayout.vue b/resources/js/Layouts/DashboardLayout.vue new file mode 100644 index 0000000..4f5ceca --- /dev/null +++ b/resources/js/Layouts/DashboardLayout.vue @@ -0,0 +1,42 @@ + + + \ No newline at end of file diff --git a/resources/js/Pages/Dashboard.vue b/resources/js/Pages/Dashboard.vue index 92d32e8..4689791 100644 --- a/resources/js/Pages/Dashboard.vue +++ b/resources/js/Pages/Dashboard.vue @@ -1,22 +1,9 @@ diff --git a/resources/js/app.js b/resources/js/app.js index 5e9bb96..e57e5eb 100644 --- a/resources/js/app.js +++ b/resources/js/app.js @@ -6,6 +6,7 @@ import { createInertiaApp } from '@inertiajs/inertia-vue3'; import { InertiaProgress } from '@inertiajs/progress'; import { resolvePageComponent } from 'laravel-vite-plugin/inertia-helpers'; import { ZiggyVue } from '../../vendor/tightenco/ziggy/dist/vue.m'; +import Themes from './themes' const appName = window.document.getElementsByTagName('title')[0]?.innerText || 'Laravel'; @@ -16,6 +17,11 @@ createInertiaApp({ return createApp({ render: () => h(app, props) }) .use(plugin) .use(ZiggyVue, Ziggy) + .mixin({ + methods: { + themes: () => Themes, + }, + }) .mount(el); }, }); diff --git a/resources/js/themes.js b/resources/js/themes.js new file mode 100644 index 0000000..d4f6d16 --- /dev/null +++ b/resources/js/themes.js @@ -0,0 +1,19 @@ +import { ref } from "vue" + +localStorage.setItem('themes', localStorage.getItem('themes') || JSON.stringify({ + topbar: 'bg-cyan-500 text-gray-700 hover:bg-cyan-600 hover:text-gray-800 transition-all ease-in-out duration-150', + sidebar: 'bg-gray-700 text-gray-200 hover:bg-gray-800 hover:text-gray-100 transition-all ease-in-out duration-150', +})) + +const themes = ref(JSON.parse(localStorage.getItem('themes'))) + +const set = (key, val) => { + themes.value[key] = val + localStorage.setItem('themes', JSON.stringify(themes.value)) +} + +const get = (key, def) => themes.value[key] || def + +export default { + ...themes.value, set, get +} \ No newline at end of file