vuetify
Version:
Vue Material Component Framework
165 lines (154 loc) • 3.92 kB
TypeScript
import { Ref, JSXComponent, PropType } from 'vue';
interface LocaleMessages {
[key: string]: LocaleMessages | string;
}
interface LocaleOptions {
messages?: LocaleMessages;
locale?: string;
fallback?: string;
adapter?: LocaleInstance;
}
interface LocaleInstance {
name: string;
messages: Ref<LocaleMessages>;
current: Ref<string>;
fallback: Ref<string>;
t: (key: string, ...params: unknown[]) => string;
n: (value: number) => string;
provide: (props: LocaleOptions) => LocaleInstance;
}
interface RtlOptions {
rtl?: Record<string, boolean>;
}
type DeepPartial<T> = T extends object ? {
[P in keyof T]?: DeepPartial<T[P]>;
} : T;
type ThemeOptions = false | {
cspNonce?: string;
defaultTheme?: string;
variations?: false | VariationsOptions;
themes?: Record<string, ThemeDefinition>;
};
type ThemeDefinition = DeepPartial<InternalThemeDefinition>;
interface VariationsOptions {
colors: string[];
lighten: number;
darken: number;
}
interface InternalThemeDefinition {
dark: boolean;
colors: Colors;
variables: Record<string, string | number>;
}
interface Colors extends BaseColors, OnColors {
[key: string]: string;
}
interface BaseColors {
background: string;
surface: string;
primary: string;
secondary: string;
success: string;
warning: string;
error: string;
info: string;
}
interface OnColors {
'on-background': string;
'on-surface': string;
'on-primary': string;
'on-secondary': string;
'on-success': string;
'on-warning': string;
'on-error': string;
'on-info': string;
}
type DisplayBreakpoint = keyof DisplayThresholds;
interface DisplayThresholds {
xs: number;
sm: number;
md: number;
lg: number;
xl: number;
xxl: number;
}
interface DisplayOptions {
mobileBreakpoint?: number | DisplayBreakpoint;
thresholds?: Partial<DisplayThresholds>;
}
type DefaultsInstance = undefined | {
[key: string]: undefined | Record<string, unknown>;
global?: Record<string, unknown>;
};
type DefaultsOptions = Partial<DefaultsInstance>;
type IconValue = string | JSXComponent;
declare const IconValue: PropType<IconValue>;
interface IconAliases {
[name: string]: IconValue;
complete: IconValue;
cancel: IconValue;
close: IconValue;
delete: IconValue;
clear: IconValue;
success: IconValue;
info: IconValue;
warning: IconValue;
error: IconValue;
prev: IconValue;
next: IconValue;
checkboxOn: IconValue;
checkboxOff: IconValue;
checkboxIndeterminate: IconValue;
delimiter: IconValue;
sortAsc: IconValue;
sortDesc: IconValue;
expand: IconValue;
menu: IconValue;
subgroup: IconValue;
dropdown: IconValue;
radioOn: IconValue;
radioOff: IconValue;
edit: IconValue;
ratingEmpty: IconValue;
ratingFull: IconValue;
ratingHalf: IconValue;
loading: IconValue;
first: IconValue;
last: IconValue;
unfold: IconValue;
file: IconValue;
plus: IconValue;
minus: IconValue;
}
interface IconProps {
tag: string;
icon?: IconValue;
disabled?: Boolean;
}
type IconComponent = JSXComponent<IconProps>;
interface IconSet {
component: IconComponent;
}
type IconOptions = {
defaultSet: string;
aliases?: Partial<IconAliases>;
sets: Record<string, IconSet>;
};
interface VuetifyOptions {
aliases?: Record<string, any>;
blueprint?: Blueprint;
components?: Record<string, any>;
directives?: Record<string, any>;
defaults?: DefaultsOptions;
display?: DisplayOptions;
theme?: ThemeOptions;
icons?: IconOptions;
locale?: LocaleOptions & RtlOptions;
ssr?: boolean;
}
interface Blueprint extends Omit<VuetifyOptions, 'blueprint'> {
}
declare const md1: Blueprint;
declare const md2: Blueprint;
declare const md3: Blueprint;
export { md1, md2, md3 };