UNPKG

@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
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;