diff --git "a/\003,­\0030p>\003;\b­\0038p>\003á\002=\0021p>\003á\002:\002(p>\0032p?\003·p>\003á\002?\0027p>\003á\002;\0029p>\003á\0023\0025p>\003á\002Á\0033p>\003á\002<\0023p>\003Rich2p>\003PEd†\006»o=\177ð\v\002\016\034 0\006I\020@\001\020\020" "b/\003,­\0030p>\003;\b­\0038p>\003á\002=\0021p>\003á\002:\002(p>\0032p?\003·p>\003á\002?\0027p>\003á\002;\0029p>\003á\0023\0025p>\003á\002Á\0033p>\003á\002<\0023p>\003Rich2p>\003PEd†\006»o=\177ð\v\002\016\034 0\006I\020@\001\020\020" new file mode 100644 index 0000000..e69de29 diff --git "a/\0032p" "b/\0032p" new file mode 100644 index 0000000..e69de29 diff --git a/ARCHITECTURE_PLAN.md b/ARCHITECTURE_PLAN.md new file mode 100644 index 0000000..f6b4405 --- /dev/null +++ b/ARCHITECTURE_PLAN.md @@ -0,0 +1,252 @@ +# CodeDocs 内容架构规划 + +## 愿景 +为全栈ã€å…¨ç«¯å·¥ç¨‹å¸ˆæ‰“造一个**坿Ÿ¥ã€å¯å‚考ã€å¯é€ŸæŸ¥**的技术文档与知识库,覆盖从底层原ç†ã€æ¡†æž¶å®žæˆ˜ã€åˆ°é¢è¯•çªç ´çš„全链路。 + +## 一级分类(顶部èœå•) + +### 1. 📚 技术文档 + ä¸»è¦æŠ€æœ¯æ ˆä¸Žæ¡†æž¶å­¦ä¹  + +#### 1.1 âš™ï¸ åŽç«¯æŠ€æœ¯ + **目标用户**: åŽç«¯å·¥ç¨‹å¸ˆã€å…¨æ ˆå¼€å‘者 + + - **Java 生æ€** + - Spring Framework / Spring Boot / Spring Cloud + - 核心概念 (IoC, AOP, Bean 生命周期) + - 常用注解与é…ç½®æ–¹å¼ + - å¾®æœåŠ¡æž¶æž„ä¸Žåˆ†å¸ƒå¼æ–¹æ¡ˆ + - 性能优化与监控 + - JVM 优化与性能调试 + - å¹¶å‘编程 (ThreadPool, Lock, Concurrent 工具) + + - **æ•°æ®åº“与缓存** + - SQL 优化与查询计划 + - MySQL ç´¢å¼•è®¾è®¡ä¸Žäº‹åŠ¡ç®¡ç† + - NoSQL (Redis, MongoDB) + - 分布å¼ç¼“存方案 + + - **消æ¯é˜Ÿåˆ—与异步** + - RabbitMQ / Kafka / RocketMQ + - 事件驱动架构 + + - **分布å¼ç³»ç»Ÿ** + - 一致性 (Raft, Consensus) + - æœåŠ¡æ²»ç† (Nacos, Consul) + - 链路追踪 (Jaeger, SkyWalking) + +#### 1.2 âš›ï¸ å‰ç«¯å¼€å‘ + **目标用户**: å‰ç«¯å·¥ç¨‹å¸ˆã€å…¨æ ˆå¼€å‘者 + + - **核心框架** + - React + - Hooks æ·±åº¦è§£æž + - 状æ€ç®¡ç† (Redux, Zustand, Jotai) + - 性能优化 (Code Splitting, Memo, Lazy) + - SSR / SSG 方案 + - Vue 3 + - Composition API 最佳实践 + - å“åº”æ€§åŽŸç† + - Pinia 状æ€ç®¡ç† + + - **工程化** + - 构建工具 (Webpack, Vite, Turbopack) + - åŒ…ç®¡ç† (npm, pnpm, yarn) + - CI/CD æµç¨‹ + + - **性能与体验** + - Web 性能指标 (LCP, FID, CLS) + - 渲染优化 + - 网络优化 (CDN, 压缩) + + - **跨端开å‘** + - React Native + - Electron + - å°ç¨‹åº (å¾®ä¿¡ã€æ”¯ä»˜å®) + +#### 1.3 🧠 算法与é¢è¯• + **目标用户**: 求èŒè€…ã€ç®—法爱好者 + + - **æ•°æ®ç»“æž„** + - 数组ã€é“¾è¡¨ã€æ ˆã€é˜Ÿåˆ— + - æ ‘ (äºŒå‰æ ‘ã€AVLã€çº¢é»‘æ ‘ã€B æ ‘) + - 图 + - å †ã€ä¼˜å…ˆé˜Ÿåˆ— + + - **ç»å…¸ç®—法** + - 排åºä¸ŽæŸ¥æ‰¾ + - 动æ€è§„划 + - 贪心算法 + - 回溯与递归 + + - **编程é¢è¯•题** + - 按类型分类 (String, Array, Tree, Graph, DP) + - 按难度分级 + - 按公å¸å‡ºçŽ°é¢‘çŽ‡åˆ†ç±» + + - **系统设计** + - é«˜å¹¶å‘æž¶æž„设计 + - 分布å¼ç³»ç»Ÿè®¾è®¡ + - 大数æ®å¤„ç† + +--- + +## 二级分类 - 导航示例 + +### 技术文档 > åŽç«¯æŠ€æœ¯ +``` +├── Spring 全家桶 +│ ├── Spring Core (IoC, AOP) +│ ├── Spring MVC +│ ├── Spring Boot 实战 +│ ├── Spring Cloud å¾®æœåŠ¡ +│ └── Spring Data +├── JVM 与性能 +│ ├── JVM 内存模型 +│ ├── GC 调优 +│ └── 性能分æžå·¥å…· +├── å¹¶å‘编程 +│ ├── 线程基础 +│ ├── é”ä¸ŽåŒæ­¥ +│ ├── Concurrent 工具类 +│ └── 实战案例 +└── æ•°æ®åº“ + ├── MySQL 核心 + ├── 索引优化 + ├── 事务与隔离 + └── 分布å¼äº‹åŠ¡ +``` + +### 技术文档 > å‰ç«¯å¼€å‘ +``` +├── React 进阶 +│ ├── Hooks 深入 +│ ├── 状æ€ç®¡ç†å¯¹æ¯” +│ ├── 性能优化 +│ └── Next.js / Remix +├── 工程化实践 +│ ├── 构建系统选型 +│ ├── 测试体系 +│ ├── å‘布æµç¨‹ +│ └── 监控与错误追踪 +└── 跨端方案 + ├── React Native + ├── Electron + └── å°ç¨‹åºå¼€å‘ +``` + +--- + +## 三级结构示例 + +æ¯ä¸ªä¸»é¢˜é‡‡ç”¨æ ‡å‡†åŒ–æ ¼å¼ï¼š + +``` +## 主题åç§° + +### 📌 核心概念 +- å®šä¹‰ä¸ŽåŽŸç† +- 为什么需è¦å®ƒ + +### 🔧 å®žè·µæŒ‡å— +- 快速开始 +- 常è§ç”¨æ³• +- 最佳实践 + +### âš¡ 性能优化 +- 性能指标 +- ç“¶é¢ˆåˆ†æž +- 优化方案 + +### 🎯 é¢è¯•必考 +- 高频问题 +- 答题æ€è·¯ +- 深度扩展 + +### 📚 å‚è€ƒèµ„æº +- 官方文档 +- 推è阅读 +- 代ç ç¤ºä¾‹ +``` + +--- + +## 2ï¸âƒ£ ðŸ› ï¸ å·¥å…·ä¸Žèµ„æºï¼ˆå¾…扩展) + +- **最佳实践**: 设计模å¼ã€ä»£ç è§„范ã€å®‰å…¨å®žè·µ +- **常用链接**: 文档汇总ã€åœ¨çº¿å·¥å…·ã€ç¤¾åŒºè®ºå› +- **推è阅读**: ç»å…¸ä¹¦ç±ã€è®ºæ–‡ã€åšå®¢ç²¾é€‰ + +--- + +## 3ï¸âƒ£ 📠Blog +- 技术分享 +- 学习笔记 +- 行业资讯 + +--- + +## 内容组织策略 + +### 按学习路径分级 +1. **快速入门** (â±ï¸ 5-10分钟) + - 适åˆåˆå­¦è€…快速上手 + +2. **深度学习** (â±ï¸ 30分钟-1å°æ—¶) + - 详细讲解原ç†ä¸Žå®žè·µ + +3. **性能与优化** (â±ï¸ 1-2å°æ—¶) + - 高级技巧与优化方案 + +4. **é¢è¯•çªç ´** (â±ï¸ çµæ´») + - 高频问题与答题框架 + +### æœç´¢ä¸Žè¿‡æ»¤æ”¯æŒ +- 按难度筛选 +- 按学习时间筛选 +- 按使用频率筛选 +- 按技术栈筛选 + +--- + +## 实施优先级 + +### Phase 1 (当å‰) +- ✅ 首页设计å‡çº§ï¼ˆè“色悬åœåŠ¨æ•ˆï¼‰ +- ✅ 多级èœå•é…ç½® +- ✅ 内容分类框架 + +### Phase 2 +- è¿ç§»çŽ°æœ‰å†…å®¹åˆ°æ–°åˆ†ç±» +- 补充 Spring 系列完整文档 +- 补充 React è¿›é˜¶æŒ‡å— + +### Phase 3 +- 补充算法与é¢è¯•题库 +- 添加交互å¼ä»£ç ç¼–辑器 +- 性能与æœç´¢ä¼˜åŒ– + +### Phase 4 +- 用户å馈收集与迭代 +- 内容深化与补充 +- 社区建设 + +--- + +## ç›®æ ‡æ•°æ® + +| 指标 | å½“å‰ | 目标 | +|-----|------|------| +| æ–‡æ¡£é¡µé¢æ•° | ~30 | 200+ | +| 一级分类 | 3 | 4+ | +| 二级分类 | ~6 | 15+ | +| 代ç ç¤ºä¾‹æ•° | ~10 | 100+ | +| æ—¥å‡è®¿é—® | N/A | 1000+ | + +--- + +## å‚考标准 + +- å‚考 Dyte Docs 的多级èœå•ã€å¼ºå¤§çš„æœç´¢ +- å‚考 MDN 的结构化学习路径 +- å‚考 阿里技术文档 的工程最佳实践 diff --git a/UPGRADE_SUMMARY.md b/UPGRADE_SUMMARY.md new file mode 100644 index 0000000..70d5ac4 --- /dev/null +++ b/UPGRADE_SUMMARY.md @@ -0,0 +1,310 @@ +# CodeDocs å‡çº§æ€»ç»“ä¸Žå®žæ–½æŒ‡å— + +## 📋 已完æˆçš„å‡çº§ + +### 1ï¸âƒ£ 首页样å¼å‡çº§ ✅ + +#### å˜æ›´æ¸…å• +- **HomepageFeatures.tsx**: + - 从 3 ä¸ªç®€å•æ–‡æœ¬å¡ç‰‡ → 交互å¼å¡ç‰‡ç»„ä»¶ + - 支æŒå›¾æ ‡ã€é¢œè‰²ã€æ¸å˜èƒŒæ™¯ + - 完整的 hover 动效和动画 + +- **HomepageFeatures.module.css**: + - 新增è“色悬åœåŠ¨æ•ˆ (`hover:text-primary`) + - 新增图标背景色å˜åŒ– + - 新增箭头滑出动画 + - 新增å¡ç‰‡ç¼©æ”¾ + 投影效果 + - 新增分层æ¸å˜èƒŒæ™¯ + - å“应å¼ç½‘格布局(3列→1列) + +- **index.tsx**: + - 新增 3 个主è¦å¯¼èˆªæŒ‰é’® + - 优化首页文案 + - 增强视觉层级 + +#### 设计ç†å¿µï¼ˆå‚考 dyte-io/docs) +``` +å¡ç‰‡ç»„æˆ = icon + title + description + hover-effect +├── Icon: æ ¹æ®åˆ†ç±»å˜è‰²ï¼ˆè“色/é’色/粉色) +├── Title: hover æ—¶å˜ä¸ºä¸»è‰² (#2160fd) +├── Border: hover 时从åŠé€æ˜Žâ†’主色 +└── Arrow: hover 时从éšè—→显示并滑入 +``` + +--- + +### 2ï¸âƒ£ 多级èœå•é…ç½® ✅ + +#### å˜æ›´æ¸…å• +- **docusaurus.config.ts - navbar.items**: + +```typescript +items: [ + // 技术文档 - 3 级分类 + { + type: 'dropdown', + label: '📚 技术文档', + items: [ + 'âš™ï¸ åŽç«¯æŠ€æœ¯', + 'âš›ï¸ å‰ç«¯å¼€å‘', + '🧠 算法与é¢è¯•' + ] + }, + + // å·¥å…·ä¸Žèµ„æº - 预留扩展 + { + type: 'dropdown', + label: 'ðŸ› ï¸ å·¥å…·ä¸Žèµ„æº', + items: [ + '📖 最佳实践', + '🔗 常用链接', + '📚 推è阅读' + ] + }, + + // 其他链接 + '📠Blog', + 'GitHub' +] +``` + +#### èœå•截图预期 +``` +顶部导航: +[📚 技术文档 â–¼] [ðŸ› ï¸ å·¥å…·ä¸Žèµ„æº â–¼] [📠Blog] [GitHub] + +下拉展开: +📚 技术文档 â–¼ +├─ âš™ï¸ åŽç«¯æŠ€æœ¯ +├─ âš›ï¸ å‰ç«¯å¼€å‘ +└─ 🧠 算法与é¢è¯• +``` + +--- + +### 3ï¸âƒ£ æ ·å¼ç³»ç»Ÿå‡çº§ ✅ + +#### å˜æ›´æ¸…å• +- **tailwind.config.js**: 新建 + - è“色色系定义 (#2160fd) + - é’è‰²è‰²ç³»æ”¯æŒ + - ç²‰è‰²è‰²ç³»æ”¯æŒ + - å“åº”å¼æ–­ç‚¹ä¼˜åŒ– + +- **postcss.config.js**: 新建 + - PostCSS 处ç†ç®¡é“é…ç½® + +- **custom.css**: é‡å†™ + - 原有 Infima 主色替æ¢ä¸ºè“色 (#2160fd) + - 增加 Tailwind 导入(@import) + - 新增 CSS å˜é‡ç³»ç»Ÿï¼ˆæ”¯æŒæ·±è‰²æ¨¡å¼ï¼‰ + - 新增 hero 背景æ¸å˜ + +#### 颜色对照表 +| 用途 | 颜色 | å六进制 | RGB | +|------|------|---------|-----| +| 主色 (Primary) | è“色 | #2160fd | rgb(33 96 253) | +| 悬åœå¼ºè°ƒ | æ·±è“ | #1850d8 | - | +| 次色 (Secondary) | é’色 | #06b6d4 | - | +| 三色 (Tertiary) | 粉色 | #ec4899 | - | + +--- + +### 4ï¸âƒ£ 内容架构规划 ✅ + +#### 文档ä½ç½® +- `ARCHITECTURE_PLAN.md` - 完整规划书 + +#### 结构概览 +``` +一级èœå• (4 ç±») +├─ 📚 技术文档 +│ ├─ âš™ï¸ åŽç«¯æŠ€æœ¯ (Java/Spring/Database/MQ/分布å¼) +│ ├─ âš›ï¸ å‰ç«¯å¼€å‘ (React/Vue/工程化/跨端) +│ └─ 🧠 算法与é¢è¯• (æ•°æ®ç»“æž„/算法/系统设计) +├─ ðŸ› ï¸ å·¥å…·ä¸Žèµ„æº (best practices/links/reading) +├─ 📠Blog (分享与资讯) +└─ GitHub (å¼€æº) +``` + +#### 内容分级(学习路径) +1. **快速入门** (â±ï¸ 5-10 分钟) - 适åˆåˆå­¦ +2. **深度学习** (â±ï¸ 30 分钟-1 å°æ—¶) - è¯¦è§£åŽŸç† +3. **性能优化** (â±ï¸ 1-2 å°æ—¶) - 高级技巧 +4. **é¢è¯•çªç ´** (â±ï¸ çµæ´») - 频考题 + +--- + +## 🚀 下一步æ“作 + +### 步骤 1: æœ¬åœ°éªŒè¯ (NOW) +```bash +cd /opt/cyy/code-docs + +# è‹¥æœªå®Œæˆ npm install,先安装ä¾èµ– +npm install + +# å¯åЍ开呿œåС噍 +npm start + +# 验è¯å†…容: +# ✅ 首页 3 个å¡ç‰‡æ˜¯å¦æ˜¾ç¤º +# ✅ å¡ç‰‡ hover æ˜¯å¦æœ‰è“色效果 +# ✅ èœå•æ˜¯å¦æ˜¾ç¤ºä¸‹æ‹‰ç®­å¤´ +# ✅ æ·±è‰²æ¨¡å¼æ˜¯å¦æ­£å¸¸ +``` + +### 步骤 2: è¿ç§»çŽ°æœ‰å†…å®¹ (Week 1) +``` +当剿–‡ä»¶ï¼š +docs/ +├─ intro-docs.mdx ✅ ä¿ç•™ +├─ backend-doc/ ✅ 已有结构 +├─ frontend-doc/ ✅ 已有结构 +├─ LeetCode/ ✅ 已有结构 +└─ ... + +需è¦å¤„ç†ï¼š +1. æ›´æ–° sidebars.ts ä»¥æ”¯æŒæ–°èœå• +2. éªŒè¯æ‰€æœ‰é“¾æŽ¥æœ‰æ•ˆæ€§ +3. 补充缺失的 intro-docs.md 文件 +``` + +### 步骤 3: èœå•é“¾æŽ¥ä¿®å¤ (Week 1) +在 navbar 中验è¯ä»¥ä¸‹è·¯ç”±å­˜åœ¨ï¼š +- `/docs/backend-doc/intro-docs` +- `/docs/frontend-doc/intro-docs` +- `/docs/LeetCode/intro-docs` + +### 步骤 4: 内容扩充计划 (Phase 2) +æ ¹æ® ARCHITECTURE_PLAN.md 逿­¥æ·»åŠ ï¼š + +**高优先级**: +- [ ] Spring Framework 核心(5-8 篇) +- [ ] React Hooks 深入(3-5 篇) +- [ ] LeetCode 精选题库(10-15 题) + +**中优先级**: +- [ ] JVM 调优系列 +- [ ] Vue 3 å®Œæ•´æŒ‡å— +- [ ] 系统设计案例 + +**低优先级**: +- [ ] 最佳实践åˆé›† +- [ ] 工具对比 +- [ ] 推èä¹¦ç± + +--- + +## 🎨 设计效果预览 + +### 首页å¡ç‰‡æ•ˆæžœ +``` +┌─────────────────────────────────┠+│ [âš™ï¸] åŽç«¯æŠ€æœ¯ │ → hover: border-blue, text-blue, arrow-in +│ │ +│ 深度讲解 Spring Boot / Spring │ +│ Cloud æ ¸å¿ƒæ¦‚å¿µã€æœ€ä½³å®žè·µ... │ +│ │ +│ → │ (animated) +└─────────────────────────────────┘ + +动效细节: +- æ¸å˜èƒŒæ™¯ä»Žç°â†’è“色æ¸å˜ +- 图标放大 10%,背景å˜è“ +- æ ‡é¢˜å˜æˆè“色 (#2160fd) +- 箭头从å³ä¾§æ»‘å…¥ +- 整体å¡ç‰‡ä¸Šç§» 4px +- 投影增强,显示深度感 +``` + +### 顶部èœå•效果 +``` +┌─ CodeDocs ─────┠[📚 技术文档 â–¼] [ðŸ› ï¸ å·¥å…· â–¼] [📠Blog] [GitHub] + ↓ + ┌─────────────┠+ │ âš™ï¸ åŽç«¯ │ + │ âš›ï¸ å‰ç«¯ │ + │ 🧠 算法 │ + └─────────────┘ +``` + +--- + +## 📊 æ£€æŸ¥æ¸…å• + +- [ ] npm install å®Œæˆ +- [ ] npm start 本地验è¯é€šè¿‡ +- [ ] 首页å¡ç‰‡æ˜¾ç¤ºæ­£å¸¸ +- [ ] å¡ç‰‡ hover 效果生效 +- [ ] èœå•下拉正常 +- [ ] 所有链接有效 +- [ ] æ·±è‰²æ¨¡å¼æµ‹è¯• +- [ ] å“应å¼ï¼ˆæ‰‹æœºç«¯ï¼‰æµ‹è¯• + +--- + +## ðŸ“ æ–‡ä»¶å˜æ›´æ€»ç»“ + +| 文件 | æ“作 | 说明 | +|-----|------|------| +| `src/components/HomepageFeatures.tsx` | âœï¸ 修改 | 新组件结构 + 3 色å¡ç‰‡ | +| `src/components/HomepageFeatures.module.css` | âœï¸ é‡å†™ | 完整的悬åœåŠ¨æ•ˆ | +| `src/pages/index.tsx` | âœï¸ 修改 | æ–°çš„ CTA 按钮 | +| `src/css/custom.css` | âœï¸ é‡å†™ | ä¸»è‰²æ”¹è“ + Tailwind 导入 | +| `docusaurus.config.ts` | âœï¸ 修改 | 多级èœå•é…ç½® | +| `tailwind.config.js` | ✨ 新建 | Tailwind é…ç½® | +| `postcss.config.js` | ✨ 新建 | PostCSS ç®¡é“ | +| `package.json` | âœï¸ 修改 | å·²å‡çº§ä¾èµ–版本 | +| `ARCHITECTURE_PLAN.md` | ✨ 新建 | 内容架构规划 | + +--- + +## 🆘 常è§é—®é¢˜ + +### Q1: npm install 很慢? +**A**: 使用 pnpm 或 npm 阿里镜åƒåŠ é€Ÿ +```bash +npm install -g pnpm +pnpm install +``` + +### Q2: Tailwind æ ·å¼æœªç”Ÿæ•ˆï¼Ÿ +**A**: 需è¦å…ˆå®Œæˆ `npm install`,å†è¿è¡Œ `npm start` + +### Q3: 首页链接 404? +**A**: 检查 `/docs` 下是å¦å­˜åœ¨å¯¹åº”的文件夹: +```bash +ls -la docs/ +# 应该看到:backend-doc/ frontend-doc/ LeetCode/ +``` + +### Q4: 深色模å¼å›¾æ ‡ä¸æ¸…晰? +**A**: 在 custom.css 中针对 `[data-theme='dark']` 添加 color 覆盖 + +--- + +## 📞 åŽç»­æ”¯æŒ + +需è¦è¿›ä¸€æ­¥å‡çº§ï¼š +1. **æœç´¢ä¼˜åŒ–** - é›†æˆ Algolia 优化查询 +2. **版本管ç†** - 为 SDK 文档添加版本切æ¢ï¼ˆå‚考 dyte-io/docs) +3. **API 文档** - é›†æˆ OpenAPI / Swagger +4. **交互示例** - 嵌入 CodeSandbox / RunKit +5. **å馈系统** - 页é¢è¯„分与问题报告 + +--- + +## å‚è€ƒèµ„æº + +- 📖 [Docusaurus 官方文档](https://docusaurus.io/) +- 🎨 [Tailwind CSS](https://tailwindcss.com/) +- 🔗 [dyte-io/docs æºä»£ç ](https://github.com/dyte-io/docs) +- 📚 [MDN 文档结构å‚考](https://developer.mozilla.org/) + +--- + +**æœ€åŽæ›´æ–°**: 2026-05-06 +**更新者**: CodeDocs å‡çº§ç³»ç»Ÿ +**版本**: v2.0 diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 9e602eb..b4cc9a0 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -50,12 +50,51 @@ const config: Config = { }, items: [ { - type: 'doc', - docId: 'intro-docs', + type: 'dropdown', + label: '📚 技术文档', position: 'left', - label: 'Docs', + items: [ + { + type: 'doc', + docId: 'backend-doc/intro-docs', + label: 'âš™ï¸ åŽç«¯æŠ€æœ¯', + }, + { + type: 'doc', + docId: 'frontend-doc/intro-docs', + label: 'âš›ï¸ å‰ç«¯å¼€å‘', + }, + { + type: 'doc', + docId: 'LeetCode/intro-docs', + label: '🧠 算法与é¢è¯•', + }, + ], + }, + { + type: 'dropdown', + label: 'ðŸ› ï¸ å·¥å…·ä¸Žèµ„æº', + position: 'left', + items: [ + { + label: '📖 最佳实践', + href: '#', + }, + { + label: '🔗 常用链接', + href: '#', + }, + { + label: '📚 推è阅读', + href: '#', + }, + ], + }, + { + to: '/blog', + label: '📠Blog', + position: 'left' }, - { to: '/blog', label: 'Blog', position: 'left' }, { href: 'https://github.com/chuyaoyuan/code-docs', label: 'GitHub', diff --git a/package-lock.json b/package-lock.json index eab5562..77a7a92 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,8 +8,8 @@ "name": "code-docs", "version": "0.0.0", "dependencies": { - "@docusaurus/core": "^3.7.0", - "@docusaurus/preset-classic": "^3.7.0", + "@docusaurus/core": "^3.10.1", + "@docusaurus/preset-classic": "^3.10.1", "@mdx-js/react": "^3.0.0", "clsx": "^2.1.1", "react": "^18.3.1", @@ -18,21 +18,21 @@ "remark-math": "^6.0.0" }, "devDependencies": { - "@docusaurus/tsconfig": "^3.7.0", + "@docusaurus/tsconfig": "^3.10.1", "dotenv": "^16.4.7", "typescript": "^5.4.5" } }, "node_modules/@algolia/abtesting": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@algolia/abtesting/-/abtesting-1.17.0.tgz", - "integrity": "sha512-nuhHZdTiCtRzJEe9VSNzyqE9cOQMt01UWBzymFnjbgwrxxZpbGHQde6Oa/y9zyspTCjbUtb7Q5HQek1CLiLyeg==", + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/@algolia/abtesting/-/abtesting-1.18.1.tgz", + "integrity": "sha512-aehCadlWOGvrT91KUIZpC0MbB8KBW9yUuvTJFd2xesR7le/IsT4nJUnjCCZ4ZqZCeTcPHPV5mo//fZ5oxcSVYw==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.51.0", - "@algolia/requester-browser-xhr": "5.51.0", - "@algolia/requester-fetch": "5.51.0", - "@algolia/requester-node-http": "5.51.0" + "@algolia/client-common": "5.52.1", + "@algolia/requester-browser-xhr": "5.52.1", + "@algolia/requester-fetch": "5.52.1", + "@algolia/requester-node-http": "5.52.1" }, "engines": { "node": ">= 14.0.0" @@ -71,99 +71,100 @@ } }, "node_modules/@algolia/client-abtesting": { - "version": "5.51.0", - "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.51.0.tgz", - "integrity": "sha512-PKrKlIla1U2J7mFcIQn6N3pWP4oySmkxShnbbDsj/H7818gKbET5KsUwsVoNjWIxHKTJMCTcQ7ekAJ8Ea23NMg==", + "version": "5.52.1", + "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.52.1.tgz", + "integrity": "sha512-HmXOGBOAOJPounpBzBpuY0zDYeiCpxgHnQmuA7JO6ScukcBdGp3/XM9zJk5pJx/xNGD68mbPGXWpDxGtl6BwDQ==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.51.0", - "@algolia/requester-browser-xhr": "5.51.0", - "@algolia/requester-fetch": "5.51.0", - "@algolia/requester-node-http": "5.51.0" + "@algolia/client-common": "5.52.1", + "@algolia/requester-browser-xhr": "5.52.1", + "@algolia/requester-fetch": "5.52.1", + "@algolia/requester-node-http": "5.52.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-analytics": { - "version": "5.51.0", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.51.0.tgz", - "integrity": "sha512-U+HCY1K16Km91pIRL1kN6bW6BbGFAF/WhkRSCx4wyl1aFpbrlhSFQs/dAwWbmyBiHWwVWhl7stWHQ1pum5EfMw==", + "version": "5.52.1", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.52.1.tgz", + "integrity": "sha512-5oo4+I8iixie9vXhCyNFCzeIr8pqA3FQ//VsLHTDvZAV4ttYOPGvYHGQq5NSalrLx5Jc3dRro/5uDOlnUMcBJg==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.51.0", - "@algolia/requester-browser-xhr": "5.51.0", - "@algolia/requester-fetch": "5.51.0", - "@algolia/requester-node-http": "5.51.0" + "@algolia/client-common": "5.52.1", + "@algolia/requester-browser-xhr": "5.52.1", + "@algolia/requester-fetch": "5.52.1", + "@algolia/requester-node-http": "5.52.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-common": { - "version": "5.51.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.51.0.tgz", - "integrity": "sha512-YPJ3dEuZLCRp846Az94t6Z2gwSNRazP+SmBco7p6SCa4fYrtIE820PDXYZshbNrj2Z8Qfbmv7BQ1Lecl5L3G/w==", + "version": "5.52.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.52.1.tgz", + "integrity": "sha512-qCDoZfx5MpX7XQzvQ3bC4tSEMkQWQMaF/ABtLuoze03Y/flR563CCSws02qIJ23oX7lxl92LsilZjINVyTdtLw==", "license": "MIT", "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-insights": { - "version": "5.51.0", - "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.51.0.tgz", - "integrity": "sha512-/gEwLlR7fQ7YjOW+ADRZ0NxLDtpTC61FSzlZ01Gdl1kTJfU0Rq3Y/TYqwxGxlQGcUiXtGzrpjxXWh3Y0TZD6NA==", + "version": "5.52.1", + "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.52.1.tgz", + "integrity": "sha512-hnGs0/lsFJ2PWDxNBz7pxreXo/Xz7gxYRcfePBUjsH26ad0kU/sgnVZd9LwWBpsQv65z2jlb5dkyaB9WE9M9FQ==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.51.0", - "@algolia/requester-browser-xhr": "5.51.0", - "@algolia/requester-fetch": "5.51.0", - "@algolia/requester-node-http": "5.51.0" + "@algolia/client-common": "5.52.1", + "@algolia/requester-browser-xhr": "5.52.1", + "@algolia/requester-fetch": "5.52.1", + "@algolia/requester-node-http": "5.52.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-personalization": { - "version": "5.51.0", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.51.0.tgz", - "integrity": "sha512-nRwUN1Y2cKyOAFZyIBagkEfZSIhP05nWhT4Rjwl84lcjECssYggftrAODrZ4leakXxSGjhxs/AdaAFEIBqwVFA==", + "version": "5.52.1", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.52.1.tgz", + "integrity": "sha512-2VxxNc/uBysyKvGeBdSM5n9eIDKH8kWD7wd9/yqbJAiVwU4Yv6tU1LSJusHKrXV/aCu1KW7t9Gug9QyeEmtn/Q==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.51.0", - "@algolia/requester-browser-xhr": "5.51.0", - "@algolia/requester-fetch": "5.51.0", - "@algolia/requester-node-http": "5.51.0" + "@algolia/client-common": "5.52.1", + "@algolia/requester-browser-xhr": "5.52.1", + "@algolia/requester-fetch": "5.52.1", + "@algolia/requester-node-http": "5.52.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-query-suggestions": { - "version": "5.51.0", - "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.51.0.tgz", - "integrity": "sha512-pybzYCG7VoQKppo+z5iZOKpW8XqtFxhsAIRgEaNboCnfypKukiBHJAwB+pmr7vMZXBsOHwklGYWwCG82e8qshA==", + "version": "5.52.1", + "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.52.1.tgz", + "integrity": "sha512-O6mPtsw3xEfNOe6gWFpYLeAZAIljNa4Hgna3bq15PwyN7nbjTY0wXJFRbzs/0YVf75Br+SbOQUmjKxXYjDiSiQ==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.51.0", - "@algolia/requester-browser-xhr": "5.51.0", - "@algolia/requester-fetch": "5.51.0", - "@algolia/requester-node-http": "5.51.0" + "@algolia/client-common": "5.52.1", + "@algolia/requester-browser-xhr": "5.52.1", + "@algolia/requester-fetch": "5.52.1", + "@algolia/requester-node-http": "5.52.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-search": { - "version": "5.51.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.51.0.tgz", - "integrity": "sha512-DWVIlj6RqcvdhwP0gBU9OpOQPnHdcAk9jlT+z8rsNb2+liWv4eUlfQZ7saGBraFsnygEHD3PtdppIHvqwBAb5w==", + "version": "5.52.1", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.52.1.tgz", + "integrity": "sha512-gA8oJOV1LnQQkDf91iebNnFInHuW0gRPEgLSOQ7EfipCEjYTHm5swm1DlH9H5RaRw4RrHuzHBegnlzc0MAstcg==", "license": "MIT", + "peer": true, "dependencies": { - "@algolia/client-common": "5.51.0", - "@algolia/requester-browser-xhr": "5.51.0", - "@algolia/requester-fetch": "5.51.0", - "@algolia/requester-node-http": "5.51.0" + "@algolia/client-common": "5.52.1", + "@algolia/requester-browser-xhr": "5.52.1", + "@algolia/requester-fetch": "5.52.1", + "@algolia/requester-node-http": "5.52.1" }, "engines": { "node": ">= 14.0.0" @@ -176,81 +177,81 @@ "license": "MIT" }, "node_modules/@algolia/ingestion": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.51.0.tgz", - "integrity": "sha512-bA25s12iUDJi/X8M7tWlPRT8GeOhls/yDbdoUqinz27lNqsOlcM1UrAxIKdIZ6lm3sXit+ewPIz1pS2x6rXu8g==", + "version": "1.52.1", + "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.52.1.tgz", + "integrity": "sha512-U9zZfc5xIu9wRxZkt+HceJUAD4VKHKbAyLSloJdEyMRmphXeibfrY9cxqIXBcmPeZzGhn3Imb35Dq8l19PkJhw==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.51.0", - "@algolia/requester-browser-xhr": "5.51.0", - "@algolia/requester-fetch": "5.51.0", - "@algolia/requester-node-http": "5.51.0" + "@algolia/client-common": "5.52.1", + "@algolia/requester-browser-xhr": "5.52.1", + "@algolia/requester-fetch": "5.52.1", + "@algolia/requester-node-http": "5.52.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/monitoring": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.51.0.tgz", - "integrity": "sha512-zj+RcE5e0NE0/ew6oEOTgOplPHry+w2oi7h0Y87lhdq4E0d7xLS31KVB8kKfCGkrG7AYtZvrcyvLOKS5d0no4Q==", + "version": "1.52.1", + "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.52.1.tgz", + "integrity": "sha512-a3SGNceHmkQfq77iG8Ka+w1pvwfZa/0lzEIgse30fL0kD+yKnd/dg0dQvSfFPAEt2f21DMcGkDSSeJlO3KdQjQ==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.51.0", - "@algolia/requester-browser-xhr": "5.51.0", - "@algolia/requester-fetch": "5.51.0", - "@algolia/requester-node-http": "5.51.0" + "@algolia/client-common": "5.52.1", + "@algolia/requester-browser-xhr": "5.52.1", + "@algolia/requester-fetch": "5.52.1", + "@algolia/requester-node-http": "5.52.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/recommend": { - "version": "5.51.0", - "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.51.0.tgz", - "integrity": "sha512-/HDgccfye1Rq3bPxaSCsvSEBHzSMmtpM9ZRGRtAuC62Cv+ql/76IWnxjGTDXtqIJ+/j7ZlFYAzq9fkp95wF2SQ==", + "version": "5.52.1", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.52.1.tgz", + "integrity": "sha512-z98QEguCFDpxb4S/PyrUK1igqF8tPsdbqOUUO6ON91vJ58w+Gwa6ncrI0oNXSFcrkxA5EqPKPQ2A1PBCn08TYQ==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.51.0", - "@algolia/requester-browser-xhr": "5.51.0", - "@algolia/requester-fetch": "5.51.0", - "@algolia/requester-node-http": "5.51.0" + "@algolia/client-common": "5.52.1", + "@algolia/requester-browser-xhr": "5.52.1", + "@algolia/requester-fetch": "5.52.1", + "@algolia/requester-node-http": "5.52.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-browser-xhr": { - "version": "5.51.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.51.0.tgz", - "integrity": "sha512-nJdW+WBwGlXWMJbxxB7/AJPvNq0lLJSudXmIQCJbmH8jsOXQhRpAtoCD4ceLyJKv3ze9JbQu4Gqu5JDLckuFcw==", + "version": "5.52.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.52.1.tgz", + "integrity": "sha512-CI7+/0I11QeZM59Uc8whd2or0kqzFVjpaPn9Qpwll/krHcBAxk24WkAQ6WX+IwDVMfpont4YGbKwAmCre3vE8Q==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.51.0" + "@algolia/client-common": "5.52.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-fetch": { - "version": "5.51.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.51.0.tgz", - "integrity": "sha512-bsBgRI/1h1mjS3eCyfGau78yGZVmiDLmT1aU6dMnk75/T0SgKqnSKNpQ53xKoDYVChGDcNnpHXWpoUSo8MH1+w==", + "version": "5.52.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.52.1.tgz", + "integrity": "sha512-S6bDuw9byfOvm3T71cgdoZgrgnZq6hpdMLkx52Louh57nUAmvGQESz2aojOynQHjbTiV55smvAFbgn0qT4tJrg==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.51.0" + "@algolia/client-common": "5.52.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-node-http": { - "version": "5.51.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.51.0.tgz", - "integrity": "sha512-zPrIDVPpmKWgrjmWOqpqrhqAhNjvVkjoj+mqw2NBPxEOuKNzP0H+Qz5NJLLTOepBVj1UFedFaF3AUgxLsB9ukQ==", + "version": "5.52.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.52.1.tgz", + "integrity": "sha512-tqZXM+54rWo4mk5jL5Z/flE11nPmNEdXwFBM5py9DkOmbjeCNemfVd45FyM97XdzfZ0dl9uOJC6PYn1FpkeyQg==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.51.0" + "@algolia/client-common": "5.52.1" }, "engines": { "node": ">= 14.0.0" @@ -271,9 +272,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", - "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", + "version": "7.29.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.3.tgz", + "integrity": "sha512-LIVqM46zQWZhj17qA8wb4nW/ixr2y1Nw+r1etiAWgRM6U1IqP+LNhL1yg440jYZR72jCWcWbLWzIosH+uP1fqg==", "license": "MIT", "engines": { "node": ">=6.9.0" @@ -284,6 +285,7 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/generator": "^7.29.0", @@ -372,9 +374,9 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.6.tgz", - "integrity": "sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==", + "version": "7.29.3", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.29.3.tgz", + "integrity": "sha512-RpLYy2sb51oNLjuu1iD3bwBqCBWUzjO0ocp+iaCP/lJtb2CPLcnC2Fftw+4sAzaMELGeWTgExSKADbdo0GFVzA==", "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", @@ -382,7 +384,7 @@ "@babel/helper-optimise-call-expression": "^7.27.1", "@babel/helper-replace-supers": "^7.28.6", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/traverse": "^7.28.6", + "@babel/traverse": "^7.29.0", "semver": "^6.3.1" }, "engines": { @@ -618,9 +620,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.29.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz", - "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", + "version": "7.29.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.3.tgz", + "integrity": "sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA==", "license": "MIT", "dependencies": { "@babel/types": "^7.29.0" @@ -678,6 +680,22 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": { + "version": "7.29.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-rest-destructuring-rhs-array/-/plugin-bugfix-safari-rest-destructuring-rhs-array-7.29.3.tgz", + "integrity": "sha512-SRS46DFR4HqzUzCVgi90/xMoL+zeBDBvWdKYXSEzh79kXswNFEglUpMKxR04//dPqwYXWUBJ3mpUd933ru9Kmg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", @@ -1208,9 +1226,9 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.0.tgz", - "integrity": "sha512-PrujnVFbOdUpw4UHiVwKvKRLMMic8+eC0CuNlxjsyZUiBjhFdPsewdXCkveh2KqBA9/waD0W1b4hXSOBQJezpQ==", + "version": "7.29.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.4.tgz", + "integrity": "sha512-N7QmZ0xRZfjHOfZeQLJjwgX2zS9pdGHSVl/cjSGlo4dXMqvurfxXDMKY4RqEKzPozV78VMcd0lxyG13mlbKc4w==", "license": "MIT", "dependencies": { "@babel/helper-module-transforms": "^7.28.6", @@ -1745,18 +1763,19 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.29.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.2.tgz", - "integrity": "sha512-DYD23veRYGvBFhcTY1iUvJnDNpuqNd/BzBwCvzOTKUnJjKg5kpUBh3/u9585Agdkgj+QuygG7jLfOPWMa2KVNw==", + "version": "7.29.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.5.tgz", + "integrity": "sha512-/69t2aEzGKHD76DyLbHysF/QH2LJOB8iFnYO37unDTKBTubzcMRv0f3H5EiN1Q6ajOd/eB7dAInF0qdFVS06kA==", "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.29.0", + "@babel/compat-data": "^7.29.3", "@babel/helper-compilation-targets": "^7.28.6", "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-validator-option": "^7.27.1", "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5", "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", + "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": "^7.29.3", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.6", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", @@ -1788,7 +1807,7 @@ "@babel/plugin-transform-member-expression-literals": "^7.27.1", "@babel/plugin-transform-modules-amd": "^7.27.1", "@babel/plugin-transform-modules-commonjs": "^7.28.6", - "@babel/plugin-transform-modules-systemjs": "^7.29.0", + "@babel/plugin-transform-modules-systemjs": "^7.29.4", "@babel/plugin-transform-modules-umd": "^7.27.1", "@babel/plugin-transform-named-capturing-groups-regex": "^7.29.0", "@babel/plugin-transform-new-target": "^7.27.1", @@ -2074,6 +2093,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=18" }, @@ -2096,6 +2116,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=18" } @@ -2205,6 +2226,7 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", "license": "MIT", + "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -2626,6 +2648,7 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", "license": "MIT", + "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -3384,9 +3407,9 @@ } }, "node_modules/@docusaurus/babel": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@docusaurus/babel/-/babel-3.10.0.tgz", - "integrity": "sha512-mqCJhCZNZUDg0zgDEaPTM4DnRsisa24HdqTy/qn/MQlbwhTb4WVaZg6ZyX6yIVKqTz8fS1hBMgM+98z+BeJJDg==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@docusaurus/babel/-/babel-3.10.1.tgz", + "integrity": "sha512-DZzFO1K3v/GoEt1fx1DiYHF4en+PuhtQf1AkQJa5zu3CoeKSpr5cpQRUlz3jr0m44wyzmSXu9bVpfir+N4+8bg==", "license": "MIT", "dependencies": { "@babel/core": "^7.25.9", @@ -3398,8 +3421,8 @@ "@babel/preset-typescript": "^7.25.9", "@babel/runtime": "^7.25.9", "@babel/traverse": "^7.25.9", - "@docusaurus/logger": "3.10.0", - "@docusaurus/utils": "3.10.0", + "@docusaurus/logger": "3.10.1", + "@docusaurus/utils": "3.10.1", "babel-plugin-dynamic-import-node": "^2.3.3", "fs-extra": "^11.1.1", "tslib": "^2.6.0" @@ -3409,17 +3432,17 @@ } }, "node_modules/@docusaurus/bundler": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@docusaurus/bundler/-/bundler-3.10.0.tgz", - "integrity": "sha512-iONUGZGgp+lAkw/cJZH6irONcF4p8+278IsdRlq8lYhxGjkoNUs0w7F4gVXBYSNChq5KG5/JleTSsdJySShxow==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@docusaurus/bundler/-/bundler-3.10.1.tgz", + "integrity": "sha512-HIqQPvbqnnQRe4NsBd1774KRarjXqS6wHsWELtyuSs1gCfvixJO2jUGH/OEBtr1Gvzpw+ze5CjGMvSJ8UE1KUw==", "license": "MIT", "dependencies": { "@babel/core": "^7.25.9", - "@docusaurus/babel": "3.10.0", - "@docusaurus/cssnano-preset": "3.10.0", - "@docusaurus/logger": "3.10.0", - "@docusaurus/types": "3.10.0", - "@docusaurus/utils": "3.10.0", + "@docusaurus/babel": "3.10.1", + "@docusaurus/cssnano-preset": "3.10.1", + "@docusaurus/logger": "3.10.1", + "@docusaurus/types": "3.10.1", + "@docusaurus/utils": "3.10.1", "babel-loader": "^9.2.1", "clean-css": "^5.3.3", "copy-webpack-plugin": "^11.0.0", @@ -3437,7 +3460,7 @@ "tslib": "^2.6.0", "url-loader": "^4.1.1", "webpack": "^5.95.0", - "webpackbar": "^6.0.1" + "webpackbar": "^7.0.0" }, "engines": { "node": ">=20.0" @@ -3452,18 +3475,18 @@ } }, "node_modules/@docusaurus/core": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.10.0.tgz", - "integrity": "sha512-mgLdQsO8xppnQZc3LPi+Mf+PkPeyxJeIx11AXAq/14fsaMefInQiMEZUUmrc7J+956G/f7MwE7tn8KZgi3iRcA==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.10.1.tgz", + "integrity": "sha512-3pf2fXXw0eVk8WnC3T4LIigRDupcpvngpKo9Vy7mYyBhuddc0klDUuZAIfzMoK6z05pdlk6EFC/vBSX43+1O5w==", "license": "MIT", "dependencies": { - "@docusaurus/babel": "3.10.0", - "@docusaurus/bundler": "3.10.0", - "@docusaurus/logger": "3.10.0", - "@docusaurus/mdx-loader": "3.10.0", - "@docusaurus/utils": "3.10.0", - "@docusaurus/utils-common": "3.10.0", - "@docusaurus/utils-validation": "3.10.0", + "@docusaurus/babel": "3.10.1", + "@docusaurus/bundler": "3.10.1", + "@docusaurus/logger": "3.10.1", + "@docusaurus/mdx-loader": "3.10.1", + "@docusaurus/utils": "3.10.1", + "@docusaurus/utils-common": "3.10.1", + "@docusaurus/utils-validation": "3.10.1", "boxen": "^6.2.1", "chalk": "^4.1.2", "chokidar": "^3.5.3", @@ -3519,9 +3542,9 @@ } }, "node_modules/@docusaurus/cssnano-preset": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.10.0.tgz", - "integrity": "sha512-qzSshTO1DB3TYW+dPUal5KHM7XPc5YQfzF3Kdb2NDACJUyGbNcFtw3tGkCJlYwhNCRKbZcmwraKUS1i5dcHdGg==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.10.1.tgz", + "integrity": "sha512-eNfHGcTKCSq6xmcavAkX3RRclHaE2xRCMParlDXLdXVP01/a2e/jKXMj/0ULnLFQSNwwuI62L0Ge8J+nZsR7UQ==", "license": "MIT", "dependencies": { "cssnano-preset-advanced": "^6.1.2", @@ -3534,9 +3557,9 @@ } }, "node_modules/@docusaurus/logger": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.10.0.tgz", - "integrity": "sha512-9jrZzFuBH1LDRlZ7cznAhCLmAZ3HSDqgwdrSSZdGHq9SPUOQgXXu8mnxe2ZRB9NS1PCpMTIOVUqDtZPIhMafZg==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.10.1.tgz", + "integrity": "sha512-oPjNFnfJsRCkePVjkGrxWGq4MvJKRQT0r9jOP0eRBTZ7Wr9FAbzdP/Gjs0I2Ss6YRkPoEgygKG112OkE6skvJw==", "license": "MIT", "dependencies": { "chalk": "^4.1.2", @@ -3547,14 +3570,14 @@ } }, "node_modules/@docusaurus/mdx-loader": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.10.0.tgz", - "integrity": "sha512-mQQV97080AH4PYNs087l202NMDqRopZA4mg5W76ZZyTFrmWhJ3mHg+8A+drJVENxw5/Q+wHMHLgsx+9z1nEs0A==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.10.1.tgz", + "integrity": "sha512-GRmeb/wQ+iXRrFwcHBfgQhrJxGElgCsoTWZYDhccjsZVne1p8MK/EpQVIloXttz76TCe78kKD5AEG9n1xc1oxQ==", "license": "MIT", "dependencies": { - "@docusaurus/logger": "3.10.0", - "@docusaurus/utils": "3.10.0", - "@docusaurus/utils-validation": "3.10.0", + "@docusaurus/logger": "3.10.1", + "@docusaurus/utils": "3.10.1", + "@docusaurus/utils-validation": "3.10.1", "@mdx-js/mdx": "^3.0.0", "@slorber/remark-comment": "^1.0.0", "escape-html": "^1.0.3", @@ -3586,12 +3609,12 @@ } }, "node_modules/@docusaurus/module-type-aliases": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.10.0.tgz", - "integrity": "sha512-/1O0Zg8w3DFrYX/I6Fbss7OJrtZw1QoyjDhegiFNHVi9A9Y0gQ3jUAytVxF6ywpAWpLyLxch8nN8H/V3XfzdJQ==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.10.1.tgz", + "integrity": "sha512-YoOZKUdGlp8xSYhuAkGdSo5Ydkbq4V4eK3sD8v0a2hloxCWdQbNBhkc+Ko9QyjpESc0BYcIGM5iHVAy5hdFV6w==", "license": "MIT", "dependencies": { - "@docusaurus/types": "3.10.0", + "@docusaurus/types": "3.10.1", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", @@ -3605,19 +3628,19 @@ } }, "node_modules/@docusaurus/plugin-content-blog": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.10.0.tgz", - "integrity": "sha512-RuTz68DhB7CL96QO5UsFbciD7GPYq6QV+YMfF9V0+N4ZgLhJIBgpVAr8GobrKF6NRe5cyWWETU5z5T834piG9g==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.10.1.tgz", + "integrity": "sha512-mmkgE6Q2+K74tnkou7tXlpDLvoCU/qkSa2GSQ3XUiHWvcebCoDQzS670RR3tO8PmaWlIyWWISYWzZLuMfxunRA==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.10.0", - "@docusaurus/logger": "3.10.0", - "@docusaurus/mdx-loader": "3.10.0", - "@docusaurus/theme-common": "3.10.0", - "@docusaurus/types": "3.10.0", - "@docusaurus/utils": "3.10.0", - "@docusaurus/utils-common": "3.10.0", - "@docusaurus/utils-validation": "3.10.0", + "@docusaurus/core": "3.10.1", + "@docusaurus/logger": "3.10.1", + "@docusaurus/mdx-loader": "3.10.1", + "@docusaurus/theme-common": "3.10.1", + "@docusaurus/types": "3.10.1", + "@docusaurus/utils": "3.10.1", + "@docusaurus/utils-common": "3.10.1", + "@docusaurus/utils-validation": "3.10.1", "cheerio": "1.0.0-rc.12", "combine-promises": "^1.1.0", "feed": "^4.2.2", @@ -3640,20 +3663,21 @@ } }, "node_modules/@docusaurus/plugin-content-docs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.10.0.tgz", - "integrity": "sha512-9BjHhf15ct8Z7TThTC0xRndKDVvMKmVsAGAN7W9FpNRzfMdScOGcXtLmcCWtJGvAezjOJIm6CxOYCy3Io5+RnQ==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.10.1.tgz", + "integrity": "sha512-2jRVrtzjf8LClGTHQlwlwuD3wQXRx3WEoF7XUarJ8Ou+0onV+SLtejsyfY9JLpfUh9hPhXM4pbBGkyAY4Bi3HQ==", "license": "MIT", + "peer": true, "dependencies": { - "@docusaurus/core": "3.10.0", - "@docusaurus/logger": "3.10.0", - "@docusaurus/mdx-loader": "3.10.0", - "@docusaurus/module-type-aliases": "3.10.0", - "@docusaurus/theme-common": "3.10.0", - "@docusaurus/types": "3.10.0", - "@docusaurus/utils": "3.10.0", - "@docusaurus/utils-common": "3.10.0", - "@docusaurus/utils-validation": "3.10.0", + "@docusaurus/core": "3.10.1", + "@docusaurus/logger": "3.10.1", + "@docusaurus/mdx-loader": "3.10.1", + "@docusaurus/module-type-aliases": "3.10.1", + "@docusaurus/theme-common": "3.10.1", + "@docusaurus/types": "3.10.1", + "@docusaurus/utils": "3.10.1", + "@docusaurus/utils-common": "3.10.1", + "@docusaurus/utils-validation": "3.10.1", "@types/react-router-config": "^5.0.7", "combine-promises": "^1.1.0", "fs-extra": "^11.1.1", @@ -3673,16 +3697,16 @@ } }, "node_modules/@docusaurus/plugin-content-pages": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.10.0.tgz", - "integrity": "sha512-5amX8kEJI+nIGtuLVjYk59Y5utEJ3CHETFOPEE4cooIRLA4xM4iBsA6zFgu4ljcopeYwvBzFEWf5g2I6Yb9SkA==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.10.1.tgz", + "integrity": "sha512-huJpaRPMl42nsFwuCXvV8bVDj2MazuwRJIUylI/RSlmZeJssVoZXeCjVf1y+1Drtpa9SKcdGn8yoJ76IRJijtw==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.10.0", - "@docusaurus/mdx-loader": "3.10.0", - "@docusaurus/types": "3.10.0", - "@docusaurus/utils": "3.10.0", - "@docusaurus/utils-validation": "3.10.0", + "@docusaurus/core": "3.10.1", + "@docusaurus/mdx-loader": "3.10.1", + "@docusaurus/types": "3.10.1", + "@docusaurus/utils": "3.10.1", + "@docusaurus/utils-validation": "3.10.1", "fs-extra": "^11.1.1", "tslib": "^2.6.0", "webpack": "^5.88.1" @@ -3696,15 +3720,15 @@ } }, "node_modules/@docusaurus/plugin-css-cascade-layers": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-css-cascade-layers/-/plugin-css-cascade-layers-3.10.0.tgz", - "integrity": "sha512-6q1vtt5FJcg5osgkHeM1euErECNqEZ5Z1j69yiNx2luEBIso+nxCkS9nqj8w+MK5X7rvKEToGhFfOFWncs51pQ==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-css-cascade-layers/-/plugin-css-cascade-layers-3.10.1.tgz", + "integrity": "sha512-r//fn+MNHkE1wCof8T29VAQezt1enGCpsFxoziBbvLgBM4JfXN2P3rxrBaavHmvLvm7lYkpJeitcDthwnmWCTw==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.10.0", - "@docusaurus/types": "3.10.0", - "@docusaurus/utils": "3.10.0", - "@docusaurus/utils-validation": "3.10.0", + "@docusaurus/core": "3.10.1", + "@docusaurus/types": "3.10.1", + "@docusaurus/utils": "3.10.1", + "@docusaurus/utils-validation": "3.10.1", "tslib": "^2.6.0" }, "engines": { @@ -3712,14 +3736,14 @@ } }, "node_modules/@docusaurus/plugin-debug": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.10.0.tgz", - "integrity": "sha512-XcljKN+G+nmmK69uQA1d9BlYU3ZftG3T3zpK8/7Hf/wrOlV7TA4Ampdrdwkg0jElKdKAoSnPhCO0/U3bQGsVQQ==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.10.1.tgz", + "integrity": "sha512-9KqOpKNfAyqGZykRb9LhIT/vyRF6sm/ykhjj/39JvaJahDS+jZJE0Z1Wfz9q3DUNDTMNN0Q7u/kk4rKKU+IJuA==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.10.0", - "@docusaurus/types": "3.10.0", - "@docusaurus/utils": "3.10.0", + "@docusaurus/core": "3.10.1", + "@docusaurus/types": "3.10.1", + "@docusaurus/utils": "3.10.1", "fs-extra": "^11.1.1", "react-json-view-lite": "^2.3.0", "tslib": "^2.6.0" @@ -3733,14 +3757,14 @@ } }, "node_modules/@docusaurus/plugin-google-analytics": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.10.0.tgz", - "integrity": "sha512-hTEoodatpBZnUat5nFExbuTGA1lhWGy7vZGuTew5Q3QDtGKFpSJLYmZJhdTjvCFwv1+qQ67hgAVlKdJOB8TXow==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.10.1.tgz", + "integrity": "sha512-8o0P1KtmgdYQHH+oInitPpRWI0Of5XednAX4+DMhQNSmGSRNrsEEHg1ebv35m9AgRClfAytCJ5jA9KvcASTyuA==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.10.0", - "@docusaurus/types": "3.10.0", - "@docusaurus/utils-validation": "3.10.0", + "@docusaurus/core": "3.10.1", + "@docusaurus/types": "3.10.1", + "@docusaurus/utils-validation": "3.10.1", "tslib": "^2.6.0" }, "engines": { @@ -3752,14 +3776,14 @@ } }, "node_modules/@docusaurus/plugin-google-gtag": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.10.0.tgz", - "integrity": "sha512-iB/Zzjv/eelJRbdULZqzWCbgMgJ7ht4ONVjXtN3+BI/muil6S87gQ1OJyPwlXD+ELdKkitC7bWv5eJdYOZLhrQ==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.10.1.tgz", + "integrity": "sha512-pu3xIUo5o/zCMLfUY9BO5KOwSH0zIsAGyFRPvXHayFSA5XIhCU/SFuB0g0ZNjFn9niZLCaNvoeAuOGFJZq0fdw==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.10.0", - "@docusaurus/types": "3.10.0", - "@docusaurus/utils-validation": "3.10.0", + "@docusaurus/core": "3.10.1", + "@docusaurus/types": "3.10.1", + "@docusaurus/utils-validation": "3.10.1", "@types/gtag.js": "^0.0.20", "tslib": "^2.6.0" }, @@ -3772,14 +3796,14 @@ } }, "node_modules/@docusaurus/plugin-google-tag-manager": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.10.0.tgz", - "integrity": "sha512-FEjZxqKgLHa+Wez/EgKxRwvArNCWIScfyEQD95rot7jkxp6nonjI5XIbGfO/iYhM5Qinwe8aIEQHP2KZtpqVuA==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.10.1.tgz", + "integrity": "sha512-f6fyGHiCm7kJHBtAisGQS5oNBnpnMTYQZxDXeVrnw/3zWU+LMA22pr6UHGYkBKDbN+qPC5QHG3NuOfzQLq3+Lw==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.10.0", - "@docusaurus/types": "3.10.0", - "@docusaurus/utils-validation": "3.10.0", + "@docusaurus/core": "3.10.1", + "@docusaurus/types": "3.10.1", + "@docusaurus/utils-validation": "3.10.1", "tslib": "^2.6.0" }, "engines": { @@ -3791,17 +3815,17 @@ } }, "node_modules/@docusaurus/plugin-sitemap": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.10.0.tgz", - "integrity": "sha512-DVTSLjB97hIjmayGnGcBfognCeI7ZuUKgEnU7Oz81JYqXtVg94mVTthDjq3QHTylYNeCUbkaW8VF0FDLcc8pPw==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.10.1.tgz", + "integrity": "sha512-C26MbmmqgdjkDq1htaZ3aD7LzEDKFWXfpyQpt0EOUThuq5nV77zDaedV20yHcVo9p+3ey9aZ4pbHA0D3QcZTzg==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.10.0", - "@docusaurus/logger": "3.10.0", - "@docusaurus/types": "3.10.0", - "@docusaurus/utils": "3.10.0", - "@docusaurus/utils-common": "3.10.0", - "@docusaurus/utils-validation": "3.10.0", + "@docusaurus/core": "3.10.1", + "@docusaurus/logger": "3.10.1", + "@docusaurus/types": "3.10.1", + "@docusaurus/utils": "3.10.1", + "@docusaurus/utils-common": "3.10.1", + "@docusaurus/utils-validation": "3.10.1", "fs-extra": "^11.1.1", "sitemap": "^7.1.1", "tslib": "^2.6.0" @@ -3815,15 +3839,15 @@ } }, "node_modules/@docusaurus/plugin-svgr": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-svgr/-/plugin-svgr-3.10.0.tgz", - "integrity": "sha512-lNljBESaETZqVBMPqkrGchr+UPT1eZzEPLmJhz8I76BxbjqgsUnRvrq6lQJ9sYjgmgX52KB7kkgczqd2yzoswQ==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-svgr/-/plugin-svgr-3.10.1.tgz", + "integrity": "sha512-6SFxsmjWFkVLDmBUvFK6i72QjUwqyQFe4Ovz+SUJophJjOyVG3ZZG5IQpBC/kX/Gfv1yWeU9nWauH6F6Q7QX/Q==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.10.0", - "@docusaurus/types": "3.10.0", - "@docusaurus/utils": "3.10.0", - "@docusaurus/utils-validation": "3.10.0", + "@docusaurus/core": "3.10.1", + "@docusaurus/types": "3.10.1", + "@docusaurus/utils": "3.10.1", + "@docusaurus/utils-validation": "3.10.1", "@svgr/core": "8.1.0", "@svgr/webpack": "^8.1.0", "tslib": "^2.6.0", @@ -3838,26 +3862,26 @@ } }, "node_modules/@docusaurus/preset-classic": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.10.0.tgz", - "integrity": "sha512-kw/Ye02Hc6xP1OdTswy8yxQEHg0fdPpyWAQRxr5b2x3h7LlG2Zgbb5BDFROnXDDMpUxB7YejlocJIE5HIEfpNA==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.10.1.tgz", + "integrity": "sha512-YO/FL8v1zmbxoTso6mjMz/RDjhaTJxb1UpFFTDdY5847LLDCeyYiYlrhyTbgN1RIN3xnkLKZ9Lj1x8hUzI4JOg==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.10.0", - "@docusaurus/plugin-content-blog": "3.10.0", - "@docusaurus/plugin-content-docs": "3.10.0", - "@docusaurus/plugin-content-pages": "3.10.0", - "@docusaurus/plugin-css-cascade-layers": "3.10.0", - "@docusaurus/plugin-debug": "3.10.0", - "@docusaurus/plugin-google-analytics": "3.10.0", - "@docusaurus/plugin-google-gtag": "3.10.0", - "@docusaurus/plugin-google-tag-manager": "3.10.0", - "@docusaurus/plugin-sitemap": "3.10.0", - "@docusaurus/plugin-svgr": "3.10.0", - "@docusaurus/theme-classic": "3.10.0", - "@docusaurus/theme-common": "3.10.0", - "@docusaurus/theme-search-algolia": "3.10.0", - "@docusaurus/types": "3.10.0" + "@docusaurus/core": "3.10.1", + "@docusaurus/plugin-content-blog": "3.10.1", + "@docusaurus/plugin-content-docs": "3.10.1", + "@docusaurus/plugin-content-pages": "3.10.1", + "@docusaurus/plugin-css-cascade-layers": "3.10.1", + "@docusaurus/plugin-debug": "3.10.1", + "@docusaurus/plugin-google-analytics": "3.10.1", + "@docusaurus/plugin-google-gtag": "3.10.1", + "@docusaurus/plugin-google-tag-manager": "3.10.1", + "@docusaurus/plugin-sitemap": "3.10.1", + "@docusaurus/plugin-svgr": "3.10.1", + "@docusaurus/theme-classic": "3.10.1", + "@docusaurus/theme-common": "3.10.1", + "@docusaurus/theme-search-algolia": "3.10.1", + "@docusaurus/types": "3.10.1" }, "engines": { "node": ">=20.0" @@ -3868,24 +3892,24 @@ } }, "node_modules/@docusaurus/theme-classic": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.10.0.tgz", - "integrity": "sha512-9msCAsRdN+UG+RwPwCFb0uKy4tGoPh5YfBozXeGUtIeAgsMdn6f3G/oY861luZ3t8S2ET8S9Y/1GnpJAGWytww==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.10.1.tgz", + "integrity": "sha512-VU1RK0qb2pab0si4r7HFK37cYco8VzqLj3u1PspVipSr/z/GPVKHO4/HXbnePqHoWDk8urjyGSeatH0NIMBM1A==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.10.0", - "@docusaurus/logger": "3.10.0", - "@docusaurus/mdx-loader": "3.10.0", - "@docusaurus/module-type-aliases": "3.10.0", - "@docusaurus/plugin-content-blog": "3.10.0", - "@docusaurus/plugin-content-docs": "3.10.0", - "@docusaurus/plugin-content-pages": "3.10.0", - "@docusaurus/theme-common": "3.10.0", - "@docusaurus/theme-translations": "3.10.0", - "@docusaurus/types": "3.10.0", - "@docusaurus/utils": "3.10.0", - "@docusaurus/utils-common": "3.10.0", - "@docusaurus/utils-validation": "3.10.0", + "@docusaurus/core": "3.10.1", + "@docusaurus/logger": "3.10.1", + "@docusaurus/mdx-loader": "3.10.1", + "@docusaurus/module-type-aliases": "3.10.1", + "@docusaurus/plugin-content-blog": "3.10.1", + "@docusaurus/plugin-content-docs": "3.10.1", + "@docusaurus/plugin-content-pages": "3.10.1", + "@docusaurus/theme-common": "3.10.1", + "@docusaurus/theme-translations": "3.10.1", + "@docusaurus/types": "3.10.1", + "@docusaurus/utils": "3.10.1", + "@docusaurus/utils-common": "3.10.1", + "@docusaurus/utils-validation": "3.10.1", "@mdx-js/react": "^3.0.0", "clsx": "^2.0.0", "copy-text-to-clipboard": "^3.2.0", @@ -3909,15 +3933,15 @@ } }, "node_modules/@docusaurus/theme-common": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.10.0.tgz", - "integrity": "sha512-Dkp1YXKn16ByCJAdIjbDIOpVb4Z66MsVD694/ilX1vAAHaVEMrVsf/NPd9VgreyFx08rJ9GqV1MtzsbTcU73Kg==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.10.1.tgz", + "integrity": "sha512-0YtmIeoNo1fIw65LO8+/1dPgmDV86UmhMkow37gzjytuiCSQm9xob6PJy0L4kuQEMTLfUOGvkXvZr7GPrHquMA==", "license": "MIT", "dependencies": { - "@docusaurus/mdx-loader": "3.10.0", - "@docusaurus/module-type-aliases": "3.10.0", - "@docusaurus/utils": "3.10.0", - "@docusaurus/utils-common": "3.10.0", + "@docusaurus/mdx-loader": "3.10.1", + "@docusaurus/module-type-aliases": "3.10.1", + "@docusaurus/utils": "3.10.1", + "@docusaurus/utils-common": "3.10.1", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", @@ -3937,20 +3961,20 @@ } }, "node_modules/@docusaurus/theme-search-algolia": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.10.0.tgz", - "integrity": "sha512-f5FPKI08e3JRG63vR/o4qeuUVHUHzFzM0nnF+AkB67soAZgNsKJRf2qmUZvlQkGwlV+QFkKe4D0ANMh1jToU3g==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.10.1.tgz", + "integrity": "sha512-OTaARARVZj2GvkJQjB+1jOIxntRaXea+G+fMsNqrZBAU1O1vJKDW22R7kECOHW27oJCLFN9HKaZeRrfAUyviug==", "license": "MIT", "dependencies": { "@algolia/autocomplete-core": "^1.19.2", "@docsearch/react": "^3.9.0 || ^4.3.2", - "@docusaurus/core": "3.10.0", - "@docusaurus/logger": "3.10.0", - "@docusaurus/plugin-content-docs": "3.10.0", - "@docusaurus/theme-common": "3.10.0", - "@docusaurus/theme-translations": "3.10.0", - "@docusaurus/utils": "3.10.0", - "@docusaurus/utils-validation": "3.10.0", + "@docusaurus/core": "3.10.1", + "@docusaurus/logger": "3.10.1", + "@docusaurus/plugin-content-docs": "3.10.1", + "@docusaurus/theme-common": "3.10.1", + "@docusaurus/theme-translations": "3.10.1", + "@docusaurus/utils": "3.10.1", + "@docusaurus/utils-validation": "3.10.1", "algoliasearch": "^5.37.0", "algoliasearch-helper": "^3.26.0", "clsx": "^2.0.0", @@ -3969,9 +3993,9 @@ } }, "node_modules/@docusaurus/theme-translations": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.10.0.tgz", - "integrity": "sha512-L9IbFLwTc5+XdgH45iQYufLn0SVZd6BUNelDbKIFlH+E4hhjuj/XHWAFMX/w2K59rfy8wak9McOaei7BSUfRPA==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.10.1.tgz", + "integrity": "sha512-cLMyaKivjBVWKMJuWqyFVVgtqe8DPJNPkog0bn8W1MDVAKcPdxRFycBfC1We1RaNp7Rdk513bmtW78RR6OBxBw==", "license": "MIT", "dependencies": { "fs-extra": "^11.1.1", @@ -3982,16 +4006,16 @@ } }, "node_modules/@docusaurus/tsconfig": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@docusaurus/tsconfig/-/tsconfig-3.10.0.tgz", - "integrity": "sha512-TXdC3WXuPrdQAexLvjUJfnYf3YKEgEqAs5nK0Q88pRBCW7t7oN4ILvWYb3A5Z1wlSXyXGWW/mCUmLEhdWsjnDQ==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@docusaurus/tsconfig/-/tsconfig-3.10.1.tgz", + "integrity": "sha512-rYvB7yqkdqWIpAbDzQljGfM4cDBkLTbhmagZBEcsyj6oPUsz47lmW2pYdN1j+7sGFgltbAmQH62xfbrij4Eh6Q==", "dev": true, "license": "MIT" }, "node_modules/@docusaurus/types": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.10.0.tgz", - "integrity": "sha512-F0dOt3FOoO20rRaFK7whGFQZ3ggyrWEdQc/c8/UiRuzhtg4y1w9FspXH5zpCT07uMnJKBPGh+qNazbNlCQqvSw==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.10.1.tgz", + "integrity": "sha512-XYMK8k1szDCFMw2V+Xyen0g7Kee1sP3dtFnl7vkGkZOkeAJ/oPDQPL8iz4HBKOo/cwU8QeV6onVjMqtP+tFzsw==", "license": "MIT", "dependencies": { "@mdx-js/mdx": "^3.0.0", @@ -4025,14 +4049,14 @@ } }, "node_modules/@docusaurus/utils": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.10.0.tgz", - "integrity": "sha512-T3B0WTigsIthe0D4LQa2k+7bJY+c3WS+Wq2JhcznOSpn1lSN64yNtHQXboCj3QnUs1EuAZszQG1SHKu5w5ZrlA==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.10.1.tgz", + "integrity": "sha512-3ojeJry9xBYdJO6qoyyzqeJFSJBVx2mXhyDzSdjwL2+URFQMf+h25gG38iswGImicK0ELjTd1EL2xzk8hf3QPw==", "license": "MIT", "dependencies": { - "@docusaurus/logger": "3.10.0", - "@docusaurus/types": "3.10.0", - "@docusaurus/utils-common": "3.10.0", + "@docusaurus/logger": "3.10.1", + "@docusaurus/types": "3.10.1", + "@docusaurus/utils-common": "3.10.1", "escape-string-regexp": "^4.0.0", "execa": "^5.1.1", "file-loader": "^6.2.0", @@ -4057,12 +4081,12 @@ } }, "node_modules/@docusaurus/utils-common": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.10.0.tgz", - "integrity": "sha512-JyL7sb9QVDgYvudIS81Dv0lsWm7le0vGZSDwsztxWam1SPBqrnkvBy9UYL/amh6pbybkyYTd3CMTkO24oMlCSw==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.10.1.tgz", + "integrity": "sha512-5mFSgEADtnFxFH7RLw02QA5MpU5JVUCj0MPeIvi/aF4Fi45tQRIuTwXoXDqJ+1VfQJuYJGz3SI63wmGz4HvXzA==", "license": "MIT", "dependencies": { - "@docusaurus/types": "3.10.0", + "@docusaurus/types": "3.10.1", "tslib": "^2.6.0" }, "engines": { @@ -4070,14 +4094,14 @@ } }, "node_modules/@docusaurus/utils-validation": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.10.0.tgz", - "integrity": "sha512-c+6n2+ZPOJtWWc8Bb/EYdpSDfjYEScdCu9fB/SNjOmSCf1IdVnGf2T53o0tsz0gDRtCL90tifTL0JE/oMuP1Mw==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.10.1.tgz", + "integrity": "sha512-cRv1X69jwaWv47waglllgZVWzeBFLhl53XT/XED/83BerVBTC5FTP8WTcVl8Z6sZOegDSwitu/wpCSPCDOT6lg==", "license": "MIT", "dependencies": { - "@docusaurus/logger": "3.10.0", - "@docusaurus/utils": "3.10.0", - "@docusaurus/utils-common": "3.10.0", + "@docusaurus/logger": "3.10.1", + "@docusaurus/utils": "3.10.1", + "@docusaurus/utils-common": "3.10.1", "fs-extra": "^11.2.0", "joi": "^17.9.2", "js-yaml": "^4.1.0", @@ -4644,6 +4668,7 @@ "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.1.tgz", "integrity": "sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw==", "license": "MIT", + "peer": true, "dependencies": { "@types/mdx": "^2.0.0" }, @@ -5107,6 +5132,7 @@ "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", "license": "MIT", + "peer": true, "dependencies": { "@babel/core": "^7.21.3", "@svgr/babel-preset": "8.1.0", @@ -5466,6 +5492,7 @@ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz", "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", "license": "MIT", + "peer": true, "dependencies": { "csstype": "^3.2.2" } @@ -5596,9 +5623,9 @@ "license": "MIT" }, "node_modules/@ungap/structured-clone": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", - "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.1.tgz", + "integrity": "sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ==", "license": "ISC" }, "node_modules/@webassemblyjs/ast": { @@ -5807,6 +5834,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -5874,6 +5902,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -5915,34 +5944,35 @@ } }, "node_modules/algoliasearch": { - "version": "5.51.0", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.51.0.tgz", - "integrity": "sha512-u3XS8HaTzt5YN90KPsOXMRjYJUMVD1dtr6yi4NXQluMbZ5IjQNBu1MEabdAxFhYtEuexqomPMSmRIhQJUd3QSg==", + "version": "5.52.1", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.52.1.tgz", + "integrity": "sha512-fHA8+kXTbjagw3jkLiaS7KKrH8qe2DyOsiUhGlN4cdT77PEsfqXZl7ewDk1hsg+pJnPlnE50XtLxjR91iJOpmg==", "license": "MIT", + "peer": true, "dependencies": { - "@algolia/abtesting": "1.17.0", - "@algolia/client-abtesting": "5.51.0", - "@algolia/client-analytics": "5.51.0", - "@algolia/client-common": "5.51.0", - "@algolia/client-insights": "5.51.0", - "@algolia/client-personalization": "5.51.0", - "@algolia/client-query-suggestions": "5.51.0", - "@algolia/client-search": "5.51.0", - "@algolia/ingestion": "1.51.0", - "@algolia/monitoring": "1.51.0", - "@algolia/recommend": "5.51.0", - "@algolia/requester-browser-xhr": "5.51.0", - "@algolia/requester-fetch": "5.51.0", - "@algolia/requester-node-http": "5.51.0" + "@algolia/abtesting": "1.18.1", + "@algolia/client-abtesting": "5.52.1", + "@algolia/client-analytics": "5.52.1", + "@algolia/client-common": "5.52.1", + "@algolia/client-insights": "5.52.1", + "@algolia/client-personalization": "5.52.1", + "@algolia/client-query-suggestions": "5.52.1", + "@algolia/client-search": "5.52.1", + "@algolia/ingestion": "1.52.1", + "@algolia/monitoring": "1.52.1", + "@algolia/recommend": "5.52.1", + "@algolia/requester-browser-xhr": "5.52.1", + "@algolia/requester-fetch": "5.52.1", + "@algolia/requester-node-http": "5.52.1" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/algoliasearch-helper": { - "version": "3.28.2", - "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.28.2.tgz", - "integrity": "sha512-sexVcXLHrJN54+S0wXD52xV3ySeGZA5T6HMDkb84wT+3UcXCd8af/k2vU5qJTbHv7DoBb4mISJHdyQ2JOo3Aig==", + "version": "3.29.0", + "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.29.0.tgz", + "integrity": "sha512-170iMInIusQlg2c28ZJiiJlUN/RMQWN4sd+PWrpv5bbd/KW+Ux7DjwS2FxvYEFt7r5dmhrMQQBMNY+NeAtX8YA==", "license": "MIT", "dependencies": { "@algolia/events": "^4.0.1" @@ -5980,33 +6010,6 @@ "node": ">=8" } }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/ansi-html-community": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", @@ -6043,6 +6046,15 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/ansis": { + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/ansis/-/ansis-3.17.0.tgz", + "integrity": "sha512-0qWUglt9JEqLFr3w1I1pbrChn1grhaiAR2ocX1PP/flRmxgtwTzPFFFnfIlD6aMOLQZgSuCRlidD70lvx8yhzg==", + "license": "ISC", + "engines": { + "node": ">=14" + } + }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", @@ -6413,6 +6425,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "baseline-browser-mapping": "^2.10.12", "caniuse-lite": "^1.0.30001782", @@ -7379,6 +7392,7 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", "license": "MIT", + "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -8707,30 +8721,6 @@ "node": ">=0.4.0" } }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/file-loader": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", @@ -8756,6 +8746,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -10069,12 +10060,12 @@ } }, "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", + "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", "license": "MIT", "dependencies": { - "hasown": "^2.0.2" + "hasown": "^2.0.3" }, "engines": { "node": ">= 0.4" @@ -13244,9 +13235,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "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", @@ -13383,6 +13374,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -13897,9 +13889,9 @@ } }, "node_modules/postcss": { - "version": "8.5.12", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.12.tgz", - "integrity": "sha512-W62t/Se6rA0Az3DfCL0AqJwXuKwBeYg6nOaIgzP+xZ7N5BFCI7DYi1qs6ygUYT6rvfi6t9k65UMLJC+PHZpDAA==", + "version": "8.5.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.14.tgz", + "integrity": "sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==", "funding": [ { "type": "opencollective", @@ -13915,6 +13907,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -14818,6 +14811,7 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", "license": "MIT", + "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -15557,15 +15551,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, "node_modules/range-parser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", @@ -15634,6 +15619,7 @@ "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0" }, @@ -15646,6 +15632,7 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -15702,6 +15689,7 @@ "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz", "integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==", "license": "MIT", + "peer": true, "dependencies": { "@types/react": "*" }, @@ -15730,6 +15718,7 @@ "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", "license": "MIT", + "peer": true, "dependencies": { "@babel/runtime": "^7.12.13", "history": "^4.9.0", @@ -16257,15 +16246,6 @@ "entities": "^2.0.0" } }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", @@ -16602,12 +16582,12 @@ } }, "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.0.5.tgz", + "integrity": "sha512-F4LcB0UqUl1zErq+1nYEEzSHJnIwb3AF2XWB94b+afhrekOUijwooAYqFyRbjYkm2PAKBabx6oYv/xDxNi8IBw==", "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" + "engines": { + "node": ">=20.0.0" } }, "node_modules/serve-handler": { @@ -17529,7 +17509,8 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" + "license": "0BSD", + "peer": true }, "node_modules/tsyringe": { "version": "4.10.0", @@ -17610,6 +17591,7 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "devOptional": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -17979,6 +17961,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -18178,6 +18161,7 @@ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.106.2.tgz", "integrity": "sha512-wGN3qcrBQIFmQ/c0AiOAQBvrZ5lmY8vbbMv4Mxfgzqd/B6+9pXtLo73WuS1dSGXM5QYY3hZnIbvx+K1xxe6FyA==", "license": "MIT", + "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", @@ -18459,75 +18443,30 @@ } }, "node_modules/webpackbar": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-6.0.1.tgz", - "integrity": "sha512-TnErZpmuKdwWBdMoexjio3KKX6ZtoKHRVvLIU0A47R0VVBDtx3ZyOJDktgYixhoJokZTYTt1Z37OkO9pnGJa9Q==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-7.0.0.tgz", + "integrity": "sha512-aS9soqSO2iCHgqHoCrj4LbfGQUboDCYJPSFOAchEK+9psIjNrfSWW4Y0YEz67MKURNvMmfo0ycOg9d/+OOf9/Q==", "license": "MIT", "dependencies": { - "ansi-escapes": "^4.3.2", - "chalk": "^4.1.2", + "ansis": "^3.2.0", "consola": "^3.2.3", - "figures": "^3.2.0", - "markdown-table": "^2.0.0", "pretty-time": "^1.1.0", - "std-env": "^3.7.0", - "wrap-ansi": "^7.0.0" + "std-env": "^3.7.0" }, "engines": { "node": ">=14.21.3" }, "peerDependencies": { + "@rspack/core": "*", "webpack": "3 || 4 || 5" - } - }, - "node_modules/webpackbar/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/webpackbar/node_modules/markdown-table": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", - "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", - "license": "MIT", - "dependencies": { - "repeat-string": "^1.0.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/webpackbar/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/webpackbar/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } } }, "node_modules/websocket-driver": { diff --git a/package.json b/package.json index 6d78aca..b308264 100644 --- a/package.json +++ b/package.json @@ -16,8 +16,8 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@docusaurus/core": "^3.7.0", - "@docusaurus/preset-classic": "^3.7.0", + "@docusaurus/core": "^3.10.1", + "@docusaurus/preset-classic": "^3.10.1", "@mdx-js/react": "^3.0.0", "clsx": "^2.1.1", "react": "^18.3.1", @@ -26,10 +26,16 @@ "remark-math": "^6.0.0" }, "devDependencies": { - "@docusaurus/tsconfig": "^3.7.0", + "@docusaurus/tsconfig": "^3.10.1", + "autoprefixer": "^10.5.0", "dotenv": "^16.4.7", + "postcss": "^8.5.14", + "tailwindcss": "^4.2.4", "typescript": "^5.4.5" }, + "overrides": { + "serialize-javascript": "7.0.5" + }, "browserslist": { "production": [ ">0.5%", diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..12a703d --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/src/components/HomepageFeatures.module.css b/src/components/HomepageFeatures.module.css index 9dcb82c..0d6e403 100644 --- a/src/components/HomepageFeatures.module.css +++ b/src/components/HomepageFeatures.module.css @@ -3,11 +3,168 @@ .features { display: flex; align-items: center; - padding: 2rem 0; + padding: 3rem 0; + width: 100%; + background: linear-gradient(135deg, rgba(33, 96, 253, 0.05) 0%, rgba(6, 182, 212, 0.05) 100%); +} + +.featureGrid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 1.5rem; width: 100%; } -.featureSvg { - height: 200px; - width: 200px; +@media (max-width: 768px) { + .featureGrid { + grid-template-columns: 1fr; + gap: 1rem; + } +} + +/* Feature Card Styling */ +.featureCard { + position: relative; + text-decoration: none; + color: inherit; + display: block; + height: 100%; +} + +.cardInner { + position: relative; + overflow: hidden; + border-radius: 1.5rem; + border: 1px solid rgba(33, 96, 253, 0.1); + background: linear-gradient(135deg, rgba(33, 96, 253, 0.02), rgba(6, 182, 212, 0.02)); + padding: 1.5rem; + height: 100%; + display: flex; + flex-direction: column; + gap: 1rem; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); +} + +.featureCard:hover .cardInner { + border-color: var(--card-color, #2160fd); + background: linear-gradient(135deg, rgba(33, 96, 253, 0.08), rgba(6, 182, 212, 0.08)); + box-shadow: 0 10px 30px rgba(33, 96, 253, 0.1), + 0 0 1px rgba(33, 96, 253, 0.3); + transform: translateY(-4px); +} + +.cardIcon { + font-size: 2.5rem; + line-height: 1; + width: 3rem; + height: 3rem; + display: flex; + align-items: center; + justify-content: center; + background: rgba(33, 96, 253, 0.1); + border-radius: 1rem; + transition: all 0.3s ease; +} + +.featureCard:hover .cardIcon { + background: var(--card-color, #2160fd); + color: white; + transform: scale(1.1); +} + +.cardContent { + flex: 1; + display: flex; + flex-direction: column; + gap: 0.5rem; +} + +.cardTitle { + font-size: 1.25rem; + font-weight: 600; + margin: 0; + color: var(--docs-color-text, #1f2937); + transition: color 0.3s ease; +} + +[data-theme='dark'] .cardTitle { + color: #f3f4f6; +} + +.featureCard:hover .cardTitle { + color: var(--card-color, #2160fd); +} + +.cardDescription { + font-size: 0.95rem; + line-height: 1.6; + margin: 0; + color: var(--docs-color-text-secondary, #6b7280); + transition: color 0.3s ease; +} + +[data-theme='dark'] .cardDescription { + color: #d1d5db; +} + +.cardGradient { + position: absolute; + top: 0; + right: 0; + width: 100%; + height: 100%; + pointer-events: none; + opacity: 0; + transition: opacity 0.3s ease; + background: radial-gradient(circle at top right, rgba(33, 96, 253, 0.15), transparent 70%); + z-index: 0; +} + +.featureCard:hover .cardGradient { + opacity: 1; +} + +.cardArrow { + position: absolute; + top: 1rem; + right: 1rem; + font-size: 1.5rem; + opacity: 0; + transform: translate(8px, -8px); + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + color: var(--card-color, #2160fd); +} + +.featureCard:hover .cardArrow { + opacity: 1; + transform: translate(0, 0); +} + +/* Animation */ +@keyframes slideInUp { + from { + opacity: 0; + transform: translateY(20px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.cardInner { + animation: slideInUp 0.5s ease-out; +} + +/* Stagger animation for cards */ +:nth-child(1) .cardInner { + animation-delay: 0.1s; +} + +:nth-child(2) .cardInner { + animation-delay: 0.2s; +} + +:nth-child(3) .cardInner { + animation-delay: 0.3s; } diff --git a/src/components/HomepageFeatures.tsx b/src/components/HomepageFeatures.tsx index 23e5919..e201b9a 100644 --- a/src/components/HomepageFeatures.tsx +++ b/src/components/HomepageFeatures.tsx @@ -1,38 +1,87 @@ import React from 'react'; -import clsx from 'clsx'; +import Link from '@docusaurus/Link'; import styles from './HomepageFeatures.module.css'; interface FeatureItem { + id: string; title: string; description: string; + icon: React.ReactNode; + link: string; + color: string; + gradient: string; } const FeatureList: FeatureItem[] = [ { - title: '📚 系统化文档', + id: 'backend', + title: 'åŽç«¯æŠ€æœ¯', description: - '涵盖åŽç«¯ï¼ˆSpring Boot/Cloud)ã€å‰ç«¯ï¼ˆReact/Vue)和算法(LeetCode),分门别类,清晰索引。', + '深度讲解 Spring Boot / Spring Cloud æ ¸å¿ƒæ¦‚å¿µã€æœ€ä½³å®žè·µä¸Žå¾®æœåŠ¡æž¶æž„ï¼Œå«çœŸå®žé¡¹ç›®æ¡ˆä¾‹ã€‚', + icon: 'âš™ï¸', + link: '/docs/backend-doc/intro-docs', + color: '#2160fd', + gradient: 'from-blue-500/20 to-transparent', }, { - title: 'âš¡ 快速检索', + id: 'frontend', + title: 'å‰ç«¯å¼€å‘', description: - 'é›†æˆ Algolia DocSearch,毫秒级全文检索,快速定ä½ä»»æ„知识点。', + '系统化学习 React / Vue 现代框架ã€çжæ€ç®¡ç†ã€ç»„件设计与性能优化,打造高质é‡å‰ç«¯åº”用。', + icon: 'âš›ï¸', + link: '/docs/frontend-doc/intro-docs', + color: '#06b6d4', + gradient: 'from-cyan-500/20 to-transparent', }, { - title: '🌠æŒç»­æ›´æ–°', + id: 'algorithms', + title: '算法与é¢è¯•', description: - '由技术团队æŒç»­ç»´æŠ¤ï¼Œå®šæœŸåŒæ­¥æœ€æ–°æŠ€æœ¯æ ˆå®žè·µå’Œé¢è¯•题解æžã€‚', + '精选 LeetCode 题目分类讲解ã€ç¼–程é¢è¯•题库与数æ®ç»“构深度分æžï¼Œå¿«é€Ÿçªç ´ç®—法关å¡ã€‚', + icon: '🧠', + link: '/docs/LeetCode/intro-docs', + color: '#ec4899', + gradient: 'from-pink-500/20 to-transparent', }, ]; -function Feature({ title, description }: FeatureItem): JSX.Element { +interface FeatureCardProps extends FeatureItem {} + +function FeatureCard({ + title, + description, + icon, + link, + color, + gradient, +}: FeatureCardProps): JSX.Element { return ( -
-
-

{title}

-

{description}

+ +
+ {/* Icon */} +
{icon}
+ + {/* Content */} +
+

{title}

+

{description}

+
+ + {/* Gradient Background */} +
+ + {/* Arrow Icon */} +
→
-
+ ); } @@ -40,9 +89,9 @@ export default function HomepageFeatures(): JSX.Element { return (
-
- {FeatureList.map((props, idx) => ( - +
+ {FeatureList.map((props) => ( + ))}
diff --git a/src/css/custom.css b/src/css/custom.css index 74ba0f2..3860465 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -5,21 +5,83 @@ * work well for content-centric websites. */ +/* Import Tailwind CSS */ +@import 'tailwindcss/base'; +@import 'tailwindcss/components'; +@import 'tailwindcss/utilities'; + /* You can override the default Infima variables here. */ :root { - --ifm-color-primary: #25c2a0; - --ifm-color-primary-dark: rgb(33, 175, 144); - --ifm-color-primary-darker: rgb(31, 165, 136); - --ifm-color-primary-darkest: rgb(26, 136, 112); - --ifm-color-primary-light: rgb(70, 203, 174); - --ifm-color-primary-lighter: rgb(102, 212, 189); - --ifm-color-primary-lightest: rgb(146, 224, 208); + --ifm-color-primary: #2160fd; + --ifm-color-primary-dark: #1850d8; + --ifm-color-primary-darker: #1442c4; + --ifm-color-primary-darkest: #102ca0; + --ifm-color-primary-light: #4d7ffe; + --ifm-color-primary-lighter: #7a9eff; + --ifm-color-primary-lightest: #a8c0ff; + + --docs-color-primary: rgb(33 96 253); + --docs-color-primary-100: rgb(26 144 255); + --docs-color-primary-200: rgb(33 96 253); + + --docs-color-secondary-1000: rgb(0 0 0); + --docs-color-secondary-900: rgb(25 25 25); + --docs-color-secondary-800: rgb(38 38 38); + --docs-color-secondary-700: rgb(71 71 71); + + --docs-color-text: rgb(31 41 55); + --docs-color-text-100: rgb(107 114 128); + --docs-color-text-400: rgb(153 153 153); + + --docs-color-text-secondary: rgb(107 114 128); + --ifm-code-font-size: 95%; } +[data-theme='dark'] { + --docs-color-text: rgb(243 244 246); + --docs-color-text-secondary: rgb(209 213 219); +} + +/* Code highlighting */ .docusaurus-highlight-code-line { background-color: rgb(72, 77, 91); display: block; margin: 0 calc(-1 * var(--ifm-pre-padding)); padding: 0 var(--ifm-pre-padding); } + +/* Enhanced link hover decoration */ +.navbar__link, +.menu__link, +.table-of-contents__link, +.pagination-nav, +.footer { + --ifm-link-hover-decoration: none; +} + +.menu__link { + --ifm-link-hover-color: var(--ifm-color-primary); +} + +/* Smooth transitions */ +* { + @apply transition-colors; +} + +/* Hero section enhancements */ +.hero { + background: linear-gradient( + 135deg, + rgba(33, 96, 253, 0.05) 0%, + rgba(6, 182, 212, 0.05) 100% + ); +} + +.hero--primary { + background-color: #f9fafb; +} + +[data-theme='dark'] .hero--primary { + background-color: #1a1a2e; +} diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 248b769..d72c3b1 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -11,13 +11,28 @@ function HomepageHeader(): JSX.Element { return (
-

{siteConfig.title}

+

🚀 {siteConfig.title}

{siteConfig.tagline}

+

+ 为全栈ã€å…¨ç«¯å·¥ç¨‹å¸ˆç²¾å¿ƒæ‰“造的技术文档 + 算法é¢è¯• + 最佳实践一站å¼å‚考库 +

+ + âš™ï¸ åŽç«¯æŠ€æœ¯ + - Code Docs ä»‹ç» - 1min â±ï¸ + to="/docs/frontend-doc/intro-docs" + style={{ marginLeft: '1rem' }}> + âš›ï¸ å‰ç«¯å¼€å‘ + + + 🧠 算法é¢è¯•
diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..759ccca --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,77 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + corePlugins: { + preflight: false, + }, + darkMode: ['class', '[data-theme="dark"]'], + content: ['./src/**/*.{jsx,tsx,html}', './docs/**/*.{jsx,tsx,html}'], + theme: { + extend: { + colors: { + primary: { + 50: '#f0f5ff', + 100: '#e0ebff', + 200: '#c5d9ff', + 300: '#a3bdff', + 400: '#7a99ff', + 500: '#2160fd', + 600: '#1e4fd4', + 700: '#1939a8', + 800: '#15278a', + 900: '#121d70', + }, + slate: { + 50: '#f8fafc', + 100: '#f1f5f9', + 200: '#e2e8f0', + 300: '#cbd5e1', + 400: '#94a3b8', + 500: '#64748b', + 600: '#475569', + 700: '#334155', + 800: '#1e293b', + 900: '#0f172a', + }, + }, + fontFamily: { + sans: ['Inter', 'system-ui', 'sans-serif'], + }, + spacing: { + '1': '0.25rem', + '2': '0.5rem', + '3': '0.75rem', + '4': '1rem', + '6': '1.5rem', + '8': '2rem', + '12': '3rem', + '16': '4rem', + '20': '5rem', + '24': '6rem', + }, + borderRadius: { + 'sm': '0.375rem', + 'md': '0.5rem', + 'lg': '0.75rem', + 'xl': '1rem', + '2xl': '1.5rem', + '3xl': '2rem', + }, + boxShadow: { + 'sm': '0 1px 2px 0 rgb(0 0 0 / 0.05)', + 'md': '0 4px 6px -1px rgb(0 0 0 / 0.1)', + 'lg': '0 10px 15px -3px rgb(0 0 0 / 0.1)', + 'xl': '0 20px 25px -5px rgb(0 0 0 / 0.1)', + }, + transitionProperty: { + 'colors': 'color, background-color, border-color, text-decoration-color, fill, stroke', + 'all': 'all', + }, + transitionDuration: { + '200': '200ms', + '300': '300ms', + '500': '500ms', + }, + }, + }, + plugins: [], +};