diff --git a/.prettierrc b/.prettierrc index e491919d..5b647f95 100644 --- a/.prettierrc +++ b/.prettierrc @@ -3,9 +3,16 @@ "singleQuote": true, "singleAttributePerLine": false, "htmlWhitespaceSensitivity": "css", - "printWidth": 150, - "plugins": ["prettier-plugin-organize-imports", "prettier-plugin-tailwindcss"], - "tailwindFunctions": ["clsx", "cn", "cva"], + "printWidth": 80, + "plugins": [ + "prettier-plugin-organize-imports", + "prettier-plugin-tailwindcss" + ], + "tailwindFunctions": [ + "clsx", + "cn", + "cva" + ], "tailwindStylesheet": "resources/css/app.css", "tabWidth": 4, "overrides": [ diff --git a/resources/css/app.css b/resources/css/app.css index 1a7ee31e..6f9d1f56 100644 --- a/resources/css/app.css +++ b/resources/css/app.css @@ -8,7 +8,10 @@ @custom-variant dark (&:is(.dark *)); @theme inline { - --font-sans: Instrument Sans, ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; + --font-sans: + Instrument Sans, ui-sans-serif, system-ui, sans-serif, + 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', + 'Noto Color Emoji'; --radius-lg: var(--radius); --radius-md: calc(var(--radius) - 2px); @@ -80,7 +83,9 @@ body, html { --font-sans: - 'Instrument Sans', ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; + 'Instrument Sans', ui-sans-serif, system-ui, sans-serif, + 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', + 'Noto Color Emoji'; } } diff --git a/resources/js/app.ts b/resources/js/app.ts index 9f2f6d81..768a33fd 100644 --- a/resources/js/app.ts +++ b/resources/js/app.ts @@ -10,7 +10,11 @@ const appName = import.meta.env.VITE_APP_NAME || 'Laravel'; createInertiaApp({ title: (title) => (title ? `${title} - ${appName}` : appName), - resolve: (name) => resolvePageComponent(`./pages/${name}.vue`, import.meta.glob('./pages/**/*.vue')), + resolve: (name) => + resolvePageComponent( + `./pages/${name}.vue`, + import.meta.glob('./pages/**/*.vue'), + ), setup({ el, App, props, plugin }) { createApp({ render: () => h(App, props) }) .use(plugin) diff --git a/resources/js/components/AppContent.vue b/resources/js/components/AppContent.vue index 96e3d2a9..9b6f13f7 100644 --- a/resources/js/components/AppContent.vue +++ b/resources/js/components/AppContent.vue @@ -15,7 +15,11 @@ const className = computed(() => props.class); -
+
diff --git a/resources/js/components/AppHeader.vue b/resources/js/components/AppHeader.vue index aeab9501..40e454f8 100644 --- a/resources/js/components/AppHeader.vue +++ b/resources/js/components/AppHeader.vue @@ -4,10 +4,30 @@ import AppLogoIcon from '@/components/AppLogoIcon.vue'; import Breadcrumbs from '@/components/Breadcrumbs.vue'; import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; import { Button } from '@/components/ui/button'; -import { DropdownMenu, DropdownMenuContent, DropdownMenuTrigger } from '@/components/ui/dropdown-menu'; -import { NavigationMenu, NavigationMenuItem, NavigationMenuList, navigationMenuTriggerStyle } from '@/components/ui/navigation-menu'; -import { Sheet, SheetContent, SheetHeader, SheetTitle, SheetTrigger } from '@/components/ui/sheet'; -import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip'; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuTrigger, +} from '@/components/ui/dropdown-menu'; +import { + NavigationMenu, + NavigationMenuItem, + NavigationMenuList, + navigationMenuTriggerStyle, +} from '@/components/ui/navigation-menu'; +import { + Sheet, + SheetContent, + SheetHeader, + SheetTitle, + SheetTrigger, +} from '@/components/ui/sheet'; +import { + Tooltip, + TooltipContent, + TooltipProvider, + TooltipTrigger, +} from '@/components/ui/tooltip'; import UserMenuContent from '@/components/UserMenuContent.vue'; import { getInitials } from '@/composables/useInitials'; import { toUrl, urlIsActive } from '@/lib/utils'; @@ -28,11 +48,16 @@ const props = withDefaults(defineProps(), { const page = usePage(); const auth = computed(() => page.props.auth); -const isCurrentRoute = computed(() => (url: NonNullable) => urlIsActive(url, page.url)); +const isCurrentRoute = computed( + () => (url: NonNullable) => + urlIsActive(url, page.url), +); const activeItemStyles = computed( () => (url: NonNullable) => - isCurrentRoute.value(toUrl(url)) ? 'text-neutral-900 dark:bg-neutral-800 dark:text-neutral-100' : '', + isCurrentRoute.value(toUrl(url)) + ? 'text-neutral-900 dark:bg-neutral-800 dark:text-neutral-100' + : '', ); const mainNavItems: NavItem[] = [ @@ -65,16 +90,26 @@ const rightNavItems: NavItem[] = [
- - Navigation Menu + Navigation Menu - + -
+
@@ -96,7 +135,11 @@ const rightNavItems: NavItem[] = [ rel="noopener noreferrer" class="flex items-center space-x-2 text-sm font-medium" > - + {{ item.title }}
@@ -112,13 +155,27 @@ const rightNavItems: NavItem[] = [