diff --git a/.editorconfig b/.editorconfig new file mode 100755 index 0000000..9d08a1a --- /dev/null +++ b/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true diff --git a/.env.development b/.env.development new file mode 100755 index 0000000..fb6bab9 --- /dev/null +++ b/.env.development @@ -0,0 +1,9 @@ +# 页面标题 +VITE_APP_TITLE = Fantastic-admin 基础版 +# 接口请求地址,会设置到 axios 的 baseURL 参数上 +VITE_APP_API_BASEURL = / +# 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 +VITE_APP_DEBUG_TOOL = + +# 是否开启代理 +VITE_OPEN_PROXY = false diff --git a/.env.example b/.env.example new file mode 100755 index 0000000..87cfc2c --- /dev/null +++ b/.env.example @@ -0,0 +1,13 @@ +# 页面标题 +VITE_APP_TITLE = Fantastic-admin 基础版 +# 接口请求地址,会设置到 axios 的 baseURL 参数上 +VITE_APP_API_BASEURL = / +# 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 +VITE_APP_DEBUG_TOOL = + +# 是否在打包时启用 Mock +VITE_BUILD_MOCK = true +# 是否在打包时生成 sourcemap +VITE_BUILD_SOURCEMAP = false +# 是否在打包时开启压缩,支持 gzip 和 brotli +VITE_BUILD_COMPRESS = gzip,brotli diff --git a/.github/workflows/deploy-example-site.yml b/.github/workflows/deploy-example-site.yml new file mode 100755 index 0000000..44bc5d3 --- /dev/null +++ b/.github/workflows/deploy-example-site.yml @@ -0,0 +1,64 @@ +name: deploy-example-site + +on: + push: + branches: [main] + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + # “最近更新时间” 等 git 日志相关信息,需要拉取全部提交记录 + fetch-depth: 0 + + - name: Setup Node.js + uses: actions/setup-node@v3 + with: + # 选择要使用的 node 版本 + node-version: 18 + # registry-url: https://registry.npmmirror.com/ + + - uses: pnpm/action-setup@v2.2.4 + name: Install pnpm + id: pnpm-install + with: + version: 8 + run_install: false + + - name: Get pnpm store directory + id: pnpm-cache + run: | + echo "::set-output name=pnpm_cache_dir::$(pnpm store path)" + - uses: actions/cache@v3 + name: Setup pnpm cache + with: + path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- + - name: Install antfu/ni + run: npm i -g @antfu/ni + + - name: Install dependencies + run: ni --frozen + + # 运行构建脚本 + - name: Build + env: + NODE_OPTIONS: --max-old-space-size=8192 + run: nr build:example + + # 查看 workflow 的文档来获取更多信息 + # @see https://github.com/crazy-max/ghaction-github-pages + - name: Deploy to GitHub Pages + uses: crazy-max/ghaction-github-pages@v3 + with: + # 部署到 gh-pages 分支 + target_branch: gh-pages + # 部署目录 + build_dir: dist-example + env: + # @see https://docs.github.com/cn/actions/reference/authentication-in-a-workflow#about-the-github_token-secret + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore new file mode 100755 index 0000000..1692b26 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +node_modules +.DS_Store +dist* +dist-ssr +*.local +.eslintcache +.stylelintcache diff --git a/.lintstagedrc b/.lintstagedrc new file mode 100755 index 0000000..66075ec --- /dev/null +++ b/.lintstagedrc @@ -0,0 +1,4 @@ +{ + "*.{ts,tsx,vue}": "eslint . --cache --fix", + "*.{css,scss,vue}": "stylelint src/**/*.{css,scss,vue} --cache --fix --allow-empty-input" +} diff --git a/.npmrc b/.npmrc new file mode 100755 index 0000000..cf04042 --- /dev/null +++ b/.npmrc @@ -0,0 +1,2 @@ +shamefully-hoist=true +strict-peer-dependencies=false diff --git a/.stylelintignore b/.stylelintignore new file mode 100755 index 0000000..138aa4c --- /dev/null +++ b/.stylelintignore @@ -0,0 +1,4 @@ +dist +node_modules +src/assets/sprites +public/tinymce diff --git a/.stylelintrc b/.stylelintrc new file mode 100755 index 0000000..5fd0012 --- /dev/null +++ b/.stylelintrc @@ -0,0 +1,45 @@ +{ + "extends": [ + "stylelint-stylistic/config", + "stylelint-config-standard-scss", + "stylelint-config-standard-vue/scss" + ], + "plugins": [ + "stylelint-scss" + ], + "rules": { + "stylistic/max-line-length": null, + "stylistic/block-closing-brace-newline-after": [ + "always", + { + "ignoreAtRules": ["if", "else"] + } + ], + "at-rule-no-unknown": null, + "no-descending-specificity": null, + "property-no-unknown": null, + "font-family-no-missing-generic-family-keyword": null, + "selector-class-pattern": null, + "function-no-unknown": [ + true, + { + "ignoreFunctions": [ + "v-bind", + "map-get", + "lighten", + "darken" + ] + } + ], + "selector-pseudo-element-no-unknown": [ + true, + { + "ignorePseudoElements": [ + "/^view-transition/" + ] + } + ], + "scss/double-slash-comment-empty-line-before": null, + "scss/no-global-function-names": null + } +} diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100755 index 0000000..d4a2fc2 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,11 @@ +{ + "recommendations": [ + "EditorConfig.EditorConfig", + "mikestead.dotenv", + "dbaeumer.vscode-eslint", + "stylelint.vscode-stylelint", + "Vue.volar", + "Vue.vscode-typescript-vue-plugin", + "antfu.unocss" + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100755 index 0000000..93aefa4 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,27 @@ +{ + "eslint.experimental.useFlatConfig": true, + "prettier.enable": false, + "editor.formatOnSave": false, + "editor.codeActionsOnSave": { + "source.fixAll.eslint": true, + "source.fixAll.stylelint": true, + "source.organizeImports": false + }, + "stylelint.validate": [ + "css", + "scss", + "vue" + ], + "eslint.validate": [ + "javascript", + "javascriptreact", + "typescript", + "typescriptreact", + "vue", + "html", + "markdown", + "json", + "jsonc", + "yaml" + ] +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..ec23a91 --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +> [!IMPORTANT] +> +> 本仓库基于 Fantastic-admin 源码开发,仅作为**UI组件库替换**演示用 +> +> 将 Element Plus 替换为 TDesign 的详情操作步骤请查看官方文档(编写中) +> +> 无特别情况将不会与 Fantastic-admin 最新源码同步,请勿将本仓库源码用于生产环境 diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..113975c --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,27 @@ +import antfu from '@antfu/eslint-config' + +export default antfu( + { + ignores: [ + 'public', + 'dist*', + ], + }, + { + rules: { + 'eslint-comments/no-unlimited-disable': 'off', + 'curly': ['error', 'all'], + 'antfu/consistent-list-newline': 'off', + }, + }, + { + files: [ + 'src/**/*.vue', + ], + rules: { + 'vue/component-tags-order': ['error', { + order: ['route', 'script', 'template', 'style'], + }], + }, + }, +) diff --git a/index.html b/index.html new file mode 100755 index 0000000..074a05e --- /dev/null +++ b/index.html @@ -0,0 +1,47 @@ + + + + + + + + + + + + + %VITE_APP_TITLE% + + +
+
+
+
+
+
+
+
+
载入中
+
+
+
为了您的体验,推荐使用以下浏览器
+ +
+
+ + + + diff --git a/package.json b/package.json new file mode 100755 index 0000000..ee38933 --- /dev/null +++ b/package.json @@ -0,0 +1,99 @@ +{ + "type": "module", + "version": "3.2.3", + "scripts": { + "dev": "vite", + "build:example": "vue-tsc && vite build --mode example", + "serve:example": "http-server ./dist-example -o", + "svgo": "svgo -f src/assets/icons", + "new": "plop", + "generate:icons": "esno ./scripts/generate.icons.ts", + "lint": "npm-run-all -s lint:tsc lint:eslint lint:stylelint", + "lint:tsc": "vue-tsc", + "lint:eslint": "eslint . --cache --fix", + "lint:stylelint": "stylelint src/**/*.{css,scss,vue} --cache --fix --allow-empty-input", + "postinstall": "simple-git-hooks", + "preinstall": "npx only-allow pnpm", + "commit": "git cz", + "release": "bumpp" + }, + "dependencies": { + "@headlessui/vue": "^1.7.16", + "@vueuse/core": "^10.5.0", + "@vueuse/integrations": "^10.5.0", + "axios": "^1.5.1", + "dayjs": "^1.11.10", + "defu": "^6.1.2", + "eruda": "^3.0.1", + "floating-vue": "2.0.0-beta.24", + "hotkeys-js": "^3.12.0", + "lodash-es": "^4.17.21", + "mitt": "^3.0.1", + "mockjs": "^1.1.0", + "nprogress": "^0.2.0", + "overlayscrollbars-vue": "^0.5.5", + "path-browserify": "^1.0.1", + "path-to-regexp": "^6.2.1", + "pinia": "^2.1.6", + "qs": "^6.11.2", + "scule": "^1.0.0", + "tdesign-vue-next": "^1.6.4", + "vconsole": "^3.15.1", + "vue": "^3.3.4", + "vue-m-message": "^4.0.2", + "vue-router": "^4.2.5" + }, + "devDependencies": { + "@antfu/eslint-config": "1.0.0-beta.26", + "@iconify/json": "^2.2.127", + "@iconify/vue": "^4.1.1", + "@types/lodash-es": "^4.17.10", + "@types/nprogress": "^0.2.1", + "@types/path-browserify": "^1.0.0", + "@types/qs": "^6.9.8", + "@vitejs/plugin-legacy": "^4.1.1", + "@vitejs/plugin-vue": "^4.4.0", + "@vitejs/plugin-vue-jsx": "^3.0.2", + "autoprefixer": "^10.4.16", + "eslint": "^8.51.0", + "esno": "^0.17.0", + "fs-extra": "^11.1.1", + "http-server": "^14.1.1", + "inquirer": "^9.2.11", + "lint-staged": "^14.0.1", + "npm-run-all": "^4.1.5", + "plop": "^4.0.0", + "postcss-html": "^1.5.0", + "sass": "^1.69.2", + "simple-git-hooks": "^2.9.0", + "stylelint": "^15.10.3", + "stylelint-config-standard-scss": "^11.0.0", + "stylelint-config-standard-vue": "^1.0.0", + "stylelint-scss": "^5.2.1", + "stylelint-stylistic": "^0.4.3", + "svgo": "^3.0.2", + "terser": "^5.21.0", + "typescript": "^5.2.2", + "unocss": "^0.56.5", + "unplugin-auto-import": "^0.16.6", + "unplugin-vue-components": "^0.25.2", + "vite": "^4.4.11", + "vite-plugin-banner": "^0.7.1", + "vite-plugin-compression": "^0.5.1", + "vite-plugin-mock": "^2.9.8", + "vite-plugin-pages": "^0.31.0", + "vite-plugin-svg-icons": "^2.0.1", + "vite-plugin-vue-inspector": "^4.0.0", + "vite-plugin-vue-meta-layouts": "^0.3.1", + "vue-tsc": "^1.8.19" + }, + "simple-git-hooks": { + "pre-commit": "pnpm lint-staged", + "preserveUnused": true + }, + "config": { + "commitizen": { + "path": "node_modules/cz-git" + } + } +} diff --git a/plop-templates/component/index.hbs b/plop-templates/component/index.hbs new file mode 100755 index 0000000..69f7595 --- /dev/null +++ b/plop-templates/component/index.hbs @@ -0,0 +1,17 @@ + + + + + diff --git a/plop-templates/component/prompt.js b/plop-templates/component/prompt.js new file mode 100755 index 0000000..44204df --- /dev/null +++ b/plop-templates/component/prompt.js @@ -0,0 +1,65 @@ +const fs = require('node:fs') + +function getFolder(path) { + const components = [] + const files = fs.readdirSync(path) + files.forEach((item) => { + const stat = fs.lstatSync(`${path}/${item}`) + if (stat.isDirectory() === true && item !== 'components') { + components.push(`${path}/${item}`) + components.push(...getFolder(`${path}/${item}`)) + } + }) + return components +} + +module.exports = { + description: '创建组件', + prompts: [ + { + type: 'confirm', + name: 'isGlobal', + message: '是否为全局组件', + default: false, + }, + { + type: 'list', + name: 'path', + message: '请选择组件创建目录', + choices: getFolder('src/views'), + when: (answers) => { + return !answers.isGlobal + }, + }, + { + type: 'input', + name: 'name', + message: '请输入组件名称', + validate: (v) => { + if (!v || v.trim === '') { + return '组件名称不能为空' + } + else { + return true + } + }, + }, + ], + actions: (data) => { + let path = '' + if (data.isGlobal) { + path = 'src/components/{{properCase name}}/index.vue' + } + else { + path = `${data.path}/components/{{properCase name}}/index.vue` + } + const actions = [ + { + type: 'add', + path, + templateFile: 'plop-templates/component/index.hbs', + }, + ] + return actions + }, +} diff --git a/plop-templates/mock/mock.hbs b/plop-templates/mock/mock.hbs new file mode 100755 index 0000000..0968320 --- /dev/null +++ b/plop-templates/mock/mock.hbs @@ -0,0 +1,78 @@ +import Mock from 'mockjs' + +const AllList: any[] = [] +for (let i = 0; i < 50; i++) { + AllList.push(Mock.mock({ + id: '@id', + title: '@ctitle(10, 20)', + })) +} + +export default [ + { + url: '/mock/{{#if relativePath}}{{ relativePath }}/{{/if}}{{ moduleName }}/list', + method: 'get', + response: (option: any) => { + const { title, from, limit } = option.query + const list = AllList.filter((item) => { + return title ? item.title.includes(title) : true + }) + const pageList = list.filter((item, index) => { + return index >= ~~from && index < (~~from + ~~limit) + }) + return { + error: '', + status: 1, + data: { + list: pageList, + total: list.length, + }, + } + }, + }, + { + url: '/mock/{{#if relativePath}}{{ relativePath }}/{{/if}}{{ moduleName }}/detail', + method: 'get', + response: (option: any) => { + const info = AllList.filter(item => item.id === option.query.id) + return { + error: '', + status: 1, + data: info[0], + } + }, + }, + { + url: '/mock/{{#if relativePath}}{{ relativePath }}/{{/if}}{{ moduleName }}/create', + method: 'post', + response: { + error: '', + status: 1, + data: { + isSuccess: true, + }, + }, + }, + { + url: '/mock/{{#if relativePath}}{{ relativePath }}/{{/if}}{{ moduleName }}/edit', + method: 'post', + response: { + error: '', + status: 1, + data: { + isSuccess: true, + }, + }, + }, + { + url: '/mock/{{#if relativePath}}{{ relativePath }}/{{/if}}{{ moduleName }}/delete', + method: 'post', + response: { + error: '', + status: 1, + data: { + isSuccess: true, + }, + }, + }, +] diff --git a/plop-templates/mock/prompt.js b/plop-templates/mock/prompt.js new file mode 100755 index 0000000..070e724 --- /dev/null +++ b/plop-templates/mock/prompt.js @@ -0,0 +1,43 @@ +const path = require('node:path') +const fs = require('node:fs') + +function getFolder(path) { + const components = [] + const files = fs.readdirSync(path) + files.forEach((item) => { + const stat = fs.lstatSync(`${path}/${item}`) + if (stat.isDirectory() === true && item !== 'components') { + components.push(`${path}/${item}`) + components.push(...getFolder(`${path}/${item}`)) + } + }) + return components +} + +module.exports = { + description: '创建标准模块 Mock', + prompts: [ + { + type: 'list', + name: 'path', + message: '请选择模块目录', + choices: getFolder('src/views'), + }, + ], + actions: (data) => { + const pathArr = path.relative('src/views', data.path).split('\\') + const moduleName = pathArr.pop() + const relativePath = pathArr.join('/') + const actions = [] + actions.push({ + type: 'add', + path: pathArr.length === 0 ? 'src/mock/{{moduleName}}.ts' : `src/mock/${pathArr.join('.')}.{{moduleName}}.ts`, + templateFile: 'plop-templates/mock/mock.hbs', + data: { + relativePath, + moduleName, + }, + }) + return actions + }, +} diff --git a/plop-templates/page/index.hbs b/plop-templates/page/index.hbs new file mode 100755 index 0000000..09f0dbd --- /dev/null +++ b/plop-templates/page/index.hbs @@ -0,0 +1,22 @@ +{{#if isFilesystem}} + +meta: + title: 页面标题 + + +{{/if}} + + + + + diff --git a/plop-templates/page/prompt.js b/plop-templates/page/prompt.js new file mode 100755 index 0000000..b84ea3a --- /dev/null +++ b/plop-templates/page/prompt.js @@ -0,0 +1,60 @@ +const path = require('node:path') +const fs = require('node:fs') + +function getFolder(path) { + const components = [] + const files = fs.readdirSync(path) + files.forEach((item) => { + const stat = fs.lstatSync(`${path}/${item}`) + if (stat.isDirectory() === true && item !== 'components') { + components.push(`${path}/${item}`) + components.push(...getFolder(`${path}/${item}`)) + } + }) + return components +} + +module.exports = { + description: '创建页面', + prompts: [ + { + type: 'list', + name: 'path', + message: '请选择页面创建目录', + choices: getFolder('src/views'), + }, + { + type: 'input', + name: 'name', + message: '请输入文件名', + validate: (v) => { + if (!v || v.trim === '') { + return '文件名不能为空' + } + else { + return true + } + }, + }, + { + type: 'confirm', + name: 'isFilesystem', + message: '是否为基于文件系统的路由页面', + default: false, + }, + ], + actions: (data) => { + const relativePath = path.relative('src/views', data.path) + const actions = [ + { + type: 'add', + path: `${data.path}/{{dotCase name}}.vue`, + templateFile: 'plop-templates/page/index.hbs', + data: { + componentName: `${relativePath} ${data.name}`, + }, + }, + ] + return actions + }, +} diff --git a/plop-templates/store/index.hbs b/plop-templates/store/index.hbs new file mode 100755 index 0000000..b3336c5 --- /dev/null +++ b/plop-templates/store/index.hbs @@ -0,0 +1,11 @@ +const use{{ properCase name }}Store = defineStore( + // 唯一ID + '{{ camelCase name }}', + { + state: () => ({}), + getters: {}, + actions: {}, + }, +) + +export default use{{ properCase name }}Store diff --git a/plop-templates/store/prompt.js b/plop-templates/store/prompt.js new file mode 100755 index 0000000..2cefa24 --- /dev/null +++ b/plop-templates/store/prompt.js @@ -0,0 +1,28 @@ +module.exports = { + description: '创建全局状态', + prompts: [ + { + type: 'input', + name: 'name', + message: '请输入模块名称', + validate: (v) => { + if (!v || v.trim === '') { + return '模块名称不能为空' + } + else { + return true + } + }, + }, + ], + actions: () => { + const actions = [ + { + type: 'add', + path: 'src/store/modules/{{camelCase name}}.ts', + templateFile: 'plop-templates/store/index.hbs', + }, + ] + return actions + }, +} diff --git a/plopfile.js b/plopfile.js new file mode 100755 index 0000000..faa98cc --- /dev/null +++ b/plopfile.js @@ -0,0 +1,8 @@ +const fs = require('node:fs') + +module.exports = function (plop) { + plop.setWelcomeMessage('请选择需要创建的模式:') + fs.readdirSync('./plop-templates').forEach((item) => { + fs.lstatSync(`./plop-templates/${item}`).isDirectory() && plop.setGenerator(item, require(`./plop-templates/${item}/prompt`)) + }) +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100755 index 0000000..c796340 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,10595 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +dependencies: + '@headlessui/vue': + specifier: ^1.7.16 + version: 1.7.16(vue@3.3.4) + '@vueuse/core': + specifier: ^10.5.0 + version: 10.5.0(vue@3.3.4) + '@vueuse/integrations': + specifier: ^10.5.0 + version: 10.5.0(axios@1.5.1)(nprogress@0.2.0)(vue@3.3.4) + axios: + specifier: ^1.5.1 + version: 1.5.1 + dayjs: + specifier: ^1.11.10 + version: 1.11.10 + defu: + specifier: ^6.1.2 + version: 6.1.2 + eruda: + specifier: ^3.0.1 + version: 3.0.1 + floating-vue: + specifier: 2.0.0-beta.24 + version: 2.0.0-beta.24(vue@3.3.4) + hotkeys-js: + specifier: ^3.12.0 + version: 3.12.0 + lodash-es: + specifier: ^4.17.21 + version: 4.17.21 + mitt: + specifier: ^3.0.1 + version: 3.0.1 + mockjs: + specifier: ^1.1.0 + version: 1.1.0 + nprogress: + specifier: ^0.2.0 + version: 0.2.0 + overlayscrollbars-vue: + specifier: ^0.5.5 + version: 0.5.5(overlayscrollbars@2.3.2)(vue@3.3.4) + path-browserify: + specifier: ^1.0.1 + version: 1.0.1 + path-to-regexp: + specifier: ^6.2.1 + version: 6.2.1 + pinia: + specifier: ^2.1.6 + version: 2.1.6(typescript@5.2.2)(vue@3.3.4) + qs: + specifier: ^6.11.2 + version: 6.11.2 + scule: + specifier: ^1.0.0 + version: 1.0.0 + tdesign-vue-next: + specifier: ^1.6.4 + version: 1.6.4(vue@3.3.4) + vconsole: + specifier: ^3.15.1 + version: 3.15.1 + vue: + specifier: ^3.3.4 + version: 3.3.4 + vue-m-message: + specifier: ^4.0.2 + version: 4.0.2 + vue-router: + specifier: ^4.2.5 + version: 4.2.5(vue@3.3.4) + +devDependencies: + '@antfu/eslint-config': + specifier: 1.0.0-beta.26 + version: 1.0.0-beta.26(eslint@8.51.0)(typescript@5.2.2)(vitest@0.34.6) + '@iconify/json': + specifier: ^2.2.127 + version: 2.2.127 + '@iconify/vue': + specifier: ^4.1.1 + version: 4.1.1(vue@3.3.4) + '@types/lodash-es': + specifier: ^4.17.10 + version: 4.17.10 + '@types/nprogress': + specifier: ^0.2.1 + version: 0.2.1 + '@types/path-browserify': + specifier: ^1.0.0 + version: 1.0.0 + '@types/qs': + specifier: ^6.9.8 + version: 6.9.8 + '@vitejs/plugin-legacy': + specifier: ^4.1.1 + version: 4.1.1(terser@5.21.0)(vite@4.4.11) + '@vitejs/plugin-vue': + specifier: ^4.4.0 + version: 4.4.0(vite@4.4.11)(vue@3.3.4) + '@vitejs/plugin-vue-jsx': + specifier: ^3.0.2 + version: 3.0.2(vite@4.4.11)(vue@3.3.4) + autoprefixer: + specifier: ^10.4.16 + version: 10.4.16(postcss@8.4.31) + eslint: + specifier: ^8.51.0 + version: 8.51.0 + esno: + specifier: ^0.17.0 + version: 0.17.0 + fs-extra: + specifier: ^11.1.1 + version: 11.1.1 + http-server: + specifier: ^14.1.1 + version: 14.1.1 + inquirer: + specifier: ^9.2.11 + version: 9.2.11 + lint-staged: + specifier: ^14.0.1 + version: 14.0.1 + npm-run-all: + specifier: ^4.1.5 + version: 4.1.5 + plop: + specifier: ^4.0.0 + version: 4.0.0 + postcss-html: + specifier: ^1.5.0 + version: 1.5.0 + sass: + specifier: ^1.69.2 + version: 1.69.2 + simple-git-hooks: + specifier: ^2.9.0 + version: 2.9.0 + stylelint: + specifier: ^15.10.3 + version: 15.10.3 + stylelint-config-standard-scss: + specifier: ^11.0.0 + version: 11.0.0(postcss@8.4.31)(stylelint@15.10.3) + stylelint-config-standard-vue: + specifier: ^1.0.0 + version: 1.0.0(postcss-html@1.5.0)(stylelint@15.10.3) + stylelint-scss: + specifier: ^5.2.1 + version: 5.2.1(stylelint@15.10.3) + stylelint-stylistic: + specifier: ^0.4.3 + version: 0.4.3(stylelint@15.10.3) + svgo: + specifier: ^3.0.2 + version: 3.0.2 + terser: + specifier: ^5.21.0 + version: 5.21.0 + typescript: + specifier: ^5.2.2 + version: 5.2.2 + unocss: + specifier: ^0.56.5 + version: 0.56.5(postcss@8.4.31)(vite@4.4.11) + unplugin-auto-import: + specifier: ^0.16.6 + version: 0.16.6(@vueuse/core@10.5.0) + unplugin-vue-components: + specifier: ^0.25.2 + version: 0.25.2(vue@3.3.4) + vite: + specifier: ^4.4.11 + version: 4.4.11(@types/node@20.8.4)(sass@1.69.2)(terser@5.21.0) + vite-plugin-banner: + specifier: ^0.7.1 + version: 0.7.1 + vite-plugin-compression: + specifier: ^0.5.1 + version: 0.5.1(vite@4.4.11) + vite-plugin-mock: + specifier: ^2.9.8 + version: 2.9.8(mockjs@1.1.0)(vite@4.4.11) + vite-plugin-pages: + specifier: ^0.31.0 + version: 0.31.0(vite@4.4.11) + vite-plugin-svg-icons: + specifier: ^2.0.1 + version: 2.0.1(vite@4.4.11) + vite-plugin-vue-inspector: + specifier: ^4.0.0 + version: 4.0.0(vite@4.4.11) + vite-plugin-vue-meta-layouts: + specifier: ^0.3.1 + version: 0.3.1(vite@4.4.11)(vue-router@4.2.5) + vue-tsc: + specifier: ^1.8.19 + version: 1.8.19(typescript@5.2.2) + +packages: + + /@aashutoshrathi/word-wrap@1.2.6: + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} + engines: {node: '>=0.10.0'} + dev: true + + /@ampproject/remapping@2.2.1: + resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.19 + dev: true + + /@antfu/eslint-config@1.0.0-beta.26(eslint@8.51.0)(typescript@5.2.2)(vitest@0.34.6): + resolution: {integrity: sha512-0fOZ+9D68A44fcnO3nQzBcDTQQXOMilyxwRq3F+GIVKci/FUg4tZXXXNHLdVtgfDiyYVZH0CA2T1D7ELnh3gnw==} + peerDependencies: + eslint: '>=8.0.0' + dependencies: + '@antfu/eslint-define-config': 1.23.0-1 + '@stylistic/eslint-plugin': 0.0.8(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.7.5)(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.7.5(eslint@8.51.0)(typescript@5.2.2) + eslint: 8.51.0 + eslint-config-flat-gitignore: 0.1.0 + eslint-plugin-antfu: 1.0.0-beta.12(eslint@8.51.0)(typescript@5.2.2) + eslint-plugin-eslint-comments: 3.2.0(eslint@8.51.0) + eslint-plugin-i: 2.28.1(@typescript-eslint/parser@6.7.5)(eslint@8.51.0) + eslint-plugin-jsdoc: 46.8.2(eslint@8.51.0) + eslint-plugin-jsonc: 2.10.0(eslint@8.51.0) + eslint-plugin-markdown: 3.0.1(eslint@8.51.0) + eslint-plugin-n: 16.2.0(eslint@8.51.0) + eslint-plugin-no-only-tests: 3.1.0 + eslint-plugin-unicorn: 48.0.1(eslint@8.51.0) + eslint-plugin-unused-imports: 3.0.0(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.51.0) + eslint-plugin-vitest: 0.3.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.51.0)(typescript@5.2.2)(vitest@0.34.6) + eslint-plugin-vue: 9.17.0(eslint@8.51.0) + eslint-plugin-yml: 1.10.0(eslint@8.51.0) + globals: 13.23.0 + jsonc-eslint-parser: 2.3.0 + local-pkg: 0.5.0 + vue-eslint-parser: 9.3.2(eslint@8.51.0) + yaml-eslint-parser: 1.2.2 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + - typescript + - vitest + dev: true + + /@antfu/eslint-define-config@1.23.0-1: + resolution: {integrity: sha512-FEhC42aXDQ315jXpMAp+P1oBW2K96Ruq/8xs1poA8rgxv0c5vqYsyWWwwNBDijqUyDn9kufa4eZrd94rcbVEhg==} + engines: {node: '>=18.0.0', npm: '>=9.0.0', pnpm: '>= 8.6.0'} + dev: true + + /@antfu/install-pkg@0.1.1: + resolution: {integrity: sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ==} + dependencies: + execa: 5.1.1 + find-up: 5.0.0 + dev: true + + /@antfu/utils@0.7.5: + resolution: {integrity: sha512-dlR6LdS+0SzOAPx/TPRhnoi7hE251OVeT2Snw0RguNbBSbjUHdWr0l3vcUUDg26rEysT89kCbtw1lVorBXLLCg==} + dev: true + + /@antfu/utils@0.7.6: + resolution: {integrity: sha512-pvFiLP2BeOKA/ZOS6jxx4XhKzdVLHDhGlFEaZ2flWWYf2xOqVniqpk38I04DFRyz+L0ASggl7SkItTc+ZLju4w==} + dev: true + + /@babel/code-frame@7.22.13: + resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.22.13 + chalk: 2.4.2 + dev: true + + /@babel/code-frame@7.22.5: + resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.22.5 + dev: true + + /@babel/compat-data@7.22.20: + resolution: {integrity: sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/compat-data@7.22.9: + resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/core@7.22.11: + resolution: {integrity: sha512-lh7RJrtPdhibbxndr6/xx0w8+CVlY5FJZiaSz908Fpy+G0xkBFTvwLcKJFF4PJxVfGhVWNebikpWGnOoC71juQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.22.10 + '@babel/helper-compilation-targets': 7.22.10 + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.11) + '@babel/helpers': 7.22.11 + '@babel/parser': 7.22.14 + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.11 + '@babel/types': 7.22.11 + convert-source-map: 1.9.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/core@7.22.9: + resolution: {integrity: sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.22.5 + '@babel/generator': 7.22.9 + '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) + '@babel/helpers': 7.22.6 + '@babel/parser': 7.22.7 + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.8 + '@babel/types': 7.22.5 + convert-source-map: 1.9.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/core@7.23.0: + resolution: {integrity: sha512-97z/ju/Jy1rZmDxybphrBuI+jtJjFVoz7Mr9yUQVVVi+DNZE333uFQeMOqcCIy1x3WYBIbWftUSLmbNXNT7qFQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.23.0 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.0) + '@babel/helpers': 7.23.1 + '@babel/parser': 7.23.0 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.0 + '@babel/types': 7.23.0 + convert-source-map: 2.0.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/generator@7.22.10: + resolution: {integrity: sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.11 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.19 + jsesc: 2.5.2 + dev: true + + /@babel/generator@7.22.9: + resolution: {integrity: sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.5 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.19 + jsesc: 2.5.2 + dev: true + + /@babel/generator@7.23.0: + resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.19 + jsesc: 2.5.2 + dev: true + + /@babel/helper-annotate-as-pure@7.22.5: + resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.11 + dev: true + + /@babel/helper-builder-binary-assignment-operator-visitor@7.22.5: + resolution: {integrity: sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.5 + dev: true + + /@babel/helper-compilation-targets@7.22.10: + resolution: {integrity: sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': 7.22.9 + '@babel/helper-validator-option': 7.22.5 + browserslist: 4.21.10 + lru-cache: 5.1.1 + semver: 6.3.1 + dev: true + + /@babel/helper-compilation-targets@7.22.15: + resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': 7.22.20 + '@babel/helper-validator-option': 7.22.15 + browserslist: 4.22.1 + lru-cache: 5.1.1 + semver: 6.3.1 + dev: true + + /@babel/helper-compilation-targets@7.22.9(@babel/core@7.22.9): + resolution: {integrity: sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.22.9 + '@babel/core': 7.22.9 + '@babel/helper-validator-option': 7.22.5 + browserslist: 4.21.9 + lru-cache: 5.1.1 + semver: 6.3.1 + dev: true + + /@babel/helper-create-class-features-plugin@7.22.11(@babel/core@7.22.11): + resolution: {integrity: sha512-y1grdYL4WzmUDBRGK0pDbIoFd7UZKoDurDzWEoNMYoj1EL+foGRQNyPWDcC+YyegN5y1DUsFFmzjGijB3nSVAQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.11 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-function-name': 7.22.5 + '@babel/helper-member-expression-to-functions': 7.22.5 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.11) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + semver: 6.3.1 + dev: true + + /@babel/helper-create-class-features-plugin@7.22.11(@babel/core@7.22.9): + resolution: {integrity: sha512-y1grdYL4WzmUDBRGK0pDbIoFd7UZKoDurDzWEoNMYoj1EL+foGRQNyPWDcC+YyegN5y1DUsFFmzjGijB3nSVAQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-function-name': 7.22.5 + '@babel/helper-member-expression-to-functions': 7.22.5 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.9) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + semver: 6.3.1 + dev: true + + /@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.23.0): + resolution: {integrity: sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.0) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + semver: 6.3.1 + dev: true + + /@babel/helper-create-regexp-features-plugin@7.22.9(@babel/core@7.22.9): + resolution: {integrity: sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-annotate-as-pure': 7.22.5 + regexpu-core: 5.3.2 + semver: 6.3.1 + dev: true + + /@babel/helper-define-polyfill-provider@0.4.2(@babel/core@7.22.9): + resolution: {integrity: sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 + debug: 4.3.4 + lodash.debounce: 4.0.8 + resolve: 1.22.6 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-environment-visitor@7.22.20: + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-environment-visitor@7.22.5: + resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-function-name@7.22.5: + resolution: {integrity: sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.5 + '@babel/types': 7.22.5 + dev: true + + /@babel/helper-function-name@7.23.0: + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-hoist-variables@7.22.5: + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.5 + dev: true + + /@babel/helper-member-expression-to-functions@7.22.5: + resolution: {integrity: sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.11 + dev: true + + /@babel/helper-member-expression-to-functions@7.23.0: + resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-module-imports@7.22.15: + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/helper-module-imports@7.22.5: + resolution: {integrity: sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.11 + dev: true + + /@babel/helper-module-transforms@7.22.9(@babel/core@7.22.11): + resolution: {integrity: sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.11 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-module-imports': 7.22.5 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.5 + dev: true + + /@babel/helper-module-transforms@7.22.9(@babel/core@7.22.9): + resolution: {integrity: sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-module-imports': 7.22.5 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.5 + dev: true + + /@babel/helper-module-transforms@7.23.0(@babel/core@7.23.0): + resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + dev: true + + /@babel/helper-optimise-call-expression@7.22.5: + resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.5 + dev: true + + /@babel/helper-plugin-utils@7.22.5: + resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-remap-async-to-generator@7.22.9(@babel/core@7.22.9): + resolution: {integrity: sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-wrap-function': 7.22.9 + dev: true + + /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.0): + resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + dev: true + + /@babel/helper-replace-supers@7.22.9(@babel/core@7.22.11): + resolution: {integrity: sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.11 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-member-expression-to-functions': 7.22.5 + '@babel/helper-optimise-call-expression': 7.22.5 + dev: true + + /@babel/helper-replace-supers@7.22.9(@babel/core@7.22.9): + resolution: {integrity: sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-member-expression-to-functions': 7.22.5 + '@babel/helper-optimise-call-expression': 7.22.5 + dev: true + + /@babel/helper-simple-access@7.22.5: + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.5 + dev: true + + /@babel/helper-skip-transparent-expression-wrappers@7.22.5: + resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.5 + dev: true + + /@babel/helper-split-export-declaration@7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.5 + dev: true + + /@babel/helper-string-parser@7.22.5: + resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-identifier@7.22.15: + resolution: {integrity: sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-identifier@7.22.5: + resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-option@7.22.15: + resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-option@7.22.5: + resolution: {integrity: sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-wrap-function@7.22.9: + resolution: {integrity: sha512-sZ+QzfauuUEfxSEjKFmi3qDSHgLsTPK/pEpoD/qonZKOtTPTLbf59oabPQ4rKekt9lFcj/hTZaOhWwFYrgjk+Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-function-name': 7.22.5 + '@babel/template': 7.22.5 + '@babel/types': 7.22.5 + dev: true + + /@babel/helpers@7.22.11: + resolution: {integrity: sha512-vyOXC8PBWaGc5h7GMsNx68OH33cypkEDJCHvYVVgVbbxJDROYVtexSk0gK5iCF1xNjRIN2s8ai7hwkWDq5szWg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.11 + '@babel/types': 7.22.11 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helpers@7.22.6: + resolution: {integrity: sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.8 + '@babel/types': 7.22.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helpers@7.23.1: + resolution: {integrity: sha512-chNpneuK18yW5Oxsr+t553UZzzAs3aZnFm4bxhebsNTeshrC95yA7l5yl7GBAG+JG1rF0F7zzD2EixK9mWSDoA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.0 + '@babel/types': 7.23.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/highlight@7.22.13: + resolution: {integrity: sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.5 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + + /@babel/highlight@7.22.5: + resolution: {integrity: sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.5 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + + /@babel/parser@7.22.14: + resolution: {integrity: sha512-1KucTHgOvaw/LzCVrEOAyXkr9rQlp0A1HiHRYnSUE9dmb8PvPW7o5sscg+5169r54n3vGlbx6GevTE/Iw/P3AQ==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.22.11 + dev: true + + /@babel/parser@7.22.16: + resolution: {integrity: sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.22.17 + + /@babel/parser@7.22.7: + resolution: {integrity: sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.22.11 + + /@babel/parser@7.23.0: + resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-transform-optional-chaining': 7.22.6(@babel/core@7.22.9) + dev: true + + /@babel/plugin-proposal-decorators@7.23.0(@babel/core@7.23.0): + resolution: {integrity: sha512-kYsT+f5ARWF6AdFmqoEEp+hpqxEB8vGmRWfw2aj78M2vTwS2uHW91EF58iFm1Z9U8Y/RrLu2XKJn46P9ca1b0w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.0) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.0) + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/plugin-syntax-decorators': 7.22.10(@babel/core@7.23.0) + dev: true + + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.22.9): + resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + dev: true + + /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.22.9): + resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} + engines: {node: '>=4'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.22.9): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.22.9): + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.22.9): + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-decorators@7.22.10(@babel/core@7.23.0): + resolution: {integrity: sha512-z1KTVemBjnz+kSEilAsI4lbkPOl5TvJH7YDSY1CTIzvLWJ+KHXp+mRe8VPmfnyvqOPqar1V2gid2PleKzRUstQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.22.9): + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.22.9): + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.23.0): + resolution: {integrity: sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.22.9): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.0): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.22.9): + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.22.11): + resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.11 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.23.0): + resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.22.9): + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.22.9): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.22.9): + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.22.9): + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.22.9): + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.22.9): + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.22.9): + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.22.9): + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.22.11): + resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.11 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.23.0): + resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.22.9): + resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-arrow-functions@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-async-generator-functions@7.22.7(@babel/core@7.22.9): + resolution: {integrity: sha512-7HmE7pk/Fmke45TODvxvkxRMV9RazV+ZZzhOL9AG8G29TLrr3jkjwF7uJfxZ30EoXpO+LJkq4oA8NjO2DTnEDg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.22.9) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.9) + dev: true + + /@babel/plugin-transform-async-to-generator@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-module-imports': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.22.9) + dev: true + + /@babel/plugin-transform-block-scoped-functions@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-block-scoping@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-class-properties@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-create-class-features-plugin': 7.22.11(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-class-static-block@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-create-class-features-plugin': 7.22.11(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.9) + dev: true + + /@babel/plugin-transform-classes@7.22.6(@babel/core@7.22.9): + resolution: {integrity: sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-function-name': 7.22.5 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.9) + '@babel/helper-split-export-declaration': 7.22.6 + globals: 11.12.0 + dev: true + + /@babel/plugin-transform-computed-properties@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/template': 7.22.5 + dev: true + + /@babel/plugin-transform-destructuring@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-dotall-regex@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-duplicate-keys@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-dynamic-import@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.9) + dev: true + + /@babel/plugin-transform-exponentiation-operator@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-export-namespace-from@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.9) + dev: true + + /@babel/plugin-transform-for-of@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-function-name@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) + '@babel/helper-function-name': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-json-strings@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.9) + dev: true + + /@babel/plugin-transform-literals@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-logical-assignment-operators@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.9) + dev: true + + /@babel/plugin-transform-member-expression-literals@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-modules-amd@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-modules-commonjs@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-simple-access': 7.22.5 + dev: true + + /@babel/plugin-transform-modules-systemjs@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-identifier': 7.22.5 + dev: true + + /@babel/plugin-transform-modules-umd@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-new-target@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-nullish-coalescing-operator@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.9) + dev: true + + /@babel/plugin-transform-numeric-separator@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.9) + dev: true + + /@babel/plugin-transform-object-rest-spread@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.22.9 + '@babel/core': 7.22.9 + '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.22.9) + dev: true + + /@babel/plugin-transform-object-super@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.9) + dev: true + + /@babel/plugin-transform-optional-catch-binding@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.9) + dev: true + + /@babel/plugin-transform-optional-chaining@7.22.6(@babel/core@7.22.9): + resolution: {integrity: sha512-Vd5HiWml0mDVtcLHIoEU5sw6HOUW/Zk0acLs/SAeuLzkGNOPc9DB4nkUajemhCmTIz3eiaKREZn2hQQqF79YTg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.9) + dev: true + + /@babel/plugin-transform-parameters@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-private-methods@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-create-class-features-plugin': 7.22.11(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-private-property-in-object@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.22.11(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.9) + dev: true + + /@babel/plugin-transform-property-literals@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-regenerator@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + regenerator-transform: 0.15.1 + dev: true + + /@babel/plugin-transform-reserved-words@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-shorthand-properties@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-spread@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + dev: true + + /@babel/plugin-transform-sticky-regex@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-template-literals@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-typeof-symbol@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-typescript@7.22.11(@babel/core@7.22.11): + resolution: {integrity: sha512-0E4/L+7gfvHub7wsbTv03oRtD69X31LByy44fGmFzbZScpupFByMcgCJ0VbBTkzyjSJKuRoGN8tcijOWKTmqOA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.11 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.22.11(@babel/core@7.22.11) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.22.11) + dev: true + + /@babel/plugin-transform-typescript@7.22.15(@babel/core@7.23.0): + resolution: {integrity: sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.0) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.23.0) + dev: true + + /@babel/plugin-transform-unicode-escapes@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-unicode-property-regex@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-unicode-regex@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-unicode-sets-regex@7.22.5(@babel/core@7.22.9): + resolution: {integrity: sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/preset-env@7.22.9(@babel/core@7.22.9): + resolution: {integrity: sha512-wNi5H/Emkhll/bqPjsjQorSykrlfY5OWakd6AulLvMEytpKasMVUpVy8RL4qBIBs5Ac6/5i0/Rv0b/Fg6Eag/g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.22.9 + '@babel/core': 7.22.9 + '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.22.5 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.22.9) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.9) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.22.9) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.9) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.22.9) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.9) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.9) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.9) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.22.9) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.22.9) + '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-async-generator-functions': 7.22.7(@babel/core@7.22.9) + '@babel/plugin-transform-async-to-generator': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-block-scoped-functions': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-block-scoping': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-class-properties': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-class-static-block': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-classes': 7.22.6(@babel/core@7.22.9) + '@babel/plugin-transform-computed-properties': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-destructuring': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-duplicate-keys': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-dynamic-import': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-exponentiation-operator': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-export-namespace-from': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-for-of': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-function-name': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-json-strings': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-literals': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-logical-assignment-operators': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-member-expression-literals': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-modules-amd': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-modules-commonjs': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-modules-systemjs': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-modules-umd': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-new-target': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-nullish-coalescing-operator': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-numeric-separator': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-object-rest-spread': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-object-super': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-optional-catch-binding': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-optional-chaining': 7.22.6(@babel/core@7.22.9) + '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-private-methods': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-private-property-in-object': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-property-literals': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-regenerator': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-reserved-words': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-spread': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-sticky-regex': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-template-literals': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-typeof-symbol': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-unicode-escapes': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-unicode-property-regex': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-unicode-regex': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-unicode-sets-regex': 7.22.5(@babel/core@7.22.9) + '@babel/preset-modules': 0.1.6(@babel/core@7.22.9) + '@babel/types': 7.22.5 + babel-plugin-polyfill-corejs2: 0.4.5(@babel/core@7.22.9) + babel-plugin-polyfill-corejs3: 0.8.3(@babel/core@7.22.9) + babel-plugin-polyfill-regenerator: 0.5.2(@babel/core@7.22.9) + core-js-compat: 3.31.1 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/preset-modules@0.1.6(@babel/core@7.22.9): + resolution: {integrity: sha512-ID2yj6K/4lKfhuU3+EX4UvNbIt7eACFbHmNUjzA+ep+B5971CknnA/9DEWKbRokfbbtblxxxXFJJrH47UEAMVg==} + peerDependencies: + '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.22.9) + '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.22.9) + '@babel/types': 7.22.5 + esutils: 2.0.3 + dev: true + + /@babel/regjsgen@0.8.0: + resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} + dev: true + + /@babel/runtime@7.22.5: + resolution: {integrity: sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.13.11 + dev: false + + /@babel/runtime@7.22.6: + resolution: {integrity: sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.13.11 + + /@babel/template@7.22.15: + resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.22.13 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 + dev: true + + /@babel/template@7.22.5: + resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.22.13 + '@babel/parser': 7.22.14 + '@babel/types': 7.22.11 + dev: true + + /@babel/traverse@7.22.11: + resolution: {integrity: sha512-mzAenteTfomcB7mfPtyi+4oe5BZ6MXxWcn4CX+h4IRJ+OOGXBrWU6jDQavkQI9Vuc5P+donFabBfFCcmWka9lQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.22.10 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-function-name': 7.22.5 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.22.14 + '@babel/types': 7.22.11 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/traverse@7.22.8: + resolution: {integrity: sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.22.5 + '@babel/generator': 7.22.9 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-function-name': 7.22.5 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.22.7 + '@babel/types': 7.22.5 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/traverse@7.23.0: + resolution: {integrity: sha512-t/QaEvyIoIkwzpiZ7aoSKK8kObQYeF7T2v+dazAYCb8SXtp58zEVkWW7zAnju8FNKNdr4ScAOEDmMItbyOmEYw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.23.0 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/types@7.22.11: + resolution: {integrity: sha512-siazHiGuZRz9aB9NpHy9GOs9xiQPKnMzgdr493iI1M67vRXpnEq8ZOOKzezC5q7zwuQ6sDhdSp4SD9ixKSqKZg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.22.5 + '@babel/helper-validator-identifier': 7.22.5 + to-fast-properties: 2.0.0 + + /@babel/types@7.22.17: + resolution: {integrity: sha512-YSQPHLFtQNE5xN9tHuZnzu8vPr61wVTBZdfv1meex1NBosa4iT05k/Jw06ddJugi4bk7The/oSwQGFcksmEJQg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.22.5 + '@babel/helper-validator-identifier': 7.22.15 + to-fast-properties: 2.0.0 + + /@babel/types@7.22.5: + resolution: {integrity: sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.22.5 + '@babel/helper-validator-identifier': 7.22.5 + to-fast-properties: 2.0.0 + dev: true + + /@babel/types@7.23.0: + resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + dev: true + + /@csstools/css-parser-algorithms@2.3.1(@csstools/css-tokenizer@2.2.0): + resolution: {integrity: sha512-xrvsmVUtefWMWQsGgFffqWSK03pZ1vfDki4IVIIUxxDKnGBzqNgv0A7SB1oXtVNEkcVO8xi1ZrTL29HhSu5kGA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + '@csstools/css-tokenizer': ^2.2.0 + dependencies: + '@csstools/css-tokenizer': 2.2.0 + dev: true + + /@csstools/css-tokenizer@2.2.0: + resolution: {integrity: sha512-wErmsWCbsmig8sQKkM6pFhr/oPha1bHfvxsUY5CYSQxwyhA9Ulrs8EqCgClhg4Tgg2XapVstGqSVcz0xOYizZA==} + engines: {node: ^14 || ^16 || >=18} + dev: true + + /@csstools/media-query-list-parser@2.1.4(@csstools/css-parser-algorithms@2.3.1)(@csstools/css-tokenizer@2.2.0): + resolution: {integrity: sha512-V/OUXYX91tAC1CDsiY+HotIcJR+vPtzrX8pCplCpT++i8ThZZsq5F5dzZh/bDM3WUOjrvC1ljed1oSJxMfjqhw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + '@csstools/css-parser-algorithms': ^2.3.1 + '@csstools/css-tokenizer': ^2.2.0 + dependencies: + '@csstools/css-parser-algorithms': 2.3.1(@csstools/css-tokenizer@2.2.0) + '@csstools/css-tokenizer': 2.2.0 + dev: true + + /@csstools/selector-specificity@3.0.0(postcss-selector-parser@6.0.13): + resolution: {integrity: sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss-selector-parser: ^6.0.13 + dependencies: + postcss-selector-parser: 6.0.13 + dev: true + + /@es-joy/jsdoccomment@0.40.1: + resolution: {integrity: sha512-YORCdZSusAlBrFpZ77pJjc5r1bQs5caPWtAu+WWmiSo+8XaUzseapVrfAtiRFbQWnrBxxLLEwF6f6ZG/UgCQCg==} + engines: {node: '>=16'} + dependencies: + comment-parser: 1.4.0 + esquery: 1.5.0 + jsdoc-type-pratt-parser: 4.0.0 + dev: true + + /@esbuild-kit/cjs-loader@2.4.2: + resolution: {integrity: sha512-BDXFbYOJzT/NBEtp71cvsrGPwGAMGRB/349rwKuoxNSiKjPraNNnlK6MIIabViCjqZugu6j+xeMDlEkWdHHJSg==} + dependencies: + '@esbuild-kit/core-utils': 3.1.0 + get-tsconfig: 4.7.0 + dev: true + + /@esbuild-kit/core-utils@3.1.0: + resolution: {integrity: sha512-Uuk8RpCg/7fdHSceR1M6XbSZFSuMrxcePFuGgyvsBn+u339dk5OeL4jv2EojwTN2st/unJGsVm4qHWjWNmJ/tw==} + dependencies: + esbuild: 0.17.19 + source-map-support: 0.5.21 + dev: true + + /@esbuild-kit/esm-loader@2.5.5: + resolution: {integrity: sha512-Qwfvj/qoPbClxCRNuac1Du01r9gvNOT+pMYtJDapfB1eoGN1YlJ1BixLyL9WVENRx5RXgNLdfYdx/CuswlGhMw==} + dependencies: + '@esbuild-kit/core-utils': 3.1.0 + get-tsconfig: 4.7.0 + dev: true + + /@esbuild/android-arm64@0.17.19: + resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.18.20: + resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.17.19: + resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.18.20: + resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.17.19: + resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.18.20: + resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.17.19: + resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.18.20: + resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.17.19: + resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.18.20: + resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.17.19: + resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.18.20: + resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.17.19: + resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.18.20: + resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.17.19: + resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.18.20: + resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.17.19: + resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.18.20: + resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.17.19: + resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.18.20: + resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.14.54: + resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.17.19: + resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.18.20: + resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.17.19: + resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.18.20: + resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.17.19: + resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.18.20: + resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.17.19: + resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.18.20: + resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.17.19: + resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.18.20: + resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.17.19: + resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.18.20: + resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.17.19: + resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.18.20: + resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.17.19: + resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.18.20: + resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.17.19: + resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.18.20: + resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.17.19: + resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.18.20: + resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.17.19: + resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.18.20: + resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.17.19: + resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.18.20: + resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@eslint-community/eslint-utils@4.4.0(eslint@8.51.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.51.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@eslint-community/regexpp@4.9.1: + resolution: {integrity: sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true + + /@eslint/eslintrc@2.1.2: + resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.6.1 + globals: 13.23.0 + ignore: 5.2.4 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@eslint/js@8.51.0: + resolution: {integrity: sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@floating-ui/core@1.3.1: + resolution: {integrity: sha512-Bu+AMaXNjrpjh41znzHqaz3r2Nr8hHuHZT6V2LBKMhyMl0FgKA62PNYbqnfgmzOhoWZj70Zecisbo4H1rotP5g==} + dev: false + + /@floating-ui/dom@1.1.1: + resolution: {integrity: sha512-TpIO93+DIujg3g7SykEAGZMDtbJRrmnYRCNYSjJlvIbGhBjRSNTLVbNeDQBrzy9qDgUbiWdc7KA0uZHZ2tJmiw==} + dependencies: + '@floating-ui/core': 1.3.1 + dev: false + + /@headlessui/vue@1.7.16(vue@3.3.4): + resolution: {integrity: sha512-nKT+nf/q6x198SsyK54mSszaQl/z+QxtASmgMEJtpxSX2Q0OPJX0upS/9daDyiECpeAsvjkoOrm2O/6PyBQ+Qg==} + engines: {node: '>=10'} + peerDependencies: + vue: ^3.2.0 + dependencies: + vue: 3.3.4 + dev: false + + /@humanwhocodes/config-array@0.11.11: + resolution: {integrity: sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: true + + /@humanwhocodes/object-schema@1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + dev: true + + /@iconify/json@2.2.127: + resolution: {integrity: sha512-5Y3aIrpENV/nMWxXVC5AdmnOPJAor4tN32fw05qscGXuPAO7itAuZ1vskqmBkVv0d4vflDM0yQ9Ssz1JlImGeA==} + dependencies: + '@iconify/types': 2.0.0 + pathe: 1.1.1 + dev: true + + /@iconify/types@2.0.0: + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} + dev: true + + /@iconify/utils@2.1.11: + resolution: {integrity: sha512-M/w3PkN8zQYXi8N6qK/KhnYMfEbbb6Sk8RZVn8g+Pmmu5ybw177RpsaGwpziyHeUsu4etrexYSWq3rwnIqzYCg==} + dependencies: + '@antfu/install-pkg': 0.1.1 + '@antfu/utils': 0.7.6 + '@iconify/types': 2.0.0 + debug: 4.3.4 + kolorist: 1.8.0 + local-pkg: 0.4.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@iconify/vue@4.1.1(vue@3.3.4): + resolution: {integrity: sha512-RL85Bm/DAe8y6rT6pux7D2FJSiUEM/TPfyK7GrbAOfTSwrhvwJW+S5yijdGcmtXouA8MtuH9C7l4hiSE4mLMjg==} + peerDependencies: + vue: '>=3' + dependencies: + '@iconify/types': 2.0.0 + vue: 3.3.4 + dev: true + + /@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@sinclair/typebox': 0.27.8 + dev: true + + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.19 + dev: true + + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/source-map@0.3.5: + resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.19 + dev: true + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + + /@jridgewell/trace-mapping@0.3.19: + resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /@ljharb/through@2.3.9: + resolution: {integrity: sha512-yN599ZBuMPPK4tdoToLlvgJB4CLK8fGl7ntfy0Wn7U6ttNvHYurd81bfUiK/6sMkiIwm65R6ck4L6+Y3DfVbNQ==} + engines: {node: '>= 0.4'} + dev: true + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.15.0 + dev: true + + /@polka/url@1.0.0-next.23: + resolution: {integrity: sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==} + dev: true + + /@popperjs/core@2.11.8: + resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} + dev: false + + /@rollup/pluginutils@5.0.2: + resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.1 + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + + /@rollup/pluginutils@5.0.4: + resolution: {integrity: sha512-0KJnIoRI8A+a1dqOYLxH8vBf8bphDmty5QvIm2hqm7oFCFYKCAZWWd2hXgMibaPsNDhI0AtpYfQZJG47pt/k4g==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.1 + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + + /@rollup/pluginutils@5.0.5: + resolution: {integrity: sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.2 + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + + /@sinclair/typebox@0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + dev: true + + /@stylistic/eslint-plugin-js@0.0.8(eslint@8.51.0): + resolution: {integrity: sha512-JHge3RFYtv0QdLjg/WmEEkCIykUlgrOO8VbixBc7g6+bf2vjSQmd3a+MGZBwjTnP+j4cBKriRgAJxiaV8b5a7Q==} + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) + acorn: 8.10.0 + escape-string-regexp: 4.0.0 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esutils: 2.0.3 + graphemer: 1.4.0 + transitivePeerDependencies: + - eslint + dev: true + + /@stylistic/eslint-plugin-jsx@0.0.8(eslint@8.51.0): + resolution: {integrity: sha512-CM4LmgS93zEXPqNLismYnlulBAT7cpHoVEqcRMBVsVj53FmaiEOg1WTO4r9qj00ByYQgf/TDXz1XHX84rr4nbA==} + dependencies: + '@stylistic/eslint-plugin-js': 0.0.8(eslint@8.51.0) + estraverse: 5.3.0 + jsx-ast-utils: 3.3.5 + transitivePeerDependencies: + - eslint + dev: true + + /@stylistic/eslint-plugin-ts@0.0.8(eslint@8.51.0)(typescript@5.2.2): + resolution: {integrity: sha512-vvC8yMEWznhfQmMtzSjqgXX5Z+8cVUk7FKhZQiUeSF8D/gqWeAhk7Amx1Yt7qE1rjuiVotT7M78GzDGmJYU6pg==} + peerDependencies: + eslint: '*' + dependencies: + '@stylistic/eslint-plugin-js': 0.0.8(eslint@8.51.0) + '@typescript-eslint/scope-manager': 6.7.5 + '@typescript-eslint/type-utils': 6.7.5(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.7.5(eslint@8.51.0)(typescript@5.2.2) + eslint: 8.51.0 + graphemer: 1.4.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@stylistic/eslint-plugin@0.0.8(eslint@8.51.0)(typescript@5.2.2): + resolution: {integrity: sha512-nSFdYuvlkIEgQjGGQ/Gn+vgS4D5zdma9LAbbXHgHDQfg6oIUcV6kzSbOrRKE+ih4z9n589CfUTGrcgaTRlvz6A==} + peerDependencies: + eslint: '*' + dependencies: + '@stylistic/eslint-plugin-js': 0.0.8(eslint@8.51.0) + '@stylistic/eslint-plugin-jsx': 0.0.8(eslint@8.51.0) + '@stylistic/eslint-plugin-ts': 0.0.8(eslint@8.51.0)(typescript@5.2.2) + eslint: 8.51.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@trysound/sax@0.2.0: + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} + dev: true + + /@types/chai-subset@1.3.3: + resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} + dependencies: + '@types/chai': 4.3.7 + dev: true + + /@types/chai@4.3.7: + resolution: {integrity: sha512-/k+vesl92vMvMygmQrFe9Aimxi6oQXFUX9mA5HanTrKUSAMoLauSi6PNFOdRw0oeqilaW600GNx2vSaT2f8aIQ==} + dev: true + + /@types/debug@4.1.8: + resolution: {integrity: sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==} + dependencies: + '@types/ms': 0.7.31 + dev: true + + /@types/estree@1.0.1: + resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} + dev: true + + /@types/estree@1.0.2: + resolution: {integrity: sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA==} + dev: true + + /@types/fined@1.1.3: + resolution: {integrity: sha512-CWYnSRnun3CGbt6taXeVo2lCbuaj4mchVJ4UF/BdU5TSuIn3AmS13pGMwCsBUoehGbhZrBrpNJZSZI5EVilXww==} + dev: true + + /@types/inquirer@9.0.3: + resolution: {integrity: sha512-CzNkWqQftcmk2jaCWdBTf9Sm7xSw4rkI1zpU/Udw3HX5//adEZUIm9STtoRP1qgWj0CWQtJ9UTvqmO2NNjhMJw==} + dependencies: + '@types/through': 0.0.30 + rxjs: 7.8.1 + dev: true + + /@types/json-schema@7.0.13: + resolution: {integrity: sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==} + dev: true + + /@types/liftoff@4.0.1: + resolution: {integrity: sha512-GUUFIP1wHuB6DEg65hkgJdqqmEeK5Vj+Wy5Tza26F9FuaHhtm4BxN00N3PhVUdCcryY9pn3SkcXGGQDLBisAPQ==} + dependencies: + '@types/fined': 1.1.3 + '@types/node': 20.6.0 + dev: true + + /@types/lodash-es@4.17.10: + resolution: {integrity: sha512-YJP+w/2khSBwbUSFdGsSqmDvmnN3cCKoPOL7Zjle6s30ZtemkkqhjVfFqGwPN7ASil5VyjE2GtyU/yqYY6mC0A==} + dependencies: + '@types/lodash': 4.14.200 + dev: true + + /@types/lodash@4.14.182: + resolution: {integrity: sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==} + dev: false + + /@types/lodash@4.14.200: + resolution: {integrity: sha512-YI/M/4HRImtNf3pJgbF+W6FrXovqj+T+/HpENLTooK9PnkacBsDpeP3IpHab40CClUfhNmdM2WTNP2sa2dni5Q==} + dev: true + + /@types/mdast@3.0.13: + resolution: {integrity: sha512-HjiGiWedR0DVFkeNljpa6Lv4/IZU1+30VY5d747K7lBudFc3R0Ibr6yJ9lN3BE28VnZyDfLF/VB1Ql1ZIbKrmg==} + dependencies: + '@types/unist': 2.0.8 + dev: true + + /@types/minimist@1.2.2: + resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} + dev: true + + /@types/mockjs@1.0.7: + resolution: {integrity: sha512-OCxXz6hEaJOVpRwuJMiVY5a6LtJcih+br9gwB/Q8ooOBikvk5FpBQ31OlNimXo3EqKha1Z7PFBni+q9m+8NCWg==} + dev: true + + /@types/ms@0.7.31: + resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} + dev: true + + /@types/node@18.13.0: + resolution: {integrity: sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg==} + dev: true + + /@types/node@20.6.0: + resolution: {integrity: sha512-najjVq5KN2vsH2U/xyh2opaSEz6cZMR2SetLIlxlj08nOcmPOemJmUK2o4kUzfLqfrWE0PIrNeE16XhYDd3nqg==} + dev: true + + /@types/node@20.8.4: + resolution: {integrity: sha512-ZVPnqU58giiCjSxjVUESDtdPk4QR5WQhhINbc9UBrKLU68MX5BF6kbQzTrkwbolyr0X8ChBpXfavr5mZFKZQ5A==} + dependencies: + undici-types: 5.25.3 + dev: true + + /@types/normalize-package-data@2.4.1: + resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} + dev: true + + /@types/normalize-package-data@2.4.2: + resolution: {integrity: sha512-lqa4UEhhv/2sjjIQgjX8B+RBjj47eo0mzGasklVJ78UKGQY1r0VpB9XHDaZZO9qzEFDdy4MrXLuEaSmPrPSe/A==} + dev: true + + /@types/nprogress@0.2.1: + resolution: {integrity: sha512-TYuyVnp+nOnimgdOydDIDYIxv2kSeuJZw4tF0p/KG7hpzcMF1WkHaREwM8O4blqfT1F7rq0nht6Ko2KVUfWzBA==} + dev: true + + /@types/path-browserify@1.0.0: + resolution: {integrity: sha512-XMCcyhSvxcch8b7rZAtFAaierBYdeHXVvg2iYnxOV0MCQHmPuRRmGZPFDRzPayxcGiiSL1Te9UIO+f3cuj0tfw==} + dev: true + + /@types/qs@6.9.8: + resolution: {integrity: sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==} + dev: true + + /@types/semver@7.5.3: + resolution: {integrity: sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==} + dev: true + + /@types/sortablejs@1.15.4: + resolution: {integrity: sha512-7oL7CcPSfoyoNx3Ba1+79ykJzpEKVhHUyfAiN5eT/FoeDXOR3eBDLXf9ndDNuxaExmjpI+zVi2dMMuaoXUOzNA==} + dev: false + + /@types/svgo@2.6.4: + resolution: {integrity: sha512-l4cmyPEckf8moNYHdJ+4wkHvFxjyW6ulm9l4YGaOxeyBWPhBOT0gvni1InpFPdzx1dKf/2s62qGITwxNWnPQng==} + dependencies: + '@types/node': 18.13.0 + dev: true + + /@types/through@0.0.30: + resolution: {integrity: sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==} + dependencies: + '@types/node': 20.6.0 + dev: true + + /@types/tinycolor2@1.4.5: + resolution: {integrity: sha512-uLJijDHN5E6j5n1qefF9oaeplgszXglWXWTviMoFr/YxgvbyrkFil20yDT7ljhCiTQ/BfCYtxfJS81LdTro5DQ==} + dev: false + + /@types/unist@2.0.8: + resolution: {integrity: sha512-d0XxK3YTObnWVp6rZuev3c49+j4Lo8g4L1ZRm9z5L0xpoZycUPshHgczK5gsUMaZOstjVYYi09p5gYvUtfChYw==} + dev: true + + /@types/validator@13.11.5: + resolution: {integrity: sha512-xW4qsT4UIYILu+7ZrBnfQdBYniZrMLYYK3wN9M/NdeIHgBN5pZI2/8Q7UfdWIcr5RLJv/OGENsx91JIpUUoC7Q==} + dev: false + + /@types/web-bluetooth@0.0.18: + resolution: {integrity: sha512-v/ZHEj9xh82usl8LMR3GarzFY1IrbXJw5L4QfQhokjRV91q+SelFqxQWSep1ucXEZ22+dSTwLFkXeur25sPIbw==} + + /@typescript-eslint/eslint-plugin@6.7.5(@typescript-eslint/parser@6.7.5)(eslint@8.51.0)(typescript@5.2.2): + resolution: {integrity: sha512-JhtAwTRhOUcP96D0Y6KYnwig/MRQbOoLGXTON2+LlyB/N35SP9j1boai2zzwXb7ypKELXMx3DVk9UTaEq1vHEw==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.9.1 + '@typescript-eslint/parser': 6.7.5(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/scope-manager': 6.7.5 + '@typescript-eslint/type-utils': 6.7.5(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.7.5(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.7.5 + debug: 4.3.4 + eslint: 8.51.0 + graphemer: 1.4.0 + ignore: 5.2.4 + natural-compare: 1.4.0 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.2.2) + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser@6.7.5(eslint@8.51.0)(typescript@5.2.2): + resolution: {integrity: sha512-bIZVSGx2UME/lmhLcjdVc7ePBwn7CLqKarUBL4me1C5feOd663liTGjMBGVcGr+BhnSLeP4SgwdvNnnkbIdkCw==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 6.7.5 + '@typescript-eslint/types': 6.7.5 + '@typescript-eslint/typescript-estree': 6.7.5(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.7.5 + debug: 4.3.4 + eslint: 8.51.0 + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager@6.7.5: + resolution: {integrity: sha512-GAlk3eQIwWOJeb9F7MKQ6Jbah/vx1zETSDw8likab/eFcqkjSD7BI75SDAeC5N2L0MmConMoPvTsmkrg71+B1A==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.7.5 + '@typescript-eslint/visitor-keys': 6.7.5 + dev: true + + /@typescript-eslint/type-utils@6.7.5(eslint@8.51.0)(typescript@5.2.2): + resolution: {integrity: sha512-Gs0qos5wqxnQrvpYv+pf3XfcRXW6jiAn9zE/K+DlmYf6FcpxeNYN0AIETaPR7rHO4K2UY+D0CIbDP9Ut0U4m1g==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 6.7.5(typescript@5.2.2) + '@typescript-eslint/utils': 6.7.5(eslint@8.51.0)(typescript@5.2.2) + debug: 4.3.4 + eslint: 8.51.0 + ts-api-utils: 1.0.3(typescript@5.2.2) + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/types@6.7.5: + resolution: {integrity: sha512-WboQBlOXtdj1tDFPyIthpKrUb+kZf2VroLZhxKa/VlwLlLyqv/PwUNgL30BlTVZV1Wu4Asu2mMYPqarSO4L5ZQ==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: true + + /@typescript-eslint/typescript-estree@6.7.5(typescript@5.2.2): + resolution: {integrity: sha512-NhJiJ4KdtwBIxrKl0BqG1Ur+uw7FiOnOThcYx9DpOGJ/Abc9z2xNzLeirCG02Ig3vkvrc2qFLmYSSsaITbKjlg==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 6.7.5 + '@typescript-eslint/visitor-keys': 6.7.5 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.2.2) + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils@6.7.5(eslint@8.51.0)(typescript@5.2.2): + resolution: {integrity: sha512-pfRRrH20thJbzPPlPc4j0UNGvH1PjPlhlCMq4Yx7EGjV7lvEeGX0U6MJYe8+SyFutWgSHsdbJ3BXzZccYggezA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) + '@types/json-schema': 7.0.13 + '@types/semver': 7.5.3 + '@typescript-eslint/scope-manager': 6.7.5 + '@typescript-eslint/types': 6.7.5 + '@typescript-eslint/typescript-estree': 6.7.5(typescript@5.2.2) + eslint: 8.51.0 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/visitor-keys@6.7.5: + resolution: {integrity: sha512-3MaWdDZtLlsexZzDSdQWsFQ9l9nL8B80Z4fImSpyllFC/KLqWQRdEcB+gGGO+N3Q2uL40EsG66wZLsohPxNXvg==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.7.5 + eslint-visitor-keys: 3.4.3 + dev: true + + /@unocss/astro@0.56.5(vite@4.4.11): + resolution: {integrity: sha512-nkxyGV9mA7DZ5LEr4Gap/SggM60MFNUfn56ngpxCqjQHJOMRJrAcR99hCVn+78vZ9xuZl9HxdIwgZLzn41thMw==} + peerDependencies: + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 + peerDependenciesMeta: + vite: + optional: true + dependencies: + '@unocss/core': 0.56.5 + '@unocss/reset': 0.56.5 + '@unocss/vite': 0.56.5(vite@4.4.11) + vite: 4.4.11(@types/node@20.8.4)(sass@1.69.2)(terser@5.21.0) + transitivePeerDependencies: + - rollup + dev: true + + /@unocss/cli@0.56.5: + resolution: {integrity: sha512-VYaqu7Dr1n9ebFFdQM+9Jyg/o9BVKRShlV8bQsBS58gkXiWsA/uAl1Uy2vzpLSrT0F6uGyDmYUF6p4DaUnUO+w==} + engines: {node: '>=14'} + hasBin: true + dependencies: + '@ampproject/remapping': 2.2.1 + '@rollup/pluginutils': 5.0.5 + '@unocss/config': 0.56.5 + '@unocss/core': 0.56.5 + '@unocss/preset-uno': 0.56.5 + cac: 6.7.14 + chokidar: 3.5.3 + colorette: 2.0.20 + consola: 3.2.3 + fast-glob: 3.3.1 + magic-string: 0.30.4 + pathe: 1.1.1 + perfect-debounce: 1.0.0 + transitivePeerDependencies: + - rollup + dev: true + + /@unocss/config@0.56.5: + resolution: {integrity: sha512-rscnFIYgUlN/0hXHdhANyjFcDjDutt3JO0ZRITdNLzoglh7GVNiDTURBJwUZejF/vGJ7IkMd3qOdNhPFuRY1Bg==} + engines: {node: '>=14'} + dependencies: + '@unocss/core': 0.56.5 + unconfig: 0.3.11 + dev: true + + /@unocss/core@0.56.5: + resolution: {integrity: sha512-fx5VhOjSHn0HdV2D34pEwFMAHJcJQRTCp1xEE4GzxY1irXzaa+m2aYf5PZjmDxehiOC16IH7TO9FOWANXk1E0w==} + dev: true + + /@unocss/extractor-arbitrary-variants@0.56.5: + resolution: {integrity: sha512-p2pyzz/ONvc5CGcaB9OZvWE8qkRSgyuhaQqFQLdBFeUhveHC0CGP0iSnXwBgAFHWM7DJo4/JpWeZ+mBt0ogVLA==} + dependencies: + '@unocss/core': 0.56.5 + dev: true + + /@unocss/inspector@0.56.5: + resolution: {integrity: sha512-UK/X2JyqxB1uueIFlffFsBioxMptanBbJYjrmOoLPdAFoOPp9o8IIFkFs3OKWc8imvyl3w+F0opncmdJnDMllw==} + dependencies: + '@unocss/rule-utils': 0.56.5 + gzip-size: 6.0.0 + sirv: 2.0.3 + dev: true + + /@unocss/postcss@0.56.5(postcss@8.4.31): + resolution: {integrity: sha512-oDY1vCdrCQZx/oxDkq3z77a0RoO+WVQT090oDZzLFO/cPWH3elSOHwnoJU/KzrpJLbUFpyTQKZ/k3VbBaEdGTA==} + engines: {node: '>=14'} + peerDependencies: + postcss: ^8.4.21 + dependencies: + '@unocss/config': 0.56.5 + '@unocss/core': 0.56.5 + '@unocss/rule-utils': 0.56.5 + css-tree: 2.3.1 + fast-glob: 3.3.1 + magic-string: 0.30.4 + postcss: 8.4.31 + dev: true + + /@unocss/preset-attributify@0.56.5: + resolution: {integrity: sha512-476NVv1kUmiD0ObtJceUB1ldiQvGStEUlwoHFOFl8srZbRuRlwq8Uz4sxCePf3sn2FP8UHw+By+nxwxMQuHpww==} + dependencies: + '@unocss/core': 0.56.5 + dev: true + + /@unocss/preset-icons@0.56.5: + resolution: {integrity: sha512-Pc973z/M7+TsIPRli9xSE+rjzQnX9r0PppTOD5lrD8PqvNSGIrSWZUFDc5NqL09hKHkIdVrDLC+2ouLYqTI7iA==} + dependencies: + '@iconify/utils': 2.1.11 + '@unocss/core': 0.56.5 + ofetch: 1.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@unocss/preset-mini@0.56.5: + resolution: {integrity: sha512-/KhlThhs1ilauM7MwRSpahLbIPZ5VGeGvaUsU8+ZlNT3sis4yoVYkPtR14tL2IT6jhOU05N/uu3aBj+1bP8GjQ==} + dependencies: + '@unocss/core': 0.56.5 + '@unocss/extractor-arbitrary-variants': 0.56.5 + '@unocss/rule-utils': 0.56.5 + dev: true + + /@unocss/preset-tagify@0.56.5: + resolution: {integrity: sha512-ANtI7E92fuzF40MD/3V72myNqrcGNXAD3TjXHIxAPQP2F+DcYIl2TBPHVsGUt2Rc5Kid2kvvsWan6sRAQVGPng==} + dependencies: + '@unocss/core': 0.56.5 + dev: true + + /@unocss/preset-typography@0.56.5: + resolution: {integrity: sha512-fA/q5S+s7BV3TRWRvXqG7xpa8WNfG19uaZx288FcKauMR0TX4jUM0EkkngpwrTgeXXohh5awx4OEW3E1s1Q2oA==} + dependencies: + '@unocss/core': 0.56.5 + '@unocss/preset-mini': 0.56.5 + dev: true + + /@unocss/preset-uno@0.56.5: + resolution: {integrity: sha512-3hzE0X1oxMbHLvWyTj/4BrJQ7OAL428BpzEJos0RsxifM04vOJX4GC4khIbmTl8KIMECMtATK3ren3JqzD2bFw==} + dependencies: + '@unocss/core': 0.56.5 + '@unocss/preset-mini': 0.56.5 + '@unocss/preset-wind': 0.56.5 + '@unocss/rule-utils': 0.56.5 + dev: true + + /@unocss/preset-web-fonts@0.56.5: + resolution: {integrity: sha512-1YPbqpHK6NaXWHceNJTl2A+dNbliB6FeU5Tvkox1KOLTTwvzUF80uWHAE/l05Oc9EZyolZ8OsM37p2eJAb0wpw==} + dependencies: + '@unocss/core': 0.56.5 + ofetch: 1.3.3 + dev: true + + /@unocss/preset-wind@0.56.5: + resolution: {integrity: sha512-iyMPvCEZkrGLHFXXlcqxDo/UcSK7KWw4x7/QUz7irrvc78cxYVuPm98QZgpCRcCwKerKVyFLjGOtwQ0kmVSVsQ==} + dependencies: + '@unocss/core': 0.56.5 + '@unocss/preset-mini': 0.56.5 + '@unocss/rule-utils': 0.56.5 + dev: true + + /@unocss/reset@0.56.5: + resolution: {integrity: sha512-//Pv2ITAdnpWB9FIr0JiQVl1rL1XgISR8mu3OikhCfi6d/4OH+o6/WyE7evF1pOmk1JjsQlznOABIZXQlcpbHQ==} + dev: true + + /@unocss/rule-utils@0.56.5: + resolution: {integrity: sha512-CXIGHCIC9B8WUl9KbbFMSZHcsIgfmI/+X0bjBv6xrgBVC1EQ2Acq4PYnJIbaRGBRAhl9wYjNL7Zq2UWOdowHAw==} + engines: {node: '>=14'} + dependencies: + '@unocss/core': 0.56.5 + dev: true + + /@unocss/scope@0.56.5: + resolution: {integrity: sha512-q2eHYLuqF7RZEVGti205X2JOKSH6lBJGoQIjPtWgodNTg3S7qmUinHG0XzikI30L3EF3VljIh5TbtwGPcvbNsA==} + dev: true + + /@unocss/transformer-attributify-jsx-babel@0.56.5: + resolution: {integrity: sha512-QUlbmWpdfzdgEXNcOJwSvKDHB/ID/X3zlpK+fXyCKTkqiYgCwMFmLXll2HtNhIgH2E1gWo/lDlwpiW/QjQb/rw==} + dependencies: + '@unocss/core': 0.56.5 + dev: true + + /@unocss/transformer-attributify-jsx@0.56.5: + resolution: {integrity: sha512-SQW7t58s26qHYuD8v3covXtWoXlflw3FV5dlBCw/2iOfNo3OTVUWReAB5y0XQIT3828nHnPqeQq4IhmnuOENdw==} + dependencies: + '@unocss/core': 0.56.5 + dev: true + + /@unocss/transformer-compile-class@0.56.5: + resolution: {integrity: sha512-uT/+bVDN26hJ4a5FtbOT4PxAVDUTxwZCEVCesPAE5RnGd7f+KYUnk3XdDa77xyklPQsxPhr4MEjA0HGPHtSH8Q==} + dependencies: + '@unocss/core': 0.56.5 + dev: true + + /@unocss/transformer-directives@0.56.5: + resolution: {integrity: sha512-ykXbvG1LbqTqlYImMtkJUeH8BtuiE+8T/txUVyooUoVgr2qSELUu2FxC6rTX2EUx+F5BZhaQd6GsdzgaDwXgIg==} + dependencies: + '@unocss/core': 0.56.5 + '@unocss/rule-utils': 0.56.5 + css-tree: 2.3.1 + dev: true + + /@unocss/transformer-variant-group@0.56.5: + resolution: {integrity: sha512-e+7XtICuOtcOgGyxI06i0LK6R446KLFvzv+lw3WbwhD8OcsSFUAtCaAw0l+cyyiiZ/k2tLdUR0O4hYwQVa8f1A==} + dependencies: + '@unocss/core': 0.56.5 + dev: true + + /@unocss/vite@0.56.5(vite@4.4.11): + resolution: {integrity: sha512-X4nvIukXTH//d+Oc97nJogK04sVGw4fc5LhVV1DjHQVmAOAmhTJCG6SxWGoSeqqUMx5X3gI9fVILK+5O8yl5EA==} + peerDependencies: + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 + dependencies: + '@ampproject/remapping': 2.2.1 + '@rollup/pluginutils': 5.0.5 + '@unocss/config': 0.56.5 + '@unocss/core': 0.56.5 + '@unocss/inspector': 0.56.5 + '@unocss/scope': 0.56.5 + '@unocss/transformer-directives': 0.56.5 + chokidar: 3.5.3 + fast-glob: 3.3.1 + magic-string: 0.30.4 + vite: 4.4.11(@types/node@20.8.4)(sass@1.69.2)(terser@5.21.0) + transitivePeerDependencies: + - rollup + dev: true + + /@vitejs/plugin-legacy@4.1.1(terser@5.21.0)(vite@4.4.11): + resolution: {integrity: sha512-um3gbVouD2Q/g19C0qpDfHwveXDCAHzs8OC3e9g6aXpKoD1H14himgs7wkMnhAynBJy7QqUoZNAXDuqN8zLR2g==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + terser: ^5.4.0 + vite: ^4.0.0 + dependencies: + '@babel/core': 7.22.9 + '@babel/preset-env': 7.22.9(@babel/core@7.22.9) + browserslist: 4.21.9 + core-js: 3.31.1 + magic-string: 0.30.1 + regenerator-runtime: 0.13.11 + systemjs: 6.14.1 + terser: 5.21.0 + vite: 4.4.11(@types/node@20.8.4)(sass@1.69.2)(terser@5.21.0) + transitivePeerDependencies: + - supports-color + dev: true + + /@vitejs/plugin-vue-jsx@3.0.2(vite@4.4.11)(vue@3.3.4): + resolution: {integrity: sha512-obF26P2Z4Ogy3cPp07B4VaW6rpiu0ue4OT2Y15UxT5BZZ76haUY9guOsZV3uWh/I6xc+VeiW+ZVabRE82FyzWw==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.0.0 + vue: ^3.0.0 + dependencies: + '@babel/core': 7.22.11 + '@babel/plugin-transform-typescript': 7.22.11(@babel/core@7.22.11) + '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.22.11) + vite: 4.4.11(@types/node@20.8.4)(sass@1.69.2)(terser@5.21.0) + vue: 3.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@vitejs/plugin-vue@4.4.0(vite@4.4.11)(vue@3.3.4): + resolution: {integrity: sha512-xdguqb+VUwiRpSg+nsc2HtbAUSGak25DXYvpQQi4RVU1Xq1uworyoH/md9Rfd8zMmPR/pSghr309QNcftUVseg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.0.0 + vue: ^3.2.25 + dependencies: + vite: 4.4.11(@types/node@20.8.4)(sass@1.69.2)(terser@5.21.0) + vue: 3.3.4 + dev: true + + /@vitest/expect@0.34.6: + resolution: {integrity: sha512-QUzKpUQRc1qC7qdGo7rMK3AkETI7w18gTCUrsNnyjjJKYiuUB9+TQK3QnR1unhCnWRC0AbKv2omLGQDF/mIjOw==} + dependencies: + '@vitest/spy': 0.34.6 + '@vitest/utils': 0.34.6 + chai: 4.3.10 + dev: true + + /@vitest/runner@0.34.6: + resolution: {integrity: sha512-1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ==} + dependencies: + '@vitest/utils': 0.34.6 + p-limit: 4.0.0 + pathe: 1.1.1 + dev: true + + /@vitest/snapshot@0.34.6: + resolution: {integrity: sha512-B3OZqYn6k4VaN011D+ve+AA4whM4QkcwcrwaKwAbyyvS/NB1hCWjFIBQxAQQSQir9/RtyAAGuq+4RJmbn2dH4w==} + dependencies: + magic-string: 0.30.4 + pathe: 1.1.1 + pretty-format: 29.7.0 + dev: true + + /@vitest/spy@0.34.6: + resolution: {integrity: sha512-xaCvneSaeBw/cz8ySmF7ZwGvL0lBjfvqc1LpQ/vcdHEvpLn3Ff1vAvjw+CoGn0802l++5L/pxb7whwcWAw+DUQ==} + dependencies: + tinyspy: 2.2.0 + dev: true + + /@vitest/utils@0.34.6: + resolution: {integrity: sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==} + dependencies: + diff-sequences: 29.6.3 + loupe: 2.3.6 + pretty-format: 29.7.0 + dev: true + + /@volar/language-core@1.10.4: + resolution: {integrity: sha512-Na69qA6uwVIdA0rHuOc2W3pHtVQQO8hCNim7FOaKNpRJh0oAFnu5r9i7Oopo5C4cnELZkPNjTrbmpcCTiW+CMQ==} + dependencies: + '@volar/source-map': 1.10.4 + dev: true + + /@volar/source-map@1.10.4: + resolution: {integrity: sha512-RxZdUEL+pV8p+SMqnhVjzy5zpb1QRZTlcwSk4bdcBO7yOu4rtEWqDGahVCEj4CcXour+0yJUMrMczfSCpP9Uxg==} + dependencies: + muggle-string: 0.3.1 + dev: true + + /@volar/typescript@1.10.4: + resolution: {integrity: sha512-BCCUEBASBEMCrz7qmNSi2hBEWYsXD0doaktRKpmmhvb6XntM2sAWYu6gbyK/MluLDgluGLFiFRpWgobgzUqolg==} + dependencies: + '@volar/language-core': 1.10.4 + dev: true + + /@vue/babel-helper-vue-transform-on@1.1.5: + resolution: {integrity: sha512-SgUymFpMoAyWeYWLAY+MkCK3QEROsiUnfaw5zxOVD/M64KQs8D/4oK6Q5omVA2hnvEOE0SCkH2TZxs/jnnUj7w==} + dev: true + + /@vue/babel-plugin-jsx@1.1.5(@babel/core@7.22.11): + resolution: {integrity: sha512-nKs1/Bg9U1n3qSWnsHhCVQtAzI6aQXqua8j/bZrau8ywT1ilXQbK4FwEJGmU8fV7tcpuFvWmmN7TMmV1OBma1g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.11 + '@babel/helper-module-imports': 7.22.5 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.11) + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.11 + '@babel/types': 7.22.11 + '@vue/babel-helper-vue-transform-on': 1.1.5 + camelcase: 6.3.0 + html-tags: 3.3.1 + svg-tags: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@vue/babel-plugin-jsx@1.1.5(@babel/core@7.23.0): + resolution: {integrity: sha512-nKs1/Bg9U1n3qSWnsHhCVQtAzI6aQXqua8j/bZrau8ywT1ilXQbK4FwEJGmU8fV7tcpuFvWmmN7TMmV1OBma1g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-module-imports': 7.22.5 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.0) + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.11 + '@babel/types': 7.22.11 + '@vue/babel-helper-vue-transform-on': 1.1.5 + camelcase: 6.3.0 + html-tags: 3.3.1 + svg-tags: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@vue/compiler-core@3.3.4: + resolution: {integrity: sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==} + dependencies: + '@babel/parser': 7.22.7 + '@vue/shared': 3.3.4 + estree-walker: 2.0.2 + source-map-js: 1.0.2 + + /@vue/compiler-dom@3.3.4: + resolution: {integrity: sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==} + dependencies: + '@vue/compiler-core': 3.3.4 + '@vue/shared': 3.3.4 + + /@vue/compiler-sfc@3.3.4: + resolution: {integrity: sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==} + dependencies: + '@babel/parser': 7.22.16 + '@vue/compiler-core': 3.3.4 + '@vue/compiler-dom': 3.3.4 + '@vue/compiler-ssr': 3.3.4 + '@vue/reactivity-transform': 3.3.4 + '@vue/shared': 3.3.4 + estree-walker: 2.0.2 + magic-string: 0.30.3 + postcss: 8.4.29 + source-map-js: 1.0.2 + + /@vue/compiler-ssr@3.3.4: + resolution: {integrity: sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==} + dependencies: + '@vue/compiler-dom': 3.3.4 + '@vue/shared': 3.3.4 + + /@vue/devtools-api@6.5.0: + resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==} + + /@vue/language-core@1.8.19(typescript@5.2.2): + resolution: {integrity: sha512-nt3dodGs97UM6fnxeQBazO50yYCKBK53waFWB3qMbLmR6eL3aUryZgQtZoBe1pye17Wl8fs9HysV3si6xMgndQ==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@volar/language-core': 1.10.4 + '@volar/source-map': 1.10.4 + '@vue/compiler-dom': 3.3.4 + '@vue/reactivity': 3.3.4 + '@vue/shared': 3.3.4 + minimatch: 9.0.3 + muggle-string: 0.3.1 + typescript: 5.2.2 + vue-template-compiler: 2.7.14 + dev: true + + /@vue/reactivity-transform@3.3.4: + resolution: {integrity: sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==} + dependencies: + '@babel/parser': 7.22.16 + '@vue/compiler-core': 3.3.4 + '@vue/shared': 3.3.4 + estree-walker: 2.0.2 + magic-string: 0.30.3 + + /@vue/reactivity@3.3.4: + resolution: {integrity: sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==} + dependencies: + '@vue/shared': 3.3.4 + + /@vue/runtime-core@3.3.4: + resolution: {integrity: sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==} + dependencies: + '@vue/reactivity': 3.3.4 + '@vue/shared': 3.3.4 + + /@vue/runtime-dom@3.3.4: + resolution: {integrity: sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==} + dependencies: + '@vue/runtime-core': 3.3.4 + '@vue/shared': 3.3.4 + csstype: 3.1.2 + + /@vue/server-renderer@3.3.4(vue@3.3.4): + resolution: {integrity: sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==} + peerDependencies: + vue: 3.3.4 + dependencies: + '@vue/compiler-ssr': 3.3.4 + '@vue/shared': 3.3.4 + vue: 3.3.4 + + /@vue/shared@3.3.4: + resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==} + + /@vue/typescript@1.8.19(typescript@5.2.2): + resolution: {integrity: sha512-k/SHeeQROUgqsxyHQ8Cs3Zz5TnX57p7BcBDVYR2E0c61QL2DJ2G8CsaBremmNGuGE6o1R5D50IHIxFmroMz8iw==} + dependencies: + '@volar/typescript': 1.10.4 + '@vue/language-core': 1.8.19(typescript@5.2.2) + transitivePeerDependencies: + - typescript + dev: true + + /@vueuse/core@10.5.0(vue@3.3.4): + resolution: {integrity: sha512-z/tI2eSvxwLRjOhDm0h/SXAjNm8N5ld6/SC/JQs6o6kpJ6Ya50LnEL8g5hoYu005i28L0zqB5L5yAl8Jl26K3A==} + dependencies: + '@types/web-bluetooth': 0.0.18 + '@vueuse/metadata': 10.5.0 + '@vueuse/shared': 10.5.0(vue@3.3.4) + vue-demi: 0.14.6(vue@3.3.4) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + /@vueuse/integrations@10.5.0(axios@1.5.1)(nprogress@0.2.0)(vue@3.3.4): + resolution: {integrity: sha512-fm5sXLCK0Ww3rRnzqnCQRmfjDURaI4xMsx+T+cec0ngQqHx/JgUtm8G0vRjwtonIeTBsH1Q8L3SucE+7K7upJQ==} + peerDependencies: + async-validator: '*' + axios: '*' + change-case: '*' + drauu: '*' + focus-trap: '*' + fuse.js: '*' + idb-keyval: '*' + jwt-decode: '*' + nprogress: '*' + qrcode: '*' + sortablejs: '*' + universal-cookie: '*' + peerDependenciesMeta: + async-validator: + optional: true + axios: + optional: true + change-case: + optional: true + drauu: + optional: true + focus-trap: + optional: true + fuse.js: + optional: true + idb-keyval: + optional: true + jwt-decode: + optional: true + nprogress: + optional: true + qrcode: + optional: true + sortablejs: + optional: true + universal-cookie: + optional: true + dependencies: + '@vueuse/core': 10.5.0(vue@3.3.4) + '@vueuse/shared': 10.5.0(vue@3.3.4) + axios: 1.5.1 + nprogress: 0.2.0 + vue-demi: 0.14.6(vue@3.3.4) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: false + + /@vueuse/metadata@10.5.0: + resolution: {integrity: sha512-fEbElR+MaIYyCkeM0SzWkdoMtOpIwO72x8WsZHRE7IggiOlILttqttM69AS13nrDxosnDBYdyy3C5mR1LCxHsw==} + + /@vueuse/shared@10.5.0(vue@3.3.4): + resolution: {integrity: sha512-18iyxbbHYLst9MqU1X1QNdMHIjks6wC7XTVf0KNOv5es/Ms6gjVFCAAWTVP2JStuGqydg3DT+ExpFORUEi9yhg==} + dependencies: + vue-demi: 0.14.6(vue@3.3.4) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + /acorn-jsx@5.3.2(acorn@8.10.0): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.10.0 + dev: true + + /acorn-walk@8.2.0: + resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} + engines: {node: '>=0.4.0'} + dev: true + + /acorn@8.10.0: + resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /aggregate-error@4.0.1: + resolution: {integrity: sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==} + engines: {node: '>=12'} + dependencies: + clean-stack: 4.2.0 + indent-string: 5.0.0 + dev: true + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: true + + /ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: true + + /ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.21.3 + dev: true + + /ansi-escapes@5.0.0: + resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==} + engines: {node: '>=12'} + dependencies: + type-fest: 1.4.0 + dev: true + + /ansi-regex@2.1.1: + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} + engines: {node: '>=0.10.0'} + dev: true + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true + + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + dev: true + + /ansi-styles@2.2.1: + resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} + engines: {node: '>=0.10.0'} + dev: true + + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: true + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + + /ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + dev: true + + /ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + dev: true + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + + /are-docs-informative@0.0.2: + resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} + engines: {node: '>=14'} + dev: true + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true + + /arr-diff@4.0.0: + resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} + engines: {node: '>=0.10.0'} + dev: true + + /arr-flatten@1.1.0: + resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} + engines: {node: '>=0.10.0'} + dev: true + + /arr-union@3.1.0: + resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} + engines: {node: '>=0.10.0'} + dev: true + + /array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + dependencies: + call-bind: 1.0.2 + is-array-buffer: 3.0.2 + dev: true + + /array-each@1.0.1: + resolution: {integrity: sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==} + engines: {node: '>=0.10.0'} + dev: true + + /array-includes@3.1.7: + resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + is-string: 1.0.7 + dev: true + + /array-slice@1.1.0: + resolution: {integrity: sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==} + engines: {node: '>=0.10.0'} + dev: true + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /array-unique@0.3.2: + resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} + engines: {node: '>=0.10.0'} + dev: true + + /array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-shim-unscopables: 1.0.0 + dev: true + + /arraybuffer.prototype.slice@1.0.2: + resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + is-array-buffer: 3.0.2 + is-shared-array-buffer: 1.0.2 + dev: true + + /arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + dev: true + + /assertion-error@1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + dev: true + + /assign-symbols@1.0.0: + resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} + engines: {node: '>=0.10.0'} + dev: true + + /astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + dev: true + + /async@2.6.4: + resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} + dependencies: + lodash: 4.17.21 + dev: true + + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: false + + /atob@2.1.2: + resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} + engines: {node: '>= 4.5.0'} + hasBin: true + dev: true + + /autoprefixer@10.4.16(postcss@8.4.31): + resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: 4.21.11 + caniuse-lite: 1.0.30001538 + fraction.js: 4.3.6 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + dev: true + + /axios@1.5.1: + resolution: {integrity: sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A==} + dependencies: + follow-redirects: 1.15.3 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + dev: false + + /babel-plugin-polyfill-corejs2@0.4.5(@babel/core@7.22.9): + resolution: {integrity: sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/compat-data': 7.22.9 + '@babel/core': 7.22.9 + '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.22.9) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-corejs3@0.8.3(@babel/core@7.22.9): + resolution: {integrity: sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.22.9) + core-js-compat: 3.31.1 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-regenerator@0.5.2(@babel/core@7.22.9): + resolution: {integrity: sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.22.9 + '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.22.9) + transitivePeerDependencies: + - supports-color + dev: true + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true + + /balanced-match@2.0.0: + resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==} + dev: true + + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + dev: true + + /base@0.11.2: + resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} + engines: {node: '>=0.10.0'} + dependencies: + cache-base: 1.0.1 + class-utils: 0.3.6 + component-emitter: 1.3.0 + define-property: 1.0.0 + isobject: 3.0.1 + mixin-deep: 1.3.2 + pascalcase: 0.1.1 + dev: true + + /basic-auth@2.0.1: + resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} + engines: {node: '>= 0.8'} + dependencies: + safe-buffer: 5.1.2 + dev: true + + /big.js@5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + dev: true + + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: true + + /bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: true + + /bl@5.1.0: + resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} + dependencies: + buffer: 6.0.3 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: true + + /bluebird@3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + dev: true + + /boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + dev: true + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + dev: true + + /braces@2.3.2: + resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} + engines: {node: '>=0.10.0'} + dependencies: + arr-flatten: 1.1.0 + array-unique: 0.3.2 + extend-shallow: 2.0.1 + fill-range: 4.0.0 + isobject: 3.0.1 + repeat-element: 1.1.4 + snapdragon: 0.8.2 + snapdragon-node: 2.1.1 + split-string: 3.1.0 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: true + + /browserslist@4.21.10: + resolution: {integrity: sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001524 + electron-to-chromium: 1.4.505 + node-releases: 2.0.13 + update-browserslist-db: 1.0.11(browserslist@4.21.10) + dev: true + + /browserslist@4.21.11: + resolution: {integrity: sha512-xn1UXOKUz7DjdGlg9RrUr0GGiWzI97UQJnugHtH0OLDfJB7jMgoIkYvRIEO1l9EeEERVqeqLYOcFBW9ldjypbQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001538 + electron-to-chromium: 1.4.527 + node-releases: 2.0.13 + update-browserslist-db: 1.0.13(browserslist@4.21.11) + dev: true + + /browserslist@4.21.9: + resolution: {integrity: sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001524 + electron-to-chromium: 1.4.468 + node-releases: 2.0.13 + update-browserslist-db: 1.0.11(browserslist@4.21.9) + dev: true + + /browserslist@4.22.1: + resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001546 + electron-to-chromium: 1.4.544 + node-releases: 2.0.13 + update-browserslist-db: 1.0.13(browserslist@4.22.1) + dev: true + + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: true + + /buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: true + + /buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: true + + /builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + dev: true + + /builtins@5.0.1: + resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} + dependencies: + semver: 7.5.4 + dev: true + + /cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + dev: true + + /cache-base@1.0.1: + resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} + engines: {node: '>=0.10.0'} + dependencies: + collection-visit: 1.0.0 + component-emitter: 1.3.0 + get-value: 2.0.6 + has-value: 1.0.0 + isobject: 3.0.1 + set-value: 2.0.1 + to-object-path: 0.3.0 + union-value: 1.0.1 + unset-value: 1.0.0 + dev: true + + /call-bind@1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.2.1 + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true + + /camel-case@4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + dependencies: + pascal-case: 3.1.2 + tslib: 2.6.2 + dev: true + + /camelcase-keys@7.0.2: + resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==} + engines: {node: '>=12'} + dependencies: + camelcase: 6.3.0 + map-obj: 4.3.0 + quick-lru: 5.1.1 + type-fest: 1.4.0 + dev: true + + /camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + dev: true + + /caniuse-lite@1.0.30001524: + resolution: {integrity: sha512-Jj917pJtYg9HSJBF95HVX3Cdr89JUyLT4IZ8SvM5aDRni95swKgYi3TgYLH5hnGfPE/U1dg6IfZ50UsIlLkwSA==} + dev: true + + /caniuse-lite@1.0.30001538: + resolution: {integrity: sha512-HWJnhnID+0YMtGlzcp3T9drmBJUVDchPJ08tpUGFLs9CYlwWPH2uLgpHn8fND5pCgXVtnGS3H4QR9XLMHVNkHw==} + dev: true + + /caniuse-lite@1.0.30001546: + resolution: {integrity: sha512-zvtSJwuQFpewSyRrI3AsftF6rM0X80mZkChIt1spBGEvRglCrjTniXvinc8JKRoqTwXAgvqTImaN9igfSMtUBw==} + dev: true + + /capital-case@1.0.4: + resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + upper-case-first: 2.0.2 + dev: true + + /chai@4.3.10: + resolution: {integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==} + engines: {node: '>=4'} + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.3 + deep-eql: 4.1.3 + get-func-name: 2.0.2 + loupe: 2.3.6 + pathval: 1.1.1 + type-detect: 4.0.8 + dev: true + + /chalk@1.1.3: + resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-styles: 2.2.1 + escape-string-regexp: 1.0.5 + has-ansi: 2.0.0 + strip-ansi: 3.0.1 + supports-color: 2.0.0 + dev: true + + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: true + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: true + + /change-case@4.1.2: + resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==} + dependencies: + camel-case: 4.1.2 + capital-case: 1.0.4 + constant-case: 3.0.4 + dot-case: 3.0.4 + header-case: 2.0.4 + no-case: 3.0.4 + param-case: 3.0.4 + pascal-case: 3.1.2 + path-case: 3.0.4 + sentence-case: 3.0.4 + snake-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /character-entities-legacy@1.1.4: + resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} + dev: true + + /character-entities@1.2.4: + resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} + dev: true + + /character-reference-invalid@1.1.4: + resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} + dev: true + + /chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + dev: true + + /check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + dependencies: + get-func-name: 2.0.2 + dev: true + + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + dev: true + + /class-utils@0.3.6: + resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} + engines: {node: '>=0.10.0'} + dependencies: + arr-union: 3.1.0 + define-property: 0.2.5 + isobject: 3.0.1 + static-extend: 0.1.2 + dev: true + + /clean-regexp@1.0.0: + resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} + engines: {node: '>=4'} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /clean-stack@4.2.0: + resolution: {integrity: sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==} + engines: {node: '>=12'} + dependencies: + escape-string-regexp: 5.0.0 + dev: true + + /cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + dependencies: + restore-cursor: 3.1.0 + dev: true + + /cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + restore-cursor: 4.0.0 + dev: true + + /cli-spinners@2.9.0: + resolution: {integrity: sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==} + engines: {node: '>=6'} + dev: true + + /cli-truncate@3.1.0: + resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + slice-ansi: 5.0.0 + string-width: 5.1.2 + dev: true + + /cli-width@4.1.0: + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} + engines: {node: '>= 12'} + dev: true + + /clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + dev: true + + /clone@2.1.2: + resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} + engines: {node: '>=0.8'} + dev: true + + /collection-visit@1.0.0: + resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} + engines: {node: '>=0.10.0'} + dependencies: + map-visit: 1.0.0 + object-visit: 1.0.1 + dev: true + + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + dev: true + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: true + + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + dev: true + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + + /colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + dev: true + + /colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + dev: true + + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + dev: false + + /commander@11.0.0: + resolution: {integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==} + engines: {node: '>=16'} + dev: true + + /commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + dev: true + + /commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + dev: true + + /commander@9.4.1: + resolution: {integrity: sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==} + engines: {node: ^12.20.0 || >=14} + + /comment-parser@1.4.0: + resolution: {integrity: sha512-QLyTNiZ2KDOibvFPlZ6ZngVsZ/0gYnE6uTXi5aoDg8ed3AkJAz4sEje3Y8a29hQ1s6A99MZXe47fLAXQ1rTqaw==} + engines: {node: '>= 12.0.0'} + dev: true + + /component-emitter@1.3.0: + resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} + dev: true + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: true + + /connect@3.7.0: + resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} + engines: {node: '>= 0.10.0'} + dependencies: + debug: 2.6.9 + finalhandler: 1.1.2 + parseurl: 1.3.3 + utils-merge: 1.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /consola@3.2.3: + resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} + engines: {node: ^14.18.0 || >=16.10.0} + dev: true + + /constant-case@3.0.4: + resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + upper-case: 2.0.2 + dev: true + + /convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + dev: true + + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + dev: true + + /copy-descriptor@0.1.1: + resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} + engines: {node: '>=0.10.0'} + dev: true + + /copy-text-to-clipboard@3.1.0: + resolution: {integrity: sha512-PFM6BnjLnOON/lB3ta/Jg7Ywsv+l9kQGD4TWDCSlRBGmqnnTM5MrDkhAFgw+8HZt0wW6Q2BBE4cmy9sq+s9Qng==} + engines: {node: '>=12'} + dev: false + + /core-js-compat@3.31.1: + resolution: {integrity: sha512-wIDWd2s5/5aJSdpOJHfSibxNODxoGoWOBHt8JSPB41NOE94M7kuTPZCYLOlTtuoXTsBPKobpJ6T+y0SSy5L9SA==} + dependencies: + browserslist: 4.21.9 + dev: true + + /core-js@3.31.0: + resolution: {integrity: sha512-NIp2TQSGfR6ba5aalZD+ZQ1fSxGhDo/s1w0nx3RYzf2pnJxt7YynxFlFScP6eV7+GZsKO95NSjGxyJsU3DZgeQ==} + requiresBuild: true + dev: false + + /core-js@3.31.1: + resolution: {integrity: sha512-2sKLtfq1eFST7l7v62zaqXacPc7uG8ZAya8ogijLhTtaKNcpzpB4TMoTw2Si+8GYKRwFPMMtUT0263QFWFfqyQ==} + requiresBuild: true + dev: true + + /cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + dev: true + + /corser@2.0.1: + resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==} + engines: {node: '>= 0.4.0'} + dev: true + + /cosmiconfig@8.2.0: + resolution: {integrity: sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==} + engines: {node: '>=14'} + dependencies: + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + path-type: 4.0.0 + dev: true + + /cross-spawn@6.0.5: + resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} + engines: {node: '>=4.8'} + dependencies: + nice-try: 1.0.5 + path-key: 2.0.1 + semver: 5.7.1 + shebang-command: 1.2.0 + which: 1.3.1 + dev: true + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /css-functions-list@3.2.0: + resolution: {integrity: sha512-d/jBMPyYybkkLVypgtGv12R+pIFw4/f/IHtCTxWpZc8ofTYOPigIgmA6vu5rMHartZC+WuXhBUHfnyNUIQSYrg==} + engines: {node: '>=12.22'} + dev: true + + /css-select@4.3.0: + resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 4.3.1 + domutils: 2.8.0 + nth-check: 2.1.1 + dev: true + + /css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 5.0.3 + domutils: 3.0.1 + nth-check: 2.1.1 + dev: true + + /css-tree@1.1.3: + resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} + engines: {node: '>=8.0.0'} + dependencies: + mdn-data: 2.0.14 + source-map: 0.6.1 + dev: true + + /css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + dependencies: + mdn-data: 2.0.28 + source-map-js: 1.0.2 + dev: true + + /css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.0.2 + dev: true + + /css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + dev: true + + /cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /csso@4.2.0: + resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} + engines: {node: '>=8.0.0'} + dependencies: + css-tree: 1.1.3 + dev: true + + /csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + dependencies: + css-tree: 2.2.1 + dev: true + + /csstype@3.1.2: + resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + + /dayjs@1.11.10: + resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} + dev: false + + /de-indent@1.0.2: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} + dev: true + + /debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + dev: true + + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + dev: true + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} + dependencies: + decamelize: 1.2.0 + map-obj: 1.0.1 + dev: true + + /decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + dev: true + + /decamelize@5.0.1: + resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==} + engines: {node: '>=10'} + dev: true + + /decode-uri-component@0.2.0: + resolution: {integrity: sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==} + engines: {node: '>=0.10'} + dev: true + + /deep-eql@4.1.3: + resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + engines: {node: '>=6'} + dependencies: + type-detect: 4.0.8 + dev: true + + /deep-equal@2.2.1: + resolution: {integrity: sha512-lKdkdV6EOGoVn65XaOsPdH4rMxTZOnmFyuIkMjM1i5HHCbfjC97dawgTAy0deYNfuqUqW+Q5VrVaQYtUpSd6yQ==} + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.2 + es-get-iterator: 1.1.3 + get-intrinsic: 1.2.1 + is-arguments: 1.1.1 + is-array-buffer: 3.0.2 + is-date-object: 1.0.5 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + isarray: 2.0.5 + object-is: 1.1.5 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.0 + side-channel: 1.0.4 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.1 + which-typed-array: 1.1.9 + dev: true + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true + + /defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + dependencies: + clone: 1.0.4 + dev: true + + /define-data-property@1.1.0: + resolution: {integrity: sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + gopd: 1.0.1 + has-property-descriptors: 1.0.0 + dev: true + + /define-properties@1.2.0: + resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} + engines: {node: '>= 0.4'} + dependencies: + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: true + + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.0 + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: true + + /define-property@0.2.5: + resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 0.1.6 + dev: true + + /define-property@1.0.0: + resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 1.0.2 + dev: true + + /define-property@2.0.2: + resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 1.0.2 + isobject: 3.0.1 + dev: true + + /defu@6.1.2: + resolution: {integrity: sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ==} + + /del@7.1.0: + resolution: {integrity: sha512-v2KyNk7efxhlyHpjEvfyxaAihKKK0nWCuf6ZtqZcFFpQRG0bJ12Qsr0RpvsICMjAAZ8DOVCxrlqpxISlMHC4Kg==} + engines: {node: '>=14.16'} + dependencies: + globby: 13.2.2 + graceful-fs: 4.2.11 + is-glob: 4.0.3 + is-path-cwd: 3.0.0 + is-path-inside: 4.0.0 + p-map: 5.5.0 + rimraf: 3.0.2 + slash: 4.0.0 + dev: true + + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + dev: false + + /destr@2.0.1: + resolution: {integrity: sha512-M1Ob1zPSIvlARiJUkKqvAZ3VAqQY6Jcuth/pBKQ2b1dX/Qx0OnJ8Vux6J2H5PTMQeRzWrrbTu70VxBfv/OPDJA==} + dev: true + + /detect-file@1.0.0: + resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} + engines: {node: '>=0.10.0'} + dev: true + + /diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /dom-serializer@0.2.2: + resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==} + dependencies: + domelementtype: 2.3.0 + entities: 2.2.0 + dev: true + + /dom-serializer@1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + entities: 2.2.0 + dev: true + + /dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + dev: true + + /domelementtype@1.3.1: + resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==} + dev: true + + /domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + dev: true + + /domhandler@2.4.2: + resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==} + dependencies: + domelementtype: 1.3.1 + dev: true + + /domhandler@4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 + dev: true + + /domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 + dev: true + + /domutils@1.7.0: + resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==} + dependencies: + dom-serializer: 0.2.2 + domelementtype: 1.3.1 + dev: true + + /domutils@2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + dependencies: + dom-serializer: 1.4.1 + domelementtype: 2.3.0 + domhandler: 4.3.1 + dev: true + + /domutils@3.0.1: + resolution: {integrity: sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==} + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + dev: true + + /dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + dev: true + + /eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dev: true + + /ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + dev: true + + /electron-to-chromium@1.4.468: + resolution: {integrity: sha512-6M1qyhaJOt7rQtNti1lBA0GwclPH+oKCmsra/hkcWs5INLxfXXD/dtdnaKUYQu/pjOBP/8Osoe4mAcNvvzoFag==} + dev: true + + /electron-to-chromium@1.4.505: + resolution: {integrity: sha512-0A50eL5BCCKdxig2SsCXhpuztnB9PfUgRMojj5tMvt8O54lbwz3t6wNgnpiTRosw5QjlJB7ixhVyeg8daLQwSQ==} + dev: true + + /electron-to-chromium@1.4.527: + resolution: {integrity: sha512-EafxEiEDzk2aLrdbtVczylHflHdHkNrpGNHIgDyA63sUQLQVS2ayj2hPw3RsVB42qkwURH+T2OxV7kGPUuYszA==} + dev: true + + /electron-to-chromium@1.4.544: + resolution: {integrity: sha512-54z7squS1FyFRSUqq/knOFSptjjogLZXbKcYk3B0qkE1KZzvqASwRZnY2KzZQJqIYLVD38XZeoiMRflYSwyO4w==} + dev: true + + /emoji-regex@10.2.1: + resolution: {integrity: sha512-97g6QgOk8zlDRdgq1WxwgTMgEWGVAQvB5Fdpgc1MkNy56la5SKP9GsMXKDOdqwn90/41a8yPwIGk1Y6WVbeMQA==} + dev: true + + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true + + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: true + + /emojis-list@3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} + dev: true + + /encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + dev: true + + /entities@1.1.2: + resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==} + dev: true + + /entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + dev: true + + /entities@4.4.0: + resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==} + engines: {node: '>=0.12'} + dev: true + + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + dev: true + + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: true + + /eruda@3.0.1: + resolution: {integrity: sha512-6q1Xdwga4JTr1mKSW4mzuWSSbmXgqpm/8Wa1QGFGfCWRjC0bCQjbS4u06M1te1moucIS3hBLlbSTPWYH2W0qbQ==} + dev: false + + /es-abstract@1.21.2: + resolution: {integrity: sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + es-set-tostringtag: 2.0.1 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.5 + get-intrinsic: 1.2.1 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + is-array-buffer: 3.0.2 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.10 + is-weakref: 1.0.2 + object-inspect: 1.12.3 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.0 + safe-regex-test: 1.0.0 + string.prototype.trim: 1.2.7 + string.prototype.trimend: 1.0.6 + string.prototype.trimstart: 1.0.6 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.10 + dev: true + + /es-abstract@1.21.3: + resolution: {integrity: sha512-ZU4miiY1j3sGPFLJ34VJXEqhpmL+HGByCinGHv4HC+Fxl2fI2Z4yR6tl0mORnDr6PA8eihWo4LmSWDbvhALckg==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + es-set-tostringtag: 2.0.1 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.5 + get-intrinsic: 1.2.1 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + is-array-buffer: 3.0.2 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.10 + is-weakref: 1.0.2 + object-inspect: 1.12.3 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.0 + safe-regex-test: 1.0.0 + string.prototype.trim: 1.2.7 + string.prototype.trimend: 1.0.6 + string.prototype.trimstart: 1.0.6 + typed-array-byte-offset: 1.0.0 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.10 + dev: true + + /es-abstract@1.22.2: + resolution: {integrity: sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + arraybuffer.prototype.slice: 1.0.2 + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + es-set-tostringtag: 2.0.1 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.1 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has: 1.0.4 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + is-array-buffer: 3.0.2 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.12 + is-weakref: 1.0.2 + object-inspect: 1.12.3 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.1 + safe-array-concat: 1.0.1 + safe-regex-test: 1.0.0 + string.prototype.trim: 1.2.8 + string.prototype.trimend: 1.0.7 + string.prototype.trimstart: 1.0.7 + typed-array-buffer: 1.0.0 + typed-array-byte-length: 1.0.0 + typed-array-byte-offset: 1.0.0 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.11 + dev: true + + /es-get-iterator@1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + is-arguments: 1.1.1 + is-map: 2.0.2 + is-set: 2.0.2 + is-string: 1.0.7 + isarray: 2.0.5 + stop-iteration-iterator: 1.0.0 + dev: true + + /es-set-tostringtag@2.0.1: + resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + has: 1.0.3 + has-tostringtag: 1.0.0 + dev: true + + /es-shim-unscopables@1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + dependencies: + has: 1.0.4 + dev: true + + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: true + + /esbuild-android-64@0.14.54: + resolution: {integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /esbuild-android-arm64@0.14.54: + resolution: {integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /esbuild-darwin-64@0.14.54: + resolution: {integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /esbuild-darwin-arm64@0.14.54: + resolution: {integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /esbuild-freebsd-64@0.14.54: + resolution: {integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-freebsd-arm64@0.14.54: + resolution: {integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-32@0.14.54: + resolution: {integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-64@0.14.54: + resolution: {integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-arm64@0.14.54: + resolution: {integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-arm@0.14.54: + resolution: {integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-mips64le@0.14.54: + resolution: {integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-ppc64le@0.14.54: + resolution: {integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-riscv64@0.14.54: + resolution: {integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-s390x@0.14.54: + resolution: {integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-netbsd-64@0.14.54: + resolution: {integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-openbsd-64@0.14.54: + resolution: {integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-sunos-64@0.14.54: + resolution: {integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /esbuild-windows-32@0.14.54: + resolution: {integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /esbuild-windows-64@0.14.54: + resolution: {integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /esbuild-windows-arm64@0.14.54: + resolution: {integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /esbuild@0.14.54: + resolution: {integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/linux-loong64': 0.14.54 + esbuild-android-64: 0.14.54 + esbuild-android-arm64: 0.14.54 + esbuild-darwin-64: 0.14.54 + esbuild-darwin-arm64: 0.14.54 + esbuild-freebsd-64: 0.14.54 + esbuild-freebsd-arm64: 0.14.54 + esbuild-linux-32: 0.14.54 + esbuild-linux-64: 0.14.54 + esbuild-linux-arm: 0.14.54 + esbuild-linux-arm64: 0.14.54 + esbuild-linux-mips64le: 0.14.54 + esbuild-linux-ppc64le: 0.14.54 + esbuild-linux-riscv64: 0.14.54 + esbuild-linux-s390x: 0.14.54 + esbuild-netbsd-64: 0.14.54 + esbuild-openbsd-64: 0.14.54 + esbuild-sunos-64: 0.14.54 + esbuild-windows-32: 0.14.54 + esbuild-windows-64: 0.14.54 + esbuild-windows-arm64: 0.14.54 + dev: true + + /esbuild@0.17.19: + resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.17.19 + '@esbuild/android-arm64': 0.17.19 + '@esbuild/android-x64': 0.17.19 + '@esbuild/darwin-arm64': 0.17.19 + '@esbuild/darwin-x64': 0.17.19 + '@esbuild/freebsd-arm64': 0.17.19 + '@esbuild/freebsd-x64': 0.17.19 + '@esbuild/linux-arm': 0.17.19 + '@esbuild/linux-arm64': 0.17.19 + '@esbuild/linux-ia32': 0.17.19 + '@esbuild/linux-loong64': 0.17.19 + '@esbuild/linux-mips64el': 0.17.19 + '@esbuild/linux-ppc64': 0.17.19 + '@esbuild/linux-riscv64': 0.17.19 + '@esbuild/linux-s390x': 0.17.19 + '@esbuild/linux-x64': 0.17.19 + '@esbuild/netbsd-x64': 0.17.19 + '@esbuild/openbsd-x64': 0.17.19 + '@esbuild/sunos-x64': 0.17.19 + '@esbuild/win32-arm64': 0.17.19 + '@esbuild/win32-ia32': 0.17.19 + '@esbuild/win32-x64': 0.17.19 + dev: true + + /esbuild@0.18.20: + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.18.20 + '@esbuild/android-arm64': 0.18.20 + '@esbuild/android-x64': 0.18.20 + '@esbuild/darwin-arm64': 0.18.20 + '@esbuild/darwin-x64': 0.18.20 + '@esbuild/freebsd-arm64': 0.18.20 + '@esbuild/freebsd-x64': 0.18.20 + '@esbuild/linux-arm': 0.18.20 + '@esbuild/linux-arm64': 0.18.20 + '@esbuild/linux-ia32': 0.18.20 + '@esbuild/linux-loong64': 0.18.20 + '@esbuild/linux-mips64el': 0.18.20 + '@esbuild/linux-ppc64': 0.18.20 + '@esbuild/linux-riscv64': 0.18.20 + '@esbuild/linux-s390x': 0.18.20 + '@esbuild/linux-x64': 0.18.20 + '@esbuild/netbsd-x64': 0.18.20 + '@esbuild/openbsd-x64': 0.18.20 + '@esbuild/sunos-x64': 0.18.20 + '@esbuild/win32-arm64': 0.18.20 + '@esbuild/win32-ia32': 0.18.20 + '@esbuild/win32-x64': 0.18.20 + dev: true + + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + dev: true + + /escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + dev: true + + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + dev: true + + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: true + + /escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + dev: true + + /eslint-compat-utils@0.1.2(eslint@8.51.0): + resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + eslint: 8.51.0 + dev: true + + /eslint-config-flat-gitignore@0.1.0: + resolution: {integrity: sha512-5nQMQFRkkhCb+ejFhKSATn/41I7ot9oRcnEDzfqwMlBE9036qM9ioYBDtKLpwmlICXr/J7naMFfb39pa4v4sGA==} + dependencies: + parse-gitignore: 2.0.0 + dev: true + + /eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + dependencies: + debug: 3.2.7 + is-core-module: 2.13.0 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.7.5)(eslint-import-resolver-node@0.3.9)(eslint@8.51.0): + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 6.7.5(eslint@8.51.0)(typescript@5.2.2) + debug: 3.2.7 + eslint: 8.51.0 + eslint-import-resolver-node: 0.3.9 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-antfu@1.0.0-beta.12(eslint@8.51.0)(typescript@5.2.2): + resolution: {integrity: sha512-vPe0vigzDMmStU/hSZLAXfe6vdc26bOaxQt1a92tuOp3jkp0iT3/VXKlkMxsD9XTV/UL8/SNNTprMOUABC1vhQ==} + peerDependencies: + eslint: '*' + dependencies: + '@typescript-eslint/utils': 6.7.5(eslint@8.51.0)(typescript@5.2.2) + eslint: 8.51.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /eslint-plugin-es-x@7.2.0(eslint@8.51.0): + resolution: {integrity: sha512-9dvv5CcvNjSJPqnS5uZkqb3xmbeqRLnvXKK7iI5+oK/yTusyc46zbBZKENGsOfojm/mKfszyZb+wNqNPAPeGXA==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '>=8' + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) + '@eslint-community/regexpp': 4.9.1 + eslint: 8.51.0 + dev: true + + /eslint-plugin-eslint-comments@3.2.0(eslint@8.51.0): + resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} + engines: {node: '>=6.5.0'} + peerDependencies: + eslint: '>=4.19.1' + dependencies: + escape-string-regexp: 1.0.5 + eslint: 8.51.0 + ignore: 5.2.4 + dev: true + + /eslint-plugin-i@2.28.1(@typescript-eslint/parser@6.7.5)(eslint@8.51.0): + resolution: {integrity: sha512-a4oVt0j3ixNhGhvV4XF6NS7OWRFK2rrJ0Q5C4S2dSRb8FxZi31J0uUd5WJLL58wnVJ/OiQ1BxiXnFA4dWQO1Cg==} + engines: {node: '>=12'} + peerDependencies: + eslint: ^7.2.0 || ^8 + dependencies: + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.51.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.7.5)(eslint-import-resolver-node@0.3.9)(eslint@8.51.0) + get-tsconfig: 4.7.2 + is-glob: 4.0.3 + minimatch: 3.1.2 + resolve: 1.22.8 + semver: 7.5.4 + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-plugin-jsdoc@46.8.2(eslint@8.51.0): + resolution: {integrity: sha512-5TSnD018f3tUJNne4s4gDWQflbsgOycIKEUBoCLn6XtBMgNHxQFmV8vVxUtiPxAQq8lrX85OaSG/2gnctxw9uQ==} + engines: {node: '>=16'} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + '@es-joy/jsdoccomment': 0.40.1 + are-docs-informative: 0.0.2 + comment-parser: 1.4.0 + debug: 4.3.4 + escape-string-regexp: 4.0.0 + eslint: 8.51.0 + esquery: 1.5.0 + is-builtin-module: 3.2.1 + semver: 7.5.4 + spdx-expression-parse: 3.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-jsonc@2.10.0(eslint@8.51.0): + resolution: {integrity: sha512-9d//o6Jyh4s1RxC9fNSt1+MMaFN2ruFdXPG9XZcb/mR2KkfjADYiNL/hbU6W0Cyxfg3tS/XSFuhl5LgtMD8hmw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) + eslint: 8.51.0 + eslint-compat-utils: 0.1.2(eslint@8.51.0) + jsonc-eslint-parser: 2.3.0 + natural-compare: 1.4.0 + dev: true + + /eslint-plugin-markdown@3.0.1(eslint@8.51.0): + resolution: {integrity: sha512-8rqoc148DWdGdmYF6WSQFT3uQ6PO7zXYgeBpHAOAakX/zpq+NvFYbDA/H7PYzHajwtmaOzAwfxyl++x0g1/N9A==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + eslint: 8.51.0 + mdast-util-from-markdown: 0.8.5 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-n@16.2.0(eslint@8.51.0): + resolution: {integrity: sha512-AQER2jEyQOt1LG6JkGJCCIFotzmlcCZFur2wdKrp1JX2cNotC7Ae0BcD/4lLv3lUAArM9uNS8z/fsvXTd0L71g==} + engines: {node: '>=16.0.0'} + peerDependencies: + eslint: '>=7.0.0' + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) + builtins: 5.0.1 + eslint: 8.51.0 + eslint-plugin-es-x: 7.2.0(eslint@8.51.0) + get-tsconfig: 4.7.2 + ignore: 5.2.4 + is-core-module: 2.13.0 + minimatch: 3.1.2 + resolve: 1.22.8 + semver: 7.5.4 + dev: true + + /eslint-plugin-no-only-tests@3.1.0: + resolution: {integrity: sha512-Lf4YW/bL6Un1R6A76pRZyE1dl1vr31G/ev8UzIc/geCgFWyrKil8hVjYqWVKGB/UIGmb6Slzs9T0wNezdSVegw==} + engines: {node: '>=5.0.0'} + dev: true + + /eslint-plugin-unicorn@48.0.1(eslint@8.51.0): + resolution: {integrity: sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw==} + engines: {node: '>=16'} + peerDependencies: + eslint: '>=8.44.0' + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) + ci-info: 3.9.0 + clean-regexp: 1.0.0 + eslint: 8.51.0 + esquery: 1.5.0 + indent-string: 4.0.0 + is-builtin-module: 3.2.1 + jsesc: 3.0.2 + lodash: 4.17.21 + pluralize: 8.0.0 + read-pkg-up: 7.0.1 + regexp-tree: 0.1.27 + regjsparser: 0.10.0 + semver: 7.5.4 + strip-indent: 3.0.0 + dev: true + + /eslint-plugin-unused-imports@3.0.0(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.51.0): + resolution: {integrity: sha512-sduiswLJfZHeeBJ+MQaG+xYzSWdRXoSw61DpU13mzWumCkR0ufD0HmO4kdNokjrkluMHpj/7PJeN35pgbhW3kw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^6.0.0 + eslint: ^8.0.0 + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.7.5)(eslint@8.51.0)(typescript@5.2.2) + eslint: 8.51.0 + eslint-rule-composer: 0.3.0 + dev: true + + /eslint-plugin-vitest@0.3.2(@typescript-eslint/eslint-plugin@6.7.5)(eslint@8.51.0)(typescript@5.2.2)(vitest@0.34.6): + resolution: {integrity: sha512-A1P0qJVkqHyfDolwm09h8/gu7SbGFOKbacJSeyZ9IRb8uyddgqLcqv4VrqgQfLA7QmGI9lwj1iV90NyZ1cHp8Q==} + engines: {node: 14.x || >= 16} + peerDependencies: + '@typescript-eslint/eslint-plugin': '*' + eslint: '>=8.0.0' + vitest: '*' + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.7.5)(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.7.5(eslint@8.51.0)(typescript@5.2.2) + eslint: 8.51.0 + vitest: 0.34.6(sass@1.69.2)(terser@5.21.0) + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /eslint-plugin-vue@9.17.0(eslint@8.51.0): + resolution: {integrity: sha512-r7Bp79pxQk9I5XDP0k2dpUC7Ots3OSWgvGZNu3BxmKK6Zg7NgVtcOB6OCna5Kb9oQwJPl5hq183WD0SY5tZtIQ==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) + eslint: 8.51.0 + natural-compare: 1.4.0 + nth-check: 2.1.1 + postcss-selector-parser: 6.0.13 + semver: 7.5.4 + vue-eslint-parser: 9.3.2(eslint@8.51.0) + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-yml@1.10.0(eslint@8.51.0): + resolution: {integrity: sha512-53SUwuNDna97lVk38hL/5++WXDuugPM9SUQ1T645R0EHMRCdBIIxGye/oOX2qO3FQ7aImxaUZJU/ju+NMUBrLQ==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + debug: 4.3.4 + eslint: 8.51.0 + eslint-compat-utils: 0.1.2(eslint@8.51.0) + lodash: 4.17.21 + natural-compare: 1.4.0 + yaml-eslint-parser: 1.2.2 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-rule-composer@0.3.0: + resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} + engines: {node: '>=4.0.0'} + dev: true + + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /eslint@8.51.0: + resolution: {integrity: sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) + '@eslint-community/regexpp': 4.9.1 + '@eslint/eslintrc': 2.1.2 + '@eslint/js': 8.51.0 + '@humanwhocodes/config-array': 0.11.11 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.23.0 + graphemer: 1.4.0 + ignore: 5.2.4 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.3 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /esno@0.17.0: + resolution: {integrity: sha512-w78cQGlptQfsBYfootUCitsKS+MD74uR5L6kNsvwVkJsfzEepIafbvWsx2xK4rcFP4IUftt4F6J8EhagUxX+Bg==} + hasBin: true + dependencies: + tsx: 3.12.7 + dev: true + + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.10.0 + acorn-jsx: 5.3.2(acorn@8.10.0) + eslint-visitor-keys: 3.4.3 + dev: true + + /esprima-extract-comments@1.1.0: + resolution: {integrity: sha512-sBQUnvJwpeE9QnPrxh7dpI/dp67erYG4WXEAreAMoelPRpMR7NWb4YtwRPn9b+H1uLQKl/qS8WYmyaljTpjIsw==} + engines: {node: '>=4'} + dependencies: + esprima: 4.0.1 + dev: true + + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + dev: true + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: true + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: true + + /estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true + + /etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + dev: true + + /eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + dev: true + + /eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + dev: true + + /execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + + /execa@7.2.0: + resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 4.3.1 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 3.0.7 + strip-final-newline: 3.0.0 + dev: true + + /expand-brackets@2.1.4: + resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} + engines: {node: '>=0.10.0'} + dependencies: + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + posix-character-classes: 0.1.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /expand-tilde@2.0.2: + resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} + engines: {node: '>=0.10.0'} + dependencies: + homedir-polyfill: 1.0.3 + dev: true + + /extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + dependencies: + is-extendable: 0.1.1 + dev: true + + /extend-shallow@3.0.2: + resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} + engines: {node: '>=0.10.0'} + dependencies: + assign-symbols: 1.0.0 + is-extendable: 1.0.1 + dev: true + + /extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + dev: true + + /external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + dev: true + + /extglob@2.0.4: + resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} + engines: {node: '>=0.10.0'} + dependencies: + array-unique: 0.3.2 + define-property: 1.0.0 + expand-brackets: 2.1.4 + extend-shallow: 2.0.1 + fragment-cache: 0.2.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /extract-comments@1.1.0: + resolution: {integrity: sha512-dzbZV2AdSSVW/4E7Ti5hZdHWbA+Z80RJsJhr5uiL10oyjl/gy7/o+HI1HwK4/WSZhlq4SNKU3oUzXlM13Qx02Q==} + engines: {node: '>=6'} + dependencies: + esprima-extract-comments: 1.1.0 + parse-code-context: 1.0.0 + dev: true + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: true + + /fast-glob@3.2.12: + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fast-glob@3.3.0: + resolution: {integrity: sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fast-glob@3.3.1: + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true + + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: true + + /fastest-levenshtein@1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} + dev: true + + /fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + dependencies: + reusify: 1.0.4 + dev: true + + /figures@5.0.0: + resolution: {integrity: sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==} + engines: {node: '>=14'} + dependencies: + escape-string-regexp: 5.0.0 + is-unicode-supported: 1.3.0 + dev: true + + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.1.0 + dev: true + + /fill-range@4.0.0: + resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 2.0.1 + is-number: 3.0.0 + repeat-string: 1.6.1 + to-regex-range: 2.1.1 + dev: true + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /finalhandler@1.1.2: + resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} + engines: {node: '>= 0.8'} + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.3.0 + parseurl: 1.3.3 + statuses: 1.5.0 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: true + + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true + + /findup-sync@5.0.0: + resolution: {integrity: sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==} + engines: {node: '>= 10.13.0'} + dependencies: + detect-file: 1.0.0 + is-glob: 4.0.3 + micromatch: 4.0.5 + resolve-dir: 1.0.1 + dev: true + + /fined@2.0.0: + resolution: {integrity: sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==} + engines: {node: '>= 10.13.0'} + dependencies: + expand-tilde: 2.0.2 + is-plain-object: 5.0.0 + object.defaults: 1.1.0 + object.pick: 1.3.0 + parse-filepath: 1.0.2 + dev: true + + /flagged-respawn@2.0.0: + resolution: {integrity: sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==} + engines: {node: '>= 10.13.0'} + dev: true + + /flat-cache@3.1.0: + resolution: {integrity: sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==} + engines: {node: '>=12.0.0'} + dependencies: + flatted: 3.2.7 + keyv: 4.5.3 + rimraf: 3.0.2 + dev: true + + /flatted@3.2.7: + resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + dev: true + + /floating-vue@2.0.0-beta.24(vue@3.3.4): + resolution: {integrity: sha512-URSzP6YXaF4u1oZ9XGL8Sn8puuM7ivp5jkOUrpy5Q1mfo9BfGppJOn+ierTmsSUfJEeHBae8KT7r5DeI3vQIEw==} + peerDependencies: + '@nuxt/kit': ^3.2.0 + vue: ^3.2.0 + peerDependenciesMeta: + '@nuxt/kit': + optional: true + dependencies: + '@floating-ui/dom': 1.1.1 + vue: 3.3.4 + vue-resize: 2.0.0-alpha.1(vue@3.3.4) + dev: false + + /follow-redirects@1.15.2: + resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: true + + /follow-redirects@1.15.3: + resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: false + + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + dev: true + + /for-in@1.0.2: + resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} + engines: {node: '>=0.10.0'} + dev: true + + /for-own@1.0.0: + resolution: {integrity: sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==} + engines: {node: '>=0.10.0'} + dependencies: + for-in: 1.0.2 + dev: true + + /form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: false + + /fraction.js@4.3.6: + resolution: {integrity: sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg==} + dev: true + + /fragment-cache@0.2.1: + resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} + engines: {node: '>=0.10.0'} + dependencies: + map-cache: 0.2.2 + dev: true + + /fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fs-extra@11.1.1: + resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} + engines: {node: '>=14.14'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true + + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /function-bind@1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + + /function.prototype.name@1.1.5: + resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.3 + functions-have-names: 1.2.3 + dev: true + + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + functions-have-names: 1.2.3 + dev: true + + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true + + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + dev: true + + /get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + dev: true + + /get-intrinsic@1.2.1: + resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-proto: 1.0.1 + has-symbols: 1.0.3 + + /get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + dev: true + + /get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + dev: true + + /get-tsconfig@4.7.0: + resolution: {integrity: sha512-pmjiZ7xtB8URYm74PlGJozDNyhvsVLUcpBa8DZBG3bWHwaHa9bPiRpiSfovw+fjhwONSCWKRyk+JQHEGZmMrzw==} + dependencies: + resolve-pkg-maps: 1.0.0 + dev: true + + /get-tsconfig@4.7.2: + resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} + dependencies: + resolve-pkg-maps: 1.0.0 + dev: true + + /get-value@2.0.6: + resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} + engines: {node: '>=0.10.0'} + dev: true + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /global-modules@1.0.0: + resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} + engines: {node: '>=0.10.0'} + dependencies: + global-prefix: 1.0.2 + is-windows: 1.0.2 + resolve-dir: 1.0.1 + dev: true + + /global-modules@2.0.0: + resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} + engines: {node: '>=6'} + dependencies: + global-prefix: 3.0.0 + dev: true + + /global-prefix@1.0.2: + resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} + engines: {node: '>=0.10.0'} + dependencies: + expand-tilde: 2.0.2 + homedir-polyfill: 1.0.3 + ini: 1.3.8 + is-windows: 1.0.2 + which: 1.3.1 + dev: true + + /global-prefix@3.0.0: + resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} + engines: {node: '>=6'} + dependencies: + ini: 1.3.8 + kind-of: 6.0.3 + which: 1.3.1 + dev: true + + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + dev: true + + /globals@13.23.0: + resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + + /globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.0 + dev: true + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.1 + ignore: 5.2.4 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /globby@13.2.2: + resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + dir-glob: 3.0.1 + fast-glob: 3.3.1 + ignore: 5.2.4 + merge2: 1.4.1 + slash: 4.0.0 + dev: true + + /globjoin@0.1.4: + resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==} + dev: true + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.1 + dev: true + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: true + + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + dev: true + + /gzip-size@6.0.0: + resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} + engines: {node: '>=10'} + dependencies: + duplexer: 0.1.2 + dev: true + + /handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + engines: {node: '>=0.4.7'} + hasBin: true + dependencies: + minimist: 1.2.8 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: 3.17.4 + dev: true + + /hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + dev: true + + /has-ansi@2.0.0: + resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: 2.1.1 + dev: true + + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true + + /has-flag@1.0.0: + resolution: {integrity: sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==} + engines: {node: '>=0.10.0'} + dev: true + + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + dev: true + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true + + /has-property-descriptors@1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + dependencies: + get-intrinsic: 1.2.1 + dev: true + + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + /has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /has-value@0.3.1: + resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} + engines: {node: '>=0.10.0'} + dependencies: + get-value: 2.0.6 + has-values: 0.1.4 + isobject: 2.1.0 + dev: true + + /has-value@1.0.0: + resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} + engines: {node: '>=0.10.0'} + dependencies: + get-value: 2.0.6 + has-values: 1.0.0 + isobject: 3.0.1 + dev: true + + /has-values@0.1.4: + resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} + engines: {node: '>=0.10.0'} + dev: true + + /has-values@1.0.0: + resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-number: 3.0.0 + kind-of: 4.0.0 + dev: true + + /has@1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.1 + + /has@1.0.4: + resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==} + engines: {node: '>= 0.4.0'} + dev: true + + /he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + dev: true + + /header-case@2.0.4: + resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} + dependencies: + capital-case: 1.0.4 + tslib: 2.6.2 + dev: true + + /homedir-polyfill@1.0.3: + resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} + engines: {node: '>=0.10.0'} + dependencies: + parse-passwd: 1.0.0 + dev: true + + /hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + dev: true + + /hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + dependencies: + lru-cache: 6.0.0 + dev: true + + /hotkeys-js@3.12.0: + resolution: {integrity: sha512-Z+N573ycUKIGwFYS3ID1RzMJiGmtWMGKMiaNLyJS8B1ei+MllF4ZYmKS2T0kMWBktOz+WZLVNikftEgnukOrXg==} + dev: false + + /html-encoding-sniffer@3.0.0: + resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} + engines: {node: '>=12'} + dependencies: + whatwg-encoding: 2.0.0 + dev: true + + /html-tags@3.3.1: + resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} + engines: {node: '>=8'} + dev: true + + /htmlparser2@3.10.1: + resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==} + dependencies: + domelementtype: 1.3.1 + domhandler: 2.4.2 + domutils: 1.7.0 + entities: 1.1.2 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: true + + /htmlparser2@8.0.1: + resolution: {integrity: sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.0.1 + entities: 4.4.0 + dev: true + + /http-proxy@1.18.1: + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + engines: {node: '>=8.0.0'} + dependencies: + eventemitter3: 4.0.7 + follow-redirects: 1.15.2 + requires-port: 1.0.0 + transitivePeerDependencies: + - debug + dev: true + + /http-server@14.1.1: + resolution: {integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==} + engines: {node: '>=12'} + hasBin: true + dependencies: + basic-auth: 2.0.1 + chalk: 4.1.2 + corser: 2.0.1 + he: 1.2.0 + html-encoding-sniffer: 3.0.0 + http-proxy: 1.18.1 + mime: 1.6.0 + minimist: 1.2.7 + opener: 1.5.2 + portfinder: 1.0.32 + secure-compare: 3.0.1 + union: 0.5.0 + url-join: 4.0.1 + transitivePeerDependencies: + - debug + - supports-color + dev: true + + /human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + dev: true + + /human-signals@4.3.1: + resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} + engines: {node: '>=14.18.0'} + dev: true + + /iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + dev: true + + /ignore@5.2.4: + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + engines: {node: '>= 4'} + dev: true + + /image-size@0.5.5: + resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} + engines: {node: '>=0.10.0'} + hasBin: true + dev: true + + /immutable@4.3.4: + resolution: {integrity: sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==} + dev: true + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /import-lazy@4.0.0: + resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} + engines: {node: '>=8'} + dev: true + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: true + + /indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + dev: true + + /indent-string@5.0.0: + resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} + engines: {node: '>=12'} + dev: true + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true + + /ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + dev: true + + /inquirer@9.2.11: + resolution: {integrity: sha512-B2LafrnnhbRzCWfAdOXisUzL89Kg8cVJlYmhqoi3flSiV/TveO+nsXwgKr9h9PIo+J1hz7nBSk6gegRIMBBf7g==} + engines: {node: '>=14.18.0'} + dependencies: + '@ljharb/through': 2.3.9 + ansi-escapes: 4.3.2 + chalk: 5.3.0 + cli-cursor: 3.1.0 + cli-width: 4.1.0 + external-editor: 3.1.0 + figures: 5.0.0 + lodash: 4.17.21 + mute-stream: 1.0.0 + ora: 5.4.1 + run-async: 3.0.0 + rxjs: 7.8.1 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + dev: true + + /internal-slot@1.0.5: + resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + has: 1.0.3 + side-channel: 1.0.4 + dev: true + + /interpret@3.1.1: + resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} + engines: {node: '>=10.13.0'} + dev: true + + /is-absolute@1.0.0: + resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} + engines: {node: '>=0.10.0'} + dependencies: + is-relative: 1.0.0 + is-windows: 1.0.2 + dev: true + + /is-accessor-descriptor@0.1.6: + resolution: {integrity: sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /is-accessor-descriptor@1.0.0: + resolution: {integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 6.0.3 + dev: true + + /is-alphabetical@1.0.4: + resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} + dev: true + + /is-alphanumerical@1.0.4: + resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} + dependencies: + is-alphabetical: 1.0.4 + is-decimal: 1.0.4 + dev: true + + /is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.10 + dev: true + + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: true + + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + dev: true + + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: true + + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + dev: true + + /is-builtin-module@3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} + engines: {node: '>=6'} + dependencies: + builtin-modules: 3.3.0 + dev: true + + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: true + + /is-core-module@2.13.0: + resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} + dependencies: + has: 1.0.3 + dev: true + + /is-data-descriptor@0.1.4: + resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /is-data-descriptor@1.0.0: + resolution: {integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 6.0.3 + dev: true + + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-decimal@1.0.4: + resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} + dev: true + + /is-descriptor@0.1.6: + resolution: {integrity: sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==} + engines: {node: '>=0.10.0'} + dependencies: + is-accessor-descriptor: 0.1.6 + is-data-descriptor: 0.1.4 + kind-of: 5.1.0 + dev: true + + /is-descriptor@1.0.2: + resolution: {integrity: sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==} + engines: {node: '>=0.10.0'} + dependencies: + is-accessor-descriptor: 1.0.0 + is-data-descriptor: 1.0.0 + kind-of: 6.0.3 + dev: true + + /is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + dev: true + + /is-extendable@1.0.1: + resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} + engines: {node: '>=0.10.0'} + dependencies: + is-plain-object: 2.0.4 + dev: true + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: true + + /is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + dev: true + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-hexadecimal@1.0.4: + resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} + dev: true + + /is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} + dev: true + + /is-interactive@2.0.0: + resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} + engines: {node: '>=12'} + dev: true + + /is-map@2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + dev: true + + /is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + dev: true + + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-number@3.0.0: + resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /is-path-cwd@3.0.0: + resolution: {integrity: sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + + /is-path-inside@4.0.0: + resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==} + engines: {node: '>=12'} + dev: true + + /is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + dev: true + + /is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: true + + /is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + dev: true + + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-relative@1.0.0: + resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==} + engines: {node: '>=0.10.0'} + dependencies: + is-unc-path: 1.0.0 + dev: true + + /is-set@2.0.2: + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + dev: true + + /is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.2 + dev: true + + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: true + + /is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /is-typed-array@1.1.10: + resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + dev: true + + /is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} + engines: {node: '>= 0.4'} + dependencies: + which-typed-array: 1.1.11 + dev: true + + /is-unc-path@1.0.0: + resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==} + engines: {node: '>=0.10.0'} + dependencies: + unc-path-regex: 0.1.2 + dev: true + + /is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + dev: true + + /is-unicode-supported@1.3.0: + resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} + engines: {node: '>=12'} + dev: true + + /is-weakmap@2.0.1: + resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + dev: true + + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.2 + dev: true + + /is-weakset@2.0.2: + resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + dev: true + + /is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + dev: true + + /isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + dev: true + + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true + + /isbinaryfile@5.0.0: + resolution: {integrity: sha512-UDdnyGvMajJUWCkib7Cei/dvyJrrvo4FIrsvSFWdPpXSUorzXrDJ0S+X5Q4ZlasfPjca4yqCNNsjbCeiy8FFeg==} + engines: {node: '>= 14.0.0'} + dev: true + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true + + /isobject@2.1.0: + resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} + engines: {node: '>=0.10.0'} + dependencies: + isarray: 1.0.0 + dev: true + + /isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + dev: true + + /jiti@1.20.0: + resolution: {integrity: sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==} + hasBin: true + dev: true + + /js-base64@2.6.4: + resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==} + dev: true + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: true + + /js-tokens@8.0.0: + resolution: {integrity: sha512-PC7MzqInq9OqKyTXfIvQNcjMkODJYC8A17kAaQgeW79yfhqTWSOfjHYQ2mDDcwJ96Iibtwkfh0C7R/OvqPlgVA==} + dev: true + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /jsdoc-type-pratt-parser@4.0.0: + resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==} + engines: {node: '>=12.0.0'} + dev: true + + /jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + dev: true + + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} + hasBin: true + dev: true + + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: true + + /json-parse-better-errors@1.0.2: + resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} + dev: true + + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: true + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true + + /json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + dev: true + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true + + /json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: true + + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + dev: true + + /jsonc-eslint-parser@2.3.0: + resolution: {integrity: sha512-9xZPKVYp9DxnM3sd1yAsh/d59iIaswDkai8oTxbursfKYbg/ibjX0IzFt35+VZ8iEW453TVTXztnRvYUQlAfUQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.10.0 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + semver: 7.5.4 + dev: true + + /jsonc-parser@3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + dev: true + + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.0 + optionalDependencies: + graceful-fs: 4.2.11 + dev: true + + /jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + dependencies: + array-includes: 3.1.7 + array.prototype.flat: 1.3.2 + object.assign: 4.1.4 + object.values: 1.1.7 + dev: true + + /keyv@4.5.3: + resolution: {integrity: sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==} + dependencies: + json-buffer: 3.0.1 + dev: true + + /kind-of@3.2.2: + resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-buffer: 1.1.6 + dev: true + + /kind-of@4.0.0: + resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} + engines: {node: '>=0.10.0'} + dependencies: + is-buffer: 1.1.6 + dev: true + + /kind-of@5.1.0: + resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==} + engines: {node: '>=0.10.0'} + dev: true + + /kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + dev: true + + /known-css-properties@0.28.0: + resolution: {integrity: sha512-9pSL5XB4J+ifHP0e0jmmC98OGC1nL8/JjS+fi6mnTlIf//yt/MfVLtKg7S6nCtj/8KTcWX7nRlY0XywoYY1ISQ==} + dev: true + + /kolorist@1.8.0: + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + dev: true + + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /liftoff@4.0.0: + resolution: {integrity: sha512-rMGwYF8q7g2XhG2ulBmmJgWv25qBsqRbDn5gH0+wnuyeFt7QBJlHJmtg5qEdn4pN6WVAUMgXnIxytMFRX9c1aA==} + engines: {node: '>=10.13.0'} + dependencies: + extend: 3.0.2 + findup-sync: 5.0.0 + fined: 2.0.0 + flagged-respawn: 2.0.0 + is-plain-object: 5.0.0 + object.map: 1.0.1 + rechoir: 0.8.0 + resolve: 1.22.4 + dev: true + + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + dev: true + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true + + /lint-staged@14.0.1: + resolution: {integrity: sha512-Mw0cL6HXnHN1ag0mN/Dg4g6sr8uf8sn98w2Oc1ECtFto9tvRF7nkXGJRbx8gPlHyoR0pLyBr2lQHbWwmUHe1Sw==} + engines: {node: ^16.14.0 || >=18.0.0} + hasBin: true + dependencies: + chalk: 5.3.0 + commander: 11.0.0 + debug: 4.3.4 + execa: 7.2.0 + lilconfig: 2.1.0 + listr2: 6.6.1 + micromatch: 4.0.5 + pidtree: 0.6.0 + string-argv: 0.3.2 + yaml: 2.3.1 + transitivePeerDependencies: + - enquirer + - supports-color + dev: true + + /listr2@6.6.1: + resolution: {integrity: sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==} + engines: {node: '>=16.0.0'} + peerDependencies: + enquirer: '>= 2.3.0 < 3' + peerDependenciesMeta: + enquirer: + optional: true + dependencies: + cli-truncate: 3.1.0 + colorette: 2.0.20 + eventemitter3: 5.0.1 + log-update: 5.0.1 + rfdc: 1.3.0 + wrap-ansi: 8.1.0 + dev: true + + /load-json-file@4.0.0: + resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} + engines: {node: '>=4'} + dependencies: + graceful-fs: 4.2.11 + parse-json: 4.0.0 + pify: 3.0.0 + strip-bom: 3.0.0 + dev: true + + /loader-utils@1.4.0: + resolution: {integrity: sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==} + engines: {node: '>=4.0.0'} + dependencies: + big.js: 5.2.2 + emojis-list: 3.0.0 + json5: 1.0.2 + dev: true + + /local-pkg@0.4.3: + resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} + engines: {node: '>=14'} + dev: true + + /local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} + dependencies: + mlly: 1.4.2 + pkg-types: 1.0.3 + dev: true + + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + dev: true + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true + + /lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + dev: false + + /lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + dev: true + + /lodash.get@4.4.2: + resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} + dev: true + + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true + + /lodash.truncate@4.4.2: + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + dev: true + + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + /log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + dev: true + + /log-symbols@5.1.0: + resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==} + engines: {node: '>=12'} + dependencies: + chalk: 5.3.0 + is-unicode-supported: 1.3.0 + dev: true + + /log-update@5.0.1: + resolution: {integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + ansi-escapes: 5.0.0 + cli-cursor: 4.0.0 + slice-ansi: 5.0.0 + strip-ansi: 7.1.0 + wrap-ansi: 8.1.0 + dev: true + + /loupe@2.3.6: + resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} + dependencies: + get-func-name: 2.0.2 + dev: true + + /lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + dependencies: + tslib: 2.6.2 + dev: true + + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 + dev: true + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: true + + /magic-string@0.30.1: + resolution: {integrity: sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /magic-string@0.30.3: + resolution: {integrity: sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + + /magic-string@0.30.4: + resolution: {integrity: sha512-Q/TKtsC5BPm0kGqgBIF9oXAs/xEf2vRKiIB4wCRQTJOQIByZ1d+NnUOotvJOvNpi5RNIgVOMC3pOuaP1ZTDlVg==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /make-iterator@1.0.1: + resolution: {integrity: sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 6.0.3 + dev: true + + /map-cache@0.2.2: + resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} + engines: {node: '>=0.10.0'} + dev: true + + /map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + dev: true + + /map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + dev: true + + /map-visit@1.0.0: + resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} + engines: {node: '>=0.10.0'} + dependencies: + object-visit: 1.0.1 + dev: true + + /mathml-tag-names@2.1.3: + resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==} + dev: true + + /mdast-util-from-markdown@0.8.5: + resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==} + dependencies: + '@types/mdast': 3.0.13 + mdast-util-to-string: 2.0.0 + micromark: 2.11.4 + parse-entities: 2.0.0 + unist-util-stringify-position: 2.0.3 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-to-string@2.0.0: + resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==} + dev: true + + /mdn-data@2.0.14: + resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} + dev: true + + /mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + dev: true + + /mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + dev: true + + /memorystream@0.3.1: + resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} + engines: {node: '>= 0.10.0'} + dev: true + + /meow@10.1.5: + resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + '@types/minimist': 1.2.2 + camelcase-keys: 7.0.2 + decamelize: 5.0.1 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 3.0.3 + read-pkg-up: 8.0.0 + redent: 4.0.0 + trim-newlines: 4.1.1 + type-fest: 1.4.0 + yargs-parser: 20.2.9 + dev: true + + /merge-options@1.0.1: + resolution: {integrity: sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg==} + engines: {node: '>=4'} + dependencies: + is-plain-obj: 1.1.0 + dev: true + + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /micromark@2.11.4: + resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==} + dependencies: + debug: 4.3.4 + parse-entities: 2.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /micromatch@3.1.0: + resolution: {integrity: sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g==} + engines: {node: '>=0.10.0'} + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + braces: 2.3.2 + define-property: 1.0.0 + extend-shallow: 2.0.1 + extglob: 2.0.4 + fragment-cache: 0.2.1 + kind-of: 5.1.0 + nanomatch: 1.2.13 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + dev: false + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: false + + /mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true + + /mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + dev: true + + /min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + dev: true + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + kind-of: 6.0.3 + dev: true + + /minimist@1.2.7: + resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} + dev: true + + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: true + + /mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + dev: false + + /mixin-deep@1.3.2: + resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} + engines: {node: '>=0.10.0'} + dependencies: + for-in: 1.0.2 + is-extendable: 1.0.1 + dev: true + + /mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + dependencies: + minimist: 1.2.7 + dev: true + + /mkdirp@3.0.1: + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} + engines: {node: '>=10'} + hasBin: true + dev: true + + /mlly@1.4.0: + resolution: {integrity: sha512-ua8PAThnTwpprIaU47EPeZ/bPUVp2QYBbWMphUQpVdBI3Lgqzm5KZQ45Agm3YJedHXaIHl6pBGabaLSUPPSptg==} + dependencies: + acorn: 8.10.0 + pathe: 1.1.1 + pkg-types: 1.0.3 + ufo: 1.1.2 + dev: true + + /mlly@1.4.2: + resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} + dependencies: + acorn: 8.10.0 + pathe: 1.1.1 + pkg-types: 1.0.3 + ufo: 1.3.1 + dev: true + + /mockjs@1.1.0: + resolution: {integrity: sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==} + hasBin: true + dependencies: + commander: 9.4.1 + + /mrmime@1.0.1: + resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} + engines: {node: '>=10'} + dev: true + + /ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + dev: true + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: true + + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + dev: true + + /muggle-string@0.3.1: + resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} + dev: true + + /mutation-observer@1.0.3: + resolution: {integrity: sha512-M/O/4rF2h776hV7qGMZUH3utZLO/jK7p8rnNgGkjKUw8zCGjRQPxB8z6+5l8+VjRUQ3dNYu4vjqXYLr+U8ZVNA==} + dev: false + + /mute-stream@1.0.0: + resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dev: true + + /nanoid@3.3.4: + resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + + /nanoid@3.3.6: + resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + /nanomatch@1.2.13: + resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} + engines: {node: '>=0.10.0'} + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + define-property: 2.0.2 + extend-shallow: 3.0.2 + fragment-cache: 0.2.1 + is-windows: 1.0.2 + kind-of: 6.0.3 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true + + /neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + dev: true + + /nice-try@1.0.5: + resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} + dev: true + + /no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + dependencies: + lower-case: 2.0.2 + tslib: 2.6.2 + dev: true + + /node-fetch-native@1.4.0: + resolution: {integrity: sha512-F5kfEj95kX8tkDhUCYdV8dg3/8Olx/94zB8+ZNthFs6Bz31UpUi8Xh40TN3thLwXgrwXry1pEg9lJ++tLWTcqA==} + dev: true + + /node-plop@0.32.0: + resolution: {integrity: sha512-lKFSRSRuDHhwDKMUobdsvaWCbbDRbV3jMUSMiajQSQux1aNUevAZVxUHc2JERI//W8ABPRbi3ebYuSuIzkNIpQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + '@types/inquirer': 9.0.3 + change-case: 4.1.2 + del: 7.1.0 + globby: 13.2.2 + handlebars: 4.7.8 + inquirer: 9.2.11 + isbinaryfile: 5.0.0 + lodash.get: 4.4.2 + lower-case: 2.0.2 + mkdirp: 3.0.1 + resolve: 1.22.4 + title-case: 3.0.3 + upper-case: 2.0.2 + dev: true + + /node-releases@2.0.13: + resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} + dev: true + + /normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.6 + semver: 5.7.2 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-package-data@3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} + engines: {node: '>=10'} + dependencies: + hosted-git-info: 4.1.0 + is-core-module: 2.13.0 + semver: 7.5.4 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + + /normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + dev: true + + /npm-run-all@4.1.5: + resolution: {integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==} + engines: {node: '>= 4'} + hasBin: true + dependencies: + ansi-styles: 3.2.1 + chalk: 2.4.2 + cross-spawn: 6.0.5 + memorystream: 0.3.1 + minimatch: 3.1.2 + pidtree: 0.3.1 + read-pkg: 3.0.0 + shell-quote: 1.7.4 + string.prototype.padend: 3.1.3 + dev: true + + /npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + dev: true + + /npm-run-path@5.1.0: + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: 4.0.0 + dev: true + + /nprogress@0.2.0: + resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} + dev: false + + /nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + dependencies: + boolbase: 1.0.0 + dev: true + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: true + + /object-copy@0.1.0: + resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} + engines: {node: '>=0.10.0'} + dependencies: + copy-descriptor: 0.1.1 + define-property: 0.2.5 + kind-of: 3.2.2 + dev: true + + /object-inspect@1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + + /object-is@1.1.5: + resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + dev: true + + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: true + + /object-visit@1.0.1: + resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: true + + /object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + + /object.defaults@1.1.0: + resolution: {integrity: sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==} + engines: {node: '>=0.10.0'} + dependencies: + array-each: 1.0.1 + array-slice: 1.1.0 + for-own: 1.0.0 + isobject: 3.0.1 + dev: true + + /object.map@1.0.1: + resolution: {integrity: sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==} + engines: {node: '>=0.10.0'} + dependencies: + for-own: 1.0.0 + make-iterator: 1.0.1 + dev: true + + /object.pick@1.3.0: + resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: true + + /object.values@1.1.7: + resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: true + + /ofetch@1.3.3: + resolution: {integrity: sha512-s1ZCMmQWXy4b5K/TW9i/DtiN8Ku+xCiHcjQ6/J/nDdssirrQNOoB165Zu8EqLMA2lln1JUth9a0aW9Ap2ctrUg==} + dependencies: + destr: 2.0.1 + node-fetch-native: 1.4.0 + ufo: 1.3.1 + dev: true + + /on-finished@2.3.0: + resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} + engines: {node: '>= 0.8'} + dependencies: + ee-first: 1.1.1 + dev: true + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + dev: true + + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: true + + /onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + dependencies: + mimic-fn: 4.0.0 + dev: true + + /opener@1.5.2: + resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} + hasBin: true + dev: true + + /optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + engines: {node: '>= 0.8.0'} + dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /ora@5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} + dependencies: + bl: 4.1.0 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.9.0 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + dev: true + + /ora@7.0.1: + resolution: {integrity: sha512-0TUxTiFJWv+JnjWm4o9yvuskpEJLXTcng8MJuKd+SzAzp2o+OP3HWqNhB4OdJRt1Vsd9/mR0oyaEYlOnL7XIRw==} + engines: {node: '>=16'} + dependencies: + chalk: 5.3.0 + cli-cursor: 4.0.0 + cli-spinners: 2.9.0 + is-interactive: 2.0.0 + is-unicode-supported: 1.3.0 + log-symbols: 5.1.0 + stdin-discarder: 0.1.0 + string-width: 6.1.0 + strip-ansi: 7.1.0 + dev: true + + /os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + dev: true + + /overlayscrollbars-vue@0.5.5(overlayscrollbars@2.3.2)(vue@3.3.4): + resolution: {integrity: sha512-WiB0SgWjhT+WYo0ldgZ9g1Sh703KUKpKCcCfYFvqlB0X9TjgRJbQRrgFEmyNnD9XO+ZWc1zJ6s4+ukyoIQN2VQ==} + peerDependencies: + overlayscrollbars: ^2.0.0 + vue: ^3.2.25 + dependencies: + overlayscrollbars: 2.3.2 + vue: 3.3.4 + dev: false + + /overlayscrollbars@2.3.2: + resolution: {integrity: sha512-K3Sau7NpFruKfXBauvchAQshAW+un1qD8EYNcozrPAB2kbif8C2rqa+1EWvMMWPKl88wgf2rX2QDMLgAfR0hHA==} + dev: false + + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + dev: true + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true + + /p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + yocto-queue: 1.0.0 + dev: true + + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + dev: true + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: true + + /p-map@5.5.0: + resolution: {integrity: sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==} + engines: {node: '>=12'} + dependencies: + aggregate-error: 4.0.1 + dev: true + + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + dev: true + + /param-case@3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + dependencies: + dot-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: true + + /parse-code-context@1.0.0: + resolution: {integrity: sha512-OZQaqKaQnR21iqhlnPfVisFjBWjhnMl5J9MgbP8xC+EwoVqbXrq78lp+9Zb3ahmLzrIX5Us/qbvBnaS3hkH6OA==} + engines: {node: '>=6'} + dev: true + + /parse-entities@2.0.0: + resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} + dependencies: + character-entities: 1.2.4 + character-entities-legacy: 1.1.4 + character-reference-invalid: 1.1.4 + is-alphanumerical: 1.0.4 + is-decimal: 1.0.4 + is-hexadecimal: 1.0.4 + dev: true + + /parse-filepath@1.0.2: + resolution: {integrity: sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==} + engines: {node: '>=0.8'} + dependencies: + is-absolute: 1.0.0 + map-cache: 0.2.2 + path-root: 0.1.1 + dev: true + + /parse-gitignore@2.0.0: + resolution: {integrity: sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==} + engines: {node: '>=14'} + dev: true + + /parse-json@4.0.0: + resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} + engines: {node: '>=4'} + dependencies: + error-ex: 1.3.2 + json-parse-better-errors: 1.0.2 + dev: true + + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.22.13 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: true + + /parse-passwd@1.0.0: + resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} + engines: {node: '>=0.10.0'} + dev: true + + /parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + dev: true + + /pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /pascalcase@0.1.1: + resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} + engines: {node: '>=0.10.0'} + dev: true + + /path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + dev: false + + /path-case@3.0.4: + resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} + dependencies: + dot-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true + + /path-key@2.0.1: + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} + engines: {node: '>=4'} + dev: true + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + dev: true + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: true + + /path-root-regex@0.1.2: + resolution: {integrity: sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==} + engines: {node: '>=0.10.0'} + dev: true + + /path-root@0.1.1: + resolution: {integrity: sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==} + engines: {node: '>=0.10.0'} + dependencies: + path-root-regex: 0.1.2 + dev: true + + /path-to-regexp@6.2.1: + resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} + + /path-type@3.0.0: + resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} + engines: {node: '>=4'} + dependencies: + pify: 3.0.0 + dev: true + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + + /pathe@0.2.0: + resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==} + dev: true + + /pathe@1.1.1: + resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} + dev: true + + /pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + dev: true + + /perfect-debounce@1.0.0: + resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + dev: true + + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true + + /pidtree@0.3.1: + resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==} + engines: {node: '>=0.10'} + hasBin: true + dev: true + + /pidtree@0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true + dev: true + + /pify@3.0.0: + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} + engines: {node: '>=4'} + dev: true + + /pinia@2.1.6(typescript@5.2.2)(vue@3.3.4): + resolution: {integrity: sha512-bIU6QuE5qZviMmct5XwCesXelb5VavdOWKWaB17ggk++NUwQWWbP5YnsONTk3b752QkW9sACiR81rorpeOMSvQ==} + peerDependencies: + '@vue/composition-api': ^1.4.0 + typescript: '>=4.4.4' + vue: ^2.6.14 || ^3.3.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + typescript: + optional: true + dependencies: + '@vue/devtools-api': 6.5.0 + typescript: 5.2.2 + vue: 3.3.4 + vue-demi: 0.14.5(vue@3.3.4) + dev: false + + /pkg-types@1.0.3: + resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} + dependencies: + jsonc-parser: 3.2.0 + mlly: 1.4.0 + pathe: 1.1.1 + dev: true + + /plop@4.0.0: + resolution: {integrity: sha512-6hsuNofd5crnl7upQSRyw+7zVBZqxF9UZoWqsKqtPthpvtgUuYD+atBx7ZD9RT8qXWnylyCt9bpvYLZPexxDMg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + dependencies: + '@types/liftoff': 4.0.1 + chalk: 5.3.0 + interpret: 3.1.1 + liftoff: 4.0.0 + minimist: 1.2.8 + node-plop: 0.32.0 + ora: 7.0.1 + v8flags: 4.0.1 + dev: true + + /pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + dev: true + + /portfinder@1.0.32: + resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==} + engines: {node: '>= 0.12.0'} + dependencies: + async: 2.6.4 + debug: 3.2.7 + mkdirp: 0.5.6 + transitivePeerDependencies: + - supports-color + dev: true + + /posix-character-classes@0.1.1: + resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} + engines: {node: '>=0.10.0'} + dev: true + + /postcss-html@1.5.0: + resolution: {integrity: sha512-kCMRWJRHKicpA166kc2lAVUGxDZL324bkj/pVOb6RhjB0Z5Krl7mN0AsVkBhVIRZZirY0lyQXG38HCVaoKVNoA==} + engines: {node: ^12 || >=14} + dependencies: + htmlparser2: 8.0.1 + js-tokens: 8.0.0 + postcss: 8.4.18 + postcss-safe-parser: 6.0.0(postcss@8.4.18) + dev: true + + /postcss-media-query-parser@0.2.3: + resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} + dev: true + + /postcss-prefix-selector@1.16.0(postcss@5.2.18): + resolution: {integrity: sha512-rdVMIi7Q4B0XbXqNUEI+Z4E+pueiu/CS5E6vRCQommzdQ/sgsS4dK42U7GX8oJR+TJOtT+Qv3GkNo6iijUMp3Q==} + peerDependencies: + postcss: '>4 <9' + dependencies: + postcss: 5.2.18 + dev: true + + /postcss-resolve-nested-selector@0.1.1: + resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==} + dev: true + + /postcss-safe-parser@6.0.0(postcss@8.4.18): + resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.3.3 + dependencies: + postcss: 8.4.18 + dev: true + + /postcss-safe-parser@6.0.0(postcss@8.4.29): + resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.3.3 + dependencies: + postcss: 8.4.29 + dev: true + + /postcss-scss@4.0.8(postcss@8.4.31): + resolution: {integrity: sha512-Cr0X8Eu7xMhE96PJck6ses/uVVXDtE5ghUTKNUYgm8ozgP2TkgV3LWs3WgLV1xaSSLq8ZFiXaUrj0LVgG1fGEA==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.4.29 + dependencies: + postcss: 8.4.31 + dev: true + + /postcss-selector-parser@6.0.13: + resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: true + + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + dev: true + + /postcss@5.2.18: + resolution: {integrity: sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==} + engines: {node: '>=0.12'} + dependencies: + chalk: 1.1.3 + js-base64: 2.6.4 + source-map: 0.5.7 + supports-color: 3.2.3 + dev: true + + /postcss@8.4.18: + resolution: {integrity: sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.4 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /postcss@8.4.26: + resolution: {integrity: sha512-jrXHFF8iTloAenySjM/ob3gSj7pCu0Ji49hnjqzsgSRa50hkWCKD0HQ+gMNJkW38jBI68MpAAg7ZWwHwX8NMMw==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.6 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /postcss@8.4.29: + resolution: {integrity: sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.6 + picocolors: 1.0.0 + source-map-js: 1.0.2 + + /postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.6 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /posthtml-parser@0.2.1: + resolution: {integrity: sha512-nPC53YMqJnc/+1x4fRYFfm81KV2V+G9NZY+hTohpYg64Ay7NemWWcV4UWuy/SgMupqQ3kJ88M/iRfZmSnxT+pw==} + dependencies: + htmlparser2: 3.10.1 + isobject: 2.1.0 + dev: true + + /posthtml-rename-id@1.0.12: + resolution: {integrity: sha512-UKXf9OF/no8WZo9edRzvuMenb6AD5hDLzIepJW+a4oJT+T/Lx7vfMYWT4aWlGNQh0WMhnUx1ipN9OkZ9q+ddEw==} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /posthtml-render@1.4.0: + resolution: {integrity: sha512-W1779iVHGfq0Fvh2PROhCe2QhB8mEErgqzo1wpIt36tCgChafP+hbXIhLDOM8ePJrZcFs0vkNEtdibEWVqChqw==} + engines: {node: '>=10'} + dev: true + + /posthtml-svg-mode@1.0.3: + resolution: {integrity: sha512-hEqw9NHZ9YgJ2/0G7CECOeuLQKZi8HjWLkBaSVtOWjygQ9ZD8P7tqeowYs7WrFdKsWEKG7o+IlsPY8jrr0CJpQ==} + dependencies: + merge-options: 1.0.1 + posthtml: 0.9.2 + posthtml-parser: 0.2.1 + posthtml-render: 1.4.0 + dev: true + + /posthtml@0.9.2: + resolution: {integrity: sha512-spBB5sgC4cv2YcW03f/IAUN1pgDJWNWD8FzkyY4mArLUMJW+KlQhlmUdKAHQuPfb00Jl5xIfImeOsf6YL8QK7Q==} + engines: {node: '>=0.10.0'} + dependencies: + posthtml-parser: 0.2.1 + posthtml-render: 1.4.0 + dev: true + + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true + + /pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.2.0 + dev: true + + /proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + dev: false + + /punycode@2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + engines: {node: '>=6'} + dev: true + + /qs@6.11.2: + resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.4 + + /query-string@4.3.4: + resolution: {integrity: sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==} + engines: {node: '>=0.10.0'} + dependencies: + object-assign: 4.1.1 + strict-uri-encode: 1.1.0 + dev: true + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + dev: true + + /react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + dev: true + + /read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + dev: true + + /read-pkg-up@8.0.0: + resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==} + engines: {node: '>=12'} + dependencies: + find-up: 5.0.0 + read-pkg: 6.0.0 + type-fest: 1.4.0 + dev: true + + /read-pkg@3.0.0: + resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} + engines: {node: '>=4'} + dependencies: + load-json-file: 4.0.0 + normalize-package-data: 2.5.0 + path-type: 3.0.0 + dev: true + + /read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + dependencies: + '@types/normalize-package-data': 2.4.2 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + dev: true + + /read-pkg@6.0.0: + resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==} + engines: {node: '>=12'} + dependencies: + '@types/normalize-package-data': 2.4.1 + normalize-package-data: 3.0.3 + parse-json: 5.2.0 + type-fest: 1.4.0 + dev: true + + /readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + dev: true + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: true + + /rechoir@0.8.0: + resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} + engines: {node: '>= 10.13.0'} + dependencies: + resolve: 1.22.6 + dev: true + + /redent@4.0.0: + resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==} + engines: {node: '>=12'} + dependencies: + indent-string: 5.0.0 + strip-indent: 4.0.0 + dev: true + + /regenerate-unicode-properties@10.1.0: + resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==} + engines: {node: '>=4'} + dependencies: + regenerate: 1.4.2 + dev: true + + /regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + dev: true + + /regenerator-runtime@0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + + /regenerator-transform@0.15.1: + resolution: {integrity: sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==} + dependencies: + '@babel/runtime': 7.22.6 + dev: true + + /regex-not@1.0.2: + resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 3.0.2 + safe-regex: 1.1.0 + dev: true + + /regexp-tree@0.1.27: + resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} + hasBin: true + dev: true + + /regexp.prototype.flags@1.5.0: + resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + functions-have-names: 1.2.3 + dev: true + + /regexp.prototype.flags@1.5.1: + resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + set-function-name: 2.0.1 + dev: true + + /regexpu-core@5.3.2: + resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} + engines: {node: '>=4'} + dependencies: + '@babel/regjsgen': 0.8.0 + regenerate: 1.4.2 + regenerate-unicode-properties: 10.1.0 + regjsparser: 0.9.1 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.1.0 + dev: true + + /regjsparser@0.10.0: + resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} + hasBin: true + dependencies: + jsesc: 0.5.0 + dev: true + + /regjsparser@0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + hasBin: true + dependencies: + jsesc: 0.5.0 + dev: true + + /repeat-element@1.1.4: + resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} + engines: {node: '>=0.10.0'} + dev: true + + /repeat-string@1.6.1: + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} + engines: {node: '>=0.10'} + dev: true + + /require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + dev: true + + /requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + dev: true + + /resolve-dir@1.0.1: + resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} + engines: {node: '>=0.10.0'} + dependencies: + expand-tilde: 2.0.2 + global-modules: 1.0.0 + dev: true + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true + + /resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: true + + /resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + dev: true + + /resolve-url@0.2.1: + resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} + deprecated: https://github.com/lydell/resolve-url#deprecated + dev: true + + /resolve@1.22.4: + resolution: {integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==} + hasBin: true + dependencies: + is-core-module: 2.13.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /resolve@1.22.6: + resolution: {integrity: sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==} + hasBin: true + dependencies: + is-core-module: 2.13.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + dependencies: + is-core-module: 2.13.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + + /restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + + /ret@0.1.15: + resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} + engines: {node: '>=0.12'} + dev: true + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + /rfdc@1.3.0: + resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} + dev: true + + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /rollup@3.29.4: + resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /run-async@3.0.0: + resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==} + engines: {node: '>=0.12.0'} + dev: true + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + dependencies: + tslib: 2.6.2 + dev: true + + /safe-array-concat@1.0.1: + resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: true + + /safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + dev: true + + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + dev: true + + /safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-regex: 1.1.4 + dev: true + + /safe-regex@1.1.0: + resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} + dependencies: + ret: 0.1.15 + dev: true + + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: true + + /sass@1.69.2: + resolution: {integrity: sha512-48lDtG/9OuSQZ9oNmJMUXI2QdCakAWrAGjpX/Fy6j4Og8dEAyE598x5GqCqnHkwV7+I5w8DJpqjm581q5HNh3w==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + chokidar: 3.5.3 + immutable: 4.3.4 + source-map-js: 1.0.2 + dev: true + + /scule@1.0.0: + resolution: {integrity: sha512-4AsO/FrViE/iDNEPaAQlb77tf0csuq27EsVpy6ett584EcRTp6pTDLoGWVxCD77y5iU5FauOvhsI4o1APwPoSQ==} + + /secure-compare@3.0.1: + resolution: {integrity: sha1-8aAymzCLIh+uN7mXTz1XjQypmeM=} + dev: true + + /semver@5.7.1: + resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} + hasBin: true + dev: true + + /semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + dev: true + + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + dev: true + + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /sentence-case@3.0.4: + resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + upper-case-first: 2.0.2 + dev: true + + /set-function-name@2.0.1: + resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.0 + dev: true + + /set-value@2.0.1: + resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 2.0.1 + is-extendable: 0.1.1 + is-plain-object: 2.0.4 + split-string: 3.1.0 + dev: true + + /shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} + dependencies: + shebang-regex: 1.0.0 + dev: true + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex@1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} + dev: true + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true + + /shell-quote@1.7.4: + resolution: {integrity: sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==} + dev: true + + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + object-inspect: 1.12.3 + + /siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + dev: true + + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true + + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + dev: true + + /simple-git-hooks@2.9.0: + resolution: {integrity: sha512-waSQ5paUQtyGC0ZxlHmcMmD9I1rRXauikBwX31bX58l5vTOhCEcBC5Bi+ZDkPXTjDnZAF8TbCqKBY+9+sVPScw==} + hasBin: true + requiresBuild: true + dev: true + + /sirv@2.0.3: + resolution: {integrity: sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==} + engines: {node: '>= 10'} + dependencies: + '@polka/url': 1.0.0-next.23 + mrmime: 1.0.1 + totalist: 3.0.1 + dev: true + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + + /slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + dev: true + + /slice-ansi@4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + + /slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 + dev: true + + /snake-case@3.0.4: + resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} + dependencies: + dot-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /snapdragon-node@2.1.1: + resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 1.0.0 + isobject: 3.0.1 + snapdragon-util: 3.0.1 + dev: true + + /snapdragon-util@3.0.1: + resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /snapdragon@0.8.2: + resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} + engines: {node: '>=0.10.0'} + dependencies: + base: 0.11.2 + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + map-cache: 0.2.2 + source-map: 0.5.7 + source-map-resolve: 0.5.3 + use: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /sortablejs@1.15.0: + resolution: {integrity: sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w==} + dev: false + + /source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + + /source-map-resolve@0.5.3: + resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} + deprecated: See https://github.com/lydell/source-map-resolve#deprecated + dependencies: + atob: 2.1.2 + decode-uri-component: 0.2.0 + resolve-url: 0.2.1 + source-map-url: 0.4.1 + urix: 0.1.0 + dev: true + + /source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true + + /source-map-url@0.4.1: + resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} + deprecated: See https://github.com/lydell/source-map-url#deprecated + dev: true + + /source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + dev: true + + /spdx-correct@3.1.1: + resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.12 + dev: true + + /spdx-exceptions@2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + dev: true + + /spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.15 + dev: true + + /spdx-license-ids@3.0.12: + resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==} + dev: true + + /spdx-license-ids@3.0.15: + resolution: {integrity: sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ==} + dev: true + + /split-string@3.1.0: + resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 3.0.2 + dev: true + + /stable@0.1.8: + resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} + deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' + dev: true + + /stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + dev: true + + /static-extend@0.1.2: + resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 0.2.5 + object-copy: 0.1.0 + dev: true + + /statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + dev: true + + /std-env@3.4.3: + resolution: {integrity: sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q==} + dev: true + + /stdin-discarder@0.1.0: + resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + bl: 5.1.0 + dev: true + + /stop-iteration-iterator@1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + engines: {node: '>= 0.4'} + dependencies: + internal-slot: 1.0.5 + dev: true + + /strict-uri-encode@1.1.0: + resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==} + engines: {node: '>=0.10.0'} + dev: true + + /string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + dev: true + + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: true + + /string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + dev: true + + /string-width@6.1.0: + resolution: {integrity: sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==} + engines: {node: '>=16'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 10.2.1 + strip-ansi: 7.1.0 + dev: true + + /string.prototype.padend@3.1.3: + resolution: {integrity: sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + dev: true + + /string.prototype.trim@1.2.7: + resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.3 + dev: true + + /string.prototype.trim@1.2.8: + resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: true + + /string.prototype.trimend@1.0.6: + resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.3 + dev: true + + /string.prototype.trimend@1.0.7: + resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: true + + /string.prototype.trimstart@1.0.6: + resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.3 + dev: true + + /string.prototype.trimstart@1.0.7: + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: true + + /string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /strip-ansi@3.0.1: + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: 2.1.1 + dev: true + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: true + + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + dependencies: + ansi-regex: 6.0.1 + dev: true + + /strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + dev: true + + /strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + dev: true + + /strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + dev: true + + /strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + dependencies: + min-indent: 1.0.1 + dev: true + + /strip-indent@4.0.0: + resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} + engines: {node: '>=12'} + dependencies: + min-indent: 1.0.1 + dev: true + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true + + /strip-literal@1.0.1: + resolution: {integrity: sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==} + dependencies: + acorn: 8.10.0 + dev: true + + /strip-literal@1.3.0: + resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} + dependencies: + acorn: 8.10.0 + dev: true + + /style-search@0.1.0: + resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==} + dev: true + + /stylelint-config-html@1.1.0(postcss-html@1.5.0)(stylelint@15.10.3): + resolution: {integrity: sha512-IZv4IVESjKLumUGi+HWeb7skgO6/g4VMuAYrJdlqQFndgbj6WJAXPhaysvBiXefX79upBdQVumgYcdd17gCpjQ==} + engines: {node: ^12 || >=14} + peerDependencies: + postcss-html: ^1.0.0 + stylelint: '>=14.0.0' + dependencies: + postcss-html: 1.5.0 + stylelint: 15.10.3 + dev: true + + /stylelint-config-recommended-scss@13.0.0(postcss@8.4.31)(stylelint@15.10.3): + resolution: {integrity: sha512-7AmMIsHTsuwUQm7I+DD5BGeIgCvqYZ4BpeYJJpb1cUXQwrJAKjA+GBotFZgUEGP8lAM+wmd91ovzOi8xfAyWEw==} + peerDependencies: + postcss: ^8.3.3 + stylelint: ^15.10.0 + peerDependenciesMeta: + postcss: + optional: true + dependencies: + postcss: 8.4.31 + postcss-scss: 4.0.8(postcss@8.4.31) + stylelint: 15.10.3 + stylelint-config-recommended: 13.0.0(stylelint@15.10.3) + stylelint-scss: 5.2.1(stylelint@15.10.3) + dev: true + + /stylelint-config-recommended-vue@1.4.0(postcss-html@1.5.0)(stylelint@15.10.3): + resolution: {integrity: sha512-DVJqyX2KvMCn9U0+keL12r7xlsH26K4Vg8NrIZuq5MoF7g82DpMp326Om4E0Q+Il1o+bTHuUyejf2XAI0iD04Q==} + engines: {node: ^12 || >=14} + peerDependencies: + postcss-html: ^1.0.0 + stylelint: '>=14.0.0' + dependencies: + postcss-html: 1.5.0 + semver: 7.5.4 + stylelint: 15.10.3 + stylelint-config-html: 1.1.0(postcss-html@1.5.0)(stylelint@15.10.3) + stylelint-config-recommended: 13.0.0(stylelint@15.10.3) + dev: true + + /stylelint-config-recommended@13.0.0(stylelint@15.10.3): + resolution: {integrity: sha512-EH+yRj6h3GAe/fRiyaoO2F9l9Tgg50AOFhaszyfov9v6ayXJ1IkSHwTxd7lB48FmOeSGDPLjatjO11fJpmarkQ==} + engines: {node: ^14.13.1 || >=16.0.0} + peerDependencies: + stylelint: ^15.10.0 + dependencies: + stylelint: 15.10.3 + dev: true + + /stylelint-config-standard-scss@11.0.0(postcss@8.4.31)(stylelint@15.10.3): + resolution: {integrity: sha512-fGE79NBOLg09a9afqGH/guJulRULCaQWWv4cv1v2bMX92B+fGb0y56WqIguwvFcliPmmUXiAhKrrnXilIeXoHA==} + peerDependencies: + postcss: ^8.3.3 + stylelint: ^15.10.0 + peerDependenciesMeta: + postcss: + optional: true + dependencies: + postcss: 8.4.31 + stylelint: 15.10.3 + stylelint-config-recommended-scss: 13.0.0(postcss@8.4.31)(stylelint@15.10.3) + stylelint-config-standard: 34.0.0(stylelint@15.10.3) + dev: true + + /stylelint-config-standard-vue@1.0.0(postcss-html@1.5.0)(stylelint@15.10.3): + resolution: {integrity: sha512-wAzU7p6DSlo04pWfCbOcaMq09Nojt0FEsbdxhCBTdC7IguD9ZVl7FP/bvyA0HAHjZGC4JkW7m6WiQaoVMDSuFw==} + engines: {node: ^12 || >=14} + peerDependencies: + postcss-html: ^1.0.0 + stylelint: '>=14.0.0' + dependencies: + postcss-html: 1.5.0 + stylelint: 15.10.3 + stylelint-config-html: 1.1.0(postcss-html@1.5.0)(stylelint@15.10.3) + stylelint-config-recommended-vue: 1.4.0(postcss-html@1.5.0)(stylelint@15.10.3) + stylelint-config-standard: 34.0.0(stylelint@15.10.3) + dev: true + + /stylelint-config-standard@34.0.0(stylelint@15.10.3): + resolution: {integrity: sha512-u0VSZnVyW9VSryBG2LSO+OQTjN7zF9XJaAJRX/4EwkmU0R2jYwmBSN10acqZisDitS0CLiEiGjX7+Hrq8TAhfQ==} + engines: {node: ^14.13.1 || >=16.0.0} + peerDependencies: + stylelint: ^15.10.0 + dependencies: + stylelint: 15.10.3 + stylelint-config-recommended: 13.0.0(stylelint@15.10.3) + dev: true + + /stylelint-scss@5.2.1(stylelint@15.10.3): + resolution: {integrity: sha512-ZoTJUM85/qqpQHfEppjW/St//8s6p9Qsg8deWlYlr56F9iUgC9vXeIDQvH4odkRRJLTLFQzYMALSOFCQ3MDkgw==} + peerDependencies: + stylelint: ^14.5.1 || ^15.0.0 + dependencies: + known-css-properties: 0.28.0 + postcss-media-query-parser: 0.2.3 + postcss-resolve-nested-selector: 0.1.1 + postcss-selector-parser: 6.0.13 + postcss-value-parser: 4.2.0 + stylelint: 15.10.3 + dev: true + + /stylelint-stylistic@0.4.3(stylelint@15.10.3): + resolution: {integrity: sha512-WphmneK3MRrm5ixvRPWy7+c9+EQUh0FPvNMXW/N9VD85vyqtpxUejpD+mxubVVht0fRgidcqBxtW3s3tU2Ujhw==} + peerDependencies: + stylelint: ^15.0.0 + dependencies: + is-plain-object: 5.0.0 + postcss: 8.4.26 + postcss-media-query-parser: 0.2.3 + postcss-value-parser: 4.2.0 + style-search: 0.1.0 + stylelint: 15.10.3 + dev: true + + /stylelint@15.10.3: + resolution: {integrity: sha512-aBQMMxYvFzJJwkmg+BUUg3YfPyeuCuKo2f+LOw7yYbU8AZMblibwzp9OV4srHVeQldxvSFdz0/Xu8blq2AesiA==} + engines: {node: ^14.13.1 || >=16.0.0} + hasBin: true + dependencies: + '@csstools/css-parser-algorithms': 2.3.1(@csstools/css-tokenizer@2.2.0) + '@csstools/css-tokenizer': 2.2.0 + '@csstools/media-query-list-parser': 2.1.4(@csstools/css-parser-algorithms@2.3.1)(@csstools/css-tokenizer@2.2.0) + '@csstools/selector-specificity': 3.0.0(postcss-selector-parser@6.0.13) + balanced-match: 2.0.0 + colord: 2.9.3 + cosmiconfig: 8.2.0 + css-functions-list: 3.2.0 + css-tree: 2.3.1 + debug: 4.3.4 + fast-glob: 3.3.1 + fastest-levenshtein: 1.0.16 + file-entry-cache: 6.0.1 + global-modules: 2.0.0 + globby: 11.1.0 + globjoin: 0.1.4 + html-tags: 3.3.1 + ignore: 5.2.4 + import-lazy: 4.0.0 + imurmurhash: 0.1.4 + is-plain-object: 5.0.0 + known-css-properties: 0.28.0 + mathml-tag-names: 2.1.3 + meow: 10.1.5 + micromatch: 4.0.5 + normalize-path: 3.0.0 + picocolors: 1.0.0 + postcss: 8.4.29 + postcss-resolve-nested-selector: 0.1.1 + postcss-safe-parser: 6.0.0(postcss@8.4.29) + postcss-selector-parser: 6.0.13 + postcss-value-parser: 4.2.0 + resolve-from: 5.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + style-search: 0.1.0 + supports-hyperlinks: 3.0.0 + svg-tags: 1.0.0 + table: 6.8.1 + write-file-atomic: 5.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /supports-color@2.0.0: + resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} + engines: {node: '>=0.8.0'} + dev: true + + /supports-color@3.2.3: + resolution: {integrity: sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==} + engines: {node: '>=0.8.0'} + dependencies: + has-flag: 1.0.0 + dev: true + + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + dev: true + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-hyperlinks@3.0.0: + resolution: {integrity: sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==} + engines: {node: '>=14.18'} + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + dev: true + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + dev: true + + /svg-baker@1.7.0: + resolution: {integrity: sha512-nibslMbkXOIkqKVrfcncwha45f97fGuAOn1G99YwnwTj8kF9YiM6XexPcUso97NxOm6GsP0SIvYVIosBis1xLg==} + dependencies: + bluebird: 3.7.2 + clone: 2.1.2 + he: 1.2.0 + image-size: 0.5.5 + loader-utils: 1.4.0 + merge-options: 1.0.1 + micromatch: 3.1.0 + postcss: 5.2.18 + postcss-prefix-selector: 1.16.0(postcss@5.2.18) + posthtml-rename-id: 1.0.12 + posthtml-svg-mode: 1.0.3 + query-string: 4.3.4 + traverse: 0.6.7 + transitivePeerDependencies: + - supports-color + dev: true + + /svg-tags@1.0.0: + resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} + dev: true + + /svgo@2.8.0: + resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} + engines: {node: '>=10.13.0'} + hasBin: true + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 4.3.0 + css-tree: 1.1.3 + csso: 4.2.0 + picocolors: 1.0.0 + stable: 0.1.8 + dev: true + + /svgo@3.0.2: + resolution: {integrity: sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 5.1.0 + css-tree: 2.2.1 + csso: 5.0.5 + picocolors: 1.0.0 + dev: true + + /systemjs@6.14.1: + resolution: {integrity: sha512-8ftwWd+XnQtZ/aGbatrN4QFNGrKJzmbtixW+ODpci7pyoTajg4sonPP8aFLESAcuVxaC1FyDESt+SpfFCH9rZQ==} + dev: true + + /table@6.8.1: + resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==} + engines: {node: '>=10.0.0'} + dependencies: + ajv: 8.12.0 + lodash.truncate: 4.4.2 + slice-ansi: 4.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /tdesign-icons-vue-next@0.2.2(vue@3.3.4): + resolution: {integrity: sha512-ZKleBME7ZF1IVgnRXmIBPjfNa2Mef1nrK56f2xwn1Aa5mvXxB3fSxEzwhObR7bhzf/K42mz/Knnbll5Y7vCBjg==} + peerDependencies: + vue: ^3.0.0 + dependencies: + '@babel/runtime': 7.22.6 + vue: 3.3.4 + dev: false + + /tdesign-vue-next@1.6.4(vue@3.3.4): + resolution: {integrity: sha512-+Y0GhgFmmehjQH0Ypu0cPr40fBxxKM0ObMKf4+FWmdZD6pVNtgVeHDBUUbvJ5xy8LYirT1HWD1KCWz1UetdIjg==} + peerDependencies: + vue: '>=3.1.0' + dependencies: + '@babel/runtime': 7.22.6 + '@popperjs/core': 2.11.8 + '@types/lodash': 4.14.182 + '@types/sortablejs': 1.15.4 + '@types/tinycolor2': 1.4.5 + '@types/validator': 13.11.5 + dayjs: 1.11.10 + lodash: 4.17.21 + mitt: 3.0.1 + sortablejs: 1.15.0 + tdesign-icons-vue-next: 0.2.2(vue@3.3.4) + tinycolor2: 1.6.0 + validator: 13.11.0 + vue: 3.3.4 + dev: false + + /terser@5.21.0: + resolution: {integrity: sha512-WtnFKrxu9kaoXuiZFSGrcAvvBqAdmKx0SFNmVNYdJamMu9yyN3I/QF0FbH4QcqJQ+y1CJnzxGIKH0cSj+FGYRw==} + engines: {node: '>=10'} + hasBin: true + dependencies: + '@jridgewell/source-map': 0.3.5 + acorn: 8.10.0 + commander: 2.20.3 + source-map-support: 0.5.21 + dev: true + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: true + + /tinybench@2.5.1: + resolution: {integrity: sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==} + dev: true + + /tinycolor2@1.6.0: + resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} + dev: false + + /tinypool@0.7.0: + resolution: {integrity: sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==} + engines: {node: '>=14.0.0'} + dev: true + + /tinyspy@2.2.0: + resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==} + engines: {node: '>=14.0.0'} + dev: true + + /title-case@3.0.3: + resolution: {integrity: sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==} + dependencies: + tslib: 2.6.2 + dev: true + + /tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + dependencies: + os-tmpdir: 1.0.2 + dev: true + + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + /to-object-path@0.3.0: + resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /to-regex-range@2.1.1: + resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} + engines: {node: '>=0.10.0'} + dependencies: + is-number: 3.0.0 + repeat-string: 1.6.1 + dev: true + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /to-regex@3.0.2: + resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 2.0.2 + extend-shallow: 3.0.2 + regex-not: 1.0.2 + safe-regex: 1.1.0 + dev: true + + /totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + dev: true + + /traverse@0.6.7: + resolution: {integrity: sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==} + dev: true + + /trim-newlines@4.1.1: + resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==} + engines: {node: '>=12'} + dev: true + + /ts-api-utils@1.0.3(typescript@5.2.2): + resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} + engines: {node: '>=16.13.0'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.2.2 + dev: true + + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + dev: true + + /tsx@3.12.7: + resolution: {integrity: sha512-C2Ip+jPmqKd1GWVQDvz/Eyc6QJbGfE7NrR3fx5BpEHMZsEHoIxHL1j+lKdGobr8ovEyqeNkPLSKp6SCSOt7gmw==} + hasBin: true + dependencies: + '@esbuild-kit/cjs-loader': 2.4.2 + '@esbuild-kit/core-utils': 3.1.0 + '@esbuild-kit/esm-loader': 2.5.5 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: true + + /type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + dev: true + + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + dev: true + + /type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + dev: true + + /type-fest@1.4.0: + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} + dev: true + + /typed-array-buffer@1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-length@1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-offset@1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.10 + dev: true + + /typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + is-typed-array: 1.1.10 + dev: true + + /typescript@5.2.2: + resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} + engines: {node: '>=14.17'} + hasBin: true + + /ufo@1.1.2: + resolution: {integrity: sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ==} + dev: true + + /ufo@1.3.1: + resolution: {integrity: sha512-uY/99gMLIOlJPwATcMVYfqDSxUR9//AUcgZMzwfSTJPDKzA1S8mX4VLqa+fiAtveraQUBCz4FFcwVZBGbwBXIw==} + dev: true + + /uglify-js@3.17.4: + resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} + engines: {node: '>=0.8.0'} + hasBin: true + requiresBuild: true + dev: true + optional: true + + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.2 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: true + + /unc-path-regex@0.1.2: + resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==} + engines: {node: '>=0.10.0'} + dev: true + + /unconfig@0.3.11: + resolution: {integrity: sha512-bV/nqePAKv71v3HdVUn6UefbsDKQWRX+bJIkiSm0+twIds6WiD2bJLWWT3i214+J/B4edufZpG2w7Y63Vbwxow==} + dependencies: + '@antfu/utils': 0.7.6 + defu: 6.1.2 + jiti: 1.20.0 + mlly: 1.4.2 + dev: true + + /undici-types@5.25.3: + resolution: {integrity: sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==} + dev: true + + /unicode-canonical-property-names-ecmascript@2.0.0: + resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + engines: {node: '>=4'} + dev: true + + /unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + dependencies: + unicode-canonical-property-names-ecmascript: 2.0.0 + unicode-property-aliases-ecmascript: 2.1.0 + dev: true + + /unicode-match-property-value-ecmascript@2.1.0: + resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} + engines: {node: '>=4'} + dev: true + + /unicode-property-aliases-ecmascript@2.1.0: + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + engines: {node: '>=4'} + dev: true + + /unimport@3.0.14: + resolution: {integrity: sha512-67Rh/sGpEuVqdHWkXaZ6NOq+I7sKt86o+DUtKeGB6dh4Hk1A8AQrzyVGg2+LaVEYotStH7HwvV9YSaRjyT7Uqg==} + dependencies: + '@rollup/pluginutils': 5.0.2 + escape-string-regexp: 5.0.0 + fast-glob: 3.3.0 + local-pkg: 0.4.3 + magic-string: 0.30.1 + mlly: 1.4.0 + pathe: 1.1.1 + pkg-types: 1.0.3 + scule: 1.0.0 + strip-literal: 1.0.1 + unplugin: 1.3.2 + transitivePeerDependencies: + - rollup + dev: true + + /union-value@1.0.1: + resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} + engines: {node: '>=0.10.0'} + dependencies: + arr-union: 3.1.0 + get-value: 2.0.6 + is-extendable: 0.1.1 + set-value: 2.0.1 + dev: true + + /union@0.5.0: + resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==} + engines: {node: '>= 0.8.0'} + dependencies: + qs: 6.11.2 + dev: true + + /unist-util-stringify-position@2.0.3: + resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} + dependencies: + '@types/unist': 2.0.8 + dev: true + + /universalify@2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + engines: {node: '>= 10.0.0'} + dev: true + + /unocss@0.56.5(postcss@8.4.31)(vite@4.4.11): + resolution: {integrity: sha512-tO+9St4CntSjHpLXZqBo0/etS06MtvFF1NEny/qFJCL9sCopWwmDKuzW6/LIb4wfqZLdMpVFoEACMNv8nP849A==} + engines: {node: '>=14'} + peerDependencies: + '@unocss/webpack': 0.56.5 + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 + peerDependenciesMeta: + '@unocss/webpack': + optional: true + vite: + optional: true + dependencies: + '@unocss/astro': 0.56.5(vite@4.4.11) + '@unocss/cli': 0.56.5 + '@unocss/core': 0.56.5 + '@unocss/extractor-arbitrary-variants': 0.56.5 + '@unocss/postcss': 0.56.5(postcss@8.4.31) + '@unocss/preset-attributify': 0.56.5 + '@unocss/preset-icons': 0.56.5 + '@unocss/preset-mini': 0.56.5 + '@unocss/preset-tagify': 0.56.5 + '@unocss/preset-typography': 0.56.5 + '@unocss/preset-uno': 0.56.5 + '@unocss/preset-web-fonts': 0.56.5 + '@unocss/preset-wind': 0.56.5 + '@unocss/reset': 0.56.5 + '@unocss/transformer-attributify-jsx': 0.56.5 + '@unocss/transformer-attributify-jsx-babel': 0.56.5 + '@unocss/transformer-compile-class': 0.56.5 + '@unocss/transformer-directives': 0.56.5 + '@unocss/transformer-variant-group': 0.56.5 + '@unocss/vite': 0.56.5(vite@4.4.11) + vite: 4.4.11(@types/node@20.8.4)(sass@1.69.2)(terser@5.21.0) + transitivePeerDependencies: + - postcss + - rollup + - supports-color + dev: true + + /unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + dev: true + + /unplugin-auto-import@0.16.6(@vueuse/core@10.5.0): + resolution: {integrity: sha512-M+YIITkx3C/Hg38hp8HmswP5mShUUyJOzpifv7RTlAbeFlO2Tyw0pwrogSSxnipHDPTtI8VHFBpkYkNKzYSuyA==} + engines: {node: '>=14'} + peerDependencies: + '@nuxt/kit': ^3.2.2 + '@vueuse/core': '*' + peerDependenciesMeta: + '@nuxt/kit': + optional: true + '@vueuse/core': + optional: true + dependencies: + '@antfu/utils': 0.7.5 + '@rollup/pluginutils': 5.0.2 + '@vueuse/core': 10.5.0(vue@3.3.4) + fast-glob: 3.3.0 + local-pkg: 0.4.3 + magic-string: 0.30.1 + minimatch: 9.0.3 + unimport: 3.0.14 + unplugin: 1.3.2 + transitivePeerDependencies: + - rollup + dev: true + + /unplugin-vue-components@0.25.2(vue@3.3.4): + resolution: {integrity: sha512-OVmLFqILH6w+eM8fyt/d/eoJT9A6WO51NZLf1vC5c1FZ4rmq2bbGxTy8WP2Jm7xwFdukaIdv819+UI7RClPyCA==} + engines: {node: '>=14'} + peerDependencies: + '@babel/parser': ^7.15.8 + '@nuxt/kit': ^3.2.2 + vue: 2 || 3 + peerDependenciesMeta: + '@babel/parser': + optional: true + '@nuxt/kit': + optional: true + dependencies: + '@antfu/utils': 0.7.6 + '@rollup/pluginutils': 5.0.4 + chokidar: 3.5.3 + debug: 4.3.4 + fast-glob: 3.3.1 + local-pkg: 0.4.3 + magic-string: 0.30.3 + minimatch: 9.0.3 + resolve: 1.22.4 + unplugin: 1.4.0 + vue: 3.3.4 + transitivePeerDependencies: + - rollup + - supports-color + dev: true + + /unplugin@1.3.2: + resolution: {integrity: sha512-Lh7/2SryjXe/IyWqx9K7IKwuKhuOFZEhotiBquOODsv2IVyDkI9lv/XhgfjdXf/xdbv32txmnBNnC/JVTDJlsA==} + dependencies: + acorn: 8.10.0 + chokidar: 3.5.3 + webpack-sources: 3.2.3 + webpack-virtual-modules: 0.5.0 + dev: true + + /unplugin@1.4.0: + resolution: {integrity: sha512-5x4eIEL6WgbzqGtF9UV8VEC/ehKptPXDS6L2b0mv4FRMkJxRtjaJfOWDd6a8+kYbqsjklix7yWP0N3SUepjXcg==} + dependencies: + acorn: 8.10.0 + chokidar: 3.5.3 + webpack-sources: 3.2.3 + webpack-virtual-modules: 0.5.0 + dev: true + + /unset-value@1.0.0: + resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} + engines: {node: '>=0.10.0'} + dependencies: + has-value: 0.3.1 + isobject: 3.0.1 + dev: true + + /update-browserslist-db@1.0.11(browserslist@4.21.10): + resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.21.10 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + + /update-browserslist-db@1.0.11(browserslist@4.21.9): + resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.21.9 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + + /update-browserslist-db@1.0.13(browserslist@4.21.11): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.21.11 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + + /update-browserslist-db@1.0.13(browserslist@4.22.1): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.22.1 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + + /upper-case-first@2.0.2: + resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} + dependencies: + tslib: 2.6.2 + dev: true + + /upper-case@2.0.2: + resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} + dependencies: + tslib: 2.6.2 + dev: true + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.0 + dev: true + + /urix@0.1.0: + resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} + deprecated: Please see https://github.com/lydell/urix#deprecated + dev: true + + /url-join@4.0.1: + resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} + dev: true + + /use@3.1.1: + resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} + engines: {node: '>=0.10.0'} + dev: true + + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + dev: true + + /utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + dev: true + + /v8flags@4.0.1: + resolution: {integrity: sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg==} + engines: {node: '>= 10.13.0'} + dev: true + + /validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + dependencies: + spdx-correct: 3.1.1 + spdx-expression-parse: 3.0.1 + dev: true + + /validator@13.11.0: + resolution: {integrity: sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==} + engines: {node: '>= 0.10'} + dev: false + + /vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + dev: true + + /vconsole@3.15.1: + resolution: {integrity: sha512-KH8XLdrq9T5YHJO/ixrjivHfmF2PC2CdVoK6RWZB4yftMykYIaXY1mxZYAic70vADM54kpMQF+dYmvl5NRNy1g==} + dependencies: + '@babel/runtime': 7.22.5 + copy-text-to-clipboard: 3.1.0 + core-js: 3.31.0 + mutation-observer: 1.0.3 + dev: false + + /vite-node@0.34.6(@types/node@20.8.4)(sass@1.69.2)(terser@5.21.0): + resolution: {integrity: sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==} + engines: {node: '>=v14.18.0'} + hasBin: true + dependencies: + cac: 6.7.14 + debug: 4.3.4 + mlly: 1.4.2 + pathe: 1.1.1 + picocolors: 1.0.0 + vite: 4.4.11(@types/node@20.8.4)(sass@1.69.2)(terser@5.21.0) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /vite-plugin-banner@0.7.1: + resolution: {integrity: sha512-Bww2Xd5tOGsZ1yZ9rQiGneryvsL1u86znPrqeQjCsXPsG72pnSdV5lcQA+cy8UNDguMqyTJiCevlNUbLnT85UA==} + dev: true + + /vite-plugin-compression@0.5.1(vite@4.4.11): + resolution: {integrity: sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==} + peerDependencies: + vite: '>=2.0.0' + dependencies: + chalk: 4.1.2 + debug: 4.3.4 + fs-extra: 10.1.0 + vite: 4.4.11(@types/node@20.8.4)(sass@1.69.2)(terser@5.21.0) + transitivePeerDependencies: + - supports-color + dev: true + + /vite-plugin-mock@2.9.8(mockjs@1.1.0)(vite@4.4.11): + resolution: {integrity: sha512-YTQM5Sn7t+/DNOwTkr+W26QGTCk1PrDkhGHslTJ90lIPJhJtDTwuSkEYMAuLP9TcVQ/qExTFx/x/GE3kxJ05sw==} + engines: {node: '>=12.0.0'} + peerDependencies: + mockjs: '>=1.1.0' + vite: '>=2.0.0' + dependencies: + '@types/mockjs': 1.0.7 + chalk: 4.1.2 + chokidar: 3.5.3 + connect: 3.7.0 + debug: 4.3.4 + esbuild: 0.14.54 + fast-glob: 3.2.12 + mockjs: 1.1.0 + path-to-regexp: 6.2.1 + vite: 4.4.11(@types/node@20.8.4)(sass@1.69.2)(terser@5.21.0) + transitivePeerDependencies: + - supports-color + dev: true + + /vite-plugin-pages@0.31.0(vite@4.4.11): + resolution: {integrity: sha512-fw3onBfVTXQI7rOzAbSZhmfwvk50+3qNnGZpERjmD93c8nEjrGLyd53eFXYMxcJV4KA1vzi4qIHt2+6tS4dEMw==} + peerDependencies: + '@vue/compiler-sfc': ^2.7.0 || ^3.0.0 + vite: ^2.0.0 || ^3.0.0-0 || ^4.0.0 + peerDependenciesMeta: + '@vue/compiler-sfc': + optional: true + dependencies: + '@types/debug': 4.1.8 + debug: 4.3.4 + deep-equal: 2.2.1 + extract-comments: 1.1.0 + fast-glob: 3.2.12 + json5: 2.2.3 + local-pkg: 0.4.3 + picocolors: 1.0.0 + vite: 4.4.11(@types/node@20.8.4)(sass@1.69.2)(terser@5.21.0) + yaml: 2.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /vite-plugin-svg-icons@2.0.1(vite@4.4.11): + resolution: {integrity: sha512-6ktD+DhV6Rz3VtedYvBKKVA2eXF+sAQVaKkKLDSqGUfnhqXl3bj5PPkVTl3VexfTuZy66PmINi8Q6eFnVfRUmA==} + peerDependencies: + vite: '>=2.0.0' + dependencies: + '@types/svgo': 2.6.4 + cors: 2.8.5 + debug: 4.3.4 + etag: 1.8.1 + fs-extra: 10.1.0 + pathe: 0.2.0 + svg-baker: 1.7.0 + svgo: 2.8.0 + vite: 4.4.11(@types/node@20.8.4)(sass@1.69.2)(terser@5.21.0) + transitivePeerDependencies: + - supports-color + dev: true + + /vite-plugin-vue-inspector@4.0.0(vite@4.4.11): + resolution: {integrity: sha512-xNjMbRj3YrebuuInTvlC8ghPtzT+3LjMIQPeeR/5CaFd+WcbA9wBnECZmlcP3GITCVED0SxGmTyoJ3iVKsK4vQ==} + peerDependencies: + vite: ^3.0.0-0 || ^4.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/plugin-proposal-decorators': 7.23.0(@babel/core@7.23.0) + '@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.0) + '@babel/plugin-transform-typescript': 7.22.15(@babel/core@7.23.0) + '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.23.0) + '@vue/compiler-dom': 3.3.4 + kolorist: 1.8.0 + magic-string: 0.30.4 + vite: 4.4.11(@types/node@20.8.4)(sass@1.69.2)(terser@5.21.0) + transitivePeerDependencies: + - supports-color + dev: true + + /vite-plugin-vue-meta-layouts@0.3.1(vite@4.4.11)(vue-router@4.2.5): + resolution: {integrity: sha512-TDNsuWbQoFZFUrWKIwViSkvRb5stFQvRBZV5Ku8W+pONg79DDJfg5KjuxMgjmqcnqkWeksPxS+pjck4YM5bNeQ==} + peerDependencies: + vite: '>=2.0.0' + vue-router: '>=4.0.14' + dependencies: + local-pkg: 0.5.0 + vite: 4.4.11(@types/node@20.8.4)(sass@1.69.2)(terser@5.21.0) + vue-router: 4.2.5(vue@3.3.4) + dev: true + + /vite@4.4.11(@types/node@20.8.4)(sass@1.69.2)(terser@5.21.0): + resolution: {integrity: sha512-ksNZJlkcU9b0lBwAGZGGaZHCMqHsc8OpgtoYhsQ4/I2v5cnpmmmqe5pM4nv/4Hn6G/2GhTdj0DhZh2e+Er1q5A==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 20.8.4 + esbuild: 0.18.20 + postcss: 8.4.31 + rollup: 3.29.4 + sass: 1.69.2 + terser: 5.21.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /vitest@0.34.6(sass@1.69.2)(terser@5.21.0): + resolution: {integrity: sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==} + engines: {node: '>=v14.18.0'} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@vitest/browser': '*' + '@vitest/ui': '*' + happy-dom: '*' + jsdom: '*' + playwright: '*' + safaridriver: '*' + webdriverio: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + playwright: + optional: true + safaridriver: + optional: true + webdriverio: + optional: true + dependencies: + '@types/chai': 4.3.7 + '@types/chai-subset': 1.3.3 + '@types/node': 20.8.4 + '@vitest/expect': 0.34.6 + '@vitest/runner': 0.34.6 + '@vitest/snapshot': 0.34.6 + '@vitest/spy': 0.34.6 + '@vitest/utils': 0.34.6 + acorn: 8.10.0 + acorn-walk: 8.2.0 + cac: 6.7.14 + chai: 4.3.10 + debug: 4.3.4 + local-pkg: 0.4.3 + magic-string: 0.30.4 + pathe: 1.1.1 + picocolors: 1.0.0 + std-env: 3.4.3 + strip-literal: 1.3.0 + tinybench: 2.5.1 + tinypool: 0.7.0 + vite: 4.4.11(@types/node@20.8.4)(sass@1.69.2)(terser@5.21.0) + vite-node: 0.34.6(@types/node@20.8.4)(sass@1.69.2)(terser@5.21.0) + why-is-node-running: 2.2.2 + transitivePeerDependencies: + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /vue-demi@0.14.5(vue@3.3.4): + resolution: {integrity: sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + vue: 3.3.4 + dev: false + + /vue-demi@0.14.6(vue@3.3.4): + resolution: {integrity: sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + vue: 3.3.4 + + /vue-eslint-parser@9.3.2(eslint@8.51.0): + resolution: {integrity: sha512-q7tWyCVaV9f8iQyIA5Mkj/S6AoJ9KBN8IeUSf3XEmBrOtxOZnfTg5s4KClbZBCK3GtnT/+RyCLZyDHuZwTuBjg==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + debug: 4.3.4 + eslint: 8.51.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + lodash: 4.17.21 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + dev: true + + /vue-m-message@4.0.2: + resolution: {integrity: sha512-6rTKtIzj2vXyyY6YIcSHDmJNz4R1HuxATgr8gf0c+DjcknwCkmfBggKNDIgshnCyqgL70TWsVrgcqQzl4xsYfQ==} + dev: false + + /vue-resize@2.0.0-alpha.1(vue@3.3.4): + resolution: {integrity: sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg==} + peerDependencies: + vue: ^3.0.0 + dependencies: + vue: 3.3.4 + dev: false + + /vue-router@4.2.5(vue@3.3.4): + resolution: {integrity: sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==} + peerDependencies: + vue: ^3.2.0 + dependencies: + '@vue/devtools-api': 6.5.0 + vue: 3.3.4 + + /vue-template-compiler@2.7.14: + resolution: {integrity: sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==} + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + dev: true + + /vue-tsc@1.8.19(typescript@5.2.2): + resolution: {integrity: sha512-tacMQLQ0CXAfbhRycCL5sWIy1qujXaIEtP1hIQpzHWOUuICbtTj9gJyFf91PvzG5KCNIkA5Eg7k2Fmgt28l5DQ==} + hasBin: true + peerDependencies: + typescript: '*' + dependencies: + '@vue/language-core': 1.8.19(typescript@5.2.2) + '@vue/typescript': 1.8.19(typescript@5.2.2) + semver: 7.5.4 + typescript: 5.2.2 + dev: true + + /vue@3.3.4: + resolution: {integrity: sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==} + dependencies: + '@vue/compiler-dom': 3.3.4 + '@vue/compiler-sfc': 3.3.4 + '@vue/runtime-dom': 3.3.4 + '@vue/server-renderer': 3.3.4(vue@3.3.4) + '@vue/shared': 3.3.4 + + /wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + dependencies: + defaults: 1.0.4 + dev: true + + /webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + dev: true + + /webpack-virtual-modules@0.5.0: + resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==} + dev: true + + /whatwg-encoding@2.0.0: + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + engines: {node: '>=12'} + dependencies: + iconv-lite: 0.6.3 + dev: true + + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: true + + /which-collection@1.0.1: + resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + dependencies: + is-map: 2.0.2 + is-set: 2.0.2 + is-weakmap: 2.0.1 + is-weakset: 2.0.2 + dev: true + + /which-typed-array@1.1.10: + resolution: {integrity: sha512-uxoA5vLUfRPdjCuJ1h5LlYdmTLbYfums398v3WLkM+i/Wltl2/XyZpQWKbN++ck5L64SR/grOHqtXCUKmlZPNA==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + is-typed-array: 1.1.10 + dev: true + + /which-typed-array@1.1.11: + resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + dev: true + + /which-typed-array@1.1.9: + resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + is-typed-array: 1.1.10 + dev: true + + /which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /why-is-node-running@2.2.2: + resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} + engines: {node: '>=8'} + hasBin: true + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + dev: true + + /wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + dev: true + + /wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + dev: true + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: true + + /write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + imurmurhash: 0.1.4 + signal-exit: 4.1.0 + dev: true + + /xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + dev: true + + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + dev: true + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true + + /yaml-eslint-parser@1.2.2: + resolution: {integrity: sha512-pEwzfsKbTrB8G3xc/sN7aw1v6A6c/pKxLAkjclnAyo5g5qOh6eL9WGu0o3cSDQZKrTNk4KL4lQSwZW+nBkANEg==} + engines: {node: ^14.17.0 || >=16.0.0} + dependencies: + eslint-visitor-keys: 3.4.3 + lodash: 4.17.21 + yaml: 2.3.2 + dev: true + + /yaml@2.3.1: + resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==} + engines: {node: '>= 14'} + dev: true + + /yaml@2.3.2: + resolution: {integrity: sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==} + engines: {node: '>= 14'} + dev: true + + /yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + dev: true + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true + + /yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + dev: true diff --git a/postcss.config.js b/postcss.config.js new file mode 100755 index 0000000..b6dc034 --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,5 @@ +export default { + plugins: { + autoprefixer: {}, + }, +} diff --git a/public/browser_upgrade/chrome.png b/public/browser_upgrade/chrome.png new file mode 100755 index 0000000..c205a47 Binary files /dev/null and b/public/browser_upgrade/chrome.png differ diff --git a/public/browser_upgrade/edge.png b/public/browser_upgrade/edge.png new file mode 100755 index 0000000..3e7f158 Binary files /dev/null and b/public/browser_upgrade/edge.png differ diff --git a/public/browser_upgrade/index.css b/public/browser_upgrade/index.css new file mode 100755 index 0000000..c1c7026 --- /dev/null +++ b/public/browser_upgrade/index.css @@ -0,0 +1,49 @@ +#browser-upgrade { + position: absolute; + z-index: 10001; + top: 0; + left: 0; + height: 100%; + width: 100%; + display: none; + user-select: none; + color: #736477; + background-color: snow; +} + +#browser-upgrade .title { + margin: 40px 0; + text-align: center; + font-size: 24px; +} + +#browser-upgrade .browsers { + text-align: center; +} + +#browser-upgrade .browsers .browser { + display: inline-block; + margin: 0 20px; + cursor: pointer; + text-decoration: none; +} + +#browser-upgrade .browsers .browser .browser-icon { + display: block; + width: 50px; + height: 50px; + margin: 0 auto; + border: none; +} + +#browser-upgrade .browsers .browser .browser-name { + text-align: center; + margin-top: 10px; + padding-bottom: 2px; + color: #736477; + border-bottom: 1px solid transparent; +} + +#browser-upgrade .browsers .browser:hover .browser-name { + border-bottom: 1px solid #736477; +} diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100755 index 0000000..89c0959 Binary files /dev/null and b/public/favicon.ico differ diff --git a/public/loading.css b/public/loading.css new file mode 100755 index 0000000..1fe770c --- /dev/null +++ b/public/loading.css @@ -0,0 +1,92 @@ +#app { + height: 100%; +} + +.fantastic-admin-home { + position: absolute; + z-index: 10000; + top: 0; + left: 0; + height: 100%; + width: 100%; + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + user-select: none; + color: #736477; + background-color: snow; +} + +.fantastic-admin-home .loading { + height: 40px; + width: 40px; + display: flex; + align-items: center; + justify-content: center; + flex-wrap: wrap; +} + +.fantastic-admin-home .loading .square { + display: flex; + align-items: center; + justify-content: center; + height: 20px; + width: 20px; +} + +.fantastic-admin-home .loading .square::before { + content: ""; + width: 10px; + height: 10px; + border-radius: 15%; + border: 3px solid #8c858f; + animation: square-to-dot-animation 2s linear infinite; +} + +.fantastic-admin-home .loading .square:nth-child(1)::before { + animation-delay: calc(150ms * 1); +} + +.fantastic-admin-home .loading .square:nth-child(2)::before { + animation-delay: calc(150ms * 2); +} + +.fantastic-admin-home .loading .square:nth-child(3)::before { + animation-delay: calc(150ms * 3); +} + +.fantastic-admin-home .loading .square:nth-child(4)::before { + animation-delay: calc(150ms * 4); +} + +@keyframes square-to-dot-animation { + 15%, + 25% { + border-radius: 100%; + width: 0; + height: 0; + margin: 5px; + border-width: 5px; + } + + 40% { + border-radius: 15%; + width: 10px; + height: 10px; + margin: initial; + border-width: 3px; + } +} + +.fantastic-admin-home .text { + position: relative; + font-size: 24px; + margin-top: 20px; +} + +.fantastic-admin-home .text::after { + content: "…"; + position: absolute; + padding-left: 5px; +} diff --git a/scripts/generate.icons.ts b/scripts/generate.icons.ts new file mode 100755 index 0000000..36fb0c0 --- /dev/null +++ b/scripts/generate.icons.ts @@ -0,0 +1,85 @@ +import path from 'node:path' +import process from 'node:process' +import fs from 'fs-extra' +import inquirer from 'inquirer' +import { lookupCollection, lookupCollections } from '@iconify/json' + +async function generateIcons() { + // 拿到全部图标集的原始数据 + const raw = await lookupCollections() + + // 默认必须安装的图标集 + const defaultCollectionID = ['ep'] + // 取出可使用的图标集数据用于 inquirer 选择,并按名称排序 + const collections = Object.entries(raw).map(([id, item]) => ({ + ...item, + id, + })).filter((item) => { + return item.hidden !== true && !defaultCollectionID.includes(item.id) + }).sort((a, b) => a.name.localeCompare(b.name)) + + /** + * 分别会在对应目录下生成以下文件,其中(1)(3)用于离线下载并安装图标,(2)用于图标选择器使用 + * (1) src/iconify/index.json 记录用户 inquirer 的交互信息 + * (2) src/iconify/data.json 包含多个图标集数据,仅记录图标名 + * (3) public/icons/*-raw.json 多个图标集的原始数据,独立存放,用于离线使用 + */ + inquirer.prompt([ + { + type: 'checkbox', + message: '请选择需要生成的图标集', + name: 'collections', + choices: collections.map(item => ({ + name: `${item.name} (${item.total} icons)`, + value: item.id, + })), + }, + { + type: 'list', + message: '图标集使用方式', + name: 'useType', + choices: [ + { name: '在线', value: 'online', default: true }, + { name: '离线 (本地)', value: 'offline' }, + ], + }, + ]).then(async (answers) => { + answers.collections.push(...defaultCollectionID) + + await fs.writeJSON( + path.resolve(process.cwd(), 'src/iconify/index.json'), + { + collections: answers.collections, + useType: answers.useType, + }, + ) + + const outputDir = path.resolve(process.cwd(), 'public/icons') + await fs.ensureDir(outputDir) + await fs.emptyDir(outputDir) + + const collectionsMeta: object[] = [] + for (const info of answers.collections) { + const setData = await lookupCollection(info) + + collectionsMeta.push({ + prefix: setData.prefix, + info: setData.info, + icons: Object.keys(setData.icons), + }) + + const offlineFilePath = path.join(outputDir, `${info}-raw.json`) + + if (answers.useType === 'offline') { + await fs.writeJSON(offlineFilePath, setData) + } + } + + await fs.writeJSON( + path.resolve(process.cwd(), 'src/iconify/data.json'), + collectionsMeta, + ) + }) +} + +generateIcons() diff --git a/src/App.vue b/src/App.vue new file mode 100755 index 0000000..739e07d --- /dev/null +++ b/src/App.vue @@ -0,0 +1,86 @@ + + + diff --git a/src/api/index.ts b/src/api/index.ts new file mode 100755 index 0000000..b8ed7e7 --- /dev/null +++ b/src/api/index.ts @@ -0,0 +1,73 @@ +import axios from 'axios' + +// import qs from 'qs' +import Message from 'vue-m-message' +import useUserStore from '@/store/modules/user' + +const api = axios.create({ + baseURL: (import.meta.env.DEV && import.meta.env.VITE_OPEN_PROXY === 'true') ? '/proxy/' : import.meta.env.VITE_APP_API_BASEURL, + timeout: 1000 * 60, + responseType: 'json', +}) + +api.interceptors.request.use( + (request) => { + // 全局拦截请求发送前提交的参数 + const userStore = useUserStore() + // 设置请求头 + if (request.headers) { + if (userStore.isLogin) { + request.headers.Token = userStore.token + } + } + // 是否将 POST 请求参数进行字符串化处理 + if (request.method === 'post') { + // request.data = qs.stringify(request.data, { + // arrayFormat: 'brackets', + // }) + } + return request + }, +) + +api.interceptors.response.use( + (response) => { + /** + * 全局拦截请求发送后返回的数据,如果数据有报错则在这做全局的错误提示 + * 假设返回数据格式为:{ status: 1, error: '', data: '' } + * 规则是当 status 为 1 时表示请求成功,为 0 时表示接口需要登录或者登录状态失效,需要重新登录 + * 请求出错时 error 会返回错误信息 + */ + if (response.data.status === 1) { + if (response.data.error !== '') { + // 错误提示 + Message.error(response.data.error, { + zIndex: 2000, + }) + return Promise.reject(response.data) + } + } + else { + useUserStore().logout() + } + return Promise.resolve(response.data) + }, + (error) => { + let message = error.message + if (message === 'Network Error') { + message = '后端网络故障' + } + else if (message.includes('timeout')) { + message = '接口请求超时' + } + else if (message.includes('Request failed with status code')) { + message = `接口${message.substr(message.length - 3)}异常` + } + Message.error(message, { + zIndex: 2000, + }) + return Promise.reject(error) + }, +) + +export default api diff --git a/src/api/modules/app.ts b/src/api/modules/app.ts new file mode 100755 index 0000000..30bfd07 --- /dev/null +++ b/src/api/modules/app.ts @@ -0,0 +1,13 @@ +import api from '../index' + +export default { + // 后端获取路由数据 + routeList: () => api.get('app/route/list', { + baseURL: '/mock/', + }), + + // 基于文件系统路由模式下,后端获取导航菜单数据 + menuList: () => api.get('app/menu/list', { + baseURL: '/mock/', + }), +} diff --git a/src/api/modules/user.ts b/src/api/modules/user.ts new file mode 100755 index 0000000..b9fd2b2 --- /dev/null +++ b/src/api/modules/user.ts @@ -0,0 +1,24 @@ +import api from '../index' + +export default { + // 登录 + login: (data: { + account: string + password: string + }) => api.post('user/login', data, { + baseURL: '/mock/', + }), + + // 获取权限 + permission: () => api.get('user/permission', { + baseURL: '/mock/', + }), + + // 修改密码 + passwordEdit: (data: { + password: string + newpassword: string + }) => api.post('user/password/edit', data, { + baseURL: '/mock/', + }), +} diff --git a/src/assets/icons/403.svg b/src/assets/icons/403.svg new file mode 100755 index 0000000..0660eff --- /dev/null +++ b/src/assets/icons/403.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/404.svg b/src/assets/icons/404.svg new file mode 100755 index 0000000..7759c6d --- /dev/null +++ b/src/assets/icons/404.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/image-load-fail.svg b/src/assets/icons/image-load-fail.svg new file mode 100755 index 0000000..89ae0fe --- /dev/null +++ b/src/assets/icons/image-load-fail.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/toolbar-collapse.svg b/src/assets/icons/toolbar-collapse.svg new file mode 100755 index 0000000..149dfe8 --- /dev/null +++ b/src/assets/icons/toolbar-collapse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/images/login-banner.png b/src/assets/images/login-banner.png new file mode 100755 index 0000000..a71ecdf Binary files /dev/null and b/src/assets/images/login-banner.png differ diff --git a/src/assets/images/logo.png b/src/assets/images/logo.png new file mode 100755 index 0000000..47d879d Binary files /dev/null and b/src/assets/images/logo.png differ diff --git a/src/assets/styles/globals.scss b/src/assets/styles/globals.scss new file mode 100755 index 0000000..e3828e4 --- /dev/null +++ b/src/assets/styles/globals.scss @@ -0,0 +1,136 @@ +// 页面布局 CSS 变量 +:root { + // 头部高度 + --g-header-height: 80px; + // 侧边栏宽度 + --g-main-sidebar-width: 80px; + --g-sub-sidebar-width: 220px; + --g-sub-sidebar-collapse-width: 64px; + // 侧边栏 Logo 区域高度 + --g-sidebar-logo-height: 50px; + // 工具栏高度 + --g-toolbar-height: 50px; +} + +// 明暗模式 CSS 变量 +/* stylelint-disable-next-line no-duplicate-selectors */ +:root { + &::view-transition-old(root), + &::view-transition-new(root) { + animation: none; + mix-blend-mode: normal; + } + + &::view-transition-old(root) { + z-index: 1; + } + + &::view-transition-new(root) { + z-index: 9999; + } + + --g-box-shadow-color: rgb(0 0 0 / 12%); + + &.dark { + &::view-transition-old(root) { + z-index: 9999; + } + + &::view-transition-new(root) { + z-index: 1; + } + + --g-box-shadow-color: rgb(0 0 0 / 72%); + } +} + +::-webkit-scrollbar { + width: 12px; + height: 12px; +} + +::-webkit-scrollbar-thumb { + background-color: rgb(0 0 0 / 40%); + background-clip: padding-box; + border: 3px solid transparent; + border-radius: 6px; +} + +::-webkit-scrollbar-thumb:hover { + background-color: rgb(0 0 0 / 50%); +} + +::-webkit-scrollbar-track { + background-color: transparent; +} + +html, +body { + height: 100%; +} + +body { + margin: 0; + background-color: var(--g-container-bg); + box-sizing: border-box; + font-family: Lato, "PingFang SC", "Microsoft YaHei", sans-serif; + -webkit-tap-highlight-color: transparent; + + &.overflow-hidden { + overflow: hidden; + } +} + +* { + box-sizing: inherit; +} + +// 右侧内容区针对fixed元素,有横向铺满的需求,可在fixed元素上设置 [data-fixed-calc-width] +[data-fixed-calc-width] { + position: fixed; + left: 50%; + right: 0; + width: calc(100% - var(--g-main-sidebar-actual-width) - var(--g-sub-sidebar-actual-width)); + transform: translateX(-50%) translateX(calc(var(--g-main-sidebar-actual-width) / 2)) translateX(calc(var(--g-sub-sidebar-actual-width) / 2)); +} + +[data-mode="mobile"] { + [data-fixed-calc-width] { + width: 100% !important; + transform: translateX(-50%) !important; + } +} +// textarea 字体跟随系统 +textarea { + font-family: inherit; +} + +/* Overrides Floating Vue */ +.v-popper--theme-dropdown, +.v-popper--theme-tooltip { + --at-apply: inline-flex; +} + +.v-popper--theme-dropdown .v-popper__inner, +.v-popper--theme-tooltip .v-popper__inner { + --at-apply: bg-white dark:bg-stone-8 text-dark dark:text-white rounded shadow ring-1 ring-gray-200 dark:ring-gray-800 border border-solid border-stone/20 text-xs font-normal; + + box-shadow: 0 6px 30px rgb(0 0 0 / 10%); +} + +.v-popper--theme-tooltip .v-popper__arrow-inner, +.v-popper--theme-dropdown .v-popper__arrow-inner { + visibility: visible; + + --at-apply: border-white dark:border-stone-8; +} + +.v-popper--theme-tooltip .v-popper__arrow-outer, +.v-popper--theme-dropdown .v-popper__arrow-outer { + --at-apply: border-stone/20; +} + +.v-popper--theme-tooltip.v-popper--shown, +.v-popper--theme-tooltip.v-popper--shown * { + transition: none !important; +} diff --git a/src/assets/styles/nprogress.scss b/src/assets/styles/nprogress.scss new file mode 100755 index 0000000..a63e3cf --- /dev/null +++ b/src/assets/styles/nprogress.scss @@ -0,0 +1,63 @@ +#nprogress { + pointer-events: none; + + .bar { + position: fixed; + z-index: 1031; + top: 0; + left: 0; + width: 100%; + height: 2px; + background: rgb(var(--ui-primary)); + } + + .peg { + display: block; + position: absolute; + right: 0; + width: 100px; + height: 100%; + opacity: 1; + transform: rotate(3deg) translate(0, -4px); + box-shadow: 0 0 10px rgb(var(--ui-primary)), 0 0 5px rgb(var(--ui-primary)); + } + + .spinner { + display: block; + position: fixed; + z-index: 1031; + top: 11px; + right: 14px; + + .spinner-icon { + width: 18px; + height: 18px; + box-sizing: border-box; + border: solid 2px transparent; + border-radius: 50%; + border-top-color: rgb(var(--ui-primary)); + border-left-color: rgb(var(--ui-primary)); + animation: nprogress-spinner 400ms linear infinite; + } + } +} + +.nprogress-custom-parent { + overflow: hidden; + position: relative; + + #nprogress .spinner, + #nprogress .bar { + position: absolute; + } +} + +@keyframes nprogress-spinner { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} + +@keyframes nprogress-spinner { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} diff --git a/src/assets/styles/resources/utils.scss b/src/assets/styles/resources/utils.scss new file mode 100755 index 0000000..270747c --- /dev/null +++ b/src/assets/styles/resources/utils.scss @@ -0,0 +1,53 @@ +// 文字超出隐藏,默认为单行超出隐藏,可设置多行 +@mixin text-overflow($line: 1, $fixed-width: true) { + @if $line == 1 and $fixed-width == true { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } @else { + /* stylelint-disable-next-line value-no-vendor-prefix */ + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: $line; + overflow: hidden; + } +} + +// 定位居中,默认水平居中,可选择垂直居中,或者水平垂直都居中 +@mixin position-center($type: x) { + position: absolute; + + @if $type == x { + left: 50%; + transform: translateX(-50%); + } + + @if $type == y { + top: 50%; + transform: translateY(-50%); + } + + @if $type == xy { + left: 50%; + top: 50%; + transform: translateX(-50%) translateY(-50%); + } +} + +// 文字两端对齐 +%justify-align { + text-align: justify; + text-align-last: justify; +} + +// 清除浮动 +%clearfix { + zoom: 1; + + &::before, + &::after { + content: ""; + display: block; + clear: both; + } +} diff --git a/src/assets/styles/resources/variables.scss b/src/assets/styles/resources/variables.scss new file mode 100755 index 0000000..d314af3 --- /dev/null +++ b/src/assets/styles/resources/variables.scss @@ -0,0 +1 @@ +// 全局变量 diff --git a/src/components/Auth/index.vue b/src/components/Auth/index.vue new file mode 100755 index 0000000..a25fe08 --- /dev/null +++ b/src/components/Auth/index.vue @@ -0,0 +1,20 @@ + + + diff --git a/src/components/AuthAll/index.vue b/src/components/AuthAll/index.vue new file mode 100755 index 0000000..3c0f36e --- /dev/null +++ b/src/components/AuthAll/index.vue @@ -0,0 +1,20 @@ + + + diff --git a/src/components/FixedActionBar/index.vue b/src/components/FixedActionBar/index.vue new file mode 100755 index 0000000..23a87de --- /dev/null +++ b/src/components/FixedActionBar/index.vue @@ -0,0 +1,37 @@ + + + diff --git a/src/components/NotAllowed/index.vue b/src/components/NotAllowed/index.vue new file mode 100755 index 0000000..59063ee --- /dev/null +++ b/src/components/NotAllowed/index.vue @@ -0,0 +1,49 @@ + + + diff --git a/src/components/PageHeader/index.vue b/src/components/PageHeader/index.vue new file mode 100755 index 0000000..e4bd90b --- /dev/null +++ b/src/components/PageHeader/index.vue @@ -0,0 +1,32 @@ + + + diff --git a/src/components/PageMain/index.vue b/src/components/PageMain/index.vue new file mode 100755 index 0000000..f909076 --- /dev/null +++ b/src/components/PageMain/index.vue @@ -0,0 +1,90 @@ + + + + + diff --git a/src/components/SearchBar/index.vue b/src/components/SearchBar/index.vue new file mode 100755 index 0000000..4ceb0aa --- /dev/null +++ b/src/components/SearchBar/index.vue @@ -0,0 +1,55 @@ + + + diff --git a/src/components/SvgIcon/index.vue b/src/components/SvgIcon/index.vue new file mode 100755 index 0000000..8990d75 --- /dev/null +++ b/src/components/SvgIcon/index.vue @@ -0,0 +1,78 @@ + + + diff --git a/src/components/SystemInfo/index.vue b/src/components/SystemInfo/index.vue new file mode 100755 index 0000000..2720578 --- /dev/null +++ b/src/components/SystemInfo/index.vue @@ -0,0 +1,56 @@ + + + diff --git a/src/components/Trend/index.vue b/src/components/Trend/index.vue new file mode 100755 index 0000000..a0c3544 --- /dev/null +++ b/src/components/Trend/index.vue @@ -0,0 +1,38 @@ + + + diff --git a/src/iconify/data.json b/src/iconify/data.json new file mode 100755 index 0000000..6fe36c7 --- /dev/null +++ b/src/iconify/data.json @@ -0,0 +1 @@ +[{ "prefix": "ant-design", "info": { "name": "Ant Design Icons", "total": 789, "version": "4.2.1", "author": { "name": "HeskeyBaozi", "url": "https://github.com/ant-design/ant-design-icons" }, "license": { "title": "MIT", "spdx": "MIT", "url": "https://github.com/ant-design/ant-design-icons/blob/master/LICENSE" }, "samples": ["pushpin-filled", "pie-chart-outlined", "shopping-twotone"], "height": 16, "category": "General", "palette": false }, "icons": ["account-book-filled", "account-book-outlined", "account-book-twotone", "aim-outlined", "alert-filled", "alert-outlined", "alert-twotone", "alibaba-outlined", "align-center-outlined", "align-left-outlined", "align-right-outlined", "alipay-circle-filled", "alipay-circle-outlined", "alipay-outlined", "alipay-square-filled", "aliwangwang-filled", "aliwangwang-outlined", "aliyun-outlined", "amazon-circle-filled", "amazon-outlined", "amazon-square-filled", "android-filled", "android-outlined", "ant-cloud-outlined", "ant-design-outlined", "apartment-outlined", "api-filled", "api-outlined", "api-twotone", "apple-filled", "apple-outlined", "appstore-add-outlined", "appstore-filled", "appstore-outlined", "appstore-twotone", "area-chart-outlined", "arrow-down-outlined", "arrow-left-outlined", "arrow-right-outlined", "arrow-up-outlined", "arrows-alt-outlined", "audio-filled", "audio-muted-outlined", "audio-outlined", "audio-twotone", "audit-outlined", "backward-filled", "backward-outlined", "bank-filled", "bank-outlined", "bank-twotone", "bar-chart-outlined", "barcode-outlined", "bars-outlined", "behance-circle-filled", "behance-outlined", "behance-square-filled", "behance-square-outlined", "bell-filled", "bell-outlined", "bell-twotone", "bg-colors-outlined", "block-outlined", "bold-outlined", "book-filled", "book-outlined", "book-twotone", "border-bottom-outlined", "border-horizontal-outlined", "border-inner-outlined", "border-left-outlined", "border-outer-outlined", "border-outlined", "border-right-outlined", "border-top-outlined", "border-verticle-outlined", "borderless-table-outlined", "box-plot-filled", "box-plot-outlined", "box-plot-twotone", "branches-outlined", "bug-filled", "bug-outlined", "bug-twotone", "build-filled", "build-outlined", "build-twotone", "bulb-filled", "bulb-outlined", "bulb-twotone", "calculator-filled", "calculator-outlined", "calculator-twotone", "calendar-filled", "calendar-outlined", "calendar-twotone", "camera-filled", "camera-outlined", "camera-twotone", "car-filled", "car-outlined", "car-twotone", "caret-down-filled", "caret-down-outlined", "caret-left-filled", "caret-left-outlined", "caret-right-filled", "caret-right-outlined", "caret-up-filled", "caret-up-outlined", "carry-out-filled", "carry-out-outlined", "carry-out-twotone", "check-circle-filled", "check-circle-outlined", "check-circle-twotone", "check-outlined", "check-square-filled", "check-square-outlined", "check-square-twotone", "chrome-filled", "chrome-outlined", "ci-circle-filled", "ci-circle-outlined", "ci-circle-twotone", "ci-outlined", "ci-twotone", "clear-outlined", "clock-circle-filled", "clock-circle-outlined", "clock-circle-twotone", "close-circle-filled", "close-circle-outlined", "close-circle-twotone", "close-outlined", "close-square-filled", "close-square-outlined", "close-square-twotone", "cloud-download-outlined", "cloud-filled", "cloud-outlined", "cloud-server-outlined", "cloud-sync-outlined", "cloud-twotone", "cloud-upload-outlined", "cluster-outlined", "code-filled", "code-outlined", "code-sandbox-circle-filled", "code-sandbox-outlined", "code-sandbox-square-filled", "code-twotone", "codepen-circle-filled", "codepen-circle-outlined", "codepen-outlined", "codepen-square-filled", "coffee-outlined", "column-height-outlined", "column-width-outlined", "comment-outlined", "compass-filled", "compass-outlined", "compass-twotone", "compress-outlined", "console-sql-outlined", "contacts-filled", "contacts-outlined", "contacts-twotone", "container-filled", "container-outlined", "container-twotone", "control-filled", "control-outlined", "control-twotone", "copy-filled", "copy-outlined", "copy-twotone", "copyright-circle-filled", "copyright-circle-outlined", "copyright-circle-twotone", "copyright-outlined", "copyright-twotone", "credit-card-filled", "credit-card-outlined", "credit-card-twotone", "crown-filled", "crown-outlined", "crown-twotone", "customer-service-filled", "customer-service-outlined", "customer-service-twotone", "dash-outlined", "dashboard-filled", "dashboard-outlined", "dashboard-twotone", "database-filled", "database-outlined", "database-twotone", "delete-column-outlined", "delete-filled", "delete-outlined", "delete-row-outlined", "delete-twotone", "delivered-procedure-outlined", "deployment-unit-outlined", "desktop-outlined", "diff-filled", "diff-outlined", "diff-twotone", "dingding-outlined", "dingtalk-circle-filled", "dingtalk-outlined", "dingtalk-square-filled", "disconnect-outlined", "dislike-filled", "dislike-outlined", "dislike-twotone", "dollar-circle-filled", "dollar-circle-outlined", "dollar-circle-twotone", "dollar-outlined", "dollar-twotone", "dot-chart-outlined", "double-left-outlined", "double-right-outlined", "down-circle-filled", "down-circle-outlined", "down-circle-twotone", "down-outlined", "down-square-filled", "down-square-outlined", "down-square-twotone", "download-outlined", "drag-outlined", "dribbble-circle-filled", "dribbble-outlined", "dribbble-square-filled", "dribbble-square-outlined", "dropbox-circle-filled", "dropbox-outlined", "dropbox-square-filled", "edit-filled", "edit-outlined", "edit-twotone", "ellipsis-outlined", "enter-outlined", "environment-filled", "environment-outlined", "environment-twotone", "euro-circle-filled", "euro-circle-outlined", "euro-circle-twotone", "euro-outlined", "euro-twotone", "exception-outlined", "exclamation-circle-filled", "exclamation-circle-outlined", "exclamation-circle-twotone", "exclamation-outlined", "expand-alt-outlined", "expand-outlined", "experiment-filled", "experiment-outlined", "experiment-twotone", "export-outlined", "eye-filled", "eye-invisible-filled", "eye-invisible-outlined", "eye-invisible-twotone", "eye-outlined", "eye-twotone", "facebook-filled", "facebook-outlined", "fall-outlined", "fast-backward-filled", "fast-backward-outlined", "fast-forward-filled", "fast-forward-outlined", "field-binary-outlined", "field-number-outlined", "field-string-outlined", "field-time-outlined", "file-add-filled", "file-add-outlined", "file-add-twotone", "file-done-outlined", "file-excel-filled", "file-excel-outlined", "file-excel-twotone", "file-exclamation-filled", "file-exclamation-outlined", "file-exclamation-twotone", "file-filled", "file-gif-outlined", "file-image-filled", "file-image-outlined", "file-image-twotone", "file-jpg-outlined", "file-markdown-filled", "file-markdown-outlined", "file-markdown-twotone", "file-outlined", "file-pdf-filled", "file-pdf-outlined", "file-pdf-twotone", "file-ppt-filled", "file-ppt-outlined", "file-ppt-twotone", "file-protect-outlined", "file-search-outlined", "file-sync-outlined", "file-text-filled", "file-text-outlined", "file-text-twotone", "file-twotone", "file-unknown-filled", "file-unknown-outlined", "file-unknown-twotone", "file-word-filled", "file-word-outlined", "file-word-twotone", "file-zip-filled", "file-zip-outlined", "file-zip-twotone", "filter-filled", "filter-outlined", "filter-twotone", "fire-filled", "fire-outlined", "fire-twotone", "flag-filled", "flag-outlined", "flag-twotone", "folder-add-filled", "folder-add-outlined", "folder-add-twotone", "folder-filled", "folder-open-filled", "folder-open-outlined", "folder-open-twotone", "folder-outlined", "folder-twotone", "folder-view-outlined", "font-colors-outlined", "font-size-outlined", "fork-outlined", "form-outlined", "format-painter-filled", "format-painter-outlined", "forward-filled", "forward-outlined", "frown-filled", "frown-outlined", "frown-twotone", "fullscreen-exit-outlined", "fullscreen-outlined", "function-outlined", "fund-filled", "fund-outlined", "fund-projection-screen-outlined", "fund-twotone", "fund-view-outlined", "funnel-plot-filled", "funnel-plot-outlined", "funnel-plot-twotone", "gateway-outlined", "gif-outlined", "gift-filled", "gift-outlined", "gift-twotone", "github-filled", "github-outlined", "gitlab-filled", "gitlab-outlined", "global-outlined", "gold-filled", "gold-outlined", "gold-twotone", "golden-filled", "google-circle-filled", "google-outlined", "google-plus-circle-filled", "google-plus-outlined", "google-plus-square-filled", "google-square-filled", "group-outlined", "hdd-filled", "hdd-outlined", "hdd-twotone", "heart-filled", "heart-outlined", "heart-twotone", "heat-map-outlined", "highlight-filled", "highlight-outlined", "highlight-twotone", "history-outlined", "holder-outlined", "home-filled", "home-outlined", "home-twotone", "hourglass-filled", "hourglass-outlined", "hourglass-twotone", "html5-filled", "html5-outlined", "html5-twotone", "idcard-filled", "idcard-outlined", "idcard-twotone", "ie-circle-filled", "ie-outlined", "ie-square-filled", "import-outlined", "inbox-outlined", "info-circle-filled", "info-circle-outlined", "info-circle-twotone", "info-outlined", "insert-row-above-outlined", "insert-row-below-outlined", "insert-row-left-outlined", "insert-row-right-outlined", "instagram-filled", "instagram-outlined", "insurance-filled", "insurance-outlined", "insurance-twotone", "interaction-filled", "interaction-outlined", "interaction-twotone", "issues-close-outlined", "italic-outlined", "key-outlined", "laptop-outlined", "layout-filled", "layout-outlined", "layout-twotone", "left-circle-filled", "left-circle-outlined", "left-circle-twotone", "left-outlined", "left-square-filled", "left-square-outlined", "left-square-twotone", "like-filled", "like-outlined", "like-twotone", "line-chart-outlined", "line-height-outlined", "line-outlined", "link-outlined", "linkedin-filled", "linkedin-outlined", "loading-3-quarters-outlined", "loading-outlined", "lock-filled", "lock-outlined", "lock-twotone", "login-outlined", "logout-outlined", "mac-command-filled", "mac-command-outlined", "mail-filled", "mail-outlined", "mail-twotone", "man-outlined", "medicine-box-filled", "medicine-box-outlined", "medicine-box-twotone", "medium-circle-filled", "medium-outlined", "medium-square-filled", "medium-workmark-outlined", "meh-filled", "meh-outlined", "meh-twotone", "menu-fold-outlined", "menu-outlined", "menu-unfold-outlined", "merge-cells-outlined", "message-filled", "message-outlined", "message-twotone", "minus-circle-filled", "minus-circle-outlined", "minus-circle-twotone", "minus-outlined", "minus-square-filled", "minus-square-outlined", "minus-square-twotone", "mobile-filled", "mobile-outlined", "mobile-twotone", "money-collect-filled", "money-collect-outlined", "money-collect-twotone", "monitor-outlined", "more-outlined", "node-collapse-outlined", "node-expand-outlined", "node-index-outlined", "notification-filled", "notification-outlined", "notification-twotone", "number-outlined", "one-to-one-outlined", "ordered-list-outlined", "paper-clip-outlined", "partition-outlined", "pause-circle-filled", "pause-circle-outlined", "pause-circle-twotone", "pause-outlined", "pay-circle-filled", "pay-circle-outlined", "percentage-outlined", "phone-filled", "phone-outlined", "phone-twotone", "pic-center-outlined", "pic-left-outlined", "pic-right-outlined", "picture-filled", "picture-outlined", "picture-twotone", "pie-chart-filled", "pie-chart-outlined", "pie-chart-twotone", "play-circle-filled", "play-circle-outlined", "play-circle-twotone", "play-square-filled", "play-square-outlined", "play-square-twotone", "plus-circle-filled", "plus-circle-outlined", "plus-circle-twotone", "plus-outlined", "plus-square-filled", "plus-square-outlined", "plus-square-twotone", "pound-circle-filled", "pound-circle-outlined", "pound-circle-twotone", "pound-outlined", "poweroff-outlined", "printer-filled", "printer-outlined", "printer-twotone", "profile-filled", "profile-outlined", "profile-twotone", "project-filled", "project-outlined", "project-twotone", "property-safety-filled", "property-safety-outlined", "property-safety-twotone", "pull-request-outlined", "pushpin-filled", "pushpin-outlined", "pushpin-twotone", "qq-circle-filled", "qq-outlined", "qq-square-filled", "qrcode-outlined", "question-circle-filled", "question-circle-outlined", "question-circle-twotone", "question-outlined", "radar-chart-outlined", "radius-bottomleft-outlined", "radius-bottomright-outlined", "radius-setting-outlined", "radius-upleft-outlined", "radius-upright-outlined", "read-filled", "read-outlined", "reconciliation-filled", "reconciliation-outlined", "reconciliation-twotone", "red-envelope-filled", "red-envelope-outlined", "red-envelope-twotone", "reddit-circle-filled", "reddit-outlined", "reddit-square-filled", "redo-outlined", "reload-outlined", "rest-filled", "rest-outlined", "rest-twotone", "retweet-outlined", "right-circle-filled", "right-circle-outlined", "right-circle-twotone", "right-outlined", "right-square-filled", "right-square-outlined", "right-square-twotone", "rise-outlined", "robot-filled", "robot-outlined", "rocket-filled", "rocket-outlined", "rocket-twotone", "rollback-outlined", "rotate-left-outlined", "rotate-right-outlined", "safety-certificate-filled", "safety-certificate-outlined", "safety-certificate-twotone", "safety-outlined", "save-filled", "save-outlined", "save-twotone", "scan-outlined", "schedule-filled", "schedule-outlined", "schedule-twotone", "scissor-outlined", "search-outlined", "security-scan-filled", "security-scan-outlined", "security-scan-twotone", "select-outlined", "send-outlined", "setting-filled", "setting-outlined", "setting-twotone", "shake-outlined", "share-alt-outlined", "shop-filled", "shop-outlined", "shop-twotone", "shopping-cart-outlined", "shopping-filled", "shopping-outlined", "shopping-twotone", "shrink-outlined", "signal-filled", "sisternode-outlined", "sketch-circle-filled", "sketch-outlined", "sketch-square-filled", "skin-filled", "skin-outlined", "skin-twotone", "skype-filled", "skype-outlined", "slack-circle-filled", "slack-outlined", "slack-square-filled", "slack-square-outlined", "sliders-filled", "sliders-outlined", "sliders-twotone", "small-dash-outlined", "smile-filled", "smile-outlined", "smile-twotone", "snippets-filled", "snippets-outlined", "snippets-twotone", "solution-outlined", "sort-ascending-outlined", "sort-descending-outlined", "sound-filled", "sound-outlined", "sound-twotone", "split-cells-outlined", "star-filled", "star-outlined", "star-twotone", "step-backward-filled", "step-backward-outlined", "step-forward-filled", "step-forward-outlined", "stock-outlined", "stop-filled", "stop-outlined", "stop-twotone", "strikethrough-outlined", "subnode-outlined", "swap-left-outlined", "swap-outlined", "swap-right-outlined", "switcher-filled", "switcher-outlined", "switcher-twotone", "sync-outlined", "table-outlined", "tablet-filled", "tablet-outlined", "tablet-twotone", "tag-filled", "tag-outlined", "tag-twotone", "tags-filled", "tags-outlined", "tags-twotone", "taobao-circle-filled", "taobao-circle-outlined", "taobao-outlined", "taobao-square-filled", "team-outlined", "thunderbolt-filled", "thunderbolt-outlined", "thunderbolt-twotone", "to-top-outlined", "tool-filled", "tool-outlined", "tool-twotone", "trademark-circle-filled", "trademark-circle-outlined", "trademark-circle-twotone", "trademark-outlined", "transaction-outlined", "translation-outlined", "trophy-filled", "trophy-outlined", "trophy-twotone", "twitter-circle-filled", "twitter-outlined", "twitter-square-filled", "underline-outlined", "undo-outlined", "ungroup-outlined", "unlock-filled", "unlock-outlined", "unlock-twotone", "unordered-list-outlined", "up-circle-filled", "up-circle-outlined", "up-circle-twotone", "up-outlined", "up-square-filled", "up-square-outlined", "up-square-twotone", "upload-outlined", "usb-filled", "usb-outlined", "usb-twotone", "user-add-outlined", "user-delete-outlined", "user-outlined", "user-switch-outlined", "usergroup-add-outlined", "usergroup-delete-outlined", "verified-outlined", "vertical-align-bottom-outlined", "vertical-align-middle-outlined", "vertical-align-top-outlined", "vertical-left-outlined", "vertical-right-outlined", "video-camera-add-outlined", "video-camera-filled", "video-camera-outlined", "video-camera-twotone", "wallet-filled", "wallet-outlined", "wallet-twotone", "warning-filled", "warning-outlined", "warning-twotone", "wechat-filled", "wechat-outlined", "weibo-circle-filled", "weibo-circle-outlined", "weibo-outlined", "weibo-square-filled", "weibo-square-outlined", "whats-app-outlined", "wifi-outlined", "windows-filled", "windows-outlined", "woman-outlined", "yahoo-filled", "yahoo-outlined", "youtube-filled", "youtube-outlined", "yuque-filled", "yuque-outlined", "zhihu-circle-filled", "zhihu-outlined", "zhihu-square-filled", "zoom-in-outlined", "zoom-out-outlined"] }, { "prefix": "flagpack", "info": { "name": "Flagpack", "total": 255, "version": "2.0.0", "author": { "name": "Yummygum", "url": "https://github.com/Yummygum/flagpack-core" }, "license": { "title": "MIT", "spdx": "MIT", "url": "https://github.com/Yummygum/flagpack-core/blob/main/LICENSE" }, "samples": ["ci", "gb-eng", "wf"], "height": 24, "category": "Maps / Flags", "palette": true }, "icons": ["ad", "ae", "af", "ag", "ai", "al", "am", "ao", "aq", "ar", "as", "at", "au", "aw", "ax", "az", "ba", "bb", "bd", "be", "bf", "bg", "bh", "bi", "bj", "bl", "bm", "bn", "bo", "bq-bo", "bq-sa", "bq-se", "br", "bs", "bt", "bv", "bw", "by", "bz", "ca", "cc", "cd", "cf", "cg", "ch", "ci", "ck", "cl", "cm", "cn", "co", "cr", "cu", "cv", "cw", "cx", "cy", "cz", "de", "dj", "dk", "dm", "do", "dz", "ec", "ee", "eg", "eh", "er", "es", "et", "fi", "fj", "fk", "fm", "fo", "fr", "ga", "gb-eng", "gb-nir", "gb-sct", "gb-ukm", "gb-wls", "gd", "ge", "gf", "gg", "gh", "gi", "gl", "gm", "gn", "gp", "gq", "gr", "gs", "gt", "gu", "gw", "gy", "hk", "hm", "hn", "hr", "ht", "hu", "id", "ie", "il", "im", "in", "io", "iq", "ir", "is", "it", "je", "jm", "jo", "jp", "ke", "kg", "kh", "ki", "km", "kn", "kp", "kr", "kw", "ky", "kz", "la", "lb", "lc", "li", "lk", "lr", "ls", "lt", "lu", "lv", "ly", "ma", "mc", "md", "me", "mf", "mg", "mh", "mk", "ml", "mm", "mn", "mo", "mp", "mq", "mr", "ms", "mt", "mu", "mv", "mw", "mx", "my", "mz", "na", "nc", "ne", "nf", "ng", "ni", "nl", "no", "np", "nr", "nu", "nz", "om", "pa", "pe", "pf", "pg", "ph", "pk", "pl", "pm", "pn", "pr", "ps", "pt", "pw", "py", "qa", "re", "ro", "rs", "ru", "rw", "sa", "sb", "sc", "sd", "se", "sg", "sh", "si", "sj", "sk", "sl", "sm", "sn", "so", "sr", "ss", "st", "sv", "sx", "sy", "sz", "tc", "td", "tf", "tg", "th", "tj", "tk", "tl", "tm", "tn", "to", "tr", "tt", "tv", "tw", "tz", "ua", "ug", "um", "us", "uy", "uz", "va", "vc", "ve", "vg", "vi", "vn", "vu", "wf", "ws", "ye", "yt", "za", "zm", "zw"] }, { "prefix": "icon-park", "info": { "name": "IconPark", "total": 2437, "version": "1.3.5", "author": { "name": "ByteDance", "url": "https://github.com/bytedance/IconPark" }, "license": { "title": "Apache 2.0", "spdx": "Apache-2.0", "url": "https://github.com/bytedance/IconPark/blob/master/LICENSE" }, "samples": ["add-one", "english-mustache", "basketball-clothes"], "height": 24, "category": "General", "palette": true }, "icons": ["a-cane", "abdominal", "abnormal", "acceleration", "accept-email", "acoustic", "activity-source", "ad", "ad-product", "add", "add-four", "add-item", "add-mode", "add-music", "add-one", "add-pic", "add-print", "add-subset", "add-subtract", "add-text", "add-text-two", "add-three", "add-user", "address-book", "adjacent-item", "adjustment", "adobe-illustrate", "adobe-indesign", "adobe-lightroom", "adobe-photoshop", "afferent", "afferent-two", "afro-pick", "agreement", "aiming", "air-conditioning", "airplane-window", "airplane-window-one", "airplay", "airpods", "alarm", "alarm-clock", "align-bottom", "align-bottom-two", "align-horizontal-center-two", "align-horizontally", "align-left", "align-left-one", "align-left-two", "align-right", "align-right-one", "align-right-two", "align-text-both", "align-text-both-one", "align-text-bottom", "align-text-bottom-one", "align-text-center", "align-text-center-one", "align-text-left", "align-text-left-one", "align-text-middle", "align-text-middle-one", "align-text-right", "align-text-right-one", "align-text-top", "align-text-top-one", "align-top", "align-top-two", "align-vertical-center-two", "align-vertically", "alignment-bottom-center", "alignment-bottom-left", "alignment-bottom-right", "alignment-horizontal-bottom", "alignment-horizontal-center", "alignment-horizontal-top", "alignment-left-bottom", "alignment-left-center", "alignment-left-top", "alignment-right-bottom", "alignment-right-center", "alignment-right-top", "alignment-top-center", "alignment-top-left", "alignment-top-right", "alignment-vertical-center", "alignment-vertical-left", "alignment-vertical-right", "alipay", "all-application", "alphabetical-sorting", "alphabetical-sorting-two", "analysis", "anchor", "anchor-one", "anchor-round", "anchor-squre", "anchor-two", "android", "angry-face", "anguished-face", "anti-corrosion", "aperture-priority", "api", "api-app", "app-store", "app-switch", "apple", "apple-one", "applet-closed", "application", "application-effect", "application-menu", "application-one", "application-two", "appointment", "arc-de-triomphe", "archers-bow", "area-map", "arena", "arithmetic", "arithmetic-buttons", "arithmetic-one", "arrow-circle-down", "arrow-circle-left", "arrow-circle-right", "arrow-circle-up", "arrow-down", "arrow-keys", "arrow-left", "arrow-left-down", "arrow-left-up", "arrow-right", "arrow-right-down", "arrow-right-up", "arrow-up", "assembly-line", "association", "asterisk", "asterisk-key", "astonished-face", "at-sign", "attention", "audio-file", "audit", "auto-focus", "auto-height-one", "auto-line-height", "auto-line-width", "auto-width", "auto-width-one", "avatar", "average", "aviation", "avocado", "avocado-one", "baby", "baby-app", "baby-bottle", "baby-car-seat", "baby-feet", "baby-meal", "baby-mobile", "baby-one", "baby-pants", "baby-sling", "baby-taste", "bachelor-cap", "back", "background-color", "backpack", "bad", "bad-one", "bad-two", "badge", "badge-two", "badminton", "baggage-delay", "balance", "balance-one", "balance-two", "banana", "bank", "bank-card", "bank-card-one", "bank-card-two", "bank-transfer", "baokemeng", "bar-code", "barbecue", "barber-brush", "barber-clippers", "baseball", "baseball-cap", "basketball", "basketball-clothes", "basketball-one", "basketball-stand", "battery-charge", "battery-empty", "battery-full", "battery-working", "battery-working-one", "beach-umbrella", "beauty", "beauty-instrument", "bedside", "bedside-two", "beer", "beer-mug", "behance", "bell-ring", "belt", "benz", "bezier-curve", "bib", "big-clock", "big-x", "bike", "bill", "birthday-cake", "bitcoin", "black-eight", "blade", "bless", "block", "block-eight", "block-five", "block-four", "block-nine", "block-one", "block-seven", "block-six", "block-ten", "block-three", "block-two", "blockchain", "blocks-and-arrows", "bluetooth", "bolt-one", "bone", "book", "book-one", "book-open", "bookmark", "bookmark-one", "bookshelf", "booster-car-seat", "booth", "boots", "bottle", "bottle-one", "bottle-three", "bottle-two", "bottom-bar", "bottom-bar-one", "bow", "bowl", "bowl-one", "bowling", "box", "boxing", "boxing-one", "boy", "boy-one", "boy-stroller", "boy-two", "brain", "brake-pads", "branch", "branch-one", "branch-two", "brdige-three", "bread", "bread-machine", "bread-one", "breast-pump", "bridge-one", "bridge-two", "briefcase", "brightness", "bring-forward", "bring-to-front", "bring-to-front-one", "broadcast", "broadcast-one", "broadcast-radio", "browser", "browser-chrome", "browser-safari", "bubble-chart", "bug", "building-four", "building-one", "building-three", "building-two", "bullet-map", "bus", "bus-two", "buy", "bydesign", "bye", "bytedance", "bytedance-mini-app", "cable-car", "cake", "cake-five", "cake-four", "cake-one", "cake-three", "cake-two", "calculator", "calculator-one", "calendar", "calendar-dot", "calendar-thirty", "calendar-thirty-two", "calendar-three", "camera", "camera-five", "camera-four", "camera-one", "camera-three", "camera-two", "camp", "candy", "canned-fruit", "car", "car-battery", "card-two", "cardioelectric", "carousel", "carousel-video", "carrot", "cast-screen", "castle", "category-management", "caution", "cc", "cd", "ce-marking", "cell", "center-alignment", "certificate", "chafing-dish", "chafing-dish-one", "chair", "chair-one", "change", "change-date-sort", "charging-treasure", "chart-graph", "chart-histogram", "chart-histogram-one", "chart-histogram-two", "chart-line", "chart-line-area", "chart-pie", "chart-pie-one", "chart-proportion", "chart-ring", "chart-scatter", "chart-stock", "check", "check-correct", "check-in", "check-one", "check-small", "checkbox", "checkerboard", "checklist", "cheese", "chef-hat", "chef-hat-one", "cherry", "chess", "chess-one", "chest", "chicken", "chicken-leg", "child-with-pacifier", "children-cap", "children-pyramid", "chili", "chimney", "chinese", "chinese-one", "chinese-pavilion", "chip", "chopping-board", "chopsticks-fork", "christmas-tree", "church-one", "church-two", "circle-double-down", "circle-double-left", "circle-double-right", "circle-double-up", "circle-five-line", "circle-four", "circle-four-line", "circle-house", "circle-left-down", "circle-left-up", "circle-right-down", "circle-right-up", "circle-three", "circle-two-line", "circles-and-triangles", "circles-seven", "circular-connection", "circus", "city", "city-gate", "city-one", "clap", "classroom", "clear", "clear-format", "click", "click-tap", "click-tap-two", "click-to-fold", "clipboard", "clock-tower", "close", "close-one", "close-remind", "close-small", "close-wifi", "clothes-briefs", "clothes-cardigan", "clothes-crew-neck", "clothes-diapers", "clothes-gloves", "clothes-gloves-two", "clothes-hoodie", "clothes-pants", "clothes-pants-short", "clothes-pants-sweat", "clothes-short-sleeve", "clothes-skates", "clothes-suit", "clothes-sweater", "clothes-turtleneck", "clothes-windbreaker", "cloud-storage", "cloudy", "cloudy-night", "clue", "coat-hanger", "cocktail", "coconut-tree", "code", "code-brackets", "code-download", "cola", "collapse-text-input", "collection-files", "collection-records", "color-card", "color-filter", "column", "comb", "come", "command", "comment", "comment-one", "comments", "commodity", "communication", "commuter-bag", "compass", "compass-one", "components", "composition", "compression", "computer", "computer-one", "concept-sharing", "concern", "conditioner", "cone", "cones", "config", "confounded-face", "confused-face", "connect", "connect-address-one", "connect-address-two", "connection", "connection-arrow", "connection-box", "connection-point", "connection-point-two", "consignment", "consume", "contrast", "contrast-view", "contrast-view-circle", "control", "converging-gateway", "cook", "cooking", "cooking-pot", "cool", "cooperative-handshake", "coordinate-system", "copy", "copy-link", "copy-one", "copyright", "corner-down-left", "corner-down-right", "corner-left-down", "corner-left-up", "corner-right-down", "corner-right-up", "corner-up-left", "corner-up-right", "coronavirus", "correct", "cosmetic-brush", "coupon", "court", "cpu", "crab", "creation-date-sort", "creative", "credit", "crib", "croissant", "cross-ring", "cross-ring-two", "crown", "crown-three", "crown-two", "cruise", "crying-baby", "cube", "cube-five", "cube-four", "cube-three", "cube-two", "cup", "cup-four", "cup-one", "curling", "currency", "curve-adjustment", "customer", "cutting", "cutting-one", "cuvette", "cycle", "cycle-arrow", "cycle-movement", "cycle-one", "cylinder", "damage-map", "dark-mode", "dashboard", "dashboard-car", "dashboard-one", "dashboard-two", "data", "data-all", "data-arrival", "data-display", "data-file", "data-four", "data-lock", "data-null", "data-one", "data-screen", "data-server", "data-sheet", "data-switching", "data-three", "data-two", "data-user", "database-alert", "database-code", "database-config", "database-download", "database-enter", "database-fail", "database-first", "database-forbid", "database-lock", "database-network", "database-network-point", "database-point", "database-position", "database-power", "database-proportion", "database-search", "database-setting", "database-success", "database-sync", "database-time", "date-comes-back", "deadline-sort", "death-star", "deeplink", "degree-hat", "delete", "delete-key", "delete-mode", "delete-one", "delete-themes", "delete-three", "delete-two", "delivery", "deposit", "descend", "desk-lamp", "detection", "devices", "diamond", "diamond-necklace", "diamond-one", "diamond-ring", "diamond-three", "diamond-two", "diamonds", "dianziqian", "diapers-one", "difference-set", "digital-watches", "direction", "direction-adjustment", "direction-adjustment-three", "direction-adjustment-two", "disappointed-face", "discovery-index", "disk", "disk-one", "disk-two", "dislike", "dislike-two", "display", "distortion", "distraught-face", "distribute-horizontal-spacing", "distribute-horizontally", "distribute-vertical-spacing", "distribute-vertically", "dividing-line", "diving", "diving-bottle", "diving-suit", "division", "dizzy-face", "doc-add", "doc-detail", "doc-fail", "doc-search", "doc-search-two", "doc-success", "document-folder", "dollar", "dome", "dome-light", "done-all", "dongchedi", "door-handle", "dot", "double-bed", "double-down", "double-left", "double-right", "double-up", "doughnut", "down", "down-c", "down-one", "down-small", "down-square", "down-two", "download", "download-four", "download-one", "download-three", "download-two", "drag", "dribble", "drink", "drone", "drone-one", "drop-down-list", "drop-shadow-down", "drop-shadow-left", "drop-shadow-right", "drop-shadow-up", "dropbox", "drumstick", "dubai", "dumbbell", "dvi", "earth", "easy", "edit", "edit-movie", "edit-name", "edit-one", "edit-two", "editor", "effects", "egg", "egg-one", "eggplant", "eiffel-tower", "eight-key", "electric-iron", "electric-wave", "electrocardiogram", "electronic-door-lock", "electronic-locks-close", "electronic-locks-open", "electronic-pen", "elevator", "email-block", "email-delect", "email-down", "email-fail", "email-lock", "email-push", "email-search", "email-security", "email-successfully", "emotion-happy", "emotion-unhappy", "empty", "end-time-sort", "endless", "endocrine", "endpoint-displacement", "endpoint-flat", "endpoint-round", "endpoint-square", "energy-socket", "english", "english-mustache", "enquire", "enter-key", "enter-key-one", "enter-the-keyboard", "entertainment", "envelope", "envelope-one", "equal-ratio", "equalizer", "erase", "error", "error-prompt", "escalators", "ethernet-off", "ethernet-on", "every-user", "excel", "excel-one", "exchange", "exchange-four", "exchange-one", "exchange-three", "exchange-two", "exclude-selection", "exclusive-gateway", "expand-down", "expand-down-one", "expand-left", "expand-left-and-right", "expand-right", "expand-text-input", "expand-up", "expenses", "expenses-one", "experiment", "experiment-one", "export", "express-delivery", "expressionless-face", "extend", "external-transmission", "eyebrow", "eyes", "f-eight-key", "f-five-key", "f-four-key", "f-n-key", "f-nine-key", "f-one-key", "f-seven-key", "f-six-key", "f-three-key", "f-two-key", "f-zero-key", "face-powder", "face-recognition", "face-with-smiling-open-eyes", "face-without-mouth", "facebook", "facebook-one", "facetime", "faceu", "facial-cleanser", "factory-building", "family", "fan", "fanqiexiaoshuo", "feelgood", "feelgood-one", "feiyu", "female", "fence-one", "fence-two", "ferris-wheel", "figma", "figma-component", "figma-flatten-selection", "figma-mask", "figma-reset-instance", "file-addition", "file-addition-one", "file-cabinet", "file-code", "file-code-one", "file-collection", "file-collection-one", "file-conversion", "file-conversion-one", "file-date", "file-date-one", "file-display", "file-display-one", "file-doc", "file-editing", "file-editing-one", "file-excel", "file-failed", "file-failed-one", "file-focus", "file-focus-one", "file-gif", "file-hash", "file-hash-one", "file-hiding", "file-hiding-one", "file-jpg", "file-lock", "file-lock-one", "file-music", "file-music-one", "file-pdf", "file-pdf-one", "file-ppt", "file-protection", "file-protection-one", "file-quality", "file-quality-one", "file-question", "file-removal", "file-removal-one", "file-search", "file-search-one", "file-search-two", "file-settings", "file-settings-one", "file-staff", "file-staff-one", "file-success", "file-success-one", "file-text", "file-text-one", "file-tips", "file-tips-one", "file-txt", "file-txt-one", "file-withdrawal", "file-withdrawal-one", "file-word", "file-zip", "fill", "filter", "filter-one", "finance", "financing", "financing-one", "financing-two", "find", "find-one", "fingernail", "fingerprint", "fingerprint-three", "fingerprint-two", "fire", "fire-extinguisher", "fire-extinguisher-one", "fire-two", "fireworks", "first", "fish", "fishing", "fist", "five", "five-ellipses", "five-five", "five-key", "five-star-badge", "flag", "flash-payment", "flashlamp", "flashlight", "flask", "flight-airflow", "flight-safety", "flip-camera", "flip-horizontally", "flip-vertically", "flirt", "float", "fm", "focus", "focus-one", "fog", "fold-up-one", "folder", "folder-block", "folder-block-one", "folder-close", "folder-code", "folder-code-one", "folder-conversion", "folder-conversion-one", "folder-download", "folder-failed", "folder-failed-one", "folder-focus", "folder-focus-one", "folder-lock", "folder-lock-one", "folder-minus", "folder-music", "folder-music-one", "folder-open", "folder-plus", "folder-protection", "folder-protection-one", "folder-quality", "folder-quality-one", "folder-search", "folder-search-one", "folder-settings", "folder-settings-one", "folder-success", "folder-success-one", "folder-upload", "folder-withdrawal", "folder-withdrawal-one", "follow-up-date-sort", "font-search", "font-size", "font-size-two", "football", "forbid", "fork", "fork-spoon", "form", "form-one", "format", "format-brush", "formula", "foundation-makeup", "four", "four-arrows", "four-four", "four-key", "four-leaves", "four-point-connection", "four-round-point-connection", "foursquare", "freeze-column", "freeze-line", "freezing-line-column", "french-fries", "friends-circle", "frowning-face-whit-open-mouth", "full-dress-longuette", "full-screen", "full-screen-one", "full-screen-play", "full-screen-two", "full-selection", "fullwidth", "funds", "future-build-one", "future-build-three", "future-build-two", "game", "game-console", "game-console-one", "game-emoji", "game-handle", "game-ps", "game-three", "game-two", "garage", "garlic", "gastrointestinal", "gate", "gate-machine", "general-branch", "geometric-flowers", "germs", "ghost", "gift", "gift-box", "girl", "girl-one", "girl-two", "github", "github-one", "gitlab", "glasses", "glasses-one", "globe", "glove", "go-end", "go-on", "go-start", "goblet", "goblet-cracking", "goblet-full", "goblet-one", "gold-medal", "gold-medal-two", "golf-course", "good", "good-one", "good-two", "google", "google-ads", "gopro", "gps", "graphic-design", "graphic-design-two", "graphic-stitching", "graphic-stitching-four", "graphic-stitching-three", "great-wall", "green-house", "green-new-energy", "grid-four", "grid-nine", "grid-sixteen", "grid-three", "grid-two", "grimacing-face", "grinning-face", "grinning-face-with-open-mouth", "grinning-face-with-squinting-eyes", "grinning-face-with-tightly-closed-eyes", "grinning-face-with-tightly-closed-eyes-open-mouth", "group", "guide-board", "gymnastics", "gymnastics-one", "h", "h1", "h2", "h3", "hair-brush", "hair-clip", "hair-dryer", "hair-dryer-one", "halo", "hamburger", "hamburger-button", "hamburger-one", "hammer-and-anvil", "hand-cream", "hand-down", "hand-drag", "hand-left", "hand-painted-plate", "hand-right", "hand-up", "handbag", "handheld", "handle-a", "handle-b", "handle-c", "handle-down", "handle-left", "handle-right", "handle-round", "handle-square", "handle-triangle", "handle-up", "handle-x", "handle-y", "handle-z", "hands", "handwashing", "handwashing-fluid", "hanfu-chinese-style", "hanger", "hanger-one", "hanger-two", "hard-disk", "hard-disk-one", "harm", "hashtag-key", "hat", "hdd", "hdmi-cable", "hdmi-connector", "headphone-sound", "headset", "headset-one", "headset-two", "headwear", "health", "health-products", "healthy-recognition", "heart", "heart-ballon", "heartbeat", "heater-resistor", "heavy-metal", "heavy-rain", "heavy-wind", "helmet", "helmet-one", "help", "helpcenter", "hexagon-one", "hexagon-strip", "hexagonal", "hi", "high-heeled-shoes", "high-light", "histogram", "history", "history-query", "hockey", "hold", "hold-interface", "hold-seeds", "holding-hands", "holy-sword", "home", "home-two", "homestay", "honey", "honey-one", "horizontal-spacing-between-items", "horizontal-tidy-up", "horizontally-centered", "hospital", "hospital-two", "hot-air-balloon", "hot-pot", "hot-pot-one", "hotel", "hotel-do-not-clean", "hotel-please-clean", "hourglass", "hourglass-full", "hourglass-null", "html-five", "hunting-gear", "huoshanzhibo", "i-mac", "icecream", "icecream-five", "icecream-four", "icecream-one", "icecream-three", "icecream-two", "id-card", "id-card-h", "id-card-v", "image-files", "imbalance", "import-and-export", "in-flight", "inbox", "inbox-download-r", "inbox-in", "inbox-out", "inbox-r", "inbox-success", "inbox-success-r", "inbox-upload-r", "inclusive-gateway", "income", "income-one", "incoming", "increase", "increase-the-scale", "indent-left", "indent-right", "index-finger", "induction-lock", "industrial-scales", "info", "injection", "inline", "inner-shadow-bottom-left", "inner-shadow-bottom-right", "inner-shadow-down", "inner-shadow-left", "inner-shadow-right", "inner-shadow-top-left", "inner-shadow-top-right", "inner-shadow-up", "insert-card", "insert-table", "inspection", "instagram", "instagram-one", "install", "instruction", "intercom", "intermediate-mode", "internal-data", "internal-expansion", "internal-reduction", "internal-transmission", "international", "intersect-selection", "intersection", "invalid-files", "invert-camera", "ios-face-recognition", "ipad", "ipad-one", "iphone", "ipo", "iron", "iron-disable", "iron-three", "iron-two", "iwatch", "iwatch-one", "iwatch-two", "jewelry", "jinritoutiao", "journey", "joystick", "juice", "kagi-map", "kettle", "kettle-one", "key", "keyboard", "keyboard-one", "keyhole", "keyline", "kitchen-knife", "knife-fork", "kungfu", "label", "ladder", "lamp", "land-surveying", "landscape", "laptop", "laptop-computer", "lark", "lark-one", "lattice-pattern", "layers", "layout-five", "layout-four", "layout-one", "layout-three", "layout-two", "leaf", "leaves", "led-diode", "left", "left-alignment", "left-bar", "left-c", "left-expand", "left-one", "left-small", "left-small-down", "left-small-up", "left-square", "left-two", "lemon", "lens-alignment", "level", "level-adjustment", "level-eight-title", "level-five-title", "level-four-title", "level-nine-title", "level-seven-title", "level-six-title", "lifebuoy", "light", "light-house", "light-member", "light-rain", "lightning", "like", "lincoln", "link", "link-break", "link-cloud", "link-cloud-faild", "link-cloud-sucess", "link-four", "link-in", "link-interrupt", "link-left", "link-one", "link-out", "link-right", "link-three", "link-two", "lip-gloss", "lip-tattoo", "lipstick", "lipstick-one", "liqueur", "list", "list-add", "list-alphabet", "list-bottom", "list-checkbox", "list-fail", "list-middle", "list-numbers", "list-one", "list-success", "list-top", "list-two", "list-view", "loading", "loading-four", "loading-one", "loading-three", "loading-two", "local", "local-pin", "local-two", "lock", "log", "login", "logout", "lollipop", "loop-once", "lotion", "loudly-crying-face", "loudly-crying-face-whit-open-mouth", "luggage", "luminous", "lung", "mac-finder", "macadamia-nut", "magic", "magic-hat", "magic-wand", "magnet", "mail", "mail-download", "mail-edit", "mail-open", "mail-package", "mail-review", "mail-unpacking", "maill-one", "makeups", "male", "mall-bag", "manual-gear", "many-to-many", "map-distance", "map-draw", "map-road", "map-road-two", "map-two", "margin", "margin-one", "mark", "market", "market-analysis", "mascara", "mask", "mask-one", "mask-two", "maslow-pyramids", "massage-chair", "massage-chair-one", "massage-table", "master", "material", "material-three", "material-two", "maximum", "maya", "mayura-gesture", "me", "measuring-cup", "mediaeditor", "medical-box", "medical-files", "medication-time", "medicine-bottle", "memory", "memory-card", "memory-one", "men-jacket", "menu-fold", "menu-fold-one", "menu-unfold", "menu-unfold-one", "merge", "merge-cells", "message", "message-emoji", "message-failed", "message-one", "message-privacy", "message-search", "message-security", "message-sent", "message-success", "message-unread", "messages", "messages-one", "micro-sd", "micro-slr-camera", "microphone", "microphone-one", "microscope", "microscope-one", "microwave-oven", "microwaves", "middle-finger", "milk", "milk-one", "min", "mind-mapping", "mindmap-list", "mindmap-map", "mini-sd-card", "minus", "minus-the-bottom", "minus-the-top", "mirror", "mirror-one", "mirror-two", "misaligned-semicircle", "mitsubishi", "modify", "modify-two", "monitor", "monitor-camera", "monitor-off", "monitor-one", "monitor-two", "monument-one", "monument-two", "moon", "more", "more-app", "more-four", "more-one", "more-three", "more-two", "mosaic", "mouse", "mouse-one", "mouth", "move", "move-in", "move-in-one", "move-one", "movie", "movie-board", "multi-circular", "multi-function-knife", "multi-picture-carousel", "multi-rectangle", "multi-ring", "multi-triangular", "multi-triangular-four", "multi-triangular-three", "multi-triangular-two", "multicast", "multilayer-sphere", "muscle", "museum-one", "museum-two", "music", "music-cd", "music-list", "music-menu", "music-one", "music-rhythm", "mute", "nail-polish", "nail-polish-one", "nasal", "natural-mode", "navigation", "necktie", "negative-dynamics", "nested-arrows", "nests", "network-drive", "network-tree", "neural", "neutral-face", "newlybuild", "newspaper-folding", "next", "nine-key", "nine-points-connected", "nintendo-switch", "nmr", "no-shooting", "node-flat", "node-round", "node-square", "noodles", "notebook", "notebook-and-pen", "notebook-one", "notepad", "notes", "nuclear-plant", "nut", "nutrition", "oceanengine", "octagon", "off-screen", "off-screen-one", "off-screen-two", "oil-industry", "okay", "one", "one-key", "one-one", "one-third-rotation", "one-to-many", "one-to-one", "onesies", "online-meeting", "open", "open-an-account", "open-door", "open-one", "optimize", "optional", "orange", "orange-one", "orange-station", "order", "ordered-list", "orthopedic", "oscillator", "other", "outbound", "outdoor", "outgoing", "oval-love", "oval-love-two", "oval-one", "oven", "oven-tray", "overall-reduction", "pacifier", "pad", "page", "page-template", "pagoda", "paint", "painted-eggshell", "painted-screen", "palace", "palm", "pangle", "panorama-horizontal", "panties", "paper-money", "paper-money-two", "paper-ship", "paperclip", "parabola", "parachute", "paragraph-alphabet", "paragraph-break", "paragraph-break-two", "paragraph-cut", "paragraph-rectangle", "paragraph-round", "paragraph-triangle", "paragraph-unfold", "parallel-gateway", "parallelogram", "parenting-book", "parking", "party-balloon", "passport", "passport-one", "pause", "pause-one", "pay-code", "pay-code-one", "pay-code-two", "payment-method", "paypal", "peach", "pear", "pearl-of-the-orient", "peas", "pennant", "pentagon-one", "people", "people-bottom", "people-bottom-card", "people-delete", "people-delete-one", "people-download", "people-left", "people-minus", "people-minus-one", "people-plus", "people-plus-one", "people-right", "people-safe", "people-safe-one", "people-search", "people-search-one", "people-speak", "people-top", "people-top-card", "people-unknown", "people-upload", "peoples", "peoples-two", "percentage", "performance", "perfume", "perfumer-bottle", "period", "permissions", "personal-collection", "personal-privacy", "perspective", "pesticide", "petrol", "phone", "phone-booth", "phone-call", "phone-incoming", "phone-incoming-one", "phone-missed", "phone-off", "phone-one", "phone-outgoing", "phone-outgoing-one", "phone-telephone", "phone-two", "phone-video-call", "phonograph", "photograph", "piano", "pic", "pic-one", "picture", "picture-one", "pie", "pie-five", "pie-four", "pie-one", "pie-seven", "pie-six", "pie-three", "pie-two", "pills", "pin", "pineapple", "pinwheel", "pivot-table", "plan", "planet", "plastic-surgery", "platte", "play", "play-basketball", "play-cycle", "play-once", "play-one", "play-two", "play-volleyball", "play-wrong", "playback-progress", "plug", "plug-one", "plus", "plus-cross", "point", "point-out", "pokeball-one", "poker", "popcorn", "popcorn-one", "positive-dynamics", "pot", "potentiometer", "pound", "pound-sign", "pouting-face", "powder", "power", "power-supply", "power-supply-one", "powerpoint", "ppt", "pregnant-women", "preschool", "prescription", "press", "preview-close", "preview-close-one", "preview-open", "printer", "printer-one", "printer-two", "prison", "process-line", "projector", "projector-one", "projector-three", "projector-two", "proportional-scaling", "protect", "protection", "public-toilet", "pull-door", "pull-requests", "pumpkin", "pure-natural", "push-door", "puzzle", "pyramid", "pyramid-one", "qingniao-clue", "qiyehao", "quadrangular-pyramid", "quadrilateral", "quote", "radar", "radar-chart", "radar-two", "radiation", "radio", "radio-nanny", "radio-one", "radio-two", "radish", "radish-one", "railway", "ranking", "ranking-list", "rattle", "rattle-one", "razor", "receive", "receiver", "recent-views-sort", "record", "record-disc", "record-player", "rectangle", "rectangle-one", "rectangle-small", "rectangle-tear", "rectangle-x", "rectangular-circular-connection", "rectangular-circular-separation", "rectangular-vertebra", "recycle-bin", "recycling", "recycling-pool", "red-cross", "red-envelope", "red-envelopes", "redo", "reduce", "reduce-decimal-places", "reduce-one", "reduce-two", "reduce-user", "reel", "refraction", "refresh", "refresh-one", "refrigerator", "reject", "relational-graph", "relieved-face", "reload", "remind", "remind-disable", "remote-control", "remote-control-one", "renal", "renault", "repair", "replay-five", "replay-music", "report", "repositioning", "resistor", "respect", "resting", "retro-bag", "return", "reverse-lens", "reverse-lens-one", "reverse-operation-in", "reverse-operation-out", "reverse-rotation", "rice", "riding", "riding-one", "right", "right-angle", "right-bar", "right-c", "right-expand", "right-one", "right-run", "right-small", "right-small-down", "right-small-up", "right-square", "right-two", "right-user", "ring", "ring-one", "rings", "ripple", "road", "road-cone", "road-sign", "road-sign-both", "robot", "robot-one", "robot-two", "rock", "rock-gesture", "rocket", "rocket-one", "rocking-horse", "rollerskates", "romper", "rope-skipping", "rope-skipping-one", "rotate", "rotate-one", "rotating-add", "rotating-forward", "rotation", "rotation-horizontal", "rotation-one", "rotation-vertical", "round", "round-caliper", "round-distortion", "round-mask", "round-socket", "round-trip", "router", "router-one", "row-height", "rowing", "rs-male", "rss", "rugby", "rugby-one", "ruler", "ruler-one", "run-left", "s-turn-down", "s-turn-left", "s-turn-right", "s-turn-up", "sailboat", "sailing", "sales-report", "sandals", "sandstorm", "sandwich", "sandwich-one", "sapling", "save", "save-one", "scale", "scallion", "scan", "scan-code", "scan-setting", "scanning", "scanning-two", "scatter-alignment", "schedule", "school", "scissors", "scoreboard", "screen-rotation", "screenshot", "screenshot-one", "screenshot-two", "sd", "sd-card", "seal", "search", "security", "security-stall", "selected", "selected-focus", "selfie", "send", "send-backward", "send-email", "send-one", "send-to-back", "sent-to-back", "seo", "seo-folder", "server", "set-off", "setting", "setting-config", "setting-one", "setting-three", "setting-two", "seven-key", "shade", "shake", "share", "share-one", "share-sys", "share-three", "share-two", "shaver", "shaver-one", "shaving", "shield", "shield-add", "ship", "shop", "shopping", "shopping-bag", "shopping-cart", "shopping-cart-add", "shopping-cart-del", "shopping-cart-one", "shopping-mall", "short-skirt", "shorts", "shovel", "shovel-one", "shower-head", "shrimp", "shuffle", "shuffle-one", "shutter-priority", "signal", "signal-one", "signal-strength", "signal-tower", "signal-tower-one", "sim", "sim-card", "single-bed", "sinusoid", "sippy-cup", "six", "six-circular-connection", "six-key", "six-points", "skate", "skates", "skating", "sketch", "skiing-nordic", "skull", "slave", "sleaves", "sleep", "sleep-one", "slide", "slide-two", "sliding-horizontal", "sliding-vertical", "slightly-frowning-face-whit-open-mouth", "slightly-smiling-face", "slippers", "slippers-one", "sly-face-whit-smile", "smart-optimization", "smiling-face", "smiling-face-with-squinting-eyes", "snacks", "snow", "snowflake", "soap-bubble", "soccer", "soccer-one", "socks", "sofa", "sofa-two", "softball", "solar-energy", "solar-energy-one", "solid-state-disk", "sorcerer-hat", "sort", "sort-amount-down", "sort-amount-up", "sort-four", "sort-one", "sort-three", "sort-two", "sound", "sound-one", "sound-wave", "soybean-milk-maker", "spa-candle", "space-colony", "speaker", "speaker-one", "speed", "speed-one", "sperm", "sphere", "spider-man", "spikedshoes", "spinning-top", "split", "split-branch", "split-cells", "split-turn-down-left", "split-turn-down-right", "spoon", "sport", "square", "square-small", "ssd", "stack-light", "stamp", "stapler", "star", "star-one", "start-time-sort", "steering-wheel", "steoller", "stereo-nesting", "stereo-one", "stereo-perspective", "stethoscope", "stickers", "stock-market", "stopwatch", "stopwatch-start", "storage-card-one", "storage-card-two", "straight-razor", "straw-hat", "stretching", "strikethrough", "strongbox", "subtract-selection", "subtract-selection-one", "subway", "success", "sum", "sun", "sun-hat", "sun-one", "sunbath", "sunny", "sunrise", "sunshade", "surprised-face-with-open-big-mouth", "surprised-face-with-open-mouth", "surveillance-cameras", "surveillance-cameras-one", "surveillance-cameras-two", "swallow", "sweater", "swimming-pool", "swimming-ring", "swimsuit", "swing", "swipe", "switch", "switch-button", "switch-contrast", "switch-nintendo", "switch-one", "switch-themes", "switch-track", "switching-done", "symbol", "symbol-double-x", "symmetry", "sync", "system", "t-shirt", "table", "table-file", "table-lamp", "table-report", "tabletennis", "tag", "tag-one", "tailoring", "tailoring-two", "taj-mahal", "take-off", "taobao", "tape", "target", "target-one", "target-two", "taxi", "tea", "tea-drink", "teapot", "teeth", "telegram", "telescope", "tencent-qq", "tennis", "tent", "tent-banner", "terminal", "termination-file", "test-tube", "text", "text-bold", "text-italic", "text-message", "text-recognition", "text-rotation-down", "text-rotation-left", "text-rotation-none", "text-rotation-up", "text-style", "text-style-one", "text-underline", "text-wrap-overflow", "text-wrap-truncation", "textarea", "texture", "texture-two", "the-single-shoulder-bag", "theater", "theme", "thermometer", "thermos-cup", "thin", "thinking-problem", "three", "three-d-glasses", "three-hexagons", "three-key", "three-slashes", "three-three", "three-triangles", "thumbs-down", "thumbs-up", "thunderbolt", "thunderstorm", "thunderstorm-one", "ticket", "ticket-one", "tickets-checked", "tickets-one", "tickets-two", "tiktok", "time", "timed-mail", "timeline", "timer", "tips", "tips-one", "tire-swing", "title-level", "to-bottom", "to-bottom-one", "to-left", "to-right", "to-top", "to-top-one", "toilet", "tomato", "tool", "top-bar", "topbuzz", "topic", "topic-discussion", "torch", "tour-bus", "towel", "tower", "tower-of-babel", "tower-of-pisa", "toxins", "trace", "trademark", "traditional-chinese-medicine", "transaction", "transaction-order", "transfer", "transfer-data", "transform", "translate", "translation", "transport", "transporter", "trapezoid", "tray", "treadmill", "treadmill-one", "treasure-chest", "tree", "tree-diagram", "tree-list", "trend", "trend-two", "trending-down", "trending-up", "triangle", "triangle-round-rectangle", "triangle-ruler", "triangular-pyramid", "trophy", "trousers-bell-bottoms", "truck", "trumpet", "trunk", "tuchong", "tumblr", "turkey", "turn-around", "turn-off-bluetooth", "turn-on", "tv", "tv-one", "twitter", "two", "two-dimensional-code", "two-dimensional-code-one", "two-dimensional-code-two", "two-ellipses", "two-fingers", "two-hands", "two-key", "two-semicircles", "two-triangles", "two-triangles-two", "two-two", "type-drive", "u-disk", "u-turn-down", "u-turn-left", "u-turn-right", "u-turn-up", "ulikecam", "umbrella", "umbrella-one", "umbrella-two", "undo", "ungroup", "unicast", "union-selection", "universal", "unlike", "unlink", "unlock", "unordered-list", "up", "up-and-down", "up-c", "up-one", "up-small", "up-square", "up-two", "update-rotation", "upload", "upload-logs", "upload-one", "upload-three", "upload-two", "upside-down-face", "usb", "usb-memory-stick", "usb-micro-one", "usb-micro-two", "usb-one", "usb-type-c", "user", "user-business", "user-positioning", "user-to-user-transmission", "uterus", "vacuum-cleaner", "vegetable-basket", "vegetables", "vertical-spacing-between-items", "vertical-tidy-up", "vertical-timeline", "vertically-centered", "vest", "vial", "vicia-faba", "video", "video-file", "video-one", "video-two", "videocamera", "videocamera-one", "viencharts", "view-grid-card", "view-grid-detail", "view-grid-list", "view-list", "viewfinder", "vigo", "vip", "virtual-reality-glasses", "voice", "voice-input", "voice-message", "voice-off", "voice-one", "voicemail", "volkswagen", "volleyball", "volume-down", "volume-mute", "volume-notice", "volume-small", "volume-up", "vr-glasses", "wallet", "wallet-one", "wallet-two", "warehousing", "washing-machine", "washing-machine-one", "watch", "watch-one", "water", "water-level", "water-no", "water-rate", "water-rate-two", "waterfalls-h", "waterfalls-v", "watermelon", "watermelon-one", "waterpolo", "waterpolo-one", "waves", "waves-left", "waves-right", "weary-face", "webcam", "wechat", "weibo", "weight", "weightlifting", "weixin-cards-offers", "weixin-favorites", "weixin-games", "weixin-market", "weixin-mini-app", "weixin-people-nearby", "weixin-scan", "weixin-search", "weixin-shake", "weixin-top-stories", "wheelchair", "whirlwind", "whistling", "whole-site-accelerator", "wifi", "wind", "wind-turbine", "windmill", "windmill-one", "windmill-two", "windows", "wingsuit-flying", "winking-face", "winking-face-with-open-eyes", "woman", "women-coat", "woolen-hat", "word", "workbench", "worker", "world", "worried-face", "write", "writing-fluently", "wrong-user", "xiaodu", "xiaodu-home", "xigua", "xingfuli", "xingtu", "yep", "youtobe", "youtube", "zero-key", "zijinyunying", "zip", "zoom", "zoom-in", "zoom-internal", "zoom-out"] }, { "prefix": "mdi", "info": { "name": "Material Design Icons", "total": 6921, "author": { "name": "Austin Andrews", "url": "https://github.com/Templarian/MaterialDesign" }, "license": { "title": "Apache 2.0", "spdx": "Apache-2.0", "url": "https://github.com/Templarian/MaterialDesign/blob/master/LICENSE" }, "samples": ["account-check", "bell-alert-outline", "calendar-edit"], "height": 24, "category": "General", "palette": false }, "icons": ["ab-testing", "abacus", "abjad-arabic", "abjad-hebrew", "abugida-devanagari", "abugida-thai", "access-point", "access-point-check", "access-point-minus", "access-point-network", "access-point-network-off", "access-point-off", "access-point-plus", "access-point-remove", "account", "account-alert", "account-alert-outline", "account-arrow-down", "account-arrow-down-outline", "account-arrow-left", "account-arrow-left-outline", "account-arrow-right", "account-arrow-right-outline", "account-arrow-up", "account-arrow-up-outline", "account-box", "account-box-multiple", "account-box-multiple-outline", "account-box-outline", "account-cancel", "account-cancel-outline", "account-cash", "account-cash-outline", "account-check", "account-check-outline", "account-child", "account-child-circle", "account-child-outline", "account-circle", "account-circle-outline", "account-clock", "account-clock-outline", "account-cog", "account-cog-outline", "account-convert", "account-convert-outline", "account-cowboy-hat", "account-cowboy-hat-outline", "account-details", "account-details-outline", "account-edit", "account-edit-outline", "account-eye", "account-eye-outline", "account-filter", "account-filter-outline", "account-group", "account-group-outline", "account-hard-hat", "account-hard-hat-outline", "account-heart", "account-heart-outline", "account-injury", "account-injury-outline", "account-key", "account-key-outline", "account-lock", "account-lock-open", "account-lock-open-outline", "account-lock-outline", "account-minus", "account-minus-outline", "account-multiple", "account-multiple-check", "account-multiple-check-outline", "account-multiple-minus", "account-multiple-minus-outline", "account-multiple-outline", "account-multiple-plus", "account-multiple-plus-outline", "account-multiple-remove", "account-multiple-remove-outline", "account-music", "account-music-outline", "account-network", "account-network-off", "account-network-off-outline", "account-network-outline", "account-off", "account-off-outline", "account-outline", "account-plus", "account-plus-outline", "account-question", "account-question-outline", "account-reactivate", "account-reactivate-outline", "account-remove", "account-remove-outline", "account-school", "account-school-outline", "account-search", "account-search-outline", "account-settings", "account-settings-outline", "account-settings-variant", "account-star", "account-star-outline", "account-supervisor", "account-supervisor-circle", "account-supervisor-circle-outline", "account-supervisor-outline", "account-switch", "account-switch-outline", "account-sync", "account-sync-outline", "account-tie", "account-tie-hat", "account-tie-hat-outline", "account-tie-outline", "account-tie-voice", "account-tie-voice-off", "account-tie-voice-off-outline", "account-tie-voice-outline", "account-tie-woman", "account-voice", "account-voice-off", "account-wrench", "account-wrench-outline", "accusoft", "ad-choices", "adchoices", "adjust", "adobe", "advertisements", "advertisements-off", "air-conditioner", "air-filter", "air-horn", "air-humidifier", "air-humidifier-off", "air-purifier", "airbag", "airballoon", "airballoon-outline", "airplane", "airplane-alert", "airplane-check", "airplane-clock", "airplane-cog", "airplane-edit", "airplane-landing", "airplane-marker", "airplane-minus", "airplane-off", "airplane-plus", "airplane-remove", "airplane-search", "airplane-settings", "airplane-takeoff", "airport", "alarm", "alarm-bell", "alarm-check", "alarm-light", "alarm-light-off", "alarm-light-off-outline", "alarm-light-outline", "alarm-multiple", "alarm-note", "alarm-note-off", "alarm-off", "alarm-panel", "alarm-panel-outline", "alarm-plus", "alarm-snooze", "album", "alert", "alert-box", "alert-box-outline", "alert-circle", "alert-circle-check", "alert-circle-check-outline", "alert-circle-outline", "alert-decagram", "alert-decagram-outline", "alert-minus", "alert-minus-outline", "alert-octagon", "alert-octagon-outline", "alert-octagram", "alert-octagram-outline", "alert-outline", "alert-plus", "alert-plus-outline", "alert-remove", "alert-remove-outline", "alert-rhombus", "alert-rhombus-outline", "alien", "alien-outline", "align-horizontal-center", "align-horizontal-distribute", "align-horizontal-left", "align-horizontal-right", "align-vertical-bottom", "align-vertical-center", "align-vertical-distribute", "align-vertical-top", "all-inclusive", "all-inclusive-box", "all-inclusive-box-outline", "allergy", "allo", "alpha", "alpha-a", "alpha-a-box", "alpha-a-box-outline", "alpha-a-circle", "alpha-a-circle-outline", "alpha-b", "alpha-b-box", "alpha-b-box-outline", "alpha-b-circle", "alpha-b-circle-outline", "alpha-c", "alpha-c-box", "alpha-c-box-outline", "alpha-c-circle", "alpha-c-circle-outline", "alpha-d", "alpha-d-box", "alpha-d-box-outline", "alpha-d-circle", "alpha-d-circle-outline", "alpha-e", "alpha-e-box", "alpha-e-box-outline", "alpha-e-circle", "alpha-e-circle-outline", "alpha-f", "alpha-f-box", "alpha-f-box-outline", "alpha-f-circle", "alpha-f-circle-outline", "alpha-g", "alpha-g-box", "alpha-g-box-outline", "alpha-g-circle", "alpha-g-circle-outline", "alpha-h", "alpha-h-box", "alpha-h-box-outline", "alpha-h-circle", "alpha-h-circle-outline", "alpha-i", "alpha-i-box", "alpha-i-box-outline", "alpha-i-circle", "alpha-i-circle-outline", "alpha-j", "alpha-j-box", "alpha-j-box-outline", "alpha-j-circle", "alpha-j-circle-outline", "alpha-k", "alpha-k-box", "alpha-k-box-outline", "alpha-k-circle", "alpha-k-circle-outline", "alpha-l", "alpha-l-box", "alpha-l-box-outline", "alpha-l-circle", "alpha-l-circle-outline", "alpha-m", "alpha-m-box", "alpha-m-box-outline", "alpha-m-circle", "alpha-m-circle-outline", "alpha-n", "alpha-n-box", "alpha-n-box-outline", "alpha-n-circle", "alpha-n-circle-outline", "alpha-o", "alpha-o-box", "alpha-o-box-outline", "alpha-o-circle", "alpha-o-circle-outline", "alpha-p", "alpha-p-box", "alpha-p-box-outline", "alpha-p-circle", "alpha-p-circle-outline", "alpha-q", "alpha-q-box", "alpha-q-box-outline", "alpha-q-circle", "alpha-q-circle-outline", "alpha-r", "alpha-r-box", "alpha-r-box-outline", "alpha-r-circle", "alpha-r-circle-outline", "alpha-s", "alpha-s-box", "alpha-s-box-outline", "alpha-s-circle", "alpha-s-circle-outline", "alpha-t", "alpha-t-box", "alpha-t-box-outline", "alpha-t-circle", "alpha-t-circle-outline", "alpha-u", "alpha-u-box", "alpha-u-box-outline", "alpha-u-circle", "alpha-u-circle-outline", "alpha-v", "alpha-v-box", "alpha-v-box-outline", "alpha-v-circle", "alpha-v-circle-outline", "alpha-w", "alpha-w-box", "alpha-w-box-outline", "alpha-w-circle", "alpha-w-circle-outline", "alpha-x", "alpha-x-box", "alpha-x-box-outline", "alpha-x-circle", "alpha-x-circle-outline", "alpha-y", "alpha-y-box", "alpha-y-box-outline", "alpha-y-circle", "alpha-y-circle-outline", "alpha-z", "alpha-z-box", "alpha-z-box-outline", "alpha-z-circle", "alpha-z-circle-outline", "alphabet-aurebesh", "alphabet-cyrillic", "alphabet-greek", "alphabet-latin", "alphabet-piqad", "alphabet-tengwar", "alphabetical", "alphabetical-off", "alphabetical-variant", "alphabetical-variant-off", "altimeter", "amazon", "amazon-alexa", "amazon-drive", "ambulance", "ammunition", "ampersand", "amplifier", "amplifier-off", "anchor", "android", "android-auto", "android-debug-bridge", "android-head", "android-messages", "android-studio", "angle-acute", "angle-obtuse", "angle-right", "angular", "angularjs", "animation", "animation-outline", "animation-play", "animation-play-outline", "ansible", "antenna", "anvil", "apache-kafka", "api", "api-off", "apple", "apple-finder", "apple-icloud", "apple-ios", "apple-keyboard-caps", "apple-keyboard-command", "apple-keyboard-control", "apple-keyboard-option", "apple-keyboard-shift", "apple-safari", "application", "application-array", "application-array-outline", "application-braces", "application-braces-outline", "application-brackets", "application-brackets-outline", "application-cog", "application-cog-outline", "application-edit", "application-edit-outline", "application-export", "application-import", "application-outline", "application-parentheses", "application-parentheses-outline", "application-settings", "application-settings-outline", "application-variable", "application-variable-outline", "appnet", "approximately-equal", "approximately-equal-box", "apps", "apps-box", "arch", "archive", "archive-alert", "archive-alert-outline", "archive-arrow-down", "archive-arrow-down-outline", "archive-arrow-up", "archive-arrow-up-outline", "archive-cancel", "archive-cancel-outline", "archive-check", "archive-check-outline", "archive-clock", "archive-clock-outline", "archive-cog", "archive-cog-outline", "archive-edit", "archive-edit-outline", "archive-eye", "archive-eye-outline", "archive-lock", "archive-lock-open", "archive-lock-open-outline", "archive-lock-outline", "archive-marker", "archive-marker-outline", "archive-minus", "archive-minus-outline", "archive-music", "archive-music-outline", "archive-off", "archive-off-outline", "archive-outline", "archive-plus", "archive-plus-outline", "archive-refresh", "archive-refresh-outline", "archive-remove", "archive-remove-outline", "archive-search", "archive-search-outline", "archive-settings", "archive-settings-outline", "archive-star", "archive-star-outline", "archive-sync", "archive-sync-outline", "arm-flex", "arm-flex-outline", "arrange-bring-forward", "arrange-bring-to-front", "arrange-send-backward", "arrange-send-to-back", "arrow-all", "arrow-bottom-left", "arrow-bottom-left-bold-box", "arrow-bottom-left-bold-box-outline", "arrow-bottom-left-bold-outline", "arrow-bottom-left-thick", "arrow-bottom-left-thin", "arrow-bottom-left-thin-circle-outline", "arrow-bottom-right", "arrow-bottom-right-bold-box", "arrow-bottom-right-bold-box-outline", "arrow-bottom-right-bold-outline", "arrow-bottom-right-thick", "arrow-bottom-right-thin", "arrow-bottom-right-thin-circle-outline", "arrow-collapse", "arrow-collapse-all", "arrow-collapse-down", "arrow-collapse-horizontal", "arrow-collapse-left", "arrow-collapse-right", "arrow-collapse-up", "arrow-collapse-vertical", "arrow-decision", "arrow-decision-auto", "arrow-decision-auto-outline", "arrow-decision-outline", "arrow-down", "arrow-down-bold", "arrow-down-bold-box", "arrow-down-bold-box-outline", "arrow-down-bold-circle", "arrow-down-bold-circle-outline", "arrow-down-bold-hexagon-outline", "arrow-down-bold-outline", "arrow-down-box", "arrow-down-circle", "arrow-down-circle-outline", "arrow-down-drop-circle", "arrow-down-drop-circle-outline", "arrow-down-left", "arrow-down-left-bold", "arrow-down-right", "arrow-down-right-bold", "arrow-down-thick", "arrow-down-thin", "arrow-down-thin-circle-outline", "arrow-expand", "arrow-expand-all", "arrow-expand-down", "arrow-expand-horizontal", "arrow-expand-left", "arrow-expand-right", "arrow-expand-up", "arrow-expand-vertical", "arrow-horizontal-lock", "arrow-left", "arrow-left-bold", "arrow-left-bold-box", "arrow-left-bold-box-outline", "arrow-left-bold-circle", "arrow-left-bold-circle-outline", "arrow-left-bold-hexagon-outline", "arrow-left-bold-outline", "arrow-left-bottom", "arrow-left-bottom-bold", "arrow-left-box", "arrow-left-circle", "arrow-left-circle-outline", "arrow-left-drop-circle", "arrow-left-drop-circle-outline", "arrow-left-right", "arrow-left-right-bold", "arrow-left-right-bold-outline", "arrow-left-thick", "arrow-left-thin", "arrow-left-thin-circle-outline", "arrow-left-top", "arrow-left-top-bold", "arrow-projectile", "arrow-projectile-multiple", "arrow-right", "arrow-right-bold", "arrow-right-bold-box", "arrow-right-bold-box-outline", "arrow-right-bold-circle", "arrow-right-bold-circle-outline", "arrow-right-bold-hexagon-outline", "arrow-right-bold-outline", "arrow-right-bottom", "arrow-right-bottom-bold", "arrow-right-box", "arrow-right-circle", "arrow-right-circle-outline", "arrow-right-drop-circle", "arrow-right-drop-circle-outline", "arrow-right-thick", "arrow-right-thin", "arrow-right-thin-circle-outline", "arrow-right-top", "arrow-right-top-bold", "arrow-split-horizontal", "arrow-split-vertical", "arrow-top-left", "arrow-top-left-bold-box", "arrow-top-left-bold-box-outline", "arrow-top-left-bold-outline", "arrow-top-left-bottom-right", "arrow-top-left-bottom-right-bold", "arrow-top-left-thick", "arrow-top-left-thin", "arrow-top-left-thin-circle-outline", "arrow-top-right", "arrow-top-right-bold-box", "arrow-top-right-bold-box-outline", "arrow-top-right-bold-outline", "arrow-top-right-bottom-left", "arrow-top-right-bottom-left-bold", "arrow-top-right-thick", "arrow-top-right-thin", "arrow-top-right-thin-circle-outline", "arrow-u-down-left", "arrow-u-down-left-bold", "arrow-u-down-right", "arrow-u-down-right-bold", "arrow-u-left-bottom", "arrow-u-left-bottom-bold", "arrow-u-left-top", "arrow-u-left-top-bold", "arrow-u-right-bottom", "arrow-u-right-bottom-bold", "arrow-u-right-top", "arrow-u-right-top-bold", "arrow-u-up-left", "arrow-u-up-left-bold", "arrow-u-up-right", "arrow-u-up-right-bold", "arrow-up", "arrow-up-bold", "arrow-up-bold-box", "arrow-up-bold-box-outline", "arrow-up-bold-circle", "arrow-up-bold-circle-outline", "arrow-up-bold-hexagon-outline", "arrow-up-bold-outline", "arrow-up-box", "arrow-up-circle", "arrow-up-circle-outline", "arrow-up-down", "arrow-up-down-bold", "arrow-up-down-bold-outline", "arrow-up-drop-circle", "arrow-up-drop-circle-outline", "arrow-up-left", "arrow-up-left-bold", "arrow-up-right", "arrow-up-right-bold", "arrow-up-thick", "arrow-up-thin", "arrow-up-thin-circle-outline", "arrow-vertical-lock", "artstation", "aspect-ratio", "assistant", "asterisk", "asterisk-circle-outline", "at", "atlassian", "atm", "atom", "atom-variant", "attachment", "attachment-check", "attachment-lock", "attachment-minus", "attachment-off", "attachment-plus", "attachment-remove", "audio-input-rca", "audio-input-stereo-minijack", "audio-input-xlr", "audio-video", "audio-video-off", "augmented-reality", "auto-download", "auto-fix", "auto-upload", "autorenew", "autorenew-off", "av-timer", "aws", "axe", "axe-battle", "axis", "axis-arrow", "axis-arrow-info", "axis-arrow-lock", "axis-lock", "axis-x-arrow", "axis-x-arrow-lock", "axis-x-rotate-clockwise", "axis-x-rotate-counterclockwise", "axis-x-y-arrow-lock", "axis-y-arrow", "axis-y-arrow-lock", "axis-y-rotate-clockwise", "axis-y-rotate-counterclockwise", "axis-z-arrow", "axis-z-arrow-lock", "axis-z-rotate-clockwise", "axis-z-rotate-counterclockwise", "babel", "baby", "baby-bottle", "baby-bottle-outline", "baby-buggy", "baby-buggy-off", "baby-carriage", "baby-carriage-off", "baby-face", "baby-face-outline", "backburger", "backspace", "backspace-outline", "backspace-reverse", "backspace-reverse-outline", "backup-restore", "bacteria", "bacteria-outline", "badge-account", "badge-account-alert", "badge-account-alert-outline", "badge-account-horizontal", "badge-account-horizontal-outline", "badge-account-outline", "badminton", "bag-carry-on", "bag-carry-on-check", "bag-carry-on-off", "bag-checked", "bag-personal", "bag-personal-off", "bag-personal-off-outline", "bag-personal-outline", "bag-suitcase", "bag-suitcase-off", "bag-suitcase-off-outline", "bag-suitcase-outline", "baguette", "balcony", "balloon", "ballot", "ballot-outline", "ballot-recount", "ballot-recount-outline", "bandage", "bandcamp", "bank", "bank-check", "bank-minus", "bank-off", "bank-off-outline", "bank-outline", "bank-plus", "bank-remove", "bank-transfer", "bank-transfer-in", "bank-transfer-out", "barcode", "barcode-off", "barcode-scan", "barley", "barley-off", "barn", "barrel", "barrel-outline", "baseball", "baseball-bat", "baseball-diamond", "baseball-diamond-outline", "basecamp", "bash", "basket", "basket-check", "basket-check-outline", "basket-fill", "basket-minus", "basket-minus-outline", "basket-off", "basket-off-outline", "basket-outline", "basket-plus", "basket-plus-outline", "basket-remove", "basket-remove-outline", "basket-unfill", "basketball", "basketball-hoop", "basketball-hoop-outline", "bat", "bathtub", "bathtub-outline", "battery", "battery-10", "battery-10-bluetooth", "battery-20", "battery-20-bluetooth", "battery-30", "battery-30-bluetooth", "battery-40", "battery-40-bluetooth", "battery-50", "battery-50-bluetooth", "battery-60", "battery-60-bluetooth", "battery-70", "battery-70-bluetooth", "battery-80", "battery-80-bluetooth", "battery-90", "battery-90-bluetooth", "battery-alert", "battery-alert-bluetooth", "battery-alert-variant", "battery-alert-variant-outline", "battery-arrow-down", "battery-arrow-down-outline", "battery-arrow-up", "battery-arrow-up-outline", "battery-bluetooth", "battery-bluetooth-variant", "battery-charging", "battery-charging-10", "battery-charging-100", "battery-charging-20", "battery-charging-30", "battery-charging-40", "battery-charging-50", "battery-charging-60", "battery-charging-70", "battery-charging-80", "battery-charging-90", "battery-charging-high", "battery-charging-low", "battery-charging-medium", "battery-charging-outline", "battery-charging-wireless", "battery-charging-wireless-10", "battery-charging-wireless-20", "battery-charging-wireless-30", "battery-charging-wireless-40", "battery-charging-wireless-50", "battery-charging-wireless-60", "battery-charging-wireless-70", "battery-charging-wireless-80", "battery-charging-wireless-90", "battery-charging-wireless-alert", "battery-charging-wireless-outline", "battery-check", "battery-check-outline", "battery-clock", "battery-clock-outline", "battery-heart", "battery-heart-outline", "battery-heart-variant", "battery-high", "battery-lock", "battery-lock-open", "battery-low", "battery-medium", "battery-minus", "battery-minus-outline", "battery-minus-variant", "battery-negative", "battery-off", "battery-off-outline", "battery-outline", "battery-plus", "battery-plus-outline", "battery-plus-variant", "battery-positive", "battery-remove", "battery-remove-outline", "battery-standard", "battery-sync", "battery-sync-outline", "battery-unknown", "battery-unknown-bluetooth", "battlenet", "beach", "beaker", "beaker-alert", "beaker-alert-outline", "beaker-check", "beaker-check-outline", "beaker-minus", "beaker-minus-outline", "beaker-outline", "beaker-plus", "beaker-plus-outline", "beaker-question", "beaker-question-outline", "beaker-remove", "beaker-remove-outline", "beam", "beats", "bed", "bed-double", "bed-double-outline", "bed-empty", "bed-king", "bed-king-outline", "bed-outline", "bed-queen", "bed-queen-outline", "bed-single", "bed-single-outline", "bee", "bee-flower", "beehive-off-outline", "beehive-outline", "beekeeper", "beer", "beer-outline", "behance", "bell", "bell-alert", "bell-alert-outline", "bell-badge", "bell-badge-outline", "bell-cancel", "bell-cancel-outline", "bell-check", "bell-check-outline", "bell-circle", "bell-circle-outline", "bell-cog", "bell-cog-outline", "bell-minus", "bell-minus-outline", "bell-off", "bell-off-outline", "bell-outline", "bell-plus", "bell-plus-outline", "bell-remove", "bell-remove-outline", "bell-ring", "bell-ring-outline", "bell-sleep", "bell-sleep-outline", "beta", "betamax", "biathlon", "bicycle", "bicycle-basket", "bicycle-cargo", "bicycle-electric", "bicycle-penny-farthing", "bike", "bike-fast", "billboard", "billiards", "billiards-rack", "binoculars", "bio", "biohazard", "bird", "bitbucket", "bitcoin", "black-mesa", "blackberry", "blender", "blender-outline", "blender-software", "blinds", "blinds-horizontal", "blinds-horizontal-closed", "blinds-open", "blinds-vertical", "blinds-vertical-closed", "block-helper", "blogger", "blood-bag", "bluetooth", "bluetooth-audio", "bluetooth-connect", "bluetooth-off", "bluetooth-settings", "bluetooth-transfer", "blur", "blur-linear", "blur-off", "blur-radial", "bolt", "bomb", "bomb-off", "bone", "bone-off", "book", "book-account", "book-account-outline", "book-alert", "book-alert-outline", "book-alphabet", "book-arrow-down", "book-arrow-down-outline", "book-arrow-left", "book-arrow-left-outline", "book-arrow-right", "book-arrow-right-outline", "book-arrow-up", "book-arrow-up-outline", "book-cancel", "book-cancel-outline", "book-check", "book-check-outline", "book-clock", "book-clock-outline", "book-cog", "book-cog-outline", "book-cross", "book-edit", "book-edit-outline", "book-education", "book-education-outline", "book-heart", "book-heart-outline", "book-information-variant", "book-lock", "book-lock-open", "book-lock-open-outline", "book-lock-outline", "book-marker", "book-marker-outline", "book-minus", "book-minus-multiple", "book-minus-multiple-outline", "book-minus-outline", "book-multiple", "book-multiple-minus", "book-multiple-outline", "book-multiple-plus", "book-multiple-remove", "book-multiple-variant", "book-music", "book-music-outline", "book-off", "book-off-outline", "book-open", "book-open-blank-variant", "book-open-outline", "book-open-page-variant", "book-open-page-variant-outline", "book-open-variant", "book-outline", "book-play", "book-play-outline", "book-plus", "book-plus-multiple", "book-plus-multiple-outline", "book-plus-outline", "book-refresh", "book-refresh-outline", "book-remove", "book-remove-multiple", "book-remove-multiple-outline", "book-remove-outline", "book-search", "book-search-outline", "book-settings", "book-settings-outline", "book-sync", "book-sync-outline", "book-variant", "book-variant-multiple", "bookmark", "bookmark-box-multiple", "bookmark-box-multiple-outline", "bookmark-check", "bookmark-check-outline", "bookmark-minus", "bookmark-minus-outline", "bookmark-multiple", "bookmark-multiple-outline", "bookmark-music", "bookmark-music-outline", "bookmark-off", "bookmark-off-outline", "bookmark-outline", "bookmark-plus", "bookmark-plus-outline", "bookmark-remove", "bookmark-remove-outline", "bookshelf", "boom-gate", "boom-gate-alert", "boom-gate-alert-outline", "boom-gate-arrow-down", "boom-gate-arrow-down-outline", "boom-gate-arrow-up", "boom-gate-arrow-up-outline", "boom-gate-outline", "boom-gate-up", "boom-gate-up-outline", "boombox", "boomerang", "bootstrap", "border-all", "border-all-variant", "border-bottom", "border-bottom-variant", "border-color", "border-horizontal", "border-inside", "border-left", "border-left-variant", "border-none", "border-none-variant", "border-outside", "border-radius", "border-right", "border-right-variant", "border-style", "border-top", "border-top-variant", "border-vertical", "bottle-soda", "bottle-soda-classic", "bottle-soda-classic-outline", "bottle-soda-outline", "bottle-tonic", "bottle-tonic-outline", "bottle-tonic-plus", "bottle-tonic-plus-outline", "bottle-tonic-skull", "bottle-tonic-skull-outline", "bottle-wine", "bottle-wine-outline", "bow-arrow", "bow-tie", "bowl", "bowl-mix", "bowl-mix-outline", "bowl-outline", "bowling", "box", "box-cutter", "box-cutter-off", "box-download", "box-shadow", "box-upload", "boxing-glove", "boxing-gloves", "braille", "brain", "bread-slice", "bread-slice-outline", "bridge", "briefcase", "briefcase-account", "briefcase-account-outline", "briefcase-arrow-left-right", "briefcase-arrow-left-right-outline", "briefcase-arrow-up-down", "briefcase-arrow-up-down-outline", "briefcase-check", "briefcase-check-outline", "briefcase-clock", "briefcase-clock-outline", "briefcase-download", "briefcase-download-outline", "briefcase-edit", "briefcase-edit-outline", "briefcase-eye", "briefcase-eye-outline", "briefcase-minus", "briefcase-minus-outline", "briefcase-off", "briefcase-off-outline", "briefcase-outline", "briefcase-plus", "briefcase-plus-outline", "briefcase-remove", "briefcase-remove-outline", "briefcase-search", "briefcase-search-outline", "briefcase-upload", "briefcase-upload-outline", "briefcase-variant", "briefcase-variant-off", "briefcase-variant-off-outline", "briefcase-variant-outline", "brightness", "brightness-1", "brightness-2", "brightness-3", "brightness-4", "brightness-5", "brightness-6", "brightness-7", "brightness-auto", "brightness-percent", "broadcast", "broadcast-off", "broom", "brush", "brush-off", "brush-outline", "brush-variant", "bucket", "bucket-outline", "buffer", "buffet", "bug", "bug-check", "bug-check-outline", "bug-outline", "bug-pause", "bug-pause-outline", "bug-play", "bug-play-outline", "bug-stop", "bug-stop-outline", "bugle", "bulkhead-light", "bulldozer", "bullet", "bulletin-board", "bullhorn", "bullhorn-outline", "bullhorn-variant", "bullhorn-variant-outline", "bullseye", "bullseye-arrow", "bulma", "bunk-bed", "bunk-bed-outline", "bus", "bus-alert", "bus-articulated-end", "bus-articulated-front", "bus-clock", "bus-double-decker", "bus-electric", "bus-marker", "bus-multiple", "bus-school", "bus-side", "bus-stop", "bus-stop-covered", "bus-stop-uncovered", "butterfly", "butterfly-outline", "cabin-a-frame", "cable-data", "cached", "cactus", "cake", "cake-layered", "cake-variant", "cake-variant-outline", "calculator", "calculator-off", "calculator-variant", "calculator-variant-outline", "calendar", "calendar-account", "calendar-account-outline", "calendar-alert", "calendar-arrow-left", "calendar-arrow-right", "calendar-blank", "calendar-blank-multiple", "calendar-blank-outline", "calendar-check", "calendar-check-outline", "calendar-clock", "calendar-clock-outline", "calendar-collapse-horizontal", "calendar-cursor", "calendar-edit", "calendar-end", "calendar-expand-horizontal", "calendar-export", "calendar-heart", "calendar-import", "calendar-lock", "calendar-lock-outline", "calendar-minus", "calendar-month", "calendar-month-outline", "calendar-multiple", "calendar-multiple-check", "calendar-multiselect", "calendar-outline", "calendar-plus", "calendar-question", "calendar-range", "calendar-range-outline", "calendar-refresh", "calendar-refresh-outline", "calendar-remove", "calendar-remove-outline", "calendar-search", "calendar-select", "calendar-star", "calendar-start", "calendar-sync", "calendar-sync-outline", "calendar-text", "calendar-text-outline", "calendar-today", "calendar-today-outline", "calendar-week", "calendar-week-begin", "calendar-week-begin-outline", "calendar-week-end", "calendar-week-end-outline", "calendar-week-outline", "calendar-weekend", "calendar-weekend-outline", "call-made", "call-merge", "call-missed", "call-received", "call-split", "camcorder", "camcorder-off", "camera", "camera-account", "camera-burst", "camera-control", "camera-document", "camera-document-off", "camera-enhance", "camera-enhance-outline", "camera-flip", "camera-flip-outline", "camera-focus", "camera-front", "camera-front-variant", "camera-gopro", "camera-image", "camera-iris", "camera-lock", "camera-lock-outline", "camera-marker", "camera-marker-outline", "camera-metering-center", "camera-metering-matrix", "camera-metering-partial", "camera-metering-spot", "camera-off", "camera-off-outline", "camera-outline", "camera-party-mode", "camera-plus", "camera-plus-outline", "camera-rear", "camera-rear-variant", "camera-retake", "camera-retake-outline", "camera-switch", "camera-switch-outline", "camera-timer", "camera-wireless", "camera-wireless-outline", "campfire", "cancel", "candelabra", "candelabra-fire", "candle", "candy", "candy-off", "candy-off-outline", "candy-outline", "candycane", "cannabis", "cannabis-off", "caps-lock", "car", "car-2-plus", "car-3-plus", "car-arrow-left", "car-arrow-right", "car-back", "car-battery", "car-brake-abs", "car-brake-alert", "car-brake-fluid-level", "car-brake-hold", "car-brake-low-pressure", "car-brake-parking", "car-brake-retarder", "car-brake-temperature", "car-brake-worn-linings", "car-child-seat", "car-clock", "car-clutch", "car-cog", "car-connected", "car-convertable", "car-convertible", "car-coolant-level", "car-cruise-control", "car-defrost-front", "car-defrost-rear", "car-door", "car-door-lock", "car-electric", "car-electric-outline", "car-emergency", "car-esp", "car-estate", "car-hatchback", "car-info", "car-key", "car-lifted-pickup", "car-light-alert", "car-light-dimmed", "car-light-fog", "car-light-high", "car-limousine", "car-multiple", "car-off", "car-outline", "car-parking-lights", "car-pickup", "car-seat", "car-seat-cooler", "car-seat-heater", "car-select", "car-settings", "car-shift-pattern", "car-side", "car-speed-limiter", "car-sports", "car-tire-alert", "car-traction-control", "car-turbocharger", "car-wash", "car-windshield", "car-windshield-outline", "car-wireless", "car-wrench", "carabiner", "caravan", "card", "card-account-details", "card-account-details-outline", "card-account-details-star", "card-account-details-star-outline", "card-account-mail", "card-account-mail-outline", "card-account-phone", "card-account-phone-outline", "card-bulleted", "card-bulleted-off", "card-bulleted-off-outline", "card-bulleted-outline", "card-bulleted-settings", "card-bulleted-settings-outline", "card-minus", "card-minus-outline", "card-multiple", "card-multiple-outline", "card-off", "card-off-outline", "card-outline", "card-plus", "card-plus-outline", "card-remove", "card-remove-outline", "card-search", "card-search-outline", "card-text", "card-text-outline", "cards", "cards-club", "cards-club-outline", "cards-diamond", "cards-diamond-outline", "cards-heart", "cards-heart-outline", "cards-outline", "cards-playing", "cards-playing-club", "cards-playing-club-multiple", "cards-playing-club-multiple-outline", "cards-playing-club-outline", "cards-playing-diamond", "cards-playing-diamond-multiple", "cards-playing-diamond-multiple-outline", "cards-playing-diamond-outline", "cards-playing-heart", "cards-playing-heart-multiple", "cards-playing-heart-multiple-outline", "cards-playing-heart-outline", "cards-playing-outline", "cards-playing-spade", "cards-playing-spade-multiple", "cards-playing-spade-multiple-outline", "cards-playing-spade-outline", "cards-spade", "cards-spade-outline", "cards-variant", "carrot", "cart", "cart-arrow-down", "cart-arrow-right", "cart-arrow-up", "cart-check", "cart-heart", "cart-minus", "cart-off", "cart-outline", "cart-plus", "cart-remove", "cart-variant", "case-sensitive-alt", "cash", "cash-100", "cash-check", "cash-clock", "cash-fast", "cash-lock", "cash-lock-open", "cash-marker", "cash-minus", "cash-multiple", "cash-plus", "cash-refund", "cash-register", "cash-remove", "cash-sync", "cash-usd", "cash-usd-outline", "cassette", "cast", "cast-audio", "cast-audio-variant", "cast-connected", "cast-education", "cast-off", "cast-variant", "castle", "cat", "cctv", "cctv-off", "ceiling-fan", "ceiling-fan-light", "ceiling-light", "ceiling-light-multiple", "ceiling-light-multiple-outline", "ceiling-light-outline", "cellphone", "cellphone-android", "cellphone-arrow-down", "cellphone-arrow-down-variant", "cellphone-basic", "cellphone-charging", "cellphone-check", "cellphone-cog", "cellphone-dock", "cellphone-information", "cellphone-iphone", "cellphone-key", "cellphone-link", "cellphone-link-off", "cellphone-lock", "cellphone-marker", "cellphone-message", "cellphone-message-off", "cellphone-nfc", "cellphone-nfc-off", "cellphone-off", "cellphone-play", "cellphone-remove", "cellphone-screenshot", "cellphone-settings", "cellphone-sound", "cellphone-text", "cellphone-wireless", "centos", "certificate", "certificate-outline", "chair-rolling", "chair-school", "chandelier", "charity", "chart-arc", "chart-areaspline", "chart-areaspline-variant", "chart-bar", "chart-bar-stacked", "chart-bell-curve", "chart-bell-curve-cumulative", "chart-box", "chart-box-outline", "chart-box-plus-outline", "chart-bubble", "chart-donut", "chart-donut-variant", "chart-gantt", "chart-histogram", "chart-line", "chart-line-stacked", "chart-line-variant", "chart-multiline", "chart-multiple", "chart-pie", "chart-ppf", "chart-sankey", "chart-sankey-variant", "chart-scatter-plot", "chart-scatter-plot-hexbin", "chart-timeline", "chart-timeline-variant", "chart-timeline-variant-shimmer", "chart-tree", "chart-waterfall", "chat", "chat-alert", "chat-alert-outline", "chat-minus", "chat-minus-outline", "chat-outline", "chat-plus", "chat-plus-outline", "chat-processing", "chat-processing-outline", "chat-question", "chat-question-outline", "chat-remove", "chat-remove-outline", "chat-sleep", "chat-sleep-outline", "check", "check-all", "check-bold", "check-bookmark", "check-circle", "check-circle-outline", "check-decagram", "check-decagram-outline", "check-network", "check-network-outline", "check-outline", "check-underline", "check-underline-circle", "check-underline-circle-outline", "checkbook", "checkbox-blank", "checkbox-blank-badge", "checkbox-blank-badge-outline", "checkbox-blank-circle", "checkbox-blank-circle-outline", "checkbox-blank-off", "checkbox-blank-off-outline", "checkbox-blank-outline", "checkbox-indeterminate", "checkbox-intermediate", "checkbox-marked", "checkbox-marked-circle", "checkbox-marked-circle-outline", "checkbox-marked-circle-plus-outline", "checkbox-marked-outline", "checkbox-multiple-blank", "checkbox-multiple-blank-circle", "checkbox-multiple-blank-circle-outline", "checkbox-multiple-blank-outline", "checkbox-multiple-marked", "checkbox-multiple-marked-circle", "checkbox-multiple-marked-circle-outline", "checkbox-multiple-marked-outline", "checkbox-multiple-outline", "checkbox-outline", "checkerboard", "checkerboard-minus", "checkerboard-plus", "checkerboard-remove", "cheese", "cheese-off", "chef-hat", "chemical-weapon", "chess-bishop", "chess-king", "chess-knight", "chess-pawn", "chess-queen", "chess-rook", "chevron-double-down", "chevron-double-left", "chevron-double-right", "chevron-double-up", "chevron-down", "chevron-down-box", "chevron-down-box-outline", "chevron-down-circle", "chevron-down-circle-outline", "chevron-left", "chevron-left-box", "chevron-left-box-outline", "chevron-left-circle", "chevron-left-circle-outline", "chevron-right", "chevron-right-box", "chevron-right-box-outline", "chevron-right-circle", "chevron-right-circle-outline", "chevron-triple-down", "chevron-triple-left", "chevron-triple-right", "chevron-triple-up", "chevron-up", "chevron-up-box", "chevron-up-box-outline", "chevron-up-circle", "chevron-up-circle-outline", "chili-alert", "chili-alert-outline", "chili-hot", "chili-hot-outline", "chili-medium", "chili-medium-outline", "chili-mild", "chili-mild-outline", "chili-off", "chili-off-outline", "chip", "church", "church-outline", "cigar", "cigar-off", "circle", "circle-box", "circle-box-outline", "circle-double", "circle-edit-outline", "circle-expand", "circle-half", "circle-half-full", "circle-medium", "circle-multiple", "circle-multiple-outline", "circle-off-outline", "circle-opacity", "circle-outline", "circle-slice-1", "circle-slice-2", "circle-slice-3", "circle-slice-4", "circle-slice-5", "circle-slice-6", "circle-slice-7", "circle-slice-8", "circle-small", "circular-saw", "cisco-webex", "city", "city-variant", "city-variant-outline", "clipboard", "clipboard-account", "clipboard-account-outline", "clipboard-alert", "clipboard-alert-outline", "clipboard-arrow-down", "clipboard-arrow-down-outline", "clipboard-arrow-left", "clipboard-arrow-left-outline", "clipboard-arrow-right", "clipboard-arrow-right-outline", "clipboard-arrow-up", "clipboard-arrow-up-outline", "clipboard-check", "clipboard-check-multiple", "clipboard-check-multiple-outline", "clipboard-check-outline", "clipboard-clock", "clipboard-clock-outline", "clipboard-edit", "clipboard-edit-outline", "clipboard-file", "clipboard-file-outline", "clipboard-flow", "clipboard-flow-outline", "clipboard-list", "clipboard-list-outline", "clipboard-minus", "clipboard-minus-outline", "clipboard-multiple", "clipboard-multiple-outline", "clipboard-off", "clipboard-off-outline", "clipboard-outline", "clipboard-play", "clipboard-play-multiple", "clipboard-play-multiple-outline", "clipboard-play-outline", "clipboard-plus", "clipboard-plus-outline", "clipboard-pulse", "clipboard-pulse-outline", "clipboard-remove", "clipboard-remove-outline", "clipboard-search", "clipboard-search-outline", "clipboard-text", "clipboard-text-clock", "clipboard-text-clock-outline", "clipboard-text-multiple", "clipboard-text-multiple-outline", "clipboard-text-off", "clipboard-text-off-outline", "clipboard-text-outline", "clipboard-text-play", "clipboard-text-play-outline", "clipboard-text-search", "clipboard-text-search-outline", "clippy", "clock", "clock-alert", "clock-alert-outline", "clock-check", "clock-check-outline", "clock-digital", "clock-edit", "clock-edit-outline", "clock-end", "clock-fast", "clock-in", "clock-minus", "clock-minus-outline", "clock-out", "clock-outline", "clock-plus", "clock-plus-outline", "clock-remove", "clock-remove-outline", "clock-start", "clock-time-eight", "clock-time-eight-outline", "clock-time-eleven", "clock-time-eleven-outline", "clock-time-five", "clock-time-five-outline", "clock-time-four", "clock-time-four-outline", "clock-time-nine", "clock-time-nine-outline", "clock-time-one", "clock-time-one-outline", "clock-time-seven", "clock-time-seven-outline", "clock-time-six", "clock-time-six-outline", "clock-time-ten", "clock-time-ten-outline", "clock-time-three", "clock-time-three-outline", "clock-time-twelve", "clock-time-twelve-outline", "clock-time-two", "clock-time-two-outline", "close", "close-box", "close-box-multiple", "close-box-multiple-outline", "close-box-outline", "close-circle", "close-circle-multiple", "close-circle-multiple-outline", "close-circle-outline", "close-network", "close-network-outline", "close-octagon", "close-octagon-outline", "close-outline", "close-thick", "closed-caption", "closed-caption-outline", "cloud", "cloud-alert", "cloud-braces", "cloud-check", "cloud-check-outline", "cloud-circle", "cloud-download", "cloud-download-outline", "cloud-lock", "cloud-lock-outline", "cloud-off-outline", "cloud-outline", "cloud-percent", "cloud-percent-outline", "cloud-print", "cloud-print-outline", "cloud-question", "cloud-refresh", "cloud-search", "cloud-search-outline", "cloud-sync", "cloud-sync-outline", "cloud-tags", "cloud-upload", "cloud-upload-outline", "clover", "coach-lamp", "coach-lamp-variant", "coat-rack", "code-array", "code-braces", "code-braces-box", "code-brackets", "code-equal", "code-greater-than", "code-greater-than-or-equal", "code-json", "code-less-than", "code-less-than-or-equal", "code-not-equal", "code-not-equal-variant", "code-parentheses", "code-parentheses-box", "code-string", "code-tags", "code-tags-check", "codepen", "coffee", "coffee-maker", "coffee-maker-check", "coffee-maker-check-outline", "coffee-maker-outline", "coffee-off", "coffee-off-outline", "coffee-outline", "coffee-to-go", "coffee-to-go-outline", "coffin", "cog", "cog-box", "cog-clockwise", "cog-counterclockwise", "cog-off", "cog-off-outline", "cog-outline", "cog-pause", "cog-pause-outline", "cog-play", "cog-play-outline", "cog-refresh", "cog-refresh-outline", "cog-stop", "cog-stop-outline", "cog-sync", "cog-sync-outline", "cog-transfer", "cog-transfer-outline", "cogs", "collage", "collapse-all", "collapse-all-outline", "color-helper", "comma", "comma-box", "comma-box-outline", "comma-circle", "comma-circle-outline", "comment", "comment-account", "comment-account-outline", "comment-alert", "comment-alert-outline", "comment-arrow-left", "comment-arrow-left-outline", "comment-arrow-right", "comment-arrow-right-outline", "comment-bookmark", "comment-bookmark-outline", "comment-check", "comment-check-outline", "comment-edit", "comment-edit-outline", "comment-eye", "comment-eye-outline", "comment-flash", "comment-flash-outline", "comment-minus", "comment-minus-outline", "comment-multiple", "comment-multiple-outline", "comment-off", "comment-off-outline", "comment-outline", "comment-plus", "comment-plus-outline", "comment-processing", "comment-processing-outline", "comment-question", "comment-question-outline", "comment-quote", "comment-quote-outline", "comment-remove", "comment-remove-outline", "comment-search", "comment-search-outline", "comment-text", "comment-text-multiple", "comment-text-multiple-outline", "comment-text-outline", "compare", "compare-horizontal", "compare-remove", "compare-vertical", "compass", "compass-off", "compass-off-outline", "compass-outline", "compass-rose", "compost", "concourse-ci", "cone", "cone-off", "connection", "console", "console-line", "console-network", "console-network-outline", "consolidate", "contactless-payment", "contactless-payment-circle", "contactless-payment-circle-outline", "contacts", "contacts-outline", "contain", "contain-end", "contain-start", "content-copy", "content-cut", "content-duplicate", "content-paste", "content-save", "content-save-alert", "content-save-alert-outline", "content-save-all", "content-save-all-outline", "content-save-check", "content-save-check-outline", "content-save-cog", "content-save-cog-outline", "content-save-edit", "content-save-edit-outline", "content-save-move", "content-save-move-outline", "content-save-off", "content-save-off-outline", "content-save-outline", "content-save-settings", "content-save-settings-outline", "contrast", "contrast-box", "contrast-circle", "controller-classic", "controller-classic-outline", "controller-xbox", "cookie", "cookie-alert", "cookie-alert-outline", "cookie-check", "cookie-check-outline", "cookie-clock", "cookie-clock-outline", "cookie-cog", "cookie-cog-outline", "cookie-edit", "cookie-edit-outline", "cookie-lock", "cookie-lock-outline", "cookie-minus", "cookie-minus-outline", "cookie-off", "cookie-off-outline", "cookie-outline", "cookie-plus", "cookie-plus-outline", "cookie-refresh", "cookie-refresh-outline", "cookie-remove", "cookie-remove-outline", "cookie-settings", "cookie-settings-outline", "coolant-temperature", "copyleft", "copyright", "cordova", "corn", "corn-off", "cosine-wave", "counter", "countertop", "countertop-outline", "cow", "cow-off", "cpu-32-bit", "cpu-64-bit", "cradle", "cradle-outline", "crane", "creation", "creative-commons", "credit-card", "credit-card-check", "credit-card-check-outline", "credit-card-chip", "credit-card-chip-outline", "credit-card-clock", "credit-card-clock-outline", "credit-card-edit", "credit-card-edit-outline", "credit-card-fast", "credit-card-fast-outline", "credit-card-lock", "credit-card-lock-outline", "credit-card-marker", "credit-card-marker-outline", "credit-card-minus", "credit-card-minus-outline", "credit-card-multiple", "credit-card-multiple-outline", "credit-card-off", "credit-card-off-outline", "credit-card-outline", "credit-card-plus", "credit-card-plus-outline", "credit-card-refresh", "credit-card-refresh-outline", "credit-card-refund", "credit-card-refund-outline", "credit-card-remove", "credit-card-remove-outline", "credit-card-scan", "credit-card-scan-outline", "credit-card-search", "credit-card-search-outline", "credit-card-settings", "credit-card-settings-outline", "credit-card-sync", "credit-card-sync-outline", "credit-card-wireless", "credit-card-wireless-off", "credit-card-wireless-off-outline", "credit-card-wireless-outline", "cricket", "crop", "crop-free", "crop-landscape", "crop-portrait", "crop-rotate", "crop-square", "cross", "cross-bolnisi", "cross-celtic", "cross-outline", "crosshairs", "crosshairs-gps", "crosshairs-off", "crosshairs-question", "crowd", "crown", "crown-circle", "crown-circle-outline", "crown-outline", "cryengine", "crystal-ball", "cube", "cube-off", "cube-off-outline", "cube-outline", "cube-scan", "cube-send", "cube-unfolded", "cup", "cup-off", "cup-off-outline", "cup-outline", "cup-water", "cupboard", "cupboard-outline", "cupcake", "curling", "currency-bdt", "currency-brl", "currency-btc", "currency-chf", "currency-cny", "currency-eth", "currency-eur", "currency-eur-off", "currency-fra", "currency-gbp", "currency-ils", "currency-inr", "currency-jpy", "currency-krw", "currency-kzt", "currency-mnt", "currency-ngn", "currency-php", "currency-rial", "currency-rub", "currency-rupee", "currency-sign", "currency-try", "currency-twd", "currency-usd", "currency-usd-circle", "currency-usd-circle-outline", "currency-usd-off", "current-ac", "current-dc", "cursor-default", "cursor-default-click", "cursor-default-click-outline", "cursor-default-gesture", "cursor-default-gesture-outline", "cursor-default-outline", "cursor-move", "cursor-pointer", "cursor-text", "curtains", "curtains-closed", "cylinder", "cylinder-off", "dance-ballroom", "dance-pole", "data", "data-matrix", "data-matrix-edit", "data-matrix-minus", "data-matrix-plus", "data-matrix-remove", "data-matrix-scan", "database", "database-alert", "database-alert-outline", "database-arrow-down", "database-arrow-down-outline", "database-arrow-left", "database-arrow-left-outline", "database-arrow-right", "database-arrow-right-outline", "database-arrow-up", "database-arrow-up-outline", "database-check", "database-check-outline", "database-clock", "database-clock-outline", "database-cog", "database-cog-outline", "database-edit", "database-edit-outline", "database-export", "database-export-outline", "database-eye", "database-eye-off", "database-eye-off-outline", "database-eye-outline", "database-import", "database-import-outline", "database-lock", "database-lock-outline", "database-marker", "database-marker-outline", "database-minus", "database-minus-outline", "database-off", "database-off-outline", "database-outline", "database-plus", "database-plus-outline", "database-refresh", "database-refresh-outline", "database-remove", "database-remove-outline", "database-search", "database-search-outline", "database-settings", "database-settings-outline", "database-sync", "database-sync-outline", "death-star", "death-star-variant", "deathly-hallows", "debian", "debug-step-into", "debug-step-out", "debug-step-over", "decagram", "decagram-outline", "decimal", "decimal-comma", "decimal-comma-decrease", "decimal-comma-increase", "decimal-decrease", "decimal-increase", "delete", "delete-alert", "delete-alert-outline", "delete-circle", "delete-circle-outline", "delete-clock", "delete-clock-outline", "delete-empty", "delete-empty-outline", "delete-forever", "delete-forever-outline", "delete-off", "delete-off-outline", "delete-outline", "delete-restore", "delete-sweep", "delete-sweep-outline", "delete-variant", "delta", "desk", "desk-lamp", "deskphone", "desktop-classic", "desktop-mac", "desktop-mac-dashboard", "desktop-tower", "desktop-tower-monitor", "details", "dev-to", "developer-board", "deviantart", "devices", "dharmachakra", "diabetes", "dialpad", "diameter", "diameter-outline", "diameter-variant", "diamond", "diamond-outline", "diamond-stone", "dice", "dice-1", "dice-1-outline", "dice-2", "dice-2-outline", "dice-3", "dice-3-outline", "dice-4", "dice-4-outline", "dice-5", "dice-5-outline", "dice-6", "dice-6-outline", "dice-d10", "dice-d10-outline", "dice-d12", "dice-d12-outline", "dice-d20", "dice-d20-outline", "dice-d4", "dice-d4-outline", "dice-d6", "dice-d6-outline", "dice-d8", "dice-d8-outline", "dice-multiple", "dice-multiple-outline", "digital-ocean", "dip-switch", "directions", "directions-fork", "disc", "disc-alert", "disc-player", "discord", "dishwasher", "dishwasher-alert", "dishwasher-off", "disk", "disk-alert", "disk-player", "disqus", "disqus-outline", "distribute-horizontal-center", "distribute-horizontal-left", "distribute-horizontal-right", "distribute-vertical-bottom", "distribute-vertical-center", "distribute-vertical-top", "diversify", "diving", "diving-flippers", "diving-helmet", "diving-scuba", "diving-scuba-flag", "diving-scuba-tank", "diving-scuba-tank-multiple", "diving-snorkel", "division", "division-box", "dlna", "dna", "dns", "dns-outline", "do-not-disturb", "dock-bottom", "dock-left", "dock-right", "dock-top", "dock-window", "docker", "doctor", "document", "dog", "dog-service", "dog-side", "dog-side-off", "dolby", "dolly", "dolphin", "domain", "domain-off", "domain-plus", "domain-remove", "dome-light", "domino-mask", "donkey", "door", "door-closed", "door-closed-lock", "door-open", "door-sliding", "door-sliding-lock", "door-sliding-open", "doorbell", "doorbell-video", "dot-net", "dots-circle", "dots-grid", "dots-hexagon", "dots-horizontal", "dots-horizontal-circle", "dots-horizontal-circle-outline", "dots-square", "dots-triangle", "dots-vertical", "dots-vertical-circle", "dots-vertical-circle-outline", "douban", "download", "download-box", "download-box-outline", "download-circle", "download-circle-outline", "download-lock", "download-lock-outline", "download-multiple", "download-network", "download-network-outline", "download-off", "download-off-outline", "download-outline", "drag", "drag-horizontal", "drag-horizontal-variant", "drag-variant", "drag-vertical", "drag-vertical-variant", "drama-masks", "draw", "draw-pen", "drawing", "drawing-box", "dresser", "dresser-outline", "dribbble", "dribbble-box", "drone", "dropbox", "drupal", "duck", "dumbbell", "dump-truck", "ear-hearing", "ear-hearing-loop", "ear-hearing-off", "earbuds", "earbuds-off", "earbuds-off-outline", "earbuds-outline", "earth", "earth-arrow-right", "earth-box", "earth-box-minus", "earth-box-off", "earth-box-plus", "earth-box-remove", "earth-minus", "earth-off", "earth-plus", "earth-remove", "ebay", "egg", "egg-easter", "egg-fried", "egg-off", "egg-off-outline", "egg-outline", "eiffel-tower", "eight-track", "eject", "eject-outline", "electric-switch", "electric-switch-closed", "electron-framework", "elephant", "elevation-decline", "elevation-rise", "elevator", "elevator-down", "elevator-passenger", "elevator-passenger-off", "elevator-passenger-off-outline", "elevator-passenger-outline", "elevator-up", "ellipse", "ellipse-outline", "email", "email-alert", "email-alert-outline", "email-box", "email-check", "email-check-outline", "email-edit", "email-edit-outline", "email-fast", "email-fast-outline", "email-lock", "email-mark-as-unread", "email-minus", "email-minus-outline", "email-multiple", "email-multiple-outline", "email-newsletter", "email-off", "email-off-outline", "email-open", "email-open-multiple", "email-open-multiple-outline", "email-open-outline", "email-outline", "email-plus", "email-plus-outline", "email-receive", "email-receive-outline", "email-remove", "email-remove-outline", "email-seal", "email-seal-outline", "email-search", "email-search-outline", "email-send", "email-send-outline", "email-sync", "email-sync-outline", "email-variant", "ember", "emby", "emoticon", "emoticon-angry", "emoticon-angry-outline", "emoticon-confused", "emoticon-confused-outline", "emoticon-cool", "emoticon-cool-outline", "emoticon-cry", "emoticon-cry-outline", "emoticon-dead", "emoticon-dead-outline", "emoticon-devil", "emoticon-devil-outline", "emoticon-excited", "emoticon-excited-outline", "emoticon-frown", "emoticon-frown-outline", "emoticon-happy", "emoticon-happy-outline", "emoticon-kiss", "emoticon-kiss-outline", "emoticon-lol", "emoticon-lol-outline", "emoticon-neutral", "emoticon-neutral-outline", "emoticon-outline", "emoticon-poop", "emoticon-poop-outline", "emoticon-sad", "emoticon-sad-outline", "emoticon-sick", "emoticon-sick-outline", "emoticon-tongue", "emoticon-tongue-outline", "emoticon-wink", "emoticon-wink-outline", "engine", "engine-off", "engine-off-outline", "engine-outline", "epsilon", "equal", "equal-box", "equalizer", "equalizer-outline", "eraser", "eraser-variant", "escalator", "escalator-box", "escalator-down", "escalator-up", "eslint", "et", "ethereum", "ethernet", "ethernet-cable", "ethernet-cable-off", "etsy", "ev-plug-ccs1", "ev-plug-ccs2", "ev-plug-chademo", "ev-plug-tesla", "ev-plug-type1", "ev-plug-type2", "ev-station", "eventbrite", "evernote", "excavator", "exclamation", "exclamation-thick", "exit-run", "exit-to-app", "expand-all", "expand-all-outline", "expansion-card", "expansion-card-variant", "exponent", "exponent-box", "export", "export-variant", "eye", "eye-arrow-left", "eye-arrow-left-outline", "eye-arrow-right", "eye-arrow-right-outline", "eye-check", "eye-check-outline", "eye-circle", "eye-circle-outline", "eye-minus", "eye-minus-outline", "eye-off", "eye-off-outline", "eye-outline", "eye-plus", "eye-plus-outline", "eye-refresh", "eye-refresh-outline", "eye-remove", "eye-remove-outline", "eye-settings", "eye-settings-outline", "eyedropper", "eyedropper-minus", "eyedropper-off", "eyedropper-plus", "eyedropper-remove", "eyedropper-variant", "face-agent", "face-man", "face-man-outline", "face-man-profile", "face-man-shimmer", "face-man-shimmer-outline", "face-mask", "face-mask-outline", "face-recognition", "face-woman", "face-woman-outline", "face-woman-profile", "face-woman-shimmer", "face-woman-shimmer-outline", "facebook", "facebook-box", "facebook-gaming", "facebook-messenger", "facebook-workplace", "factory", "family-tree", "fan", "fan-alert", "fan-auto", "fan-chevron-down", "fan-chevron-up", "fan-clock", "fan-minus", "fan-off", "fan-plus", "fan-remove", "fan-speed-1", "fan-speed-2", "fan-speed-3", "fast-forward", "fast-forward-10", "fast-forward-15", "fast-forward-30", "fast-forward-5", "fast-forward-60", "fast-forward-outline", "fax", "feather", "feature-search", "feature-search-outline", "fedora", "fence", "fence-electric", "fencing", "ferris-wheel", "ferry", "file", "file-account", "file-account-outline", "file-alert", "file-alert-outline", "file-arrow-left-right", "file-arrow-left-right-outline", "file-arrow-up-down", "file-arrow-up-down-outline", "file-cabinet", "file-cad", "file-cad-box", "file-cancel", "file-cancel-outline", "file-certificate", "file-certificate-outline", "file-chart", "file-chart-check", "file-chart-check-outline", "file-chart-outline", "file-check", "file-check-outline", "file-clock", "file-clock-outline", "file-cloud", "file-cloud-outline", "file-code", "file-code-outline", "file-cog", "file-cog-outline", "file-compare", "file-delimited", "file-delimited-outline", "file-document", "file-document-alert", "file-document-alert-outline", "file-document-check", "file-document-check-outline", "file-document-edit", "file-document-edit-outline", "file-document-minus", "file-document-minus-outline", "file-document-multiple", "file-document-multiple-outline", "file-document-outline", "file-document-plus", "file-document-plus-outline", "file-document-remove", "file-document-remove-outline", "file-download", "file-download-outline", "file-edit", "file-edit-outline", "file-excel", "file-excel-box", "file-excel-box-outline", "file-excel-outline", "file-export", "file-export-outline", "file-eye", "file-eye-outline", "file-find", "file-find-outline", "file-gif-box", "file-hidden", "file-image", "file-image-box", "file-image-marker", "file-image-marker-outline", "file-image-minus", "file-image-minus-outline", "file-image-outline", "file-image-plus", "file-image-plus-outline", "file-image-remove", "file-image-remove-outline", "file-import", "file-import-outline", "file-jpg-box", "file-key", "file-key-outline", "file-link", "file-link-outline", "file-lock", "file-lock-open", "file-lock-open-outline", "file-lock-outline", "file-marker", "file-marker-outline", "file-minus", "file-minus-outline", "file-move", "file-move-outline", "file-multiple", "file-multiple-outline", "file-music", "file-music-outline", "file-outline", "file-pdf", "file-pdf-box", "file-pdf-box-outline", "file-pdf-outline", "file-percent", "file-percent-outline", "file-phone", "file-phone-outline", "file-plus", "file-plus-outline", "file-png-box", "file-powerpoint", "file-powerpoint-box", "file-powerpoint-box-outline", "file-powerpoint-outline", "file-presentation-box", "file-question", "file-question-outline", "file-refresh", "file-refresh-outline", "file-remove", "file-remove-outline", "file-replace", "file-replace-outline", "file-restore", "file-restore-outline", "file-rotate-left", "file-rotate-left-outline", "file-rotate-right", "file-rotate-right-outline", "file-search", "file-search-outline", "file-send", "file-send-outline", "file-settings", "file-settings-outline", "file-sign", "file-star", "file-star-outline", "file-swap", "file-swap-outline", "file-sync", "file-sync-outline", "file-table", "file-table-box", "file-table-box-multiple", "file-table-box-multiple-outline", "file-table-box-outline", "file-table-outline", "file-tree", "file-tree-outline", "file-undo", "file-undo-outline", "file-upload", "file-upload-outline", "file-video", "file-video-outline", "file-word", "file-word-box", "file-word-box-outline", "file-word-outline", "file-xml", "fill", "film", "filmstrip", "filmstrip-box", "filmstrip-box-multiple", "filmstrip-off", "filter", "filter-check", "filter-check-outline", "filter-cog", "filter-cog-outline", "filter-menu", "filter-menu-outline", "filter-minus", "filter-minus-outline", "filter-multiple", "filter-multiple-outline", "filter-off", "filter-off-outline", "filter-outline", "filter-plus", "filter-plus-outline", "filter-remove", "filter-remove-outline", "filter-settings", "filter-settings-outline", "filter-variant", "filter-variant-minus", "filter-variant-plus", "filter-variant-remove", "finance", "find-replace", "fingerprint", "fingerprint-off", "fire", "fire-alert", "fire-circle", "fire-extinguisher", "fire-hydrant", "fire-hydrant-alert", "fire-hydrant-off", "fire-off", "fire-truck", "firebase", "firefox", "fireplace", "fireplace-off", "firewire", "firework", "firework-off", "fish", "fish-off", "fishbowl", "fishbowl-outline", "fit-to-page", "fit-to-page-outline", "fit-to-screen", "fit-to-screen-outline", "flag", "flag-checkered", "flag-checkered-variant", "flag-minus", "flag-minus-outline", "flag-off", "flag-off-outline", "flag-outline", "flag-outline-variant", "flag-plus", "flag-plus-outline", "flag-remove", "flag-remove-outline", "flag-triangle", "flag-variant", "flag-variant-outline", "flare", "flash", "flash-alert", "flash-alert-outline", "flash-auto", "flash-off", "flash-outline", "flash-red-eye", "flashlight", "flashlight-off", "flask", "flask-empty", "flask-empty-minus", "flask-empty-minus-outline", "flask-empty-off", "flask-empty-off-outline", "flask-empty-outline", "flask-empty-plus", "flask-empty-plus-outline", "flask-empty-remove", "flask-empty-remove-outline", "flask-minus", "flask-minus-outline", "flask-off", "flask-off-outline", "flask-outline", "flask-plus", "flask-plus-outline", "flask-remove", "flask-remove-outline", "flask-round-bottom", "flask-round-bottom-empty", "flask-round-bottom-empty-outline", "flask-round-bottom-outline", "flattr", "fleur-de-lis", "flickr", "flickr-after", "flickr-before", "flip-horizontal", "flip-to-back", "flip-to-front", "flip-vertical", "floor-1", "floor-2", "floor-3", "floor-a", "floor-b", "floor-g", "floor-l", "floor-lamp", "floor-lamp-dual", "floor-lamp-dual-outline", "floor-lamp-outline", "floor-lamp-torchiere", "floor-lamp-torchiere-outline", "floor-lamp-torchiere-variant", "floor-lamp-torchiere-variant-outline", "floor-plan", "floppy", "floppy-variant", "flower", "flower-outline", "flower-pollen", "flower-pollen-outline", "flower-poppy", "flower-tulip", "flower-tulip-outline", "focus-auto", "focus-field", "focus-field-horizontal", "focus-field-vertical", "folder", "folder-account", "folder-account-outline", "folder-alert", "folder-alert-outline", "folder-arrow-down", "folder-arrow-down-outline", "folder-arrow-left", "folder-arrow-left-outline", "folder-arrow-left-right", "folder-arrow-left-right-outline", "folder-arrow-right", "folder-arrow-right-outline", "folder-arrow-up", "folder-arrow-up-down", "folder-arrow-up-down-outline", "folder-arrow-up-outline", "folder-cancel", "folder-cancel-outline", "folder-check", "folder-check-outline", "folder-clock", "folder-clock-outline", "folder-cog", "folder-cog-outline", "folder-download", "folder-download-outline", "folder-edit", "folder-edit-outline", "folder-eye", "folder-eye-outline", "folder-file", "folder-file-outline", "folder-google-drive", "folder-heart", "folder-heart-outline", "folder-hidden", "folder-home", "folder-home-outline", "folder-image", "folder-information", "folder-information-outline", "folder-key", "folder-key-network", "folder-key-network-outline", "folder-key-outline", "folder-lock", "folder-lock-open", "folder-lock-open-outline", "folder-lock-outline", "folder-marker", "folder-marker-outline", "folder-move", "folder-move-outline", "folder-multiple", "folder-multiple-image", "folder-multiple-outline", "folder-multiple-plus", "folder-multiple-plus-outline", "folder-music", "folder-music-outline", "folder-network", "folder-network-outline", "folder-off", "folder-off-outline", "folder-open", "folder-open-outline", "folder-outline", "folder-outline-lock", "folder-play", "folder-play-outline", "folder-plus", "folder-plus-outline", "folder-pound", "folder-pound-outline", "folder-question", "folder-question-outline", "folder-refresh", "folder-refresh-outline", "folder-remove", "folder-remove-outline", "folder-search", "folder-search-outline", "folder-settings", "folder-settings-outline", "folder-star", "folder-star-multiple", "folder-star-multiple-outline", "folder-star-outline", "folder-swap", "folder-swap-outline", "folder-sync", "folder-sync-outline", "folder-table", "folder-table-outline", "folder-text", "folder-text-outline", "folder-upload", "folder-upload-outline", "folder-wrench", "folder-wrench-outline", "folder-zip", "folder-zip-outline", "font-awesome", "food", "food-apple", "food-apple-outline", "food-croissant", "food-drumstick", "food-drumstick-off", "food-drumstick-off-outline", "food-drumstick-outline", "food-fork-drink", "food-halal", "food-hot-dog", "food-kosher", "food-off", "food-off-outline", "food-outline", "food-steak", "food-steak-off", "food-takeout-box", "food-takeout-box-outline", "food-turkey", "food-variant", "food-variant-off", "foot-print", "football", "football-australian", "football-helmet", "footer", "forest", "forklift", "form-dropdown", "form-select", "form-textarea", "form-textbox", "form-textbox-lock", "form-textbox-password", "format-align-bottom", "format-align-center", "format-align-justify", "format-align-left", "format-align-middle", "format-align-right", "format-align-top", "format-annotation-minus", "format-annotation-plus", "format-bold", "format-clear", "format-color", "format-color-fill", "format-color-highlight", "format-color-marker-cancel", "format-color-text", "format-columns", "format-float-center", "format-float-left", "format-float-none", "format-float-right", "format-font", "format-font-size-decrease", "format-font-size-increase", "format-header-1", "format-header-2", "format-header-3", "format-header-4", "format-header-5", "format-header-6", "format-header-decrease", "format-header-down", "format-header-equal", "format-header-increase", "format-header-pound", "format-header-up", "format-horizontal-align-center", "format-horizontal-align-left", "format-horizontal-align-right", "format-indent-decrease", "format-indent-increase", "format-italic", "format-letter-case", "format-letter-case-lower", "format-letter-case-upper", "format-letter-ends-with", "format-letter-matches", "format-letter-spacing", "format-letter-spacing-variant", "format-letter-starts-with", "format-line-height", "format-line-spacing", "format-line-style", "format-line-weight", "format-list-bulleted", "format-list-bulleted-square", "format-list-bulleted-triangle", "format-list-bulleted-type", "format-list-checkbox", "format-list-checks", "format-list-group", "format-list-numbered", "format-list-numbered-rtl", "format-list-text", "format-list-triangle", "format-overline", "format-page-break", "format-page-split", "format-paint", "format-paragraph", "format-paragraph-spacing", "format-pilcrow", "format-pilcrow-arrow-left", "format-pilcrow-arrow-right", "format-quote-close", "format-quote-close-outline", "format-quote-open", "format-quote-open-outline", "format-rotate-90", "format-section", "format-size", "format-strikethrough", "format-strikethrough-variant", "format-subscript", "format-superscript", "format-text", "format-text-rotation-angle-down", "format-text-rotation-angle-up", "format-text-rotation-down", "format-text-rotation-down-vertical", "format-text-rotation-none", "format-text-rotation-up", "format-text-rotation-vertical", "format-text-variant", "format-text-variant-outline", "format-text-wrapping-clip", "format-text-wrapping-overflow", "format-text-wrapping-wrap", "format-textbox", "format-textdirection-l-to-r", "format-textdirection-r-to-l", "format-title", "format-underline", "format-underline-wavy", "format-vertical-align-bottom", "format-vertical-align-center", "format-vertical-align-top", "format-wrap-inline", "format-wrap-square", "format-wrap-tight", "format-wrap-top-bottom", "forum", "forum-minus", "forum-minus-outline", "forum-outline", "forum-plus", "forum-plus-outline", "forum-remove", "forum-remove-outline", "forward", "forwardburger", "fountain", "fountain-pen", "fountain-pen-tip", "foursquare", "fraction-one-half", "freebsd", "french-fries", "frequently-asked-questions", "fridge", "fridge-alert", "fridge-alert-outline", "fridge-bottom", "fridge-industrial", "fridge-industrial-alert", "fridge-industrial-alert-outline", "fridge-industrial-off", "fridge-industrial-off-outline", "fridge-industrial-outline", "fridge-off", "fridge-off-outline", "fridge-outline", "fridge-top", "fridge-variant", "fridge-variant-alert", "fridge-variant-alert-outline", "fridge-variant-off", "fridge-variant-off-outline", "fridge-variant-outline", "fruit-cherries", "fruit-cherries-off", "fruit-citrus", "fruit-citrus-off", "fruit-grapes", "fruit-grapes-outline", "fruit-pear", "fruit-pineapple", "fruit-watermelon", "fuel", "fuel-cell", "fullscreen", "fullscreen-exit", "function", "function-variant", "furigana-horizontal", "furigana-vertical", "fuse", "fuse-alert", "fuse-blade", "fuse-off", "gamepad", "gamepad-circle", "gamepad-circle-down", "gamepad-circle-left", "gamepad-circle-outline", "gamepad-circle-right", "gamepad-circle-up", "gamepad-down", "gamepad-left", "gamepad-outline", "gamepad-right", "gamepad-round", "gamepad-round-down", "gamepad-round-left", "gamepad-round-outline", "gamepad-round-right", "gamepad-round-up", "gamepad-square", "gamepad-square-outline", "gamepad-up", "gamepad-variant", "gamepad-variant-outline", "gamma", "gantry-crane", "garage", "garage-alert", "garage-alert-variant", "garage-lock", "garage-open", "garage-open-variant", "garage-variant", "garage-variant-lock", "gas-burner", "gas-cylinder", "gas-station", "gas-station-off", "gas-station-off-outline", "gas-station-outline", "gate", "gate-alert", "gate-and", "gate-arrow-left", "gate-arrow-right", "gate-buffer", "gate-nand", "gate-nor", "gate-not", "gate-open", "gate-or", "gate-xnor", "gate-xor", "gatsby", "gauge", "gauge-empty", "gauge-full", "gauge-low", "gavel", "gender-female", "gender-male", "gender-male-female", "gender-male-female-variant", "gender-non-binary", "gender-transgender", "gentoo", "gesture", "gesture-double-tap", "gesture-pinch", "gesture-spread", "gesture-swipe", "gesture-swipe-down", "gesture-swipe-horizontal", "gesture-swipe-left", "gesture-swipe-right", "gesture-swipe-up", "gesture-swipe-vertical", "gesture-tap", "gesture-tap-box", "gesture-tap-button", "gesture-tap-hold", "gesture-two-double-tap", "gesture-two-tap", "ghost", "ghost-off", "ghost-off-outline", "ghost-outline", "gif", "gift", "gift-off", "gift-off-outline", "gift-open", "gift-open-outline", "gift-outline", "git", "github", "github-box", "github-face", "gitlab", "glass-cocktail", "glass-cocktail-off", "glass-flute", "glass-fragile", "glass-mug", "glass-mug-off", "glass-mug-variant", "glass-mug-variant-off", "glass-pint-outline", "glass-stange", "glass-tulip", "glass-wine", "glassdoor", "glasses", "globe-light", "globe-model", "gmail", "gnome", "go-kart", "go-kart-track", "gog", "gold", "golf", "golf-cart", "golf-tee", "gondola", "goodreads", "google", "google-ads", "google-allo", "google-analytics", "google-assistant", "google-cardboard", "google-chrome", "google-circles", "google-circles-communities", "google-circles-extended", "google-circles-group", "google-classroom", "google-cloud", "google-controller", "google-controller-off", "google-downasaur", "google-drive", "google-earth", "google-fit", "google-glass", "google-hangouts", "google-home", "google-keep", "google-lens", "google-maps", "google-my-business", "google-nearby", "google-pages", "google-photos", "google-physical-web", "google-play", "google-plus", "google-plus-box", "google-podcast", "google-spreadsheet", "google-street-view", "google-translate", "google-wallet", "gradient-horizontal", "gradient-vertical", "grain", "graph", "graph-outline", "graphql", "grass", "grave-stone", "grease-pencil", "greater-than", "greater-than-or-equal", "greenhouse", "grid", "grid-large", "grid-off", "grill", "grill-outline", "group", "guitar-acoustic", "guitar-electric", "guitar-pick", "guitar-pick-outline", "guy-fawkes-mask", "gymnastics", "hail", "hair-dryer", "hair-dryer-outline", "halloween", "hamburger", "hamburger-check", "hamburger-minus", "hamburger-off", "hamburger-plus", "hamburger-remove", "hammer", "hammer-screwdriver", "hammer-sickle", "hammer-wrench", "hand-back-left", "hand-back-left-off", "hand-back-left-off-outline", "hand-back-left-outline", "hand-back-right", "hand-back-right-off", "hand-back-right-off-outline", "hand-back-right-outline", "hand-clap", "hand-clap-off", "hand-coin", "hand-coin-outline", "hand-extended", "hand-extended-outline", "hand-front-left", "hand-front-left-outline", "hand-front-right", "hand-front-right-outline", "hand-heart", "hand-heart-outline", "hand-left", "hand-okay", "hand-peace", "hand-peace-variant", "hand-pointing-down", "hand-pointing-left", "hand-pointing-right", "hand-pointing-up", "hand-right", "hand-saw", "hand-wash", "hand-wash-outline", "hand-water", "hand-wave", "hand-wave-outline", "handball", "handcuffs", "hands-pray", "handshake", "handshake-outline", "hanger", "hangouts", "hard-hat", "harddisk", "harddisk-plus", "harddisk-remove", "hat-fedora", "hazard-lights", "hdr", "hdr-off", "head", "head-alert", "head-alert-outline", "head-check", "head-check-outline", "head-cog", "head-cog-outline", "head-dots-horizontal", "head-dots-horizontal-outline", "head-flash", "head-flash-outline", "head-heart", "head-heart-outline", "head-lightbulb", "head-lightbulb-outline", "head-minus", "head-minus-outline", "head-outline", "head-plus", "head-plus-outline", "head-question", "head-question-outline", "head-remove", "head-remove-outline", "head-snowflake", "head-snowflake-outline", "head-sync", "head-sync-outline", "headphones", "headphones-bluetooth", "headphones-box", "headphones-off", "headphones-settings", "headset", "headset-dock", "headset-off", "heart", "heart-box", "heart-box-outline", "heart-broken", "heart-broken-outline", "heart-circle", "heart-circle-outline", "heart-cog", "heart-cog-outline", "heart-flash", "heart-half", "heart-half-full", "heart-half-outline", "heart-minus", "heart-minus-outline", "heart-multiple", "heart-multiple-outline", "heart-off", "heart-off-outline", "heart-outline", "heart-plus", "heart-plus-outline", "heart-pulse", "heart-remove", "heart-remove-outline", "heart-settings", "heart-settings-outline", "heat-pump", "heat-pump-outline", "heat-wave", "heating-coil", "helicopter", "help", "help-box", "help-circle", "help-circle-outline", "help-network", "help-network-outline", "help-rhombus", "help-rhombus-outline", "hexadecimal", "hexagon", "hexagon-multiple", "hexagon-multiple-outline", "hexagon-outline", "hexagon-slice-1", "hexagon-slice-2", "hexagon-slice-3", "hexagon-slice-4", "hexagon-slice-5", "hexagon-slice-6", "hexagram", "hexagram-outline", "high-definition", "high-definition-box", "highway", "hiking", "history", "hockey-puck", "hockey-sticks", "hololens", "home", "home-account", "home-alert", "home-alert-outline", "home-analytics", "home-assistant", "home-automation", "home-battery", "home-battery-outline", "home-circle", "home-circle-outline", "home-city", "home-city-outline", "home-clock", "home-clock-outline", "home-currency-usd", "home-edit", "home-edit-outline", "home-export-outline", "home-flood", "home-floor-0", "home-floor-1", "home-floor-2", "home-floor-3", "home-floor-a", "home-floor-b", "home-floor-g", "home-floor-l", "home-floor-negative-1", "home-group", "home-group-minus", "home-group-plus", "home-group-remove", "home-heart", "home-import-outline", "home-lightbulb", "home-lightbulb-outline", "home-lightning-bolt", "home-lightning-bolt-outline", "home-lock", "home-lock-open", "home-map-marker", "home-minus", "home-minus-outline", "home-modern", "home-off", "home-off-outline", "home-outline", "home-plus", "home-plus-outline", "home-remove", "home-remove-outline", "home-roof", "home-search", "home-search-outline", "home-switch", "home-switch-outline", "home-thermometer", "home-thermometer-outline", "home-variant", "home-variant-outline", "hook", "hook-off", "hoop-house", "hops", "horizontal-rotate-clockwise", "horizontal-rotate-counterclockwise", "horse", "horse-human", "horse-variant", "horse-variant-fast", "horseshoe", "hospital", "hospital-box", "hospital-box-outline", "hospital-building", "hospital-marker", "hot-tub", "hours-24", "houzz", "houzz-box", "hubspot", "hulu", "human", "human-baby-changing-table", "human-cane", "human-capacity-decrease", "human-capacity-increase", "human-child", "human-dolly", "human-edit", "human-female", "human-female-boy", "human-female-dance", "human-female-female", "human-female-girl", "human-greeting", "human-greeting-proximity", "human-greeting-variant", "human-handsdown", "human-handsup", "human-male", "human-male-board", "human-male-board-poll", "human-male-boy", "human-male-child", "human-male-female", "human-male-female-child", "human-male-girl", "human-male-height", "human-male-height-variant", "human-male-male", "human-non-binary", "human-pregnant", "human-queue", "human-scooter", "human-wheelchair", "human-white-cane", "humble-bundle", "hurricane", "hvac", "hvac-off", "hydraulic-oil-level", "hydraulic-oil-temperature", "hydro-power", "hydrogen-station", "ice-cream", "ice-cream-off", "ice-pop", "id-card", "identifier", "ideogram-cjk", "ideogram-cjk-variant", "image", "image-album", "image-area", "image-area-close", "image-auto-adjust", "image-broken", "image-broken-variant", "image-edit", "image-edit-outline", "image-filter-black-white", "image-filter-center-focus", "image-filter-center-focus-strong", "image-filter-center-focus-strong-outline", "image-filter-center-focus-weak", "image-filter-drama", "image-filter-frames", "image-filter-hdr", "image-filter-none", "image-filter-tilt-shift", "image-filter-vintage", "image-frame", "image-lock", "image-lock-outline", "image-marker", "image-marker-outline", "image-minus", "image-move", "image-multiple", "image-multiple-outline", "image-off", "image-off-outline", "image-outline", "image-plus", "image-refresh", "image-refresh-outline", "image-remove", "image-search", "image-search-outline", "image-size-select-actual", "image-size-select-large", "image-size-select-small", "image-sync", "image-sync-outline", "image-text", "import", "inbox", "inbox-arrow-down", "inbox-arrow-down-outline", "inbox-arrow-up", "inbox-arrow-up-outline", "inbox-full", "inbox-full-outline", "inbox-multiple", "inbox-multiple-outline", "inbox-outline", "inbox-remove", "inbox-remove-outline", "incognito", "incognito-circle", "incognito-circle-off", "incognito-off", "indent", "induction", "infinity", "information", "information-off", "information-off-outline", "information-outline", "information-variant", "instagram", "instapaper", "instrument-triangle", "integrated-circuit-chip", "invert-colors", "invert-colors-off", "iobroker", "ip", "ip-network", "ip-network-outline", "ip-outline", "ipod", "iron", "iron-board", "iron-outline", "island", "itunes", "iv-bag", "jabber", "jeepney", "jellyfish", "jellyfish-outline", "jira", "jquery", "jsfiddle", "jump-rope", "kabaddi", "kangaroo", "karate", "kayaking", "keg", "kettle", "kettle-alert", "kettle-alert-outline", "kettle-off", "kettle-off-outline", "kettle-outline", "kettle-pour-over", "kettle-steam", "kettle-steam-outline", "kettlebell", "key", "key-alert", "key-alert-outline", "key-arrow-right", "key-chain", "key-chain-variant", "key-change", "key-link", "key-minus", "key-outline", "key-plus", "key-remove", "key-star", "key-variant", "key-wireless", "keyboard", "keyboard-backspace", "keyboard-caps", "keyboard-close", "keyboard-esc", "keyboard-f1", "keyboard-f10", "keyboard-f11", "keyboard-f12", "keyboard-f2", "keyboard-f3", "keyboard-f4", "keyboard-f5", "keyboard-f6", "keyboard-f7", "keyboard-f8", "keyboard-f9", "keyboard-off", "keyboard-off-outline", "keyboard-outline", "keyboard-return", "keyboard-settings", "keyboard-settings-outline", "keyboard-space", "keyboard-tab", "keyboard-tab-reverse", "keyboard-variant", "khanda", "kickstarter", "kite", "kite-outline", "kitesurfing", "klingon", "knife", "knife-military", "koala", "kodi", "kubernetes", "label", "label-multiple", "label-multiple-outline", "label-off", "label-off-outline", "label-outline", "label-percent", "label-percent-outline", "label-variant", "label-variant-outline", "ladder", "ladybug", "lambda", "lamp", "lamp-outline", "lamps", "lamps-outline", "lan", "lan-check", "lan-connect", "lan-disconnect", "lan-pending", "land-fields", "land-plots", "land-plots-circle", "land-plots-circle-variant", "land-rows-horizontal", "land-rows-vertical", "landslide", "landslide-outline", "language-c", "language-cpp", "language-csharp", "language-css3", "language-fortran", "language-go", "language-haskell", "language-html5", "language-java", "language-javascript", "language-jsx", "language-kotlin", "language-lua", "language-markdown", "language-markdown-outline", "language-php", "language-python", "language-python-text", "language-r", "language-ruby", "language-ruby-on-rails", "language-rust", "language-swift", "language-typescript", "language-xaml", "laptop", "laptop-account", "laptop-chromebook", "laptop-mac", "laptop-off", "laptop-windows", "laravel", "laser-pointer", "lasso", "lastfm", "lastpass", "latitude", "launch", "lava-lamp", "layers", "layers-edit", "layers-minus", "layers-off", "layers-off-outline", "layers-outline", "layers-plus", "layers-remove", "layers-search", "layers-search-outline", "layers-triple", "layers-triple-outline", "lead-pencil", "leaf", "leaf-circle", "leaf-circle-outline", "leaf-maple", "leaf-maple-off", "leaf-off", "leak", "leak-off", "lecturn", "led-off", "led-on", "led-outline", "led-strip", "led-strip-variant", "led-strip-variant-off", "led-variant-off", "led-variant-on", "led-variant-outline", "leek", "less-than", "less-than-or-equal", "library", "library-books", "library-outline", "library-shelves", "license", "lifebuoy", "light-flood-down", "light-flood-up", "light-recessed", "light-switch", "light-switch-off", "lightbulb", "lightbulb-alert", "lightbulb-alert-outline", "lightbulb-auto", "lightbulb-auto-outline", "lightbulb-cfl", "lightbulb-cfl-off", "lightbulb-cfl-spiral", "lightbulb-cfl-spiral-off", "lightbulb-fluorescent-tube", "lightbulb-fluorescent-tube-outline", "lightbulb-group", "lightbulb-group-off", "lightbulb-group-off-outline", "lightbulb-group-outline", "lightbulb-multiple", "lightbulb-multiple-off", "lightbulb-multiple-off-outline", "lightbulb-multiple-outline", "lightbulb-night", "lightbulb-night-outline", "lightbulb-off", "lightbulb-off-outline", "lightbulb-on", "lightbulb-on-10", "lightbulb-on-20", "lightbulb-on-30", "lightbulb-on-40", "lightbulb-on-50", "lightbulb-on-60", "lightbulb-on-70", "lightbulb-on-80", "lightbulb-on-90", "lightbulb-on-outline", "lightbulb-outline", "lightbulb-question", "lightbulb-question-outline", "lightbulb-spot", "lightbulb-spot-off", "lightbulb-variant", "lightbulb-variant-outline", "lighthouse", "lighthouse-on", "lightning-bolt", "lightning-bolt-circle", "lightning-bolt-outline", "line-scan", "lingerie", "link", "link-box", "link-box-outline", "link-box-variant", "link-box-variant-outline", "link-lock", "link-off", "link-plus", "link-variant", "link-variant-minus", "link-variant-off", "link-variant-plus", "link-variant-remove", "linkedin", "linode", "linux", "linux-mint", "lipstick", "liquid-spot", "liquor", "list-status", "litecoin", "loading", "location-enter", "location-exit", "lock", "lock-alert", "lock-alert-outline", "lock-check", "lock-check-outline", "lock-clock", "lock-minus", "lock-minus-outline", "lock-off", "lock-off-outline", "lock-open", "lock-open-alert", "lock-open-alert-outline", "lock-open-check", "lock-open-check-outline", "lock-open-minus", "lock-open-minus-outline", "lock-open-outline", "lock-open-plus", "lock-open-plus-outline", "lock-open-remove", "lock-open-remove-outline", "lock-open-variant", "lock-open-variant-outline", "lock-outline", "lock-pattern", "lock-plus", "lock-plus-outline", "lock-question", "lock-remove", "lock-remove-outline", "lock-reset", "lock-smart", "locker", "locker-multiple", "login", "login-variant", "logout", "logout-variant", "longitude", "looks", "lotion", "lotion-outline", "lotion-plus", "lotion-plus-outline", "loupe", "lumx", "lungs", "lyft", "mace", "magazine-pistol", "magazine-rifle", "magic-staff", "magnet", "magnet-on", "magnify", "magnify-close", "magnify-expand", "magnify-minus", "magnify-minus-cursor", "magnify-minus-outline", "magnify-plus", "magnify-plus-cursor", "magnify-plus-outline", "magnify-remove-cursor", "magnify-remove-outline", "magnify-scan", "mail", "mail-ru", "mailbox", "mailbox-open", "mailbox-open-outline", "mailbox-open-up", "mailbox-open-up-outline", "mailbox-outline", "mailbox-up", "mailbox-up-outline", "manjaro", "map", "map-check", "map-check-outline", "map-clock", "map-clock-outline", "map-legend", "map-marker", "map-marker-account", "map-marker-account-outline", "map-marker-alert", "map-marker-alert-outline", "map-marker-check", "map-marker-check-outline", "map-marker-circle", "map-marker-distance", "map-marker-down", "map-marker-left", "map-marker-left-outline", "map-marker-minus", "map-marker-minus-outline", "map-marker-multiple", "map-marker-multiple-outline", "map-marker-off", "map-marker-off-outline", "map-marker-outline", "map-marker-path", "map-marker-plus", "map-marker-plus-outline", "map-marker-question", "map-marker-question-outline", "map-marker-radius", "map-marker-radius-outline", "map-marker-remove", "map-marker-remove-outline", "map-marker-remove-variant", "map-marker-right", "map-marker-right-outline", "map-marker-star", "map-marker-star-outline", "map-marker-up", "map-minus", "map-outline", "map-plus", "map-search", "map-search-outline", "mapbox", "margin", "marker", "marker-cancel", "marker-check", "mastodon", "mastodon-variant", "material-design", "material-ui", "math-compass", "math-cos", "math-integral", "math-integral-box", "math-log", "math-norm", "math-norm-box", "math-sin", "math-tan", "matrix", "maxcdn", "medal", "medal-outline", "medical-bag", "medical-cotton-swab", "meditation", "medium", "meetup", "memory", "menorah", "menorah-fire", "menu", "menu-close", "menu-down", "menu-down-outline", "menu-left", "menu-left-outline", "menu-open", "menu-right", "menu-right-outline", "menu-swap", "menu-swap-outline", "menu-up", "menu-up-outline", "merge", "message", "message-alert", "message-alert-outline", "message-arrow-left", "message-arrow-left-outline", "message-arrow-right", "message-arrow-right-outline", "message-badge", "message-badge-outline", "message-bookmark", "message-bookmark-outline", "message-bulleted", "message-bulleted-off", "message-cog", "message-cog-outline", "message-draw", "message-fast", "message-fast-outline", "message-flash", "message-flash-outline", "message-image", "message-image-outline", "message-lock", "message-lock-outline", "message-minus", "message-minus-outline", "message-off", "message-off-outline", "message-outline", "message-plus", "message-plus-outline", "message-processing", "message-processing-outline", "message-question", "message-question-outline", "message-reply", "message-reply-outline", "message-reply-text", "message-reply-text-outline", "message-settings", "message-settings-outline", "message-star", "message-star-outline", "message-text", "message-text-clock", "message-text-clock-outline", "message-text-fast", "message-text-fast-outline", "message-text-lock", "message-text-lock-outline", "message-text-outline", "message-video", "meteor", "meter-electric", "meter-electric-outline", "meter-gas", "meter-gas-outline", "metronome", "metronome-tick", "micro-sd", "microphone", "microphone-minus", "microphone-off", "microphone-outline", "microphone-plus", "microphone-question", "microphone-question-outline", "microphone-settings", "microphone-variant", "microphone-variant-off", "microscope", "microsoft", "microsoft-access", "microsoft-azure", "microsoft-azure-devops", "microsoft-bing", "microsoft-dynamics-365", "microsoft-edge", "microsoft-edge-legacy", "microsoft-excel", "microsoft-internet-explorer", "microsoft-office", "microsoft-onedrive", "microsoft-onenote", "microsoft-outlook", "microsoft-powerpoint", "microsoft-sharepoint", "microsoft-teams", "microsoft-visual-studio", "microsoft-visual-studio-code", "microsoft-windows", "microsoft-windows-classic", "microsoft-word", "microsoft-xbox", "microsoft-xbox-controller", "microsoft-xbox-controller-battery-alert", "microsoft-xbox-controller-battery-charging", "microsoft-xbox-controller-battery-empty", "microsoft-xbox-controller-battery-full", "microsoft-xbox-controller-battery-low", "microsoft-xbox-controller-battery-medium", "microsoft-xbox-controller-battery-unknown", "microsoft-xbox-controller-menu", "microsoft-xbox-controller-off", "microsoft-xbox-controller-view", "microsoft-yammer", "microwave", "microwave-off", "middleware", "middleware-outline", "midi", "midi-input", "midi-port", "mine", "minecraft", "mini-sd", "minidisc", "minus", "minus-box", "minus-box-multiple", "minus-box-multiple-outline", "minus-box-outline", "minus-circle", "minus-circle-multiple", "minus-circle-multiple-outline", "minus-circle-off", "minus-circle-off-outline", "minus-circle-outline", "minus-network", "minus-network-outline", "minus-thick", "mirror", "mirror-rectangle", "mirror-variant", "mixcloud", "mixed-martial-arts", "mixed-reality", "mixer", "molecule", "molecule-co", "molecule-co2", "monitor", "monitor-account", "monitor-arrow-down", "monitor-arrow-down-variant", "monitor-cellphone", "monitor-cellphone-star", "monitor-dashboard", "monitor-edit", "monitor-eye", "monitor-lock", "monitor-multiple", "monitor-off", "monitor-screenshot", "monitor-share", "monitor-shimmer", "monitor-small", "monitor-speaker", "monitor-speaker-off", "monitor-star", "moon-first-quarter", "moon-full", "moon-last-quarter", "moon-new", "moon-waning-crescent", "moon-waning-gibbous", "moon-waxing-crescent", "moon-waxing-gibbous", "moped", "moped-electric", "moped-electric-outline", "moped-outline", "more", "mortar-pestle", "mortar-pestle-plus", "mosque", "mother-heart", "mother-nurse", "motion", "motion-outline", "motion-pause", "motion-pause-outline", "motion-play", "motion-play-outline", "motion-sensor", "motion-sensor-off", "motorbike", "motorbike-electric", "mouse", "mouse-bluetooth", "mouse-move-down", "mouse-move-up", "mouse-move-vertical", "mouse-off", "mouse-variant", "mouse-variant-off", "move-resize", "move-resize-variant", "movie", "movie-check", "movie-check-outline", "movie-cog", "movie-cog-outline", "movie-edit", "movie-edit-outline", "movie-filter", "movie-filter-outline", "movie-minus", "movie-minus-outline", "movie-off", "movie-off-outline", "movie-open", "movie-open-check", "movie-open-check-outline", "movie-open-cog", "movie-open-cog-outline", "movie-open-edit", "movie-open-edit-outline", "movie-open-minus", "movie-open-minus-outline", "movie-open-off", "movie-open-off-outline", "movie-open-outline", "movie-open-play", "movie-open-play-outline", "movie-open-plus", "movie-open-plus-outline", "movie-open-remove", "movie-open-remove-outline", "movie-open-settings", "movie-open-settings-outline", "movie-open-star", "movie-open-star-outline", "movie-outline", "movie-play", "movie-play-outline", "movie-plus", "movie-plus-outline", "movie-remove", "movie-remove-outline", "movie-roll", "movie-search", "movie-search-outline", "movie-settings", "movie-settings-outline", "movie-star", "movie-star-outline", "mower", "mower-bag", "muffin", "multicast", "multiplication", "multiplication-box", "mushroom", "mushroom-off", "mushroom-off-outline", "mushroom-outline", "music", "music-accidental-double-flat", "music-accidental-double-sharp", "music-accidental-flat", "music-accidental-natural", "music-accidental-sharp", "music-box", "music-box-multiple", "music-box-multiple-outline", "music-box-outline", "music-circle", "music-circle-outline", "music-clef-alto", "music-clef-bass", "music-clef-treble", "music-note", "music-note-bluetooth", "music-note-bluetooth-off", "music-note-eighth", "music-note-eighth-dotted", "music-note-half", "music-note-half-dotted", "music-note-off", "music-note-off-outline", "music-note-outline", "music-note-plus", "music-note-quarter", "music-note-quarter-dotted", "music-note-sixteenth", "music-note-sixteenth-dotted", "music-note-whole", "music-note-whole-dotted", "music-off", "music-rest-eighth", "music-rest-half", "music-rest-quarter", "music-rest-sixteenth", "music-rest-whole", "mustache", "nail", "nas", "nativescript", "nature", "nature-people", "navigation", "navigation-outline", "navigation-variant", "navigation-variant-outline", "near-me", "necklace", "needle", "needle-off", "nest-thermostat", "netflix", "network", "network-off", "network-off-outline", "network-outline", "network-pos", "network-strength-1", "network-strength-1-alert", "network-strength-2", "network-strength-2-alert", "network-strength-3", "network-strength-3-alert", "network-strength-4", "network-strength-4-alert", "network-strength-4-cog", "network-strength-alert", "network-strength-alert-outline", "network-strength-off", "network-strength-off-outline", "network-strength-outline", "new-box", "newspaper", "newspaper-check", "newspaper-minus", "newspaper-plus", "newspaper-remove", "newspaper-variant", "newspaper-variant-multiple", "newspaper-variant-multiple-outline", "newspaper-variant-outline", "nfc", "nfc-off", "nfc-search-variant", "nfc-tap", "nfc-variant", "nfc-variant-off", "ninja", "nintendo-game-boy", "nintendo-switch", "nintendo-wii", "nintendo-wiiu", "nix", "nodejs", "noodles", "not-equal", "not-equal-variant", "note", "note-alert", "note-alert-outline", "note-check", "note-check-outline", "note-edit", "note-edit-outline", "note-minus", "note-minus-outline", "note-multiple", "note-multiple-outline", "note-off", "note-off-outline", "note-outline", "note-plus", "note-plus-outline", "note-remove", "note-remove-outline", "note-search", "note-search-outline", "note-text", "note-text-outline", "notebook", "notebook-check", "notebook-check-outline", "notebook-edit", "notebook-edit-outline", "notebook-heart", "notebook-heart-outline", "notebook-minus", "notebook-minus-outline", "notebook-multiple", "notebook-outline", "notebook-plus", "notebook-plus-outline", "notebook-remove", "notebook-remove-outline", "notification-clear-all", "npm", "npm-variant", "npm-variant-outline", "nuke", "null", "numeric", "numeric-0", "numeric-0-box", "numeric-0-box-multiple", "numeric-0-box-multiple-outline", "numeric-0-box-outline", "numeric-0-circle", "numeric-0-circle-outline", "numeric-1", "numeric-1-box", "numeric-1-box-multiple", "numeric-1-box-multiple-outline", "numeric-1-box-outline", "numeric-1-circle", "numeric-1-circle-outline", "numeric-10", "numeric-10-box", "numeric-10-box-multiple", "numeric-10-box-multiple-outline", "numeric-10-box-outline", "numeric-10-circle", "numeric-10-circle-outline", "numeric-2", "numeric-2-box", "numeric-2-box-multiple", "numeric-2-box-multiple-outline", "numeric-2-box-outline", "numeric-2-circle", "numeric-2-circle-outline", "numeric-3", "numeric-3-box", "numeric-3-box-multiple", "numeric-3-box-multiple-outline", "numeric-3-box-outline", "numeric-3-circle", "numeric-3-circle-outline", "numeric-4", "numeric-4-box", "numeric-4-box-multiple", "numeric-4-box-multiple-outline", "numeric-4-box-outline", "numeric-4-circle", "numeric-4-circle-outline", "numeric-5", "numeric-5-box", "numeric-5-box-multiple", "numeric-5-box-multiple-outline", "numeric-5-box-outline", "numeric-5-circle", "numeric-5-circle-outline", "numeric-6", "numeric-6-box", "numeric-6-box-multiple", "numeric-6-box-multiple-outline", "numeric-6-box-outline", "numeric-6-circle", "numeric-6-circle-outline", "numeric-7", "numeric-7-box", "numeric-7-box-multiple", "numeric-7-box-multiple-outline", "numeric-7-box-outline", "numeric-7-circle", "numeric-7-circle-outline", "numeric-8", "numeric-8-box", "numeric-8-box-multiple", "numeric-8-box-multiple-outline", "numeric-8-box-outline", "numeric-8-circle", "numeric-8-circle-outline", "numeric-9", "numeric-9-box", "numeric-9-box-multiple", "numeric-9-box-multiple-outline", "numeric-9-box-outline", "numeric-9-circle", "numeric-9-circle-outline", "numeric-9-plus", "numeric-9-plus-box", "numeric-9-plus-box-multiple", "numeric-9-plus-box-multiple-outline", "numeric-9-plus-box-outline", "numeric-9-plus-circle", "numeric-9-plus-circle-outline", "numeric-negative-1", "numeric-off", "numeric-positive-1", "nut", "nutrition", "nuxt", "oar", "ocarina", "oci", "ocr", "octagon", "octagon-outline", "octagram", "octagram-outline", "octahedron", "octahedron-off", "odnoklassniki", "offer", "office-building", "office-building-cog", "office-building-cog-outline", "office-building-marker", "office-building-marker-outline", "office-building-outline", "oil", "oil-lamp", "oil-level", "oil-temperature", "om", "omega", "one-up", "onedrive", "onenote", "onepassword", "opacity", "open-in-app", "open-in-new", "open-source-initiative", "openid", "opera", "orbit", "orbit-variant", "order-alphabetical-ascending", "order-alphabetical-descending", "order-bool-ascending", "order-bool-ascending-variant", "order-bool-descending", "order-bool-descending-variant", "order-numeric-ascending", "order-numeric-descending", "origin", "ornament", "ornament-variant", "outbox", "outdent", "outdoor-lamp", "outlook", "overscan", "owl", "pac-man", "package", "package-down", "package-up", "package-variant", "package-variant-closed", "package-variant-closed-minus", "package-variant-closed-plus", "package-variant-closed-remove", "package-variant-minus", "package-variant-plus", "package-variant-remove", "page-first", "page-last", "page-layout-body", "page-layout-footer", "page-layout-header", "page-layout-header-footer", "page-layout-sidebar-left", "page-layout-sidebar-right", "page-next", "page-next-outline", "page-previous", "page-previous-outline", "pail", "pail-minus", "pail-minus-outline", "pail-off", "pail-off-outline", "pail-outline", "pail-plus", "pail-plus-outline", "pail-remove", "pail-remove-outline", "palette", "palette-advanced", "palette-outline", "palette-swatch", "palette-swatch-outline", "palette-swatch-variant", "palm-tree", "pan", "pan-bottom-left", "pan-bottom-right", "pan-down", "pan-horizontal", "pan-left", "pan-right", "pan-top-left", "pan-top-right", "pan-up", "pan-vertical", "panda", "pandora", "panorama", "panorama-fisheye", "panorama-horizontal", "panorama-horizontal-outline", "panorama-outline", "panorama-sphere", "panorama-sphere-outline", "panorama-variant", "panorama-variant-outline", "panorama-vertical", "panorama-vertical-outline", "panorama-wide-angle", "panorama-wide-angle-outline", "paper-cut-vertical", "paper-roll", "paper-roll-outline", "paperclip", "paperclip-check", "paperclip-lock", "paperclip-minus", "paperclip-off", "paperclip-plus", "paperclip-remove", "parachute", "parachute-outline", "paragliding", "parking", "party-popper", "passport", "passport-biometric", "pasta", "patio-heater", "patreon", "pause", "pause-circle", "pause-circle-outline", "pause-octagon", "pause-octagon-outline", "paw", "paw-off", "paw-off-outline", "paw-outline", "paypal", "peace", "peanut", "peanut-off", "peanut-off-outline", "peanut-outline", "pen", "pen-lock", "pen-minus", "pen-off", "pen-plus", "pen-remove", "pencil", "pencil-box", "pencil-box-multiple", "pencil-box-multiple-outline", "pencil-box-outline", "pencil-circle", "pencil-circle-outline", "pencil-lock", "pencil-lock-outline", "pencil-minus", "pencil-minus-outline", "pencil-off", "pencil-off-outline", "pencil-outline", "pencil-plus", "pencil-plus-outline", "pencil-remove", "pencil-remove-outline", "pencil-ruler", "penguin", "pentagon", "pentagon-outline", "pentagram", "percent", "percent-box", "percent-box-outline", "percent-circle", "percent-circle-outline", "percent-outline", "periodic-table", "periscope", "perspective-less", "perspective-more", "ph", "phone", "phone-alert", "phone-alert-outline", "phone-bluetooth", "phone-bluetooth-outline", "phone-cancel", "phone-cancel-outline", "phone-check", "phone-check-outline", "phone-classic", "phone-classic-off", "phone-clock", "phone-dial", "phone-dial-outline", "phone-forward", "phone-forward-outline", "phone-hangup", "phone-hangup-outline", "phone-in-talk", "phone-in-talk-outline", "phone-incoming", "phone-incoming-outline", "phone-lock", "phone-lock-outline", "phone-log", "phone-log-outline", "phone-message", "phone-message-outline", "phone-minus", "phone-minus-outline", "phone-missed", "phone-missed-outline", "phone-off", "phone-off-outline", "phone-outgoing", "phone-outgoing-outline", "phone-outline", "phone-paused", "phone-paused-outline", "phone-plus", "phone-plus-outline", "phone-refresh", "phone-refresh-outline", "phone-remove", "phone-remove-outline", "phone-return", "phone-return-outline", "phone-ring", "phone-ring-outline", "phone-rotate-landscape", "phone-rotate-portrait", "phone-settings", "phone-settings-outline", "phone-sync", "phone-sync-outline", "phone-voip", "pi", "pi-box", "pi-hole", "piano", "piano-off", "pickaxe", "picture", "picture-in-picture-bottom-right", "picture-in-picture-bottom-right-outline", "picture-in-picture-top-right", "picture-in-picture-top-right-outline", "pier", "pier-crane", "pig", "pig-variant", "pig-variant-outline", "piggy-bank", "piggy-bank-outline", "pill", "pill-off", "pillar", "pin", "pin-off", "pin-off-outline", "pin-outline", "pine-tree", "pine-tree-box", "pine-tree-fire", "pinterest", "pinterest-box", "pinwheel", "pinwheel-outline", "pipe", "pipe-disconnected", "pipe-leak", "pipe-valve", "pipe-wrench", "pirate", "pistol", "piston", "pitchfork", "pizza", "plane-car", "plane-train", "play", "play-box", "play-box-lock", "play-box-lock-open", "play-box-lock-open-outline", "play-box-lock-outline", "play-box-multiple", "play-box-multiple-outline", "play-box-outline", "play-circle", "play-circle-outline", "play-network", "play-network-outline", "play-outline", "play-pause", "play-protected-content", "play-speed", "playlist-check", "playlist-edit", "playlist-minus", "playlist-music", "playlist-music-outline", "playlist-play", "playlist-plus", "playlist-remove", "playlist-star", "plex", "pliers", "plus", "plus-box", "plus-box-multiple", "plus-box-multiple-outline", "plus-box-outline", "plus-circle", "plus-circle-multiple", "plus-circle-multiple-outline", "plus-circle-outline", "plus-lock", "plus-lock-open", "plus-minus", "plus-minus-box", "plus-minus-variant", "plus-network", "plus-network-outline", "plus-outline", "plus-thick", "pocket", "podcast", "podium", "podium-bronze", "podium-gold", "podium-silver", "point-of-sale", "pokeball", "pokemon-go", "poker-chip", "polaroid", "police-badge", "police-badge-outline", "police-station", "poll", "polo", "polymer", "pool", "pool-thermometer", "popcorn", "post", "post-lamp", "post-outline", "postage-stamp", "pot", "pot-mix", "pot-mix-outline", "pot-outline", "pot-steam", "pot-steam-outline", "pound", "pound-box", "pound-box-outline", "power", "power-cycle", "power-off", "power-on", "power-plug", "power-plug-off", "power-plug-off-outline", "power-plug-outline", "power-settings", "power-sleep", "power-socket", "power-socket-au", "power-socket-ch", "power-socket-de", "power-socket-eu", "power-socket-fr", "power-socket-it", "power-socket-jp", "power-socket-uk", "power-socket-us", "power-standby", "powershell", "prescription", "presentation", "presentation-play", "pretzel", "prezi", "printer", "printer-3d", "printer-3d-nozzle", "printer-3d-nozzle-alert", "printer-3d-nozzle-alert-outline", "printer-3d-nozzle-heat", "printer-3d-nozzle-heat-outline", "printer-3d-nozzle-outline", "printer-alert", "printer-check", "printer-eye", "printer-off", "printer-off-outline", "printer-outline", "printer-pos", "printer-search", "printer-settings", "printer-wireless", "priority-high", "priority-low", "professional-hexagon", "progress-alert", "progress-check", "progress-clock", "progress-close", "progress-download", "progress-pencil", "progress-question", "progress-star", "progress-upload", "progress-wrench", "projector", "projector-off", "projector-screen", "projector-screen-off", "projector-screen-off-outline", "projector-screen-outline", "projector-screen-variant", "projector-screen-variant-off", "projector-screen-variant-off-outline", "projector-screen-variant-outline", "propane-tank", "propane-tank-outline", "protocol", "publish", "publish-off", "pulse", "pump", "pumpkin", "purse", "purse-outline", "puzzle", "puzzle-check", "puzzle-check-outline", "puzzle-edit", "puzzle-edit-outline", "puzzle-heart", "puzzle-heart-outline", "puzzle-minus", "puzzle-minus-outline", "puzzle-outline", "puzzle-plus", "puzzle-plus-outline", "puzzle-remove", "puzzle-remove-outline", "puzzle-star", "puzzle-star-outline", "pyramid", "pyramid-off", "qi", "qqchat", "qrcode", "qrcode-edit", "qrcode-minus", "qrcode-plus", "qrcode-remove", "qrcode-scan", "quadcopter", "quality-high", "quality-low", "quality-medium", "quick-reply", "quicktime", "quora", "rabbit", "rabbit-variant", "rabbit-variant-outline", "racing-helmet", "racquetball", "radar", "radiator", "radiator-disabled", "radiator-off", "radio", "radio-am", "radio-fm", "radio-handheld", "radio-off", "radio-tower", "radioactive", "radioactive-circle", "radioactive-circle-outline", "radioactive-off", "radiobox-blank", "radiobox-marked", "radiology-box", "radiology-box-outline", "radius", "radius-outline", "railroad-light", "rake", "raspberry-pi", "raw", "raw-off", "ray-end", "ray-end-arrow", "ray-start", "ray-start-arrow", "ray-start-end", "ray-start-vertex-end", "ray-vertex", "razor-double-edge", "razor-single-edge", "rdio", "react", "read", "receipt", "receipt-outline", "receipt-text-check", "receipt-text-check-outline", "receipt-text-minus", "receipt-text-minus-outline", "receipt-text-plus", "receipt-text-plus-outline", "receipt-text-remove", "receipt-text-remove-outline", "record", "record-circle", "record-circle-outline", "record-player", "record-rec", "rectangle", "rectangle-outline", "recycle", "recycle-variant", "reddit", "redhat", "redo", "redo-variant", "reflect-horizontal", "reflect-vertical", "refresh", "refresh-auto", "refresh-circle", "regex", "registered-trademark", "reiterate", "relation-many-to-many", "relation-many-to-one", "relation-many-to-one-or-many", "relation-many-to-only-one", "relation-many-to-zero-or-many", "relation-many-to-zero-or-one", "relation-one-or-many-to-many", "relation-one-or-many-to-one", "relation-one-or-many-to-one-or-many", "relation-one-or-many-to-only-one", "relation-one-or-many-to-zero-or-many", "relation-one-or-many-to-zero-or-one", "relation-one-to-many", "relation-one-to-one", "relation-one-to-one-or-many", "relation-one-to-only-one", "relation-one-to-zero-or-many", "relation-one-to-zero-or-one", "relation-only-one-to-many", "relation-only-one-to-one", "relation-only-one-to-one-or-many", "relation-only-one-to-only-one", "relation-only-one-to-zero-or-many", "relation-only-one-to-zero-or-one", "relation-zero-or-many-to-many", "relation-zero-or-many-to-one", "relation-zero-or-many-to-one-or-many", "relation-zero-or-many-to-only-one", "relation-zero-or-many-to-zero-or-many", "relation-zero-or-many-to-zero-or-one", "relation-zero-or-one-to-many", "relation-zero-or-one-to-one", "relation-zero-or-one-to-one-or-many", "relation-zero-or-one-to-only-one", "relation-zero-or-one-to-zero-or-many", "relation-zero-or-one-to-zero-or-one", "relative-scale", "reload", "reload-alert", "reminder", "remote", "remote-desktop", "remote-off", "remote-tv", "remote-tv-off", "rename-box", "reorder-horizontal", "reorder-vertical", "repeat", "repeat-off", "repeat-once", "repeat-variant", "replay", "reply", "reply-all", "reply-all-outline", "reply-circle", "reply-outline", "reproduction", "resistor", "resistor-nodes", "resize", "resize-bottom-right", "responsive", "restart", "restart-alert", "restart-off", "restore", "restore-alert", "rewind", "rewind-10", "rewind-15", "rewind-30", "rewind-5", "rewind-60", "rewind-outline", "rhombus", "rhombus-medium", "rhombus-medium-outline", "rhombus-outline", "rhombus-split", "rhombus-split-outline", "ribbon", "rice", "rickshaw", "rickshaw-electric", "ring", "rivet", "road", "road-variant", "robber", "robot", "robot-angry", "robot-angry-outline", "robot-confused", "robot-confused-outline", "robot-dead", "robot-dead-outline", "robot-excited", "robot-excited-outline", "robot-happy", "robot-happy-outline", "robot-industrial", "robot-industrial-outline", "robot-love", "robot-love-outline", "robot-mower", "robot-mower-outline", "robot-off", "robot-off-outline", "robot-outline", "robot-vacuum", "robot-vacuum-variant", "rocket", "rocket-launch", "rocket-launch-outline", "rocket-outline", "rodent", "roller-shade", "roller-shade-closed", "roller-skate", "roller-skate-off", "rollerblade", "rollerblade-off", "rollupjs", "rolodex", "rolodex-outline", "roman-numeral-1", "roman-numeral-10", "roman-numeral-2", "roman-numeral-3", "roman-numeral-4", "roman-numeral-5", "roman-numeral-6", "roman-numeral-7", "roman-numeral-8", "roman-numeral-9", "room-service", "room-service-outline", "rotate-360", "rotate-3d", "rotate-3d-variant", "rotate-left", "rotate-left-variant", "rotate-orbit", "rotate-right", "rotate-right-variant", "rounded-corner", "router", "router-network", "router-wireless", "router-wireless-off", "router-wireless-settings", "routes", "routes-clock", "rowing", "rss", "rss-box", "rss-off", "rug", "rugby", "ruler", "ruler-square", "ruler-square-compass", "run", "run-fast", "rv-truck", "sack", "sack-percent", "safe", "safe-square", "safe-square-outline", "safety-goggles", "safety-googles", "sail-boat", "sail-boat-sink", "sale", "sale-outline", "salesforce", "sass", "satellite", "satellite-uplink", "satellite-variant", "sausage", "sausage-off", "saw-blade", "sawtooth-wave", "saxophone", "scale", "scale-balance", "scale-bathroom", "scale-off", "scale-unbalanced", "scan-helper", "scanner", "scanner-off", "scatter-plot", "scatter-plot-outline", "scent", "scent-off", "school", "school-outline", "scissors-cutting", "scooter", "scooter-electric", "scoreboard", "scoreboard-outline", "screen-rotation", "screen-rotation-lock", "screw-flat-top", "screw-lag", "screw-machine-flat-top", "screw-machine-round-top", "screw-round-top", "screwdriver", "script", "script-outline", "script-text", "script-text-key", "script-text-key-outline", "script-text-outline", "script-text-play", "script-text-play-outline", "sd", "seal", "seal-variant", "search-web", "seat", "seat-flat", "seat-flat-angled", "seat-individual-suite", "seat-legroom-extra", "seat-legroom-normal", "seat-legroom-reduced", "seat-outline", "seat-passenger", "seat-recline-extra", "seat-recline-normal", "seatbelt", "security", "security-close", "security-network", "seed", "seed-off", "seed-off-outline", "seed-outline", "seed-plus", "seed-plus-outline", "seesaw", "segment", "select", "select-all", "select-color", "select-compare", "select-drag", "select-group", "select-inverse", "select-marker", "select-multiple", "select-multiple-marker", "select-off", "select-place", "select-remove", "select-search", "selection", "selection-drag", "selection-ellipse", "selection-ellipse-arrow-inside", "selection-ellipse-remove", "selection-lasso", "selection-marker", "selection-multiple", "selection-multiple-marker", "selection-off", "selection-remove", "selection-search", "semantic-web", "send", "send-check", "send-check-outline", "send-circle", "send-circle-outline", "send-clock", "send-clock-outline", "send-lock", "send-lock-outline", "send-outline", "serial-port", "server", "server-minus", "server-network", "server-network-off", "server-off", "server-plus", "server-remove", "server-security", "set-all", "set-center", "set-center-right", "set-left", "set-left-center", "set-left-right", "set-merge", "set-none", "set-right", "set-split", "set-square", "set-top-box", "settings-helper", "shaker", "shaker-outline", "shape", "shape-circle-plus", "shape-outline", "shape-oval-plus", "shape-plus", "shape-polygon-plus", "shape-rectangle-plus", "shape-square-plus", "shape-square-rounded-plus", "share", "share-all", "share-all-outline", "share-circle", "share-off", "share-off-outline", "share-outline", "share-variant", "share-variant-outline", "shark", "shark-fin", "shark-fin-outline", "shark-off", "sheep", "shield", "shield-account", "shield-account-outline", "shield-account-variant", "shield-account-variant-outline", "shield-airplane", "shield-airplane-outline", "shield-alert", "shield-alert-outline", "shield-bug", "shield-bug-outline", "shield-car", "shield-check", "shield-check-outline", "shield-cross", "shield-cross-outline", "shield-crown", "shield-crown-outline", "shield-edit", "shield-edit-outline", "shield-half", "shield-half-full", "shield-home", "shield-home-outline", "shield-key", "shield-key-outline", "shield-link-variant", "shield-link-variant-outline", "shield-lock", "shield-lock-open", "shield-lock-open-outline", "shield-lock-outline", "shield-moon", "shield-moon-outline", "shield-off", "shield-off-outline", "shield-outline", "shield-plus", "shield-plus-outline", "shield-refresh", "shield-refresh-outline", "shield-remove", "shield-remove-outline", "shield-search", "shield-star", "shield-star-outline", "shield-sun", "shield-sun-outline", "shield-sword", "shield-sword-outline", "shield-sync", "shield-sync-outline", "shimmer", "ship-wheel", "shipping-pallet", "shoe-ballet", "shoe-cleat", "shoe-formal", "shoe-heel", "shoe-print", "shoe-sneaker", "shopify", "shopping", "shopping-music", "shopping-outline", "shopping-search", "shopping-search-outline", "shore", "shovel", "shovel-off", "shower", "shower-head", "shredder", "shuffle", "shuffle-disabled", "shuffle-variant", "shuriken", "sickle", "sigma", "sigma-lower", "sign-caution", "sign-direction", "sign-direction-minus", "sign-direction-plus", "sign-direction-remove", "sign-pole", "sign-real-estate", "sign-text", "signal", "signal-2g", "signal-3g", "signal-4g", "signal-5g", "signal-cellular-1", "signal-cellular-2", "signal-cellular-3", "signal-cellular-outline", "signal-distance-variant", "signal-hspa", "signal-hspa-plus", "signal-off", "signal-variant", "signature", "signature-freehand", "signature-image", "signature-text", "silo", "silverware", "silverware-clean", "silverware-fork", "silverware-fork-knife", "silverware-spoon", "silverware-variant", "sim", "sim-alert", "sim-alert-outline", "sim-off", "sim-off-outline", "sim-outline", "simple-icons", "sina-weibo", "sine-wave", "sitemap", "sitemap-outline", "size-l", "size-m", "size-s", "size-xl", "size-xs", "size-xxl", "size-xxs", "size-xxxl", "skate", "skate-off", "skateboard", "skateboarding", "skew-less", "skew-more", "ski", "ski-cross-country", "ski-water", "skip-backward", "skip-backward-outline", "skip-forward", "skip-forward-outline", "skip-next", "skip-next-circle", "skip-next-circle-outline", "skip-next-outline", "skip-previous", "skip-previous-circle", "skip-previous-circle-outline", "skip-previous-outline", "skull", "skull-crossbones", "skull-crossbones-outline", "skull-outline", "skull-scan", "skull-scan-outline", "skype", "skype-business", "slack", "slackware", "slash-forward", "slash-forward-box", "sledding", "sleep", "sleep-off", "slide", "slope-downhill", "slope-uphill", "slot-machine", "slot-machine-outline", "smart-card", "smart-card-off", "smart-card-off-outline", "smart-card-outline", "smart-card-reader", "smart-card-reader-outline", "smog", "smoke", "smoke-detector", "smoke-detector-alert", "smoke-detector-alert-outline", "smoke-detector-off", "smoke-detector-off-outline", "smoke-detector-outline", "smoke-detector-variant", "smoke-detector-variant-alert", "smoke-detector-variant-off", "smoking", "smoking-off", "smoking-pipe", "smoking-pipe-off", "snail", "snake", "snapchat", "snowboard", "snowflake", "snowflake-alert", "snowflake-check", "snowflake-melt", "snowflake-off", "snowflake-thermometer", "snowflake-variant", "snowman", "snowmobile", "snowshoeing", "soccer", "soccer-field", "social-distance-2-meters", "social-distance-6-feet", "sofa", "sofa-outline", "sofa-single", "sofa-single-outline", "solar-panel", "solar-panel-large", "solar-power", "solar-power-variant", "solar-power-variant-outline", "soldering-iron", "solid", "sony-playstation", "sort", "sort-alphabetical-ascending", "sort-alphabetical-ascending-variant", "sort-alphabetical-descending", "sort-alphabetical-descending-variant", "sort-alphabetical-variant", "sort-ascending", "sort-bool-ascending", "sort-bool-ascending-variant", "sort-bool-descending", "sort-bool-descending-variant", "sort-calendar-ascending", "sort-calendar-descending", "sort-clock-ascending", "sort-clock-ascending-outline", "sort-clock-descending", "sort-clock-descending-outline", "sort-descending", "sort-numeric-ascending", "sort-numeric-ascending-variant", "sort-numeric-descending", "sort-numeric-descending-variant", "sort-numeric-variant", "sort-reverse-variant", "sort-variant", "sort-variant-lock", "sort-variant-lock-open", "sort-variant-off", "sort-variant-remove", "soundbar", "soundcloud", "source-branch", "source-branch-check", "source-branch-minus", "source-branch-plus", "source-branch-refresh", "source-branch-remove", "source-branch-sync", "source-commit", "source-commit-end", "source-commit-end-local", "source-commit-local", "source-commit-next-local", "source-commit-start", "source-commit-start-next-local", "source-fork", "source-merge", "source-pull", "source-repository", "source-repository-multiple", "soy-sauce", "soy-sauce-off", "spa", "spa-outline", "space-invaders", "space-station", "spade", "speaker", "speaker-bluetooth", "speaker-multiple", "speaker-off", "speaker-wireless", "spear", "speedometer", "speedometer-medium", "speedometer-slow", "spellcheck", "sphere", "sphere-off", "spider", "spider-thread", "spider-web", "spirit-level", "split-horizontal", "split-vertical", "spoon-sugar", "spotify", "spotlight", "spotlight-beam", "spray", "spray-bottle", "spreadsheet", "sprinkler", "sprinkler-fire", "sprinkler-variant", "sprout", "sprout-outline", "square", "square-circle", "square-edit-outline", "square-inc", "square-inc-cash", "square-medium", "square-medium-outline", "square-off", "square-off-outline", "square-opacity", "square-outline", "square-root", "square-root-box", "square-rounded", "square-rounded-badge", "square-rounded-badge-outline", "square-rounded-outline", "square-small", "square-wave", "squeegee", "ssh", "stack-exchange", "stack-overflow", "stackpath", "stadium", "stadium-outline", "stadium-variant", "stairs", "stairs-box", "stairs-down", "stairs-up", "stamper", "standard-definition", "star", "star-box", "star-box-multiple", "star-box-multiple-outline", "star-box-outline", "star-check", "star-check-outline", "star-circle", "star-circle-outline", "star-cog", "star-cog-outline", "star-crescent", "star-david", "star-face", "star-four-points", "star-four-points-outline", "star-half", "star-half-full", "star-minus", "star-minus-outline", "star-off", "star-off-outline", "star-outline", "star-plus", "star-plus-outline", "star-remove", "star-remove-outline", "star-settings", "star-settings-outline", "star-shooting", "star-shooting-outline", "star-three-points", "star-three-points-outline", "state-machine", "steam", "steam-box", "steering", "steering-off", "step-backward", "step-backward-2", "step-forward", "step-forward-2", "stethoscope", "sticker", "sticker-alert", "sticker-alert-outline", "sticker-check", "sticker-check-outline", "sticker-circle-outline", "sticker-emoji", "sticker-minus", "sticker-minus-outline", "sticker-outline", "sticker-plus", "sticker-plus-outline", "sticker-remove", "sticker-remove-outline", "sticker-text", "sticker-text-outline", "stocking", "stomach", "stool", "stool-outline", "stop", "stop-circle", "stop-circle-outline", "storage-tank", "storage-tank-outline", "store", "store-24-hour", "store-alert", "store-alert-outline", "store-check", "store-check-outline", "store-clock", "store-clock-outline", "store-cog", "store-cog-outline", "store-edit", "store-edit-outline", "store-marker", "store-marker-outline", "store-minus", "store-minus-outline", "store-off", "store-off-outline", "store-outline", "store-plus", "store-plus-outline", "store-remove", "store-remove-outline", "store-search", "store-search-outline", "store-settings", "store-settings-outline", "storefront", "storefront-outline", "stove", "strategy", "strava", "stretch-to-page", "stretch-to-page-outline", "string-lights", "string-lights-off", "subdirectory-arrow-left", "subdirectory-arrow-right", "submarine", "subtitles", "subtitles-outline", "subway", "subway-alert-variant", "subway-variant", "summit", "sun-clock", "sun-clock-outline", "sun-compass", "sun-snowflake", "sun-snowflake-variant", "sun-thermometer", "sun-thermometer-outline", "sun-wireless", "sun-wireless-outline", "sunglasses", "surfing", "surround-sound", "surround-sound-2-0", "surround-sound-2-1", "surround-sound-3-1", "surround-sound-5-1", "surround-sound-5-1-2", "surround-sound-7-1", "svg", "swap-horizontal", "swap-horizontal-bold", "swap-horizontal-circle", "swap-horizontal-circle-outline", "swap-horizontal-variant", "swap-vertical", "swap-vertical-bold", "swap-vertical-circle", "swap-vertical-circle-outline", "swap-vertical-variant", "swim", "switch", "sword", "sword-cross", "syllabary-hangul", "syllabary-hiragana", "syllabary-katakana", "syllabary-katakana-halfwidth", "symbol", "symfony", "synagogue", "synagogue-outline", "sync", "sync-alert", "sync-circle", "sync-off", "tab", "tab-minus", "tab-plus", "tab-remove", "tab-search", "tab-unselected", "table", "table-account", "table-alert", "table-arrow-down", "table-arrow-left", "table-arrow-right", "table-arrow-up", "table-border", "table-cancel", "table-chair", "table-check", "table-clock", "table-cog", "table-column", "table-column-plus-after", "table-column-plus-before", "table-column-remove", "table-column-width", "table-edit", "table-eye", "table-eye-off", "table-furniture", "table-headers-eye", "table-headers-eye-off", "table-heart", "table-key", "table-large", "table-large-plus", "table-large-remove", "table-lock", "table-merge-cells", "table-minus", "table-multiple", "table-network", "table-of-contents", "table-off", "table-picnic", "table-pivot", "table-plus", "table-refresh", "table-remove", "table-row", "table-row-height", "table-row-plus-after", "table-row-plus-before", "table-row-remove", "table-search", "table-settings", "table-split-cell", "table-star", "table-sync", "table-tennis", "tablet", "tablet-android", "tablet-cellphone", "tablet-dashboard", "tablet-ipad", "taco", "tag", "tag-arrow-down", "tag-arrow-down-outline", "tag-arrow-left", "tag-arrow-left-outline", "tag-arrow-right", "tag-arrow-right-outline", "tag-arrow-up", "tag-arrow-up-outline", "tag-check", "tag-check-outline", "tag-faces", "tag-heart", "tag-heart-outline", "tag-minus", "tag-minus-outline", "tag-multiple", "tag-multiple-outline", "tag-off", "tag-off-outline", "tag-outline", "tag-plus", "tag-plus-outline", "tag-remove", "tag-remove-outline", "tag-search", "tag-search-outline", "tag-text", "tag-text-outline", "tailwind", "tally-mark-1", "tally-mark-2", "tally-mark-3", "tally-mark-4", "tally-mark-5", "tangram", "tank", "tanker-truck", "tape-drive", "tape-measure", "target", "target-account", "target-variant", "taxi", "tea", "tea-outline", "teamspeak", "teamviewer", "teddy-bear", "telegram", "telescope", "television", "television-ambient-light", "television-box", "television-classic", "television-classic-off", "television-guide", "television-off", "television-pause", "television-play", "television-shimmer", "television-stop", "temperature-celsius", "temperature-fahrenheit", "temperature-kelvin", "temple-buddhist", "temple-buddhist-outline", "temple-hindu", "temple-hindu-outline", "tennis", "tennis-ball", "tent", "terraform", "terrain", "test-tube", "test-tube-empty", "test-tube-off", "text", "text-account", "text-box", "text-box-check", "text-box-check-outline", "text-box-edit", "text-box-edit-outline", "text-box-minus", "text-box-minus-outline", "text-box-multiple", "text-box-multiple-outline", "text-box-outline", "text-box-plus", "text-box-plus-outline", "text-box-remove", "text-box-remove-outline", "text-box-search", "text-box-search-outline", "text-long", "text-recognition", "text-search", "text-search-variant", "text-shadow", "text-short", "text-to-speech", "text-to-speech-off", "texture", "texture-box", "theater", "theme-light-dark", "thermometer", "thermometer-alert", "thermometer-bluetooth", "thermometer-check", "thermometer-chevron-down", "thermometer-chevron-up", "thermometer-high", "thermometer-lines", "thermometer-low", "thermometer-minus", "thermometer-off", "thermometer-plus", "thermometer-water", "thermostat", "thermostat-box", "thought-bubble", "thought-bubble-outline", "thumb-down", "thumb-down-outline", "thumb-up", "thumb-up-outline", "thumbs-up-down", "thumbs-up-down-outline", "ticket", "ticket-account", "ticket-confirmation", "ticket-confirmation-outline", "ticket-outline", "ticket-percent", "ticket-percent-outline", "tie", "tilde", "tilde-off", "timelapse", "timeline", "timeline-alert", "timeline-alert-outline", "timeline-check", "timeline-check-outline", "timeline-clock", "timeline-clock-outline", "timeline-help", "timeline-help-outline", "timeline-minus", "timeline-minus-outline", "timeline-outline", "timeline-plus", "timeline-plus-outline", "timeline-remove", "timeline-remove-outline", "timeline-text", "timeline-text-outline", "timer", "timer-10", "timer-3", "timer-alert", "timer-alert-outline", "timer-cancel", "timer-cancel-outline", "timer-check", "timer-check-outline", "timer-cog", "timer-cog-outline", "timer-edit", "timer-edit-outline", "timer-lock", "timer-lock-open", "timer-lock-open-outline", "timer-lock-outline", "timer-marker", "timer-marker-outline", "timer-minus", "timer-minus-outline", "timer-music", "timer-music-outline", "timer-off", "timer-off-outline", "timer-outline", "timer-pause", "timer-pause-outline", "timer-play", "timer-play-outline", "timer-plus", "timer-plus-outline", "timer-refresh", "timer-refresh-outline", "timer-remove", "timer-remove-outline", "timer-sand", "timer-sand-complete", "timer-sand-empty", "timer-sand-full", "timer-sand-paused", "timer-settings", "timer-settings-outline", "timer-star", "timer-star-outline", "timer-stop", "timer-stop-outline", "timer-sync", "timer-sync-outline", "timetable", "tire", "toaster", "toaster-off", "toaster-oven", "toggle-switch", "toggle-switch-off", "toggle-switch-off-outline", "toggle-switch-outline", "toggle-switch-variant", "toggle-switch-variant-off", "toilet", "toolbox", "toolbox-outline", "tools", "tooltip", "tooltip-account", "tooltip-cellphone", "tooltip-check", "tooltip-check-outline", "tooltip-edit", "tooltip-edit-outline", "tooltip-image", "tooltip-image-outline", "tooltip-minus", "tooltip-minus-outline", "tooltip-outline", "tooltip-plus", "tooltip-plus-outline", "tooltip-remove", "tooltip-remove-outline", "tooltip-text", "tooltip-text-outline", "tooth", "tooth-outline", "toothbrush", "toothbrush-electric", "toothbrush-paste", "tor", "torch", "tortoise", "toslink", "tournament", "tow-truck", "tower-beach", "tower-fire", "town-hall", "toy-brick", "toy-brick-marker", "toy-brick-marker-outline", "toy-brick-minus", "toy-brick-minus-outline", "toy-brick-outline", "toy-brick-plus", "toy-brick-plus-outline", "toy-brick-remove", "toy-brick-remove-outline", "toy-brick-search", "toy-brick-search-outline", "track-light", "track-light-off", "trackpad", "trackpad-lock", "tractor", "tractor-variant", "trademark", "traffic-cone", "traffic-light", "traffic-light-outline", "train", "train-car", "train-car-passenger", "train-car-passenger-door", "train-car-passenger-door-open", "train-car-passenger-variant", "train-variant", "tram", "tram-side", "transcribe", "transcribe-close", "transfer", "transfer-down", "transfer-left", "transfer-right", "transfer-up", "transit-connection", "transit-connection-horizontal", "transit-connection-variant", "transit-detour", "transit-skip", "transit-transfer", "transition", "transition-masked", "translate", "translate-off", "transmission-tower", "transmission-tower-export", "transmission-tower-import", "transmission-tower-off", "trash-can", "trash-can-outline", "tray", "tray-alert", "tray-arrow-down", "tray-arrow-up", "tray-full", "tray-minus", "tray-plus", "tray-remove", "treasure-chest", "tree", "tree-outline", "trello", "trending-down", "trending-neutral", "trending-up", "triangle", "triangle-outline", "triangle-small-down", "triangle-small-up", "triangle-wave", "triforce", "trophy", "trophy-award", "trophy-broken", "trophy-outline", "trophy-variant", "trophy-variant-outline", "truck", "truck-alert", "truck-alert-outline", "truck-cargo-container", "truck-check", "truck-check-outline", "truck-delivery", "truck-delivery-outline", "truck-fast", "truck-fast-outline", "truck-flatbed", "truck-minus", "truck-minus-outline", "truck-outline", "truck-plus", "truck-plus-outline", "truck-remove", "truck-remove-outline", "truck-snowflake", "truck-trailer", "trumpet", "tshirt-crew", "tshirt-crew-outline", "tshirt-v", "tshirt-v-outline", "tsunami", "tumble-dryer", "tumble-dryer-alert", "tumble-dryer-off", "tumblr", "tumblr-box", "tumblr-reblog", "tune", "tune-variant", "tune-vertical", "tune-vertical-variant", "tunnel", "tunnel-outline", "turbine", "turkey", "turnstile", "turnstile-outline", "turtle", "twitch", "twitter", "twitter-box", "twitter-circle", "two-factor-authentication", "typewriter", "uber", "ubisoft", "ubuntu", "ufo", "ufo-outline", "ultra-high-definition", "umbraco", "umbrella", "umbrella-beach", "umbrella-beach-outline", "umbrella-closed", "umbrella-closed-outline", "umbrella-closed-variant", "umbrella-outline", "undo", "undo-variant", "unfold-less-horizontal", "unfold-less-vertical", "unfold-more-horizontal", "unfold-more-vertical", "ungroup", "unicode", "unicorn", "unicorn-variant", "unicycle", "unity", "unreal", "untappd", "update", "upload", "upload-lock", "upload-lock-outline", "upload-multiple", "upload-network", "upload-network-outline", "upload-off", "upload-off-outline", "upload-outline", "usb", "usb-flash-drive", "usb-flash-drive-outline", "usb-port", "vacuum", "vacuum-outline", "valve", "valve-closed", "valve-open", "van-passenger", "van-utility", "vanish", "vanish-quarter", "vanity-light", "variable", "variable-box", "vector-arrange-above", "vector-arrange-below", "vector-bezier", "vector-circle", "vector-circle-variant", "vector-combine", "vector-curve", "vector-difference", "vector-difference-ab", "vector-difference-ba", "vector-ellipse", "vector-intersection", "vector-line", "vector-link", "vector-point", "vector-polygon", "vector-polygon-variant", "vector-polyline", "vector-polyline-edit", "vector-polyline-minus", "vector-polyline-plus", "vector-polyline-remove", "vector-radius", "vector-rectangle", "vector-selection", "vector-square", "vector-square-close", "vector-square-edit", "vector-square-minus", "vector-square-open", "vector-square-plus", "vector-square-remove", "vector-triangle", "vector-union", "venmo", "vhs", "vibrate", "vibrate-off", "video", "video-2d", "video-3d", "video-3d-off", "video-3d-variant", "video-4k-box", "video-account", "video-box", "video-box-off", "video-check", "video-check-outline", "video-high-definition", "video-image", "video-input-antenna", "video-input-component", "video-input-hdmi", "video-input-scart", "video-input-svideo", "video-marker", "video-marker-outline", "video-minus", "video-minus-outline", "video-off", "video-off-outline", "video-outline", "video-plus", "video-plus-outline", "video-stabilization", "video-switch", "video-switch-outline", "video-vintage", "video-wireless", "video-wireless-outline", "view-agenda", "view-agenda-outline", "view-array", "view-array-outline", "view-carousel", "view-carousel-outline", "view-column", "view-column-outline", "view-comfy", "view-comfy-outline", "view-compact", "view-compact-outline", "view-dashboard", "view-dashboard-edit", "view-dashboard-edit-outline", "view-dashboard-outline", "view-dashboard-variant", "view-dashboard-variant-outline", "view-day", "view-day-outline", "view-gallery", "view-gallery-outline", "view-grid", "view-grid-outline", "view-grid-plus", "view-grid-plus-outline", "view-headline", "view-list", "view-list-outline", "view-module", "view-module-outline", "view-parallel", "view-parallel-outline", "view-quilt", "view-quilt-outline", "view-sequential", "view-sequential-outline", "view-split-horizontal", "view-split-vertical", "view-stream", "view-stream-outline", "view-week", "view-week-outline", "vimeo", "vine", "violin", "virtual-reality", "virus", "virus-off", "virus-off-outline", "virus-outline", "vk", "vk-box", "vk-circle", "vlc", "voicemail", "volcano", "volcano-outline", "volleyball", "volume", "volume-high", "volume-low", "volume-medium", "volume-minus", "volume-mute", "volume-off", "volume-plus", "volume-source", "volume-variant-off", "volume-vibrate", "vote", "vote-outline", "vpn", "vuejs", "vuetify", "walk", "wall", "wall-fire", "wall-sconce", "wall-sconce-flat", "wall-sconce-flat-outline", "wall-sconce-flat-variant", "wall-sconce-flat-variant-outline", "wall-sconce-outline", "wall-sconce-round", "wall-sconce-round-outline", "wall-sconce-round-variant", "wall-sconce-round-variant-outline", "wall-sconce-variant", "wallet", "wallet-giftcard", "wallet-membership", "wallet-outline", "wallet-plus", "wallet-plus-outline", "wallet-travel", "wallpaper", "wan", "wardrobe", "wardrobe-outline", "warehouse", "washing-machine", "washing-machine-alert", "washing-machine-off", "watch", "watch-export", "watch-export-variant", "watch-import", "watch-import-variant", "watch-variant", "watch-vibrate", "watch-vibrate-off", "water", "water-alert", "water-alert-outline", "water-boiler", "water-boiler-alert", "water-boiler-off", "water-check", "water-check-outline", "water-circle", "water-minus", "water-minus-outline", "water-off", "water-off-outline", "water-opacity", "water-outline", "water-percent", "water-percent-alert", "water-plus", "water-plus-outline", "water-polo", "water-pump", "water-pump-off", "water-remove", "water-remove-outline", "water-sync", "water-thermometer", "water-thermometer-outline", "water-well", "water-well-outline", "waterfall", "watering-can", "watering-can-outline", "watermark", "wave", "waveform", "waves", "waves-arrow-left", "waves-arrow-right", "waves-arrow-up", "waze", "weather-cloudy", "weather-cloudy-alert", "weather-cloudy-arrow-right", "weather-cloudy-clock", "weather-fog", "weather-hail", "weather-hazy", "weather-hurricane", "weather-lightning", "weather-lightning-rainy", "weather-night", "weather-night-partly-cloudy", "weather-partly-cloudy", "weather-partly-lightning", "weather-partly-rainy", "weather-partly-snowy", "weather-partly-snowy-rainy", "weather-pouring", "weather-rainy", "weather-snowy", "weather-snowy-heavy", "weather-snowy-rainy", "weather-sunny", "weather-sunny-alert", "weather-sunny-off", "weather-sunset", "weather-sunset-down", "weather-sunset-up", "weather-tornado", "weather-windy", "weather-windy-variant", "web", "web-box", "web-cancel", "web-check", "web-clock", "web-minus", "web-off", "web-plus", "web-refresh", "web-remove", "web-sync", "webcam", "webcam-off", "webhook", "webpack", "webrtc", "wechat", "weight", "weight-gram", "weight-kilogram", "weight-lifter", "weight-pound", "whatsapp", "wheel-barrow", "wheelchair", "wheelchair-accessibility", "whistle", "whistle-outline", "white-balance-auto", "white-balance-incandescent", "white-balance-iridescent", "white-balance-sunny", "widgets", "widgets-outline", "wifi", "wifi-alert", "wifi-arrow-down", "wifi-arrow-left", "wifi-arrow-left-right", "wifi-arrow-right", "wifi-arrow-up", "wifi-arrow-up-down", "wifi-cancel", "wifi-check", "wifi-cog", "wifi-lock", "wifi-lock-open", "wifi-marker", "wifi-minus", "wifi-off", "wifi-plus", "wifi-refresh", "wifi-remove", "wifi-settings", "wifi-star", "wifi-strength-1", "wifi-strength-1-alert", "wifi-strength-1-lock", "wifi-strength-1-lock-open", "wifi-strength-2", "wifi-strength-2-alert", "wifi-strength-2-lock", "wifi-strength-2-lock-open", "wifi-strength-3", "wifi-strength-3-alert", "wifi-strength-3-lock", "wifi-strength-3-lock-open", "wifi-strength-4", "wifi-strength-4-alert", "wifi-strength-4-lock", "wifi-strength-4-lock-open", "wifi-strength-alert-outline", "wifi-strength-lock-open-outline", "wifi-strength-lock-outline", "wifi-strength-off", "wifi-strength-off-outline", "wifi-strength-outline", "wifi-sync", "wikipedia", "wind-power", "wind-power-outline", "wind-turbine", "wind-turbine-alert", "wind-turbine-check", "window-close", "window-closed", "window-closed-variant", "window-maximize", "window-minimize", "window-open", "window-open-variant", "window-restore", "window-shutter", "window-shutter-alert", "window-shutter-cog", "window-shutter-open", "window-shutter-settings", "windsock", "wiper", "wiper-wash", "wiper-wash-alert", "wizard-hat", "wordpress", "wrap", "wrap-disabled", "wrench", "wrench-clock", "wrench-outline", "wunderlist", "xamarin", "xamarin-outline", "xda", "xing", "xing-circle", "xml", "xmpp", "y-combinator", "yahoo", "yammer", "yeast", "yelp", "yin-yang", "yoga", "youtube", "youtube-gaming", "youtube-studio", "youtube-subscription", "youtube-tv", "yurt", "z-wave", "zend", "zigbee", "zip-box", "zip-box-outline", "zip-disk", "zodiac-aquarius", "zodiac-aries", "zodiac-cancer", "zodiac-capricorn", "zodiac-gemini", "zodiac-leo", "zodiac-libra", "zodiac-pisces", "zodiac-sagittarius", "zodiac-scorpio", "zodiac-taurus", "zodiac-virgo"] }, { "prefix": "logos", "info": { "name": "SVG Logos", "total": 1438, "author": { "name": "Gil Barbara", "url": "https://github.com/gilbarbara/logos" }, "license": { "title": "CC0", "spdx": "CC0-1.0", "url": "https://raw.githubusercontent.com/gilbarbara/logos/master/LICENSE.txt" }, "samples": ["angular-icon", "firefox", "google-drive"], "category": "Brands / Social", "palette": true }, "icons": ["100tb", "500px", "6px", "active-campaign", "active-campaign-icon", "admob", "adonisjs", "adonisjs-icon", "adroll", "adyen", "aerospike", "aerospike-icon", "ai", "airbnb", "airbrake", "airflow", "airtable", "akamai", "akka", "alfresco", "algolia", "alpinejs", "alpinejs-icon", "altair", "amazon-chime", "amazon-connect", "amex", "amp", "amp-icon", "ampersand", "amplication", "amplication-icon", "amplitude", "amplitude-icon", "android", "android-icon", "angellist", "angular", "angular-icon", "ansible", "ant-design", "apache", "apache-camel", "apache-cloudstack", "api-ai", "apiary", "apigee", "apitools", "apollostack", "apostrophe", "appbase", "appbaseio", "appbaseio-icon", "appcelerator", "appcircle", "appcircle-icon", "appcode", "appdynamics", "appfog", "apphub", "appium", "apple", "apple-app-store", "apple-pay", "appmaker", "apportable", "appsignal", "appsignal-icon", "apptentive", "appveyor", "arangodb", "archlinux", "arduino", "argo", "argo-icon", "armory", "asana", "asciidoctor", "assembla", "assembla-icon", "astro", "astronomer", "atlassian", "atom", "atom-icon", "atomic", "atomic-icon", "aurelia", "aurora", "aurous", "auth0", "auth0-icon", "authy", "autocode", "autoit", "autoprefixer", "ava", "awesome", "aws", "aws-amplify", "aws-api-gateway", "aws-app-mesh", "aws-appflow", "aws-appsync", "aws-athena", "aws-aurora", "aws-backup", "aws-batch", "aws-certificate-manager", "aws-cloudformation", "aws-cloudfront", "aws-cloudsearch", "aws-cloudtrail", "aws-cloudwatch", "aws-codebuild", "aws-codecommit", "aws-codedeploy", "aws-codepipeline", "aws-codestar", "aws-cognito", "aws-config", "aws-documentdb", "aws-dynamodb", "aws-ec2", "aws-ecs", "aws-eks", "aws-elastic-beanstalk", "aws-elastic-cache", "aws-elasticache", "aws-elb", "aws-eventbridge", "aws-fargate", "aws-glacier", "aws-glue", "aws-iam", "aws-keyspaces", "aws-kinesis", "aws-kms", "aws-lake-formation", "aws-lambda", "aws-lightsail", "aws-mobilehub", "aws-mq", "aws-msk", "aws-neptune", "aws-open-search", "aws-opsworks", "aws-quicksight", "aws-rds", "aws-redshift", "aws-route53", "aws-s3", "aws-secrets-manager", "aws-ses", "aws-shield", "aws-sns", "aws-sqs", "aws-step-functions", "aws-systems-manager", "aws-timestream", "aws-vpc", "aws-waf", "aws-xray", "axios", "azure", "azure-icon", "babel", "backbone", "backbone-icon", "backerkit", "baker-street", "balena", "bamboo", "base", "basecamp", "basekit", "bash", "bash-icon", "batch", "beats", "behance", "bem", "bem-2", "bigpanda", "bing", "bitballoon", "bitbucket", "bitcoin", "bitnami", "bitrise", "bitrise-icon", "blender", "blitzjs", "blitzjs-icon", "blocs", "blogger", "blossom", "bluemix", "blueprint", "bluetooth", "booqable", "booqable-icon", "bootstrap", "bosun", "botanalytics", "bourbon", "bower", "bowtie", "box", "brackets", "brainjs", "branch", "brandfolder", "brandfolder-icon", "brave", "braze", "broccoli", "brotli", "browserify", "browserify-icon", "browserling", "browserslist", "browserstack", "browsersync", "brunch", "buck", "buddy", "buffer", "bugherd", "bugsee", "bugsnag", "bugsnag-icon", "buildkite", "buildkite-icon", "bulma", "c", "c-plusplus", "c-sharp", "cachet", "caffe2", "cakephp", "cakephp-icon", "campaignmonitor", "campaignmonitor-icon", "campfire", "canjs", "capacitorjs", "capacitorjs-icon", "capistrano", "carbide", "cardano", "cardano-icon", "cassandra", "celluloid", "centos", "centos-icon", "certbot", "ceylon", "chai", "chalk", "changetip", "chargebee", "chargebee-icon", "chartblocks", "chef", "chevereto", "chromatic", "chromatic-icon", "chrome", "cinder", "circleci", "cirrus", "cirrus-ci", "clickdeploy", "clion", "cljs", "clojure", "close", "cloud9", "cloudacademy", "cloudacademy-icon", "cloudant", "cloudcraft", "cloudera", "cloudflare", "cloudinary", "cloudlinux", "clusterhq", "cobalt", "cockpit", "cocoapods", "codacy", "codebase", "codebeat", "codecademy", "codeception", "codeclimate", "codecov", "codefactor", "codefactor-icon", "codefund", "codefund-icon", "codeigniter", "codepen", "codepen-icon", "codepicnic", "codepush", "codersrank", "coderwall", "codesandbox", "codeschool", "codeship", "codio", "codrops", "coffeescript", "commitizen", "compass", "component", "componentkit", "compose", "composer", "conan-io", "concourse", "concrete5", "confluence", "consul", "containership", "contentful", "convox", "copyleft", "copyleft-pirate", "corda", "cordova", "coreos", "coreos-icon", "couchbase", "couchdb", "couchdb-icon", "coursera", "coveralls", "coverity", "cpanel", "craft", "craftcms", "crashlytics", "crateio", "create-react-app", "createjs", "crittercism", "cross-browser-testing", "crossbrowsertesting", "crowdprocess", "crucible", "crystal", "css-3", "css-3-official", "cssnext", "cucumber", "curl", "customerio", "customerio-icon", "cyclejs", "cypress", "d3", "dapulse", "dart", "dashlane", "dashlane-icon", "dat", "database-labs", "datadog", "datocms", "datocms-icon", "dbt", "dbt-icon", "dcos", "dcos-icon", "debian", "delicious", "delicious-burger", "delighted", "delighted-icon", "deno", "dependencyci", "deploy", "deployhq", "deppbot", "derby", "designernews", "desk", "dev", "dev-icon", "deviantart", "dgraph", "dgraph-icon", "dialogflow", "digital-ocean", "dimer", "dinersclub", "discord", "discord-icon", "discover", "disqus", "distelli", "divshot", "django", "django-icon", "dockbit", "docker", "docker-icon", "doctrine", "docusaurus", "dojo", "dojo-icon", "dojo-toolkit", "dotcloud", "dotnet", "doubleclick", "dreamfactory", "dreamhost", "dribbble", "dribbble-icon", "drift", "drip", "drizzle", "drizzle-icon", "drone", "drone-icon", "dropbox", "dropmark", "dropzone", "drupal", "drupal-icon", "duckduckgo", "dynatrace", "dynatrace-icon", "dyndns", "eager", "ebanx", "eclipse", "eclipse-icon", "editorconfig", "egghead", "elasticbox", "elasticsearch", "electron", "element", "elemental-ui", "elementary", "ello", "elm", "elo", "emacs", "embedly", "ember", "ember-tomster", "emmet", "engine-yard", "engine-yard-icon", "envato", "envoy", "envoy-icon", "envoyer", "envoyproxy", "enyo", "erlang", "es6", "esbuild", "esdoc", "eslint", "eslint-old", "eta-lang", "etcd", "ethereum", "ethereum-color", "ethers", "ethnio", "eventbrite", "eventbrite-icon", "eventsentry", "evergreen", "evergreen-icon", "expo", "expo-icon", "exponent", "express", "fabric", "fabric-io", "facebook", "falcor", "famous", "fastify", "fastify-icon", "fastlane", "fastly", "feathersjs", "fedora", "fetch", "figma", "firebase", "firefox", "flannel", "flarum", "flask", "flat-ui", "flattr", "flattr-icon", "fleep", "flexible-gs", "flickr", "flickr-icon", "flight", "flocker", "floodio", "flow", "flowxo", "floydhub", "flutter", "flux", "fluxxor", "fly", "flyjs", "fomo", "font-awesome", "forest", "forestadmin", "forestadmin-icon", "forever", "formkeep", "fortran", "foundation", "framed", "framer", "framework7", "framework7-icon", "freebsd", "freedcamp", "freedcamp-icon", "freedomdefined", "frontapp", "fsharp", "fuchsia", "galliumos", "game-analytics", "game-analytics-icon", "ganache", "ganache-icon", "gatsby", "gaugeio", "geekbot", "get-satisfaction", "getyourguide", "ghost", "giantswarm", "git", "git-icon", "gitboard", "github", "github-actions", "github-copilot", "github-icon", "github-octocat", "gitkraken", "gitlab", "gitter", "gitup", "glamorous", "gleam", "glimmerjs", "glint", "glitch", "glitch-icon", "gnome", "gnome-icon", "gnu", "gnu-net", "go", "gocd", "gohorse", "gomix", "google", "google-2014", "google-360suite", "google-admob", "google-ads", "google-adsense", "google-adwords", "google-analytics", "google-calendar", "google-cloud", "google-cloud-functions", "google-cloud-platform", "google-cloud-run", "google-currents", "google-data-studio", "google-developers", "google-developers-icon", "google-drive", "google-fit", "google-gmail", "google-gsuite", "google-home", "google-icon", "google-inbox", "google-keep", "google-maps", "google-marketing-platform", "google-meet", "google-one", "google-optimize", "google-pay", "google-pay-icon", "google-photos", "google-play", "google-play-icon", "google-plus", "google-tag-manager", "google-wallet", "gopher", "gordon", "gradle", "grafana", "grails", "grape", "graphcool", "graphene", "graphql", "gratipay", "grav", "gravatar", "graylog", "graylog-icon", "gridsome", "gridsome-icon", "grommet", "groovehq", "grove", "grpc", "grunt", "gulp", "gunicorn", "gunjs", "gusto", "gwt", "hack", "hacker-one", "hadoop", "haiku", "haiku-icon", "haml", "hanami", "handlebars", "hapi", "hardhat", "hardhat-icon", "harrow", "hashnode", "hashnode-icon", "haskell", "haskell-icon", "hasura", "haxe", "haxl", "hbase", "headlessui", "headlessui-icon", "heap", "helm", "helpscout", "helpscout-icon", "hermes", "heroku", "heroku-icon", "heroku-redis", "heron", "hexo", "hhvm", "hibernate", "highcharts", "hipchat", "hipercard", "hoa", "homebrew", "hoodie", "horizon", "hosted-graphite", "hostgator", "hostgator-icon", "hotjar", "houndci", "html-5", "html5-boilerplate", "httpie", "httpie-icon", "hubspot", "huggy", "hugo", "humongous", "hyper", "hyperapp", "ibm", "ieee", "ifttt", "imagemin", "imba", "imba-icon", "immer", "immer-icon", "immutable", "impala", "importio", "infer", "inferno", "influxdb", "ink", "insomnia", "instagram", "instagram-icon", "intellij-idea", "intercom", "intercom-icon", "internetexplorer", "invision", "invision-icon", "io", "ionic", "ionic-icon", "ios", "iron", "iron-icon", "itsalive", "itsalive-icon", "jade", "jamstack", "jamstack-icon", "jasmine", "java", "javascript", "jcb", "jekyll", "jelastic", "jelastic-icon", "jenkins", "jest", "jetbrains", "jfrog", "jhipster", "jhipster-icon", "jira", "joomla", "jquery", "jquery-mobile", "jruby", "jsbin", "jscs", "jsdelivr", "jsdom", "jsfiddle", "json", "jspm", "jss", "juju", "julia", "jupyter", "jwt", "jwt-icon", "kafka", "kafka-icon", "kaios", "kallithea", "karma", "kde", "keen", "kemal", "keycdn", "keycdn-icon", "keymetrics", "keystonejs", "khan-academy", "khan-academy-icon", "kibana", "kickstarter", "kickstarter-icon", "kinto", "kinto-icon", "kinvey", "kirby", "kirby-icon", "kissmetrics", "kissmetrics-monochromatic", "kitematic", "kloudless", "knex", "knockout", "koa", "kong", "kong-icon", "kontena", "kops", "kore", "koreio", "kotlin", "kotlin-icon", "kraken", "krakenjs", "kubernetes", "kustomer", "laravel", "lastfm", "lateral", "launchkit", "launchrock", "leaflet", "leankit", "leankit-icon", "lerna", "less", "lets-cloud", "letsencrypt", "leveldb", "librato", "liftweb", "lighthouse", "lightstep", "lightstep-icon", "lighttpd", "linkedin", "linkedin-icon", "linkerd", "linode", "linux-mint", "linux-tux", "lit", "lit-icon", "litmus", "loader", "locent", "lodash", "logentries", "loggly", "logmatic", "logstash", "lookback", "looker", "looker-icon", "loom", "loopback", "loopback-icon", "losant", "lotus", "lua", "lucene", "lucene-net", "lumen", "lynda", "macos", "macosx", "madge", "maestro", "mageia", "magento", "magneto", "mailchimp", "mailchimp-freddie", "maildeveloper", "mailgun", "mailgun-icon", "mailjet", "malinajs", "mandrill", "mandrill-shield", "manifoldjs", "manjaro", "mantl", "manuscript", "mapbox", "mapbox-icon", "maps-me", "mapzen", "mapzen-icon", "mariadb", "mariadb-icon", "marionette", "markdown", "marko", "marvel", "mastercard", "mastodon", "mastodon-icon", "material-ui", "materializecss", "matplotlib", "matplotlib-icon", "mattermost", "mattermost-icon", "maven", "maxcdn", "mdn", "mdx", "meanio", "medium", "medium-icon", "memcached", "memsql", "memsql-icon", "mention", "mercurial", "mern", "mesos", "mesosphere", "metabase", "metamask", "metamask-icon", "meteor", "meteor-icon", "microcosm", "microsoft", "microsoft-azure", "microsoft-edge", "microsoft-onedrive", "microsoft-power-bi", "microsoft-teams", "microsoft-windows", "middleman", "milligram", "mint-lang", "mio", "mist", "mithril", "mixmax", "mixpanel", "mlab", "mobx", "mocha", "mockflow", "mockflow-icon", "modernizr", "modulus", "modx", "modx-icon", "moltin", "moltin-icon", "momentjs", "monday", "monday-icon", "monero", "mongodb", "mongolab", "mono", "moon", "mootools", "morpheus", "morpheus-icon", "mozilla", "mparticle", "mparticle-icon", "multipass", "mysql", "mysql-icon", "myth", "naiveui", "namecheap", "nanonets", "nativescript", "nats", "nats-icon", "neat", "neo4j", "neonmetrics", "neovim", "nestjs", "net", "netbeans", "netflix", "netflix-icon", "netlify", "netuitive", "new-relic", "nextjs", "nextjs-icon", "nginx", "nightwatch", "nim-lang", "nocodb", "nodal", "node-sass", "nodebots", "nodejitsu", "nodejs", "nodejs-icon", "nodemon", "nodeos", "nodewebkit", "nomad", "now", "noysi", "npm", "npm-2", "npm-icon", "nuclide", "numpy", "nuodb", "nuxt", "nuxt-icon", "nx", "oauth", "ocaml", "octodns", "octopus-deploy", "olapic", "olark", "onesignal", "opbeat", "open-graph", "open-zeppelin", "open-zeppelin-icon", "openai", "openai-icon", "opencart", "opencollective", "opencv", "openframeworks", "opengl", "openjs-foundation", "openjs-foundation-icon", "openlayers", "openshift", "opensource", "openstack", "openstack-icon", "opentelemetry", "opentelemetry-icon", "opera", "opsee", "opsgenie", "opsmatic", "optimizely", "oracle", "oreilly", "origami", "origin", "oshw", "osquery", "otto", "packer", "pagekit", "pagekite", "pagerduty", "pagerduty-icon", "panda", "parcel", "parcel-icon", "parse", "parsehub", "partytown", "partytown-icon", "passbolt", "passbolt-icon", "passport", "patreon", "paypal", "peer5", "pepperoni", "percona", "percy", "percy-icon", "perf-rocks", "periscope", "perl", "phalcon", "phoenix", "phonegap", "phonegap-bot", "php", "php-alt", "phpstorm", "picasa", "pingdom", "pingy", "pinterest", "pipedrive", "pipefy", "pivotal-tracker", "pixate", "pixelapse", "pixijs", "pkg", "planless", "planless-icon", "plastic-scm", "platformio", "play", "playwright", "pm2", "pnpm", "podio", "poeditor", "polymer", "positionly", "postcss", "postgraphile", "postgresql", "postman", "postman-icon", "pouchdb", "preact", "precursor", "prerender", "prerender-icon", "prestashop", "presto", "prettier", "prisma", "prismic", "prismic-icon", "processwire", "processwire-icon", "productboard", "productboard-icon", "producteev", "producthunt", "progress", "prometheus", "promises", "proofy", "prospect", "protactor", "protoio", "protonet", "prott", "pug", "pumpkindb", "puppet", "puppet-icon", "puppeteer", "puppy-linux", "purescript", "purescript-icon", "pushbullet", "pusher", "pusher-icon", "pwa", "pycharm", "python", "pytorch", "pyup", "q", "qlik", "qordoba", "qt", "quarkus", "quarkus-icon", "quay", "quobyte", "quora", "r-lang", "rabbitmq", "rabbitmq-icon", "rackspace", "rails", "ramda", "raml", "rancher", "rancher-icon", "randomcolor", "raphael", "raspberry-pi", "rax", "react", "react-query", "react-query-icon", "react-router", "react-spring", "react-styleguidist", "reactivex", "realm", "reapp", "reasonml", "reasonml-icon", "reddit", "reddit-icon", "redhat", "redhat-icon", "redis", "redsmin", "redspread", "redux", "redux-observable", "redux-saga", "redwoodjs", "refactor", "reindex", "relay", "release", "remergr", "remix", "remix-icon", "require", "rescript", "rescript-icon", "rest", "rest-li", "rethinkdb", "retool", "retool-icon", "riak", "riot", "rkt", "rocket-chat", "rocket-chat-icon", "rocksdb", "rocky-linux", "rocky-linux-icon", "rollbar", "rollbar-icon", "rollupjs", "rome", "rome-icon", "rsa", "rsmq", "rubocop", "ruby", "rubygems", "rubymine", "rum", "run-above", "runnable", "runscope", "rust", "rxdb", "safari", "sagui", "sails", "salesforce", "saltstack", "sameroom", "samsung", "sanity", "sass", "sass-doc", "saucelabs", "scala", "scaledrone", "scaphold", "scribd", "scribd-icon", "section", "section-icon", "sectionio", "segment", "segment-icon", "selenium", "semantic-release", "semantic-ui", "semantic-web", "semaphore", "semaphoreci", "sencha", "sendgrid", "sendgrid-icon", "seneca", "sensu", "sensu-icon", "sentry", "sentry-icon", "sequelize", "serveless", "serverless", "sherlock", "sherlock-icon", "shields", "shipit", "shippable", "shogun", "shopify", "sidekick", "sidekiq", "sidekiq-icon", "signal", "sinatra", "siphon", "sitepoint", "skaffolder", "sketch", "sketchapp", "skylight", "skype", "slack", "slack-icon", "slides", "slim", "smartling", "smashingmagazine", "snap-svg", "snowflake", "snowflake-icon", "snowpack", "snupps", "snyk", "socket-io", "solarwinds", "solid", "solidity", "solidjs", "solidjs-icon", "solr", "sonarqube", "soundcloud", "sourcegraph", "sourcetrail", "sourcetree", "spark", "sparkcentral", "sparkpost", "speakerdeck", "speedcurve", "spidermonkey", "spidermonkey-icon", "spinnaker", "splunk", "spotify", "spotify-icon", "spree", "spring", "spring-icon", "sqldep", "sqlite", "square", "squarespace", "stackbit", "stackbit-icon", "stackoverflow", "stackoverflow-icon", "stackshare", "stacksmith", "stash", "statuspage", "stdlib", "stdlib-icon", "steam", "steemit", "stenciljs", "stenciljs-icon", "steroids", "stetho", "stickermule", "stimulus", "stitch", "stoplight", "stormpath", "storybook", "storybook-icon", "strapi", "strapi-icon", "strider", "stripe", "strongloop", "struts", "styleci", "stylefmt", "stylelint", "stylis", "stylus", "sublimetext", "sublimetext-icon", "subversion", "sugarss", "supabase", "supabase-icon", "supergiant", "supersonic", "supportkit", "surge", "survicate", "suse", "susy", "svelte", "svelte-icon", "svg", "svgator", "swagger", "swc", "swift", "swiftype", "swr", "symfony", "sysdig", "sysdig-icon", "t3", "tableau", "tableau-icon", "taiga", "tailwindcss", "tailwindcss-icon", "tapcart", "tapcart-icon", "targetprocess", "taskade", "taskade-icon", "tastejs", "tauri", "tealium", "teamgrid", "teamwork", "teamwork-icon", "tectonic", "telegram", "tensorflow", "terminal", "terraform", "terraform-icon", "terser", "terser-icon", "testing-library", "testlodge", "testmunk", "thimble", "threejs", "tidal", "tidal-icon", "tiktok", "tiktok-icon", "titon", "tnw", "todoist", "todoist-icon", "todomvc", "tomcat", "toml", "tor", "torus", "traackr", "trac", "trace", "travis-ci", "travis-ci-monochrome", "treasuredata", "treasuredata-icon", "treehouse", "trello", "truffle", "truffle-icon", "tsnode", "tsu", "tsuru", "tumblr", "tumblr-icon", "tunein", "tuple", "turborepo", "turborepo-icon", "turret", "tutsplus", "tutum", "twilio", "twilio-icon", "twitch", "twitter", "typeform", "typeform-icon", "typescript", "typescript-icon", "typo3", "typo3-icon", "ubuntu", "udacity", "udacity-icon", "udemy", "udemy-icon", "uikit", "umu", "unbounce", "unbounce-icon", "undertow", "unionpay", "unitjs", "unito", "unito-icon", "unity", "unocss", "unrealengine", "unrealengine-icon", "upcase", "upwork", "user-testing", "user-testing-icon", "uservoice", "uservoice-icon", "uwsgi", "v8", "v8-ignition", "v8-turbofan", "vaadin", "vaddy", "vagrant", "vagrant-icon", "vault", "vault-icon", "vector-timber", "vercel", "vercel-icon", "verdaccio", "verdaccio-icon", "vernemq", "victorops", "vim", "vimeo", "vimeo-icon", "vine", "visa", "visaelectron", "visual-studio", "visual-studio-code", "visual-website-optimizer", "vitejs", "vitest", "vivaldi", "vivaldi-icon", "vlang", "void", "vue", "vuetifyjs", "vueuse", "vulkan", "vultr", "vwo", "w3c", "waffle", "waffle-icon", "wagtail", "wakatime", "watchman", "wearos", "weave", "web-dev", "web-dev-icon", "web-fundamentals", "web3js", "webassembly", "webcomponents", "webdriverio", "webflow", "webhint", "webhint-icon", "webhooks", "webix", "webix-icon", "webmin", "webpack", "webplatform", "webrtc", "websocket", "webstorm", "webtask", "webtorrent", "weebly", "wercker", "whalar", "whatsapp", "whatwg", "wicket", "wicket-icon", "wifi", "wildfly", "wire", "wiredtree", "wix", "wmr", "woocommerce", "woocommerce-icon", "woopra", "wordpress", "wordpress-icon", "workboard", "workplace", "wpengine", "wufoo", "x-ray-goggles", "xamarin", "xampp", "xcart", "xero", "xplenty", "xstate", "xtend", "xwiki", "xwiki-icon", "yahoo", "yaml", "yammer", "yandex-ru", "yarn", "ycombinator", "yeoman", "yii", "youtrack", "youtube", "youtube-icon", "zapier", "zapier-icon", "zeit", "zeit-icon", "zend-framework", "zendesk", "zendesk-icon", "zenhub", "zenhub-icon", "zeplin", "zest", "zigbee", "zoho", "zorin-os", "zube", "zulip", "zulip-icon", "zwave"] }, { "prefix": "twemoji", "info": { "name": "Twitter Emoji", "total": 3668, "author": { "name": "Twitter", "url": "https://github.com/twitter/twemoji" }, "license": { "title": "CC BY 4.0", "spdx": "CC-BY-4.0", "url": "https://creativecommons.org/licenses/by/4.0/" }, "samples": ["anguished-face", "duck", "crossed-swords"], "height": 36, "displayHeight": 18, "category": "Emoji", "palette": true }, "icons": ["1st-place-medal", "2nd-place-medal", "3rd-place-medal", "a-button-blood-type", "ab-button-blood-type", "abacus", "accordion", "adhesive-bandage", "admission-tickets", "adult", "adult-dark-skin-tone", "adult-light-skin-tone", "adult-medium-dark-skin-tone", "adult-medium-light-skin-tone", "adult-medium-skin-tone", "aerial-tramway", "airplane", "airplane-arrival", "airplane-departure", "alarm-clock", "alembic", "alien", "alien-monster", "ambulance", "american-football", "amphora", "anatomical-heart", "anchor", "anger-symbol", "angry-face", "angry-face-with-horns", "anguished-face", "ant", "antenna-bars", "anxious-face-with-sweat", "aquarius", "aries", "articulated-lorry", "artist", "artist-dark-skin-tone", "artist-light-skin-tone", "artist-medium-dark-skin-tone", "artist-medium-light-skin-tone", "artist-medium-skin-tone", "artist-palette", "astonished-face", "astronaut", "astronaut-dark-skin-tone", "astronaut-light-skin-tone", "astronaut-medium-dark-skin-tone", "astronaut-medium-light-skin-tone", "astronaut-medium-skin-tone", "atm-sign", "atom-symbol", "auto-rickshaw", "automobile", "avocado", "axe", "b-button-blood-type", "baby", "baby-angel", "baby-angel-dark-skin-tone", "baby-angel-light-skin-tone", "baby-angel-medium-dark-skin-tone", "baby-angel-medium-light-skin-tone", "baby-angel-medium-skin-tone", "baby-bottle", "baby-chick", "baby-dark-skin-tone", "baby-light-skin-tone", "baby-medium-dark-skin-tone", "baby-medium-light-skin-tone", "baby-medium-skin-tone", "baby-symbol", "back-arrow", "backhand-index-pointing-down", "backhand-index-pointing-down-dark-skin-tone", "backhand-index-pointing-down-light-skin-tone", "backhand-index-pointing-down-medium-dark-skin-tone", "backhand-index-pointing-down-medium-light-skin-tone", "backhand-index-pointing-down-medium-skin-tone", "backhand-index-pointing-left", "backhand-index-pointing-left-dark-skin-tone", "backhand-index-pointing-left-light-skin-tone", "backhand-index-pointing-left-medium-dark-skin-tone", "backhand-index-pointing-left-medium-light-skin-tone", "backhand-index-pointing-left-medium-skin-tone", "backhand-index-pointing-right", "backhand-index-pointing-right-dark-skin-tone", "backhand-index-pointing-right-light-skin-tone", "backhand-index-pointing-right-medium-dark-skin-tone", "backhand-index-pointing-right-medium-light-skin-tone", "backhand-index-pointing-right-medium-skin-tone", "backhand-index-pointing-up", "backhand-index-pointing-up-dark-skin-tone", "backhand-index-pointing-up-light-skin-tone", "backhand-index-pointing-up-medium-dark-skin-tone", "backhand-index-pointing-up-medium-light-skin-tone", "backhand-index-pointing-up-medium-skin-tone", "backpack", "bacon", "badger", "badminton", "bagel", "baggage-claim", "baguette-bread", "balance-scale", "bald", "ballet-shoes", "balloon", "ballot-box-with-ballot", "banana", "banjo", "bank", "bar-chart", "barber-pole", "baseball", "basket", "basketball", "bat", "bathtub", "battery", "beach-with-umbrella", "beaming-face-with-smiling-eyes", "beans", "bear", "bearded-person", "bearded-person-dark-skin-tone", "bearded-person-light-skin-tone", "bearded-person-medium-dark-skin-tone", "bearded-person-medium-light-skin-tone", "bearded-person-medium-skin-tone", "beating-heart", "beaver", "bed", "beer-mug", "beetle", "bell", "bell-pepper", "bell-with-slash", "bellhop-bell", "bento-box", "beverage-box", "bicycle", "bikini", "billed-cap", "biohazard", "bird", "birthday-cake", "bison", "biting-lip", "black-cat", "black-circle", "black-flag", "black-heart", "black-large-square", "black-medium-small-square", "black-medium-square", "black-nib", "black-small-square", "black-square-button", "blossom", "blowfish", "blue-book", "blue-circle", "blue-heart", "blue-square", "blueberries", "boar", "bomb", "bone", "bookmark", "bookmark-tabs", "books", "boomerang", "bottle-with-popping-cork", "bouquet", "bow-and-arrow", "bowl-with-spoon", "bowling", "boxing-glove", "boy", "boy-dark-skin-tone", "boy-light-skin-tone", "boy-medium-dark-skin-tone", "boy-medium-light-skin-tone", "boy-medium-skin-tone", "brain", "bread", "breast-feeding", "breast-feeding-dark-skin-tone", "breast-feeding-light-skin-tone", "breast-feeding-medium-dark-skin-tone", "breast-feeding-medium-light-skin-tone", "breast-feeding-medium-skin-tone", "brick", "bridge-at-night", "briefcase", "briefs", "bright-button", "broccoli", "broken-heart", "broom", "brown-circle", "brown-heart", "brown-square", "bubble-tea", "bubbles", "bucket", "bug", "building-construction", "bullet-train", "bullseye", "burrito", "bus", "bus-stop", "bust-in-silhouette", "busts-in-silhouette", "butter", "butterfly", "cactus", "calendar", "call-me-hand", "call-me-hand-dark-skin-tone", "call-me-hand-light-skin-tone", "call-me-hand-medium-dark-skin-tone", "call-me-hand-medium-light-skin-tone", "call-me-hand-medium-skin-tone", "camel", "camera", "camera-with-flash", "camping", "cancer", "candle", "candy", "canned-food", "canoe", "capricorn", "card-file-box", "card-index", "card-index-dividers", "carousel-horse", "carp-streamer", "carpentry-saw", "carrot", "castle", "cat", "cat-face", "cat-with-tears-of-joy", "cat-with-wry-smile", "chains", "chair", "chart-decreasing", "chart-increasing", "chart-increasing-with-yen", "check-box-with-check", "check-mark", "check-mark-button", "cheese-wedge", "chequered-flag", "cherries", "cherry-blossom", "chess-pawn", "chestnut", "chicken", "child", "child-dark-skin-tone", "child-light-skin-tone", "child-medium-dark-skin-tone", "child-medium-light-skin-tone", "child-medium-skin-tone", "children-crossing", "chipmunk", "chocolate-bar", "chopsticks", "christmas-tree", "church", "cigarette", "cinema", "circled-m", "circus-tent", "cityscape", "cityscape-at-dusk", "cl-button", "clamp", "clapper-board", "clapping-hands", "clapping-hands-dark-skin-tone", "clapping-hands-light-skin-tone", "clapping-hands-medium-dark-skin-tone", "clapping-hands-medium-light-skin-tone", "clapping-hands-medium-skin-tone", "classical-building", "clinking-beer-mugs", "clinking-glasses", "clipboard", "clockwise-vertical-arrows", "closed-book", "closed-mailbox-with-lowered-flag", "closed-mailbox-with-raised-flag", "closed-umbrella", "cloud", "cloud-with-lightning", "cloud-with-lightning-and-rain", "cloud-with-rain", "cloud-with-snow", "clown-face", "club-suit", "clutch-bag", "coat", "cockroach", "cocktail-glass", "coconut", "coffin", "coin", "cold-face", "collision", "comet", "compass", "computer-disk", "computer-mouse", "confetti-ball", "confounded-face", "confused-face", "construction", "construction-worker", "construction-worker-dark-skin-tone", "construction-worker-light-skin-tone", "construction-worker-medium-dark-skin-tone", "construction-worker-medium-light-skin-tone", "construction-worker-medium-skin-tone", "control-knobs", "convenience-store", "cook", "cook-dark-skin-tone", "cook-light-skin-tone", "cook-medium-dark-skin-tone", "cook-medium-light-skin-tone", "cook-medium-skin-tone", "cooked-rice", "cookie", "cooking", "cool-button", "copyright", "coral", "couch-and-lamp", "counterclockwise-arrows-button", "couple-with-heart", "couple-with-heart-dark-skin-tone", "couple-with-heart-light-skin-tone", "couple-with-heart-man-man", "couple-with-heart-man-man-dark-skin-tone", "couple-with-heart-man-man-dark-skin-tone-light-skin-tone", "couple-with-heart-man-man-dark-skin-tone-medium-dark-skin-tone", "couple-with-heart-man-man-dark-skin-tone-medium-light-skin-tone", "couple-with-heart-man-man-dark-skin-tone-medium-skin-tone", "couple-with-heart-man-man-light-skin-tone", "couple-with-heart-man-man-light-skin-tone-dark-skin-tone", "couple-with-heart-man-man-light-skin-tone-medium-dark-skin-tone", "couple-with-heart-man-man-light-skin-tone-medium-light-skin-tone", "couple-with-heart-man-man-light-skin-tone-medium-skin-tone", "couple-with-heart-man-man-medium-dark-skin-tone", "couple-with-heart-man-man-medium-dark-skin-tone-dark-skin-tone", "couple-with-heart-man-man-medium-dark-skin-tone-light-skin-tone", "couple-with-heart-man-man-medium-dark-skin-tone-medium-light-skin-tone", "couple-with-heart-man-man-medium-dark-skin-tone-medium-skin-tone", "couple-with-heart-man-man-medium-light-skin-tone", "couple-with-heart-man-man-medium-light-skin-tone-dark-skin-tone", "couple-with-heart-man-man-medium-light-skin-tone-light-skin-tone", "couple-with-heart-man-man-medium-light-skin-tone-medium-dark-skin-tone", "couple-with-heart-man-man-medium-light-skin-tone-medium-skin-tone", "couple-with-heart-man-man-medium-skin-tone", "couple-with-heart-man-man-medium-skin-tone-dark-skin-tone", "couple-with-heart-man-man-medium-skin-tone-light-skin-tone", "couple-with-heart-man-man-medium-skin-tone-medium-dark-skin-tone", "couple-with-heart-man-man-medium-skin-tone-medium-light-skin-tone", "couple-with-heart-medium-dark-skin-tone", "couple-with-heart-medium-light-skin-tone", "couple-with-heart-medium-skin-tone", "couple-with-heart-person-person-dark-skin-tone-light-skin-tone", "couple-with-heart-person-person-dark-skin-tone-medium-dark-skin-tone", "couple-with-heart-person-person-dark-skin-tone-medium-light-skin-tone", "couple-with-heart-person-person-dark-skin-tone-medium-skin-tone", "couple-with-heart-person-person-light-skin-tone-dark-skin-tone", "couple-with-heart-person-person-light-skin-tone-medium-dark-skin-tone", "couple-with-heart-person-person-light-skin-tone-medium-light-skin-tone", "couple-with-heart-person-person-light-skin-tone-medium-skin-tone", "couple-with-heart-person-person-medium-dark-skin-tone-dark-skin-tone", "couple-with-heart-person-person-medium-dark-skin-tone-light-skin-tone", "couple-with-heart-person-person-medium-dark-skin-tone-medium-light-skin-tone", "couple-with-heart-person-person-medium-dark-skin-tone-medium-skin-tone", "couple-with-heart-person-person-medium-light-skin-tone-dark-skin-tone", "couple-with-heart-person-person-medium-light-skin-tone-light-skin-tone", "couple-with-heart-person-person-medium-light-skin-tone-medium-dark-skin-tone", "couple-with-heart-person-person-medium-light-skin-tone-medium-skin-tone", "couple-with-heart-person-person-medium-skin-tone-dark-skin-tone", "couple-with-heart-person-person-medium-skin-tone-light-skin-tone", "couple-with-heart-person-person-medium-skin-tone-medium-dark-skin-tone", "couple-with-heart-person-person-medium-skin-tone-medium-light-skin-tone", "couple-with-heart-woman-man", "couple-with-heart-woman-man-dark-skin-tone", "couple-with-heart-woman-man-dark-skin-tone-light-skin-tone", "couple-with-heart-woman-man-dark-skin-tone-medium-dark-skin-tone", "couple-with-heart-woman-man-dark-skin-tone-medium-light-skin-tone", "couple-with-heart-woman-man-dark-skin-tone-medium-skin-tone", "couple-with-heart-woman-man-light-skin-tone", "couple-with-heart-woman-man-light-skin-tone-dark-skin-tone", "couple-with-heart-woman-man-light-skin-tone-medium-dark-skin-tone", "couple-with-heart-woman-man-light-skin-tone-medium-light-skin-tone", "couple-with-heart-woman-man-light-skin-tone-medium-skin-tone", "couple-with-heart-woman-man-medium-dark-skin-tone", "couple-with-heart-woman-man-medium-dark-skin-tone-dark-skin-tone", "couple-with-heart-woman-man-medium-dark-skin-tone-light-skin-tone", "couple-with-heart-woman-man-medium-dark-skin-tone-medium-light-skin-tone", "couple-with-heart-woman-man-medium-dark-skin-tone-medium-skin-tone", "couple-with-heart-woman-man-medium-light-skin-tone", "couple-with-heart-woman-man-medium-light-skin-tone-dark-skin-tone", "couple-with-heart-woman-man-medium-light-skin-tone-light-skin-tone", "couple-with-heart-woman-man-medium-light-skin-tone-medium-dark-skin-tone", "couple-with-heart-woman-man-medium-light-skin-tone-medium-skin-tone", "couple-with-heart-woman-man-medium-skin-tone", "couple-with-heart-woman-man-medium-skin-tone-dark-skin-tone", "couple-with-heart-woman-man-medium-skin-tone-light-skin-tone", "couple-with-heart-woman-man-medium-skin-tone-medium-dark-skin-tone", "couple-with-heart-woman-man-medium-skin-tone-medium-light-skin-tone", "couple-with-heart-woman-woman", "couple-with-heart-woman-woman-dark-skin-tone", "couple-with-heart-woman-woman-dark-skin-tone-light-skin-tone", "couple-with-heart-woman-woman-dark-skin-tone-medium-dark-skin-tone", "couple-with-heart-woman-woman-dark-skin-tone-medium-light-skin-tone", "couple-with-heart-woman-woman-dark-skin-tone-medium-skin-tone", "couple-with-heart-woman-woman-light-skin-tone", "couple-with-heart-woman-woman-light-skin-tone-dark-skin-tone", "couple-with-heart-woman-woman-light-skin-tone-medium-dark-skin-tone", "couple-with-heart-woman-woman-light-skin-tone-medium-light-skin-tone", "couple-with-heart-woman-woman-light-skin-tone-medium-skin-tone", "couple-with-heart-woman-woman-medium-dark-skin-tone", "couple-with-heart-woman-woman-medium-dark-skin-tone-dark-skin-tone", "couple-with-heart-woman-woman-medium-dark-skin-tone-light-skin-tone", "couple-with-heart-woman-woman-medium-dark-skin-tone-medium-light-skin-tone", "couple-with-heart-woman-woman-medium-dark-skin-tone-medium-skin-tone", "couple-with-heart-woman-woman-medium-light-skin-tone", "couple-with-heart-woman-woman-medium-light-skin-tone-dark-skin-tone", "couple-with-heart-woman-woman-medium-light-skin-tone-light-skin-tone", "couple-with-heart-woman-woman-medium-light-skin-tone-medium-dark-skin-tone", "couple-with-heart-woman-woman-medium-light-skin-tone-medium-skin-tone", "couple-with-heart-woman-woman-medium-skin-tone", "couple-with-heart-woman-woman-medium-skin-tone-dark-skin-tone", "couple-with-heart-woman-woman-medium-skin-tone-light-skin-tone", "couple-with-heart-woman-woman-medium-skin-tone-medium-dark-skin-tone", "couple-with-heart-woman-woman-medium-skin-tone-medium-light-skin-tone", "cow", "cow-face", "cowboy-hat-face", "crab", "crayon", "credit-card", "crescent-moon", "cricket", "cricket-game", "crocodile", "croissant", "cross-mark", "cross-mark-button", "crossed-fingers", "crossed-fingers-dark-skin-tone", "crossed-fingers-light-skin-tone", "crossed-fingers-medium-dark-skin-tone", "crossed-fingers-medium-light-skin-tone", "crossed-fingers-medium-skin-tone", "crossed-flags", "crossed-swords", "crown", "crutch", "crying-cat", "crying-face", "crystal-ball", "cucumber", "cup-with-straw", "cupcake", "curling-stone", "curly-haired", "curly-loop", "currency-exchange", "curry-rice", "custard", "customs", "cut-of-meat", "cyclone", "dagger", "dango", "dark-skin-tone", "dashing-away", "deaf-man", "deaf-man-dark-skin-tone", "deaf-man-light-skin-tone", "deaf-man-medium-dark-skin-tone", "deaf-man-medium-light-skin-tone", "deaf-man-medium-skin-tone", "deaf-person", "deaf-person-dark-skin-tone", "deaf-person-light-skin-tone", "deaf-person-medium-dark-skin-tone", "deaf-person-medium-light-skin-tone", "deaf-person-medium-skin-tone", "deaf-woman", "deaf-woman-dark-skin-tone", "deaf-woman-light-skin-tone", "deaf-woman-medium-dark-skin-tone", "deaf-woman-medium-light-skin-tone", "deaf-woman-medium-skin-tone", "deciduous-tree", "deer", "delivery-truck", "department-store", "derelict-house", "desert", "desert-island", "desktop-computer", "detective", "detective-dark-skin-tone", "detective-light-skin-tone", "detective-medium-dark-skin-tone", "detective-medium-light-skin-tone", "detective-medium-skin-tone", "diamond-suit", "diamond-with-a-dot", "dim-button", "disappointed-face", "disguised-face", "divide", "diving-mask", "diya-lamp", "dizzy", "dna", "dodo", "dog", "dog-face", "dollar-banknote", "dolphin", "door", "dotted-line-face", "dotted-six-pointed-star", "double-curly-loop", "double-exclamation-mark", "doughnut", "dove", "down-arrow", "down-left-arrow", "down-right-arrow", "downcast-face-with-sweat", "downwards-button", "dragon", "dragon-face", "dress", "drooling-face", "drop-of-blood", "droplet", "drum", "duck", "dumpling", "dvd", "e-mail", "eagle", "ear", "ear-dark-skin-tone", "ear-light-skin-tone", "ear-medium-dark-skin-tone", "ear-medium-light-skin-tone", "ear-medium-skin-tone", "ear-of-corn", "ear-with-hearing-aid", "ear-with-hearing-aid-dark-skin-tone", "ear-with-hearing-aid-light-skin-tone", "ear-with-hearing-aid-medium-dark-skin-tone", "ear-with-hearing-aid-medium-light-skin-tone", "ear-with-hearing-aid-medium-skin-tone", "egg", "eggplant", "eight-oclock", "eight-pointed-star", "eight-spoked-asterisk", "eight-thirty", "eject-button", "electric-plug", "elephant", "elevator", "eleven-oclock", "eleven-thirty", "elf", "elf-dark-skin-tone", "elf-light-skin-tone", "elf-medium-dark-skin-tone", "elf-medium-light-skin-tone", "elf-medium-skin-tone", "empty-nest", "end-arrow", "envelope", "envelope-with-arrow", "euro-banknote", "evergreen-tree", "ewe", "exclamation-question-mark", "exploding-head", "expressionless-face", "eye", "eye-in-speech-bubble", "eyes", "face-blowing-a-kiss", "face-exhaling", "face-holding-back-tears", "face-in-clouds", "face-savoring-food", "face-screaming-in-fear", "face-vomiting", "face-with-crossed-out-eyes", "face-with-diagonal-mouth", "face-with-hand-over-mouth", "face-with-head-bandage", "face-with-medical-mask", "face-with-monocle", "face-with-open-eyes-and-hand-over-mouth", "face-with-open-mouth", "face-with-peeking-eye", "face-with-raised-eyebrow", "face-with-rolling-eyes", "face-with-spiral-eyes", "face-with-steam-from-nose", "face-with-symbols-on-mouth", "face-with-tears-of-joy", "face-with-thermometer", "face-with-tongue", "face-without-mouth", "factory", "factory-worker", "factory-worker-dark-skin-tone", "factory-worker-light-skin-tone", "factory-worker-medium-dark-skin-tone", "factory-worker-medium-light-skin-tone", "factory-worker-medium-skin-tone", "fairy", "fairy-dark-skin-tone", "fairy-light-skin-tone", "fairy-medium-dark-skin-tone", "fairy-medium-light-skin-tone", "fairy-medium-skin-tone", "falafel", "fallen-leaf", "family", "family-man-boy", "family-man-boy-boy", "family-man-girl", "family-man-girl-boy", "family-man-girl-girl", "family-man-man-boy", "family-man-man-boy-boy", "family-man-man-girl", "family-man-man-girl-boy", "family-man-man-girl-girl", "family-man-woman-boy", "family-man-woman-boy-boy", "family-man-woman-girl", "family-man-woman-girl-boy", "family-man-woman-girl-girl", "family-woman-boy", "family-woman-boy-boy", "family-woman-girl", "family-woman-girl-boy", "family-woman-girl-girl", "family-woman-woman-boy", "family-woman-woman-boy-boy", "family-woman-woman-girl", "family-woman-woman-girl-boy", "family-woman-woman-girl-girl", "farmer", "farmer-dark-skin-tone", "farmer-light-skin-tone", "farmer-medium-dark-skin-tone", "farmer-medium-light-skin-tone", "farmer-medium-skin-tone", "fast-down-button", "fast-forward-button", "fast-reverse-button", "fast-up-button", "fax-machine", "fearful-face", "feather", "female-sign", "ferris-wheel", "ferry", "field-hockey", "file-cabinet", "file-folder", "film-frames", "film-projector", "fire", "fire-engine", "fire-extinguisher", "firecracker", "firefighter", "firefighter-dark-skin-tone", "firefighter-light-skin-tone", "firefighter-medium-dark-skin-tone", "firefighter-medium-light-skin-tone", "firefighter-medium-skin-tone", "fireworks", "first-quarter-moon", "first-quarter-moon-face", "fish", "fish-cake-with-swirl", "fishing-pole", "five-oclock", "five-thirty", "flag-afghanistan", "flag-aland-islands", "flag-albania", "flag-algeria", "flag-american-samoa", "flag-andorra", "flag-angola", "flag-anguilla", "flag-antarctica", "flag-antigua-and-barbuda", "flag-argentina", "flag-armenia", "flag-aruba", "flag-ascension-island", "flag-australia", "flag-austria", "flag-azerbaijan", "flag-bahamas", "flag-bahrain", "flag-bangladesh", "flag-barbados", "flag-belarus", "flag-belgium", "flag-belize", "flag-benin", "flag-bermuda", "flag-bhutan", "flag-bolivia", "flag-bosnia-and-herzegovina", "flag-botswana", "flag-bouvet-island", "flag-brazil", "flag-british-indian-ocean-territory", "flag-british-virgin-islands", "flag-brunei", "flag-bulgaria", "flag-burkina-faso", "flag-burundi", "flag-cambodia", "flag-cameroon", "flag-canada", "flag-canary-islands", "flag-cape-verde", "flag-caribbean-netherlands", "flag-cayman-islands", "flag-central-african-republic", "flag-ceuta-and-melilla", "flag-chad", "flag-chile", "flag-china", "flag-christmas-island", "flag-clipperton-island", "flag-cocos-keeling-islands", "flag-colombia", "flag-comoros", "flag-congo-brazzaville", "flag-congo-kinshasa", "flag-cook-islands", "flag-costa-rica", "flag-cote-divoire", "flag-croatia", "flag-cuba", "flag-curacao", "flag-cyprus", "flag-czechia", "flag-denmark", "flag-diego-garcia", "flag-djibouti", "flag-dominica", "flag-dominican-republic", "flag-ecuador", "flag-egypt", "flag-el-salvador", "flag-england", "flag-equatorial-guinea", "flag-eritrea", "flag-estonia", "flag-eswatini", "flag-ethiopia", "flag-european-union", "flag-falkland-islands", "flag-faroe-islands", "flag-fiji", "flag-finland", "flag-for-flag-afghanistan", "flag-for-flag-albania", "flag-for-flag-algeria", "flag-for-flag-american-samoa", "flag-for-flag-andorra", "flag-for-flag-angola", "flag-for-flag-antigua-and-barbuda", "flag-for-flag-argentina", "flag-for-flag-aruba", "flag-for-flag-ascension-island", "flag-for-flag-australia", "flag-for-flag-azerbaijan", "flag-for-flag-bahamas", "flag-for-flag-bangladesh", "flag-for-flag-barbados", "flag-for-flag-belarus", "flag-for-flag-belize", "flag-for-flag-bermuda", "flag-for-flag-bolivia", "flag-for-flag-bosnia-and-herzegovina", "flag-for-flag-brazil", "flag-for-flag-british-indian-ocean-territory", "flag-for-flag-burkina-faso", "flag-for-flag-burundi", "flag-for-flag-canary-islands", "flag-for-flag-cape-verde", "flag-for-flag-caribbean-netherlands", "flag-for-flag-cayman-islands", "flag-for-flag-central-african-republic", "flag-for-flag-ceuta-and-melilla", "flag-for-flag-china", "flag-for-flag-christmas-island", "flag-for-flag-cocos-keeling-islands", "flag-for-flag-comoros", "flag-for-flag-cook-islands", "flag-for-flag-costa-rica", "flag-for-flag-croatia", "flag-for-flag-cuba", "flag-for-flag-cyprus", "flag-for-flag-djibouti", "flag-for-flag-dominica", "flag-for-flag-dominican-republic", "flag-for-flag-ecuador", "flag-for-flag-egypt", "flag-for-flag-el-salvador", "flag-for-flag-equatorial-guinea", "flag-for-flag-eswatini", "flag-for-flag-ethiopia", "flag-for-flag-european-union", "flag-for-flag-falkland-islands", "flag-for-flag-fiji", "flag-for-flag-french-guiana", "flag-for-flag-french-polynesia", "flag-for-flag-french-southern-territories", "flag-for-flag-ghana", "flag-for-flag-gibraltar", "flag-for-flag-greenland", "flag-for-flag-grenada", "flag-for-flag-guam", "flag-for-flag-guatemala", "flag-for-flag-guinea-bissau", "flag-for-flag-guyana", "flag-for-flag-haiti", "flag-for-flag-honduras", "flag-for-flag-hong-kong-sar-china", "flag-for-flag-india", "flag-for-flag-isle-of-man", "flag-for-flag-israel", "flag-for-flag-japan", "flag-for-flag-jersey", "flag-for-flag-jordan", "flag-for-flag-kazakhstan", "flag-for-flag-kenya", "flag-for-flag-kiribati", "flag-for-flag-kosovo", "flag-for-flag-laos", "flag-for-flag-lebanon", "flag-for-flag-liberia", "flag-for-flag-liechtenstein", "flag-for-flag-malawi", "flag-for-flag-malaysia", "flag-for-flag-malta", "flag-for-flag-marshall-islands", "flag-for-flag-mauritania", "flag-for-flag-mayotte", "flag-for-flag-mexico", "flag-for-flag-micronesia", "flag-for-flag-moldova", "flag-for-flag-montserrat", "flag-for-flag-morocco", "flag-for-flag-mozambique", "flag-for-flag-namibia", "flag-for-flag-nauru", "flag-for-flag-nepal", "flag-for-flag-new-caledonia", "flag-for-flag-new-zealand", "flag-for-flag-nicaragua", "flag-for-flag-niger", "flag-for-flag-niue", "flag-for-flag-northern-mariana-islands", "flag-for-flag-pakistan", "flag-for-flag-palau", "flag-for-flag-panama", "flag-for-flag-papua-new-guinea", "flag-for-flag-paraguay", "flag-for-flag-philippines", "flag-for-flag-pitcairn-islands", "flag-for-flag-puerto-rico", "flag-for-flag-qatar", "flag-for-flag-reunion", "flag-for-flag-rwanda", "flag-for-flag-samoa", "flag-for-flag-sao-tome-and-principe", "flag-for-flag-saudi-arabia", "flag-for-flag-seychelles", "flag-for-flag-singapore", "flag-for-flag-sint-maarten", "flag-for-flag-slovenia", "flag-for-flag-solomon-islands", "flag-for-flag-south-georgia-and-south-sandwich-islands", "flag-for-flag-south-korea", "flag-for-flag-south-sudan", "flag-for-flag-sri-lanka", "flag-for-flag-st-barthelemy", "flag-for-flag-st-helena", "flag-for-flag-st-kitts-and-nevis", "flag-for-flag-st-lucia", "flag-for-flag-st-pierre-and-miquelon", "flag-for-flag-st-vincent-and-grenadines", "flag-for-flag-syria", "flag-for-flag-taiwan", "flag-for-flag-timor-leste", "flag-for-flag-tokelau", "flag-for-flag-tristan-da-cunha", "flag-for-flag-tunisia", "flag-for-flag-turkmenistan", "flag-for-flag-tuvalu", "flag-for-flag-uganda", "flag-for-flag-united-kingdom", "flag-for-flag-united-nations", "flag-for-flag-united-states", "flag-for-flag-uruguay", "flag-for-flag-us-virgin-islands", "flag-for-flag-vanuatu", "flag-for-flag-vatican-city", "flag-for-flag-venezuela", "flag-for-flag-wallis-and-futuna", "flag-for-flag-western-sahara", "flag-for-flag-zimbabwe", "flag-france", "flag-french-guiana", "flag-french-polynesia", "flag-french-southern-territories", "flag-gabon", "flag-gambia", "flag-georgia", "flag-germany", "flag-ghana", "flag-gibraltar", "flag-greece", "flag-greenland", "flag-grenada", "flag-guadeloupe", "flag-guam", "flag-guatemala", "flag-guernsey", "flag-guinea", "flag-guinea-bissau", "flag-guyana", "flag-haiti", "flag-heard-and-mcdonald-islands", "flag-honduras", "flag-hong-kong-sar-china", "flag-hungary", "flag-iceland", "flag-in-hole", "flag-india", "flag-indonesia", "flag-iran", "flag-iraq", "flag-ireland", "flag-isle-of-man", "flag-israel", "flag-italy", "flag-jamaica", "flag-japan", "flag-jersey", "flag-jordan", "flag-kazakhstan", "flag-kenya", "flag-kiribati", "flag-kosovo", "flag-kuwait", "flag-kyrgyzstan", "flag-laos", "flag-latvia", "flag-lebanon", "flag-lesotho", "flag-liberia", "flag-libya", "flag-liechtenstein", "flag-lithuania", "flag-luxembourg", "flag-macao-sar-china", "flag-madagascar", "flag-malawi", "flag-malaysia", "flag-maldives", "flag-mali", "flag-malta", "flag-marshall-islands", "flag-martinique", "flag-mauritania", "flag-mauritius", "flag-mayotte", "flag-mexico", "flag-micronesia", "flag-moldova", "flag-monaco", "flag-mongolia", "flag-montenegro", "flag-montserrat", "flag-morocco", "flag-mozambique", "flag-myanmar-burma", "flag-namibia", "flag-nauru", "flag-nepal", "flag-netherlands", "flag-new-caledonia", "flag-new-zealand", "flag-nicaragua", "flag-niger", "flag-nigeria", "flag-niue", "flag-norfolk-island", "flag-north-korea", "flag-north-macedonia", "flag-northern-mariana-islands", "flag-norway", "flag-oman", "flag-pakistan", "flag-palau", "flag-palestinian-territories", "flag-panama", "flag-papua-new-guinea", "flag-paraguay", "flag-peru", "flag-philippines", "flag-pitcairn-islands", "flag-poland", "flag-portugal", "flag-puerto-rico", "flag-qatar", "flag-reunion", "flag-romania", "flag-russia", "flag-rwanda", "flag-samoa", "flag-san-marino", "flag-sao-tome-and-principe", "flag-saudi-arabia", "flag-scotland", "flag-senegal", "flag-serbia", "flag-seychelles", "flag-sierra-leone", "flag-singapore", "flag-sint-maarten", "flag-slovakia", "flag-slovenia", "flag-solomon-islands", "flag-somalia", "flag-south-africa", "flag-south-georgia-and-south-sandwich-islands", "flag-south-korea", "flag-south-sudan", "flag-spain", "flag-sri-lanka", "flag-st-barthelemy", "flag-st-helena", "flag-st-kitts-and-nevis", "flag-st-lucia", "flag-st-martin", "flag-st-pierre-and-miquelon", "flag-st-vincent-and-grenadines", "flag-sudan", "flag-suriname", "flag-svalbard-and-jan-mayen", "flag-sweden", "flag-switzerland", "flag-syria", "flag-taiwan", "flag-tajikistan", "flag-tanzania", "flag-thailand", "flag-timor-leste", "flag-togo", "flag-tokelau", "flag-tonga", "flag-trinidad-and-tobago", "flag-tristan-da-cunha", "flag-tunisia", "flag-turkey", "flag-turkmenistan", "flag-turks-and-caicos-islands", "flag-tuvalu", "flag-uganda", "flag-ukraine", "flag-united-arab-emirates", "flag-united-kingdom", "flag-united-nations", "flag-united-states", "flag-uruguay", "flag-us-outlying-islands", "flag-us-virgin-islands", "flag-uzbekistan", "flag-vanuatu", "flag-vatican-city", "flag-venezuela", "flag-vietnam", "flag-wales", "flag-wallis-and-futuna", "flag-western-sahara", "flag-yemen", "flag-zambia", "flag-zimbabwe", "flamingo", "flashlight", "flat-shoe", "flatbread", "fleur-de-lis", "flexed-biceps", "flexed-biceps-dark-skin-tone", "flexed-biceps-light-skin-tone", "flexed-biceps-medium-dark-skin-tone", "flexed-biceps-medium-light-skin-tone", "flexed-biceps-medium-skin-tone", "floppy-disk", "flower-playing-cards", "flushed-face", "fly", "flying-disc", "flying-saucer", "fog", "foggy", "folded-hands", "folded-hands-dark-skin-tone", "folded-hands-light-skin-tone", "folded-hands-medium-dark-skin-tone", "folded-hands-medium-light-skin-tone", "folded-hands-medium-skin-tone", "fondue", "foot", "foot-dark-skin-tone", "foot-light-skin-tone", "foot-medium-dark-skin-tone", "foot-medium-light-skin-tone", "foot-medium-skin-tone", "footprints", "fork-and-knife", "fork-and-knife-with-plate", "fortune-cookie", "fountain", "fountain-pen", "four-leaf-clover", "four-oclock", "four-thirty", "fox", "framed-picture", "free-button", "french-fries", "fried-shrimp", "frog", "front-facing-baby-chick", "frowning-face", "frowning-face-with-open-mouth", "fuel-pump", "full-moon", "full-moon-face", "funeral-urn", "game-die", "garlic", "gear", "gem-stone", "gemini", "genie", "ghost", "giraffe", "girl", "girl-dark-skin-tone", "girl-light-skin-tone", "girl-medium-dark-skin-tone", "girl-medium-light-skin-tone", "girl-medium-skin-tone", "glass-of-milk", "glasses", "globe-showing-americas", "globe-showing-asia-australia", "globe-showing-europe-africa", "globe-with-meridians", "gloves", "glowing-star", "goal-net", "goat", "goblin", "goggles", "gorilla", "graduation-cap", "grapes", "green-apple", "green-book", "green-circle", "green-heart", "green-salad", "green-square", "grimacing-face", "grinning-cat", "grinning-cat-with-smiling-eyes", "grinning-face", "grinning-face-with-big-eyes", "grinning-face-with-smiling-eyes", "grinning-face-with-sweat", "grinning-squinting-face", "growing-heart", "guard", "guard-dark-skin-tone", "guard-light-skin-tone", "guard-medium-dark-skin-tone", "guard-medium-light-skin-tone", "guard-medium-skin-tone", "guide-dog", "guitar", "hamburger", "hammer", "hammer-and-pick", "hammer-and-wrench", "hamsa", "hamster", "hand-with-fingers-splayed", "hand-with-fingers-splayed-dark-skin-tone", "hand-with-fingers-splayed-light-skin-tone", "hand-with-fingers-splayed-medium-dark-skin-tone", "hand-with-fingers-splayed-medium-light-skin-tone", "hand-with-fingers-splayed-medium-skin-tone", "hand-with-index-finger-and-thumb-crossed", "hand-with-index-finger-and-thumb-crossed-dark-skin-tone", "hand-with-index-finger-and-thumb-crossed-light-skin-tone", "hand-with-index-finger-and-thumb-crossed-medium-dark-skin-tone", "hand-with-index-finger-and-thumb-crossed-medium-light-skin-tone", "hand-with-index-finger-and-thumb-crossed-medium-skin-tone", "handbag", "handshake", "handshake-dark-skin-tone", "handshake-dark-skin-tone-light-skin-tone", "handshake-dark-skin-tone-medium-dark-skin-tone", "handshake-dark-skin-tone-medium-light-skin-tone", "handshake-dark-skin-tone-medium-skin-tone", "handshake-light-skin-tone", "handshake-light-skin-tone-dark-skin-tone", "handshake-light-skin-tone-medium-dark-skin-tone", "handshake-light-skin-tone-medium-light-skin-tone", "handshake-light-skin-tone-medium-skin-tone", "handshake-medium-dark-skin-tone", "handshake-medium-dark-skin-tone-dark-skin-tone", "handshake-medium-dark-skin-tone-light-skin-tone", "handshake-medium-dark-skin-tone-medium-light-skin-tone", "handshake-medium-dark-skin-tone-medium-skin-tone", "handshake-medium-light-skin-tone", "handshake-medium-light-skin-tone-dark-skin-tone", "handshake-medium-light-skin-tone-light-skin-tone", "handshake-medium-light-skin-tone-medium-dark-skin-tone", "handshake-medium-light-skin-tone-medium-skin-tone", "handshake-medium-skin-tone", "handshake-medium-skin-tone-dark-skin-tone", "handshake-medium-skin-tone-light-skin-tone", "handshake-medium-skin-tone-medium-dark-skin-tone", "handshake-medium-skin-tone-medium-light-skin-tone", "hatching-chick", "headphone", "headstone", "health-worker", "health-worker-dark-skin-tone", "health-worker-light-skin-tone", "health-worker-medium-dark-skin-tone", "health-worker-medium-light-skin-tone", "health-worker-medium-skin-tone", "hear-no-evil-monkey", "heart-decoration", "heart-exclamation", "heart-hands", "heart-hands-dark-skin-tone", "heart-hands-light-skin-tone", "heart-hands-medium-dark-skin-tone", "heart-hands-medium-light-skin-tone", "heart-hands-medium-skin-tone", "heart-on-fire", "heart-suit", "heart-with-arrow", "heart-with-ribbon", "heavy-dollar-sign", "heavy-equals-sign", "hedgehog", "helicopter", "herb", "hibiscus", "high-heeled-shoe", "high-speed-train", "high-voltage", "hiking-boot", "hindu-temple", "hippopotamus", "hole", "hollow-red-circle", "honey-pot", "honeybee", "hook", "horizontal-traffic-light", "horse", "horse-face", "horse-racing", "horse-racing-dark-skin-tone", "horse-racing-light-skin-tone", "horse-racing-medium-dark-skin-tone", "horse-racing-medium-light-skin-tone", "horse-racing-medium-skin-tone", "hospital", "hot-beverage", "hot-dog", "hot-face", "hot-pepper", "hot-springs", "hotel", "hourglass-done", "hourglass-not-done", "house", "house-with-garden", "houses", "hugging-face", "hundred-points", "hushed-face", "hut", "ice", "ice-cream", "ice-hockey", "ice-skate", "id-button", "identification-card", "inbox-tray", "incoming-envelope", "index-pointing-at-the-viewer", "index-pointing-at-the-viewer-dark-skin-tone", "index-pointing-at-the-viewer-light-skin-tone", "index-pointing-at-the-viewer-medium-dark-skin-tone", "index-pointing-at-the-viewer-medium-light-skin-tone", "index-pointing-at-the-viewer-medium-skin-tone", "index-pointing-up", "index-pointing-up-dark-skin-tone", "index-pointing-up-light-skin-tone", "index-pointing-up-medium-dark-skin-tone", "index-pointing-up-medium-light-skin-tone", "index-pointing-up-medium-skin-tone", "infinity", "information", "input-latin-letters", "input-latin-lowercase", "input-latin-uppercase", "input-numbers", "input-symbols", "jack-o-lantern", "japanese-acceptable-button", "japanese-application-button", "japanese-bargain-button", "japanese-castle", "japanese-congratulations-button", "japanese-discount-button", "japanese-dolls", "japanese-free-of-charge-button", "japanese-here-button", "japanese-monthly-amount-button", "japanese-no-vacancy-button", "japanese-not-free-of-charge-button", "japanese-open-for-business-button", "japanese-passing-grade-button", "japanese-post-office", "japanese-prohibited-button", "japanese-reserved-button", "japanese-secret-button", "japanese-service-charge-button", "japanese-symbol-for-beginner", "japanese-vacancy-button", "jar", "jeans", "joker", "joystick", "judge", "judge-dark-skin-tone", "judge-light-skin-tone", "judge-medium-dark-skin-tone", "judge-medium-light-skin-tone", "judge-medium-skin-tone", "kaaba", "kangaroo", "key", "keyboard", "keycap-0", "keycap-1", "keycap-10", "keycap-2", "keycap-3", "keycap-4", "keycap-5", "keycap-6", "keycap-7", "keycap-8", "keycap-9", "keycap-asterisk", "keycap-pound", "kick-scooter", "kimono", "kiss", "kiss-dark-skin-tone", "kiss-light-skin-tone", "kiss-man-man", "kiss-man-man-dark-skin-tone", "kiss-man-man-dark-skin-tone-light-skin-tone", "kiss-man-man-dark-skin-tone-medium-dark-skin-tone", "kiss-man-man-dark-skin-tone-medium-light-skin-tone", "kiss-man-man-dark-skin-tone-medium-skin-tone", "kiss-man-man-light-skin-tone", "kiss-man-man-light-skin-tone-dark-skin-tone", "kiss-man-man-light-skin-tone-medium-dark-skin-tone", "kiss-man-man-light-skin-tone-medium-light-skin-tone", "kiss-man-man-light-skin-tone-medium-skin-tone", "kiss-man-man-medium-dark-skin-tone", "kiss-man-man-medium-dark-skin-tone-dark-skin-tone", "kiss-man-man-medium-dark-skin-tone-light-skin-tone", "kiss-man-man-medium-dark-skin-tone-medium-light-skin-tone", "kiss-man-man-medium-dark-skin-tone-medium-skin-tone", "kiss-man-man-medium-light-skin-tone", "kiss-man-man-medium-light-skin-tone-dark-skin-tone", "kiss-man-man-medium-light-skin-tone-light-skin-tone", "kiss-man-man-medium-light-skin-tone-medium-dark-skin-tone", "kiss-man-man-medium-light-skin-tone-medium-skin-tone", "kiss-man-man-medium-skin-tone", "kiss-man-man-medium-skin-tone-dark-skin-tone", "kiss-man-man-medium-skin-tone-light-skin-tone", "kiss-man-man-medium-skin-tone-medium-dark-skin-tone", "kiss-man-man-medium-skin-tone-medium-light-skin-tone", "kiss-mark", "kiss-medium-dark-skin-tone", "kiss-medium-light-skin-tone", "kiss-medium-skin-tone", "kiss-person-person-dark-skin-tone-light-skin-tone", "kiss-person-person-dark-skin-tone-medium-dark-skin-tone", "kiss-person-person-dark-skin-tone-medium-light-skin-tone", "kiss-person-person-dark-skin-tone-medium-skin-tone", "kiss-person-person-light-skin-tone-dark-skin-tone", "kiss-person-person-light-skin-tone-medium-dark-skin-tone", "kiss-person-person-light-skin-tone-medium-light-skin-tone", "kiss-person-person-light-skin-tone-medium-skin-tone", "kiss-person-person-medium-dark-skin-tone-dark-skin-tone", "kiss-person-person-medium-dark-skin-tone-light-skin-tone", "kiss-person-person-medium-dark-skin-tone-medium-light-skin-tone", "kiss-person-person-medium-dark-skin-tone-medium-skin-tone", "kiss-person-person-medium-light-skin-tone-dark-skin-tone", "kiss-person-person-medium-light-skin-tone-light-skin-tone", "kiss-person-person-medium-light-skin-tone-medium-dark-skin-tone", "kiss-person-person-medium-light-skin-tone-medium-skin-tone", "kiss-person-person-medium-skin-tone-dark-skin-tone", "kiss-person-person-medium-skin-tone-light-skin-tone", "kiss-person-person-medium-skin-tone-medium-dark-skin-tone", "kiss-person-person-medium-skin-tone-medium-light-skin-tone", "kiss-woman-man", "kiss-woman-man-dark-skin-tone", "kiss-woman-man-dark-skin-tone-light-skin-tone", "kiss-woman-man-dark-skin-tone-medium-dark-skin-tone", "kiss-woman-man-dark-skin-tone-medium-light-skin-tone", "kiss-woman-man-dark-skin-tone-medium-skin-tone", "kiss-woman-man-light-skin-tone", "kiss-woman-man-light-skin-tone-dark-skin-tone", "kiss-woman-man-light-skin-tone-medium-dark-skin-tone", "kiss-woman-man-light-skin-tone-medium-light-skin-tone", "kiss-woman-man-light-skin-tone-medium-skin-tone", "kiss-woman-man-medium-dark-skin-tone", "kiss-woman-man-medium-dark-skin-tone-dark-skin-tone", "kiss-woman-man-medium-dark-skin-tone-light-skin-tone", "kiss-woman-man-medium-dark-skin-tone-medium-light-skin-tone", "kiss-woman-man-medium-dark-skin-tone-medium-skin-tone", "kiss-woman-man-medium-light-skin-tone", "kiss-woman-man-medium-light-skin-tone-dark-skin-tone", "kiss-woman-man-medium-light-skin-tone-light-skin-tone", "kiss-woman-man-medium-light-skin-tone-medium-dark-skin-tone", "kiss-woman-man-medium-light-skin-tone-medium-skin-tone", "kiss-woman-man-medium-skin-tone", "kiss-woman-man-medium-skin-tone-dark-skin-tone", "kiss-woman-man-medium-skin-tone-light-skin-tone", "kiss-woman-man-medium-skin-tone-medium-dark-skin-tone", "kiss-woman-man-medium-skin-tone-medium-light-skin-tone", "kiss-woman-woman", "kiss-woman-woman-dark-skin-tone", "kiss-woman-woman-dark-skin-tone-light-skin-tone", "kiss-woman-woman-dark-skin-tone-medium-dark-skin-tone", "kiss-woman-woman-dark-skin-tone-medium-light-skin-tone", "kiss-woman-woman-dark-skin-tone-medium-skin-tone", "kiss-woman-woman-light-skin-tone", "kiss-woman-woman-light-skin-tone-dark-skin-tone", "kiss-woman-woman-light-skin-tone-medium-dark-skin-tone", "kiss-woman-woman-light-skin-tone-medium-light-skin-tone", "kiss-woman-woman-light-skin-tone-medium-skin-tone", "kiss-woman-woman-medium-dark-skin-tone", "kiss-woman-woman-medium-dark-skin-tone-dark-skin-tone", "kiss-woman-woman-medium-dark-skin-tone-light-skin-tone", "kiss-woman-woman-medium-dark-skin-tone-medium-light-skin-tone", "kiss-woman-woman-medium-dark-skin-tone-medium-skin-tone", "kiss-woman-woman-medium-light-skin-tone", "kiss-woman-woman-medium-light-skin-tone-dark-skin-tone", "kiss-woman-woman-medium-light-skin-tone-light-skin-tone", "kiss-woman-woman-medium-light-skin-tone-medium-dark-skin-tone", "kiss-woman-woman-medium-light-skin-tone-medium-skin-tone", "kiss-woman-woman-medium-skin-tone", "kiss-woman-woman-medium-skin-tone-dark-skin-tone", "kiss-woman-woman-medium-skin-tone-light-skin-tone", "kiss-woman-woman-medium-skin-tone-medium-dark-skin-tone", "kiss-woman-woman-medium-skin-tone-medium-light-skin-tone", "kissing-cat", "kissing-face", "kissing-face-with-closed-eyes", "kissing-face-with-smiling-eyes", "kitchen-knife", "kite", "kiwi-fruit", "knocked-out-face", "knot", "koala", "lab-coat", "label", "lacrosse", "ladder", "lady-beetle", "laptop", "large-blue-diamond", "large-orange-diamond", "last-quarter-moon", "last-quarter-moon-face", "last-track-button", "latin-cross", "leaf-fluttering-in-wind", "leafy-green", "ledger", "left-arrow", "left-arrow-curving-right", "left-facing-fist", "left-facing-fist-dark-skin-tone", "left-facing-fist-light-skin-tone", "left-facing-fist-medium-dark-skin-tone", "left-facing-fist-medium-light-skin-tone", "left-facing-fist-medium-skin-tone", "left-luggage", "left-right-arrow", "left-speech-bubble", "leftwards-hand", "leftwards-hand-dark-skin-tone", "leftwards-hand-light-skin-tone", "leftwards-hand-medium-dark-skin-tone", "leftwards-hand-medium-light-skin-tone", "leftwards-hand-medium-skin-tone", "leg", "leg-dark-skin-tone", "leg-light-skin-tone", "leg-medium-dark-skin-tone", "leg-medium-light-skin-tone", "leg-medium-skin-tone", "lemon", "leo", "leopard", "letter-a", "letter-b", "letter-c", "letter-d", "letter-e", "letter-f", "letter-g", "letter-h", "letter-i", "letter-j", "letter-k", "letter-l", "letter-m", "letter-n", "letter-o", "letter-p", "letter-q", "letter-r", "letter-s", "letter-t", "letter-u", "letter-v", "letter-w", "letter-x", "letter-y", "letter-z", "level-slider", "libra", "light-bulb", "light-rail", "light-skin-tone", "link", "linked-paperclips", "lion", "lipstick", "litter-in-bin-sign", "lizard", "llama", "lobster", "locked", "locked-with-key", "locked-with-pen", "locomotive", "lollipop", "long-drum", "lotion-bottle", "lotus", "loudly-crying-face", "loudspeaker", "love-hotel", "love-letter", "love-you-gesture", "love-you-gesture-dark-skin-tone", "love-you-gesture-light-skin-tone", "love-you-gesture-medium-dark-skin-tone", "love-you-gesture-medium-light-skin-tone", "love-you-gesture-medium-skin-tone", "low-battery", "luggage", "lungs", "lying-face", "mage", "mage-dark-skin-tone", "mage-light-skin-tone", "mage-medium-dark-skin-tone", "mage-medium-light-skin-tone", "mage-medium-skin-tone", "magic-wand", "magnet", "magnifying-glass-tilted-left", "magnifying-glass-tilted-right", "mahjong-red-dragon", "male-sign", "mammoth", "man", "man-and-woman-holding-hands", "man-artist", "man-artist-dark-skin-tone", "man-artist-light-skin-tone", "man-artist-medium-dark-skin-tone", "man-artist-medium-light-skin-tone", "man-artist-medium-skin-tone", "man-astronaut", "man-astronaut-dark-skin-tone", "man-astronaut-light-skin-tone", "man-astronaut-medium-dark-skin-tone", "man-astronaut-medium-light-skin-tone", "man-astronaut-medium-skin-tone", "man-bald", "man-beard", "man-biking", "man-biking-dark-skin-tone", "man-biking-light-skin-tone", "man-biking-medium-dark-skin-tone", "man-biking-medium-light-skin-tone", "man-biking-medium-skin-tone", "man-blond-hair", "man-bouncing-ball", "man-bouncing-ball-dark-skin-tone", "man-bouncing-ball-light-skin-tone", "man-bouncing-ball-medium-dark-skin-tone", "man-bouncing-ball-medium-light-skin-tone", "man-bouncing-ball-medium-skin-tone", "man-bowing", "man-bowing-dark-skin-tone", "man-bowing-light-skin-tone", "man-bowing-medium-dark-skin-tone", "man-bowing-medium-light-skin-tone", "man-bowing-medium-skin-tone", "man-cartwheeling", "man-cartwheeling-dark-skin-tone", "man-cartwheeling-light-skin-tone", "man-cartwheeling-medium-dark-skin-tone", "man-cartwheeling-medium-light-skin-tone", "man-cartwheeling-medium-skin-tone", "man-climbing", "man-climbing-dark-skin-tone", "man-climbing-light-skin-tone", "man-climbing-medium-dark-skin-tone", "man-climbing-medium-light-skin-tone", "man-climbing-medium-skin-tone", "man-construction-worker", "man-construction-worker-dark-skin-tone", "man-construction-worker-light-skin-tone", "man-construction-worker-medium-dark-skin-tone", "man-construction-worker-medium-light-skin-tone", "man-construction-worker-medium-skin-tone", "man-cook", "man-cook-dark-skin-tone", "man-cook-light-skin-tone", "man-cook-medium-dark-skin-tone", "man-cook-medium-light-skin-tone", "man-cook-medium-skin-tone", "man-curly-hair", "man-dancing", "man-dancing-dark-skin-tone", "man-dancing-light-skin-tone", "man-dancing-medium-dark-skin-tone", "man-dancing-medium-light-skin-tone", "man-dancing-medium-skin-tone", "man-dark-skin-tone", "man-dark-skin-tone-bald", "man-dark-skin-tone-beard", "man-dark-skin-tone-blond-hair", "man-dark-skin-tone-curly-hair", "man-dark-skin-tone-red-hair", "man-dark-skin-tone-white-hair", "man-detective", "man-detective-dark-skin-tone", "man-detective-light-skin-tone", "man-detective-medium-dark-skin-tone", "man-detective-medium-light-skin-tone", "man-detective-medium-skin-tone", "man-elf", "man-elf-dark-skin-tone", "man-elf-light-skin-tone", "man-elf-medium-dark-skin-tone", "man-elf-medium-light-skin-tone", "man-elf-medium-skin-tone", "man-facepalming", "man-facepalming-dark-skin-tone", "man-facepalming-light-skin-tone", "man-facepalming-medium-dark-skin-tone", "man-facepalming-medium-light-skin-tone", "man-facepalming-medium-skin-tone", "man-factory-worker", "man-factory-worker-dark-skin-tone", "man-factory-worker-light-skin-tone", "man-factory-worker-medium-dark-skin-tone", "man-factory-worker-medium-light-skin-tone", "man-factory-worker-medium-skin-tone", "man-fairy", "man-fairy-dark-skin-tone", "man-fairy-light-skin-tone", "man-fairy-medium-dark-skin-tone", "man-fairy-medium-light-skin-tone", "man-fairy-medium-skin-tone", "man-farmer", "man-farmer-dark-skin-tone", "man-farmer-light-skin-tone", "man-farmer-medium-dark-skin-tone", "man-farmer-medium-light-skin-tone", "man-farmer-medium-skin-tone", "man-feeding-baby", "man-feeding-baby-dark-skin-tone", "man-feeding-baby-light-skin-tone", "man-feeding-baby-medium-dark-skin-tone", "man-feeding-baby-medium-light-skin-tone", "man-feeding-baby-medium-skin-tone", "man-firefighter", "man-firefighter-dark-skin-tone", "man-firefighter-light-skin-tone", "man-firefighter-medium-dark-skin-tone", "man-firefighter-medium-light-skin-tone", "man-firefighter-medium-skin-tone", "man-frowning", "man-frowning-dark-skin-tone", "man-frowning-light-skin-tone", "man-frowning-medium-dark-skin-tone", "man-frowning-medium-light-skin-tone", "man-frowning-medium-skin-tone", "man-genie", "man-gesturing-no", "man-gesturing-no-dark-skin-tone", "man-gesturing-no-light-skin-tone", "man-gesturing-no-medium-dark-skin-tone", "man-gesturing-no-medium-light-skin-tone", "man-gesturing-no-medium-skin-tone", "man-gesturing-ok", "man-gesturing-ok-dark-skin-tone", "man-gesturing-ok-light-skin-tone", "man-gesturing-ok-medium-dark-skin-tone", "man-gesturing-ok-medium-light-skin-tone", "man-gesturing-ok-medium-skin-tone", "man-getting-haircut", "man-getting-haircut-dark-skin-tone", "man-getting-haircut-light-skin-tone", "man-getting-haircut-medium-dark-skin-tone", "man-getting-haircut-medium-light-skin-tone", "man-getting-haircut-medium-skin-tone", "man-getting-massage", "man-getting-massage-dark-skin-tone", "man-getting-massage-light-skin-tone", "man-getting-massage-medium-dark-skin-tone", "man-getting-massage-medium-light-skin-tone", "man-getting-massage-medium-skin-tone", "man-golfing", "man-golfing-dark-skin-tone", "man-golfing-light-skin-tone", "man-golfing-medium-dark-skin-tone", "man-golfing-medium-light-skin-tone", "man-golfing-medium-skin-tone", "man-guard", "man-guard-dark-skin-tone", "man-guard-light-skin-tone", "man-guard-medium-dark-skin-tone", "man-guard-medium-light-skin-tone", "man-guard-medium-skin-tone", "man-health-worker", "man-health-worker-dark-skin-tone", "man-health-worker-light-skin-tone", "man-health-worker-medium-dark-skin-tone", "man-health-worker-medium-light-skin-tone", "man-health-worker-medium-skin-tone", "man-in-lotus-position", "man-in-lotus-position-dark-skin-tone", "man-in-lotus-position-light-skin-tone", "man-in-lotus-position-medium-dark-skin-tone", "man-in-lotus-position-medium-light-skin-tone", "man-in-lotus-position-medium-skin-tone", "man-in-manual-wheelchair", "man-in-manual-wheelchair-dark-skin-tone", "man-in-manual-wheelchair-light-skin-tone", "man-in-manual-wheelchair-medium-dark-skin-tone", "man-in-manual-wheelchair-medium-light-skin-tone", "man-in-manual-wheelchair-medium-skin-tone", "man-in-motorized-wheelchair", "man-in-motorized-wheelchair-dark-skin-tone", "man-in-motorized-wheelchair-light-skin-tone", "man-in-motorized-wheelchair-medium-dark-skin-tone", "man-in-motorized-wheelchair-medium-light-skin-tone", "man-in-motorized-wheelchair-medium-skin-tone", "man-in-steamy-room", "man-in-steamy-room-dark-skin-tone", "man-in-steamy-room-light-skin-tone", "man-in-steamy-room-medium-dark-skin-tone", "man-in-steamy-room-medium-light-skin-tone", "man-in-steamy-room-medium-skin-tone", "man-in-suit-levitating", "man-in-suit-levitating-dark-skin-tone", "man-in-suit-levitating-light-skin-tone", "man-in-suit-levitating-medium-dark-skin-tone", "man-in-suit-levitating-medium-light-skin-tone", "man-in-suit-levitating-medium-skin-tone", "man-in-tuxedo", "man-in-tuxedo-dark-skin-tone", "man-in-tuxedo-light-skin-tone", "man-in-tuxedo-medium-dark-skin-tone", "man-in-tuxedo-medium-light-skin-tone", "man-in-tuxedo-medium-skin-tone", "man-judge", "man-judge-dark-skin-tone", "man-judge-light-skin-tone", "man-judge-medium-dark-skin-tone", "man-judge-medium-light-skin-tone", "man-judge-medium-skin-tone", "man-juggling", "man-juggling-dark-skin-tone", "man-juggling-light-skin-tone", "man-juggling-medium-dark-skin-tone", "man-juggling-medium-light-skin-tone", "man-juggling-medium-skin-tone", "man-kneeling", "man-kneeling-dark-skin-tone", "man-kneeling-light-skin-tone", "man-kneeling-medium-dark-skin-tone", "man-kneeling-medium-light-skin-tone", "man-kneeling-medium-skin-tone", "man-lifting-weights", "man-lifting-weights-dark-skin-tone", "man-lifting-weights-light-skin-tone", "man-lifting-weights-medium-dark-skin-tone", "man-lifting-weights-medium-light-skin-tone", "man-lifting-weights-medium-skin-tone", "man-light-skin-tone", "man-light-skin-tone-bald", "man-light-skin-tone-beard", "man-light-skin-tone-blond-hair", "man-light-skin-tone-curly-hair", "man-light-skin-tone-red-hair", "man-light-skin-tone-white-hair", "man-mage", "man-mage-dark-skin-tone", "man-mage-light-skin-tone", "man-mage-medium-dark-skin-tone", "man-mage-medium-light-skin-tone", "man-mage-medium-skin-tone", "man-mechanic", "man-mechanic-dark-skin-tone", "man-mechanic-light-skin-tone", "man-mechanic-medium-dark-skin-tone", "man-mechanic-medium-light-skin-tone", "man-mechanic-medium-skin-tone", "man-medium-dark-skin-tone", "man-medium-dark-skin-tone-bald", "man-medium-dark-skin-tone-beard", "man-medium-dark-skin-tone-blond-hair", "man-medium-dark-skin-tone-curly-hair", "man-medium-dark-skin-tone-red-hair", "man-medium-dark-skin-tone-white-hair", "man-medium-light-skin-tone", "man-medium-light-skin-tone-bald", "man-medium-light-skin-tone-beard", "man-medium-light-skin-tone-blond-hair", "man-medium-light-skin-tone-curly-hair", "man-medium-light-skin-tone-red-hair", "man-medium-light-skin-tone-white-hair", "man-medium-skin-tone", "man-medium-skin-tone-bald", "man-medium-skin-tone-beard", "man-medium-skin-tone-blond-hair", "man-medium-skin-tone-curly-hair", "man-medium-skin-tone-red-hair", "man-medium-skin-tone-white-hair", "man-mountain-biking", "man-mountain-biking-dark-skin-tone", "man-mountain-biking-light-skin-tone", "man-mountain-biking-medium-dark-skin-tone", "man-mountain-biking-medium-light-skin-tone", "man-mountain-biking-medium-skin-tone", "man-office-worker", "man-office-worker-dark-skin-tone", "man-office-worker-light-skin-tone", "man-office-worker-medium-dark-skin-tone", "man-office-worker-medium-light-skin-tone", "man-office-worker-medium-skin-tone", "man-pilot", "man-pilot-dark-skin-tone", "man-pilot-light-skin-tone", "man-pilot-medium-dark-skin-tone", "man-pilot-medium-light-skin-tone", "man-pilot-medium-skin-tone", "man-playing-handball", "man-playing-handball-dark-skin-tone", "man-playing-handball-light-skin-tone", "man-playing-handball-medium-dark-skin-tone", "man-playing-handball-medium-light-skin-tone", "man-playing-handball-medium-skin-tone", "man-playing-water-polo", "man-playing-water-polo-dark-skin-tone", "man-playing-water-polo-light-skin-tone", "man-playing-water-polo-medium-dark-skin-tone", "man-playing-water-polo-medium-light-skin-tone", "man-playing-water-polo-medium-skin-tone", "man-police-officer", "man-police-officer-dark-skin-tone", "man-police-officer-light-skin-tone", "man-police-officer-medium-dark-skin-tone", "man-police-officer-medium-light-skin-tone", "man-police-officer-medium-skin-tone", "man-pouting", "man-pouting-dark-skin-tone", "man-pouting-light-skin-tone", "man-pouting-medium-dark-skin-tone", "man-pouting-medium-light-skin-tone", "man-pouting-medium-skin-tone", "man-raising-hand", "man-raising-hand-dark-skin-tone", "man-raising-hand-light-skin-tone", "man-raising-hand-medium-dark-skin-tone", "man-raising-hand-medium-light-skin-tone", "man-raising-hand-medium-skin-tone", "man-red-hair", "man-rowing-boat", "man-rowing-boat-dark-skin-tone", "man-rowing-boat-light-skin-tone", "man-rowing-boat-medium-dark-skin-tone", "man-rowing-boat-medium-light-skin-tone", "man-rowing-boat-medium-skin-tone", "man-running", "man-running-dark-skin-tone", "man-running-light-skin-tone", "man-running-medium-dark-skin-tone", "man-running-medium-light-skin-tone", "man-running-medium-skin-tone", "man-scientist", "man-scientist-dark-skin-tone", "man-scientist-light-skin-tone", "man-scientist-medium-dark-skin-tone", "man-scientist-medium-light-skin-tone", "man-scientist-medium-skin-tone", "man-shrugging", "man-shrugging-dark-skin-tone", "man-shrugging-light-skin-tone", "man-shrugging-medium-dark-skin-tone", "man-shrugging-medium-light-skin-tone", "man-shrugging-medium-skin-tone", "man-singer", "man-singer-dark-skin-tone", "man-singer-light-skin-tone", "man-singer-medium-dark-skin-tone", "man-singer-medium-light-skin-tone", "man-singer-medium-skin-tone", "man-standing", "man-standing-dark-skin-tone", "man-standing-light-skin-tone", "man-standing-medium-dark-skin-tone", "man-standing-medium-light-skin-tone", "man-standing-medium-skin-tone", "man-student", "man-student-dark-skin-tone", "man-student-light-skin-tone", "man-student-medium-dark-skin-tone", "man-student-medium-light-skin-tone", "man-student-medium-skin-tone", "man-superhero", "man-superhero-dark-skin-tone", "man-superhero-light-skin-tone", "man-superhero-medium-dark-skin-tone", "man-superhero-medium-light-skin-tone", "man-superhero-medium-skin-tone", "man-supervillain", "man-supervillain-dark-skin-tone", "man-supervillain-light-skin-tone", "man-supervillain-medium-dark-skin-tone", "man-supervillain-medium-light-skin-tone", "man-supervillain-medium-skin-tone", "man-surfing", "man-surfing-dark-skin-tone", "man-surfing-light-skin-tone", "man-surfing-medium-dark-skin-tone", "man-surfing-medium-light-skin-tone", "man-surfing-medium-skin-tone", "man-swimming", "man-swimming-dark-skin-tone", "man-swimming-light-skin-tone", "man-swimming-medium-dark-skin-tone", "man-swimming-medium-light-skin-tone", "man-swimming-medium-skin-tone", "man-teacher", "man-teacher-dark-skin-tone", "man-teacher-light-skin-tone", "man-teacher-medium-dark-skin-tone", "man-teacher-medium-light-skin-tone", "man-teacher-medium-skin-tone", "man-technologist", "man-technologist-dark-skin-tone", "man-technologist-light-skin-tone", "man-technologist-medium-dark-skin-tone", "man-technologist-medium-light-skin-tone", "man-technologist-medium-skin-tone", "man-tipping-hand", "man-tipping-hand-dark-skin-tone", "man-tipping-hand-light-skin-tone", "man-tipping-hand-medium-dark-skin-tone", "man-tipping-hand-medium-light-skin-tone", "man-tipping-hand-medium-skin-tone", "man-vampire", "man-vampire-dark-skin-tone", "man-vampire-light-skin-tone", "man-vampire-medium-dark-skin-tone", "man-vampire-medium-light-skin-tone", "man-vampire-medium-skin-tone", "man-walking", "man-walking-dark-skin-tone", "man-walking-light-skin-tone", "man-walking-medium-dark-skin-tone", "man-walking-medium-light-skin-tone", "man-walking-medium-skin-tone", "man-wearing-turban", "man-wearing-turban-dark-skin-tone", "man-wearing-turban-light-skin-tone", "man-wearing-turban-medium-dark-skin-tone", "man-wearing-turban-medium-light-skin-tone", "man-wearing-turban-medium-skin-tone", "man-white-hair", "man-with-veil", "man-with-veil-dark-skin-tone", "man-with-veil-light-skin-tone", "man-with-veil-medium-dark-skin-tone", "man-with-veil-medium-light-skin-tone", "man-with-veil-medium-skin-tone", "man-with-white-cane", "man-with-white-cane-dark-skin-tone", "man-with-white-cane-light-skin-tone", "man-with-white-cane-medium-dark-skin-tone", "man-with-white-cane-medium-light-skin-tone", "man-with-white-cane-medium-skin-tone", "man-zombie", "mango", "mans-shoe", "mantelpiece-clock", "manual-wheelchair", "map-of-japan", "maple-leaf", "martial-arts-uniform", "mate", "meat-on-bone", "mechanic", "mechanic-dark-skin-tone", "mechanic-light-skin-tone", "mechanic-medium-dark-skin-tone", "mechanic-medium-light-skin-tone", "mechanic-medium-skin-tone", "mechanical-arm", "mechanical-leg", "medical-symbol", "medium-dark-skin-tone", "medium-light-skin-tone", "medium-skin-tone", "megaphone", "melon", "melting-face", "memo", "men-holding-hands", "men-holding-hands-dark-skin-tone", "men-holding-hands-dark-skin-tone-light-skin-tone", "men-holding-hands-dark-skin-tone-medium-dark-skin-tone", "men-holding-hands-dark-skin-tone-medium-light-skin-tone", "men-holding-hands-dark-skin-tone-medium-skin-tone", "men-holding-hands-light-skin-tone", "men-holding-hands-light-skin-tone-dark-skin-tone", "men-holding-hands-light-skin-tone-medium-dark-skin-tone", "men-holding-hands-light-skin-tone-medium-light-skin-tone", "men-holding-hands-light-skin-tone-medium-skin-tone", "men-holding-hands-medium-dark-skin-tone", "men-holding-hands-medium-dark-skin-tone-dark-skin-tone", "men-holding-hands-medium-dark-skin-tone-light-skin-tone", "men-holding-hands-medium-dark-skin-tone-medium-light-skin-tone", "men-holding-hands-medium-dark-skin-tone-medium-skin-tone", "men-holding-hands-medium-light-skin-tone", "men-holding-hands-medium-light-skin-tone-dark-skin-tone", "men-holding-hands-medium-light-skin-tone-light-skin-tone", "men-holding-hands-medium-light-skin-tone-medium-dark-skin-tone", "men-holding-hands-medium-light-skin-tone-medium-skin-tone", "men-holding-hands-medium-skin-tone", "men-holding-hands-medium-skin-tone-dark-skin-tone", "men-holding-hands-medium-skin-tone-light-skin-tone", "men-holding-hands-medium-skin-tone-medium-dark-skin-tone", "men-holding-hands-medium-skin-tone-medium-light-skin-tone", "men-with-bunny-ears", "men-wrestling", "mending-heart", "menorah", "mens-room", "mermaid", "mermaid-dark-skin-tone", "mermaid-light-skin-tone", "mermaid-medium-dark-skin-tone", "mermaid-medium-light-skin-tone", "mermaid-medium-skin-tone", "merman", "merman-dark-skin-tone", "merman-light-skin-tone", "merman-medium-dark-skin-tone", "merman-medium-light-skin-tone", "merman-medium-skin-tone", "merperson", "merperson-dark-skin-tone", "merperson-light-skin-tone", "merperson-medium-dark-skin-tone", "merperson-medium-light-skin-tone", "merperson-medium-skin-tone", "metro", "microbe", "microphone", "microscope", "middle-finger", "middle-finger-dark-skin-tone", "middle-finger-light-skin-tone", "middle-finger-medium-dark-skin-tone", "middle-finger-medium-light-skin-tone", "middle-finger-medium-skin-tone", "military-helmet", "military-medal", "milky-way", "minibus", "minus", "mirror", "mirror-ball", "moai", "mobile-phone", "mobile-phone-off", "mobile-phone-with-arrow", "money-bag", "money-mouth-face", "money-with-wings", "monkey", "monkey-face", "monorail", "moon-cake", "moon-viewing-ceremony", "mosque", "mosquito", "motor-boat", "motor-scooter", "motorcycle", "motorized-wheelchair", "motorway", "mount-fuji", "mountain", "mountain-cableway", "mountain-railway", "mouse", "mouse-face", "mouse-trap", "mouth", "movie-camera", "mrs-claus", "mrs-claus-dark-skin-tone", "mrs-claus-light-skin-tone", "mrs-claus-medium-dark-skin-tone", "mrs-claus-medium-light-skin-tone", "mrs-claus-medium-skin-tone", "multiply", "mushroom", "musical-keyboard", "musical-note", "musical-notes", "musical-score", "muted-speaker", "mx-claus", "mx-claus-dark-skin-tone", "mx-claus-light-skin-tone", "mx-claus-medium-dark-skin-tone", "mx-claus-medium-light-skin-tone", "mx-claus-medium-skin-tone", "nail-polish", "nail-polish-dark-skin-tone", "nail-polish-light-skin-tone", "nail-polish-medium-dark-skin-tone", "nail-polish-medium-light-skin-tone", "nail-polish-medium-skin-tone", "name-badge", "national-park", "nauseated-face", "nazar-amulet", "necktie", "nerd-face", "nest-with-eggs", "nesting-dolls", "neutral-face", "new-button", "new-moon", "new-moon-face", "newspaper", "next-track-button", "ng-button", "night-with-stars", "nine-oclock", "nine-thirty", "ninja", "ninja-dark-skin-tone", "ninja-light-skin-tone", "ninja-medium-dark-skin-tone", "ninja-medium-light-skin-tone", "ninja-medium-skin-tone", "no-bicycles", "no-entry", "no-littering", "no-mobile-phones", "no-one-under-eighteen", "no-pedestrians", "no-smoking", "non-potable-water", "nose", "nose-dark-skin-tone", "nose-light-skin-tone", "nose-medium-dark-skin-tone", "nose-medium-light-skin-tone", "nose-medium-skin-tone", "notebook", "notebook-with-decorative-cover", "nut-and-bolt", "o-button-blood-type", "octopus", "oden", "office-building", "office-worker", "office-worker-dark-skin-tone", "office-worker-light-skin-tone", "office-worker-medium-dark-skin-tone", "office-worker-medium-light-skin-tone", "office-worker-medium-skin-tone", "ogre", "oil-drum", "ok-button", "ok-hand", "ok-hand-dark-skin-tone", "ok-hand-light-skin-tone", "ok-hand-medium-dark-skin-tone", "ok-hand-medium-light-skin-tone", "ok-hand-medium-skin-tone", "old-key", "old-man", "old-man-dark-skin-tone", "old-man-light-skin-tone", "old-man-medium-dark-skin-tone", "old-man-medium-light-skin-tone", "old-man-medium-skin-tone", "old-woman", "old-woman-dark-skin-tone", "old-woman-light-skin-tone", "old-woman-medium-dark-skin-tone", "old-woman-medium-light-skin-tone", "old-woman-medium-skin-tone", "older-adult", "older-adult-dark-skin-tone", "older-adult-light-skin-tone", "older-adult-medium-dark-skin-tone", "older-adult-medium-light-skin-tone", "older-adult-medium-skin-tone", "older-person", "older-person-dark-skin-tone", "older-person-light-skin-tone", "older-person-medium-dark-skin-tone", "older-person-medium-light-skin-tone", "older-person-medium-skin-tone", "olive", "om", "on-exclamation-arrow", "oncoming-automobile", "oncoming-bus", "oncoming-fist", "oncoming-fist-dark-skin-tone", "oncoming-fist-light-skin-tone", "oncoming-fist-medium-dark-skin-tone", "oncoming-fist-medium-light-skin-tone", "oncoming-fist-medium-skin-tone", "oncoming-police-car", "oncoming-taxi", "one-oclock", "one-piece-swimsuit", "one-thirty", "onion", "open-book", "open-file-folder", "open-hands", "open-hands-dark-skin-tone", "open-hands-light-skin-tone", "open-hands-medium-dark-skin-tone", "open-hands-medium-light-skin-tone", "open-hands-medium-skin-tone", "open-mailbox-with-lowered-flag", "open-mailbox-with-raised-flag", "ophiuchus", "optical-disk", "orange-book", "orange-circle", "orange-heart", "orange-square", "orangutan", "orthodox-cross", "otter", "outbox-tray", "owl", "ox", "oyster", "p-button", "package", "page-facing-up", "page-with-curl", "pager", "paintbrush", "palm-down-hand", "palm-down-hand-dark-skin-tone", "palm-down-hand-light-skin-tone", "palm-down-hand-medium-dark-skin-tone", "palm-down-hand-medium-light-skin-tone", "palm-down-hand-medium-skin-tone", "palm-tree", "palm-up-hand", "palm-up-hand-dark-skin-tone", "palm-up-hand-light-skin-tone", "palm-up-hand-medium-dark-skin-tone", "palm-up-hand-medium-light-skin-tone", "palm-up-hand-medium-skin-tone", "palms-up-together", "palms-up-together-dark-skin-tone", "palms-up-together-light-skin-tone", "palms-up-together-medium-dark-skin-tone", "palms-up-together-medium-light-skin-tone", "palms-up-together-medium-skin-tone", "pancakes", "panda", "paperclip", "parachute", "parrot", "part-alternation-mark", "party-popper", "partying-face", "passenger-ship", "passport-control", "pause-button", "paw-prints", "peace-symbol", "peach", "peacock", "peanuts", "pear", "pen", "pencil", "penguin", "pensive-face", "people-holding-hands", "people-holding-hands-dark-skin-tone", "people-holding-hands-dark-skin-tone-light-skin-tone", "people-holding-hands-dark-skin-tone-medium-dark-skin-tone", "people-holding-hands-dark-skin-tone-medium-light-skin-tone", "people-holding-hands-dark-skin-tone-medium-skin-tone", "people-holding-hands-light-skin-tone", "people-holding-hands-light-skin-tone-dark-skin-tone", "people-holding-hands-light-skin-tone-medium-dark-skin-tone", "people-holding-hands-light-skin-tone-medium-light-skin-tone", "people-holding-hands-light-skin-tone-medium-skin-tone", "people-holding-hands-medium-dark-skin-tone", "people-holding-hands-medium-dark-skin-tone-dark-skin-tone", "people-holding-hands-medium-dark-skin-tone-light-skin-tone", "people-holding-hands-medium-dark-skin-tone-medium-light-skin-tone", "people-holding-hands-medium-dark-skin-tone-medium-skin-tone", "people-holding-hands-medium-light-skin-tone", "people-holding-hands-medium-light-skin-tone-dark-skin-tone", "people-holding-hands-medium-light-skin-tone-light-skin-tone", "people-holding-hands-medium-light-skin-tone-medium-dark-skin-tone", "people-holding-hands-medium-light-skin-tone-medium-skin-tone", "people-holding-hands-medium-skin-tone", "people-holding-hands-medium-skin-tone-dark-skin-tone", "people-holding-hands-medium-skin-tone-light-skin-tone", "people-holding-hands-medium-skin-tone-medium-dark-skin-tone", "people-holding-hands-medium-skin-tone-medium-light-skin-tone", "people-hugging", "people-with-bunny-ears", "people-wrestling", "performing-arts", "persevering-face", "person", "person-bald", "person-beard", "person-biking", "person-biking-dark-skin-tone", "person-biking-light-skin-tone", "person-biking-medium-dark-skin-tone", "person-biking-medium-light-skin-tone", "person-biking-medium-skin-tone", "person-blond-hair", "person-bouncing-ball", "person-bouncing-ball-dark-skin-tone", "person-bouncing-ball-light-skin-tone", "person-bouncing-ball-medium-dark-skin-tone", "person-bouncing-ball-medium-light-skin-tone", "person-bouncing-ball-medium-skin-tone", "person-bowing", "person-bowing-dark-skin-tone", "person-bowing-light-skin-tone", "person-bowing-medium-dark-skin-tone", "person-bowing-medium-light-skin-tone", "person-bowing-medium-skin-tone", "person-cartwheeling", "person-cartwheeling-dark-skin-tone", "person-cartwheeling-light-skin-tone", "person-cartwheeling-medium-dark-skin-tone", "person-cartwheeling-medium-light-skin-tone", "person-cartwheeling-medium-skin-tone", "person-climbing", "person-climbing-dark-skin-tone", "person-climbing-light-skin-tone", "person-climbing-medium-dark-skin-tone", "person-climbing-medium-light-skin-tone", "person-climbing-medium-skin-tone", "person-curly-hair", "person-dark-skin-tone", "person-dark-skin-tone-bald", "person-dark-skin-tone-beard", "person-dark-skin-tone-blond-hair", "person-dark-skin-tone-curly-hair", "person-dark-skin-tone-red-hair", "person-dark-skin-tone-white-hair", "person-facepalming", "person-facepalming-dark-skin-tone", "person-facepalming-light-skin-tone", "person-facepalming-medium-dark-skin-tone", "person-facepalming-medium-light-skin-tone", "person-facepalming-medium-skin-tone", "person-feeding-baby", "person-feeding-baby-dark-skin-tone", "person-feeding-baby-light-skin-tone", "person-feeding-baby-medium-dark-skin-tone", "person-feeding-baby-medium-light-skin-tone", "person-feeding-baby-medium-skin-tone", "person-fencing", "person-frowning", "person-frowning-dark-skin-tone", "person-frowning-light-skin-tone", "person-frowning-medium-dark-skin-tone", "person-frowning-medium-light-skin-tone", "person-frowning-medium-skin-tone", "person-gesturing-no", "person-gesturing-no-dark-skin-tone", "person-gesturing-no-light-skin-tone", "person-gesturing-no-medium-dark-skin-tone", "person-gesturing-no-medium-light-skin-tone", "person-gesturing-no-medium-skin-tone", "person-gesturing-ok", "person-gesturing-ok-dark-skin-tone", "person-gesturing-ok-light-skin-tone", "person-gesturing-ok-medium-dark-skin-tone", "person-gesturing-ok-medium-light-skin-tone", "person-gesturing-ok-medium-skin-tone", "person-getting-haircut", "person-getting-haircut-dark-skin-tone", "person-getting-haircut-light-skin-tone", "person-getting-haircut-medium-dark-skin-tone", "person-getting-haircut-medium-light-skin-tone", "person-getting-haircut-medium-skin-tone", "person-getting-massage", "person-getting-massage-dark-skin-tone", "person-getting-massage-light-skin-tone", "person-getting-massage-medium-dark-skin-tone", "person-getting-massage-medium-light-skin-tone", "person-getting-massage-medium-skin-tone", "person-golfing", "person-golfing-dark-skin-tone", "person-golfing-light-skin-tone", "person-golfing-medium-dark-skin-tone", "person-golfing-medium-light-skin-tone", "person-golfing-medium-skin-tone", "person-in-bed", "person-in-bed-dark-skin-tone", "person-in-bed-light-skin-tone", "person-in-bed-medium-dark-skin-tone", "person-in-bed-medium-light-skin-tone", "person-in-bed-medium-skin-tone", "person-in-lotus-position", "person-in-lotus-position-dark-skin-tone", "person-in-lotus-position-light-skin-tone", "person-in-lotus-position-medium-dark-skin-tone", "person-in-lotus-position-medium-light-skin-tone", "person-in-lotus-position-medium-skin-tone", "person-in-manual-wheelchair", "person-in-manual-wheelchair-dark-skin-tone", "person-in-manual-wheelchair-light-skin-tone", "person-in-manual-wheelchair-medium-dark-skin-tone", "person-in-manual-wheelchair-medium-light-skin-tone", "person-in-manual-wheelchair-medium-skin-tone", "person-in-motorized-wheelchair", "person-in-motorized-wheelchair-dark-skin-tone", "person-in-motorized-wheelchair-light-skin-tone", "person-in-motorized-wheelchair-medium-dark-skin-tone", "person-in-motorized-wheelchair-medium-light-skin-tone", "person-in-motorized-wheelchair-medium-skin-tone", "person-in-steamy-room", "person-in-steamy-room-dark-skin-tone", "person-in-steamy-room-light-skin-tone", "person-in-steamy-room-medium-dark-skin-tone", "person-in-steamy-room-medium-light-skin-tone", "person-in-steamy-room-medium-skin-tone", "person-in-suit-levitating", "person-in-suit-levitating-dark-skin-tone", "person-in-suit-levitating-light-skin-tone", "person-in-suit-levitating-medium-dark-skin-tone", "person-in-suit-levitating-medium-light-skin-tone", "person-in-suit-levitating-medium-skin-tone", "person-in-tuxedo", "person-in-tuxedo-dark-skin-tone", "person-in-tuxedo-light-skin-tone", "person-in-tuxedo-medium-dark-skin-tone", "person-in-tuxedo-medium-light-skin-tone", "person-in-tuxedo-medium-skin-tone", "person-juggling", "person-juggling-dark-skin-tone", "person-juggling-light-skin-tone", "person-juggling-medium-dark-skin-tone", "person-juggling-medium-light-skin-tone", "person-juggling-medium-skin-tone", "person-kneeling", "person-kneeling-dark-skin-tone", "person-kneeling-light-skin-tone", "person-kneeling-medium-dark-skin-tone", "person-kneeling-medium-light-skin-tone", "person-kneeling-medium-skin-tone", "person-lifting-weights", "person-lifting-weights-dark-skin-tone", "person-lifting-weights-light-skin-tone", "person-lifting-weights-medium-dark-skin-tone", "person-lifting-weights-medium-light-skin-tone", "person-lifting-weights-medium-skin-tone", "person-light-skin-tone", "person-light-skin-tone-bald", "person-light-skin-tone-beard", "person-light-skin-tone-blond-hair", "person-light-skin-tone-curly-hair", "person-light-skin-tone-red-hair", "person-light-skin-tone-white-hair", "person-medium-dark-skin-tone", "person-medium-dark-skin-tone-bald", "person-medium-dark-skin-tone-beard", "person-medium-dark-skin-tone-blond-hair", "person-medium-dark-skin-tone-curly-hair", "person-medium-dark-skin-tone-red-hair", "person-medium-dark-skin-tone-white-hair", "person-medium-light-skin-tone", "person-medium-light-skin-tone-bald", "person-medium-light-skin-tone-beard", "person-medium-light-skin-tone-blond-hair", "person-medium-light-skin-tone-curly-hair", "person-medium-light-skin-tone-red-hair", "person-medium-light-skin-tone-white-hair", "person-medium-skin-tone", "person-medium-skin-tone-bald", "person-medium-skin-tone-beard", "person-medium-skin-tone-blond-hair", "person-medium-skin-tone-curly-hair", "person-medium-skin-tone-red-hair", "person-medium-skin-tone-white-hair", "person-mountain-biking", "person-mountain-biking-dark-skin-tone", "person-mountain-biking-light-skin-tone", "person-mountain-biking-medium-dark-skin-tone", "person-mountain-biking-medium-light-skin-tone", "person-mountain-biking-medium-skin-tone", "person-playing-handball", "person-playing-handball-dark-skin-tone", "person-playing-handball-light-skin-tone", "person-playing-handball-medium-dark-skin-tone", "person-playing-handball-medium-light-skin-tone", "person-playing-handball-medium-skin-tone", "person-playing-water-polo", "person-playing-water-polo-dark-skin-tone", "person-playing-water-polo-light-skin-tone", "person-playing-water-polo-medium-dark-skin-tone", "person-playing-water-polo-medium-light-skin-tone", "person-playing-water-polo-medium-skin-tone", "person-pouting", "person-pouting-dark-skin-tone", "person-pouting-light-skin-tone", "person-pouting-medium-dark-skin-tone", "person-pouting-medium-light-skin-tone", "person-pouting-medium-skin-tone", "person-raising-hand", "person-raising-hand-dark-skin-tone", "person-raising-hand-light-skin-tone", "person-raising-hand-medium-dark-skin-tone", "person-raising-hand-medium-light-skin-tone", "person-raising-hand-medium-skin-tone", "person-red-hair", "person-rowing-boat", "person-rowing-boat-dark-skin-tone", "person-rowing-boat-light-skin-tone", "person-rowing-boat-medium-dark-skin-tone", "person-rowing-boat-medium-light-skin-tone", "person-rowing-boat-medium-skin-tone", "person-running", "person-running-dark-skin-tone", "person-running-light-skin-tone", "person-running-medium-dark-skin-tone", "person-running-medium-light-skin-tone", "person-running-medium-skin-tone", "person-shrugging", "person-shrugging-dark-skin-tone", "person-shrugging-light-skin-tone", "person-shrugging-medium-dark-skin-tone", "person-shrugging-medium-light-skin-tone", "person-shrugging-medium-skin-tone", "person-standing", "person-standing-dark-skin-tone", "person-standing-light-skin-tone", "person-standing-medium-dark-skin-tone", "person-standing-medium-light-skin-tone", "person-standing-medium-skin-tone", "person-surfing", "person-surfing-dark-skin-tone", "person-surfing-light-skin-tone", "person-surfing-medium-dark-skin-tone", "person-surfing-medium-light-skin-tone", "person-surfing-medium-skin-tone", "person-swimming", "person-swimming-dark-skin-tone", "person-swimming-light-skin-tone", "person-swimming-medium-dark-skin-tone", "person-swimming-medium-light-skin-tone", "person-swimming-medium-skin-tone", "person-taking-bath", "person-taking-bath-dark-skin-tone", "person-taking-bath-light-skin-tone", "person-taking-bath-medium-dark-skin-tone", "person-taking-bath-medium-light-skin-tone", "person-taking-bath-medium-skin-tone", "person-tipping-hand", "person-tipping-hand-dark-skin-tone", "person-tipping-hand-light-skin-tone", "person-tipping-hand-medium-dark-skin-tone", "person-tipping-hand-medium-light-skin-tone", "person-tipping-hand-medium-skin-tone", "person-walking", "person-walking-dark-skin-tone", "person-walking-light-skin-tone", "person-walking-medium-dark-skin-tone", "person-walking-medium-light-skin-tone", "person-walking-medium-skin-tone", "person-wearing-turban", "person-wearing-turban-dark-skin-tone", "person-wearing-turban-light-skin-tone", "person-wearing-turban-medium-dark-skin-tone", "person-wearing-turban-medium-light-skin-tone", "person-wearing-turban-medium-skin-tone", "person-white-hair", "person-with-crown", "person-with-crown-dark-skin-tone", "person-with-crown-light-skin-tone", "person-with-crown-medium-dark-skin-tone", "person-with-crown-medium-light-skin-tone", "person-with-crown-medium-skin-tone", "person-with-skullcap", "person-with-skullcap-dark-skin-tone", "person-with-skullcap-light-skin-tone", "person-with-skullcap-medium-dark-skin-tone", "person-with-skullcap-medium-light-skin-tone", "person-with-skullcap-medium-skin-tone", "person-with-veil", "person-with-veil-dark-skin-tone", "person-with-veil-light-skin-tone", "person-with-veil-medium-dark-skin-tone", "person-with-veil-medium-light-skin-tone", "person-with-veil-medium-skin-tone", "person-with-white-cane", "person-with-white-cane-dark-skin-tone", "person-with-white-cane-light-skin-tone", "person-with-white-cane-medium-dark-skin-tone", "person-with-white-cane-medium-light-skin-tone", "person-with-white-cane-medium-skin-tone", "petri-dish", "pick", "pickup-truck", "pie", "pig", "pig-face", "pig-nose", "pile-of-poo", "pill", "pilot", "pilot-dark-skin-tone", "pilot-light-skin-tone", "pilot-medium-dark-skin-tone", "pilot-medium-light-skin-tone", "pilot-medium-skin-tone", "pinata", "pinched-fingers", "pinched-fingers-dark-skin-tone", "pinched-fingers-light-skin-tone", "pinched-fingers-medium-dark-skin-tone", "pinched-fingers-medium-light-skin-tone", "pinched-fingers-medium-skin-tone", "pinching-hand", "pinching-hand-dark-skin-tone", "pinching-hand-light-skin-tone", "pinching-hand-medium-dark-skin-tone", "pinching-hand-medium-light-skin-tone", "pinching-hand-medium-skin-tone", "pine-decoration", "pineapple", "ping-pong", "pirate-flag", "pisces", "pizza", "placard", "place-of-worship", "play-button", "play-or-pause-button", "playground-slide", "pleading-face", "plunger", "plus", "polar-bear", "police-car", "police-car-light", "police-officer", "police-officer-dark-skin-tone", "police-officer-light-skin-tone", "police-officer-medium-dark-skin-tone", "police-officer-medium-light-skin-tone", "police-officer-medium-skin-tone", "poodle", "pool-8-ball", "popcorn", "post-office", "postal-horn", "postbox", "pot-of-food", "potable-water", "potato", "potted-plant", "poultry-leg", "pound-banknote", "pouring-liquid", "pouting-cat", "pouting-face", "prayer-beads", "pregnant-man", "pregnant-man-dark-skin-tone", "pregnant-man-light-skin-tone", "pregnant-man-medium-dark-skin-tone", "pregnant-man-medium-light-skin-tone", "pregnant-man-medium-skin-tone", "pregnant-person", "pregnant-person-dark-skin-tone", "pregnant-person-light-skin-tone", "pregnant-person-medium-dark-skin-tone", "pregnant-person-medium-light-skin-tone", "pregnant-person-medium-skin-tone", "pregnant-woman", "pregnant-woman-dark-skin-tone", "pregnant-woman-light-skin-tone", "pregnant-woman-medium-dark-skin-tone", "pregnant-woman-medium-light-skin-tone", "pregnant-woman-medium-skin-tone", "pretzel", "prince", "prince-dark-skin-tone", "prince-light-skin-tone", "prince-medium-dark-skin-tone", "prince-medium-light-skin-tone", "prince-medium-skin-tone", "princess", "princess-dark-skin-tone", "princess-light-skin-tone", "princess-medium-dark-skin-tone", "princess-medium-light-skin-tone", "princess-medium-skin-tone", "printer", "prohibited", "purple-circle", "purple-heart", "purple-square", "purse", "pushpin", "puzzle-piece", "rabbit", "rabbit-face", "raccoon", "racing-car", "radio", "radio-button", "radioactive", "railway-car", "railway-track", "rainbow", "rainbow-flag", "raised-back-of-hand", "raised-back-of-hand-dark-skin-tone", "raised-back-of-hand-light-skin-tone", "raised-back-of-hand-medium-dark-skin-tone", "raised-back-of-hand-medium-light-skin-tone", "raised-back-of-hand-medium-skin-tone", "raised-fist", "raised-fist-dark-skin-tone", "raised-fist-light-skin-tone", "raised-fist-medium-dark-skin-tone", "raised-fist-medium-light-skin-tone", "raised-fist-medium-skin-tone", "raised-hand", "raised-hand-dark-skin-tone", "raised-hand-light-skin-tone", "raised-hand-medium-dark-skin-tone", "raised-hand-medium-light-skin-tone", "raised-hand-medium-skin-tone", "raising-hands", "raising-hands-dark-skin-tone", "raising-hands-light-skin-tone", "raising-hands-medium-dark-skin-tone", "raising-hands-medium-light-skin-tone", "raising-hands-medium-skin-tone", "ram", "rat", "razor", "receipt", "record-button", "recycling-symbol", "red-apple", "red-circle", "red-envelope", "red-exclamation-mark", "red-haired", "red-heart", "red-paper-lantern", "red-question-mark", "red-square", "red-triangle-pointed-down", "red-triangle-pointed-up", "registered", "relieved-face", "reminder-ribbon", "repeat-button", "repeat-single-button", "rescue-workers-helmet", "restroom", "reverse-button", "revolving-hearts", "rhinoceros", "ribbon", "rice-ball", "rice-cracker", "right-anger-bubble", "right-arrow", "right-arrow-curving-down", "right-arrow-curving-left", "right-arrow-curving-up", "right-facing-fist", "right-facing-fist-dark-skin-tone", "right-facing-fist-light-skin-tone", "right-facing-fist-medium-dark-skin-tone", "right-facing-fist-medium-light-skin-tone", "right-facing-fist-medium-skin-tone", "rightwards-hand", "rightwards-hand-dark-skin-tone", "rightwards-hand-light-skin-tone", "rightwards-hand-medium-dark-skin-tone", "rightwards-hand-medium-light-skin-tone", "rightwards-hand-medium-skin-tone", "ring", "ring-buoy", "ringed-planet", "roasted-sweet-potato", "robot", "rock", "rocket", "roll-of-paper", "rolled-up-newspaper", "roller-coaster", "roller-skate", "rolling-on-the-floor-laughing", "rooster", "rose", "rosette", "round-pushpin", "rugby-football", "running-shirt", "running-shoe", "sad-but-relieved-face", "safety-pin", "safety-vest", "sagittarius", "sailboat", "sake", "salt", "saluting-face", "sandwich", "santa-claus", "santa-claus-dark-skin-tone", "santa-claus-light-skin-tone", "santa-claus-medium-dark-skin-tone", "santa-claus-medium-light-skin-tone", "santa-claus-medium-skin-tone", "sari", "satellite", "satellite-antenna", "sauropod", "saxophone", "scarf", "school", "scientist", "scientist-dark-skin-tone", "scientist-light-skin-tone", "scientist-medium-dark-skin-tone", "scientist-medium-light-skin-tone", "scientist-medium-skin-tone", "scissors", "scorpio", "scorpion", "screwdriver", "scroll", "seal", "seat", "see-no-evil-monkey", "seedling", "selfie", "selfie-dark-skin-tone", "selfie-light-skin-tone", "selfie-medium-dark-skin-tone", "selfie-medium-light-skin-tone", "selfie-medium-skin-tone", "service-dog", "seven-oclock", "seven-thirty", "sewing-needle", "shallow-pan-of-food", "shamrock", "shark", "shaved-ice", "sheaf-of-rice", "shibuya-109-department-store", "shield", "shinto-shrine", "ship", "shooting-star", "shopping-bags", "shopping-cart", "shortcake", "shorts", "shower", "shrimp", "shuffle-tracks-button", "shushing-face", "sign-of-the-horns", "sign-of-the-horns-dark-skin-tone", "sign-of-the-horns-light-skin-tone", "sign-of-the-horns-medium-dark-skin-tone", "sign-of-the-horns-medium-light-skin-tone", "sign-of-the-horns-medium-skin-tone", "singer", "singer-dark-skin-tone", "singer-light-skin-tone", "singer-medium-dark-skin-tone", "singer-medium-light-skin-tone", "singer-medium-skin-tone", "six-oclock", "six-thirty", "skateboard", "skier", "skier-dark-skin-tone", "skier-light-skin-tone", "skier-medium-dark-skin-tone", "skier-medium-light-skin-tone", "skier-medium-skin-tone", "skis", "skull", "skull-and-crossbones", "skunk", "sled", "sleeping-face", "sleepy-face", "slightly-frowning-face", "slightly-smiling-face", "slot-machine", "sloth", "small-airplane", "small-blue-diamond", "small-orange-diamond", "smiling-cat-with-heart-eyes", "smiling-face", "smiling-face-with-halo", "smiling-face-with-heart-eyes", "smiling-face-with-hearts", "smiling-face-with-horns", "smiling-face-with-open-hands", "smiling-face-with-smiling-eyes", "smiling-face-with-sunglasses", "smiling-face-with-tear", "smirking-face", "snail", "snake", "sneezing-face", "snow-capped-mountain", "snowboarder", "snowboarder-dark-skin-tone", "snowboarder-light-skin-tone", "snowboarder-medium-dark-skin-tone", "snowboarder-medium-light-skin-tone", "snowboarder-medium-skin-tone", "snowflake", "snowman", "snowman-without-snow", "soap", "soccer-ball", "socks", "soft-ice-cream", "softball", "soon-arrow", "sos-button", "spade-suit", "spaghetti", "sparkle", "sparkler", "sparkles", "sparkling-heart", "speak-no-evil-monkey", "speaker-high-volume", "speaker-low-volume", "speaker-medium-volume", "speaking-head", "speech-balloon", "speedboat", "spider", "spider-web", "spiral-calendar", "spiral-notepad", "spiral-shell", "sponge", "spoon", "sport-utility-vehicle", "sports-medal", "spouting-whale", "squid", "squinting-face-with-tongue", "stadium", "star", "star-and-crescent", "star-of-david", "star-struck", "station", "statue-of-liberty", "steaming-bowl", "stethoscope", "stop-button", "stop-sign", "stopwatch", "straight-ruler", "strawberry", "student", "student-dark-skin-tone", "student-light-skin-tone", "student-medium-dark-skin-tone", "student-medium-light-skin-tone", "student-medium-skin-tone", "studio-microphone", "stuffed-flatbread", "sun", "sun-behind-cloud", "sun-behind-large-cloud", "sun-behind-rain-cloud", "sun-behind-small-cloud", "sun-with-face", "sunflower", "sunglasses", "sunrise", "sunrise-over-mountains", "sunset", "superhero", "superhero-dark-skin-tone", "superhero-light-skin-tone", "superhero-medium-dark-skin-tone", "superhero-medium-light-skin-tone", "superhero-medium-skin-tone", "supervillain", "supervillain-dark-skin-tone", "supervillain-light-skin-tone", "supervillain-medium-dark-skin-tone", "supervillain-medium-light-skin-tone", "supervillain-medium-skin-tone", "sushi", "suspension-railway", "swan", "sweat-droplets", "synagogue", "syringe", "t-rex", "t-shirt", "taco", "takeout-box", "tamale", "tanabata-tree", "tangerine", "taurus", "taxi", "teacher", "teacher-dark-skin-tone", "teacher-light-skin-tone", "teacher-medium-dark-skin-tone", "teacher-medium-light-skin-tone", "teacher-medium-skin-tone", "teacup-without-handle", "teapot", "tear-off-calendar", "technologist", "technologist-dark-skin-tone", "technologist-light-skin-tone", "technologist-medium-dark-skin-tone", "technologist-medium-light-skin-tone", "technologist-medium-skin-tone", "teddy-bear", "telephone", "telephone-receiver", "telescope", "television", "ten-oclock", "ten-thirty", "tennis", "tent", "test-tube", "thermometer", "thinking-face", "thong-sandal", "thought-balloon", "thread", "three-oclock", "three-thirty", "thumbs-down", "thumbs-down-dark-skin-tone", "thumbs-down-light-skin-tone", "thumbs-down-medium-dark-skin-tone", "thumbs-down-medium-light-skin-tone", "thumbs-down-medium-skin-tone", "thumbs-up", "thumbs-up-dark-skin-tone", "thumbs-up-light-skin-tone", "thumbs-up-medium-dark-skin-tone", "thumbs-up-medium-light-skin-tone", "thumbs-up-medium-skin-tone", "ticket", "tiger", "tiger-face", "timer-clock", "tired-face", "toilet", "tokyo-tower", "tomato", "tongue", "toolbox", "tooth", "toothbrush", "top-arrow", "top-hat", "tornado", "trackball", "tractor", "trade-mark", "train", "tram", "tram-car", "transgender-flag", "transgender-symbol", "triangular-flag", "triangular-ruler", "trident-emblem", "troll", "trolleybus", "trophy", "tropical-drink", "tropical-fish", "trumpet", "tulip", "tumbler-glass", "turkey", "turtle", "twelve-oclock", "twelve-thirty", "two-hearts", "two-hump-camel", "two-men-holding-hands", "two-oclock", "two-thirty", "two-women-holding-hands", "umbrella", "umbrella-on-ground", "umbrella-with-rain-drops", "unamused-face", "unicorn", "unlocked", "up-arrow", "up-down-arrow", "up-exclamation-button", "up-left-arrow", "up-right-arrow", "upside-down-face", "upwards-button", "vampire", "vampire-dark-skin-tone", "vampire-light-skin-tone", "vampire-medium-dark-skin-tone", "vampire-medium-light-skin-tone", "vampire-medium-skin-tone", "vertical-traffic-light", "vibration-mode", "victory-hand", "victory-hand-dark-skin-tone", "victory-hand-light-skin-tone", "victory-hand-medium-dark-skin-tone", "victory-hand-medium-light-skin-tone", "victory-hand-medium-skin-tone", "video-camera", "video-game", "videocassette", "violin", "virgo", "volcano", "volleyball", "vs-button", "vulcan-salute", "vulcan-salute-dark-skin-tone", "vulcan-salute-light-skin-tone", "vulcan-salute-medium-dark-skin-tone", "vulcan-salute-medium-light-skin-tone", "vulcan-salute-medium-skin-tone", "waffle", "waning-crescent-moon", "waning-gibbous-moon", "warning", "wastebasket", "watch", "water-buffalo", "water-closet", "water-pistol", "water-wave", "watermelon", "waving-hand", "waving-hand-dark-skin-tone", "waving-hand-light-skin-tone", "waving-hand-medium-dark-skin-tone", "waving-hand-medium-light-skin-tone", "waving-hand-medium-skin-tone", "wavy-dash", "waxing-crescent-moon", "waxing-gibbous-moon", "weary-cat", "weary-face", "wedding", "whale", "wheel", "wheel-of-dharma", "wheelchair-symbol", "white-cane", "white-circle", "white-exclamation-mark", "white-flag", "white-flower", "white-haired", "white-heart", "white-large-square", "white-medium-small-square", "white-medium-square", "white-question-mark", "white-small-square", "white-square-button", "wilted-flower", "wind-chime", "wind-face", "window", "wine-glass", "winking-face", "winking-face-with-tongue", "wolf", "woman", "woman-and-man-holding-hands", "woman-and-man-holding-hands-dark-skin-tone", "woman-and-man-holding-hands-dark-skin-tone-light-skin-tone", "woman-and-man-holding-hands-dark-skin-tone-medium-dark-skin-tone", "woman-and-man-holding-hands-dark-skin-tone-medium-light-skin-tone", "woman-and-man-holding-hands-dark-skin-tone-medium-skin-tone", "woman-and-man-holding-hands-light-skin-tone", "woman-and-man-holding-hands-light-skin-tone-dark-skin-tone", "woman-and-man-holding-hands-light-skin-tone-medium-dark-skin-tone", "woman-and-man-holding-hands-light-skin-tone-medium-light-skin-tone", "woman-and-man-holding-hands-light-skin-tone-medium-skin-tone", "woman-and-man-holding-hands-medium-dark-skin-tone", "woman-and-man-holding-hands-medium-dark-skin-tone-dark-skin-tone", "woman-and-man-holding-hands-medium-dark-skin-tone-light-skin-tone", "woman-and-man-holding-hands-medium-dark-skin-tone-medium-light-skin-tone", "woman-and-man-holding-hands-medium-dark-skin-tone-medium-skin-tone", "woman-and-man-holding-hands-medium-light-skin-tone", "woman-and-man-holding-hands-medium-light-skin-tone-dark-skin-tone", "woman-and-man-holding-hands-medium-light-skin-tone-light-skin-tone", "woman-and-man-holding-hands-medium-light-skin-tone-medium-dark-skin-tone", "woman-and-man-holding-hands-medium-light-skin-tone-medium-skin-tone", "woman-and-man-holding-hands-medium-skin-tone", "woman-and-man-holding-hands-medium-skin-tone-dark-skin-tone", "woman-and-man-holding-hands-medium-skin-tone-light-skin-tone", "woman-and-man-holding-hands-medium-skin-tone-medium-dark-skin-tone", "woman-and-man-holding-hands-medium-skin-tone-medium-light-skin-tone", "woman-artist", "woman-artist-dark-skin-tone", "woman-artist-light-skin-tone", "woman-artist-medium-dark-skin-tone", "woman-artist-medium-light-skin-tone", "woman-artist-medium-skin-tone", "woman-astronaut", "woman-astronaut-dark-skin-tone", "woman-astronaut-light-skin-tone", "woman-astronaut-medium-dark-skin-tone", "woman-astronaut-medium-light-skin-tone", "woman-astronaut-medium-skin-tone", "woman-bald", "woman-beard", "woman-biking", "woman-biking-dark-skin-tone", "woman-biking-light-skin-tone", "woman-biking-medium-dark-skin-tone", "woman-biking-medium-light-skin-tone", "woman-biking-medium-skin-tone", "woman-blond-hair", "woman-bouncing-ball", "woman-bouncing-ball-dark-skin-tone", "woman-bouncing-ball-light-skin-tone", "woman-bouncing-ball-medium-dark-skin-tone", "woman-bouncing-ball-medium-light-skin-tone", "woman-bouncing-ball-medium-skin-tone", "woman-bowing", "woman-bowing-dark-skin-tone", "woman-bowing-light-skin-tone", "woman-bowing-medium-dark-skin-tone", "woman-bowing-medium-light-skin-tone", "woman-bowing-medium-skin-tone", "woman-cartwheeling", "woman-cartwheeling-dark-skin-tone", "woman-cartwheeling-light-skin-tone", "woman-cartwheeling-medium-dark-skin-tone", "woman-cartwheeling-medium-light-skin-tone", "woman-cartwheeling-medium-skin-tone", "woman-climbing", "woman-climbing-dark-skin-tone", "woman-climbing-light-skin-tone", "woman-climbing-medium-dark-skin-tone", "woman-climbing-medium-light-skin-tone", "woman-climbing-medium-skin-tone", "woman-construction-worker", "woman-construction-worker-dark-skin-tone", "woman-construction-worker-light-skin-tone", "woman-construction-worker-medium-dark-skin-tone", "woman-construction-worker-medium-light-skin-tone", "woman-construction-worker-medium-skin-tone", "woman-cook", "woman-cook-dark-skin-tone", "woman-cook-light-skin-tone", "woman-cook-medium-dark-skin-tone", "woman-cook-medium-light-skin-tone", "woman-cook-medium-skin-tone", "woman-curly-hair", "woman-dancing", "woman-dancing-dark-skin-tone", "woman-dancing-light-skin-tone", "woman-dancing-medium-dark-skin-tone", "woman-dancing-medium-light-skin-tone", "woman-dancing-medium-skin-tone", "woman-dark-skin-tone", "woman-dark-skin-tone-bald", "woman-dark-skin-tone-beard", "woman-dark-skin-tone-blond-hair", "woman-dark-skin-tone-curly-hair", "woman-dark-skin-tone-red-hair", "woman-dark-skin-tone-white-hair", "woman-detective", "woman-detective-dark-skin-tone", "woman-detective-light-skin-tone", "woman-detective-medium-dark-skin-tone", "woman-detective-medium-light-skin-tone", "woman-detective-medium-skin-tone", "woman-elf", "woman-elf-dark-skin-tone", "woman-elf-light-skin-tone", "woman-elf-medium-dark-skin-tone", "woman-elf-medium-light-skin-tone", "woman-elf-medium-skin-tone", "woman-facepalming", "woman-facepalming-dark-skin-tone", "woman-facepalming-light-skin-tone", "woman-facepalming-medium-dark-skin-tone", "woman-facepalming-medium-light-skin-tone", "woman-facepalming-medium-skin-tone", "woman-factory-worker", "woman-factory-worker-dark-skin-tone", "woman-factory-worker-light-skin-tone", "woman-factory-worker-medium-dark-skin-tone", "woman-factory-worker-medium-light-skin-tone", "woman-factory-worker-medium-skin-tone", "woman-fairy", "woman-fairy-dark-skin-tone", "woman-fairy-light-skin-tone", "woman-fairy-medium-dark-skin-tone", "woman-fairy-medium-light-skin-tone", "woman-fairy-medium-skin-tone", "woman-farmer", "woman-farmer-dark-skin-tone", "woman-farmer-light-skin-tone", "woman-farmer-medium-dark-skin-tone", "woman-farmer-medium-light-skin-tone", "woman-farmer-medium-skin-tone", "woman-feeding-baby", "woman-feeding-baby-dark-skin-tone", "woman-feeding-baby-light-skin-tone", "woman-feeding-baby-medium-dark-skin-tone", "woman-feeding-baby-medium-light-skin-tone", "woman-feeding-baby-medium-skin-tone", "woman-firefighter", "woman-firefighter-dark-skin-tone", "woman-firefighter-light-skin-tone", "woman-firefighter-medium-dark-skin-tone", "woman-firefighter-medium-light-skin-tone", "woman-firefighter-medium-skin-tone", "woman-frowning", "woman-frowning-dark-skin-tone", "woman-frowning-light-skin-tone", "woman-frowning-medium-dark-skin-tone", "woman-frowning-medium-light-skin-tone", "woman-frowning-medium-skin-tone", "woman-genie", "woman-gesturing-no", "woman-gesturing-no-dark-skin-tone", "woman-gesturing-no-light-skin-tone", "woman-gesturing-no-medium-dark-skin-tone", "woman-gesturing-no-medium-light-skin-tone", "woman-gesturing-no-medium-skin-tone", "woman-gesturing-ok", "woman-gesturing-ok-dark-skin-tone", "woman-gesturing-ok-light-skin-tone", "woman-gesturing-ok-medium-dark-skin-tone", "woman-gesturing-ok-medium-light-skin-tone", "woman-gesturing-ok-medium-skin-tone", "woman-getting-haircut", "woman-getting-haircut-dark-skin-tone", "woman-getting-haircut-light-skin-tone", "woman-getting-haircut-medium-dark-skin-tone", "woman-getting-haircut-medium-light-skin-tone", "woman-getting-haircut-medium-skin-tone", "woman-getting-massage", "woman-getting-massage-dark-skin-tone", "woman-getting-massage-light-skin-tone", "woman-getting-massage-medium-dark-skin-tone", "woman-getting-massage-medium-light-skin-tone", "woman-getting-massage-medium-skin-tone", "woman-golfing", "woman-golfing-dark-skin-tone", "woman-golfing-light-skin-tone", "woman-golfing-medium-dark-skin-tone", "woman-golfing-medium-light-skin-tone", "woman-golfing-medium-skin-tone", "woman-guard", "woman-guard-dark-skin-tone", "woman-guard-light-skin-tone", "woman-guard-medium-dark-skin-tone", "woman-guard-medium-light-skin-tone", "woman-guard-medium-skin-tone", "woman-health-worker", "woman-health-worker-dark-skin-tone", "woman-health-worker-light-skin-tone", "woman-health-worker-medium-dark-skin-tone", "woman-health-worker-medium-light-skin-tone", "woman-health-worker-medium-skin-tone", "woman-in-lotus-position", "woman-in-lotus-position-dark-skin-tone", "woman-in-lotus-position-light-skin-tone", "woman-in-lotus-position-medium-dark-skin-tone", "woman-in-lotus-position-medium-light-skin-tone", "woman-in-lotus-position-medium-skin-tone", "woman-in-manual-wheelchair", "woman-in-manual-wheelchair-dark-skin-tone", "woman-in-manual-wheelchair-light-skin-tone", "woman-in-manual-wheelchair-medium-dark-skin-tone", "woman-in-manual-wheelchair-medium-light-skin-tone", "woman-in-manual-wheelchair-medium-skin-tone", "woman-in-motorized-wheelchair", "woman-in-motorized-wheelchair-dark-skin-tone", "woman-in-motorized-wheelchair-light-skin-tone", "woman-in-motorized-wheelchair-medium-dark-skin-tone", "woman-in-motorized-wheelchair-medium-light-skin-tone", "woman-in-motorized-wheelchair-medium-skin-tone", "woman-in-steamy-room", "woman-in-steamy-room-dark-skin-tone", "woman-in-steamy-room-light-skin-tone", "woman-in-steamy-room-medium-dark-skin-tone", "woman-in-steamy-room-medium-light-skin-tone", "woman-in-steamy-room-medium-skin-tone", "woman-in-suit-levitating", "woman-in-suit-levitating-dark-skin-tone", "woman-in-suit-levitating-light-skin-tone", "woman-in-suit-levitating-medium-dark-skin-tone", "woman-in-suit-levitating-medium-light-skin-tone", "woman-in-suit-levitating-medium-skin-tone", "woman-in-tuxedo", "woman-in-tuxedo-dark-skin-tone", "woman-in-tuxedo-light-skin-tone", "woman-in-tuxedo-medium-dark-skin-tone", "woman-in-tuxedo-medium-light-skin-tone", "woman-in-tuxedo-medium-skin-tone", "woman-judge", "woman-judge-dark-skin-tone", "woman-judge-light-skin-tone", "woman-judge-medium-dark-skin-tone", "woman-judge-medium-light-skin-tone", "woman-judge-medium-skin-tone", "woman-juggling", "woman-juggling-dark-skin-tone", "woman-juggling-light-skin-tone", "woman-juggling-medium-dark-skin-tone", "woman-juggling-medium-light-skin-tone", "woman-juggling-medium-skin-tone", "woman-kneeling", "woman-kneeling-dark-skin-tone", "woman-kneeling-light-skin-tone", "woman-kneeling-medium-dark-skin-tone", "woman-kneeling-medium-light-skin-tone", "woman-kneeling-medium-skin-tone", "woman-lifting-weights", "woman-lifting-weights-dark-skin-tone", "woman-lifting-weights-light-skin-tone", "woman-lifting-weights-medium-dark-skin-tone", "woman-lifting-weights-medium-light-skin-tone", "woman-lifting-weights-medium-skin-tone", "woman-light-skin-tone", "woman-light-skin-tone-bald", "woman-light-skin-tone-beard", "woman-light-skin-tone-blond-hair", "woman-light-skin-tone-curly-hair", "woman-light-skin-tone-red-hair", "woman-light-skin-tone-white-hair", "woman-mage", "woman-mage-dark-skin-tone", "woman-mage-light-skin-tone", "woman-mage-medium-dark-skin-tone", "woman-mage-medium-light-skin-tone", "woman-mage-medium-skin-tone", "woman-mechanic", "woman-mechanic-dark-skin-tone", "woman-mechanic-light-skin-tone", "woman-mechanic-medium-dark-skin-tone", "woman-mechanic-medium-light-skin-tone", "woman-mechanic-medium-skin-tone", "woman-medium-dark-skin-tone", "woman-medium-dark-skin-tone-bald", "woman-medium-dark-skin-tone-beard", "woman-medium-dark-skin-tone-blond-hair", "woman-medium-dark-skin-tone-curly-hair", "woman-medium-dark-skin-tone-red-hair", "woman-medium-dark-skin-tone-white-hair", "woman-medium-light-skin-tone", "woman-medium-light-skin-tone-bald", "woman-medium-light-skin-tone-beard", "woman-medium-light-skin-tone-blond-hair", "woman-medium-light-skin-tone-curly-hair", "woman-medium-light-skin-tone-red-hair", "woman-medium-light-skin-tone-white-hair", "woman-medium-skin-tone", "woman-medium-skin-tone-bald", "woman-medium-skin-tone-beard", "woman-medium-skin-tone-blond-hair", "woman-medium-skin-tone-curly-hair", "woman-medium-skin-tone-red-hair", "woman-medium-skin-tone-white-hair", "woman-mountain-biking", "woman-mountain-biking-dark-skin-tone", "woman-mountain-biking-light-skin-tone", "woman-mountain-biking-medium-dark-skin-tone", "woman-mountain-biking-medium-light-skin-tone", "woman-mountain-biking-medium-skin-tone", "woman-office-worker", "woman-office-worker-dark-skin-tone", "woman-office-worker-light-skin-tone", "woman-office-worker-medium-dark-skin-tone", "woman-office-worker-medium-light-skin-tone", "woman-office-worker-medium-skin-tone", "woman-pilot", "woman-pilot-dark-skin-tone", "woman-pilot-light-skin-tone", "woman-pilot-medium-dark-skin-tone", "woman-pilot-medium-light-skin-tone", "woman-pilot-medium-skin-tone", "woman-playing-handball", "woman-playing-handball-dark-skin-tone", "woman-playing-handball-light-skin-tone", "woman-playing-handball-medium-dark-skin-tone", "woman-playing-handball-medium-light-skin-tone", "woman-playing-handball-medium-skin-tone", "woman-playing-water-polo", "woman-playing-water-polo-dark-skin-tone", "woman-playing-water-polo-light-skin-tone", "woman-playing-water-polo-medium-dark-skin-tone", "woman-playing-water-polo-medium-light-skin-tone", "woman-playing-water-polo-medium-skin-tone", "woman-police-officer", "woman-police-officer-dark-skin-tone", "woman-police-officer-light-skin-tone", "woman-police-officer-medium-dark-skin-tone", "woman-police-officer-medium-light-skin-tone", "woman-police-officer-medium-skin-tone", "woman-pouting", "woman-pouting-dark-skin-tone", "woman-pouting-light-skin-tone", "woman-pouting-medium-dark-skin-tone", "woman-pouting-medium-light-skin-tone", "woman-pouting-medium-skin-tone", "woman-raising-hand", "woman-raising-hand-dark-skin-tone", "woman-raising-hand-light-skin-tone", "woman-raising-hand-medium-dark-skin-tone", "woman-raising-hand-medium-light-skin-tone", "woman-raising-hand-medium-skin-tone", "woman-red-hair", "woman-rowing-boat", "woman-rowing-boat-dark-skin-tone", "woman-rowing-boat-light-skin-tone", "woman-rowing-boat-medium-dark-skin-tone", "woman-rowing-boat-medium-light-skin-tone", "woman-rowing-boat-medium-skin-tone", "woman-running", "woman-running-dark-skin-tone", "woman-running-light-skin-tone", "woman-running-medium-dark-skin-tone", "woman-running-medium-light-skin-tone", "woman-running-medium-skin-tone", "woman-scientist", "woman-scientist-dark-skin-tone", "woman-scientist-light-skin-tone", "woman-scientist-medium-dark-skin-tone", "woman-scientist-medium-light-skin-tone", "woman-scientist-medium-skin-tone", "woman-shrugging", "woman-shrugging-dark-skin-tone", "woman-shrugging-light-skin-tone", "woman-shrugging-medium-dark-skin-tone", "woman-shrugging-medium-light-skin-tone", "woman-shrugging-medium-skin-tone", "woman-singer", "woman-singer-dark-skin-tone", "woman-singer-light-skin-tone", "woman-singer-medium-dark-skin-tone", "woman-singer-medium-light-skin-tone", "woman-singer-medium-skin-tone", "woman-standing", "woman-standing-dark-skin-tone", "woman-standing-light-skin-tone", "woman-standing-medium-dark-skin-tone", "woman-standing-medium-light-skin-tone", "woman-standing-medium-skin-tone", "woman-student", "woman-student-dark-skin-tone", "woman-student-light-skin-tone", "woman-student-medium-dark-skin-tone", "woman-student-medium-light-skin-tone", "woman-student-medium-skin-tone", "woman-superhero", "woman-superhero-dark-skin-tone", "woman-superhero-light-skin-tone", "woman-superhero-medium-dark-skin-tone", "woman-superhero-medium-light-skin-tone", "woman-superhero-medium-skin-tone", "woman-supervillain", "woman-supervillain-dark-skin-tone", "woman-supervillain-light-skin-tone", "woman-supervillain-medium-dark-skin-tone", "woman-supervillain-medium-light-skin-tone", "woman-supervillain-medium-skin-tone", "woman-surfing", "woman-surfing-dark-skin-tone", "woman-surfing-light-skin-tone", "woman-surfing-medium-dark-skin-tone", "woman-surfing-medium-light-skin-tone", "woman-surfing-medium-skin-tone", "woman-swimming", "woman-swimming-dark-skin-tone", "woman-swimming-light-skin-tone", "woman-swimming-medium-dark-skin-tone", "woman-swimming-medium-light-skin-tone", "woman-swimming-medium-skin-tone", "woman-teacher", "woman-teacher-dark-skin-tone", "woman-teacher-light-skin-tone", "woman-teacher-medium-dark-skin-tone", "woman-teacher-medium-light-skin-tone", "woman-teacher-medium-skin-tone", "woman-technologist", "woman-technologist-dark-skin-tone", "woman-technologist-light-skin-tone", "woman-technologist-medium-dark-skin-tone", "woman-technologist-medium-light-skin-tone", "woman-technologist-medium-skin-tone", "woman-tipping-hand", "woman-tipping-hand-dark-skin-tone", "woman-tipping-hand-light-skin-tone", "woman-tipping-hand-medium-dark-skin-tone", "woman-tipping-hand-medium-light-skin-tone", "woman-tipping-hand-medium-skin-tone", "woman-vampire", "woman-vampire-dark-skin-tone", "woman-vampire-light-skin-tone", "woman-vampire-medium-dark-skin-tone", "woman-vampire-medium-light-skin-tone", "woman-vampire-medium-skin-tone", "woman-walking", "woman-walking-dark-skin-tone", "woman-walking-light-skin-tone", "woman-walking-medium-dark-skin-tone", "woman-walking-medium-light-skin-tone", "woman-walking-medium-skin-tone", "woman-wearing-turban", "woman-wearing-turban-dark-skin-tone", "woman-wearing-turban-light-skin-tone", "woman-wearing-turban-medium-dark-skin-tone", "woman-wearing-turban-medium-light-skin-tone", "woman-wearing-turban-medium-skin-tone", "woman-white-hair", "woman-with-headscarf", "woman-with-headscarf-dark-skin-tone", "woman-with-headscarf-light-skin-tone", "woman-with-headscarf-medium-dark-skin-tone", "woman-with-headscarf-medium-light-skin-tone", "woman-with-headscarf-medium-skin-tone", "woman-with-veil", "woman-with-veil-dark-skin-tone", "woman-with-veil-light-skin-tone", "woman-with-veil-medium-dark-skin-tone", "woman-with-veil-medium-light-skin-tone", "woman-with-veil-medium-skin-tone", "woman-with-white-cane", "woman-with-white-cane-dark-skin-tone", "woman-with-white-cane-light-skin-tone", "woman-with-white-cane-medium-dark-skin-tone", "woman-with-white-cane-medium-light-skin-tone", "woman-with-white-cane-medium-skin-tone", "woman-zombie", "womans-boot", "womans-clothes", "womans-hat", "womans-sandal", "women-holding-hands", "women-holding-hands-dark-skin-tone", "women-holding-hands-dark-skin-tone-light-skin-tone", "women-holding-hands-dark-skin-tone-medium-dark-skin-tone", "women-holding-hands-dark-skin-tone-medium-light-skin-tone", "women-holding-hands-dark-skin-tone-medium-skin-tone", "women-holding-hands-light-skin-tone", "women-holding-hands-light-skin-tone-dark-skin-tone", "women-holding-hands-light-skin-tone-medium-dark-skin-tone", "women-holding-hands-light-skin-tone-medium-light-skin-tone", "women-holding-hands-light-skin-tone-medium-skin-tone", "women-holding-hands-medium-dark-skin-tone", "women-holding-hands-medium-dark-skin-tone-dark-skin-tone", "women-holding-hands-medium-dark-skin-tone-light-skin-tone", "women-holding-hands-medium-dark-skin-tone-medium-light-skin-tone", "women-holding-hands-medium-dark-skin-tone-medium-skin-tone", "women-holding-hands-medium-light-skin-tone", "women-holding-hands-medium-light-skin-tone-dark-skin-tone", "women-holding-hands-medium-light-skin-tone-light-skin-tone", "women-holding-hands-medium-light-skin-tone-medium-dark-skin-tone", "women-holding-hands-medium-light-skin-tone-medium-skin-tone", "women-holding-hands-medium-skin-tone", "women-holding-hands-medium-skin-tone-dark-skin-tone", "women-holding-hands-medium-skin-tone-light-skin-tone", "women-holding-hands-medium-skin-tone-medium-dark-skin-tone", "women-holding-hands-medium-skin-tone-medium-light-skin-tone", "women-with-bunny-ears", "women-wrestling", "womens-room", "wood", "woozy-face", "world-map", "worm", "worried-face", "wrapped-gift", "wrench", "writing-hand", "writing-hand-dark-skin-tone", "writing-hand-light-skin-tone", "writing-hand-medium-dark-skin-tone", "writing-hand-medium-light-skin-tone", "writing-hand-medium-skin-tone", "x-ray", "yarn", "yawning-face", "yellow-circle", "yellow-heart", "yellow-square", "yen-banknote", "yin-yang", "yo-yo", "zany-face", "zebra", "zipper-mouth-face", "zombie", "zzz"] }, { "prefix": "vscode-icons", "info": { "name": "VSCode Icons", "total": 1123, "version": "11.11.0", "author": { "name": "Roberto Huertas", "url": "https://github.com/vscode-icons/vscode-icons" }, "license": { "title": "MIT", "spdx": "MIT", "url": "https://github.com/vscode-icons/vscode-icons/blob/master/LICENSE" }, "samples": ["file-type-actionscript2", "file-type-json", "file-type-manifest"], "height": 32, "displayHeight": 16, "category": "General", "palette": true }, "icons": ["default-file", "default-folder", "default-folder-opened", "default-root-folder", "default-root-folder-opened", "file-type-access", "file-type-access2", "file-type-actionscript", "file-type-actionscript2", "file-type-ada", "file-type-advpl", "file-type-affinitydesigner", "file-type-affinityphoto", "file-type-affinitypublisher", "file-type-ai", "file-type-ai2", "file-type-al", "file-type-angular", "file-type-ansible", "file-type-antlr", "file-type-anyscript", "file-type-apache", "file-type-apex", "file-type-api-extractor", "file-type-apib", "file-type-apib2", "file-type-apl", "file-type-applescript", "file-type-appscript", "file-type-appsemble", "file-type-appveyor", "file-type-arduino", "file-type-asciidoc", "file-type-asp", "file-type-aspx", "file-type-assembly", "file-type-astro", "file-type-astroconfig", "file-type-ats", "file-type-audio", "file-type-aurelia", "file-type-autohotkey", "file-type-autoit", "file-type-avif", "file-type-avro", "file-type-awk", "file-type-aws", "file-type-azure", "file-type-azurepipelines", "file-type-babel", "file-type-babel2", "file-type-ballerina", "file-type-bat", "file-type-bats", "file-type-bazaar", "file-type-bazel", "file-type-befunge", "file-type-bicep", "file-type-biml", "file-type-binary", "file-type-bitbucketpipeline", "file-type-bithound", "file-type-blade", "file-type-blitzbasic", "file-type-bolt", "file-type-bosque", "file-type-bower", "file-type-bower2", "file-type-browserslist", "file-type-buckbuild", "file-type-bundler", "file-type-c", "file-type-c-al", "file-type-c2", "file-type-c3", "file-type-cabal", "file-type-caddy", "file-type-cake", "file-type-cakephp", "file-type-capacitor", "file-type-cargo", "file-type-casc", "file-type-cddl", "file-type-cert", "file-type-ceylon", "file-type-cf", "file-type-cf2", "file-type-cfc", "file-type-cfc2", "file-type-cfm", "file-type-cfm2", "file-type-cheader", "file-type-chef", "file-type-chef-cookbook", "file-type-circleci", "file-type-class", "file-type-clojure", "file-type-clojurescript", "file-type-cloudfoundry", "file-type-cmake", "file-type-cobol", "file-type-codacy", "file-type-codeclimate", "file-type-codecov", "file-type-codekit", "file-type-codeowners", "file-type-codeql", "file-type-coffeelint", "file-type-coffeescript", "file-type-commitizen", "file-type-commitlint", "file-type-compass", "file-type-composer", "file-type-conan", "file-type-conda", "file-type-config", "file-type-confluence", "file-type-coveralls", "file-type-cpp", "file-type-cpp2", "file-type-cpp3", "file-type-cppheader", "file-type-crowdin", "file-type-crystal", "file-type-csharp", "file-type-csharp2", "file-type-csproj", "file-type-css", "file-type-csscomb", "file-type-csslint", "file-type-cssmap", "file-type-cucumber", "file-type-cuda", "file-type-cvs", "file-type-cypress", "file-type-cython", "file-type-dal", "file-type-darcs", "file-type-dartlang", "file-type-dartlang-generated", "file-type-dartlang-ignore", "file-type-db", "file-type-delphi", "file-type-dependabot", "file-type-dependencies", "file-type-devcontainer", "file-type-dhall", "file-type-diff", "file-type-django", "file-type-dlang", "file-type-docker", "file-type-docker2", "file-type-dockertest", "file-type-dockertest2", "file-type-docpad", "file-type-docz", "file-type-dojo", "file-type-doppler", "file-type-dotjs", "file-type-doxygen", "file-type-drawio", "file-type-drone", "file-type-drools", "file-type-dustjs", "file-type-dvc", "file-type-dylan", "file-type-earthly", "file-type-edge", "file-type-edge2", "file-type-editorconfig", "file-type-eex", "file-type-ejs", "file-type-elastic", "file-type-elasticbeanstalk", "file-type-elixir", "file-type-elm", "file-type-elm2", "file-type-emacs", "file-type-ember", "file-type-ensime", "file-type-eps", "file-type-erb", "file-type-erlang", "file-type-erlang2", "file-type-eslint", "file-type-eslint2", "file-type-excel", "file-type-excel2", "file-type-expo", "file-type-falcon", "file-type-fauna", "file-type-favicon", "file-type-fbx", "file-type-firebase", "file-type-firebasehosting", "file-type-firestore", "file-type-fitbit", "file-type-fla", "file-type-flash", "file-type-floobits", "file-type-flow", "file-type-flutter", "file-type-flutter-package", "file-type-font", "file-type-formkit", "file-type-fortran", "file-type-fossa", "file-type-fossil", "file-type-freemarker", "file-type-fsharp", "file-type-fsharp2", "file-type-fsproj", "file-type-fthtml", "file-type-fusebox", "file-type-galen", "file-type-galen2", "file-type-gamemaker", "file-type-gamemaker2", "file-type-gamemaker81", "file-type-gatsby", "file-type-gcode", "file-type-genstat", "file-type-git", "file-type-git2", "file-type-gitlab", "file-type-gitpod", "file-type-glide", "file-type-glitter", "file-type-glsl", "file-type-glyphs", "file-type-gnuplot", "file-type-go", "file-type-go-aqua", "file-type-go-black", "file-type-go-fuchsia", "file-type-go-gopher", "file-type-go-lightblue", "file-type-go-package", "file-type-go-white", "file-type-go-yellow", "file-type-goctl", "file-type-godot", "file-type-gradle", "file-type-gradle2", "file-type-graphql", "file-type-graphql-config", "file-type-graphviz", "file-type-greenkeeper", "file-type-gridsome", "file-type-groovy", "file-type-groovy2", "file-type-grunt", "file-type-gulp", "file-type-haml", "file-type-handlebars", "file-type-handlebars2", "file-type-harbour", "file-type-haskell", "file-type-haskell2", "file-type-haxe", "file-type-haxecheckstyle", "file-type-haxedevelop", "file-type-helix", "file-type-helm", "file-type-hjson", "file-type-hlsl", "file-type-homeassistant", "file-type-horusec", "file-type-host", "file-type-html", "file-type-htmlhint", "file-type-http", "file-type-hunspell", "file-type-husky", "file-type-hy", "file-type-hygen", "file-type-hypr", "file-type-icl", "file-type-idris", "file-type-idrisbin", "file-type-idrispkg", "file-type-image", "file-type-imba", "file-type-inc", "file-type-infopath", "file-type-informix", "file-type-ini", "file-type-ink", "file-type-innosetup", "file-type-io", "file-type-iodine", "file-type-ionic", "file-type-jake", "file-type-janet", "file-type-jar", "file-type-jasmine", "file-type-java", "file-type-jbuilder", "file-type-jekyll", "file-type-jenkins", "file-type-jest", "file-type-jest-snapshot", "file-type-jinja", "file-type-jpm", "file-type-js", "file-type-js-official", "file-type-jsbeautify", "file-type-jsconfig", "file-type-jscpd", "file-type-jshint", "file-type-jsmap", "file-type-json", "file-type-json-official", "file-type-json2", "file-type-json5", "file-type-jsonld", "file-type-jsonnet", "file-type-jsp", "file-type-jss", "file-type-julia", "file-type-julia2", "file-type-jupyter", "file-type-k", "file-type-karma", "file-type-key", "file-type-kitchenci", "file-type-kite", "file-type-kivy", "file-type-kos", "file-type-kotlin", "file-type-kusto", "file-type-latino", "file-type-layout", "file-type-lerna", "file-type-less", "file-type-lex", "file-type-license", "file-type-licensebat", "file-type-light-actionscript2", "file-type-light-ada", "file-type-light-apl", "file-type-light-babel", "file-type-light-babel2", "file-type-light-cabal", "file-type-light-circleci", "file-type-light-cloudfoundry", "file-type-light-codacy", "file-type-light-codeclimate", "file-type-light-codeowners", "file-type-light-config", "file-type-light-crystal", "file-type-light-db", "file-type-light-dhall", "file-type-light-docpad", "file-type-light-drone", "file-type-light-expo", "file-type-light-firebasehosting", "file-type-light-fla", "file-type-light-font", "file-type-light-gamemaker2", "file-type-light-gradle", "file-type-light-hjson", "file-type-light-ini", "file-type-light-io", "file-type-light-js", "file-type-light-jsconfig", "file-type-light-jsmap", "file-type-light-json", "file-type-light-json5", "file-type-light-jsonld", "file-type-light-kite", "file-type-light-lerna", "file-type-light-mdx", "file-type-light-mlang", "file-type-light-mustache", "file-type-light-next", "file-type-light-nim", "file-type-light-openhab", "file-type-light-pcl", "file-type-light-pnpm", "file-type-light-prettier", "file-type-light-prisma", "file-type-light-purescript", "file-type-light-quasar", "file-type-light-razzle", "file-type-light-rehype", "file-type-light-remark", "file-type-light-retext", "file-type-light-rubocop", "file-type-light-rust", "file-type-light-rust-toolchain", "file-type-light-shaderlab", "file-type-light-solidity", "file-type-light-stylelint", "file-type-light-stylus", "file-type-light-symfony", "file-type-light-systemd", "file-type-light-systemverilog", "file-type-light-testcafe", "file-type-light-testjs", "file-type-light-tex", "file-type-light-todo", "file-type-light-toit", "file-type-light-toml", "file-type-light-turbo", "file-type-light-unibeautify", "file-type-light-vash", "file-type-light-vsix", "file-type-light-vsixmanifest", "file-type-light-xfl", "file-type-light-yaml", "file-type-light-zeit", "file-type-lighthouse", "file-type-lime", "file-type-lintstagedrc", "file-type-liquid", "file-type-lisp", "file-type-livescript", "file-type-lnk", "file-type-locale", "file-type-log", "file-type-lolcode", "file-type-lsl", "file-type-lua", "file-type-luau", "file-type-lync", "file-type-makefile", "file-type-manifest", "file-type-manifest-bak", "file-type-manifest-skip", "file-type-map", "file-type-mariadb", "file-type-markdown", "file-type-markdownlint", "file-type-markdownlint-ignore", "file-type-marko", "file-type-markojs", "file-type-matlab", "file-type-maven", "file-type-maxscript", "file-type-maya", "file-type-mdx", "file-type-mediawiki", "file-type-mercurial", "file-type-meson", "file-type-meteor", "file-type-mjml", "file-type-mlang", "file-type-mocha", "file-type-modernizr", "file-type-mojolicious", "file-type-moleculer", "file-type-mongo", "file-type-monotone", "file-type-mson", "file-type-mustache", "file-type-mysql", "file-type-ndst", "file-type-nearly", "file-type-nest-adapter-js", "file-type-nest-adapter-ts", "file-type-nest-controller-js", "file-type-nest-controller-ts", "file-type-nest-decorator-js", "file-type-nest-decorator-ts", "file-type-nest-filter-js", "file-type-nest-filter-ts", "file-type-nest-gateway-js", "file-type-nest-gateway-ts", "file-type-nest-guard-js", "file-type-nest-guard-ts", "file-type-nest-interceptor-js", "file-type-nest-interceptor-ts", "file-type-nest-middleware-js", "file-type-nest-middleware-ts", "file-type-nest-module-js", "file-type-nest-module-ts", "file-type-nest-pipe-js", "file-type-nest-pipe-ts", "file-type-nest-service-js", "file-type-nest-service-ts", "file-type-nestjs", "file-type-netlify", "file-type-next", "file-type-ng-component-css", "file-type-ng-component-dart", "file-type-ng-component-html", "file-type-ng-component-js", "file-type-ng-component-js2", "file-type-ng-component-less", "file-type-ng-component-sass", "file-type-ng-component-scss", "file-type-ng-component-ts", "file-type-ng-component-ts2", "file-type-ng-controller-js", "file-type-ng-controller-ts", "file-type-ng-directive-dart", "file-type-ng-directive-js", "file-type-ng-directive-js2", "file-type-ng-directive-ts", "file-type-ng-directive-ts2", "file-type-ng-guard-dart", "file-type-ng-guard-js", "file-type-ng-guard-ts", "file-type-ng-interceptor-dart", "file-type-ng-interceptor-js", "file-type-ng-interceptor-ts", "file-type-ng-module-dart", "file-type-ng-module-js", "file-type-ng-module-js2", "file-type-ng-module-ts", "file-type-ng-module-ts2", "file-type-ng-pipe-dart", "file-type-ng-pipe-js", "file-type-ng-pipe-js2", "file-type-ng-pipe-ts", "file-type-ng-pipe-ts2", "file-type-ng-routing-dart", "file-type-ng-routing-js", "file-type-ng-routing-js2", "file-type-ng-routing-ts", "file-type-ng-routing-ts2", "file-type-ng-service-dart", "file-type-ng-service-js", "file-type-ng-service-js2", "file-type-ng-service-ts", "file-type-ng-service-ts2", "file-type-ng-smart-component-dart", "file-type-ng-smart-component-js", "file-type-ng-smart-component-js2", "file-type-ng-smart-component-ts", "file-type-ng-smart-component-ts2", "file-type-ng-tailwind", "file-type-nginx", "file-type-nim", "file-type-nimble", "file-type-ninja", "file-type-nix", "file-type-njsproj", "file-type-noc", "file-type-node", "file-type-node2", "file-type-nodemon", "file-type-npm", "file-type-nsi", "file-type-nsri", "file-type-nsri-integrity", "file-type-nuget", "file-type-numpy", "file-type-nunjucks", "file-type-nuxt", "file-type-nyc", "file-type-objectivec", "file-type-objectivecpp", "file-type-ocaml", "file-type-ogone", "file-type-onenote", "file-type-opencl", "file-type-openhab", "file-type-openscad", "file-type-org", "file-type-outlook", "file-type-ovpn", "file-type-package", "file-type-paket", "file-type-patch", "file-type-pcl", "file-type-pddl", "file-type-pddl-happenings", "file-type-pddl-plan", "file-type-pdf2", "file-type-peeky", "file-type-perl", "file-type-perl2", "file-type-perl6", "file-type-pgsql", "file-type-photoshop", "file-type-photoshop2", "file-type-php", "file-type-php2", "file-type-php3", "file-type-phpcsfixer", "file-type-phpunit", "file-type-phraseapp", "file-type-pine", "file-type-pip", "file-type-pipeline", "file-type-plantuml", "file-type-platformio", "file-type-plsql", "file-type-plsql-package", "file-type-plsql-package-body", "file-type-plsql-package-header", "file-type-plsql-package-spec", "file-type-pnpm", "file-type-poedit", "file-type-polymer", "file-type-pony", "file-type-postcss", "file-type-postcssconfig", "file-type-powerpoint", "file-type-powerpoint2", "file-type-powershell", "file-type-powershell-format", "file-type-powershell-psd", "file-type-powershell-psd2", "file-type-powershell-psm", "file-type-powershell-psm2", "file-type-powershell-types", "file-type-powershell2", "file-type-preact", "file-type-precommit", "file-type-prettier", "file-type-prisma", "file-type-processinglang", "file-type-procfile", "file-type-progress", "file-type-prolog", "file-type-prometheus", "file-type-protobuf", "file-type-protractor", "file-type-publisher", "file-type-pug", "file-type-puppet", "file-type-purescript", "file-type-pyret", "file-type-python", "file-type-pytyped", "file-type-pyup", "file-type-q", "file-type-qbs", "file-type-qlikview", "file-type-qml", "file-type-qmldir", "file-type-qsharp", "file-type-quasar", "file-type-r", "file-type-racket", "file-type-rails", "file-type-rake", "file-type-raml", "file-type-razor", "file-type-razzle", "file-type-reactjs", "file-type-reacttemplate", "file-type-reactts", "file-type-reason", "file-type-red", "file-type-registry", "file-type-rego", "file-type-rehype", "file-type-remark", "file-type-renovate", "file-type-rescript", "file-type-rest", "file-type-retext", "file-type-rexx", "file-type-riot", "file-type-rmd", "file-type-robotframework", "file-type-robots", "file-type-rollup", "file-type-ron", "file-type-rproj", "file-type-rspec", "file-type-rubocop", "file-type-ruby", "file-type-rust", "file-type-rust-toolchain", "file-type-sails", "file-type-saltstack", "file-type-san", "file-type-sas", "file-type-sass", "file-type-sbt", "file-type-scala", "file-type-scilab", "file-type-script", "file-type-scss", "file-type-scss2", "file-type-sdlang", "file-type-sentry", "file-type-sequelize", "file-type-serverless", "file-type-shaderlab", "file-type-shell", "file-type-silverstripe", "file-type-siyuan", "file-type-sketch", "file-type-skipper", "file-type-slang", "file-type-slashup", "file-type-slice", "file-type-slim", "file-type-sln", "file-type-sln2", "file-type-smarty", "file-type-snapcraft", "file-type-snort", "file-type-snyk", "file-type-solidarity", "file-type-solidity", "file-type-source", "file-type-spacengine", "file-type-sparql", "file-type-sqf", "file-type-sql", "file-type-sqlite", "file-type-squirrel", "file-type-sss", "file-type-stan", "file-type-stata", "file-type-stencil", "file-type-storyboard", "file-type-storybook", "file-type-stryker", "file-type-stylable", "file-type-style", "file-type-styled", "file-type-stylelint", "file-type-stylish-haskell", "file-type-stylus", "file-type-subversion", "file-type-svelte", "file-type-svg", "file-type-swagger", "file-type-swift", "file-type-swig", "file-type-symfony", "file-type-systemd", "file-type-systemverilog", "file-type-t4tt", "file-type-tailwind", "file-type-tcl", "file-type-teal", "file-type-tera", "file-type-terraform", "file-type-test", "file-type-testcafe", "file-type-testjs", "file-type-testts", "file-type-tex", "file-type-text", "file-type-textile", "file-type-tfs", "file-type-tiltfile", "file-type-todo", "file-type-toit", "file-type-toml", "file-type-tox", "file-type-travis", "file-type-trunk", "file-type-tsconfig", "file-type-tsconfig-official", "file-type-tslint", "file-type-tt", "file-type-ttcn", "file-type-tuc", "file-type-turbo", "file-type-twig", "file-type-typedoc", "file-type-typescript", "file-type-typescript-official", "file-type-typescriptdef", "file-type-typescriptdef-official", "file-type-typo3", "file-type-unibeautify", "file-type-unlicense", "file-type-vagrant", "file-type-vala", "file-type-vanilla-extract", "file-type-vapi", "file-type-vapor", "file-type-vash", "file-type-vb", "file-type-vba", "file-type-vbhtml", "file-type-vbproj", "file-type-vcxproj", "file-type-velocity", "file-type-verilog", "file-type-vhdl", "file-type-video", "file-type-view", "file-type-vim", "file-type-vite", "file-type-vitest", "file-type-vlang", "file-type-volt", "file-type-vscode", "file-type-vscode-insiders", "file-type-vscode2", "file-type-vscode3", "file-type-vsix", "file-type-vsixmanifest", "file-type-vue", "file-type-vueconfig", "file-type-wallaby", "file-type-wasm", "file-type-watchmanconfig", "file-type-webp", "file-type-webpack", "file-type-wenyan", "file-type-wercker", "file-type-windi", "file-type-wolfram", "file-type-word", "file-type-word2", "file-type-wpml", "file-type-wurst", "file-type-wxml", "file-type-wxss", "file-type-xcode", "file-type-xfl", "file-type-xib", "file-type-xliff", "file-type-xmake", "file-type-xml", "file-type-xquery", "file-type-xsl", "file-type-yacc", "file-type-yaml", "file-type-yamllint", "file-type-yandex", "file-type-yang", "file-type-yarn", "file-type-yeoman", "file-type-zeit", "file-type-zig", "file-type-zip", "file-type-zip2", "folder-type-android", "folder-type-android-opened", "folder-type-api", "folder-type-api-opened", "folder-type-app", "folder-type-app-opened", "folder-type-arangodb", "folder-type-arangodb-opened", "folder-type-asset", "folder-type-asset-opened", "folder-type-audio", "folder-type-audio-opened", "folder-type-aurelia", "folder-type-aurelia-opened", "folder-type-aws", "folder-type-aws-opened", "folder-type-azure", "folder-type-azure-opened", "folder-type-azurepipelines", "folder-type-azurepipelines-opened", "folder-type-binary", "folder-type-binary-opened", "folder-type-bloc", "folder-type-bloc-opened", "folder-type-blueprint", "folder-type-blueprint-opened", "folder-type-bower", "folder-type-bower-opened", "folder-type-buildkite", "folder-type-buildkite-opened", "folder-type-cake", "folder-type-cake-opened", "folder-type-certificate", "folder-type-certificate-opened", "folder-type-chef", "folder-type-chef-opened", "folder-type-circleci", "folder-type-circleci-opened", "folder-type-cli", "folder-type-cli-opened", "folder-type-client", "folder-type-client-opened", "folder-type-cmake", "folder-type-cmake-opened", "folder-type-component", "folder-type-component-opened", "folder-type-composer", "folder-type-composer-opened", "folder-type-config", "folder-type-config-opened", "folder-type-controller", "folder-type-controller-opened", "folder-type-coverage", "folder-type-coverage-opened", "folder-type-css", "folder-type-css-opened", "folder-type-cubit", "folder-type-cubit-opened", "folder-type-cypress", "folder-type-cypress-opened", "folder-type-dapr", "folder-type-dapr-opened", "folder-type-db", "folder-type-db-opened", "folder-type-debian", "folder-type-debian-opened", "folder-type-dependabot", "folder-type-dependabot-opened", "folder-type-devcontainer", "folder-type-devcontainer-opened", "folder-type-dist", "folder-type-dist-opened", "folder-type-docker", "folder-type-docker-opened", "folder-type-docs", "folder-type-docs-opened", "folder-type-e2e", "folder-type-e2e-opened", "folder-type-elasticbeanstalk", "folder-type-elasticbeanstalk-opened", "folder-type-electron", "folder-type-electron-opened", "folder-type-expo", "folder-type-expo-opened", "folder-type-favicon", "folder-type-favicon-opened", "folder-type-flow", "folder-type-flow-opened", "folder-type-fonts", "folder-type-fonts-opened", "folder-type-gcp", "folder-type-gcp-opened", "folder-type-git", "folder-type-git-opened", "folder-type-github", "folder-type-github-opened", "folder-type-gitlab", "folder-type-gitlab-opened", "folder-type-gradle", "folder-type-gradle-opened", "folder-type-graphql", "folder-type-graphql-opened", "folder-type-grunt", "folder-type-grunt-opened", "folder-type-gulp", "folder-type-gulp-opened", "folder-type-haxelib", "folder-type-haxelib-opened", "folder-type-helper", "folder-type-helper-opened", "folder-type-hook", "folder-type-hook-opened", "folder-type-husky", "folder-type-husky-opened", "folder-type-idea", "folder-type-idea-opened", "folder-type-images", "folder-type-images-opened", "folder-type-include", "folder-type-include-opened", "folder-type-interfaces", "folder-type-interfaces-opened", "folder-type-ios", "folder-type-ios-opened", "folder-type-js", "folder-type-js-opened", "folder-type-json", "folder-type-json-official", "folder-type-json-official-opened", "folder-type-json-opened", "folder-type-kubernetes", "folder-type-kubernetes-opened", "folder-type-less", "folder-type-less-opened", "folder-type-library", "folder-type-library-opened", "folder-type-light-electron", "folder-type-light-electron-opened", "folder-type-light-expo", "folder-type-light-expo-opened", "folder-type-light-fonts", "folder-type-light-fonts-opened", "folder-type-light-gradle", "folder-type-light-gradle-opened", "folder-type-light-meteor", "folder-type-light-meteor-opened", "folder-type-light-mysql", "folder-type-light-mysql-opened", "folder-type-light-node", "folder-type-light-node-opened", "folder-type-light-redux", "folder-type-light-redux-opened", "folder-type-light-sass", "folder-type-light-sass-opened", "folder-type-linux", "folder-type-linux-opened", "folder-type-locale", "folder-type-locale-opened", "folder-type-log", "folder-type-log-opened", "folder-type-macos", "folder-type-macos-opened", "folder-type-mariadb", "folder-type-mariadb-opened", "folder-type-maven", "folder-type-maven-opened", "folder-type-memcached", "folder-type-memcached-opened", "folder-type-meteor", "folder-type-meteor-opened", "folder-type-middleware", "folder-type-middleware-opened", "folder-type-minikube", "folder-type-minikube-opened", "folder-type-mjml", "folder-type-mjml-opened", "folder-type-mock", "folder-type-mock-opened", "folder-type-model", "folder-type-model-opened", "folder-type-module", "folder-type-module-opened", "folder-type-mongodb", "folder-type-mongodb-opened", "folder-type-mysql", "folder-type-mysql-opened", "folder-type-next", "folder-type-next-opened", "folder-type-nginx", "folder-type-nginx-opened", "folder-type-nix", "folder-type-nix-opened", "folder-type-node", "folder-type-node-opened", "folder-type-notification", "folder-type-notification-opened", "folder-type-nuget", "folder-type-nuget-opened", "folder-type-nuxt", "folder-type-nuxt-opened", "folder-type-package", "folder-type-package-opened", "folder-type-paket", "folder-type-paket-opened", "folder-type-php", "folder-type-php-opened", "folder-type-platformio", "folder-type-platformio-opened", "folder-type-plugin", "folder-type-plugin-opened", "folder-type-prisma", "folder-type-prisma-opened", "folder-type-private", "folder-type-private-opened", "folder-type-public", "folder-type-public-opened", "folder-type-python", "folder-type-python-opened", "folder-type-ravendb", "folder-type-ravendb-opened", "folder-type-redis", "folder-type-redis-opened", "folder-type-redux", "folder-type-redux-opened", "folder-type-route", "folder-type-route-opened", "folder-type-sass", "folder-type-sass-opened", "folder-type-script", "folder-type-script-opened", "folder-type-server", "folder-type-server-opened", "folder-type-services", "folder-type-services-opened", "folder-type-src", "folder-type-src-opened", "folder-type-sso", "folder-type-sso-opened", "folder-type-story", "folder-type-story-opened", "folder-type-style", "folder-type-style-opened", "folder-type-temp", "folder-type-temp-opened", "folder-type-template", "folder-type-template-opened", "folder-type-test", "folder-type-test-opened", "folder-type-theme", "folder-type-theme-opened", "folder-type-tools", "folder-type-tools-opened", "folder-type-travis", "folder-type-travis-opened", "folder-type-trunk", "folder-type-trunk-opened", "folder-type-typescript", "folder-type-typescript-opened", "folder-type-typings", "folder-type-typings-opened", "folder-type-typings2", "folder-type-typings2-opened", "folder-type-vagrant", "folder-type-vagrant-opened", "folder-type-video", "folder-type-video-opened", "folder-type-view", "folder-type-view-opened", "folder-type-vs", "folder-type-vs-opened", "folder-type-vs2", "folder-type-vs2-opened", "folder-type-vscode", "folder-type-vscode-opened", "folder-type-vscode-test", "folder-type-vscode-test-opened", "folder-type-vscode-test2", "folder-type-vscode-test2-opened", "folder-type-vscode-test3", "folder-type-vscode-test3-opened", "folder-type-vscode2", "folder-type-vscode2-opened", "folder-type-vscode3", "folder-type-vscode3-opened", "folder-type-webpack", "folder-type-webpack-opened", "folder-type-windows", "folder-type-windows-opened", "folder-type-www", "folder-type-www-opened", "folder-type-yarn", "folder-type-yarn-opened"] }, { "prefix": "ep", "info": { "name": "Element Plus", "total": 283, "version": "1.1.4", "author": { "name": "Element Plus", "url": "https://github.com/element-plus/element-plus-icons" }, "license": { "title": "MIT", "spdx": "MIT", "url": "https://github.com/element-plus/element-plus-icons/blob/main/packages/svg/package.json" }, "samples": ["home-filled", "partly-cloudy", "avatar"], "height": 32, "displayHeight": 16, "category": "General", "palette": false }, "icons": ["add-location", "aim", "alarm-clock", "apple", "arrow-down", "arrow-down-bold", "arrow-left", "arrow-left-bold", "arrow-right", "arrow-right-bold", "arrow-up", "arrow-up-bold", "avatar", "back", "baseball", "basketball", "bell", "bell-filled", "bicycle", "bottom", "bottom-left", "bottom-right", "bowl", "box", "briefcase", "brush", "brush-filled", "burger", "calendar", "camera", "camera-filled", "caret-bottom", "caret-left", "caret-right", "caret-top", "cellphone", "chat-dot-round", "chat-dot-square", "chat-line-round", "chat-line-square", "chat-round", "chat-square", "check", "checked", "cherry", "chicken", "circle-check", "circle-check-filled", "circle-close", "circle-close-filled", "circle-plus", "circle-plus-filled", "clock", "close", "close-bold", "cloudy", "coffee", "coffee-cup", "coin", "cold-drink", "collection", "collection-tag", "comment", "compass", "connection", "coordinate", "copy-document", "cpu", "credit-card", "crop", "d-arrow-left", "d-arrow-right", "d-caret", "data-analysis", "data-board", "data-line", "delete", "delete-filled", "delete-location", "dessert", "discount", "dish", "dish-dot", "document", "document-add", "document-checked", "document-copy", "document-delete", "document-remove", "download", "drizzling", "edit", "edit-pen", "eleme", "eleme-filled", "element-plus", "expand", "failed", "female", "files", "film", "filter", "finished", "first-aid-kit", "flag", "fold", "folder", "folder-add", "folder-checked", "folder-delete", "folder-opened", "folder-remove", "food", "football", "fork-spoon", "fries", "full-screen", "goblet", "goblet-full", "goblet-square", "goblet-square-full", "goods", "goods-filled", "grape", "grid", "guide", "headset", "help", "help-filled", "hide", "histogram", "home-filled", "hot-water", "house", "ice-cream", "ice-cream-round", "ice-cream-square", "ice-drink", "ice-tea", "info-filled", "iphone", "key", "knife-fork", "lightning", "link", "list", "loading", "location", "location-filled", "location-information", "lock", "lollipop", "magic-stick", "magnet", "male", "management", "map-location", "medal", "menu", "message", "message-box", "mic", "microphone", "milk-tea", "minus", "money", "monitor", "moon", "moon-night", "more", "more-filled", "mostly-cloudy", "mouse", "mug", "mute", "mute-notification", "no-smoking", "notebook", "notification", "odometer", "office-building", "open", "operation", "opportunity", "orange", "paperclip", "partly-cloudy", "pear", "phone", "phone-filled", "picture", "picture-filled", "picture-rounded", "pie-chart", "place", "platform", "plus", "pointer", "position", "postcard", "pouring", "present", "price-tag", "printer", "promotion", "question-filled", "rank", "reading", "reading-lamp", "refresh", "refresh-left", "refresh-right", "refrigerator", "remove", "remove-filled", "right", "scale-to-original", "school", "scissor", "search", "select", "sell", "semi-select", "service", "set-up", "setting", "share", "ship", "shop", "shopping-bag", "shopping-cart", "shopping-cart-full", "smoking", "soccer", "sold-out", "sort", "sort-down", "sort-up", "stamp", "star", "star-filled", "stopwatch", "success-filled", "sugar", "suitcase", "sunny", "sunrise", "sunset", "switch", "switch-button", "takeaway-box", "ticket", "tickets", "timer", "toilet-paper", "tools", "top", "top-left", "top-right", "trend-charts", "trophy", "turn-off", "umbrella", "unlock", "upload", "upload-filled", "user", "user-filled", "van", "video-camera", "video-camera-filled", "video-pause", "video-play", "view", "wallet", "wallet-filled", "warning", "warning-filled", "watch", "watermelon", "wind-power", "zoom-in", "zoom-out"] }, { "prefix": "ri", "info": { "name": "Remix Icon", "total": 2271, "version": "2.5.0", "author": { "name": "Remix Design", "url": "https://github.com/Remix-Design/RemixIcon" }, "license": { "title": "Apache 2.0", "spdx": "Apache-2.0", "url": "https://github.com/Remix-Design/RemixIcon/blob/master/License" }, "samples": ["lock-2-line", "mark-pen-fill", "moon-line"], "height": 24, "category": "General", "palette": false }, "icons": ["24-hours-fill", "24-hours-line", "4k-fill", "4k-line", "a-b", "account-box-fill", "account-box-line", "account-circle-fill", "account-circle-line", "account-pin-box-fill", "account-pin-box-line", "account-pin-circle-fill", "account-pin-circle-line", "add-box-fill", "add-box-line", "add-circle-fill", "add-circle-line", "add-fill", "add-line", "admin-fill", "admin-line", "advertisement-fill", "advertisement-line", "airplay-fill", "airplay-line", "alarm-fill", "alarm-line", "alarm-warning-fill", "alarm-warning-line", "album-fill", "album-line", "alert-fill", "alert-line", "aliens-fill", "aliens-line", "align-bottom", "align-center", "align-justify", "align-left", "align-right", "align-top", "align-vertically", "alipay-fill", "alipay-line", "amazon-fill", "amazon-line", "anchor-fill", "anchor-line", "ancient-gate-fill", "ancient-gate-line", "ancient-pavilion-fill", "ancient-pavilion-line", "android-fill", "android-line", "angularjs-fill", "angularjs-line", "anticlockwise-2-fill", "anticlockwise-2-line", "anticlockwise-fill", "anticlockwise-line", "app-store-fill", "app-store-line", "apple-fill", "apple-line", "apps-2-fill", "apps-2-line", "apps-fill", "apps-line", "archive-drawer-fill", "archive-drawer-line", "archive-fill", "archive-line", "arrow-down-circle-fill", "arrow-down-circle-line", "arrow-down-fill", "arrow-down-line", "arrow-down-s-fill", "arrow-down-s-line", "arrow-drop-down-fill", "arrow-drop-down-line", "arrow-drop-left-fill", "arrow-drop-left-line", "arrow-drop-right-fill", "arrow-drop-right-line", "arrow-drop-up-fill", "arrow-drop-up-line", "arrow-go-back-fill", "arrow-go-back-line", "arrow-go-forward-fill", "arrow-go-forward-line", "arrow-left-circle-fill", "arrow-left-circle-line", "arrow-left-down-fill", "arrow-left-down-line", "arrow-left-fill", "arrow-left-line", "arrow-left-right-fill", "arrow-left-right-line", "arrow-left-s-fill", "arrow-left-s-line", "arrow-left-up-fill", "arrow-left-up-line", "arrow-right-circle-fill", "arrow-right-circle-line", "arrow-right-down-fill", "arrow-right-down-line", "arrow-right-fill", "arrow-right-line", "arrow-right-s-fill", "arrow-right-s-line", "arrow-right-up-fill", "arrow-right-up-line", "arrow-up-circle-fill", "arrow-up-circle-line", "arrow-up-down-fill", "arrow-up-down-line", "arrow-up-fill", "arrow-up-line", "arrow-up-s-fill", "arrow-up-s-line", "artboard-2-fill", "artboard-2-line", "artboard-fill", "artboard-line", "article-fill", "article-line", "aspect-ratio-fill", "aspect-ratio-line", "asterisk", "at-fill", "at-line", "attachment-2", "attachment-fill", "attachment-line", "auction-fill", "auction-line", "award-fill", "award-line", "baidu-fill", "baidu-line", "ball-pen-fill", "ball-pen-line", "bank-card-2-fill", "bank-card-2-line", "bank-card-fill", "bank-card-line", "bank-fill", "bank-line", "bar-chart-2-fill", "bar-chart-2-line", "bar-chart-box-fill", "bar-chart-box-line", "bar-chart-fill", "bar-chart-grouped-fill", "bar-chart-grouped-line", "bar-chart-horizontal-fill", "bar-chart-horizontal-line", "bar-chart-line", "barcode-box-fill", "barcode-box-line", "barcode-fill", "barcode-line", "barricade-fill", "barricade-line", "base-station-fill", "base-station-line", "basketball-fill", "basketball-line", "battery-2-charge-fill", "battery-2-charge-line", "battery-2-fill", "battery-2-line", "battery-charge-fill", "battery-charge-line", "battery-fill", "battery-line", "battery-low-fill", "battery-low-line", "battery-saver-fill", "battery-saver-line", "battery-share-fill", "battery-share-line", "bear-smile-fill", "bear-smile-line", "behance-fill", "behance-line", "bell-fill", "bell-line", "bike-fill", "bike-line", "bilibili-fill", "bilibili-line", "bill-fill", "bill-line", "billiards-fill", "billiards-line", "bit-coin-fill", "bit-coin-line", "blaze-fill", "blaze-line", "bluetooth-connect-fill", "bluetooth-connect-line", "bluetooth-fill", "bluetooth-line", "blur-off-fill", "blur-off-line", "body-scan-fill", "body-scan-line", "bold", "book-2-fill", "book-2-line", "book-3-fill", "book-3-line", "book-fill", "book-line", "book-mark-fill", "book-mark-line", "book-open-fill", "book-open-line", "book-read-fill", "book-read-line", "booklet-fill", "booklet-line", "bookmark-2-fill", "bookmark-2-line", "bookmark-3-fill", "bookmark-3-line", "bookmark-fill", "bookmark-line", "boxing-fill", "boxing-line", "braces-fill", "braces-line", "brackets-fill", "brackets-line", "briefcase-2-fill", "briefcase-2-line", "briefcase-3-fill", "briefcase-3-line", "briefcase-4-fill", "briefcase-4-line", "briefcase-5-fill", "briefcase-5-line", "briefcase-fill", "briefcase-line", "bring-forward", "bring-to-front", "broadcast-fill", "broadcast-line", "brush-2-fill", "brush-2-line", "brush-3-fill", "brush-3-line", "brush-4-fill", "brush-4-line", "brush-fill", "brush-line", "bubble-chart-fill", "bubble-chart-line", "bug-2-fill", "bug-2-line", "bug-fill", "bug-line", "building-2-fill", "building-2-line", "building-3-fill", "building-3-line", "building-4-fill", "building-4-line", "building-fill", "building-line", "bus-2-fill", "bus-2-line", "bus-fill", "bus-line", "bus-wifi-fill", "bus-wifi-line", "cactus-fill", "cactus-line", "cake-2-fill", "cake-2-line", "cake-3-fill", "cake-3-line", "cake-fill", "cake-line", "calculator-fill", "calculator-line", "calendar-2-fill", "calendar-2-line", "calendar-check-fill", "calendar-check-line", "calendar-event-fill", "calendar-event-line", "calendar-fill", "calendar-line", "calendar-todo-fill", "calendar-todo-line", "camera-2-fill", "camera-2-line", "camera-3-fill", "camera-3-line", "camera-fill", "camera-lens-fill", "camera-lens-line", "camera-line", "camera-off-fill", "camera-off-line", "camera-switch-fill", "camera-switch-line", "capsule-fill", "capsule-line", "car-fill", "car-line", "car-washing-fill", "car-washing-line", "caravan-fill", "caravan-line", "cast-fill", "cast-line", "cellphone-fill", "cellphone-line", "celsius-fill", "celsius-line", "centos-fill", "centos-line", "character-recognition-fill", "character-recognition-line", "charging-pile-2-fill", "charging-pile-2-line", "charging-pile-fill", "charging-pile-line", "chat-1-fill", "chat-1-line", "chat-2-fill", "chat-2-line", "chat-3-fill", "chat-3-line", "chat-4-fill", "chat-4-line", "chat-check-fill", "chat-check-line", "chat-delete-fill", "chat-delete-line", "chat-download-fill", "chat-download-line", "chat-follow-up-fill", "chat-follow-up-line", "chat-forward-fill", "chat-forward-line", "chat-heart-fill", "chat-heart-line", "chat-history-fill", "chat-history-line", "chat-new-fill", "chat-new-line", "chat-off-fill", "chat-off-line", "chat-poll-fill", "chat-poll-line", "chat-private-fill", "chat-private-line", "chat-quote-fill", "chat-quote-line", "chat-settings-fill", "chat-settings-line", "chat-smile-2-fill", "chat-smile-2-line", "chat-smile-3-fill", "chat-smile-3-line", "chat-smile-fill", "chat-smile-line", "chat-upload-fill", "chat-upload-line", "chat-voice-fill", "chat-voice-line", "check-double-fill", "check-double-line", "check-fill", "check-line", "checkbox-blank-circle-fill", "checkbox-blank-circle-line", "checkbox-blank-fill", "checkbox-blank-line", "checkbox-circle-fill", "checkbox-circle-line", "checkbox-fill", "checkbox-indeterminate-fill", "checkbox-indeterminate-line", "checkbox-line", "checkbox-multiple-blank-fill", "checkbox-multiple-blank-line", "checkbox-multiple-fill", "checkbox-multiple-line", "china-railway-fill", "china-railway-line", "chrome-fill", "chrome-line", "clapperboard-fill", "clapperboard-line", "clipboard-fill", "clipboard-line", "clockwise-2-fill", "clockwise-2-line", "clockwise-fill", "clockwise-line", "close-circle-fill", "close-circle-line", "close-fill", "close-line", "closed-captioning-fill", "closed-captioning-line", "cloud-fill", "cloud-line", "cloud-off-fill", "cloud-off-line", "cloud-windy-fill", "cloud-windy-line", "cloudy-2-fill", "cloudy-2-line", "cloudy-fill", "cloudy-line", "code-box-fill", "code-box-line", "code-fill", "code-line", "code-s-fill", "code-s-line", "code-s-slash-fill", "code-s-slash-line", "code-view", "codepen-fill", "codepen-line", "coin-fill", "coin-line", "coins-fill", "coins-line", "collage-fill", "collage-line", "command-fill", "command-line", "community-fill", "community-line", "compass-2-fill", "compass-2-line", "compass-3-fill", "compass-3-line", "compass-4-fill", "compass-4-line", "compass-discover-fill", "compass-discover-line", "compass-fill", "compass-line", "compasses-2-fill", "compasses-2-line", "compasses-fill", "compasses-line", "computer-fill", "computer-line", "contacts-book-2-fill", "contacts-book-2-line", "contacts-book-fill", "contacts-book-line", "contacts-book-upload-fill", "contacts-book-upload-line", "contacts-fill", "contacts-line", "contrast-2-fill", "contrast-2-line", "contrast-drop-2-fill", "contrast-drop-2-line", "contrast-drop-fill", "contrast-drop-line", "contrast-fill", "contrast-line", "copper-coin-fill", "copper-coin-line", "copper-diamond-fill", "copper-diamond-line", "copyleft-fill", "copyleft-line", "copyright-fill", "copyright-line", "coreos-fill", "coreos-line", "coupon-2-fill", "coupon-2-line", "coupon-3-fill", "coupon-3-line", "coupon-4-fill", "coupon-4-line", "coupon-5-fill", "coupon-5-line", "coupon-fill", "coupon-line", "cpu-fill", "cpu-line", "creative-commons-by-fill", "creative-commons-by-line", "creative-commons-fill", "creative-commons-line", "creative-commons-nc-fill", "creative-commons-nc-line", "creative-commons-nd-fill", "creative-commons-nd-line", "creative-commons-sa-fill", "creative-commons-sa-line", "creative-commons-zero-fill", "creative-commons-zero-line", "criminal-fill", "criminal-line", "crop-2-fill", "crop-2-line", "crop-fill", "crop-line", "css3-fill", "css3-line", "cup-fill", "cup-line", "currency-fill", "currency-line", "cursor-fill", "cursor-line", "customer-service-2-fill", "customer-service-2-line", "customer-service-fill", "customer-service-line", "dashboard-2-fill", "dashboard-2-line", "dashboard-3-fill", "dashboard-3-line", "dashboard-fill", "dashboard-line", "database-2-fill", "database-2-line", "database-fill", "database-line", "delete-back-2-fill", "delete-back-2-line", "delete-back-fill", "delete-back-line", "delete-bin-2-fill", "delete-bin-2-line", "delete-bin-3-fill", "delete-bin-3-line", "delete-bin-4-fill", "delete-bin-4-line", "delete-bin-5-fill", "delete-bin-5-line", "delete-bin-6-fill", "delete-bin-6-line", "delete-bin-7-fill", "delete-bin-7-line", "delete-bin-fill", "delete-bin-line", "delete-column", "delete-row", "device-fill", "device-line", "device-recover-fill", "device-recover-line", "dingding-fill", "dingding-line", "direction-fill", "direction-line", "disc-fill", "disc-line", "discord-fill", "discord-line", "discuss-fill", "discuss-line", "dislike-fill", "dislike-line", "disqus-fill", "disqus-line", "divide-fill", "divide-line", "donut-chart-fill", "donut-chart-line", "door-closed-fill", "door-closed-line", "door-fill", "door-line", "door-lock-box-fill", "door-lock-box-line", "door-lock-fill", "door-lock-line", "door-open-fill", "door-open-line", "dossier-fill", "dossier-line", "douban-fill", "douban-line", "double-quotes-l", "double-quotes-r", "download-2-fill", "download-2-line", "download-cloud-2-fill", "download-cloud-2-line", "download-cloud-fill", "download-cloud-line", "download-fill", "download-line", "draft-fill", "draft-line", "drag-drop-fill", "drag-drop-line", "drag-move-2-fill", "drag-move-2-line", "drag-move-fill", "drag-move-line", "dribbble-fill", "dribbble-line", "drive-fill", "drive-line", "drizzle-fill", "drizzle-line", "drop-fill", "drop-line", "dropbox-fill", "dropbox-line", "dual-sim-1-fill", "dual-sim-1-line", "dual-sim-2-fill", "dual-sim-2-line", "dv-fill", "dv-line", "dvd-fill", "dvd-line", "e-bike-2-fill", "e-bike-2-line", "e-bike-fill", "e-bike-line", "earth-fill", "earth-line", "earthquake-fill", "earthquake-line", "edge-fill", "edge-line", "edit-2-fill", "edit-2-line", "edit-box-fill", "edit-box-line", "edit-circle-fill", "edit-circle-line", "edit-fill", "edit-line", "eject-fill", "eject-line", "emotion-2-fill", "emotion-2-line", "emotion-fill", "emotion-happy-fill", "emotion-happy-line", "emotion-laugh-fill", "emotion-laugh-line", "emotion-line", "emotion-normal-fill", "emotion-normal-line", "emotion-sad-fill", "emotion-sad-line", "emotion-unhappy-fill", "emotion-unhappy-line", "empathize-fill", "empathize-line", "emphasis", "emphasis-cn", "english-input", "equalizer-fill", "equalizer-line", "eraser-fill", "eraser-line", "error-warning-fill", "error-warning-line", "evernote-fill", "evernote-line", "exchange-box-fill", "exchange-box-line", "exchange-cny-fill", "exchange-cny-line", "exchange-dollar-fill", "exchange-dollar-line", "exchange-fill", "exchange-funds-fill", "exchange-funds-line", "exchange-line", "external-link-fill", "external-link-line", "eye-2-fill", "eye-2-line", "eye-close-fill", "eye-close-line", "eye-fill", "eye-line", "eye-off-fill", "eye-off-line", "facebook-box-fill", "facebook-box-line", "facebook-circle-fill", "facebook-circle-line", "facebook-fill", "facebook-line", "fahrenheit-fill", "fahrenheit-line", "feedback-fill", "feedback-line", "file-2-fill", "file-2-line", "file-3-fill", "file-3-line", "file-4-fill", "file-4-line", "file-add-fill", "file-add-line", "file-chart-2-fill", "file-chart-2-line", "file-chart-fill", "file-chart-line", "file-cloud-fill", "file-cloud-line", "file-code-fill", "file-code-line", "file-copy-2-fill", "file-copy-2-line", "file-copy-fill", "file-copy-line", "file-damage-fill", "file-damage-line", "file-download-fill", "file-download-line", "file-edit-fill", "file-edit-line", "file-excel-2-fill", "file-excel-2-line", "file-excel-fill", "file-excel-line", "file-fill", "file-forbid-fill", "file-forbid-line", "file-gif-fill", "file-gif-line", "file-history-fill", "file-history-line", "file-hwp-fill", "file-hwp-line", "file-info-fill", "file-info-line", "file-line", "file-list-2-fill", "file-list-2-line", "file-list-3-fill", "file-list-3-line", "file-list-fill", "file-list-line", "file-lock-fill", "file-lock-line", "file-mark-fill", "file-mark-line", "file-music-fill", "file-music-line", "file-paper-2-fill", "file-paper-2-line", "file-paper-fill", "file-paper-line", "file-pdf-fill", "file-pdf-line", "file-ppt-2-fill", "file-ppt-2-line", "file-ppt-fill", "file-ppt-line", "file-reduce-fill", "file-reduce-line", "file-search-fill", "file-search-line", "file-settings-fill", "file-settings-line", "file-shield-2-fill", "file-shield-2-line", "file-shield-fill", "file-shield-line", "file-shred-fill", "file-shred-line", "file-text-fill", "file-text-line", "file-transfer-fill", "file-transfer-line", "file-unknow-fill", "file-unknow-line", "file-upload-fill", "file-upload-line", "file-user-fill", "file-user-line", "file-warning-fill", "file-warning-line", "file-word-2-fill", "file-word-2-line", "file-word-fill", "file-word-line", "file-zip-fill", "file-zip-line", "film-fill", "film-line", "filter-2-fill", "filter-2-line", "filter-3-fill", "filter-3-line", "filter-fill", "filter-line", "filter-off-fill", "filter-off-line", "find-replace-fill", "find-replace-line", "finder-fill", "finder-line", "fingerprint-2-fill", "fingerprint-2-line", "fingerprint-fill", "fingerprint-line", "fire-fill", "fire-line", "firefox-fill", "firefox-line", "first-aid-kit-fill", "first-aid-kit-line", "flag-2-fill", "flag-2-line", "flag-fill", "flag-line", "flashlight-fill", "flashlight-line", "flask-fill", "flask-line", "flight-land-fill", "flight-land-line", "flight-takeoff-fill", "flight-takeoff-line", "flood-fill", "flood-line", "flow-chart", "flutter-fill", "flutter-line", "focus-2-fill", "focus-2-line", "focus-3-fill", "focus-3-line", "focus-fill", "focus-line", "foggy-fill", "foggy-line", "folder-2-fill", "folder-2-line", "folder-3-fill", "folder-3-line", "folder-4-fill", "folder-4-line", "folder-5-fill", "folder-5-line", "folder-add-fill", "folder-add-line", "folder-chart-2-fill", "folder-chart-2-line", "folder-chart-fill", "folder-chart-line", "folder-download-fill", "folder-download-line", "folder-fill", "folder-forbid-fill", "folder-forbid-line", "folder-history-fill", "folder-history-line", "folder-info-fill", "folder-info-line", "folder-keyhole-fill", "folder-keyhole-line", "folder-line", "folder-lock-fill", "folder-lock-line", "folder-music-fill", "folder-music-line", "folder-open-fill", "folder-open-line", "folder-received-fill", "folder-received-line", "folder-reduce-fill", "folder-reduce-line", "folder-settings-fill", "folder-settings-line", "folder-shared-fill", "folder-shared-line", "folder-shield-2-fill", "folder-shield-2-line", "folder-shield-fill", "folder-shield-line", "folder-transfer-fill", "folder-transfer-line", "folder-unknow-fill", "folder-unknow-line", "folder-upload-fill", "folder-upload-line", "folder-user-fill", "folder-user-line", "folder-warning-fill", "folder-warning-line", "folder-zip-fill", "folder-zip-line", "folders-fill", "folders-line", "font-color", "font-size", "font-size-2", "football-fill", "football-line", "footprint-fill", "footprint-line", "forbid-2-fill", "forbid-2-line", "forbid-fill", "forbid-line", "format-clear", "fridge-fill", "fridge-line", "fullscreen-exit-fill", "fullscreen-exit-line", "fullscreen-fill", "fullscreen-line", "function-fill", "function-line", "functions", "funds-box-fill", "funds-box-line", "funds-fill", "funds-line", "gallery-fill", "gallery-line", "gallery-upload-fill", "gallery-upload-line", "game-fill", "game-line", "gamepad-fill", "gamepad-line", "gas-station-fill", "gas-station-line", "gatsby-fill", "gatsby-line", "genderless-fill", "genderless-line", "ghost-2-fill", "ghost-2-line", "ghost-fill", "ghost-line", "ghost-smile-fill", "ghost-smile-line", "gift-2-fill", "gift-2-line", "gift-fill", "gift-line", "git-branch-fill", "git-branch-line", "git-commit-fill", "git-commit-line", "git-merge-fill", "git-merge-line", "git-pull-request-fill", "git-pull-request-line", "git-repository-commits-fill", "git-repository-commits-line", "git-repository-fill", "git-repository-line", "git-repository-private-fill", "git-repository-private-line", "github-fill", "github-line", "gitlab-fill", "gitlab-line", "global-fill", "global-line", "globe-fill", "globe-line", "goblet-fill", "goblet-line", "google-fill", "google-line", "google-play-fill", "google-play-line", "government-fill", "government-line", "gps-fill", "gps-line", "gradienter-fill", "gradienter-line", "grid-fill", "grid-line", "group-2-fill", "group-2-line", "group-fill", "group-line", "guide-fill", "guide-line", "h-1", "h-2", "h-3", "h-4", "h-5", "h-6", "hail-fill", "hail-line", "hammer-fill", "hammer-line", "hand-coin-fill", "hand-coin-line", "hand-heart-fill", "hand-heart-line", "hand-sanitizer-fill", "hand-sanitizer-line", "handbag-fill", "handbag-line", "hard-drive-2-fill", "hard-drive-2-line", "hard-drive-fill", "hard-drive-line", "hashtag", "haze-2-fill", "haze-2-line", "haze-fill", "haze-line", "hd-fill", "hd-line", "heading", "headphone-fill", "headphone-line", "health-book-fill", "health-book-line", "heart-2-fill", "heart-2-line", "heart-3-fill", "heart-3-line", "heart-add-fill", "heart-add-line", "heart-fill", "heart-line", "heart-pulse-fill", "heart-pulse-line", "hearts-fill", "hearts-line", "heavy-showers-fill", "heavy-showers-line", "history-fill", "history-line", "home-2-fill", "home-2-line", "home-3-fill", "home-3-line", "home-4-fill", "home-4-line", "home-5-fill", "home-5-line", "home-6-fill", "home-6-line", "home-7-fill", "home-7-line", "home-8-fill", "home-8-line", "home-fill", "home-gear-fill", "home-gear-line", "home-heart-fill", "home-heart-line", "home-line", "home-smile-2-fill", "home-smile-2-line", "home-smile-fill", "home-smile-line", "home-wifi-fill", "home-wifi-line", "honor-of-kings-fill", "honor-of-kings-line", "honour-fill", "honour-line", "hospital-fill", "hospital-line", "hotel-bed-fill", "hotel-bed-line", "hotel-fill", "hotel-line", "hotspot-fill", "hotspot-line", "hq-fill", "hq-line", "html5-fill", "html5-line", "ie-fill", "ie-line", "image-2-fill", "image-2-line", "image-add-fill", "image-add-line", "image-edit-fill", "image-edit-line", "image-fill", "image-line", "inbox-archive-fill", "inbox-archive-line", "inbox-fill", "inbox-line", "inbox-unarchive-fill", "inbox-unarchive-line", "increase-decrease-fill", "increase-decrease-line", "indent-decrease", "indent-increase", "indeterminate-circle-fill", "indeterminate-circle-line", "information-fill", "information-line", "infrared-thermometer-fill", "infrared-thermometer-line", "ink-bottle-fill", "ink-bottle-line", "input-cursor-move", "input-method-fill", "input-method-line", "insert-column-left", "insert-column-right", "insert-row-bottom", "insert-row-top", "instagram-fill", "instagram-line", "install-fill", "install-line", "invision-fill", "invision-line", "italic", "kakao-talk-fill", "kakao-talk-line", "key-2-fill", "key-2-line", "key-fill", "key-line", "keyboard-box-fill", "keyboard-box-line", "keyboard-fill", "keyboard-line", "keynote-fill", "keynote-line", "knife-blood-fill", "knife-blood-line", "knife-fill", "knife-line", "landscape-fill", "landscape-line", "layout-2-fill", "layout-2-line", "layout-3-fill", "layout-3-line", "layout-4-fill", "layout-4-line", "layout-5-fill", "layout-5-line", "layout-6-fill", "layout-6-line", "layout-bottom-2-fill", "layout-bottom-2-line", "layout-bottom-fill", "layout-bottom-line", "layout-column-fill", "layout-column-line", "layout-fill", "layout-grid-fill", "layout-grid-line", "layout-left-2-fill", "layout-left-2-line", "layout-left-fill", "layout-left-line", "layout-line", "layout-masonry-fill", "layout-masonry-line", "layout-right-2-fill", "layout-right-2-line", "layout-right-fill", "layout-right-line", "layout-row-fill", "layout-row-line", "layout-top-2-fill", "layout-top-2-line", "layout-top-fill", "layout-top-line", "leaf-fill", "leaf-line", "lifebuoy-fill", "lifebuoy-line", "lightbulb-fill", "lightbulb-flash-fill", "lightbulb-flash-line", "lightbulb-line", "line-chart-fill", "line-chart-line", "line-fill", "line-height", "line-line", "link", "link-m", "link-unlink", "link-unlink-m", "linkedin-box-fill", "linkedin-box-line", "linkedin-fill", "linkedin-line", "links-fill", "links-line", "list-check", "list-check-2", "list-ordered", "list-settings-fill", "list-settings-line", "list-unordered", "live-fill", "live-line", "loader-2-fill", "loader-2-line", "loader-3-fill", "loader-3-line", "loader-4-fill", "loader-4-line", "loader-5-fill", "loader-5-line", "loader-fill", "loader-line", "lock-2-fill", "lock-2-line", "lock-fill", "lock-line", "lock-password-fill", "lock-password-line", "lock-unlock-fill", "lock-unlock-line", "login-box-fill", "login-box-line", "login-circle-fill", "login-circle-line", "logout-box-fill", "logout-box-line", "logout-box-r-fill", "logout-box-r-line", "logout-circle-fill", "logout-circle-line", "logout-circle-r-fill", "logout-circle-r-line", "luggage-cart-fill", "luggage-cart-line", "luggage-deposit-fill", "luggage-deposit-line", "lungs-fill", "lungs-line", "mac-fill", "mac-line", "macbook-fill", "macbook-line", "magic-fill", "magic-line", "mail-add-fill", "mail-add-line", "mail-check-fill", "mail-check-line", "mail-close-fill", "mail-close-line", "mail-download-fill", "mail-download-line", "mail-fill", "mail-forbid-fill", "mail-forbid-line", "mail-line", "mail-lock-fill", "mail-lock-line", "mail-open-fill", "mail-open-line", "mail-send-fill", "mail-send-line", "mail-settings-fill", "mail-settings-line", "mail-star-fill", "mail-star-line", "mail-unread-fill", "mail-unread-line", "mail-volume-fill", "mail-volume-line", "map-2-fill", "map-2-line", "map-fill", "map-line", "map-pin-2-fill", "map-pin-2-line", "map-pin-3-fill", "map-pin-3-line", "map-pin-4-fill", "map-pin-4-line", "map-pin-5-fill", "map-pin-5-line", "map-pin-add-fill", "map-pin-add-line", "map-pin-fill", "map-pin-line", "map-pin-range-fill", "map-pin-range-line", "map-pin-time-fill", "map-pin-time-line", "map-pin-user-fill", "map-pin-user-line", "mark-pen-fill", "mark-pen-line", "markdown-fill", "markdown-line", "markup-fill", "markup-line", "mastercard-fill", "mastercard-line", "mastodon-fill", "mastodon-line", "medal-2-fill", "medal-2-line", "medal-fill", "medal-line", "medicine-bottle-fill", "medicine-bottle-line", "medium-fill", "medium-line", "men-fill", "men-line", "mental-health-fill", "mental-health-line", "menu-2-fill", "menu-2-line", "menu-3-fill", "menu-3-line", "menu-4-fill", "menu-4-line", "menu-5-fill", "menu-5-line", "menu-add-fill", "menu-add-line", "menu-fill", "menu-fold-fill", "menu-fold-line", "menu-line", "menu-unfold-fill", "menu-unfold-line", "merge-cells-horizontal", "merge-cells-vertical", "message-2-fill", "message-2-line", "message-3-fill", "message-3-line", "message-fill", "message-line", "messenger-fill", "messenger-line", "meteor-fill", "meteor-line", "mic-2-fill", "mic-2-line", "mic-fill", "mic-line", "mic-off-fill", "mic-off-line", "mickey-fill", "mickey-line", "microscope-fill", "microscope-line", "microsoft-fill", "microsoft-line", "mind-map", "mini-program-fill", "mini-program-line", "mist-fill", "mist-line", "money-cny-box-fill", "money-cny-box-line", "money-cny-circle-fill", "money-cny-circle-line", "money-dollar-box-fill", "money-dollar-box-line", "money-dollar-circle-fill", "money-dollar-circle-line", "money-euro-box-fill", "money-euro-box-line", "money-euro-circle-fill", "money-euro-circle-line", "money-pound-box-fill", "money-pound-box-line", "money-pound-circle-fill", "money-pound-circle-line", "moon-clear-fill", "moon-clear-line", "moon-cloudy-fill", "moon-cloudy-line", "moon-fill", "moon-foggy-fill", "moon-foggy-line", "moon-line", "more-2-fill", "more-2-line", "more-fill", "more-line", "motorbike-fill", "motorbike-line", "mouse-fill", "mouse-line", "movie-2-fill", "movie-2-line", "movie-fill", "movie-line", "music-2-fill", "music-2-line", "music-fill", "music-line", "mv-fill", "mv-line", "navigation-fill", "navigation-line", "netease-cloud-music-fill", "netease-cloud-music-line", "netflix-fill", "netflix-line", "newspaper-fill", "newspaper-line", "node-tree", "notification-2-fill", "notification-2-line", "notification-3-fill", "notification-3-line", "notification-4-fill", "notification-4-line", "notification-badge-fill", "notification-badge-line", "notification-fill", "notification-line", "notification-off-fill", "notification-off-line", "npmjs-fill", "npmjs-line", "number-0", "number-1", "number-2", "number-3", "number-4", "number-5", "number-6", "number-7", "number-8", "number-9", "numbers-fill", "numbers-line", "nurse-fill", "nurse-line", "oil-fill", "oil-line", "omega", "open-arm-fill", "open-arm-line", "open-source-fill", "open-source-line", "opera-fill", "opera-line", "order-play-fill", "order-play-line", "organization-chart", "outlet-2-fill", "outlet-2-line", "outlet-fill", "outlet-line", "page-separator", "pages-fill", "pages-line", "paint-brush-fill", "paint-brush-line", "paint-fill", "paint-line", "palette-fill", "palette-line", "pantone-fill", "pantone-line", "paragraph", "parent-fill", "parent-line", "parentheses-fill", "parentheses-line", "parking-box-fill", "parking-box-line", "parking-fill", "parking-line", "passport-fill", "passport-line", "patreon-fill", "patreon-line", "pause-circle-fill", "pause-circle-line", "pause-fill", "pause-line", "pause-mini-fill", "pause-mini-line", "paypal-fill", "paypal-line", "pen-nib-fill", "pen-nib-line", "pencil-fill", "pencil-line", "pencil-ruler-2-fill", "pencil-ruler-2-line", "pencil-ruler-fill", "pencil-ruler-line", "percent-fill", "percent-line", "phone-camera-fill", "phone-camera-line", "phone-fill", "phone-find-fill", "phone-find-line", "phone-line", "phone-lock-fill", "phone-lock-line", "picture-in-picture-2-fill", "picture-in-picture-2-line", "picture-in-picture-exit-fill", "picture-in-picture-exit-line", "picture-in-picture-fill", "picture-in-picture-line", "pie-chart-2-fill", "pie-chart-2-line", "pie-chart-box-fill", "pie-chart-box-line", "pie-chart-fill", "pie-chart-line", "pin-distance-fill", "pin-distance-line", "ping-pong-fill", "ping-pong-line", "pinterest-fill", "pinterest-line", "pinyin-input", "pixelfed-fill", "pixelfed-line", "plane-fill", "plane-line", "plant-fill", "plant-line", "play-circle-fill", "play-circle-line", "play-fill", "play-line", "play-list-2-fill", "play-list-2-line", "play-list-add-fill", "play-list-add-line", "play-list-fill", "play-list-line", "play-mini-fill", "play-mini-line", "playstation-fill", "playstation-line", "plug-2-fill", "plug-2-line", "plug-fill", "plug-line", "polaroid-2-fill", "polaroid-2-line", "polaroid-fill", "polaroid-line", "police-car-fill", "police-car-line", "price-tag-2-fill", "price-tag-2-line", "price-tag-3-fill", "price-tag-3-line", "price-tag-fill", "price-tag-line", "printer-cloud-fill", "printer-cloud-line", "printer-fill", "printer-line", "product-hunt-fill", "product-hunt-line", "profile-fill", "profile-line", "projector-2-fill", "projector-2-line", "projector-fill", "projector-line", "psychotherapy-fill", "psychotherapy-line", "pulse-fill", "pulse-line", "pushpin-2-fill", "pushpin-2-line", "pushpin-fill", "pushpin-line", "qq-fill", "qq-line", "qr-code-fill", "qr-code-line", "qr-scan-2-fill", "qr-scan-2-line", "qr-scan-fill", "qr-scan-line", "question-answer-fill", "question-answer-line", "question-fill", "question-line", "question-mark", "questionnaire-fill", "questionnaire-line", "quill-pen-fill", "quill-pen-line", "radar-fill", "radar-line", "radio-2-fill", "radio-2-line", "radio-button-fill", "radio-button-line", "radio-fill", "radio-line", "rainbow-fill", "rainbow-line", "rainy-fill", "rainy-line", "reactjs-fill", "reactjs-line", "record-circle-fill", "record-circle-line", "record-mail-fill", "record-mail-line", "recycle-fill", "recycle-line", "red-packet-fill", "red-packet-line", "reddit-fill", "reddit-line", "refresh-fill", "refresh-line", "refund-2-fill", "refund-2-line", "refund-fill", "refund-line", "registered-fill", "registered-line", "remixicon-fill", "remixicon-line", "remote-control-2-fill", "remote-control-2-line", "remote-control-fill", "remote-control-line", "repeat-2-fill", "repeat-2-line", "repeat-fill", "repeat-line", "repeat-one-fill", "repeat-one-line", "reply-all-fill", "reply-all-line", "reply-fill", "reply-line", "reserved-fill", "reserved-line", "rest-time-fill", "rest-time-line", "restart-fill", "restart-line", "restaurant-2-fill", "restaurant-2-line", "restaurant-fill", "restaurant-line", "rewind-fill", "rewind-line", "rewind-mini-fill", "rewind-mini-line", "rhythm-fill", "rhythm-line", "riding-fill", "riding-line", "road-map-fill", "road-map-line", "roadster-fill", "roadster-line", "robot-fill", "robot-line", "rocket-2-fill", "rocket-2-line", "rocket-fill", "rocket-line", "rotate-lock-fill", "rotate-lock-line", "rounded-corner", "route-fill", "route-line", "router-fill", "router-line", "rss-fill", "rss-line", "ruler-2-fill", "ruler-2-line", "ruler-fill", "ruler-line", "run-fill", "run-line", "safari-fill", "safari-line", "safe-2-fill", "safe-2-line", "safe-fill", "safe-line", "sailboat-fill", "sailboat-line", "save-2-fill", "save-2-line", "save-3-fill", "save-3-line", "save-fill", "save-line", "scales-2-fill", "scales-2-line", "scales-3-fill", "scales-3-line", "scales-fill", "scales-line", "scan-2-fill", "scan-2-line", "scan-fill", "scan-line", "scissors-2-fill", "scissors-2-line", "scissors-cut-fill", "scissors-cut-line", "scissors-fill", "scissors-line", "screenshot-2-fill", "screenshot-2-line", "screenshot-fill", "screenshot-line", "sd-card-fill", "sd-card-line", "sd-card-mini-fill", "sd-card-mini-line", "search-2-fill", "search-2-line", "search-eye-fill", "search-eye-line", "search-fill", "search-line", "secure-payment-fill", "secure-payment-line", "seedling-fill", "seedling-line", "send-backward", "send-plane-2-fill", "send-plane-2-line", "send-plane-fill", "send-plane-line", "send-to-back", "sensor-fill", "sensor-line", "separator", "server-fill", "server-line", "service-fill", "service-line", "settings-2-fill", "settings-2-line", "settings-3-fill", "settings-3-line", "settings-4-fill", "settings-4-line", "settings-5-fill", "settings-5-line", "settings-6-fill", "settings-6-line", "settings-fill", "settings-line", "shape-2-fill", "shape-2-line", "shape-fill", "shape-line", "share-box-fill", "share-box-line", "share-circle-fill", "share-circle-line", "share-fill", "share-forward-2-fill", "share-forward-2-line", "share-forward-box-fill", "share-forward-box-line", "share-forward-fill", "share-forward-line", "share-line", "shield-check-fill", "shield-check-line", "shield-cross-fill", "shield-cross-line", "shield-fill", "shield-flash-fill", "shield-flash-line", "shield-keyhole-fill", "shield-keyhole-line", "shield-line", "shield-star-fill", "shield-star-line", "shield-user-fill", "shield-user-line", "ship-2-fill", "ship-2-line", "ship-fill", "ship-line", "shirt-fill", "shirt-line", "shopping-bag-2-fill", "shopping-bag-2-line", "shopping-bag-3-fill", "shopping-bag-3-line", "shopping-bag-fill", "shopping-bag-line", "shopping-basket-2-fill", "shopping-basket-2-line", "shopping-basket-fill", "shopping-basket-line", "shopping-cart-2-fill", "shopping-cart-2-line", "shopping-cart-fill", "shopping-cart-line", "showers-fill", "showers-line", "shuffle-fill", "shuffle-line", "shut-down-fill", "shut-down-line", "side-bar-fill", "side-bar-line", "signal-tower-fill", "signal-tower-line", "signal-wifi-1-fill", "signal-wifi-1-line", "signal-wifi-2-fill", "signal-wifi-2-line", "signal-wifi-3-fill", "signal-wifi-3-line", "signal-wifi-error-fill", "signal-wifi-error-line", "signal-wifi-fill", "signal-wifi-line", "signal-wifi-off-fill", "signal-wifi-off-line", "sim-card-2-fill", "sim-card-2-line", "sim-card-fill", "sim-card-line", "single-quotes-l", "single-quotes-r", "sip-fill", "sip-line", "skip-back-fill", "skip-back-line", "skip-back-mini-fill", "skip-back-mini-line", "skip-forward-fill", "skip-forward-line", "skip-forward-mini-fill", "skip-forward-mini-line", "skull-2-fill", "skull-2-line", "skull-fill", "skull-line", "skype-fill", "skype-line", "slack-fill", "slack-line", "slice-fill", "slice-line", "slideshow-2-fill", "slideshow-2-line", "slideshow-3-fill", "slideshow-3-line", "slideshow-4-fill", "slideshow-4-line", "slideshow-fill", "slideshow-line", "smartphone-fill", "smartphone-line", "snapchat-fill", "snapchat-line", "snowy-fill", "snowy-line", "sort-asc", "sort-desc", "sound-module-fill", "sound-module-line", "soundcloud-fill", "soundcloud-line", "space", "space-ship-fill", "space-ship-line", "spam-2-fill", "spam-2-line", "spam-3-fill", "spam-3-line", "spam-fill", "spam-line", "speaker-2-fill", "speaker-2-line", "speaker-3-fill", "speaker-3-line", "speaker-fill", "speaker-line", "spectrum-fill", "spectrum-line", "speed-fill", "speed-line", "speed-mini-fill", "speed-mini-line", "split-cells-horizontal", "split-cells-vertical", "spotify-fill", "spotify-line", "spy-fill", "spy-line", "stack-fill", "stack-line", "stack-overflow-fill", "stack-overflow-line", "stackshare-fill", "stackshare-line", "star-fill", "star-half-fill", "star-half-line", "star-half-s-fill", "star-half-s-line", "star-line", "star-s-fill", "star-s-line", "star-smile-fill", "star-smile-line", "steam-fill", "steam-line", "steering-2-fill", "steering-2-line", "steering-fill", "steering-line", "stethoscope-fill", "stethoscope-line", "sticky-note-2-fill", "sticky-note-2-line", "sticky-note-fill", "sticky-note-line", "stock-fill", "stock-line", "stop-circle-fill", "stop-circle-line", "stop-fill", "stop-line", "stop-mini-fill", "stop-mini-line", "store-2-fill", "store-2-line", "store-3-fill", "store-3-line", "store-fill", "store-line", "strikethrough", "strikethrough-2", "subscript", "subscript-2", "subtract-fill", "subtract-line", "subway-fill", "subway-line", "subway-wifi-fill", "subway-wifi-line", "suitcase-2-fill", "suitcase-2-line", "suitcase-3-fill", "suitcase-3-line", "suitcase-fill", "suitcase-line", "sun-cloudy-fill", "sun-cloudy-line", "sun-fill", "sun-foggy-fill", "sun-foggy-line", "sun-line", "superscript", "superscript-2", "surgical-mask-fill", "surgical-mask-line", "surround-sound-fill", "surround-sound-line", "survey-fill", "survey-line", "swap-box-fill", "swap-box-line", "swap-fill", "swap-line", "switch-fill", "switch-line", "sword-fill", "sword-line", "syringe-fill", "syringe-line", "t-box-fill", "t-box-line", "t-shirt-2-fill", "t-shirt-2-line", "t-shirt-air-fill", "t-shirt-air-line", "t-shirt-fill", "t-shirt-line", "table-2", "table-alt-fill", "table-alt-line", "table-fill", "table-line", "tablet-fill", "tablet-line", "takeaway-fill", "takeaway-line", "taobao-fill", "taobao-line", "tape-fill", "tape-line", "task-fill", "task-line", "taxi-fill", "taxi-line", "taxi-wifi-fill", "taxi-wifi-line", "team-fill", "team-line", "telegram-fill", "telegram-line", "temp-cold-fill", "temp-cold-line", "temp-hot-fill", "temp-hot-line", "terminal-box-fill", "terminal-box-line", "terminal-fill", "terminal-line", "terminal-window-fill", "terminal-window-line", "test-tube-fill", "test-tube-line", "text", "text-direction-l", "text-direction-r", "text-spacing", "text-wrap", "thermometer-fill", "thermometer-line", "thumb-down-fill", "thumb-down-line", "thumb-up-fill", "thumb-up-line", "thunderstorms-fill", "thunderstorms-line", "ticket-2-fill", "ticket-2-line", "ticket-fill", "ticket-line", "time-fill", "time-line", "timer-2-fill", "timer-2-line", "timer-fill", "timer-flash-fill", "timer-flash-line", "timer-line", "todo-fill", "todo-line", "toggle-fill", "toggle-line", "tools-fill", "tools-line", "tornado-fill", "tornado-line", "trademark-fill", "trademark-line", "traffic-light-fill", "traffic-light-line", "train-fill", "train-line", "train-wifi-fill", "train-wifi-line", "translate", "translate-2", "travesti-fill", "travesti-line", "treasure-map-fill", "treasure-map-line", "trello-fill", "trello-line", "trophy-fill", "trophy-line", "truck-fill", "truck-line", "tumblr-fill", "tumblr-line", "tv-2-fill", "tv-2-line", "tv-fill", "tv-line", "twitch-fill", "twitch-line", "twitter-fill", "twitter-line", "typhoon-fill", "typhoon-line", "u-disk-fill", "u-disk-line", "ubuntu-fill", "ubuntu-line", "umbrella-fill", "umbrella-line", "underline", "uninstall-fill", "uninstall-line", "unsplash-fill", "unsplash-line", "upload-2-fill", "upload-2-line", "upload-cloud-2-fill", "upload-cloud-2-line", "upload-cloud-fill", "upload-cloud-line", "upload-fill", "upload-line", "usb-fill", "usb-line", "user-2-fill", "user-2-line", "user-3-fill", "user-3-line", "user-4-fill", "user-4-line", "user-5-fill", "user-5-line", "user-6-fill", "user-6-line", "user-add-fill", "user-add-line", "user-fill", "user-follow-fill", "user-follow-line", "user-heart-fill", "user-heart-line", "user-line", "user-location-fill", "user-location-line", "user-received-2-fill", "user-received-2-line", "user-received-fill", "user-received-line", "user-search-fill", "user-search-line", "user-settings-fill", "user-settings-line", "user-shared-2-fill", "user-shared-2-line", "user-shared-fill", "user-shared-line", "user-smile-fill", "user-smile-line", "user-star-fill", "user-star-line", "user-unfollow-fill", "user-unfollow-line", "user-voice-fill", "user-voice-line", "video-add-fill", "video-add-line", "video-chat-fill", "video-chat-line", "video-download-fill", "video-download-line", "video-fill", "video-line", "video-upload-fill", "video-upload-line", "vidicon-2-fill", "vidicon-2-line", "vidicon-fill", "vidicon-line", "vimeo-fill", "vimeo-line", "vip-crown-2-fill", "vip-crown-2-line", "vip-crown-fill", "vip-crown-line", "vip-diamond-fill", "vip-diamond-line", "vip-fill", "vip-line", "virus-fill", "virus-line", "visa-fill", "visa-line", "voice-recognition-fill", "voice-recognition-line", "voiceprint-fill", "voiceprint-line", "volume-down-fill", "volume-down-line", "volume-mute-fill", "volume-mute-line", "volume-off-vibrate-fill", "volume-off-vibrate-line", "volume-up-fill", "volume-up-line", "volume-vibrate-fill", "volume-vibrate-line", "vuejs-fill", "vuejs-line", "walk-fill", "walk-line", "wallet-2-fill", "wallet-2-line", "wallet-3-fill", "wallet-3-line", "wallet-fill", "wallet-line", "water-flash-fill", "water-flash-line", "webcam-fill", "webcam-line", "wechat-2-fill", "wechat-2-line", "wechat-fill", "wechat-line", "wechat-pay-fill", "wechat-pay-line", "weibo-fill", "weibo-line", "whatsapp-fill", "whatsapp-line", "wheelchair-fill", "wheelchair-line", "wifi-fill", "wifi-line", "wifi-off-fill", "wifi-off-line", "window-2-fill", "window-2-line", "window-fill", "window-line", "windows-fill", "windows-line", "windy-fill", "windy-line", "wireless-charging-fill", "wireless-charging-line", "women-fill", "women-line", "wubi-input", "xbox-fill", "xbox-line", "xing-fill", "xing-line", "youtube-fill", "youtube-line", "zcool-fill", "zcool-line", "zhihu-fill", "zhihu-line", "zoom-in-fill", "zoom-in-line", "zoom-out-fill", "zoom-out-line", "zzz-fill", "zzz-line"] }] diff --git a/src/iconify/index.json b/src/iconify/index.json new file mode 100755 index 0000000..98b83bd --- /dev/null +++ b/src/iconify/index.json @@ -0,0 +1 @@ +{ "collections": ["ant-design", "flagpack", "icon-park", "mdi", "logos", "twemoji", "vscode-icons", "ep", "ri"], "useType": "online" } diff --git a/src/iconify/index.ts b/src/iconify/index.ts new file mode 100755 index 0000000..e746005 --- /dev/null +++ b/src/iconify/index.ts @@ -0,0 +1,9 @@ +import { addCollection } from '@iconify/vue' +import data from './data.json' + +export async function downloadAndInstall(name: string) { + const data = Object.freeze(await fetch(`./icons/${name}-raw.json`).then(r => r.json())) + addCollection(data) +} + +export const icons = data.sort((a, b) => a.info.name.localeCompare(b.info.name)) diff --git a/src/layouts/components/AppSetting/index.vue b/src/layouts/components/AppSetting/index.vue new file mode 100755 index 0000000..3e60031 --- /dev/null +++ b/src/layouts/components/AppSetting/index.vue @@ -0,0 +1,394 @@ + + + + + diff --git a/src/layouts/components/BackTop/index.vue b/src/layouts/components/BackTop/index.vue new file mode 100644 index 0000000..02801b0 --- /dev/null +++ b/src/layouts/components/BackTop/index.vue @@ -0,0 +1,45 @@ + + + diff --git a/src/layouts/components/Breadcrumb/index.vue b/src/layouts/components/Breadcrumb/index.vue new file mode 100644 index 0000000..d432d20 --- /dev/null +++ b/src/layouts/components/Breadcrumb/index.vue @@ -0,0 +1,21 @@ + + + diff --git a/src/layouts/components/Breadcrumb/item.vue b/src/layouts/components/Breadcrumb/item.vue new file mode 100644 index 0000000..8647976 --- /dev/null +++ b/src/layouts/components/Breadcrumb/item.vue @@ -0,0 +1,38 @@ + + + diff --git a/src/layouts/components/Copyright/index.vue b/src/layouts/components/Copyright/index.vue new file mode 100755 index 0000000..17cc294 --- /dev/null +++ b/src/layouts/components/Copyright/index.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/src/layouts/components/Header/index.vue b/src/layouts/components/Header/index.vue new file mode 100755 index 0000000..6462440 --- /dev/null +++ b/src/layouts/components/Header/index.vue @@ -0,0 +1,189 @@ + + + + + diff --git a/src/layouts/components/HotkeysIntro/index.vue b/src/layouts/components/HotkeysIntro/index.vue new file mode 100755 index 0000000..cad63e7 --- /dev/null +++ b/src/layouts/components/HotkeysIntro/index.vue @@ -0,0 +1,56 @@ + + + diff --git a/src/layouts/components/Logo/index.vue b/src/layouts/components/Logo/index.vue new file mode 100755 index 0000000..68fd0b8 --- /dev/null +++ b/src/layouts/components/Logo/index.vue @@ -0,0 +1,41 @@ + + + diff --git a/src/layouts/components/MainSidebar/index.vue b/src/layouts/components/MainSidebar/index.vue new file mode 100755 index 0000000..c93dd4c --- /dev/null +++ b/src/layouts/components/MainSidebar/index.vue @@ -0,0 +1,115 @@ + + + + + diff --git a/src/layouts/components/Menu/index.vue b/src/layouts/components/Menu/index.vue new file mode 100644 index 0000000..5b9c5f8 --- /dev/null +++ b/src/layouts/components/Menu/index.vue @@ -0,0 +1,182 @@ + + + diff --git a/src/layouts/components/Menu/item.vue b/src/layouts/components/Menu/item.vue new file mode 100644 index 0000000..3511e26 --- /dev/null +++ b/src/layouts/components/Menu/item.vue @@ -0,0 +1,85 @@ + + + diff --git a/src/layouts/components/Menu/sub.vue b/src/layouts/components/Menu/sub.vue new file mode 100644 index 0000000..cb1b048 --- /dev/null +++ b/src/layouts/components/Menu/sub.vue @@ -0,0 +1,202 @@ + + + diff --git a/src/layouts/components/Menu/types.ts b/src/layouts/components/Menu/types.ts new file mode 100644 index 0000000..80ea481 --- /dev/null +++ b/src/layouts/components/Menu/types.ts @@ -0,0 +1,34 @@ +import { createInjectionKey } from '@/utils/injectionKeys' +import type { Menu } from '#/global' + +export interface MenuItem { + index: string + indexPath: string[] + active?: boolean +} + +export interface MenuProps { + menu: Menu.recordRaw[] + value: string + accordion?: boolean + defaultOpeneds?: string[] + mode?: 'horizontal' | 'vertical' + collapse?: boolean + showCollapseName?: boolean +} + +export interface MenuInjection { + props: MenuProps + items: Record + subMenus: Record + activeIndex: MenuProps['value'] + openedMenus: string[] + mouseInMenu: string[] + isMenuPopup: boolean + openMenu: (index: string, indexPath: string[]) => void + closeMenu: (index: string | string[]) => void + handleMenuItemClick: (index: string, meta?: Menu.recordRaw['meta']) => void + handleSubMenuClick: (index: string, indexPath: string[]) => void +} + +export const rootMenuInjectionKey = createInjectionKey('rootMenu') diff --git a/src/layouts/components/Search/index.vue b/src/layouts/components/Search/index.vue new file mode 100755 index 0000000..e9ff15e --- /dev/null +++ b/src/layouts/components/Search/index.vue @@ -0,0 +1,341 @@ + + + diff --git a/src/layouts/components/SubSidebar/index.vue b/src/layouts/components/SubSidebar/index.vue new file mode 100755 index 0000000..8d2f5d8 --- /dev/null +++ b/src/layouts/components/SubSidebar/index.vue @@ -0,0 +1,137 @@ + + + + + diff --git a/src/layouts/components/Tools/index.vue b/src/layouts/components/Tools/index.vue new file mode 100755 index 0000000..9082e8d --- /dev/null +++ b/src/layouts/components/Tools/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/layouts/components/Topbar/Toolbar/index.vue b/src/layouts/components/Topbar/Toolbar/index.vue new file mode 100755 index 0000000..950b6d4 --- /dev/null +++ b/src/layouts/components/Topbar/Toolbar/index.vue @@ -0,0 +1,107 @@ + + + + + diff --git a/src/layouts/components/Topbar/index.vue b/src/layouts/components/Topbar/index.vue new file mode 100755 index 0000000..1e6aa88 --- /dev/null +++ b/src/layouts/components/Topbar/index.vue @@ -0,0 +1,74 @@ + + + + + diff --git a/src/layouts/components/views/link.vue b/src/layouts/components/views/link.vue new file mode 100755 index 0000000..af1509e --- /dev/null +++ b/src/layouts/components/views/link.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/src/layouts/index.vue b/src/layouts/index.vue new file mode 100755 index 0000000..4411d56 --- /dev/null +++ b/src/layouts/index.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/src/layouts/ui-kit/HButton.vue b/src/layouts/ui-kit/HButton.vue new file mode 100644 index 0000000..d7a588d --- /dev/null +++ b/src/layouts/ui-kit/HButton.vue @@ -0,0 +1,28 @@ + + + diff --git a/src/layouts/ui-kit/HCheckList.vue b/src/layouts/ui-kit/HCheckList.vue new file mode 100644 index 0000000..017e4cf --- /dev/null +++ b/src/layouts/ui-kit/HCheckList.vue @@ -0,0 +1,37 @@ + + + diff --git a/src/layouts/ui-kit/HDialog.vue b/src/layouts/ui-kit/HDialog.vue new file mode 100644 index 0000000..2711232 --- /dev/null +++ b/src/layouts/ui-kit/HDialog.vue @@ -0,0 +1,90 @@ + + + diff --git a/src/layouts/ui-kit/HDropdown.vue b/src/layouts/ui-kit/HDropdown.vue new file mode 100644 index 0000000..9f00c17 --- /dev/null +++ b/src/layouts/ui-kit/HDropdown.vue @@ -0,0 +1,8 @@ + diff --git a/src/layouts/ui-kit/HDropdownMenu.vue b/src/layouts/ui-kit/HDropdownMenu.vue new file mode 100644 index 0000000..335d1c1 --- /dev/null +++ b/src/layouts/ui-kit/HDropdownMenu.vue @@ -0,0 +1,29 @@ + + + diff --git a/src/layouts/ui-kit/HInput.vue b/src/layouts/ui-kit/HInput.vue new file mode 100644 index 0000000..c3e6bbc --- /dev/null +++ b/src/layouts/ui-kit/HInput.vue @@ -0,0 +1,32 @@ + + + diff --git a/src/layouts/ui-kit/HKbd.vue b/src/layouts/ui-kit/HKbd.vue new file mode 100644 index 0000000..05ca527 --- /dev/null +++ b/src/layouts/ui-kit/HKbd.vue @@ -0,0 +1,5 @@ + diff --git a/src/layouts/ui-kit/HSelect.vue b/src/layouts/ui-kit/HSelect.vue new file mode 100644 index 0000000..6139e23 --- /dev/null +++ b/src/layouts/ui-kit/HSelect.vue @@ -0,0 +1,51 @@ + + + diff --git a/src/layouts/ui-kit/HSlideover.vue b/src/layouts/ui-kit/HSlideover.vue new file mode 100644 index 0000000..61bd57f --- /dev/null +++ b/src/layouts/ui-kit/HSlideover.vue @@ -0,0 +1,91 @@ + + + diff --git a/src/layouts/ui-kit/HTabList.vue b/src/layouts/ui-kit/HTabList.vue new file mode 100644 index 0000000..2b12ac5 --- /dev/null +++ b/src/layouts/ui-kit/HTabList.vue @@ -0,0 +1,50 @@ + + + diff --git a/src/layouts/ui-kit/HToggle.vue b/src/layouts/ui-kit/HToggle.vue new file mode 100644 index 0000000..004ccd4 --- /dev/null +++ b/src/layouts/ui-kit/HToggle.vue @@ -0,0 +1,38 @@ + + + diff --git a/src/layouts/ui-kit/HTooltip.vue b/src/layouts/ui-kit/HTooltip.vue new file mode 100644 index 0000000..10fe1ee --- /dev/null +++ b/src/layouts/ui-kit/HTooltip.vue @@ -0,0 +1,21 @@ + + + diff --git a/src/main.ts b/src/main.ts new file mode 100755 index 0000000..c4e8c19 --- /dev/null +++ b/src/main.ts @@ -0,0 +1,50 @@ +import '@/utils/baidu' + +import '@/utils/system.copyright' + +import TDesign from 'tdesign-vue-next' +import 'tdesign-vue-next/es/style/index.css' + +import FloatingVue from 'floating-vue' +import 'floating-vue/dist/style.css' + +import Message from 'vue-m-message' +import 'vue-m-message/dist/style.css' + +import 'overlayscrollbars/overlayscrollbars.css' + +import App from './App.vue' +import pinia from './store' +import router from './router' + +// 自定义指令 +import directive from '@/utils/directive' + +// 加载 svg 图标 +import 'virtual:svg-icons-register' + +// 加载 iconify 图标 +import { downloadAndInstall } from '@/iconify' +import icons from '@/iconify/index.json' + +import 'virtual:uno.css' + +// 全局样式 +import '@/assets/styles/globals.scss' + +const app = createApp(App) +app.use(TDesign) +app.use(FloatingVue, { + distance: 12, +}) +app.use(Message) +app.use(pinia) +app.use(router) +directive(app) +if (icons.useType === 'offline') { + for (const info of icons.collections) { + downloadAndInstall(info) + } +} + +app.mount('#app') diff --git a/src/menu/index.ts b/src/menu/index.ts new file mode 100755 index 0000000..8267763 --- /dev/null +++ b/src/menu/index.ts @@ -0,0 +1,17 @@ +import MultilevelMenuExample from './modules/multilevel.menu.example' + +import type { Menu } from '#/global' + +const menu: Menu.recordMainRaw[] = [ + { + meta: { + title: '演示', + icon: 'uim:box', + }, + children: [ + MultilevelMenuExample, + ], + }, +] + +export default menu diff --git a/src/menu/modules/multilevel.menu.example.ts b/src/menu/modules/multilevel.menu.example.ts new file mode 100755 index 0000000..eb41297 --- /dev/null +++ b/src/menu/modules/multilevel.menu.example.ts @@ -0,0 +1,50 @@ +import type { Menu } from '#/global' + +const menus: Menu.recordRaw = { + meta: { + title: '多级导航', + icon: 'heroicons-solid:menu-alt-3', + }, + children: [ + { + path: '/multilevel_menu_example/page', + meta: { + title: '导航1', + }, + }, + { + meta: { + title: '导航2', + }, + children: [ + { + path: '/multilevel_menu_example/level2/page', + meta: { + title: '导航2-1', + }, + }, + { + meta: { + title: '导航2-2', + }, + children: [ + { + path: '/multilevel_menu_example/level2/level3/page1', + meta: { + title: '导航2-2-1', + }, + }, + { + path: '/multilevel_menu_example/level2/level3/page2', + meta: { + title: '导航2-2-2', + }, + }, + ], + }, + ], + }, + ], +} + +export default menus diff --git a/src/mock/app.ts b/src/mock/app.ts new file mode 100755 index 0000000..47dc1c9 --- /dev/null +++ b/src/mock/app.ts @@ -0,0 +1,152 @@ +export default [ + { + url: '/mock/app/route/list', + method: 'get', + response: () => { + return { + error: '', + status: 1, + data: [ + { + meta: { + title: '演示', + icon: 'uim:box', + }, + children: [ + { + path: '/multilevel_menu_example', + component: 'Layout', + redirect: '/multilevel_menu_example/page', + name: 'multilevelMenuExample', + meta: { + title: '多级导航', + icon: 'heroicons-solid:menu-alt-3', + }, + children: [ + { + path: 'page', + name: 'multilevelMenuExample1', + component: 'multilevel_menu_example/page.vue', + meta: { + title: '导航1', + }, + }, + { + path: 'level2', + name: 'multilevelMenuExample2', + redirect: '/multilevel_menu_example/level2/page', + meta: { + title: '导航2', + }, + children: [ + { + path: 'page', + name: 'multilevelMenuExample2-1', + component: 'multilevel_menu_example/level2/page.vue', + meta: { + title: '导航2-1', + }, + }, + { + path: 'level3', + name: 'multilevelMenuExample2-2', + redirect: '/multilevel_menu_example/level2/level3/page1', + meta: { + title: '导航2-2', + }, + children: [ + { + path: 'page1', + name: 'multilevelMenuExample2-2-1', + component: 'multilevel_menu_example/level2/level3/page1.vue', + meta: { + title: '导航2-2-1', + }, + }, + { + path: 'page2', + name: 'multilevelMenuExample2-2-2', + component: 'multilevel_menu_example/level2/level3/page2.vue', + meta: { + title: '导航2-2-2', + }, + }, + ], + }, + ], + }, + ], + }, + ], + }, + ], + } + }, + }, + { + url: '/mock/app/menu/list', + method: 'get', + response: () => { + return { + error: '', + status: 1, + data: [ + { + meta: { + title: '演示', + icon: 'uim:box', + }, + children: [ + { + meta: { + title: '多级导航', + icon: 'heroicons-solid:menu-alt-3', + }, + children: [ + { + path: '/multilevel_menu_example/page', + meta: { + title: '导航1', + }, + }, + { + meta: { + title: '导航2', + }, + children: [ + { + path: '/multilevel_menu_example/level2/page', + meta: { + title: '导航2-1', + }, + }, + { + meta: { + title: '导航2-2', + }, + children: [ + { + path: '/multilevel_menu_example/level2/level3/page1', + meta: { + title: '导航2-2-1', + }, + }, + { + path: '/multilevel_menu_example/level2/level3/page2', + meta: { + title: '导航2-2-2', + }, + }, + ], + }, + ], + }, + ], + }, + ], + }, + ], + } + }, + }, +] diff --git a/src/mock/user.ts b/src/mock/user.ts new file mode 100755 index 0000000..23b43bf --- /dev/null +++ b/src/mock/user.ts @@ -0,0 +1,56 @@ +export default [ + { + url: '/mock/user/login', + method: 'post', + response: ({ body }: any) => { + return { + error: '', + status: 1, + data: { + account: body.account, + token: `${body.account}_@string`, + failure_time: Math.ceil(new Date().getTime() / 1000) + 24 * 60 * 60, + avatar: '', + }, + } + }, + }, + { + url: '/mock/user/permission', + method: 'get', + response: ({ headers }: any) => { + let permissions: string[] = [] + if (headers.token.indexOf('admin') === 0) { + permissions = [ + 'permission.browse', + 'permission.create', + 'permission.edit', + 'permission.remove', + ] + } + else if (headers.token.indexOf('test') === 0) { + permissions = [ + 'permission.browse', + ] + } + return { + error: '', + status: 1, + data: { + permissions, + }, + } + }, + }, + { + url: '/mock/user/password/edit', + method: 'post', + response: { + error: '', + status: 1, + data: { + isSuccess: true, + }, + }, + }, +] diff --git a/src/mockProdServer.ts b/src/mockProdServer.ts new file mode 100755 index 0000000..1664f25 --- /dev/null +++ b/src/mockProdServer.ts @@ -0,0 +1,12 @@ +import { createProdMockServer } from 'vite-plugin-mock/es/createProdMockServer' + +const mocks: any[] = [] +const mockContext = import.meta.glob('./mock/*.ts', { eager: true }) + +Object.keys(mockContext).forEach((v) => { + mocks.push(...(mockContext[v] as any).default) +}) + +export function setupProdMockServer() { + createProdMockServer(mocks) +} diff --git a/src/router/index.ts b/src/router/index.ts new file mode 100755 index 0000000..d13fed9 --- /dev/null +++ b/src/router/index.ts @@ -0,0 +1,168 @@ +import { createRouter, createWebHashHistory } from 'vue-router' +import type { RouteRecordRaw } from 'vue-router' +import { useNProgress } from '@vueuse/integrations/useNProgress' +import '@/assets/styles/nprogress.scss' + +// 路由相关数据 +import { asyncRoutes, asyncRoutesByFilesystem, constantRoutes, constantRoutesByFilesystem } from './routes' +import pinia from '@/store' +import useSettingsStore from '@/store/modules/settings' +import useKeepAliveStore from '@/store/modules/keepAlive' +import useUserStore from '@/store/modules/user' +import useRouteStore from '@/store/modules/route' +import useMenuStore from '@/store/modules/menu' + +const { isLoading } = useNProgress() + +const router = createRouter({ + history: createWebHashHistory(), + routes: useSettingsStore(pinia).settings.app.routeBaseOn === 'filesystem' ? constantRoutesByFilesystem : constantRoutes as RouteRecordRaw[], +}) + +router.beforeEach(async (to, from, next) => { + const settingsStore = useSettingsStore() + const userStore = useUserStore() + const routeStore = useRouteStore() + const menuStore = useMenuStore() + settingsStore.settings.app.enableProgress && (isLoading.value = true) + // 是否已登录 + if (userStore.isLogin) { + // 是否已根据权限动态生成并注册路由 + if (routeStore.isGenerate) { + // 导航栏如果不是 single 模式,则需要根据 path 定位主导航的选中状态 + settingsStore.settings.menu.menuMode !== 'single' && menuStore.setActived(to.path) + // 如果已登录状态下,进入登录页会强制跳转到主页 + if (to.name === 'login') { + next({ + name: 'home', + replace: true, + }) + } + // 如果未开启主页,但进入的是主页,则会进入侧边栏导航第一个模块 + else if (!settingsStore.settings.home.enable && to.name === 'home') { + if (menuStore.sidebarMenus.length > 0) { + next({ + path: menuStore.sidebarMenusFirstDeepestPath, + replace: true, + }) + } + // 如果侧边栏导航第一个模块均无法命中,则还是进入主页 + else { + next() + } + } + // 正常访问页面 + else { + next() + } + } + else { + // 生成动态路由 + switch (settingsStore.settings.app.routeBaseOn) { + case 'frontend': + await routeStore.generateRoutesAtFront(asyncRoutes) + break + case 'backend': + await routeStore.generateRoutesAtBack() + break + case 'filesystem': + await routeStore.generateRoutesAtFilesystem(asyncRoutesByFilesystem) + // 文件系统生成的路由,需要手动生成导航数据 + switch (settingsStore.settings.menu.baseOn) { + case 'frontend': + await menuStore.generateMenusAtFront() + break + case 'backend': + await menuStore.generateMenusAtBack() + break + } + break + } + // 注册并记录路由数据 + // 记录的数据会在登出时会使用到,不使用 router.removeRoute 是考虑配置的路由可能不一定有设置 name ,则通过调用 router.addRoute() 返回的回调进行删除 + const removeRoutes: (() => void)[] = [] + routeStore.flatRoutes.forEach((route) => { + if (!/^(https?:|mailto:|tel:)/.test(route.path)) { + removeRoutes.push(router.addRoute(route as RouteRecordRaw)) + } + }) + if (settingsStore.settings.app.routeBaseOn !== 'filesystem') { + routeStore.flatSystemRoutes.forEach((route) => { + removeRoutes.push(router.addRoute(route as RouteRecordRaw)) + }) + } + routeStore.setCurrentRemoveRoutes(removeRoutes) + // 动态路由生成并注册后,重新进入当前路由 + next({ + path: to.path, + query: to.query, + replace: true, + }) + } + } + else { + if (to.name !== 'login') { + next({ + name: 'login', + query: { + redirect: to.fullPath !== '/' ? to.fullPath : undefined, + }, + }) + } + else { + next() + } + } +}) + +router.afterEach((to, from) => { + const settingsStore = useSettingsStore() + const keepAliveStore = useKeepAliveStore() + settingsStore.settings.app.enableProgress && (isLoading.value = false) + // 设置页面 title + if (settingsStore.settings.app.routeBaseOn !== 'filesystem') { + settingsStore.setTitle(to.meta.breadcrumbNeste?.at(-1)?.title ?? to.meta.title) + } + else { + settingsStore.setTitle(to.meta.title) + } + /** + * 处理普通页面的缓存 + */ + // 判断当前页面是否开启缓存,如果开启,则将当前页面的 name 信息存入 keep-alive 全局状态 + if (to.meta.cache) { + const componentName = to.matched.at(-1)?.components?.default.name + if (componentName) { + keepAliveStore.add(componentName) + } + else { + console.warn('该页面组件未设置组件名,会导致缓存失效,请检查') + } + } + // 判断离开页面是否开启缓存,如果开启,则根据缓存规则判断是否需要清空 keep-alive 全局状态里离开页面的 name 信息 + if (from.meta.cache) { + const componentName = from.matched.at(-1)?.components?.default.name + if (componentName) { + // 通过 meta.cache 判断针对哪些页面进行缓存 + switch (typeof from.meta.cache) { + case 'string': + if (from.meta.cache !== to.name) { + keepAliveStore.remove(componentName) + } + break + case 'object': + if (!from.meta.cache.includes(to.name as string)) { + keepAliveStore.remove(componentName) + } + break + } + // 如果进入的是 reload 页面,则也将离开页面的缓存清空 + if (to.name === 'reload') { + keepAliveStore.remove(componentName) + } + } + } + document.documentElement.scrollTop = 0 +}) + +export default router diff --git a/src/router/modules/multilevel.menu.example.ts b/src/router/modules/multilevel.menu.example.ts new file mode 100755 index 0000000..9ea86ce --- /dev/null +++ b/src/router/modules/multilevel.menu.example.ts @@ -0,0 +1,72 @@ +import type { RouteRecordRaw } from 'vue-router' + +function Layout() { + return import('@/layouts/index.vue') +} + +const routes: RouteRecordRaw = { + path: '/multilevel_menu_example', + component: Layout, + redirect: '/multilevel_menu_example/page', + name: 'multilevelMenuExample', + meta: { + title: '多级导航', + icon: 'heroicons-solid:menu-alt-3', + }, + children: [ + { + path: 'page', + name: 'multilevelMenuExample1', + component: () => import('@/views/multilevel_menu_example/page.vue'), + meta: { + title: '导航1', + }, + }, + { + path: 'level2', + name: 'multilevelMenuExample2', + redirect: '/multilevel_menu_example/level2/page', + meta: { + title: '导航2', + }, + children: [ + { + path: 'page', + name: 'multilevelMenuExample2-1', + component: () => import('@/views/multilevel_menu_example/level2/page.vue'), + meta: { + title: '导航2-1', + }, + }, + { + path: 'level3', + name: 'multilevelMenuExample2-2', + redirect: '/multilevel_menu_example/level2/level3/page1', + meta: { + title: '导航2-2', + }, + children: [ + { + path: 'page1', + name: 'multilevelMenuExample2-2-1', + component: () => import('@/views/multilevel_menu_example/level2/level3/page1.vue'), + meta: { + title: '导航2-2-1', + }, + }, + { + path: 'page2', + name: 'multilevelMenuExample2-2-2', + component: () => import('@/views/multilevel_menu_example/level2/level3/page2.vue'), + meta: { + title: '导航2-2-2', + }, + }, + ], + }, + ], + }, + ], +} + +export default routes diff --git a/src/router/routes.ts b/src/router/routes.ts new file mode 100755 index 0000000..9187f9a --- /dev/null +++ b/src/router/routes.ts @@ -0,0 +1,88 @@ +import { setupLayouts } from 'virtual:meta-layouts' +import generatedRoutes from 'virtual:generated-pages' +import type { RouteRecordRaw } from 'vue-router' +import MultilevelMenuExample from './modules/multilevel.menu.example' +import type { Route } from '#/global' +import useSettingsStore from '@/store/modules/settings' + +// 固定路由(默认路由) +const constantRoutes: RouteRecordRaw[] = [ + { + path: '/login', + name: 'login', + component: () => import('@/views/login.vue'), + meta: { + title: '登录', + }, + }, + { + path: '/:all(.*)*', + name: 'notFound', + component: () => import('@/views/[...all].vue'), + meta: { + title: '找不到页面', + }, + }, +] + +// 系统路由 +const systemRoutes: RouteRecordRaw[] = [ + { + path: '/', + component: () => import('@/layouts/index.vue'), + meta: { + title: () => useSettingsStore().settings.home.title, + breadcrumb: false, + }, + children: [ + { + path: '', + name: 'home', + component: () => import('@/views/index.vue'), + meta: { + title: () => useSettingsStore().settings.home.title, + icon: 'ant-design:home-twotone', + breadcrumb: false, + }, + }, + { + path: 'reload', + name: 'reload', + component: () => import('@/views/reload.vue'), + meta: { + title: '重新加载', + breadcrumb: false, + }, + }, + ], + }, +] + +// 动态路由(异步路由、导航栏路由) +const asyncRoutes: Route.recordMainRaw[] = [ + { + meta: { + title: '演示', + icon: 'uim:box', + }, + children: [ + MultilevelMenuExample, + ], + }, +] + +const constantRoutesByFilesystem = generatedRoutes.filter((item) => { + return item.meta?.enabled !== false && item.meta?.constant === true +}) + +const asyncRoutesByFilesystem = setupLayouts(generatedRoutes.filter((item) => { + return item.meta?.enabled !== false && item.meta?.constant !== true && item.meta?.layout !== false +})) + +export { + constantRoutes, + systemRoutes, + asyncRoutes, + constantRoutesByFilesystem, + asyncRoutesByFilesystem, +} diff --git a/src/settings.default.ts b/src/settings.default.ts new file mode 100755 index 0000000..90602a0 --- /dev/null +++ b/src/settings.default.ts @@ -0,0 +1,57 @@ +// 该文件为系统默认配置,请勿修改!!! + +import type { RecursiveRequired, Settings } from '#/global' + +const globalSettingsDefault: RecursiveRequired = { + app: { + colorScheme: 'light', + enablePermission: false, + enableProgress: true, + enableDynamicTitle: false, + routeBaseOn: 'frontend', + enableAppSetting: false, + }, + home: { + enable: true, + title: '主页', + }, + layout: { + enableMobileAdaptation: false, + }, + menu: { + baseOn: 'frontend', + menuMode: 'side', + switchMainMenuAndPageJump: false, + subMenuUniqueOpened: true, + subMenuCollapse: false, + enableSubMenuCollapseButton: false, + enableHotkeys: false, + }, + topbar: { + mode: 'static', + }, + toolbar: { + enableFullscreen: false, + enablePageReload: false, + enableColorScheme: false, + }, + breadcrumb: { + enable: true, + }, + mainPage: { + enableHotkeys: true, + }, + navSearch: { + enable: true, + enableHotkeys: true, + }, + copyright: { + enable: false, + dates: '', + company: '', + website: '', + beian: '', + }, +} + +export default globalSettingsDefault diff --git a/src/settings.ts b/src/settings.ts new file mode 100755 index 0000000..d5843c2 --- /dev/null +++ b/src/settings.ts @@ -0,0 +1,23 @@ +import { defaultsDeep } from 'lodash-es' +import type { RecursiveRequired, Settings } from '#/global' +import settingsDefault from '@/settings.default' + +const globalSettings: Settings.all = { + app: { + enableAppSetting: true, + }, + layout: { + enableMobileAdaptation: true, + }, + toolbar: { + enableColorScheme: true, + }, + copyright: { + enable: true, + dates: '2020-present', + company: 'Fantastic-admin', + website: 'https://fantastic-admin.gitee.io', + }, +} + +export default defaultsDeep(globalSettings, settingsDefault) as RecursiveRequired diff --git a/src/store/index.ts b/src/store/index.ts new file mode 100755 index 0000000..a6e3624 --- /dev/null +++ b/src/store/index.ts @@ -0,0 +1,3 @@ +const pinia = createPinia() + +export default pinia diff --git a/src/store/modules/keepAlive.ts b/src/store/modules/keepAlive.ts new file mode 100755 index 0000000..444feb9 --- /dev/null +++ b/src/store/modules/keepAlive.ts @@ -0,0 +1,42 @@ +const useKeepAliveStore = defineStore( + // 唯一ID + 'keepAlive', + () => { + const list = ref([]) + + function add(name: string | string[]) { + if (typeof name === 'string') { + !list.value.includes(name) && list.value.push(name) + } + else { + name.forEach((v) => { + v && !list.value.includes(v) && list.value.push(v) + }) + } + } + function remove(name: string | string[]) { + if (typeof name === 'string') { + list.value = list.value.filter((v) => { + return v !== name + }) + } + else { + list.value = list.value.filter((v) => { + return !name.includes(v) + }) + } + } + function clean() { + list.value = [] + } + + return { + list, + add, + remove, + clean, + } + }, +) + +export default useKeepAliveStore diff --git a/src/store/modules/menu.ts b/src/store/modules/menu.ts new file mode 100755 index 0000000..d10de95 --- /dev/null +++ b/src/store/modules/menu.ts @@ -0,0 +1,206 @@ +import { cloneDeep } from 'lodash-es' +import useSettingsStore from './settings' +import useUserStore from './user' +import useRouteStore from './route' +import { resolveRoutePath } from '@/utils' +import apiApp from '@/api/modules/app' +import menu from '@/menu' +import type { Menu } from '#/global' + +const useMenuStore = defineStore( + // 唯一ID + 'menu', + () => { + const settingsStore = useSettingsStore() + const userStore = useUserStore() + const routeStore = useRouteStore() + + const menus = ref([{ + meta: {}, + children: [], + }]) + const actived = ref(0) + + // 将多级导航的每一级 path 都转换为完整路径 + function convertToFullPath(menu: any[], path: string = '') { + return menu.map((item) => { + item.path = resolveRoutePath(path, item.path) + if (item.children) { + item.children = convertToFullPath(item.children, item.path) + } + return item + }) + } + // 完整导航数据 + const allMenus = computed(() => { + let returnMenus: Menu.recordMainRaw[] = [{ + meta: {}, + children: [], + }] + if (settingsStore.settings.app.routeBaseOn !== 'filesystem') { + if (settingsStore.settings.menu.menuMode === 'single') { + returnMenus[0].children = [] + routeStore.routes.forEach((item) => { + returnMenus[0].children?.push(...item.children as Menu.recordRaw[]) + }) + } + else { + returnMenus = routeStore.routes as Menu.recordMainRaw[] + } + returnMenus.map(item => convertToFullPath(item.children)) + } + else { + returnMenus = menus.value + } + return returnMenus + }) + // 次导航数据 + const sidebarMenus = computed(() => { + return allMenus.value.length > 0 + ? allMenus.value[actived.value].children + : [] + }) + // 次导航第一层最深路径 + const sidebarMenusFirstDeepestPath = computed(() => { + return sidebarMenus.value.length > 0 + ? getDeepestPath(sidebarMenus.value[0]) + : '/' + }) + function getDeepestPath(menu: Menu.recordRaw, rootPath = '') { + let retnPath = '' + if (menu.children) { + const item = menu.children.find(item => item.meta?.sidebar !== false) + if (item) { + retnPath = getDeepestPath(item, resolveRoutePath(rootPath, menu.path)) + } + else { + retnPath = getDeepestPath(menu.children[0], resolveRoutePath(rootPath, menu.path)) + } + } + else { + retnPath = resolveRoutePath(rootPath, menu.path) + } + return retnPath + } + // 默认展开的导航路径 + const defaultOpenedPaths = computed(() => { + const defaultOpenedPaths: string[] = [] + if (settingsStore.settings.app.routeBaseOn !== 'filesystem') { + allMenus.value.forEach((item) => { + defaultOpenedPaths.push(...getDefaultOpenedPaths(item.children)) + }) + } + return defaultOpenedPaths + }) + function getDefaultOpenedPaths(menus: Menu.recordRaw[], rootPath = '') { + const defaultOpenedPaths: string[] = [] + menus.forEach((item) => { + if (item.meta?.defaultOpened && item.children) { + defaultOpenedPaths.push(resolveRoutePath(rootPath, item.path)) + const childrenDefaultOpenedPaths = getDefaultOpenedPaths(item.children, resolveRoutePath(rootPath, item.path)) + if (childrenDefaultOpenedPaths.length > 0) { + defaultOpenedPaths.push(...childrenDefaultOpenedPaths) + } + } + }) + return defaultOpenedPaths + } + + // 判断是否有权限 + function hasPermission(permissions: string[], menu: Menu.recordMainRaw | Menu.recordRaw) { + let isAuth = false + if (menu.meta?.auth) { + isAuth = permissions.some((auth) => { + if (typeof menu.meta?.auth === 'string') { + return menu.meta.auth !== '' ? menu.meta.auth === auth : true + } + else if (typeof menu.meta?.auth === 'object') { + return menu.meta.auth.length > 0 ? menu.meta.auth.includes(auth) : true + } + else { + return false + } + }) + } + else { + isAuth = true + } + return isAuth + } + // 根据权限过滤导航 + function filterAsyncMenus(menus: T, permissions: string[]): T { + const res: any = [] + menus.forEach((menu) => { + if (hasPermission(permissions, menu)) { + const tmpMenu = cloneDeep(menu) + if (tmpMenu.children) { + tmpMenu.children = filterAsyncMenus(tmpMenu.children, permissions) as Menu.recordRaw[] + tmpMenu.children.length && res.push(tmpMenu) + } + else { + res.push(tmpMenu) + } + } + }) + return res + } + // 生成导航(前端生成) + async function generateMenusAtFront() { + let accessedMenus + // 如果权限功能开启,则需要对导航数据进行筛选过滤 + if (settingsStore.settings.app.enablePermission) { + const permissions = await userStore.getPermissions() + accessedMenus = filterAsyncMenus(menu, permissions) + } + else { + accessedMenus = cloneDeep(menu) + } + menus.value = accessedMenus.filter(item => item.children.length !== 0) + } + // 生成导航(后端生成) + async function generateMenusAtBack() { + await apiApp.menuList().then(async (res) => { + const settingsStore = useSettingsStore() + const userStore = useUserStore() + let accessedMenus: Menu.recordMainRaw[] + // 如果权限功能开启,则需要对导航数据进行筛选过滤 + if (settingsStore.settings.app.enablePermission) { + const permissions = await userStore.getPermissions() + accessedMenus = filterAsyncMenus(res.data, permissions) + } + else { + accessedMenus = cloneDeep(res.data) + } + menus.value = accessedMenus.filter(item => item.children.length !== 0) + }).catch(() => {}) + } + // 设置主导航 + function setActived(data: number | string) { + if (typeof data === 'number') { + // 如果是 number 类型,则认为是主导航的索引 + actived.value = data + } + else { + // 如果是 string 类型,则认为是路由,需要查找对应的主导航索引 + const findIndex = allMenus.value.findIndex(item => item.children.some(r => data.indexOf(`${r.path}/`) === 0 || data === r.path)) + if (findIndex >= 0) { + actived.value = findIndex + } + } + } + + return { + menus, + actived, + allMenus, + sidebarMenus, + sidebarMenusFirstDeepestPath, + defaultOpenedPaths, + generateMenusAtFront, + generateMenusAtBack, + setActived, + } + }, +) + +export default useMenuStore diff --git a/src/store/modules/route.ts b/src/store/modules/route.ts new file mode 100755 index 0000000..659b6b8 --- /dev/null +++ b/src/store/modules/route.ts @@ -0,0 +1,252 @@ +import { cloneDeep } from 'lodash-es' +import type { RouteMeta, RouteRecordRaw } from 'vue-router' +import useSettingsStore from './settings' +import useUserStore from './user' +import { resolveRoutePath } from '@/utils' +import { systemRoutes } from '@/router/routes' +import apiApp from '@/api/modules/app' +import type { Route } from '#/global' + +const useRouteStore = defineStore( + // 唯一ID + 'route', + () => { + const settingsStore = useSettingsStore() + const userStore = useUserStore() + + const isGenerate = ref(false) + const routesRaw = ref([]) + const filesystemRoutesRaw = ref([]) + const currentRemoveRoutes = ref<(() => void)[]>([]) + + // 将多层嵌套路由处理成两层,保留顶层和最子层路由,中间层级将被拍平 + function flatAsyncRoutes(route: T): T { + if (route.children) { + route.children = flatAsyncRoutesRecursive(route.children, [{ + path: route.path, + title: route.meta?.title, + icon: route.meta?.icon, + hide: !route.meta?.breadcrumb && route.meta?.breadcrumb === false, + }], route.path, route.meta?.auth) + } + return route + } + function flatAsyncRoutesRecursive(routes: RouteRecordRaw[], breadcrumb: Route.breadcrumb[] = [], baseUrl = '', baseAuth: RouteMeta['auth']): RouteRecordRaw[] { + const res: RouteRecordRaw[] = [] + routes.forEach((route) => { + if (route.children) { + const childrenBaseUrl = resolveRoutePath(baseUrl, route.path) + const childrenBaseAuth = baseAuth ?? route.meta?.auth + const tmpBreadcrumb = cloneDeep(breadcrumb) + tmpBreadcrumb.push({ + path: childrenBaseUrl, + title: route.meta?.title, + icon: route.meta?.icon, + hide: !route.meta?.breadcrumb && route.meta?.breadcrumb === false, + }) + const tmpRoute = cloneDeep(route) + tmpRoute.path = childrenBaseUrl + if (!tmpRoute.meta) { + tmpRoute.meta = {} + } + tmpRoute.meta.auth = childrenBaseAuth + tmpRoute.meta.breadcrumbNeste = tmpBreadcrumb + delete tmpRoute.children + res.push(tmpRoute) + const childrenRoutes = flatAsyncRoutesRecursive(route.children, tmpBreadcrumb, childrenBaseUrl, childrenBaseAuth) + childrenRoutes.forEach((item) => { + // 如果 path 一样则覆盖,因为子路由的 path 可能设置为空,导致和父路由一样,直接注册会提示路由重复 + if (res.some(v => v.path === item.path)) { + res.forEach((v, i) => { + if (v.path === item.path) { + res[i] = item + } + }) + } + else { + res.push(item) + } + }) + } + else { + const tmpRoute = cloneDeep(route) + tmpRoute.path = resolveRoutePath(baseUrl, tmpRoute.path) + // 处理面包屑导航 + const tmpBreadcrumb = cloneDeep(breadcrumb) + tmpBreadcrumb.push({ + path: tmpRoute.path, + title: tmpRoute.meta?.title, + icon: tmpRoute.meta?.icon, + hide: !tmpRoute.meta?.breadcrumb && tmpRoute.meta?.breadcrumb === false, + }) + if (!tmpRoute.meta) { + tmpRoute.meta = {} + } + tmpRoute.meta.auth = baseAuth ?? tmpRoute.meta?.auth + tmpRoute.meta.breadcrumbNeste = tmpBreadcrumb + res.push(tmpRoute) + } + }) + return res + } + // 扁平化路由(将三级及以上路由数据拍平成二级) + const flatRoutes = computed(() => { + const returnRoutes: RouteRecordRaw[] = [] + if (settingsStore.settings.app.routeBaseOn !== 'filesystem') { + if (routesRaw.value) { + routesRaw.value.forEach((item) => { + const tmpRoutes = cloneDeep(item.children) as RouteRecordRaw[] + tmpRoutes.map((v) => { + if (!v.meta) { + v.meta = {} + } + v.meta.auth = item.meta?.auth ?? v.meta?.auth + return v + }) + returnRoutes.push(...tmpRoutes) + }) + returnRoutes.forEach(item => flatAsyncRoutes(item)) + } + } + else { + returnRoutes.push(...cloneDeep(filesystemRoutesRaw.value) as RouteRecordRaw[]) + } + return returnRoutes + }) + const flatSystemRoutes = computed(() => { + const routes = [...systemRoutes] + routes.forEach(item => flatAsyncRoutes(item)) + return routes + }) + + // 判断是否有权限 + function hasPermission(permissions: string[], route: Route.recordMainRaw | RouteRecordRaw) { + let isAuth = false + if (route.meta?.auth) { + isAuth = permissions.some((auth) => { + if (typeof route.meta?.auth === 'string') { + return route.meta.auth !== '' ? route.meta.auth === auth : true + } + else if (typeof route.meta?.auth === 'object') { + return route.meta.auth.length > 0 ? route.meta.auth.includes(auth) : true + } + else { + return false + } + }) + } + else { + isAuth = true + } + return isAuth + } + // 根据权限过滤路由 + function filterAsyncRoutes(routes: T, permissions: string[]): T { + const res: any = [] + routes.forEach((route) => { + if (hasPermission(permissions, route)) { + const tmpRoute = cloneDeep(route) + if (tmpRoute.children) { + tmpRoute.children = filterAsyncRoutes(tmpRoute.children, permissions) + tmpRoute.children.length && res.push(tmpRoute) + } + else { + res.push(tmpRoute) + } + } + }) + return res + } + const routes = computed(() => { + let returnRoutes: Route.recordMainRaw[] + // 如果权限功能开启,则需要对路由数据进行筛选过滤 + if (settingsStore.settings.app.enablePermission) { + returnRoutes = filterAsyncRoutes(routesRaw.value as any, userStore.permissions) + } + else { + returnRoutes = cloneDeep(routesRaw.value) as any + } + return returnRoutes + }) + + // 根据权限动态生成路由(前端生成) + async function generateRoutesAtFront(asyncRoutes: Route.recordMainRaw[]) { + // 设置 routes 数据 + routesRaw.value = cloneDeep(asyncRoutes) as any + if (settingsStore.settings.app.enablePermission) { + await userStore.getPermissions() + } + isGenerate.value = true + } + // 格式化后端路由数据 + function formatBackRoutes(routes: any, views = import.meta.glob('../../views/**/*.vue')): Route.recordMainRaw[] { + return routes.map((route: any) => { + switch (route.component) { + case 'Layout': + route.component = () => import('@/layouts/index.vue') + break + default: + if (route.component) { + route.component = views[`../../views/${route.component}`] + } + else { + delete route.component + } + } + if (route.children) { + route.children = formatBackRoutes(route.children, views) + } + return route + }) + } + // 根据权限动态生成路由(后端获取) + async function generateRoutesAtBack() { + await apiApp.routeList().then(async (res) => { + // 设置 routes 数据 + routesRaw.value = formatBackRoutes(res.data) as any + if (settingsStore.settings.app.enablePermission) { + await userStore.getPermissions() + } + isGenerate.value = true + }).catch(() => {}) + } + // 根据权限动态生成路由(文件系统生成) + async function generateRoutesAtFilesystem(asyncRoutes: RouteRecordRaw[]) { + // 设置 routes 数据 + filesystemRoutesRaw.value = cloneDeep(asyncRoutes) as any + if (settingsStore.settings.app.enablePermission) { + await userStore.getPermissions() + } + isGenerate.value = true + } + // 记录 accessRoutes 路由,用于登出时删除路由 + function setCurrentRemoveRoutes(routes: (() => void)[]) { + currentRemoveRoutes.value = routes + } + // 清空动态路由 + function removeRoutes() { + isGenerate.value = false + routesRaw.value = [] + filesystemRoutesRaw.value = [] + currentRemoveRoutes.value.forEach((removeRoute) => { + removeRoute() + }) + currentRemoveRoutes.value = [] + } + + return { + isGenerate, + routes, + currentRemoveRoutes, + flatRoutes, + flatSystemRoutes, + generateRoutesAtFront, + generateRoutesAtBack, + generateRoutesAtFilesystem, + setCurrentRemoveRoutes, + removeRoutes, + } + }, +) + +export default useRouteStore diff --git a/src/store/modules/settings.ts b/src/store/modules/settings.ts new file mode 100755 index 0000000..0840123 --- /dev/null +++ b/src/store/modules/settings.ts @@ -0,0 +1,124 @@ +import { defaultsDeep } from 'lodash-es' +import type { RouteMeta } from 'vue-router' +import type { Settings } from '#/global' +import settingsDefault from '@/settings' + +const useSettingsStore = defineStore( + // 唯一ID + 'settings', + () => { + const settings = ref(settingsDefault) + watch(() => settings.value.app.colorScheme, (colorScheme) => { + if (colorScheme === '') { + colorScheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light' + } + switch (colorScheme) { + case 'light': + document.documentElement.classList.remove('dark') + document.documentElement.removeAttribute('theme-mode') + break + case 'dark': + document.documentElement.classList.add('dark') + document.documentElement.setAttribute('theme-mode', 'dark') + break + } + }, { + immediate: true, + }) + watch(() => settings.value.menu.menuMode, (val) => { + document.body.setAttribute('data-menu-mode', val) + }, { + immediate: true, + }) + + // 操作系统 + const os = ref<'mac' | 'windows' | 'linux' | 'other'>('other') + const agent = navigator.userAgent.toLowerCase() + switch (true) { + case agent.includes('mac os'): + os.value = 'mac' + break + case agent.includes('windows'): + os.value = 'windows' + break + case agent.includes('linux'): + os.value = 'linux' + break + } + + // 页面标题 + const title = ref() + // 记录页面标题 + function setTitle(_title: RouteMeta['title']) { + title.value = _title + } + + // 显示模式 + const mode = ref<'pc' | 'mobile'>('pc') + // 设置显示模式 + function setMode(width: number) { + if (settings.value.layout.enableMobileAdaptation) { + // 先判断 UA 是否为移动端设备(手机&平板) + if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) { + mode.value = 'mobile' + } + else { + // 如果是桌面设备,则根据页面宽度判断是否需要切换为移动端展示 + mode.value = width < 992 ? 'mobile' : 'pc' + } + } + else { + mode.value = 'pc' + } + } + + // 次导航是否收起(用于记录 pc 模式下最后的状态) + const subMenuCollapseLastStatus = ref(settingsDefault.menu.subMenuCollapse) + // 切换侧边栏导航展开/收起 + function toggleSidebarCollapse() { + settings.value.menu.subMenuCollapse = !settings.value.menu.subMenuCollapse + if (mode.value === 'pc') { + subMenuCollapseLastStatus.value = !subMenuCollapseLastStatus.value + } + } + + watch(mode, (val) => { + switch (val) { + case 'pc': + settings.value.menu.subMenuCollapse = subMenuCollapseLastStatus.value + break + case 'mobile': + settings.value.menu.subMenuCollapse = true + break + } + document.body.setAttribute('data-mode', val) + }, { + immediate: true, + }) + + // 设置主题颜色模式 + function setColorScheme(color: Required['colorScheme']) { + settings.value.app.colorScheme = color + } + + // 更新应用配置 + function updateSettings(data: Settings.all, fromBase = false) { + settings.value = defaultsDeep(data, fromBase ? settingsDefault : settings.value) + } + + return { + settings, + os, + title, + setTitle, + mode, + setMode, + subMenuCollapseLastStatus, + toggleSidebarCollapse, + setColorScheme, + updateSettings, + } + }, +) + +export default useSettingsStore diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts new file mode 100755 index 0000000..5423ec9 --- /dev/null +++ b/src/store/modules/user.ts @@ -0,0 +1,91 @@ +import useRouteStore from './route' +import useMenuStore from './menu' +import router from '@/router' +import apiUser from '@/api/modules/user' + +const useUserStore = defineStore( + // 唯一ID + 'user', + () => { + const routeStore = useRouteStore() + const menuStore = useMenuStore() + + const account = ref(localStorage.account ?? '') + const token = ref(localStorage.token ?? '') + const failure_time = ref(localStorage.failure_time ?? '') + const avatar = ref(localStorage.avatar ?? '') + const permissions = ref([]) + const isLogin = computed(() => { + let retn = false + if (token.value) { + if (new Date().getTime() < Number.parseInt(failure_time.value) * 1000) { + retn = true + } + } + return retn + }) + + // 登录 + async function login(data: { + account: string + password: string + }) { + const res = await apiUser.login(data) + localStorage.setItem('account', res.data.account) + localStorage.setItem('token', res.data.token) + localStorage.setItem('failure_time', res.data.failure_time) + localStorage.setItem('avatar', res.data.avatar) + account.value = res.data.account + token.value = res.data.token + failure_time.value = res.data.failure_time + avatar.value = res.data.avatar + } + // 登出 + async function logout(redirect = router.currentRoute.value.fullPath) { + localStorage.removeItem('account') + localStorage.removeItem('token') + localStorage.removeItem('failure_time') + localStorage.removeItem('avatar') + account.value = '' + token.value = '' + failure_time.value = '' + avatar.value = '' + permissions.value = [] + routeStore.removeRoutes() + menuStore.setActived(0) + router.push({ + name: 'login', + query: { + ...(router.currentRoute.value.path !== '/' && router.currentRoute.value.name !== 'login' && { redirect }), + }, + }) + } + // 获取权限 + async function getPermissions() { + const res = await apiUser.permission() + permissions.value = res.data.permissions + return permissions.value + } + // 修改密码 + async function editPassword(data: { + password: string + newpassword: string + }) { + await apiUser.passwordEdit(data) + } + + return { + account, + token, + avatar, + permissions, + isLogin, + login, + logout, + getPermissions, + editPassword, + } + }, +) + +export default useUserStore diff --git a/src/types/auto-imports.d.ts b/src/types/auto-imports.d.ts new file mode 100755 index 0000000..dad53b9 --- /dev/null +++ b/src/types/auto-imports.d.ts @@ -0,0 +1,87 @@ +/* eslint-disable */ +/* prettier-ignore */ +// @ts-nocheck +// noinspection JSUnusedGlobalSymbols +// Generated by unplugin-auto-import +export {} +declare global { + const EffectScope: typeof import('vue')['EffectScope'] + const acceptHMRUpdate: typeof import('pinia')['acceptHMRUpdate'] + const computed: typeof import('vue')['computed'] + const createApp: typeof import('vue')['createApp'] + const createPinia: typeof import('pinia')['createPinia'] + const customRef: typeof import('vue')['customRef'] + const defineAsyncComponent: typeof import('vue')['defineAsyncComponent'] + const defineComponent: typeof import('vue')['defineComponent'] + const defineStore: typeof import('pinia')['defineStore'] + const effectScope: typeof import('vue')['effectScope'] + const getActivePinia: typeof import('pinia')['getActivePinia'] + const getCurrentInstance: typeof import('vue')['getCurrentInstance'] + const getCurrentScope: typeof import('vue')['getCurrentScope'] + const h: typeof import('vue')['h'] + const inject: typeof import('vue')['inject'] + const isProxy: typeof import('vue')['isProxy'] + const isReactive: typeof import('vue')['isReactive'] + const isReadonly: typeof import('vue')['isReadonly'] + const isRef: typeof import('vue')['isRef'] + const mapActions: typeof import('pinia')['mapActions'] + const mapGetters: typeof import('pinia')['mapGetters'] + const mapState: typeof import('pinia')['mapState'] + const mapStores: typeof import('pinia')['mapStores'] + const mapWritableState: typeof import('pinia')['mapWritableState'] + const markRaw: typeof import('vue')['markRaw'] + const nextTick: typeof import('vue')['nextTick'] + const onActivated: typeof import('vue')['onActivated'] + const onBeforeMount: typeof import('vue')['onBeforeMount'] + const onBeforeRouteLeave: typeof import('vue-router')['onBeforeRouteLeave'] + const onBeforeRouteUpdate: typeof import('vue-router')['onBeforeRouteUpdate'] + const onBeforeUnmount: typeof import('vue')['onBeforeUnmount'] + const onBeforeUpdate: typeof import('vue')['onBeforeUpdate'] + const onDeactivated: typeof import('vue')['onDeactivated'] + const onErrorCaptured: typeof import('vue')['onErrorCaptured'] + const onMounted: typeof import('vue')['onMounted'] + const onRenderTracked: typeof import('vue')['onRenderTracked'] + const onRenderTriggered: typeof import('vue')['onRenderTriggered'] + const onScopeDispose: typeof import('vue')['onScopeDispose'] + const onServerPrefetch: typeof import('vue')['onServerPrefetch'] + const onUnmounted: typeof import('vue')['onUnmounted'] + const onUpdated: typeof import('vue')['onUpdated'] + const provide: typeof import('vue')['provide'] + const reactive: typeof import('vue')['reactive'] + const readonly: typeof import('vue')['readonly'] + const ref: typeof import('vue')['ref'] + const resolveComponent: typeof import('vue')['resolveComponent'] + const setActivePinia: typeof import('pinia')['setActivePinia'] + const setMapStoreSuffix: typeof import('pinia')['setMapStoreSuffix'] + const shallowReactive: typeof import('vue')['shallowReactive'] + const shallowReadonly: typeof import('vue')['shallowReadonly'] + const shallowRef: typeof import('vue')['shallowRef'] + const storeToRefs: typeof import('pinia')['storeToRefs'] + const toRaw: typeof import('vue')['toRaw'] + const toRef: typeof import('vue')['toRef'] + const toRefs: typeof import('vue')['toRefs'] + const toValue: typeof import('vue')['toValue'] + const triggerRef: typeof import('vue')['triggerRef'] + const unref: typeof import('vue')['unref'] + const useAttrs: typeof import('vue')['useAttrs'] + const useAuth: typeof import('../utils/composables/useAuth')['default'] + const useCssModule: typeof import('vue')['useCssModule'] + const useCssVars: typeof import('vue')['useCssVars'] + const useGlobalProperties: typeof import('../utils/composables/useGlobalProperties')['default'] + const useLink: typeof import('vue-router')['useLink'] + const useMainPage: typeof import('../utils/composables/useMainPage')['default'] + const useMenu: typeof import('../utils/composables/useMenu')['default'] + const useRoute: typeof import('vue-router')['useRoute'] + const useRouter: typeof import('vue-router')['useRouter'] + const useSlots: typeof import('vue')['useSlots'] + const useViewTransition: typeof import('../utils/composables/useViewTransition')['default'] + const watch: typeof import('vue')['watch'] + const watchEffect: typeof import('vue')['watchEffect'] + const watchPostEffect: typeof import('vue')['watchPostEffect'] + const watchSyncEffect: typeof import('vue')['watchSyncEffect'] +} +// for type re-export +declare global { + // @ts-ignore + export type { Component, ComponentPublicInstance, ComputedRef, InjectionKey, PropType, Ref, VNode } from 'vue' +} diff --git a/src/types/components.d.ts b/src/types/components.d.ts new file mode 100755 index 0000000..9dd7f21 --- /dev/null +++ b/src/types/components.d.ts @@ -0,0 +1,40 @@ +/* eslint-disable */ +/* prettier-ignore */ +// @ts-nocheck +// Generated by unplugin-vue-components +// Read more: https://github.com/vuejs/core/pull/3399 +export {} + +declare module 'vue' { + export interface GlobalComponents { + Auth: typeof import('./../components/Auth/index.vue')['default'] + AuthAll: typeof import('./../components/AuthAll/index.vue')['default'] + FileUpload: typeof import('./../components/FileUpload/index.vue')['default'] + FixedActionBar: typeof import('./../components/FixedActionBar/index.vue')['default'] + HButton: typeof import('./../layouts/ui-kit/HButton.vue')['default'] + HCheckList: typeof import('./../layouts/ui-kit/HCheckList.vue')['default'] + HDialog: typeof import('./../layouts/ui-kit/HDialog.vue')['default'] + HDropdown: typeof import('./../layouts/ui-kit/HDropdown.vue')['default'] + HDropdownMenu: typeof import('./../layouts/ui-kit/HDropdownMenu.vue')['default'] + HInput: typeof import('./../layouts/ui-kit/HInput.vue')['default'] + HKbd: typeof import('./../layouts/ui-kit/HKbd.vue')['default'] + HSelect: typeof import('./../layouts/ui-kit/HSelect.vue')['default'] + HSlideover: typeof import('./../layouts/ui-kit/HSlideover.vue')['default'] + HTabList: typeof import('./../layouts/ui-kit/HTabList.vue')['default'] + HToggle: typeof import('./../layouts/ui-kit/HToggle.vue')['default'] + HTooltip: typeof import('./../layouts/ui-kit/HTooltip.vue')['default'] + ImagePreview: typeof import('./../components/ImagePreview/index.vue')['default'] + ImagesUpload: typeof import('./../components/ImagesUpload/index.vue')['default'] + ImageUpload: typeof import('./../components/ImageUpload/index.vue')['default'] + NotAllowed: typeof import('./../components/NotAllowed/index.vue')['default'] + PageHeader: typeof import('./../components/PageHeader/index.vue')['default'] + PageMain: typeof import('./../components/PageMain/index.vue')['default'] + PcasCascader: typeof import('./../components/PcasCascader/index.vue')['default'] + RouterLink: typeof import('vue-router')['RouterLink'] + RouterView: typeof import('vue-router')['RouterView'] + SearchBar: typeof import('./../components/SearchBar/index.vue')['default'] + SvgIcon: typeof import('./../components/SvgIcon/index.vue')['default'] + SystemInfo: typeof import('./../components/SystemInfo/index.vue')['default'] + Trend: typeof import('./../components/Trend/index.vue')['default'] + } +} diff --git a/src/types/global.d.ts b/src/types/global.d.ts new file mode 100755 index 0000000..bbba3dc --- /dev/null +++ b/src/types/global.d.ts @@ -0,0 +1,264 @@ +import type { RouteRecordRaw } from 'vue-router' + +type RecursiveRequired = { + [P in keyof T]-?: RecursiveRequired +} +type RecursivePartial = { + [P in keyof T]?: RecursivePartial +} + +declare namespace Settings { + interface app { + /** + * 颜色方案 + * @默认值 `''` 跟随系统 + * @可选值 `'light'` 明亮模式 + * @可选值 `'dark'` 暗黑模式 + */ + colorScheme?: '' | 'light' | 'dark' + /** + * 是否开启权限功能 + * @默认值 `false` + */ + enablePermission?: boolean + /** + * 是否开启载入进度条 + * @默认值 `true` + */ + enableProgress?: boolean + /** + * 是否开启动态标题 + * @默认值 `false` + */ + enableDynamicTitle?: boolean + /** + * 路由数据来源 + * @默认值 `'frontend'` 前端 + * @可选值 `'backend'` 后端 + * @可选值 `'filesystem'` 文件系统 + */ + routeBaseOn?: 'frontend' | 'backend' | 'filesystem' + /** + * 是否开启应用配置,强烈建议在生产环境中关闭 + * @默认值 `false` + */ + enableAppSetting?: boolean + } + interface home { + /** + * 是否开启主页 + * @默认值 `true` + */ + enable?: boolean + /** + * 主页名称 + * @默认值 `'主页'` + */ + title?: string + } + interface layout { + /** + * 是否开启移动端适配,开启后当页面宽度小于 992px 时自动切换为移动端展示 + * @默认值 `false` + */ + enableMobileAdaptation?: boolean + } + interface menu { + /** + * 导航栏数据来源,当 `app.routeBaseOn: 'filesystem'` 时生效 + * @默认值 `'frontend'` 前端 + * @可选值 `'backend'` 后端 + */ + baseOn?: 'frontend' | 'backend' + /** + * 导航栏模式 + * @默认值 `'side'` 侧边栏模式(有主导航) + * @可选值 `'head'` 顶部模式 + * @可选值 `'single'` 侧边栏模式(无主导航) + */ + menuMode?: 'side' | 'head' | 'single' + /** + * 切换主导航是否跳转页面 + * @默认值 `false` + */ + switchMainMenuAndPageJump?: boolean + /** + * 次导航是否只保持一个子项的展开 + * @默认值 `true` + */ + subMenuUniqueOpened?: boolean + /** + * 次导航是否收起 + * @默认值 `false` + */ + subMenuCollapse?: boolean + /** + * 是否开启次导航的展开/收起按钮 + * @默认值 `false` + */ + enableSubMenuCollapseButton?: boolean + /** + * 是否开启主导航切换快捷键 + * @默认值 `false` + */ + enableHotkeys?: boolean + } + interface topbar { + /** + * 模式 + * @默认值 `'static'` 静止,跟随页面滚动 + * @可选值 `'fixed'` 固定,不跟随页面滚动,始终固定在顶部 + * @可选值 `'sticky'` 粘性,页面往下滚动时隐藏,往上滚动时显示 + */ + mode?: 'static' | 'fixed' | 'sticky' + } + interface toolbar { + /** + * 是否开启全屏 + * @默认值 `false` + */ + enableFullscreen?: boolean + /** + * 是否开启页面刷新 + * @默认值 `false` + */ + enablePageReload?: boolean + /** + * 是否开启颜色主题 + * @默认值 `false` + */ + enableColorScheme?: boolean + } + interface breadcrumb { + /** + * 是否开启面包屑导航 + * @默认值 `true` + */ + enable?: boolean + } + interface mainPage { + /** + * 是否开启页面快捷键 + * @默认值 `true` + */ + enableHotkeys?: boolean + } + interface navSearch { + /** + * 是否开启导航搜索 + * @默认值 `true` + */ + enable?: boolean + /** + * 是否开启导航搜索快捷键 + * @默认值 `true` + */ + enableHotkeys?: boolean + } + interface copyright { + /** + * 是否开启底部版权,同时在路由 meta 对象里可以单独设置某个路由是否显示底部版权信息 + * @默认值 `false` + */ + enable?: boolean + /** + * 网站运行日期 + * @默认值 `''` + */ + dates?: string + /** + * 公司名称 + * @默认值 `''` + */ + company?: string + /** + * 网站地址 + * @默认值 `''` + */ + website?: string + /** + * 网站备案号 + * @默认值 `''` + */ + beian?: string + } + interface all { + /** 应用设置 */ + app?: app + /** 主页设置 */ + home?: home + /** 布局设置 */ + layout?: layout + /** 导航栏设置 */ + menu?: menu + /** 顶栏设置 */ + topbar?: topbar + /** 工具栏设置 */ + toolbar?: toolbar + /** 面包屑导航设置 */ + breadcrumb?: breadcrumb + /** 页面设置 */ + mainPage?: mainPage + /** 导航搜索设置 */ + navSearch?: navSearch + /** 底部版权设置 */ + copyright?: copyright + } +} + +declare module 'vue-router' { + interface RouteMeta { + title?: string | (() => string) + icon?: string + defaultOpened?: boolean + auth?: string | string[] + sidebar?: boolean + breadcrumb?: boolean + activeMenu?: string + cache?: boolean | string | string[] + link?: string + breadcrumbNeste?: Route.breadcrumb[] + } +} + +declare namespace Route { + interface recordMainRaw { + meta?: { + title?: string | (() => string) + icon?: string + auth?: string | string[] + } + children: RouteRecordRaw[] + } + interface breadcrumb { + path: string + title?: string | (() => string) + icon?: string + hide: boolean + } +} + +declare namespace Menu { + /** 原始 */ + interface recordRaw { + path?: string + meta?: { + title?: string + icon?: string + defaultOpened?: boolean + auth?: string | string[] + sidebar?: boolean + link?: string + } + children?: recordRaw[] + } + /** 主导航 */ + interface recordMainRaw { + meta?: { + title?: string + icon?: string + auth?: string | string[] + } + children: recordRaw[] + } +} diff --git a/src/types/shims.d.ts b/src/types/shims.d.ts new file mode 100755 index 0000000..0ca562f --- /dev/null +++ b/src/types/shims.d.ts @@ -0,0 +1,12 @@ +declare interface Window { + webkitDevicePixelRatio: any + mozDevicePixelRatio: any +} + +declare const __SYSTEM_INFO__: { + pkg: { + dependencies: Recordable + devDependencies: Recordable + } + lastBuildTime: string +} diff --git a/src/utils/baidu.ts b/src/utils/baidu.ts new file mode 100755 index 0000000..988dc50 --- /dev/null +++ b/src/utils/baidu.ts @@ -0,0 +1,16 @@ +if (!import.meta.env.DEV) { + const _hmt = [] + _hmt.push(['_requirePlugin', 'UrlChangeTracker', { + shouldTrackUrlChange(newPath: any, oldPath: any) { + return newPath && oldPath + }, + }]); + (function () { + const hm = document.createElement('script') + hm.src = 'https://hm.baidu.com/hm.js?7bb58fdfd1fe8ab146d4b4f23686b768' + const s = document.getElementsByTagName('script')[0] + s.parentNode?.insertBefore(hm, s) + })() +} + +export {} diff --git a/src/utils/composables/useAuth.ts b/src/utils/composables/useAuth.ts new file mode 100755 index 0000000..76a3f8b --- /dev/null +++ b/src/utils/composables/useAuth.ts @@ -0,0 +1,35 @@ +import useSettingsStore from '@/store/modules/settings' +import useUserStore from '@/store/modules/user' + +export default function useAuth() { + function hasPermission(permission: string) { + const settingsStore = useSettingsStore() + const userStore = useUserStore() + if (settingsStore.settings.app.enablePermission) { + return userStore.permissions.includes(permission) + } + else { + return true + } + } + + function auth(value: string | string[]) { + let auth + if (typeof value === 'string') { + auth = value !== '' ? hasPermission(value) : true + } + else { + auth = value.length > 0 ? value.some(item => hasPermission(item)) : true + } + return auth + } + + function authAll(value: string[]) { + return value.length > 0 ? value.every(item => hasPermission(item)) : true + } + + return { + auth, + authAll, + } +} diff --git a/src/utils/composables/useGlobalProperties.ts b/src/utils/composables/useGlobalProperties.ts new file mode 100755 index 0000000..8cb57df --- /dev/null +++ b/src/utils/composables/useGlobalProperties.ts @@ -0,0 +1,6 @@ +import type { ComponentInternalInstance } from 'vue' + +export default function useGlobalProperties() { + const { appContext } = getCurrentInstance() as ComponentInternalInstance + return appContext.config.globalProperties +} diff --git a/src/utils/composables/useMainPage.ts b/src/utils/composables/useMainPage.ts new file mode 100755 index 0000000..5d6600c --- /dev/null +++ b/src/utils/composables/useMainPage.ts @@ -0,0 +1,13 @@ +export default function useMainPage() { + const router = useRouter() + + function reload() { + router.push({ + name: 'reload', + }) + } + + return { + reload, + } +} diff --git a/src/utils/composables/useMenu.ts b/src/utils/composables/useMenu.ts new file mode 100755 index 0000000..9b6f2ee --- /dev/null +++ b/src/utils/composables/useMenu.ts @@ -0,0 +1,20 @@ +import useSettingsStore from '@/store/modules/settings' +import useMenuStore from '@/store/modules/menu' + +export default function useMenu() { + const router = useRouter() + + const settingsStore = useSettingsStore() + const menuStore = useMenuStore() + + function switchTo(index: number | string) { + menuStore.setActived(index) + if (settingsStore.settings.menu.switchMainMenuAndPageJump) { + router.push(menuStore.sidebarMenusFirstDeepestPath) + } + } + + return { + switchTo, + } +} diff --git a/src/utils/composables/useViewTransition.ts b/src/utils/composables/useViewTransition.ts new file mode 100755 index 0000000..ae0b770 --- /dev/null +++ b/src/utils/composables/useViewTransition.ts @@ -0,0 +1,17 @@ +export default function useViewTransition(callback: () => void) { + function startViewTransition() { + // @ts-expect-error: View Transition API + if (!document.startViewTransition || window.matchMedia('(prefers-reduced-motion: reduce)').matches) { + callback() + return + } + // @ts-expect-error: View Transition API + return document.startViewTransition(async () => { + await Promise.resolve(callback()) + }) + } + + return { + startViewTransition, + } +} diff --git a/src/utils/dayjs.ts b/src/utils/dayjs.ts new file mode 100755 index 0000000..37bf2f2 --- /dev/null +++ b/src/utils/dayjs.ts @@ -0,0 +1,6 @@ +import dayjs from 'dayjs' +import 'dayjs/locale/zh-cn' + +dayjs.locale('zh-cn') + +export default dayjs diff --git a/src/utils/directive.ts b/src/utils/directive.ts new file mode 100755 index 0000000..bbd2481 --- /dev/null +++ b/src/utils/directive.ts @@ -0,0 +1,19 @@ +import type { App } from 'vue' + +export default function directive(app: App) { + // 注册 v-auth 和 v-auth-all 指令 + app.directive('auth', { + mounted: (el, binding) => { + if (!useAuth().auth(binding.value)) { + el.remove() + } + }, + }) + app.directive('auth-all', { + mounted: (el, binding) => { + if (!useAuth().authAll(binding.value)) { + el.remove() + } + }, + }) +} diff --git a/src/utils/eventBus.ts b/src/utils/eventBus.ts new file mode 100755 index 0000000..aab273f --- /dev/null +++ b/src/utils/eventBus.ts @@ -0,0 +1,8 @@ +import mitt from 'mitt' + +interface MittTypes { + [key: string | symbol]: any + 'global-search-toggle'?: 'menu' | 'tab' +} + +export default mitt() diff --git a/src/utils/index.ts b/src/utils/index.ts new file mode 100755 index 0000000..dc5f4f2 --- /dev/null +++ b/src/utils/index.ts @@ -0,0 +1,5 @@ +import path from 'path-browserify' + +export function resolveRoutePath(basePath?: string, routePath?: string) { + return basePath ? path.resolve(basePath, routePath ?? '') : routePath ?? '' +} diff --git a/src/utils/injectionKeys.ts b/src/utils/injectionKeys.ts new file mode 100755 index 0000000..9067a62 --- /dev/null +++ b/src/utils/injectionKeys.ts @@ -0,0 +1,7 @@ +import type { InjectionKey } from 'vue' + +export function createInjectionKey(key: string): InjectionKey { + return key as any +} + +export const rootMenuInjectionKey = createInjectionKey('rootMenu') diff --git a/src/utils/system.copyright.ts b/src/utils/system.copyright.ts new file mode 100755 index 0000000..d71ff7d --- /dev/null +++ b/src/utils/system.copyright.ts @@ -0,0 +1,15 @@ +/* eslint-disable no-console */ +// 请勿删除 +if (import.meta.env.PROD) { + const copyright_common_style = 'font-size: 14px; margin-bottom: 2px; padding: 6px 8px; color: #fff;' + const copyright_main_style = `${copyright_common_style} background: #e24329;` + const copyright_sub_style = `${copyright_common_style} background: #707070;` + if ((navigator.language).toLowerCase() === 'zh-cn') { + console.info('%c由%cFantastic-admin%c驱动', copyright_sub_style, copyright_main_style, copyright_sub_style, '\nhttps://fantastic-admin.gitee.io') + } + else { + console.info('%cPowered by%cFantastic-admin', copyright_sub_style, copyright_main_style, '\nhttps://fantastic-admin.github.io') + } +} + +export {} diff --git a/src/views/[...all].vue b/src/views/[...all].vue new file mode 100755 index 0000000..27b51d9 --- /dev/null +++ b/src/views/[...all].vue @@ -0,0 +1,53 @@ + +name: notFound +meta: + title: 找不到页面 + constant: true + layout: false + + + + + diff --git a/src/views/index.vue b/src/views/index.vue new file mode 100755 index 0000000..196e182 --- /dev/null +++ b/src/views/index.vue @@ -0,0 +1,183 @@ + +name: home +meta: + title: 主页 + icon: ant-design:home-twotone + + + + + diff --git a/src/views/login.vue b/src/views/login.vue new file mode 100755 index 0000000..03e2a0a --- /dev/null +++ b/src/views/login.vue @@ -0,0 +1,431 @@ + +meta: + title: 登录 + constant: true + layout: false + + + + + + + diff --git a/src/views/multilevel_menu_example/level2/level3/page1.vue b/src/views/multilevel_menu_example/level2/level3/page1.vue new file mode 100755 index 0000000..2235683 --- /dev/null +++ b/src/views/multilevel_menu_example/level2/level3/page1.vue @@ -0,0 +1,12 @@ + +meta: + title: 导航2-2-1 + + + diff --git a/src/views/multilevel_menu_example/level2/level3/page2.vue b/src/views/multilevel_menu_example/level2/level3/page2.vue new file mode 100755 index 0000000..451294c --- /dev/null +++ b/src/views/multilevel_menu_example/level2/level3/page2.vue @@ -0,0 +1,12 @@ + +meta: + title: 导航2-2-2 + + + diff --git a/src/views/multilevel_menu_example/level2/page.vue b/src/views/multilevel_menu_example/level2/page.vue new file mode 100755 index 0000000..c092eea --- /dev/null +++ b/src/views/multilevel_menu_example/level2/page.vue @@ -0,0 +1,12 @@ + +meta: + title: 导航2-1 + + + diff --git a/src/views/multilevel_menu_example/page.vue b/src/views/multilevel_menu_example/page.vue new file mode 100755 index 0000000..59c83ad --- /dev/null +++ b/src/views/multilevel_menu_example/page.vue @@ -0,0 +1,12 @@ + +meta: + title: 导航1 + + + diff --git a/src/views/reload.vue b/src/views/reload.vue new file mode 100755 index 0000000..e59af4e --- /dev/null +++ b/src/views/reload.vue @@ -0,0 +1,15 @@ + +name: reload + + + + + diff --git a/themes/index.ts b/themes/index.ts new file mode 100644 index 0000000..2bb4d83 --- /dev/null +++ b/themes/index.ts @@ -0,0 +1,71 @@ +import { hex2rgba } from '@unocss/preset-mini/utils' + +export const lightTheme = { + 'color-scheme': 'light', + // 内置 UI + '--ui-primary': hex2rgba('#0f0f0f')!.join(','), + '--ui-text': hex2rgba('#fcfcfc')!.join(','), + // 主体 + '--g-bg': '#f2f2f2', + '--g-container-bg': '#fff', + '--g-border-color': '#f2f2f2', + // 头部 + '--g-header-bg': '#fff', + '--g-header-color': '#0f0f0f', + '--g-header-menu-color': '#0f0f0f', + '--g-header-menu-hover-bg': '#dde1e3', + '--g-header-menu-hover-color': '#0f0f0f', + '--g-header-menu-active-bg': '#0f0f0f', + '--g-header-menu-active-color': '#fff', + // 主导航 + '--g-main-sidebar-bg': '#f2f2f2', + '--g-main-sidebar-menu-color': '#0f0f0f', + '--g-main-sidebar-menu-hover-bg': '#dde1e3', + '--g-main-sidebar-menu-hover-color': '#0f0f0f', + '--g-main-sidebar-menu-active-bg': '#0f0f0f', + '--g-main-sidebar-menu-active-color': '#fff', + // 次导航 + '--g-sub-sidebar-bg': '#fff', + '--g-sub-sidebar-logo-bg': '#0f0f0f', + '--g-sub-sidebar-logo-color': '#fff', + '--g-sub-sidebar-menu-color': '#0f0f0f', + '--g-sub-sidebar-menu-hover-bg': '#dde1e3', + '--g-sub-sidebar-menu-hover-color': '#0f0f0f', + '--g-sub-sidebar-menu-active-bg': '#0f0f0f', + '--g-sub-sidebar-menu-active-color': '#fff', +} + +export const darkTheme = { + 'color-scheme': 'dark', + // 内置 UI + '--ui-primary': hex2rgba('#e5e5e5')!.join(','), + '--ui-text': hex2rgba('#0f0f0f')!.join(','), + // 主体 + '--g-bg': '#0a0a0a', + '--g-container-bg': '#141414', + '--g-border-color': '#15191e', + // 头部 + '--g-header-bg': '#141414', + '--g-header-color': '#e5e5e5', + '--g-header-menu-color': '#a8a29e', + '--g-header-menu-hover-bg': '#141414', + '--g-header-menu-hover-color': '#e5e5e5', + '--g-header-menu-active-bg': '#e5e5e5', + '--g-header-menu-active-color': '#0a0a0a', + // 主导航 + '--g-main-sidebar-bg': '#0a0a0a', + '--g-main-sidebar-menu-color': '#a8a29e', + '--g-main-sidebar-menu-hover-bg': '#141414', + '--g-main-sidebar-menu-hover-color': '#e5e5e5', + '--g-main-sidebar-menu-active-bg': '#e5e5e5', + '--g-main-sidebar-menu-active-color': '#0a0a0a', + // 次导航 + '--g-sub-sidebar-bg': '#141414', + '--g-sub-sidebar-logo-bg': '#0f0f0f', + '--g-sub-sidebar-logo-color': '#e5e5e5', + '--g-sub-sidebar-menu-color': '#a8a29e', + '--g-sub-sidebar-menu-hover-bg': '#0a0a0a', + '--g-sub-sidebar-menu-hover-color': '#e5e5e5', + '--g-sub-sidebar-menu-active-bg': '#e5e5e5', + '--g-sub-sidebar-menu-active-color': '#0a0a0a', +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100755 index 0000000..12b6101 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,48 @@ +{ + "compilerOptions": { + "target": "ESNext", + "jsx": "preserve", + "lib": [ + "ESNext", + "DOM", + "DOM.Iterable" + ], + "useDefineForClassFields": true, + "baseUrl": "./", + "module": "ESNext", + "moduleResolution": "Node", + "paths": { + "@/*": [ + "src/*" + ], + "#/*": [ + "src/types/*" + ] + }, + "resolveJsonModule": true, + "types": [ + "vite/client", + "vite-plugin-pages/client", + "vite-plugin-vue-meta-layouts/client" + ], + "allowImportingTsExtensions": true, + "allowJs": false, + "strict": true, + "noEmit": true, + "sourceMap": true, + "esModuleInterop": true, + "isolatedModules": true, + "skipLibCheck": true + }, + "references": [ + { + "path": "./tsconfig.node.json" + } + ], + "include": [ + "src/**/*.ts", + "src/**/*.d.ts", + "src/**/*.tsx", + "src/**/*.vue" + ] +} diff --git a/tsconfig.node.json b/tsconfig.node.json new file mode 100755 index 0000000..f496282 --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "composite": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true, + "skipLibCheck": true + }, + "include": [ + "package.json", + "vite.config.ts", + "vite/**/*.ts" + ] +} diff --git a/uno.config.ts b/uno.config.ts new file mode 100644 index 0000000..f74baf9 --- /dev/null +++ b/uno.config.ts @@ -0,0 +1,64 @@ +import type { Theme } from 'unocss/preset-uno' +import { + defineConfig, + presetAttributify, + presetIcons, + presetTypography, + presetUno, + transformerCompileClass, + transformerDirectives, + transformerVariantGroup, +} from 'unocss' +import { entriesToCss, toArray } from '@unocss/core' +import { darkTheme, lightTheme } from './themes' + +export default defineConfig({ + shortcuts: [ + { + 'flex-center': 'flex justify-center items-center', + 'flex-col-center': 'flex flex-col justify-center items-center', + }, + ], + preflights: [ + { + getCSS: () => { + const returnCss: any = [] + // 明亮主题 + const lightCss = entriesToCss(Object.entries(lightTheme)) + const lightRoots = toArray([`*,::before,::after`, `::backdrop`]) + returnCss.push(lightRoots.map(root => `${root}{${lightCss}}`).join('')) + // 暗黑主题 + const darkCss = entriesToCss(Object.entries(darkTheme)) + const darkRoots = toArray([`html.dark,html.dark *,html.dark ::before,html.dark ::after`, `html.dark ::backdrop`]) + returnCss.push(darkRoots.map(root => `${root}{${darkCss}}`).join('')) + + return returnCss.join('') + }, + }, + ], + theme: { + colors: { + 'ui-primary': 'rgb(var(--ui-primary))', + 'ui-text': 'rgb(var(--ui-text))', + }, + }, + presets: [ + presetUno(), + presetAttributify(), + presetIcons({ + extraProperties: { + 'display': 'inline-block', + 'vertical-align': 'middle', + }, + }), + presetTypography(), + ], + transformers: [ + transformerDirectives(), + transformerVariantGroup(), + transformerCompileClass(), + ], + configDeps: [ + 'themes/index.ts', + ], +}) diff --git a/vite.config.ts b/vite.config.ts new file mode 100755 index 0000000..165d598 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,62 @@ +import fs from 'node:fs' +import path from 'node:path' +import process from 'node:process' +import { defineConfig, loadEnv } from 'vite' +import dayjs from 'dayjs' +import pkg from './package.json' +import createVitePlugins from './vite/plugins' + +// https://vitejs.dev/config/ +export default async ({ mode, command }) => { + const env = loadEnv(mode, process.cwd()) + // 全局 scss 资源 + const scssResources = [] + fs.readdirSync('src/assets/styles/resources').forEach((dirname) => { + if (fs.statSync(`src/assets/styles/resources/${dirname}`).isFile()) { + scssResources.push(`@use "src/assets/styles/resources/${dirname}" as *;`) + } + }) + return defineConfig({ + base: './', + // 开发服务器选项 https://cn.vitejs.dev/config/#server-options + server: { + open: true, + port: 9000, + proxy: { + '/proxy': { + target: env.VITE_APP_API_BASEURL, + changeOrigin: command === 'serve' && env.VITE_OPEN_PROXY === 'true', + rewrite: path => path.replace(/\/proxy/, ''), + }, + }, + }, + // 构建选项 https://cn.vitejs.dev/config/#server-fsserve-root + build: { + outDir: mode === 'production' ? 'dist' : `dist-${mode}`, + sourcemap: env.VITE_BUILD_SOURCEMAP === 'true', + }, + define: { + __SYSTEM_INFO__: JSON.stringify({ + pkg: { + dependencies: pkg.dependencies, + devDependencies: pkg.devDependencies, + }, + lastBuildTime: dayjs().format('YYYY-MM-DD HH:mm:ss'), + }), + }, + plugins: createVitePlugins(env, command === 'build'), + resolve: { + alias: { + '@': path.resolve(__dirname, 'src'), + '#': path.resolve(__dirname, 'src/types'), + }, + }, + css: { + preprocessorOptions: { + scss: { + additionalData: scssResources.join(''), + }, + }, + }, + }) +} diff --git a/vite/plugins/auto-import.ts b/vite/plugins/auto-import.ts new file mode 100755 index 0000000..b27bdd5 --- /dev/null +++ b/vite/plugins/auto-import.ts @@ -0,0 +1,15 @@ +import autoImport from 'unplugin-auto-import/vite' + +export default function createAutoImport() { + return autoImport({ + imports: [ + 'vue', + 'vue-router', + 'pinia', + ], + dts: './src/types/auto-imports.d.ts', + dirs: [ + './src/utils/composables/**', + ], + }) +} diff --git a/vite/plugins/banner.ts b/vite/plugins/banner.ts new file mode 100755 index 0000000..c8f7482 --- /dev/null +++ b/vite/plugins/banner.ts @@ -0,0 +1,12 @@ +import banner from 'vite-plugin-banner' + +export default function createBanner() { + return banner(` +/** + * 由 Fantastic-admin 提供技术支持 + * Powered by Fantastic-admin + * Gitee https://fantastic-admin.gitee.io + * Github https://fantastic-admin.github.io + */ +`) +} diff --git a/vite/plugins/components.ts b/vite/plugins/components.ts new file mode 100755 index 0000000..204d700 --- /dev/null +++ b/vite/plugins/components.ts @@ -0,0 +1,12 @@ +import components from 'unplugin-vue-components/vite' + +export default function createComponents() { + return components({ + dirs: [ + 'src/components', + 'src/layouts/ui-kit', + ], + include: [/\.vue$/, /\.vue\?vue/, /\.tsx$/], + dts: './src/types/components.d.ts', + }) +} diff --git a/vite/plugins/compression.ts b/vite/plugins/compression.ts new file mode 100755 index 0000000..317582d --- /dev/null +++ b/vite/plugins/compression.ts @@ -0,0 +1,25 @@ +import compression from 'vite-plugin-compression' + +export default function createCompression(env) { + const { VITE_BUILD_COMPRESS } = env + const compressList = VITE_BUILD_COMPRESS.split(',') + const plugin: any[] = [] + if (compressList.includes('gzip')) { + plugin.push( + compression({ + ext: '.gz', + deleteOriginFile: false, + }), + ) + } + if (compressList.includes('brotli')) { + plugin.push( + compression({ + ext: '.br', + algorithm: 'brotliCompress', + deleteOriginFile: false, + }), + ) + } + return plugin +} diff --git a/vite/plugins/index.ts b/vite/plugins/index.ts new file mode 100755 index 0000000..2a553ca --- /dev/null +++ b/vite/plugins/index.ts @@ -0,0 +1,40 @@ +import type { PluginOption } from 'vite' +import vue from '@vitejs/plugin-vue' +import vueJsx from '@vitejs/plugin-vue-jsx' +import vueLegacy from '@vitejs/plugin-legacy' + +import createInspector from './inspector' +import createAutoImport from './auto-import' +import createComponents from './components' +import createUnocss from './unocss' +import createSvgIcon from './svg-icon' +import createMock from './mock' +import createLayouts from './layouts' +import createPages from './pages' +import createCompression from './compression' +import createBanner from './banner' + +export default function createVitePlugins(viteEnv, isBuild = false) { + const vitePlugins: (PluginOption | PluginOption[])[] = [ + vue(), + vueJsx(), + vueLegacy({ + renderLegacyChunks: false, + modernPolyfills: [ + 'es.array.at', + 'es.array.find-last', + ], + }), + ] + vitePlugins.push(createInspector()) + vitePlugins.push(createAutoImport()) + vitePlugins.push(createComponents()) + vitePlugins.push(createUnocss()) + vitePlugins.push(createSvgIcon(isBuild)) + vitePlugins.push(createMock(viteEnv, isBuild)) + vitePlugins.push(createLayouts()) + vitePlugins.push(createPages()) + isBuild && vitePlugins.push(...createCompression(viteEnv)) + vitePlugins.push(createBanner()) + return vitePlugins +} diff --git a/vite/plugins/inspector.ts b/vite/plugins/inspector.ts new file mode 100755 index 0000000..f0f0e10 --- /dev/null +++ b/vite/plugins/inspector.ts @@ -0,0 +1,5 @@ +import Inspector from 'vite-plugin-vue-inspector' + +export default function createInspector() { + return Inspector() +} diff --git a/vite/plugins/layouts.ts b/vite/plugins/layouts.ts new file mode 100755 index 0000000..8698b09 --- /dev/null +++ b/vite/plugins/layouts.ts @@ -0,0 +1,7 @@ +import Layouts from 'vite-plugin-vue-meta-layouts' + +export default function createLayouts() { + return Layouts({ + defaultLayout: 'index', + }) +} diff --git a/vite/plugins/mock.ts b/vite/plugins/mock.ts new file mode 100755 index 0000000..a709524 --- /dev/null +++ b/vite/plugins/mock.ts @@ -0,0 +1,14 @@ +import { viteMockServe } from 'vite-plugin-mock' + +export default function createMock(env, isBuild) { + const { VITE_BUILD_MOCK } = env + return viteMockServe({ + mockPath: 'src/mock', + localEnabled: !isBuild, + prodEnabled: isBuild && VITE_BUILD_MOCK === 'true', + injectCode: ` +import { setupProdMockServer } from './mockProdServer'; +setupProdMockServer(); + `, + }) +} diff --git a/vite/plugins/pages.ts b/vite/plugins/pages.ts new file mode 100755 index 0000000..470bcca --- /dev/null +++ b/vite/plugins/pages.ts @@ -0,0 +1,10 @@ +import Pages from 'vite-plugin-pages' + +export default function createPages() { + return Pages({ + dirs: 'src/views', + exclude: [ + '**/components/**/*.vue', + ], + }) +} diff --git a/vite/plugins/svg-icon.ts b/vite/plugins/svg-icon.ts new file mode 100755 index 0000000..f76753d --- /dev/null +++ b/vite/plugins/svg-icon.ts @@ -0,0 +1,11 @@ +import path from 'node:path' +import process from 'node:process' +import { createSvgIconsPlugin } from 'vite-plugin-svg-icons' + +export default function createSvgIcon(isBuild) { + return createSvgIconsPlugin({ + iconDirs: [path.resolve(process.cwd(), 'src/assets/icons/')], + symbolId: 'icon-[dir]-[name]', + svgoOptions: isBuild, + }) +} diff --git a/vite/plugins/unocss.ts b/vite/plugins/unocss.ts new file mode 100755 index 0000000..8160e63 --- /dev/null +++ b/vite/plugins/unocss.ts @@ -0,0 +1,5 @@ +import Unocss from 'unocss/vite' + +export default function createUnocss() { + return Unocss() +}