UNPKG

vuetify

Version:

Vue Material Component Framework

1,474 lines (1,453 loc) 2.67 MB
import * as vue from 'vue'; import { Ref, DeepReadonly, ComponentPropsOptions, ExtractPropTypes, VNodeChild, VNode, PropType, ComponentPublicInstance, JSXComponent, CSSProperties, ComponentInternalInstance, ComputedRef, Component, EffectScope, DirectiveBinding, WritableComputedRef, UnwrapRef, nextTick, Prop, InjectionKey } from 'vue'; // @ts-ignore import * as vue_router from 'vue-router'; // @ts-ignore import { RouteLocationRaw } from 'vue-router'; interface DateAdapter<T = unknown> { date(value?: any): T | null; format(date: T, formatString: string): string; toJsDate(value: T): Date; parseISO(date: string): T; toISO(date: T): string; startOfDay(date: T): T; endOfDay(date: T): T; startOfWeek(date: T): T; endOfWeek(date: T): T; startOfMonth(date: T): T; endOfMonth(date: T): T; startOfYear(date: T): T; endOfYear(date: T): T; isBefore(date: T, comparing: T): boolean; isAfter(date: T, comparing: T): boolean; isEqual(date: T, comparing: T): boolean; isSameDay(date: T, comparing: T): boolean; isSameMonth(date: T, comparing: T): boolean; isValid(date: any): boolean; isWithinRange(date: T, range: [T, T]): boolean; addMinutes(date: T, amount: number): T; addHours(date: T, amount: number): T; addDays(date: T, amount: number): T; addWeeks(date: T, amount: number): T; addMonths(date: T, amount: number): T; getYear(date: T): number; setYear(date: T, year: number): T; getDiff(date: T, comparing: T | string, unit?: string): number; getWeekArray(date: T): T[][]; getWeekdays(): string[]; getMonth(date: T): number; setMonth(date: T, month: number): T; getNextMonth(date: T): T; getHours(date: T): number; setHours(date: T, hours: number): T; getMinutes(date: T): number; setMinutes(date: T, minutes: number): T; } 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; } declare function useLocale(): LocaleInstance & RtlInstance; interface RtlOptions { rtl?: Record<string, boolean>; } interface RtlInstance { isRtl: Ref<boolean>; rtl: Ref<Record<string, boolean>>; rtlClasses: Ref<string>; } declare function useRtl(): { isRtl: Ref<boolean>; rtlClasses: Ref<string>; }; interface DateInstance<T = DateInstanceType['instanceType']> extends DateAdapter<T> { locale?: any; } /** Supports module augmentation to specify date object types */ interface DateInstanceType { instanceType: unknown; } type InternalDateOptions<T = unknown> = { adapter: (new (options: { locale: any; formats?: any; }) => DateInstance<T>) | DateInstance<T>; formats?: Record<string, any>; locale: Record<string, any>; }; type DateOptions<T = any> = Partial<InternalDateOptions<T>>; declare function useDate(): { locale?: any; date: (value?: any) => unknown; format: (date: unknown, formatString: string) => string; toJsDate: (value: unknown) => Date; parseISO: (date: string) => unknown; toISO: (date: unknown) => string; startOfDay: (date: unknown) => unknown; endOfDay: (date: unknown) => unknown; startOfWeek: (date: unknown) => unknown; endOfWeek: (date: unknown) => unknown; startOfMonth: (date: unknown) => unknown; endOfMonth: (date: unknown) => unknown; startOfYear: (date: unknown) => unknown; endOfYear: (date: unknown) => unknown; isBefore: (date: unknown, comparing: unknown) => boolean; isAfter: (date: unknown, comparing: unknown) => boolean; isEqual: (date: unknown, comparing: unknown) => boolean; isSameDay: (date: unknown, comparing: unknown) => boolean; isSameMonth: (date: unknown, comparing: unknown) => boolean; isValid: (date: any) => boolean; isWithinRange: (date: unknown, range: [unknown, unknown]) => boolean; addMinutes: (date: unknown, amount: number) => unknown; addHours: (date: unknown, amount: number) => unknown; addDays: (date: unknown, amount: number) => unknown; addWeeks: (date: unknown, amount: number) => unknown; addMonths: (date: unknown, amount: number) => unknown; getYear: (date: unknown) => number; setYear: (date: unknown, year: number) => unknown; getDiff: (date: unknown, comparing: unknown, unit?: string | undefined) => number; getWeekArray: (date: unknown) => unknown[][]; getWeekdays: () => string[]; getMonth: (date: unknown) => number; setMonth: (date: unknown, month: number) => unknown; getNextMonth: (date: unknown) => unknown; getHours: (date: unknown) => number; setHours: (date: unknown, hours: number) => unknown; getMinutes: (date: unknown) => number; setMinutes: (date: unknown, minutes: number) => unknown; }; 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; } interface ThemeInstance { readonly isDisabled: boolean; readonly themes: Ref<Record<string, InternalThemeDefinition>>; readonly name: Readonly<Ref<string>>; readonly current: DeepReadonly<Ref<InternalThemeDefinition>>; readonly computedThemes: DeepReadonly<Ref<Record<string, InternalThemeDefinition>>>; readonly themeClasses: Readonly<Ref<string | undefined>>; readonly styles: Readonly<Ref<string>>; readonly global: { readonly name: Ref<string>; readonly current: DeepReadonly<Ref<InternalThemeDefinition>>; }; } declare function useTheme(): ThemeInstance; declare const breakpoints: readonly ["sm", "md", "lg", "xl", "xxl"]; type Breakpoint = typeof breakpoints[number]; type DisplayBreakpoint = 'xs' | Breakpoint; type DisplayThresholds = { [key in DisplayBreakpoint]: number; }; interface DisplayProps { mobileBreakpoint?: number | DisplayBreakpoint; } interface DisplayOptions { mobileBreakpoint?: number | DisplayBreakpoint; thresholds?: Partial<DisplayThresholds>; } type SSROptions = boolean | { clientWidth: number; clientHeight?: number; }; interface DisplayPlatform { android: boolean; ios: boolean; cordova: boolean; electron: boolean; chrome: boolean; edge: boolean; firefox: boolean; opera: boolean; win: boolean; mac: boolean; linux: boolean; touch: boolean; ssr: boolean; } interface DisplayInstance { xs: Ref<boolean>; sm: Ref<boolean>; md: Ref<boolean>; lg: Ref<boolean>; xl: Ref<boolean>; xxl: Ref<boolean>; smAndUp: Ref<boolean>; mdAndUp: Ref<boolean>; lgAndUp: Ref<boolean>; xlAndUp: Ref<boolean>; smAndDown: Ref<boolean>; mdAndDown: Ref<boolean>; lgAndDown: Ref<boolean>; xlAndDown: Ref<boolean>; name: Ref<DisplayBreakpoint>; height: Ref<number>; width: Ref<number>; mobile: Ref<boolean>; mobileBreakpoint: Ref<number | DisplayBreakpoint>; platform: Ref<DisplayPlatform>; thresholds: Ref<DisplayThresholds>; update(): void; } declare function useDisplay(props?: DisplayProps, name?: string): { displayClasses: vue.ComputedRef<{ [x: string]: boolean; }>; mobile: vue.ComputedRef<boolean>; xs: Ref<boolean>; sm: Ref<boolean>; md: Ref<boolean>; lg: Ref<boolean>; xl: Ref<boolean>; xxl: Ref<boolean>; smAndUp: Ref<boolean>; mdAndUp: Ref<boolean>; lgAndUp: Ref<boolean>; xlAndUp: Ref<boolean>; smAndDown: Ref<boolean>; mdAndDown: Ref<boolean>; lgAndDown: Ref<boolean>; xlAndDown: Ref<boolean>; name: Ref<DisplayBreakpoint>; height: Ref<number>; width: Ref<number>; mobileBreakpoint: Ref<number | DisplayBreakpoint>; platform: Ref<DisplayPlatform>; thresholds: Ref<DisplayThresholds>; /** @internal */ ssr: boolean; update(): void; }; declare const block: readonly ["top", "bottom"]; declare const inline: readonly ["start", "end", "left", "right"]; type Tblock = typeof block[number]; type Tinline = typeof inline[number]; type Anchor = Tblock | Tinline | 'center' | 'center center' | `${Tblock} ${Tinline | 'center'}` | `${Tinline} ${Tblock | 'center'}`; declare class Box { x: number; y: number; width: number; height: number; constructor({ x, y, width, height }: { x: number; y: number; width: number; height: number; }); get top(): number; get bottom(): number; get left(): number; get right(): number; } type HSV = { h: number; s: number; v: number; a?: number; }; type SlotsToProps<U extends RawSlots, T = MakeInternalSlots<U>> = { $children?: (VNodeChild | (T extends { default: infer V; } ? V : {}) | { [K in keyof T]?: T[K]; }); 'v-slots'?: { [K in keyof T]?: T[K] | false; }; } & { [K in keyof T as `v-slot:${K & string}`]?: T[K] | false; }; type RawSlots = Record<string, unknown>; type Slot<T> = [T] extends [never] ? () => VNodeChild : (arg: T) => VNodeChild; type VueSlot<T> = [T] extends [never] ? () => VNode[] : (arg: T) => VNode[]; type MakeInternalSlots<T extends RawSlots> = { [K in keyof T]: Slot<T[K]>; }; type MakeSlots<T extends RawSlots> = { [K in keyof T]: VueSlot<T[K]>; }; type GenericProps<Props, Slots extends Record<string, unknown>> = { $props: Props & SlotsToProps<Slots>; $slots: MakeSlots<Slots>; }; interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> { filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): Partial<Pick<T, U>>; } declare function deepEqual(a: any, b: any): boolean; type SelectItemKey<T = Record<string, any>> = boolean | null | undefined | string | readonly (string | number)[] | ((item: T, fallback?: any) => any); type MaybeRef<T> = T | Ref<T>; type EventProp<T extends any[] = any[], F = (...args: T) => void> = F; declare const EventProp: <T extends any[] = any[]>() => PropType<(...args: T) => void>; type DefaultsInstance = undefined | { [key: string]: undefined | Record<string, unknown>; global?: Record<string, unknown>; }; type DefaultsOptions = Partial<DefaultsInstance>; declare function useDefaults<T extends Record<string, any>>(props: T, name?: string): T; declare function useDefaults(props?: undefined, name?: string): Record<string, any>; interface GoToInstance { rtl: Ref<boolean>; options: GoToOptions; } interface GoToOptions { container: ComponentPublicInstance | HTMLElement | string; duration: number; layout: boolean; offset: number; easing: string | ((t: number) => number); patterns: Record<string, (t: number) => number>; } declare function useGoTo(_options?: Partial<GoToOptions>): { (target: ComponentPublicInstance | HTMLElement | string | number, options?: Partial<GoToOptions>): Promise<unknown>; horizontal(target: ComponentPublicInstance | HTMLElement | string | number, options?: Partial<GoToOptions>): Promise<unknown>; }; type IconValue = string | (string | [path: string, opacity: number])[] | 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; calendar: 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>; }; declare const VComponentIcon: { new (...args: any[]): vue.CreateComponentPublicInstance<{ tag: string; } & { icon?: IconValue | undefined; } & { $children?: vue.VNodeChild | (() => vue.VNodeChild) | { default?: (() => vue.VNodeChild) | undefined; }; 'v-slots'?: { default?: false | (() => vue.VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | (() => vue.VNodeChild) | undefined; }, () => JSX.Element, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & { tag: string; } & { icon?: IconValue | undefined; } & { $children?: vue.VNodeChild | (() => vue.VNodeChild) | { default?: (() => vue.VNodeChild) | undefined; }; 'v-slots'?: { default?: false | (() => vue.VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | (() => vue.VNodeChild) | undefined; }, {}, true, {}, vue.SlotsType<Partial<{ default: () => vue.VNode<vue.RendererNode, vue.RendererElement, { [key: string]: any; }>[]; }>>, { P: {}; B: {}; D: {}; C: {}; M: {}; Defaults: {}; }, { tag: string; } & { icon?: IconValue | undefined; } & { $children?: vue.VNodeChild | (() => vue.VNodeChild) | { default?: (() => vue.VNodeChild) | undefined; }; 'v-slots'?: { default?: false | (() => vue.VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | (() => vue.VNodeChild) | undefined; }, () => JSX.Element, {}, {}, {}, {}>; __isFragment?: undefined; __isTeleport?: undefined; __isSuspense?: undefined; } & vue.ComponentOptionsBase<{ tag: string; } & { icon?: IconValue | undefined; } & { $children?: vue.VNodeChild | (() => vue.VNodeChild) | { default?: (() => vue.VNodeChild) | undefined; }; 'v-slots'?: { default?: false | (() => vue.VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | (() => vue.VNodeChild) | undefined; }, () => JSX.Element, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {}, {}, string, vue.SlotsType<Partial<{ default: () => vue.VNode<vue.RendererNode, vue.RendererElement, { [key: string]: any; }>[]; }>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{ icon: { type: PropType<IconValue>; }; tag: { type: StringConstructor; required: true; }; }, vue.ExtractPropTypes<{ icon: { type: PropType<IconValue>; }; tag: { type: StringConstructor; required: true; }; }>>; type VComponentIcon = InstanceType<typeof VComponentIcon>; declare const VSvgIcon: { new (...args: any[]): vue.CreateComponentPublicInstance<Readonly<vue.ExtractPropTypes<{ icon: { type: PropType<IconValue>; }; tag: { type: StringConstructor; required: true; }; }>>, () => JSX.Element, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & Readonly<vue.ExtractPropTypes<{ icon: { type: PropType<IconValue>; }; tag: { type: StringConstructor; required: true; }; }>>, {}, true, {}, {}, { P: {}; B: {}; D: {}; C: {}; M: {}; Defaults: {}; }, Readonly<vue.ExtractPropTypes<{ icon: { type: PropType<IconValue>; }; tag: { type: StringConstructor; required: true; }; }>>, () => JSX.Element, {}, {}, {}, {}>; __isFragment?: undefined; __isTeleport?: undefined; __isSuspense?: undefined; } & vue.ComponentOptionsBase<Readonly<vue.ExtractPropTypes<{ icon: { type: PropType<IconValue>; }; tag: { type: StringConstructor; required: true; }; }>>, () => JSX.Element, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, {}, {}, string, {}> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{ icon: { type: PropType<IconValue>; }; tag: { type: StringConstructor; required: true; }; }, vue.ExtractPropTypes<{ icon: { type: PropType<IconValue>; }; tag: { type: StringConstructor; required: true; }; }>>; type VSvgIcon = InstanceType<typeof VSvgIcon>; declare const VLigatureIcon: { new (...args: any[]): vue.CreateComponentPublicInstance<Readonly<vue.ExtractPropTypes<{ icon: { type: PropType<IconValue>; }; tag: { type: StringConstructor; required: true; }; }>>, () => JSX.Element, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & Readonly<vue.ExtractPropTypes<{ icon: { type: PropType<IconValue>; }; tag: { type: StringConstructor; required: true; }; }>>, {}, true, {}, {}, { P: {}; B: {}; D: {}; C: {}; M: {}; Defaults: {}; }, Readonly<vue.ExtractPropTypes<{ icon: { type: PropType<IconValue>; }; tag: { type: StringConstructor; required: true; }; }>>, () => JSX.Element, {}, {}, {}, {}>; __isFragment?: undefined; __isTeleport?: undefined; __isSuspense?: undefined; } & vue.ComponentOptionsBase<Readonly<vue.ExtractPropTypes<{ icon: { type: PropType<IconValue>; }; tag: { type: StringConstructor; required: true; }; }>>, () => JSX.Element, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, {}, {}, string, {}> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{ icon: { type: PropType<IconValue>; }; tag: { type: StringConstructor; required: true; }; }, vue.ExtractPropTypes<{ icon: { type: PropType<IconValue>; }; tag: { type: StringConstructor; required: true; }; }>>; type VLigatureIcon = InstanceType<typeof VLigatureIcon>; declare const VClassIcon: { new (...args: any[]): vue.CreateComponentPublicInstance<Readonly<vue.ExtractPropTypes<{ icon: { type: PropType<IconValue>; }; tag: { type: StringConstructor; required: true; }; }>>, () => JSX.Element, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & Readonly<vue.ExtractPropTypes<{ icon: { type: PropType<IconValue>; }; tag: { type: StringConstructor; required: true; }; }>>, {}, true, {}, {}, { P: {}; B: {}; D: {}; C: {}; M: {}; Defaults: {}; }, Readonly<vue.ExtractPropTypes<{ icon: { type: PropType<IconValue>; }; tag: { type: StringConstructor; required: true; }; }>>, () => JSX.Element, {}, {}, {}, {}>; __isFragment?: undefined; __isTeleport?: undefined; __isSuspense?: undefined; } & vue.ComponentOptionsBase<Readonly<vue.ExtractPropTypes<{ icon: { type: PropType<IconValue>; }; tag: { type: StringConstructor; required: true; }; }>>, () => JSX.Element, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, {}, {}, string, {}> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{ icon: { type: PropType<IconValue>; }; tag: { type: StringConstructor; required: true; }; }, vue.ExtractPropTypes<{ icon: { type: PropType<IconValue>; }; tag: { type: StringConstructor; required: true; }; }>>; type VClassIcon = InstanceType<typeof VClassIcon>; type Position = 'top' | 'left' | 'right' | 'bottom'; interface Layer { top: number; bottom: number; left: number; right: number; } interface LayoutItem extends Layer { id: string; size: number; position: Position; } declare function useLayout(): { getLayoutItem: (id: string) => LayoutItem | undefined; mainRect: Ref<Layer>; mainStyles: Ref<CSSProperties>; }; type ValidationResult = string | boolean; type ValidationRule$1 = ValidationResult | PromiseLike<ValidationResult> | ((value: any) => ValidationResult) | ((value: any) => PromiseLike<ValidationResult>); type ValidateOnValue = 'blur' | 'input' | 'submit'; interface ValidationProps { disabled: boolean | null; error: boolean; errorMessages: string | readonly string[] | null; focused: boolean; maxErrors: string | number; name: string | undefined; label: string | undefined; readonly: boolean | null; rules: readonly ValidationRule$1[]; modelValue: any; 'onUpdate:modelValue': EventProp | undefined; validateOn?: ValidateOnValue | `${ValidateOnValue} lazy` | `lazy ${ValidateOnValue}` | 'lazy'; validationValue: any; } declare function useValidation(props: ValidationProps, name?: string, id?: MaybeRef<string | number>): { errorMessages: vue.ComputedRef<string[]>; isDirty: vue.ComputedRef<boolean>; isDisabled: vue.ComputedRef<boolean>; isReadonly: vue.ComputedRef<boolean>; isPristine: vue.ShallowRef<boolean>; isValid: vue.ComputedRef<boolean | null>; isValidating: vue.ShallowRef<boolean>; reset: () => void; resetValidation: () => void; validate: (silent?: boolean) => Promise<string[]>; validationClasses: vue.ComputedRef<{ [x: string]: boolean; }>; }; interface FieldValidationResult { id: number | string; errorMessages: string[]; } interface FormValidationResult { valid: boolean; errors: FieldValidationResult[]; } interface SubmitEventPromise extends SubmitEvent, Promise<FormValidationResult> { } interface VuetifyOptions { aliases?: Record<string, any>; blueprint?: Blueprint; components?: Record<string, any>; date?: DateOptions; directives?: Record<string, any>; defaults?: DefaultsOptions; display?: DisplayOptions; goTo?: GoToOptions; theme?: ThemeOptions; icons?: IconOptions; locale?: LocaleOptions & RtlOptions; ssr?: SSROptions; } interface Blueprint extends Omit<VuetifyOptions, 'blueprint'> { } declare const VApp: { new (...args: any[]): vue.CreateComponentPublicInstance<{ style: vue.StyleValue; fullHeight: boolean; } & { class?: any; theme?: string | undefined; overlaps?: string[] | undefined; } & { $children?: vue.VNodeChild | (() => vue.VNodeChild) | { default?: (() => vue.VNodeChild) | undefined; }; 'v-slots'?: { default?: false | (() => vue.VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | (() => vue.VNodeChild) | undefined; }, { getLayoutItem: (id: string) => { size: number; position: "left" | "top" | "bottom" | "right"; top: number; bottom: number; left: number; right: number; id: string; } | undefined; items: vue.ComputedRef<{ size: number; position: "left" | "top" | "bottom" | "right"; top: number; bottom: number; left: number; right: number; id: string; }[]>; theme: ThemeInstance; }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & { style: vue.StyleValue; fullHeight: boolean; } & { class?: any; theme?: string | undefined; overlaps?: string[] | undefined; } & { $children?: vue.VNodeChild | (() => vue.VNodeChild) | { default?: (() => vue.VNodeChild) | undefined; }; 'v-slots'?: { default?: false | (() => vue.VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | (() => vue.VNodeChild) | undefined; }, { style: vue.StyleValue; fullHeight: boolean; }, true, {}, vue.SlotsType<Partial<{ default: () => vue.VNode<vue.RendererNode, vue.RendererElement, { [key: string]: any; }>[]; }>>, { P: {}; B: {}; D: {}; C: {}; M: {}; Defaults: {}; }, { style: vue.StyleValue; fullHeight: boolean; } & { class?: any; theme?: string | undefined; overlaps?: string[] | undefined; } & { $children?: vue.VNodeChild | (() => vue.VNodeChild) | { default?: (() => vue.VNodeChild) | undefined; }; 'v-slots'?: { default?: false | (() => vue.VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | (() => vue.VNodeChild) | undefined; }, { getLayoutItem: (id: string) => { size: number; position: "left" | "top" | "bottom" | "right"; top: number; bottom: number; left: number; right: number; id: string; } | undefined; items: vue.ComputedRef<{ size: number; position: "left" | "top" | "bottom" | "right"; top: number; bottom: number; left: number; right: number; id: string; }[]>; theme: ThemeInstance; }, {}, {}, {}, { style: vue.StyleValue; fullHeight: boolean; }>; __isFragment?: undefined; __isTeleport?: undefined; __isSuspense?: undefined; } & vue.ComponentOptionsBase<{ style: vue.StyleValue; fullHeight: boolean; } & { class?: any; theme?: string | undefined; overlaps?: string[] | undefined; } & { $children?: vue.VNodeChild | (() => vue.VNodeChild) | { default?: (() => vue.VNodeChild) | undefined; }; 'v-slots'?: { default?: false | (() => vue.VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | (() => vue.VNodeChild) | undefined; }, { getLayoutItem: (id: string) => { size: number; position: "left" | "top" | "bottom" | "right"; top: number; bottom: number; left: number; right: number; id: string; } | undefined; items: vue.ComputedRef<{ size: number; position: "left" | "top" | "bottom" | "right"; top: number; bottom: number; left: number; right: number; id: string; }[]>; theme: ThemeInstance; }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, { style: vue.StyleValue; fullHeight: boolean; }, {}, string, vue.SlotsType<Partial<{ default: () => vue.VNode<vue.RendererNode, vue.RendererElement, { [key: string]: any; }>[]; }>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{ theme: StringConstructor; overlaps: vue.Prop<string[]>; fullHeight: { type: vue.PropType<boolean>; default: boolean; }; class: vue.PropType<any>; style: { type: vue.PropType<vue.StyleValue>; default: null; }; }, vue.ExtractPropTypes<{ theme: StringConstructor; overlaps: vue.Prop<string[]>; fullHeight: { type: vue.PropType<boolean>; default: boolean; }; class: vue.PropType<any>; style: { type: vue.PropType<vue.StyleValue>; default: null; }; }>>; type VApp = InstanceType<typeof VApp>; type Density$1 = null | 'prominent' | 'default' | 'comfortable' | 'compact'; declare const VToolbar: { new (...args: any[]): vue.CreateComponentPublicInstance<{ flat: boolean; absolute: boolean; height: string | number; style: vue.StyleValue; tag: string; collapse: boolean; density: Density$1; extended: boolean; extensionHeight: string | number; floating: boolean; } & { border?: string | number | boolean | undefined; color?: string | undefined; title?: string | undefined; image?: string | undefined; class?: any; elevation?: string | number | undefined; theme?: string | undefined; rounded?: string | number | boolean | undefined; } & { $children?: vue.VNodeChild | (() => vue.VNodeChild) | { default?: (() => vue.VNodeChild) | undefined; image?: (() => vue.VNodeChild) | undefined; prepend?: (() => vue.VNodeChild) | undefined; append?: (() => vue.VNodeChild) | undefined; title?: (() => vue.VNodeChild) | undefined; extension?: (() => vue.VNodeChild) | undefined; }; 'v-slots'?: { default?: false | (() => vue.VNodeChild) | undefined; image?: false | (() => vue.VNodeChild) | undefined; prepend?: false | (() => vue.VNodeChild) | undefined; append?: false | (() => vue.VNodeChild) | undefined; title?: false | (() => vue.VNodeChild) | undefined; extension?: false | (() => vue.VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | (() => vue.VNodeChild) | undefined; "v-slot:image"?: false | (() => vue.VNodeChild) | undefined; "v-slot:prepend"?: false | (() => vue.VNodeChild) | undefined; "v-slot:append"?: false | (() => vue.VNodeChild) | undefined; "v-slot:title"?: false | (() => vue.VNodeChild) | undefined; "v-slot:extension"?: false | (() => vue.VNodeChild) | undefined; }, { contentHeight: vue.ComputedRef<number>; extensionHeight: vue.ComputedRef<number>; }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & { flat: boolean; absolute: boolean; height: string | number; style: vue.StyleValue; tag: string; collapse: boolean; density: Density$1; extended: boolean; extensionHeight: string | number; floating: boolean; } & { border?: string | number | boolean | undefined; color?: string | undefined; title?: string | undefined; image?: string | undefined; class?: any; elevation?: string | number | undefined; theme?: string | undefined; rounded?: string | number | boolean | undefined; } & { $children?: vue.VNodeChild | (() => vue.VNodeChild) | { default?: (() => vue.VNodeChild) | undefined; image?: (() => vue.VNodeChild) | undefined; prepend?: (() => vue.VNodeChild) | undefined; append?: (() => vue.VNodeChild) | undefined; title?: (() => vue.VNodeChild) | undefined; extension?: (() => vue.VNodeChild) | undefined; }; 'v-slots'?: { default?: false | (() => vue.VNodeChild) | undefined; image?: false | (() => vue.VNodeChild) | undefined; prepend?: false | (() => vue.VNodeChild) | undefined; append?: false | (() => vue.VNodeChild) | undefined; title?: false | (() => vue.VNodeChild) | undefined; extension?: false | (() => vue.VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | (() => vue.VNodeChild) | undefined; "v-slot:image"?: false | (() => vue.VNodeChild) | undefined; "v-slot:prepend"?: false | (() => vue.VNodeChild) | undefined; "v-slot:append"?: false | (() => vue.VNodeChild) | undefined; "v-slot:title"?: false | (() => vue.VNodeChild) | undefined; "v-slot:extension"?: false | (() => vue.VNodeChild) | undefined; }, { flat: boolean; absolute: boolean; height: string | number; style: vue.StyleValue; tag: string; collapse: boolean; rounded: string | number | boolean; density: Density$1; extended: boolean; extensionHeight: string | number; floating: boolean; }, true, {}, vue.SlotsType<Partial<{ default: () => vue.VNode<vue.RendererNode, vue.RendererElement, { [key: string]: any; }>[]; image: () => vue.VNode<vue.RendererNode, vue.RendererElement, { [key: string]: any; }>[]; prepend: () => vue.VNode<vue.RendererNode, vue.RendererElement, { [key: string]: any; }>[]; append: () => vue.VNode<vue.RendererNode, vue.RendererElement, { [key: string]: any; }>[]; title: () => vue.VNode<vue.RendererNode, vue.RendererElement, { [key: string]: any; }>[]; extension: () => vue.VNode<vue.RendererNode, vue.RendererElement, { [key: string]: any; }>[]; }>>, { P: {}; B: {}; D: {}; C: {}; M: {}; Defaults: {}; }, { flat: boolean; absolute: boolean; height: string | number; style: vue.StyleValue; tag: string; collapse: boolean; density: Density$1; extended: boolean; extensionHeight: string | number; floating: boolean; } & { border?: string | number | boolean | undefined; color?: string | undefined; title?: string | undefined; image?: string | undefined; class?: any; elevation?: string | number | undefined; theme?: string | undefined; rounded?: string | number | boolean | undefined; } & { $children?: vue.VNodeChild | (() => vue.VNodeChild) | { default?: (() => vue.VNodeChild) | undefined; image?: (() => vue.VNodeChild) | undefined; prepend?: (() => vue.VNodeChild) | undefined; append?: (() => vue.VNodeChild) | undefined; title?: (() => vue.VNodeChild) | undefined; extension?: (() => vue.VNodeChild) | undefined; }; 'v-slots'?: { default?: false | (() => vue.VNodeChild) | undefined; image?: false | (() => vue.VNodeChild) | undefined; prepend?: false | (() => vue.VNodeChild) | undefined; append?: false | (() => vue.VNodeChild) | undefined; title?: false | (() => vue.VNodeChild) | undefined; extension?: false | (() => vue.VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | (() => vue.VNodeChild) | undefined; "v-slot:image"?: false | (() => vue.VNodeChild) | undefined; "v-slot:prepend"?: false | (() => vue.VNodeChild) | undefined; "v-slot:append"?: false | (() => vue.VNodeChild) | undefined; "v-slot:title"?: false | (() => vue.VNodeChild) | undefined; "v-slot:extension"?: false | (() => vue.VNodeChild) | undefined; }, { contentHeight: vue.ComputedRef<number>; extensionHeight: vue.ComputedRef<number>; }, {}, {}, {}, { flat: boolean; absolute: boolean; height: string | number; style: vue.StyleValue; tag: string; collapse: boolean; rounded: string | number | boolean; density: Density$1; extended: boolean; extensionHeight: string | number; floating: boolean; }>; __isFragment?: undefined; __isTeleport?: undefined; __isSuspense?: undefined; } & vue.ComponentOptionsBase<{ flat: boolean; absolute: boolean; height: string | number; style: vue.StyleValue; tag: string; collapse: boolean; density: Density$1; extended: boolean; extensionHeight: string | number; floating: boolean; } & { border?: string | number | boolean | undefined; color?: string | undefined; title?: string | undefined; image?: string | undefined; class?: any; elevation?: string | number | undefined; theme?: string | undefined; rounded?: string | number | boolean | undefined; } & { $children?: vue.VNodeChild | (() => vue.VNodeChild) | { default?: (() => vue.VNodeChild) | undefined; image?: (() => vue.VNodeChild) | undefined; prepend?: (() => vue.VNodeChild) | undefined; append?: (() => vue.VNodeChild) | undefined; title?: (() => vue.VNodeChild) | undefined; extension?: (() => vue.VNodeChild) | undefined; }; 'v-slots'?: { default?: false | (() => vue.VNodeChild) | undefined; image?: false | (() => vue.VNodeChild) | undefined; prepend?: false | (() => vue.VNodeChild) | undefined; append?: false | (() => vue.VNodeChild) | undefined; title?: false | (() => vue.VNodeChild) | undefined; extension?: false | (() => vue.VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | (() => vue.VNodeChild) | undefined; "v-slot:image"?: false | (() => vue.VNodeChild) | undefined; "v-slot:prepend"?: false | (() => vue.VNodeChild) | undefined; "v-slot:append"?: false | (() => vue.VNodeChild) | undefined; "v-slot:title"?: false | (() => vue.VNodeChild) | undefined; "v-slot:extension"?: false | (() => vue.VNodeChild) | undefined; }, { contentHeight: vue.ComputedRef<number>; extensionHeight: vue.ComputedRef<number>; }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, { flat: boolean; absolute: boolean; height: string | number; style: vue.StyleValue; tag: string; collapse: boolean; rounded: string | number | boolean; density: Density$1; extended: boolean; extensionHeight: string | number; floating: boolean; }, {}, string, vue.SlotsType<Partial<{ default: () => vue.VNode<vue.RendererNode, vue.RendererElement, { [key: string]: any; }>[]; image: () => vue.VNode<vue.RendererNode, vue.RendererElement, { [key: string]: any; }>[]; prepend: () => vue.VNode<vue.RendererNode, vue.RendererElement, { [key: string]: any; }>[]; append: () => vue.VNode<vue.RendererNode, vue.RendererElement, { [key: string]: any; }>[]; title: () => vue.VNode<vue.RendererNode, vue.RendererElement, { [key: string]: any; }>[]; extension: () => vue.VNode<vue.RendererNode, vue.RendererElement, { [key: string]: any; }>[]; }>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{ theme: StringConstructor; tag: Omit<{ type: StringConstructor; default: string; }, "type" | "default"> & { type: PropType<string>; default: string; }; rounded: { type: (StringConstructor | BooleanConstructor | NumberConstructor)[]; default: undefined; }; elevation: { type: (StringConstructor | NumberConstructor)[]; validator(v: any): boolean; }; class: PropType<any>; style: { type: PropType<vue.StyleValue>; default: null; }; border: (StringConstructor | BooleanConstructor | NumberConstructor)[]; absolute: BooleanConstructor; collapse: BooleanConstructor; color: StringConstructor; density: { type: PropType<Density$1>; default: string; validator: (v: any) => boolean; }; extended: BooleanConstructor; extensionHeight: { type: (StringConstructor | NumberConstructor)[]; default: number; }; flat: BooleanConstructor; floating: BooleanConstructor; height: { type: (StringConstructor | NumberConstructor)[]; default: number; }; image: StringConstructor; title: StringConstructor; }, vue.ExtractPropTypes<{ theme: StringConstructor; tag: Omit<{ type: StringConstructor; default: string; }, "type" | "default"> & { type: PropType<string>; default: string; }; rounded: { type: (StringConstructor | BooleanConstructor | NumberConstructor)[]; default: undefined; }; elevation: { type: (StringConstructor | NumberConstructor)[]; validator(v: any): boolean; }; class: PropType<any>; style: { type: PropType<vue.StyleValue>; default: null; }; border: (StringConstructor | BooleanConstructor | NumberConstructor)[]; absolute: BooleanConstructor; collapse: BooleanConstructor; color: StringConstructor; density: { type: PropType<Density$1>; default: string; validator: (v: any) => boolean; }; extended: BooleanConstructor; extensionHeight: { type: (StringConstructor | NumberConstructor)[]; default: number; }; flat: BooleanConstructor; floating: BooleanConstructor; height: { type: (StringConstructor | NumberConstructor)[]; default: number; }; image: StringConstructor; title: StringConstructor; }>>; type VToolbar = InstanceType<typeof VToolbar>; declare const VAppBar: { new (...args: any[]): vue.CreateComponentPublicInstance<{ flat: boolean; absolute: boolean; location: "top" | "bottom"; height: string | number; order: string | number; style: vue.StyleValue; tag: string; collapse: boolean; density: Density$1; extended: boolean; extensionHeight: string | number; floating: boolean; scrollThreshold: string | number; modelValue: boolean; } & { name?: string | undefined; border?: string | number | boolean | undefined; color?: string | undefined; scrollBehavior?: "hide" | (string & {}) | "collapse" | "inverted" | "elevate" | "fade-image" | undefined; title?: string | undefined; image?: string | undefined; class?: any; elevation?: string | number | undefined; theme?: string | undefined; rounded?: string | number | boolean | undefined; scrollTarget?: string | undefined; } & { $children?: vue.VNodeChild | (() => vue.VNodeChild) | { default?: (() => vue.VNodeChild) | undefined; image?: (() => vue.VNodeChild) | undefined; prepend?: (() => vue.VNodeChild) | undefined; append?: (() => vue.VNodeChild) | undefined; title?: (() => vue.VNodeChild) | undefined; extension?: (() => vue.VNodeChild) | undefined; }; 'v-slots'?: { default?: false | (() => vue.VNodeChild) | undefined; image?: false | (() => vue.VNodeChild) | undefined; prepend?: false | (() => vue.VNodeChild) | undefined; append?: false | (() => vue.VNodeChild) | undefined; title?: false | (() => vue.VNodeChild) | undefined; extension?: false | (() => vue.VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | (() => vue.VNodeChild) | undefined; "v-slot:image"?: false | (() => vue.VNodeChild) | undefined; "v-slot:prepend"?: false | (() => vue.VNodeChild) | undefined; "v-slot:append"?: false | (() => vue.VNodeChild) | undefined; "v-slot:title"?: false | (() => vue.VNodeChild) | undefined; "v-slot:extension"?: false | (() => vue.VNodeChild) | undefined; } & { "onUpdate:modelValue"?: ((value: boolean) => any) | undefined; }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, { 'update:modelValue': (value: boolean) => boolean; }, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & { flat: boolean; absolute: boolean; location: "top" | "bottom"; height: string | number; order: string | number; style: vue.StyleValue; tag: string; collapse: boolean; density: Density$1; extended: boolean; extensionHeight: string | number; floating: boolean; scrollThreshold: string | number; modelValue: boolean; } & { name?: string | undefined; border?: string | number | boolean | undefined; color?: string | undefined; scrollBehavior?: "hide" | (string & {}) | "collapse" | "inverted" | "elevate" | "fade-image" | undefined; title?: string | undefined; image?: string | undefined; class?: any; elevation?: string | number | undefined; theme?: string | undefined; rounded?: string | number | boolean | undefined; scrollTarget?: string | undefined; } & { $children?: vue.VNodeChild | (() => vue.VNodeChild) | { default?: (() => vue.VNodeChild) | undefined; image?: (() => vue.VNodeChild) | undefined; prepend?: (() => vue.VNodeChild) | undefined; append?: (() => vue.VNodeChild) | undefined; title?: (() => vue.VNodeChild) | undefined; extension?: (() => vue.VNodeChild) | undefined; }; 'v-slots'?: { default?: false | (() => vue.VNodeChild) | undefined; image?: false | (() => vue.VNodeChild) | undefined; prepend?: false | (() => vue.VNodeChild) | undefined; append?: false | (() => vue.VNodeChild) | undefined; title?: false | (() => vue.VNodeChild) | undefined; extension?: false | (() => vue.VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | (() => vue.VNodeChild) | undefined; "v-slot:image"?: false | (() => vue.VNodeChild) | undefined; "v-slot:prepend"?: false | (() => vue.VNodeChild) | undefined; "v-slot:append"?: false | (() => vue.VNodeChild) | undefined; "v-slot:title"?: false | (() => vue.VNodeChild) | undefined; "v-slot:extension"?: false | (() => vue.VNodeChild) | undefined; } & { "onUpdate:modelValue"?: ((value: boolean) => any) | undefined; }, { flat: boolean; absolute: boolean; location: "top" | "bottom"; height: string | number; order: string | number; style: vue.StyleValue; tag: string; collapse: boolean; rounded: string | number | boolean; density: Density$1; extended: boolean; extensionHeight: string | number; floating: boolean; scrollThreshold: string | number; modelValue: boolean; }, true, {}, vue.SlotsType<Partial<{ default: () => vue.VNode<vue.RendererNode, vue.RendererElement, { [key: string]: any; }>[]; image: () => vue.VNode<vue.RendererNode, vue.RendererElement, { [key: string]: any; }>[]; prepend: () => vue.VNode<vue.RendererNode, vue.RendererElement, { [key: string]: any; }>[]; append: () => vue.VNode<vue.RendererNode, vue.RendererElement, { [key: string]: any; }>[]; title: () => vue.VNode<vue.RendererNode, vue.RendererElement, { [key: string]: any; }>[]; extension: () => vue.VNode<vue.RendererNode, vue.RendererElement, { [key: string]: any; }>[]; }>>, { P: {}; B: {}; D: {}; C: {};