@volverjs/ui-vue
Version:
@volverjs/ui-vue is a lightweight Vue 3 component library to accompany @volverjs/style.
122 lines (121 loc) • 4.15 kB
TypeScript
import type { IconifyIcon, IconifyJSON, PartialIconifyAPIConfig } from '@iconify/vue';
import type { Component, Directive, Plugin, Ref } from 'vue';
export declare function useDefaultProps(component: Component, defaults?: Record<string, unknown>, name?: string): Component;
export type DefaultOptions = Record<string, Record<string, unknown>>;
export type VolverExperimentalFeatures = {
/**
* Force suggestions in `VvInputText` and `VvTextarea` component
*/
forceInputSuggestions?: boolean;
};
export type VolverOptions = {
/**
* If true set "fetchOptions" with credentials: 'include'
*/
fetchWithCredentials?: boolean;
/**
* Optional fetch params
*/
fetchOptions?: RequestInit;
/**
* Array of iconify collections that will be added during plugin install
* @see https://docs.iconify.design/types/iconify-json.html
*/
iconsCollections?: IconifyJSON[];
/**
* Set true inside nuxt
*/
nuxt?: boolean;
/**
* Default iconify provider
* @see https://docs.iconify.design/icon-components/vue/add-collection.html
* @default 'vv'
*/
iconsProvider?: string;
/**
* Components to install
*/
components?: Record<string, Component>;
/**
* Alias to install
*/
aliases?: Record<string, Component>;
/**
* Directives to install
*/
directives?: Record<string, Directive>;
/**
* Default props for components
*/
defaults?: DefaultOptions;
/**
* Experimental features
*/
experimentalFeatures?: VolverExperimentalFeatures;
};
export interface VolverInterface {
/**
* @param {string} src Icon source path (url)
* @param {RequestInit} options
* @returns {Promise<string | undefined>} String SVG if exist
*/
fetchIcon: (src: string, options?: RequestInit) => Promise<string | undefined>;
/**
* Add iconify collection to library
* @see https://docs.iconify.design/icon-components/vue/add-collection.html
* @param {IconifyJSON} collection
* @param {string} providerName Optional provider name
*/
addCollection: (collection: IconifyJSON, providerName?: string) => boolean;
/**
* Add icon to collection
* @see https://docs.iconify.design/icon-components/vue/add-icon.html
* @param {string} name
* @param {IconifyIcon} data
* @returns {boolean} true on success, false if something is wrong with data
*/
addIcon: (name: string, data: IconifyIcon) => boolean;
/**
* Add custom config for icons provider
* @param {string} provider
* @param {PartialIconifyAPIConfig} customConfig
* @returns {boolean} true on success, false if something is wrong with data
*/
addIconsAPIProvider: (provider: string, customConfig: PartialIconifyAPIConfig) => boolean;
/**
* Current provider
*/
iconsProvider: string;
/**
* Array of installed iconify collections
* @see https://docs.iconify.design/types/iconify-json.html
*/
iconsCollections: IconifyJSON[];
/**
* Set true inside nuxt
*/
nuxt: boolean;
/**
* Components defaults options
*/
defaults: Ref<DefaultOptions>;
}
export declare class Volver implements VolverInterface {
private _fetchOptions;
private _iconsCollections;
private _iconsProvider;
private _nuxt;
private _experimentalFeatures;
defaults: Ref<DefaultOptions>;
constructor({ fetchWithCredentials, fetchOptions, iconsProvider, nuxt, iconsCollections, defaults, experimentalFeatures, }?: VolverOptions);
get nuxt(): boolean;
get iconsProvider(): string;
get iconsCollections(): IconifyJSON[];
get experimentalFeatures(): VolverExperimentalFeatures;
addCollection(collection: IconifyJSON, providerName?: string): boolean;
addIcon(name: string, data: IconifyIcon): boolean;
addIconsAPIProvider(provider: string, customConfig: PartialIconifyAPIConfig): boolean;
fetchIcon(src: string, options?: RequestInit): Promise<string | undefined>;
}
declare const VolverPlugin: Plugin;
export default VolverPlugin;