chore: some more misc detailwinding

This commit is contained in:
melvinchia3636
2026-05-31 09:10:11 +08:00
parent 014eabb5cf
commit f55e8708c6
15 changed files with 163 additions and 40 deletions

View File

@@ -4,10 +4,7 @@
"trailingComma": "none",
"arrowParens": "avoid",
"endOfLine": "auto",
"plugins": [
"@trivago/prettier-plugin-sort-imports",
"prettier-plugin-tailwindcss"
],
"plugins": ["@trivago/prettier-plugin-sort-imports"],
"importOrder": ["^@lifeforge/(.*)$", "^@/(.*)$", "^[./]"],
"importOrderSeparation": true,
"importOrderSortSpecifiers": true,

View File

@@ -31,7 +31,6 @@ A self-hosted solution to streamline and organize all aspects of your life.</p>
![skills](https://img.shields.io/badge/-TYPESCRIPT-FF0000?style=for-the-badge&logo=typescript&logoColor=white&color=3178C6)
![skills](https://img.shields.io/badge/-HTML-FF0000?style=for-the-badge&logo=html5&logoColor=white&color=orange)
![skills](https://img.shields.io/badge/-CSS-FF0000?style=for-the-badge&logo=css3&logoColor=white&color=blue)
![skills](https://img.shields.io/badge/-TAILWIND_CSS-FF0000?style=for-the-badge&logo=tailwindcss&logoColor=white&color=teal)
![skills](https://img.shields.io/badge/-REACT_JS-FF0000?style=for-the-badge&logo=react&logoColor=white&color=skyblue)
![skills](https://img.shields.io/badge/-NODE_JS-FF0000?style=for-the-badge&logo=node.js&logoColor=white&color=green)
![skills](https://img.shields.io/badge/-EXPRESS_JS-FF0000?style=for-the-badge&logo=express&logoColor=white&color=black)

View File

@@ -1,5 +1,3 @@
@import 'tailwindcss' source ('.');
.react-grid-layout {
@apply isolate;
}

View File

@@ -23,7 +23,6 @@
"@mdx-js/mdx": "^3.1.0",
"@mdx-js/react": "^3.1.0",
"@mdx-js/rollup": "^3.1.0",
"@tailwindcss/vite": "^4.1.11",
"@types/react-custom-scrollbars": "^4.0.13",
"autoprefixer": "^10.4.21",
"copy-to-clipboard": "^3.3.3",
@@ -42,7 +41,6 @@
"react-syntax-highlighter": "^15.6.1",
"remark-gfm": "^4.0.1",
"@lifeforge/shared": "workspace:*",
"tailwindcss": "^4.1.11",
"vite-plugin-mdx": "^3.6.1"
},
"devDependencies": {

View File

@@ -0,0 +1,21 @@
import { Alert } from "@lifeforge/ui"
import Commit from "../../components/Commit";
import Code from "@/components/Code";
## UI Library Overhaul & Tailwind Migration
### Zero-Runtime CSS-in-JS with Vanilla Extract
The core UI library has been completely rebuilt on **[Vanilla Extract](https://vanilla-extract.style/)** and **[Sprinkles](https://vanilla-extract.style/documentation/packages/sprinkles/)** — a zero-runtime CSS-in-JS architecture that provides full type safety, compile-time optimization, and seamless theme integration without the performance tax of traditional runtime CSS-in-JS solutions.
### Tailwind Elimination in Core Client
With the new UI primitives (`Box`, `Flex`, `Stack`, `Grid`, `Text`, `Icon`, etc.) now fully covering all layout and styling needs, **Tailwind CSS has been completely removed from the core client codebase**. The `component-bg-*` utility classes and direct `@iconify/react` imports have been migrated to their UI library equivalents.
### Migration Status
The core client codebase migration is **complete**. The remaining work involves migrating the individual federated modules (`lifeforge--achievements`, `lifeforge--wallet`, etc.) to the same patterns.
<Alert type="info" className="mb-4 mt-6">
Refer to the <a href="/ui-guide">UI Library Guide</a> for the complete architecture documentation, component API reference, and migration patterns.
</Alert>

View File

@@ -1,7 +1,6 @@
@import url('https://fonts.googleapis.com/css2?family=Albert+Sans:ital,wght@0,100..900;1,100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&display=swap');
@import 'tailwindcss';
@import '@lifeforge/ui/dist/index.css';
@source '../../packages/lifeforge-ui/dist';

View File

@@ -1,5 +1,4 @@
import mdx, { Options } from '@mdx-js/rollup'
import tailwindcss from '@tailwindcss/vite'
import react from '@vitejs/plugin-react'
import path from 'node:path'
import remarkGfm from 'remark-gfm'
@@ -13,7 +12,7 @@ const options: Options = {
// https://vitejs.dev/config/
export default defineConfig({
plugins: [react(), mdx(options), tailwindcss(), mdxListCountsPlugin()],
plugins: [react(), mdx(options), mdxListCountsPlugin()],
resolve: {
alias: {
'@': path.resolve(__dirname, './src')

View File

@@ -34,7 +34,6 @@
"devDependencies": {
"@eslint/js": "^9.26.0",
"@originjs/vite-plugin-federation": "^1.4.1",
"@tailwindcss/vite": "^4.1.18",
"@trivago/prettier-plugin-sort-imports": "^5.2.2",
"@types/lodash": "^4.17.21",
"@types/opentype.js": "^1.3.10",
@@ -59,8 +58,6 @@
"eslint-plugin-unused-imports": "^4.2.0",
"globals": "^16.5.0",
"prettier": "^3.8.0",
"prettier-plugin-tailwindcss": "^0.7.1",
"tailwindcss": "^4.3.0",
"typescript": "^5.9.3",
"typescript-eslint": "^8.31.1",
"vite": "^7.1.9"

View File

@@ -1,3 +1,22 @@
> [!NOTE]
> Jangan risau, LifeForge masih aktif dibangunkan. Kemajuan terkini boleh didapati [di sini](https://github.com/Lifeforge-app/lifeforge/tree/features/forge-ui-overhaul).
> ### Kemas Kini 31 Mei 2026
> Pembinaan semula pustaka UI dan migrasi kod teras klien daripada Tailwind telah selesai. Yang tinggal hanyalah memigrasi semua modul.
> [!CAUTION]
>
> ## ⚠️ Pembangunan Ditangguh Isu Kritikal Seni Bina CSS
>
> **Kemajuan keseluruhan sistem terpaksa dihentikan buat sementara** disebabkan konflik lapisan CSS yang teruk antara aplikasi hos dan modul persekutuan.
>
> **Punca Masalah:** Apabila hos dan modul persekutuan masing-masing membungkus Tailwind CSS secara berasingan, konflik lapisan kaskad CSS berlaku. Ini menyebabkan penggantian gaya yang tidak dapat diramal merentasi sempadan modul, memecahkan utiliti responsif (contohnya `flex md:grid`) dan menyebabkan gaya modul mengatasi gaya hos secara tidak sengaja. Isu ini adalah sifat semula jadi CSS global berasaskan utiliti dalam persekitaran persekutuan modul dan tidak dapat diselesaikan dengan konfigurasi semata-mata.
>
> **Arah Penyelesaian:**
> PR **#93** memperkenalkan versi dipertingkatkan pustaka UI dalaman yang bertujuan **menggantikan Tailwind sepenuhnya**. Sistem baharu ini berasaskan token, berkomponen, dan mengelakkan CSS utiliti global, menghapuskan konflik lapisan rentas sempadan secara reka bentuk. Perubahan ini mewujudkan kontrak gaya yang seragam dan boleh diramal merentasi hos dan semua modul persekutuan.
>
> **Penting:**
> Migrasi ini melibatkan **perubahan pecah** dan merupakan peralihan seni bina yang dirancang. Walaupun mengganggu dalam jangka pendek, ia diperlukan untuk memastikan kestabilan dan ketepatan jangka panjang sistem persekutuan modul. Sila rujuk [isu ini](https://github.com/lifeforge-app/lifeforge/issues/93) untuk kemas kini dan butiran migrasi.
<div align="center">
<img src="https://raw.githubusercontent.com/LifeForge-app/lifeforge-docs-media/main/assets/lifeforge-logo.svg" alt="LifeForge Logo" width="240" height="80"/>
</div>
@@ -11,7 +30,6 @@
![skills](https://img.shields.io/badge/-TYPESCRIPT-FF0000?style=for-the-badge&logo=typescript&logoColor=white&color=3178C6)
![skills](https://img.shields.io/badge/-HTML-FF0000?style=for-the-badge&logo=html5&logoColor=white&color=orange)
![skills](https://img.shields.io/badge/-CSS-FF0000?style=for-the-badge&logo=css3&logoColor=white&color=blue)
![skills](https://img.shields.io/badge/-TAILWIND_CSS-FF0000?style=for-the-badge&logo=tailwindcss&logoColor=white&color=teal)
![skills](https://img.shields.io/badge/-REACT_JS-FF0000?style=for-the-badge&logo=react&logoColor=white&color=skyblue)
![skills](https://img.shields.io/badge/-NODE_JS-FF0000?style=for-the-badge&logo=node.js&logoColor=white&color=green)
![skills](https://img.shields.io/badge/-EXPRESS_JS-FF0000?style=for-the-badge&logo=express&logoColor=white&color=black)
@@ -25,20 +43,27 @@
## 📋 Kandungan
- [📋 Kandungan](#-table-of-contents)
- [🔥 Sokong Pengarang](#-support-the-author)
- [🤔 Masalah](#-the-problem)
- [✅ Penyelesaian](#-the-solution)
- [🧱 Modul](#-modules)
- [🖥 Tangkapan Skrin](#-screenshots)
- [⌨️ Pemasangan](#-setup)
- [Sumbangan](#contributing)
- [Sumbangan kepada Teras](#contributing-to-core)
- [Mencipta Modul](#creating-modules)
- [Permintaan Ciri & Laporan Bug](#feature-requests--bug-reports)
- [Terjemahan](#translation)
- [💡 Kredit](#-credits)
- [📄 Lesen](#-license)
- [📋 Kandungan](#-kandungan)
- [🔥 Sokong Pengarang](#-sokong-pengarang)
- [🤔 Masalah](#-masalah)
- [✅ Penyelesaian](#-penyelesaian)
- [🧱 Modul](#-modul)
- [🖥 Tangkapan Skrin](#-tangkapan-skrin)
- [⌨️ Pemasangan](#-pemasangan)
- [Sumbangan](#sumbangan)
- [Sumbangan kepada Teras](#sumbangan-kepada-teras)
- [Mencipta Modul](#mencipta-modul)
- [Permintaan Ciri \& Laporan Bug](#permintaan-ciri--laporan-bug)
- [Terjemahan](#terjemahan)
- [💡 Kredit](#-kredit)
- [📄 Lesen](#-lesen)
<div align="center">
<a href="../README.md">🇬🇧 English</a>
<a href="README.zh-CN.md">🇨🇳 简体中文</a>
<a href="README.zh-TW.md">🇹🇼 繁體中文</a>
<a href="README.ms.md">🇲🇾 Bahasa Malaysia</a>
</div>
## 🔥 Sokong Pengarang
@@ -139,6 +164,20 @@ Idea LifeForge berasal daripada keperluan sistem pengurusan peribadi yang menyat
Terima kasih kepada komuniti sumber terbuka untuk perpustakaan dan alat yang digunakan dalam projek ini.
## ⭐️ Sejarah Bintang
Pertumbuhan eksponen yang luar biasa. Terima kasih banyak kepada semua yang menyokong projek ini!
<div align="center">
<a href="https://www.star-history.com/#lifeforge-app/lifeforge&type=date&legend=top-left">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=lifeforge-app/lifeforge&type=date&theme=dark&legend=top-left" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=lifeforge-app/lifeforge&type=date&legend=top-left" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=lifeforge-app/lifeforge&type=date&legend=top-left" />
</picture>
</a>
</div>
## 📄 Lesen
<p xmlns:cc="http://creativecommons.org/ns#" xmlns:dct="http://purl.org/dc/terms/"><a property="dct:title" rel="cc:attributionURL" href="https://github.com/LifeForge-app/lifeforge">LifeForge</a> adalah projek yang dimulakan oleh <a rel="cc:attributionURL dct:creator" property="cc:attributionName" href="https://github.com/melvinchia3636">Melvin Chia</a>, dan dilesenkan di bawah <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/?ref=chooser-v1" target="_blank" rel="license noopener noreferrer" style="display:inline-block;">CC BY-NC-SA 4.0</a></p>

View File

@@ -1,3 +1,22 @@
> [!NOTE]
> 别担心LifeForge 仍在活跃开发中。最新进展请查阅[此处](https://github.com/Lifeforge-app/lifeforge/tree/features/forge-ui-overhaul)。
> ### 2026年5月31日 更新
> UI 库重构及随后的核心客户端代码库从 Tailwind 迁移的工作已经完成。剩下的工作就是迁移所有模块。
> [!CAUTION]
>
> ## ⚠️ 开发暂停 严重 CSS 架构问题
>
> **整个系统的开发进度曾暂时受阻**,原因在于宿主应用与联邦模块之间存在严重的 CSS 层叠冲突。
>
> **根本原因:** 当宿主和联邦模块各自独立打包 Tailwind CSS 时CSS 层叠规则冲突,导致跨模块边界的样式不可预测地覆盖,破坏响应式工具类(例如 `flex md:grid`),并使模块样式意外覆盖宿主样式。此问题源于模块联邦环境中全局 CSS 实用驱动的固有特性,无法仅通过配置可靠缓解。
>
> **解决方案方向:**
> PR **#93** 引入了内部 UI 库的增强版本,旨在**完全取代 Tailwind**。新系统基于设计令牌、组件化,避免全局 CSS 实用类,从设计上消除了跨边界层叠冲突。这一变更在宿主和所有联邦模块之间建立了一套统一、可预测的样式约定。
>
> **重要提示:**
> 本次迁移涉及**破坏性变更**,是一次深思熟虑的架构转型。虽然短期内会造成不便,但对于确保模块联邦系统的长期稳定性和正确性来说是必要的。请参阅该[议题](https://github.com/lifeforge-app/lifeforge/issues/93)获取最新进展和迁移详情。
<div align="center">
<img src="https://raw.githubusercontent.com/LifeForge-app/lifeforge-docs-media/main/assets/lifeforge-logo.svg" alt="LifeForge Logo" width="240" height="80"/>
</div>
@@ -11,7 +30,6 @@
![skills](https://img.shields.io/badge/-TYPESCRIPT-3178C6?style=for-the-badge&logo=typescript&logoColor=white)
![skills](https://img.shields.io/badge/-HTML-E34F26?style=for-the-badge&logo=html5&logoColor=white)
![skills](https://img.shields.io/badge/-CSS-1572B6?style=for-the-badge&logo=css3&logoColor=white)
![skills](https://img.shields.io/badge/-TAILWIND_CSS-06B6D4?style=for-the-badge&logo=tailwindcss&logoColor=white)
![skills](https://img.shields.io/badge/-REACT_JS-61DAFB?style=for-the-badge&logo=react&logoColor=black)
![skills](https://img.shields.io/badge/-NODE_JS-339933?style=for-the-badge&logo=node.js&logoColor=white)
![skills](https://img.shields.io/badge/-EXPRESS_JS-000000?style=for-the-badge&logo=express&logoColor=white)
@@ -25,6 +43,7 @@
## 📋 目录
- [<EFBFBD> 目录](#-目录)
- [🔥 支持作者](#-支持作者)
- [🤔 面临的问题](#-面临的问题)
- [✅ 我们的方案](#-我们的方案)
@@ -39,6 +58,13 @@
- [💡 灵感与致谢](#-灵感与致谢)
- [📄 开源许可](#-开源许可)
<div align="center">
<a href="../README.md">🇬🇧 English</a>
<a href="README.zh-CN.md">🇨🇳 简体中文</a>
<a href="README.zh-TW.md">🇹🇼 繁體中文</a>
<a href="README.ms.md">🇲🇾 Bahasa Malaysia</a>
</div>
## 🔥 支持作者
如果您觉得 LifeForge 对你有帮助,欢迎请作者喝杯咖啡。
@@ -141,6 +167,20 @@ LifeForge 的诞生,源于对一体化个人管理工具的渴望,并深受
衷心感谢所有为本项目提供支持的优秀开源库与工具。
## ⭐️ Star 历史
增长曲线惊人。衷心感谢大家对本项目的支持!
<div align="center">
<a href="https://www.star-history.com/#lifeforge-app/lifeforge&type=date&legend=top-left">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=lifeforge-app/lifeforge&type=date&theme=dark&legend=top-left" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=lifeforge-app/lifeforge&type=date&legend=top-left" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=lifeforge-app/lifeforge&type=date&legend=top-left" />
</picture>
</a>
</div>
## 📄 开源许可
<p xmlns:cc="http://creativecommons.org/ns#" xmlns:dct="http://purl.org/dc/terms/"><a property="dct:title" rel="cc:attributionURL" href="https://github.com/LifeForge-app/lifeforge">LifeForge</a> 由 <a rel="cc:attributionURL dct:creator" property="cc:attributionName" href="https://github.com/melvinchia3636">Melvin Chia</a> 创建,采用 <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/?ref=chooser-v1" target="_blank" rel="license noopener noreferrer" style="display:inline-block;">知识共享 署名-非商业性使用-相同方式共享 4.0 国际 许可协议</a>。</p>

View File

@@ -1,3 +1,22 @@
> [!NOTE]
> 別擔心LifeForge 仍在活躍開發中。最新進展請查閱[此處](https://github.com/Lifeforge-app/lifeforge/tree/features/forge-ui-overhaul)。
> ### 2026年5月31日 更新
> UI 庫重構及隨後的客戶端核心程式碼從 Tailwind 遷移的工作已完成。剩下的工作就是遷移所有模組。
> [!CAUTION]
>
> ## ⚠️ 開發暫停 嚴重 CSS 架構問題
>
> **整個系統的開發進度曾暫時受阻**,原因在於宿主應用與聯邦模組之间存在嚴重的 CSS 層疊衝突。
>
> **根本原因:** 當宿主和聯邦模組各自獨立打包 Tailwind CSS 時CSS 層疊規則衝突,導致跨模組邊界的樣式不可預測地覆蓋,破壞響應式工具類(例如 `flex md:grid`),並使模組樣式意外覆蓋宿主樣式。此問題源於模組聯邦環境中全域 CSS 實用驅動的固有特性,無法僅靠配置可靠緩解。
>
> **解決方案方向:**
> PR **#93** 引入了內部 UI 庫的增強版本,旨在**完全取代 Tailwind**。新系統基於設計令牌、組件化,避免全域 CSS 實用類,從設計上消除了跨邊界層疊衝突。這一變更在宿主和所有聯邦模組之間建立了一套統一、可預測的樣式約定。
>
> **重要提示:**
> 本次遷移涉及**破壞性變更**,是一次深思熟慮的架構轉型。雖然短期內會造成不便,但對於確保聯邦模組系統的長期穩定性和正確性來說是必要的。請參閱該[議題](https://github.com/lifeforge-app/lifeforge/issues/93)獲取最新進展和遷移詳情。
<div align="center">
<img src="https://raw.githubusercontent.com/LifeForge-app/lifeforge-docs-media/main/assets/lifeforge-logo.svg" alt="LifeForge Logo" width="240" height="80"/>
</div>
@@ -11,7 +30,6 @@
![skills](https://img.shields.io/badge/-TYPESCRIPT-3178C6?style=for-the-badge&logo=typescript&logoColor=white)
![skills](https://img.shields.io/badge/-HTML-E34F26?style=for-the-badge&logo=html5&logoColor=white)
![skills](https://img.shields.io/badge/-CSS-1572B6?style=for-the-badge&logo=css3&logoColor=white)
![skills](https://img.shields.io/badge/-TAILWIND_CSS-06B6D4?style=for-the-badge&logo=tailwindcss&logoColor=white)
![skills](https://img.shields.io/badge/-REACT_JS-61DAFB?style=for-the-badge&logo=react&logoColor=black)
![skills](https://img.shields.io/badge/-NODE_JS-339933?style=for-the-badge&logo=node.js&logoColor=white)
![skills](https://img.shields.io/badge/-EXPRESS_JS-000000?style=for-the-badge&logo=express&logoColor=white)
@@ -25,6 +43,7 @@
## 📋 目錄
- [<EFBFBD> 目錄](#-目錄)
- [🔥 支持作者](#-支持作者)
- [🤔 麵臨的問題](#-麵臨的問題)
- [✅ 我們的方案](#-我們的方案)
@@ -32,13 +51,20 @@
- [🖥 界麵預覽](#-界麵預覽)
- [⌨️ 開始使用](#-開始使用)
- [🤝 參與貢獻](#-參與貢獻)
- [為核心代碼做貢獻](#為核心代碼做貢獻)
- [開發新模塊](#開發新模塊)
- [提交需求與反饋](#提交需求與反饋)
- [協助翻譯](#協助翻譯)
- [為核心代碼做貢獻](#為核心代碼做貢獻)
- [開發新模塊](#開發新模塊)
- [提交需求與反饋](#提交需求與反饋)
- [協助翻譯](#協助翻譯)
- [💡 靈感與緻謝](#-靈感與緻謝)
- [📄 開源許可](#-開源許可)
<div align="center">
<a href="../README.md">🇬🇧 English</a>
<a href="README.zh-CN.md">🇨🇳 简体中文</a>
<a href="README.zh-TW.md">🇹🇼 繁體中文</a>
<a href="README.ms.md">🇲🇾 Bahasa Malaysia</a>
</div>
## 🔥 支持作者
如果您覺得 LifeForge 對你有幫助,歡迎請作者喝杯咖啡。
@@ -141,6 +167,20 @@ LifeForge 的誕生,源於對一體化個人管理工具的渴望,並深受
衷心感謝所有為本項目提供支持的優秀開源庫與工具。
## ⭐️ Star 歷史
增長曲線驚人。衷心感謝大家對本項目的支持!
<div align="center">
<a href="https://www.star-history.com/#lifeforge-app/lifeforge&type=date&legend=top-left">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=lifeforge-app/lifeforge&type=date&theme=dark&legend=top-left" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=lifeforge-app/lifeforge&type=date&legend=top-left" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=lifeforge-app/lifeforge&type=date&legend=top-left" />
</picture>
</a>
</div>
## 📄 開源許可
<p xmlns:cc="http://creativecommons.org/ns#" xmlns:dct="http://purl.org/dc/terms/"><a property="dct:title" rel="cc:attributionURL" href="https://github.com/LifeForge-app/lifeforge">LifeForge</a> 由 <a rel="cc:attributionURL dct:creator" property="cc:attributionName" href="https://github.com/melvinchia3636">Melvin Chia</a> 創建,採用 <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/?ref=chooser-v1" target="_blank" rel="license noopener noreferrer" style="display:inline-block;">知識共享 署名-非商業性使用-相同方式共享 4.0 國際 許可協議</a>。</p>

View File

@@ -16,7 +16,6 @@
"react-i18next": "^15.1.1",
"react-toastify": "^11.0.5",
"@lifeforge/shared": "workspace:*",
"tailwindcss": "^4.1.14",
"vite": "^7.1.9",
"zod": "4.3.5"
},

View File

@@ -16,7 +16,6 @@
"react-i18next": "^15.1.1",
"react-toastify": "^11.0.5",
"@lifeforge/shared": "workspace:*",
"tailwindcss": "^4.1.14",
"vite": "^7.1.9",
"zod": "4.3.5"
},

View File

@@ -16,7 +16,6 @@
"react-i18next": "^15.1.1",
"react-toastify": "^11.0.5",
"@lifeforge/shared": "workspace:*",
"tailwindcss": "^4.1.14",
"vite": "^7.1.9",
"zod": "4.3.5"
},

View File

@@ -16,7 +16,6 @@
"react-i18next": "^15.1.1",
"react-toastify": "^11.0.5",
"@lifeforge/shared": "workspace:*",
"tailwindcss": "^4.1.14",
"vite": "^7.1.9",
"zod": "4.3.5"
},