33 lines
1.2 KiB
TypeScript
33 lines
1.2 KiB
TypeScript
import type { ExtractPropTypes, SetupContext } from 'vue';
|
|
import type { SlotsToProps } from '../util/index.js';
|
|
export interface LoaderSlotProps {
|
|
color: string | undefined;
|
|
isActive: boolean;
|
|
}
|
|
export interface LoaderProps {
|
|
loading?: boolean | string;
|
|
}
|
|
export declare const makeLoaderProps: <Defaults extends {
|
|
loading?: unknown;
|
|
} = {}>(defaults?: Defaults | undefined) => {
|
|
loading: unknown extends Defaults["loading"] ? (BooleanConstructor | StringConstructor)[] : {
|
|
type: import("vue").PropType<unknown extends Defaults["loading"] ? string | boolean : string | boolean | Defaults["loading"]>;
|
|
default: unknown extends Defaults["loading"] ? string | boolean : Defaults["loading"] | NonNullable<string | boolean>;
|
|
};
|
|
};
|
|
export declare function useLoader(props: LoaderProps, name?: string): {
|
|
loaderClasses: Readonly<import("vue").Ref<{
|
|
[x: string]: string | boolean | undefined;
|
|
}, {
|
|
[x: string]: string | boolean | undefined;
|
|
}>>;
|
|
};
|
|
export declare function LoaderSlot(props: {
|
|
absolute?: boolean;
|
|
active: boolean;
|
|
name: string;
|
|
color?: string;
|
|
} & ExtractPropTypes<SlotsToProps<{
|
|
default: LoaderSlotProps;
|
|
}>>, { slots }: SetupContext): JSX.Element;
|