Files
ebook/.nuxt/schema/nuxt.schema.d.ts
2025-06-17 17:46:03 +04:00

211 lines
4.6 KiB
TypeScript

export interface NuxtCustomSchema {
appConfig?: {
/**
* Nuxt Icon
*
* Configure Nuxt Icon module preferences.
*
*
* @studioIcon material-symbols:star
*/
icon?: {
/**
* Icon Size
*
* Set the default icon size.
*
*
* @studioIcon material-symbols:format-size-rounded
*/
size?: string | undefined,
/**
* CSS Class
*
* Set the default CSS class.
*
* @default ""
*
* @studioIcon material-symbols:css
*/
class?: string,
/**
* Default Attributes
*
* Attributes applied to every icon component.
*
* @default { "aria-hidden": true }
*
*
* @studioIcon material-symbols:settings
*/
attrs?: Record<string, string | number | boolean>,
/**
* Default Rendering Mode
*
* Set the default rendering mode for the icon component
*
* @default "css"
*
* @enum css,svg
*
* @studioIcon material-symbols:move-down-rounded
*/
mode?: string,
/**
* Icon aliases
*
* Define Icon aliases to update them easily without code changes.
*
*
* @studioIcon material-symbols:star-rounded
*/
aliases?: { [alias: string]: string },
/**
* CSS Selector Prefix
*
* Set the default CSS selector prefix.
*
* @default "i-"
*
* @studioIcon material-symbols:format-textdirection-l-to-r
*/
cssSelectorPrefix?: string,
/**
* CSS Layer Name
*
* Set the default CSS `@layer` name.
*
*
* @studioIcon material-symbols:layers
*/
cssLayer?: string | undefined,
/**
* Use CSS `:where()` Pseudo Selector
*
* Use CSS `:where()` pseudo selector to reduce specificity.
*
* @default true
*
* @studioIcon material-symbols:low-priority
*/
cssWherePseudo?: boolean,
/**
* Icon Collections
*
* List of known icon collections name. Used to resolve collection name ambiguity.
* e.g. `simple-icons-github` -> `simple-icons:github` instead of `simple:icons-github`
*
* When not provided, will use the full Iconify collection list.
*
*
* @studioIcon material-symbols:format-list-bulleted
*/
collections?: string[] | null,
/**
* Custom Icon Collections
*
*
* @studioIcon material-symbols:format-list-bulleted
*/
customCollections?: string[] | null,
/**
* Icon Provider
*
* Provider to use for fetching icons
*
* - `server` - Fetch icons with a server handler
* - `iconify` - Fetch icons with Iconify API, purely client-side
* - `none` - Do not fetch icons (use client bundle only)
*
* `server` by default; `iconify` when `ssr: false`
*
*
* @enum server,iconify,none
*
* @studioIcon material-symbols:cloud
*/
provider?: "server" | "iconify" | undefined,
/**
* Iconify API Endpoint URL
*
* Define a custom Iconify API endpoint URL. Useful if you want to use a self-hosted Iconify API. Learn more: https://iconify.design/docs/api.
*
* @default "https://api.iconify.design"
*
* @studioIcon material-symbols:api
*/
iconifyApiEndpoint?: string,
/**
* Fallback to Iconify API
*
* Fallback to Iconify API if server provider fails to found the collection.
*
* @default true
*
* @enum true,false,server-only,client-only
*
* @studioIcon material-symbols:public
*/
fallbackToApi?: boolean | "server-only" | "client-only",
/**
* Local API Endpoint Path
*
* Define a custom path for the local API endpoint.
*
* @default "/api/_nuxt_icon"
*
* @studioIcon material-symbols:api
*/
localApiEndpoint?: string,
/**
* Fetch Timeout
*
* Set the timeout for fetching icons.
*
* @default 1500
*
* @studioIcon material-symbols:timer
*/
fetchTimeout?: number,
/**
* Customize callback
*
* Customize icon content (replace stroke-width, colors, etc...).
*
*
* @studioIcon material-symbols:edit
*/
customize?: IconifyIconCustomizeCallback,
},
},
}
export type CustomAppConfig = Exclude<NuxtCustomSchema['appConfig'], undefined>
type _CustomAppConfig = CustomAppConfig
declare module '@nuxt/schema' {
interface NuxtConfig extends Omit<NuxtCustomSchema, 'appConfig'> {}
interface NuxtOptions extends Omit<NuxtCustomSchema, 'appConfig'> {}
interface CustomAppConfig extends _CustomAppConfig {}
}
declare module 'nuxt/schema' {
interface NuxtConfig extends Omit<NuxtCustomSchema, 'appConfig'> {}
interface NuxtOptions extends Omit<NuxtCustomSchema, 'appConfig'> {}
interface CustomAppConfig extends _CustomAppConfig {}
}