git init
This commit is contained in:
20
resources/js/types/auth.ts
Normal file
20
resources/js/types/auth.ts
Normal file
@@ -0,0 +1,20 @@
|
||||
export type User = {
|
||||
id: number;
|
||||
name: string;
|
||||
email: string;
|
||||
avatar?: string;
|
||||
email_verified_at: string | null;
|
||||
created_at: string;
|
||||
updated_at: string;
|
||||
[key: string]: unknown;
|
||||
};
|
||||
|
||||
export type Auth = {
|
||||
user: User;
|
||||
};
|
||||
|
||||
export type TwoFactorConfigContent = {
|
||||
title: string;
|
||||
description: string;
|
||||
buttonText: string;
|
||||
};
|
||||
33
resources/js/types/global.d.ts
vendored
Normal file
33
resources/js/types/global.d.ts
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
import type { Auth } from '@/types/auth';
|
||||
|
||||
// Extend ImportMeta interface for Vite...
|
||||
declare module 'vite/client' {
|
||||
interface ImportMetaEnv {
|
||||
readonly VITE_APP_NAME: string;
|
||||
[key: string]: string | boolean | undefined;
|
||||
}
|
||||
|
||||
interface ImportMeta {
|
||||
readonly env: ImportMetaEnv;
|
||||
readonly glob: <T>(pattern: string) => Record<string, () => Promise<T>>;
|
||||
}
|
||||
}
|
||||
|
||||
declare module '@inertiajs/core' {
|
||||
export interface InertiaConfig {
|
||||
sharedPageProps: {
|
||||
name: string;
|
||||
auth: Auth;
|
||||
sidebarOpen: boolean;
|
||||
[key: string]: unknown;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
declare module 'vue' {
|
||||
interface ComponentCustomProperties {
|
||||
$inertia: typeof Router;
|
||||
$page: Page;
|
||||
$headManager: ReturnType<typeof createHeadManager>;
|
||||
}
|
||||
}
|
||||
3
resources/js/types/index.ts
Normal file
3
resources/js/types/index.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
export * from './auth';
|
||||
export * from './navigation';
|
||||
export * from './ui';
|
||||
14
resources/js/types/navigation.ts
Normal file
14
resources/js/types/navigation.ts
Normal file
@@ -0,0 +1,14 @@
|
||||
import type { InertiaLinkProps } from '@inertiajs/vue3';
|
||||
import type { LucideIcon } from 'lucide-vue-next';
|
||||
|
||||
export type BreadcrumbItem = {
|
||||
title: string;
|
||||
href: NonNullable<InertiaLinkProps['href']>;
|
||||
};
|
||||
|
||||
export type NavItem = {
|
||||
title: string;
|
||||
href: NonNullable<InertiaLinkProps['href']>;
|
||||
icon?: LucideIcon;
|
||||
isActive?: boolean;
|
||||
};
|
||||
4
resources/js/types/ui.ts
Normal file
4
resources/js/types/ui.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
export type Appearance = 'light' | 'dark' | 'system';
|
||||
export type ResolvedAppearance = 'light' | 'dark';
|
||||
|
||||
export type AppShellVariant = 'header' | 'sidebar';
|
||||
5
resources/js/types/vue-shims.d.ts
vendored
Normal file
5
resources/js/types/vue-shims.d.ts
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
declare module '*.vue' {
|
||||
import type { DefineComponent } from 'vue';
|
||||
const component: DefineComponent;
|
||||
export default component;
|
||||
}
|
||||
Reference in New Issue
Block a user