UNPKG

16.8 kBTypeScriptView Raw
1import { ToRefs, Ref, JSXComponent, App, ComponentInternalInstance } from 'vue';
2
3declare type DisplayBreakpoint = keyof DisplayThresholds;
4interface DisplayThresholds {
5 xs: number;
6 sm: number;
7 md: number;
8 lg: number;
9 xl: number;
10 xxl: number;
11}
12interface DisplayOptions {
13 mobileBreakpoint?: number | DisplayBreakpoint;
14 thresholds?: Partial<DisplayThresholds>;
15}
16interface DisplayPlatform {
17 android: boolean;
18 ios: boolean;
19 cordova: boolean;
20 electron: boolean;
21 chrome: boolean;
22 edge: boolean;
23 firefox: boolean;
24 opera: boolean;
25 win: boolean;
26 mac: boolean;
27 linux: boolean;
28 touch: boolean;
29 ssr: boolean;
30}
31interface DisplayInstance {
32 xs: boolean;
33 sm: boolean;
34 md: boolean;
35 lg: boolean;
36 xl: boolean;
37 xxl: boolean;
38 smAndUp: boolean;
39 mdAndUp: boolean;
40 lgAndUp: boolean;
41 xlAndUp: boolean;
42 smAndDown: boolean;
43 mdAndDown: boolean;
44 lgAndDown: boolean;
45 xlAndDown: boolean;
46 name: DisplayBreakpoint;
47 height: number;
48 width: number;
49 mobile: boolean;
50 mobileBreakpoint: number | DisplayBreakpoint;
51 platform: DisplayPlatform;
52 thresholds: DisplayThresholds;
53}
54declare function useDisplay(): ToRefs<DisplayInstance>;
55
56declare type DeepPartial<T> = T extends object ? {
57 [P in keyof T]?: DeepPartial<T[P]>;
58} : T;
59interface BaseColors {
60 background: string;
61 surface: string;
62 primary: string;
63 secondary: string;
64 success: string;
65 warning: string;
66 error: string;
67 info: string;
68}
69interface OnColors {
70 'on-background': string;
71 'on-surface': string;
72 'on-primary': string;
73 'on-secondary': string;
74 'on-success': string;
75 'on-warning': string;
76 'on-error': string;
77 'on-info': string;
78}
79interface Colors extends BaseColors, OnColors {
80 [key: string]: string;
81}
82interface InternalThemeDefinition {
83 dark: boolean;
84 colors: Colors;
85 variables: Record<string, string | number>;
86}
87interface VariationsOptions {
88 colors: string[];
89 lighten: number;
90 darken: number;
91}
92declare type ThemeDefinition = DeepPartial<InternalThemeDefinition>;
93declare type ThemeOptions = false | {
94 defaultTheme?: string;
95 variations?: false | VariationsOptions;
96 themes?: Record<string, ThemeDefinition>;
97};
98interface ThemeInstance {
99 isDisabled: boolean;
100 themes: Ref<Record<string, InternalThemeDefinition>>;
101 current: Ref<string>;
102 themeClasses: Ref<string | undefined>;
103 setTheme: (key: string, theme: InternalThemeDefinition) => void;
104 getTheme: (key: string) => InternalThemeDefinition;
105 styles: Ref<string>;
106}
107declare function useTheme(): ThemeInstance;
108
109declare type IconValue = string | JSXComponent;
110interface IconAliases {
111 [name: string]: IconValue;
112 complete: IconValue;
113 cancel: IconValue;
114 close: IconValue;
115 delete: IconValue;
116 clear: IconValue;
117 success: IconValue;
118 info: IconValue;
119 warning: IconValue;
120 error: IconValue;
121 prev: IconValue;
122 next: IconValue;
123 checkboxOn: IconValue;
124 checkboxOff: IconValue;
125 checkboxIndeterminate: IconValue;
126 delimiter: IconValue;
127 sort: IconValue;
128 expand: IconValue;
129 menu: IconValue;
130 subgroup: IconValue;
131 dropdown: IconValue;
132 radioOn: IconValue;
133 radioOff: IconValue;
134 edit: IconValue;
135 ratingEmpty: IconValue;
136 ratingFull: IconValue;
137 ratingHalf: IconValue;
138 loading: IconValue;
139 first: IconValue;
140 last: IconValue;
141 unfold: IconValue;
142 file: IconValue;
143 plus: IconValue;
144 minus: IconValue;
145}
146interface IconProps {
147 tag: string;
148 icon: IconValue;
149 disabled?: Boolean;
150}
151declare type IconComponent = JSXComponent<IconProps>;
152interface IconSet {
153 component: IconComponent;
154}
155declare type IconOptions = {
156 defaultSet: string;
157 aliases?: Partial<IconAliases>;
158 sets: Record<string, IconSet>;
159};
160
161interface LocaleMessages {
162 [key: string]: LocaleMessages | string;
163}
164interface LocaleOptions {
165 defaultLocale?: string;
166 fallbackLocale?: string;
167 messages?: LocaleMessages;
168}
169interface LocaleProps {
170 locale?: string;
171 fallbackLocale?: string;
172 messages?: LocaleMessages;
173}
174interface LocaleInstance {
175 current: Ref<string>;
176 fallback: Ref<string>;
177 messages: Ref<LocaleMessages>;
178 t: (key: string, ...params: unknown[]) => string;
179 n: (value: number) => string;
180}
181interface LocaleAdapter {
182 createRoot: (app: App) => LocaleInstance;
183 getScope: () => LocaleInstance;
184 createScope: (options?: LocaleProps) => LocaleInstance;
185}
186
187interface RtlOptions {
188 defaultRtl?: boolean;
189 rtl?: Record<string, boolean>;
190}
191interface RtlProps {
192 rtl?: boolean;
193}
194interface RtlInstance {
195 isRtl: Ref<boolean>;
196 rtl: Record<string, boolean>;
197 rtlClasses: Ref<string>;
198}
199declare function provideRtl(props: RtlProps, localeScope: LocaleInstance): RtlInstance;
200declare function useRtl(): RtlInstance;
201
202interface DefaultsInstance {
203 [key: string]: undefined | Record<string, unknown>;
204 global?: Record<string, unknown>;
205}
206declare type DefaultsOptions = Partial<DefaultsInstance>;
207
208declare type Position = 'top' | 'left' | 'right' | 'bottom';
209declare type LayoutItem = {
210 id: string;
211 top: number;
212 bottom: number;
213 left: number;
214 right: number;
215 size: number;
216};
217interface LayoutProvide {
218 register: (vm: ComponentInternalInstance, options: {
219 id: string;
220 priority: Ref<number>;
221 position: Ref<Position>;
222 layoutSize: Ref<number | string>;
223 elementSize: Ref<number | string>;
224 active: Ref<boolean>;
225 disableTransitions?: Ref<boolean>;
226 absolute: Ref<boolean | undefined>;
227 }) => {
228 layoutItemStyles: Ref<Record<string, unknown>>;
229 layoutItemScrimStyles: Ref<Record<string, unknown>>;
230 };
231 unregister: (id: string) => void;
232 mainStyles: Ref<Record<string, unknown>>;
233 getLayoutItem: (id: string) => LayoutItem | undefined;
234 items: Ref<LayoutItem[]>;
235 layoutRect: Ref<DOMRectReadOnly | undefined>;
236 rootZIndex: Ref<number>;
237 overlays: Ref<number[]>;
238}
239declare function useLayout(): LayoutProvide;
240
241interface VuetifyOptions {
242 components?: Record<string, any>;
243 directives?: Record<string, any>;
244 defaults?: DefaultsOptions;
245 display?: DisplayOptions;
246 theme?: ThemeOptions;
247 icons?: IconOptions;
248 locale?: (LocaleOptions & RtlOptions) | (LocaleAdapter & RtlOptions);
249}
250declare const createVuetify: (options?: VuetifyOptions) => {
251 install: (app: App) => void;
252};
253
254export { DefaultsInstance, DisplayBreakpoint, DisplayInstance, DisplayThresholds, IconAliases, IconOptions, IconProps, IconSet, LocaleAdapter, RtlInstance, ThemeDefinition, ThemeInstance, VuetifyOptions, createVuetify, provideRtl, useDisplay, useLayout, useRtl, useTheme };
255
256import type { ComponentPublicInstance, FunctionalComponent } from 'vue'
257
258declare global {
259 namespace JSX {
260 interface ElementChildrenAttribute {
261 $children
262 }
263 }
264}
265
266declare module 'vue' {
267 export type JSXComponent<Props = any> = { new (): ComponentPublicInstance<Props> } | FunctionalComponent<Props>
268}
269
270declare module '@vue/runtime-dom' {
271 import type { VNodeChild } from '@vue/runtime-core'
272
273 export interface HTMLAttributes {
274 $children?: VNodeChild
275 }
276 export interface SVGAttributes {
277 $children?: VNodeChild
278 }
279}
280
281declare module '@vue/runtime-core' {
282
283
284 interface Vuetify {
285 defaults: DefaultsInstance
286 display: DisplayInstance
287 theme: ThemeInstance
288 icons: IconOptions
289 locale: LocaleAdapter
290 rtl: RtlInstance
291 }
292
293 export interface ComponentCustomProperties {
294 $vuetify: Vuetify
295 }
296
297 export interface GlobalComponents {
298 VApp: typeof import('vuetify/components')['VApp']
299 VAppBar: typeof import('vuetify/components')['VAppBar']
300 VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
301 VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
302 VAlert: typeof import('vuetify/components')['VAlert']
303 VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
304 VAvatar: typeof import('vuetify/components')['VAvatar']
305 VBadge: typeof import('vuetify/components')['VBadge']
306 VBanner: typeof import('vuetify/components')['VBanner']
307 VBannerActions: typeof import('vuetify/components')['VBannerActions']
308 VBannerAvatar: typeof import('vuetify/components')['VBannerAvatar']
309 VBannerContent: typeof import('vuetify/components')['VBannerContent']
310 VBannerText: typeof import('vuetify/components')['VBannerText']
311 VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
312 VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
313 VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
314 VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
315 VBtn: typeof import('vuetify/components')['VBtn']
316 VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
317 VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
318 VCard: typeof import('vuetify/components')['VCard']
319 VCardActions: typeof import('vuetify/components')['VCardActions']
320 VCardAvatar: typeof import('vuetify/components')['VCardAvatar']
321 VCardHeader: typeof import('vuetify/components')['VCardHeader']
322 VCardHeaderText: typeof import('vuetify/components')['VCardHeaderText']
323 VCardImg: typeof import('vuetify/components')['VCardImg']
324 VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
325 VCardText: typeof import('vuetify/components')['VCardText']
326 VCardTitle: typeof import('vuetify/components')['VCardTitle']
327 VCheckbox: typeof import('vuetify/components')['VCheckbox']
328 VChip: typeof import('vuetify/components')['VChip']
329 VChipGroup: typeof import('vuetify/components')['VChipGroup']
330 VCode: typeof import('vuetify/components')['VCode']
331 VCounter: typeof import('vuetify/components')['VCounter']
332 VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
333 VDialog: typeof import('vuetify/components')['VDialog']
334 VDivider: typeof import('vuetify/components')['VDivider']
335 VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
336 VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
337 VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
338 VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
339 VField: typeof import('vuetify/components')['VField']
340 VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
341 VFileInput: typeof import('vuetify/components')['VFileInput']
342 VFooter: typeof import('vuetify/components')['VFooter']
343 VForm: typeof import('vuetify/components')['VForm']
344 VContainer: typeof import('vuetify/components')['VContainer']
345 VCol: typeof import('vuetify/components')['VCol']
346 VRow: typeof import('vuetify/components')['VRow']
347 VSpacer: typeof import('vuetify/components')['VSpacer']
348 VHover: typeof import('vuetify/components')['VHover']
349 VIcon: typeof import('vuetify/components')['VIcon']
350 VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
351 VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
352 VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
353 VClassIcon: typeof import('vuetify/components')['VClassIcon']
354 VImg: typeof import('vuetify/components')['VImg']
355 VInput: typeof import('vuetify/components')['VInput']
356 VItemGroup: typeof import('vuetify/components')['VItemGroup']
357 VItem: typeof import('vuetify/components')['VItem']
358 VKbd: typeof import('vuetify/components')['VKbd']
359 VLabel: typeof import('vuetify/components')['VLabel']
360 VLayout: typeof import('vuetify/components')['VLayout']
361 VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
362 VLazy: typeof import('vuetify/components')['VLazy']
363 VList: typeof import('vuetify/components')['VList']
364 VListSubheader: typeof import('vuetify/components')['VListSubheader']
365 VListImg: typeof import('vuetify/components')['VListImg']
366 VListItem: typeof import('vuetify/components')['VListItem']
367 VListItemAvatar: typeof import('vuetify/components')['VListItemAvatar']
368 VListItemHeader: typeof import('vuetify/components')['VListItemHeader']
369 VListItemMedia: typeof import('vuetify/components')['VListItemMedia']
370 VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
371 VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
372 VListGroup: typeof import('vuetify/components')['VListGroup']
373 VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
374 VMain: typeof import('vuetify/components')['VMain']
375 VMenu: typeof import('vuetify/components')['VMenu']
376 VMessages: typeof import('vuetify/components')['VMessages']
377 VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
378 VNoSsr: typeof import('vuetify/components')['VNoSsr']
379 VOverlay: typeof import('vuetify/components')['VOverlay']
380 VPagination: typeof import('vuetify/components')['VPagination']
381 VParallax: typeof import('vuetify/components')['VParallax']
382 VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
383 VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
384 VRadio: typeof import('vuetify/components')['VRadio']
385 VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
386 VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
387 VRating: typeof import('vuetify/components')['VRating']
388 VResponsive: typeof import('vuetify/components')['VResponsive']
389 VSelect: typeof import('vuetify/components')['VSelect']
390 VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
391 VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
392 VSheet: typeof import('vuetify/components')['VSheet']
393 VSlider: typeof import('vuetify/components')['VSlider']
394 VSwitch: typeof import('vuetify/components')['VSwitch']
395 VSystemBar: typeof import('vuetify/components')['VSystemBar']
396 VTable: typeof import('vuetify/components')['VTable']
397 VTextarea: typeof import('vuetify/components')['VTextarea']
398 VTextField: typeof import('vuetify/components')['VTextField']
399 VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
400 VTimeline: typeof import('vuetify/components')['VTimeline']
401 VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
402 VToolbar: typeof import('vuetify/components')['VToolbar']
403 VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
404 VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
405 VTooltip: typeof import('vuetify/components')['VTooltip']
406 VValidation: typeof import('vuetify/components')['VValidation']
407 VWindow: typeof import('vuetify/components')['VWindow']
408 VWindowItem: typeof import('vuetify/components')['VWindowItem']
409 VCarouselTransition: typeof import('vuetify/components')['VCarouselTransition']
410 VCarouselReverseTransition: typeof import('vuetify/components')['VCarouselReverseTransition']
411 VTabTransition: typeof import('vuetify/components')['VTabTransition']
412 VTabReverseTransition: typeof import('vuetify/components')['VTabReverseTransition']
413 VMenuTransition: typeof import('vuetify/components')['VMenuTransition']
414 VFabTransition: typeof import('vuetify/components')['VFabTransition']
415 VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
416 VDialogTopTransition: typeof import('vuetify/components')['VDialogTopTransition']
417 VFadeTransition: typeof import('vuetify/components')['VFadeTransition']
418 VScaleTransition: typeof import('vuetify/components')['VScaleTransition']
419 VScrollXTransition: typeof import('vuetify/components')['VScrollXTransition']
420 VScrollXReverseTransition: typeof import('vuetify/components')['VScrollXReverseTransition']
421 VScrollYTransition: typeof import('vuetify/components')['VScrollYTransition']
422 VScrollYReverseTransition: typeof import('vuetify/components')['VScrollYReverseTransition']
423 VSlideXTransition: typeof import('vuetify/components')['VSlideXTransition']
424 VSlideXReverseTransition: typeof import('vuetify/components')['VSlideXReverseTransition']
425 VSlideYTransition: typeof import('vuetify/components')['VSlideYTransition']
426 VSlideYReverseTransition: typeof import('vuetify/components')['VSlideYReverseTransition']
427 VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
428 VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
429 VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
430 }
431}