diff --git a/ZhiXi_Web/landing/code.html b/ZhiXi_Web/landing/code.html new file mode 100644 index 0000000..2300b6d --- /dev/null +++ b/ZhiXi_Web/landing/code.html @@ -0,0 +1,522 @@ + + + + + +知习 AI - 更懂你,更会学 + + + + + + + + +
+
+
+
+
+
+ + +
+ +
+ +
+

+ 更懂你,更会学 +

+

+ 一个围绕你成长的 AI 学习空间。把知识库、主动回忆、AI 分析和复习计划连接起来,让每一次学习都留下痕迹。 +

+
+ + +
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+account_circle +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+ + + + + + +
+
+event_note +
+
+
今日任务
+
复习 12 个知识点
+
+
+ +
+
+psychology +
+
+
主动回忆
+
准确率提升 15%
+
+
+ +
+
+auto_awesome +
+
+
AI 分析
+
发现 2 个薄弱环节
+
+
+ +
+
+rebase_edit +
+
+
复习计划
+
动态调整已生效
+
+
+
+ +
+
+

今天想从哪里开始?

+

选择一个入口,进入你的专属学习流

+
+ +
+ +
+
+

不是帮你多看一点,而是帮你真正学会

+

构建可持续的闭环学习流

+
+
+ + + +
+ +
+
+input +
+
+

1. 摄入

+

知识结构化

+
+
+ +
+
+memory +
+
+

2. 回忆

+

主动提取

+
+
+ +
+
+auto_awesome +
+
+

3. AI 分析

+

精准定位薄弱点

+
+
+ +
+
+update +
+
+

4. 巩固

+

动态复习计划

+
+
+
+
+ +
+
+ +
+
+
+

看得见的进步轨迹

+

+ 告别盲目刷题。知习 AI 在你每次主动回忆后,实时生成多维度的掌握度分析,动态调整你的下一步学习路径。 +

+
    +
  • +check_circle 知识点图谱实时更新 +
  • +
  • +check_circle 遗忘曲线精准预测 +
  • +
  • +check_circle 个性化干预建议 +
  • +
+
+ +
+ +
+
+
+
+
+
+ +
+
+
+auto_awesome +
+AI 深度分析 +
+

+ 你在「宏观经济学」章节的「通货膨胀」概念上表现出轻微遗忘,已自动加入明日优先复习队列。 +

+
+
+
+
+整体掌握度 +75% +
+
+
+
+
+
+
+ + + + \ No newline at end of file diff --git a/ZhiXi_Web/landing/screen.png b/ZhiXi_Web/landing/screen.png new file mode 100644 index 0000000..c17b390 Binary files /dev/null and b/ZhiXi_Web/landing/screen.png differ diff --git a/ZhiXi_Web/luminous_clarity/DESIGN.md b/ZhiXi_Web/luminous_clarity/DESIGN.md new file mode 100644 index 0000000..378c35c --- /dev/null +++ b/ZhiXi_Web/luminous_clarity/DESIGN.md @@ -0,0 +1,137 @@ +--- +name: Luminous Clarity +colors: + surface: '#faf9ff' + surface-dim: '#d2daf1' + surface-bright: '#faf9ff' + surface-container-lowest: '#ffffff' + surface-container-low: '#f1f3ff' + surface-container: '#e9edff' + surface-container-high: '#e1e8ff' + surface-container-highest: '#dbe2fa' + on-surface: '#131b2c' + on-surface-variant: '#434654' + inverse-surface: '#283042' + inverse-on-surface: '#edf0ff' + outline: '#737686' + outline-variant: '#c3c5d7' + surface-tint: '#1a53d6' + primary: '#1550d3' + on-primary: '#ffffff' + primary-container: '#3c6bed' + on-primary-container: '#fffbff' + inverse-primary: '#b5c4ff' + secondary: '#583dde' + on-secondary: '#ffffff' + secondary-container: '#715af8' + on-secondary-container: '#fffbff' + tertiary: '#595c60' + on-tertiary: '#ffffff' + tertiary-container: '#727578' + on-tertiary-container: '#fcfcff' + error: '#ba1a1a' + on-error: '#ffffff' + error-container: '#ffdad6' + on-error-container: '#93000a' + primary-fixed: '#dce1ff' + primary-fixed-dim: '#b5c4ff' + on-primary-fixed: '#00164d' + on-primary-fixed-variant: '#003cad' + secondary-fixed: '#e5deff' + secondary-fixed-dim: '#c8bfff' + on-secondary-fixed: '#190064' + on-secondary-fixed-variant: '#421dc9' + tertiary-fixed: '#e0e3e6' + tertiary-fixed-dim: '#c4c7ca' + on-tertiary-fixed: '#181c1f' + on-tertiary-fixed-variant: '#44474a' + background: '#faf9ff' + on-background: '#131b2c' + surface-variant: '#dbe2fa' +typography: + display-xl: + fontFamily: Manrope + fontSize: 64px + fontWeight: '800' + lineHeight: '1.1' + letterSpacing: -0.02em + headline-lg: + fontFamily: Manrope + fontSize: 40px + fontWeight: '700' + lineHeight: '1.2' + letterSpacing: -0.01em + headline-md: + fontFamily: Manrope + fontSize: 28px + fontWeight: '600' + lineHeight: '1.3' + body-lg: + fontFamily: Manrope + fontSize: 18px + fontWeight: '400' + lineHeight: '1.6' + body-base: + fontFamily: Manrope + fontSize: 16px + fontWeight: '400' + lineHeight: '1.6' + label-sm: + fontFamily: Inter + fontSize: 13px + fontWeight: '600' + lineHeight: '1' + letterSpacing: 0.05em +rounded: + sm: 0.25rem + DEFAULT: 0.5rem + md: 0.75rem + lg: 1rem + xl: 1.5rem + full: 9999px +spacing: + unit: 8px + container-max: 1200px + gutter: 24px + section-padding: 120px + card-padding: 32px +--- + +## Brand & Style +The design system is anchored in the concept of "Intellectual Serenity." It aims to evoke the feeling of a focused, high-end study environment—quiet, organized, and filled with natural light. The target audience consists of lifelong learners and professionals who value structured knowledge over chaotic information. + +The visual style is a fusion of **Apple-inspired Minimalism** and **Glassmorphism**. It prioritizes extreme legibility and breathability, using negative space not just as a gap, but as a structural element that reduces cognitive load. The aesthetic avoids the "aggressive" tropes of AI (heavy glows and dark modes) in favor of a "Calm Tech" approach that feels like a premium productivity tool rather than a futuristic novelty. + +## Colors +The color palette uses a "High-Key" approach. The primary **Calm Technology Blue** serves as the anchor for interactive elements, while the **Subtle Blue-Purple** accent is reserved for AI-assisted features and high-value highlights. + +Backgrounds transition between pure white and a soft blue-white to define different content zones without needing heavy borders. Text utilizes a Deep Navy rather than pure black to maintain a softer, more premium contrast ratio that is easier on the eyes during long learning sessions. + +## Typography +This design system employs **Manrope** for its geometric yet warm characteristics, echoing the polished look of high-end consumer tech landing pages. For Chinese typesetting, pair this with a high-quality, weighted Sans-Serif (like PingFang SC) using optical kerning. + +The hierarchy is dramatic; large display headings create an editorial feel, while body text maintains generous line-heights to ensure the "structured learning" content remains approachable and digestible. + +## Layout & Spacing +The layout follows a **Fixed Grid** philosophy for desktop (12 columns) to maintain the "launch page" precision, transitioning to a fluid model for mobile. + +Spacing is intentionally oversized. Sections should be separated by significant vertical gaps (120px+) to allow the user's mind to reset between concepts. Within components, use a consistent 8px base grid. Content should be centered with wide margins, creating a "gallery" feel where every piece of information feels curated and important. + +## Elevation & Depth +Depth is created through **Glassmorphism** and **Ambient Shadows** rather than traditional layers. +- **Surface Level 0:** The soft blue-white canvas (#F6F8FC). +- **Surface Level 1 (Floating Cards):** Pure white background with a very soft, high-blur shadow (0px 20px 40px rgba(18, 26, 43, 0.04)). +- **Surface Level 2 (Glass Overlays):** Semi-transparent white (rgba(255, 255, 255, 0.7)) with a 20px backdrop-blur and a subtle 1px white border. + +Incorporate a subtle geometric dot-grid pattern in the background of Level 0 to provide a "blueprint" or "structured" feel to the learning environment. + +## Shapes +The shape language is strictly "iOS-style" squircle-adjacent. Use a base radius of 16px (1rem) for standard components and 24px-32px for large containers. This high level of roundedness removes "visual sharpness," reinforcing the calm and friendly nature of the AI assistant. Interactive elements like buttons should feel tactile and "pill-like" when small, or softly rectangular when large. + +## Components +- **Primary Buttons:** Use the accent gradient with white text. Apply a subtle lift effect (shadow increases) on hover. +- **Glass Cards:** Used for "Learning Modules." Feature a 1px white inner stroke to catch the light, mimicking physical glass. +- **AI Input Field:** A floating, pill-shaped bar with a soft inner shadow and a subtle blue-purple glow when focused, signaling "AI Activity." +- **Progress Indicators:** Use thin, elegant lines with rounded caps. The "filled" state should use the primary blue. +- **Micro-interactions:** Elements should fade and slide upward 10px when appearing, mimicking the smooth motion of a premium OS. +- **Chips/Tags:** Small, semi-transparent blue fills with Deep Navy text, used for categorizing learning topics. \ No newline at end of file diff --git a/ZhiXi_Web/philosophy/code.html b/ZhiXi_Web/philosophy/code.html new file mode 100644 index 0000000..0cc7133 --- /dev/null +++ b/ZhiXi_Web/philosophy/code.html @@ -0,0 +1,443 @@ + + + + + +知习 AI - 产品理念 + + + + + + + + + + + + + + + +
+ + + + +
+
+
+

+ 我们不想让 AI 帮你看更多,
而是帮你真正学会。 +

+

+ Intellectual Serenity for Lifelong Learners. Build your knowledge architecture, not just a digital hoarding space. A quiet environment for deep understanding. +

+
+ +
+
+ + +
+
+
+
+ +
+
+

学习最大的敌人,往往不是没有资料。

+

是无序的收集,制造了“我已经懂了”的幻觉。

+
+
+ +
+
+visibility 看过 +
+
+bookmark 收藏 +
+
+edit 划线 +
+
+
+
+ +
+ +arrow_forward +
+ +
+
+
+
+record_voice_over +
+复述 +
+
+
+output +
+输出 +
+
+
+sync_alt +
+反馈 +
+
+
+model_training +
+复习 +
+
+
+
+ +
+
+

真正的学习,是一个闭环。

+
+ +
+
+person + +
+ +
+ +
+input +输入 +
+
+output +输出 +
+
+feedback +反馈 +
+
+tune +调整 +
+
+history +复习 +
+
+
+
+ +
+
+

AI 不应该只是总结工具,
而应该成为学习过程里的反馈系统。

+
+ +
+ +
+
Analysis Report
+
+
+
《查拉图斯特拉如是说》笔记
+
2小时前分析
+
+
+
系统思考基础模型
+
昨天
+
+
+
+ +
+ +
+
+

概念掌握度评估

+

基于您的复述与提问记录生成

+
+
+
84%
+
综合理解率
+
+
+ +
+
+
+核心逻辑自洽性 +92% +
+
+
+
+
+
+
+边缘概念连结 +65% +
+
+
+
+
+
+ +
+lightbulb +
+

反馈与建议

+

+ 您对“超人”概念的阐述非常清晰,但在将其与“永恒轮回”理论结合时存在逻辑跳跃。建议复习第三章节,并尝试用自己的话写一段连接这两个概念的短文。 +

+
+ + +
+
+
+
+
+
+ +
+

知习 AI 的产品原则

+
+ +
+
01
+
+

少一点信息噪音,多一点学习反馈

+

信息爆炸的时代,缺的不是内容,而是对内容的深度加工。我们抑制推流,放大反馈,让每一次交互都指向认知升级。

+
+
+ +
+
02
+
+

知识需要沉淀,而不是被无限折叠

+

拒绝复杂的层级树和无底洞般的标签库。知识的结构应该如大脑的神经网络般扁平而互联,易于提取,利于生长。

+
+
+ +
+
03
+
+

真正的理解来自于高质量的输出

+

费曼技巧的数字化实践。只有当你能向 AI 清晰地复述一个概念,并经受住追问时,这个知识才真正属于你。

+
+
+ +
+
04
+
+

反馈必须即时、精准且具有可操作性

+

模糊的赞美毫无意义。系统应指出逻辑断层,补充缺失的背景知识,并提供明确的下一步复习建议。

+
+
+ +
+
05
+
+

少一点万能承诺,多一点可验证进步

+

不承诺能帮你记住一切,但保证让你清楚自己真正掌握了什么。用数据可视化展现认知能力的客观提升。

+
+
+
+
+
+ +
+

如果你也厌倦了“看过就算学过”,
欢迎继续了解知习 AI。

+
+ + +
+
+ + + + \ No newline at end of file diff --git a/ZhiXi_Web/philosophy/screen.png b/ZhiXi_Web/philosophy/screen.png new file mode 100644 index 0000000..36f3403 Binary files /dev/null and b/ZhiXi_Web/philosophy/screen.png differ diff --git a/ZhiXi_Web/privacy/code.html b/ZhiXi_Web/privacy/code.html new file mode 100644 index 0000000..2525d0e --- /dev/null +++ b/ZhiXi_Web/privacy/code.html @@ -0,0 +1,248 @@ + + + + + +隐私政策 - 知习 AI + + + + + + + + + + + + + +
+

隐私政策

+

我们重视你的学习数据和个人隐私。知习 AI 会尽可能清晰地说明我们收集什么、为什么收集,以及如何保护你的信息。

+
+最后更新:2026 年 5 月 +
+
+ +
+
+ + + +
+
+
+

我们收集的信息

+

+ 为了提供优质的学习体验,我们在您使用知习 AI 时收集以下类型的信息: +

+
    +
  • 账户信息:包括您的姓名、电子邮件地址以及您在注册时提供的其他必要信息。
  • +
  • 学习数据:您在平台上的学习记录、互动内容、笔记和进度,以帮助优化推荐和学习路径。
  • +
  • 设备与日志信息:IP 地址、浏览器类型、设备标识符及操作日志,用于保障服务安全和改进技术性能。
  • +
+
+
+

我们如何使用这些信息

+

+ 我们收集的信息主要用于以下目的: +

+
    +
  • 提供、维护和改进知习 AI 的核心学习功能。
  • +
  • 通过 AI 分析您的学习习惯,提供个性化的内容推荐。
  • +
  • 发送重要的账户通知、服务更新及安全提醒。
  • +
  • 进行内部数据分析和研究,以提升产品体验。
  • +
+
+
+

AI 服务相关说明

+
+

+ 知习 AI 的核心在于人工智能辅助学习。您的部分互动数据可能会经过匿名化处理后,用于训练和优化我们的 AI 模型,以提供更精准的学习辅导。我们承诺,绝不使用包含可识别个人身份的信息进行模型训练。您可以随时在隐私设置中选择退出数据贡献计划。 +

+
+
+
+

我们如何保护数据

+

+ 我们采用业界领先的安全标准,包括数据加密(传输和存储阶段)、严格的访问控制以及定期的安全审计,以保护您的个人信息免受未经授权的访问、使用或泄露。 +

+
+
+

第三方服务

+

+ 我们可能会聘请第三方服务提供商协助我们提供服务(例如云存储、数据分析)。这些第三方仅在代表我们执行任务且遵守类似保密义务的前提下,才能访问您的个人信息。 +

+
+
+

用户权利

+

+ 您对自己的个人信息拥有完全的控制权。您有权: +

+
    +
  • 访问、更正或更新您的账户信息。
  • +
  • 请求删除您的账户及相关个人数据。
  • +
  • 限制或反对我们处理您的个人信息。
  • +
  • 获取您数据的结构化副本。
  • +
+
+
+

儿童隐私

+

+ 知习 AI 并非专为未满 13 岁的儿童设计。我们不会有意收集未满 13 岁儿童的个人信息。如果我们发现无意中收集了此类信息,将采取措施尽快删除。 +

+
+
+

政策更新

+

+ 我们可能会不时更新本隐私政策。任何重大变更都将通过电子邮件或平台通知等方式提前告知。继续使用我们的服务即表示您接受更新后的政策。 +

+
+
+

联系我们

+

+ 如果您对本隐私政策或您的数据有任何疑问,请通过以下方式联系我们:privacy@zhixiai.com。 +

+
+
+
+
+
+ +
+
+

还有隐私相关问题?

+

我们的支持团队随时准备解答您关于数据安全和隐私保护的任何疑问。

+ +
+
+ + + \ No newline at end of file diff --git a/ZhiXi_Web/privacy/screen.png b/ZhiXi_Web/privacy/screen.png new file mode 100644 index 0000000..9918bb5 Binary files /dev/null and b/ZhiXi_Web/privacy/screen.png differ diff --git a/ZhiXi_Web/product/code.html b/ZhiXi_Web/product/code.html new file mode 100644 index 0000000..36218d7 --- /dev/null +++ b/ZhiXi_Web/product/code.html @@ -0,0 +1,295 @@ + + + + + +知习 AI - 更懂你,更会学 + + + + + + + + + + + +
+
+

+ 更懂你,更会学 +

+

+ AI 驱动的系统化学习助手,把知识库、主动回忆、AI 分析和复习计划结合起来,帮你从"看过"变成"真正学会"。 +

+
+ + +
+
+
+
+Product Interface Mockup + + + +
+
+
+
+ +
+
+
+

很多学习,其实只是"看过"

+

传统学习方式面临的挑战

+
+
+
+
+library_books +
+

资料很多,但不知道先学什么

+

信息过载导致无从下手,缺乏系统性的指引。

+
+
+
+edit_note +
+

笔记写了,却很少真正复习

+

收藏即学习的错觉,遗忘曲线无人对抗。

+
+
+
+record_voice_over +
+

看懂了内容,却说不出来

+

缺乏输出环节,知识停留在浅层认知。

+
+
+
+feedback +
+

没有及时反馈,不知道自己哪里薄弱

+

盲目学习,无法进行针对性的强化训练。

+
+
+
+
+ + + \ No newline at end of file diff --git a/ZhiXi_Web/product/screen.png b/ZhiXi_Web/product/screen.png new file mode 100644 index 0000000..8e80412 Binary files /dev/null and b/ZhiXi_Web/product/screen.png differ diff --git a/ZhiXi_Web/support/code.html b/ZhiXi_Web/support/code.html new file mode 100644 index 0000000..7725711 --- /dev/null +++ b/ZhiXi_Web/support/code.html @@ -0,0 +1,356 @@ + + + + + +Feedback & Support - 知习 AI + + + + + + + + + +
+ + + +
+ +
+
+

反馈与支持

+

+ 如果你在使用知习 AI 的过程中遇到问题,或者对产品有任何想法,欢迎告诉我们。每一条真实反馈,都会帮助产品变得更好。 +

+
+A soft, ethereal 3D rendering of a translucent message bubble floating in a bright, minimalist studio environment. The light is diffused and high-key, casting very soft shadows on a pristine white floor. Subtle hints of calm blue and purple are visible within the glass-like structure of the bubble, reflecting the 'Intellectual Serenity' aesthetic. The mood is calm, modern, and trustworthy. +
+
+ +
+ +
+
+
+ +
+ + +
+ +
+ + +
+
+ +
+ + +
+ +
+ + +
+ +
+ +
+ + + + + +
+
+ +
+ +
+
+
+ +
+
+

其他联系方式

+ +
+
+
+ +
+

常见问题

+
+ +
+ + 知习 AI 现在可以使用了吗? + expand_more + +
+ 产品还在早期版本开发中,官网会持续更新进展。 +
+
+ +
+ + 知习 AI 支持哪些平台? + expand_more + +
+ 第一阶段优先支持 iPhone,后续再考虑 iPad、Mac 和其他平台。 +
+
+ +
+ + 知习 AI 会保存我的学习内容吗? + expand_more + +
+ 为了提供学习记录和 AI 分析,产品可能会保存必要的学习数据,具体请查看隐私政策。 +
+
+ +
+ + 如何删除我的数据? + expand_more + +
+ 你可以通过本页面联系我们,我们会根据请求处理相关数据。 +
+
+
+
+
+ + + \ No newline at end of file diff --git a/ZhiXi_Web/support/screen.png b/ZhiXi_Web/support/screen.png new file mode 100644 index 0000000..76984fc Binary files /dev/null and b/ZhiXi_Web/support/screen.png differ diff --git a/astro.config.mjs b/astro.config.mjs index 163b322..a7fd9c2 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -1,12 +1,19 @@ import { defineConfig } from 'astro/config'; +import tailwindcss from '@tailwindcss/vite'; + const host = process.env.HOST || 'localhost'; const port = process.env.PORT || '4321'; export default defineConfig({ site: process.env.SITE_URL || `http://${host}:${port}`, + server: { host, port: parseInt(port, 10), }, + + vite: { + plugins: [tailwindcss()], + }, }); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index f0388d7..d0a3d98 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,9 @@ "name": "longde-website", "version": "0.1.0", "dependencies": { - "astro": "^5.0.0" + "@tailwindcss/vite": "^4.2.4", + "astro": "^5.0.0", + "tailwindcss": "^4.2.4" } }, "node_modules/@astrojs/compiler": { @@ -1032,12 +1034,51 @@ "url": "https://opencollective.com/libvips" } }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmmirror.com/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.5", "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", "license": "MIT" }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, "node_modules/@oslojs/encoding": { "version": "1.1.0", "resolved": "https://registry.npmmirror.com/@oslojs/encoding/-/encoding-1.1.0.tgz", @@ -1464,6 +1505,263 @@ "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", "license": "MIT" }, + "node_modules/@tailwindcss/node": { + "version": "4.2.4", + "resolved": "https://registry.npmmirror.com/@tailwindcss/node/-/node-4.2.4.tgz", + "integrity": "sha512-Ai7+yQPxz3ddrDQzFfBKdHEVBg0w3Zl83jnjuwxnZOsnH9pGn93QHQtpU0p/8rYWxvbFZHneni6p1BSLK4DkGA==", + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "enhanced-resolve": "^5.19.0", + "jiti": "^2.6.1", + "lightningcss": "1.32.0", + "magic-string": "^0.30.21", + "source-map-js": "^1.2.1", + "tailwindcss": "4.2.4" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.2.4", + "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide/-/oxide-4.2.4.tgz", + "integrity": "sha512-9El/iI069DKDSXwTvB9J4BwdO5JhRrOweGaK25taBAvBXyXqJAX+Jqdvs8r8gKpsI/1m0LeJLyQYTf/WLrBT1Q==", + "license": "MIT", + "engines": { + "node": ">= 20" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.2.4", + "@tailwindcss/oxide-darwin-arm64": "4.2.4", + "@tailwindcss/oxide-darwin-x64": "4.2.4", + "@tailwindcss/oxide-freebsd-x64": "4.2.4", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.4", + "@tailwindcss/oxide-linux-arm64-gnu": "4.2.4", + "@tailwindcss/oxide-linux-arm64-musl": "4.2.4", + "@tailwindcss/oxide-linux-x64-gnu": "4.2.4", + "@tailwindcss/oxide-linux-x64-musl": "4.2.4", + "@tailwindcss/oxide-wasm32-wasi": "4.2.4", + "@tailwindcss/oxide-win32-arm64-msvc": "4.2.4", + "@tailwindcss/oxide-win32-x64-msvc": "4.2.4" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.2.4", + "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.2.4.tgz", + "integrity": "sha512-e7MOr1SAn9U8KlZzPi1ZXGZHeC5anY36qjNwmZv9pOJ8E4Q6jmD1vyEHkQFmNOIN7twGPEMXRHmitN4zCMN03g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.2.4", + "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.2.4.tgz", + "integrity": "sha512-tSC/Kbqpz/5/o/C2sG7QvOxAKqyd10bq+ypZNf+9Fi2TvbVbv1zNpcEptcsU7DPROaSbVgUXmrzKhurFvo5eDg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.2.4", + "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.2.4.tgz", + "integrity": "sha512-yPyUXn3yO/ufR6+Kzv0t4fCg2qNr90jxXc5QqBpjlPNd0NqyDXcmQb/6weunH/MEDXW5dhyEi+agTDiqa3WsGg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.2.4", + "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.2.4.tgz", + "integrity": "sha512-BoMIB4vMQtZsXdGLVc2z+P9DbETkiopogfWZKbWwM8b/1Vinbs4YcUwo+kM/KeLkX3Ygrf4/PsRndKaYhS8Eiw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.2.4", + "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.2.4.tgz", + "integrity": "sha512-7pIHBLTHYRAlS7V22JNuTh33yLH4VElwKtB3bwchK/UaKUPpQ0lPQiOWcbm4V3WP2I6fNIJ23vABIvoy2izdwA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.2.4", + "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.2.4.tgz", + "integrity": "sha512-+E4wxJ0ZGOzSH325reXTWB48l42i93kQqMvDyz5gqfRzRZ7faNhnmvlV4EPGJU3QJM/3Ab5jhJ5pCRUsKn6OQw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.2.4", + "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.2.4.tgz", + "integrity": "sha512-bBADEGAbo4ASnppIziaQJelekCxdMaxisrk+fB7Thit72IBnALp9K6ffA2G4ruj90G9XRS2VQ6q2bCKbfFV82g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.2.4", + "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.2.4.tgz", + "integrity": "sha512-7Mx25E4WTfnht0TVRTyC00j3i0M+EeFe7wguMDTlX4mRxafznw0CA8WJkFjWYH5BlgELd1kSjuU2JiPnNZbJDA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.2.4", + "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.2.4.tgz", + "integrity": "sha512-2wwJRF7nyhOR0hhHoChc04xngV3iS+akccHTGtz965FwF0up4b2lOdo6kI1EbDaEXKgvcrFBYcYQQ/rrnWFVfA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.2.4", + "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.2.4.tgz", + "integrity": "sha512-FQsqApeor8Fo6gUEklzmaa9994orJZZDBAlQpK2Mq+DslRKFJeD6AjHpBQ0kZFQohVr8o85PPh8eOy86VlSCmw==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.8.1", + "@emnapi/runtime": "^1.8.1", + "@emnapi/wasi-threads": "^1.1.0", + "@napi-rs/wasm-runtime": "^1.1.1", + "@tybys/wasm-util": "^0.10.1", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.2.4", + "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.2.4.tgz", + "integrity": "sha512-L9BXqxC4ToVgwMFqj3pmZRqyHEztulpUJzCxUtLjobMCzTPsGt1Fa9enKbOpY2iIyVtaHNeNvAK8ERP/64sqGQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.2.4", + "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.2.4.tgz", + "integrity": "sha512-ESlKG0EpVJQwRjXDDa9rLvhEAh0mhP1sF7sap9dNZT0yyl9SAG6T7gdP09EH0vIv0UNTlo6jPWyujD6559fZvw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/vite": { + "version": "4.2.4", + "resolved": "https://registry.npmmirror.com/@tailwindcss/vite/-/vite-4.2.4.tgz", + "integrity": "sha512-pCvohwOCspk3ZFn6eJzrrX3g4n2JY73H6MmYC87XfGPyTty4YsCjYTMArRZm/zOI8dIt3+EcrLHAFPe5A4bgtw==", + "license": "MIT", + "dependencies": { + "@tailwindcss/node": "4.2.4", + "@tailwindcss/oxide": "4.2.4", + "tailwindcss": "4.2.4" + }, + "peerDependencies": { + "vite": "^5.2.0 || ^6 || ^7 || ^8" + } + }, "node_modules/@types/debug": { "version": "4.1.13", "resolved": "https://registry.npmmirror.com/@types/debug/-/debug-4.1.13.tgz", @@ -2109,7 +2407,6 @@ "resolved": "https://registry.npmmirror.com/detect-libc/-/detect-libc-2.1.2.tgz", "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", "license": "Apache-2.0", - "optional": true, "engines": { "node": ">=8" } @@ -2242,6 +2539,19 @@ "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", "license": "MIT" }, + "node_modules/enhanced-resolve": { + "version": "5.21.0", + "resolved": "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.21.0.tgz", + "integrity": "sha512-otxSQPw4lkOZWkHpB3zaEQs6gWYEsmX4xQF68ElXC/TWvGxGMSGOvoNbaLXm6/cS/fSfHtsEdw90y20PCd+sCA==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/entities": { "version": "6.0.1", "resolved": "https://registry.npmmirror.com/entities/-/entities-6.0.1.tgz", @@ -2413,6 +2723,12 @@ "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", "license": "ISC" }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, "node_modules/h3": { "version": "1.15.11", "resolved": "https://registry.npmmirror.com/h3/-/h3-1.15.11.tgz", @@ -2717,6 +3033,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/jiti": { + "version": "2.6.1", + "resolved": "https://registry.npmmirror.com/jiti/-/jiti-2.6.1.tgz", + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", + "license": "MIT", + "peer": true, + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, "node_modules/js-yaml": { "version": "4.1.1", "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.1.tgz", @@ -2738,6 +3064,256 @@ "node": ">=6" } }, + "node_modules/lightningcss": { + "version": "1.32.0", + "resolved": "https://registry.npmmirror.com/lightningcss/-/lightningcss-1.32.0.tgz", + "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "license": "MPL-2.0", + "peer": true, + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.32.0", + "lightningcss-darwin-arm64": "1.32.0", + "lightningcss-darwin-x64": "1.32.0", + "lightningcss-freebsd-x64": "1.32.0", + "lightningcss-linux-arm-gnueabihf": "1.32.0", + "lightningcss-linux-arm64-gnu": "1.32.0", + "lightningcss-linux-arm64-musl": "1.32.0", + "lightningcss-linux-x64-gnu": "1.32.0", + "lightningcss-linux-x64-musl": "1.32.0", + "lightningcss-win32-arm64-msvc": "1.32.0", + "lightningcss-win32-x64-msvc": "1.32.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmmirror.com/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", + "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmmirror.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", + "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmmirror.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", + "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmmirror.com/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", + "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.32.0", + "resolved": "https://registry.npmmirror.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", + "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "cpu": [ + "arm" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmmirror.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", + "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmmirror.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", + "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmmirror.com/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmmirror.com/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", + "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmmirror.com/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", + "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmmirror.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", + "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, "node_modules/longest-streak": { "version": "3.1.0", "resolved": "https://registry.npmmirror.com/longest-streak/-/longest-streak-3.1.0.tgz", @@ -4347,6 +4923,25 @@ "url": "https://opencollective.com/svgo" } }, + "node_modules/tailwindcss": { + "version": "4.2.4", + "resolved": "https://registry.npmmirror.com/tailwindcss/-/tailwindcss-4.2.4.tgz", + "integrity": "sha512-HhKppgO81FQof5m6TEnuBWCZGgfRAWbaeOaGT00KOy/Pf/j6oUihdvBpA7ltCeAvZpFhW3j0PTclkxsd4IXYDA==", + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.3.3.tgz", + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, "node_modules/tiny-inflate": { "version": "1.0.3", "resolved": "https://registry.npmmirror.com/tiny-inflate/-/tiny-inflate-1.0.3.tgz", @@ -4765,6 +5360,7 @@ "resolved": "https://registry.npmmirror.com/vite/-/vite-6.4.2.tgz", "integrity": "sha512-2N/55r4JDJ4gdrCvGgINMy+HH3iRpNIz8K6SFwVsA+JbQScLiC+clmAxBgwiSPgcG9U15QmvqCGWzMbqda5zGQ==", "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", diff --git a/package.json b/package.json index b9a9cb5..2a5e091 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,8 @@ "astro": "astro" }, "dependencies": { - "astro": "^5.0.0" + "@tailwindcss/vite": "^4.2.4", + "astro": "^5.0.0", + "tailwindcss": "^4.2.4" } -} \ No newline at end of file +} diff --git a/public/logo.png b/public/logo.png new file mode 100644 index 0000000..1413a3f Binary files /dev/null and b/public/logo.png differ diff --git a/src/components/Footer.astro b/src/components/Footer.astro index ac2575f..8b815f3 100644 --- a/src/components/Footer.astro +++ b/src/components/Footer.astro @@ -3,69 +3,35 @@ const currentYear = new Date().getFullYear(); const footerLinks = [ { href: '/privacy', label: '隐私政策' }, - { href: '/terms', label: '用户协议' }, - { href: '/support', label: '支持与反馈' }, + { href: '/support', label: '反馈建议' }, ]; --- -