29 lines
1.5 KiB
TypeScript
29 lines
1.5 KiB
TypeScript
import type { ComputedGetter, PropType } from 'vue';
|
|
import type { VIconBtnSizes } from '../labs/VIconBtn/VIconBtn.js';
|
|
export interface IconSizeProps {
|
|
iconSize?: VIconBtnSizes | number | string;
|
|
iconSizes: [VIconBtnSizes, number][];
|
|
}
|
|
export declare const makeIconSizeProps: <Defaults extends {
|
|
iconSize?: unknown;
|
|
iconSizes?: unknown;
|
|
} = {}>(defaults?: Defaults | undefined) => {
|
|
iconSize: unknown extends Defaults["iconSize"] ? PropType<string | number> : {
|
|
type: PropType<unknown extends Defaults["iconSize"] ? string | number : string | number | Defaults["iconSize"]>;
|
|
default: unknown extends Defaults["iconSize"] ? string | number : Defaults["iconSize"] | NonNullable<string | number>;
|
|
};
|
|
iconSizes: unknown extends Defaults["iconSizes"] ? {
|
|
type: PropType<[VIconBtnSizes, number][]>;
|
|
default: () => (string | number)[][];
|
|
} : Omit<{
|
|
type: PropType<[VIconBtnSizes, number][]>;
|
|
default: () => (string | number)[][];
|
|
}, "default" | "type"> & {
|
|
type: PropType<unknown extends Defaults["iconSizes"] ? [VIconBtnSizes, number][] : [VIconBtnSizes, number][] | Defaults["iconSizes"]>;
|
|
default: unknown extends Defaults["iconSizes"] ? [VIconBtnSizes, number][] : [VIconBtnSizes, number][] | Defaults["iconSizes"];
|
|
};
|
|
};
|
|
export declare function useIconSizes(props: IconSizeProps, fallback: ComputedGetter<VIconBtnSizes | number | string | undefined>): {
|
|
iconSize: import("vue").ComputedRef<number | VIconBtnSizes | undefined>;
|
|
};
|