feat(app): auth, orgs/events UI, router guards, and dev tooling

- Add Sanctum auth flow (store, composables, login, axios interceptors)
- Add dashboard, organisation list/detail, events CRUD dialogs
- Wire router guards, navigation, organisation switcher in layout
- Replace Vuexy @db types in NavSearchBar; add @iconify/types; themeConfig title typing
- Vuetify settings.scss + resolve configFile via fileURLToPath; drop dead path aliases
- Root index redirects to dashboard; fix events table route name
- API: DevSeeder + DatabaseSeeder updates; docs TEST_SCENARIO; corporate identity assets

Made-with: Cursor
This commit is contained in:
2026-04-07 21:51:10 +02:00
parent 0d24506c89
commit c417a6647a
45 changed files with 11554 additions and 832 deletions

View File

@@ -2,9 +2,21 @@
import Shepherd from 'shepherd.js'
import { withQuery } from 'ufo'
import type { RouteLocationRaw } from 'vue-router'
import type { SearchResults } from '@db/app-bar-search/types'
import AppBarSearch from '@core/components/AppBarSearch.vue'
import { useConfigStore } from '@core/stores/config'
/** App bar API search group (replaces Vuexy @db mock types). */
interface AppBarSearchResultChild {
title: string
icon: string
url: RouteLocationRaw
}
interface SearchResults {
title: string
children: AppBarSearchResultChild[]
}
interface Suggestion {
icon: string
title: string
@@ -117,7 +129,6 @@ const redirectToSuggestedPage = (selected: Suggestion) => {
closeSearchBar()
}
const LazyAppBarSearch = defineAsyncComponent(() => import('@core/components/AppBarSearch.vue'))
</script>
<template>
@@ -144,7 +155,7 @@ const LazyAppBarSearch = defineAsyncComponent(() => import('@core/components/App
</div>
<!-- 👉 App Bar Search -->
<LazyAppBarSearch
<AppBarSearch
v-model:is-dialog-visible="isAppSearchBarVisible"
:search-results="searchResult"
:is-loading="isLoading"
@@ -238,7 +249,7 @@ const LazyAppBarSearch = defineAsyncComponent(() => import('@core/components/App
</VListItemTitle>
</VListItem>
</template>
</LazyAppBarSearch>
</AppBarSearch>
</template>
<style lang="scss">