From 6feb246fde114e789d613ae02ee3b0e4d3bb7f67 Mon Sep 17 00:00:00 2001 From: wangziqi Date: Mon, 15 Jun 2026 15:24:07 +0800 Subject: [PATCH] =?UTF-8?q?init:=20=E5=88=9D=E5=A7=8B=E5=8C=96=20VitePress?= =?UTF-8?q?=20=E5=AE=98=E7=BD=91=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 24 + README.md | 89 + docs/.vitepress/config.ts | 53 + docs/.vitepress/theme/Layout.vue | 47 + .../theme/components/BookMockup.vue | 45 + .../theme/components/CountUpNumber.vue | 68 + .../theme/components/EnrollModal.vue | 123 + .../theme/components/FloatingService.vue | 178 + docs/.vitepress/theme/components/Footer.vue | 108 + docs/.vitepress/theme/components/Header.vue | 119 + .../theme/components/PhoneMockup.vue | 41 + docs/.vitepress/theme/components/Skeleton.vue | 11 + docs/.vitepress/theme/index.ts | 12 + docs/.vitepress/theme/pages/Books.vue | 116 + docs/.vitepress/theme/pages/Contact.vue | 163 + docs/.vitepress/theme/pages/DataCenter.vue | 258 ++ docs/.vitepress/theme/pages/Home.vue | 381 +++ .../theme/pages/KnowledgeDetail.vue | 224 ++ docs/.vitepress/theme/pages/KnowledgeList.vue | 194 ++ docs/.vitepress/theme/pages/NotFound.vue | 17 + docs/.vitepress/theme/pages/OnlineSchool.vue | 173 + docs/.vitepress/theme/pages/PrivacyPolicy.vue | 82 + docs/.vitepress/theme/pages/QuestionBank.vue | 163 + .../.vitepress/theme/pages/TermsOfService.vue | 89 + docs/.vitepress/theme/style.css | 238 ++ docs/.vitepress/utils/knowledge.ts | 58 + docs/.vitepress/utils/siteConfig.ts | 101 + docs/404.md | 9 + docs/books.md | 20 + docs/contact.md | 20 + docs/data-center.md | 20 + docs/index.md | 10 + docs/knowledge/index.json | 26 + docs/knowledge/index.md | 20 + docs/knowledge/sample-article.md | 39 + docs/knowledge/study-time-plan.md | 80 + docs/online-school.md | 20 + docs/privacy-policy.md | 9 + docs/public/logo.png | Bin 0 -> 38785 bytes docs/question-bank.md | 20 + docs/terms-of-service.md | 9 + package-lock.json | 3003 +++++++++++++++++ package.json | 32 + postcss.config.js | 6 + tailwind.config.js | 76 + 45 files changed, 6594 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 docs/.vitepress/config.ts create mode 100644 docs/.vitepress/theme/Layout.vue create mode 100644 docs/.vitepress/theme/components/BookMockup.vue create mode 100644 docs/.vitepress/theme/components/CountUpNumber.vue create mode 100644 docs/.vitepress/theme/components/EnrollModal.vue create mode 100644 docs/.vitepress/theme/components/FloatingService.vue create mode 100644 docs/.vitepress/theme/components/Footer.vue create mode 100644 docs/.vitepress/theme/components/Header.vue create mode 100644 docs/.vitepress/theme/components/PhoneMockup.vue create mode 100644 docs/.vitepress/theme/components/Skeleton.vue create mode 100644 docs/.vitepress/theme/index.ts create mode 100644 docs/.vitepress/theme/pages/Books.vue create mode 100644 docs/.vitepress/theme/pages/Contact.vue create mode 100644 docs/.vitepress/theme/pages/DataCenter.vue create mode 100644 docs/.vitepress/theme/pages/Home.vue create mode 100644 docs/.vitepress/theme/pages/KnowledgeDetail.vue create mode 100644 docs/.vitepress/theme/pages/KnowledgeList.vue create mode 100644 docs/.vitepress/theme/pages/NotFound.vue create mode 100644 docs/.vitepress/theme/pages/OnlineSchool.vue create mode 100644 docs/.vitepress/theme/pages/PrivacyPolicy.vue create mode 100644 docs/.vitepress/theme/pages/QuestionBank.vue create mode 100644 docs/.vitepress/theme/pages/TermsOfService.vue create mode 100644 docs/.vitepress/theme/style.css create mode 100644 docs/.vitepress/utils/knowledge.ts create mode 100644 docs/.vitepress/utils/siteConfig.ts create mode 100644 docs/404.md create mode 100644 docs/books.md create mode 100644 docs/contact.md create mode 100644 docs/data-center.md create mode 100644 docs/index.md create mode 100644 docs/knowledge/index.json create mode 100644 docs/knowledge/index.md create mode 100644 docs/knowledge/sample-article.md create mode 100644 docs/knowledge/study-time-plan.md create mode 100644 docs/online-school.md create mode 100644 docs/privacy-policy.md create mode 100644 docs/public/logo.png create mode 100644 docs/question-bank.md create mode 100644 docs/terms-of-service.md create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 postcss.config.js create mode 100644 tailwind.config.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5ba0550 --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..dd1aaf4 --- /dev/null +++ b/README.md @@ -0,0 +1,89 @@ +# 恭学教育官网 + +基于 VitePress 构建的恭学教育官方网站。 + +## 如何添加知识库文章 + +项目中的知识库文章位于 `docs/knowledge/` 目录,采用**静态 Markdown + JSON 索引**的方式管理。 + +### 1. 创建文章文件 + +在 `docs/knowledge/` 目录下新建一个 `.md` 文件,文件名即为文章 ID,例如 `my-new-article.md`。 + +文件内容参考如下: + +```markdown +--- +id: my-new-article +title: 文章标题 +summary: 文章摘要,会显示在知识库列表卡片上 +category: exam_policy +tags: + - 天津专升本 + - 考试政策 +author: 恭学教育 +publishedAt: 2026-06-15 +coverImage: https://example.com/cover.png +viewCount: 0 +isTop: false +--- + + + + + +这里写正文内容,支持 HTML 和 Markdown。 + + +``` + +`category` 常见取值: + +- `exam_policy`:考试政策 +- `school_intro`:院校介绍 +- `study_method`:学习方法 +- `exam_guide`:备考攻略 + +### 2. 更新列表索引 + +将文章元数据追加到 `docs/knowledge/index.json` 文件中: + +```json +[ + { + "id": "my-new-article", + "title": "文章标题", + "summary": "文章摘要,会显示在知识库列表卡片上", + "category": "exam_policy", + "tags": ["天津专升本", "考试政策"], + "coverImage": "https://example.com/cover.png", + "author": "恭学教育", + "publishedAt": "2026-06-15", + "viewCount": 0, + "isTop": false + } +] +``` + +### 文件作用说明 + +| 文件 | 作用 | +|------|------| +| `docs/knowledge/index.md` | 知识库列表页 | +| `docs/knowledge/index.json` | 知识库列表页读取的文章数据源 | +| `docs/knowledge/*.md` | 各篇文章详情页 | + +## 本地开发 + +```bash +npm install +npm run dev +``` + +## 构建 + +```bash +npm run build +``` diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts new file mode 100644 index 0000000..61d4ab6 --- /dev/null +++ b/docs/.vitepress/config.ts @@ -0,0 +1,53 @@ +import { defineConfig } from 'vitepress' + +const defaultOgImage = 'https://fenxiang-1304851894.cos.ap-nanjing.myqcloud.com/%E5%B0%81%E9%9D%A2.png' + +export default defineConfig({ + cleanUrls: 'with-subfolders', + title: '恭学教育集团', + description: '恭学教育集团是天津专升本培训领军品牌,专注天津专升本7年,已服务21万+学员。提供专业刷题系统、在线网校、权威教材和一对一升学规划,真题覆盖率100%,助你轻松升本成功!', + lang: 'zh-CN', + head: [ + ['link', { rel: 'icon', href: '/logo.png' }], + ['meta', { name: 'keywords', content: '天津专升本,专升本培训,恭学教育,天津专升本刷题,专升本网校,天津专升本教材,专升本辅导,天津专升本报名,专升本真题,天津专升本课程' }], + ['meta', { property: 'og:image', content: defaultOgImage }], + ], + themeConfig: { + logo: '/logo.png', + nav: [], + outline: false, + socialLinks: [], + }, + vite: { + resolve: { + alias: { + '@': '/docs/.vitepress', + }, + }, + plugins: [ + { + name: 'knowledge-index-redirect', + configureServer(server) { + server.middlewares.use((req, res, next) => { + if (req.url === '/knowledge') { + res.statusCode = 302 + res.setHeader('Location', '/knowledge/') + res.end() + return + } + next() + }) + }, + }, + ], + }, + transformHead({ pageData }) { + const keywords = pageData.frontmatter.keywords + if (keywords && Array.isArray(keywords)) { + return [ + ['meta', { name: 'keywords', content: keywords.join(',') }], + ] + } + return [] + }, +}) diff --git a/docs/.vitepress/theme/Layout.vue b/docs/.vitepress/theme/Layout.vue new file mode 100644 index 0000000..8f42402 --- /dev/null +++ b/docs/.vitepress/theme/Layout.vue @@ -0,0 +1,47 @@ + + + diff --git a/docs/.vitepress/theme/components/BookMockup.vue b/docs/.vitepress/theme/components/BookMockup.vue new file mode 100644 index 0000000..2ff81c7 --- /dev/null +++ b/docs/.vitepress/theme/components/BookMockup.vue @@ -0,0 +1,45 @@ + + + diff --git a/docs/.vitepress/theme/components/CountUpNumber.vue b/docs/.vitepress/theme/components/CountUpNumber.vue new file mode 100644 index 0000000..14eb66c --- /dev/null +++ b/docs/.vitepress/theme/components/CountUpNumber.vue @@ -0,0 +1,68 @@ + + + diff --git a/docs/.vitepress/theme/components/EnrollModal.vue b/docs/.vitepress/theme/components/EnrollModal.vue new file mode 100644 index 0000000..9f13364 --- /dev/null +++ b/docs/.vitepress/theme/components/EnrollModal.vue @@ -0,0 +1,123 @@ + + + diff --git a/docs/.vitepress/theme/components/FloatingService.vue b/docs/.vitepress/theme/components/FloatingService.vue new file mode 100644 index 0000000..2f78b25 --- /dev/null +++ b/docs/.vitepress/theme/components/FloatingService.vue @@ -0,0 +1,178 @@ + + + diff --git a/docs/.vitepress/theme/components/Footer.vue b/docs/.vitepress/theme/components/Footer.vue new file mode 100644 index 0000000..fd6512f --- /dev/null +++ b/docs/.vitepress/theme/components/Footer.vue @@ -0,0 +1,108 @@ + + + diff --git a/docs/.vitepress/theme/components/Header.vue b/docs/.vitepress/theme/components/Header.vue new file mode 100644 index 0000000..e271199 --- /dev/null +++ b/docs/.vitepress/theme/components/Header.vue @@ -0,0 +1,119 @@ + + + diff --git a/docs/.vitepress/theme/components/PhoneMockup.vue b/docs/.vitepress/theme/components/PhoneMockup.vue new file mode 100644 index 0000000..3f6c33c --- /dev/null +++ b/docs/.vitepress/theme/components/PhoneMockup.vue @@ -0,0 +1,41 @@ + + + diff --git a/docs/.vitepress/theme/components/Skeleton.vue b/docs/.vitepress/theme/components/Skeleton.vue new file mode 100644 index 0000000..7fcdb26 --- /dev/null +++ b/docs/.vitepress/theme/components/Skeleton.vue @@ -0,0 +1,11 @@ + + + diff --git a/docs/.vitepress/theme/index.ts b/docs/.vitepress/theme/index.ts new file mode 100644 index 0000000..94bb572 --- /dev/null +++ b/docs/.vitepress/theme/index.ts @@ -0,0 +1,12 @@ +import { h } from 'vue' +import DefaultTheme from 'vitepress/theme' +import Layout from './Layout.vue' +import './style.css' + +export default { + ...DefaultTheme, + Layout: () => h(Layout), + enhanceApp({ app, router, siteData }) { + // 全局组件或插件可在此注册 + } +} diff --git a/docs/.vitepress/theme/pages/Books.vue b/docs/.vitepress/theme/pages/Books.vue new file mode 100644 index 0000000..2ccde55 --- /dev/null +++ b/docs/.vitepress/theme/pages/Books.vue @@ -0,0 +1,116 @@ + + + diff --git a/docs/.vitepress/theme/pages/Contact.vue b/docs/.vitepress/theme/pages/Contact.vue new file mode 100644 index 0000000..39ecee9 --- /dev/null +++ b/docs/.vitepress/theme/pages/Contact.vue @@ -0,0 +1,163 @@ + + + diff --git a/docs/.vitepress/theme/pages/DataCenter.vue b/docs/.vitepress/theme/pages/DataCenter.vue new file mode 100644 index 0000000..e3f0e0d --- /dev/null +++ b/docs/.vitepress/theme/pages/DataCenter.vue @@ -0,0 +1,258 @@ + + + + + diff --git a/docs/.vitepress/theme/pages/Home.vue b/docs/.vitepress/theme/pages/Home.vue new file mode 100644 index 0000000..3a1333c --- /dev/null +++ b/docs/.vitepress/theme/pages/Home.vue @@ -0,0 +1,381 @@ + + + diff --git a/docs/.vitepress/theme/pages/KnowledgeDetail.vue b/docs/.vitepress/theme/pages/KnowledgeDetail.vue new file mode 100644 index 0000000..047e358 --- /dev/null +++ b/docs/.vitepress/theme/pages/KnowledgeDetail.vue @@ -0,0 +1,224 @@ + + + + + diff --git a/docs/.vitepress/theme/pages/KnowledgeList.vue b/docs/.vitepress/theme/pages/KnowledgeList.vue new file mode 100644 index 0000000..7e063b8 --- /dev/null +++ b/docs/.vitepress/theme/pages/KnowledgeList.vue @@ -0,0 +1,194 @@ + + + diff --git a/docs/.vitepress/theme/pages/NotFound.vue b/docs/.vitepress/theme/pages/NotFound.vue new file mode 100644 index 0000000..1dfeef2 --- /dev/null +++ b/docs/.vitepress/theme/pages/NotFound.vue @@ -0,0 +1,17 @@ + diff --git a/docs/.vitepress/theme/pages/OnlineSchool.vue b/docs/.vitepress/theme/pages/OnlineSchool.vue new file mode 100644 index 0000000..35eb029 --- /dev/null +++ b/docs/.vitepress/theme/pages/OnlineSchool.vue @@ -0,0 +1,173 @@ + + + diff --git a/docs/.vitepress/theme/pages/PrivacyPolicy.vue b/docs/.vitepress/theme/pages/PrivacyPolicy.vue new file mode 100644 index 0000000..30bbe15 --- /dev/null +++ b/docs/.vitepress/theme/pages/PrivacyPolicy.vue @@ -0,0 +1,82 @@ + + + diff --git a/docs/.vitepress/theme/pages/QuestionBank.vue b/docs/.vitepress/theme/pages/QuestionBank.vue new file mode 100644 index 0000000..54f46ff --- /dev/null +++ b/docs/.vitepress/theme/pages/QuestionBank.vue @@ -0,0 +1,163 @@ + + + diff --git a/docs/.vitepress/theme/pages/TermsOfService.vue b/docs/.vitepress/theme/pages/TermsOfService.vue new file mode 100644 index 0000000..40cde35 --- /dev/null +++ b/docs/.vitepress/theme/pages/TermsOfService.vue @@ -0,0 +1,89 @@ + + + diff --git a/docs/.vitepress/theme/style.css b/docs/.vitepress/theme/style.css new file mode 100644 index 0000000..df5907c --- /dev/null +++ b/docs/.vitepress/theme/style.css @@ -0,0 +1,238 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +/* ============ 基础样式 ============ */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; +} + +body { + font-family: "SF Pro Display", "SF Pro Text", "Inter", "Noto Sans SC", system-ui, sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + background-color: #ffffff; + color: #1D1D1F; + line-height: 1.5; +} + +/* ============ 移动端触控优化 ============ */ +button, a, [role="button"] { + touch-action: manipulation; + -webkit-tap-highlight-color: transparent; +} + +/* ============ 滚动条美化 ============ */ +::-webkit-scrollbar { + width: 8px; + height: 8px; +} + +::-webkit-scrollbar-track { + background: transparent; +} + +::-webkit-scrollbar-thumb { + background: #d1d1d6; + border-radius: 4px; +} + +::-webkit-scrollbar-thumb:hover { + background: #a1a1a6; +} + +/* 隐藏滚动条样式 */ +.no-scrollbar::-webkit-scrollbar { + display: none; +} + +.no-scrollbar { + -ms-overflow-style: none; + scrollbar-width: none; +} + +/* ============ 动画延迟工具类 ============ */ +.animation-delay-100 { + animation-delay: 0.1s; +} + +.animation-delay-200 { + animation-delay: 0.2s; +} + +.animation-delay-300 { + animation-delay: 0.3s; +} + +.animation-delay-500 { + animation-delay: 0.5s; +} + +/* ============ 毛玻璃效果 ============ */ +.glass { + background: rgba(255, 255, 255, 0.7); + backdrop-filter: blur(20px); + -webkit-backdrop-filter: blur(20px); +} + +.glass-dark { + background: rgba(0, 0, 0, 0.5); + backdrop-filter: blur(20px); + -webkit-backdrop-filter: blur(20px); +} + +/* ============ 渐变文字 ============ */ +.gradient-text { + background: linear-gradient(135deg, #0071E3 0%, #5E5CE6 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +/* ============ 卡片悬停效果 ============ */ +.card-hover { + transition: transform 0.3s ease, box-shadow 0.3s ease; +} + +.card-hover:hover { + transform: translateY(-4px); + box-shadow: 0 20px 40px -15px rgba(0, 0, 0, 0.1); +} + +/* ============ 按钮基础样式 ============ */ +.btn-primary { + @apply px-6 py-3 bg-apple-blue hover:bg-apple-blue-hover text-white rounded-full font-medium transition-all transform hover:scale-105 shadow-lg; +} + +.btn-secondary { + @apply px-6 py-3 bg-white/80 backdrop-blur-md text-apple-dark border border-gray-200 rounded-full font-medium hover:bg-white transition-all; +} + +.btn-dark { + @apply px-6 py-3 bg-apple-dark hover:bg-black text-white rounded-full font-medium transition-all transform hover:scale-105 shadow-lg; +} + +/* ============ 文本截断 ============ */ +.line-clamp-2 { + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; +} + +.line-clamp-3 { + display: -webkit-box; + -webkit-line-clamp: 3; + -webkit-box-orient: vertical; + overflow: hidden; +} + +/* ============ 骨架屏动画 ============ */ +.skeleton { + background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%); + background-size: 200% 100%; + animation: skeleton-loading 1.5s infinite; +} + +@keyframes skeleton-loading { + 0% { + background-position: 200% 0; + } + 100% { + background-position: -200% 0; + } +} + +/* ============ 表单样式 ============ */ +input:focus, +select:focus, +textarea:focus { + outline: none; + border-color: #0071E3; + box-shadow: 0 0 0 3px rgba(0, 113, 227, 0.1); +} + +/* ============ 富文本内容样式 ============ */ +.prose-apple { + max-width: none; +} + +.prose-apple h1 { + @apply text-3xl font-bold text-apple-dark mb-6; +} + +.prose-apple h2 { + @apply text-2xl font-bold text-apple-dark mb-4 mt-8; +} + +.prose-apple h3 { + @apply text-xl font-semibold text-apple-dark mb-3 mt-6; +} + +.prose-apple p { + @apply text-gray-600 leading-relaxed mb-4; +} + +.prose-apple ul, +.prose-apple ol { + @apply mb-4 pl-6; +} + +.prose-apple li { + @apply text-gray-600 mb-2; +} + +.prose-apple a { + @apply text-apple-blue hover:underline; +} + +.prose-apple img { + @apply rounded-xl my-6; +} + +.prose-apple blockquote { + @apply border-l-4 border-apple-blue pl-4 italic text-gray-500 my-6; +} + +/* ============ 页面过渡 ============ */ +.page-enter { + opacity: 0; + transform: translateY(10px); +} + +.page-enter-active { + opacity: 1; + transform: translateY(0); + transition: opacity 0.3s ease, transform 0.3s ease; +} + +.page-exit { + opacity: 1; +} + +.page-exit-active { + opacity: 0; + transition: opacity 0.2s ease; +} + +/* ============ VitePress 默认覆盖 ============ */ +.VPDoc { + padding: 0 !important; +} + +.VPDoc .container { + max-width: none !important; + margin: 0 !important; + padding: 0 !important; +} + +.VPDoc .content { + max-width: none !important; + padding: 0 !important; +} diff --git a/docs/.vitepress/utils/knowledge.ts b/docs/.vitepress/utils/knowledge.ts new file mode 100644 index 0000000..a4611af --- /dev/null +++ b/docs/.vitepress/utils/knowledge.ts @@ -0,0 +1,58 @@ +export type KnowledgeCategory = + | 'exam_policy' + | 'school_intro' + | 'major_guide' + | 'study_method' + | 'experience' + | 'policy' + | 'company' + | 'guide' + | 'announcement' + +export interface KnowledgeArticle { + id: string + title: string + summary: string + content: string + category: KnowledgeCategory + tags: string[] + coverImage?: string + author?: string + isTop?: boolean + publishedAt?: string + createdAt?: string + updatedAt?: string + viewCount: number +} + +export const categoryLabel: Record = { + exam_policy: '考试政策', + school_intro: '院校介绍', + major_guide: '专业指南', + study_method: '复习规划', + experience: '学长经验', + policy: '政策解读', + company: '集团新闻', + guide: '备考指南', + announcement: '公告通知', +} + +export const categories: { key: KnowledgeCategory | ''; label: string }[] = [ + { key: '', label: '全部' }, + { key: 'exam_policy', label: '考试政策' }, + { key: 'school_intro', label: '院校专业' }, + { key: 'major_guide', label: '专业指南' }, + { key: 'study_method', label: '复习规划' }, + { key: 'experience', label: '学长经验' }, +] + +export function formatDate(dateStr?: string) { + if (!dateStr) return '' + return new Date(dateStr).toLocaleDateString('zh-CN', { year: 'numeric', month: 'long', day: 'numeric' }) +} + +export function formatViewCount(count: number) { + if (count >= 10000) return `${(count / 10000).toFixed(1)}w+` + if (count >= 1000) return `${(count / 1000).toFixed(1)}k` + return String(count) +} diff --git a/docs/.vitepress/utils/siteConfig.ts b/docs/.vitepress/utils/siteConfig.ts new file mode 100644 index 0000000..265b2c0 --- /dev/null +++ b/docs/.vitepress/utils/siteConfig.ts @@ -0,0 +1,101 @@ +import { ref, onMounted, onUnmounted } from 'vue' + +export interface BookConfig { + id: string + title: string + price: string + oldPrice: string + imageSrc: string + tag?: string +} + +export interface SiteDisplayConfig { + heroVideoUrl: string + heroVideoCover: string + heroVideoTitle: string + heroVideoSubtitle: string + questionBankMockup: string + onlineSchoolMockup: string + questionBankHeroMockup: string + questionBankFocusMockup: string + onlineSchoolAppMockup: string + customerServiceQrcode: string + statsYears: number + statsStudents: string + statsCoverage: string + statsSchools: number + books: BookConfig[] +} + +const defaultConfig: SiteDisplayConfig = { + heroVideoUrl: 'https://fenxiang-1304851894.cos.ap-nanjing.myqcloud.com/%E6%81%AD%E5%AD%A6%E6%95%99%E8%82%B2%E5%93%81%E7%89%8C%E5%AE%A3%E4%BC%A0.mp4', + heroVideoCover: 'https://fenxiang-1304851894.cos.ap-nanjing.myqcloud.com/%E5%B0%81%E9%9D%A2.png', + heroVideoTitle: '了解恭学教育', + heroVideoSubtitle: '观看 2025 年度品牌宣传片', + + questionBankMockup: 'https://fenxiang-1304851894.cos.ap-nanjing.myqcloud.com/tikudemo-tuya.webp', + onlineSchoolMockup: 'https://fenxiang-1304851894.cos.ap-nanjing.myqcloud.com/wangkedemo-tuya.webp', + + questionBankHeroMockup: 'https://fenxiang-1304851894.cos.ap-nanjing.myqcloud.com/tikudemo-tuya.webp', + questionBankFocusMockup: 'https://fenxiang-1304851894.cos.ap-nanjing.myqcloud.com/tikudemo-tuya.webp', + + onlineSchoolAppMockup: 'https://fenxiang-1304851894.cos.ap-nanjing.myqcloud.com/wangkedemo-tuya.webp', + + customerServiceQrcode: 'https://duiwaifengxiang-1304851894.cos.ap-beijing.myqcloud.com/gwgongxue/code.jpg', + + statsYears: 7, + statsStudents: '21W+', + statsCoverage: '100%', + statsSchools: 12, + + books: [ + { id: '1', title: '天津专升本数学自学参考书', price: '128.00', oldPrice: '168.00', imageSrc: 'https://fenxiang-1304851894.cos.ap-nanjing.myqcloud.com/%E6%95%B0%E5%AD%A61-tuya.webp', tag: '畅销榜第一' }, + { id: '2', title: '天津专升本语文自学参考书', price: '128.00', oldPrice: '168.00', imageSrc: 'https://fenxiang-1304851894.cos.ap-nanjing.myqcloud.com/%E8%AF%AD%E6%96%871-tuya.webp', tag: '新书首发' }, + { id: '3', title: '天津专升本英语自学参考书', price: '128.00', oldPrice: '168.00', imageSrc: 'https://fenxiang-1304851894.cos.ap-nanjing.myqcloud.com/%E8%8B%B1%E8%AF%AD1-tuya.webp', tag: '热销' }, + { id: '4', title: '天津专升本计算机自学参考书', price: '128.00', oldPrice: '168.00', imageSrc: 'https://fenxiang-1304851894.cos.ap-nanjing.myqcloud.com/%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%80%92%E5%BD%B1-tuya.webp', tag: '必刷' }, + { id: '5', title: '三年模拟一年升本刷题系列套装', price: '128.00', oldPrice: '198.00', imageSrc: 'https://fenxiang-1304851894.cos.ap-nanjing.myqcloud.com/%E4%B8%89%E4%B8%80-tuya.webp', tag: '限时优惠' }, + ], +} + +function getFromCache(): Partial { + if (typeof localStorage === 'undefined') return {} + try { + const cached = localStorage.getItem('site_display_config') + if (cached) return JSON.parse(cached) + } catch {} + return {} +} + +function setCache(config: SiteDisplayConfig) { + if (typeof localStorage === 'undefined') return + try { + localStorage.setItem('site_display_config', JSON.stringify(config)) + } catch {} +} + +export function getSiteConfig(): SiteDisplayConfig { + const cached = getFromCache() + return { ...defaultConfig, ...cached } +} + +export function useSiteConfig() { + const config = ref(getSiteConfig()) + + onMounted(() => { + const cached = getFromCache() + config.value = { ...defaultConfig, ...cached } + + const handleStorage = (e: StorageEvent) => { + if (e.key === 'site_display_config') { + config.value = getSiteConfig() + } + } + + window.addEventListener('storage', handleStorage) + onUnmounted(() => { + window.removeEventListener('storage', handleStorage) + }) + }) + + return config +} diff --git a/docs/404.md b/docs/404.md new file mode 100644 index 0000000..e94146a --- /dev/null +++ b/docs/404.md @@ -0,0 +1,9 @@ +--- +title: 页面未找到 +--- + + + + diff --git a/docs/books.md b/docs/books.md new file mode 100644 index 0000000..ab951b8 --- /dev/null +++ b/docs/books.md @@ -0,0 +1,20 @@ +--- +title: 天津专升本教材 - 权威出版物 | 数学语文英语计算机 | 恭学教育出品 +description: 恭学教育官方出版天津专升本权威教材,涵盖数学、语文、英语、计算机四大科目。年年迭代更新,紧扣最新考试大纲,配套刷题系统,是专升本备考必备资料。 +keywords: + - 天津专升本教材 + - 专升本数学教材 + - 专升本语文教材 + - 专升本英语教材 + - 专升本计算机教材 + - 专升本参考书 + - 恭学教材 + - 专升本辅导书 + - 权威教材 +--- + + + + diff --git a/docs/contact.md b/docs/contact.md new file mode 100644 index 0000000..e7b86fc --- /dev/null +++ b/docs/contact.md @@ -0,0 +1,20 @@ +--- +title: 联系我们 - 恭学教育集团 | 天津专升本咨询 | 报名热线 | 校区地址 +description: 联系恭学教育集团获取天津专升本专业咨询服务。提供免费试听、一对一升学规划、课程咨询等服务。拨打报名热线或预约到校区实地考察,开启您的升本之路。 +keywords: + - 恭学教育联系方式 + - 天津专升本报名 + - 专升本咨询 + - 校区地址 + - 报名电话 + - 免费试听 + - 升学规划 + - 客服咨询 + - 教育咨询 +--- + + + + diff --git a/docs/data-center.md b/docs/data-center.md new file mode 100644 index 0000000..eb9b3fc --- /dev/null +++ b/docs/data-center.md @@ -0,0 +1,20 @@ +--- +title: 天津专升本大数据中心 - 录取数据 | 分数线 | 报考分析 | 统计报告 +description: 恭学教育大数据中心汇聚天津专升本历年录取数据、分数线统计、报考趋势分析等权威信息,通过数据可视化呈现,为您的升学决策提供科学依据。 +keywords: + - 天津专升本数据 + - 录取分数线 + - 报考数据 + - 数据分析 + - 统计报告 + - 升学趋势 + - 专业热度 + - 院校排名 + - 大数据分析 +--- + + + + diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..10506b8 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,10 @@ +--- +title: 恭学教育集团 - 天津专升本培训领军品牌 +layout: home +--- + + + + diff --git a/docs/knowledge/index.json b/docs/knowledge/index.json new file mode 100644 index 0000000..caa902c --- /dev/null +++ b/docs/knowledge/index.json @@ -0,0 +1,26 @@ +[ + { + "id": "sample-article", + "title": "2026年天津高职升本科考试报名热点问答发布", + "summary": "最新报名政策详解:应届生、往届生报考条件,报名时间节点,平行志愿填报策略等重要信息。", + "category": "exam_policy", + "tags": ["天津专升本", "考试政策"], + "coverImage": "https://fenxiang-1304851894.cos.ap-nanjing.myqcloud.com/%E5%B0%81%E9%9D%A2.png", + "author": "恭学教育", + "publishedAt": "2026-01-15", + "viewCount": 1256, + "isTop": true + }, + { + "id": "study-time-plan", + "title": "天津专升本高效复习时间规划", + "summary": "科学安排备考时间,从基础巩固到冲刺提分,帮助考生制定清晰的专升本复习计划。", + "category": "study_method", + "tags": ["天津专升本", "学习方法", "备考规划"], + "coverImage": "https://fenxiang-1304851894.cos.ap-nanjing.myqcloud.com/%E5%B0%81%E9%9D%A2.png", + "author": "恭学教育", + "publishedAt": "2026-06-15", + "viewCount": 0, + "isTop": false + } +] diff --git a/docs/knowledge/index.md b/docs/knowledge/index.md new file mode 100644 index 0000000..e86c901 --- /dev/null +++ b/docs/knowledge/index.md @@ -0,0 +1,20 @@ +--- +title: 天津专升本知识中心 - 备考攻略 | 院校介绍 | 政策解读 | 学习方法 +description: 恭学教育知识中心为您提供全面的天津专升本资讯,包括最新政策解读、院校详细介绍、备考攻略、学习方法指导等,助您全面了解专升本考试,制定最优学习计划。 +keywords: + - 天津专升本知识 + - 专升本政策 + - 专升本院校 + - 备考攻略 + - 学习方法 + - 专升本指南 + - 考试大纲 + - 招生简章 + - 专业介绍 +--- + + + + diff --git a/docs/knowledge/sample-article.md b/docs/knowledge/sample-article.md new file mode 100644 index 0000000..6234eee --- /dev/null +++ b/docs/knowledge/sample-article.md @@ -0,0 +1,39 @@ +--- +id: sample-article +title: 2026年天津高职升本科考试报名热点问答发布 +summary: 最新报名政策详解:应届生、往届生报考条件,报名时间节点,平行志愿填报策略等重要信息。 +category: exam_policy +tags: + - 天津专升本 + - 考试政策 +author: 恭学教育 +publishedAt: 2026-01-15 +coverImage: https://fenxiang-1304851894.cos.ap-nanjing.myqcloud.com/%E5%B0%81%E9%9D%A2.png +viewCount: 1256 +isTop: true +--- + + + + + +

一、报名条件

+

参加2026年天津高职升本科考试的考生,须符合以下条件:

+
    +
  • 具有天津市户籍或在本市就读的普通高校高职(专科)应届毕业生;
  • +
  • 遵守中华人民共和国宪法和法律;
  • +
  • 身体健康状况符合相关要求。
  • +
+ +

二、报名时间

+

2026年天津专升本报名预计于2025年12月开始,具体时间以天津市教育招生考试院官方通知为准。考生需在规定时间内完成网上报名、缴费及现场确认。

+ +

三、考试科目

+

天津专升本考试分为文化课和专业课两部分。文化课包括语文/数学、英语、计算机应用基础;专业课由各招生院校组织。

+ +

四、志愿填报

+

考生在成绩公布后,按照本人成绩和招生计划填报平行志愿。建议考生合理拉开梯度,兼顾理想院校与保底院校。

+ +
diff --git a/docs/knowledge/study-time-plan.md b/docs/knowledge/study-time-plan.md new file mode 100644 index 0000000..856a32a --- /dev/null +++ b/docs/knowledge/study-time-plan.md @@ -0,0 +1,80 @@ +--- +id: study-time-plan +title: 天津专升本高效复习时间规划 +summary: 科学安排备考时间,从基础巩固到冲刺提分,帮助考生制定清晰的专升本复习计划。 +category: study_method +tags: + - 天津专升本 + - 学习方法 + - 备考规划 +author: 恭学教育 +publishedAt: 2026-06-15 +coverImage: https://fenxiang-1304851894.cos.ap-nanjing.myqcloud.com/%E5%B0%81%E9%9D%A2.png +viewCount: 0 +isTop: false +--- + + + + + +

一、了解考试整体时间线

+

天津专升本考试通常包括文化课和专业课两部分。文化课由天津市教育招生考试院统一组织,专业课由各招生院校自行命题。科学规划复习时间,首先要明确报名、考试、成绩公布和志愿填报等关键节点,做到心中有数。

+ +

二、分阶段复习规划

+

1. 基础阶段(考前6-4个月)

+

这一阶段的核心任务是夯实基础,全面梳理考试大纲要求的知识点。建议每天保持3-4小时学习时间,重点完成以下目标:

+
    +
  • 通读教材,建立知识框架;
  • +
  • 整理笔记,标注重点和难点;
  • +
  • 完成基础练习题,及时查漏补缺。
  • +
+ +

2. 强化阶段(考前3-2个月)

+

在打好基础的前提下,进入强化训练阶段。每天学习时间可适当增加到5-6小时,主要任务包括:

+
    +
  • 针对薄弱科目和知识点进行专项突破;
  • +
  • 大量刷题,熟悉题型和解题思路;
  • +
  • 定期做模拟测试,检验复习效果。
  • +
+ +

3. 冲刺阶段(考前1个月)

+

冲刺阶段以真题演练和错题复盘为主,保持良好的应试状态。建议:

+
    +
  • 严格按照考试时间做真题,培养时间观念;
  • +
  • 整理错题本,反复温习易错点;
  • +
  • 调整作息,保证充足睡眠和适度运动。
  • +
+ +

三、每日学习时间分配

+

合理分配每日学习时间,可以提高学习效率。以下是一个参考安排:

+
    +
  • 上午(8:00-11:30):适合学习需要高强度思考的科目,如数学、专业课;
  • +
  • 下午(14:00-17:00):进行英语阅读、写作或文化课复习;
  • +
  • 晚上(19:00-21:00):做题巩固、整理笔记和错题复盘。
  • +
+

每学习45-60分钟,建议休息5-10分钟,避免长时间疲劳作战。

+ +

四、各科目复习建议

+
    +
  • 语文/数学:注重基础概念和公式的理解与运用,多做历年真题;
  • +
  • 英语:每天坚持背单词,培养语感,强化阅读和翻译能力;
  • +
  • 计算机应用基础:熟悉常考知识点,结合上机操作加深理解;
  • +
  • 专业课:根据目标院校的考试大纲和参考书目有针对性地复习。
  • +
+ +

五、保持良好状态的建议

+

备考是一场持久战,除了科学规划学习时间,还要注意以下几点:

+
    +
  • 制定切实可行的目标,避免盲目攀比;
  • +
  • 保持规律作息,避免熬夜学习;
  • +
  • 适当进行体育锻炼,缓解学习压力;
  • +
  • 遇到瓶颈时及时调整计划,必要时寻求老师或同学帮助。
  • +
+ +

结语

+

天津专升本复习时间规划没有固定模板,关键是找到适合自己的节奏。希望考生们能够合理分配时间,稳扎稳打,最终在考试中取得理想成绩。

+ +
diff --git a/docs/online-school.md b/docs/online-school.md new file mode 100644 index 0000000..c0da28e --- /dev/null +++ b/docs/online-school.md @@ -0,0 +1,20 @@ +--- +title: 天津专升本网校 - 恭学网校APP | 在线课程 | 万人模考 | 随身学习 +description: 恭学网校APP专为天津专升本学员打造,支持倍速播放、离线缓存、后台播放。提供最新考纲课程、万人模考大赛、六维能力分析报告,随时随地开启高效学习模式。 +keywords: + - 天津专升本网校 + - 恭学网校 + - 专升本在线课程 + - 专升本APP + - 万人模考 + - 在线学习 + - 专升本直播课 + - 移动学习 + - 专升本网络课堂 +--- + + + + diff --git a/docs/privacy-policy.md b/docs/privacy-policy.md new file mode 100644 index 0000000..95f15ed --- /dev/null +++ b/docs/privacy-policy.md @@ -0,0 +1,9 @@ +--- +title: 隐私政策 - 恭学教育集团 +--- + + + + diff --git a/docs/public/logo.png b/docs/public/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ee65c9fe32b6e5052a2adcd0f7ab684913addd8d GIT binary patch literal 38785 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 C)BgDY literal 0 HcmV?d00001 diff --git a/docs/question-bank.md b/docs/question-bank.md new file mode 100644 index 0000000..309d132 --- /dev/null +++ b/docs/question-bank.md @@ -0,0 +1,20 @@ +--- +title: 天津专升本刷题系统 - 恭学刷题 | AI智能算法 | 真题100%覆盖 +description: 恭学刷题系统采用AI算法4.0,专为天津专升本打造。收录历年真题10万+道,智能诊断薄弱知识点,大数据精准推送,复习效率提升300%,助你轻松通过专升本考试! +keywords: + - 天津专升本刷题 + - 恭学刷题 + - 专升本真题 + - 刷题系统 + - 天津专升本题库 + - 专升本练习 + - 智能刷题 + - AI刷题 + - 专升本模拟题 +--- + + + + diff --git a/docs/terms-of-service.md b/docs/terms-of-service.md new file mode 100644 index 0000000..2ddac08 --- /dev/null +++ b/docs/terms-of-service.md @@ -0,0 +1,9 @@ +--- +title: 使用条款 - 恭学教育集团 +--- + + + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..64a497d --- /dev/null +++ b/package-lock.json @@ -0,0 +1,3003 @@ +{ + "name": "gongxue-vitepress", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "gongxue-vitepress", + "dependencies": { + "dompurify": "^3.4.10", + "lucide-vue-next": "^0.468.0" + }, + "devDependencies": { + "@types/dompurify": "^3.0.5", + "@types/node": "^22.10.0", + "autoprefixer": "^10.4.20", + "postcss": "^8.4.49", + "tailwindcss": "^3.4.16", + "tsx": "^4.22.4", + "typescript": "~5.7.0", + "vitepress": "1.0.0-alpha.28", + "vue": "3.2.44" + } + }, + "node_modules/@algolia/abtesting": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/@algolia/abtesting/-/abtesting-1.20.0.tgz", + "integrity": "sha512-5CqkS592H3+24b6H6CQ2RVpphdmAuIElZzv0Hngqo/ZEZpUZJ+KGLcueBhx33fv2wYBXyuuvskG5aQ7Ti+lR0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.54.0", + "@algolia/requester-browser-xhr": "5.54.0", + "@algolia/requester-fetch": "5.54.0", + "@algolia/requester-node-http": "5.54.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/autocomplete-core": { + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.17.9.tgz", + "integrity": "sha512-O7BxrpLDPJWWHv/DLA9DRFWs+iY1uOJZkqUwjS5HSZAGcl0hIVCQ97LTLewiZmZ402JYUrun+8NqFP+hCknlbQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-plugin-algolia-insights": "1.17.9", + "@algolia/autocomplete-shared": "1.17.9" + } + }, + "node_modules/@algolia/autocomplete-plugin-algolia-insights": { + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.9.tgz", + "integrity": "sha512-u1fEHkCbWF92DBeB/KHeMacsjsoI0wFhjZtlCq2ddZbAehshbZST6Hs0Avkc0s+4UyBGbMDnSuXHLuvRWK5iDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-shared": "1.17.9" + }, + "peerDependencies": { + "search-insights": ">= 1 < 3" + } + }, + "node_modules/@algolia/autocomplete-preset-algolia": { + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.9.tgz", + "integrity": "sha512-Na1OuceSJeg8j7ZWn5ssMu/Ax3amtOwk76u4h5J4eK2Nx2KB5qt0Z4cOapCsxot9VcEN11ADV5aUSlQF4RhGjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-shared": "1.17.9" + }, + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@algolia/autocomplete-shared": { + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.9.tgz", + "integrity": "sha512-iDf05JDQ7I0b7JEA/9IektxN/80a2MZ1ToohfmNS3rfeuQnIKI3IJlIafD0xu4StbtQTghx9T3Maa97ytkXenQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@algolia/client-abtesting": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.54.0.tgz", + "integrity": "sha512-IXnH1x3DBsPQA4/FRO0Pvkfy79tKy5Qr+ugAV9jdcGkpzHc476D0WV1MFJ+pZxtbts0xh2JqzUVmYEqA6LkOpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.54.0", + "@algolia/requester-browser-xhr": "5.54.0", + "@algolia/requester-fetch": "5.54.0", + "@algolia/requester-node-http": "5.54.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-analytics": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.54.0.tgz", + "integrity": "sha512-pBpRqm1wpE0GnGy2rNLk9rjDn0Le4iywNRtnAWblLeqfjxpWKg8lWnk7nmSoTShFO31sz2jatXXzxK2lz8ipbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.54.0", + "@algolia/requester-browser-xhr": "5.54.0", + "@algolia/requester-fetch": "5.54.0", + "@algolia/requester-node-http": "5.54.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-common": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.54.0.tgz", + "integrity": "sha512-WbuwRUlFvSOsuxqTDjSSmgusuF5KFt+oFPzobvPDvodra6EWnVwUXjz0elkNSsnsIlZGtcXlX3LhxkO7rF90jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-insights": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.54.0.tgz", + "integrity": "sha512-/HNLVi3kPI+JhO59WbglLjPM2c4uECU+x4gk1iADseKtE5eYqJ/RJ+FIwM8xzPFKhFJaw+8hVq4lkd0nn8HDDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.54.0", + "@algolia/requester-browser-xhr": "5.54.0", + "@algolia/requester-fetch": "5.54.0", + "@algolia/requester-node-http": "5.54.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-personalization": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.54.0.tgz", + "integrity": "sha512-6TolyyDRumIKeLGBGSFAZsSIJ8hrm6NFCGR1jO7pQTiOtSWgAIxcFE5/JRpZ3g+unG4OkNOFy+I0dUEquIDbig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.54.0", + "@algolia/requester-browser-xhr": "5.54.0", + "@algolia/requester-fetch": "5.54.0", + "@algolia/requester-node-http": "5.54.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-query-suggestions": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.54.0.tgz", + "integrity": "sha512-AxW2MLBhjBtGX5kIZrVLO2SP2vRkZxJw5qHGxnQJfLcYhA04mFNP0fWRtHshlcVnDk9M8L9lwfr2lGpf3Er+hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.54.0", + "@algolia/requester-browser-xhr": "5.54.0", + "@algolia/requester-fetch": "5.54.0", + "@algolia/requester-node-http": "5.54.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-search": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.54.0.tgz", + "integrity": "sha512-ngdgVGp05lJzUyA+sUzr0MDZ7AMtANcJpwIzq4ZsfpZL5B3S7A4XYfMcU2sECZc3bx3ysOhYcdbbaTjc3ve0WQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.54.0", + "@algolia/requester-browser-xhr": "5.54.0", + "@algolia/requester-fetch": "5.54.0", + "@algolia/requester-node-http": "5.54.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/ingestion": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.54.0.tgz", + "integrity": "sha512-hee59Z7FgZ6/13FYL05ANPwRJY1pfvIlrwC8eBZYdiRFXTJVvf94IyTWOxLqRVpbseDP6eQQTW+PT7/DxTZIng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.54.0", + "@algolia/requester-browser-xhr": "5.54.0", + "@algolia/requester-fetch": "5.54.0", + "@algolia/requester-node-http": "5.54.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/monitoring": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.54.0.tgz", + "integrity": "sha512-diCjZVbIO7Pzw98tEKqLWIAgmQBI3Zt1sHsXyAPNGZgn32derpIXTnjjpJbZl+uAhSSznd6SfxFGdC9uYdN1TA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.54.0", + "@algolia/requester-browser-xhr": "5.54.0", + "@algolia/requester-fetch": "5.54.0", + "@algolia/requester-node-http": "5.54.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/recommend": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.54.0.tgz", + "integrity": "sha512-6zeslypRAGWDgVJEJYAPuqmyquHvnw4MQwG+XXdrw5dTNDjXYIcCJdQQcCY06xPF9tUvmzy/1vHiH9QxhgwuOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.54.0", + "@algolia/requester-browser-xhr": "5.54.0", + "@algolia/requester-fetch": "5.54.0", + "@algolia/requester-node-http": "5.54.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-browser-xhr": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.54.0.tgz", + "integrity": "sha512-iHZax214LPXd7XizQ4BNnTsegl8f3IeKm8JcrmSNZ/5x1rZ5xLkbG/anltAWtLpoRNnfpr4Z80YdYeVVPpx6wQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.54.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-fetch": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.54.0.tgz", + "integrity": "sha512-YKtuG5YwPxZ+kkfd4HmUO7Z9aICPUSMlHslzKTmtMMhxGnetxEqGj9T/v2r/PdcuOUC5oW0CHe8akJk8cpS3gQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.54.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-node-http": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.54.0.tgz", + "integrity": "sha512-zyZDJ4WS5TnjZZ5pqywTBFO9olW7QMtY2kf2dbLnu+UTzfc9ri/HGf27jRN2NTbX9FcRPxSqPqzUhF/BZIx0VA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.54.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", + "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", + "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@docsearch/css": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.9.0.tgz", + "integrity": "sha512-cQbnVbq0rrBwNAKegIac/t6a8nWoUAn8frnkLFW6YARaRmAQr5/Eoe6Ln2fqkUCZ40KpdrKbpSAmgrkviOxuWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@docsearch/js": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.9.0.tgz", + "integrity": "sha512-4bKHcye6EkLgRE8ze0vcdshmEqxeiJM77M0JXjef7lrYZfSlMunrDOCqyLjiZyo1+c0BhUqA2QpFartIjuHIjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@docsearch/react": "3.9.0", + "preact": "^10.0.0" + } + }, + "node_modules/@docsearch/react": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.9.0.tgz", + "integrity": "sha512-mb5FOZYZIkRQ6s/NWnM98k879vu5pscWqTLubLFBO87igYYT4VzVazh4h5o/zCvTIZgEt3PvsCOMOswOUo9yHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-core": "1.17.9", + "@algolia/autocomplete-preset-algolia": "1.17.9", + "@docsearch/css": "3.9.0", + "algoliasearch": "^5.14.2" + }, + "peerDependencies": { + "@types/react": ">= 16.8.0 < 20.0.0", + "react": ">= 16.8.0 < 20.0.0", + "react-dom": ">= 16.8.0 < 20.0.0", + "search-insights": ">= 1 < 3" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "search-insights": { + "optional": true + } + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz", + "integrity": "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.1.tgz", + "integrity": "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz", + "integrity": "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.1.tgz", + "integrity": "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz", + "integrity": "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz", + "integrity": "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz", + "integrity": "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz", + "integrity": "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz", + "integrity": "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz", + "integrity": "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz", + "integrity": "sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz", + "integrity": "sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz", + "integrity": "sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz", + "integrity": "sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz", + "integrity": "sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz", + "integrity": "sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz", + "integrity": "sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz", + "integrity": "sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz", + "integrity": "sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz", + "integrity": "sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz", + "integrity": "sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz", + "integrity": "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz", + "integrity": "sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz", + "integrity": "sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz", + "integrity": "sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz", + "integrity": "sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@types/dompurify": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/dompurify/-/dompurify-3.0.5.tgz", + "integrity": "sha512-1Wg0g3BtQF7sSb27fJQAKck1HECM6zV1EB66j8JH9i3LCjYabJa0FSdiSgsD5K/RbrsR0SiraKacLB+T8ZVYAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/trusted-types": "*" + } + }, + "node_modules/@types/node": { + "version": "22.19.21", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.21.tgz", + "integrity": "sha512-VMeFBSCKQKmm2swI2kW51SFusDqekC6q9trBCvJ/JliDchFSuoYYKN7yVNjPthP1HKZcx3U1gI/wTcEBjEFKTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.16", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz", + "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vitejs/plugin-vue": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz", + "integrity": "sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^3.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.2.44", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.44.tgz", + "integrity": "sha512-TwzeVSnaklb8wIvMtwtkPkt9wnU+XD70xJ7N9+eIHtjKAG7OoZttm+14ZL6vWOL+2RcMtSZ+cYH+gvkUqsrmSQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.44", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.2.44", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.44.tgz", + "integrity": "sha512-wPDR+gOn2Qi7SudPJ+gE62vuO/aKXIiIFALvHpztXmDdbAHGy3CDfmBgOGchTgTlSeDJHe9olEMkgOdmyXTjUg==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.2.44", + "@vue/shared": "3.2.44" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.2.44", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.44.tgz", + "integrity": "sha512-8cFZcUWlrtnfM/GlRwYJdlfgbEOy0OZ/osLDU3h/wJu24HuYAc7QIML1USaKqiZzkjOaTd4y8mvYvcWXq3o5dA==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.44", + "@vue/compiler-dom": "3.2.44", + "@vue/compiler-ssr": "3.2.44", + "@vue/reactivity-transform": "3.2.44", + "@vue/shared": "3.2.44", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.2.44", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.44.tgz", + "integrity": "sha512-tAkUFLgvxds3l5KPyAH77OIYrEeLngNYQfWA9GocHiy2nlyajjqAH/Jq93Bq29Y20GeJzblmRp9DVYCVkJ5Rsw==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.2.44", + "@vue/shared": "3.2.44" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", + "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vue/reactivity": { + "version": "3.2.44", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.44.tgz", + "integrity": "sha512-Fe0s52fTsPl+RSdvoqUZ3HRKlaVsKhIh1mea5EWOedFvZCjnymzlj3YC1wZMxi89qXRFSdEASVA/BWUGypk0Ig==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.2.44" + } + }, + "node_modules/@vue/reactivity-transform": { + "version": "3.2.44", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.44.tgz", + "integrity": "sha512-WGbEiXaS2qAOTS9Z3kKk2Nk4bi8OUl73Sih+h0XV9RTUATnaJSEQedveHUDQnHyXiZwyBMKosrxJg8aThHO/rw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.44", + "@vue/shared": "3.2.44", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.2.44", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.44.tgz", + "integrity": "sha512-uwEV1cttL33k2dC+CNGYhKEYqGejT9KmgQ+4n/LmYUfZ1Gorl8F32DlIX+1pANyGHL1tBAisqHDxKyQBp2oBNA==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.2.44", + "@vue/shared": "3.2.44" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.2.44", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.44.tgz", + "integrity": "sha512-LDzNwXpU/nSpxrLk5jS0bfStgt88msgsgFzj6vHrl7es3QktIrCGybQS5CB/p/TO0q98iAiYtEVmi+Lej7Vgjg==", + "license": "MIT", + "dependencies": { + "@vue/runtime-core": "3.2.44", + "@vue/shared": "3.2.44", + "csstype": "^2.6.8" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.2.44", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.44.tgz", + "integrity": "sha512-3+ArN07UgOAdbGKIp3uVqeC3bnR3J324QNjPR6vxHbLrTlkibFv8QNled/ux3fVq0KDCkVVKGOKB2V4sCIYOgg==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.2.44", + "@vue/shared": "3.2.44" + }, + "peerDependencies": { + "vue": "3.2.44" + } + }, + "node_modules/@vue/shared": { + "version": "3.2.44", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.44.tgz", + "integrity": "sha512-mGZ44bnn0zpZ36nXtxbrBPno43yr96wjQE1dBEKS1Sieugt27HS4OGZVBRIgsdGzosB7vqZAvu0ttu1FDVdolA==", + "license": "MIT" + }, + "node_modules/@vueuse/core": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-9.13.0.tgz", + "integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.16", + "@vueuse/metadata": "9.13.0", + "@vueuse/shared": "9.13.0", + "vue-demi": "*" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/core/node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/@vueuse/metadata": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.13.0.tgz", + "integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-9.13.0.tgz", + "integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "vue-demi": "*" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared/node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/algoliasearch": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.54.0.tgz", + "integrity": "sha512-APAX4ajIOgsmYoUlGe++oNZkSTBgmXYM4maHC0OxC+Yo7xkaKQElV0ATZYCZA7jzrSJX1OBiqEs7mk+ZxXgYqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/abtesting": "1.20.0", + "@algolia/client-abtesting": "5.54.0", + "@algolia/client-analytics": "5.54.0", + "@algolia/client-common": "5.54.0", + "@algolia/client-insights": "5.54.0", + "@algolia/client-personalization": "5.54.0", + "@algolia/client-query-suggestions": "5.54.0", + "@algolia/client-search": "5.54.0", + "@algolia/ingestion": "1.54.0", + "@algolia/monitoring": "1.54.0", + "@algolia/recommend": "5.54.0", + "@algolia/requester-browser-xhr": "5.54.0", + "@algolia/requester-fetch": "5.54.0", + "@algolia/requester-node-http": "5.54.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true, + "license": "MIT" + }, + "node_modules/autoprefixer": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.5.0.tgz", + "integrity": "sha512-FMhOoZV4+qR6aTUALKX2rEqGG+oyATvwBt9IIzVR5rMa2HRWPkxf+P+PAJLD1I/H5/II+HuZcBJYEFBpq39ong==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.2", + "caniuse-lite": "^1.0.30001787", + "fraction.js": "^5.3.4", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.10.37", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.37.tgz", + "integrity": "sha512-girxaJ7WZssDOFhzCGZTDKoTa1gk6A1TbflaYTpykLJ4UU9Fz9kx1aREM8JCuoVHbL8X8T/mJg7w2oYSq72Oig==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/body-scroll-lock": { + "version": "4.0.0-beta.0", + "resolved": "https://registry.npmjs.org/body-scroll-lock/-/body-scroll-lock-4.0.0-beta.0.tgz", + "integrity": "sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", + "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.10.12", + "caniuse-lite": "^1.0.30001782", + "electron-to-chromium": "^1.5.328", + "node-releases": "^2.0.36", + "update-browserslist-db": "^1.2.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001799", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001799.tgz", + "integrity": "sha512-hG1bReV+OUU+MOqK4t/ZWI0tZOyz3rqS9XuhOUz1cIcbwBKjOyJEJuw9ER5JuNyqxNk8u/JUVbGibBOL1yrjFw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==", + "license": "MIT" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true, + "license": "MIT" + }, + "node_modules/dompurify": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.10.tgz", + "integrity": "sha512-0xzNv0e7oYC6yyuOGZIABPM4qtg3QxLFniDNPP4ZP90wR8Yq3zgwpRbrNiT4N3IKqDbbYFEJLV+JWEs19aZ//w==", + "license": "(MPL-2.0 OR Apache-2.0)", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.372", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.372.tgz", + "integrity": "sha512-M3yhbAlilnwqC8D21t28UCDGHyitShTmmLRU/H+b74P6Ski16Nb9HONYEaVpMj/pwC7BEo5B95FpjODLCWbtfA==", + "dev": true, + "license": "ISC" + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.1.tgz", + "integrity": "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.28.1", + "@esbuild/android-arm": "0.28.1", + "@esbuild/android-arm64": "0.28.1", + "@esbuild/android-x64": "0.28.1", + "@esbuild/darwin-arm64": "0.28.1", + "@esbuild/darwin-x64": "0.28.1", + "@esbuild/freebsd-arm64": "0.28.1", + "@esbuild/freebsd-x64": "0.28.1", + "@esbuild/linux-arm": "0.28.1", + "@esbuild/linux-arm64": "0.28.1", + "@esbuild/linux-ia32": "0.28.1", + "@esbuild/linux-loong64": "0.28.1", + "@esbuild/linux-mips64el": "0.28.1", + "@esbuild/linux-ppc64": "0.28.1", + "@esbuild/linux-riscv64": "0.28.1", + "@esbuild/linux-s390x": "0.28.1", + "@esbuild/linux-x64": "0.28.1", + "@esbuild/netbsd-arm64": "0.28.1", + "@esbuild/netbsd-x64": "0.28.1", + "@esbuild/openbsd-arm64": "0.28.1", + "@esbuild/openbsd-x64": "0.28.1", + "@esbuild/openharmony-arm64": "0.28.1", + "@esbuild/sunos-x64": "0.28.1", + "@esbuild/win32-arm64": "0.28.1", + "@esbuild/win32-ia32": "0.28.1", + "@esbuild/win32-x64": "0.28.1" + } + }, + "node_modules/esbuild-android-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz", + "integrity": "sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz", + "integrity": "sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz", + "integrity": "sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz", + "integrity": "sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz", + "integrity": "sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz", + "integrity": "sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-32": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz", + "integrity": "sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz", + "integrity": "sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz", + "integrity": "sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz", + "integrity": "sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz", + "integrity": "sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz", + "integrity": "sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-riscv64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz", + "integrity": "sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-s390x": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz", + "integrity": "sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz", + "integrity": "sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz", + "integrity": "sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-sunos-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz", + "integrity": "sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-32": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz", + "integrity": "sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz", + "integrity": "sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz", + "integrity": "sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fraction.js": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", + "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/hasown": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", + "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lucide-vue-next": { + "version": "0.468.0", + "resolved": "https://registry.npmjs.org/lucide-vue-next/-/lucide-vue-next-0.468.0.tgz", + "integrity": "sha512-quV/6T8YB1XK0VOEnebg3Byd8Rsan5/m95cvjnuHV4vcS3qEnLAybkrSh0hk3ppavx+V7R1PjNW+mGDvcBdz4A==", + "deprecated": "Package deprecated. Please use @lucide/vue instead.", + "license": "ISC", + "peerDependencies": { + "vue": ">=3.0.1" + } + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "license": "MIT", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", + "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.47", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.47.tgz", + "integrity": "sha512-Uzmd6LXpouKo8EUK68IjH4+E01w/hXyV3R3g/geCJo+rXLNfh1xucB+LOzYEOQPSiUK3h/xZf0cQGcSsmyL2Og==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { + "version": "8.5.15", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", + "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.12", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz", + "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", + "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.4.tgz", + "integrity": "sha512-bIoJLOmjCO1S9XdY/DcnR5hJxvrDir1PbGChrzXG3vw0/FOliy/fA3dmdhQ441kah4gKv+TwckGzex6wNS5cnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/preact": { + "version": "10.29.2", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.29.2.tgz", + "integrity": "sha512-7tNmwg/7mzzAoB/8kSg6Hl37JraAZw3Z3A0JSY7VXlZwo82Xn0G7wKbNNs2qoF4ZEEsQGTwDAroNdqKs1ofJxQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "2.80.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.80.0.tgz", + "integrity": "sha512-cIFJOD1DESzpjOBl763Kp1AH7UE/0fcdHe6rZXUdQ9c50uvgigvW97u3IcSeBwOkgqL/PXPBktBCh0KEu5L8XQ==", + "dev": true, + "license": "MIT", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/search-insights": { + "version": "2.17.3", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.17.3.tgz", + "integrity": "sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/shiki": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.11.1.tgz", + "integrity": "sha512-EugY9VASFuDqOexOgXR18ZV+TbFrQHeCpEYaXamO+SZlsnT/2LxuLBX25GGtIrwaEVFXUAbUQ601SWE2rMwWHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jsonc-parser": "^3.0.0", + "vscode-oniguruma": "^1.6.1", + "vscode-textmate": "^6.0.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "license": "MIT" + }, + "node_modules/sucrase": { + "version": "3.35.1", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz", + "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "tinyglobby": "^0.2.11", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz", + "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.7", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/tsx": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.22.4.tgz", + "integrity": "sha512-X8EX+XV4QR5xCsrgxaED954zTDfY8KqlDtskKEL0cHhyS/P8b4IFOvGDQpsC9Q1XnLq915wEfwwY/zzskCtmhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "~0.28.0" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/typescript": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.11.tgz", + "integrity": "sha512-K/jGKL/PgbIgKCiJo5QbASQhFiV02X9Jh+Qq0AKCRCRKZtOTVi4t6wh75FDpGf2N9rYOnzH87OEFQNaFy6pdxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.15.9", + "postcss": "^8.4.18", + "resolve": "^1.22.1", + "rollup": "^2.79.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.18.tgz", + "integrity": "sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz", + "integrity": "sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz", + "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.15.18", + "@esbuild/linux-loong64": "0.15.18", + "esbuild-android-64": "0.15.18", + "esbuild-android-arm64": "0.15.18", + "esbuild-darwin-64": "0.15.18", + "esbuild-darwin-arm64": "0.15.18", + "esbuild-freebsd-64": "0.15.18", + "esbuild-freebsd-arm64": "0.15.18", + "esbuild-linux-32": "0.15.18", + "esbuild-linux-64": "0.15.18", + "esbuild-linux-arm": "0.15.18", + "esbuild-linux-arm64": "0.15.18", + "esbuild-linux-mips64le": "0.15.18", + "esbuild-linux-ppc64le": "0.15.18", + "esbuild-linux-riscv64": "0.15.18", + "esbuild-linux-s390x": "0.15.18", + "esbuild-netbsd-64": "0.15.18", + "esbuild-openbsd-64": "0.15.18", + "esbuild-sunos-64": "0.15.18", + "esbuild-windows-32": "0.15.18", + "esbuild-windows-64": "0.15.18", + "esbuild-windows-arm64": "0.15.18" + } + }, + "node_modules/vitepress": { + "version": "1.0.0-alpha.28", + "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.0.0-alpha.28.tgz", + "integrity": "sha512-pvbLssDMgLUN1terajmPlFBxHSDGO4DqwexKbjFyr7LeELerVuwGrG6F2J1hxmwOlbpLd1kHXEDqGm9JX/kTDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@docsearch/css": "^3.3.0", + "@docsearch/js": "^3.3.0", + "@vitejs/plugin-vue": "^3.2.0", + "@vue/devtools-api": "^6.4.5", + "@vueuse/core": "^9.4.0", + "body-scroll-lock": "4.0.0-beta.0", + "shiki": "^0.11.1", + "vite": "^3.2.3", + "vue": "^3.2.41" + }, + "bin": { + "vitepress": "bin/vitepress.js" + } + }, + "node_modules/vscode-oniguruma": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", + "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", + "dev": true, + "license": "MIT" + }, + "node_modules/vscode-textmate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-6.0.0.tgz", + "integrity": "sha512-gu73tuZfJgu+mvCSy4UZwd2JXykjK9zAZsfmDeut5dx/1a7FeTk0XwJsSuqQn+cuMCGVbIBfl+s53X4T19DnzQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/vue": { + "version": "3.2.44", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.44.tgz", + "integrity": "sha512-nyNtFDh+0TpRgYCUVfPD1mJ9PpIsCPXaOF4DeGNIT5vQ4X23ykflGq3Sy2P+tEt1/pQZxZnAysuRKwyhNj+Cjw==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.2.44", + "@vue/compiler-sfc": "3.2.44", + "@vue/runtime-dom": "3.2.44", + "@vue/server-renderer": "3.2.44", + "@vue/shared": "3.2.44" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..cd31c48 --- /dev/null +++ b/package.json @@ -0,0 +1,32 @@ +{ + "name": "gongxue-vitepress", + "private": true, + "type": "module", + "scripts": { + "dev": "vitepress dev docs --host 0.0.0.0", + "build": "vitepress build docs", + "serve": "vitepress serve docs" + }, + "dependencies": { + "dompurify": "^3.4.10", + "lucide-vue-next": "^0.468.0" + }, + "devDependencies": { + "@types/dompurify": "^3.0.5", + "@types/node": "^22.10.0", + "autoprefixer": "^10.4.20", + "postcss": "^8.4.49", + "tailwindcss": "^3.4.16", + "tsx": "^4.22.4", + "typescript": "~5.7.0", + "vitepress": "1.0.0-alpha.28", + "vue": "3.2.44" + }, + "pnpm": { + "peerDependencyRules": { + "ignoreMissing": [ + "@algolia/client-search" + ] + } + } +} diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..2aa7205 --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..c65eaca --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,76 @@ +/** @type {import('tailwindcss').Config} */ +export default { + content: [ + "./docs/**/*.md", + "./docs/.vitepress/**/*.{js,ts,vue}", + ], + theme: { + extend: { + fontFamily: { + sans: ['"SF Pro Display"', '"SF Pro Text"', '"Inter"', '"Noto Sans SC"', 'system-ui', 'sans-serif'], + }, + colors: { + 'apple-grey': '#F5F5F7', + 'apple-dark': '#1D1D1F', + 'apple-blue': '#0071E3', + 'apple-blue-hover': '#0077ED', + 'apple-text-gray': '#86868B', + 'gongxue': { + primary: '#0071E3', + secondary: '#5E5CE6', + success: '#34C759', + warning: '#FF9500', + danger: '#FF3B30', + dark: '#1D1D1F', + gray: { + 50: '#F5F5F7', + 100: '#E8E8ED', + 200: '#D2D2D7', + 300: '#AEAEB2', + 400: '#8E8E93', + 500: '#636366', + 600: '#48484A', + 700: '#3A3A3C', + 800: '#2C2C2E', + 900: '#1C1C1E', + } + } + }, + animation: { + 'fade-in': 'fadeIn 0.6s ease-out forwards', + 'slide-up': 'slideUp 0.6s ease-out forwards', + 'slide-down': 'slideDown 0.4s ease-out forwards', + 'float': 'float 6s ease-in-out infinite', + 'pulse-slow': 'pulse 3s ease-in-out infinite', + }, + keyframes: { + fadeIn: { + '0%': { opacity: '0' }, + '100%': { opacity: '1' }, + }, + slideUp: { + '0%': { opacity: '0', transform: 'translateY(20px)' }, + '100%': { opacity: '1', transform: 'translateY(0)' }, + }, + slideDown: { + '0%': { opacity: '0', transform: 'translateY(-10px)' }, + '100%': { opacity: '1', transform: 'translateY(0)' }, + }, + float: { + '0%, 100%': { transform: 'translateY(0)' }, + '50%': { transform: 'translateY(-10px)' }, + }, + }, + boxShadow: { + 'apple': '0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03)', + 'apple-lg': '0 10px 40px -10px rgba(0, 0, 0, 0.1)', + 'apple-xl': '0 20px 60px -15px rgba(0, 0, 0, 0.15)', + }, + borderRadius: { + '4xl': '2rem', + '5xl': '2.5rem', + } + }, + }, + plugins: [], +};