migrate on nuxt3

This commit is contained in:
2025-06-17 17:46:03 +04:00
parent 7634a3d616
commit 727fa976bd
123 changed files with 20963 additions and 1815 deletions

210
.nuxt/schema/nuxt.schema.d.ts vendored Normal file
View File

@ -0,0 +1,210 @@
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 {}
}

View File

@ -0,0 +1,263 @@
{
"id": "#",
"properties": {
"appConfig": {
"id": "#appConfig",
"properties": {
"icon": {
"title": "Nuxt Icon",
"description": "Configure Nuxt Icon module preferences.",
"tags": [
"@studioIcon material-symbols:star"
],
"id": "#appConfig/icon",
"properties": {
"size": {
"title": "Icon Size",
"description": "Set the default icon size.",
"tags": [
"@studioIcon material-symbols:format-size-rounded"
],
"tsType": "string | undefined",
"id": "#appConfig/icon/size",
"default": {},
"type": "any"
},
"class": {
"title": "CSS Class",
"description": "Set the default CSS class.",
"tags": [
"@studioIcon material-symbols:css"
],
"id": "#appConfig/icon/class",
"default": "",
"type": "string"
},
"attrs": {
"title": "Default Attributes",
"description": "Attributes applied to every icon component.\n\n@default { \"aria-hidden\": true }",
"tags": [
"@studioIcon material-symbols:settings"
],
"tsType": "Record<string, string | number | boolean>",
"id": "#appConfig/icon/attrs",
"default": {
"aria-hidden": true
},
"type": "object"
},
"mode": {
"title": "Default Rendering Mode",
"description": "Set the default rendering mode for the icon component",
"enum": [
"css",
"svg"
],
"tags": [
"@studioIcon material-symbols:move-down-rounded"
],
"id": "#appConfig/icon/mode",
"default": "css",
"type": "string"
},
"aliases": {
"title": "Icon aliases",
"description": "Define Icon aliases to update them easily without code changes.",
"tags": [
"@studioIcon material-symbols:star-rounded"
],
"tsType": "{ [alias: string]: string }",
"id": "#appConfig/icon/aliases",
"default": {},
"type": "object"
},
"cssSelectorPrefix": {
"title": "CSS Selector Prefix",
"description": "Set the default CSS selector prefix.",
"tags": [
"@studioIcon material-symbols:format-textdirection-l-to-r"
],
"id": "#appConfig/icon/cssSelectorPrefix",
"default": "i-",
"type": "string"
},
"cssLayer": {
"title": "CSS Layer Name",
"description": "Set the default CSS `@layer` name.",
"tags": [
"@studioIcon material-symbols:layers"
],
"tsType": "string | undefined",
"id": "#appConfig/icon/cssLayer",
"default": {},
"type": "any"
},
"cssWherePseudo": {
"title": "Use CSS `:where()` Pseudo Selector",
"description": "Use CSS `:where()` pseudo selector to reduce specificity.",
"tags": [
"@studioIcon material-symbols:low-priority"
],
"id": "#appConfig/icon/cssWherePseudo",
"default": true,
"type": "boolean"
},
"collections": {
"title": "Icon Collections",
"description": "List of known icon collections name. Used to resolve collection name ambiguity.\ne.g. `simple-icons-github` -> `simple-icons:github` instead of `simple:icons-github`\n\nWhen not provided, will use the full Iconify collection list.",
"tags": [
"@studioIcon material-symbols:format-list-bulleted"
],
"tsType": "string[] | null",
"id": "#appConfig/icon/collections",
"default": null,
"type": "any"
},
"customCollections": {
"title": "Custom Icon Collections",
"tags": [
"@studioIcon material-symbols:format-list-bulleted"
],
"tsType": "string[] | null",
"id": "#appConfig/icon/customCollections",
"default": null,
"type": "any"
},
"provider": {
"title": "Icon Provider",
"description": "Provider to use for fetching icons\n\n- `server` - Fetch icons with a server handler\n- `iconify` - Fetch icons with Iconify API, purely client-side\n- `none` - Do not fetch icons (use client bundle only)\n\n`server` by default; `iconify` when `ssr: false`",
"enum": [
"server",
"iconify",
"none"
],
"tags": [
"@studioIcon material-symbols:cloud"
],
"type": "\"server\" | \"iconify\" | undefined",
"id": "#appConfig/icon/provider"
},
"iconifyApiEndpoint": {
"title": "Iconify API Endpoint URL",
"description": "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.",
"tags": [
"@studioIcon material-symbols:api"
],
"id": "#appConfig/icon/iconifyApiEndpoint",
"default": "https://api.iconify.design",
"type": "string"
},
"fallbackToApi": {
"title": "Fallback to Iconify API",
"description": "Fallback to Iconify API if server provider fails to found the collection.",
"tags": [
"@studioIcon material-symbols:public"
],
"enum": [
true,
false,
"server-only",
"client-only"
],
"type": "boolean | \"server-only\" | \"client-only\"",
"id": "#appConfig/icon/fallbackToApi",
"default": true
},
"localApiEndpoint": {
"title": "Local API Endpoint Path",
"description": "Define a custom path for the local API endpoint.",
"tags": [
"@studioIcon material-symbols:api"
],
"id": "#appConfig/icon/localApiEndpoint",
"default": "/api/_nuxt_icon",
"type": "string"
},
"fetchTimeout": {
"title": "Fetch Timeout",
"description": "Set the timeout for fetching icons.",
"tags": [
"@studioIcon material-symbols:timer"
],
"id": "#appConfig/icon/fetchTimeout",
"default": 1500,
"type": "number"
},
"customize": {
"title": "Customize callback",
"description": "Customize icon content (replace stroke-width, colors, etc...).",
"tags": [
"@studioIcon material-symbols:edit"
],
"type": "IconifyIconCustomizeCallback",
"id": "#appConfig/icon/customize"
}
},
"type": "object",
"default": {
"size": {},
"class": "",
"attrs": {
"aria-hidden": true
},
"mode": "css",
"aliases": {},
"cssSelectorPrefix": "i-",
"cssLayer": {},
"cssWherePseudo": true,
"collections": null,
"customCollections": null,
"iconifyApiEndpoint": "https://api.iconify.design",
"fallbackToApi": true,
"localApiEndpoint": "/api/_nuxt_icon",
"fetchTimeout": 1500
}
}
},
"type": "object",
"default": {
"icon": {
"size": {},
"class": "",
"attrs": {
"aria-hidden": true
},
"mode": "css",
"aliases": {},
"cssSelectorPrefix": "i-",
"cssLayer": {},
"cssWherePseudo": true,
"collections": null,
"customCollections": null,
"iconifyApiEndpoint": "https://api.iconify.design",
"fallbackToApi": true,
"localApiEndpoint": "/api/_nuxt_icon",
"fetchTimeout": 1500
}
}
}
},
"type": "object",
"default": {
"appConfig": {
"icon": {
"size": {},
"class": "",
"attrs": {
"aria-hidden": true
},
"mode": "css",
"aliases": {},
"cssSelectorPrefix": "i-",
"cssLayer": {},
"cssWherePseudo": true,
"collections": null,
"customCollections": null,
"iconifyApiEndpoint": "https://api.iconify.design",
"fallbackToApi": true,
"localApiEndpoint": "/api/_nuxt_icon",
"fetchTimeout": 1500
}
}
}
}