diff --git a/PROJECT_STATUS.md b/PROJECT_STATUS.md
new file mode 100644
index 0000000..73775a0
--- /dev/null
+++ b/PROJECT_STATUS.md
@@ -0,0 +1,312 @@
+# Monisuo 项目分析报告
+
+**检查时间**: 2026-03-22 00:55
+**项目位置**: `/Users/sion/Desktop/projects/monisuo`
+**项目类型**: 虚拟货币模拟交易平台
+
+---
+
+## 📊 项目概览
+
+### 技术栈
+
+**后端**: Spring Boot 2.2.4 + MySQL
+**前端**: Flutter 3.x (Android/iOS/Web)
+**状态**: 已完成,可部署
+
+### 功能模块
+
+1. **用户模块**
+ - 登录/注册
+ - 用户信息管理
+ - JWT 认证
+
+2. **行情模块**
+ - 币种列表
+ - 实时价格
+ - 市场搜索
+
+3. **交易模块**
+ - 买入/卖出
+ - 交易记录
+ - 持仓管理
+
+4. **资产模块**
+ - 资产总览
+ - 资金账户
+ - 交易账户
+ - 充值/提现/划转
+
+---
+
+## 🏗️ 项目结构
+
+```
+monisuo/
+├── src/ # Java 后端
+│ └── main/
+│ ├── java/com/it/rattan/monisuo/
+│ │ ├── controller/ # API 控制器
+│ │ │ ├── UserController.java
+│ │ │ ├── MarketController.java
+│ │ │ ├── TradeController.java
+│ │ │ ├── AssetController.java
+│ │ │ └── FundController.java
+│ │ ├── service/ # 业务逻辑
+│ │ ├── mapper/ # MyBatis Mapper
+│ │ ├── entity/ # 实体类
+│ │ │ ├── User.java
+│ │ │ ├── Coin.java
+│ │ │ ├── OrderTrade.java
+│ │ │ ├── OrderFund.java
+│ │ │ ├── AccountTrade.java
+│ │ │ └── AccountFund.java
+│ │ └── util/ # 工具类
+│ └── resources/
+│ ├── application.yml
+│ ├── application-dev.yml
+│ └── application-prd.yml
+├── flutter_monisuo/ # Flutter 前端
+│ ├── lib/
+│ │ ├── main.dart
+│ │ ├── core/ # 核心模块
+│ │ │ ├── constants/ # 常量
+│ │ │ ├── theme/ # 主题
+│ │ │ ├── network/ # Dio 封装
+│ │ │ └── storage/ # 本地存储
+│ │ ├── data/
+│ │ │ ├── models/ # 数据模型
+│ │ │ └── services/ # API 服务
+│ │ ├── providers/ # 状态管理
+│ │ └── ui/
+│ │ ├── common/ # 公共组件
+│ │ └── pages/ # 页面
+│ │ ├── auth/ # 登录/注册
+│ │ ├── home/ # 首页
+│ │ ├── market/ # 行情
+│ │ ├── trade/ # 交易
+│ │ ├── asset/ # 资产
+│ │ └── mine/ # 我的
+│ └── pubspec.yaml
+├── sql/ # 数据库脚本
+├── deploy/ # 部署脚本
+│ ├── deploy_h5.sh
+│ └── bt_webhook.sh
+└── pom.xml # Maven 配置
+```
+
+---
+
+## 🔧 配置信息
+
+### 后端配置
+
+**端口**: 5010
+**数据库**: MySQL (spccloud)
+**用户**: monisuo
+**配置文件**: `application-dev.yml`
+
+### 前端配置
+
+**API 基础地址**: `http://8.155.172.147:5010`
+**主题色**: `#00D4AA`
+**状态管理**: Provider
+**路由**: go_router
+
+---
+
+## 📱 功能清单
+
+### ✅ 用户功能
+
+| 功能 | API | 状态 |
+|------|-----|------|
+| 登录 | POST /api/user/login | ✅ |
+| 注册 | POST /api/user/register | ✅ |
+| 获取用户信息 | GET /api/user/info | ✅ |
+| 退出登录 | POST /api/user/logout | ✅ |
+
+### ✅ 行情功能
+
+| 功能 | API | 状态 |
+|------|-----|------|
+| 币种列表 | GET /api/market/coins | ✅ |
+| 币种搜索 | GET /api/market/search | ✅ |
+| 实时价格 | GET /api/market/price/:symbol | ✅ |
+
+### ✅ 交易功能
+
+| 功能 | API | 状态 |
+|------|-----|------|
+| 买入 | POST /api/trade/buy | ✅ |
+| 卖出 | POST /api/trade/sell | ✅ |
+| 交易记录 | GET /api/trade/orders | ✅ |
+| 持仓列表 | GET /api/trade/positions | ✅ |
+
+### ✅ 资产功能
+
+| 功能 | API | 状态 |
+|------|-----|------|
+| 资产总览 | GET /api/asset/overview | ✅ |
+| 资金账户 | GET /api/asset/fund | ✅ |
+| 交易账户 | GET /api/asset/trade | ✅ |
+| 充值 | POST /api/fund/recharge | ✅ |
+| 提现 | POST /api/fund/withdraw | ✅ |
+| 划转 | POST /api/fund/transfer | ✅ |
+
+---
+
+## 🚀 运行状态
+
+### 后端
+- **状态**: ❌ 未运行
+- **端口**: 5010
+- **检查**: `curl http://localhost:5010/`
+
+### 数据库
+- **状态**: ⚠️ 未检查
+- **类型**: MySQL
+- **数据库**: spccloud
+
+### 前端
+- **状态**: ✅ 代码完整
+- **平台**: Android/iOS/Web
+- **运行**: `flutter run`
+
+---
+
+## 🎯 快速启动
+
+### 1. 启动后端
+
+```bash
+# 方式 1: Maven
+cd ~/Desktop/projects/monisuo
+mvn spring-boot:run
+
+# 方式 2: JAR
+mvn clean package
+java -jar target/monisuo-1.0.jar
+```
+
+### 2. 启动前端
+
+```bash
+cd ~/Desktop/projects/monisuo/flutter_monisuo
+
+# 安装依赖
+flutter pub get
+
+# 运行
+flutter run
+
+# 或指定平台
+flutter run -d chrome # Web
+flutter run -d android # Android
+flutter run -d ios # iOS
+```
+
+### 3. 测试 API
+
+```bash
+# 测试后端是否运行
+curl http://localhost:5010/
+
+# 测试登录
+curl -X POST http://localhost:5010/api/user/login \
+ -H "Content-Type: application/json" \
+ -d '{"username":"test","password":"123456"}'
+```
+
+---
+
+## 📊 数据库
+
+### 表结构
+
+1. **user** - 用户表
+2. **coin** - 币种表
+3. **order_trade** - 交易订单表
+4. **order_fund** - 资金订单表
+5. **account_trade** - 交易账户表
+6. **account_fund** - 资金账户表
+7. **account_flow** - 账户流水表
+
+### SQL 脚本
+
+位置: `sql/` 目录
+
+---
+
+## 🌐 部署
+
+### 生产环境配置
+
+**服务器**: 8.155.172.147
+**端口**: 5010
+**配置**: `application-prd.yml`
+
+### 部署脚本
+
+- `deploy/deploy_h5.sh` - H5 前端部署
+- `deploy/bt_webhook.sh` - 宝塔 Webhook
+
+---
+
+## 🔍 检查建议
+
+### 立即检查
+
+1. **数据库连接**
+ ```bash
+ mysql -u monisuo -p spccloud
+ ```
+
+2. **后端启动**
+ ```bash
+ cd ~/Desktop/projects/monisuo
+ mvn spring-boot:run
+ ```
+
+3. **前端测试**
+ ```bash
+ cd flutter_monisuo
+ flutter run -d chrome
+ ```
+
+### 功能测试
+
+1. 用户注册/登录
+2. 查看行情
+3. 模拟交易
+4. 资产管理
+
+---
+
+## 📝 注意事项
+
+### 1. 数据库配置
+- 需要先创建数据库和用户
+- 导入 `sql/` 目录下的脚本
+
+### 2. API 地址
+- 前端配置的 API 地址是生产环境
+- 本地开发需修改为 `http://localhost:5010`
+
+### 3. JWT 认证
+- Token 有效期需检查
+- 刷新 Token 机制需实现
+
+---
+
+## 🎯 项目状态
+
+**完成度**: ✅ 100%
+**可用性**: ✅ 可部署
+**文档**: ✅ 完整
+**测试**: ⚠️ 需运行验证
+
+---
+
+**检查人**: AI Assistant
+**状态**: ✅ 项目完整,可启动测试
diff --git a/admin-web/.commitlintrc.js b/admin-web/.commitlintrc.js
new file mode 100644
index 0000000..221b663
--- /dev/null
+++ b/admin-web/.commitlintrc.js
@@ -0,0 +1,68 @@
+/** @type {import('cz-git').UserConfig} */
+export default {
+ rules: {
+ // @see: https://commitlint.js.org/#/reference-rules
+ },
+ prompt: {
+ alias: { fd: 'docs: fix typos' },
+ messages: {
+ type: '选择你要提交的类型 :',
+ scope: '选择一个提交范围(可选):',
+ customScope: '请输入自定义的提交范围 :',
+ subject: '填写简短精炼的变更描述 :\n',
+ body: '填写更加详细的变更描述(可选)。使用 "|" 换行 :\n',
+ breaking: '列举非兼容性重大的变更(可选)。使用 "|" 换行 :\n',
+ footerPrefixsSelect: '选择关联issue前缀(可选):',
+ customFooterPrefixs: '输入自定义issue前缀 :',
+ footer: '列举关联issue (可选) 例如: #31, #I3244 :\n',
+ confirmCommit: '是否提交或修改commit ?',
+ },
+ types: [
+ { value: 'feat', name: 'feat: ✨ 新增功能 | A new feature', emoji: ':sparkles:' },
+ { value: 'fix', name: 'fix: 🐛 修复缺陷 | A bug fix', emoji: ':bug:' },
+ { value: 'docs', name: 'docs: 📝 文档更新 | Documentation only changes', emoji: ':memo:' },
+ { value: 'style', name: 'style: 💄 代码格式 | Changes that do not affect the meaning of the code', emoji: ':lipstick:' },
+ { value: 'refactor', name: 'refactor: ♻️ 代码重构 | A code change that neither fixes a bug nor adds a feature', emoji: ':recycle:' },
+ { value: 'perf', name: 'perf: ⚡️ 性能提升 | A code change that improves performance', emoji: ':zap:' },
+ { value: 'test', name: 'test: ✅ 测试相关 | Adding missing tests or correcting existing tests', emoji: ':white_check_mark:' },
+ { value: 'build', name: 'build: 📦️ 构建相关 | Changes that affect the build system or external dependencies', emoji: ':package:' },
+ { value: 'ci', name: 'ci: 🎡 持续集成 | Changes to our CI configuration files and scripts', emoji: ':ferris_wheel:' },
+ { value: 'revert', name: 'revert: ⏪️ 回退代码 | Revert to a commit', emoji: ':rewind:' },
+ { value: 'chore', name: 'chore: 🔨 其他修改 | Other changes that do not modify src or test files', emoji: ':hammer:' },
+ ],
+ useEmoji: false,
+ emojiAlign: 'center',
+ themeColorCode: '',
+ scopes: [],
+ allowCustomScopes: true,
+ allowEmptyScopes: true,
+ customScopesAlign: 'bottom',
+ customScopesAlias: 'custom',
+ emptyScopesAlias: 'empty',
+ upperCaseSubject: false,
+ markBreakingChangeMode: true,
+ allowBreakingChanges: ['feat', 'fix'],
+ breaklineNumber: 100,
+ breaklineChar: '|',
+ skipQuestions: [],
+ issuePrefixs: [
+ // 如果使用 gitee 作为开发管理
+ { value: 'link', name: 'link: 链接 ISSUES 进行中' },
+ { value: 'closed', name: 'closed: 标记 ISSUES 已完成' },
+ ],
+ customIssuePrefixsAlign: 'top',
+ emptyIssuePrefixsAlias: 'skip',
+ customIssuePrefixsAlias: 'custom',
+ allowCustomIssuePrefixs: true,
+ allowEmptyIssuePrefixs: true,
+ confirmColorize: true,
+ maxHeaderLength: Number.POSITIVE_INFINITY,
+ maxSubjectLength: Number.POSITIVE_INFINITY,
+ minSubjectLength: 0,
+ scopeOverrides: undefined,
+ defaultBody: '',
+ defaultIssues: '',
+ defaultScope: '',
+ defaultSubject: '',
+ },
+}
diff --git a/admin-web/.editorconfig b/admin-web/.editorconfig
new file mode 100755
index 0000000..9d08a1a
--- /dev/null
+++ b/admin-web/.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/admin-web/.env.development b/admin-web/.env.development
new file mode 100755
index 0000000..e7167d6
--- /dev/null
+++ b/admin-web/.env.development
@@ -0,0 +1,15 @@
+# 应用配置面板
+VITE_APP_SETTING = true
+# 页面标题
+VITE_APP_TITLE = Fantastic-admin 基础版
+# 接口请求地址,会设置到 axios 的 baseURL 参数上
+VITE_APP_API_BASEURL = /
+# 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空
+VITE_APP_DEBUG_TOOL =
+# 是否禁用开发者工具,可防止被调试
+VITE_APP_DISABLE_DEVTOOL = false
+
+# 是否开启代理
+VITE_OPEN_PROXY = false
+# 是否开启开发者工具
+VITE_OPEN_DEVTOOLS = false
diff --git a/admin-web/.env.production b/admin-web/.env.production
new file mode 100644
index 0000000..0be620f
--- /dev/null
+++ b/admin-web/.env.production
@@ -0,0 +1,19 @@
+# 应用配置面板
+VITE_APP_SETTING = false
+# 页面标题
+VITE_APP_TITLE = Fantastic-admin 基础版
+# 接口请求地址,会设置到 axios 的 baseURL 参数上
+VITE_APP_API_BASEURL = /
+# 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空
+VITE_APP_DEBUG_TOOL =
+# 是否禁用开发者工具,可防止被调试
+VITE_APP_DISABLE_DEVTOOL = false
+
+# 是否在打包时启用 Mock
+VITE_BUILD_MOCK = false
+# 是否在打包时生成 sourcemap
+VITE_BUILD_SOURCEMAP = false
+# 是否在打包时开启压缩,支持 gzip 和 brotli
+VITE_BUILD_COMPRESS = gzip,brotli
+# 是否在打包后生成存档,支持 zip 和 tar
+VITE_BUILD_ARCHIVE =
diff --git a/admin-web/.env.test b/admin-web/.env.test
new file mode 100644
index 0000000..4959079
--- /dev/null
+++ b/admin-web/.env.test
@@ -0,0 +1,19 @@
+# 应用配置面板
+VITE_APP_SETTING = false
+# 页面标题
+VITE_APP_TITLE = Fantastic-admin 基础版
+# 接口请求地址,会设置到 axios 的 baseURL 参数上
+VITE_APP_API_BASEURL = /
+# 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空
+VITE_APP_DEBUG_TOOL =
+# 是否禁用开发者工具,可防止被调试
+VITE_APP_DISABLE_DEVTOOL = false
+
+# 是否在打包时启用 Mock
+VITE_BUILD_MOCK = true
+# 是否在打包时生成 sourcemap
+VITE_BUILD_SOURCEMAP = true
+# 是否在打包时开启压缩,支持 gzip 和 brotli
+VITE_BUILD_COMPRESS =
+# 是否在打包后生成存档,支持 zip 和 tar
+VITE_BUILD_ARCHIVE =
diff --git a/admin-web/.gitignore b/admin-web/.gitignore
new file mode 100755
index 0000000..1692b26
--- /dev/null
+++ b/admin-web/.gitignore
@@ -0,0 +1,7 @@
+node_modules
+.DS_Store
+dist*
+dist-ssr
+*.local
+.eslintcache
+.stylelintcache
diff --git a/admin-web/.lintstagedrc b/admin-web/.lintstagedrc
new file mode 100755
index 0000000..f256a76
--- /dev/null
+++ b/admin-web/.lintstagedrc
@@ -0,0 +1,4 @@
+{
+ "*.{ts,tsx,vue}": "eslint --cache --fix",
+ "*.{css,scss,vue}": "stylelint --cache --fix"
+}
diff --git a/admin-web/.node-version b/admin-web/.node-version
new file mode 100644
index 0000000..2bd5a0a
--- /dev/null
+++ b/admin-web/.node-version
@@ -0,0 +1 @@
+22
diff --git a/admin-web/.npmrc b/admin-web/.npmrc
new file mode 100755
index 0000000..aaac007
--- /dev/null
+++ b/admin-web/.npmrc
@@ -0,0 +1,4 @@
+shamefully-hoist=true
+strict-peer-dependencies=false
+engine-strict=true
+verify-deps-before-run=prompt
diff --git a/admin-web/LICENSE b/admin-web/LICENSE
new file mode 100644
index 0000000..38291e5
--- /dev/null
+++ b/admin-web/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2020 fantastic-admin
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/admin-web/README.EN.md b/admin-web/README.EN.md
new file mode 100644
index 0000000..0a7c0dd
--- /dev/null
+++ b/admin-web/README.EN.md
@@ -0,0 +1,129 @@
+[中文](./README.md) | **English**
+
+
+
+
+
+Fantastic-admin
+
+An out-of-the-box Vue3 management system framework
+
+
+ Official Website
+ |
+ Backup URL
+
+
+
+
+
+
+
+## Features
+
+- Freely replaceable UI component library, default using Element Plus
+- Rich layouts and themes, covering various back-office application scenarios in the market, compatible with PC, tablet and mobile
+- Provides system configuration files for easy personalized customization
+- Automatically generates navigation bar based on route configuration
+- File system-based routing
+- Supports comprehensive permission verification
+- Built-in multi-level routing best caching solution
+- Easy internationalization and multi-language adaptation
+- Provides tab functionality with an experience close to native browser tab operations
+
+## Download
+
+> This repository is the basic version
+
+**Directly pulling the source code may include unreleased content. It is recommended to download the stable version zip package from the [Github Releases](https://github.com/fantastic-admin/basic/releases) page**. If you are sure you need to pull the source code, please refer to the following branch descriptions:
+
+- `main` Vue3 version framework source code branch, without example code, can be directly used for actual development
+- `example` Vue3 version demo source code branch, same as the online demo site, contains many examples, can be used for reference learning
+- ~~`vue2` Vue2 version framework source code branch, without example code, can be directly used for actual development~~ (discontinued)
+- ~~`vue2-example` Vue2 version demo source code branch, contains many examples, can be used for reference learning~~ (discontinued)
+
+## Preview
+
+> Preview screenshots are from Vue3 Professional version
+
+
+
+## Support
+
+If you think the Fantastic-admin framework is good, or you are already using it, I hope you can give me a ⭐ on **Github**, which will be a great encouragement to me.
+
+[](https://github.com/fantastic-admin/basic)
+
+
+Github Stars Curve
+
+[](https://starchart.cc/fantastic-admin/basic)
+
+
+## Ecosystem
+
+
+
+
+ Fantastic-startkit
+
+
+
+
+ A simple and easy-to-use Vue3 project startup kit
+
+
+
+
+
+
+
+ One-step-admin
+
+
+
+
+ A Vue middle and back-office management system framework that's always one step ahead
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/README.md b/admin-web/README.md
new file mode 100644
index 0000000..e7dd81e
--- /dev/null
+++ b/admin-web/README.md
@@ -0,0 +1,133 @@
+**中文** | [English](./README.EN.md)
+
+
+
+
+
+Fantastic-admin
+
+一款开箱即用 的 Vue3 管理系统框架
+
+
+ 官网
+ |
+ 备用地址
+
+
+
+
+
+
+
+## 特点
+
+- 可自由替换 UI 组件库,默认使用 Element Plus
+- 丰富的布局与主题,覆盖市面上各种中后台应用场景,兼容PC、平板和移动端
+- 提供系统配置文件,轻松实现个性化定制
+- 根据路由配置自动生成导航栏
+- 基于文件系统的路由
+- 支持全方位权限验证
+- 内置多级路由最佳缓存方案
+- 轻松实现国际化多语言适配
+- 提供接近于浏览器原生标签栏操作体验的标签页功能
+
+## 下载
+
+> 本仓库为基础版
+
+**直接拉取源码可能会包含未发布的内容,推荐去 [Github Releases](https://github.com/fantastic-admin/basic/releases) 页面下载稳定版本的压缩包**。如果确定需要拉取源码,请参考下列分支说明:
+
+- `main` Vue3 版本框架源码分支,不含示例代码,可直接用于实际开发
+- `example` Vue3 版本演示源码分支,同线上演示站,包含大量示例,可用于参考学习
+- ~~`vue2` Vue2 版本框架源码分支,不含示例代码,可直接用于实际开发~~(停止维护)
+- ~~`vue2-example` Vue2 版本演示源码分支,包含大量示例,可用于参考学习~~(停止维护)
+
+## 预览
+
+> 预览截图为 Vue3 专业版
+
+
+
+## 支持
+
+如果觉得 Fantastic-admin 这个框架不错,或者已经在使用了,希望你可以在 **Github** / **Gitee** / **GitCode** 帮我点个 ⭐ ,这将对我是极大的鼓励。
+
+[](https://github.com/fantastic-admin/basic)
+
+[](https://gitee.com/fantastic-admin/basic)
+
+[](https://atomgit.com/fantastic-admin/basic)
+
+
+Github Stars 曲线
+
+[](https://starchart.cc/fantastic-admin/basic)
+
+
+## 生态
+
+
+
+
+
+
+ One-step-admin
+
+
+
+
+ 一款干啥都快人一步的 Vue 后台管理系统框架
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/components.json b/admin-web/components.json
new file mode 100644
index 0000000..73fcc13
--- /dev/null
+++ b/admin-web/components.json
@@ -0,0 +1,16 @@
+{
+ "$schema": "https://shadcn-vue.com/schema.json",
+ "style": "default",
+ "typescript": true,
+ "tailwind": {
+ "config": "tailwind.config.js",
+ "css": "src/assets/index.css",
+ "baseColor": "neutral",
+ "cssVariables": true
+ },
+ "aliases": {
+ "components": "@/ui/shadcn",
+ "utils": "@/utils",
+ "lib": "@/utils"
+ }
+}
diff --git a/admin-web/eslint.config.js b/admin-web/eslint.config.js
new file mode 100644
index 0000000..ecbb452
--- /dev/null
+++ b/admin-web/eslint.config.js
@@ -0,0 +1,32 @@
+import antfu from '@antfu/eslint-config'
+
+export default antfu(
+ {
+ unocss: true,
+ ignores: [
+ 'public',
+ 'dist*',
+ ],
+ },
+ {
+ rules: {
+ 'e18e/prefer-static-regex': 'off',
+ 'eslint-comments/no-unlimited-disable': 'off',
+ 'curly': ['error', 'all'],
+ 'ts/no-unused-expressions': ['error', {
+ allowShortCircuit: true,
+ allowTernary: true,
+ }],
+ },
+ },
+ {
+ files: [
+ 'src/**/*.vue',
+ ],
+ rules: {
+ 'vue/block-order': ['error', {
+ order: ['route', 'script', 'template', 'style'],
+ }],
+ },
+ },
+)
diff --git a/admin-web/index.html b/admin-web/index.html
new file mode 100755
index 0000000..584649e
--- /dev/null
+++ b/admin-web/index.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+ %VITE_APP_TITLE%
+
+
+
+
+
+
+
diff --git a/admin-web/loading.html b/admin-web/loading.html
new file mode 100644
index 0000000..6831ac6
--- /dev/null
+++ b/admin-web/loading.html
@@ -0,0 +1,204 @@
+
+
+
+
+
%VITE_APP_TITLE%
+
载入中
+
diff --git a/admin-web/package.json b/admin-web/package.json
new file mode 100755
index 0000000..98dee26
--- /dev/null
+++ b/admin-web/package.json
@@ -0,0 +1,129 @@
+{
+ "type": "module",
+ "version": "5.10.0",
+ "packageManager": "pnpm@10.30.3",
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ },
+ "scripts": {
+ "dev": "vite",
+ "build": "vue-tsc -b && vite build",
+ "build:test": "vue-tsc -b && vite build --mode test",
+ "serve": "http-server ./dist -o",
+ "serve:test": "http-server ./dist-test -o",
+ "svgo": "svgo -f src/assets/icons",
+ "new": "plop",
+ "generate:icons": "tsx ./scripts/generate.icons.ts",
+ "lint": "npm-run-all -s lint:tsc lint:eslint lint:stylelint",
+ "lint:tsc": "vue-tsc -b",
+ "lint:eslint": "eslint . --cache --fix",
+ "lint:stylelint": "stylelint \"src/**/*.{css,scss,vue}\" --cache --fix",
+ "preinstall": "npx only-allow pnpm",
+ "postinstall": "simple-git-hooks",
+ "taze": "taze minor -wIr",
+ "commit": "git cz",
+ "release": "bumpp"
+ },
+ "dependencies": {
+ "@vee-validate/zod": "^4.15.1",
+ "@vueuse/components": "^14.2.1",
+ "@vueuse/core": "^14.2.1",
+ "@vueuse/integrations": "^14.2.1",
+ "axios": "^1.13.6",
+ "class-variance-authority": "^0.7.1",
+ "clsx": "^2.1.1",
+ "dayjs": "^1.11.19",
+ "defu": "^6.1.4",
+ "disable-devtool": "^0.3.9",
+ "element-plus": "^2.13.4",
+ "eruda": "^3.4.3",
+ "es-toolkit": "^1.45.1",
+ "filesize": "^11.0.13",
+ "hotkeys-js": "^4.0.2",
+ "lucide-vue-next": "^0.577.0",
+ "mitt": "^3.0.1",
+ "nprogress": "^0.2.0",
+ "path-browserify": "^1.0.1",
+ "path-to-regexp": "^8.3.0",
+ "pinia": "^3.0.4",
+ "qs": "^6.15.0",
+ "reka-ui": "^2.9.0",
+ "scule": "^1.3.0",
+ "tailwind-merge": "^3.5.0",
+ "ua-parser-js": "^2.0.9",
+ "vconsole": "^3.15.1",
+ "vee-validate": "^4.15.1",
+ "vue": "^3.5.29",
+ "vue-router": "^5.0.3",
+ "vue-sonner": "^2.0.9",
+ "zod": "^4.3.6"
+ },
+ "devDependencies": {
+ "@antfu/eslint-config": "^7.7.0",
+ "@clack/prompts": "^1.1.0",
+ "@faker-js/faker": "^10.3.0",
+ "@iconify/json": "^2.2.447",
+ "@iconify/vue": "^5.0.0",
+ "@stylistic/stylelint-config": "^4.0.0",
+ "@types/nprogress": "^0.2.3",
+ "@types/path-browserify": "^1.0.3",
+ "@types/qs": "^6.15.0",
+ "@unocss/eslint-plugin": "^66.6.6",
+ "@unocss/preset-legacy-compat": "^66.6.6",
+ "@unocss/reset": "^66.6.6",
+ "@vitejs/plugin-legacy": "^7.2.1",
+ "@vitejs/plugin-vue": "^6.0.4",
+ "@vitejs/plugin-vue-jsx": "^5.1.4",
+ "@vue/tsconfig": "^0.9.0",
+ "autoprefixer": "^10.4.27",
+ "boxen": "^8.0.1",
+ "bumpp": "^10.4.1",
+ "cz-git": "^1.12.0",
+ "eslint": "^9.39.4",
+ "fs-extra": "^11.3.4",
+ "http-server": "^14.1.1",
+ "lint-staged": "^16.3.2",
+ "npm-run-all2": "^8.0.4",
+ "picocolors": "^1.1.1",
+ "plop": "^4.0.5",
+ "postcss": "^8.5.8",
+ "postcss-nested": "^7.0.2",
+ "sass-embedded": "^1.97.3",
+ "simple-git-hooks": "^2.13.1",
+ "stylelint": "^17.4.0",
+ "stylelint-config-recess-order": "^7.6.1",
+ "stylelint-config-standard-scss": "^17.0.0",
+ "stylelint-config-standard-vue": "^1.0.0",
+ "stylelint-scss": "^7.0.0",
+ "svgo": "^4.0.1",
+ "taze": "^19.10.0",
+ "tsx": "^4.21.0",
+ "typescript": "^5.9.3",
+ "unocss": "^66.6.6",
+ "unocss-preset-animations": "^1.3.0",
+ "unplugin-auto-import": "^21.0.0",
+ "unplugin-turbo-console": "^2.3.0",
+ "unplugin-vue-components": "^31.0.0",
+ "vite": "^7.3.1",
+ "vite-plugin-app-loading": "^0.4.0",
+ "vite-plugin-archiver": "^0.2.0",
+ "vite-plugin-banner": "^0.8.1",
+ "vite-plugin-compression2": "^2.5.0",
+ "vite-plugin-env-parse": "^1.0.15",
+ "vite-plugin-fake-server": "^2.2.2",
+ "vite-plugin-pages": "^0.33.3",
+ "vite-plugin-svg-icons": "^2.0.1",
+ "vite-plugin-vue-devtools": "^8.0.7",
+ "vite-plugin-vue-meta-layouts": "^0.6.1",
+ "vue-tsc": "^3.2.5"
+ },
+ "simple-git-hooks": {
+ "pre-commit": "pnpm lint-staged",
+ "preserveUnused": true
+ },
+ "config": {
+ "commitizen": {
+ "path": "node_modules/cz-git"
+ }
+ }
+}
diff --git a/admin-web/plop-templates/component/index.hbs b/admin-web/plop-templates/component/index.hbs
new file mode 100755
index 0000000..1d62a02
--- /dev/null
+++ b/admin-web/plop-templates/component/index.hbs
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/plop-templates/component/prompt.js b/admin-web/plop-templates/component/prompt.js
new file mode 100755
index 0000000..984efab
--- /dev/null
+++ b/admin-web/plop-templates/component/prompt.js
@@ -0,0 +1,65 @@
+import fs from '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
+}
+
+export default {
+ 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/admin-web/plop-templates/mock/mock.hbs b/admin-web/plop-templates/mock/mock.hbs
new file mode 100755
index 0000000..e0b3fb1
--- /dev/null
+++ b/admin-web/plop-templates/mock/mock.hbs
@@ -0,0 +1,85 @@
+import { faker } from '@faker-js/faker'
+import { defineFakeRoute } from 'vite-plugin-fake-server/client'
+
+const AllList: any[] = []
+for (let i = 0; i < 50; i++) {
+ AllList.push({
+ id: i + 1,
+ title: faker.color.human(),
+ })
+}
+
+export default defineFakeRoute([
+ {
+ url: '/mock/{{#if relativePath}}{{ relativePath }}/{{/if}}{{ moduleName }}/list',
+ method: 'get',
+ response: ({ query }) => {
+ const { title, from, limit } = 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: ({ query }) => {
+ const info = AllList.filter(item => item.id === query.id)
+ return {
+ error: '',
+ status: 1,
+ data: info[0],
+ }
+ },
+ },
+ {
+ url: '/mock/{{#if relativePath}}{{ relativePath }}/{{/if}}{{ moduleName }}/create',
+ method: 'post',
+ response: () => {
+ return {
+ error: '',
+ status: 1,
+ data: {
+ isSuccess: true,
+ },
+ }
+ },
+ },
+ {
+ url: '/mock/{{#if relativePath}}{{ relativePath }}/{{/if}}{{ moduleName }}/edit',
+ method: 'post',
+ response: () => {
+ return {
+ error: '',
+ status: 1,
+ data: {
+ isSuccess: true,
+ },
+ }
+ },
+ },
+ {
+ url: '/mock/{{#if relativePath}}{{ relativePath }}/{{/if}}{{ moduleName }}/delete',
+ method: 'post',
+ response: () => {
+ return {
+ error: '',
+ status: 1,
+ data: {
+ isSuccess: true,
+ },
+ }
+ },
+ },
+])
diff --git a/admin-web/plop-templates/mock/prompt.js b/admin-web/plop-templates/mock/prompt.js
new file mode 100755
index 0000000..8bb04b8
--- /dev/null
+++ b/admin-web/plop-templates/mock/prompt.js
@@ -0,0 +1,43 @@
+import fs from 'node:fs'
+import path from 'node:path'
+
+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
+}
+
+export default {
+ 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/admin-web/plop-templates/page/index.hbs b/admin-web/plop-templates/page/index.hbs
new file mode 100755
index 0000000..4d5dc48
--- /dev/null
+++ b/admin-web/plop-templates/page/index.hbs
@@ -0,0 +1,22 @@
+{{#if isFilesystem}}
+
+meta:
+ title: 页面标题
+
+
+{{/if}}
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/plop-templates/page/prompt.js b/admin-web/plop-templates/page/prompt.js
new file mode 100755
index 0000000..f7cdca3
--- /dev/null
+++ b/admin-web/plop-templates/page/prompt.js
@@ -0,0 +1,60 @@
+import fs from 'node:fs'
+import path from 'node:path'
+
+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
+}
+
+export default {
+ 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/admin-web/plop-templates/store/index.hbs b/admin-web/plop-templates/store/index.hbs
new file mode 100755
index 0000000..94a0368
--- /dev/null
+++ b/admin-web/plop-templates/store/index.hbs
@@ -0,0 +1,11 @@
+export const use{{ properCase name }}Store = defineStore(
+ // 唯一ID
+ '{{ camelCase name }}',
+ () => {
+ const someThing = ref(0)
+
+ return {
+ someThing,
+ }
+ },
+)
diff --git a/admin-web/plop-templates/store/prompt.js b/admin-web/plop-templates/store/prompt.js
new file mode 100755
index 0000000..3ccc785
--- /dev/null
+++ b/admin-web/plop-templates/store/prompt.js
@@ -0,0 +1,28 @@
+export default {
+ 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/admin-web/plopfile.js b/admin-web/plopfile.js
new file mode 100755
index 0000000..0d2aa5f
--- /dev/null
+++ b/admin-web/plopfile.js
@@ -0,0 +1,13 @@
+import { promises as fs } from 'node:fs'
+
+export default async function (plop) {
+ plop.setWelcomeMessage('请选择需要创建的模式:')
+ const items = await fs.readdir('./plop-templates')
+ for (const item of items) {
+ const stat = await fs.lstat(`./plop-templates/${item}`)
+ if (stat.isDirectory()) {
+ const prompt = await import(`./plop-templates/${item}/prompt.js`)
+ plop.setGenerator(item, prompt.default)
+ }
+ }
+}
diff --git a/admin-web/pnpm-lock.yaml b/admin-web/pnpm-lock.yaml
new file mode 100644
index 0000000..a2d43c8
--- /dev/null
+++ b/admin-web/pnpm-lock.yaml
@@ -0,0 +1,19117 @@
+lockfileVersion: '9.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+importers:
+
+ .:
+ dependencies:
+ '@vee-validate/zod':
+ specifier: ^4.15.1
+ version: 4.15.1(vue@3.5.29(typescript@5.9.3))(zod@4.3.6)
+ '@vueuse/components':
+ specifier: ^14.2.1
+ version: 14.2.1(vue@3.5.29(typescript@5.9.3))
+ '@vueuse/core':
+ specifier: ^14.2.1
+ version: 14.2.1(vue@3.5.29(typescript@5.9.3))
+ '@vueuse/integrations':
+ specifier: ^14.2.1
+ version: 14.2.1(async-validator@4.2.5)(axios@1.13.6)(change-case@5.4.4)(fuse.js@7.1.0)(jwt-decode@4.0.0)(nprogress@0.2.0)(vue@3.5.29(typescript@5.9.3))
+ axios:
+ specifier: ^1.13.6
+ version: 1.13.6
+ class-variance-authority:
+ specifier: ^0.7.1
+ version: 0.7.1
+ clsx:
+ specifier: ^2.1.1
+ version: 2.1.1
+ dayjs:
+ specifier: ^1.11.19
+ version: 1.11.19
+ defu:
+ specifier: ^6.1.4
+ version: 6.1.4
+ disable-devtool:
+ specifier: ^0.3.9
+ version: 0.3.9
+ element-plus:
+ specifier: ^2.13.4
+ version: 2.13.4(vue@3.5.29(typescript@5.9.3))
+ eruda:
+ specifier: ^3.4.3
+ version: 3.4.3
+ es-toolkit:
+ specifier: ^1.45.1
+ version: 1.45.1
+ filesize:
+ specifier: ^11.0.13
+ version: 11.0.13
+ hotkeys-js:
+ specifier: ^4.0.2
+ version: 4.0.2
+ lucide-vue-next:
+ specifier: ^0.577.0
+ version: 0.577.0(vue@3.5.29(typescript@5.9.3))
+ mitt:
+ specifier: ^3.0.1
+ version: 3.0.1
+ nprogress:
+ specifier: ^0.2.0
+ version: 0.2.0
+ path-browserify:
+ specifier: ^1.0.1
+ version: 1.0.1
+ path-to-regexp:
+ specifier: ^8.3.0
+ version: 8.3.0
+ pinia:
+ specifier: ^3.0.4
+ version: 3.0.4(typescript@5.9.3)(vue@3.5.29(typescript@5.9.3))
+ qs:
+ specifier: ^6.15.0
+ version: 6.15.0
+ reka-ui:
+ specifier: ^2.9.0
+ version: 2.9.0(vue@3.5.29(typescript@5.9.3))
+ scule:
+ specifier: ^1.3.0
+ version: 1.3.0
+ tailwind-merge:
+ specifier: ^3.5.0
+ version: 3.5.0
+ ua-parser-js:
+ specifier: ^2.0.9
+ version: 2.0.9
+ vconsole:
+ specifier: ^3.15.1
+ version: 3.15.1
+ vee-validate:
+ specifier: ^4.15.1
+ version: 4.15.1(vue@3.5.29(typescript@5.9.3))
+ vue:
+ specifier: ^3.5.29
+ version: 3.5.29(typescript@5.9.3)
+ vue-router:
+ specifier: ^5.0.3
+ version: 5.0.3(@vue/compiler-sfc@3.5.29)(pinia@3.0.4(typescript@5.9.3)(vue@3.5.29(typescript@5.9.3)))(vue@3.5.29(typescript@5.9.3))
+ vue-sonner:
+ specifier: ^2.0.9
+ version: 2.0.9(@nuxt/kit@4.0.3(magicast@0.3.5))(@nuxt/schema@4.0.3)(nuxt@4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@22.15.30)(@vue/compiler-sfc@3.5.29)(db0@0.3.2)(eslint@9.39.4(jiti@2.6.1))(ioredis@5.7.0)(magicast@0.3.5)(meow@13.2.0)(optionator@0.9.4)(rollup@4.46.2)(sass-embedded@1.97.3)(sass@1.97.3)(stylelint@17.4.0(typescript@5.9.3))(terser@5.41.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))(vue-tsc@3.2.5(typescript@5.9.3))(yaml@2.8.2))
+ zod:
+ specifier: ^4.3.6
+ version: 4.3.6
+ devDependencies:
+ '@antfu/eslint-config':
+ specifier: ^7.7.0
+ version: 7.7.0(@typescript-eslint/rule-tester@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/typescript-estree@8.56.1(typescript@5.9.3))(@typescript-eslint/utils@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(@unocss/eslint-plugin@66.6.6(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(@vue/compiler-sfc@3.5.29)(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
+ '@clack/prompts':
+ specifier: ^1.1.0
+ version: 1.1.0
+ '@faker-js/faker':
+ specifier: ^10.3.0
+ version: 10.3.0
+ '@iconify/json':
+ specifier: ^2.2.447
+ version: 2.2.447
+ '@iconify/vue':
+ specifier: ^5.0.0
+ version: 5.0.0(vue@3.5.29(typescript@5.9.3))
+ '@stylistic/stylelint-config':
+ specifier: ^4.0.0
+ version: 4.0.0(stylelint@17.4.0(typescript@5.9.3))
+ '@types/nprogress':
+ specifier: ^0.2.3
+ version: 0.2.3
+ '@types/path-browserify':
+ specifier: ^1.0.3
+ version: 1.0.3
+ '@types/qs':
+ specifier: ^6.15.0
+ version: 6.15.0
+ '@unocss/eslint-plugin':
+ specifier: ^66.6.6
+ version: 66.6.6(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
+ '@unocss/preset-legacy-compat':
+ specifier: ^66.6.6
+ version: 66.6.6
+ '@unocss/reset':
+ specifier: ^66.6.6
+ version: 66.6.6
+ '@vitejs/plugin-legacy':
+ specifier: ^7.2.1
+ version: 7.2.1(terser@5.41.0)(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))
+ '@vitejs/plugin-vue':
+ specifier: ^6.0.4
+ version: 6.0.4(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.29(typescript@5.9.3))
+ '@vitejs/plugin-vue-jsx':
+ specifier: ^5.1.4
+ version: 5.1.4(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.29(typescript@5.9.3))
+ '@vue/tsconfig':
+ specifier: ^0.9.0
+ version: 0.9.0(typescript@5.9.3)(vue@3.5.29(typescript@5.9.3))
+ autoprefixer:
+ specifier: ^10.4.27
+ version: 10.4.27(postcss@8.5.8)
+ boxen:
+ specifier: ^8.0.1
+ version: 8.0.1
+ bumpp:
+ specifier: ^10.4.1
+ version: 10.4.1(magicast@0.3.5)
+ cz-git:
+ specifier: ^1.12.0
+ version: 1.12.0
+ eslint:
+ specifier: ^9.39.4
+ version: 9.39.4(jiti@2.6.1)
+ fs-extra:
+ specifier: ^11.3.4
+ version: 11.3.4
+ http-server:
+ specifier: ^14.1.1
+ version: 14.1.1
+ lint-staged:
+ specifier: ^16.3.2
+ version: 16.3.2
+ npm-run-all2:
+ specifier: ^8.0.4
+ version: 8.0.4
+ picocolors:
+ specifier: ^1.1.1
+ version: 1.1.1
+ plop:
+ specifier: ^4.0.5
+ version: 4.0.5(@types/node@22.15.30)
+ postcss:
+ specifier: ^8.5.8
+ version: 8.5.8
+ postcss-nested:
+ specifier: ^7.0.2
+ version: 7.0.2(postcss@8.5.8)
+ sass-embedded:
+ specifier: ^1.97.3
+ version: 1.97.3
+ simple-git-hooks:
+ specifier: ^2.13.1
+ version: 2.13.1
+ stylelint:
+ specifier: ^17.4.0
+ version: 17.4.0(typescript@5.9.3)
+ stylelint-config-recess-order:
+ specifier: ^7.6.1
+ version: 7.6.1(stylelint-order@6.0.4(stylelint@17.4.0(typescript@5.9.3)))(stylelint@17.4.0(typescript@5.9.3))
+ stylelint-config-standard-scss:
+ specifier: ^17.0.0
+ version: 17.0.0(postcss@8.5.8)(stylelint@17.4.0(typescript@5.9.3))
+ stylelint-config-standard-vue:
+ specifier: ^1.0.0
+ version: 1.0.0(postcss-html@1.8.0)(stylelint@17.4.0(typescript@5.9.3))
+ stylelint-scss:
+ specifier: ^7.0.0
+ version: 7.0.0(stylelint@17.4.0(typescript@5.9.3))
+ svgo:
+ specifier: ^4.0.1
+ version: 4.0.1
+ taze:
+ specifier: ^19.10.0
+ version: 19.10.0
+ tsx:
+ specifier: ^4.21.0
+ version: 4.21.0
+ typescript:
+ specifier: ^5.9.3
+ version: 5.9.3
+ unocss:
+ specifier: ^66.6.6
+ version: 66.6.6(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))
+ unocss-preset-animations:
+ specifier: ^1.3.0
+ version: 1.3.0(@unocss/preset-wind3@66.6.6)(unocss@66.6.6(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2)))
+ unplugin-auto-import:
+ specifier: ^21.0.0
+ version: 21.0.0(@nuxt/kit@4.0.3(magicast@0.3.5))(@vueuse/core@14.2.1(vue@3.5.29(typescript@5.9.3)))
+ unplugin-turbo-console:
+ specifier: ^2.3.0
+ version: 2.3.0(@nuxt/kit@4.0.3(magicast@0.3.5))(@nuxt/schema@4.0.3)(esbuild@0.27.0)(rollup@4.46.2)(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.29(typescript@5.9.3))
+ unplugin-vue-components:
+ specifier: ^31.0.0
+ version: 31.0.0(@nuxt/kit@4.0.3(magicast@0.3.5))(vue@3.5.29(typescript@5.9.3))
+ vite:
+ specifier: ^7.3.1
+ version: 7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2)
+ vite-plugin-app-loading:
+ specifier: ^0.4.0
+ version: 0.4.0
+ vite-plugin-archiver:
+ specifier: ^0.2.0
+ version: 0.2.0
+ vite-plugin-banner:
+ specifier: ^0.8.1
+ version: 0.8.1
+ vite-plugin-compression2:
+ specifier: ^2.5.0
+ version: 2.5.0(rollup@4.46.2)
+ vite-plugin-env-parse:
+ specifier: ^1.0.15
+ version: 1.0.15(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))
+ vite-plugin-fake-server:
+ specifier: ^2.2.2
+ version: 2.2.2
+ vite-plugin-pages:
+ specifier: ^0.33.3
+ version: 0.33.3(@vue/compiler-sfc@3.5.29)(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))(vue-router@5.0.3(@vue/compiler-sfc@3.5.29)(pinia@3.0.4(typescript@5.9.3)(vue@3.5.29(typescript@5.9.3)))(vue@3.5.29(typescript@5.9.3)))
+ vite-plugin-svg-icons:
+ specifier: ^2.0.1
+ version: 2.0.1(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))
+ vite-plugin-vue-devtools:
+ specifier: ^8.0.7
+ version: 8.0.7(@nuxt/kit@4.0.3(magicast@0.3.5))(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.29(typescript@5.9.3))
+ vite-plugin-vue-meta-layouts:
+ specifier: ^0.6.1
+ version: 0.6.1(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))(vue-router@5.0.3(@vue/compiler-sfc@3.5.29)(pinia@3.0.4(typescript@5.9.3)(vue@3.5.29(typescript@5.9.3)))(vue@3.5.29(typescript@5.9.3)))
+ vue-tsc:
+ specifier: ^3.2.5
+ version: 3.2.5(typescript@5.9.3)
+
+packages:
+
+ '@ampproject/remapping@2.3.0':
+ resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
+ engines: {node: '>=6.0.0'}
+
+ '@antfu/eslint-config@7.7.0':
+ resolution: {integrity: sha512-lkxb84o8z4v1+me51XlrHHF6zvOZfvTu6Y11t6h6v17JSMl9yoNHwC0Sqp/NfMTHie/LGgjyXOupXpQCXxfs1Q==}
+ hasBin: true
+ peerDependencies:
+ '@angular-eslint/eslint-plugin': ^21.1.0
+ '@angular-eslint/eslint-plugin-template': ^21.1.0
+ '@angular-eslint/template-parser': ^21.1.0
+ '@eslint-react/eslint-plugin': ^2.11.0
+ '@next/eslint-plugin-next': '>=15.0.0'
+ '@prettier/plugin-xml': ^3.4.1
+ '@unocss/eslint-plugin': '>=0.50.0'
+ astro-eslint-parser: ^1.0.2
+ eslint: ^9.10.0 || ^10.0.0
+ eslint-plugin-astro: ^1.2.0
+ eslint-plugin-format: '>=0.1.0'
+ eslint-plugin-jsx-a11y: '>=6.10.2'
+ eslint-plugin-react-hooks: ^7.0.0
+ eslint-plugin-react-refresh: ^0.5.0
+ eslint-plugin-solid: ^0.14.3
+ eslint-plugin-svelte: '>=2.35.1'
+ eslint-plugin-vuejs-accessibility: ^2.4.1
+ prettier-plugin-astro: ^0.14.0
+ prettier-plugin-slidev: ^1.0.5
+ svelte-eslint-parser: '>=0.37.0'
+ peerDependenciesMeta:
+ '@angular-eslint/eslint-plugin':
+ optional: true
+ '@angular-eslint/eslint-plugin-template':
+ optional: true
+ '@angular-eslint/template-parser':
+ optional: true
+ '@eslint-react/eslint-plugin':
+ optional: true
+ '@next/eslint-plugin-next':
+ optional: true
+ '@prettier/plugin-xml':
+ optional: true
+ '@unocss/eslint-plugin':
+ optional: true
+ astro-eslint-parser:
+ optional: true
+ eslint-plugin-astro:
+ optional: true
+ eslint-plugin-format:
+ optional: true
+ eslint-plugin-jsx-a11y:
+ optional: true
+ eslint-plugin-react-hooks:
+ optional: true
+ eslint-plugin-react-refresh:
+ optional: true
+ eslint-plugin-solid:
+ optional: true
+ eslint-plugin-svelte:
+ optional: true
+ eslint-plugin-vuejs-accessibility:
+ optional: true
+ prettier-plugin-astro:
+ optional: true
+ prettier-plugin-slidev:
+ optional: true
+ svelte-eslint-parser:
+ optional: true
+
+ '@antfu/install-pkg@1.1.0':
+ resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==}
+
+ '@antfu/ni@28.3.0':
+ resolution: {integrity: sha512-JbRijiCNAGcQcyPfV0EXOJYwV27e/srXfTvETqzbbh4jzHBV2pDYiBz8rj5SyzX27aTbCK+qXR3x6g2WKokcrA==}
+ engines: {node: '>=20'}
+ hasBin: true
+
+ '@babel/code-frame@7.27.1':
+ resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/code-frame@7.29.0':
+ resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/compat-data@7.27.5':
+ resolution: {integrity: sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/compat-data@7.28.0':
+ resolution: {integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/compat-data@7.29.0':
+ resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/core@7.28.0':
+ resolution: {integrity: sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/core@7.28.5':
+ resolution: {integrity: sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/core@7.29.0':
+ resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/generator@7.27.5':
+ resolution: {integrity: sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/generator@7.28.0':
+ resolution: {integrity: sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/generator@7.28.3':
+ resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/generator@7.28.5':
+ resolution: {integrity: sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/generator@7.29.1':
+ resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-annotate-as-pure@7.27.3':
+ resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-compilation-targets@7.27.2':
+ resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-compilation-targets@7.28.6':
+ resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-create-class-features-plugin@7.27.1':
+ resolution: {integrity: sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-create-class-features-plugin@7.28.5':
+ resolution: {integrity: sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-create-class-features-plugin@7.28.6':
+ resolution: {integrity: sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-create-regexp-features-plugin@7.27.1':
+ resolution: {integrity: sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-define-polyfill-provider@0.6.5':
+ resolution: {integrity: sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==}
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+
+ '@babel/helper-globals@7.28.0':
+ resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-member-expression-to-functions@7.27.1':
+ resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-member-expression-to-functions@7.28.5':
+ resolution: {integrity: sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-module-imports@7.27.1':
+ resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-module-imports@7.28.6':
+ resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-module-transforms@7.27.3':
+ resolution: {integrity: sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-module-transforms@7.28.3':
+ resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-module-transforms@7.28.6':
+ resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-optimise-call-expression@7.27.1':
+ resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-plugin-utils@7.27.1':
+ resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-plugin-utils@7.28.6':
+ resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-remap-async-to-generator@7.27.1':
+ resolution: {integrity: sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-replace-supers@7.27.1':
+ resolution: {integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-replace-supers@7.28.6':
+ resolution: {integrity: sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-skip-transparent-expression-wrappers@7.27.1':
+ resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-string-parser@7.27.1':
+ resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-validator-identifier@7.27.1':
+ resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-validator-identifier@7.28.5':
+ resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-validator-option@7.27.1':
+ resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-wrap-function@7.27.1':
+ resolution: {integrity: sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helpers@7.27.6':
+ resolution: {integrity: sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helpers@7.28.4':
+ resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helpers@7.28.6':
+ resolution: {integrity: sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/parser@7.28.0':
+ resolution: {integrity: sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
+ '@babel/parser@7.28.5':
+ resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
+ '@babel/parser@7.29.0':
+ resolution: {integrity: sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1':
+ resolution: {integrity: sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1':
+ resolution: {integrity: sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1':
+ resolution: {integrity: sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1':
+ resolution: {integrity: sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.13.0
+
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.27.1':
+ resolution: {integrity: sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/plugin-proposal-decorators@7.27.1':
+ resolution: {integrity: sha512-DTxe4LBPrtFdsWzgpmbBKevg3e9PBy+dXRt19kSbucbZvL2uqtdqwwpluL1jfxYE0wIDTFp1nTy/q6gNLsxXrg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2':
+ resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-decorators@7.27.1':
+ resolution: {integrity: sha512-YMq8Z87Lhl8EGkmb0MwYkt36QnxC+fzCgrl66ereamPlYToRpIk5nUjKUY3QKLWq8mwUB1BgbeXcTJhZOCDg5A==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-import-assertions@7.27.1':
+ resolution: {integrity: sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-import-attributes@7.27.1':
+ resolution: {integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-import-meta@7.10.4':
+ resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-jsx@7.27.1':
+ resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-typescript@7.27.1':
+ resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-typescript@7.28.6':
+ resolution: {integrity: sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-unicode-sets-regex@7.18.6':
+ resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/plugin-transform-arrow-functions@7.27.1':
+ resolution: {integrity: sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-async-generator-functions@7.28.0':
+ resolution: {integrity: sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-async-to-generator@7.27.1':
+ resolution: {integrity: sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-block-scoped-functions@7.27.1':
+ resolution: {integrity: sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-block-scoping@7.28.0':
+ resolution: {integrity: sha512-gKKnwjpdx5sER/wl0WN0efUBFzF/56YZO0RJrSYP4CljXnP31ByY7fol89AzomdlLNzI36AvOTmYHsnZTCkq8Q==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-class-properties@7.27.1':
+ resolution: {integrity: sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-class-static-block@7.27.1':
+ resolution: {integrity: sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.12.0
+
+ '@babel/plugin-transform-classes@7.28.0':
+ resolution: {integrity: sha512-IjM1IoJNw72AZFlj33Cu8X0q2XK/6AaVC3jQu+cgQ5lThWD5ajnuUAml80dqRmOhmPkTH8uAwnpMu9Rvj0LTRA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-computed-properties@7.27.1':
+ resolution: {integrity: sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-destructuring@7.28.0':
+ resolution: {integrity: sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-dotall-regex@7.27.1':
+ resolution: {integrity: sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-duplicate-keys@7.27.1':
+ resolution: {integrity: sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1':
+ resolution: {integrity: sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/plugin-transform-dynamic-import@7.27.1':
+ resolution: {integrity: sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-explicit-resource-management@7.28.0':
+ resolution: {integrity: sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-exponentiation-operator@7.27.1':
+ resolution: {integrity: sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-export-namespace-from@7.27.1':
+ resolution: {integrity: sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-for-of@7.27.1':
+ resolution: {integrity: sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-function-name@7.27.1':
+ resolution: {integrity: sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-json-strings@7.27.1':
+ resolution: {integrity: sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-literals@7.27.1':
+ resolution: {integrity: sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-logical-assignment-operators@7.27.1':
+ resolution: {integrity: sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-member-expression-literals@7.27.1':
+ resolution: {integrity: sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-modules-amd@7.27.1':
+ resolution: {integrity: sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-modules-commonjs@7.27.1':
+ resolution: {integrity: sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-modules-systemjs@7.27.1':
+ resolution: {integrity: sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-modules-umd@7.27.1':
+ resolution: {integrity: sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-named-capturing-groups-regex@7.27.1':
+ resolution: {integrity: sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/plugin-transform-new-target@7.27.1':
+ resolution: {integrity: sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-nullish-coalescing-operator@7.27.1':
+ resolution: {integrity: sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-numeric-separator@7.27.1':
+ resolution: {integrity: sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-object-rest-spread@7.28.0':
+ resolution: {integrity: sha512-9VNGikXxzu5eCiQjdE4IZn8sb9q7Xsk5EXLDBKUYg1e/Tve8/05+KJEtcxGxAgCY5t/BpKQM+JEL/yT4tvgiUA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-object-super@7.27.1':
+ resolution: {integrity: sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-optional-catch-binding@7.27.1':
+ resolution: {integrity: sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-optional-chaining@7.27.1':
+ resolution: {integrity: sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-parameters@7.27.7':
+ resolution: {integrity: sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-private-methods@7.27.1':
+ resolution: {integrity: sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-private-property-in-object@7.27.1':
+ resolution: {integrity: sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-property-literals@7.27.1':
+ resolution: {integrity: sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-regenerator@7.28.1':
+ resolution: {integrity: sha512-P0QiV/taaa3kXpLY+sXla5zec4E+4t4Aqc9ggHlfZ7a2cp8/x/Gv08jfwEtn9gnnYIMvHx6aoOZ8XJL8eU71Dg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-regexp-modifiers@7.27.1':
+ resolution: {integrity: sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/plugin-transform-reserved-words@7.27.1':
+ resolution: {integrity: sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-shorthand-properties@7.27.1':
+ resolution: {integrity: sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-spread@7.27.1':
+ resolution: {integrity: sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-sticky-regex@7.27.1':
+ resolution: {integrity: sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-template-literals@7.27.1':
+ resolution: {integrity: sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-typeof-symbol@7.27.1':
+ resolution: {integrity: sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-typescript@7.28.5':
+ resolution: {integrity: sha512-x2Qa+v/CuEoX7Dr31iAfr0IhInrVOWZU/2vJMJ00FOR/2nM0BcBEclpaf9sWCDc+v5e9dMrhSH8/atq/kX7+bA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-typescript@7.28.6':
+ resolution: {integrity: sha512-0YWL2RFxOqEm9Efk5PvreamxPME8OyY0wM5wh5lHjF+VtVhdneCWGzZeSqzOfiobVqQaNCd2z0tQvnI9DaPWPw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-unicode-escapes@7.27.1':
+ resolution: {integrity: sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-unicode-property-regex@7.27.1':
+ resolution: {integrity: sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-unicode-regex@7.27.1':
+ resolution: {integrity: sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-unicode-sets-regex@7.27.1':
+ resolution: {integrity: sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/preset-env@7.28.0':
+ resolution: {integrity: sha512-VmaxeGOwuDqzLl5JUkIRM1X2Qu2uKGxHEQWh+cvvbl7JuJRgKGJSfsEF/bUaxFhJl/XAyxBe7q7qSuTbKFuCyg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/preset-modules@0.1.6-no-external-plugins':
+ resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0
+
+ '@babel/runtime@7.27.6':
+ resolution: {integrity: sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/template@7.27.2':
+ resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/template@7.28.6':
+ resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/traverse@7.27.4':
+ resolution: {integrity: sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/traverse@7.28.0':
+ resolution: {integrity: sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/traverse@7.28.3':
+ resolution: {integrity: sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/traverse@7.28.5':
+ resolution: {integrity: sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/traverse@7.29.0':
+ resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/types@7.27.6':
+ resolution: {integrity: sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/types@7.28.0':
+ resolution: {integrity: sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/types@7.28.1':
+ resolution: {integrity: sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/types@7.28.5':
+ resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/types@7.29.0':
+ resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==}
+ engines: {node: '>=6.9.0'}
+
+ '@bufbuild/protobuf@2.5.2':
+ resolution: {integrity: sha512-foZ7qr0IsUBjzWIq+SuBLfdQCpJ1j8cTuNNT4owngTHoN5KsJb8L9t65fzz7SCeSWzescoOil/0ldqiL041ABg==}
+
+ '@cacheable/memory@2.0.8':
+ resolution: {integrity: sha512-FvEb29x5wVwu/Kf93IWwsOOEuhHh6dYCJF3vcKLzXc0KXIW181AOzv6ceT4ZpBHDvAfG60eqb+ekmrnLHIy+jw==}
+
+ '@cacheable/utils@2.4.0':
+ resolution: {integrity: sha512-PeMMsqjVq+bF0WBsxFBxr/WozBJiZKY0rUojuaCoIaKnEl3Ju1wfEwS+SV1DU/cSe8fqHIPiYJFif8T3MVt4cQ==}
+
+ '@clack/core@1.1.0':
+ resolution: {integrity: sha512-SVcm4Dqm2ukn64/8Gub2wnlA5nS2iWJyCkdNHcvNHPIeBTGojpdJ+9cZKwLfmqy7irD4N5qLteSilJlE0WLAtA==}
+
+ '@clack/prompts@1.1.0':
+ resolution: {integrity: sha512-pkqbPGtohJAvm4Dphs2M8xE29ggupihHdy1x84HNojZuMtFsHiUlRvqD24tM2+XmI+61LlfNceM3Wr7U5QES5g==}
+
+ '@cloudflare/kv-asset-handler@0.4.0':
+ resolution: {integrity: sha512-+tv3z+SPp+gqTIcImN9o0hqE9xyfQjI1XD9pL6NuKjua9B1y7mNYv0S9cP+QEbA4ppVgGZEmKOvHX5G5Ei1CVA==}
+ engines: {node: '>=18.0.0'}
+
+ '@colors/colors@1.6.0':
+ resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==}
+ engines: {node: '>=0.1.90'}
+
+ '@csstools/css-calc@3.1.1':
+ resolution: {integrity: sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==}
+ engines: {node: '>=20.19.0'}
+ peerDependencies:
+ '@csstools/css-parser-algorithms': ^4.0.0
+ '@csstools/css-tokenizer': ^4.0.0
+
+ '@csstools/css-parser-algorithms@4.0.0':
+ resolution: {integrity: sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==}
+ engines: {node: '>=20.19.0'}
+ peerDependencies:
+ '@csstools/css-tokenizer': ^4.0.0
+
+ '@csstools/css-syntax-patches-for-csstree@1.0.28':
+ resolution: {integrity: sha512-1NRf1CUBjnr3K7hu8BLxjQrKCxEe8FP/xmPTenAxCRZWVLbmGotkFvG9mfNpjA6k7Bw1bw4BilZq9cu19RA5pg==}
+
+ '@csstools/css-tokenizer@4.0.0':
+ resolution: {integrity: sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==}
+ engines: {node: '>=20.19.0'}
+
+ '@csstools/media-query-list-parser@5.0.0':
+ resolution: {integrity: sha512-T9lXmZOfnam3eMERPsszjY5NK0jX8RmThmmm99FZ8b7z8yMaFZWKwLWGZuTwdO3ddRY5fy13GmmEYZXB4I98Eg==}
+ engines: {node: '>=20.19.0'}
+ peerDependencies:
+ '@csstools/css-parser-algorithms': ^4.0.0
+ '@csstools/css-tokenizer': ^4.0.0
+
+ '@csstools/selector-resolve-nested@4.0.0':
+ resolution: {integrity: sha512-9vAPxmp+Dx3wQBIUwc1v7Mdisw1kbbaGqXUM8QLTgWg7SoPGYtXBsMXvsFs/0Bn5yoFhcktzxNZGNaUt0VjgjA==}
+ engines: {node: '>=20.19.0'}
+ peerDependencies:
+ postcss-selector-parser: ^7.1.1
+
+ '@csstools/selector-specificity@6.0.0':
+ resolution: {integrity: sha512-4sSgl78OtOXEX/2d++8A83zHNTgwCJMaR24FvsYL7Uf/VS8HZk9PTwR51elTbGqMuwH3szLvvOXEaVnqn0Z3zA==}
+ engines: {node: '>=20.19.0'}
+ peerDependencies:
+ postcss-selector-parser: ^7.1.1
+
+ '@ctrl/tinycolor@4.2.0':
+ resolution: {integrity: sha512-kzyuwOAQnXJNLS9PSyrk0CWk35nWJW/zl/6KvnTBMFK65gm7U1/Z5BqjxeapjZCIhQcM/DsrEmcbRwDyXyXK4A==}
+ engines: {node: '>=14'}
+
+ '@dabh/diagnostics@2.0.3':
+ resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==}
+
+ '@dependents/detective-less@5.0.1':
+ resolution: {integrity: sha512-Y6+WUMsTFWE5jb20IFP4YGa5IrGY/+a/FbOSjDF/wz9gepU2hwCYSXRHP/vPwBvwcY3SVMASt4yXxbXNXigmZQ==}
+ engines: {node: '>=18'}
+
+ '@e18e/eslint-plugin@0.2.0':
+ resolution: {integrity: sha512-mXgODVwhuDjTJ+UT+XSvmMmCidtGKfrV5nMIv1UtpWex2pYLsIM3RSpT8HWIMAebS9qANbXPKlSX4BE7ZvuCgA==}
+ peerDependencies:
+ eslint: ^9.0.0 || ^10.0.0
+ oxlint: ^1.41.0
+ peerDependenciesMeta:
+ eslint:
+ optional: true
+ oxlint:
+ optional: true
+
+ '@element-plus/icons-vue@2.3.2':
+ resolution: {integrity: sha512-OzIuTaIfC8QXEPmJvB4Y4kw34rSXdCJzxcD1kFStBvr8bK6X1zQAYDo0CNMjojnfTqRQCJ0I7prlErcoRiET2A==}
+ peerDependencies:
+ vue: ^3.2.0
+
+ '@emnapi/core@1.5.0':
+ resolution: {integrity: sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==}
+
+ '@emnapi/core@1.8.1':
+ resolution: {integrity: sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==}
+
+ '@emnapi/runtime@1.5.0':
+ resolution: {integrity: sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==}
+
+ '@emnapi/runtime@1.8.1':
+ resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==}
+
+ '@emnapi/wasi-threads@1.1.0':
+ resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==}
+
+ '@es-joy/jsdoccomment@0.84.0':
+ resolution: {integrity: sha512-0xew1CxOam0gV5OMjh2KjFQZsKL2bByX1+q4j3E73MpYIdyUxcZb/xQct9ccUb+ve5KGUYbCUxyPnYB7RbuP+w==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+
+ '@es-joy/resolve.exports@1.2.0':
+ resolution: {integrity: sha512-Q9hjxWI5xBM+qW2enxfe8wDKdFWMfd0Z29k5ZJnuBqD/CasY5Zryj09aCA6owbGATWz+39p5uIdaHXpopOcG8g==}
+ engines: {node: '>=10'}
+
+ '@esbuild/aix-ppc64@0.24.2':
+ resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [aix]
+
+ '@esbuild/aix-ppc64@0.25.5':
+ resolution: {integrity: sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [aix]
+
+ '@esbuild/aix-ppc64@0.25.9':
+ resolution: {integrity: sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [aix]
+
+ '@esbuild/aix-ppc64@0.27.0':
+ resolution: {integrity: sha512-KuZrd2hRjz01y5JK9mEBSD3Vj3mbCvemhT466rSuJYeE/hjuBrHfjjcjMdTm/sz7au+++sdbJZJmuBwQLuw68A==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [aix]
+
+ '@esbuild/android-arm64@0.24.2':
+ resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [android]
+
+ '@esbuild/android-arm64@0.25.5':
+ resolution: {integrity: sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [android]
+
+ '@esbuild/android-arm64@0.25.9':
+ resolution: {integrity: sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [android]
+
+ '@esbuild/android-arm64@0.27.0':
+ resolution: {integrity: sha512-CC3vt4+1xZrs97/PKDkl0yN7w8edvU2vZvAFGD16n9F0Cvniy5qvzRXjfO1l94efczkkQE6g1x0i73Qf5uthOQ==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [android]
+
+ '@esbuild/android-arm@0.24.2':
+ resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [android]
+
+ '@esbuild/android-arm@0.25.5':
+ resolution: {integrity: sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [android]
+
+ '@esbuild/android-arm@0.25.9':
+ resolution: {integrity: sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [android]
+
+ '@esbuild/android-arm@0.27.0':
+ resolution: {integrity: sha512-j67aezrPNYWJEOHUNLPj9maeJte7uSMM6gMoxfPC9hOg8N02JuQi/T7ewumf4tNvJadFkvLZMlAq73b9uwdMyQ==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [android]
+
+ '@esbuild/android-x64@0.24.2':
+ resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [android]
+
+ '@esbuild/android-x64@0.25.5':
+ resolution: {integrity: sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [android]
+
+ '@esbuild/android-x64@0.25.9':
+ resolution: {integrity: sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [android]
+
+ '@esbuild/android-x64@0.27.0':
+ resolution: {integrity: sha512-wurMkF1nmQajBO1+0CJmcN17U4BP6GqNSROP8t0X/Jiw2ltYGLHpEksp9MpoBqkrFR3kv2/te6Sha26k3+yZ9Q==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [android]
+
+ '@esbuild/darwin-arm64@0.24.2':
+ resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@esbuild/darwin-arm64@0.25.5':
+ resolution: {integrity: sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@esbuild/darwin-arm64@0.25.9':
+ resolution: {integrity: sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@esbuild/darwin-arm64@0.27.0':
+ resolution: {integrity: sha512-uJOQKYCcHhg07DL7i8MzjvS2LaP7W7Pn/7uA0B5S1EnqAirJtbyw4yC5jQ5qcFjHK9l6o/MX9QisBg12kNkdHg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@esbuild/darwin-x64@0.24.2':
+ resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@esbuild/darwin-x64@0.25.5':
+ resolution: {integrity: sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@esbuild/darwin-x64@0.25.9':
+ resolution: {integrity: sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@esbuild/darwin-x64@0.27.0':
+ resolution: {integrity: sha512-8mG6arH3yB/4ZXiEnXof5MK72dE6zM9cDvUcPtxhUZsDjESl9JipZYW60C3JGreKCEP+p8P/72r69m4AZGJd5g==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@esbuild/freebsd-arm64@0.24.2':
+ resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@esbuild/freebsd-arm64@0.25.5':
+ resolution: {integrity: sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@esbuild/freebsd-arm64@0.25.9':
+ resolution: {integrity: sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@esbuild/freebsd-arm64@0.27.0':
+ resolution: {integrity: sha512-9FHtyO988CwNMMOE3YIeci+UV+x5Zy8fI2qHNpsEtSF83YPBmE8UWmfYAQg6Ux7Gsmd4FejZqnEUZCMGaNQHQw==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@esbuild/freebsd-x64@0.24.2':
+ resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@esbuild/freebsd-x64@0.25.5':
+ resolution: {integrity: sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@esbuild/freebsd-x64@0.25.9':
+ resolution: {integrity: sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@esbuild/freebsd-x64@0.27.0':
+ resolution: {integrity: sha512-zCMeMXI4HS/tXvJz8vWGexpZj2YVtRAihHLk1imZj4efx1BQzN76YFeKqlDr3bUWI26wHwLWPd3rwh6pe4EV7g==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@esbuild/linux-arm64@0.24.2':
+ resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@esbuild/linux-arm64@0.25.5':
+ resolution: {integrity: sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@esbuild/linux-arm64@0.25.9':
+ resolution: {integrity: sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@esbuild/linux-arm64@0.27.0':
+ resolution: {integrity: sha512-AS18v0V+vZiLJyi/4LphvBE+OIX682Pu7ZYNsdUHyUKSoRwdnOsMf6FDekwoAFKej14WAkOef3zAORJgAtXnlQ==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@esbuild/linux-arm@0.24.2':
+ resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [linux]
+
+ '@esbuild/linux-arm@0.25.5':
+ resolution: {integrity: sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [linux]
+
+ '@esbuild/linux-arm@0.25.9':
+ resolution: {integrity: sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [linux]
+
+ '@esbuild/linux-arm@0.27.0':
+ resolution: {integrity: sha512-t76XLQDpxgmq2cNXKTVEB7O7YMb42atj2Re2Haf45HkaUpjM2J0UuJZDuaGbPbamzZ7bawyGFUkodL+zcE+jvQ==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [linux]
+
+ '@esbuild/linux-ia32@0.24.2':
+ resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [linux]
+
+ '@esbuild/linux-ia32@0.25.5':
+ resolution: {integrity: sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [linux]
+
+ '@esbuild/linux-ia32@0.25.9':
+ resolution: {integrity: sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [linux]
+
+ '@esbuild/linux-ia32@0.27.0':
+ resolution: {integrity: sha512-Mz1jxqm/kfgKkc/KLHC5qIujMvnnarD9ra1cEcrs7qshTUSksPihGrWHVG5+osAIQ68577Zpww7SGapmzSt4Nw==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [linux]
+
+ '@esbuild/linux-loong64@0.24.2':
+ resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==}
+ engines: {node: '>=18'}
+ cpu: [loong64]
+ os: [linux]
+
+ '@esbuild/linux-loong64@0.25.5':
+ resolution: {integrity: sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==}
+ engines: {node: '>=18'}
+ cpu: [loong64]
+ os: [linux]
+
+ '@esbuild/linux-loong64@0.25.9':
+ resolution: {integrity: sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==}
+ engines: {node: '>=18'}
+ cpu: [loong64]
+ os: [linux]
+
+ '@esbuild/linux-loong64@0.27.0':
+ resolution: {integrity: sha512-QbEREjdJeIreIAbdG2hLU1yXm1uu+LTdzoq1KCo4G4pFOLlvIspBm36QrQOar9LFduavoWX2msNFAAAY9j4BDg==}
+ engines: {node: '>=18'}
+ cpu: [loong64]
+ os: [linux]
+
+ '@esbuild/linux-mips64el@0.24.2':
+ resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==}
+ engines: {node: '>=18'}
+ cpu: [mips64el]
+ os: [linux]
+
+ '@esbuild/linux-mips64el@0.25.5':
+ resolution: {integrity: sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==}
+ engines: {node: '>=18'}
+ cpu: [mips64el]
+ os: [linux]
+
+ '@esbuild/linux-mips64el@0.25.9':
+ resolution: {integrity: sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==}
+ engines: {node: '>=18'}
+ cpu: [mips64el]
+ os: [linux]
+
+ '@esbuild/linux-mips64el@0.27.0':
+ resolution: {integrity: sha512-sJz3zRNe4tO2wxvDpH/HYJilb6+2YJxo/ZNbVdtFiKDufzWq4JmKAiHy9iGoLjAV7r/W32VgaHGkk35cUXlNOg==}
+ engines: {node: '>=18'}
+ cpu: [mips64el]
+ os: [linux]
+
+ '@esbuild/linux-ppc64@0.24.2':
+ resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@esbuild/linux-ppc64@0.25.5':
+ resolution: {integrity: sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@esbuild/linux-ppc64@0.25.9':
+ resolution: {integrity: sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@esbuild/linux-ppc64@0.27.0':
+ resolution: {integrity: sha512-z9N10FBD0DCS2dmSABDBb5TLAyF1/ydVb+N4pi88T45efQ/w4ohr/F/QYCkxDPnkhkp6AIpIcQKQ8F0ANoA2JA==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@esbuild/linux-riscv64@0.24.2':
+ resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==}
+ engines: {node: '>=18'}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@esbuild/linux-riscv64@0.25.5':
+ resolution: {integrity: sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==}
+ engines: {node: '>=18'}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@esbuild/linux-riscv64@0.25.9':
+ resolution: {integrity: sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==}
+ engines: {node: '>=18'}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@esbuild/linux-riscv64@0.27.0':
+ resolution: {integrity: sha512-pQdyAIZ0BWIC5GyvVFn5awDiO14TkT/19FTmFcPdDec94KJ1uZcmFs21Fo8auMXzD4Tt+diXu1LW1gHus9fhFQ==}
+ engines: {node: '>=18'}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@esbuild/linux-s390x@0.24.2':
+ resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==}
+ engines: {node: '>=18'}
+ cpu: [s390x]
+ os: [linux]
+
+ '@esbuild/linux-s390x@0.25.5':
+ resolution: {integrity: sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==}
+ engines: {node: '>=18'}
+ cpu: [s390x]
+ os: [linux]
+
+ '@esbuild/linux-s390x@0.25.9':
+ resolution: {integrity: sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==}
+ engines: {node: '>=18'}
+ cpu: [s390x]
+ os: [linux]
+
+ '@esbuild/linux-s390x@0.27.0':
+ resolution: {integrity: sha512-hPlRWR4eIDDEci953RI1BLZitgi5uqcsjKMxwYfmi4LcwyWo2IcRP+lThVnKjNtk90pLS8nKdroXYOqW+QQH+w==}
+ engines: {node: '>=18'}
+ cpu: [s390x]
+ os: [linux]
+
+ '@esbuild/linux-x64@0.24.2':
+ resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [linux]
+
+ '@esbuild/linux-x64@0.25.5':
+ resolution: {integrity: sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [linux]
+
+ '@esbuild/linux-x64@0.25.9':
+ resolution: {integrity: sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [linux]
+
+ '@esbuild/linux-x64@0.27.0':
+ resolution: {integrity: sha512-1hBWx4OUJE2cab++aVZ7pObD6s+DK4mPGpemtnAORBvb5l/g5xFGk0vc0PjSkrDs0XaXj9yyob3d14XqvnQ4gw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [linux]
+
+ '@esbuild/netbsd-arm64@0.24.2':
+ resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [netbsd]
+
+ '@esbuild/netbsd-arm64@0.25.5':
+ resolution: {integrity: sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [netbsd]
+
+ '@esbuild/netbsd-arm64@0.25.9':
+ resolution: {integrity: sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [netbsd]
+
+ '@esbuild/netbsd-arm64@0.27.0':
+ resolution: {integrity: sha512-6m0sfQfxfQfy1qRuecMkJlf1cIzTOgyaeXaiVaaki8/v+WB+U4hc6ik15ZW6TAllRlg/WuQXxWj1jx6C+dfy3w==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [netbsd]
+
+ '@esbuild/netbsd-x64@0.24.2':
+ resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [netbsd]
+
+ '@esbuild/netbsd-x64@0.25.5':
+ resolution: {integrity: sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [netbsd]
+
+ '@esbuild/netbsd-x64@0.25.9':
+ resolution: {integrity: sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [netbsd]
+
+ '@esbuild/netbsd-x64@0.27.0':
+ resolution: {integrity: sha512-xbbOdfn06FtcJ9d0ShxxvSn2iUsGd/lgPIO2V3VZIPDbEaIj1/3nBBe1AwuEZKXVXkMmpr6LUAgMkLD/4D2PPA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [netbsd]
+
+ '@esbuild/openbsd-arm64@0.24.2':
+ resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [openbsd]
+
+ '@esbuild/openbsd-arm64@0.25.5':
+ resolution: {integrity: sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [openbsd]
+
+ '@esbuild/openbsd-arm64@0.25.9':
+ resolution: {integrity: sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [openbsd]
+
+ '@esbuild/openbsd-arm64@0.27.0':
+ resolution: {integrity: sha512-fWgqR8uNbCQ/GGv0yhzttj6sU/9Z5/Sv/VGU3F5OuXK6J6SlriONKrQ7tNlwBrJZXRYk5jUhuWvF7GYzGguBZQ==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [openbsd]
+
+ '@esbuild/openbsd-x64@0.24.2':
+ resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [openbsd]
+
+ '@esbuild/openbsd-x64@0.25.5':
+ resolution: {integrity: sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [openbsd]
+
+ '@esbuild/openbsd-x64@0.25.9':
+ resolution: {integrity: sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [openbsd]
+
+ '@esbuild/openbsd-x64@0.27.0':
+ resolution: {integrity: sha512-aCwlRdSNMNxkGGqQajMUza6uXzR/U0dIl1QmLjPtRbLOx3Gy3otfFu/VjATy4yQzo9yFDGTxYDo1FfAD9oRD2A==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [openbsd]
+
+ '@esbuild/openharmony-arm64@0.25.9':
+ resolution: {integrity: sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [openharmony]
+
+ '@esbuild/openharmony-arm64@0.27.0':
+ resolution: {integrity: sha512-nyvsBccxNAsNYz2jVFYwEGuRRomqZ149A39SHWk4hV0jWxKM0hjBPm3AmdxcbHiFLbBSwG6SbpIcUbXjgyECfA==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [openharmony]
+
+ '@esbuild/sunos-x64@0.24.2':
+ resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [sunos]
+
+ '@esbuild/sunos-x64@0.25.5':
+ resolution: {integrity: sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [sunos]
+
+ '@esbuild/sunos-x64@0.25.9':
+ resolution: {integrity: sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [sunos]
+
+ '@esbuild/sunos-x64@0.27.0':
+ resolution: {integrity: sha512-Q1KY1iJafM+UX6CFEL+F4HRTgygmEW568YMqDA5UV97AuZSm21b7SXIrRJDwXWPzr8MGr75fUZPV67FdtMHlHA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [sunos]
+
+ '@esbuild/win32-arm64@0.24.2':
+ resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@esbuild/win32-arm64@0.25.5':
+ resolution: {integrity: sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@esbuild/win32-arm64@0.25.9':
+ resolution: {integrity: sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@esbuild/win32-arm64@0.27.0':
+ resolution: {integrity: sha512-W1eyGNi6d+8kOmZIwi/EDjrL9nxQIQ0MiGqe/AWc6+IaHloxHSGoeRgDRKHFISThLmsewZ5nHFvGFWdBYlgKPg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@esbuild/win32-ia32@0.24.2':
+ resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@esbuild/win32-ia32@0.25.5':
+ resolution: {integrity: sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@esbuild/win32-ia32@0.25.9':
+ resolution: {integrity: sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@esbuild/win32-ia32@0.27.0':
+ resolution: {integrity: sha512-30z1aKL9h22kQhilnYkORFYt+3wp7yZsHWus+wSKAJR8JtdfI76LJ4SBdMsCopTR3z/ORqVu5L1vtnHZWVj4cQ==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@esbuild/win32-x64@0.24.2':
+ resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [win32]
+
+ '@esbuild/win32-x64@0.25.5':
+ resolution: {integrity: sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [win32]
+
+ '@esbuild/win32-x64@0.25.9':
+ resolution: {integrity: sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [win32]
+
+ '@esbuild/win32-x64@0.27.0':
+ resolution: {integrity: sha512-aIitBcjQeyOhMTImhLZmtxfdOcuNRpwlPNmlFKPcHQYPhEssw75Cl1TSXJXpMkzaua9FUetx/4OQKq7eJul5Cg==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [win32]
+
+ '@eslint-community/eslint-plugin-eslint-comments@4.7.1':
+ resolution: {integrity: sha512-Ql2nJFwA8wUGpILYGOQaT1glPsmvEwE0d+a+l7AALLzQvInqdbXJdx7aSu0DpUX9dB1wMVBMhm99/++S3MdEtQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0
+
+ '@eslint-community/eslint-utils@4.9.1':
+ resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
+
+ '@eslint-community/regexpp@4.12.2':
+ resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==}
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+
+ '@eslint/compat@2.0.2':
+ resolution: {integrity: sha512-pR1DoD0h3HfF675QZx0xsyrsU8q70Z/plx7880NOhS02NuWLgBCOMDL787nUeQ7EWLkxv3bPQJaarjcPQb2Dwg==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+ peerDependencies:
+ eslint: ^8.40 || 9 || 10
+ peerDependenciesMeta:
+ eslint:
+ optional: true
+
+ '@eslint/config-array@0.21.2':
+ resolution: {integrity: sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/config-helpers@0.4.2':
+ resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/config-helpers@0.5.2':
+ resolution: {integrity: sha512-a5MxrdDXEvqnIq+LisyCX6tQMPF/dSJpCfBgBauY+pNZ28yCtSsTvyTYrMhaI+LK26bVyCJfJkT0u8KIj2i1dQ==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+
+ '@eslint/core@0.17.0':
+ resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/core@1.1.0':
+ resolution: {integrity: sha512-/nr9K9wkr3P1EzFTdFdMoLuo1PmIxjmwvPozwoSodjNBdefGujXQUF93u1DDZpEaTuDvMsIQddsd35BwtrW9Xw==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+
+ '@eslint/eslintrc@3.3.5':
+ resolution: {integrity: sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/js@9.39.4':
+ resolution: {integrity: sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/markdown@7.5.1':
+ resolution: {integrity: sha512-R8uZemG9dKTbru/DQRPblbJyXpObwKzo8rv1KYGGuPUPtjM4LXBYM9q5CIZAComzZupws3tWbDwam5AFpPLyJQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/object-schema@2.1.7':
+ resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/plugin-kit@0.4.1':
+ resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/plugin-kit@0.6.0':
+ resolution: {integrity: sha512-bIZEUzOI1jkhviX2cp5vNyXQc6olzb2ohewQubuYlMXZ2Q/XjBO0x0XhGPvc9fjSIiUN0vw+0hq53BJ4eQSJKQ==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+
+ '@faker-js/faker@10.3.0':
+ resolution: {integrity: sha512-It0Sne6P3szg7JIi6CgKbvTZoMjxBZhcv91ZrqrNuaZQfB5WoqYYbzCUOq89YR+VY8juY9M1vDWmDDa2TzfXCw==}
+ engines: {node: ^20.19.0 || ^22.13.0 || ^23.5.0 || >=24.0.0, npm: '>=10'}
+
+ '@fastify/busboy@3.2.0':
+ resolution: {integrity: sha512-m9FVDXU3GT2ITSe0UaMA5rU3QkfC/UXtCU8y0gSN/GugTqtVldOBWIB5V6V3sbmenVZUIpU6f+mPEO2+m5iTaA==}
+
+ '@floating-ui/core@1.7.1':
+ resolution: {integrity: sha512-azI0DrjMMfIug/ExbBaeDVJXcY0a7EPvPjb2xAJPa4HeimBX+Z18HK8QQR3jb6356SnDDdxx+hinMLcJEDdOjw==}
+
+ '@floating-ui/dom@1.7.1':
+ resolution: {integrity: sha512-cwsmW/zyw5ltYTUeeYJ60CnQuPqmGwuGVhG9w0PRaRKkAyi38BT5CKrpIbb+jtahSwUl04cWzSx9ZOIxeS6RsQ==}
+
+ '@floating-ui/utils@0.2.9':
+ resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==}
+
+ '@floating-ui/vue@1.1.6':
+ resolution: {integrity: sha512-XFlUzGHGv12zbgHNk5FN2mUB7ROul3oG2ENdTpWdE+qMFxyNxWSRmsoyhiEnpmabNm6WnUvR1OvJfUfN4ojC1A==}
+
+ '@henrygd/queue@1.2.0':
+ resolution: {integrity: sha512-jW/BLSTpcvExDhqJGxtIPgGr2O0IFF8XUNDwEbfCfhrXT8a4xztQ9Lv6U/vbYzYC0xVWn+3zv6YnLUh3bEFUKA==}
+
+ '@humanfs/core@0.19.1':
+ resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
+ engines: {node: '>=18.18.0'}
+
+ '@humanfs/node@0.16.6':
+ resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==}
+ engines: {node: '>=18.18.0'}
+
+ '@humanwhocodes/module-importer@1.0.1':
+ resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
+ engines: {node: '>=12.22'}
+
+ '@humanwhocodes/retry@0.3.1':
+ resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==}
+ engines: {node: '>=18.18'}
+
+ '@humanwhocodes/retry@0.4.3':
+ resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==}
+ engines: {node: '>=18.18'}
+
+ '@iconify/json@2.2.447':
+ resolution: {integrity: sha512-hRPz6U6eN0C959BrYb0rE+I6f7BjDIPfgt8C9Ln5FxZ1Hw3aJQ+su/qbWy/+yJU74lLlXuwaS0ZfE8Kam6NkeA==}
+
+ '@iconify/types@2.0.0':
+ resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==}
+
+ '@iconify/utils@3.1.0':
+ resolution: {integrity: sha512-Zlzem1ZXhI1iHeeERabLNzBHdOa4VhQbqAcOQaMKuTuyZCpwKbC2R4Dd0Zo3g9EAc+Y4fiarO8HIHRAth7+skw==}
+
+ '@iconify/vue@5.0.0':
+ resolution: {integrity: sha512-C+KuEWIF5nSBrobFJhT//JS87OZ++QDORB6f2q2Wm6fl2mueSTpFBeBsveK0KW9hWiZ4mNiPjsh6Zs4jjdROSg==}
+ peerDependencies:
+ vue: '>=3'
+
+ '@inquirer/external-editor@1.0.2':
+ resolution: {integrity: sha512-yy9cOoBnx58TlsPrIxauKIFQTiyH+0MK4e97y4sV9ERbI+zDxw7i2hxHLCIEGIE/8PPvDxGhgzIOTSOWcs6/MQ==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
+ '@inquirer/figures@1.0.12':
+ resolution: {integrity: sha512-MJttijd8rMFcKJC8NYmprWr6hD3r9Gd9qUC0XwPNwoEPWSMVJwA2MlXxF+nhZZNMY+HXsWa+o7KY2emWYIn0jQ==}
+ engines: {node: '>=18'}
+
+ '@internationalized/date@3.8.2':
+ resolution: {integrity: sha512-/wENk7CbvLbkUvX1tu0mwq49CVkkWpkXubGel6birjRPyo6uQ4nQpnq5xZu823zRCwwn82zgHrvgF1vZyvmVgA==}
+
+ '@internationalized/number@3.6.3':
+ resolution: {integrity: sha512-p+Zh1sb6EfrfVaS86jlHGQ9HA66fJhV9x5LiE5vCbZtXEHAuhcmUZUdZ4WrFpUBfNalr2OkAJI5AcKEQF+Lebw==}
+
+ '@ioredis/commands@1.3.1':
+ resolution: {integrity: sha512-bYtU8avhGIcje3IhvF9aSjsa5URMZBHnwKtOvXsT4sfYy9gppW11gLPT/9oNqlJZD47yPKveQFTAFWpHjKvUoQ==}
+
+ '@isaacs/cliui@8.0.2':
+ resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
+ engines: {node: '>=12'}
+
+ '@isaacs/fs-minipass@4.0.1':
+ resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==}
+ engines: {node: '>=18.0.0'}
+
+ '@jridgewell/gen-mapping@0.3.12':
+ resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==}
+
+ '@jridgewell/gen-mapping@0.3.8':
+ resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
+ engines: {node: '>=6.0.0'}
+
+ '@jridgewell/remapping@2.3.5':
+ resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==}
+
+ '@jridgewell/resolve-uri@3.1.2':
+ resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
+ engines: {node: '>=6.0.0'}
+
+ '@jridgewell/set-array@1.2.1':
+ resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
+ engines: {node: '>=6.0.0'}
+
+ '@jridgewell/source-map@0.3.6':
+ resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==}
+
+ '@jridgewell/sourcemap-codec@1.5.0':
+ resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
+
+ '@jridgewell/sourcemap-codec@1.5.5':
+ resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
+
+ '@jridgewell/trace-mapping@0.3.25':
+ resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
+
+ '@jridgewell/trace-mapping@0.3.29':
+ resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==}
+
+ '@keyv/bigmap@1.3.1':
+ resolution: {integrity: sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ==}
+ engines: {node: '>= 18'}
+ peerDependencies:
+ keyv: ^5.6.0
+
+ '@keyv/serialize@1.1.1':
+ resolution: {integrity: sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==}
+
+ '@kwsites/file-exists@1.1.1':
+ resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==}
+
+ '@kwsites/promise-deferred@1.1.1':
+ resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==}
+
+ '@mapbox/node-pre-gyp@2.0.0':
+ resolution: {integrity: sha512-llMXd39jtP0HpQLVI37Bf1m2ADlEb35GYSh1SDSLsBhR+5iCxiNGlT31yqbNtVHygHAtMy6dWFERpU2JgufhPg==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ '@napi-rs/wasm-runtime@1.0.3':
+ resolution: {integrity: sha512-rZxtMsLwjdXkMUGC3WwsPwLNVqVqnTJT6MNIB6e+5fhMcSCPP0AOsNWuMQ5mdCq6HNjs/ZeWAEchpqeprqBD2Q==}
+
+ '@napi-rs/wasm-runtime@1.1.1':
+ resolution: {integrity: sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==}
+
+ '@netlify/binary-info@1.0.0':
+ resolution: {integrity: sha512-4wMPu9iN3/HL97QblBsBay3E1etIciR84izI3U+4iALY+JHCrI+a2jO0qbAZ/nxKoegypYEaiiqWXylm+/zfrw==}
+
+ '@netlify/blobs@9.1.2':
+ resolution: {integrity: sha512-7dMjExSH4zj4ShvLem49mE3mf0K171Tx2pV4WDWhJbRUWW3SJIR2qntz0LvUGS97N5HO1SmnzrgWUhEXCsApiw==}
+ engines: {node: ^14.16.0 || >=16.0.0}
+
+ '@netlify/dev-utils@2.2.0':
+ resolution: {integrity: sha512-5XUvZuffe3KetyhbWwd4n2ktd7wraocCYw10tlM+/u/95iAz29GjNiuNxbCD1T6Bn1MyGc4QLVNKOWhzJkVFAw==}
+ engines: {node: ^14.16.0 || >=16.0.0}
+
+ '@netlify/functions@3.1.10':
+ resolution: {integrity: sha512-sI93kcJ2cUoMgDRPnrEm0lZhuiDVDqM6ngS/UbHTApIH3+eg3yZM5p/0SDFQQq9Bad0/srFmgBmTdXushzY5kg==}
+ engines: {node: '>=14.0.0'}
+
+ '@netlify/open-api@2.37.0':
+ resolution: {integrity: sha512-zXnRFkxgNsalSgU8/vwTWnav3R+8KG8SsqHxqaoJdjjJtnZR7wo3f+qqu4z+WtZ/4V7fly91HFUwZ6Uz2OdW7w==}
+ engines: {node: '>=14.8.0'}
+
+ '@netlify/runtime-utils@1.3.1':
+ resolution: {integrity: sha512-7/vIJlMYrPJPlEW84V2yeRuG3QBu66dmlv9neTmZ5nXzwylhBEOhy11ai+34A8mHCSZI4mKns25w3HM9kaDdJg==}
+ engines: {node: '>=16.0.0'}
+
+ '@netlify/serverless-functions-api@1.41.2':
+ resolution: {integrity: sha512-pfCkH50JV06SGMNsNPjn8t17hOcId4fA881HeYQgMBOrewjsw4csaYgHEnCxCEu24Y5x75E2ULbFpqm9CvRCqw==}
+ engines: {node: '>=18.0.0'}
+
+ '@netlify/serverless-functions-api@2.3.0':
+ resolution: {integrity: sha512-eSC+glm4bX+9t+ajNzAs4Bca0Q/xGLgcYYh6M2Z9Dcya/MjVod1UrjPB88b0ANSBAy/aGFpDhVbwLwBokfnppQ==}
+ engines: {node: '>=18.0.0'}
+
+ '@netlify/zip-it-and-ship-it@12.2.1':
+ resolution: {integrity: sha512-zAr+8Tg80y/sUbhdUkZsq4Uy1IMzkSB6H/sKRMrDQ2NJx4uPgf5X5jMdg9g2FljNcxzpfJwc1Gg4OXQrjD0Z4A==}
+ engines: {node: '>=18.14.0'}
+ hasBin: true
+
+ '@nodelib/fs.scandir@2.1.5':
+ resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
+ engines: {node: '>= 8'}
+
+ '@nodelib/fs.stat@2.0.5':
+ resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
+ engines: {node: '>= 8'}
+
+ '@nodelib/fs.walk@1.2.8':
+ resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
+ engines: {node: '>= 8'}
+
+ '@nuxt/cli@3.28.0':
+ resolution: {integrity: sha512-WQ751WxWLBIeH3TDFt/LWQ2znyAKxpR5+gpv80oerwnVQs4GKajAfR6dIgExXZkjaPUHEFv2lVD9vM+frbprzw==}
+ engines: {node: ^16.10.0 || >=18.0.0}
+ hasBin: true
+
+ '@nuxt/devalue@2.0.2':
+ resolution: {integrity: sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==}
+
+ '@nuxt/devtools-kit@2.6.3':
+ resolution: {integrity: sha512-cDmai3Ws6AbJlYy1p4CCwc718cfbqtAjXe6oEc6q03zoJnvX1PsvKUfmU+yuowfqTSR6DZRmH4SjCBWuMjgaKQ==}
+ peerDependencies:
+ vite: '>=6.0'
+
+ '@nuxt/devtools-wizard@2.6.3':
+ resolution: {integrity: sha512-FWXPkuJ1RUp+9nWP5Vvk29cJPNtm4OO38bgr9G8vGbqcRznzgaSODH/92c8sm2dKR7AF+9MAYLL+BexOWOkljQ==}
+ hasBin: true
+
+ '@nuxt/devtools@2.6.3':
+ resolution: {integrity: sha512-n+8we7pr0tNl6w+KfbFDXZsYpWIYL4vG/daIdRF66lQ6fLyQy/CcxDAx8+JNu3Ew96RjuBtWRSbCCv454L5p0Q==}
+ hasBin: true
+ peerDependencies:
+ vite: '>=6.0'
+
+ '@nuxt/kit@3.18.1':
+ resolution: {integrity: sha512-z6w1Fzv27CIKFlhct05rndkJSfoslplWH5fJ9dtusEvpYScLXp5cATWIbWkte9e9zFSmQTgDQJjNs3geQHE7og==}
+ engines: {node: '>=18.12.0'}
+
+ '@nuxt/kit@4.0.3':
+ resolution: {integrity: sha512-9+lwvP4n8KhO91azoebO0o39smESGzEV4HU6nef9HIFyt04YwlVMY37Pk63GgZn0WhWVjyPWcQWs0rUdZUYcPw==}
+ engines: {node: '>=18.12.0'}
+
+ '@nuxt/schema@4.0.3':
+ resolution: {integrity: sha512-acDigyy8tF8xDCMFee00mt5u2kE5Qx5Y34ButBlibLzhguQjc+6f6FpMGdieN07oahjpegWIQG66yQywjw+sKw==}
+ engines: {node: ^14.18.0 || >=16.10.0}
+
+ '@nuxt/telemetry@2.6.6':
+ resolution: {integrity: sha512-Zh4HJLjzvm3Cq9w6sfzIFyH9ozK5ePYVfCUzzUQNiZojFsI2k1QkSBrVI9BGc6ArKXj/O6rkI6w7qQ+ouL8Cag==}
+ engines: {node: '>=18.12.0'}
+ hasBin: true
+
+ '@nuxt/vite-builder@4.0.3':
+ resolution: {integrity: sha512-1eKm51V3Ine4DjxLUDnPIKewuIZwJjGh1oMvY3sAJ5RtdSngRonqkaoGV4EWtLH7cO+oTBbbdVg5O95chYYcLQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ peerDependencies:
+ vue: ^3.3.4
+
+ '@ota-meshi/ast-token-store@0.3.0':
+ resolution: {integrity: sha512-XRO0zi2NIUKq2lUk3T1ecFSld1fMWRKE6naRFGkgkdeosx7IslyUKNv5Dcb5PJTja9tHJoFu0v/7yEpAkrkrTg==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+
+ '@oxc-minify/binding-android-arm64@0.80.0':
+ resolution: {integrity: sha512-OLelUqrLkSJwNyjLZHgpKy9n0+zHQiMX8A0GFovJIwhgfPxjT/mt2JMnGkSoDlTnf9cw6nvALFzCsJZLTyl8gg==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm64]
+ os: [android]
+
+ '@oxc-minify/binding-darwin-arm64@0.80.0':
+ resolution: {integrity: sha512-7vJjhKHGfFVit3PCerbnrXQI0XgmmgV5HTNxlNsvxcmjPRIoYVkuwwRkiBsxO4RiBwvRRkAFPop3fY/gpuflJA==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@oxc-minify/binding-darwin-x64@0.80.0':
+ resolution: {integrity: sha512-jKnRVtwVhspd8djNSQMICOZe6gQBwXTcfHylZ2Azw4ZXvqTyxDqgcEGgx0WyaqvUTLHdX42nJCHRHHy6MOVPOg==}
+ engines: {node: '>=14.0.0'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@oxc-minify/binding-freebsd-x64@0.80.0':
+ resolution: {integrity: sha512-iO7KjJsFpDtG5w8T6twTxLsvffn8PsjBbBUwjzVPfSD4YlsHDd0GjIVYcP+1TXzLRlV4zWmd67SOBnNyreSGBg==}
+ engines: {node: '>=14.0.0'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@oxc-minify/binding-linux-arm-gnueabihf@0.80.0':
+ resolution: {integrity: sha512-uwBdietv8USofOUAOcxyta14VbcJiFizQUMuCB9sLkK+Nh/CV5U2SVjsph5HlARGVu8V2DF+FXROD6sTl9DLiA==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm]
+ os: [linux]
+
+ '@oxc-minify/binding-linux-arm-musleabihf@0.80.0':
+ resolution: {integrity: sha512-6QAWCjH9in7JvpHRxX8M1IEkf+Eot82Q02xmikcACyJag26196XdVq2T9ITcwFtliozYxYP6yPQ5OzLoeeqdmg==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm]
+ os: [linux]
+
+ '@oxc-minify/binding-linux-arm64-gnu@0.80.0':
+ resolution: {integrity: sha512-1PxO983GNFSyvY6lpYpH3uA/5NHuei7CHExe+NSB+ZgQ1T/iBMjXxRml1Woedvi8odSSpZlivZxBiEojIcnfqw==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ '@oxc-minify/binding-linux-arm64-musl@0.80.0':
+ resolution: {integrity: sha512-D2j5L9Z4OO42We0Lo2GkXT/AaNikzZJ8KZ9V2VVwu7kofI4RsO8kSu8ydWlqRlRdiAprmUpRZU/pNW0ZA7A68w==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ '@oxc-minify/binding-linux-riscv64-gnu@0.80.0':
+ resolution: {integrity: sha512-2AztlLcio5OGil70wjRLbxbjlfS1yCTzO+CYan49vfUOCXpwSWwwLD2WDzFokhEXAzf8epbbu7pruYk8qorRRg==}
+ engines: {node: '>=14.0.0'}
+ cpu: [riscv64]
+ os: [linux]
+ libc: [glibc]
+
+ '@oxc-minify/binding-linux-s390x-gnu@0.80.0':
+ resolution: {integrity: sha512-5GMKARe4gYHhA7utM8qOgv3WM7KAXGZGG3Jhvk4UQSRBp0v6PKFmHmz8Q93+Ep8w1m4NqRL30Zk9CZHMH/qi5g==}
+ engines: {node: '>=14.0.0'}
+ cpu: [s390x]
+ os: [linux]
+ libc: [glibc]
+
+ '@oxc-minify/binding-linux-x64-gnu@0.80.0':
+ resolution: {integrity: sha512-iw45N+OVnPioRQXLHfrsqEcTpydcGSHLphilS3aSpc4uVKnOqCybskKnbEnxsIJqHWbzDZeJgzuRuQa7EhNcqg==}
+ engines: {node: '>=14.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@oxc-minify/binding-linux-x64-musl@0.80.0':
+ resolution: {integrity: sha512-4+dhYznVM+L9Jh855JBbqVyDjwi3p8rpL7RfgN+Ee1oQMaZl2ZPy2shS1Kj56Xr5haTTVGdRKcIqTU8SuF37UQ==}
+ engines: {node: '>=14.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ '@oxc-minify/binding-wasm32-wasi@0.80.0':
+ resolution: {integrity: sha512-flADFeNwC1/XsBBsESAigsJZyONEBloQO86Z38ZNzLSuMmpGRdwB9gUwlPCQgDRND/aB+tvR29hKTSuQoS3yrg==}
+ engines: {node: '>=14.0.0'}
+ cpu: [wasm32]
+
+ '@oxc-minify/binding-win32-arm64-msvc@0.80.0':
+ resolution: {integrity: sha512-wFjaEHzczIG9GqnL4c4C3PoThzf1640weQ1eEjh96TnHVdZmiNT5lpGoziJhO/c+g9+6sNrTdz9sqsiVgKwdOg==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@oxc-minify/binding-win32-x64-msvc@0.80.0':
+ resolution: {integrity: sha512-PjMi5B3MvOmfZk5LTie6g3RHhhujFwgR4VbCrWUNNwSzdxzy3dULPT4PWGVbpTas/QLJzXs/CXlQfnaMeJZHKQ==}
+ engines: {node: '>=14.0.0'}
+ cpu: [x64]
+ os: [win32]
+
+ '@oxc-parser/binding-android-arm-eabi@0.115.0':
+ resolution: {integrity: sha512-VoB2rhgoqgYf64d6Qs5emONQW8ASiTc0xp+aUE4JUhxjX+0pE3gblTYDO0upcN5vt9UlBNmUhAwfSifkfre7nw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm]
+ os: [android]
+
+ '@oxc-parser/binding-android-arm64@0.115.0':
+ resolution: {integrity: sha512-lWRX75u+gqfB4TF3pWCHuvhaeneAmRl2b2qNBcl4S6yJ0HtnT4VXOMEZrq747i4Zby1ZTxj6mtOe678Bg8gRLw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [android]
+
+ '@oxc-parser/binding-android-arm64@0.80.0':
+ resolution: {integrity: sha512-H0S4QTRFhct1uO1ZOnzGQAoHSJVHCyZa+oivovHkbqA0z271ppRkXmJuLfjW+9CBW0577JNAhjTflKUDpCO4lg==}
+ engines: {node: '>=20.0.0'}
+ cpu: [arm64]
+ os: [android]
+
+ '@oxc-parser/binding-android-arm64@0.82.3':
+ resolution: {integrity: sha512-hU9TSCa/dmYx0UCQyH+b9iONRGv5cfnvoSMKFf0v9xNwqlQu7mEil4po1d0a3Yjb7YyI9mz6e6bfg0XcjbMdBg==}
+ engines: {node: '>=20.0.0'}
+ cpu: [arm64]
+ os: [android]
+
+ '@oxc-parser/binding-darwin-arm64@0.115.0':
+ resolution: {integrity: sha512-ii/oOZjfGY1aszXTy29Z5DRyCEnBOrAXDVCvfdfXFQsOZlbbOa7NMHD7D+06YFe5qdxfmbWAYv4yn6QJi/0d2g==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@oxc-parser/binding-darwin-arm64@0.80.0':
+ resolution: {integrity: sha512-cVGI6NeGs1u1Ev8yO7I+zXPQuduCwwhYXd/K64uygx+OFp7fC7zSIlkGpoxFRUuSxqyipC813foAfUOwM1Y0PA==}
+ engines: {node: '>=20.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@oxc-parser/binding-darwin-arm64@0.82.3':
+ resolution: {integrity: sha512-LjBFMUtYYGZyA2g3+ajNPcn6RwsBoDbKELSf/pwVNCWHmAQwptw8zRc4VVDnBqANvkjmoe7MSp6TqKGi359/rw==}
+ engines: {node: '>=20.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@oxc-parser/binding-darwin-x64@0.115.0':
+ resolution: {integrity: sha512-R/sW/p8l77wglbjpMcF+h/3rWbp9zk1mRP3U14mxTYIC2k3m+aLBpXXgk2zksqf9qKk5mcc4GIYsuCn9l8TgDg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [darwin]
+
+ '@oxc-parser/binding-darwin-x64@0.80.0':
+ resolution: {integrity: sha512-h7wRo10ywI2vLz9VljFeIaUh9u7l2l3kvF6FAteY3cPqbCA6JYUZGJaykhMqTxJoG6wrzf35sMA2ubvq67iAMA==}
+ engines: {node: '>=20.0.0'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@oxc-parser/binding-darwin-x64@0.82.3':
+ resolution: {integrity: sha512-/d4uUlq2F3S0lwXnMjcGWkFUgZsPT/urypIQKFuumXbf9cHsy4bnkRDLL67+KpQ373R9boOEH+yUBYrLE9+LxA==}
+ engines: {node: '>=20.0.0'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@oxc-parser/binding-freebsd-x64@0.115.0':
+ resolution: {integrity: sha512-CSJ5ldNm9wIGGkhaIJeGmxRMZbgxThRN+X1ufYQQUNi5jZDV/U3C2QDMywpP93fczNBj961hXtcUPO/oVGq4Pw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@oxc-parser/binding-freebsd-x64@0.80.0':
+ resolution: {integrity: sha512-KcJ+8w/wVwd/XfDmgA9QZJAWML3vPu2O2Y8XRkf3U9VsN5n8cZ5PXMbH4NBSb3O7ctdDSvwnnuApLOz3sTHsUw==}
+ engines: {node: '>=20.0.0'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@oxc-parser/binding-freebsd-x64@0.82.3':
+ resolution: {integrity: sha512-H8wJ8LNrRAZ1Q75r+bnEn79pPAq8zQKnbE5+mWu9Xq5qcaQ6l/ZgjdamjvK05hZZXicCV5xji315f+OKK2BayQ==}
+ engines: {node: '>=20.0.0'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@oxc-parser/binding-linux-arm-gnueabihf@0.115.0':
+ resolution: {integrity: sha512-uWFwssE5dHfQ8lH+ktrsD9JA49+Qa0gtxZHUs62z1e91NgGz6O7jefHGI6aygNyKNS45pnnBSDSP/zV977MsOQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm]
+ os: [linux]
+
+ '@oxc-parser/binding-linux-arm-gnueabihf@0.80.0':
+ resolution: {integrity: sha512-5OCRxV5fX5RkVqsag55m4EFeudSZ0nSMYXgdtfR/5JZSiYmIYyPycafNNa52liqC2gx27vzrDRE4FdlG+5fhww==}
+ engines: {node: '>=20.0.0'}
+ cpu: [arm]
+ os: [linux]
+
+ '@oxc-parser/binding-linux-arm-gnueabihf@0.82.3':
+ resolution: {integrity: sha512-iomV7aBUubRHcsLkEnl8ORsPc2yIRfB4AD6N9KweUUZMEAiNFjS5DU83NcdmkMajejWqCNczzeFIyBkyRkptDw==}
+ engines: {node: '>=20.0.0'}
+ cpu: [arm]
+ os: [linux]
+
+ '@oxc-parser/binding-linux-arm-musleabihf@0.115.0':
+ resolution: {integrity: sha512-fZbqt8y/sKQ+v6bBCuv/mYYFoC0+fZI3mGDDEemmDOhT78+aUs2+4ZMdbd2btlXmnLaScl37r8IRbhnok5Ka9w==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm]
+ os: [linux]
+
+ '@oxc-parser/binding-linux-arm-musleabihf@0.80.0':
+ resolution: {integrity: sha512-kMa2PeA2GHMhvV617WdFzDAWCo2A00knPEe6rxFUO/Gr8TTLv1/LlEY6UqGseWrRfkkhFiAO496nRPW/6B5DCg==}
+ engines: {node: '>=20.0.0'}
+ cpu: [arm]
+ os: [linux]
+
+ '@oxc-parser/binding-linux-arm-musleabihf@0.82.3':
+ resolution: {integrity: sha512-DUZT8W//2MwQCbz7XSFSp/F4qwIq5ZSZVcLp/G++4Fo38ERzc8CvcQHiHOJXKY68BHHlBrkGp81RjhvWiRUJVw==}
+ engines: {node: '>=20.0.0'}
+ cpu: [arm]
+ os: [linux]
+
+ '@oxc-parser/binding-linux-arm64-gnu@0.115.0':
+ resolution: {integrity: sha512-1ej/MjuTY9tJEunU/hUPIFmgH5PqgMQoRjNOvOkibtJ3Zqlw/+Lc+HGHDNET8sjbgIkWzdhX+p4J96A5CPdbag==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ '@oxc-parser/binding-linux-arm64-gnu@0.80.0':
+ resolution: {integrity: sha512-y2NEhbFfKPdOkf3ZR/3xwJFJVji6IKxwXKHUN4bEdqpcO0tkXSCiP0MzTxjEY6ql2/MXdkqK0Ym92dYsRsgsyg==}
+ engines: {node: '>=20.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ '@oxc-parser/binding-linux-arm64-gnu@0.82.3':
+ resolution: {integrity: sha512-p66Mlm9ZpraOf1YyyJTIlastfDWMr4For132Ns8iT4AWc1L+Ml4hJew5x/5Y0HXw6zX5q290FvHfWMIh499hxg==}
+ engines: {node: '>=20.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ '@oxc-parser/binding-linux-arm64-musl@0.115.0':
+ resolution: {integrity: sha512-HjsZbJPH9mMd4swJRywVMsDZsJX0hyKb1iNHo5ijRl5yhtbO3lj7ImSrrL1oZ1VEg0te4iKmDGGz/6YPLd1G8w==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ '@oxc-parser/binding-linux-arm64-musl@0.80.0':
+ resolution: {integrity: sha512-j3tKausSXwHS/Ej6ct2dmKJtw0UIME2XJmj6QfPT6LyUSNTndj4yXRXuMSrCOrX9/0qH9GhmqeL9ouU27dQRFw==}
+ engines: {node: '>=20.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ '@oxc-parser/binding-linux-arm64-musl@0.82.3':
+ resolution: {integrity: sha512-eTeubc6GaGSGa09s9vffbg3Nxve4okUe79UQAd/vXPCPaGcbC/3VXoMutEjRyewOEEXihdYzggxa3v9yv7bNoA==}
+ engines: {node: '>=20.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ '@oxc-parser/binding-linux-ppc64-gnu@0.115.0':
+ resolution: {integrity: sha512-zhhePoBrd7kQx3oClX/W6NldsuCbuMqaN9rRsY+6/WoorAb4j490PG/FjqgAXscWp2uSW2WV9L+ksn0wHrvsrg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [ppc64]
+ os: [linux]
+ libc: [glibc]
+
+ '@oxc-parser/binding-linux-riscv64-gnu@0.115.0':
+ resolution: {integrity: sha512-t/IRojvUE9XrKu+/H1b8YINug+7Q6FLls5rsm2lxB5mnS8GN/eYAYrPgHkcg9/1SueRDSzGpDYu3lGWTObk1zw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [riscv64]
+ os: [linux]
+ libc: [glibc]
+
+ '@oxc-parser/binding-linux-riscv64-gnu@0.80.0':
+ resolution: {integrity: sha512-h+uPvyTcpTFd946fGPU57sZeec2qHPUYQRZeXHB2uuZjps+9pxQ5zIz0EBM/JgBtnwdtoR93RAu1YNAVbqY5Zw==}
+ engines: {node: '>=20.0.0'}
+ cpu: [riscv64]
+ os: [linux]
+ libc: [glibc]
+
+ '@oxc-parser/binding-linux-riscv64-gnu@0.82.3':
+ resolution: {integrity: sha512-gOLpW5RZLajzc/PfPBxYGLLQu9ErBJBZSboBpDafP1Vv8t/vmwEr0WA95oxPdFo0lMl2xkjcVNbOiVQA70U56Q==}
+ engines: {node: '>=20.0.0'}
+ cpu: [riscv64]
+ os: [linux]
+ libc: [glibc]
+
+ '@oxc-parser/binding-linux-riscv64-musl@0.115.0':
+ resolution: {integrity: sha512-79jBHSSh/YpQRAmvYoaCfpyToRbJ/HBrdB7hxK2ku2JMehjopTVo+xMJss/RV7/ZYqeezgjvKDQzapJbgcjVZA==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [riscv64]
+ os: [linux]
+ libc: [musl]
+
+ '@oxc-parser/binding-linux-s390x-gnu@0.115.0':
+ resolution: {integrity: sha512-nA1TpxkhNTIOMMyiSSsa7XIVJVoOU/SsVrHIz3gHvWweB5PHCQfO7w+Lb2EP0lBWokv7HtA/KbF7aLDoXzmuMw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [s390x]
+ os: [linux]
+ libc: [glibc]
+
+ '@oxc-parser/binding-linux-s390x-gnu@0.80.0':
+ resolution: {integrity: sha512-+u74hV+WwCPL4UBNOJaIGRozTCfZ7pM5JCEe8zAlMkKexftUzbtvW02314bVD9bqoRAL3Gg6jcZrjNjwDX2FwQ==}
+ engines: {node: '>=20.0.0'}
+ cpu: [s390x]
+ os: [linux]
+ libc: [glibc]
+
+ '@oxc-parser/binding-linux-s390x-gnu@0.82.3':
+ resolution: {integrity: sha512-K8FiSCsjUxwo5uKIlwoQd8Dgtvjplk1fYXLnU4CKH0BxWVihf34NQ3DCyELMjAOhyrslfih5cWULIyKOdWSUqw==}
+ engines: {node: '>=20.0.0'}
+ cpu: [s390x]
+ os: [linux]
+ libc: [glibc]
+
+ '@oxc-parser/binding-linux-x64-gnu@0.115.0':
+ resolution: {integrity: sha512-9iVX789DoC3SaOOG+X6NcF/tVChgLp2vcHffzOC2/Z1JTPlz6bMG2ogvcW6/9s0BG2qvhNQImd+gbWYeQbOwVw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@oxc-parser/binding-linux-x64-gnu@0.80.0':
+ resolution: {integrity: sha512-N9UGnWVWMlOJH+6550tqyBxd9qkMd0f4m+YRA0gly6efJTuLbPQpjkJm7pJbMu+GULcvSJ/Y0bkMAIQTtwP0vQ==}
+ engines: {node: '>=20.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@oxc-parser/binding-linux-x64-gnu@0.82.3':
+ resolution: {integrity: sha512-/n13gpaEWlDHGWExq5lfZpvxKkA2w+zWA79C13F4yVskEzfZSk1x6dTBrkGSf3pFAUFHtzrlT/LPHiUyMJt5Tg==}
+ engines: {node: '>=20.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@oxc-parser/binding-linux-x64-musl@0.115.0':
+ resolution: {integrity: sha512-RmQmk+mjCB0nMNfEYhaCxwofLo1Z95ebHw1AGvRiWGCd4zhCNOyskgCbMogIcQzSB3SuEKWgkssyaiQYVAA4hQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ '@oxc-parser/binding-linux-x64-musl@0.80.0':
+ resolution: {integrity: sha512-l2N/GlFEri27QBMi0e53V/SlpQotIvHbz+rZZG/EO+vn58ZEr0eTG+PjJoOY/T8+TQb8nrCtRe4S/zNDpV6zSQ==}
+ engines: {node: '>=20.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ '@oxc-parser/binding-linux-x64-musl@0.82.3':
+ resolution: {integrity: sha512-P6eBYtOmAP0uihOeteOzXwAS4s5FB79gt1THYEMBGNe482PPhesqEXyq5jFCwBzpM1QKg7xG7N+EC+ZUktXOTg==}
+ engines: {node: '>=20.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ '@oxc-parser/binding-openharmony-arm64@0.115.0':
+ resolution: {integrity: sha512-viigraWWQhhDvX5aGq+wrQq58k00Xq3MHz/0R4AFMxGlZ8ogNonpEfNc73Q5Ly87Z6sU9BvxEdG0dnYTfVnmew==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [openharmony]
+
+ '@oxc-parser/binding-wasm32-wasi@0.115.0':
+ resolution: {integrity: sha512-IzGCrMwXhpb4kTXy/8lnqqqwjI7eOvy+r9AhVw+hsr8t1ecBBEHprcNy0aKatFHN6hsX7UMHHQmBAQjVvL/p1A==}
+ engines: {node: '>=14.0.0'}
+ cpu: [wasm32]
+
+ '@oxc-parser/binding-wasm32-wasi@0.80.0':
+ resolution: {integrity: sha512-5iEwQqMXU1HiRlWuD3f+8N2O3qWhS+nOFEAWgE3sjMUnTtILPJETYhaGBPqqPWg1iRO3+hE1lEBCdI91GS1CUQ==}
+ engines: {node: '>=14.0.0'}
+ cpu: [wasm32]
+
+ '@oxc-parser/binding-wasm32-wasi@0.82.3':
+ resolution: {integrity: sha512-oFL0vJfrR7Qkj+n3q9MQhqOsaWGiDg4B1Ch/mJMZGXJAkZ1dnYKQWLVymJkWsl4Ydgs82h6L20mX2IthbF0wHQ==}
+ engines: {node: '>=14.0.0'}
+ cpu: [wasm32]
+
+ '@oxc-parser/binding-win32-arm64-msvc@0.115.0':
+ resolution: {integrity: sha512-/ym+Absk/TLFvbhh3se9XYuI1D7BrUVHw4RaG/2dmWKgBenrZHaJsgnRb7NJtaOyjEOLIPtULx1wDdVL0SX2eg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [win32]
+
+ '@oxc-parser/binding-win32-arm64-msvc@0.80.0':
+ resolution: {integrity: sha512-HedSH/Db7OFR2SugTbuawaV1vjgUjCXzxPquow/1FLtpRT2wASbMaRRbyD/h2n4DJ8V2zGqnV8Q+vic+VNvnKg==}
+ engines: {node: '>=20.0.0'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@oxc-parser/binding-win32-arm64-msvc@0.82.3':
+ resolution: {integrity: sha512-2t3j5pWgL7ZWj/3Q1aiUBnH79oAzQO+KOM5tTVawIWpsHFqsuGEL5ckikap1JczHaugAaEvc067ihTjpSDoXVA==}
+ engines: {node: '>=20.0.0'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@oxc-parser/binding-win32-ia32-msvc@0.115.0':
+ resolution: {integrity: sha512-AQSZjIR+b+Te7uaO/hGTMjT8/oxlYrvKrOTi4KTHF/O6osjHEatUQ3y6ZW2+8+lJxy20zIcGz6iQFmFq/qDKkg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [ia32]
+ os: [win32]
+
+ '@oxc-parser/binding-win32-x64-msvc@0.115.0':
+ resolution: {integrity: sha512-oxUl82N+fIO9jIaXPph8SPPHQXrA08BHokBBJW8ct9F/x6o6bZE6eUAhUtWajbtvFhL8UYcCWRMba+kww6MBlA==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [win32]
+
+ '@oxc-parser/binding-win32-x64-msvc@0.80.0':
+ resolution: {integrity: sha512-SSiM0m7jG5yxVf0ivy1rF8OuTJo8ITgp1ccp2aqPZG6Qyl5QiVpf8HI1X5AvPFxts2B4Bv8U3Dip+FobqBkwcw==}
+ engines: {node: '>=20.0.0'}
+ cpu: [x64]
+ os: [win32]
+
+ '@oxc-parser/binding-win32-x64-msvc@0.82.3':
+ resolution: {integrity: sha512-MeMOFDIZ3vSZyjgjSkWKb/zdRc4eSwK0kUl5OmysjRIIyIK7LEFLpuk7R+Of4nUGYAQNRHyC8BcMJKO2OLBeqA==}
+ engines: {node: '>=20.0.0'}
+ cpu: [x64]
+ os: [win32]
+
+ '@oxc-project/types@0.115.0':
+ resolution: {integrity: sha512-4n91DKnebUS4yjUHl2g3/b2T+IUdCfmoZGhmwsovZCDaJSs+QkVAM+0AqqTxHSsHfeiMuueT75cZaZcT/m0pSw==}
+
+ '@oxc-project/types@0.80.0':
+ resolution: {integrity: sha512-xxHQm8wfCv2e8EmtaDwpMeAHOWqgQDAYg+BJouLXSQt5oTKu9TIXrgNMGSrM2fLvKmECsRd9uUFAAD+hPyootA==}
+
+ '@oxc-project/types@0.82.3':
+ resolution: {integrity: sha512-6nCUxBnGX0c6qfZW5MaF6/fmu5dHJDMiMPaioKHKs5mi5+8/FHQ7WGjgQIz1zxpmceMYfdIXkOaLYE+ejbuOtA==}
+
+ '@oxc-transform/binding-android-arm64@0.80.0':
+ resolution: {integrity: sha512-HAK6zIUOteptOsSRqoGu41cez7kj/OPJqBGdgdP6FFh2RFcRfh0vqefjgF69af7TjzsRxVF8itiWvFsJHrIFoA==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm64]
+ os: [android]
+
+ '@oxc-transform/binding-darwin-arm64@0.80.0':
+ resolution: {integrity: sha512-sVcK4tjXbCfexlhquKVcwoKQrekQWDzRXtDwOWxm3CV1k5qGUm/rl5RAQLnXYtZVgu0U2dGEct9tNms+dzbACA==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@oxc-transform/binding-darwin-x64@0.80.0':
+ resolution: {integrity: sha512-MWmDTJszdO3X2LvbvIZocdfJnb/wjr3zhU99IlruwxsFfVNHbl03091bXi1ABsV5dyU+47V/A5jG3xOtg5X0vQ==}
+ engines: {node: '>=14.0.0'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@oxc-transform/binding-freebsd-x64@0.80.0':
+ resolution: {integrity: sha512-fKuwj/iBfjfGePjcR9+j2TQ/7RlrUIT4ir/OAcHWYJ/kvxp4XY/juKYXo4lks/MW/dwe+UR1Lp6xiCQBuxpyIg==}
+ engines: {node: '>=14.0.0'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@oxc-transform/binding-linux-arm-gnueabihf@0.80.0':
+ resolution: {integrity: sha512-R0QdfKiV+ZFiM28UnyylOEtTBFjAb4XuHvQltUSUpylXXIbGd+0Z1WF5lY3Z776Vy00HWhYj/Vo03rhvjdVDTA==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm]
+ os: [linux]
+
+ '@oxc-transform/binding-linux-arm-musleabihf@0.80.0':
+ resolution: {integrity: sha512-hIfp4LwyQMRhsY9ptx4UleffoY9wZofTmnHFhZTMdb/hoE97Vuqw7Ub2cLcWMu0FYHIX8zXCMd1CJjs2MV1X3w==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm]
+ os: [linux]
+
+ '@oxc-transform/binding-linux-arm64-gnu@0.80.0':
+ resolution: {integrity: sha512-mOYGji1m55BD2vV5m1qnrXbdqyPp/AU9p1Rn+0hM2zkE3pVkETCPvLevSvt4rHQZBZFIWeRGo47QNsNQyaZBsg==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ '@oxc-transform/binding-linux-arm64-musl@0.80.0':
+ resolution: {integrity: sha512-kBBCQwr1GCkr/b0iXH+ijsg+CSPCAMSV2tu4LmG2PFaxBnZilMYfUyWHCAiskbbUADikecUfwX6hHIaQoMaixg==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ '@oxc-transform/binding-linux-riscv64-gnu@0.80.0':
+ resolution: {integrity: sha512-8CGJhHoD2Ttw8HtCNd/IWnGtL0Nsn448L2hZJtbDDGVUZUF4bbZFdXPnRt0QrEbupywoH6InN6q2imLous6xnw==}
+ engines: {node: '>=14.0.0'}
+ cpu: [riscv64]
+ os: [linux]
+ libc: [glibc]
+
+ '@oxc-transform/binding-linux-s390x-gnu@0.80.0':
+ resolution: {integrity: sha512-V/Lb6m5loWzvdB/qo6eYvVXidQku/PA706JbeE/PPCup8At+BwOXnZjktv7LDxrpuqnO32tZDHUUc9Y3bzOEBw==}
+ engines: {node: '>=14.0.0'}
+ cpu: [s390x]
+ os: [linux]
+ libc: [glibc]
+
+ '@oxc-transform/binding-linux-x64-gnu@0.80.0':
+ resolution: {integrity: sha512-03hHW04MQNb+ak27xo79nUkMjVu6146TNgeSapcDRATH4R0YMmXB2oPQK1K2nuBJzVZjBjH7Bus/I7tR3JasAg==}
+ engines: {node: '>=14.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@oxc-transform/binding-linux-x64-musl@0.80.0':
+ resolution: {integrity: sha512-BkXniuuHpo9cR2S3JDKIvmUrNvmm335owGW4rfp07HjVUsbq9e7bSnvOnyA3gXGdrPR2IgCWGi5nnXk2NN5Q0A==}
+ engines: {node: '>=14.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ '@oxc-transform/binding-wasm32-wasi@0.80.0':
+ resolution: {integrity: sha512-jfRRXLtfSgTeJXBHj6qb+HHUd6hmYcyUNMBcTY8/k+JVsx0ThfrmCIufNlSJTt1zB+ugnMVMuQGeB0oF+aa86w==}
+ engines: {node: '>=14.0.0'}
+ cpu: [wasm32]
+
+ '@oxc-transform/binding-win32-arm64-msvc@0.80.0':
+ resolution: {integrity: sha512-bofcVhlAV1AKzbE0TgDH+h813pbwWwwRhN6tv/hD4qEuWh/qEjv8Xb3Ar15xfBfyLI53FoJascuaJAFzX+IN9A==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@oxc-transform/binding-win32-x64-msvc@0.80.0':
+ resolution: {integrity: sha512-MT6hQo9Kw/VuQUfX0fc0OpUdZesQruT0UNY9hxIcqcli7pbxMrvFBjkXo7oUb2151s/n+F4fyQOWvaR6zwxtDA==}
+ engines: {node: '>=14.0.0'}
+ cpu: [x64]
+ os: [win32]
+
+ '@parcel/watcher-android-arm64@2.5.1':
+ resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [android]
+
+ '@parcel/watcher-darwin-arm64@2.5.1':
+ resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@parcel/watcher-darwin-x64@2.5.1':
+ resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@parcel/watcher-freebsd-x64@2.5.1':
+ resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@parcel/watcher-linux-arm-glibc@2.5.1':
+ resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm]
+ os: [linux]
+ libc: [glibc]
+
+ '@parcel/watcher-linux-arm-musl@2.5.1':
+ resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm]
+ os: [linux]
+ libc: [musl]
+
+ '@parcel/watcher-linux-arm64-glibc@2.5.1':
+ resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ '@parcel/watcher-linux-arm64-musl@2.5.1':
+ resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ '@parcel/watcher-linux-x64-glibc@2.5.1':
+ resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@parcel/watcher-linux-x64-musl@2.5.1':
+ resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ '@parcel/watcher-wasm@2.5.1':
+ resolution: {integrity: sha512-RJxlQQLkaMMIuWRozy+z2vEqbaQlCuaCgVZIUCzQLYggY22LZbP5Y1+ia+FD724Ids9e+XIyOLXLrLgQSHIthw==}
+ engines: {node: '>= 10.0.0'}
+ bundledDependencies:
+ - napi-wasm
+
+ '@parcel/watcher-win32-arm64@2.5.1':
+ resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@parcel/watcher-win32-ia32@2.5.1':
+ resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@parcel/watcher-win32-x64@2.5.1':
+ resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [win32]
+
+ '@parcel/watcher@2.5.1':
+ resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==}
+ engines: {node: '>= 10.0.0'}
+
+ '@pkgjs/parseargs@0.11.0':
+ resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
+ engines: {node: '>=14'}
+
+ '@pkgr/core@0.2.9':
+ resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==}
+ engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
+
+ '@polka/url@1.0.0-next.29':
+ resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==}
+
+ '@poppinss/colors@4.1.5':
+ resolution: {integrity: sha512-FvdDqtcRCtz6hThExcFOgW0cWX+xwSMWcRuQe5ZEb2m7cVQOAVZOIMt+/v9RxGiD9/OY16qJBXK4CVKWAPalBw==}
+
+ '@poppinss/dumper@0.6.4':
+ resolution: {integrity: sha512-iG0TIdqv8xJ3Lt9O8DrPRxw1MRLjNpoqiSGU03P/wNLP/s0ra0udPJ1J2Tx5M0J3H/cVyEgpbn8xUKRY9j59kQ==}
+
+ '@poppinss/exception@1.2.2':
+ resolution: {integrity: sha512-m7bpKCD4QMlFCjA/nKTs23fuvoVFoA83brRKmObCUNmi/9tVu8Ve3w4YQAnJu4q3Tjf5fr685HYIC/IA2zHRSg==}
+
+ '@quansync/fs@1.0.0':
+ resolution: {integrity: sha512-4TJ3DFtlf1L5LDMaM6CanJ/0lckGNtJcMjQ1NAV6zDmA0tEHKZtxNKin8EgPaVX1YzljbxckyT2tJrpQKAtngQ==}
+
+ '@rolldown/pluginutils@1.0.0-rc.2':
+ resolution: {integrity: sha512-izyXV/v+cHiRfozX62W9htOAvwMo4/bXKDrQ+vom1L1qRuexPock/7VZDAhnpHCLNejd3NJ6hiab+tO0D44Rgw==}
+
+ '@rolldown/pluginutils@1.0.0-rc.6':
+ resolution: {integrity: sha512-Y0+JT8Mi1mmW08K6HieG315XNRu4L0rkfCpA364HtytjgiqYnMYRdFPcxRl+BQQqNXzecL2S9nii+RUpO93XIA==}
+
+ '@rollup/plugin-alias@5.1.1':
+ resolution: {integrity: sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+
+ '@rollup/plugin-commonjs@28.0.6':
+ resolution: {integrity: sha512-XSQB1K7FUU5QP+3lOQmVCE3I0FcbbNvmNT4VJSj93iUjayaARrTQeoRdiYQoftAJBLrR9t2agwAd3ekaTgHNlw==}
+ engines: {node: '>=16.0.0 || 14 >= 14.17'}
+ peerDependencies:
+ rollup: ^2.68.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+
+ '@rollup/plugin-inject@5.0.5':
+ resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+
+ '@rollup/plugin-json@6.1.0':
+ resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+
+ '@rollup/plugin-node-resolve@16.0.1':
+ resolution: {integrity: sha512-tk5YCxJWIG81umIvNkSod2qK5KyQW19qcBF/B78n1bjtOON6gzKoVeSzAE8yHCZEDmqkHKkxplExA8KzdJLJpA==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^2.78.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+
+ '@rollup/plugin-replace@6.0.2':
+ resolution: {integrity: sha512-7QaYCf8bqF04dOy7w/eHmJeNExxTYwvKAmlSAH/EaWWUzbT0h5sbF6bktFoX/0F/0qwng5/dWFMyf3gzaM8DsQ==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+
+ '@rollup/plugin-terser@0.4.4':
+ resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^2.0.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+
+ '@rollup/pluginutils@5.1.4':
+ resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+
+ '@rollup/rollup-android-arm-eabi@4.46.2':
+ resolution: {integrity: sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==}
+ cpu: [arm]
+ os: [android]
+
+ '@rollup/rollup-android-arm64@4.46.2':
+ resolution: {integrity: sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==}
+ cpu: [arm64]
+ os: [android]
+
+ '@rollup/rollup-darwin-arm64@4.46.2':
+ resolution: {integrity: sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@rollup/rollup-darwin-x64@4.46.2':
+ resolution: {integrity: sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==}
+ cpu: [x64]
+ os: [darwin]
+
+ '@rollup/rollup-freebsd-arm64@4.46.2':
+ resolution: {integrity: sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==}
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@rollup/rollup-freebsd-x64@4.46.2':
+ resolution: {integrity: sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@rollup/rollup-linux-arm-gnueabihf@4.46.2':
+ resolution: {integrity: sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==}
+ cpu: [arm]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-arm-musleabihf@4.46.2':
+ resolution: {integrity: sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==}
+ cpu: [arm]
+ os: [linux]
+ libc: [musl]
+
+ '@rollup/rollup-linux-arm64-gnu@4.46.2':
+ resolution: {integrity: sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-arm64-musl@4.46.2':
+ resolution: {integrity: sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ '@rollup/rollup-linux-loongarch64-gnu@4.46.2':
+ resolution: {integrity: sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==}
+ cpu: [loong64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-ppc64-gnu@4.46.2':
+ resolution: {integrity: sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==}
+ cpu: [ppc64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-riscv64-gnu@4.46.2':
+ resolution: {integrity: sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==}
+ cpu: [riscv64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-riscv64-musl@4.46.2':
+ resolution: {integrity: sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==}
+ cpu: [riscv64]
+ os: [linux]
+ libc: [musl]
+
+ '@rollup/rollup-linux-s390x-gnu@4.46.2':
+ resolution: {integrity: sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==}
+ cpu: [s390x]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-x64-gnu@4.46.2':
+ resolution: {integrity: sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-x64-musl@4.46.2':
+ resolution: {integrity: sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ '@rollup/rollup-win32-arm64-msvc@4.46.2':
+ resolution: {integrity: sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==}
+ cpu: [arm64]
+ os: [win32]
+
+ '@rollup/rollup-win32-ia32-msvc@4.46.2':
+ resolution: {integrity: sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==}
+ cpu: [ia32]
+ os: [win32]
+
+ '@rollup/rollup-win32-x64-msvc@4.46.2':
+ resolution: {integrity: sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==}
+ cpu: [x64]
+ os: [win32]
+
+ '@sindresorhus/base62@1.0.0':
+ resolution: {integrity: sha512-TeheYy0ILzBEI/CO55CP6zJCSdSWeRtGnHy8U8dWSUH4I68iqTsy7HkMktR4xakThc9jotkPQUXT4ITdbV7cHA==}
+ engines: {node: '>=18'}
+
+ '@sindresorhus/is@7.0.2':
+ resolution: {integrity: sha512-d9xRovfKNz1SKieM0qJdO+PQonjnnIfSNWfHYnBSJ9hkjm0ZPw6HlxscDXYstp3z+7V2GOFHc+J0CYrYTjqCJw==}
+ engines: {node: '>=18'}
+
+ '@sindresorhus/merge-streams@2.3.0':
+ resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==}
+ engines: {node: '>=18'}
+
+ '@sindresorhus/merge-streams@4.0.0':
+ resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==}
+ engines: {node: '>=18'}
+
+ '@speed-highlight/core@1.2.7':
+ resolution: {integrity: sha512-0dxmVj4gxg3Jg879kvFS/msl4s9F3T9UXC1InxgOf7t5NvcPD97u/WTA5vL/IxWHMn7qSxBozqrnnE2wvl1m8g==}
+
+ '@stylistic/eslint-plugin@5.10.0':
+ resolution: {integrity: sha512-nPK52ZHvot8Ju/0A4ucSX1dcPV2/1clx0kLcH5wDmrE4naKso7TUC/voUyU1O9OTKTrR6MYip6LP0ogEMQ9jPQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^9.0.0 || ^10.0.0
+
+ '@stylistic/stylelint-config@4.0.0':
+ resolution: {integrity: sha512-04H8xfsIR/pWpAPQI5aGxwgjeikb8vy4OSNvzRdRcAITYSfX1UUTgGL5jm8iZxN8MSWfN77hMlV1LknE0Ho6tg==}
+ engines: {node: '>=20.19.0'}
+ peerDependencies:
+ stylelint: ^17.0.0
+
+ '@stylistic/stylelint-plugin@5.0.1':
+ resolution: {integrity: sha512-NaVwCNVZ2LyPA3TnUwvjO9c6P6VUjgRB8UP8SOW+cAOJBVqPPuOIDawsvvtql/LhkuR3JuTdGvr/RM3dUl8l2Q==}
+ engines: {node: '>=20.19.0'}
+ peerDependencies:
+ stylelint: ^17.0.0
+
+ '@swc/helpers@0.5.17':
+ resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==}
+
+ '@sxzz/popperjs-es@2.11.7':
+ resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==}
+
+ '@tanstack/virtual-core@3.13.9':
+ resolution: {integrity: sha512-3jztt0jpaoJO5TARe2WIHC1UQC3VMLAFUW5mmMo0yrkwtDB2AQP0+sh10BVUpWrnvHjSLvzFizydtEGLCJKFoQ==}
+
+ '@tanstack/vue-virtual@3.13.9':
+ resolution: {integrity: sha512-HsvHaOo+o52cVcPhomKDZ3CMpTF/B2qg+BhPHIQJwzn4VIqDyt/rRVqtIomG6jE83IFsE2vlr6cmx7h3dHA0SA==}
+ peerDependencies:
+ vue: ^2.7.0 || ^3.0.0
+
+ '@trysound/sax@0.2.0':
+ resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
+ engines: {node: '>=10.13.0'}
+
+ '@tybys/wasm-util@0.10.0':
+ resolution: {integrity: sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ==}
+
+ '@tybys/wasm-util@0.10.1':
+ resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==}
+
+ '@types/debug@4.1.12':
+ resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
+
+ '@types/estree@1.0.8':
+ resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
+
+ '@types/fined@1.1.5':
+ resolution: {integrity: sha512-2N93vadEGDFhASTIRbizbl4bNqpMOId5zZfj6hHqYZfEzEfO9onnU4Im8xvzo8uudySDveDHBOOSlTWf38ErfQ==}
+
+ '@types/inquirer@9.0.9':
+ resolution: {integrity: sha512-/mWx5136gts2Z2e5izdoRCo46lPp5TMs9R15GTSsgg/XnZyxDWVqoVU3R9lWnccKpqwsJLvRoxbCjoJtZB7DSw==}
+
+ '@types/json-schema@7.0.15':
+ resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
+
+ '@types/liftoff@4.0.3':
+ resolution: {integrity: sha512-UgbL2kR5pLrWICvr8+fuSg0u43LY250q7ZMkC+XKC3E+rs/YBDEnQIzsnhU5dYsLlwMi3R75UvCL87pObP1sxw==}
+
+ '@types/lodash-es@4.17.12':
+ resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==}
+
+ '@types/lodash@4.17.20':
+ resolution: {integrity: sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==}
+
+ '@types/mdast@4.0.4':
+ resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==}
+
+ '@types/ms@2.1.0':
+ resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==}
+
+ '@types/node@22.15.30':
+ resolution: {integrity: sha512-6Q7lr06bEHdlfplU6YRbgG1SFBdlsfNC4/lX+SkhiTs0cpJkOElmWls8PxDFv4yY/xKb8Y6SO0OmSX4wgqTZbA==}
+
+ '@types/normalize-package-data@2.4.4':
+ resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
+
+ '@types/nprogress@0.2.3':
+ resolution: {integrity: sha512-k7kRA033QNtC+gLc4VPlfnue58CM1iQLgn1IMAU8VPHGOj7oIHPp9UlhedEnD/Gl8evoCjwkZjlBORtZ3JByUA==}
+
+ '@types/parse-path@7.1.0':
+ resolution: {integrity: sha512-EULJ8LApcVEPbrfND0cRQqutIOdiIgJ1Mgrhpy755r14xMohPTEpkV/k28SJvuOs9bHRFW8x+KeDAEPiGQPB9Q==}
+ deprecated: This is a stub types definition. parse-path provides its own type definitions, so you do not need this installed.
+
+ '@types/path-browserify@1.0.3':
+ resolution: {integrity: sha512-ZmHivEbNCBtAfcrFeBCiTjdIc2dey0l7oCGNGpSuRTy8jP6UVND7oUowlvDujBy8r2Hoa8bfFUOCiPWfmtkfxw==}
+
+ '@types/picomatch@4.0.2':
+ resolution: {integrity: sha512-qHHxQ+P9PysNEGbALT8f8YOSHW0KJu6l2xU8DYY0fu/EmGxXdVnuTLvFUvBgPJMSqXq29SYHveejeAha+4AYgA==}
+
+ '@types/qs@6.15.0':
+ resolution: {integrity: sha512-JawvT8iBVWpzTrz3EGw9BTQFg3BQNmwERdKE22vlTxawwtbyUSlMppvZYKLZzB5zgACXdXxbD3m1bXaMqP/9ow==}
+
+ '@types/resolve@1.20.2':
+ resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
+
+ '@types/svgo@2.6.4':
+ resolution: {integrity: sha512-l4cmyPEckf8moNYHdJ+4wkHvFxjyW6ulm9l4YGaOxeyBWPhBOT0gvni1InpFPdzx1dKf/2s62qGITwxNWnPQng==}
+
+ '@types/through@0.0.33':
+ resolution: {integrity: sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==}
+
+ '@types/triple-beam@1.3.5':
+ resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==}
+
+ '@types/unist@3.0.3':
+ resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
+
+ '@types/web-bluetooth@0.0.20':
+ resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==}
+
+ '@types/web-bluetooth@0.0.21':
+ resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==}
+
+ '@types/yauzl@2.10.3':
+ resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==}
+
+ '@typescript-eslint/eslint-plugin@8.56.1':
+ resolution: {integrity: sha512-Jz9ZztpB37dNC+HU2HI28Bs9QXpzCz+y/twHOwhyrIRdbuVDxSytJNDl6z/aAKlaRIwC7y8wJdkBv7FxYGgi0A==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ '@typescript-eslint/parser': ^8.56.1
+ eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
+ typescript: '>=4.8.4 <6.0.0'
+
+ '@typescript-eslint/parser@8.56.1':
+ resolution: {integrity: sha512-klQbnPAAiGYFyI02+znpBRLyjL4/BrBd0nyWkdC0s/6xFLkXYQ8OoRrSkqacS1ddVxf/LDyODIKbQ5TgKAf/Fg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
+ typescript: '>=4.8.4 <6.0.0'
+
+ '@typescript-eslint/project-service@8.56.1':
+ resolution: {integrity: sha512-TAdqQTzHNNvlVFfR+hu2PDJrURiwKsUvxFn1M0h95BB8ah5jejas08jUWG4dBA68jDMI988IvtfdAI53JzEHOQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <6.0.0'
+
+ '@typescript-eslint/rule-tester@8.56.1':
+ resolution: {integrity: sha512-EWuV5Vq1EFYJEOVcILyWPO35PjnT0c6tv99PCpD12PgfZae5/Jo+F17hGjsEs2Moe+Dy1J7KIr8y037cK8+/rQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
+
+ '@typescript-eslint/scope-manager@8.56.1':
+ resolution: {integrity: sha512-YAi4VDKcIZp0O4tz/haYKhmIDZFEUPOreKbfdAN3SzUDMcPhJ8QI99xQXqX+HoUVq8cs85eRKnD+rne2UAnj2w==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@typescript-eslint/tsconfig-utils@8.56.1':
+ resolution: {integrity: sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <6.0.0'
+
+ '@typescript-eslint/type-utils@8.56.1':
+ resolution: {integrity: sha512-yB/7dxi7MgTtGhZdaHCemf7PuwrHMenHjmzgUW1aJpO+bBU43OycnM3Wn+DdvDO/8zzA9HlhaJ0AUGuvri4oGg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
+ typescript: '>=4.8.4 <6.0.0'
+
+ '@typescript-eslint/types@8.56.1':
+ resolution: {integrity: sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@typescript-eslint/typescript-estree@8.56.1':
+ resolution: {integrity: sha512-qzUL1qgalIvKWAf9C1HpvBjif+Vm6rcT5wZd4VoMb9+Km3iS3Cv9DY6dMRMDtPnwRAFyAi7YXJpTIEXLvdfPxg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <6.0.0'
+
+ '@typescript-eslint/utils@8.56.1':
+ resolution: {integrity: sha512-HPAVNIME3tABJ61siYlHzSWCGtOoeP2RTIaHXFMPqjrQKCGB9OgUVdiNgH7TJS2JNIQ5qQ4RsAUDuGaGme/KOA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
+ typescript: '>=4.8.4 <6.0.0'
+
+ '@typescript-eslint/visitor-keys@8.56.1':
+ resolution: {integrity: sha512-KiROIzYdEV85YygXw6BI/Dx4fnBlFQu6Mq4QE4MOH9fFnhohw6wX/OAvDY2/C+ut0I3RSPKenvZJIVYqJNkhEw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@unhead/vue@2.0.14':
+ resolution: {integrity: sha512-Ym9f+Kd2Afqek2FtUHvYvK+j2uZ2vbZ6Rr9NCnNGGBMdmafAuiZpT117YGyh0ARcueL6Znia0U8ySqPsnHOZIg==}
+ peerDependencies:
+ vue: '>=3.5.18'
+
+ '@unocss/cli@66.6.6':
+ resolution: {integrity: sha512-78SY8j4hAVelK+vP/adsDGaSjEITasYLFECJLHWxUJSzK+G9UIc5wtL/u4jA+zKvwVkHcDvbkcO5K6wwwpAixg==}
+ engines: {node: '>=14'}
+ hasBin: true
+
+ '@unocss/config@66.6.6':
+ resolution: {integrity: sha512-menlnkqAFX/4wR2aandY8hSqrt01JE+rOzvtQxWaBt8kf1du62b0sS72FE5Z40n6HlEsEbF91N9FCfhnzG6i6g==}
+ engines: {node: '>=14'}
+
+ '@unocss/core@66.6.6':
+ resolution: {integrity: sha512-Sbbx0ZQqmV8K2lg8E+z9MJzWb1MgRtJnvqzxDIrNuBjXasKhbcFt5wEMBtEZJOr63Z4ck0xThhZK53HmYT2jmg==}
+
+ '@unocss/eslint-plugin@66.6.6':
+ resolution: {integrity: sha512-1z3nysB7mijxzhLWV7YC8q89a1meN6hun8bkcDOPcH65p2yc0x7Xnz3MzcauLlu2JNAJe4u3Ye7xE45SIPXXuA==}
+ engines: {node: '>=14'}
+
+ '@unocss/extractor-arbitrary-variants@66.6.6':
+ resolution: {integrity: sha512-uMzekF2miZRUwSZGvy3yYQiBAcSAs9LiXK8e3NjldxEw8xcRDWgTErxgStRoBeAD6UyzDcg/Cvwtf2guMbtR+g==}
+
+ '@unocss/inspector@66.6.6':
+ resolution: {integrity: sha512-CpXIsqHwxCXJtUjUz6S29diHCIA+EJ1u5WML/6m2YPI4ObgWAVKrExy09inSg2icS52lFkWWdWQSeqc9kl5W6Q==}
+
+ '@unocss/preset-attributify@66.6.6':
+ resolution: {integrity: sha512-3H12UI1rBt60PQy+S4IEeFYWu1/WQFuc2yhJ5mu/RCvX5/qwlIGanBpuh+xzTPXU1fWBlZN68yyO9uWOQgTqZQ==}
+
+ '@unocss/preset-icons@66.6.6':
+ resolution: {integrity: sha512-HfIEEqf3jyKexOB2Sux556n0NkPoUftb2H4+Cf7prJvKHopMkZ/OUkXjwvUlxt1e5UpAEaIa0A2Ir7+ApxXoGA==}
+
+ '@unocss/preset-legacy-compat@66.6.6':
+ resolution: {integrity: sha512-95/cCFtPOccyIL93QrmsNx50VEEFkl66q2pIKBJUtu/cs13J5nhnswYRKBUxlvJZgtD3uB5qK2pH5JGRMfZmQw==}
+
+ '@unocss/preset-mini@66.6.6':
+ resolution: {integrity: sha512-k+/95PKMPOK57cJcSmz34VkIFem8BlujRRx6/L0Yusw7vLJMh98k0rPhC5s+NomZ/d9ZPgbNylskLhItJlak3w==}
+
+ '@unocss/preset-tagify@66.6.6':
+ resolution: {integrity: sha512-KgBXYPYS0g4TVC3NLiIB78YIqUlvDLanz1EHIDo34rOTUfMgY8Uf5VuDJAzMu4Sc0LiwwBJbk6nIG9/Zm7ufWg==}
+
+ '@unocss/preset-typography@66.6.6':
+ resolution: {integrity: sha512-SM1km5nqt15z4sTabfOobSC633I5Ol5nnme6JFTra4wiyCUNs+Cg31nJ6jnopWDUT4SEAXqfUH7jKSSoCnI6ZA==}
+
+ '@unocss/preset-uno@66.6.6':
+ resolution: {integrity: sha512-40PcBDtlhW7QP7e/WOxC684IhN5T1dXvj1dgx9ZzK+8lEDGjcX7bN2noW4aSenzSrHymeSsMrL/0ltL4ED/5Zw==}
+
+ '@unocss/preset-web-fonts@66.6.6':
+ resolution: {integrity: sha512-5ikwgrJB8VPzKd0bqgGNgYUGix90KFnVtKJPjWTP5qsv3+ZtZnea1rRbAFl8i2t52hg35msNBsQo+40IC3xB6A==}
+
+ '@unocss/preset-wind3@66.6.6':
+ resolution: {integrity: sha512-rk6gPPIQ7z2DVucOqp7XZ4vGpKAuzBV1vtUDvDh5WscxzO/QlqaeTfTALk5YgGpmLaF4+ns6FrTgLjV+wHgHuQ==}
+
+ '@unocss/preset-wind4@66.6.6':
+ resolution: {integrity: sha512-caTDM9rZSlp4tyPWWAnwMvQr2PXq53LsEYwd3N8zj0ou2hcsqptJvF+mFvyhvGF66x26wWJr/FwuUEhh7qycaw==}
+
+ '@unocss/preset-wind@66.6.6':
+ resolution: {integrity: sha512-TMy3lZ35FP/4QqDHOLWZmV+RoOGWUDqnDEOTjOKI1CQARGta0ppUmq+IZMuI1ZJLuOa4OZ9V6SfnwMXwRLgXmw==}
+
+ '@unocss/reset@66.6.6':
+ resolution: {integrity: sha512-rBFviUfHC6h0mSW6TYa7O1HGoEF7IV9VS0Q0EpweeQqR4N3D72DazZLWMASwNsmqKHUSDa+6h1oBqF/yqHfGAQ==}
+
+ '@unocss/rule-utils@66.6.6':
+ resolution: {integrity: sha512-krWtQKGshOaqQMuxeGq1NOA8NL35VdpYlmQEWOe39BY6TACT51bgQFu40MRfsAIMZZtoGS2YYTrnHojgR92omw==}
+ engines: {node: '>=14'}
+
+ '@unocss/transformer-attributify-jsx@66.6.6':
+ resolution: {integrity: sha512-NnDchmN2EeFLy4lfVqDgNe9j1+w2RLL2L9zKECXs5g6rDVfeeEK6FNgxSq3XnPcKltjNCy1pF4MaDOROG7r8yA==}
+
+ '@unocss/transformer-compile-class@66.6.6':
+ resolution: {integrity: sha512-KKssJxU8fZ9x84yznIirbtta2sB0LN/3lm0bp+Wl1298HITaNiVeG2n26iStQ3N7r240xRN2RarxncSVCMFwWw==}
+
+ '@unocss/transformer-directives@66.6.6':
+ resolution: {integrity: sha512-CReFTcBfMtKkRvzIqxL20VptWt5C1Om27dwoKzyVFBXv0jzViWysbu0y0AQg3bsgD4cFqndFyAGyeL84j0nbKg==}
+
+ '@unocss/transformer-variant-group@66.6.6':
+ resolution: {integrity: sha512-j4L/0Tw6AdMVB2dDnuBlDbevyL1/0CAk88a77VF/VjgEIBwB9VXsCCUsxz+2Dohcl7N2GMm7+kpaWA6qt2PSaA==}
+
+ '@unocss/vite@66.6.6':
+ resolution: {integrity: sha512-DgG7KcUUMtoDhPOlFf2l4dR+66xZ23SdZvTYpikk5nZfLCzZd62vedutD7x0bTR6VpK2YRq39B+F+Z6TktNY/w==}
+ peerDependencies:
+ vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 || ^8.0.0-0
+
+ '@vee-validate/zod@4.15.1':
+ resolution: {integrity: sha512-329Z4TDBE5Vx0FdbA8S4eR9iGCFFUNGbxjpQ20ff5b5wGueScjocUIx9JHPa79LTG06RnlUR4XogQsjN4tecKA==}
+ peerDependencies:
+ zod: ^3.24.0
+
+ '@vercel/nft@0.29.4':
+ resolution: {integrity: sha512-6lLqMNX3TuycBPABycx7A9F1bHQR7kiQln6abjFbPrf5C/05qHM9M5E4PeTE59c7z8g6vHnx1Ioihb2AQl7BTA==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ '@vitejs/plugin-legacy@7.2.1':
+ resolution: {integrity: sha512-CaXb/y0mlfu7jQRELEJJc2/5w2bX2m1JraARgFnvSB2yfvnCNJVWWlqAo6WjnKoepOwKx8gs0ugJThPLKCOXIg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ peerDependencies:
+ terser: ^5.16.0
+ vite: ^7.0.0
+
+ '@vitejs/plugin-vue-jsx@5.1.4':
+ resolution: {integrity: sha512-70LmoVk9riR7qc4W2CpjsbNMWTPnuZb9dpFKX1emru0yP57nsc9k8nhLA6U93ngQapv5VDIUq2JatNfLbBIkrA==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ peerDependencies:
+ vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
+ vue: ^3.0.0
+
+ '@vitejs/plugin-vue@6.0.4':
+ resolution: {integrity: sha512-uM5iXipgYIn13UUQCZNdWkYk+sysBeA97d5mHsAoAt1u/wpN3+zxOmsVJWosuzX+IMGRzeYUNytztrYznboIkQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ peerDependencies:
+ vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
+ vue: ^3.2.25
+
+ '@vitest/eslint-plugin@1.6.9':
+ resolution: {integrity: sha512-9WfPx1OwJ19QLCSRLkqVO7//1WcWnK3fE/3fJhKMAmDe8+9G4rB47xCNIIeCq3FdEzkIoLTfDlwDlPBaUTMhow==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ eslint: '>=8.57.0'
+ typescript: '>=5.0.0'
+ vitest: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ vitest:
+ optional: true
+
+ '@volar/language-core@2.4.28':
+ resolution: {integrity: sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ==}
+
+ '@volar/source-map@2.4.28':
+ resolution: {integrity: sha512-yX2BDBqJkRXfKw8my8VarTyjv48QwxdJtvRgUpNE5erCsgEUdI2DsLbpa+rOQVAJYshY99szEcRDmyHbF10ggQ==}
+
+ '@volar/typescript@2.4.28':
+ resolution: {integrity: sha512-Ja6yvWrbis2QtN4ClAKreeUZPVYMARDYZl9LMEv1iQ1QdepB6wn0jTRxA9MftYmYa4DQ4k/DaSZpFPUfxl8giw==}
+
+ '@vue-macros/common@3.0.0-beta.16':
+ resolution: {integrity: sha512-8O2gWxWFiaoNkk7PGi0+p7NPGe/f8xJ3/INUufvje/RZOs7sJvlI1jnR4lydtRFa/mU0ylMXUXXjSK0fHDEYTA==}
+ engines: {node: '>=20.18.0'}
+ peerDependencies:
+ vue: ^2.7.0 || ^3.2.25
+ peerDependenciesMeta:
+ vue:
+ optional: true
+
+ '@vue-macros/common@3.1.2':
+ resolution: {integrity: sha512-h9t4ArDdniO9ekYHAD95t9AZcAbb19lEGK+26iAjUODOIJKmObDNBSe4+6ELQAA3vtYiFPPBtHh7+cQCKi3Dng==}
+ engines: {node: '>=20.19.0'}
+ peerDependencies:
+ vue: ^2.7.0 || ^3.2.25
+ peerDependenciesMeta:
+ vue:
+ optional: true
+
+ '@vue/babel-helper-vue-transform-on@1.5.0':
+ resolution: {integrity: sha512-0dAYkerNhhHutHZ34JtTl2czVQHUNWv6xEbkdF5W+Yrv5pCWsqjeORdOgbtW2I9gWlt+wBmVn+ttqN9ZxR5tzA==}
+
+ '@vue/babel-helper-vue-transform-on@2.0.1':
+ resolution: {integrity: sha512-uZ66EaFbnnZSYqYEyplWvn46GhZ1KuYSThdT68p+am7MgBNbQ3hphTL9L+xSIsWkdktwhPYLwPgVWqo96jDdRA==}
+
+ '@vue/babel-plugin-jsx@1.5.0':
+ resolution: {integrity: sha512-mneBhw1oOqCd2247O0Yw/mRwC9jIGACAJUlawkmMBiNmL4dGA2eMzuNZVNqOUfYTa6vqmND4CtOPzmEEEqLKFw==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+
+ '@vue/babel-plugin-jsx@2.0.1':
+ resolution: {integrity: sha512-a8CaLQjD/s4PVdhrLD/zT574ZNPnZBOY+IhdtKWRB4HRZ0I2tXBi5ne7d9eCfaYwp5gU5+4KIyFTV1W1YL9xZA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+
+ '@vue/babel-plugin-resolve-type@1.5.0':
+ resolution: {integrity: sha512-Wm/60o+53JwJODm4Knz47dxJnLDJ9FnKnGZJbUUf8nQRAtt6P+undLUAVU3Ha33LxOJe6IPoifRQ6F/0RrU31w==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@vue/babel-plugin-resolve-type@2.0.1':
+ resolution: {integrity: sha512-ybwgIuRGRRBhOU37GImDoWQoz+TlSqap65qVI6iwg/J7FfLTLmMf97TS7xQH9I7Qtr/gp161kYVdhr1ZMraSYQ==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@vue/compiler-core@3.5.26':
+ resolution: {integrity: sha512-vXyI5GMfuoBCnv5ucIT7jhHKl55Y477yxP6fc4eUswjP8FG3FFVFd41eNDArR+Uk3QKn2Z85NavjaxLxOC19/w==}
+
+ '@vue/compiler-core@3.5.29':
+ resolution: {integrity: sha512-cuzPhD8fwRHk8IGfmYaR4eEe4cAyJEL66Ove/WZL7yWNL134nqLddSLwNRIsFlnnW1kK+p8Ck3viFnC0chXCXw==}
+
+ '@vue/compiler-dom@3.5.26':
+ resolution: {integrity: sha512-y1Tcd3eXs834QjswshSilCBnKGeQjQXB6PqFn/1nxcQw4pmG42G8lwz+FZPAZAby6gZeHSt/8LMPfZ4Rb+Bd/A==}
+
+ '@vue/compiler-dom@3.5.29':
+ resolution: {integrity: sha512-n0G5o7R3uBVmVxjTIYcz7ovr8sy7QObFG8OQJ3xGCDNhbG60biP/P5KnyY8NLd81OuT1WJflG7N4KWYHaeeaIg==}
+
+ '@vue/compiler-sfc@3.5.26':
+ resolution: {integrity: sha512-egp69qDTSEZcf4bGOSsprUr4xI73wfrY5oRs6GSgXFTiHrWj4Y3X5Ydtip9QMqiCMCPVwLglB9GBxXtTadJ3mA==}
+
+ '@vue/compiler-sfc@3.5.29':
+ resolution: {integrity: sha512-oJZhN5XJs35Gzr50E82jg2cYdZQ78wEwvRO6Y63TvLVTc+6xICzJHP1UIecdSPPYIbkautNBanDiWYa64QSFIA==}
+
+ '@vue/compiler-ssr@3.5.26':
+ resolution: {integrity: sha512-lZT9/Y0nSIRUPVvapFJEVDbEXruZh2IYHMk2zTtEgJSlP5gVOqeWXH54xDKAaFS4rTnDeDBQUYDtxKyoW9FwDw==}
+
+ '@vue/compiler-ssr@3.5.29':
+ resolution: {integrity: sha512-Y/ARJZE6fpjzL5GH/phJmsFwx3g6t2KmHKHx5q+MLl2kencADKIrhH5MLF6HHpRMmlRAYBRSvv347Mepf1zVNw==}
+
+ '@vue/devtools-api@6.6.4':
+ resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==}
+
+ '@vue/devtools-api@7.7.6':
+ resolution: {integrity: sha512-b2Xx0KvXZObePpXPYHvBRRJLDQn5nhKjXh7vUhMEtWxz1AYNFOVIsh5+HLP8xDGL7sy+Q7hXeUxPHB/KgbtsPw==}
+
+ '@vue/devtools-api@7.7.7':
+ resolution: {integrity: sha512-lwOnNBH2e7x1fIIbVT7yF5D+YWhqELm55/4ZKf45R9T8r9dE2AIOy8HKjfqzGsoTHFbWbr337O4E0A0QADnjBg==}
+
+ '@vue/devtools-api@8.0.7':
+ resolution: {integrity: sha512-tc1TXAxclsn55JblLkFVcIRG7MeSJC4fWsPjfM7qu/IcmPUYnQ5Q8vzWwBpyDY24ZjmZTUCCwjRSNbx58IhlAA==}
+
+ '@vue/devtools-core@7.7.7':
+ resolution: {integrity: sha512-9z9TLbfC+AjAi1PQyWX+OErjIaJmdFlbDHcD+cAMYKY6Bh5VlsAtCeGyRMrXwIlMEQPukvnWt3gZBLwTAIMKzQ==}
+ peerDependencies:
+ vue: ^3.0.0
+
+ '@vue/devtools-core@8.0.7':
+ resolution: {integrity: sha512-PmpiPxvg3Of80ODHVvyckxwEW1Z02VIAvARIZS1xegINn3VuNQLm9iHUmKD+o6cLkMNWV8OG8x7zo0kgydZgdg==}
+ peerDependencies:
+ vue: ^3.0.0
+
+ '@vue/devtools-kit@7.7.6':
+ resolution: {integrity: sha512-geu7ds7tem2Y7Wz+WgbnbZ6T5eadOvozHZ23Atk/8tksHMFOFylKi1xgGlQlVn0wlkEf4hu+vd5ctj1G4kFtwA==}
+
+ '@vue/devtools-kit@7.7.7':
+ resolution: {integrity: sha512-wgoZtxcTta65cnZ1Q6MbAfePVFxfM+gq0saaeytoph7nEa7yMXoi6sCPy4ufO111B9msnw0VOWjPEFCXuAKRHA==}
+
+ '@vue/devtools-kit@8.0.7':
+ resolution: {integrity: sha512-H6esJGHGl5q0E9iV3m2EoBQHJ+V83WMW83A0/+Fn95eZ2iIvdsq4+UCS6yT/Fdd4cGZSchx/MdWDreM3WqMsDw==}
+
+ '@vue/devtools-shared@7.7.6':
+ resolution: {integrity: sha512-yFEgJZ/WblEsojQQceuyK6FzpFDx4kqrz2ohInxNj5/DnhoX023upTv4OD6lNPLAA5LLkbwPVb10o/7b+Y4FVA==}
+
+ '@vue/devtools-shared@7.7.7':
+ resolution: {integrity: sha512-+udSj47aRl5aKb0memBvcUG9koarqnxNM5yjuREvqwK6T3ap4mn3Zqqc17QrBFTqSMjr3HK1cvStEZpMDpfdyw==}
+
+ '@vue/devtools-shared@8.0.7':
+ resolution: {integrity: sha512-CgAb9oJH5NUmbQRdYDj/1zMiaICYSLtm+B1kxcP72LBrifGAjUmt8bx52dDH1gWRPlQgxGPqpAMKavzVirAEhA==}
+
+ '@vue/language-core@3.2.5':
+ resolution: {integrity: sha512-d3OIxN/+KRedeM5wQ6H6NIpwS3P5gC9nmyaHgBk+rO6dIsjY+tOh4UlPpiZbAh3YtLdCGEX4M16RmsBqPmJV+g==}
+
+ '@vue/reactivity@3.5.29':
+ resolution: {integrity: sha512-zcrANcrRdcLtmGZETBxWqIkoQei8HaFpZWx/GHKxx79JZsiZ8j1du0VUJtu4eJjgFvU/iKL5lRXFXksVmI+5DA==}
+
+ '@vue/runtime-core@3.5.29':
+ resolution: {integrity: sha512-8DpW2QfdwIWOLqtsNcds4s+QgwSaHSJY/SUe04LptianUQ/0xi6KVsu/pYVh+HO3NTVvVJjIPL2t6GdeKbS4Lg==}
+
+ '@vue/runtime-dom@3.5.29':
+ resolution: {integrity: sha512-AHvvJEtcY9tw/uk+s/YRLSlxxQnqnAkjqvK25ZiM4CllCZWzElRAoQnCM42m9AHRLNJ6oe2kC5DCgD4AUdlvXg==}
+
+ '@vue/server-renderer@3.5.29':
+ resolution: {integrity: sha512-G/1k6WK5MusLlbxSE2YTcqAAezS+VuwHhOvLx2KnQU7G2zCH6KIb+5Wyt6UjMq7a3qPzNEjJXs1hvAxDclQH+g==}
+ peerDependencies:
+ vue: 3.5.29
+
+ '@vue/shared@3.5.26':
+ resolution: {integrity: sha512-7Z6/y3uFI5PRoKeorTOSXKcDj0MSasfNNltcslbFrPpcw6aXRUALq4IfJlaTRspiWIUOEZbrpM+iQGmCOiWe4A==}
+
+ '@vue/shared@3.5.29':
+ resolution: {integrity: sha512-w7SR0A5zyRByL9XUkCfdLs7t9XOHUyJ67qPGQjOou3p6GvBeBW+AVjUUmlxtZ4PIYaRvE+1LmK44O4uajlZwcg==}
+
+ '@vue/tsconfig@0.9.0':
+ resolution: {integrity: sha512-RP+v9Cpbsk1ZVXltCHHkYBr7+624x6gcijJXVjIcsYk7JXqvIpRtMwU2ARLvWDhmy9ffdFYxhsfJnPztADBohQ==}
+ peerDependencies:
+ typescript: 5.x
+ vue: ^3.4.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ vue:
+ optional: true
+
+ '@vueuse/components@14.2.1':
+ resolution: {integrity: sha512-wB0SvwJ22mNm1hWCMI1wTWz4x55nDTugT5RIg/KCwlWc1vITWL6ry5VTU3SQzsMD2XcazJK8Be1siIsrBb/Vcw==}
+ peerDependencies:
+ vue: ^3.5.0
+
+ '@vueuse/core@10.11.1':
+ resolution: {integrity: sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww==}
+
+ '@vueuse/core@14.2.1':
+ resolution: {integrity: sha512-3vwDzV+GDUNpdegRY6kzpLm4Igptq+GA0QkJ3W61Iv27YWwW/ufSlOfgQIpN6FZRMG0mkaz4gglJRtq5SeJyIQ==}
+ peerDependencies:
+ vue: ^3.5.0
+
+ '@vueuse/integrations@14.2.1':
+ resolution: {integrity: sha512-2LIUpBi/67PoXJGqSDQUF0pgQWpNHh7beiA+KG2AbybcNm+pTGWT6oPGlBgUoDWmYwfeQqM/uzOHqcILpKL7nA==}
+ peerDependencies:
+ async-validator: ^4
+ axios: ^1
+ change-case: ^5
+ drauu: ^0.4
+ focus-trap: ^7 || ^8
+ fuse.js: ^7
+ idb-keyval: ^6
+ jwt-decode: ^4
+ nprogress: ^0.2
+ qrcode: ^1.5
+ sortablejs: ^1
+ universal-cookie: ^7 || ^8
+ vue: ^3.5.0
+ 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
+
+ '@vueuse/metadata@10.11.1':
+ resolution: {integrity: sha512-IGa5FXd003Ug1qAZmyE8wF3sJ81xGLSqTqtQ6jaVfkeZ4i5kS2mwQF61yhVqojRnenVew5PldLyRgvdl4YYuSw==}
+
+ '@vueuse/metadata@14.2.1':
+ resolution: {integrity: sha512-1ButlVtj5Sb/HDtIy1HFr1VqCP4G6Ypqt5MAo0lCgjokrk2mvQKsK2uuy0vqu/Ks+sHfuHo0B9Y9jn9xKdjZsw==}
+
+ '@vueuse/shared@10.11.1':
+ resolution: {integrity: sha512-LHpC8711VFZlDaYUXEBbFBCQ7GS3dVU9mjOhhMhXP6txTV4EhYQg/KGnQuvt/sPAtoUKq7VVUnL6mVtFoL42sA==}
+
+ '@vueuse/shared@14.2.1':
+ resolution: {integrity: sha512-shTJncjV9JTI4oVNyF1FQonetYAiTBd+Qj7cY89SWbXSkx7gyhrgtEdF2ZAVWS1S3SHlaROO6F2IesJxQEkZBw==}
+ peerDependencies:
+ vue: ^3.5.0
+
+ '@whatwg-node/disposablestack@0.0.6':
+ resolution: {integrity: sha512-LOtTn+JgJvX8WfBVJtF08TGrdjuFzGJc4mkP8EdDI8ADbvO7kiexYep1o8dwnt0okb0jYclCDXF13xU7Ge4zSw==}
+ engines: {node: '>=18.0.0'}
+
+ '@whatwg-node/fetch@0.10.10':
+ resolution: {integrity: sha512-watz4i/Vv4HpoJ+GranJ7HH75Pf+OkPQ63NoVmru6Srgc8VezTArB00i/oQlnn0KWh14gM42F22Qcc9SU9mo/w==}
+ engines: {node: '>=18.0.0'}
+
+ '@whatwg-node/node-fetch@0.7.25':
+ resolution: {integrity: sha512-szCTESNJV+Xd56zU6ShOi/JWROxE9IwCic8o5D9z5QECZloas6Ez5tUuKqXTAdu6fHFx1t6C+5gwj8smzOLjtg==}
+ engines: {node: '>=18.0.0'}
+
+ '@whatwg-node/promise-helpers@1.3.2':
+ resolution: {integrity: sha512-Nst5JdK47VIl9UcGwtv2Rcgyn5lWtZ0/mhRQ4G8NN2isxpq2TO30iqHzmwoJycjWuyUfg3GFXqP/gFHXeV57IA==}
+ engines: {node: '>=16.0.0'}
+
+ '@whatwg-node/server@0.9.71':
+ resolution: {integrity: sha512-ueFCcIPaMgtuYDS9u0qlUoEvj6GiSsKrwnOLPp9SshqjtcRaR1IEHRjoReq3sXNydsF5i0ZnmuYgXq9dV53t0g==}
+ engines: {node: '>=18.0.0'}
+
+ abbrev@3.0.1:
+ resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==}
+ engines: {node: ^18.17.0 || >=20.5.0}
+
+ abort-controller@3.0.0:
+ resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
+ engines: {node: '>=6.5'}
+
+ acorn-import-attributes@1.9.5:
+ resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==}
+ peerDependencies:
+ acorn: ^8
+
+ acorn-jsx@5.3.2:
+ resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
+ peerDependencies:
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+
+ acorn@8.15.0:
+ resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+
+ acorn@8.16.0:
+ resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+
+ agent-base@7.1.4:
+ resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==}
+ engines: {node: '>= 14'}
+
+ ajv@6.14.0:
+ resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==}
+
+ ajv@8.17.1:
+ resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==}
+
+ alien-signals@2.0.8:
+ resolution: {integrity: sha512-844G1VLkk0Pe2SJjY0J8vp8ADI73IM4KliNu2OGlYzWpO28NexEUvjHTcFjFX3VXoiUtwTbHxLNI9ImkcoBqzA==}
+
+ alien-signals@3.0.0:
+ resolution: {integrity: sha512-JHoRJf18Y6HN4/KZALr3iU+0vW9LKG+8FMThQlbn4+gv8utsLIkwpomjElGPccGeNwh0FI2HN6BLnyFLo6OyLQ==}
+
+ ansi-align@3.0.1:
+ resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==}
+
+ ansi-escapes@4.3.2:
+ resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
+ engines: {node: '>=8'}
+
+ ansi-escapes@7.0.0:
+ resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==}
+ engines: {node: '>=18'}
+
+ ansi-regex@2.1.1:
+ resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==}
+ engines: {node: '>=0.10.0'}
+
+ ansi-regex@5.0.1:
+ resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
+ engines: {node: '>=8'}
+
+ ansi-regex@6.1.0:
+ resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==}
+ engines: {node: '>=12'}
+
+ ansi-regex@6.2.2:
+ resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==}
+ engines: {node: '>=12'}
+
+ ansi-styles@2.2.1:
+ resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==}
+ engines: {node: '>=0.10.0'}
+
+ ansi-styles@4.3.0:
+ resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
+ engines: {node: '>=8'}
+
+ ansi-styles@6.2.1:
+ resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
+ engines: {node: '>=12'}
+
+ ansis@4.2.0:
+ resolution: {integrity: sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==}
+ engines: {node: '>=14'}
+
+ anymatch@3.1.3:
+ resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
+ engines: {node: '>= 8'}
+
+ archiver-utils@5.0.2:
+ resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==}
+ engines: {node: '>= 14'}
+
+ archiver@7.0.1:
+ resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==}
+ engines: {node: '>= 14'}
+
+ are-docs-informative@0.0.2:
+ resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==}
+ engines: {node: '>=14'}
+
+ argparse@2.0.1:
+ resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
+
+ args-tokenizer@0.3.0:
+ resolution: {integrity: sha512-xXAd7G2Mll5W8uo37GETpQ2VrE84M181Z7ugHFGQnJZ50M2mbOv0osSZ9VsSgPfJQ+LVG0prSi0th+ELMsno7Q==}
+
+ aria-hidden@1.2.6:
+ resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==}
+ engines: {node: '>=10'}
+
+ arr-diff@4.0.0:
+ resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==}
+ engines: {node: '>=0.10.0'}
+
+ arr-flatten@1.1.0:
+ resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==}
+ engines: {node: '>=0.10.0'}
+
+ arr-union@3.1.0:
+ resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==}
+ engines: {node: '>=0.10.0'}
+
+ array-buffer-byte-length@1.0.2:
+ resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==}
+ engines: {node: '>= 0.4'}
+
+ array-each@1.0.1:
+ resolution: {integrity: sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==}
+ engines: {node: '>=0.10.0'}
+
+ array-slice@1.1.0:
+ resolution: {integrity: sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==}
+ engines: {node: '>=0.10.0'}
+
+ array-unique@0.3.2:
+ resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==}
+ engines: {node: '>=0.10.0'}
+
+ arraybuffer.prototype.slice@1.0.4:
+ resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==}
+ engines: {node: '>= 0.4'}
+
+ assign-symbols@1.0.0:
+ resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==}
+ engines: {node: '>=0.10.0'}
+
+ ast-kit@2.1.2:
+ resolution: {integrity: sha512-cl76xfBQM6pztbrFWRnxbrDm9EOqDr1BF6+qQnnDZG2Co2LjyUktkN9GTJfBAfdae+DbT2nJf2nCGAdDDN7W2g==}
+ engines: {node: '>=20.18.0'}
+
+ ast-kit@2.2.0:
+ resolution: {integrity: sha512-m1Q/RaVOnTp9JxPX+F+Zn7IcLYMzM8kZofDImfsKZd8MbR+ikdOzTeztStWqfrqIxZnYWryyI9ePm3NGjnZgGw==}
+ engines: {node: '>=20.19.0'}
+
+ ast-module-types@6.0.1:
+ resolution: {integrity: sha512-WHw67kLXYbZuHTmcdbIrVArCq5wxo6NEuj3hiYAWr8mwJeC+C2mMCIBIWCiDoCye/OF/xelc+teJ1ERoWmnEIA==}
+ engines: {node: '>=18'}
+
+ ast-walker-scope@0.8.3:
+ resolution: {integrity: sha512-cbdCP0PGOBq0ASG+sjnKIoYkWMKhhz+F/h9pRexUdX2Hd38+WOlBkRKlqkGOSm0YQpcFMQBJeK4WspUAkwsEdg==}
+ engines: {node: '>=20.19.0'}
+
+ astral-regex@2.0.0:
+ resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==}
+ engines: {node: '>=8'}
+
+ async-function@1.0.0:
+ resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==}
+ engines: {node: '>= 0.4'}
+
+ async-sema@3.1.1:
+ resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==}
+
+ async-validator@4.2.5:
+ resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==}
+
+ async@3.2.6:
+ resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==}
+
+ asynckit@0.4.0:
+ resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
+
+ atob@2.1.2:
+ resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==}
+ engines: {node: '>= 4.5.0'}
+ hasBin: true
+
+ autoprefixer@10.4.27:
+ resolution: {integrity: sha512-NP9APE+tO+LuJGn7/9+cohklunJsXWiaWEfV3si4Gi/XHDwVNgkwr1J3RQYFIvPy76GmJ9/bW8vyoU1LcxwKHA==}
+ engines: {node: ^10 || ^12 || >=14}
+ hasBin: true
+ peerDependencies:
+ postcss: ^8.1.0
+
+ available-typed-arrays@1.0.7:
+ resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
+ engines: {node: '>= 0.4'}
+
+ axios@1.13.6:
+ resolution: {integrity: sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ==}
+
+ b4a@1.6.7:
+ resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==}
+
+ babel-plugin-polyfill-corejs2@0.4.14:
+ resolution: {integrity: sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==}
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+
+ babel-plugin-polyfill-corejs3@0.13.0:
+ resolution: {integrity: sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==}
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+
+ babel-plugin-polyfill-regenerator@0.6.5:
+ resolution: {integrity: sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==}
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+
+ balanced-match@1.0.2:
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+
+ balanced-match@4.0.4:
+ resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==}
+ engines: {node: 18 || 20 || >=22}
+
+ bare-events@2.5.4:
+ resolution: {integrity: sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==}
+
+ base64-js@1.5.1:
+ resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
+
+ base@0.11.2:
+ resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==}
+ engines: {node: '>=0.10.0'}
+
+ baseline-browser-mapping@2.8.25:
+ resolution: {integrity: sha512-2NovHVesVF5TXefsGX1yzx1xgr7+m9JQenvz6FQY3qd+YXkKkYiv+vTCc7OriP9mcDZpTC5mAOYN4ocd29+erA==}
+ hasBin: true
+
+ baseline-browser-mapping@2.9.11:
+ resolution: {integrity: sha512-Sg0xJUNDU1sJNGdfGWhVHX0kkZ+HWcvmVymJbj6NSgZZmW/8S9Y2HQ5euytnIgakgxN6papOAWiwDo1ctFDcoQ==}
+ hasBin: true
+
+ basic-auth@2.0.1:
+ resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==}
+ engines: {node: '>= 0.8'}
+
+ big.js@5.2.2:
+ resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
+
+ bindings@1.5.0:
+ resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
+
+ birpc@2.3.0:
+ resolution: {integrity: sha512-ijbtkn/F3Pvzb6jHypHRyve2QApOCZDR25D/VnkY2G/lBNcXCTsnsCxgY4k4PkVB7zfwzYbY3O9Lcqe3xufS5g==}
+
+ birpc@2.6.1:
+ resolution: {integrity: sha512-LPnFhlDpdSH6FJhJyn4M0kFO7vtQ5iPw24FnG0y21q09xC7e8+1LeR31S1MAIrDAHp4m7aas4bEkTDTvMAtebQ==}
+
+ bl@4.1.0:
+ resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
+
+ bluebird@3.7.2:
+ resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==}
+
+ boolbase@1.0.0:
+ resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
+
+ boxen@8.0.1:
+ resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==}
+ engines: {node: '>=18'}
+
+ brace-expansion@1.1.11:
+ resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
+
+ brace-expansion@2.0.1:
+ resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
+
+ brace-expansion@5.0.4:
+ resolution: {integrity: sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==}
+ engines: {node: 18 || 20 || >=22}
+
+ braces@2.3.2:
+ resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==}
+ engines: {node: '>=0.10.0'}
+
+ braces@3.0.3:
+ resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
+ engines: {node: '>=8'}
+
+ browserslist-to-esbuild@2.1.1:
+ resolution: {integrity: sha512-KN+mty6C3e9AN8Z5dI1xeN15ExcRNeISoC3g7V0Kax/MMF9MSoYA2G7lkTTcVUFntiEjkpI0HNgqJC1NjdyNUw==}
+ engines: {node: '>=18'}
+ hasBin: true
+ peerDependencies:
+ browserslist: '*'
+
+ browserslist@4.25.1:
+ resolution: {integrity: sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+
+ browserslist@4.27.0:
+ resolution: {integrity: sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+
+ browserslist@4.28.1:
+ resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+
+ buffer-crc32@0.2.13:
+ resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==}
+
+ buffer-crc32@1.0.0:
+ resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==}
+ engines: {node: '>=8.0.0'}
+
+ buffer-from@1.1.2:
+ resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
+
+ buffer@5.7.1:
+ resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
+
+ buffer@6.0.3:
+ resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
+
+ builtin-modules@3.3.0:
+ resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
+ engines: {node: '>=6'}
+
+ builtin-modules@5.0.0:
+ resolution: {integrity: sha512-bkXY9WsVpY7CvMhKSR6pZilZu9Ln5WDrKVBUXf2S443etkmEO4V58heTecXcUIsNsi4Rx8JUO4NfX1IcQl4deg==}
+ engines: {node: '>=18.20'}
+
+ bumpp@10.4.1:
+ resolution: {integrity: sha512-X/bwWs5Gbb/D7rN4aHLB7zdjiA6nGdjckM1sTHhI9oovIbEw2L5pw5S4xzk8ZTeOZ8EnwU/Ze4SoZ6/Vr3pM2Q==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ bundle-import@0.0.2:
+ resolution: {integrity: sha512-XB3T6xlgqJHThyr2luo3pNAVhfN/Y2qFEsblrzUO5QZLpJtesget8jmGDImSairScy80ZKBDVcRdFzTzWv3v8A==}
+
+ bundle-name@4.1.0:
+ resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==}
+ engines: {node: '>=18'}
+
+ c12@3.3.3:
+ resolution: {integrity: sha512-750hTRvgBy5kcMNPdh95Qo+XUBeGo8C7nsKSmedDmaQI+E0r82DwHeM6vBewDe4rGFbnxoa4V9pw+sPh5+Iz8Q==}
+ peerDependencies:
+ magicast: '*'
+ peerDependenciesMeta:
+ magicast:
+ optional: true
+
+ cac@6.7.14:
+ resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
+ engines: {node: '>=8'}
+
+ cac@7.0.0:
+ resolution: {integrity: sha512-tixWYgm5ZoOD+3g6UTea91eow5z6AAHaho3g0V9CNSNb45gM8SmflpAc+GRd1InC4AqN/07Unrgp56Y94N9hJQ==}
+ engines: {node: '>=20.19.0'}
+
+ cache-base@1.0.1:
+ resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==}
+ engines: {node: '>=0.10.0'}
+
+ cacheable@2.3.3:
+ resolution: {integrity: sha512-iffYMX4zxKp54evOH27fm92hs+DeC1DhXmNVN8Tr94M/iZIV42dqTHSR2Ik4TOSPyOAwKr7Yu3rN9ALoLkbWyQ==}
+
+ call-bind-apply-helpers@1.0.2:
+ resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
+ engines: {node: '>= 0.4'}
+
+ call-bind@1.0.8:
+ resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==}
+ engines: {node: '>= 0.4'}
+
+ call-bound@1.0.4:
+ resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==}
+ engines: {node: '>= 0.4'}
+
+ callsite@1.0.0:
+ resolution: {integrity: sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ==}
+
+ callsites@3.1.0:
+ resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
+ engines: {node: '>=6'}
+
+ camelcase@8.0.0:
+ resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==}
+ engines: {node: '>=16'}
+
+ caniuse-api@3.0.0:
+ resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
+
+ caniuse-lite@1.0.30001727:
+ resolution: {integrity: sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==}
+
+ caniuse-lite@1.0.30001754:
+ resolution: {integrity: sha512-x6OeBXueoAceOmotzx3PO4Zpt4rzpeIFsSr6AAePTZxSkXiYDUmpypEl7e2+8NCd9bD7bXjqyef8CJYPC1jfxg==}
+
+ caniuse-lite@1.0.30001775:
+ resolution: {integrity: sha512-s3Qv7Lht9zbVKE9XoTyRG6wVDCKdtOFIjBGg3+Yhn6JaytuNKPIjBMTMIY1AnOH3seL5mvF+x33oGAyK3hVt3A==}
+
+ ccount@2.0.1:
+ resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
+
+ chalk@1.1.3:
+ resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==}
+ engines: {node: '>=0.10.0'}
+
+ chalk@4.1.2:
+ resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
+ engines: {node: '>=10'}
+
+ chalk@5.4.1:
+ resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
+ change-case@5.4.4:
+ resolution: {integrity: sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==}
+
+ character-entities@2.0.2:
+ resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
+
+ chardet@2.1.0:
+ resolution: {integrity: sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==}
+
+ chokidar@4.0.3:
+ resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==}
+ engines: {node: '>= 14.16.0'}
+
+ chokidar@5.0.0:
+ resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==}
+ engines: {node: '>= 20.19.0'}
+
+ chownr@3.0.0:
+ resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==}
+ engines: {node: '>=18'}
+
+ ci-info@4.3.1:
+ resolution: {integrity: sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==}
+ engines: {node: '>=8'}
+
+ citty@0.1.6:
+ resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==}
+
+ class-utils@0.3.6:
+ resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==}
+ engines: {node: '>=0.10.0'}
+
+ class-variance-authority@0.7.1:
+ resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==}
+
+ clean-regexp@1.0.0:
+ resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==}
+ engines: {node: '>=4'}
+
+ cli-boxes@3.0.0:
+ resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==}
+ engines: {node: '>=10'}
+
+ cli-cursor@3.1.0:
+ resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==}
+ engines: {node: '>=8'}
+
+ cli-cursor@5.0.0:
+ resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==}
+ engines: {node: '>=18'}
+
+ cli-spinners@2.9.2:
+ resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==}
+ engines: {node: '>=6'}
+
+ cli-truncate@5.1.0:
+ resolution: {integrity: sha512-7JDGG+4Zp0CsknDCedl0DYdaeOhc46QNpXi3NLQblkZpXXgA6LncLDUUyvrjSvZeF3VRQa+KiMGomazQrC1V8g==}
+ engines: {node: '>=20'}
+
+ cli-width@4.1.0:
+ resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==}
+ engines: {node: '>= 12'}
+
+ clipboardy@4.0.0:
+ resolution: {integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==}
+ engines: {node: '>=18'}
+
+ cliui@8.0.1:
+ resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
+ engines: {node: '>=12'}
+
+ clone@1.0.4:
+ resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
+ engines: {node: '>=0.8'}
+
+ clone@2.1.2:
+ resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==}
+ engines: {node: '>=0.8'}
+
+ clsx@2.1.1:
+ resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
+ engines: {node: '>=6'}
+
+ cluster-key-slot@1.1.2:
+ resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==}
+ engines: {node: '>=0.10.0'}
+
+ collection-visit@1.0.0:
+ resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==}
+ engines: {node: '>=0.10.0'}
+
+ color-convert@1.9.3:
+ resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
+
+ color-convert@2.0.1:
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+ engines: {node: '>=7.0.0'}
+
+ color-name@1.1.3:
+ resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
+
+ color-name@1.1.4:
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+
+ color-string@1.9.1:
+ resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
+
+ color@3.2.1:
+ resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==}
+
+ colord@2.9.3:
+ resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==}
+
+ colorette@2.0.20:
+ resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
+
+ colorjs.io@0.5.2:
+ resolution: {integrity: sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw==}
+
+ colorspace@1.1.4:
+ resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==}
+
+ combined-stream@1.0.8:
+ resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
+ engines: {node: '>= 0.8'}
+
+ commander@10.0.1:
+ resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
+ engines: {node: '>=14'}
+
+ commander@11.1.0:
+ resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==}
+ engines: {node: '>=16'}
+
+ commander@12.1.0:
+ resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==}
+ engines: {node: '>=18'}
+
+ commander@14.0.3:
+ resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==}
+ engines: {node: '>=20'}
+
+ commander@2.20.3:
+ resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
+
+ commander@7.2.0:
+ resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
+ engines: {node: '>= 10'}
+
+ comment-parser@1.4.5:
+ resolution: {integrity: sha512-aRDkn3uyIlCFfk5NUA+VdwMmMsh8JGhc4hapfV4yxymHGQ3BVskMQfoXGpCo5IoBuQ9tS5iiVKhCpTcB4pW4qw==}
+ engines: {node: '>= 12.0.0'}
+
+ common-path-prefix@3.0.0:
+ resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==}
+
+ commondir@1.0.1:
+ resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
+
+ compatx@0.2.0:
+ resolution: {integrity: sha512-6gLRNt4ygsi5NyMVhceOCFv14CIdDFN7fQjX1U4+47qVE/+kjPoXMK65KWK+dWxmFzMTuKazoQ9sch6pM0p5oA==}
+
+ component-emitter@1.3.1:
+ resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==}
+
+ compress-commons@6.0.2:
+ resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==}
+ engines: {node: '>= 14'}
+
+ concat-map@0.0.1:
+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+
+ confbox@0.1.8:
+ resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==}
+
+ confbox@0.2.2:
+ resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==}
+
+ consola@3.4.2:
+ resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==}
+ engines: {node: ^14.18.0 || >=16.10.0}
+
+ convert-source-map@2.0.0:
+ resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
+
+ cookie-es@1.2.2:
+ resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==}
+
+ cookie-es@2.0.0:
+ resolution: {integrity: sha512-RAj4E421UYRgqokKUmotqAwuplYw15qtdXfY+hGzgCJ/MBjCVZcSoHK/kH9kocfjRjcDME7IiDWR/1WX1TM2Pg==}
+
+ cookie@1.0.2:
+ resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==}
+ engines: {node: '>=18'}
+
+ copy-anything@3.0.5:
+ resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==}
+ engines: {node: '>=12.13'}
+
+ copy-descriptor@0.1.1:
+ resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==}
+ engines: {node: '>=0.10.0'}
+
+ copy-file@11.1.0:
+ resolution: {integrity: sha512-X8XDzyvYaA6msMyAM575CUoygY5b44QzLcGRKsK3MFmXcOvQa518dNPLsKYwkYsn72g3EiW+LE0ytd/FlqWmyw==}
+ engines: {node: '>=18'}
+
+ copy-text-to-clipboard@3.2.0:
+ resolution: {integrity: sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==}
+ engines: {node: '>=12'}
+
+ core-js-compat@3.44.0:
+ resolution: {integrity: sha512-JepmAj2zfl6ogy34qfWtcE7nHKAJnKsQFRn++scjVS2bZFllwptzw61BZcZFYBPpUznLfAvh0LGhxKppk04ClA==}
+
+ core-js-compat@3.46.0:
+ resolution: {integrity: sha512-p9hObIIEENxSV8xIu+V68JjSeARg6UVMG5mR+JEUguG3sI6MsiS1njz2jHmyJDvA+8jX/sytkBHup6kxhM9law==}
+
+ core-js@3.42.0:
+ resolution: {integrity: sha512-Sz4PP4ZA+Rq4II21qkNqOEDTDrCvcANId3xpIgB34NDkWc3UduWj2dqEtN9yZIq8Dk3HyPI33x9sqqU5C8sr0g==}
+
+ core-js@3.45.0:
+ resolution: {integrity: sha512-c2KZL9lP4DjkN3hk/an4pWn5b5ZefhRJnAc42n6LJ19kSnbeRbdQZE5dSeE2LBol1OwJD3X1BQvFTAsa8ReeDA==}
+
+ core-util-is@1.0.3:
+ resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
+
+ cors@2.8.5:
+ resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==}
+ engines: {node: '>= 0.10'}
+
+ corser@2.0.1:
+ resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==}
+ engines: {node: '>= 0.4.0'}
+
+ cosmiconfig@9.0.0:
+ resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ typescript: '>=4.9.5'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ crc-32@1.2.2:
+ resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==}
+ engines: {node: '>=0.8'}
+ hasBin: true
+
+ crc32-stream@6.0.0:
+ resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==}
+ engines: {node: '>= 14'}
+
+ cron-parser@4.9.0:
+ resolution: {integrity: sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==}
+ engines: {node: '>=12.0.0'}
+
+ croner@9.1.0:
+ resolution: {integrity: sha512-p9nwwR4qyT5W996vBZhdvBCnMhicY5ytZkR4D1Xj0wuTDEiMnjwR57Q3RXYY/s0EpX6Ay3vgIcfaR+ewGHsi+g==}
+ engines: {node: '>=18.0'}
+
+ cross-spawn@7.0.6:
+ resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
+ engines: {node: '>= 8'}
+
+ crossws@0.3.5:
+ resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==}
+
+ css-declaration-sorter@7.2.0:
+ resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==}
+ engines: {node: ^14 || ^16 || >=18}
+ peerDependencies:
+ postcss: ^8.0.9
+
+ css-functions-list@3.3.3:
+ resolution: {integrity: sha512-8HFEBPKhOpJPEPu70wJJetjKta86Gw9+CCyCnB3sui2qQfOvRyqBy4IKLKKAwdMpWb2lHXWk9Wb4Z6AmaUT1Pg==}
+ engines: {node: '>=12'}
+
+ css-select@4.3.0:
+ resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==}
+
+ css-select@5.1.0:
+ resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
+
+ css-tree@1.1.3:
+ resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==}
+ engines: {node: '>=8.0.0'}
+
+ 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'}
+
+ css-tree@3.1.0:
+ resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==}
+ engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
+
+ css-what@6.1.0:
+ resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
+ engines: {node: '>= 6'}
+
+ cssesc@3.0.0:
+ resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ cssnano-preset-default@7.0.9:
+ resolution: {integrity: sha512-tCD6AAFgYBOVpMBX41KjbvRh9c2uUjLXRyV7KHSIrwHiq5Z9o0TFfUCoM3TwVrRsRteN3sVXGNvjVNxYzkpTsA==}
+ engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+ peerDependencies:
+ postcss: ^8.4.32
+
+ cssnano-utils@5.0.1:
+ resolution: {integrity: sha512-ZIP71eQgG9JwjVZsTPSqhc6GHgEr53uJ7tK5///VfyWj6Xp2DBmixWHqJgPno+PqATzn48pL42ww9x5SSGmhZg==}
+ engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+ peerDependencies:
+ postcss: ^8.4.32
+
+ cssnano@7.1.1:
+ resolution: {integrity: sha512-fm4D8ti0dQmFPeF8DXSAA//btEmqCOgAc/9Oa3C1LW94h5usNrJEfrON7b4FkPZgnDEn6OUs5NdxiJZmAtGOpQ==}
+ engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+ peerDependencies:
+ postcss: ^8.4.32
+
+ csso@4.2.0:
+ resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==}
+ engines: {node: '>=8.0.0'}
+
+ 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'}
+
+ csstype@3.2.3:
+ resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==}
+
+ cz-git@1.12.0:
+ resolution: {integrity: sha512-LaZ+8whPPUOo6Y0Zy4nIbf6JOleV3ejp41sT6N4RPKiKKA+ICWf4ueeIlxIO8b6JtdlDxRzHH/EcRji07nDxcg==}
+ engines: {node: '>=v12.20.0'}
+
+ data-uri-to-buffer@4.0.1:
+ resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==}
+ engines: {node: '>= 12'}
+
+ data-view-buffer@1.0.2:
+ resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==}
+ engines: {node: '>= 0.4'}
+
+ data-view-byte-length@1.0.2:
+ resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==}
+ engines: {node: '>= 0.4'}
+
+ data-view-byte-offset@1.0.1:
+ resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==}
+ engines: {node: '>= 0.4'}
+
+ dayjs@1.11.19:
+ resolution: {integrity: sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==}
+
+ db0@0.3.2:
+ resolution: {integrity: sha512-xzWNQ6jk/+NtdfLyXEipbX55dmDSeteLFt/ayF+wZUU5bzKgmrDOxmInUTbyVRp46YwnJdkDA1KhB7WIXFofJw==}
+ peerDependencies:
+ '@electric-sql/pglite': '*'
+ '@libsql/client': '*'
+ better-sqlite3: '*'
+ drizzle-orm: '*'
+ mysql2: '*'
+ sqlite3: '*'
+ peerDependenciesMeta:
+ '@electric-sql/pglite':
+ optional: true
+ '@libsql/client':
+ optional: true
+ better-sqlite3:
+ optional: true
+ drizzle-orm:
+ optional: true
+ mysql2:
+ optional: true
+ sqlite3:
+ optional: true
+
+ debug@2.6.9:
+ resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ debug@4.4.1:
+ resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ debug@4.4.3:
+ resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ decache@4.6.2:
+ resolution: {integrity: sha512-2LPqkLeu8XWHU8qNCS3kcF6sCcb5zIzvWaAHYSvPfwhdd7mHuah29NssMzrTYyHN4F5oFy2ko9OBYxegtU0FEw==}
+
+ decode-named-character-reference@1.1.0:
+ resolution: {integrity: sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==}
+
+ decode-uri-component@0.2.2:
+ resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==}
+ engines: {node: '>=0.10'}
+
+ deep-is@0.1.4:
+ resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
+
+ deepmerge@4.3.1:
+ resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
+ engines: {node: '>=0.10.0'}
+
+ default-browser-id@5.0.0:
+ resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==}
+ engines: {node: '>=18'}
+
+ default-browser@5.2.1:
+ resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==}
+ engines: {node: '>=18'}
+
+ defaults@1.0.4:
+ resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
+
+ define-data-property@1.1.4:
+ resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
+ engines: {node: '>= 0.4'}
+
+ define-lazy-prop@2.0.0:
+ resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==}
+ engines: {node: '>=8'}
+
+ define-lazy-prop@3.0.0:
+ resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==}
+ engines: {node: '>=12'}
+
+ define-properties@1.2.1:
+ resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
+ engines: {node: '>= 0.4'}
+
+ define-property@0.2.5:
+ resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==}
+ engines: {node: '>=0.10.0'}
+
+ define-property@1.0.0:
+ resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==}
+ engines: {node: '>=0.10.0'}
+
+ define-property@2.0.2:
+ resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==}
+ engines: {node: '>=0.10.0'}
+
+ defu@6.1.4:
+ resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==}
+
+ delayed-stream@1.0.0:
+ resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
+ engines: {node: '>=0.4.0'}
+
+ denque@2.1.0:
+ resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==}
+ engines: {node: '>=0.10'}
+
+ depd@2.0.0:
+ resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
+ engines: {node: '>= 0.8'}
+
+ dequal@2.0.3:
+ resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
+ engines: {node: '>=6'}
+
+ destr@2.0.5:
+ resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==}
+
+ detect-europe-js@0.1.2:
+ resolution: {integrity: sha512-lgdERlL3u0aUdHocoouzT10d9I89VVhk0qNRmll7mXdGfJT1/wqZ2ZLA4oJAjeACPY5fT1wsbq2AT+GkuInsow==}
+
+ detect-file@1.0.0:
+ resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==}
+ engines: {node: '>=0.10.0'}
+
+ detect-libc@1.0.3:
+ resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==}
+ engines: {node: '>=0.10'}
+ hasBin: true
+
+ detect-libc@2.0.4:
+ resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==}
+ engines: {node: '>=8'}
+
+ detective-amd@6.0.1:
+ resolution: {integrity: sha512-TtyZ3OhwUoEEIhTFoc1C9IyJIud3y+xYkSRjmvCt65+ycQuc3VcBrPRTMWoO/AnuCyOB8T5gky+xf7Igxtjd3g==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ detective-cjs@6.0.1:
+ resolution: {integrity: sha512-tLTQsWvd2WMcmn/60T2inEJNhJoi7a//PQ7DwRKEj1yEeiQs4mrONgsUtEJKnZmrGWBBmE0kJ1vqOG/NAxwaJw==}
+ engines: {node: '>=18'}
+
+ detective-es6@5.0.1:
+ resolution: {integrity: sha512-XusTPuewnSUdoxRSx8OOI6xIA/uld/wMQwYsouvFN2LAg7HgP06NF1lHRV3x6BZxyL2Kkoih4ewcq8hcbGtwew==}
+ engines: {node: '>=18'}
+
+ detective-postcss@7.0.1:
+ resolution: {integrity: sha512-bEOVpHU9picRZux5XnwGsmCN4+8oZo7vSW0O0/Enq/TO5R2pIAP2279NsszpJR7ocnQt4WXU0+nnh/0JuK4KHQ==}
+ engines: {node: ^14.0.0 || >=16.0.0}
+ peerDependencies:
+ postcss: ^8.4.47
+
+ detective-sass@6.0.1:
+ resolution: {integrity: sha512-jSGPO8QDy7K7pztUmGC6aiHkexBQT4GIH+mBAL9ZyBmnUIOFbkfZnO8wPRRJFP/QP83irObgsZHCoDHZ173tRw==}
+ engines: {node: '>=18'}
+
+ detective-scss@5.0.1:
+ resolution: {integrity: sha512-MAyPYRgS6DCiS6n6AoSBJXLGVOydsr9huwXORUlJ37K3YLyiN0vYHpzs3AdJOgHobBfispokoqrEon9rbmKacg==}
+ engines: {node: '>=18'}
+
+ detective-stylus@5.0.1:
+ resolution: {integrity: sha512-Dgn0bUqdGbE3oZJ+WCKf8Dmu7VWLcmRJGc6RCzBgG31DLIyai9WAoEhYRgIHpt/BCRMrnXLbGWGPQuBUrnF0TA==}
+ engines: {node: '>=18'}
+
+ detective-typescript@14.0.0:
+ resolution: {integrity: sha512-pgN43/80MmWVSEi5LUuiVvO/0a9ss5V7fwVfrJ4QzAQRd3cwqU1SfWGXJFcNKUqoD5cS+uIovhw5t/0rSeC5Mw==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ typescript: ^5.4.4
+
+ detective-vue2@2.2.0:
+ resolution: {integrity: sha512-sVg/t6O2z1zna8a/UIV6xL5KUa2cMTQbdTIIvqNM0NIPswp52fe43Nwmbahzj3ww4D844u/vC2PYfiGLvD3zFA==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ typescript: ^5.4.4
+
+ devalue@5.3.2:
+ resolution: {integrity: sha512-UDsjUbpQn9kvm68slnrs+mfxwFkIflOhkanmyabZ8zOYk8SMEIbJ3TK+88g70hSIeytu4y18f0z/hYHMTrXIWw==}
+
+ devlop@1.1.0:
+ resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
+
+ diff-sequences@29.6.3:
+ resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ diff@8.0.2:
+ resolution: {integrity: sha512-sSuxWU5j5SR9QQji/o2qMvqRNYRDOcBTgsJ/DeCf4iSN4gW+gNMXM7wFIP+fdXZxoNiAnHUTGjCr+TSWXdRDKg==}
+ engines: {node: '>=0.3.1'}
+
+ disable-devtool@0.3.9:
+ resolution: {integrity: sha512-WHCpC8f93Cn2DnTeaq57NFLcdw4921sovh1ammnp/2o8Snb704HK/Vw1/D2D1Pihc0zc8/mVKb5nchHtoadObQ==}
+
+ dlv@1.1.3:
+ resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
+
+ dom-serializer@0.2.2:
+ resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==}
+
+ dom-serializer@1.4.1:
+ resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==}
+
+ dom-serializer@2.0.0:
+ resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
+
+ domelementtype@1.3.1:
+ resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==}
+
+ domelementtype@2.3.0:
+ resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
+
+ domhandler@2.4.2:
+ resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==}
+
+ domhandler@4.3.1:
+ resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
+ engines: {node: '>= 4'}
+
+ domhandler@5.0.3:
+ resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
+ engines: {node: '>= 4'}
+
+ domutils@1.7.0:
+ resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==}
+
+ domutils@2.8.0:
+ resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
+
+ domutils@3.2.2:
+ resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==}
+
+ dot-prop@9.0.0:
+ resolution: {integrity: sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==}
+ engines: {node: '>=18'}
+
+ dotenv@16.6.1:
+ resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==}
+ engines: {node: '>=12'}
+
+ dotenv@17.2.3:
+ resolution: {integrity: sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==}
+ engines: {node: '>=12'}
+
+ dunder-proto@1.0.1:
+ resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
+ engines: {node: '>= 0.4'}
+
+ duplexer@0.1.2:
+ resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==}
+
+ eastasianwidth@0.2.0:
+ resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
+
+ ee-first@1.1.1:
+ resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
+
+ electron-to-chromium@1.5.187:
+ resolution: {integrity: sha512-cl5Jc9I0KGUoOoSbxvTywTa40uspGJt/BDBoDLoxJRSBpWh4FFXBsjNRHfQrONsV/OoEjDfHUmZQa2d6Ze4YgA==}
+
+ electron-to-chromium@1.5.249:
+ resolution: {integrity: sha512-5vcfL3BBe++qZ5kuFhD/p8WOM1N9m3nwvJPULJx+4xf2usSlZFJ0qoNYO2fOX4hi3ocuDcmDobtA+5SFr4OmBg==}
+
+ electron-to-chromium@1.5.267:
+ resolution: {integrity: sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==}
+
+ element-plus@2.13.4:
+ resolution: {integrity: sha512-RiPWp+lD3cuEqJPHkqGixZcuv+dy7z6FFOTZORIAAoGaOrxA2jsuefY7BmB5aa3VNjKL4pTu8ekfZPSnLx4Z9w==}
+ peerDependencies:
+ vue: ^3.3.0
+
+ emoji-regex@10.4.0:
+ resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==}
+
+ emoji-regex@8.0.0:
+ resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
+
+ emoji-regex@9.2.2:
+ resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
+
+ emojis-list@3.0.0:
+ resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
+ engines: {node: '>= 4'}
+
+ empathic@2.0.0:
+ resolution: {integrity: sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==}
+ engines: {node: '>=14'}
+
+ enabled@2.0.0:
+ resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==}
+
+ encodeurl@2.0.0:
+ resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==}
+ engines: {node: '>= 0.8'}
+
+ end-of-stream@1.4.5:
+ resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==}
+
+ enhanced-resolve@5.18.1:
+ resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==}
+ engines: {node: '>=10.13.0'}
+
+ entities@1.1.2:
+ resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==}
+
+ entities@2.2.0:
+ resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
+
+ entities@4.5.0:
+ resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
+ engines: {node: '>=0.12'}
+
+ entities@7.0.0:
+ resolution: {integrity: sha512-FDWG5cmEYf2Z00IkYRhbFrwIwvdFKH07uV8dvNy0omp/Qb1xcyCWp2UDtcwJF4QZZvk0sLudP6/hAu42TaqVhQ==}
+ engines: {node: '>=0.12'}
+
+ entities@7.0.1:
+ resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==}
+ engines: {node: '>=0.12'}
+
+ env-paths@2.2.1:
+ resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==}
+ engines: {node: '>=6'}
+
+ env-paths@3.0.0:
+ resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ environment@1.1.0:
+ resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==}
+ engines: {node: '>=18'}
+
+ error-ex@1.3.2:
+ resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
+
+ error-stack-parser-es@1.0.5:
+ resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==}
+
+ errx@0.1.0:
+ resolution: {integrity: sha512-fZmsRiDNv07K6s2KkKFTiD2aIvECa7++PKyD5NC32tpRw46qZA3sOz+aM+/V9V0GDHxVTKLziveV4JhzBHDp9Q==}
+
+ eruda@3.4.3:
+ resolution: {integrity: sha512-J2TsF4dXSspOXev5bJ6mljv0dRrxj21wklrDzbvPmYaEmVoC+2psylyRi70nUPFh1mTQfIBsSusUtAMZtUN+/w==}
+
+ es-abstract@1.24.0:
+ resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==}
+ engines: {node: '>= 0.4'}
+
+ es-define-property@1.0.1:
+ resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
+ engines: {node: '>= 0.4'}
+
+ es-errors@1.3.0:
+ resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
+ engines: {node: '>= 0.4'}
+
+ es-module-lexer@1.7.0:
+ resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==}
+
+ es-object-atoms@1.1.1:
+ resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
+ engines: {node: '>= 0.4'}
+
+ es-set-tostringtag@2.1.0:
+ resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==}
+ engines: {node: '>= 0.4'}
+
+ es-to-primitive@1.3.0:
+ resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==}
+ engines: {node: '>= 0.4'}
+
+ es-toolkit@1.45.1:
+ resolution: {integrity: sha512-/jhoOj/Fx+A+IIyDNOvO3TItGmlMKhtX8ISAHKE90c4b/k1tqaqEZ+uUqfpU8DMnW5cgNJv606zS55jGvza0Xw==}
+
+ esbuild@0.24.2:
+ resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ esbuild@0.25.5:
+ resolution: {integrity: sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ esbuild@0.25.9:
+ resolution: {integrity: sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ esbuild@0.27.0:
+ resolution: {integrity: sha512-jd0f4NHbD6cALCyGElNpGAOtWxSq46l9X/sWB0Nzd5er4Kz2YTm+Vl0qKFT9KUJvD8+fiO8AvoHhFvEatfVixA==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ escalade@3.2.0:
+ resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
+ engines: {node: '>=6'}
+
+ escape-html@1.0.3:
+ resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
+
+ escape-string-regexp@1.0.5:
+ resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
+ engines: {node: '>=0.8.0'}
+
+ escape-string-regexp@4.0.0:
+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
+ engines: {node: '>=10'}
+
+ escape-string-regexp@5.0.0:
+ resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
+ engines: {node: '>=12'}
+
+ escodegen@2.1.0:
+ resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==}
+ engines: {node: '>=6.0'}
+ hasBin: true
+
+ eslint-compat-utils@0.5.1:
+ resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==}
+ engines: {node: '>=12'}
+ peerDependencies:
+ eslint: '>=6.0.0'
+
+ eslint-config-flat-gitignore@2.2.1:
+ resolution: {integrity: sha512-wA5EqN0era7/7Gt5Botlsfin/UNY0etJSEeBgbUlFLFrBi47rAN//+39fI7fpYcl8RENutlFtvp/zRa/M/pZNg==}
+ peerDependencies:
+ eslint: ^9.5.0 || ^10.0.0
+
+ eslint-flat-config-utils@3.0.1:
+ resolution: {integrity: sha512-VMA3u86bLzNAwD/7DkLtQ9lolgIOx2Sj0kTMMnBvrvEz7w0rQj4aGCR+lqsqtld63gKiLyT4BnQZ3gmGDXtvjg==}
+
+ eslint-json-compat-utils@0.2.1:
+ resolution: {integrity: sha512-YzEodbDyW8DX8bImKhAcCeu/L31Dd/70Bidx2Qex9OFUtgzXLqtfWL4Hr5fM/aCCB8QUZLuJur0S9k6UfgFkfg==}
+ engines: {node: '>=12'}
+ peerDependencies:
+ '@eslint/json': '*'
+ eslint: '*'
+ jsonc-eslint-parser: ^2.4.0
+ peerDependenciesMeta:
+ '@eslint/json':
+ optional: true
+
+ eslint-merge-processors@2.0.0:
+ resolution: {integrity: sha512-sUuhSf3IrJdGooquEUB5TNpGNpBoQccbnaLHsb1XkBLUPPqCNivCpY05ZcpCOiV9uHwO2yxXEWVczVclzMxYlA==}
+ peerDependencies:
+ eslint: '*'
+
+ eslint-plugin-antfu@3.2.2:
+ resolution: {integrity: sha512-Qzixht2Dmd/pMbb5EnKqw2V8TiWHbotPlsORO8a+IzCLFwE0RxK8a9k4DCTFPzBwyxJzH+0m2Mn8IUGeGQkyUw==}
+ peerDependencies:
+ eslint: '*'
+
+ eslint-plugin-command@3.5.2:
+ resolution: {integrity: sha512-PA59QAkQDwvcCMEt5lYLJLI3zDGVKJeC4id/pcRY2XdRYhSGW7iyYT1VC1N3bmpuvu6Qb/9QptiS3GJMjeGTJg==}
+ peerDependencies:
+ '@typescript-eslint/rule-tester': '*'
+ '@typescript-eslint/typescript-estree': '*'
+ '@typescript-eslint/utils': '*'
+ eslint: '*'
+
+ eslint-plugin-depend@1.5.0:
+ resolution: {integrity: sha512-i3UeLYmclf1Icp35+6W7CR4Bp2PIpDgBuf/mpmXK5UeLkZlvYJ21VuQKKHHAIBKRTPivPGX/gZl5JGno1o9Y0A==}
+ peerDependencies:
+ eslint: '>=8.40.0'
+
+ eslint-plugin-es-x@7.8.0:
+ resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '>=8'
+
+ eslint-plugin-import-lite@0.5.2:
+ resolution: {integrity: sha512-XvfdWOC5dSLEI9krIPRlNmKSI2ViIE9pVylzfV9fCq0ZpDaNeUk6o0wZv0OzN83QdadgXp1NsY0qjLINxwYCsw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: '>=9.0.0'
+
+ eslint-plugin-jsdoc@62.7.1:
+ resolution: {integrity: sha512-4Zvx99Q7d1uggYBUX/AIjvoyqXhluGbbKrRmG8SQTLprPFg6fa293tVJH1o1GQwNe3lUydd8ZHzn37OaSncgSQ==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+ peerDependencies:
+ eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0
+
+ eslint-plugin-jsonc@3.1.1:
+ resolution: {integrity: sha512-7TSQO8ZyvOuXWb0sYke3KUSh0DJA4/QviKfuzD3/Cy3XDjtrIrTWQbjb7j/Yy2l/DgwuM+lCS2c/jqJifv5jhg==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+ peerDependencies:
+ eslint: '>=9.38.0'
+
+ eslint-plugin-n@17.24.0:
+ resolution: {integrity: sha512-/gC7/KAYmfNnPNOb3eu8vw+TdVnV0zhdQwexsw6FLXbhzroVj20vRn2qL8lDWDGnAQ2J8DhdfvXxX9EoxvERvw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: '>=8.23.0'
+
+ eslint-plugin-no-only-tests@3.3.0:
+ resolution: {integrity: sha512-brcKcxGnISN2CcVhXJ/kEQlNa0MEfGRtwKtWA16SkqXHKitaKIMrfemJKLKX1YqDU5C/5JY3PvZXd5jEW04e0Q==}
+ engines: {node: '>=5.0.0'}
+
+ eslint-plugin-perfectionist@5.6.0:
+ resolution: {integrity: sha512-pxrLrfRp5wl1Vol1fAEa/G5yTXxefTPJjz07qC7a8iWFXcOZNuWBItMQ2OtTzfQIvMq6bMyYcrzc3Wz++na55Q==}
+ engines: {node: ^20.0.0 || >=22.0.0}
+ peerDependencies:
+ eslint: ^8.45.0 || ^9.0.0 || ^10.0.0
+
+ eslint-plugin-pnpm@1.6.0:
+ resolution: {integrity: sha512-dxmt9r3zvPaft6IugS4i0k16xag3fTbOvm/road5uV9Y8qUCQT0xzheSh3gMlYAlC6vXRpfArBDsTZ7H7JKCbg==}
+ peerDependencies:
+ eslint: ^9.0.0 || ^10.0.0
+
+ eslint-plugin-regexp@3.0.0:
+ resolution: {integrity: sha512-iW7hgAV8NOG6E2dz+VeKpq67YLQ9jaajOKYpoOSic2/q8y9BMdXBKkSR9gcMtbqEhNQzdW41E3wWzvhp8ExYwQ==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+ peerDependencies:
+ eslint: '>=9.38.0'
+
+ eslint-plugin-toml@1.3.1:
+ resolution: {integrity: sha512-1l00fBP03HIt9IPV7ZxBi7x0y0NMdEZmakL1jBD6N/FoKBvfKxPw5S8XkmzBecOnFBTn5Z8sNJtL5vdf9cpRMQ==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+ peerDependencies:
+ eslint: '>=9.38.0'
+
+ eslint-plugin-unicorn@63.0.0:
+ resolution: {integrity: sha512-Iqecl9118uQEXYh7adylgEmGfkn5es3/mlQTLLkd4pXkIk9CTGrAbeUux+YljSa2ohXCBmQQ0+Ej1kZaFgcfkA==}
+ engines: {node: ^20.10.0 || >=21.0.0}
+ peerDependencies:
+ eslint: '>=9.38.0'
+
+ eslint-plugin-unused-imports@4.4.1:
+ resolution: {integrity: sha512-oZGYUz1X3sRMGUB+0cZyK2VcvRX5lm/vB56PgNNcU+7ficUCKm66oZWKUubXWnOuPjQ8PvmXtCViXBMONPe7tQ==}
+ peerDependencies:
+ '@typescript-eslint/eslint-plugin': ^8.0.0-0 || ^7.0.0 || ^6.0.0 || ^5.0.0
+ eslint: ^10.0.0 || ^9.0.0 || ^8.0.0
+ peerDependenciesMeta:
+ '@typescript-eslint/eslint-plugin':
+ optional: true
+
+ eslint-plugin-vue@10.8.0:
+ resolution: {integrity: sha512-f1J/tcbnrpgC8suPN5AtdJ5MQjuXbSU9pGRSSYAuF3SHoiYCOdEX6O22pLaRyLHXvDcOe+O5ENgc1owQ587agA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ '@stylistic/eslint-plugin': ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0
+ '@typescript-eslint/parser': ^7.0.0 || ^8.0.0
+ eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
+ vue-eslint-parser: ^10.0.0
+ peerDependenciesMeta:
+ '@stylistic/eslint-plugin':
+ optional: true
+ '@typescript-eslint/parser':
+ optional: true
+
+ eslint-plugin-yml@3.3.1:
+ resolution: {integrity: sha512-isntsZchaTqDMNNkD+CakrgA/pdUoJ45USWBKpuqfAW1MCuw731xX/vrXfoJFZU3tTFr24nCbDYmDfT2+g4QtQ==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24.0.0}
+ peerDependencies:
+ eslint: '>=9.38.0'
+
+ eslint-processor-vue-blocks@2.0.0:
+ resolution: {integrity: sha512-u4W0CJwGoWY3bjXAuFpc/b6eK3NQEI8MoeW7ritKj3G3z/WtHrKjkqf+wk8mPEy5rlMGS+k6AZYOw2XBoN/02Q==}
+ peerDependencies:
+ '@vue/compiler-sfc': ^3.3.0
+ eslint: '>=9.0.0'
+
+ eslint-scope@8.4.0:
+ resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ 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}
+
+ eslint-visitor-keys@4.2.1:
+ resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ eslint-visitor-keys@5.0.1:
+ resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+
+ eslint@9.39.4:
+ resolution: {integrity: sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ hasBin: true
+ peerDependencies:
+ jiti: '*'
+ peerDependenciesMeta:
+ jiti:
+ optional: true
+
+ espree@10.4.0:
+ resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ espree@11.1.1:
+ resolution: {integrity: sha512-AVHPqQoZYc+RUM4/3Ly5udlZY/U4LS8pIG05jEjWM2lQMU/oaZ7qshzAl2YP1tfNmXfftH3ohurfwNAug+MnsQ==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+
+ esprima-extract-comments@1.1.0:
+ resolution: {integrity: sha512-sBQUnvJwpeE9QnPrxh7dpI/dp67erYG4WXEAreAMoelPRpMR7NWb4YtwRPn9b+H1uLQKl/qS8WYmyaljTpjIsw==}
+ engines: {node: '>=4'}
+
+ esprima@4.0.1:
+ resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ esquery@1.7.0:
+ resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==}
+ engines: {node: '>=0.10'}
+
+ esrecurse@4.3.0:
+ resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
+ engines: {node: '>=4.0'}
+
+ estraverse@5.3.0:
+ resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
+ engines: {node: '>=4.0'}
+
+ estree-walker@2.0.2:
+ resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
+
+ estree-walker@3.0.3:
+ resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
+
+ esutils@2.0.3:
+ resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
+ engines: {node: '>=0.10.0'}
+
+ etag@1.8.1:
+ resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
+ engines: {node: '>= 0.6'}
+
+ event-target-shim@5.0.1:
+ resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
+ engines: {node: '>=6'}
+
+ eventemitter3@4.0.7:
+ resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
+
+ eventemitter3@5.0.1:
+ resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==}
+
+ events@3.3.0:
+ resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
+ engines: {node: '>=0.8.x'}
+
+ execa@8.0.1:
+ resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==}
+ engines: {node: '>=16.17'}
+
+ expand-brackets@2.1.4:
+ resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==}
+ engines: {node: '>=0.10.0'}
+
+ expand-tilde@2.0.2:
+ resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==}
+ engines: {node: '>=0.10.0'}
+
+ exsolve@1.0.8:
+ resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==}
+
+ extend-shallow@2.0.1:
+ resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
+ engines: {node: '>=0.10.0'}
+
+ extend-shallow@3.0.2:
+ resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==}
+ engines: {node: '>=0.10.0'}
+
+ extend@3.0.2:
+ resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
+
+ extglob@2.0.4:
+ resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==}
+ engines: {node: '>=0.10.0'}
+
+ extract-comments@1.1.0:
+ resolution: {integrity: sha512-dzbZV2AdSSVW/4E7Ti5hZdHWbA+Z80RJsJhr5uiL10oyjl/gy7/o+HI1HwK4/WSZhlq4SNKU3oUzXlM13Qx02Q==}
+ engines: {node: '>=6'}
+
+ extract-zip@2.0.1:
+ resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==}
+ engines: {node: '>= 10.17.0'}
+ hasBin: true
+
+ fast-deep-equal@3.1.3:
+ resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
+
+ fast-fifo@1.3.2:
+ resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==}
+
+ fast-glob@3.3.3:
+ resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
+ engines: {node: '>=8.6.0'}
+
+ fast-json-stable-stringify@2.1.0:
+ resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
+
+ fast-levenshtein@2.0.6:
+ resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
+
+ fast-npm-meta@0.4.6:
+ resolution: {integrity: sha512-zbBBOAOlzxfrU4WSnbCHk/nR6Vf32lSEPxDEvNOR08Z5DSZ/A6qJu0rqrHVcexBTd1hc2gim998xnqF/R1PuEw==}
+
+ fast-uri@3.0.6:
+ resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==}
+
+ fastest-levenshtein@1.0.16:
+ resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==}
+ engines: {node: '>= 4.9.1'}
+
+ fastq@1.19.1:
+ resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==}
+
+ fault@2.0.1:
+ resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==}
+
+ fd-slicer@1.1.0:
+ resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==}
+
+ fdir@6.5.0:
+ resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ picomatch: ^3 || ^4
+ peerDependenciesMeta:
+ picomatch:
+ optional: true
+
+ fecha@4.2.3:
+ resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==}
+
+ fetch-blob@3.2.0:
+ resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==}
+ engines: {node: ^12.20 || >= 14.13}
+
+ file-entry-cache@11.1.2:
+ resolution: {integrity: sha512-N2WFfK12gmrK1c1GXOqiAJ1tc5YE+R53zvQ+t5P8S5XhnmKYVB5eZEiLNZKDSmoG8wqqbF9EXYBBW/nef19log==}
+
+ file-entry-cache@8.0.0:
+ resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
+ engines: {node: '>=16.0.0'}
+
+ file-uri-to-path@1.0.0:
+ resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
+
+ filesize@10.1.6:
+ resolution: {integrity: sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w==}
+ engines: {node: '>= 10.4.0'}
+
+ filesize@11.0.13:
+ resolution: {integrity: sha512-mYJ/qXKvREuO0uH8LTQJ6v7GsUvVOguqxg2VTwQUkyTPXXRRWPdjuUPVqdBrJQhvci48OHlNGRnux+Slr2Rnvw==}
+ engines: {node: '>= 10.8.0'}
+
+ fill-range@4.0.0:
+ resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==}
+ engines: {node: '>=0.10.0'}
+
+ fill-range@7.1.1:
+ resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
+ engines: {node: '>=8'}
+
+ filter-obj@6.1.0:
+ resolution: {integrity: sha512-xdMtCAODmPloU9qtmPcdBV9Kd27NtMse+4ayThxqIHUES5Z2S6bGpap5PpdmNM56ub7y3i1eyr+vJJIIgWGKmA==}
+ engines: {node: '>=18'}
+
+ find-up-simple@1.0.1:
+ resolution: {integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==}
+ engines: {node: '>=18'}
+
+ find-up@5.0.0:
+ resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
+ engines: {node: '>=10'}
+
+ find-up@7.0.0:
+ resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==}
+ engines: {node: '>=18'}
+
+ findup-sync@5.0.0:
+ resolution: {integrity: sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==}
+ engines: {node: '>= 10.13.0'}
+
+ fined@2.0.0:
+ resolution: {integrity: sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==}
+ engines: {node: '>= 10.13.0'}
+
+ flagged-respawn@2.0.0:
+ resolution: {integrity: sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==}
+ engines: {node: '>= 10.13.0'}
+
+ flat-cache@4.0.1:
+ resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
+ engines: {node: '>=16'}
+
+ flat-cache@6.1.20:
+ resolution: {integrity: sha512-AhHYqwvN62NVLp4lObVXGVluiABTHapoB57EyegZVmazN+hhGhLTn3uZbOofoTw4DSDvVCadzzyChXhOAvy8uQ==}
+
+ flatted@3.3.3:
+ resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==}
+
+ fn.name@1.1.0:
+ resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==}
+
+ follow-redirects@1.15.11:
+ resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==}
+ engines: {node: '>=4.0'}
+ peerDependencies:
+ debug: '*'
+ peerDependenciesMeta:
+ debug:
+ optional: true
+
+ follow-redirects@1.15.9:
+ resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==}
+ engines: {node: '>=4.0'}
+ peerDependencies:
+ debug: '*'
+ peerDependenciesMeta:
+ debug:
+ optional: true
+
+ for-each@0.3.5:
+ resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==}
+ engines: {node: '>= 0.4'}
+
+ for-in@1.0.2:
+ resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==}
+ engines: {node: '>=0.10.0'}
+
+ for-own@1.0.0:
+ resolution: {integrity: sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==}
+ engines: {node: '>=0.10.0'}
+
+ foreground-child@3.3.1:
+ resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==}
+ engines: {node: '>=14'}
+
+ form-data@4.0.5:
+ resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==}
+ engines: {node: '>= 6'}
+
+ format@0.2.2:
+ resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==}
+ engines: {node: '>=0.4.x'}
+
+ formdata-polyfill@4.0.10:
+ resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==}
+ engines: {node: '>=12.20.0'}
+
+ fraction.js@5.3.4:
+ resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==}
+
+ fragment-cache@0.2.1:
+ resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==}
+ engines: {node: '>=0.10.0'}
+
+ fresh@2.0.0:
+ resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==}
+ engines: {node: '>= 0.8'}
+
+ fs-extra@10.1.0:
+ resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
+ engines: {node: '>=12'}
+
+ fs-extra@11.3.4:
+ resolution: {integrity: sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==}
+ engines: {node: '>=14.14'}
+
+ fsevents@2.3.3:
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+
+ function-bind@1.1.2:
+ resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
+
+ function.prototype.name@1.1.8:
+ resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==}
+ engines: {node: '>= 0.4'}
+
+ functions-have-names@1.2.3:
+ resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
+
+ fuse.js@7.1.0:
+ resolution: {integrity: sha512-trLf4SzuuUxfusZADLINj+dE8clK1frKdmqiJNb1Es75fmI5oY6X2mxLVUciLLjxqw/xr72Dhy+lER6dGd02FQ==}
+ engines: {node: '>=10'}
+
+ fzf@0.5.2:
+ resolution: {integrity: sha512-Tt4kuxLXFKHy8KT40zwsUPUkg1CrsgY25FxA2U/j/0WgEDCk3ddc/zLTCCcbSHX9FcKtLuVaDGtGE/STWC+j3Q==}
+
+ gensync@1.0.0-beta.2:
+ resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
+ engines: {node: '>=6.9.0'}
+
+ get-amd-module-type@6.0.1:
+ resolution: {integrity: sha512-MtjsmYiCXcYDDrGqtNbeIYdAl85n+5mSv2r3FbzER/YV3ZILw4HNNIw34HuV5pyl0jzs6GFYU1VHVEefhgcNHQ==}
+ engines: {node: '>=18'}
+
+ get-caller-file@2.0.5:
+ resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+
+ get-east-asian-width@1.3.0:
+ resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==}
+ engines: {node: '>=18'}
+
+ get-east-asian-width@1.5.0:
+ resolution: {integrity: sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==}
+ engines: {node: '>=18'}
+
+ get-intrinsic@1.3.0:
+ resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
+ engines: {node: '>= 0.4'}
+
+ get-port-please@3.2.0:
+ resolution: {integrity: sha512-I9QVvBw5U/hw3RmWpYKRumUeaDgxTPd401x364rLmWBJcOQ753eov1eTgzDqRG9bqFIfDc7gfzcQEWrUri3o1A==}
+
+ get-proto@1.0.1:
+ resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
+ engines: {node: '>= 0.4'}
+
+ get-stream@5.2.0:
+ resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==}
+ engines: {node: '>=8'}
+
+ get-stream@8.0.1:
+ resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==}
+ engines: {node: '>=16'}
+
+ get-symbol-description@1.1.0:
+ resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==}
+ engines: {node: '>= 0.4'}
+
+ get-tsconfig@4.10.1:
+ resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==}
+
+ get-value@2.0.6:
+ resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==}
+ engines: {node: '>=0.10.0'}
+
+ giget@2.0.0:
+ resolution: {integrity: sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==}
+ hasBin: true
+
+ git-up@8.1.1:
+ resolution: {integrity: sha512-FDenSF3fVqBYSaJoYy1KSc2wosx0gCvKP+c+PRBht7cAaiCeQlBtfBDX9vgnNOHmdePlSFITVcn4pFfcgNvx3g==}
+
+ git-url-parse@16.1.0:
+ resolution: {integrity: sha512-cPLz4HuK86wClEW7iDdeAKcCVlWXmrLpb2L+G9goW0Z1dtpNS6BXXSOckUTlJT/LDQViE1QZKstNORzHsLnobw==}
+
+ github-slugger@2.0.0:
+ resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==}
+
+ glob-parent@5.1.2:
+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
+ engines: {node: '>= 6'}
+
+ glob-parent@6.0.2:
+ resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
+ engines: {node: '>=10.13.0'}
+
+ glob@10.4.5:
+ resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
+ hasBin: true
+
+ global-directory@4.0.1:
+ resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==}
+ engines: {node: '>=18'}
+
+ global-modules@1.0.0:
+ resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==}
+ engines: {node: '>=0.10.0'}
+
+ global-modules@2.0.0:
+ resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==}
+ engines: {node: '>=6'}
+
+ global-prefix@1.0.2:
+ resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==}
+ engines: {node: '>=0.10.0'}
+
+ global-prefix@3.0.0:
+ resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==}
+ engines: {node: '>=6'}
+
+ globals@11.12.0:
+ resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
+ engines: {node: '>=4'}
+
+ globals@14.0.0:
+ resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
+ engines: {node: '>=18'}
+
+ globals@15.15.0:
+ resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==}
+ engines: {node: '>=18'}
+
+ globals@16.5.0:
+ resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==}
+ engines: {node: '>=18'}
+
+ globals@17.4.0:
+ resolution: {integrity: sha512-hjrNztw/VajQwOLsMNT1cbJiH2muO3OROCHnbehc8eY5JyD2gqz4AcMHPqgaOR59DjgUjYAYLeH699g/eWi2jw==}
+ engines: {node: '>=18'}
+
+ globalthis@1.0.4:
+ resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
+ engines: {node: '>= 0.4'}
+
+ globby@14.1.0:
+ resolution: {integrity: sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==}
+ engines: {node: '>=18'}
+
+ globby@16.1.1:
+ resolution: {integrity: sha512-dW7vl+yiAJSp6aCekaVnVJxurRv7DCOLyXqEG3RYMYUg7AuJ2jCqPkZTA8ooqC2vtnkaMcV5WfFBMuEnTu1OQg==}
+ engines: {node: '>=20'}
+
+ globjoin@0.1.4:
+ resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==}
+
+ globrex@0.1.2:
+ resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==}
+
+ gonzales-pe@4.3.0:
+ resolution: {integrity: sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==}
+ engines: {node: '>=0.6.0'}
+ hasBin: true
+
+ gopd@1.2.0:
+ resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
+ engines: {node: '>= 0.4'}
+
+ graceful-fs@4.2.11:
+ resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+
+ gzip-size@6.0.0:
+ resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==}
+ engines: {node: '>=10'}
+
+ gzip-size@7.0.0:
+ resolution: {integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ h3@1.15.4:
+ resolution: {integrity: sha512-z5cFQWDffyOe4vQ9xIqNfCZdV4p//vy6fBnr8Q1AWnVZ0teurKMG66rLj++TKwKPUP3u7iMUvrvKaEUiQw2QWQ==}
+
+ handlebars@4.7.8:
+ resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==}
+ engines: {node: '>=0.4.7'}
+ hasBin: true
+
+ has-ansi@2.0.0:
+ resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==}
+ engines: {node: '>=0.10.0'}
+
+ has-bigints@1.1.0:
+ resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==}
+ engines: {node: '>= 0.4'}
+
+ has-flag@1.0.0:
+ resolution: {integrity: sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==}
+ engines: {node: '>=0.10.0'}
+
+ has-flag@4.0.0:
+ resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
+ engines: {node: '>=8'}
+
+ has-flag@5.0.1:
+ resolution: {integrity: sha512-CsNUt5x9LUdx6hnk/E2SZLsDyvfqANZSUq4+D3D8RzDJ2M+HDTIkF60ibS1vHaK55vzgiZw1bEPFG9yH7l33wA==}
+ engines: {node: '>=12'}
+
+ has-property-descriptors@1.0.2:
+ resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
+
+ has-proto@1.2.0:
+ resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==}
+ engines: {node: '>= 0.4'}
+
+ has-symbols@1.1.0:
+ resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
+ engines: {node: '>= 0.4'}
+
+ has-tostringtag@1.0.2:
+ resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
+ engines: {node: '>= 0.4'}
+
+ has-value@0.3.1:
+ resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==}
+ engines: {node: '>=0.10.0'}
+
+ has-value@1.0.0:
+ resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==}
+ engines: {node: '>=0.10.0'}
+
+ has-values@0.1.4:
+ resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==}
+ engines: {node: '>=0.10.0'}
+
+ has-values@1.0.0:
+ resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==}
+ engines: {node: '>=0.10.0'}
+
+ hashery@1.5.0:
+ resolution: {integrity: sha512-nhQ6ExaOIqti2FDWoEMWARUqIKyjr2VcZzXShrI+A3zpeiuPWzx6iPftt44LhP74E5sW36B75N6VHbvRtpvO6Q==}
+ engines: {node: '>=20'}
+
+ hasown@2.0.2:
+ resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
+ engines: {node: '>= 0.4'}
+
+ he@1.2.0:
+ resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
+ hasBin: true
+
+ homedir-polyfill@1.0.3:
+ resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==}
+ engines: {node: '>=0.10.0'}
+
+ hookable@5.5.3:
+ resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==}
+
+ hookified@1.15.1:
+ resolution: {integrity: sha512-MvG/clsADq1GPM2KGo2nyfaWVyn9naPiXrqIe4jYjXNZQt238kWyOGrsyc/DmRAQ+Re6yeo6yX/yoNCG5KAEVg==}
+
+ hosted-git-info@7.0.2:
+ resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+
+ hotkeys-js@4.0.2:
+ resolution: {integrity: sha512-fJNEO88zWwoXEGJuvjSbunKSexaT1VbC1S9wIzMA2BfOZ5KPiQj2wTqxDeXd110/4akiAuQIsE3TSbNvGgCyQg==}
+
+ html-encoding-sniffer@3.0.0:
+ resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==}
+ engines: {node: '>=12'}
+
+ html-entities@2.6.0:
+ resolution: {integrity: sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==}
+
+ html-tags@5.1.0:
+ resolution: {integrity: sha512-n6l5uca7/y5joxZ3LUePhzmBFUJ+U2YWzhMa8XUTecSeSlQiZdF5XAd/Q3/WUl0VsXgUwWi8I7CNIwdI5WN1SQ==}
+ engines: {node: '>=20.10'}
+
+ htmlparser2@3.10.1:
+ resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==}
+
+ htmlparser2@8.0.2:
+ resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==}
+
+ http-errors@2.0.0:
+ resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
+ engines: {node: '>= 0.8'}
+
+ http-proxy@1.18.1:
+ resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==}
+ engines: {node: '>=8.0.0'}
+
+ http-server@14.1.1:
+ resolution: {integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==}
+ engines: {node: '>=12'}
+ hasBin: true
+
+ http-shutdown@1.2.2:
+ resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==}
+ engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
+
+ https-proxy-agent@7.0.6:
+ resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==}
+ engines: {node: '>= 14'}
+
+ httpxy@0.1.7:
+ resolution: {integrity: sha512-pXNx8gnANKAndgga5ahefxc++tJvNL87CXoRwxn1cJE2ZkWEojF3tNfQIEhZX/vfpt+wzeAzpUI4qkediX1MLQ==}
+
+ human-signals@5.0.0:
+ resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==}
+ engines: {node: '>=16.17.0'}
+
+ iconv-lite@0.6.3:
+ resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
+ engines: {node: '>=0.10.0'}
+
+ iconv-lite@0.7.0:
+ resolution: {integrity: sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==}
+ engines: {node: '>=0.10.0'}
+
+ ieee754@1.2.1:
+ resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
+
+ ignore@5.3.2:
+ resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
+ engines: {node: '>= 4'}
+
+ ignore@7.0.5:
+ resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==}
+ engines: {node: '>= 4'}
+
+ image-meta@0.2.1:
+ resolution: {integrity: sha512-K6acvFaelNxx8wc2VjbIzXKDVB0Khs0QT35U6NkGfTdCmjLNcO2945m7RFNR9/RPVFm48hq7QPzK8uGH18HCGw==}
+
+ image-size@0.5.5:
+ resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==}
+ engines: {node: '>=0.10.0'}
+ hasBin: true
+
+ immutable@5.1.2:
+ resolution: {integrity: sha512-qHKXW1q6liAk1Oys6umoaZbDRqjcjgSrbnrifHsfsttza7zcvRAsL7mMV6xWcyhwQy7Xj5v4hhbr6b+iDYwlmQ==}
+
+ import-fresh@3.3.1:
+ resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
+ engines: {node: '>=6'}
+
+ import-from-string@0.0.5:
+ resolution: {integrity: sha512-z59WIHImWhnGVswc0JoyI10Qn4A8xQw7OKrCFRQHvzGZhhEixX13OtXP9ud3Xjpn16CUoYfh5mTu3tnNODiSAw==}
+
+ import-meta-resolve@4.1.0:
+ resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==}
+
+ import-meta-resolve@4.2.0:
+ resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==}
+
+ impound@1.0.0:
+ resolution: {integrity: sha512-8lAJ+1Arw2sMaZ9HE2ZmL5zOcMnt18s6+7Xqgq2aUVy4P1nlzAyPtzCDxsk51KVFwHEEdc6OWvUyqwHwhRYaug==}
+
+ imurmurhash@0.1.4:
+ resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
+ engines: {node: '>=0.8.19'}
+
+ indent-string@5.0.0:
+ resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==}
+ engines: {node: '>=12'}
+
+ index-to-position@1.1.0:
+ resolution: {integrity: sha512-XPdx9Dq4t9Qk1mTMbWONJqU7boCoumEH7fRET37HX5+khDUl3J2W6PdALxhILYlIYx2amlwYcRPp28p0tSiojg==}
+ engines: {node: '>=18'}
+
+ inherits@2.0.4:
+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+
+ ini@1.3.8:
+ resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
+
+ ini@4.1.1:
+ resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
+ inquirer@9.3.8:
+ resolution: {integrity: sha512-pFGGdaHrmRKMh4WoDDSowddgjT1Vkl90atobmTeSmcPGdYiwikch/m/Ef5wRaiamHejtw0cUUMMerzDUXCci2w==}
+ engines: {node: '>=18'}
+
+ internal-slot@1.1.0:
+ resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==}
+ engines: {node: '>= 0.4'}
+
+ interpret@3.1.1:
+ resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==}
+ engines: {node: '>=10.13.0'}
+
+ ioredis@5.7.0:
+ resolution: {integrity: sha512-NUcA93i1lukyXU+riqEyPtSEkyFq8tX90uL659J+qpCZ3rEdViB/APC58oAhIh3+bJln2hzdlZbBZsGNrlsR8g==}
+ engines: {node: '>=12.22.0'}
+
+ iron-webcrypto@1.2.1:
+ resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==}
+
+ is-absolute@1.0.0:
+ resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==}
+ engines: {node: '>=0.10.0'}
+
+ is-accessor-descriptor@1.0.1:
+ resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==}
+ engines: {node: '>= 0.10'}
+
+ is-array-buffer@3.0.5:
+ resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==}
+ engines: {node: '>= 0.4'}
+
+ is-arrayish@0.2.1:
+ resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
+
+ is-arrayish@0.3.2:
+ resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
+
+ is-async-function@2.1.1:
+ resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==}
+ engines: {node: '>= 0.4'}
+
+ is-bigint@1.1.0:
+ resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==}
+ engines: {node: '>= 0.4'}
+
+ is-boolean-object@1.2.2:
+ resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==}
+ engines: {node: '>= 0.4'}
+
+ is-buffer@1.1.6:
+ resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==}
+
+ is-builtin-module@3.2.1:
+ resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==}
+ engines: {node: '>=6'}
+
+ is-builtin-module@5.0.0:
+ resolution: {integrity: sha512-f4RqJKBUe5rQkJ2eJEJBXSticB3hGbN9j0yxxMQFqIW89Jp9WYFtzfTcRlstDKVUTRzSOTLKRfO9vIztenwtxA==}
+ engines: {node: '>=18.20'}
+
+ is-callable@1.2.7:
+ resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
+ engines: {node: '>= 0.4'}
+
+ is-core-module@2.16.1:
+ resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==}
+ engines: {node: '>= 0.4'}
+
+ is-data-descriptor@1.0.1:
+ resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==}
+ engines: {node: '>= 0.4'}
+
+ is-data-view@1.0.2:
+ resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==}
+ engines: {node: '>= 0.4'}
+
+ is-date-object@1.1.0:
+ resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==}
+ engines: {node: '>= 0.4'}
+
+ is-descriptor@0.1.7:
+ resolution: {integrity: sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==}
+ engines: {node: '>= 0.4'}
+
+ is-descriptor@1.0.3:
+ resolution: {integrity: sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==}
+ engines: {node: '>= 0.4'}
+
+ is-docker@2.2.1:
+ resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
+ engines: {node: '>=8'}
+ hasBin: true
+
+ is-docker@3.0.0:
+ resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ hasBin: true
+
+ is-extendable@0.1.1:
+ resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
+ engines: {node: '>=0.10.0'}
+
+ is-extendable@1.0.1:
+ resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==}
+ engines: {node: '>=0.10.0'}
+
+ is-extglob@2.1.1:
+ resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
+ engines: {node: '>=0.10.0'}
+
+ is-finalizationregistry@1.1.1:
+ resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==}
+ engines: {node: '>= 0.4'}
+
+ is-fullwidth-code-point@3.0.0:
+ resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
+ engines: {node: '>=8'}
+
+ is-fullwidth-code-point@5.0.0:
+ resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==}
+ engines: {node: '>=18'}
+
+ is-generator-function@1.1.0:
+ resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==}
+ engines: {node: '>= 0.4'}
+
+ is-glob@4.0.3:
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+ engines: {node: '>=0.10.0'}
+
+ is-inside-container@1.0.0:
+ resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==}
+ engines: {node: '>=14.16'}
+ hasBin: true
+
+ is-installed-globally@1.0.0:
+ resolution: {integrity: sha512-K55T22lfpQ63N4KEN57jZUAaAYqYHEe8veb/TycJRk9DdSCLLcovXz/mL6mOnhQaZsQGwPhuFopdQIlqGSEjiQ==}
+ engines: {node: '>=18'}
+
+ is-interactive@1.0.0:
+ resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==}
+ engines: {node: '>=8'}
+
+ is-map@2.0.3:
+ resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
+ engines: {node: '>= 0.4'}
+
+ is-module@1.0.0:
+ resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==}
+
+ is-negative-zero@2.0.3:
+ resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==}
+ engines: {node: '>= 0.4'}
+
+ is-number-object@1.1.1:
+ resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==}
+ engines: {node: '>= 0.4'}
+
+ is-number@3.0.0:
+ resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==}
+ engines: {node: '>=0.10.0'}
+
+ is-number@7.0.0:
+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
+ engines: {node: '>=0.12.0'}
+
+ is-path-inside@4.0.0:
+ resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==}
+ engines: {node: '>=12'}
+
+ is-plain-obj@1.1.0:
+ resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
+ engines: {node: '>=0.10.0'}
+
+ is-plain-obj@2.1.0:
+ resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==}
+ engines: {node: '>=8'}
+
+ is-plain-object@2.0.4:
+ resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
+ engines: {node: '>=0.10.0'}
+
+ is-plain-object@5.0.0:
+ resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}
+ engines: {node: '>=0.10.0'}
+
+ is-reference@1.2.1:
+ resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==}
+
+ is-regex@1.2.1:
+ resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
+ engines: {node: '>= 0.4'}
+
+ is-relative@1.0.0:
+ resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==}
+ engines: {node: '>=0.10.0'}
+
+ is-set@2.0.3:
+ resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==}
+ engines: {node: '>= 0.4'}
+
+ is-shared-array-buffer@1.0.4:
+ resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==}
+ engines: {node: '>= 0.4'}
+
+ is-ssh@1.4.1:
+ resolution: {integrity: sha512-JNeu1wQsHjyHgn9NcWTaXq6zWSR6hqE0++zhfZlkFBbScNkyvxCdeV8sRkSBaeLKxmbpR21brail63ACNxJ0Tg==}
+
+ is-standalone-pwa@0.1.1:
+ resolution: {integrity: sha512-9Cbovsa52vNQCjdXOzeQq5CnCbAcRk05aU62K20WO372NrTv0NxibLFCK6lQ4/iZEFdEA3p3t2VNOn8AJ53F5g==}
+
+ is-stream@2.0.1:
+ resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
+ engines: {node: '>=8'}
+
+ is-stream@3.0.0:
+ resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ is-stream@4.0.1:
+ resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==}
+ engines: {node: '>=18'}
+
+ is-string@1.1.1:
+ resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==}
+ engines: {node: '>= 0.4'}
+
+ is-symbol@1.1.1:
+ resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==}
+ engines: {node: '>= 0.4'}
+
+ is-typed-array@1.1.15:
+ resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==}
+ engines: {node: '>= 0.4'}
+
+ is-unc-path@1.0.0:
+ resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==}
+ engines: {node: '>=0.10.0'}
+
+ is-unicode-supported@0.1.0:
+ resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
+ engines: {node: '>=10'}
+
+ is-url-superb@4.0.0:
+ resolution: {integrity: sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA==}
+ engines: {node: '>=10'}
+
+ is-url@1.2.4:
+ resolution: {integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==}
+
+ is-weakmap@2.0.2:
+ resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
+ engines: {node: '>= 0.4'}
+
+ is-weakref@1.1.1:
+ resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==}
+ engines: {node: '>= 0.4'}
+
+ is-weakset@2.0.4:
+ resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==}
+ engines: {node: '>= 0.4'}
+
+ is-what@4.1.16:
+ resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==}
+ engines: {node: '>=12.13'}
+
+ is-windows@1.0.2:
+ resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
+ engines: {node: '>=0.10.0'}
+
+ is-wsl@2.2.0:
+ resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
+ engines: {node: '>=8'}
+
+ is-wsl@3.1.0:
+ resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==}
+ engines: {node: '>=16'}
+
+ is64bit@2.0.0:
+ resolution: {integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==}
+ engines: {node: '>=18'}
+
+ isarray@1.0.0:
+ resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
+
+ isarray@2.0.5:
+ resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
+
+ isbinaryfile@5.0.6:
+ resolution: {integrity: sha512-I+NmIfBHUl+r2wcDd6JwE9yWje/PIVY/R5/CmV8dXLZd5K+L9X2klAOwfAHNnondLXkbHyTAleQAWonpTJBTtw==}
+ engines: {node: '>= 18.0.0'}
+
+ isexe@2.0.0:
+ resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+
+ isexe@3.1.1:
+ resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==}
+ engines: {node: '>=16'}
+
+ isobject@2.1.0:
+ resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==}
+ engines: {node: '>=0.10.0'}
+
+ isobject@3.0.1:
+ resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==}
+ engines: {node: '>=0.10.0'}
+
+ jackspeak@3.4.3:
+ resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
+
+ jiti@2.6.1:
+ resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==}
+ hasBin: true
+
+ js-base64@2.6.4:
+ resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==}
+
+ js-tokens@4.0.0:
+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+
+ js-tokens@9.0.1:
+ resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==}
+
+ js-yaml@4.1.0:
+ resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
+ hasBin: true
+
+ js-yaml@4.1.1:
+ resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==}
+ hasBin: true
+
+ jsdoc-type-pratt-parser@7.1.1:
+ resolution: {integrity: sha512-/2uqY7x6bsrpi3i9LVU6J89352C0rpMk0as8trXxCtvd4kPk1ke/Eyif6wqfSLvoNJqcDG9Vk4UsXgygzCt2xA==}
+ engines: {node: '>=20.0.0'}
+
+ jsesc@3.0.2:
+ resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
+ engines: {node: '>=6'}
+ hasBin: true
+
+ jsesc@3.1.0:
+ resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
+ engines: {node: '>=6'}
+ hasBin: true
+
+ json-buffer@3.0.1:
+ resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
+
+ json-parse-even-better-errors@2.3.1:
+ resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
+
+ json-parse-even-better-errors@4.0.0:
+ resolution: {integrity: sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==}
+ engines: {node: ^18.17.0 || >=20.5.0}
+
+ json-schema-traverse@0.4.1:
+ resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
+
+ json-schema-traverse@1.0.0:
+ resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
+
+ json-stable-stringify-without-jsonify@1.0.1:
+ resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
+
+ json5@1.0.2:
+ resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
+ hasBin: true
+
+ json5@2.2.3:
+ resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
+ engines: {node: '>=6'}
+ hasBin: true
+
+ jsonc-eslint-parser@3.1.0:
+ resolution: {integrity: sha512-75EA7EWZExL/j+MDKQrRbdzcRI2HOkRlmUw8fZJc1ioqFEOvBsq7Rt+A6yCxOt9w/TYNpkt52gC6nm/g5tFIng==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+
+ jsonc-parser@3.3.1:
+ resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==}
+
+ jsonfile@6.1.0:
+ resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
+
+ junk@4.0.1:
+ resolution: {integrity: sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ==}
+ engines: {node: '>=12.20'}
+
+ jwt-decode@4.0.0:
+ resolution: {integrity: sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==}
+ engines: {node: '>=18'}
+
+ keyv@4.5.4:
+ resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
+
+ keyv@5.6.0:
+ resolution: {integrity: sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==}
+
+ kind-of@3.2.2:
+ resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==}
+ engines: {node: '>=0.10.0'}
+
+ kind-of@4.0.0:
+ resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==}
+ engines: {node: '>=0.10.0'}
+
+ kind-of@5.1.0:
+ resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==}
+ engines: {node: '>=0.10.0'}
+
+ kind-of@6.0.3:
+ resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
+ engines: {node: '>=0.10.0'}
+
+ kleur@3.0.3:
+ resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
+ engines: {node: '>=6'}
+
+ kleur@4.1.5:
+ resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
+ engines: {node: '>=6'}
+
+ klona@2.0.6:
+ resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==}
+ engines: {node: '>= 8'}
+
+ knitwork@1.2.0:
+ resolution: {integrity: sha512-xYSH7AvuQ6nXkq42x0v5S8/Iry+cfulBz/DJQzhIyESdLD7425jXsPy4vn5cCXU+HhRN2kVw51Vd1K6/By4BQg==}
+
+ known-css-properties@0.37.0:
+ resolution: {integrity: sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==}
+
+ kolorist@1.8.0:
+ resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==}
+
+ kuler@2.0.0:
+ resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==}
+
+ lambda-local@2.2.0:
+ resolution: {integrity: sha512-bPcgpIXbHnVGfI/omZIlgucDqlf4LrsunwoKue5JdZeGybt8L6KyJz2Zu19ffuZwIwLj2NAI2ZyaqNT6/cetcg==}
+ engines: {node: '>=8'}
+ hasBin: true
+
+ launch-editor@2.11.1:
+ resolution: {integrity: sha512-SEET7oNfgSaB6Ym0jufAdCeo3meJVeCaaDyzRygy0xsp2BFKCprcfHljTq4QkzTLUxEKkFK6OK4811YM2oSrRg==}
+
+ lazystream@1.0.1:
+ resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==}
+ engines: {node: '>= 0.6.3'}
+
+ levn@0.4.1:
+ resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
+ engines: {node: '>= 0.8.0'}
+
+ liftoff@5.0.1:
+ resolution: {integrity: sha512-wwLXMbuxSF8gMvubFcFRp56lkFV69twvbU5vDPbaw+Q+/rF8j0HKjGbIdlSi+LuJm9jf7k9PB+nTxnsLMPcv2Q==}
+ engines: {node: '>=10.13.0'}
+
+ lilconfig@3.1.3:
+ resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==}
+ engines: {node: '>=14'}
+
+ lines-and-columns@1.2.4:
+ resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
+
+ lint-staged@16.3.2:
+ resolution: {integrity: sha512-xKqhC2AeXLwiAHXguxBjuChoTTWFC6Pees0SHPwOpwlvI3BH7ZADFPddAdN3pgo3aiKgPUx/bxE78JfUnxQnlg==}
+ engines: {node: '>=20.17'}
+ hasBin: true
+
+ listhen@1.9.0:
+ resolution: {integrity: sha512-I8oW2+QL5KJo8zXNWX046M134WchxsXC7SawLPvRQpogCbkyQIaFxPE89A2HiwR7vAK2Dm2ERBAmyjTYGYEpBg==}
+ hasBin: true
+
+ listr2@9.0.5:
+ resolution: {integrity: sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==}
+ engines: {node: '>=20.0.0'}
+
+ loader-utils@1.4.2:
+ resolution: {integrity: sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==}
+ engines: {node: '>=4.0.0'}
+
+ local-pkg@0.5.1:
+ resolution: {integrity: sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==}
+ engines: {node: '>=14'}
+
+ local-pkg@1.1.2:
+ resolution: {integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==}
+ engines: {node: '>=14'}
+
+ locate-path@6.0.0:
+ resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
+ engines: {node: '>=10'}
+
+ locate-path@7.2.0:
+ resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ lodash-es@4.17.23:
+ resolution: {integrity: sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==}
+
+ lodash-unified@1.0.3:
+ resolution: {integrity: sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==}
+ peerDependencies:
+ '@types/lodash-es': '*'
+ lodash: '*'
+ lodash-es: '*'
+
+ lodash.debounce@4.0.8:
+ resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
+
+ lodash.defaults@4.2.0:
+ resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==}
+
+ lodash.isarguments@3.1.0:
+ resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==}
+
+ lodash.memoize@4.1.2:
+ resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
+
+ lodash.merge@4.6.2:
+ resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
+
+ lodash.truncate@4.4.2:
+ resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==}
+
+ lodash.uniq@4.5.0:
+ resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
+
+ lodash@4.17.21:
+ resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
+
+ lodash@4.17.23:
+ resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==}
+
+ log-symbols@4.1.0:
+ resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}
+ engines: {node: '>=10'}
+
+ log-update@6.1.0:
+ resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==}
+ engines: {node: '>=18'}
+
+ logform@2.7.0:
+ resolution: {integrity: sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==}
+ engines: {node: '>= 12.0.0'}
+
+ longest-streak@3.1.0:
+ resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
+
+ lru-cache@10.4.3:
+ resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
+
+ lru-cache@5.1.1:
+ resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
+
+ lucide-vue-next@0.577.0:
+ resolution: {integrity: sha512-py05bAfv9SHVJqscbiOnjcnLlEmOffA58a+7XhZuFxrs6txe1E8VoR1ngWGTYO+9aVKABAz8l3ee3PqiQN9QPA==}
+ peerDependencies:
+ vue: '>=3.0.1'
+
+ luxon@3.7.1:
+ resolution: {integrity: sha512-RkRWjA926cTvz5rAb1BqyWkKbbjzCGchDUIKMCUvNi17j6f6j8uHGDV82Aqcqtzd+icoYpELmG3ksgGiFNNcNg==}
+ engines: {node: '>=12'}
+
+ magic-regexp@0.10.0:
+ resolution: {integrity: sha512-Uly1Bu4lO1hwHUW0CQeSWuRtzCMNO00CmXtS8N6fyvB3B979GOEEeAkiTUDsmbYLAbvpUS/Kt5c4ibosAzVyVg==}
+
+ magic-string-ast@1.0.2:
+ resolution: {integrity: sha512-8ngQgLhcT0t3YBdn9CGkZqCYlvwW9pm7aWJwd7AxseVWf1RU8ZHCQvG1mt3N5vvUme+pXTcHB8G/7fE666U8Vw==}
+ engines: {node: '>=20.18.0'}
+
+ magic-string@0.30.17:
+ resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==}
+
+ magic-string@0.30.19:
+ resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==}
+
+ magic-string@0.30.21:
+ resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
+
+ magicast@0.3.5:
+ resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==}
+
+ map-cache@0.2.2:
+ resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==}
+ engines: {node: '>=0.10.0'}
+
+ map-visit@1.0.0:
+ resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==}
+ engines: {node: '>=0.10.0'}
+
+ markdown-table@3.0.4:
+ resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==}
+
+ math-intrinsics@1.1.0:
+ resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
+ engines: {node: '>= 0.4'}
+
+ mathml-tag-names@4.0.0:
+ resolution: {integrity: sha512-aa6AU2Pcx0VP/XWnh8IGL0SYSgQHDT6Ucror2j2mXeFAlN3ahaNs8EZtG1YiticMkSLj3Gt6VPFfZogt7G5iFQ==}
+
+ mdast-util-find-and-replace@3.0.2:
+ resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==}
+
+ mdast-util-from-markdown@2.0.2:
+ resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==}
+
+ mdast-util-frontmatter@2.0.1:
+ resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==}
+
+ mdast-util-gfm-autolink-literal@2.0.1:
+ resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==}
+
+ mdast-util-gfm-footnote@2.1.0:
+ resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==}
+
+ mdast-util-gfm-strikethrough@2.0.0:
+ resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==}
+
+ mdast-util-gfm-table@2.0.0:
+ resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==}
+
+ mdast-util-gfm-task-list-item@2.0.0:
+ resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==}
+
+ mdast-util-gfm@3.1.0:
+ resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==}
+
+ mdast-util-phrasing@4.1.0:
+ resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==}
+
+ mdast-util-to-markdown@2.1.2:
+ resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==}
+
+ mdast-util-to-string@4.0.0:
+ resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==}
+
+ mdn-data@2.0.14:
+ resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==}
+
+ mdn-data@2.0.28:
+ resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
+
+ mdn-data@2.12.2:
+ resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==}
+
+ mdn-data@2.25.0:
+ resolution: {integrity: sha512-T2LPsjgUE/tgMmRXREVmwsux89DwWfNjiynOeXuLd2mX6jphGQ2YE3Ukz7LQ2VOFKiVZU/Ee1GqzHiipZCjymw==}
+
+ memoize-one@6.0.0:
+ resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==}
+
+ memorystream@0.3.1:
+ resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==}
+ engines: {node: '>= 0.10.0'}
+
+ meow@13.2.0:
+ resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==}
+ engines: {node: '>=18'}
+
+ meow@14.1.0:
+ resolution: {integrity: sha512-EDYo6VlmtnumlcBCbh1gLJ//9jvM/ndXHfVXIFrZVr6fGcwTUyCTFNTLCKuY3ffbK8L/+3Mzqnd58RojiZqHVw==}
+ engines: {node: '>=20'}
+
+ merge-options@1.0.1:
+ resolution: {integrity: sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg==}
+ engines: {node: '>=4'}
+
+ merge-options@3.0.4:
+ resolution: {integrity: sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==}
+ engines: {node: '>=10'}
+
+ merge-stream@2.0.0:
+ resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
+
+ merge2@1.4.1:
+ resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
+ engines: {node: '>= 8'}
+
+ micro-api-client@3.3.0:
+ resolution: {integrity: sha512-y0y6CUB9RLVsy3kfgayU28746QrNMpSm9O/AYGNsBgOkJr/X/Jk0VLGoO8Ude7Bpa8adywzF+MzXNZRFRsNPhg==}
+
+ micromark-core-commonmark@2.0.3:
+ resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==}
+
+ micromark-extension-frontmatter@2.0.0:
+ resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==}
+
+ micromark-extension-gfm-autolink-literal@2.1.0:
+ resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==}
+
+ micromark-extension-gfm-footnote@2.1.0:
+ resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==}
+
+ micromark-extension-gfm-strikethrough@2.1.0:
+ resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==}
+
+ micromark-extension-gfm-table@2.1.1:
+ resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==}
+
+ micromark-extension-gfm-tagfilter@2.0.0:
+ resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==}
+
+ micromark-extension-gfm-task-list-item@2.1.0:
+ resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==}
+
+ micromark-extension-gfm@3.0.0:
+ resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==}
+
+ micromark-factory-destination@2.0.1:
+ resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==}
+
+ micromark-factory-label@2.0.1:
+ resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==}
+
+ micromark-factory-space@2.0.1:
+ resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==}
+
+ micromark-factory-title@2.0.1:
+ resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==}
+
+ micromark-factory-whitespace@2.0.1:
+ resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==}
+
+ micromark-util-character@2.1.1:
+ resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==}
+
+ micromark-util-chunked@2.0.1:
+ resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==}
+
+ micromark-util-classify-character@2.0.1:
+ resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==}
+
+ micromark-util-combine-extensions@2.0.1:
+ resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==}
+
+ micromark-util-decode-numeric-character-reference@2.0.2:
+ resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==}
+
+ micromark-util-decode-string@2.0.1:
+ resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==}
+
+ micromark-util-encode@2.0.1:
+ resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==}
+
+ micromark-util-html-tag-name@2.0.1:
+ resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==}
+
+ micromark-util-normalize-identifier@2.0.1:
+ resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==}
+
+ micromark-util-resolve-all@2.0.1:
+ resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==}
+
+ micromark-util-sanitize-uri@2.0.1:
+ resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==}
+
+ micromark-util-subtokenize@2.1.0:
+ resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==}
+
+ micromark-util-symbol@2.0.1:
+ resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==}
+
+ micromark-util-types@2.0.2:
+ resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==}
+
+ micromark@4.0.2:
+ resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==}
+
+ micromatch@3.1.0:
+ resolution: {integrity: sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g==}
+ engines: {node: '>=0.10.0'}
+
+ micromatch@4.0.8:
+ resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
+ engines: {node: '>=8.6'}
+
+ mime-db@1.52.0:
+ resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
+ engines: {node: '>= 0.6'}
+
+ mime-db@1.54.0:
+ resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==}
+ engines: {node: '>= 0.6'}
+
+ mime-types@2.1.35:
+ resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
+ engines: {node: '>= 0.6'}
+
+ mime-types@3.0.1:
+ resolution: {integrity: sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==}
+ engines: {node: '>= 0.6'}
+
+ mime@1.6.0:
+ resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ mime@3.0.0:
+ resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==}
+ engines: {node: '>=10.0.0'}
+ hasBin: true
+
+ mime@4.0.7:
+ resolution: {integrity: sha512-2OfDPL+e03E0LrXaGYOtTFIYhiuzep94NSsuhrNULq+stylcJedcHdzHtz0atMUuGwJfFYs0YL5xeC/Ca2x0eQ==}
+ engines: {node: '>=16'}
+ hasBin: true
+
+ mimic-fn@2.1.0:
+ resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
+ engines: {node: '>=6'}
+
+ mimic-fn@4.0.0:
+ resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
+ engines: {node: '>=12'}
+
+ mimic-function@5.0.1:
+ resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==}
+ engines: {node: '>=18'}
+
+ minimatch@10.2.4:
+ resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==}
+ engines: {node: 18 || 20 || >=22}
+
+ minimatch@3.1.5:
+ resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==}
+
+ minimatch@5.1.6:
+ resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
+ engines: {node: '>=10'}
+
+ minimatch@9.0.5:
+ resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
+ minimist@1.2.8:
+ resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
+
+ minipass@7.1.2:
+ resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
+ minizlib@3.0.2:
+ resolution: {integrity: sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==}
+ engines: {node: '>= 18'}
+
+ mitt@3.0.1:
+ resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==}
+
+ mixin-deep@1.3.2:
+ resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==}
+ engines: {node: '>=0.10.0'}
+
+ mkdirp@3.0.1:
+ resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ mlly@1.7.4:
+ resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==}
+
+ mlly@1.8.0:
+ resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==}
+
+ mocked-exports@0.1.1:
+ resolution: {integrity: sha512-aF7yRQr/Q0O2/4pIXm6PZ5G+jAd7QS4Yu8m+WEeEHGnbo+7mE36CbLSDQiXYV8bVL3NfmdeqPJct0tUlnjVSnA==}
+
+ module-definition@6.0.1:
+ resolution: {integrity: sha512-FeVc50FTfVVQnolk/WQT8MX+2WVcDnTGiq6Wo+/+lJ2ET1bRVi3HG3YlJUfqagNMc/kUlFSoR96AJkxGpKz13g==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ module-replacements@2.11.0:
+ resolution: {integrity: sha512-j5sNQm3VCpQQ7nTqGeOZtoJtV3uKERgCBm9QRhmGRiXiqkf7iRFOkfxdJRZWLkqYY8PNf4cDQF/WfXUYLENrRA==}
+
+ mrmime@2.0.1:
+ resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==}
+ engines: {node: '>=10'}
+
+ ms@2.0.0:
+ resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
+
+ ms@2.1.3:
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+
+ muggle-string@0.4.1:
+ resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==}
+
+ mutation-observer@1.0.3:
+ resolution: {integrity: sha512-M/O/4rF2h776hV7qGMZUH3utZLO/jK7p8rnNgGkjKUw8zCGjRQPxB8z6+5l8+VjRUQ3dNYu4vjqXYLr+U8ZVNA==}
+
+ 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}
+
+ nanoid@3.3.11:
+ resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
+
+ nanoid@5.1.5:
+ resolution: {integrity: sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw==}
+ engines: {node: ^18 || >=20}
+ hasBin: true
+
+ nanomatch@1.2.13:
+ resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==}
+ engines: {node: '>=0.10.0'}
+
+ nanospinner@1.2.2:
+ resolution: {integrity: sha512-Zt/AmG6qRU3e+WnzGGLuMCEAO/dAu45stNbHY223tUxldaDAeE+FxSPsd9Q+j+paejmm0ZbrNVs5Sraqy3dRxA==}
+
+ nanotar@0.2.0:
+ resolution: {integrity: sha512-9ca1h0Xjvo9bEkE4UOxgAzLV0jHKe6LMaxo37ND2DAhhAtd0j8pR1Wxz+/goMrZO8AEZTWCmyaOsFI/W5AdpCQ==}
+
+ natural-compare@1.4.0:
+ resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
+
+ natural-orderby@5.0.0:
+ resolution: {integrity: sha512-kKHJhxwpR/Okycz4HhQKKlhWe4ASEfPgkSWNmKFHd7+ezuQlxkA5cM3+XkBPvm1gmHen3w53qsYAv+8GwRrBlg==}
+ engines: {node: '>=18'}
+
+ neo-async@2.6.2:
+ resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
+
+ netlify@13.3.5:
+ resolution: {integrity: sha512-Nc3loyVASW59W+8fLDZT1lncpG7llffyZ2o0UQLx/Fr20i7P8oP+lE7+TEcFvXj9IUWU6LjB9P3BH+iFGyp+mg==}
+ engines: {node: ^14.16.0 || >=16.0.0}
+
+ nitropack@2.12.4:
+ resolution: {integrity: sha512-MPmPRJWTeH03f/NmpN4q3iI3Woik4uaaWIoX34W3gMJiW06Vm1te/lPzuu5EXpXOK7Q2m3FymGMPXcExqih96Q==}
+ engines: {node: ^16.11.0 || >=17.0.0}
+ hasBin: true
+ peerDependencies:
+ xml2js: ^0.6.2
+ peerDependenciesMeta:
+ xml2js:
+ optional: true
+
+ node-addon-api@7.1.1:
+ resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==}
+
+ node-domexception@1.0.0:
+ resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
+ engines: {node: '>=10.5.0'}
+ deprecated: Use your platform's native DOMException instead
+
+ node-fetch-native@1.6.7:
+ resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==}
+
+ node-fetch@2.7.0:
+ resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
+ engines: {node: 4.x || >=6.0.0}
+ peerDependencies:
+ encoding: ^0.1.0
+ peerDependenciesMeta:
+ encoding:
+ optional: true
+
+ node-fetch@3.3.2:
+ resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ node-forge@1.3.1:
+ resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==}
+ engines: {node: '>= 6.13.0'}
+
+ node-gyp-build@4.8.4:
+ resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==}
+ hasBin: true
+
+ node-mock-http@1.0.2:
+ resolution: {integrity: sha512-zWaamgDUdo9SSLw47we78+zYw/bDr5gH8pH7oRRs8V3KmBtu8GLgGIbV2p/gRPd3LWpEOpjQj7X1FOU3VFMJ8g==}
+
+ node-plop@0.32.3:
+ resolution: {integrity: sha512-tn+OxutdqhvoByKJ7p84FZBSUDfUB76bcvj0ugLBvgE9V52LFcnz8cauCDKi6otnctvFCqa9XkrU35pBY5Baig==}
+ engines: {node: '>=18'}
+
+ node-releases@2.0.19:
+ resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
+
+ node-releases@2.0.27:
+ resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==}
+
+ node-source-walk@7.0.1:
+ resolution: {integrity: sha512-3VW/8JpPqPvnJvseXowjZcirPisssnBuDikk6JIZ8jQzF7KJQX52iPFX4RYYxLycYH7IbMRSPUOga/esVjy5Yg==}
+ engines: {node: '>=18'}
+
+ nopt@8.1.0:
+ resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==}
+ engines: {node: ^18.17.0 || >=20.5.0}
+ hasBin: true
+
+ normalize-package-data@6.0.2:
+ resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==}
+ engines: {node: ^16.14.0 || >=18.0.0}
+
+ normalize-path@2.1.1:
+ resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==}
+ engines: {node: '>=0.10.0'}
+
+ normalize-path@3.0.0:
+ resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
+ engines: {node: '>=0.10.0'}
+
+ normalize-wheel-es@1.2.0:
+ resolution: {integrity: sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==}
+
+ npm-normalize-package-bin@4.0.0:
+ resolution: {integrity: sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==}
+ engines: {node: ^18.17.0 || >=20.5.0}
+
+ npm-run-all2@8.0.4:
+ resolution: {integrity: sha512-wdbB5My48XKp2ZfJUlhnLVihzeuA1hgBnqB2J9ahV77wLS+/YAJAlN8I+X3DIFIPZ3m5L7nplmlbhNiFDmXRDA==}
+ engines: {node: ^20.5.0 || >=22.0.0, npm: '>= 10'}
+ hasBin: true
+
+ npm-run-path@5.3.0:
+ resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ npm-run-path@6.0.0:
+ resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==}
+ engines: {node: '>=18'}
+
+ nprogress@0.2.0:
+ resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==}
+
+ nth-check@2.1.1:
+ resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
+
+ nuxt@4.0.3:
+ resolution: {integrity: sha512-skRFoxY/1nphk+viF5ZEDLNEMJse0J/U5+wAYtJfYQ86EcEpLMm9v78FwdCc5IioKpgmSda6ZlLxY1DgK+6SDw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ hasBin: true
+ peerDependencies:
+ '@parcel/watcher': ^2.1.0
+ '@types/node': '>=18.12.0'
+ peerDependenciesMeta:
+ '@parcel/watcher':
+ optional: true
+ '@types/node':
+ optional: true
+
+ nypm@0.6.1:
+ resolution: {integrity: sha512-hlacBiRiv1k9hZFiphPUkfSQ/ZfQzZDzC+8z0wL3lvDAOUu/2NnChkKuMoMjNur/9OpKuz2QsIeiPVN0xM5Q0w==}
+ engines: {node: ^14.16.0 || >=16.10.0}
+ hasBin: true
+
+ object-assign@4.1.1:
+ resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
+ engines: {node: '>=0.10.0'}
+
+ object-copy@0.1.0:
+ resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==}
+ engines: {node: '>=0.10.0'}
+
+ object-deep-merge@2.0.0:
+ resolution: {integrity: sha512-3DC3UMpeffLTHiuXSy/UG4NOIYTLlY9u3V82+djSCLYClWobZiS4ivYzpIUWrRY/nfsJ8cWsKyG3QfyLePmhvg==}
+
+ object-inspect@1.13.4:
+ resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
+ engines: {node: '>= 0.4'}
+
+ object-keys@1.1.1:
+ resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
+ engines: {node: '>= 0.4'}
+
+ object-visit@1.0.1:
+ resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==}
+ engines: {node: '>=0.10.0'}
+
+ object.assign@4.1.7:
+ resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==}
+ engines: {node: '>= 0.4'}
+
+ object.defaults@1.1.0:
+ resolution: {integrity: sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==}
+ engines: {node: '>=0.10.0'}
+
+ object.pick@1.3.0:
+ resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==}
+ engines: {node: '>=0.10.0'}
+
+ obug@2.1.1:
+ resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==}
+
+ ofetch@1.5.1:
+ resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==}
+
+ ohash@2.0.11:
+ resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==}
+
+ on-change@5.0.1:
+ resolution: {integrity: sha512-n7THCP7RkyReRSLkJb8kUWoNsxUIBxTkIp3JKno+sEz6o/9AJ3w3P9fzQkITEkMwyTKJjZciF3v/pVoouxZZMg==}
+ engines: {node: '>=18'}
+
+ on-finished@2.4.1:
+ resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
+ engines: {node: '>= 0.8'}
+
+ once@1.4.0:
+ resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
+
+ one-time@1.0.0:
+ resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==}
+
+ onetime@5.1.2:
+ resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
+ engines: {node: '>=6'}
+
+ onetime@6.0.0:
+ resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==}
+ engines: {node: '>=12'}
+
+ onetime@7.0.0:
+ resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==}
+ engines: {node: '>=18'}
+
+ open@10.1.2:
+ resolution: {integrity: sha512-cxN6aIDPz6rm8hbebcP7vrQNhvRcveZoJU72Y7vskh4oIm+BZwBECnx5nTmrlres1Qapvx27Qo1Auukpf8PKXw==}
+ engines: {node: '>=18'}
+
+ open@10.2.0:
+ resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==}
+ engines: {node: '>=18'}
+
+ open@8.4.2:
+ resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==}
+ engines: {node: '>=12'}
+
+ opener@1.5.2:
+ resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==}
+ hasBin: true
+
+ optionator@0.9.4:
+ resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
+ engines: {node: '>= 0.8.0'}
+
+ ora@5.4.1:
+ resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==}
+ engines: {node: '>=10'}
+
+ own-keys@1.0.1:
+ resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==}
+ engines: {node: '>= 0.4'}
+
+ oxc-minify@0.80.0:
+ resolution: {integrity: sha512-kMMb3dC8KlQ+Bzf/UhepYsq1ukorCOJu038rSxF7kTbsCLx1Ojet9Hc9gKqKR/Wpih5GWnOA2DvLe20ZtxbJ2Q==}
+ engines: {node: '>=14.0.0'}
+
+ oxc-parser@0.115.0:
+ resolution: {integrity: sha512-2w7Xn3CbS/zwzSY82S5WLemrRu3CT57uF7Lx8llrE/2bul6iMTcJE4Rbls7GDNbLn3ttATI68PfOz2Pt3KZ2cQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+
+ oxc-parser@0.80.0:
+ resolution: {integrity: sha512-lTEUQs+WBOXPUzMR/tWY4yT9D7xXwnENtRR7Epw/QcuYpV4fRveEA+zq8IGUwyyuWecl8jHrddCCuadw+kZOSA==}
+ engines: {node: '>=20.0.0'}
+
+ oxc-parser@0.82.3:
+ resolution: {integrity: sha512-mJGrcrzaPYfCJwXsqPRJ8yeS3/Brn0qpt8jq7tPg3B7n3VSvKuKYhXhC0gBFQ+aIa9TdttdR/NWGh48lvUodjg==}
+ engines: {node: '>=20.0.0'}
+
+ oxc-transform@0.80.0:
+ resolution: {integrity: sha512-hWusSpynsn4MZP1KJa7e254xyVmowTUshvttpk7JfTt055YEJ+ad6memMJ9GJqPeeyydfnwwKkLy6eiwDn12xA==}
+ engines: {node: '>=14.0.0'}
+
+ oxc-walker@0.4.0:
+ resolution: {integrity: sha512-x5TJAZQD3kRnRBGZ+8uryMZUwkTYddwzBftkqyJIcmpBOXmoK/fwriRKATjZroR2d+aS7+2w1B0oz189bBTwfw==}
+ peerDependencies:
+ oxc-parser: '>=0.72.0'
+
+ oxc-walker@0.7.0:
+ resolution: {integrity: sha512-54B4KUhrzbzc4sKvKwVYm7E2PgeROpGba0/2nlNZMqfDyca+yOor5IMb4WLGBatGDT0nkzYdYuzylg7n3YfB7A==}
+ peerDependencies:
+ oxc-parser: '>=0.98.0'
+
+ p-event@6.0.1:
+ resolution: {integrity: sha512-Q6Bekk5wpzW5qIyUP4gdMEujObYstZl6DMMOSenwBvV0BlE5LkDwkjs5yHbZmdCEq2o4RJx4tE1vwxFVf2FG1w==}
+ engines: {node: '>=16.17'}
+
+ p-limit@3.1.0:
+ resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
+ engines: {node: '>=10'}
+
+ p-limit@4.0.0:
+ resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ p-locate@5.0.0:
+ resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
+ engines: {node: '>=10'}
+
+ p-locate@6.0.0:
+ resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ p-map@7.0.3:
+ resolution: {integrity: sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==}
+ engines: {node: '>=18'}
+
+ p-timeout@6.1.4:
+ resolution: {integrity: sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==}
+ engines: {node: '>=14.16'}
+
+ p-wait-for@5.0.2:
+ resolution: {integrity: sha512-lwx6u1CotQYPVju77R+D0vFomni/AqRfqLmqQ8hekklqZ6gAY9rONh7lBQ0uxWMkC2AuX9b2DVAl8To0NyP1JA==}
+ engines: {node: '>=12'}
+
+ package-json-from-dist@1.0.1:
+ resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
+
+ package-manager-detector@1.6.0:
+ resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==}
+
+ parent-module@1.0.1:
+ resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
+ engines: {node: '>=6'}
+
+ parse-code-context@1.0.0:
+ resolution: {integrity: sha512-OZQaqKaQnR21iqhlnPfVisFjBWjhnMl5J9MgbP8xC+EwoVqbXrq78lp+9Zb3ahmLzrIX5Us/qbvBnaS3hkH6OA==}
+ engines: {node: '>=6'}
+
+ parse-filepath@1.0.2:
+ resolution: {integrity: sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==}
+ engines: {node: '>=0.8'}
+
+ parse-gitignore@2.0.0:
+ resolution: {integrity: sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==}
+ engines: {node: '>=14'}
+
+ parse-imports-exports@0.2.4:
+ resolution: {integrity: sha512-4s6vd6dx1AotCx/RCI2m7t7GCh5bDRUtGNvRfHSP2wbBQdMi67pPe7mtzmgwcaQ8VKK/6IB7Glfyu3qdZJPybQ==}
+
+ parse-json@5.2.0:
+ resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
+ engines: {node: '>=8'}
+
+ parse-json@8.3.0:
+ resolution: {integrity: sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==}
+ engines: {node: '>=18'}
+
+ parse-passwd@1.0.0:
+ resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==}
+ engines: {node: '>=0.10.0'}
+
+ parse-path@7.1.0:
+ resolution: {integrity: sha512-EuCycjZtfPcjWk7KTksnJ5xPMvWGA/6i4zrLYhRG0hGvC3GPU/jGUj3Cy+ZR0v30duV3e23R95T1lE2+lsndSw==}
+
+ parse-statements@1.0.11:
+ resolution: {integrity: sha512-HlsyYdMBnbPQ9Jr/VgJ1YF4scnldvJpJxCVx6KgqPL4dxppsWrJHCIIxQXMJrqGnsRkNPATbeMJ8Yxu7JMsYcA==}
+
+ parse-url@9.2.0:
+ resolution: {integrity: sha512-bCgsFI+GeGWPAvAiUv63ZorMeif3/U0zaXABGJbOWt5OH2KCaPHF6S+0ok4aqM9RuIPGyZdx9tR9l13PsW4AYQ==}
+ engines: {node: '>=14.13.0'}
+
+ parseurl@1.3.3:
+ resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
+ engines: {node: '>= 0.8'}
+
+ pascalcase@0.1.1:
+ resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==}
+ engines: {node: '>=0.10.0'}
+
+ path-browserify@1.0.1:
+ resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==}
+
+ path-exists@4.0.0:
+ resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
+ engines: {node: '>=8'}
+
+ path-exists@5.0.0:
+ resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ path-key@3.1.1:
+ resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
+ engines: {node: '>=8'}
+
+ path-key@4.0.0:
+ resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==}
+ engines: {node: '>=12'}
+
+ path-parse@1.0.7:
+ resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+
+ path-root-regex@0.1.2:
+ resolution: {integrity: sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==}
+ engines: {node: '>=0.10.0'}
+
+ path-root@0.1.1:
+ resolution: {integrity: sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==}
+ engines: {node: '>=0.10.0'}
+
+ path-scurry@1.11.1:
+ resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
+ engines: {node: '>=16 || 14 >=14.18'}
+
+ path-to-regexp@8.3.0:
+ resolution: {integrity: sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==}
+
+ path-type@6.0.0:
+ resolution: {integrity: sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==}
+ engines: {node: '>=18'}
+
+ pathe@0.2.0:
+ resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==}
+
+ pathe@1.1.2:
+ resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==}
+
+ pathe@2.0.3:
+ resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
+
+ pend@1.2.0:
+ resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==}
+
+ perfect-debounce@1.0.0:
+ resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==}
+
+ perfect-debounce@2.0.0:
+ resolution: {integrity: sha512-fkEH/OBiKrqqI/yIgjR92lMfs2K8105zt/VT6+7eTjNwisrsh47CeIED9z58zI7DfKdH3uHAn25ziRZn3kgAow==}
+
+ perfect-debounce@2.1.0:
+ resolution: {integrity: sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g==}
+
+ picocolors@1.1.1:
+ resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
+
+ picomatch@2.3.1:
+ resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
+ engines: {node: '>=8.6'}
+
+ picomatch@4.0.2:
+ resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==}
+ engines: {node: '>=12'}
+
+ picomatch@4.0.3:
+ resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==}
+ engines: {node: '>=12'}
+
+ pidtree@0.6.0:
+ resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==}
+ engines: {node: '>=0.10'}
+ hasBin: true
+
+ pinia@3.0.4:
+ resolution: {integrity: sha512-l7pqLUFTI/+ESXn6k3nu30ZIzW5E2WZF/LaHJEpoq6ElcLD+wduZoB2kBN19du6K/4FDpPMazY2wJr+IndBtQw==}
+ peerDependencies:
+ typescript: '>=4.5.0'
+ vue: ^3.5.11
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ pkg-types@1.3.1:
+ resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==}
+
+ pkg-types@2.3.0:
+ resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==}
+
+ plop@4.0.5:
+ resolution: {integrity: sha512-pJz6oWC9LyBp5mBrRp8AUV2RNiuGW+t/HOs4zwN+b/3YxoObZOOFvjn1mJMpAeKi2pbXADMFOOVQVTVXEdDHDw==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ pluralize@8.0.0:
+ resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
+ engines: {node: '>=4'}
+
+ pnpm-workspace-yaml@1.6.0:
+ resolution: {integrity: sha512-uUy4dK3E11sp7nK+hnT7uAWfkBMe00KaUw8OG3NuNlYQoTk4sc9pcdIy1+XIP85v9Tvr02mK3JPaNNrP0QyRaw==}
+
+ portfinder@1.0.37:
+ resolution: {integrity: sha512-yuGIEjDAYnnOex9ddMnKZEMFE0CcGo6zbfzDklkmT1m5z734ss6JMzN9rNB3+RR7iS+F10D4/BVIaXOyh8PQKw==}
+ engines: {node: '>= 10.12'}
+
+ posix-character-classes@0.1.1:
+ resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==}
+ engines: {node: '>=0.10.0'}
+
+ possible-typed-array-names@1.1.0:
+ resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==}
+ engines: {node: '>= 0.4'}
+
+ postcss-calc@10.1.1:
+ resolution: {integrity: sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==}
+ engines: {node: ^18.12 || ^20.9 || >=22.0}
+ peerDependencies:
+ postcss: ^8.4.38
+
+ postcss-colormin@7.0.4:
+ resolution: {integrity: sha512-ziQuVzQZBROpKpfeDwmrG+Vvlr0YWmY/ZAk99XD+mGEBuEojoFekL41NCsdhyNUtZI7DPOoIWIR7vQQK9xwluw==}
+ engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+ peerDependencies:
+ postcss: ^8.4.32
+
+ postcss-convert-values@7.0.7:
+ resolution: {integrity: sha512-HR9DZLN04Xbe6xugRH6lS4ZQH2zm/bFh/ZyRkpedZozhvh+awAfbA0P36InO4fZfDhvYfNJeNvlTf1sjwGbw/A==}
+ engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+ peerDependencies:
+ postcss: ^8.4.32
+
+ postcss-discard-comments@7.0.4:
+ resolution: {integrity: sha512-6tCUoql/ipWwKtVP/xYiFf1U9QgJ0PUvxN7pTcsQ8Ns3Fnwq1pU5D5s1MhT/XySeLq6GXNvn37U46Ded0TckWg==}
+ engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+ peerDependencies:
+ postcss: ^8.4.32
+
+ postcss-discard-duplicates@7.0.2:
+ resolution: {integrity: sha512-eTonaQvPZ/3i1ASDHOKkYwAybiM45zFIc7KXils4mQmHLqIswXD9XNOKEVxtTFnsmwYzF66u4LMgSr0abDlh5w==}
+ engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+ peerDependencies:
+ postcss: ^8.4.32
+
+ postcss-discard-empty@7.0.1:
+ resolution: {integrity: sha512-cFrJKZvcg/uxB6Ijr4l6qmn3pXQBna9zyrPC+sK0zjbkDUZew+6xDltSF7OeB7rAtzaaMVYSdbod+sZOCWnMOg==}
+ engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+ peerDependencies:
+ postcss: ^8.4.32
+
+ postcss-discard-overridden@7.0.1:
+ resolution: {integrity: sha512-7c3MMjjSZ/qYrx3uc1940GSOzN1Iqjtlqe8uoSg+qdVPYyRb0TILSqqmtlSFuE4mTDECwsm397Ya7iXGzfF7lg==}
+ engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+ peerDependencies:
+ postcss: ^8.4.32
+
+ postcss-html@1.8.0:
+ resolution: {integrity: sha512-5mMeb1TgLWoRKxZ0Xh9RZDfwUUIqRrcxO2uXO+Ezl1N5lqpCiSU5Gk6+1kZediBfBHFtPCdopr2UZ2SgUsKcgQ==}
+ engines: {node: ^12 || >=14}
+
+ postcss-media-query-parser@0.2.3:
+ resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==}
+
+ postcss-merge-longhand@7.0.5:
+ resolution: {integrity: sha512-Kpu5v4Ys6QI59FxmxtNB/iHUVDn9Y9sYw66D6+SZoIk4QTz1prC4aYkhIESu+ieG1iylod1f8MILMs1Em3mmIw==}
+ engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+ peerDependencies:
+ postcss: ^8.4.32
+
+ postcss-merge-rules@7.0.6:
+ resolution: {integrity: sha512-2jIPT4Tzs8K87tvgCpSukRQ2jjd+hH6Bb8rEEOUDmmhOeTcqDg5fEFK8uKIu+Pvc3//sm3Uu6FRqfyv7YF7+BQ==}
+ engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+ peerDependencies:
+ postcss: ^8.4.32
+
+ postcss-minify-font-values@7.0.1:
+ resolution: {integrity: sha512-2m1uiuJeTplll+tq4ENOQSzB8LRnSUChBv7oSyFLsJRtUgAAJGP6LLz0/8lkinTgxrmJSPOEhgY1bMXOQ4ZXhQ==}
+ engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+ peerDependencies:
+ postcss: ^8.4.32
+
+ postcss-minify-gradients@7.0.1:
+ resolution: {integrity: sha512-X9JjaysZJwlqNkJbUDgOclyG3jZEpAMOfof6PUZjPnPrePnPG62pS17CjdM32uT1Uq1jFvNSff9l7kNbmMSL2A==}
+ engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+ peerDependencies:
+ postcss: ^8.4.32
+
+ postcss-minify-params@7.0.4:
+ resolution: {integrity: sha512-3OqqUddfH8c2e7M35W6zIwv7jssM/3miF9cbCSb1iJiWvtguQjlxZGIHK9JRmc8XAKmE2PFGtHSM7g/VcW97sw==}
+ engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+ peerDependencies:
+ postcss: ^8.4.32
+
+ postcss-minify-selectors@7.0.5:
+ resolution: {integrity: sha512-x2/IvofHcdIrAm9Q+p06ZD1h6FPcQ32WtCRVodJLDR+WMn8EVHI1kvLxZuGKz/9EY5nAmI6lIQIrpo4tBy5+ug==}
+ engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+ peerDependencies:
+ postcss: ^8.4.32
+
+ postcss-nested@7.0.2:
+ resolution: {integrity: sha512-5osppouFc0VR9/VYzYxO03VaDa3e8F23Kfd6/9qcZTUI8P58GIYlArOET2Wq0ywSl2o2PjELhYOFI4W7l5QHKw==}
+ engines: {node: '>=18.0'}
+ peerDependencies:
+ postcss: ^8.2.14
+
+ postcss-normalize-charset@7.0.1:
+ resolution: {integrity: sha512-sn413ofhSQHlZFae//m9FTOfkmiZ+YQXsbosqOWRiVQncU2BA3daX3n0VF3cG6rGLSFVc5Di/yns0dFfh8NFgQ==}
+ engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+ peerDependencies:
+ postcss: ^8.4.32
+
+ postcss-normalize-display-values@7.0.1:
+ resolution: {integrity: sha512-E5nnB26XjSYz/mGITm6JgiDpAbVuAkzXwLzRZtts19jHDUBFxZ0BkXAehy0uimrOjYJbocby4FVswA/5noOxrQ==}
+ engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+ peerDependencies:
+ postcss: ^8.4.32
+
+ postcss-normalize-positions@7.0.1:
+ resolution: {integrity: sha512-pB/SzrIP2l50ZIYu+yQZyMNmnAcwyYb9R1fVWPRxm4zcUFCY2ign7rcntGFuMXDdd9L2pPNUgoODDk91PzRZuQ==}
+ engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+ peerDependencies:
+ postcss: ^8.4.32
+
+ postcss-normalize-repeat-style@7.0.1:
+ resolution: {integrity: sha512-NsSQJ8zj8TIDiF0ig44Byo3Jk9e4gNt9x2VIlJudnQQ5DhWAHJPF4Tr1ITwyHio2BUi/I6Iv0HRO7beHYOloYQ==}
+ engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+ peerDependencies:
+ postcss: ^8.4.32
+
+ postcss-normalize-string@7.0.1:
+ resolution: {integrity: sha512-QByrI7hAhsoze992kpbMlJSbZ8FuCEc1OT9EFbZ6HldXNpsdpZr+YXC5di3UEv0+jeZlHbZcoCADgb7a+lPmmQ==}
+ engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+ peerDependencies:
+ postcss: ^8.4.32
+
+ postcss-normalize-timing-functions@7.0.1:
+ resolution: {integrity: sha512-bHifyuuSNdKKsnNJ0s8fmfLMlvsQwYVxIoUBnowIVl2ZAdrkYQNGVB4RxjfpvkMjipqvbz0u7feBZybkl/6NJg==}
+ engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+ peerDependencies:
+ postcss: ^8.4.32
+
+ postcss-normalize-unicode@7.0.4:
+ resolution: {integrity: sha512-LvIURTi1sQoZqj8mEIE8R15yvM+OhbR1avynMtI9bUzj5gGKR/gfZFd8O7VMj0QgJaIFzxDwxGl/ASMYAkqO8g==}
+ engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+ peerDependencies:
+ postcss: ^8.4.32
+
+ postcss-normalize-url@7.0.1:
+ resolution: {integrity: sha512-sUcD2cWtyK1AOL/82Fwy1aIVm/wwj5SdZkgZ3QiUzSzQQofrbq15jWJ3BA7Z+yVRwamCjJgZJN0I9IS7c6tgeQ==}
+ engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+ peerDependencies:
+ postcss: ^8.4.32
+
+ postcss-normalize-whitespace@7.0.1:
+ resolution: {integrity: sha512-vsbgFHMFQrJBJKrUFJNZ2pgBeBkC2IvvoHjz1to0/0Xk7sII24T0qFOiJzG6Fu3zJoq/0yI4rKWi7WhApW+EFA==}
+ engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+ peerDependencies:
+ postcss: ^8.4.32
+
+ postcss-ordered-values@7.0.2:
+ resolution: {integrity: sha512-AMJjt1ECBffF7CEON/Y0rekRLS6KsePU6PRP08UqYW4UGFRnTXNrByUzYK1h8AC7UWTZdQ9O3Oq9kFIhm0SFEw==}
+ engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+ peerDependencies:
+ postcss: ^8.4.32
+
+ postcss-prefix-selector@1.16.1:
+ resolution: {integrity: sha512-Umxu+FvKMwlY6TyDzGFoSUnzW+NOfMBLyC1tAkIjgX+Z/qGspJeRjVC903D7mx7TuBpJlwti2ibXtWuA7fKMeQ==}
+ peerDependencies:
+ postcss: '>4 <9'
+
+ postcss-reduce-initial@7.0.4:
+ resolution: {integrity: sha512-rdIC9IlMBn7zJo6puim58Xd++0HdbvHeHaPgXsimMfG1ijC5A9ULvNLSE0rUKVJOvNMcwewW4Ga21ngyJjY/+Q==}
+ engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+ peerDependencies:
+ postcss: ^8.4.32
+
+ postcss-reduce-transforms@7.0.1:
+ resolution: {integrity: sha512-MhyEbfrm+Mlp/36hvZ9mT9DaO7dbncU0CvWI8V93LRkY6IYlu38OPg3FObnuKTUxJ4qA8HpurdQOo5CyqqO76g==}
+ engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+ peerDependencies:
+ postcss: ^8.4.32
+
+ postcss-resolve-nested-selector@0.1.6:
+ resolution: {integrity: sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==}
+
+ postcss-safe-parser@6.0.0:
+ resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==}
+ engines: {node: '>=12.0'}
+ peerDependencies:
+ postcss: ^8.3.3
+
+ postcss-safe-parser@7.0.1:
+ resolution: {integrity: sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==}
+ engines: {node: '>=18.0'}
+ peerDependencies:
+ postcss: ^8.4.31
+
+ postcss-scss@4.0.9:
+ resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==}
+ engines: {node: '>=12.0'}
+ peerDependencies:
+ postcss: ^8.4.29
+
+ postcss-selector-parser@7.1.0:
+ resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==}
+ engines: {node: '>=4'}
+
+ postcss-selector-parser@7.1.1:
+ resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==}
+ engines: {node: '>=4'}
+
+ postcss-sorting@8.0.2:
+ resolution: {integrity: sha512-M9dkSrmU00t/jK7rF6BZSZauA5MAaBW4i5EnJXspMwt4iqTh/L9j6fgMnbElEOfyRyfLfVbIHj/R52zHzAPe1Q==}
+ peerDependencies:
+ postcss: ^8.4.20
+
+ postcss-svgo@7.1.0:
+ resolution: {integrity: sha512-KnAlfmhtoLz6IuU3Sij2ycusNs4jPW+QoFE5kuuUOK8awR6tMxZQrs5Ey3BUz7nFCzT3eqyFgqkyrHiaU2xx3w==}
+ engines: {node: ^18.12.0 || ^20.9.0 || >= 18}
+ peerDependencies:
+ postcss: ^8.4.32
+
+ postcss-unique-selectors@7.0.4:
+ resolution: {integrity: sha512-pmlZjsmEAG7cHd7uK3ZiNSW6otSZ13RHuZ/4cDN/bVglS5EpF2r2oxY99SuOHa8m7AWoBCelTS3JPpzsIs8skQ==}
+ engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+ peerDependencies:
+ postcss: ^8.4.32
+
+ postcss-value-parser@4.2.0:
+ resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
+
+ postcss-values-parser@6.0.2:
+ resolution: {integrity: sha512-YLJpK0N1brcNJrs9WatuJFtHaV9q5aAOj+S4DI5S7jgHlRfm0PIbDCAFRYMQD5SHq7Fy6xsDhyutgS0QOAs0qw==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ postcss: ^8.2.9
+
+ postcss@5.2.18:
+ resolution: {integrity: sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==}
+ engines: {node: '>=0.12'}
+
+ postcss@8.5.8:
+ resolution: {integrity: sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==}
+ engines: {node: ^10 || ^12 || >=14}
+
+ posthtml-parser@0.2.1:
+ resolution: {integrity: sha512-nPC53YMqJnc/+1x4fRYFfm81KV2V+G9NZY+hTohpYg64Ay7NemWWcV4UWuy/SgMupqQ3kJ88M/iRfZmSnxT+pw==}
+
+ posthtml-rename-id@1.0.12:
+ resolution: {integrity: sha512-UKXf9OF/no8WZo9edRzvuMenb6AD5hDLzIepJW+a4oJT+T/Lx7vfMYWT4aWlGNQh0WMhnUx1ipN9OkZ9q+ddEw==}
+
+ posthtml-render@1.4.0:
+ resolution: {integrity: sha512-W1779iVHGfq0Fvh2PROhCe2QhB8mEErgqzo1wpIt36tCgChafP+hbXIhLDOM8ePJrZcFs0vkNEtdibEWVqChqw==}
+ engines: {node: '>=10'}
+
+ posthtml-svg-mode@1.0.3:
+ resolution: {integrity: sha512-hEqw9NHZ9YgJ2/0G7CECOeuLQKZi8HjWLkBaSVtOWjygQ9ZD8P7tqeowYs7WrFdKsWEKG7o+IlsPY8jrr0CJpQ==}
+
+ posthtml@0.9.2:
+ resolution: {integrity: sha512-spBB5sgC4cv2YcW03f/IAUN1pgDJWNWD8FzkyY4mArLUMJW+KlQhlmUdKAHQuPfb00Jl5xIfImeOsf6YL8QK7Q==}
+ engines: {node: '>=0.10.0'}
+
+ precinct@12.2.0:
+ resolution: {integrity: sha512-NFBMuwIfaJ4SocE9YXPU/n4AcNSoFMVFjP72nvl3cx69j/ke61/hPOWFREVxLkFhhEGnA8ZuVfTqJBa+PK3b5w==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ prelude-ls@1.2.1:
+ resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
+ engines: {node: '>= 0.8.0'}
+
+ pretty-bytes@6.1.1:
+ resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==}
+ engines: {node: ^14.13.1 || >=16.0.0}
+
+ process-nextick-args@2.0.1:
+ resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
+
+ process@0.11.10:
+ resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
+ engines: {node: '>= 0.6.0'}
+
+ prompts@2.4.2:
+ resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
+ engines: {node: '>= 6'}
+
+ protocols@2.0.2:
+ resolution: {integrity: sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ==}
+
+ proxy-from-env@1.1.0:
+ resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
+
+ pump@3.0.3:
+ resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==}
+
+ punycode@2.3.1:
+ resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
+ engines: {node: '>=6'}
+
+ qified@0.6.0:
+ resolution: {integrity: sha512-tsSGN1x3h569ZSU1u6diwhltLyfUWDp3YbFHedapTmpBl0B3P6U3+Qptg7xu+v+1io1EwhdPyyRHYbEw0KN2FA==}
+ engines: {node: '>=20'}
+
+ qs@6.15.0:
+ resolution: {integrity: sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==}
+ engines: {node: '>=0.6'}
+
+ quansync@0.2.11:
+ resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==}
+
+ quansync@1.0.0:
+ resolution: {integrity: sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA==}
+
+ query-string@4.3.4:
+ resolution: {integrity: sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==}
+ engines: {node: '>=0.10.0'}
+
+ queue-microtask@1.2.3:
+ resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+
+ quote-unquote@1.0.0:
+ resolution: {integrity: sha512-twwRO/ilhlG/FIgYeKGFqyHhoEhqgnKVkcmqMKi2r524gz3ZbDTcyFt38E9xjJI2vT+KbRNHVbnJ/e0I25Azwg==}
+
+ radix3@1.1.2:
+ resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==}
+
+ randombytes@2.1.0:
+ resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
+
+ range-parser@1.2.1:
+ resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
+ engines: {node: '>= 0.6'}
+
+ rc9@2.1.2:
+ resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==}
+
+ read-package-json-fast@4.0.0:
+ resolution: {integrity: sha512-qpt8EwugBWDw2cgE2W+/3oxC+KTez2uSVR8JU9Q36TXPAGCaozfQUs59v4j4GFpWTaw0i6hAZSvOmu1J0uOEUg==}
+ engines: {node: ^18.17.0 || >=20.5.0}
+
+ read-package-up@11.0.0:
+ resolution: {integrity: sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==}
+ engines: {node: '>=18'}
+
+ read-pkg@9.0.1:
+ resolution: {integrity: sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==}
+ engines: {node: '>=18'}
+
+ readable-stream@2.3.8:
+ resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
+
+ readable-stream@3.6.2:
+ resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
+ engines: {node: '>= 6'}
+
+ readable-stream@4.7.0:
+ resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ readdir-glob@1.1.3:
+ resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==}
+
+ readdirp@4.1.2:
+ resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==}
+ engines: {node: '>= 14.18.0'}
+
+ readdirp@5.0.0:
+ resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==}
+ engines: {node: '>= 20.19.0'}
+
+ rechoir@0.8.0:
+ resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==}
+ engines: {node: '>= 10.13.0'}
+
+ redis-errors@1.2.0:
+ resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==}
+ engines: {node: '>=4'}
+
+ redis-parser@3.0.0:
+ resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==}
+ engines: {node: '>=4'}
+
+ refa@0.12.1:
+ resolution: {integrity: sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==}
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+
+ reflect.getprototypeof@1.0.10:
+ resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==}
+ engines: {node: '>= 0.4'}
+
+ regenerate-unicode-properties@10.2.0:
+ resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==}
+ engines: {node: '>=4'}
+
+ regenerate@1.4.2:
+ resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==}
+
+ regenerator-runtime@0.14.1:
+ resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
+
+ regex-not@1.0.2:
+ resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==}
+ engines: {node: '>=0.10.0'}
+
+ regexp-ast-analysis@0.7.1:
+ resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==}
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+
+ regexp-tree@0.1.27:
+ resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==}
+ hasBin: true
+
+ regexp.prototype.flags@1.5.4:
+ resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==}
+ engines: {node: '>= 0.4'}
+
+ regexpu-core@6.2.0:
+ resolution: {integrity: sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==}
+ engines: {node: '>=4'}
+
+ regjsgen@0.8.0:
+ resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==}
+
+ regjsparser@0.12.0:
+ resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==}
+ hasBin: true
+
+ regjsparser@0.13.0:
+ resolution: {integrity: sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==}
+ hasBin: true
+
+ reka-ui@2.9.0:
+ resolution: {integrity: sha512-5dpp80u109iLTbRBu+jhAk8R/877/JN20gYGjb3GsuAgS7E/5QTX5ZxuzWtZAVbChBDYDpXc8pkaQAFpa6s+4w==}
+ peerDependencies:
+ vue: '>= 3.4.0'
+
+ remove-trailing-separator@1.1.0:
+ resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==}
+
+ repeat-element@1.1.4:
+ resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==}
+ engines: {node: '>=0.10.0'}
+
+ repeat-string@1.6.1:
+ resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==}
+ engines: {node: '>=0.10'}
+
+ require-directory@2.1.1:
+ resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
+ engines: {node: '>=0.10.0'}
+
+ require-from-string@2.0.2:
+ resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
+ engines: {node: '>=0.10.0'}
+
+ require-package-name@2.0.1:
+ resolution: {integrity: sha512-uuoJ1hU/k6M0779t3VMVIYpb2VMJk05cehCaABFhXaibcbvfgR8wKiozLjVFSzJPmQMRqIcO0HMyTFqfV09V6Q==}
+
+ requires-port@1.0.0:
+ resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
+
+ reserved-identifiers@1.2.0:
+ resolution: {integrity: sha512-yE7KUfFvaBFzGPs5H3Ops1RevfUEsDc5Iz65rOwWg4lE8HJSYtle77uul3+573457oHvBKuHYDl/xqUkKpEEdw==}
+ engines: {node: '>=18'}
+
+ resolve-dir@1.0.1:
+ resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==}
+ engines: {node: '>=0.10.0'}
+
+ resolve-from@4.0.0:
+ resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
+ engines: {node: '>=4'}
+
+ resolve-from@5.0.0:
+ resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
+ engines: {node: '>=8'}
+
+ resolve-pkg-maps@1.0.0:
+ resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
+
+ resolve-url@0.2.1:
+ resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==}
+ deprecated: https://github.com/lydell/resolve-url#deprecated
+
+ resolve@1.22.10:
+ resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==}
+ engines: {node: '>= 0.4'}
+ hasBin: true
+
+ resolve@2.0.0-next.5:
+ resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==}
+ hasBin: true
+
+ restore-cursor@3.1.0:
+ resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
+ engines: {node: '>=8'}
+
+ restore-cursor@5.1.0:
+ resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==}
+ engines: {node: '>=18'}
+
+ ret@0.1.15:
+ resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==}
+ engines: {node: '>=0.12'}
+
+ reusify@1.1.0:
+ resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
+ engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+
+ rfdc@1.4.1:
+ resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==}
+
+ rollup-plugin-visualizer@6.0.3:
+ resolution: {integrity: sha512-ZU41GwrkDcCpVoffviuM9Clwjy5fcUxlz0oMoTXTYsK+tcIFzbdacnrr2n8TXcHxbGKKXtOdjxM2HUS4HjkwIw==}
+ engines: {node: '>=18'}
+ hasBin: true
+ peerDependencies:
+ rolldown: 1.x || ^1.0.0-beta
+ rollup: 2.x || 3.x || 4.x
+ peerDependenciesMeta:
+ rolldown:
+ optional: true
+ rollup:
+ optional: true
+
+ rollup@4.46.2:
+ resolution: {integrity: sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==}
+ engines: {node: '>=18.0.0', npm: '>=8.0.0'}
+ hasBin: true
+
+ run-applescript@7.0.0:
+ resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==}
+ engines: {node: '>=18'}
+
+ run-async@3.0.0:
+ resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==}
+ engines: {node: '>=0.12.0'}
+
+ run-parallel@1.2.0:
+ resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+
+ rxjs@7.8.2:
+ resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==}
+
+ safe-array-concat@1.1.3:
+ resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==}
+ engines: {node: '>=0.4'}
+
+ safe-buffer@5.1.2:
+ resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
+
+ safe-buffer@5.2.1:
+ resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
+
+ safe-push-apply@1.0.0:
+ resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==}
+ engines: {node: '>= 0.4'}
+
+ safe-regex-test@1.1.0:
+ resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==}
+ engines: {node: '>= 0.4'}
+
+ safe-regex@1.1.0:
+ resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==}
+
+ safe-stable-stringify@2.5.0:
+ resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==}
+ engines: {node: '>=10'}
+
+ safer-buffer@2.1.2:
+ resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
+
+ sass-embedded-all-unknown@1.97.3:
+ resolution: {integrity: sha512-t6N46NlPuXiY3rlmG6/+1nwebOBOaLFOOVqNQOC2cJhghOD4hh2kHNQQTorCsbY9S1Kir2la1/XLBwOJfui0xg==}
+ cpu: ['!arm', '!arm64', '!riscv64', '!x64']
+
+ sass-embedded-android-arm64@1.97.3:
+ resolution: {integrity: sha512-aiZ6iqiHsUsaDx0EFbbmmA0QgxicSxVVN3lnJJ0f1RStY0DthUkquGT5RJ4TPdaZ6ebeJWkboV4bra+CP766eA==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm64]
+ os: [android]
+
+ sass-embedded-android-arm@1.97.3:
+ resolution: {integrity: sha512-cRTtf/KV/q0nzGZoUzVkeIVVFv3L/tS1w4WnlHapphsjTXF/duTxI8JOU1c/9GhRPiMdfeXH7vYNcMmtjwX7jg==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm]
+ os: [android]
+
+ sass-embedded-android-riscv64@1.97.3:
+ resolution: {integrity: sha512-zVEDgl9JJodofGHobaM/q6pNETG69uuBIGQHRo789jloESxxZe82lI3AWJQuPmYCOG5ElfRthqgv89h3gTeLYA==}
+ engines: {node: '>=14.0.0'}
+ cpu: [riscv64]
+ os: [android]
+
+ sass-embedded-android-x64@1.97.3:
+ resolution: {integrity: sha512-3ke0le7ZKepyXn/dKKspYkpBC0zUk/BMciyP5ajQUDy4qJwobd8zXdAq6kOkdiMB+d9UFJOmEkvgFJHl3lqwcw==}
+ engines: {node: '>=14.0.0'}
+ cpu: [x64]
+ os: [android]
+
+ sass-embedded-darwin-arm64@1.97.3:
+ resolution: {integrity: sha512-fuqMTqO4gbOmA/kC5b9y9xxNYw6zDEyfOtMgabS7Mz93wimSk2M1quQaTJnL98Mkcsl2j+7shNHxIS/qpcIDDA==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+
+ sass-embedded-darwin-x64@1.97.3:
+ resolution: {integrity: sha512-b/2RBs/2bZpP8lMkyZ0Px0vkVkT8uBd0YXpOwK7iOwYkAT8SsO4+WdVwErsqC65vI5e1e5p1bb20tuwsoQBMVA==}
+ engines: {node: '>=14.0.0'}
+ cpu: [x64]
+ os: [darwin]
+
+ sass-embedded-linux-arm64@1.97.3:
+ resolution: {integrity: sha512-IP1+2otCT3DuV46ooxPaOKV1oL5rLjteRzf8ldZtfIEcwhSgSsHgA71CbjYgLEwMY9h4jeal8Jfv3QnedPvSjg==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: glibc
+
+ sass-embedded-linux-arm@1.97.3:
+ resolution: {integrity: sha512-2lPQ7HQQg4CKsH18FTsj2hbw5GJa6sBQgDsls+cV7buXlHjqF8iTKhAQViT6nrpLK/e8nFCoaRgSqEC8xMnXuA==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm]
+ os: [linux]
+ libc: glibc
+
+ sass-embedded-linux-musl-arm64@1.97.3:
+ resolution: {integrity: sha512-Lij0SdZCsr+mNRSyDZ7XtJpXEITrYsaGbOTz5e6uFLJ9bmzUbV7M8BXz2/cA7bhfpRPT7/lwRKPdV4+aR9Ozcw==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: musl
+
+ sass-embedded-linux-musl-arm@1.97.3:
+ resolution: {integrity: sha512-cBTMU68X2opBpoYsSZnI321gnoaiMBEtc+60CKCclN6PCL3W3uXm8g4TLoil1hDD6mqU9YYNlVG6sJ+ZNef6Lg==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm]
+ os: [linux]
+ libc: musl
+
+ sass-embedded-linux-musl-riscv64@1.97.3:
+ resolution: {integrity: sha512-sBeLFIzMGshR4WmHAD4oIM7WJVkSoCIEwutzptFtGlSlwfNiijULp+J5hA2KteGvI6Gji35apR5aWj66wEn/iA==}
+ engines: {node: '>=14.0.0'}
+ cpu: [riscv64]
+ os: [linux]
+ libc: musl
+
+ sass-embedded-linux-musl-x64@1.97.3:
+ resolution: {integrity: sha512-/oWJ+OVrDg7ADDQxRLC/4g1+Nsz1g4mkYS2t6XmyMJKFTFK50FVI2t5sOdFH+zmMp+nXHKM036W94y9m4jjEcw==}
+ engines: {node: '>=14.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: musl
+
+ sass-embedded-linux-riscv64@1.97.3:
+ resolution: {integrity: sha512-l3IfySApLVYdNx0Kjm7Zehte1CDPZVcldma3dZt+TfzvlAEerM6YDgsk5XEj3L8eHBCgHgF4A0MJspHEo2WNfA==}
+ engines: {node: '>=14.0.0'}
+ cpu: [riscv64]
+ os: [linux]
+ libc: glibc
+
+ sass-embedded-linux-x64@1.97.3:
+ resolution: {integrity: sha512-Kwqwc/jSSlcpRjULAOVbndqEy2GBzo6OBmmuBVINWUaJLJ8Kczz3vIsDUWLfWz/kTEw9FHBSiL0WCtYLVAXSLg==}
+ engines: {node: '>=14.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: glibc
+
+ sass-embedded-unknown-all@1.97.3:
+ resolution: {integrity: sha512-/GHajyYJmvb0IABUQHbVHf1nuHPtIDo/ClMZ81IDr59wT5CNcMe7/dMNujXwWugtQVGI5UGmqXWZQCeoGnct8Q==}
+ os: ['!android', '!darwin', '!linux', '!win32']
+
+ sass-embedded-win32-arm64@1.97.3:
+ resolution: {integrity: sha512-RDGtRS1GVvQfMGAmVXNxYiUOvPzn9oO1zYB/XUM9fudDRnieYTcUytpNTQZLs6Y1KfJxgt5Y+giRceC92fT8Uw==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm64]
+ os: [win32]
+
+ sass-embedded-win32-x64@1.97.3:
+ resolution: {integrity: sha512-SFRa2lED9UEwV6vIGeBXeBOLKF+rowF3WmNfb/BzhxmdAsKofCXrJ8ePW7OcDVrvNEbTOGwhsReIsF5sH8fVaw==}
+ engines: {node: '>=14.0.0'}
+ cpu: [x64]
+ os: [win32]
+
+ sass-embedded@1.97.3:
+ resolution: {integrity: sha512-eKzFy13Nk+IRHhlAwP3sfuv+PzOrvzUkwJK2hdoCKYcWGSdmwFpeGpWmyewdw8EgBnsKaSBtgf/0b2K635ecSA==}
+ engines: {node: '>=16.0.0'}
+ hasBin: true
+
+ sass@1.97.3:
+ resolution: {integrity: sha512-fDz1zJpd5GycprAbu4Q2PV/RprsRtKC/0z82z0JLgdytmcq0+ujJbJ/09bPGDxCLkKY3Np5cRAOcWiVkLXJURg==}
+ engines: {node: '>=14.0.0'}
+ hasBin: true
+
+ sax@1.5.0:
+ resolution: {integrity: sha512-21IYA3Q5cQf089Z6tgaUTr7lDAyzoTPx5HRtbhsME8Udispad8dC/+sziTNugOEx54ilvatQ9YCzl4KQLPcRHA==}
+ engines: {node: '>=11.0.0'}
+
+ scslre@0.3.0:
+ resolution: {integrity: sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ==}
+ engines: {node: ^14.0.0 || >=16.0.0}
+
+ scule@1.3.0:
+ resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==}
+
+ secure-compare@3.0.1:
+ resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==}
+
+ semver@6.3.1:
+ resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
+ hasBin: true
+
+ semver@7.7.2:
+ resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ semver@7.7.3:
+ resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ semver@7.7.4:
+ resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ send@1.2.0:
+ resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==}
+ engines: {node: '>= 18'}
+
+ serialize-javascript@6.0.2:
+ resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
+
+ serve-placeholder@2.0.2:
+ resolution: {integrity: sha512-/TMG8SboeiQbZJWRlfTCqMs2DD3SZgWp0kDQePz9yUuCnDfDh/92gf7/PxGhzXTKBIPASIHxFcZndoNbp6QOLQ==}
+
+ serve-static@2.2.0:
+ resolution: {integrity: sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==}
+ engines: {node: '>= 18'}
+
+ set-function-length@1.2.2:
+ resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
+ engines: {node: '>= 0.4'}
+
+ set-function-name@2.0.2:
+ resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
+ engines: {node: '>= 0.4'}
+
+ set-proto@1.0.0:
+ resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==}
+ engines: {node: '>= 0.4'}
+
+ set-value@2.0.1:
+ resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==}
+ engines: {node: '>=0.10.0'}
+
+ setprototypeof@1.2.0:
+ resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
+
+ shebang-command@2.0.0:
+ resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
+ engines: {node: '>=8'}
+
+ shebang-regex@3.0.0:
+ resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
+ engines: {node: '>=8'}
+
+ shell-quote@1.8.3:
+ resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==}
+ engines: {node: '>= 0.4'}
+
+ side-channel-list@1.0.0:
+ resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
+ engines: {node: '>= 0.4'}
+
+ side-channel-map@1.0.1:
+ resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==}
+ engines: {node: '>= 0.4'}
+
+ side-channel-weakmap@1.0.2:
+ resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==}
+ engines: {node: '>= 0.4'}
+
+ side-channel@1.1.0:
+ resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
+ engines: {node: '>= 0.4'}
+
+ signal-exit@3.0.7:
+ resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
+
+ signal-exit@4.1.0:
+ resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
+ engines: {node: '>=14'}
+
+ simple-git-hooks@2.13.1:
+ resolution: {integrity: sha512-WszCLXwT4h2k1ufIXAgsbiTOazqqevFCIncOuUBZJ91DdvWcC5+OFkluWRQPrcuSYd8fjq+o2y1QfWqYMoAToQ==}
+ hasBin: true
+
+ simple-git@3.28.0:
+ resolution: {integrity: sha512-Rs/vQRwsn1ILH1oBUy8NucJlXmnnLeLCfcvbSehkPzbv3wwoFWIdtfd6Ndo6ZPhlPsCZ60CPI4rxurnwAa+a2w==}
+
+ simple-swizzle@0.2.2:
+ resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
+
+ sirv@3.0.2:
+ resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==}
+ engines: {node: '>=18'}
+
+ sisteransi@1.0.5:
+ resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
+
+ slash@5.1.0:
+ resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==}
+ engines: {node: '>=14.16'}
+
+ slice-ansi@4.0.0:
+ resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==}
+ engines: {node: '>=10'}
+
+ slice-ansi@7.1.0:
+ resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==}
+ engines: {node: '>=18'}
+
+ smob@1.5.0:
+ resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==}
+
+ snapdragon-node@2.1.1:
+ resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==}
+ engines: {node: '>=0.10.0'}
+
+ snapdragon-util@3.0.1:
+ resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==}
+ engines: {node: '>=0.10.0'}
+
+ snapdragon@0.8.2:
+ resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==}
+ engines: {node: '>=0.10.0'}
+
+ source-map-js@1.2.1:
+ resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
+ 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
+
+ source-map-support@0.5.21:
+ resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
+
+ source-map-url@0.4.1:
+ resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==}
+ deprecated: See https://github.com/lydell/source-map-url#deprecated
+
+ source-map@0.5.7:
+ resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==}
+ engines: {node: '>=0.10.0'}
+
+ source-map@0.6.1:
+ resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
+ engines: {node: '>=0.10.0'}
+
+ source-map@0.7.6:
+ resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==}
+ engines: {node: '>= 12'}
+
+ spdx-correct@3.2.0:
+ resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
+
+ spdx-exceptions@2.5.0:
+ resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==}
+
+ spdx-expression-parse@3.0.1:
+ resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
+
+ spdx-expression-parse@4.0.0:
+ resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==}
+
+ spdx-license-ids@3.0.21:
+ resolution: {integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==}
+
+ speakingurl@14.0.1:
+ resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==}
+ engines: {node: '>=0.10.0'}
+
+ split-string@3.1.0:
+ resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==}
+ engines: {node: '>=0.10.0'}
+
+ 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'
+
+ stack-trace@0.0.10:
+ resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==}
+
+ standard-as-callback@2.1.0:
+ resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==}
+
+ static-extend@0.1.2:
+ resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==}
+ engines: {node: '>=0.10.0'}
+
+ statuses@2.0.1:
+ resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
+ engines: {node: '>= 0.8'}
+
+ statuses@2.0.2:
+ resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==}
+ engines: {node: '>= 0.8'}
+
+ std-env@3.9.0:
+ resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==}
+
+ stop-iteration-iterator@1.1.0:
+ resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==}
+ engines: {node: '>= 0.4'}
+
+ streamx@2.22.1:
+ resolution: {integrity: sha512-znKXEBxfatz2GBNK02kRnCXjV+AA4kjZIUxeWSr3UGirZMJfTE9uiwKHobnbgxWyL/JWro8tTq+vOqAK1/qbSA==}
+
+ strict-uri-encode@1.1.0:
+ resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==}
+ engines: {node: '>=0.10.0'}
+
+ string-argv@0.3.2:
+ resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==}
+ engines: {node: '>=0.6.19'}
+
+ string-width@4.2.3:
+ resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
+ engines: {node: '>=8'}
+
+ string-width@5.1.2:
+ resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
+ engines: {node: '>=12'}
+
+ string-width@7.2.0:
+ resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==}
+ engines: {node: '>=18'}
+
+ string-width@8.2.0:
+ resolution: {integrity: sha512-6hJPQ8N0V0P3SNmP6h2J99RLuzrWz2gvT7VnK5tKvrNqJoyS9W4/Fb8mo31UiPvy00z7DQXkP2hnKBVav76thw==}
+ engines: {node: '>=20'}
+
+ string.prototype.trim@1.2.10:
+ resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==}
+ engines: {node: '>= 0.4'}
+
+ string.prototype.trimend@1.0.9:
+ resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==}
+ engines: {node: '>= 0.4'}
+
+ string.prototype.trimstart@1.0.8:
+ resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
+ engines: {node: '>= 0.4'}
+
+ string_decoder@1.1.1:
+ resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
+
+ string_decoder@1.3.0:
+ resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
+
+ strip-ansi@3.0.1:
+ resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==}
+ engines: {node: '>=0.10.0'}
+
+ strip-ansi@6.0.1:
+ resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
+ engines: {node: '>=8'}
+
+ strip-ansi@7.1.0:
+ resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
+ engines: {node: '>=12'}
+
+ strip-ansi@7.2.0:
+ resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==}
+ engines: {node: '>=12'}
+
+ strip-final-newline@3.0.0:
+ resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
+ engines: {node: '>=12'}
+
+ strip-indent@4.1.1:
+ resolution: {integrity: sha512-SlyRoSkdh1dYP0PzclLE7r0M9sgbFKKMFXpFRUMNuKhQSbC6VQIGzq3E0qsfvGJaUFJPGv6Ws1NZ/haTAjfbMA==}
+ engines: {node: '>=12'}
+
+ strip-json-comments@3.1.1:
+ resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
+ engines: {node: '>=8'}
+
+ strip-literal@3.1.0:
+ resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==}
+
+ structured-clone-es@1.0.0:
+ resolution: {integrity: sha512-FL8EeKFFyNQv5cMnXI31CIMCsFarSVI2bF0U0ImeNE3g/F1IvJQyqzOXxPBRXiwQfyBTlbNe88jh1jFW0O/jiQ==}
+
+ style-search@0.1.0:
+ resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==}
+
+ stylehacks@7.0.6:
+ resolution: {integrity: sha512-iitguKivmsueOmTO0wmxURXBP8uqOO+zikLGZ7Mm9e/94R4w5T999Js2taS/KBOnQ/wdC3jN3vNSrkGDrlnqQg==}
+ engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+ peerDependencies:
+ postcss: ^8.4.32
+
+ stylelint-config-html@1.1.0:
+ resolution: {integrity: sha512-IZv4IVESjKLumUGi+HWeb7skgO6/g4VMuAYrJdlqQFndgbj6WJAXPhaysvBiXefX79upBdQVumgYcdd17gCpjQ==}
+ engines: {node: ^12 || >=14}
+ peerDependencies:
+ postcss-html: ^1.0.0
+ stylelint: '>=14.0.0'
+
+ stylelint-config-recess-order@7.6.1:
+ resolution: {integrity: sha512-ac0H/Iy2chh1YBADrua87G+nJCmG/SdG7gjnoLvtfpN0D+RuNfuADawfbCKvm0LMp5hvuRFNkJsu6xNoLM5ToA==}
+ peerDependencies:
+ stylelint: ^16.18.0 || ^17.0.0
+ stylelint-order: ^7.0.0
+
+ stylelint-config-recommended-scss@17.0.0:
+ resolution: {integrity: sha512-VkVD9r7jfUT/dq3mA3/I1WXXk2U71rO5wvU2yIil9PW5o1g3UM7Xc82vHmuVJHV7Y8ok5K137fmW5u3HbhtTOA==}
+ engines: {node: '>=20'}
+ peerDependencies:
+ postcss: ^8.3.3
+ stylelint: ^17.0.0
+ peerDependenciesMeta:
+ postcss:
+ optional: true
+
+ stylelint-config-recommended-vue@1.6.0:
+ resolution: {integrity: sha512-syk1adIHvbH2T1OiR/spUK4oQy35PZIDw8Zmc7E0+eVK9Z9SK3tdMpGRT/bgGnAPpMt/WaL9K1u0tlF6xM0sMQ==}
+ engines: {node: ^12 || >=14}
+ peerDependencies:
+ postcss-html: ^1.0.0
+ stylelint: '>=14.0.0'
+
+ stylelint-config-recommended@16.0.0:
+ resolution: {integrity: sha512-4RSmPjQegF34wNcK1e1O3Uz91HN8P1aFdFzio90wNK9mjgAI19u5vsU868cVZboKzCaa5XbpvtTzAAGQAxpcXA==}
+ engines: {node: '>=18.12.0'}
+ peerDependencies:
+ stylelint: ^16.16.0
+
+ stylelint-config-recommended@18.0.0:
+ resolution: {integrity: sha512-mxgT2XY6YZ3HWWe3Di8umG6aBmWmHTblTgu/f10rqFXnyWxjKWwNdjSWkgkwCtxIKnqjSJzvFmPT5yabVIRxZg==}
+ engines: {node: '>=20.19.0'}
+ peerDependencies:
+ stylelint: ^17.0.0
+
+ stylelint-config-standard-scss@17.0.0:
+ resolution: {integrity: sha512-uLJS6xgOCBw5EMsDW7Ukji8l28qRoMnkRch15s0qwZpskXvWt9oPzMmcYM307m9GN4MxuWLsQh4I6hU9yI53cQ==}
+ engines: {node: '>=20'}
+ peerDependencies:
+ postcss: ^8.3.3
+ stylelint: ^17.0.0
+ peerDependenciesMeta:
+ postcss:
+ optional: true
+
+ stylelint-config-standard-vue@1.0.0:
+ resolution: {integrity: sha512-wAzU7p6DSlo04pWfCbOcaMq09Nojt0FEsbdxhCBTdC7IguD9ZVl7FP/bvyA0HAHjZGC4JkW7m6WiQaoVMDSuFw==}
+ engines: {node: ^12 || >=14}
+ peerDependencies:
+ postcss-html: ^1.0.0
+ stylelint: '>=14.0.0'
+
+ stylelint-config-standard@38.0.0:
+ resolution: {integrity: sha512-uj3JIX+dpFseqd/DJx8Gy3PcRAJhlEZ2IrlFOc4LUxBX/PNMEQ198x7LCOE2Q5oT9Vw8nyc4CIL78xSqPr6iag==}
+ engines: {node: '>=18.12.0'}
+ peerDependencies:
+ stylelint: ^16.18.0
+
+ stylelint-config-standard@40.0.0:
+ resolution: {integrity: sha512-EznGJxOUhtWck2r6dJpbgAdPATIzvpLdK9+i5qPd4Lx70es66TkBPljSg4wN3Qnc6c4h2n+WbUrUynQ3fanjHw==}
+ engines: {node: '>=20.19.0'}
+ peerDependencies:
+ stylelint: ^17.0.0
+
+ stylelint-order@6.0.4:
+ resolution: {integrity: sha512-0UuKo4+s1hgQ/uAxlYU4h0o0HS4NiQDud0NAUNI0aa8FJdmYHA5ZZTFHiV5FpmE3071e9pZx5j0QpVJW5zOCUA==}
+ peerDependencies:
+ stylelint: ^14.0.0 || ^15.0.0 || ^16.0.1
+
+ stylelint-scss@7.0.0:
+ resolution: {integrity: sha512-H88kCC+6Vtzj76NsC8rv6x/LW8slBzIbyeSjsKVlS+4qaEJoDrcJR4L+8JdrR2ORdTscrBzYWiiT2jq6leYR1Q==}
+ engines: {node: '>=20.19.0'}
+ peerDependencies:
+ stylelint: ^16.8.2 || ^17.0.0
+
+ stylelint@17.4.0:
+ resolution: {integrity: sha512-3kQ2/cHv3Zt8OBg+h2B8XCx9evEABQIrv4hh3uXahGz/ZEHrTR80zxBiK2NfXNaSoyBzxO1pjsz1Vhdzwn5XSw==}
+ engines: {node: '>=20.19.0'}
+ hasBin: true
+
+ superjson@2.2.2:
+ resolution: {integrity: sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==}
+ engines: {node: '>=16'}
+
+ supports-color@10.2.2:
+ resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==}
+ engines: {node: '>=18'}
+
+ supports-color@2.0.0:
+ resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==}
+ engines: {node: '>=0.8.0'}
+
+ supports-color@3.2.3:
+ resolution: {integrity: sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==}
+ engines: {node: '>=0.8.0'}
+
+ supports-color@7.2.0:
+ resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
+ engines: {node: '>=8'}
+
+ supports-color@8.1.1:
+ resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
+ engines: {node: '>=10'}
+
+ supports-hyperlinks@4.4.0:
+ resolution: {integrity: sha512-UKbpT93hN5Nr9go5UY7bopIB9YQlMz9nm/ct4IXt/irb5YRkn9WaqrOBJGZ5Pwvsd5FQzSVeYlGdXoCAPQZrPg==}
+ engines: {node: '>=20'}
+
+ supports-preserve-symlinks-flag@1.0.0:
+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
+ engines: {node: '>= 0.4'}
+
+ svg-baker@1.7.0:
+ resolution: {integrity: sha512-nibslMbkXOIkqKVrfcncwha45f97fGuAOn1G99YwnwTj8kF9YiM6XexPcUso97NxOm6GsP0SIvYVIosBis1xLg==}
+
+ svg-tags@1.0.0:
+ resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==}
+
+ svgo@2.8.0:
+ resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==}
+ engines: {node: '>=10.13.0'}
+ hasBin: true
+
+ svgo@4.0.1:
+ resolution: {integrity: sha512-XDpWUOPC6FEibaLzjfe0ucaV0YrOjYotGJO1WpF0Zd+n6ZGEQUsSugaoLq9QkEZtAfQIxT42UChcssDVPP3+/w==}
+ engines: {node: '>=16'}
+ hasBin: true
+
+ sync-child-process@1.0.2:
+ resolution: {integrity: sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA==}
+ engines: {node: '>=16.0.0'}
+
+ sync-message-port@1.1.3:
+ resolution: {integrity: sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg==}
+ engines: {node: '>=16.0.0'}
+
+ synckit@0.11.12:
+ resolution: {integrity: sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+
+ system-architecture@0.1.0:
+ resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==}
+ engines: {node: '>=18'}
+
+ systemjs@6.15.1:
+ resolution: {integrity: sha512-Nk8c4lXvMB98MtbmjX7JwJRgJOL8fluecYCfCeYBznwmpOs8Bf15hLM6z4z71EDAhQVrQrI+wt1aLWSXZq+hXA==}
+
+ table@6.9.0:
+ resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==}
+ engines: {node: '>=10.0.0'}
+
+ tailwind-merge@3.5.0:
+ resolution: {integrity: sha512-I8K9wewnVDkL1NTGoqWmVEIlUcB9gFriAEkXkfCjX5ib8ezGxtR3xD7iZIxrfArjEsH7F1CHD4RFUtxefdqV/A==}
+
+ tapable@2.2.2:
+ resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==}
+ engines: {node: '>=6'}
+
+ tar-mini@0.2.0:
+ resolution: {integrity: sha512-+qfUHz700DWnRutdUsxRRVZ38G1Qr27OetwaMYTdg8hcPxf46U0S1Zf76dQMWRBmusOt2ZCK5kbIaiLkoGO7WQ==}
+
+ tar-stream@3.1.7:
+ resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==}
+
+ tar@7.4.3:
+ resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==}
+ engines: {node: '>=18'}
+
+ taze@19.10.0:
+ resolution: {integrity: sha512-pylMr+Yl8m4ZXu5LwWdtfCOJhLW69NuoeZTLtRzTekfheQ1ix5wOWjQlTb8S3SSxLlDcYFuajQOWllO5iyE0jg==}
+ hasBin: true
+
+ terser@5.41.0:
+ resolution: {integrity: sha512-H406eLPXpZbAX14+B8psIuvIr8+3c+2hkuYzpMkoE0ij+NdsVATbA78vb8neA/eqrj7rywa2pIkdmWRsXW6wmw==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ text-decoder@1.2.3:
+ resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==}
+
+ text-hex@1.0.0:
+ resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==}
+
+ tiny-invariant@1.3.3:
+ resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
+
+ tinyexec@1.0.2:
+ resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==}
+ engines: {node: '>=18'}
+
+ tinyglobby@0.2.14:
+ resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==}
+ engines: {node: '>=12.0.0'}
+
+ tinyglobby@0.2.15:
+ resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==}
+ engines: {node: '>=12.0.0'}
+
+ title-case@4.3.2:
+ resolution: {integrity: sha512-I/nkcBo73mO42Idfv08jhInV61IMb61OdIFxk+B4Gu1oBjWBPOLmhZdsli+oJCVaD+86pYQA93cJfFt224ZFAA==}
+
+ tmp-promise@3.0.3:
+ resolution: {integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==}
+
+ tmp@0.2.5:
+ resolution: {integrity: sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==}
+ engines: {node: '>=14.14'}
+
+ to-object-path@0.3.0:
+ resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==}
+ engines: {node: '>=0.10.0'}
+
+ to-regex-range@2.1.1:
+ resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==}
+ engines: {node: '>=0.10.0'}
+
+ to-regex-range@5.0.1:
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
+ engines: {node: '>=8.0'}
+
+ to-regex@3.0.2:
+ resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==}
+ engines: {node: '>=0.10.0'}
+
+ to-valid-identifier@1.0.0:
+ resolution: {integrity: sha512-41wJyvKep3yT2tyPqX/4blcfybknGB4D+oETKLs7Q76UiPqRpUJK3hr1nxelyYO0PHKVzJwlu0aCeEAsGI6rpw==}
+ engines: {node: '>=20'}
+
+ toidentifier@1.0.1:
+ resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
+ engines: {node: '>=0.6'}
+
+ toml-eslint-parser@1.0.3:
+ resolution: {integrity: sha512-A5F0cM6+mDleacLIEUkmfpkBbnHJFV1d2rprHU2MXNk7mlxHq2zGojA+SRvQD1RoMo9gqjZPWEaKG4v1BQ48lw==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+
+ toml@3.0.0:
+ resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==}
+
+ totalist@3.0.1:
+ resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
+ engines: {node: '>=6'}
+
+ tr46@0.0.3:
+ resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
+
+ traverse@0.6.11:
+ resolution: {integrity: sha512-vxXDZg8/+p3gblxB6BhhG5yWVn1kGRlaL8O78UDXc3wRnPizB5g83dcvWV1jpDMIPnjZjOFuxlMmE82XJ4407w==}
+ engines: {node: '>= 0.4'}
+
+ triple-beam@1.4.1:
+ resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==}
+ engines: {node: '>= 14.0.0'}
+
+ ts-api-utils@2.4.0:
+ resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==}
+ engines: {node: '>=18.12'}
+ peerDependencies:
+ typescript: '>=4.8.4'
+
+ ts-declaration-location@1.0.7:
+ resolution: {integrity: sha512-EDyGAwH1gO0Ausm9gV6T2nUvBgXT5kGoCMJPllOaooZ+4VvJiKBdZE7wK18N1deEowhcUptS+5GXZK8U/fvpwA==}
+ peerDependencies:
+ typescript: '>=4.0.0'
+
+ tslib@2.8.1:
+ resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
+
+ tsx@4.21.0:
+ resolution: {integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==}
+ engines: {node: '>=18.0.0'}
+ hasBin: true
+
+ type-check@0.4.0:
+ resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
+ engines: {node: '>= 0.8.0'}
+
+ type-fest@0.21.3:
+ resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
+ engines: {node: '>=10'}
+
+ type-fest@4.41.0:
+ resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==}
+ engines: {node: '>=16'}
+
+ type-level-regexp@0.1.17:
+ resolution: {integrity: sha512-wTk4DH3cxwk196uGLK/E9pE45aLfeKJacKmcEgEOA/q5dnPGNxXt0cfYdFxb57L+sEpf1oJH4Dnx/pnRcku9jg==}
+
+ typed-array-buffer@1.0.3:
+ resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==}
+ engines: {node: '>= 0.4'}
+
+ typed-array-byte-length@1.0.3:
+ resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==}
+ engines: {node: '>= 0.4'}
+
+ typed-array-byte-offset@1.0.4:
+ resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==}
+ engines: {node: '>= 0.4'}
+
+ typed-array-length@1.0.7:
+ resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==}
+ engines: {node: '>= 0.4'}
+
+ typedarray.prototype.slice@1.0.5:
+ resolution: {integrity: sha512-q7QNVDGTdl702bVFiI5eY4l/HkgCM6at9KhcFbgUAzezHFbOVy4+0O/lCjsABEQwbZPravVfBIiBVGo89yzHFg==}
+ engines: {node: '>= 0.4'}
+
+ typescript@5.9.3:
+ resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
+ engines: {node: '>=14.17'}
+ hasBin: true
+
+ ua-is-frozen@0.1.2:
+ resolution: {integrity: sha512-RwKDW2p3iyWn4UbaxpP2+VxwqXh0jpvdxsYpZ5j/MLLiQOfbsV5shpgQiw93+KMYQPcteeMQ289MaAFzs3G9pw==}
+
+ ua-parser-js@2.0.9:
+ resolution: {integrity: sha512-OsqGhxyo/wGdLSXMSJxuMGN6H4gDnKz6Fb3IBm4bxZFMnyy0sdf6MN96Ie8tC6z/btdO+Bsy8guxlvLdwT076w==}
+ hasBin: true
+
+ ufo@1.6.1:
+ resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==}
+
+ uglify-js@3.19.3:
+ resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==}
+ engines: {node: '>=0.8.0'}
+ hasBin: true
+
+ ultrahtml@1.6.0:
+ resolution: {integrity: sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==}
+
+ unbox-primitive@1.1.0:
+ resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==}
+ engines: {node: '>= 0.4'}
+
+ unc-path-regex@0.1.2:
+ resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==}
+ engines: {node: '>=0.10.0'}
+
+ unconfig-core@7.5.0:
+ resolution: {integrity: sha512-Su3FauozOGP44ZmKdHy2oE6LPjk51M/TRRjHv2HNCWiDvfvCoxC2lno6jevMA91MYAdCdwP05QnWdWpSbncX/w==}
+
+ unconfig@7.5.0:
+ resolution: {integrity: sha512-oi8Qy2JV4D3UQ0PsopR28CzdQ3S/5A1zwsUwp/rosSbfhJ5z7b90bIyTwi/F7hCLD4SGcZVjDzd4XoUQcEanvA==}
+
+ uncrypto@0.1.3:
+ resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==}
+
+ unctx@2.4.1:
+ resolution: {integrity: sha512-AbaYw0Nm4mK4qjhns67C+kgxR2YWiwlDBPzxrN8h8C6VtAdCgditAY5Dezu3IJy4XVqAnbrXt9oQJvsn3fyozg==}
+
+ undici-types@6.21.0:
+ resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
+
+ unenv@2.0.0-rc.19:
+ resolution: {integrity: sha512-t/OMHBNAkknVCI7bVB9OWjUUAwhVv9vsPIAGnNUxnu3FxPQN11rjh0sksLMzc3g7IlTgvHmOTl4JM7JHpcv5wA==}
+
+ unhead@2.0.14:
+ resolution: {integrity: sha512-dRP6OCqtShhMVZQe1F4wdt/WsYl2MskxKK+cvfSo0lQnrPJ4oAUQEkxRg7pPP+vJENabhlir31HwAyHUv7wfMg==}
+
+ unicode-canonical-property-names-ecmascript@2.0.1:
+ resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==}
+ engines: {node: '>=4'}
+
+ unicode-match-property-ecmascript@2.0.0:
+ resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==}
+ engines: {node: '>=4'}
+
+ unicode-match-property-value-ecmascript@2.2.0:
+ resolution: {integrity: sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==}
+ engines: {node: '>=4'}
+
+ unicode-property-aliases-ecmascript@2.1.0:
+ resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==}
+ engines: {node: '>=4'}
+
+ unicorn-magic@0.1.0:
+ resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==}
+ engines: {node: '>=18'}
+
+ unicorn-magic@0.3.0:
+ resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==}
+ engines: {node: '>=18'}
+
+ unicorn-magic@0.4.0:
+ resolution: {integrity: sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==}
+ engines: {node: '>=20'}
+
+ unimport@5.7.0:
+ resolution: {integrity: sha512-njnL6sp8lEA8QQbZrt+52p/g4X0rw3bnGGmUcJnt1jeG8+iiqO779aGz0PirCtydAIVcuTBRlJ52F0u46z309Q==}
+ engines: {node: '>=18.12.0'}
+
+ union-value@1.0.1:
+ resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==}
+ engines: {node: '>=0.10.0'}
+
+ union@0.5.0:
+ resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==}
+ engines: {node: '>= 0.8.0'}
+
+ unist-util-is@6.0.0:
+ resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==}
+
+ unist-util-stringify-position@4.0.0:
+ resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
+
+ unist-util-visit-parents@6.0.1:
+ resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==}
+
+ unist-util-visit@5.0.0:
+ resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
+
+ universalify@2.0.1:
+ resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
+ engines: {node: '>= 10.0.0'}
+
+ unixify@1.0.0:
+ resolution: {integrity: sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==}
+ engines: {node: '>=0.10.0'}
+
+ unocss-preset-animations@1.3.0:
+ resolution: {integrity: sha512-NLsBzPB98Jc8b6+t8nwLItI12ZE/48IZVccZ2uA2owLoeAvhRaDoRvs6eLcJfIUZfRycL25xxOeQoOBMo1p/aw==}
+ peerDependencies:
+ '@unocss/preset-wind3': '>=0.56.0 < 101'
+ unocss: '>=0.56.0 < 101'
+ peerDependenciesMeta:
+ '@unocss/preset-wind3':
+ optional: true
+
+ unocss@66.6.6:
+ resolution: {integrity: sha512-PRKK945e2oZKHV664MA5Z9CDHbvY/V79IvTOUWKZ514jpl3UsJU3sS+skgxmKJSmwrWvXE5OVcmPthJrD/7vxg==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@unocss/astro': 66.6.6
+ '@unocss/postcss': 66.6.6
+ '@unocss/webpack': 66.6.6
+ peerDependenciesMeta:
+ '@unocss/astro':
+ optional: true
+ '@unocss/postcss':
+ optional: true
+ '@unocss/webpack':
+ optional: true
+
+ unplugin-auto-import@21.0.0:
+ resolution: {integrity: sha512-vWuC8SwqJmxZFYwPojhOhOXDb5xFhNNcEVb9K/RFkyk/3VnfaOjzitWN7v+8DEKpMjSsY2AEGXNgt6I0yQrhRQ==}
+ engines: {node: '>=20.19.0'}
+ peerDependencies:
+ '@nuxt/kit': ^4.0.0
+ '@vueuse/core': '*'
+ peerDependenciesMeta:
+ '@nuxt/kit':
+ optional: true
+ '@vueuse/core':
+ optional: true
+
+ unplugin-turbo-console@2.3.0:
+ resolution: {integrity: sha512-rOm1MySxmCP7i384Rh5iqksHKPfczgbkVScGBVP8B5YulAY8VWIIb1KXKWwR3OnR3epVENLSBpm0SzxmBWfM0A==}
+ engines: {node: '>=20'}
+ peerDependencies:
+ '@farmfe/core': '>=1'
+ '@nuxt/kit': '>=3'
+ '@nuxt/schema': '>=3'
+ astro: '>=3'
+ esbuild: '*'
+ rollup: '>=3'
+ vite: '>=3'
+ vue: '>=3'
+ webpack: '>=5'
+ peerDependenciesMeta:
+ '@farmfe/core':
+ optional: true
+ '@nuxt/kit':
+ optional: true
+ '@nuxt/schema':
+ optional: true
+ astro:
+ optional: true
+ esbuild:
+ optional: true
+ rollup:
+ optional: true
+ vite:
+ optional: true
+ vue:
+ optional: true
+ webpack:
+ optional: true
+
+ unplugin-utils@0.2.4:
+ resolution: {integrity: sha512-8U/MtpkPkkk3Atewj1+RcKIjb5WBimZ/WSLhhR3w6SsIj8XJuKTacSP8g+2JhfSGw0Cb125Y+2zA/IzJZDVbhA==}
+ engines: {node: '>=18.12.0'}
+
+ unplugin-utils@0.3.1:
+ resolution: {integrity: sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog==}
+ engines: {node: '>=20.19.0'}
+
+ unplugin-vue-components@31.0.0:
+ resolution: {integrity: sha512-4ULwfTZTLuWJ7+S9P7TrcStYLsSRkk6vy2jt/WTfgUEUb0nW9//xxmrfhyHUEVpZ2UKRRwfRb8Yy15PDbVZf+Q==}
+ engines: {node: '>=20.19.0'}
+ peerDependencies:
+ '@nuxt/kit': ^3.2.2 || ^4.0.0
+ vue: ^3.0.0
+ peerDependenciesMeta:
+ '@nuxt/kit':
+ optional: true
+
+ unplugin-vue-router@0.15.0:
+ resolution: {integrity: sha512-PyGehCjd9Ny9h+Uer4McbBjjib3lHihcyUEILa7pHKl6+rh8N7sFyw4ZkV+N30Oq2zmIUG7iKs3qpL0r+gXAaQ==}
+ peerDependencies:
+ '@vue/compiler-sfc': ^3.5.17
+ vue-router: ^4.5.1
+ peerDependenciesMeta:
+ vue-router:
+ optional: true
+
+ unplugin@2.3.10:
+ resolution: {integrity: sha512-6NCPkv1ClwH+/BGE9QeoTIl09nuiAt0gS28nn1PvYXsGKRwM2TCbFA2QiilmehPDTXIe684k4rZI1yl3A1PCUw==}
+ engines: {node: '>=18.12.0'}
+
+ unplugin@2.3.11:
+ resolution: {integrity: sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==}
+ engines: {node: '>=18.12.0'}
+
+ unplugin@3.0.0:
+ resolution: {integrity: sha512-0Mqk3AT2TZCXWKdcoaufeXNukv2mTrEZExeXlHIOZXdqYoHHr4n51pymnwV8x2BOVxwXbK2HLlI7usrqMpycdg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+
+ unset-value@1.0.0:
+ resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==}
+ engines: {node: '>=0.10.0'}
+
+ unstorage@1.17.0:
+ resolution: {integrity: sha512-l9Z7lBiwtNp8ZmcoZ/dmPkFXFdtEdZtTZafCSnEIj3YvtkXeGAtL2rN8MQFy/0cs4eOLpuRJMp9ivdug7TCvww==}
+ peerDependencies:
+ '@azure/app-configuration': ^1.8.0
+ '@azure/cosmos': ^4.2.0
+ '@azure/data-tables': ^13.3.0
+ '@azure/identity': ^4.6.0
+ '@azure/keyvault-secrets': ^4.9.0
+ '@azure/storage-blob': ^12.26.0
+ '@capacitor/preferences': ^6.0.3 || ^7.0.0
+ '@deno/kv': '>=0.9.0'
+ '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0
+ '@planetscale/database': ^1.19.0
+ '@upstash/redis': ^1.34.3
+ '@vercel/blob': '>=0.27.1'
+ '@vercel/functions': ^2.2.12
+ '@vercel/kv': ^1.0.1
+ aws4fetch: ^1.0.20
+ db0: '>=0.2.1'
+ idb-keyval: ^6.2.1
+ ioredis: ^5.4.2
+ uploadthing: ^7.4.4
+ peerDependenciesMeta:
+ '@azure/app-configuration':
+ optional: true
+ '@azure/cosmos':
+ optional: true
+ '@azure/data-tables':
+ optional: true
+ '@azure/identity':
+ optional: true
+ '@azure/keyvault-secrets':
+ optional: true
+ '@azure/storage-blob':
+ optional: true
+ '@capacitor/preferences':
+ optional: true
+ '@deno/kv':
+ optional: true
+ '@netlify/blobs':
+ optional: true
+ '@planetscale/database':
+ optional: true
+ '@upstash/redis':
+ optional: true
+ '@vercel/blob':
+ optional: true
+ '@vercel/functions':
+ optional: true
+ '@vercel/kv':
+ optional: true
+ aws4fetch:
+ optional: true
+ db0:
+ optional: true
+ idb-keyval:
+ optional: true
+ ioredis:
+ optional: true
+ uploadthing:
+ optional: true
+
+ untun@0.1.3:
+ resolution: {integrity: sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==}
+ hasBin: true
+
+ untyped@2.0.0:
+ resolution: {integrity: sha512-nwNCjxJTjNuLCgFr42fEak5OcLuB3ecca+9ksPFNvtfYSLpjf+iJqSIaSnIile6ZPbKYxI5k2AfXqeopGudK/g==}
+ hasBin: true
+
+ unwasm@0.3.11:
+ resolution: {integrity: sha512-Vhp5gb1tusSQw5of/g3Q697srYgMXvwMgXMjcG4ZNga02fDX9coxJ9fAb0Ci38hM2Hv/U1FXRPGgjP2BYqhNoQ==}
+
+ update-browserslist-db@1.1.3:
+ resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==}
+ hasBin: true
+ peerDependencies:
+ browserslist: '>= 4.21.0'
+
+ update-browserslist-db@1.1.4:
+ resolution: {integrity: sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==}
+ hasBin: true
+ peerDependencies:
+ browserslist: '>= 4.21.0'
+
+ update-browserslist-db@1.2.3:
+ resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==}
+ hasBin: true
+ peerDependencies:
+ browserslist: '>= 4.21.0'
+
+ uqr@0.1.2:
+ resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==}
+
+ uri-js@4.4.1:
+ resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
+
+ urix@0.1.0:
+ resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==}
+ deprecated: Please see https://github.com/lydell/urix#deprecated
+
+ url-join@4.0.1:
+ resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==}
+
+ urlpattern-polyfill@10.1.0:
+ resolution: {integrity: sha512-IGjKp/o0NL3Bso1PymYURCJxMPNAf/ILOpendP9f5B6e1rTJgdgiOvgfoT8VxCAdY+Wisb9uhGaJJf3yZ2V9nw==}
+
+ urlpattern-polyfill@8.0.2:
+ resolution: {integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==}
+
+ use@3.1.1:
+ resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==}
+ engines: {node: '>=0.10.0'}
+
+ util-deprecate@1.0.2:
+ resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+
+ uuid@11.1.0:
+ resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==}
+ hasBin: true
+
+ v8flags@4.0.1:
+ resolution: {integrity: sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg==}
+ engines: {node: '>= 10.13.0'}
+
+ validate-npm-package-license@3.0.4:
+ resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
+
+ varint@6.0.0:
+ resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==}
+
+ vary@1.1.2:
+ resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
+ engines: {node: '>= 0.8'}
+
+ vconsole@3.15.1:
+ resolution: {integrity: sha512-KH8XLdrq9T5YHJO/ixrjivHfmF2PC2CdVoK6RWZB4yftMykYIaXY1mxZYAic70vADM54kpMQF+dYmvl5NRNy1g==}
+
+ vee-validate@4.15.1:
+ resolution: {integrity: sha512-DkFsiTwEKau8VIxyZBGdO6tOudD+QoUBPuHj3e6QFqmbfCRj1ArmYWue9lEp6jLSWBIw4XPlDLjFIZNLdRAMSg==}
+ peerDependencies:
+ vue: ^3.4.26
+
+ vite-dev-rpc@1.1.0:
+ resolution: {integrity: sha512-pKXZlgoXGoE8sEKiKJSng4hI1sQ4wi5YT24FCrwrLt6opmkjlqPPVmiPWWJn8M8byMxRGzp1CrFuqQs4M/Z39A==}
+ peerDependencies:
+ vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.1 || ^7.0.0-0
+
+ vite-hot-client@2.1.0:
+ resolution: {integrity: sha512-7SpgZmU7R+dDnSmvXE1mfDtnHLHQSisdySVR7lO8ceAXvM0otZeuQQ6C8LrS5d/aYyP/QZ0hI0L+dIPrm4YlFQ==}
+ peerDependencies:
+ vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0
+
+ vite-node@3.2.4:
+ resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==}
+ engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
+ hasBin: true
+
+ vite-plugin-app-loading@0.4.0:
+ resolution: {integrity: sha512-ifcqZk2x4fFrUvBJ8Llcw0gZpK8y7zwAZqSOQLER7VIJXd+w8nn+X9vzAFOxzYKqNVjFCyEZVkMs5NDyN9iNdg==}
+
+ vite-plugin-archiver@0.2.0:
+ resolution: {integrity: sha512-ADS84jMap8SpZGiEFpSyPiGDV+vNzBHoe2nV80HA+D2iJwDufdlvH5ZKpqIna7ROWEapG514uM+hUHekvzROkw==}
+
+ vite-plugin-banner@0.8.1:
+ resolution: {integrity: sha512-0+gGguHk3MH0HvzMSOCJC6fGgH4+jtY9KlKVZh+hwwE+PBkGVzY8xe657JL74vEgbeUJD37XjVqTrmve8XvZBQ==}
+
+ vite-plugin-checker@0.10.3:
+ resolution: {integrity: sha512-f4sekUcDPF+T+GdbbE8idb1i2YplBAoH+SfRS0e/WRBWb2rYb1Jf5Pimll0Rj+3JgIYWwG2K5LtBPCXxoibkLg==}
+ engines: {node: '>=14.16'}
+ peerDependencies:
+ '@biomejs/biome': '>=1.7'
+ eslint: '>=7'
+ meow: ^13.2.0
+ optionator: ^0.9.4
+ stylelint: '>=16'
+ typescript: '*'
+ vite: '>=2.0.0'
+ vls: '*'
+ vti: '*'
+ vue-tsc: ~2.2.10 || ^3.0.0
+ peerDependenciesMeta:
+ '@biomejs/biome':
+ optional: true
+ eslint:
+ optional: true
+ meow:
+ optional: true
+ optionator:
+ optional: true
+ stylelint:
+ optional: true
+ typescript:
+ optional: true
+ vls:
+ optional: true
+ vti:
+ optional: true
+ vue-tsc:
+ optional: true
+
+ vite-plugin-compression2@2.5.0:
+ resolution: {integrity: sha512-bHxtBibPxxSn5eZSe0IAzvYucP/hg8Bz8ppjbH7lndU5kIHT+92qTkB4z9xWYfnyV0YHuir1SjOuyO0fzU4Vgg==}
+
+ vite-plugin-env-parse@1.0.15:
+ resolution: {integrity: sha512-XzeCnTakUfAHgD/RphoTZ14t99AT5+rdzZdvdO9FnButorZTKIrUaCuBWdQI0jYh34duNti7PArS/X6Nv6NmpQ==}
+ peerDependencies:
+ vite: '*'
+
+ vite-plugin-fake-server@2.2.2:
+ resolution: {integrity: sha512-6gQ4A0UwGP7ArCdbnQ4G9I0NcrrgEsp7L1kYPMiuLPFE/L60ZB1lrCk709yGXbCpqsfGAaiwHYjVoNe3a9EHLQ==}
+
+ vite-plugin-inspect@11.3.3:
+ resolution: {integrity: sha512-u2eV5La99oHoYPHE6UvbwgEqKKOQGz86wMg40CCosP6q8BkB6e5xPneZfYagK4ojPJSj5anHCrnvC20DpwVdRA==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@nuxt/kit': '*'
+ vite: ^6.0.0 || ^7.0.0-0
+ peerDependenciesMeta:
+ '@nuxt/kit':
+ optional: true
+
+ vite-plugin-pages@0.33.3:
+ resolution: {integrity: sha512-k97CAlVN7VUD5CIkRaose8Ty1xjtpuSeJQngFxsinPyM7PCtAIp23QdnkygNRdoo4gjX21TORYdEAAN/lGtCIA==}
+ peerDependencies:
+ '@solidjs/router': '*'
+ '@vue/compiler-sfc': ^2.7.0 || ^3.0.0
+ react-router: '*'
+ vite: ^2.0.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 || ^8.0.0-0
+ vue-router: '*'
+ peerDependenciesMeta:
+ '@solidjs/router':
+ optional: true
+ '@vue/compiler-sfc':
+ optional: true
+ react-router:
+ optional: true
+ vue-router:
+ optional: true
+
+ vite-plugin-svg-icons@2.0.1:
+ resolution: {integrity: sha512-6ktD+DhV6Rz3VtedYvBKKVA2eXF+sAQVaKkKLDSqGUfnhqXl3bj5PPkVTl3VexfTuZy66PmINi8Q6eFnVfRUmA==}
+ peerDependencies:
+ vite: '>=2.0.0'
+
+ vite-plugin-vue-devtools@8.0.7:
+ resolution: {integrity: sha512-BWj/ykGpqVAJVdPyHmSTUm44buz3jPv+6jnvuFdQSRH0kAgP1cEIE4doHiFyqHXOmuB5EQVR/nh2g9YRiRNs9g==}
+ engines: {node: '>=v14.21.3'}
+ peerDependencies:
+ vite: ^6.0.0 || ^7.0.0-0 || ^8.0.0-0
+
+ vite-plugin-vue-inspector@5.3.2:
+ resolution: {integrity: sha512-YvEKooQcSiBTAs0DoYLfefNja9bLgkFM7NI2b07bE2SruuvX0MEa9cMaxjKVMkeCp5Nz9FRIdcN1rOdFVBeL6Q==}
+ peerDependencies:
+ vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0
+
+ vite-plugin-vue-meta-layouts@0.6.1:
+ resolution: {integrity: sha512-CVvieEPGhgGA1lf/wlalGF7HNByjMrjV37ENziYe9VkyoeiU21+xOjqnxJ3J/P9Yy/VS1f19pvFRMY7IfAAeKg==}
+ peerDependencies:
+ vite: '>=2.0.0'
+ vue-router: '>=4.0.14'
+
+ vite-plugin-vue-tracer@1.0.0:
+ resolution: {integrity: sha512-a+UB9IwGx5uwS4uG/a9kM6fCMnxONDkOTbgCUbhFpiGhqfxrrC1+9BibV7sWwUnwj1Dg6MnRxG0trLgUZslDXA==}
+ peerDependencies:
+ vite: ^6.0.0 || ^7.0.0
+ vue: ^3.5.0
+
+ vite@7.3.1:
+ resolution: {integrity: sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ hasBin: true
+ peerDependencies:
+ '@types/node': ^20.19.0 || >=22.12.0
+ jiti: '>=1.21.0'
+ less: ^4.0.0
+ lightningcss: ^1.21.0
+ sass: ^1.70.0
+ sass-embedded: ^1.70.0
+ stylus: '>=0.54.8'
+ sugarss: ^5.0.0
+ terser: ^5.16.0
+ tsx: ^4.8.1
+ yaml: ^2.4.2
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ jiti:
+ optional: true
+ less:
+ optional: true
+ lightningcss:
+ optional: true
+ sass:
+ optional: true
+ sass-embedded:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+ tsx:
+ optional: true
+ yaml:
+ optional: true
+
+ vscode-uri@3.1.0:
+ resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==}
+
+ vue-bundle-renderer@2.1.2:
+ resolution: {integrity: sha512-M4WRBO/O/7G9phGaGH9AOwOnYtY9ZpPoDVpBpRzR2jO5rFL9mgIlQIgums2ljCTC2HL1jDXFQc//CzWcAQHgAw==}
+
+ vue-demi@0.14.10:
+ resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==}
+ engines: {node: '>=12'}
+ hasBin: true
+ peerDependencies:
+ '@vue/composition-api': ^1.0.0-rc.1
+ vue: ^3.0.0-0 || ^2.6.0
+ peerDependenciesMeta:
+ '@vue/composition-api':
+ optional: true
+
+ vue-devtools-stub@0.1.0:
+ resolution: {integrity: sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ==}
+
+ vue-eslint-parser@10.4.0:
+ resolution: {integrity: sha512-Vxi9pJdbN3ZnVGLODVtZ7y4Y2kzAAE2Cm0CZ3ZDRvydVYxZ6VrnBhLikBsRS+dpwj4Jv4UCv21PTEwF5rQ9WXg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
+
+ vue-router@4.6.4:
+ resolution: {integrity: sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg==}
+ peerDependencies:
+ vue: ^3.5.0
+
+ vue-router@5.0.3:
+ resolution: {integrity: sha512-nG1c7aAFac7NYj8Hluo68WyWfc41xkEjaR0ViLHCa3oDvTQ/nIuLJlXJX1NUPw/DXzx/8+OKMng045HHQKQKWw==}
+ peerDependencies:
+ '@pinia/colada': '>=0.21.2'
+ '@vue/compiler-sfc': ^3.5.17
+ pinia: ^3.0.4
+ vue: ^3.5.0
+ peerDependenciesMeta:
+ '@pinia/colada':
+ optional: true
+ '@vue/compiler-sfc':
+ optional: true
+ pinia:
+ optional: true
+
+ vue-sonner@2.0.9:
+ resolution: {integrity: sha512-i6BokNlNDL93fpzNxN/LZSn6D6MzlO+i3qXt6iVZne3x1k7R46d5HlFB4P8tYydhgqOrRbIZEsnRd3kG7qGXyw==}
+ peerDependencies:
+ '@nuxt/kit': ^4.0.3
+ '@nuxt/schema': ^4.0.3
+ nuxt: ^4.0.3
+ peerDependenciesMeta:
+ '@nuxt/kit':
+ optional: true
+ '@nuxt/schema':
+ optional: true
+ nuxt:
+ optional: true
+
+ vue-tsc@3.2.5:
+ resolution: {integrity: sha512-/htfTCMluQ+P2FISGAooul8kO4JMheOTCbCy4M6dYnYYjqLe3BExZudAua6MSIKSFYQtFOYAll7XobYwcpokGA==}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.0.0'
+
+ vue@3.5.29:
+ resolution: {integrity: sha512-BZqN4Ze6mDQVNAni0IHeMJ5mwr8VAJ3MQC9FmprRhcBYENw+wOAAjRj8jfmN6FLl0j96OXbR+CjWhmAmM+QGnA==}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ wcwidth@1.0.1:
+ resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
+
+ web-streams-polyfill@3.3.3:
+ resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==}
+ engines: {node: '>= 8'}
+
+ webidl-conversions@3.0.1:
+ resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
+
+ webpack-virtual-modules@0.6.2:
+ resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==}
+
+ whatwg-encoding@2.0.0:
+ resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==}
+ engines: {node: '>=12'}
+
+ whatwg-url@5.0.0:
+ resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
+
+ which-boxed-primitive@1.1.1:
+ resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==}
+ engines: {node: '>= 0.4'}
+
+ which-builtin-type@1.2.1:
+ resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==}
+ engines: {node: '>= 0.4'}
+
+ which-collection@1.0.2:
+ resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
+ engines: {node: '>= 0.4'}
+
+ which-typed-array@1.1.19:
+ resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==}
+ engines: {node: '>= 0.4'}
+
+ which@1.3.1:
+ resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
+ hasBin: true
+
+ which@2.0.2:
+ resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
+ engines: {node: '>= 8'}
+ hasBin: true
+
+ which@5.0.0:
+ resolution: {integrity: sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==}
+ engines: {node: ^18.17.0 || >=20.5.0}
+ hasBin: true
+
+ widest-line@5.0.0:
+ resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==}
+ engines: {node: '>=18'}
+
+ winston-transport@4.9.0:
+ resolution: {integrity: sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==}
+ engines: {node: '>= 12.0.0'}
+
+ winston@3.17.0:
+ resolution: {integrity: sha512-DLiFIXYC5fMPxaRg832S6F5mJYvePtmO5G9v9IgUFPhXm9/GkXarH/TUrBAVzhTCzAj9anE/+GjrgXp/54nOgw==}
+ engines: {node: '>= 12.0.0'}
+
+ word-wrap@1.2.5:
+ resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
+ engines: {node: '>=0.10.0'}
+
+ wordwrap@1.0.0:
+ resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
+
+ wrap-ansi@6.2.0:
+ resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
+ engines: {node: '>=8'}
+
+ wrap-ansi@7.0.0:
+ resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
+ engines: {node: '>=10'}
+
+ wrap-ansi@8.1.0:
+ resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
+ engines: {node: '>=12'}
+
+ wrap-ansi@9.0.0:
+ resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==}
+ engines: {node: '>=18'}
+
+ wrappy@1.0.2:
+ resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
+
+ write-file-atomic@6.0.0:
+ resolution: {integrity: sha512-GmqrO8WJ1NuzJ2DrziEI2o57jKAVIQNf8a18W3nCYU3H7PNWqCCVTeH6/NQE93CIllIgQS98rrmVkYgTX9fFJQ==}
+ engines: {node: ^18.17.0 || >=20.5.0}
+
+ write-file-atomic@7.0.1:
+ resolution: {integrity: sha512-OTIk8iR8/aCRWBqvxrzxR0hgxWpnYBblY1S5hDWBQfk/VFmJwzmJgQFN3WsoUKHISv2eAwe+PpbUzyL1CKTLXg==}
+ engines: {node: ^20.17.0 || >=22.9.0}
+
+ ws@8.18.3:
+ resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==}
+ engines: {node: '>=10.0.0'}
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: '>=5.0.2'
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+
+ wsl-utils@0.1.0:
+ resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==}
+ engines: {node: '>=18'}
+
+ xml-name-validator@4.0.0:
+ resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
+ engines: {node: '>=12'}
+
+ y18n@5.0.8:
+ resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
+ engines: {node: '>=10'}
+
+ yallist@3.1.1:
+ resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
+
+ yallist@5.0.0:
+ resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==}
+ engines: {node: '>=18'}
+
+ yaml-eslint-parser@2.0.0:
+ resolution: {integrity: sha512-h0uDm97wvT2bokfwwTmY6kJ1hp6YDFL0nRHwNKz8s/VD1FH/vvZjAKoMUE+un0eaYBSG7/c6h+lJTP+31tjgTw==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+
+ yaml@2.8.2:
+ resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==}
+ engines: {node: '>= 14.6'}
+ hasBin: true
+
+ yargs-parser@21.1.1:
+ resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
+ engines: {node: '>=12'}
+
+ yargs@17.7.2:
+ resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
+ engines: {node: '>=12'}
+
+ yauzl@2.10.0:
+ resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==}
+
+ yocto-queue@0.1.0:
+ resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
+ engines: {node: '>=10'}
+
+ yocto-queue@1.2.1:
+ resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==}
+ engines: {node: '>=12.20'}
+
+ yoctocolors-cjs@2.1.2:
+ resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==}
+ engines: {node: '>=18'}
+
+ youch-core@0.3.3:
+ resolution: {integrity: sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==}
+
+ youch@4.1.0-beta.11:
+ resolution: {integrity: sha512-sQi6PERyO/mT8w564ojOVeAlYTtVQmC2GaktQAf+IdI75/GKIggosBuvyVXvEV+FATAT6RbLdIjFoiIId4ozoQ==}
+
+ youch@4.1.0-beta.8:
+ resolution: {integrity: sha512-rY2A2lSF7zC+l7HH9Mq+83D1dLlsPnEvy8jTouzaptDZM6geqZ3aJe/b7ULCwRURPtWV3vbDjA2DDMdoBol0HQ==}
+ engines: {node: '>=18'}
+
+ zip-stream@6.0.1:
+ resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==}
+ engines: {node: '>= 14'}
+
+ zod@3.25.76:
+ resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==}
+
+ zod@4.3.6:
+ resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==}
+
+ zwitch@2.0.4:
+ resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
+
+snapshots:
+
+ '@ampproject/remapping@2.3.0':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.8
+ '@jridgewell/trace-mapping': 0.3.25
+
+ '@antfu/eslint-config@7.7.0(@typescript-eslint/rule-tester@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/typescript-estree@8.56.1(typescript@5.9.3))(@typescript-eslint/utils@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(@unocss/eslint-plugin@66.6.6(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(@vue/compiler-sfc@3.5.29)(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)':
+ dependencies:
+ '@antfu/install-pkg': 1.1.0
+ '@clack/prompts': 1.1.0
+ '@e18e/eslint-plugin': 0.2.0(eslint@9.39.4(jiti@2.6.1))
+ '@eslint-community/eslint-plugin-eslint-comments': 4.7.1(eslint@9.39.4(jiti@2.6.1))
+ '@eslint/markdown': 7.5.1
+ '@stylistic/eslint-plugin': 5.10.0(eslint@9.39.4(jiti@2.6.1))
+ '@typescript-eslint/eslint-plugin': 8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/parser': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
+ '@vitest/eslint-plugin': 1.6.9(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
+ ansis: 4.2.0
+ cac: 7.0.0
+ eslint: 9.39.4(jiti@2.6.1)
+ eslint-config-flat-gitignore: 2.2.1(eslint@9.39.4(jiti@2.6.1))
+ eslint-flat-config-utils: 3.0.1
+ eslint-merge-processors: 2.0.0(eslint@9.39.4(jiti@2.6.1))
+ eslint-plugin-antfu: 3.2.2(eslint@9.39.4(jiti@2.6.1))
+ eslint-plugin-command: 3.5.2(@typescript-eslint/rule-tester@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/typescript-estree@8.56.1(typescript@5.9.3))(@typescript-eslint/utils@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))
+ eslint-plugin-import-lite: 0.5.2(eslint@9.39.4(jiti@2.6.1))
+ eslint-plugin-jsdoc: 62.7.1(eslint@9.39.4(jiti@2.6.1))
+ eslint-plugin-jsonc: 3.1.1(eslint@9.39.4(jiti@2.6.1))
+ eslint-plugin-n: 17.24.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
+ eslint-plugin-no-only-tests: 3.3.0
+ eslint-plugin-perfectionist: 5.6.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
+ eslint-plugin-pnpm: 1.6.0(eslint@9.39.4(jiti@2.6.1))
+ eslint-plugin-regexp: 3.0.0(eslint@9.39.4(jiti@2.6.1))
+ eslint-plugin-toml: 1.3.1(eslint@9.39.4(jiti@2.6.1))
+ eslint-plugin-unicorn: 63.0.0(eslint@9.39.4(jiti@2.6.1))
+ eslint-plugin-unused-imports: 4.4.1(@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))
+ eslint-plugin-vue: 10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@9.39.4(jiti@2.6.1)))(@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@9.39.4(jiti@2.6.1)))
+ eslint-plugin-yml: 3.3.1(eslint@9.39.4(jiti@2.6.1))
+ eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.29)(eslint@9.39.4(jiti@2.6.1))
+ globals: 17.4.0
+ local-pkg: 1.1.2
+ parse-gitignore: 2.0.0
+ toml-eslint-parser: 1.0.3
+ vue-eslint-parser: 10.4.0(eslint@9.39.4(jiti@2.6.1))
+ yaml-eslint-parser: 2.0.0
+ optionalDependencies:
+ '@unocss/eslint-plugin': 66.6.6(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
+ transitivePeerDependencies:
+ - '@eslint/json'
+ - '@typescript-eslint/rule-tester'
+ - '@typescript-eslint/typescript-estree'
+ - '@typescript-eslint/utils'
+ - '@vue/compiler-sfc'
+ - oxlint
+ - supports-color
+ - typescript
+ - vitest
+
+ '@antfu/install-pkg@1.1.0':
+ dependencies:
+ package-manager-detector: 1.6.0
+ tinyexec: 1.0.2
+
+ '@antfu/ni@28.3.0':
+ dependencies:
+ ansis: 4.2.0
+ fzf: 0.5.2
+ package-manager-detector: 1.6.0
+ tinyexec: 1.0.2
+ tinyglobby: 0.2.15
+
+ '@babel/code-frame@7.27.1':
+ dependencies:
+ '@babel/helper-validator-identifier': 7.27.1
+ js-tokens: 4.0.0
+ picocolors: 1.1.1
+
+ '@babel/code-frame@7.29.0':
+ dependencies:
+ '@babel/helper-validator-identifier': 7.28.5
+ js-tokens: 4.0.0
+ picocolors: 1.1.1
+
+ '@babel/compat-data@7.27.5': {}
+
+ '@babel/compat-data@7.28.0': {}
+
+ '@babel/compat-data@7.29.0': {}
+
+ '@babel/core@7.28.0':
+ dependencies:
+ '@ampproject/remapping': 2.3.0
+ '@babel/code-frame': 7.27.1
+ '@babel/generator': 7.28.0
+ '@babel/helper-compilation-targets': 7.27.2
+ '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0)
+ '@babel/helpers': 7.27.6
+ '@babel/parser': 7.28.0
+ '@babel/template': 7.27.2
+ '@babel/traverse': 7.28.0
+ '@babel/types': 7.28.1
+ convert-source-map: 2.0.0
+ debug: 4.4.1
+ gensync: 1.0.0-beta.2
+ json5: 2.2.3
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/core@7.28.5':
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ '@babel/generator': 7.28.5
+ '@babel/helper-compilation-targets': 7.27.2
+ '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5)
+ '@babel/helpers': 7.28.4
+ '@babel/parser': 7.29.0
+ '@babel/template': 7.27.2
+ '@babel/traverse': 7.28.5
+ '@babel/types': 7.28.5
+ '@jridgewell/remapping': 2.3.5
+ convert-source-map: 2.0.0
+ debug: 4.4.3
+ gensync: 1.0.0-beta.2
+ json5: 2.2.3
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/core@7.29.0':
+ dependencies:
+ '@babel/code-frame': 7.29.0
+ '@babel/generator': 7.29.1
+ '@babel/helper-compilation-targets': 7.28.6
+ '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0)
+ '@babel/helpers': 7.28.6
+ '@babel/parser': 7.29.0
+ '@babel/template': 7.28.6
+ '@babel/traverse': 7.29.0
+ '@babel/types': 7.29.0
+ '@jridgewell/remapping': 2.3.5
+ convert-source-map: 2.0.0
+ debug: 4.4.3
+ gensync: 1.0.0-beta.2
+ json5: 2.2.3
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/generator@7.27.5':
+ dependencies:
+ '@babel/parser': 7.29.0
+ '@babel/types': 7.28.5
+ '@jridgewell/gen-mapping': 0.3.12
+ '@jridgewell/trace-mapping': 0.3.29
+ jsesc: 3.1.0
+
+ '@babel/generator@7.28.0':
+ dependencies:
+ '@babel/parser': 7.28.0
+ '@babel/types': 7.28.1
+ '@jridgewell/gen-mapping': 0.3.12
+ '@jridgewell/trace-mapping': 0.3.29
+ jsesc: 3.1.0
+
+ '@babel/generator@7.28.3':
+ dependencies:
+ '@babel/parser': 7.29.0
+ '@babel/types': 7.28.5
+ '@jridgewell/gen-mapping': 0.3.12
+ '@jridgewell/trace-mapping': 0.3.29
+ jsesc: 3.1.0
+
+ '@babel/generator@7.28.5':
+ dependencies:
+ '@babel/parser': 7.29.0
+ '@babel/types': 7.28.5
+ '@jridgewell/gen-mapping': 0.3.12
+ '@jridgewell/trace-mapping': 0.3.29
+ jsesc: 3.1.0
+
+ '@babel/generator@7.29.1':
+ dependencies:
+ '@babel/parser': 7.29.0
+ '@babel/types': 7.29.0
+ '@jridgewell/gen-mapping': 0.3.12
+ '@jridgewell/trace-mapping': 0.3.29
+ jsesc: 3.1.0
+
+ '@babel/helper-annotate-as-pure@7.27.3':
+ dependencies:
+ '@babel/types': 7.28.5
+
+ '@babel/helper-compilation-targets@7.27.2':
+ dependencies:
+ '@babel/compat-data': 7.27.5
+ '@babel/helper-validator-option': 7.27.1
+ browserslist: 4.27.0
+ lru-cache: 5.1.1
+ semver: 6.3.1
+
+ '@babel/helper-compilation-targets@7.28.6':
+ dependencies:
+ '@babel/compat-data': 7.29.0
+ '@babel/helper-validator-option': 7.27.1
+ browserslist: 4.28.1
+ lru-cache: 5.1.1
+ semver: 6.3.1
+
+ '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-annotate-as-pure': 7.27.3
+ '@babel/helper-member-expression-to-functions': 7.27.1
+ '@babel/helper-optimise-call-expression': 7.27.1
+ '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.0)
+ '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
+ '@babel/traverse': 7.28.3
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-create-class-features-plugin@7.28.5(@babel/core@7.28.5)':
+ dependencies:
+ '@babel/core': 7.28.5
+ '@babel/helper-annotate-as-pure': 7.27.3
+ '@babel/helper-member-expression-to-functions': 7.28.5
+ '@babel/helper-optimise-call-expression': 7.27.1
+ '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5)
+ '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
+ '@babel/traverse': 7.28.5
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-create-class-features-plugin@7.28.6(@babel/core@7.29.0)':
+ dependencies:
+ '@babel/core': 7.29.0
+ '@babel/helper-annotate-as-pure': 7.27.3
+ '@babel/helper-member-expression-to-functions': 7.28.5
+ '@babel/helper-optimise-call-expression': 7.27.1
+ '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0)
+ '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
+ '@babel/traverse': 7.29.0
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-annotate-as-pure': 7.27.3
+ regexpu-core: 6.2.0
+ semver: 6.3.1
+
+ '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-compilation-targets': 7.27.2
+ '@babel/helper-plugin-utils': 7.27.1
+ debug: 4.4.3
+ lodash.debounce: 4.0.8
+ resolve: 1.22.10
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-globals@7.28.0': {}
+
+ '@babel/helper-member-expression-to-functions@7.27.1':
+ dependencies:
+ '@babel/traverse': 7.28.3
+ '@babel/types': 7.28.5
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-member-expression-to-functions@7.28.5':
+ dependencies:
+ '@babel/traverse': 7.29.0
+ '@babel/types': 7.28.5
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-module-imports@7.27.1':
+ dependencies:
+ '@babel/traverse': 7.28.5
+ '@babel/types': 7.28.5
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-module-imports@7.28.6':
+ dependencies:
+ '@babel/traverse': 7.29.0
+ '@babel/types': 7.29.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-module-transforms@7.27.3(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-module-imports': 7.27.1
+ '@babel/helper-validator-identifier': 7.27.1
+ '@babel/traverse': 7.27.4
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.5)':
+ dependencies:
+ '@babel/core': 7.28.5
+ '@babel/helper-module-imports': 7.27.1
+ '@babel/helper-validator-identifier': 7.28.5
+ '@babel/traverse': 7.28.5
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)':
+ dependencies:
+ '@babel/core': 7.29.0
+ '@babel/helper-module-imports': 7.28.6
+ '@babel/helper-validator-identifier': 7.28.5
+ '@babel/traverse': 7.29.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-optimise-call-expression@7.27.1':
+ dependencies:
+ '@babel/types': 7.28.5
+
+ '@babel/helper-plugin-utils@7.27.1': {}
+
+ '@babel/helper-plugin-utils@7.28.6': {}
+
+ '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-annotate-as-pure': 7.27.3
+ '@babel/helper-wrap-function': 7.27.1
+ '@babel/traverse': 7.28.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-member-expression-to-functions': 7.27.1
+ '@babel/helper-optimise-call-expression': 7.27.1
+ '@babel/traverse': 7.28.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.5)':
+ dependencies:
+ '@babel/core': 7.28.5
+ '@babel/helper-member-expression-to-functions': 7.27.1
+ '@babel/helper-optimise-call-expression': 7.27.1
+ '@babel/traverse': 7.28.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-replace-supers@7.28.6(@babel/core@7.29.0)':
+ dependencies:
+ '@babel/core': 7.29.0
+ '@babel/helper-member-expression-to-functions': 7.28.5
+ '@babel/helper-optimise-call-expression': 7.27.1
+ '@babel/traverse': 7.29.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-skip-transparent-expression-wrappers@7.27.1':
+ dependencies:
+ '@babel/traverse': 7.28.3
+ '@babel/types': 7.28.5
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-string-parser@7.27.1': {}
+
+ '@babel/helper-validator-identifier@7.27.1': {}
+
+ '@babel/helper-validator-identifier@7.28.5': {}
+
+ '@babel/helper-validator-option@7.27.1': {}
+
+ '@babel/helper-wrap-function@7.27.1':
+ dependencies:
+ '@babel/template': 7.27.2
+ '@babel/traverse': 7.28.3
+ '@babel/types': 7.28.5
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helpers@7.27.6':
+ dependencies:
+ '@babel/template': 7.27.2
+ '@babel/types': 7.27.6
+
+ '@babel/helpers@7.28.4':
+ dependencies:
+ '@babel/template': 7.27.2
+ '@babel/types': 7.28.5
+
+ '@babel/helpers@7.28.6':
+ dependencies:
+ '@babel/template': 7.28.6
+ '@babel/types': 7.29.0
+
+ '@babel/parser@7.28.0':
+ dependencies:
+ '@babel/types': 7.28.1
+
+ '@babel/parser@7.28.5':
+ dependencies:
+ '@babel/types': 7.28.5
+
+ '@babel/parser@7.29.0':
+ dependencies:
+ '@babel/types': 7.29.0
+
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/traverse': 7.28.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
+ '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.0)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/traverse': 7.28.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-proposal-decorators@7.27.1(@babel/core@7.28.5)':
+ dependencies:
+ '@babel/core': 7.28.5
+ '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5)
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/plugin-syntax-decorators': 7.27.1(@babel/core@7.28.5)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+
+ '@babel/plugin-syntax-decorators@7.27.1(@babel/core@7.28.5)':
+ dependencies:
+ '@babel/core': 7.28.5
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.5)':
+ dependencies:
+ '@babel/core': 7.28.5
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.5)':
+ dependencies:
+ '@babel/core': 7.28.5
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.5)':
+ dependencies:
+ '@babel/core': 7.28.5
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.29.0)':
+ dependencies:
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.5)':
+ dependencies:
+ '@babel/core': 7.28.5
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-typescript@7.28.6(@babel/core@7.29.0)':
+ dependencies:
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
+
+ '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.0)
+ '@babel/traverse': 7.28.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-module-imports': 7.27.1
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.0)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-block-scoping@7.28.0(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/helper-plugin-utils': 7.27.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-class-static-block@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/helper-plugin-utils': 7.27.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-classes@7.28.0(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-annotate-as-pure': 7.27.3
+ '@babel/helper-compilation-targets': 7.27.2
+ '@babel/helper-globals': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.0)
+ '@babel/traverse': 7.28.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/template': 7.27.2
+
+ '@babel/plugin-transform-destructuring@7.28.0(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/traverse': 7.28.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-explicit-resource-management@7.28.0(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.0)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-compilation-targets': 7.27.2
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/traverse': 7.28.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0)
+ '@babel/helper-plugin-utils': 7.27.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0)
+ '@babel/helper-plugin-utils': 7.27.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0)
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/helper-validator-identifier': 7.27.1
+ '@babel/traverse': 7.28.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0)
+ '@babel/helper-plugin-utils': 7.27.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-object-rest-spread@7.28.0(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-compilation-targets': 7.27.2
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.0)
+ '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.0)
+ '@babel/traverse': 7.28.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.0)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/helper-plugin-utils': 7.27.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-annotate-as-pure': 7.27.3
+ '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/helper-plugin-utils': 7.27.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-regenerator@7.28.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-spread@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-typescript@7.28.5(@babel/core@7.28.5)':
+ dependencies:
+ '@babel/core': 7.28.5
+ '@babel/helper-annotate-as-pure': 7.27.3
+ '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5)
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
+ '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.5)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-typescript@7.28.6(@babel/core@7.29.0)':
+ dependencies:
+ '@babel/core': 7.29.0
+ '@babel/helper-annotate-as-pure': 7.27.3
+ '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0)
+ '@babel/helper-plugin-utils': 7.28.6
+ '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
+ '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/preset-env@7.28.0(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/compat-data': 7.28.0
+ '@babel/core': 7.28.0
+ '@babel/helper-compilation-targets': 7.27.2
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/helper-validator-option': 7.27.1
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.0)
+ '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.28.0)
+ '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.28.0)
+ '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-block-scoping': 7.28.0(@babel/core@7.28.0)
+ '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-class-static-block': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-classes': 7.28.0(@babel/core@7.28.0)
+ '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.0)
+ '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-explicit-resource-management': 7.28.0(@babel/core@7.28.0)
+ '@babel/plugin-transform-exponentiation-operator': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-logical-assignment-operators': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-modules-systemjs': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-object-rest-spread': 7.28.0(@babel/core@7.28.0)
+ '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.0)
+ '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-regenerator': 7.28.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.28.0)
+ '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.0)
+ babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.0)
+ babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.0)
+ babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.0)
+ core-js-compat: 3.44.0
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/types': 7.28.1
+ esutils: 2.0.3
+
+ '@babel/runtime@7.27.6': {}
+
+ '@babel/template@7.27.2':
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ '@babel/parser': 7.29.0
+ '@babel/types': 7.27.6
+
+ '@babel/template@7.28.6':
+ dependencies:
+ '@babel/code-frame': 7.29.0
+ '@babel/parser': 7.29.0
+ '@babel/types': 7.29.0
+
+ '@babel/traverse@7.27.4':
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ '@babel/generator': 7.27.5
+ '@babel/parser': 7.29.0
+ '@babel/template': 7.27.2
+ '@babel/types': 7.27.6
+ debug: 4.4.3
+ globals: 11.12.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/traverse@7.28.0':
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ '@babel/generator': 7.28.0
+ '@babel/helper-globals': 7.28.0
+ '@babel/parser': 7.28.0
+ '@babel/template': 7.27.2
+ '@babel/types': 7.28.1
+ debug: 4.4.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/traverse@7.28.3':
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ '@babel/generator': 7.28.3
+ '@babel/helper-globals': 7.28.0
+ '@babel/parser': 7.29.0
+ '@babel/template': 7.27.2
+ '@babel/types': 7.28.5
+ debug: 4.4.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/traverse@7.28.5':
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ '@babel/generator': 7.28.5
+ '@babel/helper-globals': 7.28.0
+ '@babel/parser': 7.29.0
+ '@babel/template': 7.27.2
+ '@babel/types': 7.28.5
+ debug: 4.4.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/traverse@7.29.0':
+ dependencies:
+ '@babel/code-frame': 7.29.0
+ '@babel/generator': 7.29.1
+ '@babel/helper-globals': 7.28.0
+ '@babel/parser': 7.29.0
+ '@babel/template': 7.28.6
+ '@babel/types': 7.29.0
+ debug: 4.4.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/types@7.27.6':
+ dependencies:
+ '@babel/helper-string-parser': 7.27.1
+ '@babel/helper-validator-identifier': 7.27.1
+
+ '@babel/types@7.28.0':
+ dependencies:
+ '@babel/helper-string-parser': 7.27.1
+ '@babel/helper-validator-identifier': 7.28.5
+ optional: true
+
+ '@babel/types@7.28.1':
+ dependencies:
+ '@babel/helper-string-parser': 7.27.1
+ '@babel/helper-validator-identifier': 7.27.1
+
+ '@babel/types@7.28.5':
+ dependencies:
+ '@babel/helper-string-parser': 7.27.1
+ '@babel/helper-validator-identifier': 7.28.5
+
+ '@babel/types@7.29.0':
+ dependencies:
+ '@babel/helper-string-parser': 7.27.1
+ '@babel/helper-validator-identifier': 7.28.5
+
+ '@bufbuild/protobuf@2.5.2': {}
+
+ '@cacheable/memory@2.0.8':
+ dependencies:
+ '@cacheable/utils': 2.4.0
+ '@keyv/bigmap': 1.3.1(keyv@5.6.0)
+ hookified: 1.15.1
+ keyv: 5.6.0
+
+ '@cacheable/utils@2.4.0':
+ dependencies:
+ hashery: 1.5.0
+ keyv: 5.6.0
+
+ '@clack/core@1.1.0':
+ dependencies:
+ sisteransi: 1.0.5
+
+ '@clack/prompts@1.1.0':
+ dependencies:
+ '@clack/core': 1.1.0
+ sisteransi: 1.0.5
+
+ '@cloudflare/kv-asset-handler@0.4.0':
+ dependencies:
+ mime: 3.0.0
+ optional: true
+
+ '@colors/colors@1.6.0':
+ optional: true
+
+ '@csstools/css-calc@3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)':
+ dependencies:
+ '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0)
+ '@csstools/css-tokenizer': 4.0.0
+
+ '@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0)':
+ dependencies:
+ '@csstools/css-tokenizer': 4.0.0
+
+ '@csstools/css-syntax-patches-for-csstree@1.0.28': {}
+
+ '@csstools/css-tokenizer@4.0.0': {}
+
+ '@csstools/media-query-list-parser@5.0.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)':
+ dependencies:
+ '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0)
+ '@csstools/css-tokenizer': 4.0.0
+
+ '@csstools/selector-resolve-nested@4.0.0(postcss-selector-parser@7.1.1)':
+ dependencies:
+ postcss-selector-parser: 7.1.1
+
+ '@csstools/selector-specificity@6.0.0(postcss-selector-parser@7.1.1)':
+ dependencies:
+ postcss-selector-parser: 7.1.1
+
+ '@ctrl/tinycolor@4.2.0': {}
+
+ '@dabh/diagnostics@2.0.3':
+ dependencies:
+ colorspace: 1.1.4
+ enabled: 2.0.0
+ kuler: 2.0.0
+ optional: true
+
+ '@dependents/detective-less@5.0.1':
+ dependencies:
+ gonzales-pe: 4.3.0
+ node-source-walk: 7.0.1
+ optional: true
+
+ '@e18e/eslint-plugin@0.2.0(eslint@9.39.4(jiti@2.6.1))':
+ dependencies:
+ eslint-plugin-depend: 1.5.0(eslint@9.39.4(jiti@2.6.1))
+ optionalDependencies:
+ eslint: 9.39.4(jiti@2.6.1)
+
+ '@element-plus/icons-vue@2.3.2(vue@3.5.29(typescript@5.9.3))':
+ dependencies:
+ vue: 3.5.29(typescript@5.9.3)
+
+ '@emnapi/core@1.5.0':
+ dependencies:
+ '@emnapi/wasi-threads': 1.1.0
+ tslib: 2.8.1
+ optional: true
+
+ '@emnapi/core@1.8.1':
+ dependencies:
+ '@emnapi/wasi-threads': 1.1.0
+ tslib: 2.8.1
+ optional: true
+
+ '@emnapi/runtime@1.5.0':
+ dependencies:
+ tslib: 2.8.1
+ optional: true
+
+ '@emnapi/runtime@1.8.1':
+ dependencies:
+ tslib: 2.8.1
+ optional: true
+
+ '@emnapi/wasi-threads@1.1.0':
+ dependencies:
+ tslib: 2.8.1
+ optional: true
+
+ '@es-joy/jsdoccomment@0.84.0':
+ dependencies:
+ '@types/estree': 1.0.8
+ '@typescript-eslint/types': 8.56.1
+ comment-parser: 1.4.5
+ esquery: 1.7.0
+ jsdoc-type-pratt-parser: 7.1.1
+
+ '@es-joy/resolve.exports@1.2.0': {}
+
+ '@esbuild/aix-ppc64@0.24.2':
+ optional: true
+
+ '@esbuild/aix-ppc64@0.25.5':
+ optional: true
+
+ '@esbuild/aix-ppc64@0.25.9':
+ optional: true
+
+ '@esbuild/aix-ppc64@0.27.0':
+ optional: true
+
+ '@esbuild/android-arm64@0.24.2':
+ optional: true
+
+ '@esbuild/android-arm64@0.25.5':
+ optional: true
+
+ '@esbuild/android-arm64@0.25.9':
+ optional: true
+
+ '@esbuild/android-arm64@0.27.0':
+ optional: true
+
+ '@esbuild/android-arm@0.24.2':
+ optional: true
+
+ '@esbuild/android-arm@0.25.5':
+ optional: true
+
+ '@esbuild/android-arm@0.25.9':
+ optional: true
+
+ '@esbuild/android-arm@0.27.0':
+ optional: true
+
+ '@esbuild/android-x64@0.24.2':
+ optional: true
+
+ '@esbuild/android-x64@0.25.5':
+ optional: true
+
+ '@esbuild/android-x64@0.25.9':
+ optional: true
+
+ '@esbuild/android-x64@0.27.0':
+ optional: true
+
+ '@esbuild/darwin-arm64@0.24.2':
+ optional: true
+
+ '@esbuild/darwin-arm64@0.25.5':
+ optional: true
+
+ '@esbuild/darwin-arm64@0.25.9':
+ optional: true
+
+ '@esbuild/darwin-arm64@0.27.0':
+ optional: true
+
+ '@esbuild/darwin-x64@0.24.2':
+ optional: true
+
+ '@esbuild/darwin-x64@0.25.5':
+ optional: true
+
+ '@esbuild/darwin-x64@0.25.9':
+ optional: true
+
+ '@esbuild/darwin-x64@0.27.0':
+ optional: true
+
+ '@esbuild/freebsd-arm64@0.24.2':
+ optional: true
+
+ '@esbuild/freebsd-arm64@0.25.5':
+ optional: true
+
+ '@esbuild/freebsd-arm64@0.25.9':
+ optional: true
+
+ '@esbuild/freebsd-arm64@0.27.0':
+ optional: true
+
+ '@esbuild/freebsd-x64@0.24.2':
+ optional: true
+
+ '@esbuild/freebsd-x64@0.25.5':
+ optional: true
+
+ '@esbuild/freebsd-x64@0.25.9':
+ optional: true
+
+ '@esbuild/freebsd-x64@0.27.0':
+ optional: true
+
+ '@esbuild/linux-arm64@0.24.2':
+ optional: true
+
+ '@esbuild/linux-arm64@0.25.5':
+ optional: true
+
+ '@esbuild/linux-arm64@0.25.9':
+ optional: true
+
+ '@esbuild/linux-arm64@0.27.0':
+ optional: true
+
+ '@esbuild/linux-arm@0.24.2':
+ optional: true
+
+ '@esbuild/linux-arm@0.25.5':
+ optional: true
+
+ '@esbuild/linux-arm@0.25.9':
+ optional: true
+
+ '@esbuild/linux-arm@0.27.0':
+ optional: true
+
+ '@esbuild/linux-ia32@0.24.2':
+ optional: true
+
+ '@esbuild/linux-ia32@0.25.5':
+ optional: true
+
+ '@esbuild/linux-ia32@0.25.9':
+ optional: true
+
+ '@esbuild/linux-ia32@0.27.0':
+ optional: true
+
+ '@esbuild/linux-loong64@0.24.2':
+ optional: true
+
+ '@esbuild/linux-loong64@0.25.5':
+ optional: true
+
+ '@esbuild/linux-loong64@0.25.9':
+ optional: true
+
+ '@esbuild/linux-loong64@0.27.0':
+ optional: true
+
+ '@esbuild/linux-mips64el@0.24.2':
+ optional: true
+
+ '@esbuild/linux-mips64el@0.25.5':
+ optional: true
+
+ '@esbuild/linux-mips64el@0.25.9':
+ optional: true
+
+ '@esbuild/linux-mips64el@0.27.0':
+ optional: true
+
+ '@esbuild/linux-ppc64@0.24.2':
+ optional: true
+
+ '@esbuild/linux-ppc64@0.25.5':
+ optional: true
+
+ '@esbuild/linux-ppc64@0.25.9':
+ optional: true
+
+ '@esbuild/linux-ppc64@0.27.0':
+ optional: true
+
+ '@esbuild/linux-riscv64@0.24.2':
+ optional: true
+
+ '@esbuild/linux-riscv64@0.25.5':
+ optional: true
+
+ '@esbuild/linux-riscv64@0.25.9':
+ optional: true
+
+ '@esbuild/linux-riscv64@0.27.0':
+ optional: true
+
+ '@esbuild/linux-s390x@0.24.2':
+ optional: true
+
+ '@esbuild/linux-s390x@0.25.5':
+ optional: true
+
+ '@esbuild/linux-s390x@0.25.9':
+ optional: true
+
+ '@esbuild/linux-s390x@0.27.0':
+ optional: true
+
+ '@esbuild/linux-x64@0.24.2':
+ optional: true
+
+ '@esbuild/linux-x64@0.25.5':
+ optional: true
+
+ '@esbuild/linux-x64@0.25.9':
+ optional: true
+
+ '@esbuild/linux-x64@0.27.0':
+ optional: true
+
+ '@esbuild/netbsd-arm64@0.24.2':
+ optional: true
+
+ '@esbuild/netbsd-arm64@0.25.5':
+ optional: true
+
+ '@esbuild/netbsd-arm64@0.25.9':
+ optional: true
+
+ '@esbuild/netbsd-arm64@0.27.0':
+ optional: true
+
+ '@esbuild/netbsd-x64@0.24.2':
+ optional: true
+
+ '@esbuild/netbsd-x64@0.25.5':
+ optional: true
+
+ '@esbuild/netbsd-x64@0.25.9':
+ optional: true
+
+ '@esbuild/netbsd-x64@0.27.0':
+ optional: true
+
+ '@esbuild/openbsd-arm64@0.24.2':
+ optional: true
+
+ '@esbuild/openbsd-arm64@0.25.5':
+ optional: true
+
+ '@esbuild/openbsd-arm64@0.25.9':
+ optional: true
+
+ '@esbuild/openbsd-arm64@0.27.0':
+ optional: true
+
+ '@esbuild/openbsd-x64@0.24.2':
+ optional: true
+
+ '@esbuild/openbsd-x64@0.25.5':
+ optional: true
+
+ '@esbuild/openbsd-x64@0.25.9':
+ optional: true
+
+ '@esbuild/openbsd-x64@0.27.0':
+ optional: true
+
+ '@esbuild/openharmony-arm64@0.25.9':
+ optional: true
+
+ '@esbuild/openharmony-arm64@0.27.0':
+ optional: true
+
+ '@esbuild/sunos-x64@0.24.2':
+ optional: true
+
+ '@esbuild/sunos-x64@0.25.5':
+ optional: true
+
+ '@esbuild/sunos-x64@0.25.9':
+ optional: true
+
+ '@esbuild/sunos-x64@0.27.0':
+ optional: true
+
+ '@esbuild/win32-arm64@0.24.2':
+ optional: true
+
+ '@esbuild/win32-arm64@0.25.5':
+ optional: true
+
+ '@esbuild/win32-arm64@0.25.9':
+ optional: true
+
+ '@esbuild/win32-arm64@0.27.0':
+ optional: true
+
+ '@esbuild/win32-ia32@0.24.2':
+ optional: true
+
+ '@esbuild/win32-ia32@0.25.5':
+ optional: true
+
+ '@esbuild/win32-ia32@0.25.9':
+ optional: true
+
+ '@esbuild/win32-ia32@0.27.0':
+ optional: true
+
+ '@esbuild/win32-x64@0.24.2':
+ optional: true
+
+ '@esbuild/win32-x64@0.25.5':
+ optional: true
+
+ '@esbuild/win32-x64@0.25.9':
+ optional: true
+
+ '@esbuild/win32-x64@0.27.0':
+ optional: true
+
+ '@eslint-community/eslint-plugin-eslint-comments@4.7.1(eslint@9.39.4(jiti@2.6.1))':
+ dependencies:
+ escape-string-regexp: 4.0.0
+ eslint: 9.39.4(jiti@2.6.1)
+ ignore: 7.0.5
+
+ '@eslint-community/eslint-utils@4.9.1(eslint@9.39.4(jiti@2.6.1))':
+ dependencies:
+ eslint: 9.39.4(jiti@2.6.1)
+ eslint-visitor-keys: 3.4.3
+
+ '@eslint-community/regexpp@4.12.2': {}
+
+ '@eslint/compat@2.0.2(eslint@9.39.4(jiti@2.6.1))':
+ dependencies:
+ '@eslint/core': 1.1.0
+ optionalDependencies:
+ eslint: 9.39.4(jiti@2.6.1)
+
+ '@eslint/config-array@0.21.2':
+ dependencies:
+ '@eslint/object-schema': 2.1.7
+ debug: 4.4.3
+ minimatch: 3.1.5
+ transitivePeerDependencies:
+ - supports-color
+
+ '@eslint/config-helpers@0.4.2':
+ dependencies:
+ '@eslint/core': 0.17.0
+
+ '@eslint/config-helpers@0.5.2':
+ dependencies:
+ '@eslint/core': 1.1.0
+
+ '@eslint/core@0.17.0':
+ dependencies:
+ '@types/json-schema': 7.0.15
+
+ '@eslint/core@1.1.0':
+ dependencies:
+ '@types/json-schema': 7.0.15
+
+ '@eslint/eslintrc@3.3.5':
+ dependencies:
+ ajv: 6.14.0
+ debug: 4.4.3
+ espree: 10.4.0
+ globals: 14.0.0
+ ignore: 5.3.2
+ import-fresh: 3.3.1
+ js-yaml: 4.1.1
+ minimatch: 3.1.5
+ strip-json-comments: 3.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@eslint/js@9.39.4': {}
+
+ '@eslint/markdown@7.5.1':
+ dependencies:
+ '@eslint/core': 0.17.0
+ '@eslint/plugin-kit': 0.4.1
+ github-slugger: 2.0.0
+ mdast-util-from-markdown: 2.0.2
+ mdast-util-frontmatter: 2.0.1
+ mdast-util-gfm: 3.1.0
+ micromark-extension-frontmatter: 2.0.0
+ micromark-extension-gfm: 3.0.0
+ micromark-util-normalize-identifier: 2.0.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@eslint/object-schema@2.1.7': {}
+
+ '@eslint/plugin-kit@0.4.1':
+ dependencies:
+ '@eslint/core': 0.17.0
+ levn: 0.4.1
+
+ '@eslint/plugin-kit@0.6.0':
+ dependencies:
+ '@eslint/core': 1.1.0
+ levn: 0.4.1
+
+ '@faker-js/faker@10.3.0': {}
+
+ '@fastify/busboy@3.2.0':
+ optional: true
+
+ '@floating-ui/core@1.7.1':
+ dependencies:
+ '@floating-ui/utils': 0.2.9
+
+ '@floating-ui/dom@1.7.1':
+ dependencies:
+ '@floating-ui/core': 1.7.1
+ '@floating-ui/utils': 0.2.9
+
+ '@floating-ui/utils@0.2.9': {}
+
+ '@floating-ui/vue@1.1.6(vue@3.5.29(typescript@5.9.3))':
+ dependencies:
+ '@floating-ui/dom': 1.7.1
+ '@floating-ui/utils': 0.2.9
+ vue-demi: 0.14.10(vue@3.5.29(typescript@5.9.3))
+ transitivePeerDependencies:
+ - '@vue/composition-api'
+ - vue
+
+ '@henrygd/queue@1.2.0': {}
+
+ '@humanfs/core@0.19.1': {}
+
+ '@humanfs/node@0.16.6':
+ dependencies:
+ '@humanfs/core': 0.19.1
+ '@humanwhocodes/retry': 0.3.1
+
+ '@humanwhocodes/module-importer@1.0.1': {}
+
+ '@humanwhocodes/retry@0.3.1': {}
+
+ '@humanwhocodes/retry@0.4.3': {}
+
+ '@iconify/json@2.2.447':
+ dependencies:
+ '@iconify/types': 2.0.0
+ pathe: 2.0.3
+
+ '@iconify/types@2.0.0': {}
+
+ '@iconify/utils@3.1.0':
+ dependencies:
+ '@antfu/install-pkg': 1.1.0
+ '@iconify/types': 2.0.0
+ mlly: 1.8.0
+
+ '@iconify/vue@5.0.0(vue@3.5.29(typescript@5.9.3))':
+ dependencies:
+ '@iconify/types': 2.0.0
+ vue: 3.5.29(typescript@5.9.3)
+
+ '@inquirer/external-editor@1.0.2(@types/node@22.15.30)':
+ dependencies:
+ chardet: 2.1.0
+ iconv-lite: 0.7.0
+ optionalDependencies:
+ '@types/node': 22.15.30
+
+ '@inquirer/figures@1.0.12': {}
+
+ '@internationalized/date@3.8.2':
+ dependencies:
+ '@swc/helpers': 0.5.17
+
+ '@internationalized/number@3.6.3':
+ dependencies:
+ '@swc/helpers': 0.5.17
+
+ '@ioredis/commands@1.3.1':
+ optional: true
+
+ '@isaacs/cliui@8.0.2':
+ dependencies:
+ string-width: 5.1.2
+ string-width-cjs: string-width@4.2.3
+ strip-ansi: 7.1.0
+ strip-ansi-cjs: strip-ansi@6.0.1
+ wrap-ansi: 8.1.0
+ wrap-ansi-cjs: wrap-ansi@7.0.0
+
+ '@isaacs/fs-minipass@4.0.1':
+ dependencies:
+ minipass: 7.1.2
+ optional: true
+
+ '@jridgewell/gen-mapping@0.3.12':
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.0
+ '@jridgewell/trace-mapping': 0.3.29
+
+ '@jridgewell/gen-mapping@0.3.8':
+ dependencies:
+ '@jridgewell/set-array': 1.2.1
+ '@jridgewell/sourcemap-codec': 1.5.0
+ '@jridgewell/trace-mapping': 0.3.29
+
+ '@jridgewell/remapping@2.3.5':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.12
+ '@jridgewell/trace-mapping': 0.3.29
+
+ '@jridgewell/resolve-uri@3.1.2': {}
+
+ '@jridgewell/set-array@1.2.1': {}
+
+ '@jridgewell/source-map@0.3.6':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.12
+ '@jridgewell/trace-mapping': 0.3.29
+
+ '@jridgewell/sourcemap-codec@1.5.0': {}
+
+ '@jridgewell/sourcemap-codec@1.5.5': {}
+
+ '@jridgewell/trace-mapping@0.3.25':
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.2
+ '@jridgewell/sourcemap-codec': 1.5.0
+
+ '@jridgewell/trace-mapping@0.3.29':
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.2
+ '@jridgewell/sourcemap-codec': 1.5.0
+
+ '@keyv/bigmap@1.3.1(keyv@5.6.0)':
+ dependencies:
+ hashery: 1.5.0
+ hookified: 1.15.1
+ keyv: 5.6.0
+
+ '@keyv/serialize@1.1.1': {}
+
+ '@kwsites/file-exists@1.1.1':
+ dependencies:
+ debug: 4.4.3
+ transitivePeerDependencies:
+ - supports-color
+ optional: true
+
+ '@kwsites/promise-deferred@1.1.1':
+ optional: true
+
+ '@mapbox/node-pre-gyp@2.0.0':
+ dependencies:
+ consola: 3.4.2
+ detect-libc: 2.0.4
+ https-proxy-agent: 7.0.6
+ node-fetch: 2.7.0
+ nopt: 8.1.0
+ semver: 7.7.4
+ tar: 7.4.3
+ transitivePeerDependencies:
+ - encoding
+ - supports-color
+ optional: true
+
+ '@napi-rs/wasm-runtime@1.0.3':
+ dependencies:
+ '@emnapi/core': 1.5.0
+ '@emnapi/runtime': 1.5.0
+ '@tybys/wasm-util': 0.10.0
+ optional: true
+
+ '@napi-rs/wasm-runtime@1.1.1':
+ dependencies:
+ '@emnapi/core': 1.8.1
+ '@emnapi/runtime': 1.8.1
+ '@tybys/wasm-util': 0.10.1
+ optional: true
+
+ '@netlify/binary-info@1.0.0':
+ optional: true
+
+ '@netlify/blobs@9.1.2':
+ dependencies:
+ '@netlify/dev-utils': 2.2.0
+ '@netlify/runtime-utils': 1.3.1
+ optional: true
+
+ '@netlify/dev-utils@2.2.0':
+ dependencies:
+ '@whatwg-node/server': 0.9.71
+ chokidar: 4.0.3
+ decache: 4.6.2
+ dot-prop: 9.0.0
+ env-paths: 3.0.0
+ find-up: 7.0.0
+ lodash.debounce: 4.0.8
+ netlify: 13.3.5
+ parse-gitignore: 2.0.0
+ uuid: 11.1.0
+ write-file-atomic: 6.0.0
+ optional: true
+
+ '@netlify/functions@3.1.10(rollup@4.46.2)':
+ dependencies:
+ '@netlify/blobs': 9.1.2
+ '@netlify/dev-utils': 2.2.0
+ '@netlify/serverless-functions-api': 1.41.2
+ '@netlify/zip-it-and-ship-it': 12.2.1(rollup@4.46.2)
+ cron-parser: 4.9.0
+ decache: 4.6.2
+ extract-zip: 2.0.1
+ is-stream: 4.0.1
+ jwt-decode: 4.0.0
+ lambda-local: 2.2.0
+ read-package-up: 11.0.0
+ source-map-support: 0.5.21
+ transitivePeerDependencies:
+ - encoding
+ - rollup
+ - supports-color
+ optional: true
+
+ '@netlify/open-api@2.37.0':
+ optional: true
+
+ '@netlify/runtime-utils@1.3.1':
+ optional: true
+
+ '@netlify/serverless-functions-api@1.41.2':
+ optional: true
+
+ '@netlify/serverless-functions-api@2.3.0':
+ optional: true
+
+ '@netlify/zip-it-and-ship-it@12.2.1(rollup@4.46.2)':
+ dependencies:
+ '@babel/parser': 7.29.0
+ '@babel/types': 7.28.0
+ '@netlify/binary-info': 1.0.0
+ '@netlify/serverless-functions-api': 2.3.0
+ '@vercel/nft': 0.29.4(rollup@4.46.2)
+ archiver: 7.0.1
+ common-path-prefix: 3.0.0
+ copy-file: 11.1.0
+ es-module-lexer: 1.7.0
+ esbuild: 0.25.5
+ execa: 8.0.1
+ fast-glob: 3.3.3
+ filter-obj: 6.1.0
+ find-up: 7.0.0
+ is-builtin-module: 3.2.1
+ is-path-inside: 4.0.0
+ junk: 4.0.1
+ locate-path: 7.2.0
+ merge-options: 3.0.4
+ minimatch: 9.0.5
+ normalize-path: 3.0.0
+ p-map: 7.0.3
+ path-exists: 5.0.0
+ precinct: 12.2.0
+ require-package-name: 2.0.1
+ resolve: 2.0.0-next.5
+ semver: 7.7.4
+ tmp-promise: 3.0.3
+ toml: 3.0.0
+ unixify: 1.0.0
+ urlpattern-polyfill: 8.0.2
+ yargs: 17.7.2
+ zod: 3.25.76
+ transitivePeerDependencies:
+ - encoding
+ - rollup
+ - supports-color
+ optional: true
+
+ '@nodelib/fs.scandir@2.1.5':
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ run-parallel: 1.2.0
+
+ '@nodelib/fs.stat@2.0.5': {}
+
+ '@nodelib/fs.walk@1.2.8':
+ dependencies:
+ '@nodelib/fs.scandir': 2.1.5
+ fastq: 1.19.1
+
+ '@nuxt/cli@3.28.0(magicast@0.3.5)':
+ dependencies:
+ c12: 3.3.3(magicast@0.3.5)
+ citty: 0.1.6
+ clipboardy: 4.0.0
+ confbox: 0.2.2
+ consola: 3.4.2
+ defu: 6.1.4
+ exsolve: 1.0.8
+ fuse.js: 7.1.0
+ get-port-please: 3.2.0
+ giget: 2.0.0
+ h3: 1.15.4
+ httpxy: 0.1.7
+ jiti: 2.6.1
+ listhen: 1.9.0
+ nypm: 0.6.1
+ ofetch: 1.5.1
+ ohash: 2.0.11
+ pathe: 2.0.3
+ perfect-debounce: 1.0.0
+ pkg-types: 2.3.0
+ scule: 1.3.0
+ semver: 7.7.4
+ std-env: 3.9.0
+ tinyexec: 1.0.2
+ ufo: 1.6.1
+ youch: 4.1.0-beta.11
+ transitivePeerDependencies:
+ - magicast
+ optional: true
+
+ '@nuxt/devalue@2.0.2':
+ optional: true
+
+ '@nuxt/devtools-kit@2.6.3(magicast@0.3.5)(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))':
+ dependencies:
+ '@nuxt/kit': 3.18.1(magicast@0.3.5)
+ execa: 8.0.1
+ vite: 7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2)
+ transitivePeerDependencies:
+ - magicast
+ optional: true
+
+ '@nuxt/devtools-wizard@2.6.3':
+ dependencies:
+ consola: 3.4.2
+ diff: 8.0.2
+ execa: 8.0.1
+ magicast: 0.3.5
+ pathe: 2.0.3
+ pkg-types: 2.3.0
+ prompts: 2.4.2
+ semver: 7.7.4
+ optional: true
+
+ '@nuxt/devtools@2.6.3(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.29(typescript@5.9.3))':
+ dependencies:
+ '@nuxt/devtools-kit': 2.6.3(magicast@0.3.5)(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))
+ '@nuxt/devtools-wizard': 2.6.3
+ '@nuxt/kit': 3.18.1(magicast@0.3.5)
+ '@vue/devtools-core': 7.7.7(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.29(typescript@5.9.3))
+ '@vue/devtools-kit': 7.7.7
+ birpc: 2.6.1
+ consola: 3.4.2
+ destr: 2.0.5
+ error-stack-parser-es: 1.0.5
+ execa: 8.0.1
+ fast-npm-meta: 0.4.6
+ get-port-please: 3.2.0
+ hookable: 5.5.3
+ image-meta: 0.2.1
+ is-installed-globally: 1.0.0
+ launch-editor: 2.11.1
+ local-pkg: 1.1.2
+ magicast: 0.3.5
+ nypm: 0.6.1
+ ohash: 2.0.11
+ pathe: 2.0.3
+ perfect-debounce: 1.0.0
+ pkg-types: 2.3.0
+ semver: 7.7.4
+ simple-git: 3.28.0
+ sirv: 3.0.2
+ structured-clone-es: 1.0.0
+ tinyglobby: 0.2.15
+ vite: 7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2)
+ vite-plugin-inspect: 11.3.3(@nuxt/kit@3.18.1(magicast@0.3.5))(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))
+ vite-plugin-vue-tracer: 1.0.0(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.29(typescript@5.9.3))
+ which: 5.0.0
+ ws: 8.18.3
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+ - vue
+ optional: true
+
+ '@nuxt/kit@3.18.1(magicast@0.3.5)':
+ dependencies:
+ c12: 3.3.3(magicast@0.3.5)
+ consola: 3.4.2
+ defu: 6.1.4
+ destr: 2.0.5
+ errx: 0.1.0
+ exsolve: 1.0.8
+ ignore: 7.0.5
+ jiti: 2.6.1
+ klona: 2.0.6
+ knitwork: 1.2.0
+ mlly: 1.8.0
+ ohash: 2.0.11
+ pathe: 2.0.3
+ pkg-types: 2.3.0
+ scule: 1.3.0
+ semver: 7.7.4
+ std-env: 3.9.0
+ tinyglobby: 0.2.15
+ ufo: 1.6.1
+ unctx: 2.4.1
+ unimport: 5.7.0
+ untyped: 2.0.0
+ transitivePeerDependencies:
+ - magicast
+ optional: true
+
+ '@nuxt/kit@4.0.3(magicast@0.3.5)':
+ dependencies:
+ c12: 3.3.3(magicast@0.3.5)
+ consola: 3.4.2
+ defu: 6.1.4
+ destr: 2.0.5
+ errx: 0.1.0
+ exsolve: 1.0.8
+ ignore: 7.0.5
+ jiti: 2.6.1
+ klona: 2.0.6
+ mlly: 1.8.0
+ ohash: 2.0.11
+ pathe: 2.0.3
+ pkg-types: 2.3.0
+ scule: 1.3.0
+ semver: 7.7.4
+ std-env: 3.9.0
+ tinyglobby: 0.2.15
+ ufo: 1.6.1
+ unctx: 2.4.1
+ unimport: 5.7.0
+ untyped: 2.0.0
+ transitivePeerDependencies:
+ - magicast
+ optional: true
+
+ '@nuxt/schema@4.0.3':
+ dependencies:
+ '@vue/shared': 3.5.29
+ consola: 3.4.2
+ defu: 6.1.4
+ pathe: 2.0.3
+ std-env: 3.9.0
+ ufo: 1.6.1
+ optional: true
+
+ '@nuxt/telemetry@2.6.6(magicast@0.3.5)':
+ dependencies:
+ '@nuxt/kit': 3.18.1(magicast@0.3.5)
+ citty: 0.1.6
+ consola: 3.4.2
+ destr: 2.0.5
+ dotenv: 16.6.1
+ git-url-parse: 16.1.0
+ is-docker: 3.0.0
+ ofetch: 1.5.1
+ package-manager-detector: 1.6.0
+ pathe: 2.0.3
+ rc9: 2.1.2
+ std-env: 3.9.0
+ transitivePeerDependencies:
+ - magicast
+ optional: true
+
+ '@nuxt/vite-builder@4.0.3(@types/node@22.15.30)(eslint@9.39.4(jiti@2.6.1))(magicast@0.3.5)(meow@13.2.0)(optionator@0.9.4)(rollup@4.46.2)(sass-embedded@1.97.3)(sass@1.97.3)(stylelint@17.4.0(typescript@5.9.3))(terser@5.41.0)(tsx@4.21.0)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3))(vue@3.5.29(typescript@5.9.3))(yaml@2.8.2)':
+ dependencies:
+ '@nuxt/kit': 4.0.3(magicast@0.3.5)
+ '@rollup/plugin-replace': 6.0.2(rollup@4.46.2)
+ '@vitejs/plugin-vue': 6.0.4(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.29(typescript@5.9.3))
+ '@vitejs/plugin-vue-jsx': 5.1.4(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.29(typescript@5.9.3))
+ autoprefixer: 10.4.27(postcss@8.5.8)
+ consola: 3.4.2
+ cssnano: 7.1.1(postcss@8.5.8)
+ defu: 6.1.4
+ esbuild: 0.25.9
+ escape-string-regexp: 5.0.0
+ exsolve: 1.0.8
+ get-port-please: 3.2.0
+ h3: 1.15.4
+ jiti: 2.6.1
+ knitwork: 1.2.0
+ magic-string: 0.30.21
+ mlly: 1.8.0
+ mocked-exports: 0.1.1
+ pathe: 2.0.3
+ pkg-types: 2.3.0
+ postcss: 8.5.8
+ rollup-plugin-visualizer: 6.0.3(rollup@4.46.2)
+ std-env: 3.9.0
+ ufo: 1.6.1
+ unenv: 2.0.0-rc.19
+ vite: 7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2)
+ vite-node: 3.2.4(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2)
+ vite-plugin-checker: 0.10.3(eslint@9.39.4(jiti@2.6.1))(meow@13.2.0)(optionator@0.9.4)(stylelint@17.4.0(typescript@5.9.3))(typescript@5.9.3)(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))(vue-tsc@3.2.5(typescript@5.9.3))
+ vue: 3.5.29(typescript@5.9.3)
+ vue-bundle-renderer: 2.1.2
+ transitivePeerDependencies:
+ - '@biomejs/biome'
+ - '@types/node'
+ - eslint
+ - less
+ - lightningcss
+ - magicast
+ - meow
+ - optionator
+ - rolldown
+ - rollup
+ - sass
+ - sass-embedded
+ - stylelint
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
+ - tsx
+ - typescript
+ - vls
+ - vti
+ - vue-tsc
+ - yaml
+ optional: true
+
+ '@ota-meshi/ast-token-store@0.3.0': {}
+
+ '@oxc-minify/binding-android-arm64@0.80.0':
+ optional: true
+
+ '@oxc-minify/binding-darwin-arm64@0.80.0':
+ optional: true
+
+ '@oxc-minify/binding-darwin-x64@0.80.0':
+ optional: true
+
+ '@oxc-minify/binding-freebsd-x64@0.80.0':
+ optional: true
+
+ '@oxc-minify/binding-linux-arm-gnueabihf@0.80.0':
+ optional: true
+
+ '@oxc-minify/binding-linux-arm-musleabihf@0.80.0':
+ optional: true
+
+ '@oxc-minify/binding-linux-arm64-gnu@0.80.0':
+ optional: true
+
+ '@oxc-minify/binding-linux-arm64-musl@0.80.0':
+ optional: true
+
+ '@oxc-minify/binding-linux-riscv64-gnu@0.80.0':
+ optional: true
+
+ '@oxc-minify/binding-linux-s390x-gnu@0.80.0':
+ optional: true
+
+ '@oxc-minify/binding-linux-x64-gnu@0.80.0':
+ optional: true
+
+ '@oxc-minify/binding-linux-x64-musl@0.80.0':
+ optional: true
+
+ '@oxc-minify/binding-wasm32-wasi@0.80.0':
+ dependencies:
+ '@napi-rs/wasm-runtime': 1.1.1
+ optional: true
+
+ '@oxc-minify/binding-win32-arm64-msvc@0.80.0':
+ optional: true
+
+ '@oxc-minify/binding-win32-x64-msvc@0.80.0':
+ optional: true
+
+ '@oxc-parser/binding-android-arm-eabi@0.115.0':
+ optional: true
+
+ '@oxc-parser/binding-android-arm64@0.115.0':
+ optional: true
+
+ '@oxc-parser/binding-android-arm64@0.80.0':
+ optional: true
+
+ '@oxc-parser/binding-android-arm64@0.82.3':
+ optional: true
+
+ '@oxc-parser/binding-darwin-arm64@0.115.0':
+ optional: true
+
+ '@oxc-parser/binding-darwin-arm64@0.80.0':
+ optional: true
+
+ '@oxc-parser/binding-darwin-arm64@0.82.3':
+ optional: true
+
+ '@oxc-parser/binding-darwin-x64@0.115.0':
+ optional: true
+
+ '@oxc-parser/binding-darwin-x64@0.80.0':
+ optional: true
+
+ '@oxc-parser/binding-darwin-x64@0.82.3':
+ optional: true
+
+ '@oxc-parser/binding-freebsd-x64@0.115.0':
+ optional: true
+
+ '@oxc-parser/binding-freebsd-x64@0.80.0':
+ optional: true
+
+ '@oxc-parser/binding-freebsd-x64@0.82.3':
+ optional: true
+
+ '@oxc-parser/binding-linux-arm-gnueabihf@0.115.0':
+ optional: true
+
+ '@oxc-parser/binding-linux-arm-gnueabihf@0.80.0':
+ optional: true
+
+ '@oxc-parser/binding-linux-arm-gnueabihf@0.82.3':
+ optional: true
+
+ '@oxc-parser/binding-linux-arm-musleabihf@0.115.0':
+ optional: true
+
+ '@oxc-parser/binding-linux-arm-musleabihf@0.80.0':
+ optional: true
+
+ '@oxc-parser/binding-linux-arm-musleabihf@0.82.3':
+ optional: true
+
+ '@oxc-parser/binding-linux-arm64-gnu@0.115.0':
+ optional: true
+
+ '@oxc-parser/binding-linux-arm64-gnu@0.80.0':
+ optional: true
+
+ '@oxc-parser/binding-linux-arm64-gnu@0.82.3':
+ optional: true
+
+ '@oxc-parser/binding-linux-arm64-musl@0.115.0':
+ optional: true
+
+ '@oxc-parser/binding-linux-arm64-musl@0.80.0':
+ optional: true
+
+ '@oxc-parser/binding-linux-arm64-musl@0.82.3':
+ optional: true
+
+ '@oxc-parser/binding-linux-ppc64-gnu@0.115.0':
+ optional: true
+
+ '@oxc-parser/binding-linux-riscv64-gnu@0.115.0':
+ optional: true
+
+ '@oxc-parser/binding-linux-riscv64-gnu@0.80.0':
+ optional: true
+
+ '@oxc-parser/binding-linux-riscv64-gnu@0.82.3':
+ optional: true
+
+ '@oxc-parser/binding-linux-riscv64-musl@0.115.0':
+ optional: true
+
+ '@oxc-parser/binding-linux-s390x-gnu@0.115.0':
+ optional: true
+
+ '@oxc-parser/binding-linux-s390x-gnu@0.80.0':
+ optional: true
+
+ '@oxc-parser/binding-linux-s390x-gnu@0.82.3':
+ optional: true
+
+ '@oxc-parser/binding-linux-x64-gnu@0.115.0':
+ optional: true
+
+ '@oxc-parser/binding-linux-x64-gnu@0.80.0':
+ optional: true
+
+ '@oxc-parser/binding-linux-x64-gnu@0.82.3':
+ optional: true
+
+ '@oxc-parser/binding-linux-x64-musl@0.115.0':
+ optional: true
+
+ '@oxc-parser/binding-linux-x64-musl@0.80.0':
+ optional: true
+
+ '@oxc-parser/binding-linux-x64-musl@0.82.3':
+ optional: true
+
+ '@oxc-parser/binding-openharmony-arm64@0.115.0':
+ optional: true
+
+ '@oxc-parser/binding-wasm32-wasi@0.115.0':
+ dependencies:
+ '@napi-rs/wasm-runtime': 1.1.1
+ optional: true
+
+ '@oxc-parser/binding-wasm32-wasi@0.80.0':
+ dependencies:
+ '@napi-rs/wasm-runtime': 1.1.1
+ optional: true
+
+ '@oxc-parser/binding-wasm32-wasi@0.82.3':
+ dependencies:
+ '@napi-rs/wasm-runtime': 1.0.3
+ optional: true
+
+ '@oxc-parser/binding-win32-arm64-msvc@0.115.0':
+ optional: true
+
+ '@oxc-parser/binding-win32-arm64-msvc@0.80.0':
+ optional: true
+
+ '@oxc-parser/binding-win32-arm64-msvc@0.82.3':
+ optional: true
+
+ '@oxc-parser/binding-win32-ia32-msvc@0.115.0':
+ optional: true
+
+ '@oxc-parser/binding-win32-x64-msvc@0.115.0':
+ optional: true
+
+ '@oxc-parser/binding-win32-x64-msvc@0.80.0':
+ optional: true
+
+ '@oxc-parser/binding-win32-x64-msvc@0.82.3':
+ optional: true
+
+ '@oxc-project/types@0.115.0': {}
+
+ '@oxc-project/types@0.80.0':
+ optional: true
+
+ '@oxc-project/types@0.82.3': {}
+
+ '@oxc-transform/binding-android-arm64@0.80.0':
+ optional: true
+
+ '@oxc-transform/binding-darwin-arm64@0.80.0':
+ optional: true
+
+ '@oxc-transform/binding-darwin-x64@0.80.0':
+ optional: true
+
+ '@oxc-transform/binding-freebsd-x64@0.80.0':
+ optional: true
+
+ '@oxc-transform/binding-linux-arm-gnueabihf@0.80.0':
+ optional: true
+
+ '@oxc-transform/binding-linux-arm-musleabihf@0.80.0':
+ optional: true
+
+ '@oxc-transform/binding-linux-arm64-gnu@0.80.0':
+ optional: true
+
+ '@oxc-transform/binding-linux-arm64-musl@0.80.0':
+ optional: true
+
+ '@oxc-transform/binding-linux-riscv64-gnu@0.80.0':
+ optional: true
+
+ '@oxc-transform/binding-linux-s390x-gnu@0.80.0':
+ optional: true
+
+ '@oxc-transform/binding-linux-x64-gnu@0.80.0':
+ optional: true
+
+ '@oxc-transform/binding-linux-x64-musl@0.80.0':
+ optional: true
+
+ '@oxc-transform/binding-wasm32-wasi@0.80.0':
+ dependencies:
+ '@napi-rs/wasm-runtime': 1.1.1
+ optional: true
+
+ '@oxc-transform/binding-win32-arm64-msvc@0.80.0':
+ optional: true
+
+ '@oxc-transform/binding-win32-x64-msvc@0.80.0':
+ optional: true
+
+ '@parcel/watcher-android-arm64@2.5.1':
+ optional: true
+
+ '@parcel/watcher-darwin-arm64@2.5.1':
+ optional: true
+
+ '@parcel/watcher-darwin-x64@2.5.1':
+ optional: true
+
+ '@parcel/watcher-freebsd-x64@2.5.1':
+ optional: true
+
+ '@parcel/watcher-linux-arm-glibc@2.5.1':
+ optional: true
+
+ '@parcel/watcher-linux-arm-musl@2.5.1':
+ optional: true
+
+ '@parcel/watcher-linux-arm64-glibc@2.5.1':
+ optional: true
+
+ '@parcel/watcher-linux-arm64-musl@2.5.1':
+ optional: true
+
+ '@parcel/watcher-linux-x64-glibc@2.5.1':
+ optional: true
+
+ '@parcel/watcher-linux-x64-musl@2.5.1':
+ optional: true
+
+ '@parcel/watcher-wasm@2.5.1':
+ dependencies:
+ is-glob: 4.0.3
+ micromatch: 4.0.8
+ optional: true
+
+ '@parcel/watcher-win32-arm64@2.5.1':
+ optional: true
+
+ '@parcel/watcher-win32-ia32@2.5.1':
+ optional: true
+
+ '@parcel/watcher-win32-x64@2.5.1':
+ optional: true
+
+ '@parcel/watcher@2.5.1':
+ dependencies:
+ detect-libc: 1.0.3
+ is-glob: 4.0.3
+ micromatch: 4.0.8
+ node-addon-api: 7.1.1
+ optionalDependencies:
+ '@parcel/watcher-android-arm64': 2.5.1
+ '@parcel/watcher-darwin-arm64': 2.5.1
+ '@parcel/watcher-darwin-x64': 2.5.1
+ '@parcel/watcher-freebsd-x64': 2.5.1
+ '@parcel/watcher-linux-arm-glibc': 2.5.1
+ '@parcel/watcher-linux-arm-musl': 2.5.1
+ '@parcel/watcher-linux-arm64-glibc': 2.5.1
+ '@parcel/watcher-linux-arm64-musl': 2.5.1
+ '@parcel/watcher-linux-x64-glibc': 2.5.1
+ '@parcel/watcher-linux-x64-musl': 2.5.1
+ '@parcel/watcher-win32-arm64': 2.5.1
+ '@parcel/watcher-win32-ia32': 2.5.1
+ '@parcel/watcher-win32-x64': 2.5.1
+ optional: true
+
+ '@pkgjs/parseargs@0.11.0':
+ optional: true
+
+ '@pkgr/core@0.2.9': {}
+
+ '@polka/url@1.0.0-next.29': {}
+
+ '@poppinss/colors@4.1.5':
+ dependencies:
+ kleur: 4.1.5
+ optional: true
+
+ '@poppinss/dumper@0.6.4':
+ dependencies:
+ '@poppinss/colors': 4.1.5
+ '@sindresorhus/is': 7.0.2
+ supports-color: 10.2.2
+ optional: true
+
+ '@poppinss/exception@1.2.2':
+ optional: true
+
+ '@quansync/fs@1.0.0':
+ dependencies:
+ quansync: 1.0.0
+
+ '@rolldown/pluginutils@1.0.0-rc.2': {}
+
+ '@rolldown/pluginutils@1.0.0-rc.6': {}
+
+ '@rollup/plugin-alias@5.1.1(rollup@4.46.2)':
+ optionalDependencies:
+ rollup: 4.46.2
+ optional: true
+
+ '@rollup/plugin-commonjs@28.0.6(rollup@4.46.2)':
+ dependencies:
+ '@rollup/pluginutils': 5.1.4(rollup@4.46.2)
+ commondir: 1.0.1
+ estree-walker: 2.0.2
+ fdir: 6.5.0(picomatch@4.0.3)
+ is-reference: 1.2.1
+ magic-string: 0.30.21
+ picomatch: 4.0.3
+ optionalDependencies:
+ rollup: 4.46.2
+ optional: true
+
+ '@rollup/plugin-inject@5.0.5(rollup@4.46.2)':
+ dependencies:
+ '@rollup/pluginutils': 5.1.4(rollup@4.46.2)
+ estree-walker: 2.0.2
+ magic-string: 0.30.21
+ optionalDependencies:
+ rollup: 4.46.2
+ optional: true
+
+ '@rollup/plugin-json@6.1.0(rollup@4.46.2)':
+ dependencies:
+ '@rollup/pluginutils': 5.1.4(rollup@4.46.2)
+ optionalDependencies:
+ rollup: 4.46.2
+ optional: true
+
+ '@rollup/plugin-node-resolve@16.0.1(rollup@4.46.2)':
+ dependencies:
+ '@rollup/pluginutils': 5.1.4(rollup@4.46.2)
+ '@types/resolve': 1.20.2
+ deepmerge: 4.3.1
+ is-module: 1.0.0
+ resolve: 1.22.10
+ optionalDependencies:
+ rollup: 4.46.2
+ optional: true
+
+ '@rollup/plugin-replace@6.0.2(rollup@4.46.2)':
+ dependencies:
+ '@rollup/pluginutils': 5.1.4(rollup@4.46.2)
+ magic-string: 0.30.21
+ optionalDependencies:
+ rollup: 4.46.2
+ optional: true
+
+ '@rollup/plugin-terser@0.4.4(rollup@4.46.2)':
+ dependencies:
+ serialize-javascript: 6.0.2
+ smob: 1.5.0
+ terser: 5.41.0
+ optionalDependencies:
+ rollup: 4.46.2
+ optional: true
+
+ '@rollup/pluginutils@5.1.4(rollup@4.46.2)':
+ dependencies:
+ '@types/estree': 1.0.8
+ estree-walker: 2.0.2
+ picomatch: 4.0.3
+ optionalDependencies:
+ rollup: 4.46.2
+
+ '@rollup/rollup-android-arm-eabi@4.46.2':
+ optional: true
+
+ '@rollup/rollup-android-arm64@4.46.2':
+ optional: true
+
+ '@rollup/rollup-darwin-arm64@4.46.2':
+ optional: true
+
+ '@rollup/rollup-darwin-x64@4.46.2':
+ optional: true
+
+ '@rollup/rollup-freebsd-arm64@4.46.2':
+ optional: true
+
+ '@rollup/rollup-freebsd-x64@4.46.2':
+ optional: true
+
+ '@rollup/rollup-linux-arm-gnueabihf@4.46.2':
+ optional: true
+
+ '@rollup/rollup-linux-arm-musleabihf@4.46.2':
+ optional: true
+
+ '@rollup/rollup-linux-arm64-gnu@4.46.2':
+ optional: true
+
+ '@rollup/rollup-linux-arm64-musl@4.46.2':
+ optional: true
+
+ '@rollup/rollup-linux-loongarch64-gnu@4.46.2':
+ optional: true
+
+ '@rollup/rollup-linux-ppc64-gnu@4.46.2':
+ optional: true
+
+ '@rollup/rollup-linux-riscv64-gnu@4.46.2':
+ optional: true
+
+ '@rollup/rollup-linux-riscv64-musl@4.46.2':
+ optional: true
+
+ '@rollup/rollup-linux-s390x-gnu@4.46.2':
+ optional: true
+
+ '@rollup/rollup-linux-x64-gnu@4.46.2':
+ optional: true
+
+ '@rollup/rollup-linux-x64-musl@4.46.2':
+ optional: true
+
+ '@rollup/rollup-win32-arm64-msvc@4.46.2':
+ optional: true
+
+ '@rollup/rollup-win32-ia32-msvc@4.46.2':
+ optional: true
+
+ '@rollup/rollup-win32-x64-msvc@4.46.2':
+ optional: true
+
+ '@sindresorhus/base62@1.0.0': {}
+
+ '@sindresorhus/is@7.0.2':
+ optional: true
+
+ '@sindresorhus/merge-streams@2.3.0':
+ optional: true
+
+ '@sindresorhus/merge-streams@4.0.0': {}
+
+ '@speed-highlight/core@1.2.7':
+ optional: true
+
+ '@stylistic/eslint-plugin@5.10.0(eslint@9.39.4(jiti@2.6.1))':
+ dependencies:
+ '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1))
+ '@typescript-eslint/types': 8.56.1
+ eslint: 9.39.4(jiti@2.6.1)
+ eslint-visitor-keys: 4.2.1
+ espree: 10.4.0
+ estraverse: 5.3.0
+ picomatch: 4.0.3
+
+ '@stylistic/stylelint-config@4.0.0(stylelint@17.4.0(typescript@5.9.3))':
+ dependencies:
+ '@stylistic/stylelint-plugin': 5.0.1(stylelint@17.4.0(typescript@5.9.3))
+ stylelint: 17.4.0(typescript@5.9.3)
+
+ '@stylistic/stylelint-plugin@5.0.1(stylelint@17.4.0(typescript@5.9.3))':
+ dependencies:
+ '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0)
+ '@csstools/css-tokenizer': 4.0.0
+ '@csstools/media-query-list-parser': 5.0.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)
+ postcss: 8.5.8
+ postcss-selector-parser: 7.1.1
+ postcss-value-parser: 4.2.0
+ style-search: 0.1.0
+ stylelint: 17.4.0(typescript@5.9.3)
+
+ '@swc/helpers@0.5.17':
+ dependencies:
+ tslib: 2.8.1
+
+ '@sxzz/popperjs-es@2.11.7': {}
+
+ '@tanstack/virtual-core@3.13.9': {}
+
+ '@tanstack/vue-virtual@3.13.9(vue@3.5.29(typescript@5.9.3))':
+ dependencies:
+ '@tanstack/virtual-core': 3.13.9
+ vue: 3.5.29(typescript@5.9.3)
+
+ '@trysound/sax@0.2.0': {}
+
+ '@tybys/wasm-util@0.10.0':
+ dependencies:
+ tslib: 2.8.1
+ optional: true
+
+ '@tybys/wasm-util@0.10.1':
+ dependencies:
+ tslib: 2.8.1
+ optional: true
+
+ '@types/debug@4.1.12':
+ dependencies:
+ '@types/ms': 2.1.0
+
+ '@types/estree@1.0.8': {}
+
+ '@types/fined@1.1.5': {}
+
+ '@types/inquirer@9.0.9':
+ dependencies:
+ '@types/through': 0.0.33
+ rxjs: 7.8.2
+
+ '@types/json-schema@7.0.15': {}
+
+ '@types/liftoff@4.0.3':
+ dependencies:
+ '@types/fined': 1.1.5
+ '@types/node': 22.15.30
+
+ '@types/lodash-es@4.17.12':
+ dependencies:
+ '@types/lodash': 4.17.20
+
+ '@types/lodash@4.17.20': {}
+
+ '@types/mdast@4.0.4':
+ dependencies:
+ '@types/unist': 3.0.3
+
+ '@types/ms@2.1.0': {}
+
+ '@types/node@22.15.30':
+ dependencies:
+ undici-types: 6.21.0
+
+ '@types/normalize-package-data@2.4.4':
+ optional: true
+
+ '@types/nprogress@0.2.3': {}
+
+ '@types/parse-path@7.1.0':
+ dependencies:
+ parse-path: 7.1.0
+ optional: true
+
+ '@types/path-browserify@1.0.3': {}
+
+ '@types/picomatch@4.0.2': {}
+
+ '@types/qs@6.15.0': {}
+
+ '@types/resolve@1.20.2':
+ optional: true
+
+ '@types/svgo@2.6.4':
+ dependencies:
+ '@types/node': 22.15.30
+
+ '@types/through@0.0.33':
+ dependencies:
+ '@types/node': 22.15.30
+
+ '@types/triple-beam@1.3.5':
+ optional: true
+
+ '@types/unist@3.0.3': {}
+
+ '@types/web-bluetooth@0.0.20': {}
+
+ '@types/web-bluetooth@0.0.21': {}
+
+ '@types/yauzl@2.10.3':
+ dependencies:
+ '@types/node': 22.15.30
+ optional: true
+
+ '@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)':
+ dependencies:
+ '@eslint-community/regexpp': 4.12.2
+ '@typescript-eslint/parser': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/scope-manager': 8.56.1
+ '@typescript-eslint/type-utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/visitor-keys': 8.56.1
+ eslint: 9.39.4(jiti@2.6.1)
+ ignore: 7.0.5
+ natural-compare: 1.4.0
+ ts-api-utils: 2.4.0(typescript@5.9.3)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)':
+ dependencies:
+ '@typescript-eslint/scope-manager': 8.56.1
+ '@typescript-eslint/types': 8.56.1
+ '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3)
+ '@typescript-eslint/visitor-keys': 8.56.1
+ debug: 4.4.3
+ eslint: 9.39.4(jiti@2.6.1)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/project-service@8.56.1(typescript@5.9.3)':
+ dependencies:
+ '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@5.9.3)
+ '@typescript-eslint/types': 8.56.1
+ debug: 4.4.3
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/rule-tester@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)':
+ dependencies:
+ '@typescript-eslint/parser': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
+ ajv: 6.14.0
+ eslint: 9.39.4(jiti@2.6.1)
+ json-stable-stringify-without-jsonify: 1.0.1
+ lodash.merge: 4.6.2
+ semver: 7.7.4
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ '@typescript-eslint/scope-manager@8.56.1':
+ dependencies:
+ '@typescript-eslint/types': 8.56.1
+ '@typescript-eslint/visitor-keys': 8.56.1
+
+ '@typescript-eslint/tsconfig-utils@8.56.1(typescript@5.9.3)':
+ dependencies:
+ typescript: 5.9.3
+
+ '@typescript-eslint/type-utils@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)':
+ dependencies:
+ '@typescript-eslint/types': 8.56.1
+ '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
+ debug: 4.4.3
+ eslint: 9.39.4(jiti@2.6.1)
+ ts-api-utils: 2.4.0(typescript@5.9.3)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/types@8.56.1': {}
+
+ '@typescript-eslint/typescript-estree@8.56.1(typescript@5.9.3)':
+ dependencies:
+ '@typescript-eslint/project-service': 8.56.1(typescript@5.9.3)
+ '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@5.9.3)
+ '@typescript-eslint/types': 8.56.1
+ '@typescript-eslint/visitor-keys': 8.56.1
+ debug: 4.4.3
+ minimatch: 10.2.4
+ semver: 7.7.4
+ tinyglobby: 0.2.15
+ ts-api-utils: 2.4.0(typescript@5.9.3)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/utils@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)':
+ dependencies:
+ '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1))
+ '@typescript-eslint/scope-manager': 8.56.1
+ '@typescript-eslint/types': 8.56.1
+ '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3)
+ eslint: 9.39.4(jiti@2.6.1)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/visitor-keys@8.56.1':
+ dependencies:
+ '@typescript-eslint/types': 8.56.1
+ eslint-visitor-keys: 5.0.1
+
+ '@unhead/vue@2.0.14(vue@3.5.29(typescript@5.9.3))':
+ dependencies:
+ hookable: 5.5.3
+ unhead: 2.0.14
+ vue: 3.5.29(typescript@5.9.3)
+ optional: true
+
+ '@unocss/cli@66.6.6':
+ dependencies:
+ '@jridgewell/remapping': 2.3.5
+ '@unocss/config': 66.6.6
+ '@unocss/core': 66.6.6
+ '@unocss/preset-wind3': 66.6.6
+ '@unocss/preset-wind4': 66.6.6
+ '@unocss/transformer-directives': 66.6.6
+ cac: 6.7.14
+ chokidar: 5.0.0
+ colorette: 2.0.20
+ consola: 3.4.2
+ magic-string: 0.30.21
+ pathe: 2.0.3
+ perfect-debounce: 2.1.0
+ tinyglobby: 0.2.15
+ unplugin-utils: 0.3.1
+
+ '@unocss/config@66.6.6':
+ dependencies:
+ '@unocss/core': 66.6.6
+ colorette: 2.0.20
+ consola: 3.4.2
+ unconfig: 7.5.0
+
+ '@unocss/core@66.6.6': {}
+
+ '@unocss/eslint-plugin@66.6.6(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)':
+ dependencies:
+ '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
+ '@unocss/config': 66.6.6
+ '@unocss/core': 66.6.6
+ '@unocss/rule-utils': 66.6.6
+ magic-string: 0.30.21
+ synckit: 0.11.12
+ transitivePeerDependencies:
+ - eslint
+ - supports-color
+ - typescript
+
+ '@unocss/extractor-arbitrary-variants@66.6.6':
+ dependencies:
+ '@unocss/core': 66.6.6
+
+ '@unocss/inspector@66.6.6':
+ dependencies:
+ '@unocss/core': 66.6.6
+ '@unocss/rule-utils': 66.6.6
+ colorette: 2.0.20
+ gzip-size: 6.0.0
+ sirv: 3.0.2
+
+ '@unocss/preset-attributify@66.6.6':
+ dependencies:
+ '@unocss/core': 66.6.6
+
+ '@unocss/preset-icons@66.6.6':
+ dependencies:
+ '@iconify/utils': 3.1.0
+ '@unocss/core': 66.6.6
+ ofetch: 1.5.1
+
+ '@unocss/preset-legacy-compat@66.6.6':
+ dependencies:
+ '@unocss/core': 66.6.6
+
+ '@unocss/preset-mini@66.6.6':
+ dependencies:
+ '@unocss/core': 66.6.6
+ '@unocss/extractor-arbitrary-variants': 66.6.6
+ '@unocss/rule-utils': 66.6.6
+
+ '@unocss/preset-tagify@66.6.6':
+ dependencies:
+ '@unocss/core': 66.6.6
+
+ '@unocss/preset-typography@66.6.6':
+ dependencies:
+ '@unocss/core': 66.6.6
+ '@unocss/rule-utils': 66.6.6
+
+ '@unocss/preset-uno@66.6.6':
+ dependencies:
+ '@unocss/core': 66.6.6
+ '@unocss/preset-wind3': 66.6.6
+
+ '@unocss/preset-web-fonts@66.6.6':
+ dependencies:
+ '@unocss/core': 66.6.6
+ ofetch: 1.5.1
+
+ '@unocss/preset-wind3@66.6.6':
+ dependencies:
+ '@unocss/core': 66.6.6
+ '@unocss/preset-mini': 66.6.6
+ '@unocss/rule-utils': 66.6.6
+
+ '@unocss/preset-wind4@66.6.6':
+ dependencies:
+ '@unocss/core': 66.6.6
+ '@unocss/extractor-arbitrary-variants': 66.6.6
+ '@unocss/rule-utils': 66.6.6
+
+ '@unocss/preset-wind@66.6.6':
+ dependencies:
+ '@unocss/core': 66.6.6
+ '@unocss/preset-wind3': 66.6.6
+
+ '@unocss/reset@66.6.6': {}
+
+ '@unocss/rule-utils@66.6.6':
+ dependencies:
+ '@unocss/core': 66.6.6
+ magic-string: 0.30.21
+
+ '@unocss/transformer-attributify-jsx@66.6.6':
+ dependencies:
+ '@unocss/core': 66.6.6
+ oxc-parser: 0.115.0
+ oxc-walker: 0.7.0(oxc-parser@0.115.0)
+
+ '@unocss/transformer-compile-class@66.6.6':
+ dependencies:
+ '@unocss/core': 66.6.6
+
+ '@unocss/transformer-directives@66.6.6':
+ dependencies:
+ '@unocss/core': 66.6.6
+ '@unocss/rule-utils': 66.6.6
+ css-tree: 3.1.0
+
+ '@unocss/transformer-variant-group@66.6.6':
+ dependencies:
+ '@unocss/core': 66.6.6
+
+ '@unocss/vite@66.6.6(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))':
+ dependencies:
+ '@jridgewell/remapping': 2.3.5
+ '@unocss/config': 66.6.6
+ '@unocss/core': 66.6.6
+ '@unocss/inspector': 66.6.6
+ chokidar: 5.0.0
+ magic-string: 0.30.21
+ pathe: 2.0.3
+ tinyglobby: 0.2.15
+ unplugin-utils: 0.3.1
+ vite: 7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2)
+
+ '@vee-validate/zod@4.15.1(vue@3.5.29(typescript@5.9.3))(zod@4.3.6)':
+ dependencies:
+ type-fest: 4.41.0
+ vee-validate: 4.15.1(vue@3.5.29(typescript@5.9.3))
+ zod: 4.3.6
+ transitivePeerDependencies:
+ - vue
+
+ '@vercel/nft@0.29.4(rollup@4.46.2)':
+ dependencies:
+ '@mapbox/node-pre-gyp': 2.0.0
+ '@rollup/pluginutils': 5.1.4(rollup@4.46.2)
+ acorn: 8.16.0
+ acorn-import-attributes: 1.9.5(acorn@8.16.0)
+ async-sema: 3.1.1
+ bindings: 1.5.0
+ estree-walker: 2.0.2
+ glob: 10.4.5
+ graceful-fs: 4.2.11
+ node-gyp-build: 4.8.4
+ picomatch: 4.0.3
+ resolve-from: 5.0.0
+ transitivePeerDependencies:
+ - encoding
+ - rollup
+ - supports-color
+ optional: true
+
+ '@vitejs/plugin-legacy@7.2.1(terser@5.41.0)(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-transform-modules-systemjs': 7.27.1(@babel/core@7.28.0)
+ '@babel/preset-env': 7.28.0(@babel/core@7.28.0)
+ babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.0)
+ babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.0)
+ browserslist: 4.25.1
+ browserslist-to-esbuild: 2.1.1(browserslist@4.25.1)
+ core-js: 3.45.0
+ magic-string: 0.30.17
+ regenerator-runtime: 0.14.1
+ systemjs: 6.15.1
+ terser: 5.41.0
+ vite: 7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@vitejs/plugin-vue-jsx@5.1.4(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.29(typescript@5.9.3))':
+ dependencies:
+ '@babel/core': 7.29.0
+ '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0)
+ '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0)
+ '@rolldown/pluginutils': 1.0.0-rc.6
+ '@vue/babel-plugin-jsx': 2.0.1(@babel/core@7.29.0)
+ vite: 7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2)
+ vue: 3.5.29(typescript@5.9.3)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@vitejs/plugin-vue@6.0.4(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.29(typescript@5.9.3))':
+ dependencies:
+ '@rolldown/pluginutils': 1.0.0-rc.2
+ vite: 7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2)
+ vue: 3.5.29(typescript@5.9.3)
+
+ '@vitest/eslint-plugin@1.6.9(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)':
+ dependencies:
+ '@typescript-eslint/scope-manager': 8.56.1
+ '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
+ eslint: 9.39.4(jiti@2.6.1)
+ optionalDependencies:
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@volar/language-core@2.4.28':
+ dependencies:
+ '@volar/source-map': 2.4.28
+
+ '@volar/source-map@2.4.28': {}
+
+ '@volar/typescript@2.4.28':
+ dependencies:
+ '@volar/language-core': 2.4.28
+ path-browserify: 1.0.1
+ vscode-uri: 3.1.0
+
+ '@vue-macros/common@3.0.0-beta.16(vue@3.5.29(typescript@5.9.3))':
+ dependencies:
+ '@vue/compiler-sfc': 3.5.29
+ ast-kit: 2.2.0
+ local-pkg: 1.1.2
+ magic-string-ast: 1.0.2
+ unplugin-utils: 0.2.4
+ optionalDependencies:
+ vue: 3.5.29(typescript@5.9.3)
+ optional: true
+
+ '@vue-macros/common@3.1.2(vue@3.5.29(typescript@5.9.3))':
+ dependencies:
+ '@vue/compiler-sfc': 3.5.26
+ ast-kit: 2.1.2
+ local-pkg: 1.1.2
+ magic-string-ast: 1.0.2
+ unplugin-utils: 0.3.1
+ optionalDependencies:
+ vue: 3.5.29(typescript@5.9.3)
+
+ '@vue/babel-helper-vue-transform-on@1.5.0': {}
+
+ '@vue/babel-helper-vue-transform-on@2.0.1': {}
+
+ '@vue/babel-plugin-jsx@1.5.0(@babel/core@7.28.5)':
+ dependencies:
+ '@babel/helper-module-imports': 7.27.1
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5)
+ '@babel/template': 7.27.2
+ '@babel/traverse': 7.28.5
+ '@babel/types': 7.28.5
+ '@vue/babel-helper-vue-transform-on': 1.5.0
+ '@vue/babel-plugin-resolve-type': 1.5.0(@babel/core@7.28.5)
+ '@vue/shared': 3.5.26
+ optionalDependencies:
+ '@babel/core': 7.28.5
+ transitivePeerDependencies:
+ - supports-color
+
+ '@vue/babel-plugin-jsx@2.0.1(@babel/core@7.29.0)':
+ dependencies:
+ '@babel/helper-module-imports': 7.27.1
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.29.0)
+ '@babel/template': 7.27.2
+ '@babel/traverse': 7.28.5
+ '@babel/types': 7.28.5
+ '@vue/babel-helper-vue-transform-on': 2.0.1
+ '@vue/babel-plugin-resolve-type': 2.0.1(@babel/core@7.29.0)
+ '@vue/shared': 3.5.26
+ optionalDependencies:
+ '@babel/core': 7.29.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@vue/babel-plugin-resolve-type@1.5.0(@babel/core@7.28.5)':
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ '@babel/core': 7.28.5
+ '@babel/helper-module-imports': 7.27.1
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/parser': 7.29.0
+ '@vue/compiler-sfc': 3.5.26
+ transitivePeerDependencies:
+ - supports-color
+
+ '@vue/babel-plugin-resolve-type@2.0.1(@babel/core@7.29.0)':
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-module-imports': 7.27.1
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/parser': 7.29.0
+ '@vue/compiler-sfc': 3.5.26
+ transitivePeerDependencies:
+ - supports-color
+
+ '@vue/compiler-core@3.5.26':
+ dependencies:
+ '@babel/parser': 7.29.0
+ '@vue/shared': 3.5.26
+ entities: 7.0.0
+ estree-walker: 2.0.2
+ source-map-js: 1.2.1
+
+ '@vue/compiler-core@3.5.29':
+ dependencies:
+ '@babel/parser': 7.29.0
+ '@vue/shared': 3.5.29
+ entities: 7.0.1
+ estree-walker: 2.0.2
+ source-map-js: 1.2.1
+
+ '@vue/compiler-dom@3.5.26':
+ dependencies:
+ '@vue/compiler-core': 3.5.26
+ '@vue/shared': 3.5.26
+
+ '@vue/compiler-dom@3.5.29':
+ dependencies:
+ '@vue/compiler-core': 3.5.29
+ '@vue/shared': 3.5.29
+
+ '@vue/compiler-sfc@3.5.26':
+ dependencies:
+ '@babel/parser': 7.29.0
+ '@vue/compiler-core': 3.5.26
+ '@vue/compiler-dom': 3.5.26
+ '@vue/compiler-ssr': 3.5.26
+ '@vue/shared': 3.5.26
+ estree-walker: 2.0.2
+ magic-string: 0.30.21
+ postcss: 8.5.8
+ source-map-js: 1.2.1
+
+ '@vue/compiler-sfc@3.5.29':
+ dependencies:
+ '@babel/parser': 7.29.0
+ '@vue/compiler-core': 3.5.29
+ '@vue/compiler-dom': 3.5.29
+ '@vue/compiler-ssr': 3.5.29
+ '@vue/shared': 3.5.29
+ estree-walker: 2.0.2
+ magic-string: 0.30.21
+ postcss: 8.5.8
+ source-map-js: 1.2.1
+
+ '@vue/compiler-ssr@3.5.26':
+ dependencies:
+ '@vue/compiler-dom': 3.5.26
+ '@vue/shared': 3.5.26
+
+ '@vue/compiler-ssr@3.5.29':
+ dependencies:
+ '@vue/compiler-dom': 3.5.29
+ '@vue/shared': 3.5.29
+
+ '@vue/devtools-api@6.6.4':
+ optional: true
+
+ '@vue/devtools-api@7.7.6':
+ dependencies:
+ '@vue/devtools-kit': 7.7.6
+
+ '@vue/devtools-api@7.7.7':
+ dependencies:
+ '@vue/devtools-kit': 7.7.7
+
+ '@vue/devtools-api@8.0.7':
+ dependencies:
+ '@vue/devtools-kit': 8.0.7
+
+ '@vue/devtools-core@7.7.7(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.29(typescript@5.9.3))':
+ dependencies:
+ '@vue/devtools-kit': 7.7.7
+ '@vue/devtools-shared': 7.7.7
+ mitt: 3.0.1
+ nanoid: 5.1.5
+ pathe: 2.0.3
+ vite-hot-client: 2.1.0(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))
+ vue: 3.5.29(typescript@5.9.3)
+ transitivePeerDependencies:
+ - vite
+ optional: true
+
+ '@vue/devtools-core@8.0.7(vue@3.5.29(typescript@5.9.3))':
+ dependencies:
+ '@vue/devtools-kit': 8.0.7
+ '@vue/devtools-shared': 8.0.7
+ vue: 3.5.29(typescript@5.9.3)
+
+ '@vue/devtools-kit@7.7.6':
+ dependencies:
+ '@vue/devtools-shared': 7.7.6
+ birpc: 2.3.0
+ hookable: 5.5.3
+ mitt: 3.0.1
+ perfect-debounce: 1.0.0
+ speakingurl: 14.0.1
+ superjson: 2.2.2
+
+ '@vue/devtools-kit@7.7.7':
+ dependencies:
+ '@vue/devtools-shared': 7.7.7
+ birpc: 2.6.1
+ hookable: 5.5.3
+ mitt: 3.0.1
+ perfect-debounce: 1.0.0
+ speakingurl: 14.0.1
+ superjson: 2.2.2
+
+ '@vue/devtools-kit@8.0.7':
+ dependencies:
+ '@vue/devtools-shared': 8.0.7
+ birpc: 2.6.1
+ hookable: 5.5.3
+ perfect-debounce: 2.0.0
+
+ '@vue/devtools-shared@7.7.6':
+ dependencies:
+ rfdc: 1.4.1
+
+ '@vue/devtools-shared@7.7.7':
+ dependencies:
+ rfdc: 1.4.1
+
+ '@vue/devtools-shared@8.0.7': {}
+
+ '@vue/language-core@3.2.5':
+ dependencies:
+ '@volar/language-core': 2.4.28
+ '@vue/compiler-dom': 3.5.26
+ '@vue/shared': 3.5.26
+ alien-signals: 3.0.0
+ muggle-string: 0.4.1
+ path-browserify: 1.0.1
+ picomatch: 4.0.3
+
+ '@vue/reactivity@3.5.29':
+ dependencies:
+ '@vue/shared': 3.5.29
+
+ '@vue/runtime-core@3.5.29':
+ dependencies:
+ '@vue/reactivity': 3.5.29
+ '@vue/shared': 3.5.29
+
+ '@vue/runtime-dom@3.5.29':
+ dependencies:
+ '@vue/reactivity': 3.5.29
+ '@vue/runtime-core': 3.5.29
+ '@vue/shared': 3.5.29
+ csstype: 3.2.3
+
+ '@vue/server-renderer@3.5.29(vue@3.5.29(typescript@5.9.3))':
+ dependencies:
+ '@vue/compiler-ssr': 3.5.29
+ '@vue/shared': 3.5.29
+ vue: 3.5.29(typescript@5.9.3)
+
+ '@vue/shared@3.5.26': {}
+
+ '@vue/shared@3.5.29': {}
+
+ '@vue/tsconfig@0.9.0(typescript@5.9.3)(vue@3.5.29(typescript@5.9.3))':
+ optionalDependencies:
+ typescript: 5.9.3
+ vue: 3.5.29(typescript@5.9.3)
+
+ '@vueuse/components@14.2.1(vue@3.5.29(typescript@5.9.3))':
+ dependencies:
+ '@vueuse/core': 14.2.1(vue@3.5.29(typescript@5.9.3))
+ '@vueuse/shared': 14.2.1(vue@3.5.29(typescript@5.9.3))
+ vue: 3.5.29(typescript@5.9.3)
+
+ '@vueuse/core@10.11.1(vue@3.5.29(typescript@5.9.3))':
+ dependencies:
+ '@types/web-bluetooth': 0.0.20
+ '@vueuse/metadata': 10.11.1
+ '@vueuse/shared': 10.11.1(vue@3.5.29(typescript@5.9.3))
+ vue-demi: 0.14.10(vue@3.5.29(typescript@5.9.3))
+ transitivePeerDependencies:
+ - '@vue/composition-api'
+ - vue
+
+ '@vueuse/core@14.2.1(vue@3.5.29(typescript@5.9.3))':
+ dependencies:
+ '@types/web-bluetooth': 0.0.21
+ '@vueuse/metadata': 14.2.1
+ '@vueuse/shared': 14.2.1(vue@3.5.29(typescript@5.9.3))
+ vue: 3.5.29(typescript@5.9.3)
+
+ '@vueuse/integrations@14.2.1(async-validator@4.2.5)(axios@1.13.6)(change-case@5.4.4)(fuse.js@7.1.0)(jwt-decode@4.0.0)(nprogress@0.2.0)(vue@3.5.29(typescript@5.9.3))':
+ dependencies:
+ '@vueuse/core': 14.2.1(vue@3.5.29(typescript@5.9.3))
+ '@vueuse/shared': 14.2.1(vue@3.5.29(typescript@5.9.3))
+ vue: 3.5.29(typescript@5.9.3)
+ optionalDependencies:
+ async-validator: 4.2.5
+ axios: 1.13.6
+ change-case: 5.4.4
+ fuse.js: 7.1.0
+ jwt-decode: 4.0.0
+ nprogress: 0.2.0
+
+ '@vueuse/metadata@10.11.1': {}
+
+ '@vueuse/metadata@14.2.1': {}
+
+ '@vueuse/shared@10.11.1(vue@3.5.29(typescript@5.9.3))':
+ dependencies:
+ vue-demi: 0.14.10(vue@3.5.29(typescript@5.9.3))
+ transitivePeerDependencies:
+ - '@vue/composition-api'
+ - vue
+
+ '@vueuse/shared@14.2.1(vue@3.5.29(typescript@5.9.3))':
+ dependencies:
+ vue: 3.5.29(typescript@5.9.3)
+
+ '@whatwg-node/disposablestack@0.0.6':
+ dependencies:
+ '@whatwg-node/promise-helpers': 1.3.2
+ tslib: 2.8.1
+ optional: true
+
+ '@whatwg-node/fetch@0.10.10':
+ dependencies:
+ '@whatwg-node/node-fetch': 0.7.25
+ urlpattern-polyfill: 10.1.0
+ optional: true
+
+ '@whatwg-node/node-fetch@0.7.25':
+ dependencies:
+ '@fastify/busboy': 3.2.0
+ '@whatwg-node/disposablestack': 0.0.6
+ '@whatwg-node/promise-helpers': 1.3.2
+ tslib: 2.8.1
+ optional: true
+
+ '@whatwg-node/promise-helpers@1.3.2':
+ dependencies:
+ tslib: 2.8.1
+ optional: true
+
+ '@whatwg-node/server@0.9.71':
+ dependencies:
+ '@whatwg-node/disposablestack': 0.0.6
+ '@whatwg-node/fetch': 0.10.10
+ '@whatwg-node/promise-helpers': 1.3.2
+ tslib: 2.8.1
+ optional: true
+
+ abbrev@3.0.1:
+ optional: true
+
+ abort-controller@3.0.0:
+ dependencies:
+ event-target-shim: 5.0.1
+
+ acorn-import-attributes@1.9.5(acorn@8.16.0):
+ dependencies:
+ acorn: 8.16.0
+ optional: true
+
+ acorn-jsx@5.3.2(acorn@8.15.0):
+ dependencies:
+ acorn: 8.15.0
+
+ acorn-jsx@5.3.2(acorn@8.16.0):
+ dependencies:
+ acorn: 8.16.0
+
+ acorn@8.15.0: {}
+
+ acorn@8.16.0: {}
+
+ agent-base@7.1.4:
+ optional: true
+
+ ajv@6.14.0:
+ 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
+
+ ajv@8.17.1:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-uri: 3.0.6
+ json-schema-traverse: 1.0.0
+ require-from-string: 2.0.2
+
+ alien-signals@2.0.8: {}
+
+ alien-signals@3.0.0: {}
+
+ ansi-align@3.0.1:
+ dependencies:
+ string-width: 4.2.3
+
+ ansi-escapes@4.3.2:
+ dependencies:
+ type-fest: 0.21.3
+
+ ansi-escapes@7.0.0:
+ dependencies:
+ environment: 1.1.0
+
+ ansi-regex@2.1.1: {}
+
+ ansi-regex@5.0.1: {}
+
+ ansi-regex@6.1.0: {}
+
+ ansi-regex@6.2.2: {}
+
+ ansi-styles@2.2.1: {}
+
+ ansi-styles@4.3.0:
+ dependencies:
+ color-convert: 2.0.1
+
+ ansi-styles@6.2.1: {}
+
+ ansis@4.2.0: {}
+
+ anymatch@3.1.3:
+ dependencies:
+ normalize-path: 3.0.0
+ picomatch: 2.3.1
+ optional: true
+
+ archiver-utils@5.0.2:
+ dependencies:
+ glob: 10.4.5
+ graceful-fs: 4.2.11
+ is-stream: 2.0.1
+ lazystream: 1.0.1
+ lodash: 4.17.21
+ normalize-path: 3.0.0
+ readable-stream: 4.7.0
+
+ archiver@7.0.1:
+ dependencies:
+ archiver-utils: 5.0.2
+ async: 3.2.6
+ buffer-crc32: 1.0.0
+ readable-stream: 4.7.0
+ readdir-glob: 1.1.3
+ tar-stream: 3.1.7
+ zip-stream: 6.0.1
+
+ are-docs-informative@0.0.2: {}
+
+ argparse@2.0.1: {}
+
+ args-tokenizer@0.3.0: {}
+
+ aria-hidden@1.2.6:
+ dependencies:
+ tslib: 2.8.1
+
+ arr-diff@4.0.0: {}
+
+ arr-flatten@1.1.0: {}
+
+ arr-union@3.1.0: {}
+
+ array-buffer-byte-length@1.0.2:
+ dependencies:
+ call-bound: 1.0.4
+ is-array-buffer: 3.0.5
+
+ array-each@1.0.1: {}
+
+ array-slice@1.1.0: {}
+
+ array-unique@0.3.2: {}
+
+ arraybuffer.prototype.slice@1.0.4:
+ dependencies:
+ array-buffer-byte-length: 1.0.2
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-abstract: 1.24.0
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ is-array-buffer: 3.0.5
+
+ assign-symbols@1.0.0: {}
+
+ ast-kit@2.1.2:
+ dependencies:
+ '@babel/parser': 7.29.0
+ pathe: 2.0.3
+
+ ast-kit@2.2.0:
+ dependencies:
+ '@babel/parser': 7.29.0
+ pathe: 2.0.3
+
+ ast-module-types@6.0.1:
+ optional: true
+
+ ast-walker-scope@0.8.3:
+ dependencies:
+ '@babel/parser': 7.28.5
+ ast-kit: 2.2.0
+
+ astral-regex@2.0.0: {}
+
+ async-function@1.0.0: {}
+
+ async-sema@3.1.1:
+ optional: true
+
+ async-validator@4.2.5: {}
+
+ async@3.2.6: {}
+
+ asynckit@0.4.0: {}
+
+ atob@2.1.2: {}
+
+ autoprefixer@10.4.27(postcss@8.5.8):
+ dependencies:
+ browserslist: 4.28.1
+ caniuse-lite: 1.0.30001775
+ fraction.js: 5.3.4
+ picocolors: 1.1.1
+ postcss: 8.5.8
+ postcss-value-parser: 4.2.0
+
+ available-typed-arrays@1.0.7:
+ dependencies:
+ possible-typed-array-names: 1.1.0
+
+ axios@1.13.6:
+ dependencies:
+ follow-redirects: 1.15.11
+ form-data: 4.0.5
+ proxy-from-env: 1.1.0
+ transitivePeerDependencies:
+ - debug
+
+ b4a@1.6.7: {}
+
+ babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.0):
+ dependencies:
+ '@babel/compat-data': 7.28.0
+ '@babel/core': 7.28.0
+ '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.0)
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.28.0):
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.0)
+ core-js-compat: 3.44.0
+ transitivePeerDependencies:
+ - supports-color
+
+ babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.28.0):
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.0)
+ transitivePeerDependencies:
+ - supports-color
+
+ balanced-match@1.0.2: {}
+
+ balanced-match@4.0.4: {}
+
+ bare-events@2.5.4:
+ optional: true
+
+ base64-js@1.5.1: {}
+
+ base@0.11.2:
+ dependencies:
+ cache-base: 1.0.1
+ class-utils: 0.3.6
+ component-emitter: 1.3.1
+ define-property: 1.0.0
+ isobject: 3.0.1
+ mixin-deep: 1.3.2
+ pascalcase: 0.1.1
+
+ baseline-browser-mapping@2.8.25: {}
+
+ baseline-browser-mapping@2.9.11: {}
+
+ basic-auth@2.0.1:
+ dependencies:
+ safe-buffer: 5.1.2
+
+ big.js@5.2.2: {}
+
+ bindings@1.5.0:
+ dependencies:
+ file-uri-to-path: 1.0.0
+ optional: true
+
+ birpc@2.3.0: {}
+
+ birpc@2.6.1: {}
+
+ bl@4.1.0:
+ dependencies:
+ buffer: 5.7.1
+ inherits: 2.0.4
+ readable-stream: 3.6.2
+
+ bluebird@3.7.2: {}
+
+ boolbase@1.0.0: {}
+
+ boxen@8.0.1:
+ dependencies:
+ ansi-align: 3.0.1
+ camelcase: 8.0.0
+ chalk: 5.4.1
+ cli-boxes: 3.0.0
+ string-width: 7.2.0
+ type-fest: 4.41.0
+ widest-line: 5.0.0
+ wrap-ansi: 9.0.0
+
+ brace-expansion@1.1.11:
+ dependencies:
+ balanced-match: 1.0.2
+ concat-map: 0.0.1
+
+ brace-expansion@2.0.1:
+ dependencies:
+ balanced-match: 1.0.2
+
+ brace-expansion@5.0.4:
+ dependencies:
+ balanced-match: 4.0.4
+
+ braces@2.3.2:
+ 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
+
+ braces@3.0.3:
+ dependencies:
+ fill-range: 7.1.1
+
+ browserslist-to-esbuild@2.1.1(browserslist@4.25.1):
+ dependencies:
+ browserslist: 4.25.1
+ meow: 13.2.0
+
+ browserslist@4.25.1:
+ dependencies:
+ caniuse-lite: 1.0.30001727
+ electron-to-chromium: 1.5.187
+ node-releases: 2.0.19
+ update-browserslist-db: 1.1.3(browserslist@4.25.1)
+
+ browserslist@4.27.0:
+ dependencies:
+ baseline-browser-mapping: 2.8.25
+ caniuse-lite: 1.0.30001754
+ electron-to-chromium: 1.5.249
+ node-releases: 2.0.27
+ update-browserslist-db: 1.1.4(browserslist@4.27.0)
+
+ browserslist@4.28.1:
+ dependencies:
+ baseline-browser-mapping: 2.9.11
+ caniuse-lite: 1.0.30001775
+ electron-to-chromium: 1.5.267
+ node-releases: 2.0.27
+ update-browserslist-db: 1.2.3(browserslist@4.28.1)
+
+ buffer-crc32@0.2.13:
+ optional: true
+
+ buffer-crc32@1.0.0: {}
+
+ buffer-from@1.1.2: {}
+
+ buffer@5.7.1:
+ dependencies:
+ base64-js: 1.5.1
+ ieee754: 1.2.1
+
+ buffer@6.0.3:
+ dependencies:
+ base64-js: 1.5.1
+ ieee754: 1.2.1
+
+ builtin-modules@3.3.0:
+ optional: true
+
+ builtin-modules@5.0.0: {}
+
+ bumpp@10.4.1(magicast@0.3.5):
+ dependencies:
+ ansis: 4.2.0
+ args-tokenizer: 0.3.0
+ c12: 3.3.3(magicast@0.3.5)
+ cac: 6.7.14
+ escalade: 3.2.0
+ jsonc-parser: 3.3.1
+ package-manager-detector: 1.6.0
+ semver: 7.7.3
+ tinyexec: 1.0.2
+ tinyglobby: 0.2.15
+ yaml: 2.8.2
+ transitivePeerDependencies:
+ - magicast
+
+ bundle-import@0.0.2:
+ dependencies:
+ get-tsconfig: 4.10.1
+ import-from-string: 0.0.5
+
+ bundle-name@4.1.0:
+ dependencies:
+ run-applescript: 7.0.0
+
+ c12@3.3.3(magicast@0.3.5):
+ dependencies:
+ chokidar: 5.0.0
+ confbox: 0.2.2
+ defu: 6.1.4
+ dotenv: 17.2.3
+ exsolve: 1.0.8
+ giget: 2.0.0
+ jiti: 2.6.1
+ ohash: 2.0.11
+ pathe: 2.0.3
+ perfect-debounce: 2.0.0
+ pkg-types: 2.3.0
+ rc9: 2.1.2
+ optionalDependencies:
+ magicast: 0.3.5
+
+ cac@6.7.14: {}
+
+ cac@7.0.0: {}
+
+ cache-base@1.0.1:
+ dependencies:
+ collection-visit: 1.0.0
+ component-emitter: 1.3.1
+ 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
+
+ cacheable@2.3.3:
+ dependencies:
+ '@cacheable/memory': 2.0.8
+ '@cacheable/utils': 2.4.0
+ hookified: 1.15.1
+ keyv: 5.6.0
+ qified: 0.6.0
+
+ call-bind-apply-helpers@1.0.2:
+ dependencies:
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+
+ call-bind@1.0.8:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-define-property: 1.0.1
+ get-intrinsic: 1.3.0
+ set-function-length: 1.2.2
+
+ call-bound@1.0.4:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ get-intrinsic: 1.3.0
+
+ callsite@1.0.0:
+ optional: true
+
+ callsites@3.1.0: {}
+
+ camelcase@8.0.0: {}
+
+ caniuse-api@3.0.0:
+ dependencies:
+ browserslist: 4.28.1
+ caniuse-lite: 1.0.30001775
+ lodash.memoize: 4.1.2
+ lodash.uniq: 4.5.0
+ optional: true
+
+ caniuse-lite@1.0.30001727: {}
+
+ caniuse-lite@1.0.30001754: {}
+
+ caniuse-lite@1.0.30001775: {}
+
+ ccount@2.0.1: {}
+
+ chalk@1.1.3:
+ 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
+
+ chalk@4.1.2:
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+
+ chalk@5.4.1: {}
+
+ change-case@5.4.4: {}
+
+ character-entities@2.0.2: {}
+
+ chardet@2.1.0: {}
+
+ chokidar@4.0.3:
+ dependencies:
+ readdirp: 4.1.2
+
+ chokidar@5.0.0:
+ dependencies:
+ readdirp: 5.0.0
+
+ chownr@3.0.0:
+ optional: true
+
+ ci-info@4.3.1: {}
+
+ citty@0.1.6:
+ dependencies:
+ consola: 3.4.2
+
+ class-utils@0.3.6:
+ dependencies:
+ arr-union: 3.1.0
+ define-property: 0.2.5
+ isobject: 3.0.1
+ static-extend: 0.1.2
+
+ class-variance-authority@0.7.1:
+ dependencies:
+ clsx: 2.1.1
+
+ clean-regexp@1.0.0:
+ dependencies:
+ escape-string-regexp: 1.0.5
+
+ cli-boxes@3.0.0: {}
+
+ cli-cursor@3.1.0:
+ dependencies:
+ restore-cursor: 3.1.0
+
+ cli-cursor@5.0.0:
+ dependencies:
+ restore-cursor: 5.1.0
+
+ cli-spinners@2.9.2: {}
+
+ cli-truncate@5.1.0:
+ dependencies:
+ slice-ansi: 7.1.0
+ string-width: 8.2.0
+
+ cli-width@4.1.0: {}
+
+ clipboardy@4.0.0:
+ dependencies:
+ execa: 8.0.1
+ is-wsl: 3.1.0
+ is64bit: 2.0.0
+ optional: true
+
+ cliui@8.0.1:
+ dependencies:
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wrap-ansi: 7.0.0
+ optional: true
+
+ clone@1.0.4: {}
+
+ clone@2.1.2: {}
+
+ clsx@2.1.1: {}
+
+ cluster-key-slot@1.1.2:
+ optional: true
+
+ collection-visit@1.0.0:
+ dependencies:
+ map-visit: 1.0.0
+ object-visit: 1.0.1
+
+ color-convert@1.9.3:
+ dependencies:
+ color-name: 1.1.3
+ optional: true
+
+ color-convert@2.0.1:
+ dependencies:
+ color-name: 1.1.4
+
+ color-name@1.1.3:
+ optional: true
+
+ color-name@1.1.4: {}
+
+ color-string@1.9.1:
+ dependencies:
+ color-name: 1.1.4
+ simple-swizzle: 0.2.2
+ optional: true
+
+ color@3.2.1:
+ dependencies:
+ color-convert: 1.9.3
+ color-string: 1.9.1
+ optional: true
+
+ colord@2.9.3: {}
+
+ colorette@2.0.20: {}
+
+ colorjs.io@0.5.2: {}
+
+ colorspace@1.1.4:
+ dependencies:
+ color: 3.2.1
+ text-hex: 1.0.0
+ optional: true
+
+ combined-stream@1.0.8:
+ dependencies:
+ delayed-stream: 1.0.0
+
+ commander@10.0.1:
+ optional: true
+
+ commander@11.1.0: {}
+
+ commander@12.1.0:
+ optional: true
+
+ commander@14.0.3: {}
+
+ commander@2.20.3: {}
+
+ commander@7.2.0: {}
+
+ comment-parser@1.4.5: {}
+
+ common-path-prefix@3.0.0:
+ optional: true
+
+ commondir@1.0.1:
+ optional: true
+
+ compatx@0.2.0:
+ optional: true
+
+ component-emitter@1.3.1: {}
+
+ compress-commons@6.0.2:
+ dependencies:
+ crc-32: 1.2.2
+ crc32-stream: 6.0.0
+ is-stream: 2.0.1
+ normalize-path: 3.0.0
+ readable-stream: 4.7.0
+
+ concat-map@0.0.1: {}
+
+ confbox@0.1.8: {}
+
+ confbox@0.2.2: {}
+
+ consola@3.4.2: {}
+
+ convert-source-map@2.0.0: {}
+
+ cookie-es@1.2.2: {}
+
+ cookie-es@2.0.0:
+ optional: true
+
+ cookie@1.0.2:
+ optional: true
+
+ copy-anything@3.0.5:
+ dependencies:
+ is-what: 4.1.16
+
+ copy-descriptor@0.1.1: {}
+
+ copy-file@11.1.0:
+ dependencies:
+ graceful-fs: 4.2.11
+ p-event: 6.0.1
+ optional: true
+
+ copy-text-to-clipboard@3.2.0: {}
+
+ core-js-compat@3.44.0:
+ dependencies:
+ browserslist: 4.27.0
+
+ core-js-compat@3.46.0:
+ dependencies:
+ browserslist: 4.28.1
+
+ core-js@3.42.0: {}
+
+ core-js@3.45.0: {}
+
+ core-util-is@1.0.3: {}
+
+ cors@2.8.5:
+ dependencies:
+ object-assign: 4.1.1
+ vary: 1.1.2
+
+ corser@2.0.1: {}
+
+ cosmiconfig@9.0.0(typescript@5.9.3):
+ dependencies:
+ env-paths: 2.2.1
+ import-fresh: 3.3.1
+ js-yaml: 4.1.0
+ parse-json: 5.2.0
+ optionalDependencies:
+ typescript: 5.9.3
+
+ crc-32@1.2.2: {}
+
+ crc32-stream@6.0.0:
+ dependencies:
+ crc-32: 1.2.2
+ readable-stream: 4.7.0
+
+ cron-parser@4.9.0:
+ dependencies:
+ luxon: 3.7.1
+ optional: true
+
+ croner@9.1.0:
+ optional: true
+
+ cross-spawn@7.0.6:
+ dependencies:
+ path-key: 3.1.1
+ shebang-command: 2.0.0
+ which: 2.0.2
+
+ crossws@0.3.5:
+ dependencies:
+ uncrypto: 0.1.3
+
+ css-declaration-sorter@7.2.0(postcss@8.5.8):
+ dependencies:
+ postcss: 8.5.8
+ optional: true
+
+ css-functions-list@3.3.3: {}
+
+ css-select@4.3.0:
+ dependencies:
+ boolbase: 1.0.0
+ css-what: 6.1.0
+ domhandler: 4.3.1
+ domutils: 2.8.0
+ nth-check: 2.1.1
+
+ css-select@5.1.0:
+ dependencies:
+ boolbase: 1.0.0
+ css-what: 6.1.0
+ domhandler: 5.0.3
+ domutils: 3.2.2
+ nth-check: 2.1.1
+
+ css-tree@1.1.3:
+ dependencies:
+ mdn-data: 2.0.14
+ source-map: 0.6.1
+
+ css-tree@2.2.1:
+ dependencies:
+ mdn-data: 2.0.28
+ source-map-js: 1.2.1
+
+ css-tree@3.1.0:
+ dependencies:
+ mdn-data: 2.12.2
+ source-map-js: 1.2.1
+
+ css-what@6.1.0: {}
+
+ cssesc@3.0.0: {}
+
+ cssnano-preset-default@7.0.9(postcss@8.5.8):
+ dependencies:
+ browserslist: 4.28.1
+ css-declaration-sorter: 7.2.0(postcss@8.5.8)
+ cssnano-utils: 5.0.1(postcss@8.5.8)
+ postcss: 8.5.8
+ postcss-calc: 10.1.1(postcss@8.5.8)
+ postcss-colormin: 7.0.4(postcss@8.5.8)
+ postcss-convert-values: 7.0.7(postcss@8.5.8)
+ postcss-discard-comments: 7.0.4(postcss@8.5.8)
+ postcss-discard-duplicates: 7.0.2(postcss@8.5.8)
+ postcss-discard-empty: 7.0.1(postcss@8.5.8)
+ postcss-discard-overridden: 7.0.1(postcss@8.5.8)
+ postcss-merge-longhand: 7.0.5(postcss@8.5.8)
+ postcss-merge-rules: 7.0.6(postcss@8.5.8)
+ postcss-minify-font-values: 7.0.1(postcss@8.5.8)
+ postcss-minify-gradients: 7.0.1(postcss@8.5.8)
+ postcss-minify-params: 7.0.4(postcss@8.5.8)
+ postcss-minify-selectors: 7.0.5(postcss@8.5.8)
+ postcss-normalize-charset: 7.0.1(postcss@8.5.8)
+ postcss-normalize-display-values: 7.0.1(postcss@8.5.8)
+ postcss-normalize-positions: 7.0.1(postcss@8.5.8)
+ postcss-normalize-repeat-style: 7.0.1(postcss@8.5.8)
+ postcss-normalize-string: 7.0.1(postcss@8.5.8)
+ postcss-normalize-timing-functions: 7.0.1(postcss@8.5.8)
+ postcss-normalize-unicode: 7.0.4(postcss@8.5.8)
+ postcss-normalize-url: 7.0.1(postcss@8.5.8)
+ postcss-normalize-whitespace: 7.0.1(postcss@8.5.8)
+ postcss-ordered-values: 7.0.2(postcss@8.5.8)
+ postcss-reduce-initial: 7.0.4(postcss@8.5.8)
+ postcss-reduce-transforms: 7.0.1(postcss@8.5.8)
+ postcss-svgo: 7.1.0(postcss@8.5.8)
+ postcss-unique-selectors: 7.0.4(postcss@8.5.8)
+ optional: true
+
+ cssnano-utils@5.0.1(postcss@8.5.8):
+ dependencies:
+ postcss: 8.5.8
+ optional: true
+
+ cssnano@7.1.1(postcss@8.5.8):
+ dependencies:
+ cssnano-preset-default: 7.0.9(postcss@8.5.8)
+ lilconfig: 3.1.3
+ postcss: 8.5.8
+ optional: true
+
+ csso@4.2.0:
+ dependencies:
+ css-tree: 1.1.3
+
+ csso@5.0.5:
+ dependencies:
+ css-tree: 2.2.1
+
+ csstype@3.2.3: {}
+
+ cz-git@1.12.0: {}
+
+ data-uri-to-buffer@4.0.1:
+ optional: true
+
+ data-view-buffer@1.0.2:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ is-data-view: 1.0.2
+
+ data-view-byte-length@1.0.2:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ is-data-view: 1.0.2
+
+ data-view-byte-offset@1.0.1:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ is-data-view: 1.0.2
+
+ dayjs@1.11.19: {}
+
+ db0@0.3.2:
+ optional: true
+
+ debug@2.6.9:
+ dependencies:
+ ms: 2.0.0
+
+ debug@4.4.1:
+ dependencies:
+ ms: 2.1.3
+
+ debug@4.4.3:
+ dependencies:
+ ms: 2.1.3
+
+ decache@4.6.2:
+ dependencies:
+ callsite: 1.0.0
+ optional: true
+
+ decode-named-character-reference@1.1.0:
+ dependencies:
+ character-entities: 2.0.2
+
+ decode-uri-component@0.2.2: {}
+
+ deep-is@0.1.4: {}
+
+ deepmerge@4.3.1:
+ optional: true
+
+ default-browser-id@5.0.0: {}
+
+ default-browser@5.2.1:
+ dependencies:
+ bundle-name: 4.1.0
+ default-browser-id: 5.0.0
+
+ defaults@1.0.4:
+ dependencies:
+ clone: 1.0.4
+
+ define-data-property@1.1.4:
+ dependencies:
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ gopd: 1.2.0
+
+ define-lazy-prop@2.0.0:
+ optional: true
+
+ define-lazy-prop@3.0.0: {}
+
+ define-properties@1.2.1:
+ dependencies:
+ define-data-property: 1.1.4
+ has-property-descriptors: 1.0.2
+ object-keys: 1.1.1
+
+ define-property@0.2.5:
+ dependencies:
+ is-descriptor: 0.1.7
+
+ define-property@1.0.0:
+ dependencies:
+ is-descriptor: 1.0.3
+
+ define-property@2.0.2:
+ dependencies:
+ is-descriptor: 1.0.3
+ isobject: 3.0.1
+
+ defu@6.1.4: {}
+
+ delayed-stream@1.0.0: {}
+
+ denque@2.1.0:
+ optional: true
+
+ depd@2.0.0:
+ optional: true
+
+ dequal@2.0.3: {}
+
+ destr@2.0.5: {}
+
+ detect-europe-js@0.1.2: {}
+
+ detect-file@1.0.0: {}
+
+ detect-libc@1.0.3:
+ optional: true
+
+ detect-libc@2.0.4:
+ optional: true
+
+ detective-amd@6.0.1:
+ dependencies:
+ ast-module-types: 6.0.1
+ escodegen: 2.1.0
+ get-amd-module-type: 6.0.1
+ node-source-walk: 7.0.1
+ optional: true
+
+ detective-cjs@6.0.1:
+ dependencies:
+ ast-module-types: 6.0.1
+ node-source-walk: 7.0.1
+ optional: true
+
+ detective-es6@5.0.1:
+ dependencies:
+ node-source-walk: 7.0.1
+ optional: true
+
+ detective-postcss@7.0.1(postcss@8.5.8):
+ dependencies:
+ is-url: 1.2.4
+ postcss: 8.5.8
+ postcss-values-parser: 6.0.2(postcss@8.5.8)
+ optional: true
+
+ detective-sass@6.0.1:
+ dependencies:
+ gonzales-pe: 4.3.0
+ node-source-walk: 7.0.1
+ optional: true
+
+ detective-scss@5.0.1:
+ dependencies:
+ gonzales-pe: 4.3.0
+ node-source-walk: 7.0.1
+ optional: true
+
+ detective-stylus@5.0.1:
+ optional: true
+
+ detective-typescript@14.0.0(typescript@5.9.3):
+ dependencies:
+ '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3)
+ ast-module-types: 6.0.1
+ node-source-walk: 7.0.1
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+ optional: true
+
+ detective-vue2@2.2.0(typescript@5.9.3):
+ dependencies:
+ '@dependents/detective-less': 5.0.1
+ '@vue/compiler-sfc': 3.5.29
+ detective-es6: 5.0.1
+ detective-sass: 6.0.1
+ detective-scss: 5.0.1
+ detective-stylus: 5.0.1
+ detective-typescript: 14.0.0(typescript@5.9.3)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+ optional: true
+
+ devalue@5.3.2:
+ optional: true
+
+ devlop@1.1.0:
+ dependencies:
+ dequal: 2.0.3
+
+ diff-sequences@29.6.3: {}
+
+ diff@8.0.2:
+ optional: true
+
+ disable-devtool@0.3.9: {}
+
+ dlv@1.1.3: {}
+
+ dom-serializer@0.2.2:
+ dependencies:
+ domelementtype: 2.3.0
+ entities: 2.2.0
+
+ dom-serializer@1.4.1:
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 4.3.1
+ entities: 2.2.0
+
+ dom-serializer@2.0.0:
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+ entities: 4.5.0
+
+ domelementtype@1.3.1: {}
+
+ domelementtype@2.3.0: {}
+
+ domhandler@2.4.2:
+ dependencies:
+ domelementtype: 1.3.1
+
+ domhandler@4.3.1:
+ dependencies:
+ domelementtype: 2.3.0
+
+ domhandler@5.0.3:
+ dependencies:
+ domelementtype: 2.3.0
+
+ domutils@1.7.0:
+ dependencies:
+ dom-serializer: 0.2.2
+ domelementtype: 1.3.1
+
+ domutils@2.8.0:
+ dependencies:
+ dom-serializer: 1.4.1
+ domelementtype: 2.3.0
+ domhandler: 4.3.1
+
+ domutils@3.2.2:
+ dependencies:
+ dom-serializer: 2.0.0
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+
+ dot-prop@9.0.0:
+ dependencies:
+ type-fest: 4.41.0
+ optional: true
+
+ dotenv@16.6.1:
+ optional: true
+
+ dotenv@17.2.3: {}
+
+ dunder-proto@1.0.1:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-errors: 1.3.0
+ gopd: 1.2.0
+
+ duplexer@0.1.2: {}
+
+ eastasianwidth@0.2.0: {}
+
+ ee-first@1.1.1:
+ optional: true
+
+ electron-to-chromium@1.5.187: {}
+
+ electron-to-chromium@1.5.249: {}
+
+ electron-to-chromium@1.5.267: {}
+
+ element-plus@2.13.4(vue@3.5.29(typescript@5.9.3)):
+ dependencies:
+ '@ctrl/tinycolor': 4.2.0
+ '@element-plus/icons-vue': 2.3.2(vue@3.5.29(typescript@5.9.3))
+ '@floating-ui/dom': 1.7.1
+ '@popperjs/core': '@sxzz/popperjs-es@2.11.7'
+ '@types/lodash': 4.17.20
+ '@types/lodash-es': 4.17.12
+ '@vueuse/core': 10.11.1(vue@3.5.29(typescript@5.9.3))
+ async-validator: 4.2.5
+ dayjs: 1.11.19
+ lodash: 4.17.23
+ lodash-es: 4.17.23
+ lodash-unified: 1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.23)(lodash@4.17.23)
+ memoize-one: 6.0.0
+ normalize-wheel-es: 1.2.0
+ vue: 3.5.29(typescript@5.9.3)
+ transitivePeerDependencies:
+ - '@vue/composition-api'
+
+ emoji-regex@10.4.0: {}
+
+ emoji-regex@8.0.0: {}
+
+ emoji-regex@9.2.2: {}
+
+ emojis-list@3.0.0: {}
+
+ empathic@2.0.0: {}
+
+ enabled@2.0.0:
+ optional: true
+
+ encodeurl@2.0.0:
+ optional: true
+
+ end-of-stream@1.4.5:
+ dependencies:
+ once: 1.4.0
+ optional: true
+
+ enhanced-resolve@5.18.1:
+ dependencies:
+ graceful-fs: 4.2.11
+ tapable: 2.2.2
+
+ entities@1.1.2: {}
+
+ entities@2.2.0: {}
+
+ entities@4.5.0: {}
+
+ entities@7.0.0: {}
+
+ entities@7.0.1: {}
+
+ env-paths@2.2.1: {}
+
+ env-paths@3.0.0:
+ optional: true
+
+ environment@1.1.0: {}
+
+ error-ex@1.3.2:
+ dependencies:
+ is-arrayish: 0.2.1
+
+ error-stack-parser-es@1.0.5: {}
+
+ errx@0.1.0:
+ optional: true
+
+ eruda@3.4.3: {}
+
+ es-abstract@1.24.0:
+ dependencies:
+ array-buffer-byte-length: 1.0.2
+ arraybuffer.prototype.slice: 1.0.4
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ data-view-buffer: 1.0.2
+ data-view-byte-length: 1.0.2
+ data-view-byte-offset: 1.0.1
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.1
+ es-set-tostringtag: 2.1.0
+ es-to-primitive: 1.3.0
+ function.prototype.name: 1.1.8
+ get-intrinsic: 1.3.0
+ get-proto: 1.0.1
+ get-symbol-description: 1.1.0
+ globalthis: 1.0.4
+ gopd: 1.2.0
+ has-property-descriptors: 1.0.2
+ has-proto: 1.2.0
+ has-symbols: 1.1.0
+ hasown: 2.0.2
+ internal-slot: 1.1.0
+ is-array-buffer: 3.0.5
+ is-callable: 1.2.7
+ is-data-view: 1.0.2
+ is-negative-zero: 2.0.3
+ is-regex: 1.2.1
+ is-set: 2.0.3
+ is-shared-array-buffer: 1.0.4
+ is-string: 1.1.1
+ is-typed-array: 1.1.15
+ is-weakref: 1.1.1
+ math-intrinsics: 1.1.0
+ object-inspect: 1.13.4
+ object-keys: 1.1.1
+ object.assign: 4.1.7
+ own-keys: 1.0.1
+ regexp.prototype.flags: 1.5.4
+ safe-array-concat: 1.1.3
+ safe-push-apply: 1.0.0
+ safe-regex-test: 1.1.0
+ set-proto: 1.0.0
+ stop-iteration-iterator: 1.1.0
+ string.prototype.trim: 1.2.10
+ string.prototype.trimend: 1.0.9
+ string.prototype.trimstart: 1.0.8
+ typed-array-buffer: 1.0.3
+ typed-array-byte-length: 1.0.3
+ typed-array-byte-offset: 1.0.4
+ typed-array-length: 1.0.7
+ unbox-primitive: 1.1.0
+ which-typed-array: 1.1.19
+
+ es-define-property@1.0.1: {}
+
+ es-errors@1.3.0: {}
+
+ es-module-lexer@1.7.0:
+ optional: true
+
+ es-object-atoms@1.1.1:
+ dependencies:
+ es-errors: 1.3.0
+
+ es-set-tostringtag@2.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ has-tostringtag: 1.0.2
+ hasown: 2.0.2
+
+ es-to-primitive@1.3.0:
+ dependencies:
+ is-callable: 1.2.7
+ is-date-object: 1.1.0
+ is-symbol: 1.1.1
+
+ es-toolkit@1.45.1: {}
+
+ esbuild@0.24.2:
+ optionalDependencies:
+ '@esbuild/aix-ppc64': 0.24.2
+ '@esbuild/android-arm': 0.24.2
+ '@esbuild/android-arm64': 0.24.2
+ '@esbuild/android-x64': 0.24.2
+ '@esbuild/darwin-arm64': 0.24.2
+ '@esbuild/darwin-x64': 0.24.2
+ '@esbuild/freebsd-arm64': 0.24.2
+ '@esbuild/freebsd-x64': 0.24.2
+ '@esbuild/linux-arm': 0.24.2
+ '@esbuild/linux-arm64': 0.24.2
+ '@esbuild/linux-ia32': 0.24.2
+ '@esbuild/linux-loong64': 0.24.2
+ '@esbuild/linux-mips64el': 0.24.2
+ '@esbuild/linux-ppc64': 0.24.2
+ '@esbuild/linux-riscv64': 0.24.2
+ '@esbuild/linux-s390x': 0.24.2
+ '@esbuild/linux-x64': 0.24.2
+ '@esbuild/netbsd-arm64': 0.24.2
+ '@esbuild/netbsd-x64': 0.24.2
+ '@esbuild/openbsd-arm64': 0.24.2
+ '@esbuild/openbsd-x64': 0.24.2
+ '@esbuild/sunos-x64': 0.24.2
+ '@esbuild/win32-arm64': 0.24.2
+ '@esbuild/win32-ia32': 0.24.2
+ '@esbuild/win32-x64': 0.24.2
+
+ esbuild@0.25.5:
+ optionalDependencies:
+ '@esbuild/aix-ppc64': 0.25.5
+ '@esbuild/android-arm': 0.25.5
+ '@esbuild/android-arm64': 0.25.5
+ '@esbuild/android-x64': 0.25.5
+ '@esbuild/darwin-arm64': 0.25.5
+ '@esbuild/darwin-x64': 0.25.5
+ '@esbuild/freebsd-arm64': 0.25.5
+ '@esbuild/freebsd-x64': 0.25.5
+ '@esbuild/linux-arm': 0.25.5
+ '@esbuild/linux-arm64': 0.25.5
+ '@esbuild/linux-ia32': 0.25.5
+ '@esbuild/linux-loong64': 0.25.5
+ '@esbuild/linux-mips64el': 0.25.5
+ '@esbuild/linux-ppc64': 0.25.5
+ '@esbuild/linux-riscv64': 0.25.5
+ '@esbuild/linux-s390x': 0.25.5
+ '@esbuild/linux-x64': 0.25.5
+ '@esbuild/netbsd-arm64': 0.25.5
+ '@esbuild/netbsd-x64': 0.25.5
+ '@esbuild/openbsd-arm64': 0.25.5
+ '@esbuild/openbsd-x64': 0.25.5
+ '@esbuild/sunos-x64': 0.25.5
+ '@esbuild/win32-arm64': 0.25.5
+ '@esbuild/win32-ia32': 0.25.5
+ '@esbuild/win32-x64': 0.25.5
+ optional: true
+
+ esbuild@0.25.9:
+ optionalDependencies:
+ '@esbuild/aix-ppc64': 0.25.9
+ '@esbuild/android-arm': 0.25.9
+ '@esbuild/android-arm64': 0.25.9
+ '@esbuild/android-x64': 0.25.9
+ '@esbuild/darwin-arm64': 0.25.9
+ '@esbuild/darwin-x64': 0.25.9
+ '@esbuild/freebsd-arm64': 0.25.9
+ '@esbuild/freebsd-x64': 0.25.9
+ '@esbuild/linux-arm': 0.25.9
+ '@esbuild/linux-arm64': 0.25.9
+ '@esbuild/linux-ia32': 0.25.9
+ '@esbuild/linux-loong64': 0.25.9
+ '@esbuild/linux-mips64el': 0.25.9
+ '@esbuild/linux-ppc64': 0.25.9
+ '@esbuild/linux-riscv64': 0.25.9
+ '@esbuild/linux-s390x': 0.25.9
+ '@esbuild/linux-x64': 0.25.9
+ '@esbuild/netbsd-arm64': 0.25.9
+ '@esbuild/netbsd-x64': 0.25.9
+ '@esbuild/openbsd-arm64': 0.25.9
+ '@esbuild/openbsd-x64': 0.25.9
+ '@esbuild/openharmony-arm64': 0.25.9
+ '@esbuild/sunos-x64': 0.25.9
+ '@esbuild/win32-arm64': 0.25.9
+ '@esbuild/win32-ia32': 0.25.9
+ '@esbuild/win32-x64': 0.25.9
+ optional: true
+
+ esbuild@0.27.0:
+ optionalDependencies:
+ '@esbuild/aix-ppc64': 0.27.0
+ '@esbuild/android-arm': 0.27.0
+ '@esbuild/android-arm64': 0.27.0
+ '@esbuild/android-x64': 0.27.0
+ '@esbuild/darwin-arm64': 0.27.0
+ '@esbuild/darwin-x64': 0.27.0
+ '@esbuild/freebsd-arm64': 0.27.0
+ '@esbuild/freebsd-x64': 0.27.0
+ '@esbuild/linux-arm': 0.27.0
+ '@esbuild/linux-arm64': 0.27.0
+ '@esbuild/linux-ia32': 0.27.0
+ '@esbuild/linux-loong64': 0.27.0
+ '@esbuild/linux-mips64el': 0.27.0
+ '@esbuild/linux-ppc64': 0.27.0
+ '@esbuild/linux-riscv64': 0.27.0
+ '@esbuild/linux-s390x': 0.27.0
+ '@esbuild/linux-x64': 0.27.0
+ '@esbuild/netbsd-arm64': 0.27.0
+ '@esbuild/netbsd-x64': 0.27.0
+ '@esbuild/openbsd-arm64': 0.27.0
+ '@esbuild/openbsd-x64': 0.27.0
+ '@esbuild/openharmony-arm64': 0.27.0
+ '@esbuild/sunos-x64': 0.27.0
+ '@esbuild/win32-arm64': 0.27.0
+ '@esbuild/win32-ia32': 0.27.0
+ '@esbuild/win32-x64': 0.27.0
+
+ escalade@3.2.0: {}
+
+ escape-html@1.0.3:
+ optional: true
+
+ escape-string-regexp@1.0.5: {}
+
+ escape-string-regexp@4.0.0: {}
+
+ escape-string-regexp@5.0.0: {}
+
+ escodegen@2.1.0:
+ dependencies:
+ esprima: 4.0.1
+ estraverse: 5.3.0
+ esutils: 2.0.3
+ optionalDependencies:
+ source-map: 0.6.1
+ optional: true
+
+ eslint-compat-utils@0.5.1(eslint@9.39.4(jiti@2.6.1)):
+ dependencies:
+ eslint: 9.39.4(jiti@2.6.1)
+ semver: 7.7.4
+
+ eslint-config-flat-gitignore@2.2.1(eslint@9.39.4(jiti@2.6.1)):
+ dependencies:
+ '@eslint/compat': 2.0.2(eslint@9.39.4(jiti@2.6.1))
+ eslint: 9.39.4(jiti@2.6.1)
+
+ eslint-flat-config-utils@3.0.1:
+ dependencies:
+ '@eslint/config-helpers': 0.5.2
+ pathe: 2.0.3
+
+ eslint-json-compat-utils@0.2.1(eslint@9.39.4(jiti@2.6.1))(jsonc-eslint-parser@3.1.0):
+ dependencies:
+ eslint: 9.39.4(jiti@2.6.1)
+ esquery: 1.7.0
+ jsonc-eslint-parser: 3.1.0
+
+ eslint-merge-processors@2.0.0(eslint@9.39.4(jiti@2.6.1)):
+ dependencies:
+ eslint: 9.39.4(jiti@2.6.1)
+
+ eslint-plugin-antfu@3.2.2(eslint@9.39.4(jiti@2.6.1)):
+ dependencies:
+ eslint: 9.39.4(jiti@2.6.1)
+
+ eslint-plugin-command@3.5.2(@typescript-eslint/rule-tester@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/typescript-estree@8.56.1(typescript@5.9.3))(@typescript-eslint/utils@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1)):
+ dependencies:
+ '@es-joy/jsdoccomment': 0.84.0
+ '@typescript-eslint/rule-tester': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
+ eslint: 9.39.4(jiti@2.6.1)
+
+ eslint-plugin-depend@1.5.0(eslint@9.39.4(jiti@2.6.1)):
+ dependencies:
+ empathic: 2.0.0
+ eslint: 9.39.4(jiti@2.6.1)
+ module-replacements: 2.11.0
+ semver: 7.7.4
+
+ eslint-plugin-es-x@7.8.0(eslint@9.39.4(jiti@2.6.1)):
+ dependencies:
+ '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1))
+ '@eslint-community/regexpp': 4.12.2
+ eslint: 9.39.4(jiti@2.6.1)
+ eslint-compat-utils: 0.5.1(eslint@9.39.4(jiti@2.6.1))
+
+ eslint-plugin-import-lite@0.5.2(eslint@9.39.4(jiti@2.6.1)):
+ dependencies:
+ eslint: 9.39.4(jiti@2.6.1)
+
+ eslint-plugin-jsdoc@62.7.1(eslint@9.39.4(jiti@2.6.1)):
+ dependencies:
+ '@es-joy/jsdoccomment': 0.84.0
+ '@es-joy/resolve.exports': 1.2.0
+ are-docs-informative: 0.0.2
+ comment-parser: 1.4.5
+ debug: 4.4.3
+ escape-string-regexp: 4.0.0
+ eslint: 9.39.4(jiti@2.6.1)
+ espree: 11.1.1
+ esquery: 1.7.0
+ html-entities: 2.6.0
+ object-deep-merge: 2.0.0
+ parse-imports-exports: 0.2.4
+ semver: 7.7.4
+ spdx-expression-parse: 4.0.0
+ to-valid-identifier: 1.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ eslint-plugin-jsonc@3.1.1(eslint@9.39.4(jiti@2.6.1)):
+ dependencies:
+ '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1))
+ '@eslint/core': 1.1.0
+ '@eslint/plugin-kit': 0.6.0
+ '@ota-meshi/ast-token-store': 0.3.0
+ diff-sequences: 29.6.3
+ eslint: 9.39.4(jiti@2.6.1)
+ eslint-json-compat-utils: 0.2.1(eslint@9.39.4(jiti@2.6.1))(jsonc-eslint-parser@3.1.0)
+ jsonc-eslint-parser: 3.1.0
+ natural-compare: 1.4.0
+ synckit: 0.11.12
+ transitivePeerDependencies:
+ - '@eslint/json'
+
+ eslint-plugin-n@17.24.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3):
+ dependencies:
+ '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1))
+ enhanced-resolve: 5.18.1
+ eslint: 9.39.4(jiti@2.6.1)
+ eslint-plugin-es-x: 7.8.0(eslint@9.39.4(jiti@2.6.1))
+ get-tsconfig: 4.10.1
+ globals: 15.15.0
+ globrex: 0.1.2
+ ignore: 5.3.2
+ semver: 7.7.4
+ ts-declaration-location: 1.0.7(typescript@5.9.3)
+ transitivePeerDependencies:
+ - typescript
+
+ eslint-plugin-no-only-tests@3.3.0: {}
+
+ eslint-plugin-perfectionist@5.6.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3):
+ dependencies:
+ '@typescript-eslint/utils': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
+ eslint: 9.39.4(jiti@2.6.1)
+ natural-orderby: 5.0.0
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ eslint-plugin-pnpm@1.6.0(eslint@9.39.4(jiti@2.6.1)):
+ dependencies:
+ empathic: 2.0.0
+ eslint: 9.39.4(jiti@2.6.1)
+ jsonc-eslint-parser: 3.1.0
+ pathe: 2.0.3
+ pnpm-workspace-yaml: 1.6.0
+ tinyglobby: 0.2.15
+ yaml: 2.8.2
+ yaml-eslint-parser: 2.0.0
+
+ eslint-plugin-regexp@3.0.0(eslint@9.39.4(jiti@2.6.1)):
+ dependencies:
+ '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1))
+ '@eslint-community/regexpp': 4.12.2
+ comment-parser: 1.4.5
+ eslint: 9.39.4(jiti@2.6.1)
+ jsdoc-type-pratt-parser: 7.1.1
+ refa: 0.12.1
+ regexp-ast-analysis: 0.7.1
+ scslre: 0.3.0
+
+ eslint-plugin-toml@1.3.1(eslint@9.39.4(jiti@2.6.1)):
+ dependencies:
+ '@eslint/core': 1.1.0
+ '@eslint/plugin-kit': 0.6.0
+ '@ota-meshi/ast-token-store': 0.3.0
+ debug: 4.4.3
+ eslint: 9.39.4(jiti@2.6.1)
+ toml-eslint-parser: 1.0.3
+ transitivePeerDependencies:
+ - supports-color
+
+ eslint-plugin-unicorn@63.0.0(eslint@9.39.4(jiti@2.6.1)):
+ dependencies:
+ '@babel/helper-validator-identifier': 7.28.5
+ '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1))
+ change-case: 5.4.4
+ ci-info: 4.3.1
+ clean-regexp: 1.0.0
+ core-js-compat: 3.46.0
+ eslint: 9.39.4(jiti@2.6.1)
+ find-up-simple: 1.0.1
+ globals: 16.5.0
+ indent-string: 5.0.0
+ is-builtin-module: 5.0.0
+ jsesc: 3.1.0
+ pluralize: 8.0.0
+ regexp-tree: 0.1.27
+ regjsparser: 0.13.0
+ semver: 7.7.4
+ strip-indent: 4.1.1
+
+ eslint-plugin-unused-imports@4.4.1(@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1)):
+ dependencies:
+ eslint: 9.39.4(jiti@2.6.1)
+ optionalDependencies:
+ '@typescript-eslint/eslint-plugin': 8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
+
+ eslint-plugin-vue@10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@9.39.4(jiti@2.6.1)))(@typescript-eslint/parser@8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@9.39.4(jiti@2.6.1))):
+ dependencies:
+ '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1))
+ eslint: 9.39.4(jiti@2.6.1)
+ natural-compare: 1.4.0
+ nth-check: 2.1.1
+ postcss-selector-parser: 7.1.1
+ semver: 7.7.4
+ vue-eslint-parser: 10.4.0(eslint@9.39.4(jiti@2.6.1))
+ xml-name-validator: 4.0.0
+ optionalDependencies:
+ '@stylistic/eslint-plugin': 5.10.0(eslint@9.39.4(jiti@2.6.1))
+ '@typescript-eslint/parser': 8.56.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
+
+ eslint-plugin-yml@3.3.1(eslint@9.39.4(jiti@2.6.1)):
+ dependencies:
+ '@eslint/core': 1.1.0
+ '@eslint/plugin-kit': 0.6.0
+ '@ota-meshi/ast-token-store': 0.3.0
+ debug: 4.4.3
+ diff-sequences: 29.6.3
+ escape-string-regexp: 5.0.0
+ eslint: 9.39.4(jiti@2.6.1)
+ natural-compare: 1.4.0
+ yaml-eslint-parser: 2.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.29)(eslint@9.39.4(jiti@2.6.1)):
+ dependencies:
+ '@vue/compiler-sfc': 3.5.29
+ eslint: 9.39.4(jiti@2.6.1)
+
+ eslint-scope@8.4.0:
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 5.3.0
+
+ eslint-visitor-keys@3.4.3: {}
+
+ eslint-visitor-keys@4.2.1: {}
+
+ eslint-visitor-keys@5.0.1: {}
+
+ eslint@9.39.4(jiti@2.6.1):
+ dependencies:
+ '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1))
+ '@eslint-community/regexpp': 4.12.2
+ '@eslint/config-array': 0.21.2
+ '@eslint/config-helpers': 0.4.2
+ '@eslint/core': 0.17.0
+ '@eslint/eslintrc': 3.3.5
+ '@eslint/js': 9.39.4
+ '@eslint/plugin-kit': 0.4.1
+ '@humanfs/node': 0.16.6
+ '@humanwhocodes/module-importer': 1.0.1
+ '@humanwhocodes/retry': 0.4.3
+ '@types/estree': 1.0.8
+ ajv: 6.14.0
+ chalk: 4.1.2
+ cross-spawn: 7.0.6
+ debug: 4.4.3
+ escape-string-regexp: 4.0.0
+ eslint-scope: 8.4.0
+ eslint-visitor-keys: 4.2.1
+ espree: 10.4.0
+ esquery: 1.7.0
+ esutils: 2.0.3
+ fast-deep-equal: 3.1.3
+ file-entry-cache: 8.0.0
+ find-up: 5.0.0
+ glob-parent: 6.0.2
+ ignore: 5.3.2
+ imurmurhash: 0.1.4
+ is-glob: 4.0.3
+ json-stable-stringify-without-jsonify: 1.0.1
+ lodash.merge: 4.6.2
+ minimatch: 3.1.5
+ natural-compare: 1.4.0
+ optionator: 0.9.4
+ optionalDependencies:
+ jiti: 2.6.1
+ transitivePeerDependencies:
+ - supports-color
+
+ espree@10.4.0:
+ dependencies:
+ acorn: 8.15.0
+ acorn-jsx: 5.3.2(acorn@8.15.0)
+ eslint-visitor-keys: 4.2.1
+
+ espree@11.1.1:
+ dependencies:
+ acorn: 8.16.0
+ acorn-jsx: 5.3.2(acorn@8.16.0)
+ eslint-visitor-keys: 5.0.1
+
+ esprima-extract-comments@1.1.0:
+ dependencies:
+ esprima: 4.0.1
+
+ esprima@4.0.1: {}
+
+ esquery@1.7.0:
+ dependencies:
+ estraverse: 5.3.0
+
+ esrecurse@4.3.0:
+ dependencies:
+ estraverse: 5.3.0
+
+ estraverse@5.3.0: {}
+
+ estree-walker@2.0.2: {}
+
+ estree-walker@3.0.3:
+ dependencies:
+ '@types/estree': 1.0.8
+
+ esutils@2.0.3: {}
+
+ etag@1.8.1: {}
+
+ event-target-shim@5.0.1: {}
+
+ eventemitter3@4.0.7: {}
+
+ eventemitter3@5.0.1: {}
+
+ events@3.3.0: {}
+
+ execa@8.0.1:
+ dependencies:
+ cross-spawn: 7.0.6
+ get-stream: 8.0.1
+ human-signals: 5.0.0
+ is-stream: 3.0.0
+ merge-stream: 2.0.0
+ npm-run-path: 5.3.0
+ onetime: 6.0.0
+ signal-exit: 4.1.0
+ strip-final-newline: 3.0.0
+ optional: true
+
+ expand-brackets@2.1.4:
+ 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
+
+ expand-tilde@2.0.2:
+ dependencies:
+ homedir-polyfill: 1.0.3
+
+ exsolve@1.0.8: {}
+
+ extend-shallow@2.0.1:
+ dependencies:
+ is-extendable: 0.1.1
+
+ extend-shallow@3.0.2:
+ dependencies:
+ assign-symbols: 1.0.0
+ is-extendable: 1.0.1
+
+ extend@3.0.2: {}
+
+ extglob@2.0.4:
+ 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
+
+ extract-comments@1.1.0:
+ dependencies:
+ esprima-extract-comments: 1.1.0
+ parse-code-context: 1.0.0
+
+ extract-zip@2.0.1:
+ dependencies:
+ debug: 4.4.3
+ get-stream: 5.2.0
+ yauzl: 2.10.0
+ optionalDependencies:
+ '@types/yauzl': 2.10.3
+ transitivePeerDependencies:
+ - supports-color
+ optional: true
+
+ fast-deep-equal@3.1.3: {}
+
+ fast-fifo@1.3.2: {}
+
+ fast-glob@3.3.3:
+ 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.8
+
+ fast-json-stable-stringify@2.1.0: {}
+
+ fast-levenshtein@2.0.6: {}
+
+ fast-npm-meta@0.4.6:
+ optional: true
+
+ fast-uri@3.0.6: {}
+
+ fastest-levenshtein@1.0.16: {}
+
+ fastq@1.19.1:
+ dependencies:
+ reusify: 1.1.0
+
+ fault@2.0.1:
+ dependencies:
+ format: 0.2.2
+
+ fd-slicer@1.1.0:
+ dependencies:
+ pend: 1.2.0
+ optional: true
+
+ fdir@6.5.0(picomatch@4.0.3):
+ optionalDependencies:
+ picomatch: 4.0.3
+
+ fecha@4.2.3:
+ optional: true
+
+ fetch-blob@3.2.0:
+ dependencies:
+ node-domexception: 1.0.0
+ web-streams-polyfill: 3.3.3
+ optional: true
+
+ file-entry-cache@11.1.2:
+ dependencies:
+ flat-cache: 6.1.20
+
+ file-entry-cache@8.0.0:
+ dependencies:
+ flat-cache: 4.0.1
+
+ file-uri-to-path@1.0.0:
+ optional: true
+
+ filesize@10.1.6: {}
+
+ filesize@11.0.13: {}
+
+ fill-range@4.0.0:
+ dependencies:
+ extend-shallow: 2.0.1
+ is-number: 3.0.0
+ repeat-string: 1.6.1
+ to-regex-range: 2.1.1
+
+ fill-range@7.1.1:
+ dependencies:
+ to-regex-range: 5.0.1
+
+ filter-obj@6.1.0:
+ optional: true
+
+ find-up-simple@1.0.1: {}
+
+ find-up@5.0.0:
+ dependencies:
+ locate-path: 6.0.0
+ path-exists: 4.0.0
+
+ find-up@7.0.0:
+ dependencies:
+ locate-path: 7.2.0
+ path-exists: 5.0.0
+ unicorn-magic: 0.1.0
+ optional: true
+
+ findup-sync@5.0.0:
+ dependencies:
+ detect-file: 1.0.0
+ is-glob: 4.0.3
+ micromatch: 4.0.8
+ resolve-dir: 1.0.1
+
+ fined@2.0.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
+
+ flagged-respawn@2.0.0: {}
+
+ flat-cache@4.0.1:
+ dependencies:
+ flatted: 3.3.3
+ keyv: 4.5.4
+
+ flat-cache@6.1.20:
+ dependencies:
+ cacheable: 2.3.3
+ flatted: 3.3.3
+ hookified: 1.15.1
+
+ flatted@3.3.3: {}
+
+ fn.name@1.1.0:
+ optional: true
+
+ follow-redirects@1.15.11: {}
+
+ follow-redirects@1.15.9: {}
+
+ for-each@0.3.5:
+ dependencies:
+ is-callable: 1.2.7
+
+ for-in@1.0.2: {}
+
+ for-own@1.0.0:
+ dependencies:
+ for-in: 1.0.2
+
+ foreground-child@3.3.1:
+ dependencies:
+ cross-spawn: 7.0.6
+ signal-exit: 4.1.0
+
+ form-data@4.0.5:
+ dependencies:
+ asynckit: 0.4.0
+ combined-stream: 1.0.8
+ es-set-tostringtag: 2.1.0
+ hasown: 2.0.2
+ mime-types: 2.1.35
+
+ format@0.2.2: {}
+
+ formdata-polyfill@4.0.10:
+ dependencies:
+ fetch-blob: 3.2.0
+ optional: true
+
+ fraction.js@5.3.4: {}
+
+ fragment-cache@0.2.1:
+ dependencies:
+ map-cache: 0.2.2
+
+ fresh@2.0.0:
+ optional: true
+
+ fs-extra@10.1.0:
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 6.1.0
+ universalify: 2.0.1
+
+ fs-extra@11.3.4:
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 6.1.0
+ universalify: 2.0.1
+
+ fsevents@2.3.3:
+ optional: true
+
+ function-bind@1.1.2: {}
+
+ function.prototype.name@1.1.8:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ define-properties: 1.2.1
+ functions-have-names: 1.2.3
+ hasown: 2.0.2
+ is-callable: 1.2.7
+
+ functions-have-names@1.2.3: {}
+
+ fuse.js@7.1.0:
+ optional: true
+
+ fzf@0.5.2: {}
+
+ gensync@1.0.0-beta.2: {}
+
+ get-amd-module-type@6.0.1:
+ dependencies:
+ ast-module-types: 6.0.1
+ node-source-walk: 7.0.1
+ optional: true
+
+ get-caller-file@2.0.5:
+ optional: true
+
+ get-east-asian-width@1.3.0: {}
+
+ get-east-asian-width@1.5.0: {}
+
+ get-intrinsic@1.3.0:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.1
+ function-bind: 1.1.2
+ get-proto: 1.0.1
+ gopd: 1.2.0
+ has-symbols: 1.1.0
+ hasown: 2.0.2
+ math-intrinsics: 1.1.0
+
+ get-port-please@3.2.0: {}
+
+ get-proto@1.0.1:
+ dependencies:
+ dunder-proto: 1.0.1
+ es-object-atoms: 1.1.1
+
+ get-stream@5.2.0:
+ dependencies:
+ pump: 3.0.3
+ optional: true
+
+ get-stream@8.0.1:
+ optional: true
+
+ get-symbol-description@1.1.0:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+
+ get-tsconfig@4.10.1:
+ dependencies:
+ resolve-pkg-maps: 1.0.0
+
+ get-value@2.0.6: {}
+
+ giget@2.0.0:
+ dependencies:
+ citty: 0.1.6
+ consola: 3.4.2
+ defu: 6.1.4
+ node-fetch-native: 1.6.7
+ nypm: 0.6.1
+ pathe: 2.0.3
+
+ git-up@8.1.1:
+ dependencies:
+ is-ssh: 1.4.1
+ parse-url: 9.2.0
+ optional: true
+
+ git-url-parse@16.1.0:
+ dependencies:
+ git-up: 8.1.1
+ optional: true
+
+ github-slugger@2.0.0: {}
+
+ glob-parent@5.1.2:
+ dependencies:
+ is-glob: 4.0.3
+
+ glob-parent@6.0.2:
+ dependencies:
+ is-glob: 4.0.3
+
+ glob@10.4.5:
+ dependencies:
+ foreground-child: 3.3.1
+ jackspeak: 3.4.3
+ minimatch: 9.0.5
+ minipass: 7.1.2
+ package-json-from-dist: 1.0.1
+ path-scurry: 1.11.1
+
+ global-directory@4.0.1:
+ dependencies:
+ ini: 4.1.1
+ optional: true
+
+ global-modules@1.0.0:
+ dependencies:
+ global-prefix: 1.0.2
+ is-windows: 1.0.2
+ resolve-dir: 1.0.1
+
+ global-modules@2.0.0:
+ dependencies:
+ global-prefix: 3.0.0
+
+ global-prefix@1.0.2:
+ dependencies:
+ expand-tilde: 2.0.2
+ homedir-polyfill: 1.0.3
+ ini: 1.3.8
+ is-windows: 1.0.2
+ which: 1.3.1
+
+ global-prefix@3.0.0:
+ dependencies:
+ ini: 1.3.8
+ kind-of: 6.0.3
+ which: 1.3.1
+
+ globals@11.12.0: {}
+
+ globals@14.0.0: {}
+
+ globals@15.15.0: {}
+
+ globals@16.5.0: {}
+
+ globals@17.4.0: {}
+
+ globalthis@1.0.4:
+ dependencies:
+ define-properties: 1.2.1
+ gopd: 1.2.0
+
+ globby@14.1.0:
+ dependencies:
+ '@sindresorhus/merge-streams': 2.3.0
+ fast-glob: 3.3.3
+ ignore: 7.0.5
+ path-type: 6.0.0
+ slash: 5.1.0
+ unicorn-magic: 0.3.0
+ optional: true
+
+ globby@16.1.1:
+ dependencies:
+ '@sindresorhus/merge-streams': 4.0.0
+ fast-glob: 3.3.3
+ ignore: 7.0.5
+ is-path-inside: 4.0.0
+ slash: 5.1.0
+ unicorn-magic: 0.4.0
+
+ globjoin@0.1.4: {}
+
+ globrex@0.1.2: {}
+
+ gonzales-pe@4.3.0:
+ dependencies:
+ minimist: 1.2.8
+ optional: true
+
+ gopd@1.2.0: {}
+
+ graceful-fs@4.2.11: {}
+
+ gzip-size@6.0.0:
+ dependencies:
+ duplexer: 0.1.2
+
+ gzip-size@7.0.0:
+ dependencies:
+ duplexer: 0.1.2
+ optional: true
+
+ h3@1.15.4:
+ dependencies:
+ cookie-es: 1.2.2
+ crossws: 0.3.5
+ defu: 6.1.4
+ destr: 2.0.5
+ iron-webcrypto: 1.2.1
+ node-mock-http: 1.0.2
+ radix3: 1.1.2
+ ufo: 1.6.1
+ uncrypto: 0.1.3
+
+ handlebars@4.7.8:
+ dependencies:
+ minimist: 1.2.8
+ neo-async: 2.6.2
+ source-map: 0.6.1
+ wordwrap: 1.0.0
+ optionalDependencies:
+ uglify-js: 3.19.3
+
+ has-ansi@2.0.0:
+ dependencies:
+ ansi-regex: 2.1.1
+
+ has-bigints@1.1.0: {}
+
+ has-flag@1.0.0: {}
+
+ has-flag@4.0.0: {}
+
+ has-flag@5.0.1: {}
+
+ has-property-descriptors@1.0.2:
+ dependencies:
+ es-define-property: 1.0.1
+
+ has-proto@1.2.0:
+ dependencies:
+ dunder-proto: 1.0.1
+
+ has-symbols@1.1.0: {}
+
+ has-tostringtag@1.0.2:
+ dependencies:
+ has-symbols: 1.1.0
+
+ has-value@0.3.1:
+ dependencies:
+ get-value: 2.0.6
+ has-values: 0.1.4
+ isobject: 2.1.0
+
+ has-value@1.0.0:
+ dependencies:
+ get-value: 2.0.6
+ has-values: 1.0.0
+ isobject: 3.0.1
+
+ has-values@0.1.4: {}
+
+ has-values@1.0.0:
+ dependencies:
+ is-number: 3.0.0
+ kind-of: 4.0.0
+
+ hashery@1.5.0:
+ dependencies:
+ hookified: 1.15.1
+
+ hasown@2.0.2:
+ dependencies:
+ function-bind: 1.1.2
+
+ he@1.2.0: {}
+
+ homedir-polyfill@1.0.3:
+ dependencies:
+ parse-passwd: 1.0.0
+
+ hookable@5.5.3: {}
+
+ hookified@1.15.1: {}
+
+ hosted-git-info@7.0.2:
+ dependencies:
+ lru-cache: 10.4.3
+ optional: true
+
+ hotkeys-js@4.0.2: {}
+
+ html-encoding-sniffer@3.0.0:
+ dependencies:
+ whatwg-encoding: 2.0.0
+
+ html-entities@2.6.0: {}
+
+ html-tags@5.1.0: {}
+
+ htmlparser2@3.10.1:
+ 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
+
+ htmlparser2@8.0.2:
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+ domutils: 3.2.2
+ entities: 4.5.0
+
+ http-errors@2.0.0:
+ dependencies:
+ depd: 2.0.0
+ inherits: 2.0.4
+ setprototypeof: 1.2.0
+ statuses: 2.0.1
+ toidentifier: 1.0.1
+ optional: true
+
+ http-proxy@1.18.1:
+ dependencies:
+ eventemitter3: 4.0.7
+ follow-redirects: 1.15.9
+ requires-port: 1.0.0
+ transitivePeerDependencies:
+ - debug
+
+ http-server@14.1.1:
+ 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.8
+ opener: 1.5.2
+ portfinder: 1.0.37
+ secure-compare: 3.0.1
+ union: 0.5.0
+ url-join: 4.0.1
+ transitivePeerDependencies:
+ - debug
+ - supports-color
+
+ http-shutdown@1.2.2:
+ optional: true
+
+ https-proxy-agent@7.0.6:
+ dependencies:
+ agent-base: 7.1.4
+ debug: 4.4.3
+ transitivePeerDependencies:
+ - supports-color
+ optional: true
+
+ httpxy@0.1.7:
+ optional: true
+
+ human-signals@5.0.0:
+ optional: true
+
+ iconv-lite@0.6.3:
+ dependencies:
+ safer-buffer: 2.1.2
+
+ iconv-lite@0.7.0:
+ dependencies:
+ safer-buffer: 2.1.2
+
+ ieee754@1.2.1: {}
+
+ ignore@5.3.2: {}
+
+ ignore@7.0.5: {}
+
+ image-meta@0.2.1:
+ optional: true
+
+ image-size@0.5.5: {}
+
+ immutable@5.1.2: {}
+
+ import-fresh@3.3.1:
+ dependencies:
+ parent-module: 1.0.1
+ resolve-from: 4.0.0
+
+ import-from-string@0.0.5:
+ dependencies:
+ esbuild: 0.24.2
+ import-meta-resolve: 4.1.0
+
+ import-meta-resolve@4.1.0: {}
+
+ import-meta-resolve@4.2.0: {}
+
+ impound@1.0.0:
+ dependencies:
+ exsolve: 1.0.8
+ mocked-exports: 0.1.1
+ pathe: 2.0.3
+ unplugin: 2.3.11
+ unplugin-utils: 0.2.4
+ optional: true
+
+ imurmurhash@0.1.4: {}
+
+ indent-string@5.0.0: {}
+
+ index-to-position@1.1.0:
+ optional: true
+
+ inherits@2.0.4: {}
+
+ ini@1.3.8: {}
+
+ ini@4.1.1:
+ optional: true
+
+ inquirer@9.3.8(@types/node@22.15.30):
+ dependencies:
+ '@inquirer/external-editor': 1.0.2(@types/node@22.15.30)
+ '@inquirer/figures': 1.0.12
+ ansi-escapes: 4.3.2
+ cli-width: 4.1.0
+ mute-stream: 1.0.0
+ ora: 5.4.1
+ run-async: 3.0.0
+ rxjs: 7.8.2
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wrap-ansi: 6.2.0
+ yoctocolors-cjs: 2.1.2
+ transitivePeerDependencies:
+ - '@types/node'
+
+ internal-slot@1.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ hasown: 2.0.2
+ side-channel: 1.1.0
+
+ interpret@3.1.1: {}
+
+ ioredis@5.7.0:
+ dependencies:
+ '@ioredis/commands': 1.3.1
+ cluster-key-slot: 1.1.2
+ debug: 4.4.3
+ denque: 2.1.0
+ lodash.defaults: 4.2.0
+ lodash.isarguments: 3.1.0
+ redis-errors: 1.2.0
+ redis-parser: 3.0.0
+ standard-as-callback: 2.1.0
+ transitivePeerDependencies:
+ - supports-color
+ optional: true
+
+ iron-webcrypto@1.2.1: {}
+
+ is-absolute@1.0.0:
+ dependencies:
+ is-relative: 1.0.0
+ is-windows: 1.0.2
+
+ is-accessor-descriptor@1.0.1:
+ dependencies:
+ hasown: 2.0.2
+
+ is-array-buffer@3.0.5:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ get-intrinsic: 1.3.0
+
+ is-arrayish@0.2.1: {}
+
+ is-arrayish@0.3.2:
+ optional: true
+
+ is-async-function@2.1.1:
+ dependencies:
+ async-function: 1.0.0
+ call-bound: 1.0.4
+ get-proto: 1.0.1
+ has-tostringtag: 1.0.2
+ safe-regex-test: 1.1.0
+
+ is-bigint@1.1.0:
+ dependencies:
+ has-bigints: 1.1.0
+
+ is-boolean-object@1.2.2:
+ dependencies:
+ call-bound: 1.0.4
+ has-tostringtag: 1.0.2
+
+ is-buffer@1.1.6: {}
+
+ is-builtin-module@3.2.1:
+ dependencies:
+ builtin-modules: 3.3.0
+ optional: true
+
+ is-builtin-module@5.0.0:
+ dependencies:
+ builtin-modules: 5.0.0
+
+ is-callable@1.2.7: {}
+
+ is-core-module@2.16.1:
+ dependencies:
+ hasown: 2.0.2
+
+ is-data-descriptor@1.0.1:
+ dependencies:
+ hasown: 2.0.2
+
+ is-data-view@1.0.2:
+ dependencies:
+ call-bound: 1.0.4
+ get-intrinsic: 1.3.0
+ is-typed-array: 1.1.15
+
+ is-date-object@1.1.0:
+ dependencies:
+ call-bound: 1.0.4
+ has-tostringtag: 1.0.2
+
+ is-descriptor@0.1.7:
+ dependencies:
+ is-accessor-descriptor: 1.0.1
+ is-data-descriptor: 1.0.1
+
+ is-descriptor@1.0.3:
+ dependencies:
+ is-accessor-descriptor: 1.0.1
+ is-data-descriptor: 1.0.1
+
+ is-docker@2.2.1:
+ optional: true
+
+ is-docker@3.0.0: {}
+
+ is-extendable@0.1.1: {}
+
+ is-extendable@1.0.1:
+ dependencies:
+ is-plain-object: 2.0.4
+
+ is-extglob@2.1.1: {}
+
+ is-finalizationregistry@1.1.1:
+ dependencies:
+ call-bound: 1.0.4
+
+ is-fullwidth-code-point@3.0.0: {}
+
+ is-fullwidth-code-point@5.0.0:
+ dependencies:
+ get-east-asian-width: 1.5.0
+
+ is-generator-function@1.1.0:
+ dependencies:
+ call-bound: 1.0.4
+ get-proto: 1.0.1
+ has-tostringtag: 1.0.2
+ safe-regex-test: 1.1.0
+
+ is-glob@4.0.3:
+ dependencies:
+ is-extglob: 2.1.1
+
+ is-inside-container@1.0.0:
+ dependencies:
+ is-docker: 3.0.0
+
+ is-installed-globally@1.0.0:
+ dependencies:
+ global-directory: 4.0.1
+ is-path-inside: 4.0.0
+ optional: true
+
+ is-interactive@1.0.0: {}
+
+ is-map@2.0.3: {}
+
+ is-module@1.0.0:
+ optional: true
+
+ is-negative-zero@2.0.3: {}
+
+ is-number-object@1.1.1:
+ dependencies:
+ call-bound: 1.0.4
+ has-tostringtag: 1.0.2
+
+ is-number@3.0.0:
+ dependencies:
+ kind-of: 3.2.2
+
+ is-number@7.0.0: {}
+
+ is-path-inside@4.0.0: {}
+
+ is-plain-obj@1.1.0: {}
+
+ is-plain-obj@2.1.0:
+ optional: true
+
+ is-plain-object@2.0.4:
+ dependencies:
+ isobject: 3.0.1
+
+ is-plain-object@5.0.0: {}
+
+ is-reference@1.2.1:
+ dependencies:
+ '@types/estree': 1.0.8
+ optional: true
+
+ is-regex@1.2.1:
+ dependencies:
+ call-bound: 1.0.4
+ gopd: 1.2.0
+ has-tostringtag: 1.0.2
+ hasown: 2.0.2
+
+ is-relative@1.0.0:
+ dependencies:
+ is-unc-path: 1.0.0
+
+ is-set@2.0.3: {}
+
+ is-shared-array-buffer@1.0.4:
+ dependencies:
+ call-bound: 1.0.4
+
+ is-ssh@1.4.1:
+ dependencies:
+ protocols: 2.0.2
+ optional: true
+
+ is-standalone-pwa@0.1.1: {}
+
+ is-stream@2.0.1: {}
+
+ is-stream@3.0.0:
+ optional: true
+
+ is-stream@4.0.1:
+ optional: true
+
+ is-string@1.1.1:
+ dependencies:
+ call-bound: 1.0.4
+ has-tostringtag: 1.0.2
+
+ is-symbol@1.1.1:
+ dependencies:
+ call-bound: 1.0.4
+ has-symbols: 1.1.0
+ safe-regex-test: 1.1.0
+
+ is-typed-array@1.1.15:
+ dependencies:
+ which-typed-array: 1.1.19
+
+ is-unc-path@1.0.0:
+ dependencies:
+ unc-path-regex: 0.1.2
+
+ is-unicode-supported@0.1.0: {}
+
+ is-url-superb@4.0.0:
+ optional: true
+
+ is-url@1.2.4:
+ optional: true
+
+ is-weakmap@2.0.2: {}
+
+ is-weakref@1.1.1:
+ dependencies:
+ call-bound: 1.0.4
+
+ is-weakset@2.0.4:
+ dependencies:
+ call-bound: 1.0.4
+ get-intrinsic: 1.3.0
+
+ is-what@4.1.16: {}
+
+ is-windows@1.0.2: {}
+
+ is-wsl@2.2.0:
+ dependencies:
+ is-docker: 2.2.1
+ optional: true
+
+ is-wsl@3.1.0:
+ dependencies:
+ is-inside-container: 1.0.0
+
+ is64bit@2.0.0:
+ dependencies:
+ system-architecture: 0.1.0
+ optional: true
+
+ isarray@1.0.0: {}
+
+ isarray@2.0.5: {}
+
+ isbinaryfile@5.0.6: {}
+
+ isexe@2.0.0: {}
+
+ isexe@3.1.1: {}
+
+ isobject@2.1.0:
+ dependencies:
+ isarray: 1.0.0
+
+ isobject@3.0.1: {}
+
+ jackspeak@3.4.3:
+ dependencies:
+ '@isaacs/cliui': 8.0.2
+ optionalDependencies:
+ '@pkgjs/parseargs': 0.11.0
+
+ jiti@2.6.1: {}
+
+ js-base64@2.6.4: {}
+
+ js-tokens@4.0.0: {}
+
+ js-tokens@9.0.1: {}
+
+ js-yaml@4.1.0:
+ dependencies:
+ argparse: 2.0.1
+
+ js-yaml@4.1.1:
+ dependencies:
+ argparse: 2.0.1
+
+ jsdoc-type-pratt-parser@7.1.1: {}
+
+ jsesc@3.0.2: {}
+
+ jsesc@3.1.0: {}
+
+ json-buffer@3.0.1: {}
+
+ json-parse-even-better-errors@2.3.1: {}
+
+ json-parse-even-better-errors@4.0.0: {}
+
+ json-schema-traverse@0.4.1: {}
+
+ json-schema-traverse@1.0.0: {}
+
+ json-stable-stringify-without-jsonify@1.0.1: {}
+
+ json5@1.0.2:
+ dependencies:
+ minimist: 1.2.8
+
+ json5@2.2.3: {}
+
+ jsonc-eslint-parser@3.1.0:
+ dependencies:
+ acorn: 8.16.0
+ eslint-visitor-keys: 5.0.1
+ semver: 7.7.4
+
+ jsonc-parser@3.3.1: {}
+
+ jsonfile@6.1.0:
+ dependencies:
+ universalify: 2.0.1
+ optionalDependencies:
+ graceful-fs: 4.2.11
+
+ junk@4.0.1:
+ optional: true
+
+ jwt-decode@4.0.0:
+ optional: true
+
+ keyv@4.5.4:
+ dependencies:
+ json-buffer: 3.0.1
+
+ keyv@5.6.0:
+ dependencies:
+ '@keyv/serialize': 1.1.1
+
+ kind-of@3.2.2:
+ dependencies:
+ is-buffer: 1.1.6
+
+ kind-of@4.0.0:
+ dependencies:
+ is-buffer: 1.1.6
+
+ kind-of@5.1.0: {}
+
+ kind-of@6.0.3: {}
+
+ kleur@3.0.3:
+ optional: true
+
+ kleur@4.1.5:
+ optional: true
+
+ klona@2.0.6:
+ optional: true
+
+ knitwork@1.2.0:
+ optional: true
+
+ known-css-properties@0.37.0: {}
+
+ kolorist@1.8.0: {}
+
+ kuler@2.0.0:
+ optional: true
+
+ lambda-local@2.2.0:
+ dependencies:
+ commander: 10.0.1
+ dotenv: 16.6.1
+ winston: 3.17.0
+ optional: true
+
+ launch-editor@2.11.1:
+ dependencies:
+ picocolors: 1.1.1
+ shell-quote: 1.8.3
+
+ lazystream@1.0.1:
+ dependencies:
+ readable-stream: 2.3.8
+
+ levn@0.4.1:
+ dependencies:
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+
+ liftoff@5.0.1:
+ 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
+ rechoir: 0.8.0
+ resolve: 1.22.10
+
+ lilconfig@3.1.3:
+ optional: true
+
+ lines-and-columns@1.2.4: {}
+
+ lint-staged@16.3.2:
+ dependencies:
+ commander: 14.0.3
+ listr2: 9.0.5
+ micromatch: 4.0.8
+ string-argv: 0.3.2
+ tinyexec: 1.0.2
+ yaml: 2.8.2
+
+ listhen@1.9.0:
+ dependencies:
+ '@parcel/watcher': 2.5.1
+ '@parcel/watcher-wasm': 2.5.1
+ citty: 0.1.6
+ clipboardy: 4.0.0
+ consola: 3.4.2
+ crossws: 0.3.5
+ defu: 6.1.4
+ get-port-please: 3.2.0
+ h3: 1.15.4
+ http-shutdown: 1.2.2
+ jiti: 2.6.1
+ mlly: 1.8.0
+ node-forge: 1.3.1
+ pathe: 1.1.2
+ std-env: 3.9.0
+ ufo: 1.6.1
+ untun: 0.1.3
+ uqr: 0.1.2
+ optional: true
+
+ listr2@9.0.5:
+ dependencies:
+ cli-truncate: 5.1.0
+ colorette: 2.0.20
+ eventemitter3: 5.0.1
+ log-update: 6.1.0
+ rfdc: 1.4.1
+ wrap-ansi: 9.0.0
+
+ loader-utils@1.4.2:
+ dependencies:
+ big.js: 5.2.2
+ emojis-list: 3.0.0
+ json5: 1.0.2
+
+ local-pkg@0.5.1:
+ dependencies:
+ mlly: 1.8.0
+ pkg-types: 1.3.1
+
+ local-pkg@1.1.2:
+ dependencies:
+ mlly: 1.8.0
+ pkg-types: 2.3.0
+ quansync: 0.2.11
+
+ locate-path@6.0.0:
+ dependencies:
+ p-locate: 5.0.0
+
+ locate-path@7.2.0:
+ dependencies:
+ p-locate: 6.0.0
+ optional: true
+
+ lodash-es@4.17.23: {}
+
+ lodash-unified@1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.23)(lodash@4.17.23):
+ dependencies:
+ '@types/lodash-es': 4.17.12
+ lodash: 4.17.23
+ lodash-es: 4.17.23
+
+ lodash.debounce@4.0.8: {}
+
+ lodash.defaults@4.2.0:
+ optional: true
+
+ lodash.isarguments@3.1.0:
+ optional: true
+
+ lodash.memoize@4.1.2:
+ optional: true
+
+ lodash.merge@4.6.2: {}
+
+ lodash.truncate@4.4.2: {}
+
+ lodash.uniq@4.5.0:
+ optional: true
+
+ lodash@4.17.21: {}
+
+ lodash@4.17.23: {}
+
+ log-symbols@4.1.0:
+ dependencies:
+ chalk: 4.1.2
+ is-unicode-supported: 0.1.0
+
+ log-update@6.1.0:
+ dependencies:
+ ansi-escapes: 7.0.0
+ cli-cursor: 5.0.0
+ slice-ansi: 7.1.0
+ strip-ansi: 7.2.0
+ wrap-ansi: 9.0.0
+
+ logform@2.7.0:
+ dependencies:
+ '@colors/colors': 1.6.0
+ '@types/triple-beam': 1.3.5
+ fecha: 4.2.3
+ ms: 2.1.3
+ safe-stable-stringify: 2.5.0
+ triple-beam: 1.4.1
+ optional: true
+
+ longest-streak@3.1.0: {}
+
+ lru-cache@10.4.3: {}
+
+ lru-cache@5.1.1:
+ dependencies:
+ yallist: 3.1.1
+
+ lucide-vue-next@0.577.0(vue@3.5.29(typescript@5.9.3)):
+ dependencies:
+ vue: 3.5.29(typescript@5.9.3)
+
+ luxon@3.7.1:
+ optional: true
+
+ magic-regexp@0.10.0:
+ dependencies:
+ estree-walker: 3.0.3
+ magic-string: 0.30.21
+ mlly: 1.8.0
+ regexp-tree: 0.1.27
+ type-level-regexp: 0.1.17
+ ufo: 1.6.1
+ unplugin: 2.3.11
+
+ magic-string-ast@1.0.2:
+ dependencies:
+ magic-string: 0.30.21
+
+ magic-string@0.30.17:
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.0
+
+ magic-string@0.30.19:
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.5
+
+ magic-string@0.30.21:
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.5
+
+ magicast@0.3.5:
+ dependencies:
+ '@babel/parser': 7.29.0
+ '@babel/types': 7.29.0
+ source-map-js: 1.2.1
+ optional: true
+
+ map-cache@0.2.2: {}
+
+ map-visit@1.0.0:
+ dependencies:
+ object-visit: 1.0.1
+
+ markdown-table@3.0.4: {}
+
+ math-intrinsics@1.1.0: {}
+
+ mathml-tag-names@4.0.0: {}
+
+ mdast-util-find-and-replace@3.0.2:
+ dependencies:
+ '@types/mdast': 4.0.4
+ escape-string-regexp: 5.0.0
+ unist-util-is: 6.0.0
+ unist-util-visit-parents: 6.0.1
+
+ mdast-util-from-markdown@2.0.2:
+ dependencies:
+ '@types/mdast': 4.0.4
+ '@types/unist': 3.0.3
+ decode-named-character-reference: 1.1.0
+ devlop: 1.1.0
+ mdast-util-to-string: 4.0.0
+ micromark: 4.0.2
+ micromark-util-decode-numeric-character-reference: 2.0.2
+ micromark-util-decode-string: 2.0.1
+ micromark-util-normalize-identifier: 2.0.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+ unist-util-stringify-position: 4.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-frontmatter@2.0.1:
+ dependencies:
+ '@types/mdast': 4.0.4
+ devlop: 1.1.0
+ escape-string-regexp: 5.0.0
+ mdast-util-from-markdown: 2.0.2
+ mdast-util-to-markdown: 2.1.2
+ micromark-extension-frontmatter: 2.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-gfm-autolink-literal@2.0.1:
+ dependencies:
+ '@types/mdast': 4.0.4
+ ccount: 2.0.1
+ devlop: 1.1.0
+ mdast-util-find-and-replace: 3.0.2
+ micromark-util-character: 2.1.1
+
+ mdast-util-gfm-footnote@2.1.0:
+ dependencies:
+ '@types/mdast': 4.0.4
+ devlop: 1.1.0
+ mdast-util-from-markdown: 2.0.2
+ mdast-util-to-markdown: 2.1.2
+ micromark-util-normalize-identifier: 2.0.1
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-gfm-strikethrough@2.0.0:
+ dependencies:
+ '@types/mdast': 4.0.4
+ mdast-util-from-markdown: 2.0.2
+ mdast-util-to-markdown: 2.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-gfm-table@2.0.0:
+ dependencies:
+ '@types/mdast': 4.0.4
+ devlop: 1.1.0
+ markdown-table: 3.0.4
+ mdast-util-from-markdown: 2.0.2
+ mdast-util-to-markdown: 2.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-gfm-task-list-item@2.0.0:
+ dependencies:
+ '@types/mdast': 4.0.4
+ devlop: 1.1.0
+ mdast-util-from-markdown: 2.0.2
+ mdast-util-to-markdown: 2.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-gfm@3.1.0:
+ dependencies:
+ mdast-util-from-markdown: 2.0.2
+ mdast-util-gfm-autolink-literal: 2.0.1
+ mdast-util-gfm-footnote: 2.1.0
+ mdast-util-gfm-strikethrough: 2.0.0
+ mdast-util-gfm-table: 2.0.0
+ mdast-util-gfm-task-list-item: 2.0.0
+ mdast-util-to-markdown: 2.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-phrasing@4.1.0:
+ dependencies:
+ '@types/mdast': 4.0.4
+ unist-util-is: 6.0.0
+
+ mdast-util-to-markdown@2.1.2:
+ dependencies:
+ '@types/mdast': 4.0.4
+ '@types/unist': 3.0.3
+ longest-streak: 3.1.0
+ mdast-util-phrasing: 4.1.0
+ mdast-util-to-string: 4.0.0
+ micromark-util-classify-character: 2.0.1
+ micromark-util-decode-string: 2.0.1
+ unist-util-visit: 5.0.0
+ zwitch: 2.0.4
+
+ mdast-util-to-string@4.0.0:
+ dependencies:
+ '@types/mdast': 4.0.4
+
+ mdn-data@2.0.14: {}
+
+ mdn-data@2.0.28: {}
+
+ mdn-data@2.12.2: {}
+
+ mdn-data@2.25.0: {}
+
+ memoize-one@6.0.0: {}
+
+ memorystream@0.3.1: {}
+
+ meow@13.2.0: {}
+
+ meow@14.1.0: {}
+
+ merge-options@1.0.1:
+ dependencies:
+ is-plain-obj: 1.1.0
+
+ merge-options@3.0.4:
+ dependencies:
+ is-plain-obj: 2.1.0
+ optional: true
+
+ merge-stream@2.0.0:
+ optional: true
+
+ merge2@1.4.1: {}
+
+ micro-api-client@3.3.0:
+ optional: true
+
+ micromark-core-commonmark@2.0.3:
+ dependencies:
+ decode-named-character-reference: 1.1.0
+ devlop: 1.1.0
+ micromark-factory-destination: 2.0.1
+ micromark-factory-label: 2.0.1
+ micromark-factory-space: 2.0.1
+ micromark-factory-title: 2.0.1
+ micromark-factory-whitespace: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-chunked: 2.0.1
+ micromark-util-classify-character: 2.0.1
+ micromark-util-html-tag-name: 2.0.1
+ micromark-util-normalize-identifier: 2.0.1
+ micromark-util-resolve-all: 2.0.1
+ micromark-util-subtokenize: 2.1.0
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-extension-frontmatter@2.0.0:
+ dependencies:
+ fault: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-extension-gfm-autolink-literal@2.1.0:
+ dependencies:
+ micromark-util-character: 2.1.1
+ micromark-util-sanitize-uri: 2.0.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-extension-gfm-footnote@2.1.0:
+ dependencies:
+ devlop: 1.1.0
+ micromark-core-commonmark: 2.0.3
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-normalize-identifier: 2.0.1
+ micromark-util-sanitize-uri: 2.0.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-extension-gfm-strikethrough@2.1.0:
+ dependencies:
+ devlop: 1.1.0
+ micromark-util-chunked: 2.0.1
+ micromark-util-classify-character: 2.0.1
+ micromark-util-resolve-all: 2.0.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-extension-gfm-table@2.1.1:
+ dependencies:
+ devlop: 1.1.0
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-extension-gfm-tagfilter@2.0.0:
+ dependencies:
+ micromark-util-types: 2.0.2
+
+ micromark-extension-gfm-task-list-item@2.1.0:
+ dependencies:
+ devlop: 1.1.0
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-extension-gfm@3.0.0:
+ dependencies:
+ micromark-extension-gfm-autolink-literal: 2.1.0
+ micromark-extension-gfm-footnote: 2.1.0
+ micromark-extension-gfm-strikethrough: 2.1.0
+ micromark-extension-gfm-table: 2.1.1
+ micromark-extension-gfm-tagfilter: 2.0.0
+ micromark-extension-gfm-task-list-item: 2.1.0
+ micromark-util-combine-extensions: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-factory-destination@2.0.1:
+ dependencies:
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-factory-label@2.0.1:
+ dependencies:
+ devlop: 1.1.0
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-factory-space@2.0.1:
+ dependencies:
+ micromark-util-character: 2.1.1
+ micromark-util-types: 2.0.2
+
+ micromark-factory-title@2.0.1:
+ dependencies:
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-factory-whitespace@2.0.1:
+ dependencies:
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-util-character@2.1.1:
+ dependencies:
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-util-chunked@2.0.1:
+ dependencies:
+ micromark-util-symbol: 2.0.1
+
+ micromark-util-classify-character@2.0.1:
+ dependencies:
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-util-combine-extensions@2.0.1:
+ dependencies:
+ micromark-util-chunked: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-util-decode-numeric-character-reference@2.0.2:
+ dependencies:
+ micromark-util-symbol: 2.0.1
+
+ micromark-util-decode-string@2.0.1:
+ dependencies:
+ decode-named-character-reference: 1.1.0
+ micromark-util-character: 2.1.1
+ micromark-util-decode-numeric-character-reference: 2.0.2
+ micromark-util-symbol: 2.0.1
+
+ micromark-util-encode@2.0.1: {}
+
+ micromark-util-html-tag-name@2.0.1: {}
+
+ micromark-util-normalize-identifier@2.0.1:
+ dependencies:
+ micromark-util-symbol: 2.0.1
+
+ micromark-util-resolve-all@2.0.1:
+ dependencies:
+ micromark-util-types: 2.0.2
+
+ micromark-util-sanitize-uri@2.0.1:
+ dependencies:
+ micromark-util-character: 2.1.1
+ micromark-util-encode: 2.0.1
+ micromark-util-symbol: 2.0.1
+
+ micromark-util-subtokenize@2.1.0:
+ dependencies:
+ devlop: 1.1.0
+ micromark-util-chunked: 2.0.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-util-symbol@2.0.1: {}
+
+ micromark-util-types@2.0.2: {}
+
+ micromark@4.0.2:
+ dependencies:
+ '@types/debug': 4.1.12
+ debug: 4.4.3
+ decode-named-character-reference: 1.1.0
+ devlop: 1.1.0
+ micromark-core-commonmark: 2.0.3
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-chunked: 2.0.1
+ micromark-util-combine-extensions: 2.0.1
+ micromark-util-decode-numeric-character-reference: 2.0.2
+ micromark-util-encode: 2.0.1
+ micromark-util-normalize-identifier: 2.0.1
+ micromark-util-resolve-all: 2.0.1
+ micromark-util-sanitize-uri: 2.0.1
+ micromark-util-subtokenize: 2.1.0
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+ transitivePeerDependencies:
+ - supports-color
+
+ micromatch@3.1.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
+
+ micromatch@4.0.8:
+ dependencies:
+ braces: 3.0.3
+ picomatch: 2.3.1
+
+ mime-db@1.52.0: {}
+
+ mime-db@1.54.0:
+ optional: true
+
+ mime-types@2.1.35:
+ dependencies:
+ mime-db: 1.52.0
+
+ mime-types@3.0.1:
+ dependencies:
+ mime-db: 1.54.0
+ optional: true
+
+ mime@1.6.0: {}
+
+ mime@3.0.0:
+ optional: true
+
+ mime@4.0.7:
+ optional: true
+
+ mimic-fn@2.1.0: {}
+
+ mimic-fn@4.0.0:
+ optional: true
+
+ mimic-function@5.0.1: {}
+
+ minimatch@10.2.4:
+ dependencies:
+ brace-expansion: 5.0.4
+
+ minimatch@3.1.5:
+ dependencies:
+ brace-expansion: 1.1.11
+
+ minimatch@5.1.6:
+ dependencies:
+ brace-expansion: 2.0.1
+
+ minimatch@9.0.5:
+ dependencies:
+ brace-expansion: 2.0.1
+
+ minimist@1.2.8: {}
+
+ minipass@7.1.2: {}
+
+ minizlib@3.0.2:
+ dependencies:
+ minipass: 7.1.2
+ optional: true
+
+ mitt@3.0.1: {}
+
+ mixin-deep@1.3.2:
+ dependencies:
+ for-in: 1.0.2
+ is-extendable: 1.0.1
+
+ mkdirp@3.0.1:
+ optional: true
+
+ mlly@1.7.4:
+ dependencies:
+ acorn: 8.15.0
+ pathe: 2.0.3
+ pkg-types: 1.3.1
+ ufo: 1.6.1
+
+ mlly@1.8.0:
+ dependencies:
+ acorn: 8.15.0
+ pathe: 2.0.3
+ pkg-types: 1.3.1
+ ufo: 1.6.1
+
+ mocked-exports@0.1.1:
+ optional: true
+
+ module-definition@6.0.1:
+ dependencies:
+ ast-module-types: 6.0.1
+ node-source-walk: 7.0.1
+ optional: true
+
+ module-replacements@2.11.0: {}
+
+ mrmime@2.0.1: {}
+
+ ms@2.0.0: {}
+
+ ms@2.1.3: {}
+
+ muggle-string@0.4.1: {}
+
+ mutation-observer@1.0.3: {}
+
+ mute-stream@1.0.0: {}
+
+ nanoid@3.3.11: {}
+
+ nanoid@5.1.5:
+ optional: true
+
+ nanomatch@1.2.13:
+ 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
+
+ nanospinner@1.2.2:
+ dependencies:
+ picocolors: 1.1.1
+
+ nanotar@0.2.0:
+ optional: true
+
+ natural-compare@1.4.0: {}
+
+ natural-orderby@5.0.0: {}
+
+ neo-async@2.6.2: {}
+
+ netlify@13.3.5:
+ dependencies:
+ '@netlify/open-api': 2.37.0
+ lodash-es: 4.17.23
+ micro-api-client: 3.3.0
+ node-fetch: 3.3.2
+ p-wait-for: 5.0.2
+ qs: 6.15.0
+ optional: true
+
+ nitropack@2.12.4(@netlify/blobs@9.1.2):
+ dependencies:
+ '@cloudflare/kv-asset-handler': 0.4.0
+ '@netlify/functions': 3.1.10(rollup@4.46.2)
+ '@rollup/plugin-alias': 5.1.1(rollup@4.46.2)
+ '@rollup/plugin-commonjs': 28.0.6(rollup@4.46.2)
+ '@rollup/plugin-inject': 5.0.5(rollup@4.46.2)
+ '@rollup/plugin-json': 6.1.0(rollup@4.46.2)
+ '@rollup/plugin-node-resolve': 16.0.1(rollup@4.46.2)
+ '@rollup/plugin-replace': 6.0.2(rollup@4.46.2)
+ '@rollup/plugin-terser': 0.4.4(rollup@4.46.2)
+ '@vercel/nft': 0.29.4(rollup@4.46.2)
+ archiver: 7.0.1
+ c12: 3.3.3(magicast@0.3.5)
+ chokidar: 4.0.3
+ citty: 0.1.6
+ compatx: 0.2.0
+ confbox: 0.2.2
+ consola: 3.4.2
+ cookie-es: 2.0.0
+ croner: 9.1.0
+ crossws: 0.3.5
+ db0: 0.3.2
+ defu: 6.1.4
+ destr: 2.0.5
+ dot-prop: 9.0.0
+ esbuild: 0.25.9
+ escape-string-regexp: 5.0.0
+ etag: 1.8.1
+ exsolve: 1.0.8
+ globby: 14.1.0
+ gzip-size: 7.0.0
+ h3: 1.15.4
+ hookable: 5.5.3
+ httpxy: 0.1.7
+ ioredis: 5.7.0
+ jiti: 2.6.1
+ klona: 2.0.6
+ knitwork: 1.2.0
+ listhen: 1.9.0
+ magic-string: 0.30.21
+ magicast: 0.3.5
+ mime: 4.0.7
+ mlly: 1.8.0
+ node-fetch-native: 1.6.7
+ node-mock-http: 1.0.2
+ ofetch: 1.5.1
+ ohash: 2.0.11
+ pathe: 2.0.3
+ perfect-debounce: 1.0.0
+ pkg-types: 2.3.0
+ pretty-bytes: 6.1.1
+ radix3: 1.1.2
+ rollup: 4.46.2
+ rollup-plugin-visualizer: 6.0.3(rollup@4.46.2)
+ scule: 1.3.0
+ semver: 7.7.4
+ serve-placeholder: 2.0.2
+ serve-static: 2.2.0
+ source-map: 0.7.6
+ std-env: 3.9.0
+ ufo: 1.6.1
+ ultrahtml: 1.6.0
+ uncrypto: 0.1.3
+ unctx: 2.4.1
+ unenv: 2.0.0-rc.19
+ unimport: 5.7.0
+ unplugin-utils: 0.2.4
+ unstorage: 1.17.0(@netlify/blobs@9.1.2)(db0@0.3.2)(ioredis@5.7.0)
+ untyped: 2.0.0
+ unwasm: 0.3.11
+ youch: 4.1.0-beta.8
+ youch-core: 0.3.3
+ transitivePeerDependencies:
+ - '@azure/app-configuration'
+ - '@azure/cosmos'
+ - '@azure/data-tables'
+ - '@azure/identity'
+ - '@azure/keyvault-secrets'
+ - '@azure/storage-blob'
+ - '@capacitor/preferences'
+ - '@deno/kv'
+ - '@electric-sql/pglite'
+ - '@libsql/client'
+ - '@netlify/blobs'
+ - '@planetscale/database'
+ - '@upstash/redis'
+ - '@vercel/blob'
+ - '@vercel/functions'
+ - '@vercel/kv'
+ - aws4fetch
+ - better-sqlite3
+ - drizzle-orm
+ - encoding
+ - idb-keyval
+ - mysql2
+ - rolldown
+ - sqlite3
+ - supports-color
+ - uploadthing
+ optional: true
+
+ node-addon-api@7.1.1:
+ optional: true
+
+ node-domexception@1.0.0:
+ optional: true
+
+ node-fetch-native@1.6.7: {}
+
+ node-fetch@2.7.0:
+ dependencies:
+ whatwg-url: 5.0.0
+ optional: true
+
+ node-fetch@3.3.2:
+ dependencies:
+ data-uri-to-buffer: 4.0.1
+ fetch-blob: 3.2.0
+ formdata-polyfill: 4.0.10
+ optional: true
+
+ node-forge@1.3.1:
+ optional: true
+
+ node-gyp-build@4.8.4:
+ optional: true
+
+ node-mock-http@1.0.2: {}
+
+ node-plop@0.32.3(@types/node@22.15.30):
+ dependencies:
+ '@types/inquirer': 9.0.9
+ '@types/picomatch': 4.0.2
+ change-case: 5.4.4
+ dlv: 1.1.3
+ handlebars: 4.7.8
+ inquirer: 9.3.8(@types/node@22.15.30)
+ isbinaryfile: 5.0.6
+ resolve: 1.22.10
+ tinyglobby: 0.2.15
+ title-case: 4.3.2
+ transitivePeerDependencies:
+ - '@types/node'
+
+ node-releases@2.0.19: {}
+
+ node-releases@2.0.27: {}
+
+ node-source-walk@7.0.1:
+ dependencies:
+ '@babel/parser': 7.29.0
+ optional: true
+
+ nopt@8.1.0:
+ dependencies:
+ abbrev: 3.0.1
+ optional: true
+
+ normalize-package-data@6.0.2:
+ dependencies:
+ hosted-git-info: 7.0.2
+ semver: 7.7.4
+ validate-npm-package-license: 3.0.4
+ optional: true
+
+ normalize-path@2.1.1:
+ dependencies:
+ remove-trailing-separator: 1.1.0
+ optional: true
+
+ normalize-path@3.0.0: {}
+
+ normalize-wheel-es@1.2.0: {}
+
+ npm-normalize-package-bin@4.0.0: {}
+
+ npm-run-all2@8.0.4:
+ dependencies:
+ ansi-styles: 6.2.1
+ cross-spawn: 7.0.6
+ memorystream: 0.3.1
+ picomatch: 4.0.2
+ pidtree: 0.6.0
+ read-package-json-fast: 4.0.0
+ shell-quote: 1.8.3
+ which: 5.0.0
+
+ npm-run-path@5.3.0:
+ dependencies:
+ path-key: 4.0.0
+ optional: true
+
+ npm-run-path@6.0.0:
+ dependencies:
+ path-key: 4.0.0
+ unicorn-magic: 0.3.0
+ optional: true
+
+ nprogress@0.2.0: {}
+
+ nth-check@2.1.1:
+ dependencies:
+ boolbase: 1.0.0
+
+ nuxt@4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@22.15.30)(@vue/compiler-sfc@3.5.29)(db0@0.3.2)(eslint@9.39.4(jiti@2.6.1))(ioredis@5.7.0)(magicast@0.3.5)(meow@13.2.0)(optionator@0.9.4)(rollup@4.46.2)(sass-embedded@1.97.3)(sass@1.97.3)(stylelint@17.4.0(typescript@5.9.3))(terser@5.41.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))(vue-tsc@3.2.5(typescript@5.9.3))(yaml@2.8.2):
+ dependencies:
+ '@nuxt/cli': 3.28.0(magicast@0.3.5)
+ '@nuxt/devalue': 2.0.2
+ '@nuxt/devtools': 2.6.3(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.29(typescript@5.9.3))
+ '@nuxt/kit': 4.0.3(magicast@0.3.5)
+ '@nuxt/schema': 4.0.3
+ '@nuxt/telemetry': 2.6.6(magicast@0.3.5)
+ '@nuxt/vite-builder': 4.0.3(@types/node@22.15.30)(eslint@9.39.4(jiti@2.6.1))(magicast@0.3.5)(meow@13.2.0)(optionator@0.9.4)(rollup@4.46.2)(sass-embedded@1.97.3)(sass@1.97.3)(stylelint@17.4.0(typescript@5.9.3))(terser@5.41.0)(tsx@4.21.0)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3))(vue@3.5.29(typescript@5.9.3))(yaml@2.8.2)
+ '@unhead/vue': 2.0.14(vue@3.5.29(typescript@5.9.3))
+ '@vue/shared': 3.5.29
+ c12: 3.3.3(magicast@0.3.5)
+ chokidar: 4.0.3
+ compatx: 0.2.0
+ consola: 3.4.2
+ cookie-es: 2.0.0
+ defu: 6.1.4
+ destr: 2.0.5
+ devalue: 5.3.2
+ errx: 0.1.0
+ esbuild: 0.25.9
+ escape-string-regexp: 5.0.0
+ estree-walker: 3.0.3
+ exsolve: 1.0.8
+ h3: 1.15.4
+ hookable: 5.5.3
+ ignore: 7.0.5
+ impound: 1.0.0
+ jiti: 2.6.1
+ klona: 2.0.6
+ knitwork: 1.2.0
+ magic-string: 0.30.21
+ mlly: 1.8.0
+ mocked-exports: 0.1.1
+ nanotar: 0.2.0
+ nitropack: 2.12.4(@netlify/blobs@9.1.2)
+ nypm: 0.6.1
+ ofetch: 1.5.1
+ ohash: 2.0.11
+ on-change: 5.0.1
+ oxc-minify: 0.80.0
+ oxc-parser: 0.80.0
+ oxc-transform: 0.80.0
+ oxc-walker: 0.4.0(oxc-parser@0.80.0)
+ pathe: 2.0.3
+ perfect-debounce: 1.0.0
+ pkg-types: 2.3.0
+ radix3: 1.1.2
+ scule: 1.3.0
+ semver: 7.7.4
+ std-env: 3.9.0
+ strip-literal: 3.1.0
+ tinyglobby: 0.2.14
+ ufo: 1.6.1
+ ultrahtml: 1.6.0
+ uncrypto: 0.1.3
+ unctx: 2.4.1
+ unimport: 5.7.0
+ unplugin: 2.3.11
+ unplugin-vue-router: 0.15.0(@vue/compiler-sfc@3.5.29)(vue-router@4.6.4(vue@3.5.29(typescript@5.9.3)))(vue@3.5.29(typescript@5.9.3))
+ unstorage: 1.17.0(@netlify/blobs@9.1.2)(db0@0.3.2)(ioredis@5.7.0)
+ untyped: 2.0.0
+ vue: 3.5.29(typescript@5.9.3)
+ vue-bundle-renderer: 2.1.2
+ vue-devtools-stub: 0.1.0
+ vue-router: 4.6.4(vue@3.5.29(typescript@5.9.3))
+ optionalDependencies:
+ '@parcel/watcher': 2.5.1
+ '@types/node': 22.15.30
+ transitivePeerDependencies:
+ - '@azure/app-configuration'
+ - '@azure/cosmos'
+ - '@azure/data-tables'
+ - '@azure/identity'
+ - '@azure/keyvault-secrets'
+ - '@azure/storage-blob'
+ - '@biomejs/biome'
+ - '@capacitor/preferences'
+ - '@deno/kv'
+ - '@electric-sql/pglite'
+ - '@libsql/client'
+ - '@netlify/blobs'
+ - '@planetscale/database'
+ - '@upstash/redis'
+ - '@vercel/blob'
+ - '@vercel/functions'
+ - '@vercel/kv'
+ - '@vue/compiler-sfc'
+ - aws4fetch
+ - better-sqlite3
+ - bufferutil
+ - db0
+ - drizzle-orm
+ - encoding
+ - eslint
+ - idb-keyval
+ - ioredis
+ - less
+ - lightningcss
+ - magicast
+ - meow
+ - mysql2
+ - optionator
+ - rolldown
+ - rollup
+ - sass
+ - sass-embedded
+ - sqlite3
+ - stylelint
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
+ - tsx
+ - typescript
+ - uploadthing
+ - utf-8-validate
+ - vite
+ - vls
+ - vti
+ - vue-tsc
+ - xml2js
+ - yaml
+ optional: true
+
+ nypm@0.6.1:
+ dependencies:
+ citty: 0.1.6
+ consola: 3.4.2
+ pathe: 2.0.3
+ pkg-types: 2.3.0
+ tinyexec: 1.0.2
+
+ object-assign@4.1.1: {}
+
+ object-copy@0.1.0:
+ dependencies:
+ copy-descriptor: 0.1.1
+ define-property: 0.2.5
+ kind-of: 3.2.2
+
+ object-deep-merge@2.0.0: {}
+
+ object-inspect@1.13.4: {}
+
+ object-keys@1.1.1: {}
+
+ object-visit@1.0.1:
+ dependencies:
+ isobject: 3.0.1
+
+ object.assign@4.1.7:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ define-properties: 1.2.1
+ es-object-atoms: 1.1.1
+ has-symbols: 1.1.0
+ object-keys: 1.1.1
+
+ object.defaults@1.1.0:
+ dependencies:
+ array-each: 1.0.1
+ array-slice: 1.1.0
+ for-own: 1.0.0
+ isobject: 3.0.1
+
+ object.pick@1.3.0:
+ dependencies:
+ isobject: 3.0.1
+
+ obug@2.1.1: {}
+
+ ofetch@1.5.1:
+ dependencies:
+ destr: 2.0.5
+ node-fetch-native: 1.6.7
+ ufo: 1.6.1
+
+ ohash@2.0.11: {}
+
+ on-change@5.0.1:
+ optional: true
+
+ on-finished@2.4.1:
+ dependencies:
+ ee-first: 1.1.1
+ optional: true
+
+ once@1.4.0:
+ dependencies:
+ wrappy: 1.0.2
+ optional: true
+
+ one-time@1.0.0:
+ dependencies:
+ fn.name: 1.1.0
+ optional: true
+
+ onetime@5.1.2:
+ dependencies:
+ mimic-fn: 2.1.0
+
+ onetime@6.0.0:
+ dependencies:
+ mimic-fn: 4.0.0
+ optional: true
+
+ onetime@7.0.0:
+ dependencies:
+ mimic-function: 5.0.1
+
+ open@10.1.2:
+ dependencies:
+ default-browser: 5.2.1
+ define-lazy-prop: 3.0.0
+ is-inside-container: 1.0.0
+ is-wsl: 3.1.0
+
+ open@10.2.0:
+ dependencies:
+ default-browser: 5.2.1
+ define-lazy-prop: 3.0.0
+ is-inside-container: 1.0.0
+ wsl-utils: 0.1.0
+
+ open@8.4.2:
+ dependencies:
+ define-lazy-prop: 2.0.0
+ is-docker: 2.2.1
+ is-wsl: 2.2.0
+ optional: true
+
+ opener@1.5.2: {}
+
+ optionator@0.9.4:
+ dependencies:
+ deep-is: 0.1.4
+ fast-levenshtein: 2.0.6
+ levn: 0.4.1
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+ word-wrap: 1.2.5
+
+ ora@5.4.1:
+ dependencies:
+ bl: 4.1.0
+ chalk: 4.1.2
+ cli-cursor: 3.1.0
+ cli-spinners: 2.9.2
+ 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
+
+ own-keys@1.0.1:
+ dependencies:
+ get-intrinsic: 1.3.0
+ object-keys: 1.1.1
+ safe-push-apply: 1.0.0
+
+ oxc-minify@0.80.0:
+ optionalDependencies:
+ '@oxc-minify/binding-android-arm64': 0.80.0
+ '@oxc-minify/binding-darwin-arm64': 0.80.0
+ '@oxc-minify/binding-darwin-x64': 0.80.0
+ '@oxc-minify/binding-freebsd-x64': 0.80.0
+ '@oxc-minify/binding-linux-arm-gnueabihf': 0.80.0
+ '@oxc-minify/binding-linux-arm-musleabihf': 0.80.0
+ '@oxc-minify/binding-linux-arm64-gnu': 0.80.0
+ '@oxc-minify/binding-linux-arm64-musl': 0.80.0
+ '@oxc-minify/binding-linux-riscv64-gnu': 0.80.0
+ '@oxc-minify/binding-linux-s390x-gnu': 0.80.0
+ '@oxc-minify/binding-linux-x64-gnu': 0.80.0
+ '@oxc-minify/binding-linux-x64-musl': 0.80.0
+ '@oxc-minify/binding-wasm32-wasi': 0.80.0
+ '@oxc-minify/binding-win32-arm64-msvc': 0.80.0
+ '@oxc-minify/binding-win32-x64-msvc': 0.80.0
+ optional: true
+
+ oxc-parser@0.115.0:
+ dependencies:
+ '@oxc-project/types': 0.115.0
+ optionalDependencies:
+ '@oxc-parser/binding-android-arm-eabi': 0.115.0
+ '@oxc-parser/binding-android-arm64': 0.115.0
+ '@oxc-parser/binding-darwin-arm64': 0.115.0
+ '@oxc-parser/binding-darwin-x64': 0.115.0
+ '@oxc-parser/binding-freebsd-x64': 0.115.0
+ '@oxc-parser/binding-linux-arm-gnueabihf': 0.115.0
+ '@oxc-parser/binding-linux-arm-musleabihf': 0.115.0
+ '@oxc-parser/binding-linux-arm64-gnu': 0.115.0
+ '@oxc-parser/binding-linux-arm64-musl': 0.115.0
+ '@oxc-parser/binding-linux-ppc64-gnu': 0.115.0
+ '@oxc-parser/binding-linux-riscv64-gnu': 0.115.0
+ '@oxc-parser/binding-linux-riscv64-musl': 0.115.0
+ '@oxc-parser/binding-linux-s390x-gnu': 0.115.0
+ '@oxc-parser/binding-linux-x64-gnu': 0.115.0
+ '@oxc-parser/binding-linux-x64-musl': 0.115.0
+ '@oxc-parser/binding-openharmony-arm64': 0.115.0
+ '@oxc-parser/binding-wasm32-wasi': 0.115.0
+ '@oxc-parser/binding-win32-arm64-msvc': 0.115.0
+ '@oxc-parser/binding-win32-ia32-msvc': 0.115.0
+ '@oxc-parser/binding-win32-x64-msvc': 0.115.0
+
+ oxc-parser@0.80.0:
+ dependencies:
+ '@oxc-project/types': 0.80.0
+ optionalDependencies:
+ '@oxc-parser/binding-android-arm64': 0.80.0
+ '@oxc-parser/binding-darwin-arm64': 0.80.0
+ '@oxc-parser/binding-darwin-x64': 0.80.0
+ '@oxc-parser/binding-freebsd-x64': 0.80.0
+ '@oxc-parser/binding-linux-arm-gnueabihf': 0.80.0
+ '@oxc-parser/binding-linux-arm-musleabihf': 0.80.0
+ '@oxc-parser/binding-linux-arm64-gnu': 0.80.0
+ '@oxc-parser/binding-linux-arm64-musl': 0.80.0
+ '@oxc-parser/binding-linux-riscv64-gnu': 0.80.0
+ '@oxc-parser/binding-linux-s390x-gnu': 0.80.0
+ '@oxc-parser/binding-linux-x64-gnu': 0.80.0
+ '@oxc-parser/binding-linux-x64-musl': 0.80.0
+ '@oxc-parser/binding-wasm32-wasi': 0.80.0
+ '@oxc-parser/binding-win32-arm64-msvc': 0.80.0
+ '@oxc-parser/binding-win32-x64-msvc': 0.80.0
+ optional: true
+
+ oxc-parser@0.82.3:
+ dependencies:
+ '@oxc-project/types': 0.82.3
+ optionalDependencies:
+ '@oxc-parser/binding-android-arm64': 0.82.3
+ '@oxc-parser/binding-darwin-arm64': 0.82.3
+ '@oxc-parser/binding-darwin-x64': 0.82.3
+ '@oxc-parser/binding-freebsd-x64': 0.82.3
+ '@oxc-parser/binding-linux-arm-gnueabihf': 0.82.3
+ '@oxc-parser/binding-linux-arm-musleabihf': 0.82.3
+ '@oxc-parser/binding-linux-arm64-gnu': 0.82.3
+ '@oxc-parser/binding-linux-arm64-musl': 0.82.3
+ '@oxc-parser/binding-linux-riscv64-gnu': 0.82.3
+ '@oxc-parser/binding-linux-s390x-gnu': 0.82.3
+ '@oxc-parser/binding-linux-x64-gnu': 0.82.3
+ '@oxc-parser/binding-linux-x64-musl': 0.82.3
+ '@oxc-parser/binding-wasm32-wasi': 0.82.3
+ '@oxc-parser/binding-win32-arm64-msvc': 0.82.3
+ '@oxc-parser/binding-win32-x64-msvc': 0.82.3
+
+ oxc-transform@0.80.0:
+ optionalDependencies:
+ '@oxc-transform/binding-android-arm64': 0.80.0
+ '@oxc-transform/binding-darwin-arm64': 0.80.0
+ '@oxc-transform/binding-darwin-x64': 0.80.0
+ '@oxc-transform/binding-freebsd-x64': 0.80.0
+ '@oxc-transform/binding-linux-arm-gnueabihf': 0.80.0
+ '@oxc-transform/binding-linux-arm-musleabihf': 0.80.0
+ '@oxc-transform/binding-linux-arm64-gnu': 0.80.0
+ '@oxc-transform/binding-linux-arm64-musl': 0.80.0
+ '@oxc-transform/binding-linux-riscv64-gnu': 0.80.0
+ '@oxc-transform/binding-linux-s390x-gnu': 0.80.0
+ '@oxc-transform/binding-linux-x64-gnu': 0.80.0
+ '@oxc-transform/binding-linux-x64-musl': 0.80.0
+ '@oxc-transform/binding-wasm32-wasi': 0.80.0
+ '@oxc-transform/binding-win32-arm64-msvc': 0.80.0
+ '@oxc-transform/binding-win32-x64-msvc': 0.80.0
+ optional: true
+
+ oxc-walker@0.4.0(oxc-parser@0.80.0):
+ dependencies:
+ estree-walker: 3.0.3
+ magic-regexp: 0.10.0
+ oxc-parser: 0.80.0
+ optional: true
+
+ oxc-walker@0.7.0(oxc-parser@0.115.0):
+ dependencies:
+ magic-regexp: 0.10.0
+ oxc-parser: 0.115.0
+
+ p-event@6.0.1:
+ dependencies:
+ p-timeout: 6.1.4
+ optional: true
+
+ p-limit@3.1.0:
+ dependencies:
+ yocto-queue: 0.1.0
+
+ p-limit@4.0.0:
+ dependencies:
+ yocto-queue: 1.2.1
+ optional: true
+
+ p-locate@5.0.0:
+ dependencies:
+ p-limit: 3.1.0
+
+ p-locate@6.0.0:
+ dependencies:
+ p-limit: 4.0.0
+ optional: true
+
+ p-map@7.0.3:
+ optional: true
+
+ p-timeout@6.1.4:
+ optional: true
+
+ p-wait-for@5.0.2:
+ dependencies:
+ p-timeout: 6.1.4
+ optional: true
+
+ package-json-from-dist@1.0.1: {}
+
+ package-manager-detector@1.6.0: {}
+
+ parent-module@1.0.1:
+ dependencies:
+ callsites: 3.1.0
+
+ parse-code-context@1.0.0: {}
+
+ parse-filepath@1.0.2:
+ dependencies:
+ is-absolute: 1.0.0
+ map-cache: 0.2.2
+ path-root: 0.1.1
+
+ parse-gitignore@2.0.0: {}
+
+ parse-imports-exports@0.2.4:
+ dependencies:
+ parse-statements: 1.0.11
+
+ parse-json@5.2.0:
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ error-ex: 1.3.2
+ json-parse-even-better-errors: 2.3.1
+ lines-and-columns: 1.2.4
+
+ parse-json@8.3.0:
+ dependencies:
+ '@babel/code-frame': 7.29.0
+ index-to-position: 1.1.0
+ type-fest: 4.41.0
+ optional: true
+
+ parse-passwd@1.0.0: {}
+
+ parse-path@7.1.0:
+ dependencies:
+ protocols: 2.0.2
+ optional: true
+
+ parse-statements@1.0.11: {}
+
+ parse-url@9.2.0:
+ dependencies:
+ '@types/parse-path': 7.1.0
+ parse-path: 7.1.0
+ optional: true
+
+ parseurl@1.3.3:
+ optional: true
+
+ pascalcase@0.1.1: {}
+
+ path-browserify@1.0.1: {}
+
+ path-exists@4.0.0: {}
+
+ path-exists@5.0.0:
+ optional: true
+
+ path-key@3.1.1: {}
+
+ path-key@4.0.0:
+ optional: true
+
+ path-parse@1.0.7: {}
+
+ path-root-regex@0.1.2: {}
+
+ path-root@0.1.1:
+ dependencies:
+ path-root-regex: 0.1.2
+
+ path-scurry@1.11.1:
+ dependencies:
+ lru-cache: 10.4.3
+ minipass: 7.1.2
+
+ path-to-regexp@8.3.0: {}
+
+ path-type@6.0.0:
+ optional: true
+
+ pathe@0.2.0: {}
+
+ pathe@1.1.2:
+ optional: true
+
+ pathe@2.0.3: {}
+
+ pend@1.2.0:
+ optional: true
+
+ perfect-debounce@1.0.0: {}
+
+ perfect-debounce@2.0.0: {}
+
+ perfect-debounce@2.1.0: {}
+
+ picocolors@1.1.1: {}
+
+ picomatch@2.3.1: {}
+
+ picomatch@4.0.2: {}
+
+ picomatch@4.0.3: {}
+
+ pidtree@0.6.0: {}
+
+ pinia@3.0.4(typescript@5.9.3)(vue@3.5.29(typescript@5.9.3)):
+ dependencies:
+ '@vue/devtools-api': 7.7.7
+ vue: 3.5.29(typescript@5.9.3)
+ optionalDependencies:
+ typescript: 5.9.3
+
+ pkg-types@1.3.1:
+ dependencies:
+ confbox: 0.1.8
+ mlly: 1.7.4
+ pathe: 2.0.3
+
+ pkg-types@2.3.0:
+ dependencies:
+ confbox: 0.2.2
+ exsolve: 1.0.8
+ pathe: 2.0.3
+
+ plop@4.0.5(@types/node@22.15.30):
+ dependencies:
+ '@types/liftoff': 4.0.3
+ interpret: 3.1.1
+ liftoff: 5.0.1
+ nanospinner: 1.2.2
+ node-plop: 0.32.3(@types/node@22.15.30)
+ picocolors: 1.1.1
+ v8flags: 4.0.1
+ transitivePeerDependencies:
+ - '@types/node'
+
+ pluralize@8.0.0: {}
+
+ pnpm-workspace-yaml@1.6.0:
+ dependencies:
+ yaml: 2.8.2
+
+ portfinder@1.0.37:
+ dependencies:
+ async: 3.2.6
+ debug: 4.4.1
+ transitivePeerDependencies:
+ - supports-color
+
+ posix-character-classes@0.1.1: {}
+
+ possible-typed-array-names@1.1.0: {}
+
+ postcss-calc@10.1.1(postcss@8.5.8):
+ dependencies:
+ postcss: 8.5.8
+ postcss-selector-parser: 7.1.1
+ postcss-value-parser: 4.2.0
+ optional: true
+
+ postcss-colormin@7.0.4(postcss@8.5.8):
+ dependencies:
+ browserslist: 4.28.1
+ caniuse-api: 3.0.0
+ colord: 2.9.3
+ postcss: 8.5.8
+ postcss-value-parser: 4.2.0
+ optional: true
+
+ postcss-convert-values@7.0.7(postcss@8.5.8):
+ dependencies:
+ browserslist: 4.28.1
+ postcss: 8.5.8
+ postcss-value-parser: 4.2.0
+ optional: true
+
+ postcss-discard-comments@7.0.4(postcss@8.5.8):
+ dependencies:
+ postcss: 8.5.8
+ postcss-selector-parser: 7.1.1
+ optional: true
+
+ postcss-discard-duplicates@7.0.2(postcss@8.5.8):
+ dependencies:
+ postcss: 8.5.8
+ optional: true
+
+ postcss-discard-empty@7.0.1(postcss@8.5.8):
+ dependencies:
+ postcss: 8.5.8
+ optional: true
+
+ postcss-discard-overridden@7.0.1(postcss@8.5.8):
+ dependencies:
+ postcss: 8.5.8
+ optional: true
+
+ postcss-html@1.8.0:
+ dependencies:
+ htmlparser2: 8.0.2
+ js-tokens: 9.0.1
+ postcss: 8.5.8
+ postcss-safe-parser: 6.0.0(postcss@8.5.8)
+
+ postcss-media-query-parser@0.2.3: {}
+
+ postcss-merge-longhand@7.0.5(postcss@8.5.8):
+ dependencies:
+ postcss: 8.5.8
+ postcss-value-parser: 4.2.0
+ stylehacks: 7.0.6(postcss@8.5.8)
+ optional: true
+
+ postcss-merge-rules@7.0.6(postcss@8.5.8):
+ dependencies:
+ browserslist: 4.28.1
+ caniuse-api: 3.0.0
+ cssnano-utils: 5.0.1(postcss@8.5.8)
+ postcss: 8.5.8
+ postcss-selector-parser: 7.1.1
+ optional: true
+
+ postcss-minify-font-values@7.0.1(postcss@8.5.8):
+ dependencies:
+ postcss: 8.5.8
+ postcss-value-parser: 4.2.0
+ optional: true
+
+ postcss-minify-gradients@7.0.1(postcss@8.5.8):
+ dependencies:
+ colord: 2.9.3
+ cssnano-utils: 5.0.1(postcss@8.5.8)
+ postcss: 8.5.8
+ postcss-value-parser: 4.2.0
+ optional: true
+
+ postcss-minify-params@7.0.4(postcss@8.5.8):
+ dependencies:
+ browserslist: 4.28.1
+ cssnano-utils: 5.0.1(postcss@8.5.8)
+ postcss: 8.5.8
+ postcss-value-parser: 4.2.0
+ optional: true
+
+ postcss-minify-selectors@7.0.5(postcss@8.5.8):
+ dependencies:
+ cssesc: 3.0.0
+ postcss: 8.5.8
+ postcss-selector-parser: 7.1.1
+ optional: true
+
+ postcss-nested@7.0.2(postcss@8.5.8):
+ dependencies:
+ postcss: 8.5.8
+ postcss-selector-parser: 7.1.0
+
+ postcss-normalize-charset@7.0.1(postcss@8.5.8):
+ dependencies:
+ postcss: 8.5.8
+ optional: true
+
+ postcss-normalize-display-values@7.0.1(postcss@8.5.8):
+ dependencies:
+ postcss: 8.5.8
+ postcss-value-parser: 4.2.0
+ optional: true
+
+ postcss-normalize-positions@7.0.1(postcss@8.5.8):
+ dependencies:
+ postcss: 8.5.8
+ postcss-value-parser: 4.2.0
+ optional: true
+
+ postcss-normalize-repeat-style@7.0.1(postcss@8.5.8):
+ dependencies:
+ postcss: 8.5.8
+ postcss-value-parser: 4.2.0
+ optional: true
+
+ postcss-normalize-string@7.0.1(postcss@8.5.8):
+ dependencies:
+ postcss: 8.5.8
+ postcss-value-parser: 4.2.0
+ optional: true
+
+ postcss-normalize-timing-functions@7.0.1(postcss@8.5.8):
+ dependencies:
+ postcss: 8.5.8
+ postcss-value-parser: 4.2.0
+ optional: true
+
+ postcss-normalize-unicode@7.0.4(postcss@8.5.8):
+ dependencies:
+ browserslist: 4.28.1
+ postcss: 8.5.8
+ postcss-value-parser: 4.2.0
+ optional: true
+
+ postcss-normalize-url@7.0.1(postcss@8.5.8):
+ dependencies:
+ postcss: 8.5.8
+ postcss-value-parser: 4.2.0
+ optional: true
+
+ postcss-normalize-whitespace@7.0.1(postcss@8.5.8):
+ dependencies:
+ postcss: 8.5.8
+ postcss-value-parser: 4.2.0
+ optional: true
+
+ postcss-ordered-values@7.0.2(postcss@8.5.8):
+ dependencies:
+ cssnano-utils: 5.0.1(postcss@8.5.8)
+ postcss: 8.5.8
+ postcss-value-parser: 4.2.0
+ optional: true
+
+ postcss-prefix-selector@1.16.1(postcss@5.2.18):
+ dependencies:
+ postcss: 5.2.18
+
+ postcss-reduce-initial@7.0.4(postcss@8.5.8):
+ dependencies:
+ browserslist: 4.28.1
+ caniuse-api: 3.0.0
+ postcss: 8.5.8
+ optional: true
+
+ postcss-reduce-transforms@7.0.1(postcss@8.5.8):
+ dependencies:
+ postcss: 8.5.8
+ postcss-value-parser: 4.2.0
+ optional: true
+
+ postcss-resolve-nested-selector@0.1.6: {}
+
+ postcss-safe-parser@6.0.0(postcss@8.5.8):
+ dependencies:
+ postcss: 8.5.8
+
+ postcss-safe-parser@7.0.1(postcss@8.5.8):
+ dependencies:
+ postcss: 8.5.8
+
+ postcss-scss@4.0.9(postcss@8.5.8):
+ dependencies:
+ postcss: 8.5.8
+
+ postcss-selector-parser@7.1.0:
+ dependencies:
+ cssesc: 3.0.0
+ util-deprecate: 1.0.2
+
+ postcss-selector-parser@7.1.1:
+ dependencies:
+ cssesc: 3.0.0
+ util-deprecate: 1.0.2
+
+ postcss-sorting@8.0.2(postcss@8.5.8):
+ dependencies:
+ postcss: 8.5.8
+
+ postcss-svgo@7.1.0(postcss@8.5.8):
+ dependencies:
+ postcss: 8.5.8
+ postcss-value-parser: 4.2.0
+ svgo: 4.0.1
+ optional: true
+
+ postcss-unique-selectors@7.0.4(postcss@8.5.8):
+ dependencies:
+ postcss: 8.5.8
+ postcss-selector-parser: 7.1.1
+ optional: true
+
+ postcss-value-parser@4.2.0: {}
+
+ postcss-values-parser@6.0.2(postcss@8.5.8):
+ dependencies:
+ color-name: 1.1.4
+ is-url-superb: 4.0.0
+ postcss: 8.5.8
+ quote-unquote: 1.0.0
+ optional: true
+
+ postcss@5.2.18:
+ dependencies:
+ chalk: 1.1.3
+ js-base64: 2.6.4
+ source-map: 0.5.7
+ supports-color: 3.2.3
+
+ postcss@8.5.8:
+ dependencies:
+ nanoid: 3.3.11
+ picocolors: 1.1.1
+ source-map-js: 1.2.1
+
+ posthtml-parser@0.2.1:
+ dependencies:
+ htmlparser2: 3.10.1
+ isobject: 2.1.0
+
+ posthtml-rename-id@1.0.12:
+ dependencies:
+ escape-string-regexp: 1.0.5
+
+ posthtml-render@1.4.0: {}
+
+ posthtml-svg-mode@1.0.3:
+ dependencies:
+ merge-options: 1.0.1
+ posthtml: 0.9.2
+ posthtml-parser: 0.2.1
+ posthtml-render: 1.4.0
+
+ posthtml@0.9.2:
+ dependencies:
+ posthtml-parser: 0.2.1
+ posthtml-render: 1.4.0
+
+ precinct@12.2.0:
+ dependencies:
+ '@dependents/detective-less': 5.0.1
+ commander: 12.1.0
+ detective-amd: 6.0.1
+ detective-cjs: 6.0.1
+ detective-es6: 5.0.1
+ detective-postcss: 7.0.1(postcss@8.5.8)
+ detective-sass: 6.0.1
+ detective-scss: 5.0.1
+ detective-stylus: 5.0.1
+ detective-typescript: 14.0.0(typescript@5.9.3)
+ detective-vue2: 2.2.0(typescript@5.9.3)
+ module-definition: 6.0.1
+ node-source-walk: 7.0.1
+ postcss: 8.5.8
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+ optional: true
+
+ prelude-ls@1.2.1: {}
+
+ pretty-bytes@6.1.1:
+ optional: true
+
+ process-nextick-args@2.0.1: {}
+
+ process@0.11.10: {}
+
+ prompts@2.4.2:
+ dependencies:
+ kleur: 3.0.3
+ sisteransi: 1.0.5
+ optional: true
+
+ protocols@2.0.2:
+ optional: true
+
+ proxy-from-env@1.1.0: {}
+
+ pump@3.0.3:
+ dependencies:
+ end-of-stream: 1.4.5
+ once: 1.4.0
+ optional: true
+
+ punycode@2.3.1: {}
+
+ qified@0.6.0:
+ dependencies:
+ hookified: 1.15.1
+
+ qs@6.15.0:
+ dependencies:
+ side-channel: 1.1.0
+
+ quansync@0.2.11: {}
+
+ quansync@1.0.0: {}
+
+ query-string@4.3.4:
+ dependencies:
+ object-assign: 4.1.1
+ strict-uri-encode: 1.1.0
+
+ queue-microtask@1.2.3: {}
+
+ quote-unquote@1.0.0:
+ optional: true
+
+ radix3@1.1.2: {}
+
+ randombytes@2.1.0:
+ dependencies:
+ safe-buffer: 5.2.1
+ optional: true
+
+ range-parser@1.2.1:
+ optional: true
+
+ rc9@2.1.2:
+ dependencies:
+ defu: 6.1.4
+ destr: 2.0.5
+
+ read-package-json-fast@4.0.0:
+ dependencies:
+ json-parse-even-better-errors: 4.0.0
+ npm-normalize-package-bin: 4.0.0
+
+ read-package-up@11.0.0:
+ dependencies:
+ find-up-simple: 1.0.1
+ read-pkg: 9.0.1
+ type-fest: 4.41.0
+ optional: true
+
+ read-pkg@9.0.1:
+ dependencies:
+ '@types/normalize-package-data': 2.4.4
+ normalize-package-data: 6.0.2
+ parse-json: 8.3.0
+ type-fest: 4.41.0
+ unicorn-magic: 0.1.0
+ optional: true
+
+ readable-stream@2.3.8:
+ dependencies:
+ core-util-is: 1.0.3
+ inherits: 2.0.4
+ isarray: 1.0.0
+ process-nextick-args: 2.0.1
+ safe-buffer: 5.1.2
+ string_decoder: 1.1.1
+ util-deprecate: 1.0.2
+
+ readable-stream@3.6.2:
+ dependencies:
+ inherits: 2.0.4
+ string_decoder: 1.3.0
+ util-deprecate: 1.0.2
+
+ readable-stream@4.7.0:
+ dependencies:
+ abort-controller: 3.0.0
+ buffer: 6.0.3
+ events: 3.3.0
+ process: 0.11.10
+ string_decoder: 1.3.0
+
+ readdir-glob@1.1.3:
+ dependencies:
+ minimatch: 5.1.6
+
+ readdirp@4.1.2: {}
+
+ readdirp@5.0.0: {}
+
+ rechoir@0.8.0:
+ dependencies:
+ resolve: 1.22.10
+
+ redis-errors@1.2.0:
+ optional: true
+
+ redis-parser@3.0.0:
+ dependencies:
+ redis-errors: 1.2.0
+ optional: true
+
+ refa@0.12.1:
+ dependencies:
+ '@eslint-community/regexpp': 4.12.2
+
+ reflect.getprototypeof@1.0.10:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-abstract: 1.24.0
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.1
+ get-intrinsic: 1.3.0
+ get-proto: 1.0.1
+ which-builtin-type: 1.2.1
+
+ regenerate-unicode-properties@10.2.0:
+ dependencies:
+ regenerate: 1.4.2
+
+ regenerate@1.4.2: {}
+
+ regenerator-runtime@0.14.1: {}
+
+ regex-not@1.0.2:
+ dependencies:
+ extend-shallow: 3.0.2
+ safe-regex: 1.1.0
+
+ regexp-ast-analysis@0.7.1:
+ dependencies:
+ '@eslint-community/regexpp': 4.12.2
+ refa: 0.12.1
+
+ regexp-tree@0.1.27: {}
+
+ regexp.prototype.flags@1.5.4:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-errors: 1.3.0
+ get-proto: 1.0.1
+ gopd: 1.2.0
+ set-function-name: 2.0.2
+
+ regexpu-core@6.2.0:
+ dependencies:
+ regenerate: 1.4.2
+ regenerate-unicode-properties: 10.2.0
+ regjsgen: 0.8.0
+ regjsparser: 0.12.0
+ unicode-match-property-ecmascript: 2.0.0
+ unicode-match-property-value-ecmascript: 2.2.0
+
+ regjsgen@0.8.0: {}
+
+ regjsparser@0.12.0:
+ dependencies:
+ jsesc: 3.0.2
+
+ regjsparser@0.13.0:
+ dependencies:
+ jsesc: 3.1.0
+
+ reka-ui@2.9.0(vue@3.5.29(typescript@5.9.3)):
+ dependencies:
+ '@floating-ui/dom': 1.7.1
+ '@floating-ui/vue': 1.1.6(vue@3.5.29(typescript@5.9.3))
+ '@internationalized/date': 3.8.2
+ '@internationalized/number': 3.6.3
+ '@tanstack/vue-virtual': 3.13.9(vue@3.5.29(typescript@5.9.3))
+ '@vueuse/core': 14.2.1(vue@3.5.29(typescript@5.9.3))
+ '@vueuse/shared': 14.2.1(vue@3.5.29(typescript@5.9.3))
+ aria-hidden: 1.2.6
+ defu: 6.1.4
+ ohash: 2.0.11
+ vue: 3.5.29(typescript@5.9.3)
+ transitivePeerDependencies:
+ - '@vue/composition-api'
+
+ remove-trailing-separator@1.1.0:
+ optional: true
+
+ repeat-element@1.1.4: {}
+
+ repeat-string@1.6.1: {}
+
+ require-directory@2.1.1:
+ optional: true
+
+ require-from-string@2.0.2: {}
+
+ require-package-name@2.0.1:
+ optional: true
+
+ requires-port@1.0.0: {}
+
+ reserved-identifiers@1.2.0: {}
+
+ resolve-dir@1.0.1:
+ dependencies:
+ expand-tilde: 2.0.2
+ global-modules: 1.0.0
+
+ resolve-from@4.0.0: {}
+
+ resolve-from@5.0.0:
+ optional: true
+
+ resolve-pkg-maps@1.0.0: {}
+
+ resolve-url@0.2.1: {}
+
+ resolve@1.22.10:
+ dependencies:
+ is-core-module: 2.16.1
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+
+ resolve@2.0.0-next.5:
+ dependencies:
+ is-core-module: 2.16.1
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+ optional: true
+
+ restore-cursor@3.1.0:
+ dependencies:
+ onetime: 5.1.2
+ signal-exit: 3.0.7
+
+ restore-cursor@5.1.0:
+ dependencies:
+ onetime: 7.0.0
+ signal-exit: 4.1.0
+
+ ret@0.1.15: {}
+
+ reusify@1.1.0: {}
+
+ rfdc@1.4.1: {}
+
+ rollup-plugin-visualizer@6.0.3(rollup@4.46.2):
+ dependencies:
+ open: 8.4.2
+ picomatch: 4.0.3
+ source-map: 0.7.6
+ yargs: 17.7.2
+ optionalDependencies:
+ rollup: 4.46.2
+ optional: true
+
+ rollup@4.46.2:
+ dependencies:
+ '@types/estree': 1.0.8
+ optionalDependencies:
+ '@rollup/rollup-android-arm-eabi': 4.46.2
+ '@rollup/rollup-android-arm64': 4.46.2
+ '@rollup/rollup-darwin-arm64': 4.46.2
+ '@rollup/rollup-darwin-x64': 4.46.2
+ '@rollup/rollup-freebsd-arm64': 4.46.2
+ '@rollup/rollup-freebsd-x64': 4.46.2
+ '@rollup/rollup-linux-arm-gnueabihf': 4.46.2
+ '@rollup/rollup-linux-arm-musleabihf': 4.46.2
+ '@rollup/rollup-linux-arm64-gnu': 4.46.2
+ '@rollup/rollup-linux-arm64-musl': 4.46.2
+ '@rollup/rollup-linux-loongarch64-gnu': 4.46.2
+ '@rollup/rollup-linux-ppc64-gnu': 4.46.2
+ '@rollup/rollup-linux-riscv64-gnu': 4.46.2
+ '@rollup/rollup-linux-riscv64-musl': 4.46.2
+ '@rollup/rollup-linux-s390x-gnu': 4.46.2
+ '@rollup/rollup-linux-x64-gnu': 4.46.2
+ '@rollup/rollup-linux-x64-musl': 4.46.2
+ '@rollup/rollup-win32-arm64-msvc': 4.46.2
+ '@rollup/rollup-win32-ia32-msvc': 4.46.2
+ '@rollup/rollup-win32-x64-msvc': 4.46.2
+ fsevents: 2.3.3
+
+ run-applescript@7.0.0: {}
+
+ run-async@3.0.0: {}
+
+ run-parallel@1.2.0:
+ dependencies:
+ queue-microtask: 1.2.3
+
+ rxjs@7.8.2:
+ dependencies:
+ tslib: 2.8.1
+
+ safe-array-concat@1.1.3:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ get-intrinsic: 1.3.0
+ has-symbols: 1.1.0
+ isarray: 2.0.5
+
+ safe-buffer@5.1.2: {}
+
+ safe-buffer@5.2.1: {}
+
+ safe-push-apply@1.0.0:
+ dependencies:
+ es-errors: 1.3.0
+ isarray: 2.0.5
+
+ safe-regex-test@1.1.0:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ is-regex: 1.2.1
+
+ safe-regex@1.1.0:
+ dependencies:
+ ret: 0.1.15
+
+ safe-stable-stringify@2.5.0:
+ optional: true
+
+ safer-buffer@2.1.2: {}
+
+ sass-embedded-all-unknown@1.97.3:
+ dependencies:
+ sass: 1.97.3
+ optional: true
+
+ sass-embedded-android-arm64@1.97.3:
+ optional: true
+
+ sass-embedded-android-arm@1.97.3:
+ optional: true
+
+ sass-embedded-android-riscv64@1.97.3:
+ optional: true
+
+ sass-embedded-android-x64@1.97.3:
+ optional: true
+
+ sass-embedded-darwin-arm64@1.97.3:
+ optional: true
+
+ sass-embedded-darwin-x64@1.97.3:
+ optional: true
+
+ sass-embedded-linux-arm64@1.97.3:
+ optional: true
+
+ sass-embedded-linux-arm@1.97.3:
+ optional: true
+
+ sass-embedded-linux-musl-arm64@1.97.3:
+ optional: true
+
+ sass-embedded-linux-musl-arm@1.97.3:
+ optional: true
+
+ sass-embedded-linux-musl-riscv64@1.97.3:
+ optional: true
+
+ sass-embedded-linux-musl-x64@1.97.3:
+ optional: true
+
+ sass-embedded-linux-riscv64@1.97.3:
+ optional: true
+
+ sass-embedded-linux-x64@1.97.3:
+ optional: true
+
+ sass-embedded-unknown-all@1.97.3:
+ dependencies:
+ sass: 1.97.3
+ optional: true
+
+ sass-embedded-win32-arm64@1.97.3:
+ optional: true
+
+ sass-embedded-win32-x64@1.97.3:
+ optional: true
+
+ sass-embedded@1.97.3:
+ dependencies:
+ '@bufbuild/protobuf': 2.5.2
+ colorjs.io: 0.5.2
+ immutable: 5.1.2
+ rxjs: 7.8.2
+ supports-color: 8.1.1
+ sync-child-process: 1.0.2
+ varint: 6.0.0
+ optionalDependencies:
+ sass-embedded-all-unknown: 1.97.3
+ sass-embedded-android-arm: 1.97.3
+ sass-embedded-android-arm64: 1.97.3
+ sass-embedded-android-riscv64: 1.97.3
+ sass-embedded-android-x64: 1.97.3
+ sass-embedded-darwin-arm64: 1.97.3
+ sass-embedded-darwin-x64: 1.97.3
+ sass-embedded-linux-arm: 1.97.3
+ sass-embedded-linux-arm64: 1.97.3
+ sass-embedded-linux-musl-arm: 1.97.3
+ sass-embedded-linux-musl-arm64: 1.97.3
+ sass-embedded-linux-musl-riscv64: 1.97.3
+ sass-embedded-linux-musl-x64: 1.97.3
+ sass-embedded-linux-riscv64: 1.97.3
+ sass-embedded-linux-x64: 1.97.3
+ sass-embedded-unknown-all: 1.97.3
+ sass-embedded-win32-arm64: 1.97.3
+ sass-embedded-win32-x64: 1.97.3
+
+ sass@1.97.3:
+ dependencies:
+ chokidar: 4.0.3
+ immutable: 5.1.2
+ source-map-js: 1.2.1
+ optionalDependencies:
+ '@parcel/watcher': 2.5.1
+ optional: true
+
+ sax@1.5.0: {}
+
+ scslre@0.3.0:
+ dependencies:
+ '@eslint-community/regexpp': 4.12.2
+ refa: 0.12.1
+ regexp-ast-analysis: 0.7.1
+
+ scule@1.3.0: {}
+
+ secure-compare@3.0.1: {}
+
+ semver@6.3.1: {}
+
+ semver@7.7.2: {}
+
+ semver@7.7.3: {}
+
+ semver@7.7.4: {}
+
+ send@1.2.0:
+ dependencies:
+ debug: 4.4.3
+ encodeurl: 2.0.0
+ escape-html: 1.0.3
+ etag: 1.8.1
+ fresh: 2.0.0
+ http-errors: 2.0.0
+ mime-types: 3.0.1
+ ms: 2.1.3
+ on-finished: 2.4.1
+ range-parser: 1.2.1
+ statuses: 2.0.2
+ transitivePeerDependencies:
+ - supports-color
+ optional: true
+
+ serialize-javascript@6.0.2:
+ dependencies:
+ randombytes: 2.1.0
+ optional: true
+
+ serve-placeholder@2.0.2:
+ dependencies:
+ defu: 6.1.4
+ optional: true
+
+ serve-static@2.2.0:
+ dependencies:
+ encodeurl: 2.0.0
+ escape-html: 1.0.3
+ parseurl: 1.3.3
+ send: 1.2.0
+ transitivePeerDependencies:
+ - supports-color
+ optional: true
+
+ set-function-length@1.2.2:
+ dependencies:
+ define-data-property: 1.1.4
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+ get-intrinsic: 1.3.0
+ gopd: 1.2.0
+ has-property-descriptors: 1.0.2
+
+ set-function-name@2.0.2:
+ dependencies:
+ define-data-property: 1.1.4
+ es-errors: 1.3.0
+ functions-have-names: 1.2.3
+ has-property-descriptors: 1.0.2
+
+ set-proto@1.0.0:
+ dependencies:
+ dunder-proto: 1.0.1
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.1
+
+ set-value@2.0.1:
+ dependencies:
+ extend-shallow: 2.0.1
+ is-extendable: 0.1.1
+ is-plain-object: 2.0.4
+ split-string: 3.1.0
+
+ setprototypeof@1.2.0:
+ optional: true
+
+ shebang-command@2.0.0:
+ dependencies:
+ shebang-regex: 3.0.0
+
+ shebang-regex@3.0.0: {}
+
+ shell-quote@1.8.3: {}
+
+ side-channel-list@1.0.0:
+ dependencies:
+ es-errors: 1.3.0
+ object-inspect: 1.13.4
+
+ side-channel-map@1.0.1:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ object-inspect: 1.13.4
+
+ side-channel-weakmap@1.0.2:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ object-inspect: 1.13.4
+ side-channel-map: 1.0.1
+
+ side-channel@1.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ object-inspect: 1.13.4
+ side-channel-list: 1.0.0
+ side-channel-map: 1.0.1
+ side-channel-weakmap: 1.0.2
+
+ signal-exit@3.0.7: {}
+
+ signal-exit@4.1.0: {}
+
+ simple-git-hooks@2.13.1: {}
+
+ simple-git@3.28.0:
+ dependencies:
+ '@kwsites/file-exists': 1.1.1
+ '@kwsites/promise-deferred': 1.1.1
+ debug: 4.4.3
+ transitivePeerDependencies:
+ - supports-color
+ optional: true
+
+ simple-swizzle@0.2.2:
+ dependencies:
+ is-arrayish: 0.3.2
+ optional: true
+
+ sirv@3.0.2:
+ dependencies:
+ '@polka/url': 1.0.0-next.29
+ mrmime: 2.0.1
+ totalist: 3.0.1
+
+ sisteransi@1.0.5: {}
+
+ slash@5.1.0: {}
+
+ slice-ansi@4.0.0:
+ dependencies:
+ ansi-styles: 4.3.0
+ astral-regex: 2.0.0
+ is-fullwidth-code-point: 3.0.0
+
+ slice-ansi@7.1.0:
+ dependencies:
+ ansi-styles: 6.2.1
+ is-fullwidth-code-point: 5.0.0
+
+ smob@1.5.0:
+ optional: true
+
+ snapdragon-node@2.1.1:
+ dependencies:
+ define-property: 1.0.0
+ isobject: 3.0.1
+ snapdragon-util: 3.0.1
+
+ snapdragon-util@3.0.1:
+ dependencies:
+ kind-of: 3.2.2
+
+ snapdragon@0.8.2:
+ 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
+
+ source-map-js@1.2.1: {}
+
+ source-map-resolve@0.5.3:
+ dependencies:
+ atob: 2.1.2
+ decode-uri-component: 0.2.2
+ resolve-url: 0.2.1
+ source-map-url: 0.4.1
+ urix: 0.1.0
+
+ source-map-support@0.5.21:
+ dependencies:
+ buffer-from: 1.1.2
+ source-map: 0.6.1
+
+ source-map-url@0.4.1: {}
+
+ source-map@0.5.7: {}
+
+ source-map@0.6.1: {}
+
+ source-map@0.7.6:
+ optional: true
+
+ spdx-correct@3.2.0:
+ dependencies:
+ spdx-expression-parse: 3.0.1
+ spdx-license-ids: 3.0.21
+ optional: true
+
+ spdx-exceptions@2.5.0: {}
+
+ spdx-expression-parse@3.0.1:
+ dependencies:
+ spdx-exceptions: 2.5.0
+ spdx-license-ids: 3.0.21
+ optional: true
+
+ spdx-expression-parse@4.0.0:
+ dependencies:
+ spdx-exceptions: 2.5.0
+ spdx-license-ids: 3.0.21
+
+ spdx-license-ids@3.0.21: {}
+
+ speakingurl@14.0.1: {}
+
+ split-string@3.1.0:
+ dependencies:
+ extend-shallow: 3.0.2
+
+ stable@0.1.8: {}
+
+ stack-trace@0.0.10:
+ optional: true
+
+ standard-as-callback@2.1.0:
+ optional: true
+
+ static-extend@0.1.2:
+ dependencies:
+ define-property: 0.2.5
+ object-copy: 0.1.0
+
+ statuses@2.0.1:
+ optional: true
+
+ statuses@2.0.2:
+ optional: true
+
+ std-env@3.9.0:
+ optional: true
+
+ stop-iteration-iterator@1.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ internal-slot: 1.1.0
+
+ streamx@2.22.1:
+ dependencies:
+ fast-fifo: 1.3.2
+ text-decoder: 1.2.3
+ optionalDependencies:
+ bare-events: 2.5.4
+
+ strict-uri-encode@1.1.0: {}
+
+ string-argv@0.3.2: {}
+
+ string-width@4.2.3:
+ dependencies:
+ emoji-regex: 8.0.0
+ is-fullwidth-code-point: 3.0.0
+ strip-ansi: 6.0.1
+
+ string-width@5.1.2:
+ dependencies:
+ eastasianwidth: 0.2.0
+ emoji-regex: 9.2.2
+ strip-ansi: 7.1.0
+
+ string-width@7.2.0:
+ dependencies:
+ emoji-regex: 10.4.0
+ get-east-asian-width: 1.3.0
+ strip-ansi: 7.1.0
+
+ string-width@8.2.0:
+ dependencies:
+ get-east-asian-width: 1.5.0
+ strip-ansi: 7.2.0
+
+ string.prototype.trim@1.2.10:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ define-data-property: 1.1.4
+ define-properties: 1.2.1
+ es-abstract: 1.24.0
+ es-object-atoms: 1.1.1
+ has-property-descriptors: 1.0.2
+
+ string.prototype.trimend@1.0.9:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ define-properties: 1.2.1
+ es-object-atoms: 1.1.1
+
+ string.prototype.trimstart@1.0.8:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-object-atoms: 1.1.1
+
+ string_decoder@1.1.1:
+ dependencies:
+ safe-buffer: 5.1.2
+
+ string_decoder@1.3.0:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ strip-ansi@3.0.1:
+ dependencies:
+ ansi-regex: 2.1.1
+
+ strip-ansi@6.0.1:
+ dependencies:
+ ansi-regex: 5.0.1
+
+ strip-ansi@7.1.0:
+ dependencies:
+ ansi-regex: 6.1.0
+
+ strip-ansi@7.2.0:
+ dependencies:
+ ansi-regex: 6.2.2
+
+ strip-final-newline@3.0.0:
+ optional: true
+
+ strip-indent@4.1.1: {}
+
+ strip-json-comments@3.1.1: {}
+
+ strip-literal@3.1.0:
+ dependencies:
+ js-tokens: 9.0.1
+
+ structured-clone-es@1.0.0:
+ optional: true
+
+ style-search@0.1.0: {}
+
+ stylehacks@7.0.6(postcss@8.5.8):
+ dependencies:
+ browserslist: 4.28.1
+ postcss: 8.5.8
+ postcss-selector-parser: 7.1.1
+ optional: true
+
+ stylelint-config-html@1.1.0(postcss-html@1.8.0)(stylelint@17.4.0(typescript@5.9.3)):
+ dependencies:
+ postcss-html: 1.8.0
+ stylelint: 17.4.0(typescript@5.9.3)
+
+ stylelint-config-recess-order@7.6.1(stylelint-order@6.0.4(stylelint@17.4.0(typescript@5.9.3)))(stylelint@17.4.0(typescript@5.9.3)):
+ dependencies:
+ stylelint: 17.4.0(typescript@5.9.3)
+ stylelint-order: 6.0.4(stylelint@17.4.0(typescript@5.9.3))
+
+ stylelint-config-recommended-scss@17.0.0(postcss@8.5.8)(stylelint@17.4.0(typescript@5.9.3)):
+ dependencies:
+ postcss-scss: 4.0.9(postcss@8.5.8)
+ stylelint: 17.4.0(typescript@5.9.3)
+ stylelint-config-recommended: 18.0.0(stylelint@17.4.0(typescript@5.9.3))
+ stylelint-scss: 7.0.0(stylelint@17.4.0(typescript@5.9.3))
+ optionalDependencies:
+ postcss: 8.5.8
+
+ stylelint-config-recommended-vue@1.6.0(postcss-html@1.8.0)(stylelint@17.4.0(typescript@5.9.3)):
+ dependencies:
+ postcss-html: 1.8.0
+ semver: 7.7.2
+ stylelint: 17.4.0(typescript@5.9.3)
+ stylelint-config-html: 1.1.0(postcss-html@1.8.0)(stylelint@17.4.0(typescript@5.9.3))
+ stylelint-config-recommended: 16.0.0(stylelint@17.4.0(typescript@5.9.3))
+
+ stylelint-config-recommended@16.0.0(stylelint@17.4.0(typescript@5.9.3)):
+ dependencies:
+ stylelint: 17.4.0(typescript@5.9.3)
+
+ stylelint-config-recommended@18.0.0(stylelint@17.4.0(typescript@5.9.3)):
+ dependencies:
+ stylelint: 17.4.0(typescript@5.9.3)
+
+ stylelint-config-standard-scss@17.0.0(postcss@8.5.8)(stylelint@17.4.0(typescript@5.9.3)):
+ dependencies:
+ stylelint: 17.4.0(typescript@5.9.3)
+ stylelint-config-recommended-scss: 17.0.0(postcss@8.5.8)(stylelint@17.4.0(typescript@5.9.3))
+ stylelint-config-standard: 40.0.0(stylelint@17.4.0(typescript@5.9.3))
+ optionalDependencies:
+ postcss: 8.5.8
+
+ stylelint-config-standard-vue@1.0.0(postcss-html@1.8.0)(stylelint@17.4.0(typescript@5.9.3)):
+ dependencies:
+ postcss-html: 1.8.0
+ stylelint: 17.4.0(typescript@5.9.3)
+ stylelint-config-html: 1.1.0(postcss-html@1.8.0)(stylelint@17.4.0(typescript@5.9.3))
+ stylelint-config-recommended-vue: 1.6.0(postcss-html@1.8.0)(stylelint@17.4.0(typescript@5.9.3))
+ stylelint-config-standard: 38.0.0(stylelint@17.4.0(typescript@5.9.3))
+
+ stylelint-config-standard@38.0.0(stylelint@17.4.0(typescript@5.9.3)):
+ dependencies:
+ stylelint: 17.4.0(typescript@5.9.3)
+ stylelint-config-recommended: 16.0.0(stylelint@17.4.0(typescript@5.9.3))
+
+ stylelint-config-standard@40.0.0(stylelint@17.4.0(typescript@5.9.3)):
+ dependencies:
+ stylelint: 17.4.0(typescript@5.9.3)
+ stylelint-config-recommended: 18.0.0(stylelint@17.4.0(typescript@5.9.3))
+
+ stylelint-order@6.0.4(stylelint@17.4.0(typescript@5.9.3)):
+ dependencies:
+ postcss: 8.5.8
+ postcss-sorting: 8.0.2(postcss@8.5.8)
+ stylelint: 17.4.0(typescript@5.9.3)
+
+ stylelint-scss@7.0.0(stylelint@17.4.0(typescript@5.9.3)):
+ dependencies:
+ css-tree: 3.1.0
+ is-plain-object: 5.0.0
+ known-css-properties: 0.37.0
+ mdn-data: 2.25.0
+ postcss-media-query-parser: 0.2.3
+ postcss-resolve-nested-selector: 0.1.6
+ postcss-selector-parser: 7.1.1
+ postcss-value-parser: 4.2.0
+ stylelint: 17.4.0(typescript@5.9.3)
+
+ stylelint@17.4.0(typescript@5.9.3):
+ dependencies:
+ '@csstools/css-calc': 3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)
+ '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0)
+ '@csstools/css-syntax-patches-for-csstree': 1.0.28
+ '@csstools/css-tokenizer': 4.0.0
+ '@csstools/media-query-list-parser': 5.0.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)
+ '@csstools/selector-resolve-nested': 4.0.0(postcss-selector-parser@7.1.1)
+ '@csstools/selector-specificity': 6.0.0(postcss-selector-parser@7.1.1)
+ colord: 2.9.3
+ cosmiconfig: 9.0.0(typescript@5.9.3)
+ css-functions-list: 3.3.3
+ css-tree: 3.1.0
+ debug: 4.4.3
+ fast-glob: 3.3.3
+ fastest-levenshtein: 1.0.16
+ file-entry-cache: 11.1.2
+ global-modules: 2.0.0
+ globby: 16.1.1
+ globjoin: 0.1.4
+ html-tags: 5.1.0
+ ignore: 7.0.5
+ import-meta-resolve: 4.2.0
+ imurmurhash: 0.1.4
+ is-plain-object: 5.0.0
+ mathml-tag-names: 4.0.0
+ meow: 14.1.0
+ micromatch: 4.0.8
+ normalize-path: 3.0.0
+ picocolors: 1.1.1
+ postcss: 8.5.8
+ postcss-safe-parser: 7.0.1(postcss@8.5.8)
+ postcss-selector-parser: 7.1.1
+ postcss-value-parser: 4.2.0
+ string-width: 8.2.0
+ supports-hyperlinks: 4.4.0
+ svg-tags: 1.0.0
+ table: 6.9.0
+ write-file-atomic: 7.0.1
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ superjson@2.2.2:
+ dependencies:
+ copy-anything: 3.0.5
+
+ supports-color@10.2.2: {}
+
+ supports-color@2.0.0: {}
+
+ supports-color@3.2.3:
+ dependencies:
+ has-flag: 1.0.0
+
+ supports-color@7.2.0:
+ dependencies:
+ has-flag: 4.0.0
+
+ supports-color@8.1.1:
+ dependencies:
+ has-flag: 4.0.0
+
+ supports-hyperlinks@4.4.0:
+ dependencies:
+ has-flag: 5.0.1
+ supports-color: 10.2.2
+
+ supports-preserve-symlinks-flag@1.0.0: {}
+
+ svg-baker@1.7.0:
+ dependencies:
+ bluebird: 3.7.2
+ clone: 2.1.2
+ he: 1.2.0
+ image-size: 0.5.5
+ loader-utils: 1.4.2
+ merge-options: 1.0.1
+ micromatch: 3.1.0
+ postcss: 5.2.18
+ postcss-prefix-selector: 1.16.1(postcss@5.2.18)
+ posthtml-rename-id: 1.0.12
+ posthtml-svg-mode: 1.0.3
+ query-string: 4.3.4
+ traverse: 0.6.11
+ transitivePeerDependencies:
+ - supports-color
+
+ svg-tags@1.0.0: {}
+
+ svgo@2.8.0:
+ 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.1.1
+ stable: 0.1.8
+
+ svgo@4.0.1:
+ dependencies:
+ commander: 11.1.0
+ css-select: 5.1.0
+ css-tree: 3.1.0
+ css-what: 6.1.0
+ csso: 5.0.5
+ picocolors: 1.1.1
+ sax: 1.5.0
+
+ sync-child-process@1.0.2:
+ dependencies:
+ sync-message-port: 1.1.3
+
+ sync-message-port@1.1.3: {}
+
+ synckit@0.11.12:
+ dependencies:
+ '@pkgr/core': 0.2.9
+
+ system-architecture@0.1.0:
+ optional: true
+
+ systemjs@6.15.1: {}
+
+ table@6.9.0:
+ dependencies:
+ ajv: 8.17.1
+ lodash.truncate: 4.4.2
+ slice-ansi: 4.0.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+
+ tailwind-merge@3.5.0: {}
+
+ tapable@2.2.2: {}
+
+ tar-mini@0.2.0: {}
+
+ tar-stream@3.1.7:
+ dependencies:
+ b4a: 1.6.7
+ fast-fifo: 1.3.2
+ streamx: 2.22.1
+
+ tar@7.4.3:
+ dependencies:
+ '@isaacs/fs-minipass': 4.0.1
+ chownr: 3.0.0
+ minipass: 7.1.2
+ minizlib: 3.0.2
+ mkdirp: 3.0.1
+ yallist: 5.0.0
+ optional: true
+
+ taze@19.10.0:
+ dependencies:
+ '@antfu/ni': 28.3.0
+ '@henrygd/queue': 1.2.0
+ cac: 7.0.0
+ find-up-simple: 1.0.1
+ ofetch: 1.5.1
+ package-manager-detector: 1.6.0
+ pathe: 2.0.3
+ pnpm-workspace-yaml: 1.6.0
+ restore-cursor: 5.1.0
+ tinyexec: 1.0.2
+ tinyglobby: 0.2.15
+ unconfig: 7.5.0
+ yaml: 2.8.2
+
+ terser@5.41.0:
+ dependencies:
+ '@jridgewell/source-map': 0.3.6
+ acorn: 8.16.0
+ commander: 2.20.3
+ source-map-support: 0.5.21
+
+ text-decoder@1.2.3:
+ dependencies:
+ b4a: 1.6.7
+
+ text-hex@1.0.0:
+ optional: true
+
+ tiny-invariant@1.3.3:
+ optional: true
+
+ tinyexec@1.0.2: {}
+
+ tinyglobby@0.2.14:
+ dependencies:
+ fdir: 6.5.0(picomatch@4.0.3)
+ picomatch: 4.0.3
+ optional: true
+
+ tinyglobby@0.2.15:
+ dependencies:
+ fdir: 6.5.0(picomatch@4.0.3)
+ picomatch: 4.0.3
+
+ title-case@4.3.2: {}
+
+ tmp-promise@3.0.3:
+ dependencies:
+ tmp: 0.2.5
+ optional: true
+
+ tmp@0.2.5:
+ optional: true
+
+ to-object-path@0.3.0:
+ dependencies:
+ kind-of: 3.2.2
+
+ to-regex-range@2.1.1:
+ dependencies:
+ is-number: 3.0.0
+ repeat-string: 1.6.1
+
+ to-regex-range@5.0.1:
+ dependencies:
+ is-number: 7.0.0
+
+ to-regex@3.0.2:
+ dependencies:
+ define-property: 2.0.2
+ extend-shallow: 3.0.2
+ regex-not: 1.0.2
+ safe-regex: 1.1.0
+
+ to-valid-identifier@1.0.0:
+ dependencies:
+ '@sindresorhus/base62': 1.0.0
+ reserved-identifiers: 1.2.0
+
+ toidentifier@1.0.1:
+ optional: true
+
+ toml-eslint-parser@1.0.3:
+ dependencies:
+ eslint-visitor-keys: 5.0.1
+
+ toml@3.0.0:
+ optional: true
+
+ totalist@3.0.1: {}
+
+ tr46@0.0.3:
+ optional: true
+
+ traverse@0.6.11:
+ dependencies:
+ gopd: 1.2.0
+ typedarray.prototype.slice: 1.0.5
+ which-typed-array: 1.1.19
+
+ triple-beam@1.4.1:
+ optional: true
+
+ ts-api-utils@2.4.0(typescript@5.9.3):
+ dependencies:
+ typescript: 5.9.3
+
+ ts-declaration-location@1.0.7(typescript@5.9.3):
+ dependencies:
+ picomatch: 4.0.3
+ typescript: 5.9.3
+
+ tslib@2.8.1: {}
+
+ tsx@4.21.0:
+ dependencies:
+ esbuild: 0.27.0
+ get-tsconfig: 4.10.1
+ optionalDependencies:
+ fsevents: 2.3.3
+
+ type-check@0.4.0:
+ dependencies:
+ prelude-ls: 1.2.1
+
+ type-fest@0.21.3: {}
+
+ type-fest@4.41.0: {}
+
+ type-level-regexp@0.1.17: {}
+
+ typed-array-buffer@1.0.3:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ is-typed-array: 1.1.15
+
+ typed-array-byte-length@1.0.3:
+ dependencies:
+ call-bind: 1.0.8
+ for-each: 0.3.5
+ gopd: 1.2.0
+ has-proto: 1.2.0
+ is-typed-array: 1.1.15
+
+ typed-array-byte-offset@1.0.4:
+ dependencies:
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.8
+ for-each: 0.3.5
+ gopd: 1.2.0
+ has-proto: 1.2.0
+ is-typed-array: 1.1.15
+ reflect.getprototypeof: 1.0.10
+
+ typed-array-length@1.0.7:
+ dependencies:
+ call-bind: 1.0.8
+ for-each: 0.3.5
+ gopd: 1.2.0
+ is-typed-array: 1.1.15
+ possible-typed-array-names: 1.1.0
+ reflect.getprototypeof: 1.0.10
+
+ typedarray.prototype.slice@1.0.5:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-abstract: 1.24.0
+ es-errors: 1.3.0
+ get-proto: 1.0.1
+ math-intrinsics: 1.1.0
+ typed-array-buffer: 1.0.3
+ typed-array-byte-offset: 1.0.4
+
+ typescript@5.9.3: {}
+
+ ua-is-frozen@0.1.2: {}
+
+ ua-parser-js@2.0.9:
+ dependencies:
+ detect-europe-js: 0.1.2
+ is-standalone-pwa: 0.1.1
+ ua-is-frozen: 0.1.2
+
+ ufo@1.6.1: {}
+
+ uglify-js@3.19.3:
+ optional: true
+
+ ultrahtml@1.6.0:
+ optional: true
+
+ unbox-primitive@1.1.0:
+ dependencies:
+ call-bound: 1.0.4
+ has-bigints: 1.1.0
+ has-symbols: 1.1.0
+ which-boxed-primitive: 1.1.1
+
+ unc-path-regex@0.1.2: {}
+
+ unconfig-core@7.5.0:
+ dependencies:
+ '@quansync/fs': 1.0.0
+ quansync: 1.0.0
+
+ unconfig@7.5.0:
+ dependencies:
+ '@quansync/fs': 1.0.0
+ defu: 6.1.4
+ jiti: 2.6.1
+ quansync: 1.0.0
+ unconfig-core: 7.5.0
+
+ uncrypto@0.1.3: {}
+
+ unctx@2.4.1:
+ dependencies:
+ acorn: 8.16.0
+ estree-walker: 3.0.3
+ magic-string: 0.30.21
+ unplugin: 2.3.11
+ optional: true
+
+ undici-types@6.21.0: {}
+
+ unenv@2.0.0-rc.19:
+ dependencies:
+ defu: 6.1.4
+ exsolve: 1.0.8
+ ohash: 2.0.11
+ pathe: 2.0.3
+ ufo: 1.6.1
+ optional: true
+
+ unhead@2.0.14:
+ dependencies:
+ hookable: 5.5.3
+ optional: true
+
+ unicode-canonical-property-names-ecmascript@2.0.1: {}
+
+ unicode-match-property-ecmascript@2.0.0:
+ dependencies:
+ unicode-canonical-property-names-ecmascript: 2.0.1
+ unicode-property-aliases-ecmascript: 2.1.0
+
+ unicode-match-property-value-ecmascript@2.2.0: {}
+
+ unicode-property-aliases-ecmascript@2.1.0: {}
+
+ unicorn-magic@0.1.0:
+ optional: true
+
+ unicorn-magic@0.3.0:
+ optional: true
+
+ unicorn-magic@0.4.0: {}
+
+ unimport@5.7.0:
+ dependencies:
+ acorn: 8.16.0
+ escape-string-regexp: 5.0.0
+ estree-walker: 3.0.3
+ local-pkg: 1.1.2
+ magic-string: 0.30.21
+ mlly: 1.8.0
+ pathe: 2.0.3
+ picomatch: 4.0.3
+ pkg-types: 2.3.0
+ scule: 1.3.0
+ strip-literal: 3.1.0
+ tinyglobby: 0.2.15
+ unplugin: 2.3.11
+ unplugin-utils: 0.3.1
+
+ union-value@1.0.1:
+ dependencies:
+ arr-union: 3.1.0
+ get-value: 2.0.6
+ is-extendable: 0.1.1
+ set-value: 2.0.1
+
+ union@0.5.0:
+ dependencies:
+ qs: 6.15.0
+
+ unist-util-is@6.0.0:
+ dependencies:
+ '@types/unist': 3.0.3
+
+ unist-util-stringify-position@4.0.0:
+ dependencies:
+ '@types/unist': 3.0.3
+
+ unist-util-visit-parents@6.0.1:
+ dependencies:
+ '@types/unist': 3.0.3
+ unist-util-is: 6.0.0
+
+ unist-util-visit@5.0.0:
+ dependencies:
+ '@types/unist': 3.0.3
+ unist-util-is: 6.0.0
+ unist-util-visit-parents: 6.0.1
+
+ universalify@2.0.1: {}
+
+ unixify@1.0.0:
+ dependencies:
+ normalize-path: 2.1.1
+ optional: true
+
+ unocss-preset-animations@1.3.0(@unocss/preset-wind3@66.6.6)(unocss@66.6.6(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))):
+ dependencies:
+ unocss: 66.6.6(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))
+ optionalDependencies:
+ '@unocss/preset-wind3': 66.6.6
+
+ unocss@66.6.6(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2)):
+ dependencies:
+ '@unocss/cli': 66.6.6
+ '@unocss/core': 66.6.6
+ '@unocss/preset-attributify': 66.6.6
+ '@unocss/preset-icons': 66.6.6
+ '@unocss/preset-mini': 66.6.6
+ '@unocss/preset-tagify': 66.6.6
+ '@unocss/preset-typography': 66.6.6
+ '@unocss/preset-uno': 66.6.6
+ '@unocss/preset-web-fonts': 66.6.6
+ '@unocss/preset-wind': 66.6.6
+ '@unocss/preset-wind3': 66.6.6
+ '@unocss/preset-wind4': 66.6.6
+ '@unocss/transformer-attributify-jsx': 66.6.6
+ '@unocss/transformer-compile-class': 66.6.6
+ '@unocss/transformer-directives': 66.6.6
+ '@unocss/transformer-variant-group': 66.6.6
+ '@unocss/vite': 66.6.6(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))
+ transitivePeerDependencies:
+ - vite
+
+ unplugin-auto-import@21.0.0(@nuxt/kit@4.0.3(magicast@0.3.5))(@vueuse/core@14.2.1(vue@3.5.29(typescript@5.9.3))):
+ dependencies:
+ local-pkg: 1.1.2
+ magic-string: 0.30.21
+ picomatch: 4.0.3
+ unimport: 5.7.0
+ unplugin: 2.3.11
+ unplugin-utils: 0.3.1
+ optionalDependencies:
+ '@nuxt/kit': 4.0.3(magicast@0.3.5)
+ '@vueuse/core': 14.2.1(vue@3.5.29(typescript@5.9.3))
+
+ unplugin-turbo-console@2.3.0(@nuxt/kit@4.0.3(magicast@0.3.5))(@nuxt/schema@4.0.3)(esbuild@0.27.0)(rollup@4.46.2)(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.29(typescript@5.9.3)):
+ dependencies:
+ alien-signals: 2.0.8
+ estree-walker: 3.0.3
+ get-port-please: 3.2.0
+ h3: 1.15.4
+ launch-editor: 2.11.1
+ magic-string: 0.30.19
+ mrmime: 2.0.1
+ oxc-parser: 0.82.3
+ pathe: 2.0.3
+ unplugin: 2.3.10
+ optionalDependencies:
+ '@nuxt/kit': 4.0.3(magicast@0.3.5)
+ '@nuxt/schema': 4.0.3
+ esbuild: 0.27.0
+ rollup: 4.46.2
+ vite: 7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2)
+ vue: 3.5.29(typescript@5.9.3)
+
+ unplugin-utils@0.2.4:
+ dependencies:
+ pathe: 2.0.3
+ picomatch: 4.0.3
+ optional: true
+
+ unplugin-utils@0.3.1:
+ dependencies:
+ pathe: 2.0.3
+ picomatch: 4.0.3
+
+ unplugin-vue-components@31.0.0(@nuxt/kit@4.0.3(magicast@0.3.5))(vue@3.5.29(typescript@5.9.3)):
+ dependencies:
+ chokidar: 5.0.0
+ local-pkg: 1.1.2
+ magic-string: 0.30.21
+ mlly: 1.8.0
+ obug: 2.1.1
+ picomatch: 4.0.3
+ tinyglobby: 0.2.15
+ unplugin: 2.3.11
+ unplugin-utils: 0.3.1
+ vue: 3.5.29(typescript@5.9.3)
+ optionalDependencies:
+ '@nuxt/kit': 4.0.3(magicast@0.3.5)
+
+ unplugin-vue-router@0.15.0(@vue/compiler-sfc@3.5.29)(vue-router@4.6.4(vue@3.5.29(typescript@5.9.3)))(vue@3.5.29(typescript@5.9.3)):
+ dependencies:
+ '@vue-macros/common': 3.0.0-beta.16(vue@3.5.29(typescript@5.9.3))
+ '@vue/compiler-sfc': 3.5.29
+ '@vue/language-core': 3.2.5
+ ast-walker-scope: 0.8.3
+ chokidar: 4.0.3
+ json5: 2.2.3
+ local-pkg: 1.1.2
+ magic-string: 0.30.21
+ mlly: 1.8.0
+ muggle-string: 0.4.1
+ pathe: 2.0.3
+ picomatch: 4.0.3
+ scule: 1.3.0
+ tinyglobby: 0.2.15
+ unplugin: 2.3.11
+ unplugin-utils: 0.2.4
+ yaml: 2.8.2
+ optionalDependencies:
+ vue-router: 4.6.4(vue@3.5.29(typescript@5.9.3))
+ transitivePeerDependencies:
+ - vue
+ optional: true
+
+ unplugin@2.3.10:
+ dependencies:
+ '@jridgewell/remapping': 2.3.5
+ acorn: 8.15.0
+ picomatch: 4.0.3
+ webpack-virtual-modules: 0.6.2
+
+ unplugin@2.3.11:
+ dependencies:
+ '@jridgewell/remapping': 2.3.5
+ acorn: 8.15.0
+ picomatch: 4.0.3
+ webpack-virtual-modules: 0.6.2
+
+ unplugin@3.0.0:
+ dependencies:
+ '@jridgewell/remapping': 2.3.5
+ picomatch: 4.0.3
+ webpack-virtual-modules: 0.6.2
+
+ unset-value@1.0.0:
+ dependencies:
+ has-value: 0.3.1
+ isobject: 3.0.1
+
+ unstorage@1.17.0(@netlify/blobs@9.1.2)(db0@0.3.2)(ioredis@5.7.0):
+ dependencies:
+ anymatch: 3.1.3
+ chokidar: 4.0.3
+ destr: 2.0.5
+ h3: 1.15.4
+ lru-cache: 10.4.3
+ node-fetch-native: 1.6.7
+ ofetch: 1.5.1
+ ufo: 1.6.1
+ optionalDependencies:
+ '@netlify/blobs': 9.1.2
+ db0: 0.3.2
+ ioredis: 5.7.0
+ optional: true
+
+ untun@0.1.3:
+ dependencies:
+ citty: 0.1.6
+ consola: 3.4.2
+ pathe: 1.1.2
+ optional: true
+
+ untyped@2.0.0:
+ dependencies:
+ citty: 0.1.6
+ defu: 6.1.4
+ jiti: 2.6.1
+ knitwork: 1.2.0
+ scule: 1.3.0
+ optional: true
+
+ unwasm@0.3.11:
+ dependencies:
+ knitwork: 1.2.0
+ magic-string: 0.30.21
+ mlly: 1.8.0
+ pathe: 2.0.3
+ pkg-types: 2.3.0
+ unplugin: 2.3.11
+ optional: true
+
+ update-browserslist-db@1.1.3(browserslist@4.25.1):
+ dependencies:
+ browserslist: 4.25.1
+ escalade: 3.2.0
+ picocolors: 1.1.1
+
+ update-browserslist-db@1.1.4(browserslist@4.27.0):
+ dependencies:
+ browserslist: 4.27.0
+ escalade: 3.2.0
+ picocolors: 1.1.1
+
+ update-browserslist-db@1.2.3(browserslist@4.28.1):
+ dependencies:
+ browserslist: 4.28.1
+ escalade: 3.2.0
+ picocolors: 1.1.1
+
+ uqr@0.1.2:
+ optional: true
+
+ uri-js@4.4.1:
+ dependencies:
+ punycode: 2.3.1
+
+ urix@0.1.0: {}
+
+ url-join@4.0.1: {}
+
+ urlpattern-polyfill@10.1.0:
+ optional: true
+
+ urlpattern-polyfill@8.0.2:
+ optional: true
+
+ use@3.1.1: {}
+
+ util-deprecate@1.0.2: {}
+
+ uuid@11.1.0:
+ optional: true
+
+ v8flags@4.0.1: {}
+
+ validate-npm-package-license@3.0.4:
+ dependencies:
+ spdx-correct: 3.2.0
+ spdx-expression-parse: 3.0.1
+ optional: true
+
+ varint@6.0.0: {}
+
+ vary@1.1.2: {}
+
+ vconsole@3.15.1:
+ dependencies:
+ '@babel/runtime': 7.27.6
+ copy-text-to-clipboard: 3.2.0
+ core-js: 3.42.0
+ mutation-observer: 1.0.3
+
+ vee-validate@4.15.1(vue@3.5.29(typescript@5.9.3)):
+ dependencies:
+ '@vue/devtools-api': 7.7.6
+ type-fest: 4.41.0
+ vue: 3.5.29(typescript@5.9.3)
+
+ vite-dev-rpc@1.1.0(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2)):
+ dependencies:
+ birpc: 2.6.1
+ vite: 7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2)
+ vite-hot-client: 2.1.0(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))
+
+ vite-hot-client@2.1.0(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2)):
+ dependencies:
+ vite: 7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2)
+
+ vite-node@3.2.4(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2):
+ dependencies:
+ cac: 6.7.14
+ debug: 4.4.3
+ es-module-lexer: 1.7.0
+ pathe: 2.0.3
+ vite: 7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2)
+ transitivePeerDependencies:
+ - '@types/node'
+ - jiti
+ - less
+ - lightningcss
+ - sass
+ - sass-embedded
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
+ - tsx
+ - yaml
+ optional: true
+
+ vite-plugin-app-loading@0.4.0: {}
+
+ vite-plugin-archiver@0.2.0:
+ dependencies:
+ archiver: 7.0.1
+ dayjs: 1.11.19
+ filesize: 10.1.6
+ open: 10.1.2
+
+ vite-plugin-banner@0.8.1: {}
+
+ vite-plugin-checker@0.10.3(eslint@9.39.4(jiti@2.6.1))(meow@13.2.0)(optionator@0.9.4)(stylelint@17.4.0(typescript@5.9.3))(typescript@5.9.3)(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))(vue-tsc@3.2.5(typescript@5.9.3)):
+ dependencies:
+ '@babel/code-frame': 7.29.0
+ chokidar: 4.0.3
+ npm-run-path: 6.0.0
+ picocolors: 1.1.1
+ picomatch: 4.0.3
+ strip-ansi: 7.2.0
+ tiny-invariant: 1.3.3
+ tinyglobby: 0.2.15
+ vite: 7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2)
+ vscode-uri: 3.1.0
+ optionalDependencies:
+ eslint: 9.39.4(jiti@2.6.1)
+ meow: 13.2.0
+ optionator: 0.9.4
+ stylelint: 17.4.0(typescript@5.9.3)
+ typescript: 5.9.3
+ vue-tsc: 3.2.5(typescript@5.9.3)
+ optional: true
+
+ vite-plugin-compression2@2.5.0(rollup@4.46.2):
+ dependencies:
+ '@rollup/pluginutils': 5.1.4(rollup@4.46.2)
+ tar-mini: 0.2.0
+ transitivePeerDependencies:
+ - rollup
+
+ vite-plugin-env-parse@1.0.15(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2)):
+ dependencies:
+ vite: 7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2)
+
+ vite-plugin-fake-server@2.2.2:
+ dependencies:
+ bundle-import: 0.0.2
+ chokidar: 4.0.3
+ path-to-regexp: 8.3.0
+ picocolors: 1.1.1
+ tinyglobby: 0.2.15
+
+ vite-plugin-inspect@11.3.3(@nuxt/kit@3.18.1(magicast@0.3.5))(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2)):
+ dependencies:
+ ansis: 4.2.0
+ debug: 4.4.3
+ error-stack-parser-es: 1.0.5
+ ohash: 2.0.11
+ open: 10.2.0
+ perfect-debounce: 2.0.0
+ sirv: 3.0.2
+ unplugin-utils: 0.3.1
+ vite: 7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2)
+ vite-dev-rpc: 1.1.0(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))
+ optionalDependencies:
+ '@nuxt/kit': 3.18.1(magicast@0.3.5)
+ transitivePeerDependencies:
+ - supports-color
+ optional: true
+
+ vite-plugin-inspect@11.3.3(@nuxt/kit@4.0.3(magicast@0.3.5))(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2)):
+ dependencies:
+ ansis: 4.2.0
+ debug: 4.4.3
+ error-stack-parser-es: 1.0.5
+ ohash: 2.0.11
+ open: 10.2.0
+ perfect-debounce: 2.0.0
+ sirv: 3.0.2
+ unplugin-utils: 0.3.1
+ vite: 7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2)
+ vite-dev-rpc: 1.1.0(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))
+ optionalDependencies:
+ '@nuxt/kit': 4.0.3(magicast@0.3.5)
+ transitivePeerDependencies:
+ - supports-color
+
+ vite-plugin-pages@0.33.3(@vue/compiler-sfc@3.5.29)(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))(vue-router@5.0.3(@vue/compiler-sfc@3.5.29)(pinia@3.0.4(typescript@5.9.3)(vue@3.5.29(typescript@5.9.3)))(vue@3.5.29(typescript@5.9.3))):
+ dependencies:
+ '@types/debug': 4.1.12
+ debug: 4.4.3
+ dequal: 2.0.3
+ extract-comments: 1.1.0
+ json5: 2.2.3
+ local-pkg: 1.1.2
+ micromatch: 4.0.8
+ picocolors: 1.1.1
+ tinyglobby: 0.2.15
+ vite: 7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2)
+ yaml: 2.8.2
+ optionalDependencies:
+ '@vue/compiler-sfc': 3.5.29
+ vue-router: 5.0.3(@vue/compiler-sfc@3.5.29)(pinia@3.0.4(typescript@5.9.3)(vue@3.5.29(typescript@5.9.3)))(vue@3.5.29(typescript@5.9.3))
+ transitivePeerDependencies:
+ - supports-color
+
+ vite-plugin-svg-icons@2.0.1(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2)):
+ dependencies:
+ '@types/svgo': 2.6.4
+ cors: 2.8.5
+ debug: 4.4.1
+ etag: 1.8.1
+ fs-extra: 10.1.0
+ pathe: 0.2.0
+ svg-baker: 1.7.0
+ svgo: 2.8.0
+ vite: 7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2)
+ transitivePeerDependencies:
+ - supports-color
+
+ vite-plugin-vue-devtools@8.0.7(@nuxt/kit@4.0.3(magicast@0.3.5))(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.29(typescript@5.9.3)):
+ dependencies:
+ '@vue/devtools-core': 8.0.7(vue@3.5.29(typescript@5.9.3))
+ '@vue/devtools-kit': 8.0.7
+ '@vue/devtools-shared': 8.0.7
+ sirv: 3.0.2
+ vite: 7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2)
+ vite-plugin-inspect: 11.3.3(@nuxt/kit@4.0.3(magicast@0.3.5))(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))
+ vite-plugin-vue-inspector: 5.3.2(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))
+ transitivePeerDependencies:
+ - '@nuxt/kit'
+ - supports-color
+ - vue
+
+ vite-plugin-vue-inspector@5.3.2(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2)):
+ dependencies:
+ '@babel/core': 7.28.5
+ '@babel/plugin-proposal-decorators': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.5)
+ '@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.28.5)
+ '@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.28.5)
+ '@vue/compiler-dom': 3.5.26
+ kolorist: 1.8.0
+ magic-string: 0.30.21
+ vite: 7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2)
+ transitivePeerDependencies:
+ - supports-color
+
+ vite-plugin-vue-meta-layouts@0.6.1(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))(vue-router@5.0.3(@vue/compiler-sfc@3.5.29)(pinia@3.0.4(typescript@5.9.3)(vue@3.5.29(typescript@5.9.3)))(vue@3.5.29(typescript@5.9.3))):
+ dependencies:
+ local-pkg: 0.5.1
+ vite: 7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2)
+ vue-router: 5.0.3(@vue/compiler-sfc@3.5.29)(pinia@3.0.4(typescript@5.9.3)(vue@3.5.29(typescript@5.9.3)))(vue@3.5.29(typescript@5.9.3))
+
+ vite-plugin-vue-tracer@1.0.0(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.29(typescript@5.9.3)):
+ dependencies:
+ estree-walker: 3.0.3
+ exsolve: 1.0.8
+ magic-string: 0.30.21
+ pathe: 2.0.3
+ source-map-js: 1.2.1
+ vite: 7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2)
+ vue: 3.5.29(typescript@5.9.3)
+ optional: true
+
+ vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2):
+ dependencies:
+ esbuild: 0.27.0
+ fdir: 6.5.0(picomatch@4.0.3)
+ picomatch: 4.0.3
+ postcss: 8.5.8
+ rollup: 4.46.2
+ tinyglobby: 0.2.15
+ optionalDependencies:
+ '@types/node': 22.15.30
+ fsevents: 2.3.3
+ jiti: 2.6.1
+ sass: 1.97.3
+ sass-embedded: 1.97.3
+ terser: 5.41.0
+ tsx: 4.21.0
+ yaml: 2.8.2
+
+ vscode-uri@3.1.0: {}
+
+ vue-bundle-renderer@2.1.2:
+ dependencies:
+ ufo: 1.6.1
+ optional: true
+
+ vue-demi@0.14.10(vue@3.5.29(typescript@5.9.3)):
+ dependencies:
+ vue: 3.5.29(typescript@5.9.3)
+
+ vue-devtools-stub@0.1.0:
+ optional: true
+
+ vue-eslint-parser@10.4.0(eslint@9.39.4(jiti@2.6.1)):
+ dependencies:
+ debug: 4.4.3
+ eslint: 9.39.4(jiti@2.6.1)
+ eslint-scope: 8.4.0
+ eslint-visitor-keys: 5.0.1
+ espree: 11.1.1
+ esquery: 1.7.0
+ semver: 7.7.4
+ transitivePeerDependencies:
+ - supports-color
+
+ vue-router@4.6.4(vue@3.5.29(typescript@5.9.3)):
+ dependencies:
+ '@vue/devtools-api': 6.6.4
+ vue: 3.5.29(typescript@5.9.3)
+ optional: true
+
+ vue-router@5.0.3(@vue/compiler-sfc@3.5.29)(pinia@3.0.4(typescript@5.9.3)(vue@3.5.29(typescript@5.9.3)))(vue@3.5.29(typescript@5.9.3)):
+ dependencies:
+ '@babel/generator': 7.29.1
+ '@vue-macros/common': 3.1.2(vue@3.5.29(typescript@5.9.3))
+ '@vue/devtools-api': 8.0.7
+ ast-walker-scope: 0.8.3
+ chokidar: 5.0.0
+ json5: 2.2.3
+ local-pkg: 1.1.2
+ magic-string: 0.30.21
+ mlly: 1.8.0
+ muggle-string: 0.4.1
+ pathe: 2.0.3
+ picomatch: 4.0.3
+ scule: 1.3.0
+ tinyglobby: 0.2.15
+ unplugin: 3.0.0
+ unplugin-utils: 0.3.1
+ vue: 3.5.29(typescript@5.9.3)
+ yaml: 2.8.2
+ optionalDependencies:
+ '@vue/compiler-sfc': 3.5.29
+ pinia: 3.0.4(typescript@5.9.3)(vue@3.5.29(typescript@5.9.3))
+
+ vue-sonner@2.0.9(@nuxt/kit@4.0.3(magicast@0.3.5))(@nuxt/schema@4.0.3)(nuxt@4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@22.15.30)(@vue/compiler-sfc@3.5.29)(db0@0.3.2)(eslint@9.39.4(jiti@2.6.1))(ioredis@5.7.0)(magicast@0.3.5)(meow@13.2.0)(optionator@0.9.4)(rollup@4.46.2)(sass-embedded@1.97.3)(sass@1.97.3)(stylelint@17.4.0(typescript@5.9.3))(terser@5.41.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))(vue-tsc@3.2.5(typescript@5.9.3))(yaml@2.8.2)):
+ optionalDependencies:
+ '@nuxt/kit': 4.0.3(magicast@0.3.5)
+ '@nuxt/schema': 4.0.3
+ nuxt: 4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@22.15.30)(@vue/compiler-sfc@3.5.29)(db0@0.3.2)(eslint@9.39.4(jiti@2.6.1))(ioredis@5.7.0)(magicast@0.3.5)(meow@13.2.0)(optionator@0.9.4)(rollup@4.46.2)(sass-embedded@1.97.3)(sass@1.97.3)(stylelint@17.4.0(typescript@5.9.3))(terser@5.41.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@22.15.30)(jiti@2.6.1)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.41.0)(tsx@4.21.0)(yaml@2.8.2))(vue-tsc@3.2.5(typescript@5.9.3))(yaml@2.8.2)
+
+ vue-tsc@3.2.5(typescript@5.9.3):
+ dependencies:
+ '@volar/typescript': 2.4.28
+ '@vue/language-core': 3.2.5
+ typescript: 5.9.3
+
+ vue@3.5.29(typescript@5.9.3):
+ dependencies:
+ '@vue/compiler-dom': 3.5.29
+ '@vue/compiler-sfc': 3.5.29
+ '@vue/runtime-dom': 3.5.29
+ '@vue/server-renderer': 3.5.29(vue@3.5.29(typescript@5.9.3))
+ '@vue/shared': 3.5.29
+ optionalDependencies:
+ typescript: 5.9.3
+
+ wcwidth@1.0.1:
+ dependencies:
+ defaults: 1.0.4
+
+ web-streams-polyfill@3.3.3:
+ optional: true
+
+ webidl-conversions@3.0.1:
+ optional: true
+
+ webpack-virtual-modules@0.6.2: {}
+
+ whatwg-encoding@2.0.0:
+ dependencies:
+ iconv-lite: 0.6.3
+
+ whatwg-url@5.0.0:
+ dependencies:
+ tr46: 0.0.3
+ webidl-conversions: 3.0.1
+ optional: true
+
+ which-boxed-primitive@1.1.1:
+ dependencies:
+ is-bigint: 1.1.0
+ is-boolean-object: 1.2.2
+ is-number-object: 1.1.1
+ is-string: 1.1.1
+ is-symbol: 1.1.1
+
+ which-builtin-type@1.2.1:
+ dependencies:
+ call-bound: 1.0.4
+ function.prototype.name: 1.1.8
+ has-tostringtag: 1.0.2
+ is-async-function: 2.1.1
+ is-date-object: 1.1.0
+ is-finalizationregistry: 1.1.1
+ is-generator-function: 1.1.0
+ is-regex: 1.2.1
+ is-weakref: 1.1.1
+ isarray: 2.0.5
+ which-boxed-primitive: 1.1.1
+ which-collection: 1.0.2
+ which-typed-array: 1.1.19
+
+ which-collection@1.0.2:
+ dependencies:
+ is-map: 2.0.3
+ is-set: 2.0.3
+ is-weakmap: 2.0.2
+ is-weakset: 2.0.4
+
+ which-typed-array@1.1.19:
+ dependencies:
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ for-each: 0.3.5
+ get-proto: 1.0.1
+ gopd: 1.2.0
+ has-tostringtag: 1.0.2
+
+ which@1.3.1:
+ dependencies:
+ isexe: 2.0.0
+
+ which@2.0.2:
+ dependencies:
+ isexe: 2.0.0
+
+ which@5.0.0:
+ dependencies:
+ isexe: 3.1.1
+
+ widest-line@5.0.0:
+ dependencies:
+ string-width: 7.2.0
+
+ winston-transport@4.9.0:
+ dependencies:
+ logform: 2.7.0
+ readable-stream: 3.6.2
+ triple-beam: 1.4.1
+ optional: true
+
+ winston@3.17.0:
+ dependencies:
+ '@colors/colors': 1.6.0
+ '@dabh/diagnostics': 2.0.3
+ async: 3.2.6
+ is-stream: 2.0.1
+ logform: 2.7.0
+ one-time: 1.0.0
+ readable-stream: 3.6.2
+ safe-stable-stringify: 2.5.0
+ stack-trace: 0.0.10
+ triple-beam: 1.4.1
+ winston-transport: 4.9.0
+ optional: true
+
+ word-wrap@1.2.5: {}
+
+ wordwrap@1.0.0: {}
+
+ wrap-ansi@6.2.0:
+ dependencies:
+ ansi-styles: 4.3.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+
+ wrap-ansi@7.0.0:
+ dependencies:
+ ansi-styles: 4.3.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+
+ wrap-ansi@8.1.0:
+ dependencies:
+ ansi-styles: 6.2.1
+ string-width: 5.1.2
+ strip-ansi: 7.1.0
+
+ wrap-ansi@9.0.0:
+ dependencies:
+ ansi-styles: 6.2.1
+ string-width: 7.2.0
+ strip-ansi: 7.1.0
+
+ wrappy@1.0.2:
+ optional: true
+
+ write-file-atomic@6.0.0:
+ dependencies:
+ imurmurhash: 0.1.4
+ signal-exit: 4.1.0
+ optional: true
+
+ write-file-atomic@7.0.1:
+ dependencies:
+ signal-exit: 4.1.0
+
+ ws@8.18.3:
+ optional: true
+
+ wsl-utils@0.1.0:
+ dependencies:
+ is-wsl: 3.1.0
+
+ xml-name-validator@4.0.0: {}
+
+ y18n@5.0.8:
+ optional: true
+
+ yallist@3.1.1: {}
+
+ yallist@5.0.0:
+ optional: true
+
+ yaml-eslint-parser@2.0.0:
+ dependencies:
+ eslint-visitor-keys: 5.0.1
+ yaml: 2.8.2
+
+ yaml@2.8.2: {}
+
+ yargs-parser@21.1.1:
+ optional: true
+
+ yargs@17.7.2:
+ dependencies:
+ cliui: 8.0.1
+ escalade: 3.2.0
+ get-caller-file: 2.0.5
+ require-directory: 2.1.1
+ string-width: 4.2.3
+ y18n: 5.0.8
+ yargs-parser: 21.1.1
+ optional: true
+
+ yauzl@2.10.0:
+ dependencies:
+ buffer-crc32: 0.2.13
+ fd-slicer: 1.1.0
+ optional: true
+
+ yocto-queue@0.1.0: {}
+
+ yocto-queue@1.2.1:
+ optional: true
+
+ yoctocolors-cjs@2.1.2: {}
+
+ youch-core@0.3.3:
+ dependencies:
+ '@poppinss/exception': 1.2.2
+ error-stack-parser-es: 1.0.5
+ optional: true
+
+ youch@4.1.0-beta.11:
+ dependencies:
+ '@poppinss/colors': 4.1.5
+ '@poppinss/dumper': 0.6.4
+ '@speed-highlight/core': 1.2.7
+ cookie: 1.0.2
+ youch-core: 0.3.3
+ optional: true
+
+ youch@4.1.0-beta.8:
+ dependencies:
+ '@poppinss/colors': 4.1.5
+ '@poppinss/dumper': 0.6.4
+ '@speed-highlight/core': 1.2.7
+ cookie: 1.0.2
+ youch-core: 0.3.3
+ optional: true
+
+ zip-stream@6.0.1:
+ dependencies:
+ archiver-utils: 5.0.2
+ compress-commons: 6.0.2
+ readable-stream: 4.7.0
+
+ zod@3.25.76:
+ optional: true
+
+ zod@4.3.6: {}
+
+ zwitch@2.0.4: {}
diff --git a/admin-web/postcss.config.js b/admin-web/postcss.config.js
new file mode 100755
index 0000000..f20659c
--- /dev/null
+++ b/admin-web/postcss.config.js
@@ -0,0 +1,6 @@
+export default {
+ plugins: {
+ 'autoprefixer': {},
+ 'postcss-nested': {},
+ },
+}
diff --git a/admin-web/public/browser_upgrade/chrome.png b/admin-web/public/browser_upgrade/chrome.png
new file mode 100755
index 0000000..c205a47
Binary files /dev/null and b/admin-web/public/browser_upgrade/chrome.png differ
diff --git a/admin-web/public/browser_upgrade/edge.png b/admin-web/public/browser_upgrade/edge.png
new file mode 100755
index 0000000..3e7f158
Binary files /dev/null and b/admin-web/public/browser_upgrade/edge.png differ
diff --git a/admin-web/public/browser_upgrade/index.css b/admin-web/public/browser_upgrade/index.css
new file mode 100755
index 0000000..576e442
--- /dev/null
+++ b/admin-web/public/browser_upgrade/index.css
@@ -0,0 +1,49 @@
+#browser-upgrade {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 10001;
+ display: none;
+ width: 100%;
+ height: 100%;
+ color: #736477;
+ user-select: none;
+ background-color: snow;
+}
+
+#browser-upgrade .title {
+ margin: 40px 0;
+ font-size: 24px;
+ text-align: center;
+}
+
+#browser-upgrade .browsers {
+ text-align: center;
+}
+
+#browser-upgrade .browsers .browser {
+ display: inline-block;
+ margin: 0 20px;
+ text-decoration: none;
+ cursor: pointer;
+}
+
+#browser-upgrade .browsers .browser .browser-icon {
+ display: block;
+ width: 50px;
+ height: 50px;
+ margin: 0 auto;
+ border: none;
+}
+
+#browser-upgrade .browsers .browser .browser-name {
+ padding-bottom: 2px;
+ margin-top: 10px;
+ color: #736477;
+ text-align: center;
+ border-bottom: 1px solid transparent;
+}
+
+#browser-upgrade .browsers .browser:hover .browser-name {
+ border-bottom: 1px solid #736477;
+}
diff --git a/admin-web/public/favicon.svg b/admin-web/public/favicon.svg
new file mode 100644
index 0000000..b08102d
--- /dev/null
+++ b/admin-web/public/favicon.svg
@@ -0,0 +1,14 @@
+
+
+
+
diff --git a/admin-web/scripts/generate.icons.ts b/admin-web/scripts/generate.icons.ts
new file mode 100644
index 0000000..c65b8b6
--- /dev/null
+++ b/admin-web/scripts/generate.icons.ts
@@ -0,0 +1,108 @@
+import { spawn } from 'node:child_process'
+import path from 'node:path'
+import process from 'node:process'
+import * as p from '@clack/prompts'
+import { lookupCollection, lookupCollections } from '@iconify/json'
+import fs from 'fs-extra'
+
+// 拿到全部图标集的原始数据
+const raw = await lookupCollections()
+
+let lastChoose = fs.readFileSync(path.resolve(process.cwd(), 'src/iconify/index.json'), 'utf-8')
+lastChoose = JSON.parse(lastChoose)
+
+// 取出可使用的图标集数据用于选择,并按名称排序
+const collections = Object.entries(raw).map(([id, item]) => ({
+ ...item,
+ id,
+})).sort((a, b) => a.name.localeCompare(b.name))
+
+p.intro('图标集生成工具')
+
+/**
+ * 分别会在对应目录下生成以下文件,其中(1)(3)用于离线下载并安装图标,(2)用于图标选择器使用
+ * (1) src/iconify/index.json 记录用户交互信息
+ * (2) src/iconify/data.json 包含多个图标集数据,仅记录图标名
+ * (3) public/icons/*-raw.json 多个图标集的原始数据,独立存放,用于离线使用
+ */
+const answers = await p.group(
+ {
+ collections: () =>
+ p.multiselect({
+ message: '请选择需要生成的图标集',
+ options: collections.map(item => ({
+ label: item.name,
+ value: item.id,
+ hint: `${item.total} 个图标`,
+ })),
+ initialValues: lastChoose.collections,
+ }),
+ isOfflineUse: () =>
+ p.confirm({
+ message: '是否需要离线使用',
+ initialValue: false,
+ }),
+ },
+ {
+ onCancel: () => {
+ p.cancel('操作已取消')
+ process.exit(0)
+ },
+ },
+)
+
+const spinner = p.spinner()
+spinner.start('正在生成图标集...')
+
+await fs.writeJSON(
+ path.resolve(process.cwd(), 'src/iconify/index.json'),
+ {
+ collections: answers.collections,
+ isOfflineUse: answers.isOfflineUse,
+ },
+)
+
+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.isOfflineUse) {
+ await fs.writeJSON(offlineFilePath, setData)
+ }
+}
+
+await fs.writeJSON(
+ path.resolve(process.cwd(), 'src/iconify/data.json'),
+ collectionsMeta,
+)
+
+// 使用 spawn 运行 eslint
+const eslint = spawn('eslint', ['src/iconify/data.json', 'src/iconify/index.json', '--cache', '--fix'], {
+ stdio: 'inherit',
+ shell: true,
+})
+
+eslint.on('error', (err) => {
+ p.log.error(`ESLint 执行失败: ${err.message}`)
+ process.exit(1)
+})
+
+eslint.on('close', (code) => {
+ if (code !== 0) {
+ p.log.error(`ESLint 执行失败,退出码: ${code}`)
+ process.exit(code)
+ }
+ spinner.stop('图标集生成完成!')
+})
diff --git a/admin-web/src/App.vue b/admin-web/src/App.vue
new file mode 100755
index 0000000..3a20a49
--- /dev/null
+++ b/admin-web/src/App.vue
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/api/index.ts b/admin-web/src/api/index.ts
new file mode 100755
index 0000000..6354a49
--- /dev/null
+++ b/admin-web/src/api/index.ts
@@ -0,0 +1,114 @@
+import axios from 'axios'
+// import qs from 'qs'
+import { toast } from 'vue-sonner'
+
+// 请求重试配置
+const MAX_RETRY_COUNT = 3 // 最大重试次数
+const RETRY_DELAY = 1000 // 重试延迟时间(毫秒)
+
+// 扩展 AxiosRequestConfig 类型
+declare module 'axios' {
+ export interface AxiosRequestConfig {
+ retry?: boolean
+ retryCount?: number
+ }
+}
+
+const api = axios.create({
+ baseURL: (import.meta.env.DEV && import.meta.env.VITE_OPEN_PROXY) ? '/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
+ },
+)
+
+// 处理错误信息的函数
+function handleError(error: any) {
+ if (error.status === 401) {
+ useUserStore().requestLogout()
+ }
+ else {
+ 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)}异常`
+ }
+ toast.error('Error', {
+ description: message,
+ })
+ }
+ return Promise.reject(error)
+}
+
+api.interceptors.response.use(
+ (response) => {
+ /**
+ * 全局拦截请求发送后返回的数据,如果数据有报错则在这做全局的错误提示
+ * 假设返回数据格式为:{ status: 1, error: '', data: {} }
+ * 规则是当 status 为 1 时表示请求成功,为 0 时表示接口需要登录或者登录状态失效,需要重新登录
+ * 请求出错时 error 会返回错误信息
+ */
+ if (typeof response.data === 'object') {
+ if (response.data.status === 1) {
+ if (response.data.error !== '') {
+ toast.warning('Warning', {
+ description: response.data.error,
+ })
+ return Promise.reject(response.data)
+ }
+ }
+ else {
+ useUserStore().requestLogout()
+ }
+ return Promise.resolve(response.data)
+ }
+ else {
+ return Promise.reject(response.data)
+ }
+ },
+ async (error) => {
+ // 获取请求配置
+ const config = error.config
+ // 如果配置不存在或未启用重试,则直接处理错误
+ if (!config || !config.retry) {
+ return handleError(error)
+ }
+ // 设置重试次数
+ config.retryCount = config.retryCount || 0
+ // 判断是否超过重试次数
+ if (config.retryCount >= MAX_RETRY_COUNT) {
+ return handleError(error)
+ }
+ // 重试次数自增
+ config.retryCount += 1
+ // 延迟重试
+ await new Promise(resolve => setTimeout(resolve, RETRY_DELAY))
+ // 重新发起请求
+ return api(config)
+ },
+)
+
+export default api
diff --git a/admin-web/src/api/modules/app.ts b/admin-web/src/api/modules/app.ts
new file mode 100755
index 0000000..30bfd07
--- /dev/null
+++ b/admin-web/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/admin-web/src/api/modules/user.ts b/admin-web/src/api/modules/user.ts
new file mode 100755
index 0000000..b9e032c
--- /dev/null
+++ b/admin-web/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/admin-web/src/assets/icons/403.svg b/admin-web/src/assets/icons/403.svg
new file mode 100755
index 0000000..85b974d
--- /dev/null
+++ b/admin-web/src/assets/icons/403.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/admin-web/src/assets/icons/404.svg b/admin-web/src/assets/icons/404.svg
new file mode 100755
index 0000000..6978852
--- /dev/null
+++ b/admin-web/src/assets/icons/404.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/admin-web/src/assets/icons/toolbar-collapse.svg b/admin-web/src/assets/icons/toolbar-collapse.svg
new file mode 100755
index 0000000..e09c77e
--- /dev/null
+++ b/admin-web/src/assets/icons/toolbar-collapse.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/admin-web/src/assets/images/login-banner.png b/admin-web/src/assets/images/login-banner.png
new file mode 100755
index 0000000..a71ecdf
Binary files /dev/null and b/admin-web/src/assets/images/login-banner.png differ
diff --git a/admin-web/src/assets/images/logo.svg b/admin-web/src/assets/images/logo.svg
new file mode 100644
index 0000000..488039c
--- /dev/null
+++ b/admin-web/src/assets/images/logo.svg
@@ -0,0 +1,14 @@
+
+
+
+
diff --git a/admin-web/src/assets/styles/globals.css b/admin-web/src/assets/styles/globals.css
new file mode 100755
index 0000000..00925b1
--- /dev/null
+++ b/admin-web/src/assets/styles/globals.css
@@ -0,0 +1,86 @@
+/* 页面布局 CSS 变量 */
+:root {
+ color-scheme: light;
+
+ /* 头部高度 */
+ --g-header-height: 60px;
+
+ /* 侧边栏宽度 */
+ --g-main-sidebar-width: 80px;
+ --g-sub-sidebar-width: 220px;
+ --g-sub-sidebar-collapse-width: 64px;
+
+ /* 侧边栏 Logo 区域高度 */
+ --g-sidebar-logo-height: 50px;
+
+ /* 标签栏高度 */
+ --g-tabbar-height: 50px;
+
+ /* 工具栏高度 */
+ --g-toolbar-height: 50px;
+
+ /* 滚动条颜色 */
+ --scrollbar-color: 240 5.9% 90%;
+
+ &.dark {
+ color-scheme: dark;
+
+ --scrollbar-color: 240 3.7% 15.9%;
+ }
+}
+
+/* 明暗模式 CSS 变量 */
+::view-transition-old(root),
+::view-transition-new(root) {
+ mix-blend-mode: normal;
+ animation: none;
+}
+
+::view-transition-old(root) {
+ z-index: 0;
+}
+
+::view-transition-new(root) {
+ z-index: 1;
+}
+
+.dark {
+ &::view-transition-old(root) {
+ z-index: 1;
+ }
+
+ &::view-transition-new(root) {
+ z-index: 0;
+ }
+}
+
+* {
+ scrollbar-color: hsl(var(--scrollbar-color)) transparent;
+ scrollbar-width: thin;
+}
+
+.disable-color-scheme-transition-duration *,
+.disable-color-scheme-transition-duration *::before,
+.disable-color-scheme-transition-duration *::after {
+ transition-duration: 0ms !important;
+}
+
+html,
+body {
+ height: 100%;
+}
+
+body {
+ box-sizing: border-box;
+ margin: 0;
+ -webkit-tap-highlight-color: transparent;
+}
+
+#app {
+ height: 100%;
+}
+
+/* textarea 字体跟随系统 */
+textarea {
+ font-family: inherit;
+}
diff --git a/admin-web/src/assets/styles/nprogress.css b/admin-web/src/assets/styles/nprogress.css
new file mode 100755
index 0000000..ffa5571
--- /dev/null
+++ b/admin-web/src/assets/styles/nprogress.css
@@ -0,0 +1,63 @@
+#nprogress {
+ pointer-events: none;
+
+ .bar {
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: 3000;
+ width: 100%;
+ height: 2px;
+ background: hsl(var(--primary));
+ }
+
+ .peg {
+ position: absolute;
+ right: 0;
+ display: block;
+ width: 100px;
+ height: 100%;
+ box-shadow: 0 0 10px hsl(var(--primary)), 0 0 5px hsl(var(--primary));
+ opacity: 1;
+ transform: rotate(3deg) translate(0, -4px);
+ }
+
+ .spinner {
+ position: fixed;
+ top: 11px;
+ right: 14px;
+ z-index: 2000;
+ display: block;
+
+ .spinner-icon {
+ box-sizing: border-box;
+ width: 18px;
+ height: 18px;
+ border: solid 2px transparent;
+ border-top-color: hsl(var(--primary));
+ border-left-color: hsl(var(--primary));
+ border-radius: 50%;
+ animation: nprogress-spinner 400ms linear infinite;
+ }
+ }
+}
+
+.nprogress-custom-parent {
+ position: relative;
+ overflow: hidden;
+
+ #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/admin-web/src/assets/styles/resources/utils.scss b/admin-web/src/assets/styles/resources/utils.scss
new file mode 100755
index 0000000..330f449
--- /dev/null
+++ b/admin-web/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;
+ overflow: hidden;
+ -webkit-box-orient: vertical;
+ -webkit-line-clamp: $line;
+ }
+}
+
+// 定位居中,默认水平居中,可选择垂直居中,或者水平垂直都居中
+@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 {
+ top: 50%;
+ left: 50%;
+ transform: translateX(-50%) translateY(-50%);
+ }
+}
+
+// 文字两端对齐
+%justify-align {
+ text-align: justify;
+ text-align-last: justify;
+}
+
+// 清除浮动
+%clearfix {
+ zoom: 1;
+
+ &::before,
+ &::after {
+ clear: both;
+ display: block;
+ content: "";
+ }
+}
diff --git a/admin-web/src/assets/styles/resources/variables.scss b/admin-web/src/assets/styles/resources/variables.scss
new file mode 100755
index 0000000..d314af3
--- /dev/null
+++ b/admin-web/src/assets/styles/resources/variables.scss
@@ -0,0 +1 @@
+// 全局变量
diff --git a/admin-web/src/components/AccountButton/index.vue b/admin-web/src/components/AccountButton/index.vue
new file mode 100644
index 0000000..5eb59ab
--- /dev/null
+++ b/admin-web/src/components/AccountButton/index.vue
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+ 当前登录账号
+
+
+
+
+
+ {{ userStore.account }}
+
+
+ [ 这里可以显示邮箱 ]
+
+
+
+
+
+
+
+
+
+
+
+ {{ userStore.account }}
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/components/AccountButton/profile.vue b/admin-web/src/components/AccountButton/profile.vue
new file mode 100644
index 0000000..fb7a4bf
--- /dev/null
+++ b/admin-web/src/components/AccountButton/profile.vue
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+ {{ tab.title }}
+
+
+ {{ tab.description }}
+
+
+
+
+
+
diff --git a/admin-web/src/components/AccountForm/EditPasswordForm.vue b/admin-web/src/components/AccountForm/EditPasswordForm.vue
new file mode 100644
index 0000000..6941a33
--- /dev/null
+++ b/admin-web/src/components/AccountForm/EditPasswordForm.vue
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+ 修改密码
+
+
+ 请输入原密码、新密码和确认密码
+
+
+
+
+
diff --git a/admin-web/src/components/AccountForm/LoginForm.vue b/admin-web/src/components/AccountForm/LoginForm.vue
new file mode 100644
index 0000000..72cfba6
--- /dev/null
+++ b/admin-web/src/components/AccountForm/LoginForm.vue
@@ -0,0 +1,150 @@
+
+
+
+
+
+
+ 欢迎使用 👋🏻
+
+
+ {{ title }}
+
+
+
+
+
+
+
+
+
演示账号一键登录
+
+
+ admin
+
+
+ test
+
+
+
+
+
+
+
+
+ 请使用微信扫码登录
+
+
+
+
+
diff --git a/admin-web/src/components/AccountForm/RegisterForm.vue b/admin-web/src/components/AccountForm/RegisterForm.vue
new file mode 100644
index 0000000..458132f
--- /dev/null
+++ b/admin-web/src/components/AccountForm/RegisterForm.vue
@@ -0,0 +1,100 @@
+
+
+
+
+
diff --git a/admin-web/src/components/AccountForm/ResetPasswordForm.vue b/admin-web/src/components/AccountForm/ResetPasswordForm.vue
new file mode 100644
index 0000000..ddfca09
--- /dev/null
+++ b/admin-web/src/components/AccountForm/ResetPasswordForm.vue
@@ -0,0 +1,108 @@
+
+
+
+
+
diff --git a/admin-web/src/iconify/data.json b/admin-web/src/iconify/data.json
new file mode 100644
index 0000000..0de0274
--- /dev/null
+++ b/admin-web/src/iconify/data.json
@@ -0,0 +1 @@
+[{ "prefix": "ant-design", "info": { "name": "Ant Design Icons", "total": 830, "version": "4.4.2", "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", "layout-outlined", "dash-outlined", "cloud-twotone"], "height": 16, "category": "UI 16px / 32px", "tags": ["Has Padding"], "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", "baidu-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", "bilibili-filled", "bilibili-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", "discord-filled", "discord-outlined", "dislike-filled", "dislike-outlined", "dislike-twotone", "docker-outlined", "dollar-circle-filled", "dollar-circle-outlined", "dollar-circle-twotone", "dollar-outlined", "dollar-twotone", "dot-chart-outlined", "dot-net-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", "harmony-o-s-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", "java-outlined", "java-script-outlined", "key-outlined", "kubernetes-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", "linux-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", "merge-filled", "merge-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", "moon-filled", "moon-outlined", "more-outlined", "muted-filled", "muted-outlined", "node-collapse-outlined", "node-expand-outlined", "node-index-outlined", "notification-filled", "notification-outlined", "notification-twotone", "number-outlined", "one-to-one-outlined", "open-a-i-filled", "open-a-i-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", "pinterest-filled", "pinterest-outlined", "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", "product-filled", "product-outlined", "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", "python-outlined", "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", "ruby-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", "signature-filled", "signature-outlined", "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", "spotify-filled", "spotify-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", "sun-filled", "sun-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", "tik-tok-filled", "tik-tok-outlined", "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", "truck-filled", "truck-outlined", "twitch-outlined", "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", "wechat-work-filled", "wechat-work-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", "x-filled", "x-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": "ep", "info": { "name": "Element Plus", "total": 293, "version": "2.3.1", "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", "briefcase", "platform", "flag"], "height": 32, "displayHeight": 16, "category": "UI 16px / 32px", "tags": ["Precise Shapes", "Has Padding"], "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", "chrome-filled", "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", "gold-medal", "goods", "goods-filled", "grape", "grid", "guide", "handbag", "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", "memo", "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", "quartz-watch", "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", "shopping-trolley", "smoking", "soccer", "sold-out", "sort", "sort-down", "sort-up", "stamp", "star", "star-filled", "stopwatch", "success-filled", "sugar", "suitcase", "suitcase-line", "sunny", "sunrise", "sunset", "switch", "switch-button", "switch-filled", "takeaway-box", "ticket", "tickets", "timer", "toilet-paper", "tools", "top", "top-left", "top-right", "trend-charts", "trophy", "trophy-base", "turn-off", "umbrella", "unlock", "upload", "upload-filled", "user", "user-filled", "van", "video-camera", "video-camera-filled", "video-pause", "video-play", "view", "wallet", "wallet-filled", "warn-triangle-filled", "warning", "warning-filled", "watch", "watermelon", "wind-power", "zoom-in", "zoom-out"] }, { "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-ukm", "wf", "de", "ie", "th"], "height": 24, "category": "Flags / Maps", "tags": [], "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", "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": 2658, "version": "1.4.2", "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", "sort", "lightning", "pinwheel"], "height": 24, "category": "UI Multicolor", "tags": ["Precise Shapes", "Has Padding", "Uses Stroke"], "palette": true }, "icons": ["a-cane", "abdominal", "abnormal", "acceleration", "accept-email", "acoustic", "activity-source", "ad", "ad-product", "add", "add-computer", "add-four", "add-item", "add-mode", "add-music", "add-one", "add-pic", "add-picture", "add-print", "add-subset", "add-subtract", "add-text", "add-text-two", "add-three", "add-two", "add-user", "add-web", "address-book", "adjacent-item", "adjustment", "adobe-illustrate", "adobe-indesign", "adobe-lightroom", "adobe-photoshop", "afferent", "afferent-four", "afferent-three", "afferent-two", "afro-pick", "agreement", "aiming", "air-bike", "air-conditioning", "airplane", "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", "ambulance", "analysis", "anchor", "anchor-one", "anchor-round", "anchor-squre", "anchor-two", "android", "angry-face", "anguished-face", "announcement", "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", "aquarius", "arc-de-triomphe", "archers-bow", "archery", "area-map", "arena", "aries", "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", "bachelor-cap-one", "bachelor-cap-two", "back", "back-one", "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-bat", "baseball-cap", "basketball", "basketball-clothes", "basketball-one", "basketball-stand", "bat", "battery-charge", "battery-empty", "battery-failure", "battery-full", "battery-storage", "battery-tips", "battery-working", "battery-working-one", "beach-umbrella", "bear", "beauty", "beauty-instrument", "bedside", "bedside-two", "bee", "beer", "beer-mug", "behance", "bell-ring", "belt", "benz", "bezier-curve", "bib", "big-clock", "big-x", "bike", "bill", "bird", "birthday-cake", "bitcoin", "black-eight", "blackboard", "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", "bloom", "blossom", "bluetooth", "boiler", "bolt-one", "bone", "book", "book-one", "book-open", "bookmark", "bookmark-one", "bookmark-three", "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-one", "bus-two", "butterfly", "buy", "bydesign", "bye", "bytedance", "bytedance-applets", "bytedance-mini-app", "cable-car", "cactus", "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", "cancer", "candy", "canned-fruit", "capricornus", "car", "car-battery", "card-two", "cardioelectric", "carousel", "carousel-video", "carrot", "cast-screen", "castle", "cat", "category-management", "cattle", "cattle-zodiac", "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", "chicken-zodiac", "child-with-pacifier", "children-cap", "children-pyramid", "chili", "chimney", "chinese", "chinese-one", "chinese-pavilion", "chip", "chopping-board", "chopsticks-fork", "christmas-tree", "christmas-tree-one", "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-computer", "code-download", "code-laptop", "code-one", "coffee-machine", "cola", "collapse-text-input", "collect-computer", "collect-laptop", "collect-picture", "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", "cross-society", "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", "deer", "degree-hat", "delete", "delete-five", "delete-four", "delete-key", "delete-mode", "delete-one", "delete-themes", "delete-three", "delete-two", "delivery", "deposit", "descend", "desk-lamp", "desk-lamp-one", "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", "disabaled-web", "disabled-computer", "disabled-laptop", "disabled-picture", "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", "dividing-line-one", "diving", "diving-bottle", "diving-suit", "division", "dizzy-face", "doc-add", "doc-detail", "doc-fail", "doc-search", "doc-search-two", "doc-success", "document-folder", "dog", "dog-zodiac", "dollar", "dolphin", "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-picture", "down-small", "down-square", "down-two", "download", "download-computer", "download-four", "download-laptop", "download-one", "download-three", "download-two", "download-web", "drag", "dragon-zodiac", "dribble", "drink", "drone", "drone-one", "drop-down-list", "drop-shadow-down", "drop-shadow-left", "drop-shadow-right", "drop-shadow-up", "dropbox", "drumstick", "dubai", "duck", "dumbbel-line", "dumbbell", "dvi", "eagle", "earth", "easy", "ecg", "edit", "edit-movie", "edit-name", "edit-one", "edit-two", "editing", "editor", "eeg", "effects", "efferent-four", "efferent-three", "egg", "egg-one", "eggplant", "eiffel-tower", "eight-key", "electric-drill", "electric-iron", "electric-wave", "electrocardiogram", "electronic-door-lock", "electronic-locks-close", "electronic-locks-open", "electronic-pen", "elephant", "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", "engineering-brand", "engineering-vehicle", "english", "english-mustache", "enquire", "enter-key", "enter-key-one", "enter-the-keyboard", "entertainment", "envelope", "envelope-one", "equal-ratio", "equalizer", "erase", "error", "error-computer", "error-picture", "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", "facial-mask", "factory-building", "fail-picture", "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", "film", "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", "first-aid-kit", "fish", "fish-one", "fishing", "fist", "fitness", "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", "floor-tile", "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-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", "foot", "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", "frigate", "frog", "frowning-face-whit-open-mouth", "fruiter", "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", "gamepad", "garage", "garlic", "gas", "gastrointestinal", "gate", "gate-machine", "gauze", "gavel", "gemini", "general-branch", "geometric-flowers", "germs", "ghost", "gift", "gift-bag", "gift-box", "girl", "girl-one", "girl-two", "github", "github-one", "gitlab", "glasses", "glasses-one", "glasses-three", "globe", "glove", "go-ahead", "go-end", "go-on", "go-start", "goblet", "goblet-cracking", "goblet-full", "goblet-one", "gold-medal", "gold-medal-two", "golf-course", "gongfu", "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", "heart-rate", "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", "high-speed-rail", "hippo", "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", "horse-zodiac", "hospital", "hospital-bed", "hospital-four", "hospital-three", "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", "infusion", "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", "invert-left", "invert-right", "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", "jump", "kagi-map", "kettle", "kettle-one", "key", "key-one", "key-two", "keyboard", "keyboard-one", "keyhole", "keyline", "kitchen-knife", "knife-fork", "koala-bear", "kungfu", "label", "ladder", "ladder-one", "lamp", "land-surveying", "landing", "landscape", "laptop", "laptop-computer", "laptop-one", "lark", "lark-one", "lattice-pattern", "layers", "layout-five", "layout-four", "layout-one", "layout-three", "layout-two", "leaf", "leaves", "leaves-one", "leaves-two", "led-diode", "left", "left-alignment", "left-and-right-branch", "left-bar", "left-branch", "left-c", "left-expand", "left-one", "left-small", "left-small-down", "left-small-up", "left-square", "left-two", "lemon", "lens-alignment", "leo", "level", "level-adjustment", "level-eight-title", "level-five-title", "level-four-title", "level-nine-title", "level-seven-title", "level-six-title", "libra", "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", "lock-one", "locking-computer", "locking-laptop", "locking-picture", "locking-web", "log", "login", "logout", "lollipop", "loop-once", "lotion", "lotus", "loudly-crying-face", "loudly-crying-face-whit-open-mouth", "love-and-help", "lower-branch", "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", "medal-one", "mediaeditor", "medical-box", "medical-files", "medical-mark", "medication-time", "medicine-bottle", "medicine-bottle-one", "medicine-chest", "memory", "memory-card", "memory-card-one", "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", "monkey", "monkey-zodiac", "monument-one", "monument-two", "moon", "more", "more-app", "more-four", "more-one", "more-three", "more-two", "mosaic", "mountain", "mounted", "mouse", "mouse-one", "mouse-zodiac", "mouth", "move", "move-in", "move-in-one", "move-one", "movie", "movie-board", "moving-picture", "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", "needle", "negative-dynamics", "nested-arrows", "nests", "network-drive", "network-tree", "neural", "neutral-face", "new-afferent", "new-computer", "new-dianziqian", "new-efferent", "new-lark", "new-picture", "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", "nurse-cap", "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", "owl", "pacifier", "pad", "page", "page-template", "pagoda", "paint", "painted-eggshell", "painted-screen", "palace", "palm", "panda", "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", "pencil", "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-album", "picture-one", "pie", "pie-five", "pie-four", "pie-one", "pie-seven", "pie-six", "pie-three", "pie-two", "pig", "pig-zodiac", "pigeon", "pill", "pills", "pin", "pineapple", "pinwheel", "pisces", "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", "pushpin", "puzzle", "pyramid", "pyramid-one", "qingniao-clue", "qiyehao", "quadrangular-pyramid", "quadrilateral", "quote", "rabbit", "rabbit-zodiac", "radar", "radar-chart", "radar-three", "radar-two", "radiation", "radio", "radio-nanny", "radio-one", "radio-two", "radish", "radish-one", "railway", "ranking", "ranking-list", "rattle", "rattle-one", "razor", "read-book", "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-branch", "right-branch-one", "right-branch-two", "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-one", "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", "rule-two", "ruler", "ruler-one", "run-left", "s-turn-down", "s-turn-left", "s-turn-right", "s-turn-up", "safe-retrieval", "sagittarius", "sailboat", "sailboat-one", "sailing", "sales-report", "sandals", "sandstorm", "sandwich", "sandwich-one", "sapling", "save", "save-one", "scale", "scale-one", "scallion", "scan", "scan-code", "scan-setting", "scanning", "scanning-two", "scatter-alignment", "schedule", "school", "scissors", "scoreboard", "scorpio", "screen-rotation", "screenshot", "screenshot-one", "screenshot-two", "screwdriver", "sd", "sd-card", "seal", "search", "seat", "security", "security-stall", "seedling", "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-computer", "setting-config", "setting-laptop", "setting-one", "setting-three", "setting-two", "setting-web", "seven-key", "shade", "shake", "share", "share-one", "share-sys", "share-three", "share-two", "shaver", "shaver-one", "shaving", "sheep-zodiac", "shield", "shield-add", "ship", "shop", "shopping", "shopping-bag", "shopping-bag-one", "shopping-cart", "shopping-cart-add", "shopping-cart-del", "shopping-cart-one", "shopping-cart-two", "shopping-mall", "short-skirt", "shorts", "shoulder-bag", "shovel", "shovel-one", "shower-head", "shrimp", "shuffle", "shuffle-one", "shutter-priority", "sickbed", "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", "sleep-two", "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", "snake-zodiac", "snow", "snowflake", "snowman", "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", "source-code", "soybean-milk-maker", "spa-candle", "space-colony", "spanner", "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", "sporting", "square", "square-small", "ssd", "stack-light", "stamp", "stand-up", "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", "stretching-one", "strikethrough", "strongbox", "subtract-selection", "subtract-selection-one", "subway", "success", "success-picture", "sum", "sun", "sun-hat", "sun-one", "sunbath", "sunny", "sunrise", "sunset", "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", "take-off-one", "taobao", "tape", "tape-measure", "target", "target-one", "target-two", "taurus", "taxi", "tea", "tea-drink", "teapot", "teeth", "telegram", "telescope", "tencent-qq", "tennis", "tent", "tent-banner", "terminal", "termination-file", "terrace", "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", "thermometer-one", "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", "tiger-zodiac", "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", "toolkit", "top-bar", "topbuzz", "topic", "topic-discussion", "torch", "tour-bus", "towel", "tower", "tower-of-babel", "tower-of-pisa", "toxins", "trace", "trademark", "traditional-chinese-medicine", "train", "transaction", "transaction-order", "transfer", "transfer-data", "transform", "translate", "translation", "transport", "transporter", "trapezoid", "tray", "treadmill", "treadmill-one", "treadmill-two", "treasure-chest", "tree", "tree-diagram", "tree-list", "tree-one", "tree-two", "trend", "trend-two", "trending-down", "trending-up", "triangle", "triangle-round-rectangle", "triangle-ruler", "triangular-pyramid", "trophy", "trousers-bell-bottoms", "truck", "trumpet", "trunk", "tub", "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", "unlock-one", "unordered-list", "up", "up-and-down", "up-c", "up-one", "up-small", "up-square", "up-two", "update-rotation", "upload", "upload-computer", "upload-laptop", "upload-logs", "upload-one", "upload-picture", "upload-three", "upload-two", "upload-web", "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", "vacation", "vacuum-cleaner", "vegetable-basket", "vegetables", "vertical-spacing-between-items", "vertical-tidy-up", "vertical-timeline", "vertically-centered", "vest", "vial", "vicia-faba", "video", "video-conference", "video-file", "video-one", "video-two", "videocamera", "videocamera-one", "viencharts", "view-grid-card", "view-grid-detail", "view-grid-list", "view-list", "viewfinder", "vigo", "vip", "vip-one", "virgo", "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", "waistline", "wallet", "wallet-one", "wallet-three", "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", "web-page", "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", "whale", "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", "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": 7447, "author": { "name": "Pictogrammers", "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", "skip-previous", "home-variant", "lock-open-outline"], "height": 24, "category": "Material", "tags": ["Precise Shapes", "Has Padding"], "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-badge", "account-badge-outline", "account-box", "account-box-edit-outline", "account-box-minus-outline", "account-box-multiple", "account-box-multiple-outline", "account-box-outline", "account-box-plus-outline", "account-cancel", "account-cancel-outline", "account-card", "account-card-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-credit-card", "account-credit-card-outline", "account-details", "account-details-outline", "account-edit", "account-edit-outline", "account-eye", "account-eye-outline", "account-file", "account-file-outline", "account-file-text", "account-file-text-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-tag", "account-tag-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", "air-purifier-off", "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-oscillating", "arrow-oscillating-off", "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", "artboard", "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", "atv", "audio-input-rca", "audio-input-stereo-minijack", "audio-input-xlr", "audio-video", "audio-video-off", "augmented-reality", "aurora", "auto-download", "auto-fix", "auto-mode", "auto-upload", "autorenew", "autorenew-off", "av-timer", "awning", "awning-outline", "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-personal-plus", "bag-personal-plus-outline", "bag-personal-tag", "bag-personal-tag-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-circle", "bank-circle-outline", "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", "baseball-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-clock", "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", "bench", "bench-back", "beta", "betamax", "biathlon", "bicycle", "bicycle-basket", "bicycle-cargo", "bicycle-electric", "bicycle-penny-farthing", "bike", "bike-fast", "bike-pedal", "bike-pedal-clipless", "bike-pedal-mountain", "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-blank-variant-outline", "book-open-outline", "book-open-page-variant", "book-open-page-variant-outline", "book-open-variant", "book-open-variant-outline", "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", "bookmark-box-multiple", "bookmark-box-multiple-outline", "bookmark-box-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-sign", "bus-stop", "bus-stop-covered", "bus-stop-uncovered", "bus-wrench", "butterfly", "butterfly-outline", "button-cursor", "button-pointer", "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-alert-outline", "calendar-arrow-left", "calendar-arrow-right", "calendar-badge", "calendar-badge-outline", "calendar-blank", "calendar-blank-multiple", "calendar-blank-outline", "calendar-check", "calendar-check-outline", "calendar-clock", "calendar-clock-outline", "calendar-collapse-horizontal", "calendar-collapse-horizontal-outline", "calendar-cursor", "calendar-cursor-outline", "calendar-edit", "calendar-edit-outline", "calendar-end", "calendar-end-outline", "calendar-expand-horizontal", "calendar-expand-horizontal-outline", "calendar-export", "calendar-export-outline", "calendar-filter", "calendar-filter-outline", "calendar-heart", "calendar-heart-outline", "calendar-import", "calendar-import-outline", "calendar-lock", "calendar-lock-open", "calendar-lock-open-outline", "calendar-lock-outline", "calendar-minus", "calendar-minus-outline", "calendar-month", "calendar-month-outline", "calendar-multiple", "calendar-multiple-check", "calendar-multiselect", "calendar-multiselect-outline", "calendar-outline", "calendar-plus", "calendar-plus-outline", "calendar-question", "calendar-question-outline", "calendar-range", "calendar-range-outline", "calendar-refresh", "calendar-refresh-outline", "calendar-remove", "calendar-remove-outline", "calendar-search", "calendar-search-outline", "calendar-select", "calendar-star", "calendar-star-four-points", "calendar-star-outline", "calendar-start", "calendar-start-outline", "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-open", "camera-lock-open-outline", "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-door-lock-open", "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-search", "car-search-outline", "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-percent", "cart-plus", "cart-remove", "cart-variant", "case-sensitive-alt", "cash", "cash-100", "cash-check", "cash-clock", "cash-edit", "cash-fast", "cash-lock", "cash-lock-open", "cash-marker", "cash-minus", "cash-multiple", "cash-off", "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", "charity-search", "chart-arc", "chart-areaspline", "chart-areaspline-variant", "chart-bar", "chart-bar-stacked", "chart-bell-curve", "chart-bell-curve-cumulative", "chart-box", "chart-box-multiple", "chart-box-multiple-outline", "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-pie-outline", "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", "checkbook-arrow-left", "checkbook-arrow-right", "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-intermediate", "checkbox-intermediate-variant", "checkbox-marked", "checkbox-marked-circle", "checkbox-marked-circle-auto-outline", "checkbox-marked-circle-minus-outline", "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-switch", "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-star-four-points", "clock-star-four-points-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-alert-outline", "cloud-arrow-down", "cloud-arrow-down-outline", "cloud-arrow-left", "cloud-arrow-left-outline", "cloud-arrow-right", "cloud-arrow-right-outline", "cloud-arrow-up", "cloud-arrow-up-outline", "cloud-braces", "cloud-cancel", "cloud-cancel-outline", "cloud-check", "cloud-check-outline", "cloud-check-variant", "cloud-check-variant-outline", "cloud-circle", "cloud-circle-outline", "cloud-clock", "cloud-clock-outline", "cloud-cog", "cloud-cog-outline", "cloud-download", "cloud-download-outline", "cloud-key", "cloud-key-outline", "cloud-lock", "cloud-lock-open", "cloud-lock-open-outline", "cloud-lock-outline", "cloud-minus", "cloud-minus-outline", "cloud-off", "cloud-off-outline", "cloud-outline", "cloud-percent", "cloud-percent-outline", "cloud-plus", "cloud-plus-outline", "cloud-print", "cloud-print-outline", "cloud-question", "cloud-question-outline", "cloud-refresh", "cloud-refresh-outline", "cloud-refresh-variant", "cloud-refresh-variant-outline", "cloud-remove", "cloud-remove-outline", "cloud-search", "cloud-search-outline", "cloud-sync", "cloud-sync-outline", "cloud-tags", "cloud-upload", "cloud-upload-outline", "clouds", "clover", "clover-outline", "coach-lamp", "coach-lamp-variant", "coat-rack", "code-array", "code-block-braces", "code-block-brackets", "code-block-parentheses", "code-block-tags", "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-minus", "content-save-minus-outline", "content-save-move", "content-save-move-outline", "content-save-off", "content-save-off-outline", "content-save-outline", "content-save-plus", "content-save-plus-outline", "content-save-settings", "content-save-settings-outline", "contrast", "contrast-box", "contrast-circle", "controller", "controller-classic", "controller-classic-outline", "controller-off", "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", "creation-outline", "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-thb", "currency-try", "currency-twd", "currency-uah", "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", "desk-lamp-off", "desk-lamp-on", "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", "diaper-outline", "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-mask", "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", "domain-switch", "dome-light", "domino-mask", "donkey", "door", "door-closed", "door-closed-cancel", "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-multiple-outline", "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-down", "earth-arrow-left", "earth-arrow-right", "earth-arrow-up", "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-circle", "eject-circle-outline", "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-arrow-left", "email-arrow-left-outline", "email-arrow-right", "email-arrow-right-outline", "email-box", "email-check", "email-check-outline", "email-edit", "email-edit-outline", "email-fast", "email-fast-outline", "email-heart-outline", "email-lock", "email-lock-outline", "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-heart-outline", "email-open-multiple", "email-open-multiple-outline", "email-open-outline", "email-outline", "email-plus", "email-plus-outline", "email-remove", "email-remove-outline", "email-seal", "email-seal-outline", "email-search", "email-search-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-minus", "emoticon-minus-outline", "emoticon-neutral", "emoticon-neutral-outline", "emoticon-outline", "emoticon-plus", "emoticon-plus-outline", "emoticon-poop", "emoticon-poop-outline", "emoticon-remove", "emoticon-remove-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", "ethernet-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-closed", "eye-lock", "eye-lock-open", "eye-lock-open-outline", "eye-lock-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-45", "fast-forward-5", "fast-forward-60", "fast-forward-outline", "faucet", "faucet-variant", "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-arrow-right", "file-document-arrow-right-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-refresh", "file-document-refresh-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-four-points", "file-star-four-points-outline", "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", "file-xml-box", "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-station", "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-minus", "flag-variant-minus-outline", "flag-variant-off", "flag-variant-off-outline", "flag-variant-outline", "flag-variant-plus", "flag-variant-plus-outline", "flag-variant-remove", "flag-variant-remove-outline", "flare", "flash", "flash-alert", "flash-alert-outline", "flash-auto", "flash-off", "flash-off-outline", "flash-outline", "flash-red-eye", "flash-triangle", "flash-triangle-outline", "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-minus", "folder-minus-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", "forest-outline", "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-group-plus", "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-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-in-use", "gas-station-in-use-outline", "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", "generator-mobile", "generator-portable", "generator-stationary", "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-light-outline", "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-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-cycle", "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", "hdmi-port", "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-search", "heart-settings", "heart-settings-outline", "heat-pump", "heat-pump-outline", "heat-wave", "heating-coil", "helicopter", "help", "help-box", "help-box-multiple", "help-box-multiple-outline", "help-box-outline", "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-percent", "home-percent-outline", "home-plus", "home-plus-outline", "home-remove", "home-remove-outline", "home-roof", "home-search", "home-search-outline", "home-silo", "home-silo-outline", "home-sound-in", "home-sound-in-outline", "home-sound-out", "home-sound-out-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-12", "hours-24", "houzz", "houzz-box", "hub", "hub-outline", "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-female-child", "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-male-male-child", "human-non-binary", "human-pregnant", "human-queue", "human-scooter", "human-walker", "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-check", "image-check-outline", "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-drama-outline", "image-filter-frames", "image-filter-hdr", "image-filter-hdr-outline", "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-minus-outline", "image-move", "image-multiple", "image-multiple-outline", "image-off", "image-off-outline", "image-outline", "image-plus", "image-plus-outline", "image-refresh", "image-refresh-outline", "image-remove", "image-remove-outline", "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-box", "information-box-outline", "information-off", "information-off-outline", "information-outline", "information-slab-box", "information-slab-box-outline", "information-slab-circle", "information-slab-circle-outline", "information-slab-symbol", "information-symbol", "information-variant", "information-variant-box", "information-variant-box-outline", "information-variant-circle", "information-variant-circle-outline", "instagram", "instapaper", "instrument-triangle", "integrated-circuit-chip", "invert-colors", "invert-colors-off", "invoice", "invoice-arrow-left", "invoice-arrow-left-outline", "invoice-arrow-right", "invoice-arrow-right-outline", "invoice-check", "invoice-check-outline", "invoice-clock", "invoice-clock-outline", "invoice-edit", "invoice-edit-outline", "invoice-export-outline", "invoice-fast", "invoice-fast-outline", "invoice-import", "invoice-import-outline", "invoice-list", "invoice-list-outline", "invoice-minus", "invoice-minus-outline", "invoice-multiple", "invoice-multiple-outline", "invoice-outline", "invoice-plus", "invoice-plus-outline", "invoice-remove", "invoice-remove-outline", "invoice-send", "invoice-send-outline", "invoice-text", "invoice-text-arrow-left", "invoice-text-arrow-left-outline", "invoice-text-arrow-right", "invoice-text-arrow-right-outline", "invoice-text-check", "invoice-text-check-outline", "invoice-text-clock", "invoice-text-clock-outline", "invoice-text-edit", "invoice-text-edit-outline", "invoice-text-fast", "invoice-text-fast-outline", "invoice-text-minus", "invoice-text-minus-outline", "invoice-text-multiple", "invoice-text-multiple-outline", "invoice-text-outline", "invoice-text-plus", "invoice-text-plus-outline", "invoice-text-remove", "invoice-text-remove-outline", "invoice-text-send", "invoice-text-send-outline", "iobroker", "ip", "ip-network", "ip-network-outline", "ip-outline", "ipod", "iron", "iron-board", "iron-outline", "island", "island-variant", "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-close-outline", "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", "knob", "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-plots-marker", "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", "lectern", "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-circle", "link-circle-outline", "link-edit", "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-box", "list-box-outline", "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-percent", "lock-percent-open", "lock-percent-open-outline", "lock-percent-open-variant", "lock-percent-open-variant-outline", "lock-percent-outline", "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", "medication", "medication-outline", "meditation", "medium", "meetup", "memory", "memory-arrow-down", "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-check", "message-check-outline", "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-message", "microphone-message-off", "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", "monitor-vertical", "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", "mosque-outline", "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", "motorbike-off", "mouse", "mouse-bluetooth", "mouse-left-click", "mouse-left-click-outline", "mouse-move-down", "mouse-move-up", "mouse-move-vertical", "mouse-off", "mouse-outline", "mouse-right-click", "mouse-right-click-outline", "mouse-scroll-wheel", "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", "mower-bag-on", "mower-on", "muffin", "multicast", "multimedia", "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-minus", "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-outline", "nature-people", "nature-people-outline", "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-edit", "octagram-edit-outline", "octagram-minus", "octagram-minus-outline", "octagram-outline", "octagram-plus", "octagram-plus-outline", "octahedron", "octahedron-off", "odnoklassniki", "offer", "office-building", "office-building-cog", "office-building-cog-outline", "office-building-marker", "office-building-marker-outline", "office-building-minus", "office-building-minus-outline", "office-building-outline", "office-building-plus", "office-building-plus-outline", "office-building-remove", "office-building-remove-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-check", "package-down", "package-up", "package-variant", "package-variant-closed", "package-variant-closed-check", "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-alert", "passport-biometric", "passport-cancel", "passport-check", "passport-minus", "passport-plus", "passport-remove", "pasta", "patio-heater", "patreon", "pause", "pause-box", "pause-box-outline", "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", "pencil-ruler-outline", "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-outgoing", "phone-incoming-outgoing-outline", "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-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-multiple", "pill-off", "pillar", "pin", "pin-off", "pin-off-outline", "pin-outline", "pine-tree", "pine-tree-box", "pine-tree-fire", "pine-tree-variant", "pine-tree-variant-outline", "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-edit-outline", "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-battery", "power-plug-battery-outline", "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-off", "printer-3d-nozzle-off-outline", "printer-3d-nozzle-outline", "printer-3d-off", "printer-alert", "printer-check", "printer-eye", "printer-off", "printer-off-outline", "printer-outline", "printer-pos", "printer-pos-alert", "printer-pos-alert-outline", "printer-pos-cancel", "printer-pos-cancel-outline", "printer-pos-check", "printer-pos-check-outline", "printer-pos-cog", "printer-pos-cog-outline", "printer-pos-edit", "printer-pos-edit-outline", "printer-pos-minus", "printer-pos-minus-outline", "printer-pos-network", "printer-pos-network-outline", "printer-pos-off", "printer-pos-off-outline", "printer-pos-outline", "printer-pos-pause", "printer-pos-pause-outline", "printer-pos-play", "printer-pos-play-outline", "printer-pos-plus", "printer-pos-plus-outline", "printer-pos-refresh", "printer-pos-refresh-outline", "printer-pos-remove", "printer-pos-remove-outline", "printer-pos-star", "printer-pos-star-outline", "printer-pos-stop", "printer-pos-stop-outline", "printer-pos-sync", "printer-pos-sync-outline", "printer-pos-wrench", "printer-pos-wrench-outline", "printer-search", "printer-settings", "printer-wireless", "priority-high", "priority-low", "professional-hexagon", "progress-alert", "progress-check", "progress-clock", "progress-close", "progress-download", "progress-helper", "progress-pencil", "progress-question", "progress-star", "progress-star-four-points", "progress-tag", "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", "pump-off", "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", "queue-first-in-last-out", "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-indeterminate-variant", "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-clock", "receipt-clock-outline", "receipt-outline", "receipt-send", "receipt-send-outline", "receipt-text", "receipt-text-arrow-left", "receipt-text-arrow-left-outline", "receipt-text-arrow-right", "receipt-text-arrow-right-outline", "receipt-text-check", "receipt-text-check-outline", "receipt-text-clock", "receipt-text-clock-outline", "receipt-text-edit", "receipt-text-edit-outline", "receipt-text-minus", "receipt-text-minus-outline", "receipt-text-outline", "receipt-text-plus", "receipt-text-plus-outline", "receipt-text-remove", "receipt-text-remove-outline", "receipt-text-send", "receipt-text-send-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", "rename-box", "rename-box-outline", "rename-outline", "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-45", "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-alert", "robot-vacuum-off", "robot-vacuum-variant", "robot-vacuum-variant-alert", "robot-vacuum-variant-off", "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-network-wireless", "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-outline", "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-arrow-down", "select-arrow-up", "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", "send-variant", "send-variant-clock", "send-variant-clock-outline", "send-variant-outline", "serial-port", "server", "server-minus", "server-minus-outline", "server-network", "server-network-off", "server-network-outline", "server-off", "server-outline", "server-plus", "server-plus-outline", "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-plus-outline", "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-language", "sign-language-outline", "sign-pole", "sign-real-estate", "sign-text", "sign-yield", "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", "silo-outline", "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-message", "speaker-multiple", "speaker-off", "speaker-pause", "speaker-play", "speaker-stop", "speaker-wireless", "spear", "speedometer", "speedometer-medium", "speedometer-slow", "spellcheck", "sphere", "sphere-off", "spider", "spider-outline", "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-circle-outline", "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-box", "star-four-points-box-outline", "star-four-points-circle", "star-four-points-circle-outline", "star-four-points-outline", "star-four-points-small", "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-check", "storefront-check-outline", "storefront-edit", "storefront-edit-outline", "storefront-minus", "storefront-minus-outline", "storefront-outline", "storefront-plus", "storefront-plus-outline", "storefront-remove", "storefront-remove-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-angle", "sun-angle-outline", "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-hidden", "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-filter", "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-question", "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-edit", "tag-edit-outline", "tag-faces", "tag-heart", "tag-heart-outline", "tag-hidden", "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-speaker", "television-speaker-off", "television-stop", "temperature-celsius", "temperature-fahrenheit", "temperature-kelvin", "temple-buddhist", "temple-buddhist-outline", "temple-hindu", "temple-hindu-outline", "tennis", "tennis-ball", "tennis-ball-outline", "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", "texture", "texture-box", "theater", "theme-light-dark", "thermometer", "thermometer-alert", "thermometer-auto", "thermometer-bluetooth", "thermometer-check", "thermometer-chevron-down", "thermometer-chevron-up", "thermometer-high", "thermometer-lines", "thermometer-low", "thermometer-minus", "thermometer-off", "thermometer-plus", "thermometer-probe", "thermometer-probe-off", "thermometer-water", "thermostat", "thermostat-auto", "thermostat-box", "thermostat-box-auto", "thermostat-cog", "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-minus", "timeline-minus-outline", "timeline-outline", "timeline-plus", "timeline-plus-outline", "timeline-question", "timeline-question-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-question", "tooltip-question-outline", "tooltip-remove", "tooltip-remove-outline", "tooltip-text", "tooltip-text-outline", "tooth", "tooth-outline", "toothbrush", "toothbrush-electric", "toothbrush-paste", "tor", "torch", "tortoise", "toslink", "touch-text-outline", "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-bus", "train-car", "train-car-autorack", "train-car-box", "train-car-box-full", "train-car-box-open", "train-car-caboose", "train-car-centerbeam", "train-car-centerbeam-full", "train-car-container", "train-car-flatbed", "train-car-flatbed-car", "train-car-flatbed-tank", "train-car-gondola", "train-car-gondola-full", "train-car-hopper", "train-car-hopper-covered", "train-car-hopper-full", "train-car-intermodal", "train-car-passenger", "train-car-passenger-door", "train-car-passenger-door-open", "train-car-passenger-variant", "train-car-tank", "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", "translate-variant", "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", "treasure-chest-outline", "tree", "tree-outline", "trello", "trending-down", "trending-neutral", "trending-up", "triangle", "triangle-down", "triangle-down-outline", "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-off-road", "truck-off-road-off", "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", "underwear-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-box", "upload-box-outline", "upload-circle", "upload-circle-outline", "upload-lock", "upload-lock-outline", "upload-multiple", "upload-multiple-outline", "upload-network", "upload-network-outline", "upload-off", "upload-off-outline", "upload-outline", "usb", "usb-c-port", "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-point-edit", "vector-point-minus", "vector-point-plus", "vector-point-select", "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-standard-definition", "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-compact", "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-equal", "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-bifold", "wallet-bifold-outline", "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-auto", "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", "wave-arrow-down", "wave-arrow-up", "wave-undercurrent", "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-dust", "weather-fog", "weather-hail", "weather-hazy", "weather-hurricane", "weather-hurricane-outline", "weather-lightning", "weather-lightning-rainy", "weather-moonset", "weather-moonset-down", "weather-moonset-up", "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-auto", "window-shutter-cog", "window-shutter-open", "window-shutter-settings", "windsock", "wiper", "wiper-wash", "wiper-wash-alert", "wizard-hat", "wordpress", "wrap", "wrap-disabled", "wrench", "wrench-check", "wrench-check-outline", "wrench-clock", "wrench-clock-outline", "wrench-cog", "wrench-cog-outline", "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": "ri", "info": { "name": "Remix Icon", "total": 3058, "version": "4.6.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", "filter-2-fill", "text", "add-line"], "height": 24, "category": "UI 24px", "tags": ["Precise Shapes", "Has Padding"], "palette": false }, "icons": ["24-hours-fill", "24-hours-line", "4k-fill", "4k-line", "a-b", "accessibility-fill", "accessibility-line", "account-box-2-fill", "account-box-2-line", "account-box-fill", "account-box-line", "account-circle-2-fill", "account-circle-2-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-large-fill", "add-large-line", "add-line", "admin-fill", "admin-line", "advertisement-fill", "advertisement-line", "aed-electrodes-fill", "aed-electrodes-line", "aed-fill", "aed-line", "ai-generate", "ai-generate-2", "ai-generate-text", "airplay-fill", "airplay-line", "alarm-add-fill", "alarm-add-line", "alarm-fill", "alarm-line", "alarm-snooze-fill", "alarm-snooze-line", "alarm-warning-fill", "alarm-warning-line", "album-fill", "album-line", "alert-fill", "alert-line", "alibaba-cloud-fill", "alibaba-cloud-line", "aliens-fill", "aliens-line", "align-bottom", "align-center", "align-item-bottom-fill", "align-item-bottom-line", "align-item-horizontal-center-fill", "align-item-horizontal-center-line", "align-item-left-fill", "align-item-left-line", "align-item-right-fill", "align-item-right-line", "align-item-top-fill", "align-item-top-line", "align-item-vertical-center-fill", "align-item-vertical-center-line", "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", "anthropic-fill", "anthropic-line", "anticlockwise-2-fill", "anticlockwise-2-line", "anticlockwise-fill", "anticlockwise-line", "app-store-fill", "app-store-line", "apple-fill", "apple-line", "apps-2-add-fill", "apps-2-add-line", "apps-2-ai-fill", "apps-2-ai-line", "apps-2-fill", "apps-2-line", "apps-fill", "apps-line", "archive-2-fill", "archive-2-line", "archive-drawer-fill", "archive-drawer-line", "archive-fill", "archive-line", "archive-stack-fill", "archive-stack-line", "armchair-fill", "armchair-line", "arrow-down-box-fill", "arrow-down-box-line", "arrow-down-circle-fill", "arrow-down-circle-line", "arrow-down-double-fill", "arrow-down-double-line", "arrow-down-fill", "arrow-down-line", "arrow-down-long-fill", "arrow-down-long-line", "arrow-down-s-fill", "arrow-down-s-line", "arrow-down-wide-fill", "arrow-down-wide-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-box-fill", "arrow-left-box-line", "arrow-left-circle-fill", "arrow-left-circle-line", "arrow-left-double-fill", "arrow-left-double-line", "arrow-left-down-box-fill", "arrow-left-down-box-line", "arrow-left-down-fill", "arrow-left-down-line", "arrow-left-down-long-fill", "arrow-left-down-long-line", "arrow-left-fill", "arrow-left-line", "arrow-left-long-fill", "arrow-left-long-line", "arrow-left-right-fill", "arrow-left-right-line", "arrow-left-s-fill", "arrow-left-s-line", "arrow-left-up-box-fill", "arrow-left-up-box-line", "arrow-left-up-fill", "arrow-left-up-line", "arrow-left-up-long-fill", "arrow-left-up-long-line", "arrow-left-wide-fill", "arrow-left-wide-line", "arrow-right-box-fill", "arrow-right-box-line", "arrow-right-circle-fill", "arrow-right-circle-line", "arrow-right-double-fill", "arrow-right-double-line", "arrow-right-down-box-fill", "arrow-right-down-box-line", "arrow-right-down-fill", "arrow-right-down-line", "arrow-right-down-long-fill", "arrow-right-down-long-line", "arrow-right-fill", "arrow-right-line", "arrow-right-long-fill", "arrow-right-long-line", "arrow-right-s-fill", "arrow-right-s-line", "arrow-right-up-box-fill", "arrow-right-up-box-line", "arrow-right-up-fill", "arrow-right-up-line", "arrow-right-up-long-fill", "arrow-right-up-long-line", "arrow-right-wide-fill", "arrow-right-wide-line", "arrow-turn-back-fill", "arrow-turn-back-line", "arrow-turn-forward-fill", "arrow-turn-forward-line", "arrow-up-box-fill", "arrow-up-box-line", "arrow-up-circle-fill", "arrow-up-circle-line", "arrow-up-double-fill", "arrow-up-double-line", "arrow-up-down-fill", "arrow-up-down-line", "arrow-up-fill", "arrow-up-line", "arrow-up-long-fill", "arrow-up-long-line", "arrow-up-s-fill", "arrow-up-s-line", "arrow-up-wide-fill", "arrow-up-wide-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-ai-fill", "bar-chart-box-ai-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", "bard-fill", "bard-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", "beer-fill", "beer-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", "blender-fill", "blender-line", "blogger-fill", "blogger-line", "bluesky-fill", "bluesky-line", "bluetooth-connect-fill", "bluetooth-connect-line", "bluetooth-fill", "bluetooth-line", "blur-off-fill", "blur-off-line", "bnb-fill", "bnb-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-marked-fill", "book-marked-line", "book-open-fill", "book-open-line", "book-read-fill", "book-read-line", "book-shelf-fill", "book-shelf-line", "booklet-fill", "booklet-line", "bookmark-2-fill", "bookmark-2-line", "bookmark-3-fill", "bookmark-3-line", "bookmark-fill", "bookmark-line", "bootstrap-fill", "bootstrap-line", "bowl-fill", "bowl-line", "box-1-fill", "box-1-line", "box-2-fill", "box-2-line", "box-3-fill", "box-3-line", "boxing-fill", "boxing-line", "braces-fill", "braces-line", "brackets-fill", "brackets-line", "brain-2-fill", "brain-2-line", "brain-fill", "brain-line", "bread-fill", "bread-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-ai-fill", "brush-ai-line", "brush-fill", "brush-line", "btc-fill", "btc-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-close-fill", "calendar-close-line", "calendar-event-fill", "calendar-event-line", "calendar-fill", "calendar-line", "calendar-schedule-fill", "calendar-schedule-line", "calendar-todo-fill", "calendar-todo-line", "calendar-view", "camera-2-fill", "camera-2-line", "camera-3-fill", "camera-3-line", "camera-ai-fill", "camera-ai-line", "camera-fill", "camera-lens-ai-fill", "camera-lens-ai-line", "camera-lens-fill", "camera-lens-line", "camera-line", "camera-off-fill", "camera-off-line", "camera-switch-fill", "camera-switch-line", "candle-fill", "candle-line", "capsule-fill", "capsule-line", "car-fill", "car-line", "car-washing-fill", "car-washing-line", "caravan-fill", "caravan-line", "carousel-view", "cash-fill", "cash-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-ai-fill", "chat-ai-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-search-fill", "chat-search-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-ai-fill", "chat-smile-ai-line", "chat-smile-fill", "chat-smile-line", "chat-thread-fill", "chat-thread-line", "chat-unread-fill", "chat-unread-line", "chat-upload-fill", "chat-upload-line", "chat-voice-ai-fill", "chat-voice-ai-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", "chess-fill", "chess-line", "china-railway-fill", "china-railway-line", "chrome-fill", "chrome-line", "circle-fill", "circle-line", "clapperboard-ai-fill", "clapperboard-ai-line", "clapperboard-fill", "clapperboard-line", "claude-fill", "claude-line", "clipboard-fill", "clipboard-line", "clockwise-2-fill", "clockwise-2-line", "clockwise-fill", "clockwise-line", "close-circle-fill", "close-circle-line", "close-fill", "close-large-fill", "close-large-line", "close-line", "closed-captioning-ai-fill", "closed-captioning-ai-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-ai-fill", "code-ai-line", "code-block", "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", "collapse-diagonal-2-fill", "collapse-diagonal-2-line", "collapse-diagonal-fill", "collapse-diagonal-line", "collapse-horizontal-fill", "collapse-horizontal-line", "collapse-vertical-fill", "collapse-vertical-line", "color-filter-ai-fill", "color-filter-ai-line", "color-filter-fill", "color-filter-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-3-fill", "contacts-book-3-line", "contacts-book-fill", "contacts-book-line", "contacts-book-upload-fill", "contacts-book-upload-line", "contacts-fill", "contacts-line", "contract-fill", "contract-left-fill", "contract-left-line", "contract-left-right-fill", "contract-left-right-line", "contract-line", "contract-right-fill", "contract-right-line", "contract-up-down-fill", "contract-up-down-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", "copilot-fill", "copilot-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", "corner-down-left-fill", "corner-down-left-line", "corner-down-right-fill", "corner-down-right-line", "corner-left-down-fill", "corner-left-down-line", "corner-left-up-fill", "corner-left-up-line", "corner-right-down-fill", "corner-right-down-line", "corner-right-up-fill", "corner-right-up-line", "corner-up-left-double-fill", "corner-up-left-double-line", "corner-up-left-fill", "corner-up-left-line", "corner-up-right-double-fill", "corner-up-right-double-line", "corner-up-right-fill", "corner-up-right-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", "cross-fill", "cross-line", "crosshair-2-fill", "crosshair-2-line", "crosshair-fill", "crosshair-line", "css3-fill", "css3-line", "cup-fill", "cup-line", "currency-fill", "currency-line", "cursor-fill", "cursor-line", "custom-size", "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-horizontal-fill", "dashboard-horizontal-line", "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", "diamond-fill", "diamond-line", "diamond-ring-fill", "diamond-ring-line", "dice-1-fill", "dice-1-line", "dice-2-fill", "dice-2-line", "dice-3-fill", "dice-3-line", "dice-4-fill", "dice-4-line", "dice-5-fill", "dice-5-line", "dice-6-fill", "dice-6-line", "dice-fill", "dice-line", "dingding-fill", "dingding-line", "direction-fill", "direction-line", "disc-fill", "disc-line", "discord-fill", "discord-line", "discount-percent-fill", "discount-percent-line", "discuss-fill", "discuss-line", "dislike-fill", "dislike-line", "disqus-fill", "disqus-line", "divide-fill", "divide-line", "dna-fill", "dna-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", "draggable", "dribbble-fill", "dribbble-line", "drinks-2-fill", "drinks-2-line", "drinks-fill", "drinks-line", "drive-fill", "drive-line", "drizzle-fill", "drizzle-line", "drop-fill", "drop-line", "dropbox-fill", "dropbox-line", "dropdown-list", "dropper-fill", "dropper-line", "dual-sim-1-fill", "dual-sim-1-line", "dual-sim-2-fill", "dual-sim-2-line", "dv-fill", "dv-line", "dvd-ai-fill", "dvd-ai-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", "edge-new-fill", "edge-new-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", "emoji-sticker-fill", "emoji-sticker-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", "equal-fill", "equal-line", "equalizer-2-fill", "equalizer-2-line", "equalizer-3-fill", "equalizer-3-line", "equalizer-fill", "equalizer-line", "eraser-fill", "eraser-line", "error-warning-fill", "error-warning-line", "eth-fill", "eth-line", "evernote-fill", "evernote-line", "exchange-2-fill", "exchange-2-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", "expand-diagonal-2-fill", "expand-diagonal-2-line", "expand-diagonal-fill", "expand-diagonal-line", "expand-diagonal-s-2-fill", "expand-diagonal-s-2-line", "expand-diagonal-s-fill", "expand-diagonal-s-line", "expand-height-fill", "expand-height-line", "expand-horizontal-fill", "expand-horizontal-line", "expand-horizontal-s-fill", "expand-horizontal-s-line", "expand-left-fill", "expand-left-line", "expand-left-right-fill", "expand-left-right-line", "expand-right-fill", "expand-right-line", "expand-up-down-fill", "expand-up-down-line", "expand-vertical-fill", "expand-vertical-line", "expand-vertical-s-fill", "expand-vertical-s-line", "expand-width-fill", "expand-width-line", "export-fill", "export-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", "fediverse-fill", "fediverse-line", "feedback-fill", "feedback-line", "figma-fill", "figma-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-check-fill", "file-check-line", "file-close-fill", "file-close-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-image-fill", "file-image-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-marked-fill", "file-marked-line", "file-music-fill", "file-music-line", "file-paper-2-fill", "file-paper-2-line", "file-paper-fill", "file-paper-line", "file-pdf-2-fill", "file-pdf-2-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-video-fill", "file-video-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-ai-fill", "film-ai-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", "firebase-fill", "firebase-line", "firefox-browser-fill", "firefox-browser-line", "firefox-fill", "firefox-line", "first-aid-kit-fill", "first-aid-kit-line", "flag-2-fill", "flag-2-line", "flag-fill", "flag-line", "flag-off-fill", "flag-off-line", "flashlight-fill", "flashlight-line", "flask-fill", "flask-line", "flickr-fill", "flickr-line", "flight-land-fill", "flight-land-line", "flight-takeoff-fill", "flight-takeoff-line", "flip-horizontal-2-fill", "flip-horizontal-2-line", "flip-horizontal-fill", "flip-horizontal-line", "flip-vertical-2-fill", "flip-vertical-2-line", "flip-vertical-fill", "flip-vertical-line", "flood-fill", "flood-line", "flow-chart", "flower-fill", "flower-line", "flutter-fill", "flutter-line", "focus-2-fill", "focus-2-line", "focus-3-fill", "focus-3-line", "focus-fill", "focus-line", "focus-mode", "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-6-fill", "folder-6-line", "folder-add-fill", "folder-add-line", "folder-chart-2-fill", "folder-chart-2-line", "folder-chart-fill", "folder-chart-line", "folder-check-fill", "folder-check-line", "folder-close-fill", "folder-close-line", "folder-cloud-fill", "folder-cloud-line", "folder-download-fill", "folder-download-line", "folder-fill", "folder-forbid-fill", "folder-forbid-line", "folder-history-fill", "folder-history-line", "folder-image-fill", "folder-image-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-video-fill", "folder-video-line", "folder-warning-fill", "folder-warning-line", "folder-zip-fill", "folder-zip-line", "folders-fill", "folders-line", "font-color", "font-family", "font-mono", "font-sans", "font-sans-serif", "font-size", "font-size-2", "font-size-ai", "football-fill", "football-line", "footprint-fill", "footprint-line", "forbid-2-fill", "forbid-2-line", "forbid-fill", "forbid-line", "format-clear", "formula", "forward-10-fill", "forward-10-line", "forward-15-fill", "forward-15-line", "forward-30-fill", "forward-30-line", "forward-5-fill", "forward-5-line", "forward-end-fill", "forward-end-line", "forward-end-mini-fill", "forward-end-mini-line", "fridge-fill", "fridge-line", "friendica-fill", "friendica-line", "fullscreen-exit-fill", "fullscreen-exit-line", "fullscreen-fill", "fullscreen-line", "function-add-fill", "function-add-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", "gallery-view", "gallery-view-2", "game-fill", "game-line", "gamepad-fill", "gamepad-line", "gas-station-fill", "gas-station-line", "gatsby-fill", "gatsby-line", "gemini-fill", "gemini-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-close-pull-request-fill", "git-close-pull-request-line", "git-commit-fill", "git-commit-line", "git-fork-fill", "git-fork-line", "git-merge-fill", "git-merge-line", "git-pr-draft-fill", "git-pr-draft-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", "glasses-2-fill", "glasses-2-line", "glasses-fill", "glasses-line", "global-fill", "global-line", "globe-fill", "globe-line", "goblet-2-fill", "goblet-2-line", "goblet-fill", "goblet-line", "goggles-fill", "goggles-line", "golf-ball-fill", "golf-ball-line", "google-fill", "google-line", "google-play-fill", "google-play-line", "government-fill", "government-line", "gps-fill", "gps-line", "gradienter-fill", "gradienter-line", "graduation-cap-fill", "graduation-cap-line", "grid-fill", "grid-line", "group-2-fill", "group-2-line", "group-3-fill", "group-3-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", "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-3-fill", "hard-drive-3-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-2-fill", "heart-add-2-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", "hexagon-fill", "hexagon-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-9-fill", "home-9-line", "home-fill", "home-gear-fill", "home-gear-line", "home-heart-fill", "home-heart-line", "home-line", "home-office-fill", "home-office-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", "hourglass-2-fill", "hourglass-2-line", "hourglass-fill", "hourglass-line", "hq-fill", "hq-line", "html5-fill", "html5-line", "id-card-fill", "id-card-line", "ie-fill", "ie-line", "image-2-fill", "image-2-line", "image-add-fill", "image-add-line", "image-ai-fill", "image-ai-line", "image-circle-ai-fill", "image-circle-ai-line", "image-circle-fill", "image-circle-line", "image-edit-fill", "image-edit-line", "image-fill", "image-line", "import-fill", "import-line", "inbox-2-fill", "inbox-2-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", "infinity-fill", "infinity-line", "info-card-fill", "info-card-line", "info-i", "information-2-fill", "information-2-line", "information-fill", "information-line", "information-off-fill", "information-off-line", "infrared-thermometer-fill", "infrared-thermometer-line", "ink-bottle-fill", "ink-bottle-line", "input-cursor-move", "input-field", "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", "instance-fill", "instance-line", "invision-fill", "invision-line", "italic", "java-fill", "java-line", "javascript-fill", "javascript-line", "jewelry-fill", "jewelry-line", "kakao-talk-fill", "kakao-talk-line", "kanban-view", "kanban-view-2", "key-2-fill", "key-2-line", "key-fill", "key-line", "keyboard-box-fill", "keyboard-box-line", "keyboard-fill", "keyboard-line", "keynote-fill", "keynote-line", "kick-fill", "kick-line", "knife-blood-fill", "knife-blood-line", "knife-fill", "knife-line", "landscape-ai-fill", "landscape-ai-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-2-fill", "layout-grid-2-line", "layout-grid-fill", "layout-grid-line", "layout-horizontal-fill", "layout-horizontal-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", "layout-vertical-fill", "layout-vertical-line", "leaf-fill", "leaf-line", "letter-spacing-2", "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-height-2", "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-check-3", "list-indefinite", "list-ordered", "list-ordered-2", "list-radio", "list-settings-fill", "list-settings-line", "list-unordered", "list-view", "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-star-fill", "lock-star-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", "loop-left-fill", "loop-left-line", "loop-right-fill", "loop-right-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-ai-fill", "mail-ai-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", "megaphone-fill", "megaphone-line", "memories-fill", "memories-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-2-fill", "menu-fold-2-line", "menu-fold-3-fill", "menu-fold-3-line", "menu-fold-4-fill", "menu-fold-4-line", "menu-fold-fill", "menu-fold-line", "menu-line", "menu-search-fill", "menu-search-line", "menu-unfold-2-fill", "menu-unfold-2-line", "menu-unfold-3-fill", "menu-unfold-3-line", "menu-unfold-4-fill", "menu-unfold-4-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", "meta-fill", "meta-line", "meteor-fill", "meteor-line", "mic-2-ai-fill", "mic-2-ai-line", "mic-2-fill", "mic-2-line", "mic-ai-fill", "mic-ai-line", "mic-fill", "mic-line", "mic-off-fill", "mic-off-line", "mickey-fill", "mickey-line", "microscope-fill", "microscope-line", "microsoft-fill", "microsoft-line", "microsoft-loop-fill", "microsoft-loop-line", "mind-map", "mini-program-fill", "mini-program-line", "mist-fill", "mist-line", "mixtral-fill", "mixtral-line", "mobile-download-fill", "mobile-download-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", "money-rupee-circle-fill", "money-rupee-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-ai-fill", "movie-2-ai-line", "movie-2-fill", "movie-2-line", "movie-ai-fill", "movie-ai-line", "movie-fill", "movie-line", "multi-image-fill", "multi-image-line", "music-2-fill", "music-2-line", "music-ai-fill", "music-ai-line", "music-fill", "music-line", "mv-ai-fill", "mv-ai-line", "mv-fill", "mv-line", "navigation-fill", "navigation-line", "netease-cloud-music-fill", "netease-cloud-music-line", "netflix-fill", "netflix-line", "news-fill", "news-line", "newspaper-fill", "newspaper-line", "nextjs-fill", "nextjs-line", "nft-fill", "nft-line", "no-credit-card-fill", "no-credit-card-line", "node-tree", "nodejs-fill", "nodejs-line", "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", "notification-snooze-fill", "notification-snooze-line", "notion-fill", "notion-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", "octagon-fill", "octagon-line", "oil-fill", "oil-line", "omega", "open-arm-fill", "open-arm-line", "open-source-fill", "open-source-line", "openai-fill", "openai-line", "openbase-fill", "openbase-line", "opera-fill", "opera-line", "order-play-fill", "order-play-line", "organization-chart", "outlet-2-fill", "outlet-2-line", "outlet-fill", "outlet-line", "overline", "p2p-fill", "p2p-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", "pass-expired-fill", "pass-expired-line", "pass-pending-fill", "pass-pending-line", "pass-valid-fill", "pass-valid-line", "passport-fill", "passport-line", "patreon-fill", "patreon-line", "pause-circle-fill", "pause-circle-line", "pause-fill", "pause-large-fill", "pause-large-line", "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", "pentagon-fill", "pentagon-line", "percent-fill", "percent-line", "perplexity-fill", "perplexity-line", "phone-camera-fill", "phone-camera-line", "phone-fill", "phone-find-fill", "phone-find-line", "phone-line", "phone-lock-fill", "phone-lock-line", "php-fill", "php-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", "pix-fill", "pix-line", "pixelfed-fill", "pixelfed-line", "plane-fill", "plane-line", "planet-fill", "planet-line", "plant-fill", "plant-line", "play-circle-fill", "play-circle-line", "play-fill", "play-large-fill", "play-large-line", "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", "play-reverse-fill", "play-reverse-large-fill", "play-reverse-large-line", "play-reverse-line", "play-reverse-mini-fill", "play-reverse-mini-line", "playstation-fill", "playstation-line", "plug-2-fill", "plug-2-line", "plug-fill", "plug-line", "poker-clubs-fill", "poker-clubs-line", "poker-diamonds-fill", "poker-diamonds-line", "poker-hearts-fill", "poker-hearts-line", "poker-spades-fill", "poker-spades-line", "polaroid-2-fill", "polaroid-2-line", "polaroid-fill", "polaroid-line", "police-badge-fill", "police-badge-line", "police-car-fill", "police-car-line", "presentation-fill", "presentation-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", "progress-1-fill", "progress-1-line", "progress-2-fill", "progress-2-line", "progress-3-fill", "progress-3-line", "progress-4-fill", "progress-4-line", "progress-5-fill", "progress-5-line", "progress-6-fill", "progress-6-line", "progress-7-fill", "progress-7-line", "progress-8-fill", "progress-8-line", "prohibited-2-fill", "prohibited-2-line", "prohibited-fill", "prohibited-line", "projector-2-fill", "projector-2-line", "projector-fill", "projector-line", "psychotherapy-fill", "psychotherapy-line", "pulse-ai-fill", "pulse-ai-line", "pulse-fill", "pulse-line", "pushpin-2-fill", "pushpin-2-line", "pushpin-fill", "pushpin-line", "puzzle-2-fill", "puzzle-2-line", "puzzle-fill", "puzzle-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-ai-fill", "quill-pen-ai-line", "quill-pen-fill", "quill-pen-line", "quote-text", "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", "ram-2-fill", "ram-2-line", "ram-fill", "ram-line", "reactjs-fill", "reactjs-line", "receipt-fill", "receipt-line", "record-circle-fill", "record-circle-line", "record-mail-fill", "record-mail-line", "rectangle-fill", "rectangle-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", "remix-run-fill", "remix-run-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", "replay-10-fill", "replay-10-line", "replay-15-fill", "replay-15-line", "replay-30-fill", "replay-30-line", "replay-5-fill", "replay-5-line", "reply-all-fill", "reply-all-line", "reply-fill", "reply-line", "reserved-fill", "reserved-line", "reset-left-fill", "reset-left-line", "reset-right-fill", "reset-right-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", "rewind-start-fill", "rewind-start-line", "rewind-start-mini-fill", "rewind-start-mini-line", "rfid-fill", "rfid-line", "rhythm-fill", "rhythm-line", "riding-fill", "riding-line", "road-map-fill", "road-map-line", "roadster-fill", "roadster-line", "robot-2-fill", "robot-2-line", "robot-3-fill", "robot-3-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-3-fill", "safe-3-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", "school-fill", "school-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", "scroll-to-bottom-fill", "scroll-to-bottom-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", "seo-fill", "seo-line", "separator", "server-fill", "server-line", "service-bell-fill", "service-bell-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", "shadow-fill", "shadow-line", "shake-hands-fill", "shake-hands-line", "shape-2-fill", "shape-2-line", "shape-fill", "shape-line", "shapes-fill", "shapes-line", "share-2-fill", "share-2-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", "shining-2-fill", "shining-2-line", "shining-fill", "shining-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-4-fill", "shopping-bag-4-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", "sidebar-fold-fill", "sidebar-fold-line", "sidebar-unfold-fill", "sidebar-unfold-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", "signpost-fill", "signpost-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", "sketching", "skip-back-fill", "skip-back-line", "skip-back-mini-fill", "skip-back-mini-line", "skip-down-fill", "skip-down-line", "skip-forward-fill", "skip-forward-line", "skip-forward-mini-fill", "skip-forward-mini-line", "skip-left-fill", "skip-left-line", "skip-right-fill", "skip-right-line", "skip-up-fill", "skip-up-line", "skull-2-fill", "skull-2-line", "skull-fill", "skull-line", "skype-fill", "skype-line", "slack-fill", "slack-line", "slash-commands", "slash-commands-2", "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", "slideshow-view", "slow-down-fill", "slow-down-line", "smartphone-fill", "smartphone-line", "snapchat-fill", "snapchat-line", "snowflake-fill", "snowflake-line", "snowy-fill", "snowy-line", "sofa-fill", "sofa-line", "sort-alphabet-asc", "sort-alphabet-desc", "sort-asc", "sort-desc", "sort-number-asc", "sort-number-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", "sparkling-2-fill", "sparkling-2-line", "sparkling-fill", "sparkling-line", "speak-ai-fill", "speak-ai-line", "speak-fill", "speak-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", "speed-up-fill", "speed-up-line", "split-cells-horizontal", "split-cells-vertical", "spotify-fill", "spotify-line", "spy-fill", "spy-line", "square-fill", "square-line", "square-root", "stack-fill", "stack-line", "stack-overflow-fill", "stack-overflow-line", "stacked-view", "stackshare-fill", "stackshare-line", "stairs-fill", "stairs-line", "star-fill", "star-half-fill", "star-half-line", "star-half-s-fill", "star-half-s-line", "star-line", "star-off-fill", "star-off-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-add-fill", "sticky-note-add-line", "sticky-note-fill", "sticky-note-line", "stock-fill", "stock-line", "stop-circle-fill", "stop-circle-line", "stop-fill", "stop-large-fill", "stop-large-line", "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", "supabase-fill", "supabase-line", "superscript", "superscript-2", "surgical-mask-fill", "surgical-mask-line", "surround-sound-fill", "surround-sound-line", "survey-fill", "survey-line", "svelte-fill", "svelte-line", "swap-2-fill", "swap-2-line", "swap-3-fill", "swap-3-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-3", "table-alt-fill", "table-alt-line", "table-fill", "table-line", "table-view", "tablet-fill", "tablet-line", "tailwind-css-fill", "tailwind-css-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-2-fill", "telegram-2-line", "telegram-fill", "telegram-line", "temp-cold-fill", "temp-cold-line", "temp-hot-fill", "temp-hot-line", "tent-fill", "tent-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-block", "text-direction-l", "text-direction-r", "text-snippet", "text-spacing", "text-wrap", "thermometer-fill", "thermometer-line", "threads-fill", "threads-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", "tiktok-fill", "tiktok-line", "time-fill", "time-line", "time-zone-fill", "time-zone-line", "timeline-view", "timer-2-fill", "timer-2-line", "timer-fill", "timer-flash-fill", "timer-flash-line", "timer-line", "todo-fill", "todo-line", "toggle-fill", "toggle-line", "token-swap-fill", "token-swap-line", "tools-fill", "tools-line", "tooth-fill", "tooth-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", "translate-ai", "translate-ai-2", "travesti-fill", "travesti-line", "treasure-map-fill", "treasure-map-line", "tree-fill", "tree-line", "trello-fill", "trello-line", "triangle-fill", "triangle-line", "triangular-flag-fill", "triangular-flag-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", "twitter-x-fill", "twitter-x-line", "typhoon-fill", "typhoon-line", "u-disk-fill", "u-disk-line", "ubuntu-fill", "ubuntu-line", "umbrella-fill", "umbrella-line", "underline", "uninstall-fill", "uninstall-line", "unpin-fill", "unpin-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-community-fill", "user-community-line", "user-fill", "user-follow-fill", "user-follow-line", "user-forbid-fill", "user-forbid-line", "user-heart-fill", "user-heart-line", "user-line", "user-location-fill", "user-location-line", "user-minus-fill", "user-minus-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", "vercel-fill", "vercel-line", "verified-badge-fill", "verified-badge-line", "video-add-fill", "video-add-line", "video-ai-fill", "video-ai-line", "video-chat-fill", "video-chat-line", "video-download-fill", "video-download-line", "video-fill", "video-line", "video-off-fill", "video-off-line", "video-on-ai-fill", "video-on-ai-line", "video-on-fill", "video-on-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", "vk-fill", "vk-line", "voice-ai-fill", "voice-ai-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", "water-percent-fill", "water-percent-line", "webcam-fill", "webcam-line", "webhook-fill", "webhook-line", "wechat-2-fill", "wechat-2-line", "wechat-channels-fill", "wechat-channels-line", "wechat-fill", "wechat-line", "wechat-pay-fill", "wechat-pay-line", "weibo-fill", "weibo-line", "weight-fill", "weight-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", "wordpress-fill", "wordpress-line", "wubi-input", "xbox-fill", "xbox-line", "xing-fill", "xing-line", "xrp-fill", "xrp-line", "xtz-fill", "xtz-line", "youtube-fill", "youtube-line", "yuque-fill", "yuque-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"] }, { "prefix": "logos", "info": { "name": "SVG Logos", "total": 1838, "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": ["npm-icon", "uikit", "patreon", "serverless", "vue", "modernizr"], "category": "Logos", "tags": [], "palette": true }, "icons": ["100tb", "500px", "6px", "active-campaign", "active-campaign-icon", "admob", "adobe", "adobe-after-effects", "adobe-animate", "adobe-dreamweaver", "adobe-icon", "adobe-illustrator", "adobe-incopy", "adobe-indesign", "adobe-lightroom", "adobe-photoshop", "adobe-premiere", "adobe-xd", "adonisjs", "adonisjs-icon", "adroll", "adyen", "aerogear", "aerospike", "aerospike-icon", "aha", "ai", "airbnb", "airbnb-icon", "airbrake", "airflow", "airflow-icon", "airtable", "aix", "akamai", "akka", "alfresco", "algolia", "alpinejs", "alpinejs-icon", "altair", "amazon-chime", "amazon-connect", "amd", "amex", "amex-digital", "amp", "amp-icon", "ampersand", "amplication", "amplication-icon", "amplitude", "amplitude-icon", "analog", "android", "android-icon", "android-vertical", "angellist", "angular", "angular-icon", "ansible", "ant-design", "anthropic", "anthropic-icon", "apache", "apache-camel", "apache-cloudstack", "apache-flink", "apache-flink-icon", "apache-spark", "apache-superset", "apache-superset-icon", "api-ai", "apiary", "apidog", "apidog-icon", "apigee", "apitools", "apollostack", "apostrophe", "appbase", "appbaseio", "appbaseio-icon", "appcelerator", "appcenter", "appcenter-icon", "appcircle", "appcircle-icon", "appcode", "appdynamics", "appdynamics-icon", "appfog", "apphub", "appium", "apple", "apple-app-store", "apple-pay", "applitools", "applitools-icon", "appmaker", "apportable", "appsignal", "appsignal-icon", "apptentive", "appveyor", "appwrite", "appwrite-icon", "arangodb", "arangodb-icon", "arc", "architect", "architect-icon", "archlinux", "arduino", "argo", "argo-icon", "arm", "armory", "armory-icon", "asana", "asana-icon", "asciidoctor", "assembla", "assembla-icon", "astro", "astro-icon", "astronomer", "async-api", "async-api-icon", "atlassian", "atom", "atom-icon", "atomic", "atomic-icon", "atomicojs", "atomicojs-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", "basecamp-icon", "basekit", "baseline", "bash", "bash-icon", "batch", "beats", "behance", "bem", "bem-2", "bigpanda", "bing", "biomejs", "biomejs-icon", "bitballoon", "bitbar", "bitbucket", "bitcoin", "bitnami", "bitrise", "bitrise-icon", "blender", "blitzjs", "blitzjs-icon", "blocs", "blogger", "blossom", "bluemix", "blueprint", "bluesky", "bluetooth", "booqable", "booqable-icon", "bootstrap", "bosun", "botanalytics", "bourbon", "bower", "bowtie", "box", "brackets", "brainjs", "branch", "branch-icon", "brandfolder", "brandfolder-icon", "brave", "braze", "braze-icon", "broadcom", "broadcom-icon", "broccoli", "brotli", "browserify", "browserify-icon", "browserling", "browserslist", "browserstack", "browsersync", "brunch", "bubble", "bubble-icon", "buck", "buddy", "buffer", "bugherd", "bugherd-icon", "bugsee", "bugsnag", "bugsnag-icon", "builder-io", "builder-io-icon", "buildkite", "buildkite-icon", "bulma", "bun", "bunny-net", "bunny-net-icon", "c", "c-plusplus", "c-sharp", "cachet", "caffe2", "cakephp", "cakephp-icon", "calibre", "calibre-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", "chartjs", "chef", "chevereto", "chroma", "chromatic", "chromatic-icon", "chrome", "chrome-web-store", "cinder", "circleci", "cirrus", "cirrus-ci", "claude", "claude-icon", "clickdeploy", "clio-lang", "clion", "cljs", "clojure", "close", "cloud9", "cloudacademy", "cloudacademy-icon", "cloudant", "cloudcraft", "cloudera", "cloudflare", "cloudflare-icon", "cloudflare-workers", "cloudflare-workers-icon", "cloudinary", "cloudinary-icon", "cloudlinux", "clusterhq", "cobalt", "cockpit", "cocoapods", "coda", "coda-icon", "codacy", "codebase", "codebeat", "codecademy", "codeception", "codeclimate", "codeclimate-icon", "codecov", "codecov-icon", "codefactor", "codefactor-icon", "codefund", "codefund-icon", "codeigniter", "codeigniter-icon", "codepen", "codepen-icon", "codepicnic", "codepush", "codersrank", "codersrank-icon", "coderwall", "codesandbox", "codesandbox-icon", "codeschool", "codesee", "codesee-icon", "codeship", "codio", "codium", "codium-icon", "codrops", "coffeescript", "commitizen", "compass", "component", "componentkit", "compose", "compose-multiplatform", "composer", "conan-io", "concourse", "concrete5", "concretecms", "concretecms-icon", "conda", "confluence", "consul", "containership", "contentful", "convox", "convox-icon", "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", "crossplane", "crossplane-icon", "crowdprocess", "crucible", "crystal", "css-3", "css-3-official", "cssnext", "cube", "cube-icon", "cucumber", "curl", "customerio", "customerio-icon", "cyclejs", "cypress", "cypress-icon", "d3", "dailydev", "dailydev-icon", "daisyui", "daisyui-icon", "danfo", "dapulse", "dart", "dashlane", "dashlane-icon", "dat", "data-station", "database-labs", "datadog", "datadog-icon", "datagrip", "datasette", "datasette-icon", "dataspell", "datocms", "datocms-icon", "dbt", "dbt-icon", "dcos", "dcos-icon", "debian", "delicious", "delicious-burger", "delighted", "delighted-icon", "deno", "dependabot", "dependencyci", "deploy", "deployhq", "deployhq-icon", "deppbot", "derby", "descript", "descript-icon", "designernews", "desk", "dev", "dev-icon", "deviantart", "deviantart-icon", "dgraph", "dgraph-icon", "dialogflow", "digital-ocean", "digital-ocean-icon", "dimer", "dinersclub", "discord", "discord-icon", "discourse", "discourse-icon", "discover", "disqus", "distelli", "divshot", "django", "django-icon", "dockbit", "docker", "docker-icon", "doctrine", "docusaurus", "dojo", "dojo-icon", "dojo-toolkit", "dolt", "dotcloud", "dotnet", "doubleclick", "dovetail", "dovetail-icon", "dreamfactory", "dreamhost", "dribbble", "dribbble-icon", "drift", "drip", "drizzle", "drizzle-icon", "drone", "drone-icon", "drools", "drools-icon", "dropbox", "dropmark", "dropzone", "drupal", "drupal-icon", "duckduckgo", "dynatrace", "dynatrace-icon", "dyndns", "eager", "ebanx", "eclipse", "eclipse-icon", "ecma", "edgedb", "edgio", "edgio-icon", "editorconfig", "effect", "effect-icon", "effector", "egghead", "elasticbox", "elasticpath", "elasticpath-icon", "elasticsearch", "electron", "element", "elemental-ui", "elementary", "eleventy", "ello", "elm", "elm-classic", "elo", "emacs", "emacs-classic", "embedly", "ember", "ember-tomster", "emmet", "enact", "engine-yard", "engine-yard-icon", "envato", "envoy", "envoy-icon", "envoyer", "envoyproxy", "enyo", "epsagon", "epsagon-icon", "eraser", "eraser-icon", "erlang", "es6", "esbuild", "esdoc", "eslint", "eslint-old", "eta", "eta-icon", "etcd", "ethereum", "ethereum-color", "ethers", "ethnio", "eventbrite", "eventbrite-icon", "eventsentry", "evergreen", "evergreen-icon", "expo", "expo-icon", "exponent", "express", "fabric", "fabric-io", "facebook", "faker", "falcor", "famous", "fastapi", "fastapi-icon", "fastify", "fastify-icon", "fastlane", "fastly", "fauna", "fauna-icon", "feathersjs", "fedora", "fetch", "ffmpeg", "ffmpeg-icon", "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", "fly-icon", "flyjs", "fogbugz", "fogbugz-icon", "fomo", "fomo-icon", "font-awesome", "forest", "forestadmin", "forestadmin-icon", "forever", "formkeep", "fortran", "foundation", "foundationdb", "foundationdb-icon", "framed", "framer", "framework7", "framework7-icon", "freebsd", "freedcamp", "freedcamp-icon", "freedomdefined", "fresh", "frontapp", "fsharp", "fuchsia", "galliumos", "game-analytics", "game-analytics-icon", "ganache", "ganache-icon", "gatsby", "gaugeio", "geekbot", "geetest", "geetest-icon", "get-satisfaction", "getyourguide", "ghost", "giantswarm", "gin", "git", "git-icon", "gitboard", "github", "github-actions", "github-copilot", "github-icon", "github-octocat", "gitkraken", "gitlab", "gitter", "gitup", "glamorous", "glamorous-icon", "gleam", "glimmerjs", "glint", "glitch", "glitch-icon", "gnome", "gnome-icon", "gnu", "gnu-net", "gnupg", "gnupg-icon", "go", "gocd", "godot", "godot-icon", "gohorse", "goland", "gomix", "google", "google-2014", "google-360suite", "google-admob", "google-ads", "google-adsense", "google-adwords", "google-analytics", "google-bard", "google-bard-icon", "google-calendar", "google-cloud", "google-cloud-functions", "google-cloud-platform", "google-cloud-run", "google-currents", "google-data-studio", "google-developers", "google-developers-icon", "google-domains", "google-domains-icon", "google-drive", "google-fit", "google-gemini", "google-gmail", "google-gsuite", "google-home", "google-icon", "google-inbox", "google-keep", "google-maps", "google-marketing-platform", "google-meet", "google-one", "google-optimize", "google-palm", "google-pay", "google-pay-icon", "google-photos", "google-play", "google-play-console", "google-play-console-icon", "google-play-icon", "google-plus", "google-search-console", "google-tag-manager", "google-wallet", "google-workspace", "gopher", "gordon", "gradio", "gradio-icon", "gradle", "grafana", "grails", "grammarly", "grammarly-icon", "grape", "graphcool", "graphene", "graphql", "gratipay", "grav", "gravatar", "gravatar-icon", "graylog", "graylog-icon", "greensock", "greensock-icon", "gridsome", "gridsome-icon", "grommet", "groovehq", "grove", "growth-book", "growth-book-icon", "grpc", "grunt", "gulp", "gunicorn", "gunjs", "gusto", "gwt", "hack", "hacker-one", "hadoop", "haiku", "haiku-icon", "haml", "hanami", "handlebars", "hapi", "hardhat", "hardhat-icon", "harness", "harness-icon", "harrow", "hashicorp", "hashicorp-icon", "hashnode", "hashnode-icon", "haskell", "haskell-icon", "hasura", "hasura-icon", "haxe", "haxl", "hbase", "hcaptcha", "hcaptcha-icon", "headlessui", "headlessui-icon", "heap", "heap-icon", "helm", "helpscout", "helpscout-icon", "hermes", "heroku", "heroku-icon", "heroku-redis", "heron", "hexo", "hhvm", "hibernate", "highcharts", "hipchat", "hipercard", "hoa", "homebrew", "hono", "hoodie", "hookstate", "hootsuite", "hootsuite-icon", "horizon", "hosted-graphite", "hostgator", "hostgator-icon", "hotjar", "hotjar-icon", "houndci", "html-5", "html5-boilerplate", "htmx", "htmx-icon", "httpie", "httpie-icon", "hubspot", "hugging-face", "hugging-face-icon", "huggy", "hugo", "humongous", "hyper", "hyperapp", "ibm", "ieee", "ietf", "ifttt", "imagemin", "imba", "imba-icon", "immer", "immer-icon", "immutable", "impala", "importio", "incident", "incident-icon", "infer", "inferno", "influxdb", "influxdb-icon", "ink", "insomnia", "instagram", "instagram-icon", "intel", "intellij-idea", "intercom", "intercom-icon", "internet-computer", "internet-computer-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", "jetbrains-icon", "jetbrains-space", "jetbrains-space-icon", "jfrog", "jhipster", "jhipster-icon", "jira", "joomla", "jotai", "jquery", "jquery-mobile", "jruby", "jsbin", "jscs", "jsdelivr", "jsdom", "jsfiddle", "json", "json-ld", "json-schema", "json-schema-icon", "jspm", "jss", "juju", "julia", "jupyter", "jwt", "jwt-icon", "kafka", "kafka-icon", "kaios", "kallithea", "karma", "katalon", "katalon-icon", "kde", "keen", "kemal", "keycdn", "keycdn-icon", "keydb", "keydb-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", "ktor", "ktor-icon", "kubernetes", "kustomer", "languagetool", "laravel", "lastfm", "lateral", "lateral-icon", "launchdarkly", "launchdarkly-icon", "launchkit", "launchrock", "leaflet", "leankit", "leankit-icon", "lerna", "less", "lets-cloud", "letsencrypt", "leveldb", "lexical", "lexical-icon", "librato", "liftweb", "lighthouse", "lightstep", "lightstep-icon", "lighttpd", "linear", "linear-icon", "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", "loom-icon", "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", "mailjet-icon", "malinajs", "mandrill", "mandrill-shield", "manifoldjs", "manjaro", "mantine", "mantine-icon", "mantl", "manuscript", "mapbox", "mapbox-icon", "maps-me", "mapzen", "mapzen-icon", "mariadb", "mariadb-icon", "marionette", "markdown", "marko", "marvel", "mastercard", "mastodon", "mastodon-icon", "material-ui", "materializecss", "matomo", "matomo-icon", "matplotlib", "matplotlib-icon", "matter", "matter-icon", "mattermost", "mattermost-icon", "mautic", "mautic-icon", "maven", "maxcdn", "mdn", "mdx", "meanio", "medium", "medium-icon", "medusa", "medusa-icon", "meilisearch", "memcached", "memgraph", "memsql", "memsql-icon", "mention", "mercurial", "mern", "mesos", "mesosphere", "messenger", "meta", "meta-icon", "metabase", "metamask", "metamask-icon", "meteor", "meteor-icon", "micro", "micro-icon", "micro-python", "microcosm", "micron", "micron-icon", "microsoft", "microsoft-azure", "microsoft-edge", "microsoft-icon", "microsoft-onedrive", "microsoft-power-bi", "microsoft-teams", "microsoft-windows", "microsoft-windows-icon", "mida", "mida-icon", "middleman", "midjourney", "milligram", "million", "million-icon", "milvus", "milvus-icon", "mindsdb", "mindsdb-icon", "mint-lang", "mio", "miro", "miro-icon", "mist", "mistral-ai", "mistral-ai-icon", "mithril", "mixmax", "mixpanel", "mlab", "mobx", "mocha", "mockflow", "mockflow-icon", "modernizr", "modulus", "modx", "modx-icon", "moltin", "moltin-icon", "momentjs", "monday", "monday-icon", "monero", "mongodb", "mongodb-icon", "mongolab", "mono", "moon", "mootools", "morpheus", "morpheus-icon", "mozilla", "mparticle", "mparticle-icon", "mps", "mps-icon", "msw", "msw-icon", "multipass", "mysql", "mysql-icon", "myth", "naiveui", "namecheap", "nanonets", "nasm", "nativescript", "nats", "nats-icon", "neat", "neo4j", "neon", "neon-icon", "neonmetrics", "neovim", "nestjs", "net", "netbeans", "netflix", "netflix-icon", "netlify", "netlify-icon", "netuitive", "neverinstall", "neverinstall-icon", "new-relic", "new-relic-icon", "nextjs", "nextjs-icon", "nginx", "ngrok", "nhost", "nhost-icon", "nightwatch", "nim-lang", "nocodb", "nodal", "node-sass", "nodebots", "nodejitsu", "nodejs", "nodejs-icon", "nodejs-icon-alt", "nodemon", "nodeos", "nodewebkit", "nomad", "nomad-icon", "notion", "notion-icon", "now", "noysi", "npm", "npm-2", "npm-icon", "nuclide", "numpy", "nuodb", "nuxt", "nuxt-icon", "nvidia", "nvm", "nx", "oauth", "observablehq", "obsidian", "obsidian-icon", "ocaml", "octodns", "octopus-deploy", "okta", "okta-icon", "olapic", "olark", "onesignal", "opbeat", "open-graph", "open-zeppelin", "open-zeppelin-icon", "openai", "openai-icon", "openapi", "openapi-icon", "opencart", "opencollective", "opencv", "openframeworks", "opengl", "openjs-foundation", "openjs-foundation-icon", "openlayers", "opensearch", "opensearch-icon", "openshift", "opensource", "openstack", "openstack-icon", "opentelemetry", "opentelemetry-icon", "opera", "opsee", "opsgenie", "opsmatic", "optimizely", "optimizely-icon", "oracle", "oreilly", "origami", "origin", "oshw", "osquery", "otto", "overloop", "overloop-icon", "p5js", "packer", "pagekit", "pagekite", "pagerduty", "pagerduty-icon", "panda", "pandacss", "pandacss-icon", "pandas", "pandas-icon", "parcel", "parcel-icon", "parse", "parsehub", "partytown", "partytown-icon", "passbolt", "passbolt-icon", "passport", "patreon", "payload", "paypal", "peer5", "pepperoni", "percona", "percy", "percy-icon", "perf-rocks", "periscope", "perl", "perplexity", "perplexity-icon", "phalcon", "phoenix", "phonegap", "phonegap-bot", "php", "php-alt", "phpstorm", "picasa", "pinecone", "pinecone-icon", "pingdom", "pingy", "pinia", "pinterest", "pipedream", "pipedrive", "pipefy", "pivotal-tracker", "pixate", "pixelapse", "pixijs", "pkg", "planetscale", "planless", "planless-icon", "plasmic", "plastic-scm", "platformio", "play", "playwright", "pluralsight", "pluralsight-icon", "pm2", "pm2-icon", "pnpm", "pocket-base", "podio", "poeditor", "polymer", "positionly", "postcss", "postgraphile", "postgresql", "posthog", "posthog-icon", "postman", "postman-icon", "pouchdb", "preact", "precursor", "prerender", "prerender-icon", "prestashop", "prestashop-icon", "presto", "presto-icon", "prettier", "prisma", "prismic", "prismic-icon", "processing", "processwire", "processwire-icon", "productboard", "productboard-icon", "producteev", "producthunt", "progress", "prometheus", "promises", "proofy", "prospect", "protoio", "protonet", "protractor", "prott", "pug", "pulumi", "pulumi-icon", "pumpkindb", "puppet", "puppet-icon", "puppeteer", "puppy-linux", "purescript", "purescript-icon", "pushbullet", "pusher", "pusher-icon", "pwa", "pycharm", "pypi", "pyscript", "python", "pytorch", "pytorch-icon", "pyup", "q", "qdrant", "qdrant-icon", "qlik", "qordoba", "qt", "qualcomm", "quarkus", "quarkus-icon", "quay", "quobyte", "quora", "qwik", "qwik-icon", "r-lang", "rabbitmq", "rabbitmq-icon", "rackspace", "rackspace-icon", "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", "recaptcha", "recoil", "recoil-icon", "reddit", "reddit-icon", "redhat", "redhat-icon", "redis", "redsmin", "redspread", "redux", "redux-observable", "redux-saga", "redwoodjs", "refactor", "reindex", "relay", "release", "remergr", "remix", "remix-icon", "renovatebot", "replay", "replay-icon", "replit", "replit-icon", "require", "rescript", "rescript-icon", "rest", "rest-li", "rethinkdb", "retool", "retool-icon", "riak", "rider", "riot", "risingwave", "risingwave-icon", "rkt", "rocket-chat", "rocket-chat-icon", "rocksdb", "rocky-linux", "rocky-linux-icon", "rollbar", "rollbar-icon", "rollupjs", "rome", "rome-icon", "ros", "rsa", "rsmq", "rubocop", "ruby", "rubygems", "rubymine", "rum", "run-above", "runnable", "runscope", "rush", "rush-icon", "rust", "rxdb", "safari", "sagui", "sails", "salesforce", "saltstack", "sameroom", "samsung", "sanity", "sap", "sass", "sass-doc", "saucelabs", "scala", "scaledrone", "scaphold", "scribd", "scribd-icon", "seaborn", "seaborn-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", "shortcut", "shortcut-icon", "sidekick", "sidekiq", "sidekiq-icon", "signal", "sigstore", "sigstore-icon", "sinatra", "singlestore", "singlestore-icon", "siphon", "sitepoint", "sk-hynix", "skaffolder", "sketch", "sketchapp", "skylight", "skype", "slack", "slack-icon", "slides", "slidev", "slim", "smartling", "smashingmagazine", "snap-svg", "snaplet", "snaplet-icon", "snowflake", "snowflake-icon", "snowpack", "snupps", "snyk", "socket-io", "solarwinds", "solid", "solidity", "solidjs", "solidjs-icon", "solr", "sonarcloud", "sonarcloud-icon", "sonarlint", "sonarlint-icon", "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", "sst", "sst-icon", "stability-ai", "stability-ai-icon", "stackbit", "stackbit-icon", "stackblitz", "stackblitz-icon", "stackoverflow", "stackoverflow-icon", "stackshare", "stacksmith", "stash", "stately", "stately-icon", "statuspage", "stdlib", "stdlib-icon", "steam", "steemit", "stenciljs", "stenciljs-icon", "stepsize", "stepsize-icon", "steroids", "stetho", "stickermule", "stigg", "stigg-icon", "stimulus", "stimulus-icon", "stitch", "stoplight", "stormpath", "storyblocks", "storyblocks-icon", "storyblok", "storyblok-icon", "storybook", "storybook-icon", "strapi", "strapi-icon", "streamlit", "strider", "stripe", "strongloop", "struts", "styleci", "stylefmt", "stylelint", "stylis", "stylus", "stytch", "sublimetext", "sublimetext-icon", "subversion", "sugarss", "supabase", "supabase-icon", "supergiant", "supersonic", "supertokens", "supertokens-icon", "supportkit", "surge", "surrealdb", "surrealdb-icon", "survicate", "survicate-icon", "suse", "susy", "svelte", "svelte-icon", "svelte-kit", "svg", "svgator", "swagger", "swc", "swift", "swiftype", "swimm", "swr", "symfony", "sysdig", "sysdig-icon", "t3", "tableau", "tableau-icon", "taiga", "tailwindcss", "tailwindcss-icon", "tapcart", "tapcart-icon", "targetprocess", "taskade", "taskade-icon", "tastejs", "tauri", "tealium", "teamcity", "teamgrid", "teamwork", "teamwork-icon", "tectonic", "telegram", "tensorflow", "terminal", "terraform", "terraform-icon", "terser", "terser-icon", "testcafe", "testing-library", "testlodge", "testmunk", "thimble", "threejs", "thymeleaf", "thymeleaf-icon", "tidal", "tidal-icon", "tiktok", "tiktok-icon", "titon", "tnw", "todoist", "todoist-icon", "todomvc", "tomcat", "toml", "tor", "tor-browser", "torus", "traackr", "trac", "trace", "travis-ci", "travis-ci-monochrome", "treasuredata", "treasuredata-icon", "treehouse", "treehouse-icon", "trello", "trpc", "truffle", "truffle-icon", "tsmc", "tsnode", "tsu", "tsuru", "tumblr", "tumblr-icon", "tunein", "tuple", "turbopack", "turbopack-icon", "turborepo", "turborepo-icon", "turret", "tutsplus", "tutum", "twilio", "twilio-icon", "twitch", "twitter", "typeform", "typeform-icon", "typeorm", "typescript", "typescript-icon", "typescript-icon-round", "typesense", "typesense-icon", "typo3", "typo3-icon", "ubuntu", "udacity", "udacity-icon", "udemy", "udemy-icon", "uikit", "umu", "unbounce", "unbounce-icon", "undertow", "unionpay", "unitjs", "unito", "unito-icon", "unity", "unjs", "unocss", "unrealengine", "unrealengine-icon", "upcase", "upstash", "upstash-icon", "upwork", "user-testing", "user-testing-icon", "uservoice", "uservoice-icon", "uwsgi", "v8", "v8-ignition", "v8-turbofan", "vaadin", "vaddy", "vagrant", "vagrant-icon", "vault", "vault-icon", "vector", "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", "vitess", "vitest", "vivaldi", "vivaldi-icon", "vlang", "vmware", "void", "volar", "vue", "vuetifyjs", "vueuse", "vulkan", "vultr", "vultr-icon", "vwo", "w3c", "waffle", "waffle-icon", "wagtail", "wakatime", "walkme", "watchman", "waypoint", "waypoint-icon", "wayscript", "wayscript-icon", "wearos", "weave", "web-dev", "web-dev-icon", "web-fundamentals", "web3js", "webassembly", "webcomponents", "webdriverio", "webflow", "webgpu", "webhint", "webhint-icon", "webhooks", "webix", "webix-icon", "webkit", "webmin", "webpack", "webplatform", "webrtc", "websocket", "webstorm", "webtask", "webtorrent", "weebly", "wercker", "whalar", "whalar-icon", "whatsapp", "whatsapp-icon", "whatsapp-monochrome-icon", "whatwg", "wicket", "wicket-icon", "wifi", "wildfly", "windi-css", "winglang", "winglang-icon", "wire", "wiredtree", "wix", "wmr", "woocommerce", "woocommerce-icon", "woopra", "wordpress", "wordpress-icon", "wordpress-icon-alt", "workboard", "workos", "workos-icon", "workplace", "workplace-icon", "wpengine", "wufoo", "x", "x-ray-goggles", "xamarin", "xampp", "xata", "xata-icon", "xcart", "xcode", "xero", "xplenty", "xray-for-jira", "xstate", "xtend", "xwiki", "xwiki-icon", "yahoo", "yaml", "yammer", "yandex-ru", "yarn", "ycombinator", "yeoman", "yii", "youtrack", "youtube", "youtube-icon", "yugabyte", "yugabyte-icon", "zabbix", "zapier", "zapier-icon", "zeit", "zeit-icon", "zend-framework", "zendesk", "zendesk-icon", "zenhub", "zenhub-icon", "zeplin", "zeroheight", "zeroheight-icon", "zest", "zig", "zigbee", "zod", "zoho", "zoom", "zoom-icon", "zorin-os", "zsh", "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", "bell", "spoon", "clipboard", "wrapped-gift"], "height": 36, "displayHeight": 18, "category": "Emoji", "tags": ["Precise Shapes"], "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", "enraged-face", "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-turkiye", "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", "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": 1387, "version": "12.13.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", "default-file", "file-type-diff", "default-folder"], "height": 32, "displayHeight": 16, "category": "Programming", "tags": ["Has Padding"], "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-agda", "file-type-ai", "file-type-ai2", "file-type-al", "file-type-al-dal", "file-type-allcontributors", "file-type-angular", "file-type-ansible", "file-type-antlers-html", "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-aseprite", "file-type-asp", "file-type-aspx", "file-type-assembly", "file-type-astro", "file-type-astroconfig", "file-type-atom", "file-type-ats", "file-type-attw", "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-bak", "file-type-ballerina", "file-type-bat", "file-type-bats", "file-type-bazaar", "file-type-bazel", "file-type-bazel-ignore", "file-type-bazel-version", "file-type-befunge", "file-type-bicep", "file-type-biml", "file-type-binary", "file-type-biome", "file-type-bitbucketpipeline", "file-type-bithound", "file-type-blade", "file-type-blender", "file-type-blitzbasic", "file-type-bolt", "file-type-bosque", "file-type-bower", "file-type-bower2", "file-type-browserslist", "file-type-bruno", "file-type-buckbuild", "file-type-buf", "file-type-bun", "file-type-bundlemon", "file-type-bundler", "file-type-bunfig", "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-capnp", "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-changie", "file-type-cheader", "file-type-chef", "file-type-chef-cookbook", "file-type-circleci", "file-type-class", "file-type-claude", "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-codemagic", "file-type-codeowners", "file-type-codeql", "file-type-coderabbit", "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-copilot", "file-type-coverage", "file-type-coveralls", "file-type-cpp", "file-type-cpp2", "file-type-cpp3", "file-type-cppheader", "file-type-craco", "file-type-crowdin", "file-type-crystal", "file-type-csharp", "file-type-csharp2", "file-type-cspell", "file-type-csproj", "file-type-css", "file-type-css2", "file-type-css2map", "file-type-csscomb", "file-type-csslint", "file-type-cssmap", "file-type-cucumber", "file-type-cuda", "file-type-cursorrules", "file-type-cvs", "file-type-cypress", "file-type-cypress-spec", "file-type-cython", "file-type-dal", "file-type-darcs", "file-type-dartlang", "file-type-dartlang-generated", "file-type-dartlang-ignore", "file-type-datadog", "file-type-db", "file-type-debian", "file-type-delphi", "file-type-deno", "file-type-denoify", "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-docusaurus", "file-type-docz", "file-type-dojo", "file-type-doppler", "file-type-dotenv", "file-type-dotjs", "file-type-doxygen", "file-type-drawio", "file-type-drone", "file-type-drools", "file-type-dtd", "file-type-dune", "file-type-dustjs", "file-type-dvc", "file-type-dylan", "file-type-earthly", "file-type-eas-metadata", "file-type-edge", "file-type-edge2", "file-type-editorconfig", "file-type-eex", "file-type-ejs", "file-type-elastic", "file-type-elasticbeanstalk", "file-type-eleventy", "file-type-eleventy2", "file-type-elixir", "file-type-elm", "file-type-elm2", "file-type-emacs", "file-type-ember", "file-type-ensime", "file-type-eps", "file-type-epub", "file-type-erb", "file-type-erlang", "file-type-erlang2", "file-type-esbuild", "file-type-eslint", "file-type-eslint2", "file-type-esphome", "file-type-excalidraw", "file-type-excel", "file-type-excel2", "file-type-expo", "file-type-falcon", "file-type-fantasticon", "file-type-fastly", "file-type-fauna", "file-type-favicon", "file-type-fbx", "file-type-firebase", "file-type-firebasehosting", "file-type-firebasestorage", "file-type-firestore", "file-type-fitbit", "file-type-fla", "file-type-flareact", "file-type-flash", "file-type-floobits", "file-type-flow", "file-type-flutter", "file-type-flutter-package", "file-type-flyio", "file-type-font", "file-type-formkit", "file-type-fortran", "file-type-fossa", "file-type-fossil", "file-type-freemarker", "file-type-frontcommerce", "file-type-fsharp", "file-type-fsharp2", "file-type-fsproj", "file-type-fthtml", "file-type-funding", "file-type-fusebox", "file-type-galen", "file-type-galen2", "file-type-gamemaker", "file-type-gamemaker2", "file-type-gamemaker81", "file-type-gatsby", "file-type-gcloud", "file-type-gcode", "file-type-gdscript", "file-type-genstat", "file-type-geojson", "file-type-git", "file-type-git2", "file-type-gitlab", "file-type-gitpod", "file-type-gleam", "file-type-gleamconfig", "file-type-glide", "file-type-glimmer", "file-type-glitter", "file-type-glsl", "file-type-gltf", "file-type-glyphs", "file-type-gnu", "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-work", "file-type-go-yellow", "file-type-goctl", "file-type-godot", "file-type-gpg", "file-type-gradle", "file-type-gradle2", "file-type-grain", "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-hardhat", "file-type-hashicorp", "file-type-haskell", "file-type-haskell2", "file-type-haxe", "file-type-haxecheckstyle", "file-type-haxedevelop", "file-type-helix", "file-type-helm", "file-type-histoire", "file-type-hjson", "file-type-hlsl", "file-type-homeassistant", "file-type-horusec", "file-type-host", "file-type-html", "file-type-htmlhint", "file-type-htmlvalidate", "file-type-http", "file-type-hugo", "file-type-humanstxt", "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-json-schema", "file-type-json2", "file-type-json5", "file-type-jsonld", "file-type-jsonnet", "file-type-jsp", "file-type-jsr", "file-type-jss", "file-type-juice", "file-type-julia", "file-type-julia2", "file-type-jupyter", "file-type-just", "file-type-k", "file-type-karma", "file-type-key", "file-type-kitchenci", "file-type-kite", "file-type-kivy", "file-type-knip", "file-type-kos", "file-type-kotlin", "file-type-kusto", "file-type-language-configuration", "file-type-lark", "file-type-latino", "file-type-layout", "file-type-lean", "file-type-leanconfig", "file-type-lefthook", "file-type-lerna", "file-type-less", "file-type-lex", "file-type-liara", "file-type-libreoffice-base", "file-type-libreoffice-calc", "file-type-libreoffice-draw", "file-type-libreoffice-impress", "file-type-libreoffice-math", "file-type-libreoffice-writer", "file-type-license", "file-type-licensebat", "file-type-light-actionscript2", "file-type-light-ada", "file-type-light-agda", "file-type-light-apl", "file-type-light-astro", "file-type-light-astroconfig", "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-copilot", "file-type-light-crystal", "file-type-light-cypress", "file-type-light-cypress-spec", "file-type-light-db", "file-type-light-deno", "file-type-light-dhall", "file-type-light-docpad", "file-type-light-drone", "file-type-light-eas-metadata", "file-type-light-eleventy", "file-type-light-eleventy2", "file-type-light-esphome", "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-hashicorp", "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-json-schema", "file-type-light-json5", "file-type-light-jsonld", "file-type-light-kite", "file-type-light-lark", "file-type-light-lean", "file-type-light-leanconfig", "file-type-light-lerna", "file-type-light-mailing", "file-type-light-markuplint", "file-type-light-mcp", "file-type-light-mdx", "file-type-light-mdx-components", "file-type-light-mlang", "file-type-light-mustache", "file-type-light-mypy", "file-type-light-neo4j", "file-type-light-netlify", "file-type-light-next", "file-type-light-nim", "file-type-light-nx", "file-type-light-objidconfig", "file-type-light-openhab", "file-type-light-packship", "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-raku", "file-type-light-razzle", "file-type-light-reactrouter", "file-type-light-rehype", "file-type-light-remark", "file-type-light-replit", "file-type-light-retext", "file-type-light-rome", "file-type-light-rubocop", "file-type-light-rust", "file-type-light-rust-toolchain", "file-type-light-safetensors", "file-type-light-shaderlab", "file-type-light-solidity", "file-type-light-spin", "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-tm", "file-type-light-tmux", "file-type-light-todo", "file-type-light-toit", "file-type-light-toml", "file-type-light-tree", "file-type-light-turbo", "file-type-light-unibeautify", "file-type-light-vash", "file-type-light-vercel", "file-type-light-vsix", "file-type-light-vsixmanifest", "file-type-light-xfl", "file-type-light-xorg", "file-type-light-yaml", "file-type-light-yaml-official", "file-type-light-zeit", "file-type-lighthouse", "file-type-lilypond", "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-mailing", "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-markuplint", "file-type-master-co", "file-type-matlab", "file-type-maven", "file-type-maxscript", "file-type-maya", "file-type-mcp", "file-type-mdx", "file-type-mdx-components", "file-type-mediawiki", "file-type-mercurial", "file-type-mermaid", "file-type-meson", "file-type-metal", "file-type-meteor", "file-type-minecraft", "file-type-mivascript", "file-type-mjml", "file-type-mlang", "file-type-mocha", "file-type-modernizr", "file-type-mojo", "file-type-mojolicious", "file-type-moleculer", "file-type-mondoo", "file-type-mongo", "file-type-monotone", "file-type-motif", "file-type-mson", "file-type-mustache", "file-type-mvt", "file-type-mvtcss", "file-type-mvtjs", "file-type-mypy", "file-type-mysql", "file-type-ndst", "file-type-nearly", "file-type-neo4j", "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-nextflow", "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-npmpackagejsonlint", "file-type-nsi", "file-type-nsri", "file-type-nsri-integrity", "file-type-nuget", "file-type-numpy", "file-type-nunjucks", "file-type-nuxt", "file-type-nx", "file-type-nyc", "file-type-objectivec", "file-type-objectivecpp", "file-type-objidconfig", "file-type-ocaml", "file-type-ocaml-intf", "file-type-ogone", "file-type-onenote", "file-type-opam", "file-type-opencl", "file-type-openhab", "file-type-openscad", "file-type-opentofu", "file-type-org", "file-type-outlook", "file-type-ovpn", "file-type-oxlint", "file-type-package", "file-type-packship", "file-type-paket", "file-type-pandacss", "file-type-patch", "file-type-pcl", "file-type-pddl", "file-type-pddl-happenings", "file-type-pddl-plan", "file-type-pdf2", "file-type-pdm", "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-phpstan", "file-type-phpunit", "file-type-phraseapp", "file-type-pine", "file-type-pip", "file-type-pipeline", "file-type-plantuml", "file-type-platformio", "file-type-playwright", "file-type-plsql", "file-type-plsql-package", "file-type-plsql-package-body", "file-type-plsql-package-header", "file-type-plsql-package-spec", "file-type-pm2", "file-type-pnpm", "file-type-poedit", "file-type-poetry", "file-type-polymer", "file-type-pony", "file-type-postcss", "file-type-postcssconfig", "file-type-postman", "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-publiccode", "file-type-publisher", "file-type-pug", "file-type-pulumi", "file-type-puppet", "file-type-purescript", "file-type-purgecss", "file-type-pyenv", "file-type-pyret", "file-type-pyscript", "file-type-pytest", "file-type-python", "file-type-pythowo", "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-ra-syntax-tree", "file-type-racket", "file-type-rails", "file-type-rake", "file-type-raku", "file-type-raml", "file-type-razor", "file-type-razzle", "file-type-reactjs", "file-type-reactrouter", "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-replit", "file-type-rescript", "file-type-rest", "file-type-retext", "file-type-rexx", "file-type-riot", "file-type-rmd", "file-type-rnc", "file-type-robotframework", "file-type-robots", "file-type-rolldown", "file-type-rollup", "file-type-rome", "file-type-ron", "file-type-rproj", "file-type-rspec", "file-type-rss", "file-type-rubocop", "file-type-ruby", "file-type-rust", "file-type-rust-toolchain", "file-type-s-lang", "file-type-safetensors", "file-type-sails", "file-type-saltstack", "file-type-san", "file-type-sapphire-framework-cli", "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-search-result", "file-type-seedkit", "file-type-sentry", "file-type-sequelize", "file-type-serverless", "file-type-shaderlab", "file-type-shell", "file-type-shuttle", "file-type-silverstripe", "file-type-sino", "file-type-siyuan", "file-type-sketch", "file-type-skipper", "file-type-slang", "file-type-slashup", "file-type-slice", "file-type-slim", "file-type-slint", "file-type-sln", "file-type-sln2", "file-type-smarty", "file-type-snakemake", "file-type-snapcraft", "file-type-snaplet", "file-type-snort", "file-type-snyk", "file-type-solidarity", "file-type-solidity", "file-type-source", "file-type-spacengine", "file-type-sparql", "file-type-spin", "file-type-sqf", "file-type-sql", "file-type-sqlite", "file-type-squirrel", "file-type-sss", "file-type-sst", "file-type-stackblitz", "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-sublime", "file-type-subversion", "file-type-svelte", "file-type-svelteconfig", "file-type-svg", "file-type-svgo", "file-type-swagger", "file-type-swc", "file-type-swift", "file-type-swig", "file-type-symfony", "file-type-syncpack", "file-type-systemd", "file-type-systemverilog", "file-type-t4tt", "file-type-tailwind", "file-type-tamagui", "file-type-taplo", "file-type-taskfile", "file-type-tauri", "file-type-tcl", "file-type-teal", "file-type-templ", "file-type-tera", "file-type-terraform", "file-type-test", "file-type-testcafe", "file-type-testjs", "file-type-testplane", "file-type-testts", "file-type-tex", "file-type-text", "file-type-textile", "file-type-tfs", "file-type-tiltfile", "file-type-tm", "file-type-tmux", "file-type-todo", "file-type-toit", "file-type-toml", "file-type-tox", "file-type-travis", "file-type-tree", "file-type-tres", "file-type-truffle", "file-type-trunk", "file-type-tsbuildinfo", "file-type-tscn", "file-type-tsconfig", "file-type-tsconfig-official", "file-type-tsdoc", "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-uiua", "file-type-unibeautify", "file-type-unison", "file-type-unlicense", "file-type-unocss", "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-vento", "file-type-vercel", "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-vscode-test", "file-type-vscode2", "file-type-vscode3", "file-type-vsix", "file-type-vsixmanifest", "file-type-vue", "file-type-vueconfig", "file-type-vyper", "file-type-wallaby", "file-type-wally", "file-type-wasm", "file-type-watchmanconfig", "file-type-wdio", "file-type-weblate", "file-type-webp", "file-type-webpack", "file-type-wenyan", "file-type-wercker", "file-type-wgsl", "file-type-wikitext", "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-wxt", "file-type-xcode", "file-type-xfl", "file-type-xib", "file-type-xliff", "file-type-xmake", "file-type-xml", "file-type-xo", "file-type-xorg", "file-type-xquery", "file-type-xsl", "file-type-yacc", "file-type-yaml", "file-type-yaml-official", "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-bot", "folder-type-bot-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-changesets", "folder-type-changesets-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-common", "folder-type-common-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-css2", "folder-type-css2-opened", "folder-type-cubit", "folder-type-cubit-opened", "folder-type-cypress", "folder-type-cypress-opened", "folder-type-dapr", "folder-type-dapr-opened", "folder-type-datadog", "folder-type-datadog-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-frontcommerce", "folder-type-frontcommerce-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-cypress", "folder-type-light-cypress-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-mypy", "folder-type-light-mypy-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-mediawiki", "folder-type-mediawiki-opened", "folder-type-memcached", "folder-type-memcached-opened", "folder-type-meteor", "folder-type-meteor-opened", "folder-type-middleware", "folder-type-middleware-opened", "folder-type-minecraft", "folder-type-minecraft-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-mojo", "folder-type-mojo-opened", "folder-type-mongodb", "folder-type-mongodb-opened", "folder-type-mypy", "folder-type-mypy-opened", "folder-type-mysql", "folder-type-mysql-opened", "folder-type-netlify", "folder-type-netlify-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-notebooks", "folder-type-notebooks-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-pytest", "folder-type-pytest-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-seedkit", "folder-type-seedkit-opened", "folder-type-server", "folder-type-server-opened", "folder-type-services", "folder-type-services-opened", "folder-type-shared", "folder-type-shared-opened", "folder-type-snaplet", "folder-type-snaplet-opened", "folder-type-spin", "folder-type-spin-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-supabase", "folder-type-supabase-opened", "folder-type-svelte", "folder-type-svelte-opened", "folder-type-tauri", "folder-type-tauri-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-turbo", "folder-type-turbo-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-vercel", "folder-type-vercel-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"] }]
diff --git a/admin-web/src/iconify/index.json b/admin-web/src/iconify/index.json
new file mode 100755
index 0000000..12f9ae0
--- /dev/null
+++ b/admin-web/src/iconify/index.json
@@ -0,0 +1 @@
+{ "collections": ["ant-design", "ep", "flagpack", "icon-park", "mdi", "ri", "logos", "twemoji", "vscode-icons"], "isOfflineUse": false }
diff --git a/admin-web/src/iconify/index.ts b/admin-web/src/iconify/index.ts
new file mode 100755
index 0000000..e746005
--- /dev/null
+++ b/admin-web/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/admin-web/src/layouts/components/AppSetting/index.vue b/admin-web/src/layouts/components/AppSetting/index.vue
new file mode 100755
index 0000000..6a1c393
--- /dev/null
+++ b/admin-web/src/layouts/components/AppSetting/index.vue
@@ -0,0 +1,447 @@
+
+
+
+
+
+ 应用配置可实时预览效果,但只是临时生效,要想真正应用于项目,可以点击下方的「复制配置」按钮,并将配置粘贴到 src/settings.ts 文件中。
+
+
+
+ 导航栏模式
+
+
+
+
导航栏
+
+
+ 主导航点击模式
+
+
+
+
+
+
+ {{ item.label }}
+
+
+
+
+
+ 次导航保持展开一个
+
+
+
+
+
+
+
+
+
+
+
+
顶栏
+
+
+ 模式
+
+
+
+ {{ item.label }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 复制配置
+
+
+
+
+
+
diff --git a/admin-web/src/layouts/components/Breadcrumb/index.vue b/admin-web/src/layouts/components/Breadcrumb/index.vue
new file mode 100644
index 0000000..dbf525f
--- /dev/null
+++ b/admin-web/src/layouts/components/Breadcrumb/index.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/layouts/components/Breadcrumb/item.vue b/admin-web/src/layouts/components/Breadcrumb/item.vue
new file mode 100644
index 0000000..b65bd6f
--- /dev/null
+++ b/admin-web/src/layouts/components/Breadcrumb/item.vue
@@ -0,0 +1,38 @@
+
+
+
+
+
+ {{ separator }}
+
+
+
+
+
+
diff --git a/admin-web/src/layouts/components/Header/index.vue b/admin-web/src/layouts/components/Header/index.vue
new file mode 100755
index 0000000..ba3e8e3
--- /dev/null
+++ b/admin-web/src/layouts/components/Header/index.vue
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/layouts/components/HotkeysIntro/index.vue b/admin-web/src/layouts/components/HotkeysIntro/index.vue
new file mode 100755
index 0000000..4a6a6a2
--- /dev/null
+++ b/admin-web/src/layouts/components/HotkeysIntro/index.vue
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+
+ 全局
+
+
+
+
+ {{ settingsStore.os === 'mac' ? '⌘' : 'Ctrl' }}
+ I
+
+ 查看系统信息
+
+
+
+ {{ settingsStore.os === 'mac' ? '⌘' : 'Ctrl' }}
+ K
+
+ 唤起导航搜索
+
+
+
+
+
+ 主导航
+
+
+
+
+ {{ settingsStore.os === 'mac' ? '⌥' : 'Alt' }}
+ `
+
+ 激活下一个主导航
+
+
+
+ {{ settingsStore.os === 'mac' ? '⌥' : 'Alt' }}
+ {{ settingsStore.os === 'mac' ? '⇧' : 'Shift' }}
+ `
+
+ 激活上一个主导航
+
+
+
+
+
+ 标签栏
+
+
+
+
+ {{ settingsStore.os === 'mac' ? '⌥' : 'Alt' }}
+ ←
+
+ 切换到上一个标签页
+
+
+
+ {{ settingsStore.os === 'mac' ? '⌥' : 'Alt' }}
+ →
+
+ 切换到下一个标签页
+
+
+
+ {{ settingsStore.os === 'mac' ? '⌥' : 'Alt' }}
+ W
+
+ 关闭当前标签页
+
+
+
+ {{ settingsStore.os === 'mac' ? '⌥' : 'Alt' }}
+ 1~9
+
+ 切换到第 n 个标签页
+
+
+
+ {{ settingsStore.os === 'mac' ? '⌥' : 'Alt' }}
+ 0
+
+ 切换到最后一个标签页
+
+
+
+
+
+
+
diff --git a/admin-web/src/layouts/components/Logo/index.vue b/admin-web/src/layouts/components/Logo/index.vue
new file mode 100755
index 0000000..36f6753
--- /dev/null
+++ b/admin-web/src/layouts/components/Logo/index.vue
@@ -0,0 +1,32 @@
+
+
+
+
+
diff --git a/admin-web/src/layouts/components/MainSidebar/index.vue b/admin-web/src/layouts/components/MainSidebar/index.vue
new file mode 100755
index 0000000..ed31376
--- /dev/null
+++ b/admin-web/src/layouts/components/MainSidebar/index.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/layouts/components/Menu/index.vue b/admin-web/src/layouts/components/Menu/index.vue
new file mode 100644
index 0000000..f57b70d
--- /dev/null
+++ b/admin-web/src/layouts/components/Menu/index.vue
@@ -0,0 +1,185 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/layouts/components/Menu/item.vue b/admin-web/src/layouts/components/Menu/item.vue
new file mode 100644
index 0000000..60d6977
--- /dev/null
+++ b/admin-web/src/layouts/components/Menu/item.vue
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
+
+
+
+ {{ typeof item.meta?.title === 'function' ? item.meta?.title() : item.meta?.title }}
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/layouts/components/Menu/sub.vue b/admin-web/src/layouts/components/Menu/sub.vue
new file mode 100644
index 0000000..14e6b8c
--- /dev/null
+++ b/admin-web/src/layouts/components/Menu/sub.vue
@@ -0,0 +1,226 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/layouts/components/Menu/types.ts b/admin-web/src/layouts/components/Menu/types.ts
new file mode 100644
index 0000000..16ad4f3
--- /dev/null
+++ b/admin-web/src/layouts/components/Menu/types.ts
@@ -0,0 +1,48 @@
+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
+ getUseId: (obj: object) => string
+ 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) => void
+ handleSubMenuClick: (index: string, indexPath: string[]) => void
+}
+
+export const rootMenuInjectionKey = Symbol('rootMenu') as InjectionKey
+
+export interface SubMenuProps {
+ uniqueKey: string[]
+ menu: Menu.recordRaw
+ level?: number
+}
+
+export interface SubMenuItemProps {
+ uniqueKey: string[]
+ item: Menu.recordRaw
+ level?: number
+ subMenu?: boolean
+ expand?: boolean
+}
diff --git a/admin-web/src/layouts/components/SubSidebar/index.vue b/admin-web/src/layouts/components/SubSidebar/index.vue
new file mode 100755
index 0000000..3dd2fb9
--- /dev/null
+++ b/admin-web/src/layouts/components/SubSidebar/index.vue
@@ -0,0 +1,165 @@
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/layouts/components/Topbar/Tabbar/index.vue b/admin-web/src/layouts/components/Topbar/Tabbar/index.vue
new file mode 100644
index 0000000..c6d58cb
--- /dev/null
+++ b/admin-web/src/layouts/components/Topbar/Tabbar/index.vue
@@ -0,0 +1,435 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ typeof element?.title === 'function' ? element.title() : element.title }}
+
+
+
+
+
+ {{ getVisibleTabIndex(index) + 1 }}
+
+
+
+
+ {{ typeof element?.title === 'function' ? element.title() : element.title }}
+
+
+ {{ element.fullPath }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/layouts/components/Topbar/Toolbar/Breadcrumb/index.vue b/admin-web/src/layouts/components/Topbar/Toolbar/Breadcrumb/index.vue
new file mode 100644
index 0000000..763b378
--- /dev/null
+++ b/admin-web/src/layouts/components/Topbar/Toolbar/Breadcrumb/index.vue
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+ {{ item.title }}
+
+
+
+
+
+
diff --git a/admin-web/src/layouts/components/Topbar/Toolbar/ColorScheme/index.vue b/admin-web/src/layouts/components/Topbar/Toolbar/ColorScheme/index.vue
new file mode 100644
index 0000000..b093fce
--- /dev/null
+++ b/admin-web/src/layouts/components/Topbar/Toolbar/ColorScheme/index.vue
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/layouts/components/Topbar/Toolbar/Fullscreen/index.vue b/admin-web/src/layouts/components/Topbar/Toolbar/Fullscreen/index.vue
new file mode 100644
index 0000000..30af7f7
--- /dev/null
+++ b/admin-web/src/layouts/components/Topbar/Toolbar/Fullscreen/index.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/layouts/components/Topbar/Toolbar/NavSearch/index.vue b/admin-web/src/layouts/components/Topbar/Toolbar/NavSearch/index.vue
new file mode 100644
index 0000000..4d4815b
--- /dev/null
+++ b/admin-web/src/layouts/components/Topbar/Toolbar/NavSearch/index.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+ 搜索
+
+ {{ settingsStore.os === 'mac' ? '⌘' : 'Ctrl' }} K
+
+
+
+
+
diff --git a/admin-web/src/layouts/components/Topbar/Toolbar/NavSearch/search.vue b/admin-web/src/layouts/components/Topbar/Toolbar/NavSearch/search.vue
new file mode 100644
index 0000000..8ce63fd
--- /dev/null
+++ b/admin-web/src/layouts/components/Topbar/Toolbar/NavSearch/search.vue
@@ -0,0 +1,271 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 访问
+
+
+
+
+
+
+
+
+ 切换
+
+
+
+
+ ESC
+
+ 退出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/layouts/components/Topbar/Toolbar/PageReload/index.vue b/admin-web/src/layouts/components/Topbar/Toolbar/PageReload/index.vue
new file mode 100644
index 0000000..299b05c
--- /dev/null
+++ b/admin-web/src/layouts/components/Topbar/Toolbar/PageReload/index.vue
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
按住 Ctrl 键并点击
+
可切换为浏览器原生刷新
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/layouts/components/Topbar/Toolbar/index.vue b/admin-web/src/layouts/components/Topbar/Toolbar/index.vue
new file mode 100755
index 0000000..b1dadce
--- /dev/null
+++ b/admin-web/src/layouts/components/Topbar/Toolbar/index.vue
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/layouts/components/Topbar/Toolbar/leftSide.vue b/admin-web/src/layouts/components/Topbar/Toolbar/leftSide.vue
new file mode 100644
index 0000000..3d71c2c
--- /dev/null
+++ b/admin-web/src/layouts/components/Topbar/Toolbar/leftSide.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/layouts/components/Topbar/Toolbar/rightSide.vue b/admin-web/src/layouts/components/Topbar/Toolbar/rightSide.vue
new file mode 100644
index 0000000..8d082da
--- /dev/null
+++ b/admin-web/src/layouts/components/Topbar/Toolbar/rightSide.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
diff --git a/admin-web/src/layouts/components/Topbar/index.vue b/admin-web/src/layouts/components/Topbar/index.vue
new file mode 100755
index 0000000..51f40a7
--- /dev/null
+++ b/admin-web/src/layouts/components/Topbar/index.vue
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/layouts/components/views/link.vue b/admin-web/src/layouts/components/views/link.vue
new file mode 100755
index 0000000..6813637
--- /dev/null
+++ b/admin-web/src/layouts/components/views/link.vue
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+ 是否访问此链接
+
+
+
+
+ {{ route.meta.link }}
+
+
+
+
+
+ 立即访问
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/layouts/index.vue b/admin-web/src/layouts/index.vue
new file mode 100755
index 0000000..e458aec
--- /dev/null
+++ b/admin-web/src/layouts/index.vue
@@ -0,0 +1,254 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/main.ts b/admin-web/src/main.ts
new file mode 100755
index 0000000..bc1ab69
--- /dev/null
+++ b/admin-web/src/main.ts
@@ -0,0 +1,32 @@
+// 加载 iconify 图标
+import { downloadAndInstall } from '@/iconify'
+import icons from '@/iconify/index.json'
+// 自定义指令
+import directive from '@/utils/directive'
+
+import App from './App.vue'
+import router from './router'
+import pinia from './store'
+import uiProvider from './ui/provider'
+import '@/utils/systemCopyright'
+
+// 加载 svg 图标
+import 'virtual:svg-icons-register'
+// UnoCSS
+import '@unocss/reset/tailwind-compat.css'
+import 'virtual:uno.css'
+// 全局样式
+import '@/assets/styles/globals.css'
+
+const app = createApp(App)
+app.use(pinia)
+app.use(router)
+app.use(uiProvider)
+directive(app)
+if (icons.isOfflineUse) {
+ for (const info of icons.collections) {
+ downloadAndInstall(info)
+ }
+}
+
+app.mount('#app')
diff --git a/admin-web/src/menu/index.ts b/admin-web/src/menu/index.ts
new file mode 100755
index 0000000..fc512f7
--- /dev/null
+++ b/admin-web/src/menu/index.ts
@@ -0,0 +1,17 @@
+import type { Menu } from '#/global'
+
+import MultilevelMenuExample from './modules/multilevel.menu.example'
+
+const menu: Menu.recordMainRaw[] = [
+ {
+ meta: {
+ title: '演示',
+ icon: 'uim:box',
+ },
+ children: [
+ MultilevelMenuExample,
+ ],
+ },
+]
+
+export default menu
diff --git a/admin-web/src/menu/modules/multilevel.menu.example.ts b/admin-web/src/menu/modules/multilevel.menu.example.ts
new file mode 100755
index 0000000..eb41297
--- /dev/null
+++ b/admin-web/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/admin-web/src/mock/app.ts b/admin-web/src/mock/app.ts
new file mode 100755
index 0000000..e8ab5bc
--- /dev/null
+++ b/admin-web/src/mock/app.ts
@@ -0,0 +1,151 @@
+import { defineFakeRoute } from 'vite-plugin-fake-server/client'
+
+export default defineFakeRoute([
+ {
+ 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',
+ 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',
+ 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',
+ 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/admin-web/src/mock/user.ts b/admin-web/src/mock/user.ts
new file mode 100755
index 0000000..5202752
--- /dev/null
+++ b/admin-web/src/mock/user.ts
@@ -0,0 +1,60 @@
+import { faker } from '@faker-js/faker'
+import { defineFakeRoute } from 'vite-plugin-fake-server/client'
+
+export default defineFakeRoute([
+ {
+ url: '/mock/user/login',
+ method: 'post',
+ response: ({ body }) => {
+ return {
+ error: '',
+ status: 1,
+ data: {
+ account: body.account,
+ token: `${body.account}:${faker.internet.jwt()}`,
+ avatar: 'https://fantastic-admin.hurui.me/logo.svg',
+ },
+ }
+ },
+ },
+ {
+ url: '/mock/user/permission',
+ method: 'get',
+ response: ({ headers }) => {
+ 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: () => {
+ return {
+ error: '',
+ status: 1,
+ data: {
+ isSuccess: true,
+ },
+ }
+ },
+ },
+])
diff --git a/admin-web/src/router/extensions.ts b/admin-web/src/router/extensions.ts
new file mode 100644
index 0000000..33d0623
--- /dev/null
+++ b/admin-web/src/router/extensions.ts
@@ -0,0 +1,86 @@
+import type { NavigationFailure, RouteLocationRaw, Router } from 'vue-router'
+import pinia from '@/store'
+
+function getId(router: Router) {
+ return router.currentRoute.value.fullPath
+}
+
+function extendPush(router: Router) {
+ const originalPush = router.push
+ router.push = function (to: RouteLocationRaw) {
+ const settingsStore = useSettingsStore(pinia)
+ if (settingsStore.settings.tabbar.enable) {
+ const tabbarStore = useTabbarStore(pinia)
+ const index = tabbarStore.list.findIndex(item => item.tabId === getId(router))
+ tabbarStore.$patch({
+ leaveIndex: index,
+ })
+ }
+ return originalPush(to)
+ }
+}
+
+function extendGo(router: Router) {
+ const originalGo = router.go
+ router.go = function (delta: number) {
+ const settingsStore = useSettingsStore(pinia)
+ if (settingsStore.settings.tabbar.enable) {
+ const tabId = getId(router)
+ const tabbarStore = useTabbarStore(pinia)
+ originalGo(delta)
+ if (delta < 0) {
+ tabbarStore.remove(tabId)
+ }
+ }
+ else {
+ originalGo(delta)
+ }
+ }
+}
+
+function extendReplace(router: Router) {
+ const originalReplace = router.replace
+ router.replace = function (to: RouteLocationRaw) {
+ const settingsStore = useSettingsStore(pinia)
+ if (settingsStore.settings.tabbar.enable) {
+ const tabId = getId(router)
+ const tabbarStore = useTabbarStore(pinia)
+ return originalReplace(to).then(() => {
+ tabbarStore.remove(tabId)
+ })
+ }
+ else {
+ return originalReplace(to)
+ }
+ }
+}
+
+declare module 'vue-router' {
+ interface Router {
+ /**
+ * 本方法为框架扩展语法,等同于 `push` 方法,并且同时会关闭当前标签页
+ */
+ close: (to: RouteLocationRaw) => Promise
+ }
+}
+
+function extendClose(router: Router) {
+ router.close = function (to: RouteLocationRaw) {
+ const currentRoute = router.currentRoute.value
+ const tabId = getId(router)
+ return router.push(to).then(() => {
+ const settingsStore = useSettingsStore(pinia)
+ if (settingsStore.settings.tabbar.enable && currentRoute.meta.tabMerge !== 'activeMenu') {
+ const tabbarStore = useTabbarStore(pinia)
+ tabbarStore.remove(tabId)
+ }
+ })
+ }
+}
+
+export default function setupExtensions(router: Router) {
+ extendPush(router)
+ extendGo(router)
+ extendReplace(router)
+ extendClose(router)
+}
diff --git a/admin-web/src/router/guards.ts b/admin-web/src/router/guards.ts
new file mode 100644
index 0000000..651c855
--- /dev/null
+++ b/admin-web/src/router/guards.ts
@@ -0,0 +1,226 @@
+import type { Router, RouteRecordRaw } from 'vue-router'
+import { useNProgress } from '@vueuse/integrations/useNProgress'
+import { asyncRoutes, asyncRoutesByFilesystem } from './routes'
+import '@/assets/styles/nprogress.css'
+
+function setupRoutes(router: Router) {
+ router.beforeEach(async (to, _from, next) => {
+ const settingsStore = useSettingsStore()
+ const userStore = useUserStore()
+ const routeStore = useRouteStore()
+ const menuStore = useMenuStore()
+ // 是否已登录
+ if (userStore.isLogin) {
+ // 是否已根据权限动态生成并注册路由
+ if (routeStore.isGenerate) {
+ // 导航栏如果不是 single 模式,则需要根据 path 定位主导航的选中状态
+ settingsStore.settings.menu.mode !== 'single' && menuStore.setActived(to.path)
+ // 如果已登录状态下,进入登录页会强制跳转到主页
+ if (to.name === 'login') {
+ next({
+ path: settingsStore.settings.home.fullPath,
+ replace: true,
+ })
+ }
+ // 如果未开启主页,但进入的是主页,则会进入侧边栏导航第一个模块
+ else if (!settingsStore.settings.home.enable && to.fullPath === settingsStore.settings.home.fullPath) {
+ if (menuStore.sidebarMenus.length > 0) {
+ next({
+ path: menuStore.sidebarMenusFirstDeepestPath,
+ replace: true,
+ })
+ }
+ // 如果侧边栏导航第一个模块均无法命中,则还是进入主页
+ else {
+ next()
+ }
+ }
+ // 正常访问页面
+ else {
+ next()
+ }
+ }
+ else {
+ try {
+ // 获取用户权限
+ settingsStore.settings.app.enablePermission && await userStore.getPermissions()
+ // 生成动态路由
+ switch (settingsStore.settings.app.routeBaseOn) {
+ case 'frontend':
+ routeStore.generateRoutesAtFront(asyncRoutes)
+ break
+ case 'backend':
+ await routeStore.generateRoutesAtBack()
+ break
+ case 'filesystem':
+ routeStore.generateRoutesAtFilesystem(asyncRoutesByFilesystem)
+ // 文件系统生成的路由,需要手动生成导航数据
+ switch (settingsStore.settings.menu.baseOn) {
+ case 'frontend':
+ menuStore.generateMenusAtFront()
+ break
+ case 'backend':
+ await menuStore.generateMenusAtBack()
+ break
+ }
+ break
+ }
+ // 注册并记录路由数据
+ // 记录的数据会在登出时会使用到,不使用 router.removeRoute 是考虑配置的路由可能不一定有设置 name ,则通过调用 router.addRoute() 返回的回调进行删除
+ const removeRoutes: (() => void)[] = []
+ routeStore.routes.forEach((route) => {
+ if (!/^(?:https?:|mailto:|tel:)/.test(route.path)) {
+ removeRoutes.push(router.addRoute(route as RouteRecordRaw))
+ }
+ })
+ if (settingsStore.settings.app.routeBaseOn !== 'filesystem') {
+ routeStore.systemRoutes.forEach((route) => {
+ removeRoutes.push(router.addRoute(route as RouteRecordRaw))
+ })
+ }
+ routeStore.setCurrentRemoveRoutes(removeRoutes)
+ }
+ catch {
+ userStore.logout()
+ }
+ // 动态路由生成并注册后,重新进入当前路由
+ next({
+ path: to.path,
+ query: to.query,
+ replace: true,
+ })
+ }
+ }
+ else {
+ if (to.name !== 'login') {
+ next({
+ name: 'login',
+ query: {
+ redirect: to.fullPath !== settingsStore.settings.home.fullPath ? to.fullPath : undefined,
+ },
+ })
+ }
+ else {
+ next()
+ }
+ }
+ })
+}
+
+// 当父级路由未配置重定向时,自动重定向到有访问权限的子路由
+function setupRedirectAuthChildrenRoute(router: Router) {
+ router.beforeEach((to, _from, next) => {
+ const { auth } = useAuth()
+ const currentRoute = router.getRoutes().find(route => route.path === (to.matched.at(-1)?.path ?? ''))
+ if (!currentRoute?.redirect) {
+ const findAuthRoute = currentRoute?.children?.find(route => route.meta?.menu !== false && auth(route.meta?.auth ?? ''))
+ if (findAuthRoute) {
+ next(findAuthRoute)
+ }
+ else {
+ next()
+ }
+ }
+ else {
+ next()
+ }
+ })
+}
+
+// 进度条
+function setupProgress(router: Router) {
+ const { isLoading } = useNProgress()
+ router.beforeEach((_to, _from, next) => {
+ const settingsStore = useSettingsStore()
+ if (settingsStore.settings.app.enableProgress) {
+ isLoading.value = true
+ }
+ next()
+ })
+ router.afterEach(() => {
+ const settingsStore = useSettingsStore()
+ if (settingsStore.settings.app.enableProgress) {
+ isLoading.value = false
+ }
+ })
+}
+
+// 标题
+function setupTitle(router: Router) {
+ router.afterEach((to) => {
+ const settingsStore = useSettingsStore()
+ if (settingsStore.settings.app.routeBaseOn !== 'filesystem') {
+ settingsStore.setTitle(to.matched?.at(-1)?.meta?.title ?? to.meta.title)
+ }
+ else {
+ settingsStore.setTitle(to.meta.title)
+ }
+ })
+}
+
+// 页面缓存
+function setupKeepAlive(router: Router) {
+ router.afterEach(async (to, from) => {
+ const keepAliveStore = useKeepAliveStore()
+ if (to.fullPath !== from.fullPath) {
+ if (to.meta.cache) {
+ const componentName = to.matched.at(-1)?.components?.default.name
+ if (componentName) {
+ // 缓存当前页面前,先判断是否需要进行清除缓存,判断依据:
+ // 1. 如果 to.meta.cache 为 boolean 类型,并且不为 true,则需要清除缓存
+ // 2. 如果 to.meta.cache 为 string 类型,并且与 from.name 不一致,则需要清除缓存
+ // 3. 如果 to.meta.cache 为 array 类型,并且不包含 from.name,则需要清除缓存
+ // 4. 如果 to.meta.noCache 为 string 类型,并且与 from.name 一致,则需要清除缓存
+ // 5. 如果 to.meta.noCache 为 array 类型,并且包含 from.name,则需要清除缓存
+ // 6. 如果是刷新页面,则需要清除缓存
+ let shouldClearCache = false
+ if (typeof to.meta.cache === 'boolean') {
+ shouldClearCache = !to.meta.cache
+ }
+ else if (typeof to.meta.cache === 'string') {
+ shouldClearCache = to.meta.cache !== from.name
+ }
+ else if (Array.isArray(to.meta.cache)) {
+ shouldClearCache = !to.meta.cache.includes(from.name as string)
+ }
+ if (to.meta.noCache) {
+ if (typeof to.meta.noCache === 'string') {
+ shouldClearCache = to.meta.noCache === from.name
+ }
+ else if (Array.isArray(to.meta.noCache)) {
+ shouldClearCache = to.meta.noCache.includes(from.name as string)
+ }
+ }
+ if (from.name === 'reload') {
+ shouldClearCache = true
+ }
+ if (shouldClearCache) {
+ keepAliveStore.remove(componentName)
+ await nextTick()
+ }
+ keepAliveStore.add(componentName)
+ }
+ else {
+ // turbo-console-disable-next-line
+ console.warn('[Fantastic-admin] 该页面组件未设置组件名,会导致缓存失效,请检查')
+ }
+ }
+ }
+ })
+}
+
+// 其他
+function setupOther(router: Router) {
+ router.afterEach(() => {
+ document.documentElement.scrollTop = 0
+ })
+}
+
+export default function setupGuards(router: Router) {
+ setupRoutes(router)
+ setupRedirectAuthChildrenRoute(router)
+ setupProgress(router)
+ setupTitle(router)
+ setupKeepAlive(router)
+ setupOther(router)
+}
diff --git a/admin-web/src/router/index.ts b/admin-web/src/router/index.ts
new file mode 100755
index 0000000..7fc01c4
--- /dev/null
+++ b/admin-web/src/router/index.ts
@@ -0,0 +1,21 @@
+import { loadingFadeOut } from 'virtual:app-loading'
+import { createRouter, createWebHashHistory } from 'vue-router'
+import pinia from '@/store'
+import setupExtensions from './extensions'
+import setupGuards from './guards'
+// 路由相关数据
+import { constantRoutes, constantRoutesByFilesystem } from './routes'
+
+const router = createRouter({
+ history: createWebHashHistory(),
+ routes: useSettingsStore(pinia).settings.app.routeBaseOn === 'filesystem' ? constantRoutesByFilesystem : constantRoutes,
+})
+
+setupGuards(router)
+setupExtensions(router)
+
+router.isReady().then(() => {
+ loadingFadeOut()
+})
+
+export default router
diff --git a/admin-web/src/router/modules/multilevel.menu.example.ts b/admin-web/src/router/modules/multilevel.menu.example.ts
new file mode 100755
index 0000000..a82aba7
--- /dev/null
+++ b/admin-web/src/router/modules/multilevel.menu.example.ts
@@ -0,0 +1,69 @@
+import type { RouteRecordRaw } from 'vue-router'
+
+function Layout() {
+ return import('@/layouts/index.vue')
+}
+
+const routes: RouteRecordRaw = {
+ path: '/multilevel_menu_example',
+ component: Layout,
+ name: 'multilevelMenuExample',
+ meta: {
+ title: '多级导航',
+ icon: 'i-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',
+ 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',
+ 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/admin-web/src/router/routes.ts b/admin-web/src/router/routes.ts
new file mode 100755
index 0000000..2110c05
--- /dev/null
+++ b/admin-web/src/router/routes.ts
@@ -0,0 +1,86 @@
+import type { Route } from '#/global'
+import type { RouteRecordRaw } from 'vue-router'
+import generatedRoutes from 'virtual:generated-pages'
+import { setupLayouts } from 'virtual:meta-layouts'
+import MultilevelMenuExample from './modules/multilevel.menu.example'
+
+// 固定路由(默认路由)
+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: '',
+ component: () => import('@/views/index.vue'),
+ meta: {
+ title: () => useSettingsStore().settings.home.title,
+ icon: 'i-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: 'i-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 {
+ asyncRoutes,
+ asyncRoutesByFilesystem,
+ constantRoutes,
+ constantRoutesByFilesystem,
+ systemRoutes,
+}
diff --git a/admin-web/src/settings.default.ts b/admin-web/src/settings.default.ts
new file mode 100755
index 0000000..a4e2b74
--- /dev/null
+++ b/admin-web/src/settings.default.ts
@@ -0,0 +1,64 @@
+// 该文件为系统默认配置,请勿修改!!!
+
+import type { RecursiveRequired, Settings } from '#/global'
+
+const globalSettingsDefault: RecursiveRequired = {
+ app: {
+ colorScheme: 'light',
+ radius: 0.5,
+ enableMournMode: false,
+ enableColorAmblyopiaMode: false,
+ enablePermission: false,
+ enableProgress: true,
+ enableDynamicTitle: false,
+ routeBaseOn: 'frontend',
+ },
+ home: {
+ enable: true,
+ title: '主页',
+ fullPath: '/',
+ },
+ layout: {
+ enableMobileAdaptation: false,
+ },
+ menu: {
+ baseOn: 'frontend',
+ mode: 'side',
+ mainMenuClickMode: 'switch',
+ subMenuUniqueOpened: true,
+ subMenuCollapse: false,
+ enableSubMenuCollapseButton: false,
+ enableHotkeys: false,
+ },
+ topbar: {
+ mode: 'static',
+ },
+ tabbar: {
+ enable: false,
+ enableIcon: false,
+ enableHotkeys: false,
+ },
+ toolbar: {
+ enable: true,
+ breadcrumb: true,
+ navSearch: true,
+ fullscreen: false,
+ pageReload: false,
+ colorScheme: false,
+ },
+ mainPage: {
+ enableHotkeys: true,
+ },
+ navSearch: {
+ enableHotkeys: true,
+ },
+ copyright: {
+ enable: false,
+ dates: '',
+ company: '',
+ website: '',
+ beian: '',
+ },
+}
+
+export default globalSettingsDefault
diff --git a/admin-web/src/settings.ts b/admin-web/src/settings.ts
new file mode 100755
index 0000000..a255cf5
--- /dev/null
+++ b/admin-web/src/settings.ts
@@ -0,0 +1,10 @@
+import type { RecursiveRequired, Settings } from '#/global'
+import { cloneDeep } from 'es-toolkit'
+import settingsDefault from '@/settings.default'
+import { merge } from '@/utils/object'
+
+const globalSettings: Settings.all = {
+ // 请在此处编写或粘贴配置代码
+}
+
+export default merge(globalSettings, cloneDeep(settingsDefault)) as RecursiveRequired
diff --git a/admin-web/src/slots/index.ts b/admin-web/src/slots/index.ts
new file mode 100644
index 0000000..bc2e5ef
--- /dev/null
+++ b/admin-web/src/slots/index.ts
@@ -0,0 +1,29 @@
+import { pascalCase } from 'scule'
+
+type Slots
+ = 'header-start' | 'header-after-logo' | 'header-after-menu' | 'header-end'
+ | 'main-sidebar-top' | 'main-sidebar-after-logo' | 'main-sidebar-after-menu' | 'main-sidebar-bottom'
+ | 'sub-sidebar-top' | 'sub-sidebar-after-logo' | 'sub-sidebar-after-menu' | 'sub-sidebar-bottom'
+ | 'tabbar-start' | 'tabbar-end'
+ | 'toolbar-start' | 'toolbar-end'
+ | 'free-position'
+
+function tryLoadComponent(name: Slots) {
+ const componentMap = import.meta.glob('./*/index.vue', { eager: true })
+ const path = `./${pascalCase(name as unknown as string)}/index.vue`
+ const component = componentMap[path as keyof typeof componentMap]
+ if (!component) {
+ return {
+ default: defineComponent({
+ name: 'SlotsInvalidComponent',
+ render: () => null,
+ }),
+ }
+ }
+ return component
+}
+
+export function useSlots(name: Slots) {
+ const component = tryLoadComponent(name)
+ return defineComponent((component as any).default)
+}
diff --git a/admin-web/src/store/index.ts b/admin-web/src/store/index.ts
new file mode 100644
index 0000000..a6e3624
--- /dev/null
+++ b/admin-web/src/store/index.ts
@@ -0,0 +1,3 @@
+const pinia = createPinia()
+
+export default pinia
diff --git a/admin-web/src/store/modules/keepAlive.ts b/admin-web/src/store/modules/keepAlive.ts
new file mode 100755
index 0000000..21bc17c
--- /dev/null
+++ b/admin-web/src/store/modules/keepAlive.ts
@@ -0,0 +1,40 @@
+export 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,
+ }
+ },
+)
diff --git a/admin-web/src/store/modules/menu.ts b/admin-web/src/store/modules/menu.ts
new file mode 100755
index 0000000..3d8cac8
--- /dev/null
+++ b/admin-web/src/store/modules/menu.ts
@@ -0,0 +1,217 @@
+import type { Menu, Route } from '#/global'
+import type { RouteRecordRaw } from 'vue-router'
+import { cloneDeep } from 'es-toolkit'
+import apiApp from '@/api/modules/app'
+import menu from '@/menu'
+import { resolveRoutePath } from '@/utils'
+
+export const useMenuStore = defineStore(
+ // 唯一ID
+ 'menu',
+ () => {
+ const settingsStore = useSettingsStore()
+ const routeStore = useRouteStore()
+
+ const filesystemMenusRaw = ref([])
+ const actived = ref(0)
+
+ // 将原始路由转换成导航菜单
+ function convertRouteToMenu(routes: Route.recordMainRaw[]): Menu.recordMainRaw[] {
+ const returnMenus: Menu.recordMainRaw[] = []
+ routes.forEach((item) => {
+ if (item.children.length > 0) {
+ if (settingsStore.settings.menu.mode === 'single') {
+ returnMenus.length === 0 && returnMenus.push({
+ meta: {},
+ children: [],
+ })
+ returnMenus[0].children.push(...convertRouteToMenuRecursive(item.children))
+ }
+ else {
+ const menuItem: Menu.recordMainRaw = {
+ meta: {
+ title: item?.meta?.title,
+ icon: item?.meta?.icon,
+ auth: item?.meta?.auth,
+ },
+ children: [],
+ }
+ menuItem.children = convertRouteToMenuRecursive(item.children)
+ returnMenus.push(menuItem)
+ }
+ }
+ })
+ return returnMenus
+ }
+ function convertRouteToMenuRecursive(routes: RouteRecordRaw[], basePath = ''): Menu.recordRaw[] {
+ const returnMenus: Menu.recordRaw[] = []
+ routes.forEach((item) => {
+ const menuItem: Menu.recordRaw = {
+ path: resolveRoutePath(basePath, item.path),
+ meta: {
+ title: item?.meta?.title,
+ icon: item?.meta?.icon,
+ defaultOpened: item?.meta?.defaultOpened,
+ auth: item?.meta?.auth,
+ menu: item?.meta?.menu,
+ link: item?.meta?.link,
+ },
+ }
+ if (item.children) {
+ menuItem.children = convertRouteToMenuRecursive(item.children, menuItem.path)
+ }
+ returnMenus.push(menuItem)
+ })
+ return returnMenus
+ }
+
+ // 完整导航数据
+ const allMenus = computed(() => {
+ let returnMenus: Menu.recordMainRaw[] = []
+ if (settingsStore.settings.app.routeBaseOn !== 'filesystem') {
+ returnMenus = convertRouteToMenu(routeStore.routesRaw)
+ }
+ else {
+ returnMenus = filesystemMenusRaw.value
+ }
+ returnMenus = filterAsyncMenus(returnMenus)
+ return returnMenus
+ })
+ // 次导航数据
+ const sidebarMenus = computed(() => {
+ return allMenus.value.length > 0
+ ? allMenus.value.length > 1
+ ? allMenus.value[actived.value].children
+ : allMenus.value[0].children
+ : []
+ })
+ // 次导航第一层最深路径
+ const sidebarMenusFirstDeepestPath = computed(() => {
+ return sidebarMenus.value.length > 0
+ ? getDeepestPath(sidebarMenus.value[0])
+ : settingsStore.settings.home.fullPath
+ })
+ function getDeepestPath(menu: Menu.recordRaw, rootPath = '') {
+ let retnPath = ''
+ if (menu.children?.some(item => item.meta?.menu !== false)) {
+ const item = menu.children.find(item => item.meta?.menu !== 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 sidebarMenusHasOnlyMenu = computed(() => {
+ return isSidebarMenusHasOnlyMenu(sidebarMenus.value)
+ })
+ function isSidebarMenusHasOnlyMenu(menus: Menu.recordRaw[]) {
+ let count = 0
+ let isOnly = true
+ menus.forEach((menu) => {
+ if (menu.meta?.menu !== false) {
+ count++
+ }
+ if (menu.children) {
+ isOnly = isSidebarMenusHasOnlyMenu(menu.children)
+ }
+ })
+ return count <= 1 && isOnly
+ }
+ // 默认展开的导航路径
+ 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
+ }
+
+ const auth = useAuth()
+ // 根据权限过滤导航
+ function filterAsyncMenus(menus: T): T {
+ const res: any = []
+ menus.forEach((menu) => {
+ if (auth.auth(menu.meta?.auth ?? '')) {
+ const tmpMenu = cloneDeep(menu)
+ if (tmpMenu.children && tmpMenu.children.length > 0) {
+ tmpMenu.children = filterAsyncMenus(tmpMenu.children) as Menu.recordRaw[]
+ tmpMenu.children.length > 0 && res.push(tmpMenu)
+ }
+ else {
+ delete tmpMenu.children
+ res.push(tmpMenu)
+ }
+ }
+ })
+ return res
+ }
+ // 生成导航(前端生成)
+ async function generateMenusAtFront() {
+ filesystemMenusRaw.value = menu.filter(item => item.children.length !== 0)
+ }
+ // 生成导航(后端生成)
+ async function generateMenusAtBack() {
+ await apiApp.menuList().then(async (res) => {
+ filesystemMenusRaw.value = (res.data as Menu.recordMainRaw[]).filter(item => item.children.length !== 0)
+ }).catch(() => {})
+ }
+ // 设置主导航
+ function isPathInMenus(menus: Menu.recordRaw[], path: string) {
+ let flag = false
+ flag = menus.some((item) => {
+ if (item.children) {
+ return isPathInMenus(item.children, path)
+ }
+ return path.indexOf(`${item.path}/`) === 0 || path === item.path
+ })
+ return flag
+ }
+ function setActived(indexOrPath: number | string) {
+ if (typeof indexOrPath === 'number') {
+ // 如果是 number 类型,则认为是主导航的索引
+ actived.value = indexOrPath
+ }
+ else {
+ // 如果是 string 类型,则认为是路由,需要查找对应的主导航索引
+ const findIndex = allMenus.value.findIndex(item => isPathInMenus(item.children, indexOrPath))
+ if (findIndex >= 0) {
+ actived.value = findIndex
+ }
+ }
+ }
+
+ return {
+ actived,
+ allMenus,
+ sidebarMenus,
+ sidebarMenusFirstDeepestPath,
+ sidebarMenusHasOnlyMenu,
+ defaultOpenedPaths,
+ generateMenusAtFront,
+ generateMenusAtBack,
+ setActived,
+ }
+ },
+)
diff --git a/admin-web/src/store/modules/route.ts b/admin-web/src/store/modules/route.ts
new file mode 100755
index 0000000..b32a4ec
--- /dev/null
+++ b/admin-web/src/store/modules/route.ts
@@ -0,0 +1,170 @@
+import type { Route } from '#/global'
+import type { RouteRecordRaw, RouterMatcher } from 'vue-router'
+import { cloneDeep } from 'es-toolkit'
+import { createRouterMatcher } from 'vue-router'
+import apiApp from '@/api/modules/app'
+import { systemRoutes as systemRoutesRaw } from '@/router/routes'
+
+export const useRouteStore = defineStore(
+ // 唯一ID
+ 'route',
+ () => {
+ const settingsStore = useSettingsStore()
+
+ const isGenerate = ref(false)
+ // 原始路由
+ const routesRaw = ref([])
+ // 文件系统原始路由
+ const filesystemRoutesRaw = ref([])
+ // 已注册的路由,用于登出时删除路由
+ const currentRemoveRoutes = ref<(() => void)[]>([])
+
+ // 实际路由
+ const routes = 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) => {
+ if (item.children) {
+ item.children = deleteMiddleRouteComponent(item.children)
+ }
+ return item
+ })
+ }
+ }
+ else {
+ returnRoutes.push(...cloneDeep(filesystemRoutesRaw.value) as RouteRecordRaw[])
+ }
+ return returnRoutes
+ })
+ // 系统路由
+ const systemRoutes = computed(() => {
+ const routes = [...systemRoutesRaw]
+ routes.forEach((item) => {
+ if (item.children) {
+ item.children = deleteMiddleRouteComponent(item.children)
+ }
+ })
+ return routes
+ })
+ // 删除路由中间层级对应的组件
+ function deleteMiddleRouteComponent(routes: RouteRecordRaw[]) {
+ const res: RouteRecordRaw[] = []
+ routes.forEach((route) => {
+ if (route.children?.length) {
+ delete route.component
+ route.children = deleteMiddleRouteComponent(route.children)
+ }
+ else {
+ delete route.children
+ }
+ res.push(route)
+ })
+ return res
+ }
+
+ // 路由匹配器
+ const routesMatcher = ref()
+ // 根据路径获取匹配的路由
+ function getRouteMatchedByPath(path: string) {
+ return routesMatcher.value?.resolve({ path }, undefined!)?.matched ?? []
+ }
+
+ // 生成路由(前端生成)
+ function generateRoutesAtFront(asyncRoutes: Route.recordMainRaw[]) {
+ // 设置 routes 数据
+ routesRaw.value = cloneDeep(asyncRoutes) as any
+ // 创建路由匹配器
+ const routes: RouteRecordRaw[] = []
+ routesRaw.value.forEach((route) => {
+ if (route.children) {
+ routes.push(...route.children)
+ }
+ })
+ routesMatcher.value = createRouterMatcher(routes, {})
+ 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((res) => {
+ // 设置 routes 数据
+ routesRaw.value = formatBackRoutes(res.data) as any
+ // 创建路由匹配器
+ const routes: RouteRecordRaw[] = []
+ routesRaw.value.forEach((route) => {
+ if (route.children) {
+ routes.push(...route.children)
+ }
+ })
+ routesMatcher.value = createRouterMatcher(routes, {})
+ isGenerate.value = true
+ })
+ }
+ // 生成路由(文件系统生成)
+ function generateRoutesAtFilesystem(asyncRoutes: RouteRecordRaw[]) {
+ // 设置 routes 数据
+ filesystemRoutesRaw.value = cloneDeep(asyncRoutes) as any
+ 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,
+ routesRaw,
+ currentRemoveRoutes,
+ routes,
+ systemRoutes,
+ getRouteMatchedByPath,
+ generateRoutesAtFront,
+ generateRoutesAtBack,
+ generateRoutesAtFilesystem,
+ setCurrentRemoveRoutes,
+ removeRoutes,
+ }
+ },
+)
diff --git a/admin-web/src/store/modules/settings.ts b/admin-web/src/store/modules/settings.ts
new file mode 100755
index 0000000..6f11edb
--- /dev/null
+++ b/admin-web/src/store/modules/settings.ts
@@ -0,0 +1,180 @@
+import type { Settings } from '#/global'
+import type { RouteMeta } from 'vue-router'
+import { cloneDeep } from 'es-toolkit'
+import settingsDefault from '@/settings'
+import { merge } from '@/utils/object'
+
+export const useSettingsStore = defineStore(
+ // 唯一ID
+ 'settings',
+ () => {
+ const settings = ref(settingsDefault)
+
+ const prefersColorScheme = window.matchMedia('(prefers-color-scheme: dark)')
+ watch(() => settings.value.app.colorScheme, (val) => {
+ document.documentElement.classList.add('disable-color-scheme-transition-duration')
+ requestAnimationFrame(() => {
+ requestAnimationFrame(() => {
+ document.documentElement.classList.remove('disable-color-scheme-transition-duration')
+ })
+ })
+ if (val === '') {
+ prefersColorScheme.addEventListener('change', updateTheme)
+ }
+ else {
+ prefersColorScheme.removeEventListener('change', updateTheme)
+ }
+ }, {
+ immediate: true,
+ })
+
+ const currentColorScheme = ref>()
+ watch(() => settings.value.app.colorScheme, updateTheme, {
+ immediate: true,
+ })
+ function updateTheme() {
+ let colorScheme = settings.value.app.colorScheme
+ if (colorScheme === '') {
+ colorScheme = prefersColorScheme.matches ? 'dark' : 'light'
+ }
+ currentColorScheme.value = colorScheme
+ switch (colorScheme) {
+ case 'light':
+ document.documentElement.classList.remove('dark')
+ break
+ case 'dark':
+ document.documentElement.classList.add('dark')
+ break
+ }
+ }
+
+ watch(() => settings.value.app.radius, (val) => {
+ document.documentElement.style.removeProperty('--radius')
+ document.documentElement.style.setProperty('--radius', `${val}rem`)
+ }, {
+ immediate: true,
+ })
+ watch([
+ () => settings.value.app.enableMournMode,
+ () => settings.value.app.enableColorAmblyopiaMode,
+ ], (val) => {
+ document.documentElement.style.removeProperty('filter')
+ if (val[0] && val[1]) {
+ document.documentElement.style.setProperty('filter', 'grayscale(100%) invert(80%)')
+ }
+ else if (val[0]) {
+ document.documentElement.style.setProperty('filter', 'grayscale(100%)')
+ }
+ else if (val[1]) {
+ document.documentElement.style.setProperty('filter', 'invert(80%)')
+ }
+ }, {
+ immediate: true,
+ })
+
+ watch(() => settings.value.menu.mode, (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 isReloading = ref(false)
+ // 切换当前页面是否刷新
+ function setIsReloading(value?: boolean) {
+ isReloading.value = value ?? !isReloading.value
+ }
+
+ // 页面标题
+ 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 < 1024 ? 'mobile' : 'pc'
+ }
+ }
+ else {
+ mode.value = 'pc'
+ }
+ }
+
+ // 切换侧边栏导航展开/收起
+ function toggleSidebarCollapse() {
+ settings.value.menu.subMenuCollapse = !settings.value.menu.subMenuCollapse
+ }
+ // 次导航是否收起(用于记录 pc 模式下最后的状态)
+ const subMenuCollapseLastStatus = ref(settingsDefault.menu.subMenuCollapse)
+ watch(() => settings.value.menu.subMenuCollapse, (val) => {
+ if (mode.value === 'pc') {
+ subMenuCollapseLastStatus.value = val
+ }
+ })
+ 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 = merge(data, fromBase ? cloneDeep(settingsDefault) : settings.value)
+ }
+
+ return {
+ settings,
+ currentColorScheme,
+ os,
+ isReloading,
+ setIsReloading,
+ title,
+ setTitle,
+ mode,
+ setMode,
+ subMenuCollapseLastStatus,
+ toggleSidebarCollapse,
+ setColorScheme,
+ updateSettings,
+ }
+ },
+)
diff --git a/admin-web/src/store/modules/tabbar.ts b/admin-web/src/store/modules/tabbar.ts
new file mode 100755
index 0000000..07994ec
--- /dev/null
+++ b/admin-web/src/store/modules/tabbar.ts
@@ -0,0 +1,160 @@
+import type { Tabbar } from '#/global'
+import type { RouteLocationNormalized } from 'vue-router'
+
+export const useTabbarStore = defineStore(
+ // 唯一ID
+ 'tabbar',
+ () => {
+ const keepAliveStore = useKeepAliveStore()
+
+ const list = ref([])
+ const leaveIndex = ref(-1)
+
+ // 添加标签页
+ function add(route: RouteLocationNormalized) {
+ const names: string[] = []
+ route.matched.forEach((v, i) => {
+ if (i > 0) {
+ v.components?.default.name && names.push(v.components.default.name)
+ }
+ })
+ const meta = route.matched.at(-1)?.meta
+ const tabId = route.path
+ if (route.name !== 'reload') {
+ // 记录查找到的标签页
+ const findTab = list.value.find((item) => {
+ return item.tabId === tabId
+ })
+ // 新增标签页
+ if (!findTab) {
+ const listItem = {
+ tabId,
+ fullPath: route.fullPath,
+ title: typeof meta?.title === 'function' ? meta.title() : meta?.title,
+ icon: meta?.icon ?? route.matched?.findLast(item => item.meta?.icon)?.meta?.icon,
+ name: names,
+ }
+ if (leaveIndex.value >= 0) {
+ list.value.splice(leaveIndex.value + 1, 0, listItem)
+ leaveIndex.value = -1
+ }
+ else {
+ list.value.push(listItem)
+ }
+ }
+ }
+ }
+ // 删除指定标签页
+ function remove(tabId: Tabbar.recordRaw['tabId']) {
+ const keepName: string[] = []
+ const removeName: string[] = []
+ list.value.forEach((v) => {
+ if (v.tabId === tabId) {
+ removeName.push(...v.name)
+ }
+ else {
+ keepName.push(...v.name)
+ }
+ })
+ const name: string[] = []
+ removeName.forEach((v) => {
+ if (!keepName.includes(v)) {
+ name.push(v)
+ }
+ })
+ // 如果是手动点击关闭 tab 标签页,则删除页面缓存
+ keepAliveStore.remove(name)
+ list.value = list.value.filter((item) => {
+ return item.tabId !== tabId
+ })
+ }
+ // 删除两侧标签页
+ function removeOtherSide(tabId: Tabbar.recordRaw['tabId']) {
+ const keepName: string[] = []
+ const removeName: string[] = []
+ list.value.forEach((v) => {
+ if (v.tabId !== tabId) {
+ removeName.push(...v.name)
+ }
+ else {
+ keepName.push(...v.name)
+ }
+ })
+ const name: string[] = []
+ removeName.forEach((v) => {
+ if (!keepName.includes(v)) {
+ name.push(v)
+ }
+ })
+ keepAliveStore.remove(name)
+ list.value = list.value.filter((item) => {
+ return item.tabId === tabId
+ })
+ }
+ // 删除左侧标签页
+ function removeLeftSide(tabId: Tabbar.recordRaw['tabId']) {
+ // 查找指定路由对应在标签页列表里的下标
+ const index = list.value.findIndex(item => item.tabId === tabId)
+ const keepName: string[] = []
+ const removeName: string[] = []
+ list.value.forEach((v, i) => {
+ if (i < index) {
+ removeName.push(...v.name)
+ }
+ else {
+ keepName.push(...v.name)
+ }
+ })
+ const name: string[] = []
+ removeName.forEach((v) => {
+ if (!keepName.includes(v)) {
+ name.push(v)
+ }
+ })
+ keepAliveStore.remove(name)
+ list.value = list.value.filter((_item, i) => {
+ return i >= index
+ })
+ }
+ // 删除右侧标签页
+ function removeRightSide(tabId: Tabbar.recordRaw['tabId']) {
+ // 查找指定路由对应在标签页列表里的下标
+ const index = list.value.findIndex(item => item.tabId === tabId)
+ const keepName: string[] = []
+ const removeName: string[] = []
+ list.value.forEach((v, i) => {
+ if (i > index) {
+ removeName.push(...v.name)
+ }
+ else {
+ keepName.push(...v.name)
+ }
+ })
+ const name: string[] = []
+ removeName.forEach((v) => {
+ if (!keepName.includes(v)) {
+ name.push(v)
+ }
+ })
+ keepAliveStore.remove(name)
+ list.value = list.value.filter((_item, i) => {
+ return i <= index
+ })
+ }
+ // 清空所有标签页,登出的时候需要清空
+ function clean() {
+ list.value = []
+ }
+
+ return {
+ list,
+ leaveIndex,
+ add,
+ remove,
+ removeOtherSide,
+ removeLeftSide,
+ removeRightSide,
+ clean,
+ }
+ },
+)
diff --git a/admin-web/src/store/modules/user.ts b/admin-web/src/store/modules/user.ts
new file mode 100755
index 0000000..6c3827d
--- /dev/null
+++ b/admin-web/src/store/modules/user.ts
@@ -0,0 +1,107 @@
+import apiUser from '@/api/modules/user'
+import router from '@/router'
+
+export const useUserStore = defineStore(
+ // 唯一ID
+ 'user',
+ () => {
+ const settingsStore = useSettingsStore()
+ const routeStore = useRouteStore()
+ const menuStore = useMenuStore()
+ const tabbarStore = useTabbarStore()
+
+ const account = ref(localStorage.account ?? '')
+ const token = ref(localStorage.token ?? '')
+ const avatar = ref(localStorage.avatar ?? '')
+ const permissions = ref([])
+ const isLogin = computed(() => {
+ if (token.value) {
+ return true
+ }
+ return false
+ })
+
+ // 登录
+ 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('avatar', res.data.avatar)
+ account.value = res.data.account
+ token.value = res.data.token
+ avatar.value = res.data.avatar
+ }
+
+ // 手动登出
+ function logout(redirect = router.currentRoute.value.fullPath) {
+ // 此处仅清除计算属性 isLogin 中判断登录状态过期的变量,以保证在弹出登录窗口模式下页面展示依旧正常
+ localStorage.removeItem('token')
+ token.value = ''
+ router.push({
+ name: 'login',
+ query: {
+ ...(redirect !== settingsStore.settings.home.fullPath && router.currentRoute.value.name !== 'login' && { redirect }),
+ },
+ }).then(logoutCleanStatus)
+ }
+ // 请求登出
+ function requestLogout() {
+ // 此处仅清除计算属性 isLogin 中判断登录状态过期的变量,以保证在弹出登录窗口模式下页面展示依旧正常
+ localStorage.removeItem('token')
+ token.value = ''
+ router.push({
+ name: 'login',
+ query: {
+ ...(
+ router.currentRoute.value.fullPath !== settingsStore.settings.home.fullPath
+ && router.currentRoute.value.name !== 'login'
+ && {
+ redirect: router.currentRoute.value.fullPath,
+ }
+ ),
+ },
+ }).then(logoutCleanStatus)
+ }
+ // 登出后清除状态
+ function logoutCleanStatus() {
+ localStorage.removeItem('account')
+ localStorage.removeItem('avatar')
+ account.value = ''
+ avatar.value = ''
+ permissions.value = []
+ settingsStore.updateSettings({}, true)
+ tabbarStore.clean()
+ routeStore.removeRoutes()
+ menuStore.setActived(0)
+ }
+
+ // 获取权限
+ async function getPermissions() {
+ const res = await apiUser.permission()
+ permissions.value = res.data.permissions
+ }
+ // 修改密码
+ async function editPassword(data: {
+ password: string
+ newPassword: string
+ }) {
+ await apiUser.passwordEdit(data)
+ }
+
+ return {
+ account,
+ token,
+ avatar,
+ permissions,
+ isLogin,
+ login,
+ logout,
+ requestLogout,
+ getPermissions,
+ editPassword,
+ }
+ },
+)
diff --git a/admin-web/src/types/auto-imports.d.ts b/admin-web/src/types/auto-imports.d.ts
new file mode 100644
index 0000000..fed3438
--- /dev/null
+++ b/admin-web/src/types/auto-imports.d.ts
@@ -0,0 +1,101 @@
+/* eslint-disable */
+/* prettier-ignore */
+// @ts-nocheck
+// noinspection JSUnusedGlobalSymbols
+// Generated by unplugin-auto-import
+// biome-ignore lint: disable
+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 getCurrentWatcher: typeof import('vue').getCurrentWatcher
+ 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 isShallow: typeof import('vue').isShallow
+ 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 onWatcherCleanup: typeof import('vue').onWatcherCleanup
+ 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 useId: typeof import('vue').useId
+ const useKeepAliveStore: typeof import('../store/modules/keepAlive').useKeepAliveStore
+ const useLink: typeof import('vue-router').useLink
+ const useMainPage: typeof import('../utils/composables/useMainPage').default
+ const useMenu: typeof import('../utils/composables/useMenu').default
+ const useMenuStore: typeof import('../store/modules/menu').useMenuStore
+ const useModel: typeof import('vue').useModel
+ const useRoute: typeof import('vue-router').useRoute
+ const useRouteStore: typeof import('../store/modules/route').useRouteStore
+ const useRouter: typeof import('vue-router').useRouter
+ const useSettingsStore: typeof import('../store/modules/settings').useSettingsStore
+ const useSlots: typeof import('vue').useSlots
+ const useTabbar: typeof import('../utils/composables/useTabbar').default
+ const useTabbarStore: typeof import('../store/modules/tabbar').useTabbarStore
+ const useTemplateRef: typeof import('vue').useTemplateRef
+ const useUserStore: typeof import('../store/modules/user').useUserStore
+ 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, Slot, Slots, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, ShallowRef, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'
+ import('vue')
+}
diff --git a/admin-web/src/types/components.d.ts b/admin-web/src/types/components.d.ts
new file mode 100644
index 0000000..13dd652
--- /dev/null
+++ b/admin-web/src/types/components.d.ts
@@ -0,0 +1,108 @@
+/* eslint-disable */
+// @ts-nocheck
+// biome-ignore lint: disable
+// oxlint-disable
+// ------
+// Generated by unplugin-vue-components
+// Read more: https://github.com/vuejs/core/pull/3399
+import { GlobalComponents } from 'vue'
+
+export {}
+
+/* prettier-ignore */
+declare module 'vue' {
+ export interface GlobalComponents {
+ AccountButton: typeof import('./../components/AccountButton/index.vue')['default']
+ FaAuth: typeof import('./../ui/components/FaAuth/index.vue')['default']
+ FaAvatar: typeof import('./../ui/components/FaAvatar/index.vue')['default']
+ FaBackToTop: typeof import('./../ui/components/FaBackToTop/index.vue')['default']
+ FaButton: typeof import('./../ui/components/FaButton/index.vue')['default']
+ FaButtonGroup: typeof import('./../ui/components/FaButtonGroup/index.vue')['default']
+ FaCard: typeof import('./../ui/components/FaCard/index.vue')['default']
+ FaCheckbox: typeof import('./../ui/components/FaCheckbox/index.vue')['default']
+ FaCollapsible: typeof import('./../ui/components/FaCollapsible/index.vue')['default']
+ FaContextMenu: typeof import('./../ui/components/FaContextMenu/index.vue')['default']
+ FaCopyright: typeof import('./../ui/components/FaCopyright/index.vue')['default']
+ FaDivider: typeof import('./../ui/components/FaDivider/index.vue')['default']
+ FaDrawer: typeof import('./../ui/components/FaDrawer/index.vue')['default']
+ FaDropdown: typeof import('./../ui/components/FaDropdown/index.vue')['default']
+ FaFileUpload: typeof import('./../ui/components/FaFileUpload/index.vue')['default']
+ FaFixedActionBar: typeof import('./../ui/components/FaFixedActionBar/index.vue')['default']
+ FaHoverCard: typeof import('./../ui/components/FaHoverCard/index.vue')['default']
+ FaIcon: typeof import('./../ui/components/FaIcon/index.vue')['default']
+ FaImagePreview: typeof import('./../ui/components/FaImagePreview/index.vue')['default']
+ FaImageUpload: typeof import('./../ui/components/FaImageUpload/index.vue')['default']
+ FaInput: typeof import('./../ui/components/FaInput/index.vue')['default']
+ FaKbd: typeof import('./../ui/components/FaKbd/index.vue')['default']
+ FaModal: typeof import('./../ui/components/FaModal/index.vue')['default']
+ FaNotAllowed: typeof import('./../ui/components/FaNotAllowed/index.vue')['default']
+ FaNotification: typeof import('./../ui/components/FaNotification/index.vue')['default']
+ FaPageHeader: typeof import('./../ui/components/FaPageHeader/index.vue')['default']
+ FaPageMain: typeof import('./../ui/components/FaPageMain/index.vue')['default']
+ FaPasswordStrength: typeof import('./../ui/components/FaPasswordStrength/index.vue')['default']
+ FaPinInput: typeof import('./../ui/components/FaPinInput/index.vue')['default']
+ FaPopover: typeof import('./../ui/components/FaPopover/index.vue')['default']
+ FaProgress: typeof import('./../ui/components/FaProgress/index.vue')['default']
+ FaScrollArea: typeof import('./../ui/components/FaScrollArea/index.vue')['default']
+ FaSearchBar: typeof import('./../ui/components/FaSearchBar/index.vue')['default']
+ FaSelect: typeof import('./../ui/components/FaSelect/index.vue')['default']
+ FaSlider: typeof import('./../ui/components/FaSlider/index.vue')['default']
+ FaSmartFixedBlock: typeof import('./../ui/components/FaSmartFixedBlock/index.vue')['default']
+ FaSwitch: typeof import('./../ui/components/FaSwitch/index.vue')['default']
+ FaSystemInfo: typeof import('./../ui/components/FaSystemInfo/index.vue')['default']
+ FaTabs: typeof import('./../ui/components/FaTabs/index.vue')['default']
+ FaTextarea: typeof import('./../ui/components/FaTextarea/index.vue')['default']
+ FaToast: typeof import('./../ui/components/FaToast/index.vue')['default']
+ FaTooltip: typeof import('./../ui/components/FaTooltip/index.vue')['default']
+ RouterLink: typeof import('vue-router')['RouterLink']
+ RouterView: typeof import('vue-router')['RouterView']
+ }
+}
+
+// For TSX support
+declare global {
+ const AccountButton: typeof import('./../components/AccountButton/index.vue')['default']
+ const FaAuth: typeof import('./../ui/components/FaAuth/index.vue')['default']
+ const FaAvatar: typeof import('./../ui/components/FaAvatar/index.vue')['default']
+ const FaBackToTop: typeof import('./../ui/components/FaBackToTop/index.vue')['default']
+ const FaButton: typeof import('./../ui/components/FaButton/index.vue')['default']
+ const FaButtonGroup: typeof import('./../ui/components/FaButtonGroup/index.vue')['default']
+ const FaCard: typeof import('./../ui/components/FaCard/index.vue')['default']
+ const FaCheckbox: typeof import('./../ui/components/FaCheckbox/index.vue')['default']
+ const FaCollapsible: typeof import('./../ui/components/FaCollapsible/index.vue')['default']
+ const FaContextMenu: typeof import('./../ui/components/FaContextMenu/index.vue')['default']
+ const FaCopyright: typeof import('./../ui/components/FaCopyright/index.vue')['default']
+ const FaDivider: typeof import('./../ui/components/FaDivider/index.vue')['default']
+ const FaDrawer: typeof import('./../ui/components/FaDrawer/index.vue')['default']
+ const FaDropdown: typeof import('./../ui/components/FaDropdown/index.vue')['default']
+ const FaFileUpload: typeof import('./../ui/components/FaFileUpload/index.vue')['default']
+ const FaFixedActionBar: typeof import('./../ui/components/FaFixedActionBar/index.vue')['default']
+ const FaHoverCard: typeof import('./../ui/components/FaHoverCard/index.vue')['default']
+ const FaIcon: typeof import('./../ui/components/FaIcon/index.vue')['default']
+ const FaImagePreview: typeof import('./../ui/components/FaImagePreview/index.vue')['default']
+ const FaImageUpload: typeof import('./../ui/components/FaImageUpload/index.vue')['default']
+ const FaInput: typeof import('./../ui/components/FaInput/index.vue')['default']
+ const FaKbd: typeof import('./../ui/components/FaKbd/index.vue')['default']
+ const FaModal: typeof import('./../ui/components/FaModal/index.vue')['default']
+ const FaNotAllowed: typeof import('./../ui/components/FaNotAllowed/index.vue')['default']
+ const FaNotification: typeof import('./../ui/components/FaNotification/index.vue')['default']
+ const FaPageHeader: typeof import('./../ui/components/FaPageHeader/index.vue')['default']
+ const FaPageMain: typeof import('./../ui/components/FaPageMain/index.vue')['default']
+ const FaPasswordStrength: typeof import('./../ui/components/FaPasswordStrength/index.vue')['default']
+ const FaPinInput: typeof import('./../ui/components/FaPinInput/index.vue')['default']
+ const FaPopover: typeof import('./../ui/components/FaPopover/index.vue')['default']
+ const FaProgress: typeof import('./../ui/components/FaProgress/index.vue')['default']
+ const FaScrollArea: typeof import('./../ui/components/FaScrollArea/index.vue')['default']
+ const FaSearchBar: typeof import('./../ui/components/FaSearchBar/index.vue')['default']
+ const FaSelect: typeof import('./../ui/components/FaSelect/index.vue')['default']
+ const FaSlider: typeof import('./../ui/components/FaSlider/index.vue')['default']
+ const FaSmartFixedBlock: typeof import('./../ui/components/FaSmartFixedBlock/index.vue')['default']
+ const FaSwitch: typeof import('./../ui/components/FaSwitch/index.vue')['default']
+ const FaSystemInfo: typeof import('./../ui/components/FaSystemInfo/index.vue')['default']
+ const FaTabs: typeof import('./../ui/components/FaTabs/index.vue')['default']
+ const FaTextarea: typeof import('./../ui/components/FaTextarea/index.vue')['default']
+ const FaToast: typeof import('./../ui/components/FaToast/index.vue')['default']
+ const FaTooltip: typeof import('./../ui/components/FaTooltip/index.vue')['default']
+ const RouterLink: typeof import('vue-router')['RouterLink']
+ const RouterView: typeof import('vue-router')['RouterView']
+}
\ No newline at end of file
diff --git a/admin-web/src/types/env.d.ts b/admin-web/src/types/env.d.ts
new file mode 100644
index 0000000..77ddbd0
--- /dev/null
+++ b/admin-web/src/types/env.d.ts
@@ -0,0 +1,31 @@
+interface ImportMetaEnv {
+ // Auto generate by env-parse
+ /**
+ * 应用配置面板
+ */
+ readonly VITE_APP_SETTING: boolean
+ /**
+ * 页面标题
+ */
+ readonly VITE_APP_TITLE: string
+ /**
+ * 接口请求地址,会设置到 axios 的 baseURL 参数上
+ */
+ readonly VITE_APP_API_BASEURL: string
+ /**
+ * 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空
+ */
+ readonly VITE_APP_DEBUG_TOOL: string
+ /**
+ * 是否禁用开发者工具,可防止被调试
+ */
+ readonly VITE_APP_DISABLE_DEVTOOL: boolean
+ /**
+ * 是否开启代理
+ */
+ readonly VITE_OPEN_PROXY: boolean
+ /**
+ * 是否开启开发者工具
+ */
+ readonly VITE_OPEN_DEVTOOLS: boolean
+}
diff --git a/admin-web/src/types/global.d.ts b/admin-web/src/types/global.d.ts
new file mode 100755
index 0000000..e7169aa
--- /dev/null
+++ b/admin-web/src/types/global.d.ts
@@ -0,0 +1,306 @@
+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' | ''
+ /**
+ * 圆角系数
+ * @默认值 `0.5`
+ * @可选值 `0到1区间的任意值`
+ */
+ radius?: number
+ /**
+ * 是否开启哀悼模式
+ * @默认值 `false`
+ */
+ enableMournMode?: boolean
+ /**
+ * 是否开启色弱模式
+ * @默认值 `false`
+ */
+ enableColorAmblyopiaMode?: boolean
+ /**
+ * 是否开启权限功能
+ * @默认值 `false`
+ */
+ enablePermission?: boolean
+ /**
+ * 是否开启载入进度条
+ * @默认值 `true`
+ */
+ enableProgress?: boolean
+ /**
+ * 是否开启动态标题
+ * @默认值 `false`
+ */
+ enableDynamicTitle?: boolean
+ /**
+ * 路由数据来源
+ * @默认值 `'frontend'` 前端
+ * @可选值 `'backend'` 后端
+ * @可选值 `'filesystem'` 文件系统
+ */
+ routeBaseOn?: 'frontend' | 'backend' | 'filesystem'
+ }
+ interface home {
+ /**
+ * 是否开启主页
+ * @默认值 `true`
+ */
+ enable?: boolean
+ /**
+ * 主页名称
+ * @默认值 `'主页'`
+ */
+ title?: string
+ /**
+ * 主页完整路径
+ * @默认值 `'/'`
+ */
+ fullPath?: string
+ }
+ interface layout {
+ /**
+ * 是否开启移动端适配,开启后当页面宽度小于 1024px 时自动切换为移动端展示
+ * @默认值 `false`
+ */
+ enableMobileAdaptation?: boolean
+ }
+ interface menu {
+ /**
+ * 导航栏数据来源,当 `app.routeBaseOn: 'filesystem'` 时生效
+ * @默认值 `'frontend'` 前端
+ * @可选值 `'backend'` 后端
+ */
+ baseOn?: 'frontend' | 'backend'
+ /**
+ * 导航栏模式
+ * @默认值 `'side'` 侧边栏模式(有主导航)
+ * @可选值 `'head'` 顶部模式
+ * @可选值 `'single'` 侧边栏模式(无主导航)
+ */
+ mode?: 'side' | 'head' | 'single'
+ /**
+ * 主导航点击模式
+ * @默认值 `'switch'` 切换
+ * @可选值 `'jump'` 跳转
+ * @可选值 `'smart'` 智能选择,判断次导航是否只有且只有一个可访问的菜单进行切换或跳转操作
+ */
+ mainMenuClickMode?: 'switch' | 'jump' | 'smart'
+ /**
+ * 次导航是否只保持一个子项的展开
+ * @默认值 `true`
+ */
+ subMenuUniqueOpened?: boolean
+ /**
+ * 次导航是否收起
+ * @默认值 `false`
+ */
+ subMenuCollapse?: boolean
+ /**
+ * 是否开启次导航的展开/收起按钮
+ * @默认值 `false`
+ */
+ enableSubMenuCollapseButton?: boolean
+ /**
+ * 是否开启主导航切换快捷键
+ * @默认值 `false`
+ */
+ enableHotkeys?: boolean
+ }
+ interface topbar {
+ /**
+ * 模式
+ * @默认值 `'static'` 静止,跟随页面滚动
+ * @可选值 `'fixed'` 固定,不跟随页面滚动,始终固定在顶部
+ * @可选值 `'sticky'` 粘性,页面往下滚动时隐藏,往上滚动时显示
+ */
+ mode?: 'static' | 'fixed' | 'sticky'
+ }
+ interface tabbar {
+ /**
+ * 是否开启标签栏
+ * @默认值 `false`
+ */
+ enable?: boolean
+ /**
+ * 是否开启标签栏图标显示
+ * @默认值 `false`
+ */
+ enableIcon?: boolean
+ /**
+ * 是否开启标签栏快捷键
+ * @默认值 `false`
+ */
+ enableHotkeys?: boolean
+ }
+ interface toolbar {
+ /**
+ * 是否开启工具栏
+ * @默认值 `true`
+ */
+ enable?: boolean
+ /**
+ * 是否开启面包屑导航
+ * @默认值 `true`
+ */
+ breadcrumb?: boolean
+ /**
+ * 是否开启导航搜索
+ * @默认值 `true`
+ */
+ navSearch?: boolean
+ /**
+ * 是否开启全屏
+ * @默认值 `false`
+ */
+ fullscreen?: boolean
+ /**
+ * 是否开启页面刷新
+ * @默认值 `false`
+ */
+ pageReload?: boolean
+ /**
+ * 是否开启颜色主题
+ * @默认值 `false`
+ */
+ colorScheme?: boolean
+ }
+ interface mainPage {
+ /**
+ * 是否开启页面快捷键
+ * @默认值 `true`
+ */
+ enableHotkeys?: boolean
+ }
+ interface navSearch {
+ /**
+ * 是否开启导航搜索快捷键
+ * @默认值 `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
+ /** 标签栏设置 */
+ tabbar?: tabbar
+ /** 工具栏设置 */
+ toolbar?: toolbar
+ /** 页面设置 */
+ mainPage?: mainPage
+ /** 导航搜索设置 */
+ navSearch?: navSearch
+ /** 底部版权设置 */
+ copyright?: copyright
+ }
+}
+
+declare module 'vue-router' {
+ interface RouteMeta {
+ title?: string | (() => string)
+ icon?: string
+ defaultOpened?: boolean
+ auth?: string | string[]
+ menu?: boolean
+ breadcrumb?: boolean
+ activeMenu?: string
+ cache?: boolean | string | string[]
+ noCache?: string | string[]
+ link?: string
+ }
+}
+
+declare namespace Route {
+ interface recordMainRaw {
+ meta?: {
+ title?: string | (() => string)
+ icon?: string
+ auth?: string | string[]
+ }
+ children: RouteRecordRaw[]
+ }
+}
+
+declare namespace Menu {
+ /** 原始 */
+ interface recordRaw {
+ path?: string
+ meta?: {
+ title?: string | (() => string)
+ icon?: string
+ defaultOpened?: boolean
+ auth?: string | string[]
+ menu?: boolean
+ link?: string
+ }
+ children?: recordRaw[]
+ }
+ /** 主导航 */
+ interface recordMainRaw {
+ meta?: {
+ title?: string | (() => string)
+ icon?: string
+ auth?: string | string[]
+ }
+ children: recordRaw[]
+ }
+}
+
+declare namespace Tabbar {
+ interface recordRaw {
+ tabId: string
+ fullPath: string
+ title?: string | (() => string)
+ icon?: string
+ name: string[]
+ }
+}
diff --git a/admin-web/src/types/shims.d.ts b/admin-web/src/types/shims.d.ts
new file mode 100755
index 0000000..76b7faf
--- /dev/null
+++ b/admin-web/src/types/shims.d.ts
@@ -0,0 +1,13 @@
+declare interface Window {
+ webkitDevicePixelRatio: any
+ mozDevicePixelRatio: any
+}
+
+declare const __SYSTEM_INFO__: {
+ pkg: {
+ version: string
+ dependencies: Record
+ devDependencies: Record
+ }
+ lastBuildTime: string
+}
diff --git a/admin-web/src/types/vite-env.d.ts b/admin-web/src/types/vite-env.d.ts
new file mode 100644
index 0000000..11f02fe
--- /dev/null
+++ b/admin-web/src/types/vite-env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/admin-web/src/ui/components/FaAuth/index.vue b/admin-web/src/ui/components/FaAuth/index.vue
new file mode 100755
index 0000000..ca456e5
--- /dev/null
+++ b/admin-web/src/ui/components/FaAuth/index.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaAvatar/avatar/Avatar.vue b/admin-web/src/ui/components/FaAvatar/avatar/Avatar.vue
new file mode 100644
index 0000000..be4b6e5
--- /dev/null
+++ b/admin-web/src/ui/components/FaAvatar/avatar/Avatar.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaAvatar/avatar/AvatarFallback.vue b/admin-web/src/ui/components/FaAvatar/avatar/AvatarFallback.vue
new file mode 100644
index 0000000..ad28438
--- /dev/null
+++ b/admin-web/src/ui/components/FaAvatar/avatar/AvatarFallback.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaAvatar/avatar/AvatarImage.vue b/admin-web/src/ui/components/FaAvatar/avatar/AvatarImage.vue
new file mode 100644
index 0000000..8efeecb
--- /dev/null
+++ b/admin-web/src/ui/components/FaAvatar/avatar/AvatarImage.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaAvatar/avatar/index.ts b/admin-web/src/ui/components/FaAvatar/avatar/index.ts
new file mode 100644
index 0000000..d26e911
--- /dev/null
+++ b/admin-web/src/ui/components/FaAvatar/avatar/index.ts
@@ -0,0 +1,25 @@
+import type { VariantProps } from 'class-variance-authority'
+import { cva } from 'class-variance-authority'
+
+export { default as Avatar } from './Avatar.vue'
+export { default as AvatarFallback } from './AvatarFallback.vue'
+export { default as AvatarImage } from './AvatarImage.vue'
+
+export const avatarVariant = cva(
+ 'inline-flex items-center justify-center font-normal text-foreground select-none shrink-0 bg-secondary overflow-hidden',
+ {
+ variants: {
+ size: {
+ sm: 'h-10 w-10 text-xs',
+ base: 'h-16 w-16 text-2xl',
+ lg: 'h-32 w-32 text-5xl',
+ },
+ shape: {
+ circle: 'rounded-full',
+ square: 'rounded-md',
+ },
+ },
+ },
+)
+
+export type AvatarVariants = VariantProps
diff --git a/admin-web/src/ui/components/FaAvatar/index.vue b/admin-web/src/ui/components/FaAvatar/index.vue
new file mode 100644
index 0000000..d3208d4
--- /dev/null
+++ b/admin-web/src/ui/components/FaAvatar/index.vue
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+ {{ fallback }}
+
+
+
+
diff --git a/admin-web/src/ui/components/FaBackToTop/index.vue b/admin-web/src/ui/components/FaBackToTop/index.vue
new file mode 100644
index 0000000..84890d0
--- /dev/null
+++ b/admin-web/src/ui/components/FaBackToTop/index.vue
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaButton/button/Button.vue b/admin-web/src/ui/components/FaButton/button/Button.vue
new file mode 100644
index 0000000..10ecfc3
--- /dev/null
+++ b/admin-web/src/ui/components/FaButton/button/Button.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaButton/button/index.ts b/admin-web/src/ui/components/FaButton/button/index.ts
new file mode 100644
index 0000000..dcfa01b
--- /dev/null
+++ b/admin-web/src/ui/components/FaButton/button/index.ts
@@ -0,0 +1,35 @@
+import type { VariantProps } from 'class-variance-authority'
+import { cva } from 'class-variance-authority'
+
+export { default as Button } from './Button.vue'
+
+export const buttonVariants = cva(
+ 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-transparent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',
+ {
+ variants: {
+ variant: {
+ default: 'bg-primary text-primary-foreground hover:bg-primary/90',
+ destructive:
+ 'bg-destructive text-destructive-foreground hover:bg-destructive/90',
+ outline:
+ 'border border-input bg-background hover:bg-accent hover:text-accent-foreground',
+ secondary:
+ 'bg-secondary text-secondary-foreground hover:bg-secondary/80',
+ ghost: 'hover:bg-accent hover:text-accent-foreground',
+ link: 'text-primary underline-offset-4 hover:underline',
+ },
+ size: {
+ default: 'h-10 px-4 py-2',
+ sm: 'h-9 rounded-md px-3',
+ lg: 'h-11 rounded-md px-8',
+ icon: 'h-10 w-10',
+ },
+ },
+ defaultVariants: {
+ variant: 'default',
+ size: 'default',
+ },
+ },
+)
+
+export type ButtonVariants = VariantProps
diff --git a/admin-web/src/ui/components/FaButton/index.vue b/admin-web/src/ui/components/FaButton/index.vue
new file mode 100644
index 0000000..953ccdc
--- /dev/null
+++ b/admin-web/src/ui/components/FaButton/index.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaButtonGroup/index.vue b/admin-web/src/ui/components/FaButtonGroup/index.vue
new file mode 100644
index 0000000..fb8e576
--- /dev/null
+++ b/admin-web/src/ui/components/FaButtonGroup/index.vue
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaCard/card/Card.vue b/admin-web/src/ui/components/FaCard/card/Card.vue
new file mode 100644
index 0000000..6d784dc
--- /dev/null
+++ b/admin-web/src/ui/components/FaCard/card/Card.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaCard/card/CardContent.vue b/admin-web/src/ui/components/FaCard/card/CardContent.vue
new file mode 100644
index 0000000..a6e1d1b
--- /dev/null
+++ b/admin-web/src/ui/components/FaCard/card/CardContent.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaCard/card/CardDescription.vue b/admin-web/src/ui/components/FaCard/card/CardDescription.vue
new file mode 100644
index 0000000..cde6c21
--- /dev/null
+++ b/admin-web/src/ui/components/FaCard/card/CardDescription.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaCard/card/CardFooter.vue b/admin-web/src/ui/components/FaCard/card/CardFooter.vue
new file mode 100644
index 0000000..125e635
--- /dev/null
+++ b/admin-web/src/ui/components/FaCard/card/CardFooter.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaCard/card/CardHeader.vue b/admin-web/src/ui/components/FaCard/card/CardHeader.vue
new file mode 100644
index 0000000..f13e49a
--- /dev/null
+++ b/admin-web/src/ui/components/FaCard/card/CardHeader.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaCard/card/CardTitle.vue b/admin-web/src/ui/components/FaCard/card/CardTitle.vue
new file mode 100644
index 0000000..58a3ce4
--- /dev/null
+++ b/admin-web/src/ui/components/FaCard/card/CardTitle.vue
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaCard/card/index.ts b/admin-web/src/ui/components/FaCard/card/index.ts
new file mode 100644
index 0000000..9ff6d5e
--- /dev/null
+++ b/admin-web/src/ui/components/FaCard/card/index.ts
@@ -0,0 +1,6 @@
+export { default as Card } from './Card.vue'
+export { default as CardContent } from './CardContent.vue'
+export { default as CardDescription } from './CardDescription.vue'
+export { default as CardFooter } from './CardFooter.vue'
+export { default as CardHeader } from './CardHeader.vue'
+export { default as CardTitle } from './CardTitle.vue'
diff --git a/admin-web/src/ui/components/FaCard/index.vue b/admin-web/src/ui/components/FaCard/index.vue
new file mode 100644
index 0000000..646a945
--- /dev/null
+++ b/admin-web/src/ui/components/FaCard/index.vue
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+ {{ title }}
+
+
+ {{ description }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaCheckbox/checkbox/Checkbox.vue b/admin-web/src/ui/components/FaCheckbox/checkbox/Checkbox.vue
new file mode 100644
index 0000000..fca8de6
--- /dev/null
+++ b/admin-web/src/ui/components/FaCheckbox/checkbox/Checkbox.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaCheckbox/checkbox/index.ts b/admin-web/src/ui/components/FaCheckbox/checkbox/index.ts
new file mode 100644
index 0000000..8c28c28
--- /dev/null
+++ b/admin-web/src/ui/components/FaCheckbox/checkbox/index.ts
@@ -0,0 +1 @@
+export { default as Checkbox } from './Checkbox.vue'
diff --git a/admin-web/src/ui/components/FaCheckbox/index.vue b/admin-web/src/ui/components/FaCheckbox/index.vue
new file mode 100644
index 0000000..34edba0
--- /dev/null
+++ b/admin-web/src/ui/components/FaCheckbox/index.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaCollapsible/collapsible/Collapsible.vue b/admin-web/src/ui/components/FaCollapsible/collapsible/Collapsible.vue
new file mode 100644
index 0000000..8a8c61a
--- /dev/null
+++ b/admin-web/src/ui/components/FaCollapsible/collapsible/Collapsible.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaCollapsible/collapsible/CollapsibleContent.vue b/admin-web/src/ui/components/FaCollapsible/collapsible/CollapsibleContent.vue
new file mode 100644
index 0000000..79b96d7
--- /dev/null
+++ b/admin-web/src/ui/components/FaCollapsible/collapsible/CollapsibleContent.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaCollapsible/collapsible/CollapsibleTrigger.vue b/admin-web/src/ui/components/FaCollapsible/collapsible/CollapsibleTrigger.vue
new file mode 100644
index 0000000..ded7bcb
--- /dev/null
+++ b/admin-web/src/ui/components/FaCollapsible/collapsible/CollapsibleTrigger.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaCollapsible/collapsible/index.ts b/admin-web/src/ui/components/FaCollapsible/collapsible/index.ts
new file mode 100644
index 0000000..abab956
--- /dev/null
+++ b/admin-web/src/ui/components/FaCollapsible/collapsible/index.ts
@@ -0,0 +1,3 @@
+export { default as Collapsible } from './Collapsible.vue'
+export { default as CollapsibleContent } from './CollapsibleContent.vue'
+export { default as CollapsibleTrigger } from './CollapsibleTrigger.vue'
diff --git a/admin-web/src/ui/components/FaCollapsible/index.vue b/admin-web/src/ui/components/FaCollapsible/index.vue
new file mode 100644
index 0000000..bd8d418
--- /dev/null
+++ b/admin-web/src/ui/components/FaCollapsible/index.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenu.vue b/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenu.vue
new file mode 100644
index 0000000..d95845c
--- /dev/null
+++ b/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenu.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuCheckboxItem.vue b/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuCheckboxItem.vue
new file mode 100644
index 0000000..03a061a
--- /dev/null
+++ b/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuCheckboxItem.vue
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuContent.vue b/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuContent.vue
new file mode 100644
index 0000000..3858691
--- /dev/null
+++ b/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuContent.vue
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuGroup.vue b/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuGroup.vue
new file mode 100644
index 0000000..bb1c2a5
--- /dev/null
+++ b/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuGroup.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuItem.vue b/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuItem.vue
new file mode 100644
index 0000000..6b3bfd5
--- /dev/null
+++ b/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuItem.vue
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuLabel.vue b/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuLabel.vue
new file mode 100644
index 0000000..1d5baa0
--- /dev/null
+++ b/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuLabel.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuPortal.vue b/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuPortal.vue
new file mode 100644
index 0000000..93c8b22
--- /dev/null
+++ b/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuPortal.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuRadioGroup.vue b/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuRadioGroup.vue
new file mode 100644
index 0000000..50a9142
--- /dev/null
+++ b/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuRadioGroup.vue
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuRadioItem.vue b/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuRadioItem.vue
new file mode 100644
index 0000000..7061957
--- /dev/null
+++ b/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuRadioItem.vue
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuSeparator.vue b/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuSeparator.vue
new file mode 100644
index 0000000..5f06c18
--- /dev/null
+++ b/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuSeparator.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuShortcut.vue b/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuShortcut.vue
new file mode 100644
index 0000000..ab79309
--- /dev/null
+++ b/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuShortcut.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuSub.vue b/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuSub.vue
new file mode 100644
index 0000000..9892b28
--- /dev/null
+++ b/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuSub.vue
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuSubContent.vue b/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuSubContent.vue
new file mode 100644
index 0000000..1fd4990
--- /dev/null
+++ b/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuSubContent.vue
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuSubTrigger.vue b/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuSubTrigger.vue
new file mode 100644
index 0000000..94de63b
--- /dev/null
+++ b/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuSubTrigger.vue
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuTrigger.vue b/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuTrigger.vue
new file mode 100644
index 0000000..bb0959b
--- /dev/null
+++ b/admin-web/src/ui/components/FaContextMenu/context-menu/ContextMenuTrigger.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaContextMenu/context-menu/index.ts b/admin-web/src/ui/components/FaContextMenu/context-menu/index.ts
new file mode 100644
index 0000000..3ed59e6
--- /dev/null
+++ b/admin-web/src/ui/components/FaContextMenu/context-menu/index.ts
@@ -0,0 +1,14 @@
+export { default as ContextMenu } from './ContextMenu.vue'
+export { default as ContextMenuCheckboxItem } from './ContextMenuCheckboxItem.vue'
+export { default as ContextMenuContent } from './ContextMenuContent.vue'
+export { default as ContextMenuGroup } from './ContextMenuGroup.vue'
+export { default as ContextMenuItem } from './ContextMenuItem.vue'
+export { default as ContextMenuLabel } from './ContextMenuLabel.vue'
+export { default as ContextMenuRadioGroup } from './ContextMenuRadioGroup.vue'
+export { default as ContextMenuRadioItem } from './ContextMenuRadioItem.vue'
+export { default as ContextMenuSeparator } from './ContextMenuSeparator.vue'
+export { default as ContextMenuShortcut } from './ContextMenuShortcut.vue'
+export { default as ContextMenuSub } from './ContextMenuSub.vue'
+export { default as ContextMenuSubContent } from './ContextMenuSubContent.vue'
+export { default as ContextMenuSubTrigger } from './ContextMenuSubTrigger.vue'
+export { default as ContextMenuTrigger } from './ContextMenuTrigger.vue'
diff --git a/admin-web/src/ui/components/FaContextMenu/index.vue b/admin-web/src/ui/components/FaContextMenu/index.vue
new file mode 100644
index 0000000..12ff7e1
--- /dev/null
+++ b/admin-web/src/ui/components/FaContextMenu/index.vue
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ v.label }}
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaCopyright/index.vue b/admin-web/src/ui/components/FaCopyright/index.vue
new file mode 100644
index 0000000..68ed1b9
--- /dev/null
+++ b/admin-web/src/ui/components/FaCopyright/index.vue
@@ -0,0 +1,20 @@
+
+
+
+
+ Copyright
+
+ {{ settingsStore.settings.copyright.dates }}
+
+ {{ settingsStore.settings.copyright.company }}
+ {{ settingsStore.settings.copyright.company }}
+
+ {{ settingsStore.settings.copyright.beian }}
+
+
diff --git a/admin-web/src/ui/components/FaDivider/index.vue b/admin-web/src/ui/components/FaDivider/index.vue
new file mode 100644
index 0000000..9a3f46a
--- /dev/null
+++ b/admin-web/src/ui/components/FaDivider/index.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaDrawer/index.ts b/admin-web/src/ui/components/FaDrawer/index.ts
new file mode 100644
index 0000000..d4f9259
--- /dev/null
+++ b/admin-web/src/ui/components/FaDrawer/index.ts
@@ -0,0 +1,138 @@
+import type { Component, HTMLAttributes } from 'vue'
+import { createVNode, isVNode, render } from 'vue'
+import Drawer from './index.vue'
+
+export interface DrawerProps {
+ id?: string
+ modelValue?: boolean
+ zIndex?: number
+ side?: 'top' | 'bottom' | 'left' | 'right'
+ title?: string
+ description?: string
+ loading?: boolean
+ closable?: boolean
+ centered?: boolean
+ bordered?: boolean
+ overlay?: boolean
+ overlayBlur?: boolean
+ showConfirmButton?: boolean
+ showCancelButton?: boolean
+ confirmButtonText?: string
+ cancelButtonText?: string
+ confirmButtonDisabled?: boolean
+ confirmButtonLoading?: boolean
+ beforeClose?: (
+ action: 'confirm' | 'cancel' | 'close',
+ done: () => void,
+ ) => void
+ header?: boolean
+ footer?: boolean
+ closeOnClickOverlay?: boolean
+ closeOnPressEscape?: boolean
+ destroyOnClose?: boolean
+ openAutoFocus?: boolean
+ contentClass?: HTMLAttributes['class']
+ headerClass?: HTMLAttributes['class']
+ footerClass?: HTMLAttributes['class']
+}
+
+export interface DrawerEmits {
+ 'update:modelValue': [value: boolean]
+ 'open': []
+ 'opened': []
+ 'close': []
+ 'closed': []
+ 'confirm': []
+ 'cancel': []
+}
+
+type BaseOptions = Omit & {
+ content?: Component | VNode | string
+ onOpen?: () => void
+ onOpened?: () => void
+ onClose?: () => void
+ onClosed?: () => void
+ onConfirm?: () => void
+ onCancel?: () => void
+}
+
+export function useFaDrawer() {
+ function create(initialOptions: BaseOptions) {
+ const container = document.createElement('div')
+ const visible = ref(false)
+ const options = reactive({ ...initialOptions })
+ const instance = getCurrentInstance()
+ let vnode: VNode | null = null
+
+ const updateVNode = () => {
+ vnode = createVNode(Drawer, Object.assign({
+ 'id': instance && instance.uid ? `FaDrawer-${instance.uid}` : undefined,
+ 'modelValue': visible.value,
+ 'onUpdate:modelValue': (val: boolean) => {
+ visible.value = val
+ },
+ ...options,
+ }), {
+ default: () => {
+ if (typeof options.content === 'string') {
+ return options.content
+ }
+ else if (isVNode(options.content)) {
+ return options.content
+ }
+ else if (options.content) {
+ return h(options.content)
+ }
+ return null
+ },
+ })
+ // 继承主应用的上下文
+ if (instance && instance.appContext) {
+ vnode.appContext = instance.appContext
+ }
+ render(vnode, container)
+ }
+
+ // 监听 visible 和 options 变化,自动重新渲染
+ watch([visible, options as object], () => {
+ updateVNode()
+ }, {
+ immediate: true,
+ deep: true,
+ })
+
+ // 挂载到当前实例
+ instance?.proxy?.$el?.appendChild(container)
+
+ // 监听组件卸载,自动清理
+ if (instance) {
+ onUnmounted(() => {
+ if (vnode) {
+ render(null, container)
+ vnode = null
+ }
+ if (container.parentNode) {
+ container.parentNode.removeChild(container)
+ }
+ })
+ }
+
+ const open = () => {
+ visible.value = true
+ }
+ const close = () => {
+ visible.value = false
+ }
+ const update = (newOptions: BaseOptions) => {
+ Object.assign(options, newOptions)
+ }
+ return {
+ open,
+ close,
+ update,
+ }
+ }
+ return {
+ create,
+ }
+}
diff --git a/admin-web/src/ui/components/FaDrawer/index.vue b/admin-web/src/ui/components/FaDrawer/index.vue
new file mode 100644
index 0000000..97a4482
--- /dev/null
+++ b/admin-web/src/ui/components/FaDrawer/index.vue
@@ -0,0 +1,243 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ title }}
+
+
+ {{ description }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ cancelButtonText }}
+
+
+ {{ confirmButtonText }}
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaDrawer/sheet/Sheet.vue b/admin-web/src/ui/components/FaDrawer/sheet/Sheet.vue
new file mode 100644
index 0000000..ff50359
--- /dev/null
+++ b/admin-web/src/ui/components/FaDrawer/sheet/Sheet.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaDrawer/sheet/SheetClose.vue b/admin-web/src/ui/components/FaDrawer/sheet/SheetClose.vue
new file mode 100644
index 0000000..e49c359
--- /dev/null
+++ b/admin-web/src/ui/components/FaDrawer/sheet/SheetClose.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaDrawer/sheet/SheetContent.vue b/admin-web/src/ui/components/FaDrawer/sheet/SheetContent.vue
new file mode 100644
index 0000000..cf476ac
--- /dev/null
+++ b/admin-web/src/ui/components/FaDrawer/sheet/SheetContent.vue
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaDrawer/sheet/SheetDescription.vue b/admin-web/src/ui/components/FaDrawer/sheet/SheetDescription.vue
new file mode 100644
index 0000000..9397757
--- /dev/null
+++ b/admin-web/src/ui/components/FaDrawer/sheet/SheetDescription.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaDrawer/sheet/SheetFooter.vue b/admin-web/src/ui/components/FaDrawer/sheet/SheetFooter.vue
new file mode 100644
index 0000000..b633458
--- /dev/null
+++ b/admin-web/src/ui/components/FaDrawer/sheet/SheetFooter.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaDrawer/sheet/SheetHeader.vue b/admin-web/src/ui/components/FaDrawer/sheet/SheetHeader.vue
new file mode 100644
index 0000000..8893cbd
--- /dev/null
+++ b/admin-web/src/ui/components/FaDrawer/sheet/SheetHeader.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaDrawer/sheet/SheetTitle.vue b/admin-web/src/ui/components/FaDrawer/sheet/SheetTitle.vue
new file mode 100644
index 0000000..ccd46a9
--- /dev/null
+++ b/admin-web/src/ui/components/FaDrawer/sheet/SheetTitle.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaDrawer/sheet/SheetTrigger.vue b/admin-web/src/ui/components/FaDrawer/sheet/SheetTrigger.vue
new file mode 100644
index 0000000..4723d52
--- /dev/null
+++ b/admin-web/src/ui/components/FaDrawer/sheet/SheetTrigger.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaDrawer/sheet/index.ts b/admin-web/src/ui/components/FaDrawer/sheet/index.ts
new file mode 100644
index 0000000..448ccd8
--- /dev/null
+++ b/admin-web/src/ui/components/FaDrawer/sheet/index.ts
@@ -0,0 +1,32 @@
+import type { VariantProps } from 'class-variance-authority'
+import { cva } from 'class-variance-authority'
+
+export { default as Sheet } from './Sheet.vue'
+export { default as SheetClose } from './SheetClose.vue'
+export { default as SheetContent } from './SheetContent.vue'
+export { default as SheetDescription } from './SheetDescription.vue'
+export { default as SheetFooter } from './SheetFooter.vue'
+export { default as SheetHeader } from './SheetHeader.vue'
+export { default as SheetTitle } from './SheetTitle.vue'
+export { default as SheetTrigger } from './SheetTrigger.vue'
+
+export const sheetVariants = cva(
+ 'fixed gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:animate-duration-300 data-[state=open]:animate-duration-500',
+ {
+ variants: {
+ side: {
+ top: 'inset-x-0 top-0 shadow-[0_1px_0_0_hsl(var(--border))] data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top',
+ bottom:
+ 'inset-x-0 bottom-0 shadow-[0_-1px_0_0_hsl(var(--border))] data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom',
+ left: 'inset-y-0 left-0 h-full w-3/4 shadow-[1px_0_0_0_hsl(var(--border))] data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm',
+ right:
+ 'inset-y-0 right-0 h-full w-3/4 shadow-[-1px_0_0_0_hsl(var(--border))] data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm',
+ },
+ },
+ defaultVariants: {
+ side: 'right',
+ },
+ },
+)
+
+export type SheetVariants = VariantProps
diff --git a/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenu.vue b/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenu.vue
new file mode 100644
index 0000000..190c189
--- /dev/null
+++ b/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenu.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuCheckboxItem.vue b/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuCheckboxItem.vue
new file mode 100644
index 0000000..38058b1
--- /dev/null
+++ b/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuCheckboxItem.vue
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuContent.vue b/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuContent.vue
new file mode 100644
index 0000000..a404852
--- /dev/null
+++ b/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuContent.vue
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuGroup.vue b/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuGroup.vue
new file mode 100644
index 0000000..b5ac0db
--- /dev/null
+++ b/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuGroup.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuItem.vue b/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuItem.vue
new file mode 100644
index 0000000..ae5aeb7
--- /dev/null
+++ b/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuItem.vue
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuLabel.vue b/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuLabel.vue
new file mode 100644
index 0000000..2ae5422
--- /dev/null
+++ b/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuLabel.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuRadioGroup.vue b/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuRadioGroup.vue
new file mode 100644
index 0000000..5c6ba94
--- /dev/null
+++ b/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuRadioGroup.vue
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuRadioItem.vue b/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuRadioItem.vue
new file mode 100644
index 0000000..3fa70dc
--- /dev/null
+++ b/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuRadioItem.vue
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuSeparator.vue b/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuSeparator.vue
new file mode 100644
index 0000000..728a93b
--- /dev/null
+++ b/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuSeparator.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuShortcut.vue b/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuShortcut.vue
new file mode 100644
index 0000000..0506b7c
--- /dev/null
+++ b/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuShortcut.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuSub.vue b/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuSub.vue
new file mode 100644
index 0000000..f4080b3
--- /dev/null
+++ b/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuSub.vue
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuSubContent.vue b/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuSubContent.vue
new file mode 100644
index 0000000..2c0fa85
--- /dev/null
+++ b/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuSubContent.vue
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuSubTrigger.vue b/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuSubTrigger.vue
new file mode 100644
index 0000000..f0629f4
--- /dev/null
+++ b/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuSubTrigger.vue
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuTrigger.vue b/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuTrigger.vue
new file mode 100644
index 0000000..d704f29
--- /dev/null
+++ b/admin-web/src/ui/components/FaDropdown/dropdown-menu/DropdownMenuTrigger.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaDropdown/dropdown-menu/index.ts b/admin-web/src/ui/components/FaDropdown/dropdown-menu/index.ts
new file mode 100644
index 0000000..f488d39
--- /dev/null
+++ b/admin-web/src/ui/components/FaDropdown/dropdown-menu/index.ts
@@ -0,0 +1,16 @@
+export { default as DropdownMenu } from './DropdownMenu.vue'
+
+export { default as DropdownMenuCheckboxItem } from './DropdownMenuCheckboxItem.vue'
+export { default as DropdownMenuContent } from './DropdownMenuContent.vue'
+export { default as DropdownMenuGroup } from './DropdownMenuGroup.vue'
+export { default as DropdownMenuItem } from './DropdownMenuItem.vue'
+export { default as DropdownMenuLabel } from './DropdownMenuLabel.vue'
+export { default as DropdownMenuRadioGroup } from './DropdownMenuRadioGroup.vue'
+export { default as DropdownMenuRadioItem } from './DropdownMenuRadioItem.vue'
+export { default as DropdownMenuSeparator } from './DropdownMenuSeparator.vue'
+export { default as DropdownMenuShortcut } from './DropdownMenuShortcut.vue'
+export { default as DropdownMenuSub } from './DropdownMenuSub.vue'
+export { default as DropdownMenuSubContent } from './DropdownMenuSubContent.vue'
+export { default as DropdownMenuSubTrigger } from './DropdownMenuSubTrigger.vue'
+export { default as DropdownMenuTrigger } from './DropdownMenuTrigger.vue'
+export { DropdownMenuPortal } from 'reka-ui'
diff --git a/admin-web/src/ui/components/FaDropdown/index.vue b/admin-web/src/ui/components/FaDropdown/index.vue
new file mode 100644
index 0000000..1206187
--- /dev/null
+++ b/admin-web/src/ui/components/FaDropdown/index.vue
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ v.label }}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaFileUpload/index.vue b/admin-web/src/ui/components/FaFileUpload/index.vue
new file mode 100644
index 0000000..b529640
--- /dev/null
+++ b/admin-web/src/ui/components/FaFileUpload/index.vue
@@ -0,0 +1,233 @@
+
+
+
+
+
+
+
+
+ 将文件拖到此处,或点击上传
+
+
+ onSelectFile((e.target as HTMLInputElement).files)">
+
+
+
+ {{ `支持 ${props.ext.join(' / ')} 格式` }}
+
+
+ {{ `大小不超过 ${filesize(props.size, { standard: 'jedec' })}` }}
+
+
+ {{ `数量不超过 ${props.max} 个` }}
+
+
+
+
+
+
+ {{ item.name }}
+
+
+ {{ filesize(item.size, { standard: 'jedec' }) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaFixedActionBar/index.vue b/admin-web/src/ui/components/FaFixedActionBar/index.vue
new file mode 100755
index 0000000..7505762
--- /dev/null
+++ b/admin-web/src/ui/components/FaFixedActionBar/index.vue
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaHoverCard/hover-card/HoverCard.vue b/admin-web/src/ui/components/FaHoverCard/hover-card/HoverCard.vue
new file mode 100644
index 0000000..4c017ff
--- /dev/null
+++ b/admin-web/src/ui/components/FaHoverCard/hover-card/HoverCard.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaHoverCard/hover-card/HoverCardContent.vue b/admin-web/src/ui/components/FaHoverCard/hover-card/HoverCardContent.vue
new file mode 100644
index 0000000..0d9a56d
--- /dev/null
+++ b/admin-web/src/ui/components/FaHoverCard/hover-card/HoverCardContent.vue
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaHoverCard/hover-card/HoverCardTrigger.vue b/admin-web/src/ui/components/FaHoverCard/hover-card/HoverCardTrigger.vue
new file mode 100644
index 0000000..8ca5e02
--- /dev/null
+++ b/admin-web/src/ui/components/FaHoverCard/hover-card/HoverCardTrigger.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaHoverCard/hover-card/index.ts b/admin-web/src/ui/components/FaHoverCard/hover-card/index.ts
new file mode 100644
index 0000000..9e4ccc2
--- /dev/null
+++ b/admin-web/src/ui/components/FaHoverCard/hover-card/index.ts
@@ -0,0 +1,3 @@
+export { default as HoverCard } from './HoverCard.vue'
+export { default as HoverCardContent } from './HoverCardContent.vue'
+export { default as HoverCardTrigger } from './HoverCardTrigger.vue'
diff --git a/admin-web/src/ui/components/FaHoverCard/index.vue b/admin-web/src/ui/components/FaHoverCard/index.vue
new file mode 100644
index 0000000..1da23fa
--- /dev/null
+++ b/admin-web/src/ui/components/FaHoverCard/index.vue
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaIcon/index.vue b/admin-web/src/ui/components/FaIcon/index.vue
new file mode 100755
index 0000000..d9fa601
--- /dev/null
+++ b/admin-web/src/ui/components/FaIcon/index.vue
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaImagePreview/dialog/Dialog.vue b/admin-web/src/ui/components/FaImagePreview/dialog/Dialog.vue
new file mode 100644
index 0000000..ff50359
--- /dev/null
+++ b/admin-web/src/ui/components/FaImagePreview/dialog/Dialog.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaImagePreview/dialog/DialogClose.vue b/admin-web/src/ui/components/FaImagePreview/dialog/DialogClose.vue
new file mode 100644
index 0000000..e49c359
--- /dev/null
+++ b/admin-web/src/ui/components/FaImagePreview/dialog/DialogClose.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaImagePreview/dialog/DialogContent.vue b/admin-web/src/ui/components/FaImagePreview/dialog/DialogContent.vue
new file mode 100644
index 0000000..42426fd
--- /dev/null
+++ b/admin-web/src/ui/components/FaImagePreview/dialog/DialogContent.vue
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+ Close
+
+
+
+
diff --git a/admin-web/src/ui/components/FaImagePreview/dialog/DialogDescription.vue b/admin-web/src/ui/components/FaImagePreview/dialog/DialogDescription.vue
new file mode 100644
index 0000000..03e4464
--- /dev/null
+++ b/admin-web/src/ui/components/FaImagePreview/dialog/DialogDescription.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaImagePreview/dialog/DialogFooter.vue b/admin-web/src/ui/components/FaImagePreview/dialog/DialogFooter.vue
new file mode 100644
index 0000000..b633458
--- /dev/null
+++ b/admin-web/src/ui/components/FaImagePreview/dialog/DialogFooter.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaImagePreview/dialog/DialogHeader.vue b/admin-web/src/ui/components/FaImagePreview/dialog/DialogHeader.vue
new file mode 100644
index 0000000..dee30d9
--- /dev/null
+++ b/admin-web/src/ui/components/FaImagePreview/dialog/DialogHeader.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaImagePreview/dialog/DialogScrollContent.vue b/admin-web/src/ui/components/FaImagePreview/dialog/DialogScrollContent.vue
new file mode 100644
index 0000000..a20b5e5
--- /dev/null
+++ b/admin-web/src/ui/components/FaImagePreview/dialog/DialogScrollContent.vue
@@ -0,0 +1,55 @@
+
+
+
+
+
+ {
+ const originalEvent = event.detail.originalEvent;
+ const target = originalEvent.target as HTMLElement;
+ if (originalEvent.offsetX > target.clientWidth || originalEvent.offsetY > target.clientHeight) {
+ event.preventDefault();
+ }
+ }"
+ >
+
+
+
+
+ Close
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaImagePreview/dialog/DialogTitle.vue b/admin-web/src/ui/components/FaImagePreview/dialog/DialogTitle.vue
new file mode 100644
index 0000000..5eae356
--- /dev/null
+++ b/admin-web/src/ui/components/FaImagePreview/dialog/DialogTitle.vue
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaImagePreview/dialog/DialogTrigger.vue b/admin-web/src/ui/components/FaImagePreview/dialog/DialogTrigger.vue
new file mode 100644
index 0000000..4723d52
--- /dev/null
+++ b/admin-web/src/ui/components/FaImagePreview/dialog/DialogTrigger.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaImagePreview/dialog/index.ts b/admin-web/src/ui/components/FaImagePreview/dialog/index.ts
new file mode 100644
index 0000000..ca8cfea
--- /dev/null
+++ b/admin-web/src/ui/components/FaImagePreview/dialog/index.ts
@@ -0,0 +1,9 @@
+export { default as Dialog } from './Dialog.vue'
+export { default as DialogClose } from './DialogClose.vue'
+export { default as DialogContent } from './DialogContent.vue'
+export { default as DialogDescription } from './DialogDescription.vue'
+export { default as DialogFooter } from './DialogFooter.vue'
+export { default as DialogHeader } from './DialogHeader.vue'
+export { default as DialogScrollContent } from './DialogScrollContent.vue'
+export { default as DialogTitle } from './DialogTitle.vue'
+export { default as DialogTrigger } from './DialogTrigger.vue'
diff --git a/admin-web/src/ui/components/FaImagePreview/index.ts b/admin-web/src/ui/components/FaImagePreview/index.ts
new file mode 100644
index 0000000..6eff811
--- /dev/null
+++ b/admin-web/src/ui/components/FaImagePreview/index.ts
@@ -0,0 +1,21 @@
+import Preview from './preview.vue'
+
+export function useFaImagePreview() {
+ function open(src: string | string[], index = 0) {
+ const container = document.createElement('div')
+ const app = createApp({
+ render() {
+ return h(Preview, {
+ modelValue: true,
+ src,
+ index,
+ })
+ },
+ })
+ app.mount(container)
+ }
+
+ return {
+ open,
+ }
+}
diff --git a/admin-web/src/ui/components/FaImagePreview/index.vue b/admin-web/src/ui/components/FaImagePreview/index.vue
new file mode 100644
index 0000000..9ebb443
--- /dev/null
+++ b/admin-web/src/ui/components/FaImagePreview/index.vue
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaImagePreview/preview.vue b/admin-web/src/ui/components/FaImagePreview/preview.vue
new file mode 100644
index 0000000..b8c0425
--- /dev/null
+++ b/admin-web/src/ui/components/FaImagePreview/preview.vue
@@ -0,0 +1,174 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ index + 1 }} / {{ srcList.length }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaImageUpload/index.vue b/admin-web/src/ui/components/FaImageUpload/index.vue
new file mode 100644
index 0000000..49a8725
--- /dev/null
+++ b/admin-web/src/ui/components/FaImageUpload/index.vue
@@ -0,0 +1,218 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ `建议尺寸为 ${props.dimension?.width}*${props.dimension?.height}` }}
+
+
+ {{ `支持 ${props.ext.join(' / ')} 格式` }}
+
+
+ {{ `大小不超过 ${filesize(props.size, { standard: 'jedec' })}` }}
+
+
+ {{ `数量不超过 ${props.max} 个` }}
+
+
+
+
diff --git a/admin-web/src/ui/components/FaInput/index.vue b/admin-web/src/ui/components/FaInput/index.vue
new file mode 100644
index 0000000..2e74e62
--- /dev/null
+++ b/admin-web/src/ui/components/FaInput/index.vue
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaInput/input/Input.vue b/admin-web/src/ui/components/FaInput/input/Input.vue
new file mode 100644
index 0000000..8a1919d
--- /dev/null
+++ b/admin-web/src/ui/components/FaInput/input/Input.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaInput/input/index.ts b/admin-web/src/ui/components/FaInput/input/index.ts
new file mode 100644
index 0000000..a691dd6
--- /dev/null
+++ b/admin-web/src/ui/components/FaInput/input/index.ts
@@ -0,0 +1 @@
+export { default as Input } from './Input.vue'
diff --git a/admin-web/src/ui/components/FaKbd/index.vue b/admin-web/src/ui/components/FaKbd/index.vue
new file mode 100644
index 0000000..3ea6f09
--- /dev/null
+++ b/admin-web/src/ui/components/FaKbd/index.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaModal/dialog/Dialog.vue b/admin-web/src/ui/components/FaModal/dialog/Dialog.vue
new file mode 100644
index 0000000..ff50359
--- /dev/null
+++ b/admin-web/src/ui/components/FaModal/dialog/Dialog.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaModal/dialog/DialogClose.vue b/admin-web/src/ui/components/FaModal/dialog/DialogClose.vue
new file mode 100644
index 0000000..e49c359
--- /dev/null
+++ b/admin-web/src/ui/components/FaModal/dialog/DialogClose.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaModal/dialog/DialogContent.vue b/admin-web/src/ui/components/FaModal/dialog/DialogContent.vue
new file mode 100644
index 0000000..df9909f
--- /dev/null
+++ b/admin-web/src/ui/components/FaModal/dialog/DialogContent.vue
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Close
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaModal/dialog/DialogDescription.vue b/admin-web/src/ui/components/FaModal/dialog/DialogDescription.vue
new file mode 100644
index 0000000..03e4464
--- /dev/null
+++ b/admin-web/src/ui/components/FaModal/dialog/DialogDescription.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaModal/dialog/DialogFooter.vue b/admin-web/src/ui/components/FaModal/dialog/DialogFooter.vue
new file mode 100644
index 0000000..b633458
--- /dev/null
+++ b/admin-web/src/ui/components/FaModal/dialog/DialogFooter.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaModal/dialog/DialogHeader.vue b/admin-web/src/ui/components/FaModal/dialog/DialogHeader.vue
new file mode 100644
index 0000000..be92717
--- /dev/null
+++ b/admin-web/src/ui/components/FaModal/dialog/DialogHeader.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaModal/dialog/DialogScrollContent.vue b/admin-web/src/ui/components/FaModal/dialog/DialogScrollContent.vue
new file mode 100644
index 0000000..a20b5e5
--- /dev/null
+++ b/admin-web/src/ui/components/FaModal/dialog/DialogScrollContent.vue
@@ -0,0 +1,55 @@
+
+
+
+
+
+ {
+ const originalEvent = event.detail.originalEvent;
+ const target = originalEvent.target as HTMLElement;
+ if (originalEvent.offsetX > target.clientWidth || originalEvent.offsetY > target.clientHeight) {
+ event.preventDefault();
+ }
+ }"
+ >
+
+
+
+
+ Close
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaModal/dialog/DialogTitle.vue b/admin-web/src/ui/components/FaModal/dialog/DialogTitle.vue
new file mode 100644
index 0000000..5eae356
--- /dev/null
+++ b/admin-web/src/ui/components/FaModal/dialog/DialogTitle.vue
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaModal/dialog/DialogTrigger.vue b/admin-web/src/ui/components/FaModal/dialog/DialogTrigger.vue
new file mode 100644
index 0000000..4723d52
--- /dev/null
+++ b/admin-web/src/ui/components/FaModal/dialog/DialogTrigger.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaModal/dialog/index.ts b/admin-web/src/ui/components/FaModal/dialog/index.ts
new file mode 100644
index 0000000..ca8cfea
--- /dev/null
+++ b/admin-web/src/ui/components/FaModal/dialog/index.ts
@@ -0,0 +1,9 @@
+export { default as Dialog } from './Dialog.vue'
+export { default as DialogClose } from './DialogClose.vue'
+export { default as DialogContent } from './DialogContent.vue'
+export { default as DialogDescription } from './DialogDescription.vue'
+export { default as DialogFooter } from './DialogFooter.vue'
+export { default as DialogHeader } from './DialogHeader.vue'
+export { default as DialogScrollContent } from './DialogScrollContent.vue'
+export { default as DialogTitle } from './DialogTitle.vue'
+export { default as DialogTrigger } from './DialogTrigger.vue'
diff --git a/admin-web/src/ui/components/FaModal/index.ts b/admin-web/src/ui/components/FaModal/index.ts
new file mode 100644
index 0000000..c66e691
--- /dev/null
+++ b/admin-web/src/ui/components/FaModal/index.ts
@@ -0,0 +1,229 @@
+import type { Component, HTMLAttributes } from 'vue'
+import { createVNode, isVNode, render } from 'vue'
+import Modal from './index.vue'
+
+export interface ModalProps {
+ id?: string
+ modelValue?: boolean
+ zIndex?: number
+ title?: string
+ description?: string
+ icon?: 'info' | 'success' | 'warning' | 'error'
+ loading?: boolean
+ closable?: boolean
+ maximize?: boolean
+ maximizable?: boolean
+ draggable?: boolean
+ center?: boolean
+ border?: boolean
+ alignCenter?: boolean
+ overlay?: boolean
+ overlayBlur?: boolean
+ showConfirmButton?: boolean
+ showCancelButton?: boolean
+ confirmButtonText?: string
+ cancelButtonText?: string
+ confirmButtonDisabled?: boolean
+ confirmButtonLoading?: boolean
+ beforeClose?: (
+ action: 'confirm' | 'cancel' | 'close',
+ done: () => void,
+ ) => void
+ header?: boolean
+ footer?: boolean
+ closeOnClickOverlay?: boolean
+ closeOnPressEscape?: boolean
+ destroyOnClose?: boolean
+ openAutoFocus?: boolean
+ class?: HTMLAttributes['class']
+ headerClass?: HTMLAttributes['class']
+ contentClass?: HTMLAttributes['class']
+ footerClass?: HTMLAttributes['class']
+}
+export interface ModalEmits {
+ 'update:modelValue': [value: boolean]
+ 'open': []
+ 'opened': []
+ 'close': []
+ 'closed': []
+ 'confirm': []
+ 'cancel': []
+}
+
+type BaseOptions = Omit & {
+ content?: Component | VNode | string
+ onOpen?: () => void
+ onOpened?: () => void
+ onClose?: () => void
+ onClosed?: () => void
+ onConfirm?: () => void
+ onCancel?: () => void
+}
+
+type alertOptions = Pick
+
+type confirmOptions = Pick
+
+export function useFaModal() {
+ function create(initialOptions: BaseOptions) {
+ const container = document.createElement('div')
+ const visible = ref(false)
+ const options = reactive({ ...initialOptions })
+ const instance = getCurrentInstance()
+ let vnode: VNode | null = null
+
+ const updateVNode = () => {
+ vnode = createVNode(Modal, Object.assign({
+ 'id': instance && instance.uid ? `FaModal-${instance.uid}` : undefined,
+ 'modelValue': visible.value,
+ 'onUpdate:modelValue': (val: boolean) => {
+ visible.value = val
+ },
+ ...options,
+ }), {
+ default: () => {
+ if (typeof options.content === 'string') {
+ return options.content
+ }
+ else if (isVNode(options.content)) {
+ return options.content
+ }
+ else if (options.content) {
+ return h(options.content)
+ }
+ return null
+ },
+ })
+ // 继承主应用的上下文
+ if (instance && instance.appContext) {
+ vnode.appContext = instance.appContext
+ }
+ render(vnode, container)
+ }
+
+ // 监听 visible 和 options 变化,自动重新渲染
+ watch([visible, options as object], () => {
+ updateVNode()
+ }, {
+ immediate: true,
+ deep: true,
+ })
+
+ // 挂载到当前实例
+ instance?.proxy?.$el?.appendChild(container)
+
+ // 监听组件卸载,自动清理
+ if (instance) {
+ onUnmounted(() => {
+ if (vnode) {
+ render(null, container)
+ vnode = null
+ }
+ if (container.parentNode) {
+ container.parentNode.removeChild(container)
+ }
+ })
+ }
+
+ const open = () => {
+ visible.value = true
+ }
+ const close = () => {
+ visible.value = false
+ }
+ const update = (newOptions: BaseOptions) => {
+ Object.assign(options, newOptions)
+ }
+ return {
+ open,
+ close,
+ update,
+ }
+ }
+ function info(options: alertOptions) {
+ const defaultOptions: BaseOptions = {
+ icon: 'info',
+ closable: false,
+ border: false,
+ alignCenter: true,
+ closeOnClickOverlay: false,
+ destroyOnClose: true,
+ openAutoFocus: true,
+ contentClass: 'py-0 min-h-auto',
+ footerClass: 'p-4',
+ }
+ const { open } = create(Object.assign(defaultOptions, options))
+ open()
+ }
+ function success(options: alertOptions) {
+ const defaultOptions: BaseOptions = {
+ icon: 'success',
+ closable: false,
+ border: false,
+ alignCenter: true,
+ closeOnClickOverlay: false,
+ destroyOnClose: true,
+ openAutoFocus: true,
+ contentClass: 'py-0 min-h-auto',
+ footerClass: 'p-4',
+ }
+ const { open } = create(Object.assign(defaultOptions, options))
+ open()
+ }
+ function warning(options: alertOptions) {
+ const defaultOptions: BaseOptions = {
+ icon: 'warning',
+ closable: false,
+ border: false,
+ alignCenter: true,
+ closeOnClickOverlay: false,
+ destroyOnClose: true,
+ openAutoFocus: true,
+ contentClass: 'py-0 min-h-auto',
+ footerClass: 'p-4',
+ }
+ const { open } = create(Object.assign(defaultOptions, options))
+ open()
+ }
+ function error(options: alertOptions) {
+ const defaultOptions: BaseOptions = {
+ icon: 'error',
+ closable: false,
+ border: false,
+ alignCenter: true,
+ closeOnClickOverlay: false,
+ destroyOnClose: true,
+ openAutoFocus: true,
+ contentClass: 'py-0 min-h-auto',
+ footerClass: 'p-4',
+ }
+ const { open } = create(Object.assign(defaultOptions, options))
+ open()
+ }
+ function confirm(options: confirmOptions) {
+ const defaultOptions: BaseOptions = {
+ closable: false,
+ border: false,
+ alignCenter: true,
+ showCancelButton: true,
+ closeOnClickOverlay: false,
+ destroyOnClose: true,
+ openAutoFocus: true,
+ contentClass: 'py-0 min-h-auto',
+ footerClass: 'p-4',
+ }
+ const { open, update } = create(Object.assign(defaultOptions, options))
+ open()
+ return {
+ update,
+ }
+ }
+ return {
+ create,
+ info,
+ success,
+ warning,
+ error,
+ confirm,
+ }
+}
diff --git a/admin-web/src/ui/components/FaModal/index.vue b/admin-web/src/ui/components/FaModal/index.vue
new file mode 100644
index 0000000..945bdaa
--- /dev/null
+++ b/admin-web/src/ui/components/FaModal/index.vue
@@ -0,0 +1,302 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ title }}
+
+
+ {{ description }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ cancelButtonText }}
+
+
+ {{ confirmButtonText }}
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaModal/use-draggable.ts b/admin-web/src/ui/components/FaModal/use-draggable.ts
new file mode 100644
index 0000000..3438b6a
--- /dev/null
+++ b/admin-web/src/ui/components/FaModal/use-draggable.ts
@@ -0,0 +1,110 @@
+/**
+ * fork: https://github.com/element-plus/element-plus/blob/dev/packages/hooks/use-draggable/index.ts
+ * reference: https://github.com/vbenjs/vue-vben-admin/blob/main/packages/%40core/ui-kit/popup-ui/src/modal/use-modal-draggable.ts
+ */
+
+import type { ComputedRef, Ref } from 'vue'
+import { unrefElement } from '@vueuse/core'
+
+export function useDraggable(
+ targetRef: Ref,
+ dragRef: Ref,
+ draggable: ComputedRef,
+ overflow?: ComputedRef,
+) {
+ const isDragging = ref(false)
+ const transform = reactive({
+ offsetX: 0,
+ offsetY: 0,
+ })
+
+ const onMousedown = (e: MouseEvent) => {
+ const downX = e.clientX
+ const downY = e.clientY
+ const { offsetX, offsetY } = transform
+
+ const targetRect = targetRef.value!.getBoundingClientRect()
+ const targetLeft = targetRect.left
+ const targetTop = targetRect.top
+ const targetWidth = targetRect.width
+ const targetHeight = targetRect.height
+
+ const clientWidth = document.documentElement.clientWidth
+ const clientHeight = document.documentElement.clientHeight
+
+ const minLeft = -targetLeft + offsetX
+ const minTop = -targetTop + offsetY
+ const maxLeft = clientWidth - targetLeft - targetWidth + offsetX
+ const maxTop = clientHeight - targetTop - targetHeight + offsetY
+
+ const onMousemove = (e: MouseEvent) => {
+ let moveX = offsetX + e.clientX - downX
+ let moveY = offsetY + e.clientY - downY
+
+ if (!overflow?.value) {
+ moveX = Math.min(Math.max(moveX, minLeft), maxLeft)
+ moveY = Math.min(Math.max(moveY, minTop), maxTop)
+ }
+
+ transform.offsetX = moveX
+ transform.offsetY = moveY
+
+ if (targetRef.value) {
+ isDragging.value = true
+ targetRef.value.style.transform = `translate(${moveX}px, ${moveY}px)`
+ }
+ }
+
+ const onMouseup = () => {
+ isDragging.value = false
+ document.removeEventListener('mousemove', onMousemove)
+ document.removeEventListener('mouseup', onMouseup)
+ }
+
+ document.addEventListener('mousemove', onMousemove)
+ document.addEventListener('mouseup', onMouseup)
+ }
+
+ const onDraggable = () => {
+ const dragRefElement = unrefElement(dragRef)
+ if (dragRefElement && targetRef.value) {
+ dragRefElement.addEventListener('mousedown', onMousedown)
+ }
+ }
+
+ const offDraggable = () => {
+ const dragRefElement = unrefElement(dragRef)
+ if (dragRefElement && targetRef.value) {
+ dragRefElement.removeEventListener('mousedown', onMousedown)
+ }
+ }
+
+ const resetPosition = () => {
+ transform.offsetX = 0
+ transform.offsetY = 0
+ if (targetRef.value) {
+ targetRef.value.style.transform = 'none'
+ }
+ }
+
+ onMounted(() => {
+ watchEffect(() => {
+ if (draggable.value) {
+ onDraggable()
+ }
+ else {
+ offDraggable()
+ }
+ })
+ })
+
+ onBeforeUnmount(() => {
+ offDraggable()
+ })
+
+ return {
+ isDragging,
+ transform,
+ resetPosition,
+ }
+}
diff --git a/admin-web/src/ui/components/FaNotAllowed/index.vue b/admin-web/src/ui/components/FaNotAllowed/index.vue
new file mode 100755
index 0000000..4dd8d66
--- /dev/null
+++ b/admin-web/src/ui/components/FaNotAllowed/index.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+ 403
+
+
+ 抱歉,你无权访问该页面
+
+
+
+ {{ `${data.countdown} 秒后,返回主页` }}
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaNotification/index.ts b/admin-web/src/ui/components/FaNotification/index.ts
new file mode 100644
index 0000000..60f6573
--- /dev/null
+++ b/admin-web/src/ui/components/FaNotification/index.ts
@@ -0,0 +1,3 @@
+import { toast as faNotification, useToast as useFaNotification } from './toast/use-toast'
+
+export { faNotification, useFaNotification }
diff --git a/admin-web/src/ui/components/FaNotification/index.vue b/admin-web/src/ui/components/FaNotification/index.vue
new file mode 100644
index 0000000..840c7b9
--- /dev/null
+++ b/admin-web/src/ui/components/FaNotification/index.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaNotification/toast/Toast.vue b/admin-web/src/ui/components/FaNotification/toast/Toast.vue
new file mode 100644
index 0000000..cef1339
--- /dev/null
+++ b/admin-web/src/ui/components/FaNotification/toast/Toast.vue
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaNotification/toast/ToastAction.vue b/admin-web/src/ui/components/FaNotification/toast/ToastAction.vue
new file mode 100644
index 0000000..9604ff6
--- /dev/null
+++ b/admin-web/src/ui/components/FaNotification/toast/ToastAction.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaNotification/toast/ToastClose.vue b/admin-web/src/ui/components/FaNotification/toast/ToastClose.vue
new file mode 100644
index 0000000..e4a3d38
--- /dev/null
+++ b/admin-web/src/ui/components/FaNotification/toast/ToastClose.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaNotification/toast/ToastDescription.vue b/admin-web/src/ui/components/FaNotification/toast/ToastDescription.vue
new file mode 100644
index 0000000..3c5760c
--- /dev/null
+++ b/admin-web/src/ui/components/FaNotification/toast/ToastDescription.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaNotification/toast/ToastProvider.vue b/admin-web/src/ui/components/FaNotification/toast/ToastProvider.vue
new file mode 100644
index 0000000..5c48a15
--- /dev/null
+++ b/admin-web/src/ui/components/FaNotification/toast/ToastProvider.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaNotification/toast/ToastTitle.vue b/admin-web/src/ui/components/FaNotification/toast/ToastTitle.vue
new file mode 100644
index 0000000..e797ef0
--- /dev/null
+++ b/admin-web/src/ui/components/FaNotification/toast/ToastTitle.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaNotification/toast/ToastViewport.vue b/admin-web/src/ui/components/FaNotification/toast/ToastViewport.vue
new file mode 100644
index 0000000..07d4cbc
--- /dev/null
+++ b/admin-web/src/ui/components/FaNotification/toast/ToastViewport.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaNotification/toast/Toaster.vue b/admin-web/src/ui/components/FaNotification/toast/Toaster.vue
new file mode 100644
index 0000000..cac5dad
--- /dev/null
+++ b/admin-web/src/ui/components/FaNotification/toast/Toaster.vue
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+ {{ toast.title }}
+
+
+
+
+
+
+ {{ toast.description }}
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaNotification/toast/index.ts b/admin-web/src/ui/components/FaNotification/toast/index.ts
new file mode 100644
index 0000000..8cc8551
--- /dev/null
+++ b/admin-web/src/ui/components/FaNotification/toast/index.ts
@@ -0,0 +1,38 @@
+import type { VariantProps } from 'class-variance-authority'
+import type { ToastRootProps } from 'reka-ui'
+
+import type { HTMLAttributes } from 'vue'
+import { cva } from 'class-variance-authority'
+
+export { default as Toast } from './Toast.vue'
+export { default as ToastAction } from './ToastAction.vue'
+export { default as ToastClose } from './ToastClose.vue'
+export { default as ToastDescription } from './ToastDescription.vue'
+export { default as Toaster } from './Toaster.vue'
+export { default as ToastProvider } from './ToastProvider.vue'
+export { default as ToastTitle } from './ToastTitle.vue'
+export { default as ToastViewport } from './ToastViewport.vue'
+export { toast, useToast } from './use-toast'
+
+export const toastVariants = cva(
+ 'group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[--reka-toast-swipe-end-x] data-[swipe=move]:translate-x-[--reka-toast-swipe-move-x] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full',
+ {
+ variants: {
+ variant: {
+ default: 'border bg-background text-foreground',
+ destructive: 'destructive group border-destructive bg-destructive text-destructive-foreground',
+ },
+ },
+ defaultVariants: {
+ variant: 'default',
+ },
+ },
+)
+
+type ToastVariants = VariantProps
+
+export interface ToastProps extends ToastRootProps {
+ class?: HTMLAttributes['class']
+ variant?: ToastVariants['variant']
+ onOpenChange?: ((value: boolean) => void) | undefined
+}
diff --git a/admin-web/src/ui/components/FaNotification/toast/use-toast.ts b/admin-web/src/ui/components/FaNotification/toast/use-toast.ts
new file mode 100644
index 0000000..52868cd
--- /dev/null
+++ b/admin-web/src/ui/components/FaNotification/toast/use-toast.ts
@@ -0,0 +1,167 @@
+import type { Component, VNode } from 'vue'
+import type { ToastProps } from '.'
+import { computed, ref } from 'vue'
+
+const TOAST_LIMIT = 1
+const TOAST_REMOVE_DELAY = 1000000
+
+export type StringOrVNode
+ = | string
+ | VNode
+ | (() => VNode)
+
+type ToasterToast = ToastProps & {
+ id: string
+ title?: string
+ description?: StringOrVNode
+ action?: Component
+}
+
+const actionTypes = {
+ ADD_TOAST: 'ADD_TOAST',
+ UPDATE_TOAST: 'UPDATE_TOAST',
+ DISMISS_TOAST: 'DISMISS_TOAST',
+ REMOVE_TOAST: 'REMOVE_TOAST',
+} as const
+
+let count = 0
+
+function genId() {
+ count = (count + 1) % Number.MAX_VALUE
+ return count.toString()
+}
+
+type ActionType = typeof actionTypes
+
+type Action
+ = | {
+ type: ActionType['ADD_TOAST']
+ toast: ToasterToast
+ }
+ | {
+ type: ActionType['UPDATE_TOAST']
+ toast: Partial
+ }
+ | {
+ type: ActionType['DISMISS_TOAST']
+ toastId?: ToasterToast['id']
+ }
+ | {
+ type: ActionType['REMOVE_TOAST']
+ toastId?: ToasterToast['id']
+ }
+
+interface State {
+ toasts: ToasterToast[]
+}
+
+const toastTimeouts = new Map>()
+
+function addToRemoveQueue(toastId: string) {
+ if (toastTimeouts.has(toastId)) {
+ return
+ }
+
+ const timeout = setTimeout(() => {
+ toastTimeouts.delete(toastId)
+ dispatch({
+ type: actionTypes.REMOVE_TOAST,
+ toastId,
+ })
+ }, TOAST_REMOVE_DELAY)
+
+ toastTimeouts.set(toastId, timeout)
+}
+
+const state = ref({
+ toasts: [],
+})
+
+function dispatch(action: Action) {
+ switch (action.type) {
+ case actionTypes.ADD_TOAST:
+ state.value.toasts = [action.toast as any, ...state.value.toasts as any].slice(0, TOAST_LIMIT)
+ break
+
+ case actionTypes.UPDATE_TOAST:
+ state.value.toasts = state.value.toasts.map((t: any) =>
+ t.id === action.toast.id ? { ...t, ...action.toast } : t,
+ )
+ break
+
+ case actionTypes.DISMISS_TOAST: {
+ const { toastId } = action
+
+ if (toastId) {
+ addToRemoveQueue(toastId)
+ }
+ else {
+ state.value.toasts.forEach((toast) => {
+ addToRemoveQueue(toast.id)
+ })
+ }
+
+ state.value.toasts = state.value.toasts.map((t: any) =>
+ t.id === toastId || toastId === undefined
+ ? {
+ ...t,
+ open: false,
+ }
+ : t,
+ )
+ break
+ }
+
+ case actionTypes.REMOVE_TOAST:
+ if (action.toastId === undefined) {
+ state.value.toasts = []
+ }
+ else { state.value.toasts = state.value.toasts.filter((t: any) => t.id !== action.toastId) }
+
+ break
+ }
+}
+
+function useToast() {
+ return {
+ toasts: computed(() => state.value.toasts),
+ toast,
+ dismiss: (toastId?: string) => dispatch({ type: actionTypes.DISMISS_TOAST, toastId }),
+ }
+}
+
+type Toast = Omit
+
+function toast(props: Toast) {
+ const id = genId()
+
+ const update = (props: ToasterToast) =>
+ dispatch({
+ type: actionTypes.UPDATE_TOAST,
+ toast: { ...props, id },
+ })
+
+ const dismiss = () => dispatch({ type: actionTypes.DISMISS_TOAST, toastId: id })
+
+ dispatch({
+ type: actionTypes.ADD_TOAST,
+ toast: {
+ ...props,
+ id,
+ open: true,
+ onOpenChange: (open: boolean) => {
+ if (!open) {
+ dismiss()
+ }
+ },
+ },
+ })
+
+ return {
+ id,
+ dismiss,
+ update,
+ }
+}
+
+export { toast, useToast }
diff --git a/admin-web/src/ui/components/FaPageHeader/index.vue b/admin-web/src/ui/components/FaPageHeader/index.vue
new file mode 100755
index 0000000..882b08f
--- /dev/null
+++ b/admin-web/src/ui/components/FaPageHeader/index.vue
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+ {{ title }}
+
+
+
+
+ {{ description }}
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaPageMain/index.vue b/admin-web/src/ui/components/FaPageMain/index.vue
new file mode 100755
index 0000000..3726de1
--- /dev/null
+++ b/admin-web/src/ui/components/FaPageMain/index.vue
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+ {{ title }}
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaPasswordStrength/index.vue b/admin-web/src/ui/components/FaPasswordStrength/index.vue
new file mode 100644
index 0000000..b04b0a6
--- /dev/null
+++ b/admin-web/src/ui/components/FaPasswordStrength/index.vue
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+
+
+
+ 建议
+
+
+
+
+ 长度至少为8个字符
+
+
+
+ 包含大写字母
+
+
+
+ 包含小写字母
+
+
+
+ 包含数字
+
+
+
+ 包含特殊字符
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaPinInput/index.vue b/admin-web/src/ui/components/FaPinInput/index.vue
new file mode 100644
index 0000000..eab1608
--- /dev/null
+++ b/admin-web/src/ui/components/FaPinInput/index.vue
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaPinInput/pin-input/PinInput.vue b/admin-web/src/ui/components/FaPinInput/pin-input/PinInput.vue
new file mode 100644
index 0000000..eabe1fc
--- /dev/null
+++ b/admin-web/src/ui/components/FaPinInput/pin-input/PinInput.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaPinInput/pin-input/PinInputGroup.vue b/admin-web/src/ui/components/FaPinInput/pin-input/PinInputGroup.vue
new file mode 100644
index 0000000..322caaa
--- /dev/null
+++ b/admin-web/src/ui/components/FaPinInput/pin-input/PinInputGroup.vue
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaPinInput/pin-input/PinInputSeparator.vue b/admin-web/src/ui/components/FaPinInput/pin-input/PinInputSeparator.vue
new file mode 100644
index 0000000..cf94610
--- /dev/null
+++ b/admin-web/src/ui/components/FaPinInput/pin-input/PinInputSeparator.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaPinInput/pin-input/PinInputSlot.vue b/admin-web/src/ui/components/FaPinInput/pin-input/PinInputSlot.vue
new file mode 100644
index 0000000..02d4504
--- /dev/null
+++ b/admin-web/src/ui/components/FaPinInput/pin-input/PinInputSlot.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaPinInput/pin-input/index.ts b/admin-web/src/ui/components/FaPinInput/pin-input/index.ts
new file mode 100644
index 0000000..e295233
--- /dev/null
+++ b/admin-web/src/ui/components/FaPinInput/pin-input/index.ts
@@ -0,0 +1,4 @@
+export { default as PinInput } from './PinInput.vue'
+export { default as PinInputGroup } from './PinInputGroup.vue'
+export { default as PinInputSeparator } from './PinInputSeparator.vue'
+export { default as PinInputSlot } from './PinInputSlot.vue'
diff --git a/admin-web/src/ui/components/FaPopover/index.vue b/admin-web/src/ui/components/FaPopover/index.vue
new file mode 100644
index 0000000..dff88e6
--- /dev/null
+++ b/admin-web/src/ui/components/FaPopover/index.vue
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaPopover/popover/Popover.vue b/admin-web/src/ui/components/FaPopover/popover/Popover.vue
new file mode 100644
index 0000000..72e0b5f
--- /dev/null
+++ b/admin-web/src/ui/components/FaPopover/popover/Popover.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaPopover/popover/PopoverContent.vue b/admin-web/src/ui/components/FaPopover/popover/PopoverContent.vue
new file mode 100644
index 0000000..f990eac
--- /dev/null
+++ b/admin-web/src/ui/components/FaPopover/popover/PopoverContent.vue
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaPopover/popover/PopoverTrigger.vue b/admin-web/src/ui/components/FaPopover/popover/PopoverTrigger.vue
new file mode 100644
index 0000000..0195a09
--- /dev/null
+++ b/admin-web/src/ui/components/FaPopover/popover/PopoverTrigger.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaPopover/popover/index.ts b/admin-web/src/ui/components/FaPopover/popover/index.ts
new file mode 100644
index 0000000..c621f9b
--- /dev/null
+++ b/admin-web/src/ui/components/FaPopover/popover/index.ts
@@ -0,0 +1,3 @@
+export { default as Popover } from './Popover.vue'
+export { default as PopoverContent } from './PopoverContent.vue'
+export { default as PopoverTrigger } from './PopoverTrigger.vue'
diff --git a/admin-web/src/ui/components/FaProgress/index.vue b/admin-web/src/ui/components/FaProgress/index.vue
new file mode 100644
index 0000000..954cf92
--- /dev/null
+++ b/admin-web/src/ui/components/FaProgress/index.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaProgress/progress/Progress.vue b/admin-web/src/ui/components/FaProgress/progress/Progress.vue
new file mode 100644
index 0000000..ab51c22
--- /dev/null
+++ b/admin-web/src/ui/components/FaProgress/progress/Progress.vue
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaProgress/progress/index.ts b/admin-web/src/ui/components/FaProgress/progress/index.ts
new file mode 100644
index 0000000..eace989
--- /dev/null
+++ b/admin-web/src/ui/components/FaProgress/progress/index.ts
@@ -0,0 +1 @@
+export { default as Progress } from './Progress.vue'
diff --git a/admin-web/src/ui/components/FaScrollArea/index.vue b/admin-web/src/ui/components/FaScrollArea/index.vue
new file mode 100755
index 0000000..820abcb
--- /dev/null
+++ b/admin-web/src/ui/components/FaScrollArea/index.vue
@@ -0,0 +1,119 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaScrollArea/scroll-area/ScrollArea.vue b/admin-web/src/ui/components/FaScrollArea/scroll-area/ScrollArea.vue
new file mode 100644
index 0000000..9af884e
--- /dev/null
+++ b/admin-web/src/ui/components/FaScrollArea/scroll-area/ScrollArea.vue
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaScrollArea/scroll-area/ScrollBar.vue b/admin-web/src/ui/components/FaScrollArea/scroll-area/ScrollBar.vue
new file mode 100644
index 0000000..fe06610
--- /dev/null
+++ b/admin-web/src/ui/components/FaScrollArea/scroll-area/ScrollBar.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaScrollArea/scroll-area/index.ts b/admin-web/src/ui/components/FaScrollArea/scroll-area/index.ts
new file mode 100644
index 0000000..2bd4fae
--- /dev/null
+++ b/admin-web/src/ui/components/FaScrollArea/scroll-area/index.ts
@@ -0,0 +1,2 @@
+export { default as ScrollArea } from './ScrollArea.vue'
+export { default as ScrollBar } from './ScrollBar.vue'
diff --git a/admin-web/src/ui/components/FaSearchBar/index.vue b/admin-web/src/ui/components/FaSearchBar/index.vue
new file mode 100755
index 0000000..4964d62
--- /dev/null
+++ b/admin-web/src/ui/components/FaSearchBar/index.vue
@@ -0,0 +1,45 @@
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaSelect/index.vue b/admin-web/src/ui/components/FaSelect/index.vue
new file mode 100644
index 0000000..ac6ea39
--- /dev/null
+++ b/admin-web/src/ui/components/FaSelect/index.vue
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+ {{ option.label }}
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaSelect/select/Select.vue b/admin-web/src/ui/components/FaSelect/select/Select.vue
new file mode 100644
index 0000000..b9b1f33
--- /dev/null
+++ b/admin-web/src/ui/components/FaSelect/select/Select.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaSelect/select/SelectContent.vue b/admin-web/src/ui/components/FaSelect/select/SelectContent.vue
new file mode 100644
index 0000000..28a16c6
--- /dev/null
+++ b/admin-web/src/ui/components/FaSelect/select/SelectContent.vue
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaSelect/select/SelectGroup.vue b/admin-web/src/ui/components/FaSelect/select/SelectGroup.vue
new file mode 100644
index 0000000..8bc479a
--- /dev/null
+++ b/admin-web/src/ui/components/FaSelect/select/SelectGroup.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaSelect/select/SelectItem.vue b/admin-web/src/ui/components/FaSelect/select/SelectItem.vue
new file mode 100644
index 0000000..063b8bf
--- /dev/null
+++ b/admin-web/src/ui/components/FaSelect/select/SelectItem.vue
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaSelect/select/SelectItemText.vue b/admin-web/src/ui/components/FaSelect/select/SelectItemText.vue
new file mode 100644
index 0000000..1cc7db1
--- /dev/null
+++ b/admin-web/src/ui/components/FaSelect/select/SelectItemText.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaSelect/select/SelectLabel.vue b/admin-web/src/ui/components/FaSelect/select/SelectLabel.vue
new file mode 100644
index 0000000..25225b3
--- /dev/null
+++ b/admin-web/src/ui/components/FaSelect/select/SelectLabel.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaSelect/select/SelectScrollDownButton.vue b/admin-web/src/ui/components/FaSelect/select/SelectScrollDownButton.vue
new file mode 100644
index 0000000..0109710
--- /dev/null
+++ b/admin-web/src/ui/components/FaSelect/select/SelectScrollDownButton.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaSelect/select/SelectScrollUpButton.vue b/admin-web/src/ui/components/FaSelect/select/SelectScrollUpButton.vue
new file mode 100644
index 0000000..8a8ff02
--- /dev/null
+++ b/admin-web/src/ui/components/FaSelect/select/SelectScrollUpButton.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaSelect/select/SelectSeparator.vue b/admin-web/src/ui/components/FaSelect/select/SelectSeparator.vue
new file mode 100644
index 0000000..73d9bbb
--- /dev/null
+++ b/admin-web/src/ui/components/FaSelect/select/SelectSeparator.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaSelect/select/SelectTrigger.vue b/admin-web/src/ui/components/FaSelect/select/SelectTrigger.vue
new file mode 100644
index 0000000..7206c04
--- /dev/null
+++ b/admin-web/src/ui/components/FaSelect/select/SelectTrigger.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaSelect/select/SelectValue.vue b/admin-web/src/ui/components/FaSelect/select/SelectValue.vue
new file mode 100644
index 0000000..4ffa580
--- /dev/null
+++ b/admin-web/src/ui/components/FaSelect/select/SelectValue.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaSelect/select/index.ts b/admin-web/src/ui/components/FaSelect/select/index.ts
new file mode 100644
index 0000000..31b9294
--- /dev/null
+++ b/admin-web/src/ui/components/FaSelect/select/index.ts
@@ -0,0 +1,11 @@
+export { default as Select } from './Select.vue'
+export { default as SelectContent } from './SelectContent.vue'
+export { default as SelectGroup } from './SelectGroup.vue'
+export { default as SelectItem } from './SelectItem.vue'
+export { default as SelectItemText } from './SelectItemText.vue'
+export { default as SelectLabel } from './SelectLabel.vue'
+export { default as SelectScrollDownButton } from './SelectScrollDownButton.vue'
+export { default as SelectScrollUpButton } from './SelectScrollUpButton.vue'
+export { default as SelectSeparator } from './SelectSeparator.vue'
+export { default as SelectTrigger } from './SelectTrigger.vue'
+export { default as SelectValue } from './SelectValue.vue'
diff --git a/admin-web/src/ui/components/FaSlider/index.vue b/admin-web/src/ui/components/FaSlider/index.vue
new file mode 100644
index 0000000..c1c9de3
--- /dev/null
+++ b/admin-web/src/ui/components/FaSlider/index.vue
@@ -0,0 +1,38 @@
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaSlider/slider/Slider.vue b/admin-web/src/ui/components/FaSlider/slider/Slider.vue
new file mode 100644
index 0000000..4426657
--- /dev/null
+++ b/admin-web/src/ui/components/FaSlider/slider/Slider.vue
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaSlider/slider/index.ts b/admin-web/src/ui/components/FaSlider/slider/index.ts
new file mode 100644
index 0000000..1c945de
--- /dev/null
+++ b/admin-web/src/ui/components/FaSlider/slider/index.ts
@@ -0,0 +1 @@
+export { default as Slider } from './Slider.vue'
diff --git a/admin-web/src/ui/components/FaSmartFixedBlock/index.vue b/admin-web/src/ui/components/FaSmartFixedBlock/index.vue
new file mode 100644
index 0000000..a3b0634
--- /dev/null
+++ b/admin-web/src/ui/components/FaSmartFixedBlock/index.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaSwitch/index.vue b/admin-web/src/ui/components/FaSwitch/index.vue
new file mode 100644
index 0000000..96e4b57
--- /dev/null
+++ b/admin-web/src/ui/components/FaSwitch/index.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaSwitch/switch/Switch.vue b/admin-web/src/ui/components/FaSwitch/switch/Switch.vue
new file mode 100644
index 0000000..9c3cc52
--- /dev/null
+++ b/admin-web/src/ui/components/FaSwitch/switch/Switch.vue
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaSwitch/switch/index.ts b/admin-web/src/ui/components/FaSwitch/switch/index.ts
new file mode 100644
index 0000000..87b4b17
--- /dev/null
+++ b/admin-web/src/ui/components/FaSwitch/switch/index.ts
@@ -0,0 +1 @@
+export { default as Switch } from './Switch.vue'
diff --git a/admin-web/src/ui/components/FaSystemInfo/index.vue b/admin-web/src/ui/components/FaSystemInfo/index.vue
new file mode 100755
index 0000000..87c2f8d
--- /dev/null
+++ b/admin-web/src/ui/components/FaSystemInfo/index.vue
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+ 系统信息
+
+
+ {{ pkg.version }}
+
+
+
+
+ 最后编译时间
+
+
+ {{ lastBuildTime }}
+
+
+
+
+ 生产环境依赖
+
+
+
+
+ {{ key }}
+
+
+ {{ val }}
+
+
+
+
+
+
+ 开发环境依赖
+
+
+
+
+ {{ key }}
+
+
+ {{ val }}
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaTabs/index.vue b/admin-web/src/ui/components/FaTabs/index.vue
new file mode 100644
index 0000000..3bdc465
--- /dev/null
+++ b/admin-web/src/ui/components/FaTabs/index.vue
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+ {{ item.label }}
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaTabs/tabs/Tabs.vue b/admin-web/src/ui/components/FaTabs/tabs/Tabs.vue
new file mode 100644
index 0000000..15aeca8
--- /dev/null
+++ b/admin-web/src/ui/components/FaTabs/tabs/Tabs.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaTabs/tabs/TabsContent.vue b/admin-web/src/ui/components/FaTabs/tabs/TabsContent.vue
new file mode 100644
index 0000000..3a50634
--- /dev/null
+++ b/admin-web/src/ui/components/FaTabs/tabs/TabsContent.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaTabs/tabs/TabsList.vue b/admin-web/src/ui/components/FaTabs/tabs/TabsList.vue
new file mode 100644
index 0000000..fecd2be
--- /dev/null
+++ b/admin-web/src/ui/components/FaTabs/tabs/TabsList.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaTabs/tabs/TabsTrigger.vue b/admin-web/src/ui/components/FaTabs/tabs/TabsTrigger.vue
new file mode 100644
index 0000000..de35516
--- /dev/null
+++ b/admin-web/src/ui/components/FaTabs/tabs/TabsTrigger.vue
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaTabs/tabs/index.ts b/admin-web/src/ui/components/FaTabs/tabs/index.ts
new file mode 100644
index 0000000..a5e58dc
--- /dev/null
+++ b/admin-web/src/ui/components/FaTabs/tabs/index.ts
@@ -0,0 +1,4 @@
+export { default as Tabs } from './Tabs.vue'
+export { default as TabsContent } from './TabsContent.vue'
+export { default as TabsList } from './TabsList.vue'
+export { default as TabsTrigger } from './TabsTrigger.vue'
diff --git a/admin-web/src/ui/components/FaTextarea/index.vue b/admin-web/src/ui/components/FaTextarea/index.vue
new file mode 100644
index 0000000..2555cf3
--- /dev/null
+++ b/admin-web/src/ui/components/FaTextarea/index.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaTextarea/textarea/Textarea.vue b/admin-web/src/ui/components/FaTextarea/textarea/Textarea.vue
new file mode 100644
index 0000000..8edf162
--- /dev/null
+++ b/admin-web/src/ui/components/FaTextarea/textarea/Textarea.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaTextarea/textarea/index.ts b/admin-web/src/ui/components/FaTextarea/textarea/index.ts
new file mode 100644
index 0000000..6a7ab2a
--- /dev/null
+++ b/admin-web/src/ui/components/FaTextarea/textarea/index.ts
@@ -0,0 +1 @@
+export { default as Textarea } from './Textarea.vue'
diff --git a/admin-web/src/ui/components/FaToast/index.vue b/admin-web/src/ui/components/FaToast/index.vue
new file mode 100644
index 0000000..3081d32
--- /dev/null
+++ b/admin-web/src/ui/components/FaToast/index.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaToast/sonner/Sonner.vue b/admin-web/src/ui/components/FaToast/sonner/Sonner.vue
new file mode 100644
index 0000000..9e50ef1
--- /dev/null
+++ b/admin-web/src/ui/components/FaToast/sonner/Sonner.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaToast/sonner/index.ts b/admin-web/src/ui/components/FaToast/sonner/index.ts
new file mode 100644
index 0000000..0d4a642
--- /dev/null
+++ b/admin-web/src/ui/components/FaToast/sonner/index.ts
@@ -0,0 +1 @@
+export { default as Toaster } from './Sonner.vue'
diff --git a/admin-web/src/ui/components/FaTooltip/index.vue b/admin-web/src/ui/components/FaTooltip/index.vue
new file mode 100644
index 0000000..1cc3f18
--- /dev/null
+++ b/admin-web/src/ui/components/FaTooltip/index.vue
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+ {{ text }}
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaTooltip/tooltip/Tooltip.vue b/admin-web/src/ui/components/FaTooltip/tooltip/Tooltip.vue
new file mode 100644
index 0000000..d5b3cd5
--- /dev/null
+++ b/admin-web/src/ui/components/FaTooltip/tooltip/Tooltip.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaTooltip/tooltip/TooltipContent.vue b/admin-web/src/ui/components/FaTooltip/tooltip/TooltipContent.vue
new file mode 100644
index 0000000..5bfb2cd
--- /dev/null
+++ b/admin-web/src/ui/components/FaTooltip/tooltip/TooltipContent.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaTooltip/tooltip/TooltipProvider.vue b/admin-web/src/ui/components/FaTooltip/tooltip/TooltipProvider.vue
new file mode 100644
index 0000000..f4457e4
--- /dev/null
+++ b/admin-web/src/ui/components/FaTooltip/tooltip/TooltipProvider.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaTooltip/tooltip/TooltipTrigger.vue b/admin-web/src/ui/components/FaTooltip/tooltip/TooltipTrigger.vue
new file mode 100644
index 0000000..266533b
--- /dev/null
+++ b/admin-web/src/ui/components/FaTooltip/tooltip/TooltipTrigger.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/components/FaTooltip/tooltip/index.ts b/admin-web/src/ui/components/FaTooltip/tooltip/index.ts
new file mode 100644
index 0000000..5ab9653
--- /dev/null
+++ b/admin-web/src/ui/components/FaTooltip/tooltip/index.ts
@@ -0,0 +1,4 @@
+export { default as Tooltip } from './Tooltip.vue'
+export { default as TooltipContent } from './TooltipContent.vue'
+export { default as TooltipProvider } from './TooltipProvider.vue'
+export { default as TooltipTrigger } from './TooltipTrigger.vue'
diff --git a/admin-web/src/ui/provider/index.ts b/admin-web/src/ui/provider/index.ts
new file mode 100644
index 0000000..90b3396
--- /dev/null
+++ b/admin-web/src/ui/provider/index.ts
@@ -0,0 +1,10 @@
+import type { App } from 'vue'
+import ElementPlus from 'element-plus'
+import 'element-plus/dist/index.css'
+import 'element-plus/theme-chalk/dark/css-vars.css'
+
+function install(app: App) {
+ app.use(ElementPlus)
+}
+
+export default { install }
diff --git a/admin-web/src/ui/provider/index.vue b/admin-web/src/ui/provider/index.vue
new file mode 100644
index 0000000..60e2f66
--- /dev/null
+++ b/admin-web/src/ui/provider/index.vue
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/shadcn/ui/form/FormControl.vue b/admin-web/src/ui/shadcn/ui/form/FormControl.vue
new file mode 100644
index 0000000..eddcafe
--- /dev/null
+++ b/admin-web/src/ui/shadcn/ui/form/FormControl.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/shadcn/ui/form/FormDescription.vue b/admin-web/src/ui/shadcn/ui/form/FormDescription.vue
new file mode 100644
index 0000000..1f888b7
--- /dev/null
+++ b/admin-web/src/ui/shadcn/ui/form/FormDescription.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/shadcn/ui/form/FormItem.vue b/admin-web/src/ui/shadcn/ui/form/FormItem.vue
new file mode 100644
index 0000000..17add3a
--- /dev/null
+++ b/admin-web/src/ui/shadcn/ui/form/FormItem.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/shadcn/ui/form/FormLabel.vue b/admin-web/src/ui/shadcn/ui/form/FormLabel.vue
new file mode 100644
index 0000000..7107edd
--- /dev/null
+++ b/admin-web/src/ui/shadcn/ui/form/FormLabel.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/shadcn/ui/form/FormMessage.vue b/admin-web/src/ui/shadcn/ui/form/FormMessage.vue
new file mode 100644
index 0000000..37ce26b
--- /dev/null
+++ b/admin-web/src/ui/shadcn/ui/form/FormMessage.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
diff --git a/admin-web/src/ui/shadcn/ui/form/index.ts b/admin-web/src/ui/shadcn/ui/form/index.ts
new file mode 100644
index 0000000..4241e97
--- /dev/null
+++ b/admin-web/src/ui/shadcn/ui/form/index.ts
@@ -0,0 +1,7 @@
+export { default as FormControl } from './FormControl.vue'
+export { default as FormDescription } from './FormDescription.vue'
+export { default as FormItem } from './FormItem.vue'
+export { default as FormLabel } from './FormLabel.vue'
+export { default as FormMessage } from './FormMessage.vue'
+export { FORM_ITEM_INJECTION_KEY } from './injectionKeys'
+export { Form, Field as FormField } from 'vee-validate'
diff --git a/admin-web/src/ui/shadcn/ui/form/injectionKeys.ts b/admin-web/src/ui/shadcn/ui/form/injectionKeys.ts
new file mode 100644
index 0000000..0352a55
--- /dev/null
+++ b/admin-web/src/ui/shadcn/ui/form/injectionKeys.ts
@@ -0,0 +1,3 @@
+import type { InjectionKey } from 'vue'
+
+export const FORM_ITEM_INJECTION_KEY: InjectionKey = Symbol('form-item')
diff --git a/admin-web/src/ui/shadcn/ui/form/useFormField.ts b/admin-web/src/ui/shadcn/ui/form/useFormField.ts
new file mode 100644
index 0000000..c3bcd22
--- /dev/null
+++ b/admin-web/src/ui/shadcn/ui/form/useFormField.ts
@@ -0,0 +1,31 @@
+import { FieldContextKey, useFieldError, useIsFieldDirty, useIsFieldTouched, useIsFieldValid } from 'vee-validate'
+import { inject } from 'vue'
+import { FORM_ITEM_INJECTION_KEY } from './injectionKeys'
+
+export function useFormField() {
+ const fieldContext = inject(FieldContextKey)
+ const fieldItemContext = inject(FORM_ITEM_INJECTION_KEY)
+
+ if (!fieldContext) {
+ throw new Error('useFormField should be used within ')
+ }
+
+ const { name } = fieldContext
+ const id = fieldItemContext
+
+ const fieldState = {
+ valid: useIsFieldValid(name),
+ isDirty: useIsFieldDirty(name),
+ isTouched: useIsFieldTouched(name),
+ error: useFieldError(name),
+ }
+
+ return {
+ id,
+ name,
+ formItemId: `${id}-form-item`,
+ formDescriptionId: `${id}-form-item-description`,
+ formMessageId: `${id}-form-item-message`,
+ ...fieldState,
+ }
+}
diff --git a/admin-web/src/ui/shadcn/ui/label/Label.vue b/admin-web/src/ui/shadcn/ui/label/Label.vue
new file mode 100644
index 0000000..8303058
--- /dev/null
+++ b/admin-web/src/ui/shadcn/ui/label/Label.vue
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
diff --git a/admin-web/src/ui/shadcn/ui/label/index.ts b/admin-web/src/ui/shadcn/ui/label/index.ts
new file mode 100644
index 0000000..572c2f0
--- /dev/null
+++ b/admin-web/src/ui/shadcn/ui/label/index.ts
@@ -0,0 +1 @@
+export { default as Label } from './Label.vue'
diff --git a/admin-web/src/utils/composables/useAuth.ts b/admin-web/src/utils/composables/useAuth.ts
new file mode 100755
index 0000000..88ba3ff
--- /dev/null
+++ b/admin-web/src/utils/composables/useAuth.ts
@@ -0,0 +1,32 @@
+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/admin-web/src/utils/composables/useGlobalProperties.ts b/admin-web/src/utils/composables/useGlobalProperties.ts
new file mode 100755
index 0000000..8cb57df
--- /dev/null
+++ b/admin-web/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/admin-web/src/utils/composables/useMainPage.ts b/admin-web/src/utils/composables/useMainPage.ts
new file mode 100755
index 0000000..fac6826
--- /dev/null
+++ b/admin-web/src/utils/composables/useMainPage.ts
@@ -0,0 +1,20 @@
+export default function useMainPage() {
+ const router = useRouter()
+
+ const settingsStore = useSettingsStore()
+
+ function reload() {
+ settingsStore.setIsReloading(true)
+ router.push({
+ name: 'reload',
+ }).then(() => {
+ setTimeout(() => {
+ settingsStore.setIsReloading(false)
+ }, 100)
+ })
+ }
+
+ return {
+ reload,
+ }
+}
diff --git a/admin-web/src/utils/composables/useMenu.ts b/admin-web/src/utils/composables/useMenu.ts
new file mode 100755
index 0000000..9f2cab6
--- /dev/null
+++ b/admin-web/src/utils/composables/useMenu.ts
@@ -0,0 +1,20 @@
+export default function useMenu() {
+ const router = useRouter()
+
+ const settingsStore = useSettingsStore()
+ const menuStore = useMenuStore()
+
+ function switchTo(index: number) {
+ menuStore.setActived(index)
+ if (
+ settingsStore.settings.menu.mainMenuClickMode === 'jump'
+ || (settingsStore.settings.menu.mainMenuClickMode === 'smart' && menuStore.sidebarMenusHasOnlyMenu)
+ ) {
+ router.push(menuStore.sidebarMenusFirstDeepestPath)
+ }
+ }
+
+ return {
+ switchTo,
+ }
+}
diff --git a/admin-web/src/utils/composables/useTabbar.ts b/admin-web/src/utils/composables/useTabbar.ts
new file mode 100755
index 0000000..99ea496
--- /dev/null
+++ b/admin-web/src/utils/composables/useTabbar.ts
@@ -0,0 +1,153 @@
+import { toast } from 'vue-sonner'
+
+export default function useTabbar() {
+ const route = useRoute()
+ const router = useRouter()
+
+ const tabbarStore = useTabbarStore()
+
+ function getId() {
+ return route.path
+ }
+
+ function closeById(tabId = getId()) {
+ if (checkClose(tabId, false)) {
+ const activedTabId = getId()
+ // 如果关闭的标签正好是当前路由
+ if (tabId === activedTabId) {
+ const index = tabbarStore.list.findIndex(item => item.tabId === tabId)
+ if (index > 0) {
+ router.close(tabbarStore.list[index - 1].fullPath)
+ }
+ else {
+ router.close(tabbarStore.list[index + 1].fullPath)
+ }
+ }
+ else {
+ tabbarStore.remove(tabId)
+ }
+ }
+ }
+
+ /**
+ * 关闭两侧标签页
+ */
+ function closeOtherSide(tabId = getId()) {
+ const activedTabId = getId()
+ // 如果操作的是非当前路由标签页,则先跳转到指定路由标签页
+ if (tabId !== activedTabId) {
+ const index = tabbarStore.list.findIndex(item => item.tabId === tabId)
+ router.push(tabbarStore.list[index].fullPath)
+ }
+ tabbarStore.removeOtherSide(tabId)
+ }
+
+ /**
+ * 关闭左侧标签页
+ */
+ function closeLeftSide(tabId = getId()) {
+ const activedTabId = getId()
+ // 如果操作的是非当前路由标签页,需要判断当前标签页是否在指定标签页左侧,如果是则先跳转到指定路由标签页
+ if (tabId !== activedTabId) {
+ const index = tabbarStore.list.findIndex(item => item.tabId === tabId)
+ const activedIndex = tabbarStore.list.findIndex(item => item.tabId === activedTabId)
+ if (activedIndex < index) {
+ router.push(tabbarStore.list[index].fullPath)
+ }
+ }
+ tabbarStore.removeLeftSide(tabId)
+ }
+
+ /**
+ * 关闭右侧标签页
+ */
+ function closeRightSide(tabId = getId()) {
+ const activedTabId = getId()
+ // 如果操作的是非当前路由标签页,需要判断当前标签页是否在指定标签页右侧,如果是则先跳转到指定路由标签页
+ if (tabId !== activedTabId) {
+ const index = tabbarStore.list.findIndex(item => item.tabId === tabId)
+ const activedIndex = tabbarStore.list.findIndex(item => item.tabId === activedTabId)
+ if (activedIndex > index) {
+ router.push(tabbarStore.list[index].fullPath)
+ }
+ }
+ tabbarStore.removeRightSide(tabId)
+ }
+
+ /**
+ * 校验指定标签是否可关闭
+ */
+ function checkClose(tabId = getId(), checkOnly = true) {
+ let flag = true
+ const index = tabbarStore.list.findIndex(item => item.tabId === tabId)
+ if (index < 0) {
+ flag = false
+ !checkOnly && toast.warning('关闭的标签页不存在', {
+ position: 'top-center',
+ })
+ }
+ else if (tabbarStore.list.length <= 1) {
+ flag = false
+ !checkOnly && toast.warning('当前只有一个标签页,不可关闭', {
+ position: 'top-center',
+ })
+ }
+ return flag
+ }
+
+ /**
+ * 校验指定标签两侧是否有可关闭的标签
+ */
+ function checkCloseOtherSide(tabId = getId()) {
+ return tabbarStore.list.some((item) => {
+ return item.tabId !== tabId
+ })
+ }
+
+ /**
+ * 校验指定标签左侧是否有可关闭的标签
+ */
+ function checkCloseLeftSide(tabId = getId()) {
+ let flag = true
+ if (tabId === tabbarStore.list[0]?.tabId) {
+ flag = false
+ }
+ else {
+ const index = tabbarStore.list.findIndex(item => item.tabId === tabId)
+ flag = tabbarStore.list.some((item, i) => {
+ return i < index && item.tabId !== tabId
+ })
+ }
+ return flag
+ }
+
+ /**
+ * 校验指定标签右侧是否有可关闭的标签
+ */
+ function checkCloseRightSide(tabId = getId()) {
+ let flag = true
+ if (tabId === tabbarStore.list.at(-1)?.tabId) {
+ flag = false
+ }
+ else {
+ const index = tabbarStore.list.findIndex(item => item.tabId === tabId)
+ flag = tabbarStore.list.some((item, i) => {
+ return i >= index && item.tabId !== tabId
+ })
+ }
+ return flag
+ }
+
+ return {
+ getId,
+ close,
+ closeById,
+ closeOtherSide,
+ closeLeftSide,
+ closeRightSide,
+ checkClose,
+ checkCloseOtherSide,
+ checkCloseLeftSide,
+ checkCloseRightSide,
+ }
+}
diff --git a/admin-web/src/utils/dayjs.ts b/admin-web/src/utils/dayjs.ts
new file mode 100755
index 0000000..37bf2f2
--- /dev/null
+++ b/admin-web/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/admin-web/src/utils/directive.ts b/admin-web/src/utils/directive.ts
new file mode 100755
index 0000000..958121f
--- /dev/null
+++ b/admin-web/src/utils/directive.ts
@@ -0,0 +1,11 @@
+import type { App, DirectiveBinding } from 'vue'
+
+export default function directive(app: App) {
+ app.directive('auth', (el: HTMLElement, binding: DirectiveBinding) => {
+ watch(() => binding.modifiers.all ? useAuth().authAll(binding.value) : useAuth().auth(binding.value), (val) => {
+ el.style.display = val ? '' : 'none'
+ }, {
+ immediate: true,
+ })
+ })
+}
diff --git a/admin-web/src/utils/eventBus.ts b/admin-web/src/utils/eventBus.ts
new file mode 100755
index 0000000..0fc2501
--- /dev/null
+++ b/admin-web/src/utils/eventBus.ts
@@ -0,0 +1,7 @@
+import mitt from 'mitt'
+
+interface MittTypes {
+ [key: string | symbol]: any
+}
+
+export default mitt()
diff --git a/admin-web/src/utils/index.ts b/admin-web/src/utils/index.ts
new file mode 100755
index 0000000..87e418e
--- /dev/null
+++ b/admin-web/src/utils/index.ts
@@ -0,0 +1,12 @@
+import type { ClassValue } from 'clsx'
+import { clsx } from 'clsx'
+import path from 'path-browserify'
+import { twMerge } from 'tailwind-merge'
+
+export function cn(...inputs: ClassValue[]) {
+ return twMerge(clsx(inputs))
+}
+
+export function resolveRoutePath(basePath?: string, routePath?: string) {
+ return basePath ? path.resolve(basePath, routePath ?? '') : routePath ?? ''
+}
diff --git a/admin-web/src/utils/object.ts b/admin-web/src/utils/object.ts
new file mode 100644
index 0000000..99b7559
--- /dev/null
+++ b/admin-web/src/utils/object.ts
@@ -0,0 +1,54 @@
+import { createDefu } from 'defu'
+
+/** 合并对象 */
+const merge = createDefu((obj, key, value) => {
+ if (Array.isArray(obj[key]) && Array.isArray(value)) {
+ obj[key] = value
+ return true
+ }
+})
+
+/** 合并对象,并移除不存在的属性 */
+const mergeWithoutUndefinedProps = createDefu((obj, key, value) => {
+ if (obj[key] === undefined) {
+ delete obj[key]
+ return true
+ }
+ if (Array.isArray(obj[key]) && Array.isArray(value)) {
+ obj[key] = value
+ return true
+ }
+})
+
+function isObject(value: any) {
+ return typeof value === 'object' && !Array.isArray(value)
+}
+/** 比较两个对象,提取出不同的部分 */
+function diffTwoObj(originalObj: Record, diffObj: Record) {
+ if (!isObject(originalObj) || !isObject(diffObj)) {
+ return diffObj
+ }
+ const diff: Record = {}
+ for (const key in diffObj) {
+ const originalValue = originalObj[key]
+ const diffValue = diffObj[key]
+ if (JSON.stringify(originalValue) !== JSON.stringify(diffValue)) {
+ if (isObject(originalValue) && isObject(diffValue)) {
+ const nestedDiff = diffTwoObj(originalValue, diffValue)
+ if (Object.keys(nestedDiff).length > 0) {
+ diff[key] = nestedDiff
+ }
+ }
+ else {
+ diff[key] = diffValue
+ }
+ }
+ }
+ return diff
+}
+
+export {
+ diffTwoObj,
+ merge,
+ mergeWithoutUndefinedProps,
+}
diff --git a/admin-web/src/utils/systemCopyright.ts b/admin-web/src/utils/systemCopyright.ts
new file mode 100755
index 0000000..7ee43f9
--- /dev/null
+++ b/admin-web/src/utils/systemCopyright.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.hurui.me')
+ }
+ else {
+ console.info('%cPowered by%cFantastic-admin', copyright_sub_style, copyright_main_style, '\nhttps://fantastic-admin.hurui.me')
+ }
+}
+
+export {}
diff --git a/admin-web/src/utils/ua.ts b/admin-web/src/utils/ua.ts
new file mode 100644
index 0000000..6bc70ba
--- /dev/null
+++ b/admin-web/src/utils/ua.ts
@@ -0,0 +1,3 @@
+import { UAParser } from 'ua-parser-js'
+
+export const ua = new UAParser()
diff --git a/admin-web/src/views/[...all].vue b/admin-web/src/views/[...all].vue
new file mode 100755
index 0000000..a6ef90a
--- /dev/null
+++ b/admin-web/src/views/[...all].vue
@@ -0,0 +1,55 @@
+
+name: notFound
+meta:
+ title: 找不到页面
+ constant: true
+ layout: false
+
+
+
+
+
+
+
+
+
+ 404
+
+
+ 抱歉,你访问的页面不存在
+
+
+
+ {{ data.countdown }} 秒后,返回首页
+
+
+
+
+
diff --git a/admin-web/src/views/index.vue b/admin-web/src/views/index.vue
new file mode 100755
index 0000000..9205ba9
--- /dev/null
+++ b/admin-web/src/views/index.vue
@@ -0,0 +1,203 @@
+
+meta:
+ title: 主页
+ icon: ant-design:home-twotone
+
+
+
+
+
+
+
+
+
+ 欢迎使用 Fantastic-admin
+
+
+
+
+
+
+ 这是一款开箱即用 的中后台框架,同时它也经历过数十个真实项目的技术沉淀,确保框架在开发中可落地、可使用、可维护
+
+
+ 注:在作者就职过的公司,本框架已在电商、直播、OA、ERP等多个不同领域的中后台系统中应用并稳定运行
+
+
+
+
+
+
+ 开发文档
+
+
+
+
+ 代码仓库
+
+
+
+
+
+
+
+
+
+
+
+
+ Fantastic-startkit
+
+ 一款简单好用的 Vue3 项目启动套件
+
+
+
+
+ 访问官网
+
+
+
+
+
+
+
+
+
+
+
+ Fantastic-admin
+
+ 一款开箱即用的 Vue 中后台管理系统框架
+
+
+
+
+ 访问官网
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ One-step-admin
+
+ 一款干啥都快人一步的 Vue 中后台系统框架
+
+
+
+
+ 访问官网
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/admin-web/src/views/login.vue b/admin-web/src/views/login.vue
new file mode 100755
index 0000000..343c4b5
--- /dev/null
+++ b/admin-web/src/views/login.vue
@@ -0,0 +1,177 @@
+
+meta:
+ title: 登录
+ constant: true
+ layout: false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { formType = 'register'; account = val }"
+ @on-reset-password="(val) => { formType = 'resetPassword'; account = val }"
+ />
+ { formType = 'login'; account = val }"
+ @on-login="formType = 'login'"
+ />
+ { formType = 'login'; account = val }"
+ @on-login="formType = 'login'"
+ />
+
+
+
+
+
+
+
diff --git a/admin-web/src/views/multilevel_menu_example/level2/level3/page1.vue b/admin-web/src/views/multilevel_menu_example/level2/level3/page1.vue
new file mode 100755
index 0000000..14d700b
--- /dev/null
+++ b/admin-web/src/views/multilevel_menu_example/level2/level3/page1.vue
@@ -0,0 +1,12 @@
+
+meta:
+ title: 导航2-2-1
+
+
+
+
+
+ 多级导航2-2-1
+
+
+
diff --git a/admin-web/src/views/multilevel_menu_example/level2/level3/page2.vue b/admin-web/src/views/multilevel_menu_example/level2/level3/page2.vue
new file mode 100755
index 0000000..a404784
--- /dev/null
+++ b/admin-web/src/views/multilevel_menu_example/level2/level3/page2.vue
@@ -0,0 +1,12 @@
+
+meta:
+ title: 导航2-2-2
+
+
+
+
+
+ 多级导航2-2-2
+
+
+
diff --git a/admin-web/src/views/multilevel_menu_example/level2/page.vue b/admin-web/src/views/multilevel_menu_example/level2/page.vue
new file mode 100755
index 0000000..e1d4ab1
--- /dev/null
+++ b/admin-web/src/views/multilevel_menu_example/level2/page.vue
@@ -0,0 +1,12 @@
+
+meta:
+ title: 导航2-1
+
+
+
+
+
+ 多级导航2-1
+
+
+
diff --git a/admin-web/src/views/multilevel_menu_example/page.vue b/admin-web/src/views/multilevel_menu_example/page.vue
new file mode 100755
index 0000000..2810eb5
--- /dev/null
+++ b/admin-web/src/views/multilevel_menu_example/page.vue
@@ -0,0 +1,12 @@
+
+meta:
+ title: 导航1
+
+
+
+
+
+ 多级导航1
+
+
+
diff --git a/admin-web/src/views/reload.vue b/admin-web/src/views/reload.vue
new file mode 100755
index 0000000..e59af4e
--- /dev/null
+++ b/admin-web/src/views/reload.vue
@@ -0,0 +1,15 @@
+
+name: reload
+
+
+
+
+
+
+
diff --git a/admin-web/stylelint.config.js b/admin-web/stylelint.config.js
new file mode 100644
index 0000000..719267a
--- /dev/null
+++ b/admin-web/stylelint.config.js
@@ -0,0 +1,51 @@
+export default {
+ extends: [
+ 'stylelint-config-standard-scss',
+ 'stylelint-config-standard-vue/scss',
+ 'stylelint-config-recess-order',
+ '@stylistic/stylelint-config',
+ ],
+ plugins: [
+ 'stylelint-scss',
+ ],
+ rules: {
+ '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,
+ '@stylistic/max-line-length': null,
+ '@stylistic/block-closing-brace-newline-after': [
+ 'always',
+ {
+ ignoreAtRules: ['if', 'else'],
+ },
+ ],
+ },
+ allowEmptyInput: true,
+ ignoreFiles: [
+ 'node_modules/**/*',
+ 'dist*/**/*',
+ ],
+}
diff --git a/admin-web/themes/index.ts b/admin-web/themes/index.ts
new file mode 100644
index 0000000..9686bed
--- /dev/null
+++ b/admin-web/themes/index.ts
@@ -0,0 +1,115 @@
+export const lightTheme = {
+ 'color-scheme': 'light',
+ // shadcn
+ '--background': '0 0% 100%',
+ '--foreground': '240 10% 3.9%',
+ '--card': '0 0% 100%',
+ '--card-foreground': '240 10% 3.9%',
+ '--popover': '0 0% 100%',
+ '--popover-foreground': '240 10% 3.9%',
+ '--primary': '240 5.9% 10%',
+ '--primary-foreground': '0 0% 98%',
+ '--secondary': '240 4.8% 95.9%',
+ '--secondary-foreground': '240 5.9% 10%',
+ '--muted': '240 4.8% 95.9%',
+ '--muted-foreground': '240 3.8% 46.1%',
+ '--accent': '240 4.8% 95.9%',
+ '--accent-foreground': '240 5.9% 10%',
+ '--destructive': '0 84.2% 60.2%',
+ '--destructive-foreground': '0 0% 98%',
+ '--border': '240 5.9% 90%',
+ '--input': '240 5.9% 90%',
+ '--ring': '240 5.9% 10%',
+ // 主要区域
+ '--g-main-area-bg': 'hsl(0 0% 95%)',
+ // 头部
+ '--g-header-bg': 'hsl(var(--background))',
+ '--g-header-color': 'hsl(var(--foreground))',
+ '--g-header-menu-color': 'hsl(var(--accent-foreground))',
+ '--g-header-menu-hover-bg': 'hsl(var(--accent))',
+ '--g-header-menu-hover-color': 'hsl(var(--accent-foreground))',
+ '--g-header-menu-active-bg': 'hsl(var(--primary))',
+ '--g-header-menu-active-color': 'hsl(var(--primary-foreground))',
+ // 主导航
+ '--g-main-sidebar-bg': 'hsl(var(--background))',
+ '--g-main-sidebar-menu-color': 'hsl(var(--accent-foreground))',
+ '--g-main-sidebar-menu-hover-bg': 'hsl(var(--accent))',
+ '--g-main-sidebar-menu-hover-color': 'hsl(var(--accent-foreground))',
+ '--g-main-sidebar-menu-active-bg': 'hsl(var(--primary))',
+ '--g-main-sidebar-menu-active-color': 'hsl(var(--primary-foreground))',
+ // 次导航
+ '--g-sub-sidebar-bg': 'hsl(var(--background))',
+ '--g-sub-sidebar-menu-color': 'hsl(var(--accent-foreground))',
+ '--g-sub-sidebar-menu-hover-bg': 'hsl(var(--accent))',
+ '--g-sub-sidebar-menu-hover-color': 'hsl(var(--accent-foreground))',
+ '--g-sub-sidebar-menu-active-bg': 'hsl(var(--primary))',
+ '--g-sub-sidebar-menu-active-color': 'hsl(var(--primary-foreground))',
+ // 标签栏
+ '--g-tabbar-bg': 'var(--g-main-area-bg)',
+ '--g-tabbar-dividers-bg': 'hsl(var(--accent-foreground) / 50%)',
+ '--g-tabbar-tab-color': 'hsl(var(--accent-foreground) / 50%)',
+ '--g-tabbar-tab-hover-bg': 'hsl(var(--border))',
+ '--g-tabbar-tab-hover-color': 'hsl(var(--accent-foreground) / 50%)',
+ '--g-tabbar-tab-active-bg': 'hsl(var(--background))',
+ '--g-tabbar-tab-active-color': 'hsl(var(--foreground))',
+ // 工具栏
+ '--g-toolbar-bg': 'hsl(var(--background))',
+}
+
+export const darkTheme = {
+ 'color-scheme': 'dark',
+ // shadcn
+ '--background': '240 10% 3.9%',
+ '--foreground': '0 0% 98%',
+ '--card': '240 10% 3.9%',
+ '--card-foreground': '0 0% 98%',
+ '--popover': '240 10% 3.9%',
+ '--popover-foreground': '0 0% 98%',
+ '--primary': '0 0% 98%',
+ '--primary-foreground': '240 5.9% 10%',
+ '--secondary': '240 3.7% 15.9%',
+ '--secondary-foreground': '0 0% 98%',
+ '--muted': '240 3.7% 15.9%',
+ '--muted-foreground': '240 5% 64.9%',
+ '--accent': '240 3.7% 15.9%',
+ '--accent-foreground': '0 0% 98%',
+ '--destructive': '0 62.8% 30.6%',
+ '--destructive-foreground': '0 0% 98%',
+ '--border': '240 3.7% 15.9%',
+ '--input': '240 3.7% 15.9%',
+ '--ring': '240 4.9% 83.9%',
+ // 主要区域
+ '--g-main-area-bg': 'hsl(var(--background))',
+ // 头部
+ '--g-header-bg': 'hsl(var(--background))',
+ '--g-header-color': 'hsl(var(--foreground))',
+ '--g-header-menu-color': 'hsl(var(--muted-foreground))',
+ '--g-header-menu-hover-bg': 'hsl(var(--muted))',
+ '--g-header-menu-hover-color': 'hsl(var(--muted-foreground))',
+ '--g-header-menu-active-bg': 'hsl(var(--accent))',
+ '--g-header-menu-active-color': 'hsl(var(--accent-foreground))',
+ // 主导航
+ '--g-main-sidebar-bg': 'hsl(var(--background))',
+ '--g-main-sidebar-menu-color': 'hsl(var(--muted-foreground))',
+ '--g-main-sidebar-menu-hover-bg': 'hsl(var(--muted))',
+ '--g-main-sidebar-menu-hover-color': 'hsl(var(--muted-foreground))',
+ '--g-main-sidebar-menu-active-bg': 'hsl(var(--accent))',
+ '--g-main-sidebar-menu-active-color': 'hsl(var(--accent-foreground))',
+ // 次导航
+ '--g-sub-sidebar-bg': 'hsl(var(--background))',
+ '--g-sub-sidebar-menu-color': 'hsl(var(--muted-foreground))',
+ '--g-sub-sidebar-menu-hover-bg': 'hsl(var(--muted))',
+ '--g-sub-sidebar-menu-hover-color': 'hsl(var(--muted-foreground))',
+ '--g-sub-sidebar-menu-active-bg': 'hsl(var(--accent))',
+ '--g-sub-sidebar-menu-active-color': 'hsl(var(--accent-foreground))',
+ // 标签栏
+ '--g-tabbar-bg': 'var(--g-main-area-bg)',
+ '--g-tabbar-dividers-bg': 'hsl(var(--accent-foreground) / 50%)',
+ '--g-tabbar-tab-color': 'hsl(var(--accent-foreground) / 50%)',
+ '--g-tabbar-tab-hover-bg': 'hsl(var(--accent) / 50%)',
+ '--g-tabbar-tab-hover-color': 'hsl(var(--accent-foreground) / 50%)',
+ '--g-tabbar-tab-active-bg': 'hsl(var(--secondary))',
+ '--g-tabbar-tab-active-color': 'hsl(var(--foreground))',
+ // 工具栏
+ '--g-toolbar-bg': 'hsl(var(--background))',
+}
diff --git a/admin-web/tsconfig.app.json b/admin-web/tsconfig.app.json
new file mode 100755
index 0000000..39d61c1
--- /dev/null
+++ b/admin-web/tsconfig.app.json
@@ -0,0 +1,32 @@
+{
+ "extends": "@vue/tsconfig/tsconfig.dom.json",
+ "compilerOptions": {
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
+ "lib": ["ESNext", "DOM", "DOM.Iterable"],
+ "baseUrl": ".",
+ "paths": {
+ "@/*": ["./src/*"],
+ "#/*": ["./src/types/*"]
+ },
+ "resolveJsonModule": true,
+ "types": [
+ "vite-plugin-pages/client",
+ "vite-plugin-vue-meta-layouts/client",
+ "vite-plugin-app-loading/client",
+ "element-plus/global"
+ ],
+ "allowJs": false,
+ "strict": true,
+ "noFallthroughCasesInSwitch": true,
+ "noUncheckedIndexedAccess": false,
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "sourceMap": true,
+ "esModuleInterop": true
+ },
+ "include": [
+ "src/**/*.ts",
+ "src/**/*.tsx",
+ "src/**/*.vue"
+ ]
+}
diff --git a/admin-web/tsconfig.json b/admin-web/tsconfig.json
new file mode 100644
index 0000000..fd5f2ed
--- /dev/null
+++ b/admin-web/tsconfig.json
@@ -0,0 +1,14 @@
+{
+ // 此处配置是为了满足 shadcn-vue CLI 的配置要求
+ "compilerOptions": {
+ "baseUrl": ".",
+ "paths": {
+ "@/*": ["./src/*"]
+ }
+ },
+ "references": [
+ { "path": "./tsconfig.app.json" },
+ { "path": "./tsconfig.node.json" }
+ ],
+ "files": []
+}
diff --git a/admin-web/tsconfig.node.json b/admin-web/tsconfig.node.json
new file mode 100755
index 0000000..05d8a1e
--- /dev/null
+++ b/admin-web/tsconfig.node.json
@@ -0,0 +1,24 @@
+{
+ "compilerOptions": {
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
+ "target": "ES2022",
+ "lib": ["ES2023"],
+ "moduleDetection": "force",
+ "module": "ESNext",
+ "moduleResolution": "Bundler",
+ "allowImportingTsExtensions": true,
+ "strict": true,
+ "noFallthroughCasesInSwitch": true,
+ "noUncheckedSideEffectImports": true,
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "noEmit": true,
+ "isolatedModules": true,
+ "skipLibCheck": true
+ },
+ "include": [
+ "package.json",
+ "vite.config.ts",
+ "vite/**/*.ts"
+ ]
+}
diff --git a/admin-web/uno.config.ts b/admin-web/uno.config.ts
new file mode 100644
index 0000000..15f69fc
--- /dev/null
+++ b/admin-web/uno.config.ts
@@ -0,0 +1,139 @@
+import type { Theme } from 'unocss/preset-uno'
+import { entriesToCss } from '@unocss/core'
+import presetLegacyCompat from '@unocss/preset-legacy-compat'
+import {
+ defineConfig,
+ presetAttributify,
+ presetIcons,
+ presetTypography,
+ presetWind3,
+ transformerCompileClass,
+ transformerDirectives,
+ transformerVariantGroup,
+} from 'unocss'
+import { presetAnimations } from 'unocss-preset-animations'
+import { darkTheme, lightTheme } from './themes'
+
+export default defineConfig({
+ content: {
+ pipeline: {
+ include: [
+ /\.(vue|svelte|[jt]sx|mdx?|astro|elm|php|phtml|html)($|\?)/,
+ 'src/**/*.{js,ts}',
+ ],
+ },
+ },
+ shortcuts: [
+ [/^flex-?(col)?-(start|end|center|baseline|stretch)-?(start|end|center|between|around|evenly|left|right)?$/, ([, col, items, justify]) => {
+ const cls = ['flex']
+ if (col === 'col') {
+ cls.push('flex-col')
+ }
+ if (items === 'center' && !justify) {
+ cls.push('items-center')
+ cls.push('justify-center')
+ }
+ else {
+ cls.push(`items-${items}`)
+ if (justify) {
+ cls.push(`justify-${justify}`)
+ }
+ }
+ return cls.join(' ')
+ }],
+ ],
+ presets: [
+ presetWind3(),
+ presetAnimations(),
+ presetAttributify(),
+ presetIcons({
+ extraProperties: {
+ 'display': 'inline-block',
+ 'vertical-align': 'middle',
+ },
+ }),
+ presetTypography(),
+ presetLegacyCompat({
+ legacyColorSpace: true,
+ }),
+ {
+ name: 'unocss-preset-shadcn',
+ preflights: [
+ {
+ getCSS: () => {
+ const returnCss: any = []
+ // 明亮主题
+ const lightCss = entriesToCss(Object.entries(lightTheme))
+ returnCss.push(`:root{${lightCss}}`)
+ // 暗黑主题
+ const darkCss = entriesToCss(Object.entries(darkTheme))
+ returnCss.push(`html.dark{${darkCss}}`)
+ return `
+${returnCss.join('\n')}
+
+* {
+ border-color: hsl(var(--border));
+}
+
+body {
+ color: hsl(var(--foreground));
+ background: hsl(var(--background));
+}
+`
+ },
+ },
+ ],
+ theme: {
+ colors: {
+ border: 'hsl(var(--border))',
+ input: 'hsl(var(--input))',
+ ring: 'hsl(var(--ring))',
+ background: 'hsl(var(--background))',
+ foreground: 'hsl(var(--foreground))',
+ primary: {
+ DEFAULT: 'hsl(var(--primary))',
+ foreground: 'hsl(var(--primary-foreground))',
+ },
+ secondary: {
+ DEFAULT: 'hsl(var(--secondary))',
+ foreground: 'hsl(var(--secondary-foreground))',
+ },
+ destructive: {
+ DEFAULT: 'hsl(var(--destructive))',
+ foreground: 'hsl(var(--destructive-foreground))',
+ },
+ muted: {
+ DEFAULT: 'hsl(var(--muted))',
+ foreground: 'hsl(var(--muted-foreground))',
+ },
+ accent: {
+ DEFAULT: 'hsl(var(--accent))',
+ foreground: 'hsl(var(--accent-foreground))',
+ },
+ popover: {
+ DEFAULT: 'hsl(var(--popover))',
+ foreground: 'hsl(var(--popover-foreground))',
+ },
+ card: {
+ DEFAULT: 'hsl(var(--card))',
+ foreground: 'hsl(var(--card-foreground))',
+ },
+ },
+ borderRadius: {
+ xl: 'calc(var(--radius) + 4px)',
+ lg: 'var(--radius)',
+ md: 'calc(var(--radius) - 2px)',
+ sm: 'calc(var(--radius) - 4px)',
+ },
+ },
+ },
+ ],
+ transformers: [
+ transformerDirectives(),
+ transformerVariantGroup(),
+ transformerCompileClass(),
+ ],
+ configDeps: [
+ 'themes/index.ts',
+ ],
+})
diff --git a/admin-web/vite.config.ts b/admin-web/vite.config.ts
new file mode 100755
index 0000000..2d51359
--- /dev/null
+++ b/admin-web/vite.config.ts
@@ -0,0 +1,63 @@
+import fs from 'node:fs'
+import path from 'node:path'
+import process from 'node:process'
+import dayjs from 'dayjs'
+import { defineConfig, loadEnv } from 'vite'
+import pkg from './package.json'
+import createVitePlugins from './vite/plugins'
+
+// https://vitejs.dev/config/
+export default defineConfig(({ mode, command }) => {
+ const env = loadEnv(mode, process.cwd())
+ // 全局 scss 资源
+ const scssResources: string[] = []
+ 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 {
+ // 开发服务器选项 https://cn.vitejs.dev/config/server-options
+ server: {
+ open: true,
+ host: 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/build-options
+ build: {
+ outDir: mode === 'production' ? 'dist' : `dist-${mode}`,
+ sourcemap: env.VITE_BUILD_SOURCEMAP === 'true',
+ },
+ define: {
+ __SYSTEM_INFO__: JSON.stringify({
+ pkg: {
+ version: pkg.version,
+ dependencies: pkg.dependencies,
+ devDependencies: pkg.devDependencies,
+ },
+ lastBuildTime: dayjs().format('YYYY-MM-DD HH:mm:ss'),
+ }),
+ },
+ plugins: createVitePlugins(mode, command === 'build'),
+ resolve: {
+ alias: {
+ '@': path.resolve(__dirname, 'src'),
+ '#': path.resolve(__dirname, 'src/types'),
+ },
+ },
+ css: {
+ preprocessorOptions: {
+ scss: {
+ additionalData: scssResources.join(''),
+ },
+ },
+ },
+ }
+})
diff --git a/admin-web/vite/plugins.ts b/admin-web/vite/plugins.ts
new file mode 100644
index 0000000..270c687
--- /dev/null
+++ b/admin-web/vite/plugins.ts
@@ -0,0 +1,196 @@
+import type { PluginOption } from 'vite'
+import path from 'node:path'
+import process from 'node:process'
+import vueLegacy from '@vitejs/plugin-legacy'
+import vue from '@vitejs/plugin-vue'
+import vueJsx from '@vitejs/plugin-vue-jsx'
+import boxen from 'boxen'
+import picocolors from 'picocolors'
+import Unocss from 'unocss/vite'
+import autoImport from 'unplugin-auto-import/vite'
+import TurboConsole from 'unplugin-turbo-console/vite'
+import components from 'unplugin-vue-components/vite'
+import { loadEnv } from 'vite'
+import AppLoading from 'vite-plugin-app-loading'
+import Archiver from 'vite-plugin-archiver'
+import banner from 'vite-plugin-banner'
+import { compression } from 'vite-plugin-compression2'
+import { envParse, parseLoadedEnv } from 'vite-plugin-env-parse'
+import { vitePluginFakeServer } from 'vite-plugin-fake-server'
+import Pages from 'vite-plugin-pages'
+import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
+import VueDevTools from 'vite-plugin-vue-devtools'
+import Layouts from 'vite-plugin-vue-meta-layouts'
+
+export default function createVitePlugins(mode: string, isBuild = false) {
+ const viteEnv = parseLoadedEnv(loadEnv(mode, process.cwd()))
+ const vitePlugins: (PluginOption | PluginOption[])[] = [
+ vue(),
+ vueJsx(),
+ vueLegacy({
+ renderLegacyChunks: false,
+ modernPolyfills: [
+ 'es.array.at',
+ 'es.array.find-last',
+ 'es.object.has-own',
+ ],
+ }),
+
+ // https://github.com/vuejs/devtools
+ viteEnv.VITE_OPEN_DEVTOOLS && VueDevTools({
+ launchEditor: viteEnv.VITE_VUE_DEVTOOLS_LAUNCH_EDITOR ?? 'vscode',
+ }),
+
+ envParse({
+ dtsPath: 'src/types/env.d.ts',
+ }),
+
+ // https://github.com/unplugin/unplugin-auto-import
+ autoImport({
+ imports: [
+ 'vue',
+ 'vue-router',
+ 'pinia',
+ ],
+ dts: './src/types/auto-imports.d.ts',
+ dirs: [
+ './src/store/modules',
+ './src/utils/composables',
+ ],
+ }),
+
+ // https://github.com/unplugin/unplugin-vue-components
+ components({
+ globs: [
+ 'src/ui/components/*/index.vue',
+ 'src/components/*/index.vue',
+ ],
+ dts: './src/types/components.d.ts',
+ }),
+
+ Unocss(),
+
+ // https://github.com/vbenjs/vite-plugin-svg-icons
+ createSvgIconsPlugin({
+ iconDirs: [path.resolve(process.cwd(), 'src/assets/icons/')],
+ symbolId: 'icon-[dir]-[name]',
+ svgoOptions: isBuild,
+ }),
+
+ // https://github.com/condorheroblog/vite-plugin-fake-server
+ vitePluginFakeServer({
+ logger: !isBuild,
+ include: 'src/mock',
+ infixName: false,
+ enableProd: isBuild && viteEnv.VITE_BUILD_MOCK,
+ }),
+
+ // https://github.com/dishait/vite-plugin-vue-meta-layouts
+ Layouts({
+ defaultLayout: 'index',
+ }),
+
+ // https://github.com/hannoeru/vite-plugin-pages
+ Pages({
+ dirs: 'src/views',
+ exclude: [
+ '**/components/**/*.vue',
+ ],
+ }),
+
+ // https://github.com/nonzzz/vite-plugin-compression
+ viteEnv.VITE_BUILD_COMPRESS && compression({
+ exclude: [/\.(br)$/, /\.(gz)$/],
+ algorithms: viteEnv.VITE_BUILD_COMPRESS.split(',').map((item: string) => ({
+ gzip: 'gzip',
+ brotli: 'brotliCompress',
+ }[item])),
+ }),
+
+ viteEnv.VITE_BUILD_ARCHIVE && Archiver({
+ archiveType: viteEnv.VITE_BUILD_ARCHIVE,
+ }),
+
+ AppLoading('loading.html'),
+
+ // https://github.com/unplugin/unplugin-turbo-console
+ TurboConsole(),
+
+ // https://github.com/chengpeiquan/vite-plugin-banner
+ banner(`
+/**
+ * 由 Fantastic-admin 提供技术支持
+ * Powered by Fantastic-admin
+ * https://fantastic-admin.hurui.me
+ */
+ `),
+
+ {
+ name: 'vite-plugin-debug-plugin',
+ enforce: 'pre',
+ transform: (code, id) => {
+ if (/src\/main.ts$/.test(id)) {
+ if (viteEnv.VITE_APP_DEBUG_TOOL === 'eruda') {
+ code = `
+${code}
+import eruda from 'eruda'
+eruda.init()
+ `
+ }
+ else if (viteEnv.VITE_APP_DEBUG_TOOL === 'vconsole') {
+ code = `
+${code}
+import VConsole from 'vconsole'
+new VConsole()
+ `
+ }
+ return {
+ code,
+ map: null,
+ }
+ }
+ },
+ },
+
+ {
+ name: 'vite-plugin-disable-devtool',
+ enforce: 'pre',
+ transform: (code, id) => {
+ if (/src\/main.ts$/.test(id)) {
+ if (viteEnv.VITE_APP_DISABLE_DEVTOOL) {
+ code = `
+${code}
+import DisableDevtool from 'disable-devtool'
+DisableDevtool()
+ `
+ }
+ return {
+ code,
+ map: null,
+ }
+ }
+ },
+ },
+
+ {
+ name: 'vite-plugin-terminal-info',
+ apply: 'serve',
+ async buildStart() {
+ const { bold, green, cyan, bgGreen, underline } = picocolors
+ // eslint-disable-next-line no-console
+ console.log(
+ boxen(
+ `${bold(green(`由 ${bgGreen('Fantastic-admin')} 驱动`))}\n\n${underline('https://fantastic-admin.hurui.me')}\n\n当前使用:${cyan('基础版')}`,
+ {
+ padding: 1,
+ margin: 1,
+ borderStyle: 'double',
+ textAlignment: 'center',
+ },
+ ),
+ )
+ },
+ },
+ ]
+ return vitePlugins
+}