diff --git a/.prettierignore b/.prettierignore
new file mode 100644
index 0000000..e4f12fb
--- /dev/null
+++ b/.prettierignore
@@ -0,0 +1,8 @@
+node_modules
+public
+dist
+nginx
+build
+*.hbs
+package-lock.json
+README.md
\ No newline at end of file
diff --git a/.prettierrc b/.prettierrc
new file mode 100644
index 0000000..aed6467
--- /dev/null
+++ b/.prettierrc
@@ -0,0 +1,8 @@
+{
+ "semi": true,
+ "trailingComma": "all",
+ "singleQuote": true,
+ "printWidth": 120,
+ "tabWidth": 2,
+ "endOfLine": "lf"
+}
diff --git a/apps/docs-dev/.eslintrc.cjs b/apps/docs-dev/.eslintrc.cjs
new file mode 100644
index 0000000..02f791d
--- /dev/null
+++ b/apps/docs-dev/.eslintrc.cjs
@@ -0,0 +1,5 @@
+/** @type {import("eslint").Linter.Config} */
+module.exports = {
+ root: true,
+ extends: ["@repo/eslint-config/index.js"],
+};
diff --git a/apps/docs-dev/index.html b/apps/docs-dev/index.html
new file mode 100644
index 0000000..2d58552
--- /dev/null
+++ b/apps/docs-dev/index.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ Vite + React + docs
+
+
+
+
+
+
diff --git a/apps/docs-dev/package.json b/apps/docs-dev/package.json
new file mode 100644
index 0000000..129a64b
--- /dev/null
+++ b/apps/docs-dev/package.json
@@ -0,0 +1,29 @@
+{
+ "name": "docs-dev",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite --clearScreen false",
+ "build": "tsc && vite build",
+ "preview": "vite preview",
+ "lint": "eslint \"src/**/*.ts\""
+ },
+ "dependencies": {
+ "@repo/ui": "workspace:*",
+ "@tailwindcss/vite": "^4.1.18",
+ "react": "^19.2.3",
+ "react-dom": "^19.2.3",
+ "tailwindcss": "^4.1.18"
+ },
+ "devDependencies": {
+ "@repo/eslint-config": "workspace:*",
+ "@repo/typescript-config": "workspace:*",
+ "@types/react": "^19.2.7",
+ "@types/react-dom": "^19.2.3",
+ "@vitejs/plugin-react": "^3.1.0",
+ "eslint": "^8.57.0",
+ "typescript": "5.5.4",
+ "vite": "^5.1.4"
+ }
+}
\ No newline at end of file
diff --git a/apps/docs-dev/public/typescript.svg b/apps/docs-dev/public/typescript.svg
new file mode 100644
index 0000000..d91c910
--- /dev/null
+++ b/apps/docs-dev/public/typescript.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/apps/docs-dev/public/vite.svg b/apps/docs-dev/public/vite.svg
new file mode 100644
index 0000000..e7b8dfb
--- /dev/null
+++ b/apps/docs-dev/public/vite.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/apps/docs-dev/src/main.css b/apps/docs-dev/src/main.css
new file mode 100644
index 0000000..7ca3c1a
--- /dev/null
+++ b/apps/docs-dev/src/main.css
@@ -0,0 +1 @@
+@import '@repo/ui/global.css';
diff --git a/apps/docs-dev/src/main.tsx b/apps/docs-dev/src/main.tsx
new file mode 100644
index 0000000..ea5a225
--- /dev/null
+++ b/apps/docs-dev/src/main.tsx
@@ -0,0 +1,22 @@
+import { createRoot } from 'react-dom/client';
+import typescriptLogo from '/typescript.svg';
+import { Header, Counter } from '@repo/ui';
+import './main.css';
+
+const App = () => (
+
+
+
+
+
+
+
+
+
+
Hello world! docs
+
+
+
+);
+
+createRoot(document.getElementById('app')!).render();
diff --git a/apps/docs-dev/src/vite-env.d.ts b/apps/docs-dev/src/vite-env.d.ts
new file mode 100644
index 0000000..11f02fe
--- /dev/null
+++ b/apps/docs-dev/src/vite-env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/apps/docs-dev/tsconfig.json b/apps/docs-dev/tsconfig.json
new file mode 100644
index 0000000..9e7332d
--- /dev/null
+++ b/apps/docs-dev/tsconfig.json
@@ -0,0 +1,7 @@
+{
+ "extends": "@repo/typescript-config/vite.json",
+ "include": ["src"],
+ "compilerOptions": {
+ "jsx": "react-jsx"
+ }
+}
\ No newline at end of file
diff --git a/apps/docs-dev/vite.config.ts b/apps/docs-dev/vite.config.ts
new file mode 100644
index 0000000..da17daf
--- /dev/null
+++ b/apps/docs-dev/vite.config.ts
@@ -0,0 +1,7 @@
+import { defineConfig } from 'vite';
+import react from '@vitejs/plugin-react';
+import tailwindcss from '@tailwindcss/vite';
+
+export default defineConfig({
+ plugins: [react(), tailwindcss()],
+});
diff --git a/apps/web/package.json b/apps/web/package.json
index 4406b2e..705b108 100644
--- a/apps/web/package.json
+++ b/apps/web/package.json
@@ -10,18 +10,22 @@
"lint": "eslint \"src/**/*.ts\""
},
"dependencies": {
+ "@module/template": "workspace:*",
"@repo/ui": "workspace:*",
- "react": "^18.2.0",
- "react-dom": "^18.2.0"
+ "@tailwindcss/vite": "^4.1.18",
+ "react": "^19.2.3",
+ "react-dom": "^19.2.3",
+ "react-router-dom": "^7.11.0",
+ "tailwindcss": "^4.1.18"
},
"devDependencies": {
"@repo/eslint-config": "workspace:*",
"@repo/typescript-config": "workspace:*",
- "@types/react": "^19.0.1",
- "@types/react-dom": "^19.0.2",
+ "@types/react": "^19.2.7",
+ "@types/react-dom": "^19.2.3",
"@vitejs/plugin-react": "^3.1.0",
"eslint": "^8.57.0",
"typescript": "5.5.4",
"vite": "^5.1.4"
}
-}
+}
\ No newline at end of file
diff --git a/apps/web/src/apps/auth/index.tsx b/apps/web/src/apps/auth/index.tsx
new file mode 100644
index 0000000..c86aca0
--- /dev/null
+++ b/apps/web/src/apps/auth/index.tsx
@@ -0,0 +1,3 @@
+export default function AuthModule() {
+ return auth module
;
+}
diff --git a/apps/web/src/apps/index.tsx b/apps/web/src/apps/index.tsx
new file mode 100644
index 0000000..b2c76be
--- /dev/null
+++ b/apps/web/src/apps/index.tsx
@@ -0,0 +1,21 @@
+import { lazy, Suspense } from 'react';
+import { BrowserRouter, Navigate, Route, Routes } from 'react-router-dom';
+
+const AuthModule = lazy(() => import('./auth'));
+const AppModule = lazy(() => import('./modules'));
+
+export default function App() {
+ return (
+
+ Loading...}>
+
+ } />
+ } />
+ {/* } />
+ } /> */}
+ } />
+
+
+
+ );
+}
diff --git a/apps/web/src/apps/modules/index.tsx b/apps/web/src/apps/modules/index.tsx
new file mode 100644
index 0000000..7c14b18
--- /dev/null
+++ b/apps/web/src/apps/modules/index.tsx
@@ -0,0 +1,9 @@
+import { Route, Routes } from 'react-router-dom';
+
+export default function AppModule() {
+ return (
+
+ 1} />
+
+ );
+}
diff --git a/apps/web/src/main.css b/apps/web/src/main.css
new file mode 100644
index 0000000..7ca3c1a
--- /dev/null
+++ b/apps/web/src/main.css
@@ -0,0 +1 @@
+@import '@repo/ui/global.css';
diff --git a/apps/web/src/main.tsx b/apps/web/src/main.tsx
index 2af81b7..4d924f8 100644
--- a/apps/web/src/main.tsx
+++ b/apps/web/src/main.tsx
@@ -1,25 +1,10 @@
-import { createRoot } from "react-dom/client";
-import "./style.css";
-import typescriptLogo from "/typescript.svg";
-import { Header, Counter } from "@repo/ui";
+import './main.css';
+import { lazy, StrictMode } from 'react';
+import { createRoot } from 'react-dom/client';
+const App = lazy(() => import('./apps'));
-const App = () => (
-
+createRoot(document.getElementById('app')!).render(
+
+
+ ,
);
-
-createRoot(document.getElementById("app")!).render();
diff --git a/apps/web/src/style.css b/apps/web/src/style.css
deleted file mode 100644
index 1232080..0000000
--- a/apps/web/src/style.css
+++ /dev/null
@@ -1,97 +0,0 @@
-:root {
- font-family: Inter, Avenir, Helvetica, Arial, sans-serif;
- font-size: 16px;
- line-height: 24px;
- font-weight: 400;
-
- color-scheme: light dark;
- color: rgba(255, 255, 255, 0.87);
- background-color: #242424;
-
- font-synthesis: none;
- text-rendering: optimizeLegibility;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- -webkit-text-size-adjust: 100%;
-}
-
-a {
- font-weight: 500;
- color: #646cff;
- text-decoration: inherit;
-}
-a:hover {
- color: #535bf2;
-}
-
-body {
- margin: 0;
- display: flex;
- place-items: center;
- min-width: 320px;
- min-height: 100vh;
-}
-
-h1 {
- font-size: 3.2em;
- line-height: 1.1;
-}
-
-#app {
- max-width: 1280px;
- margin: 0 auto;
- padding: 2rem;
- text-align: center;
-}
-
-.logo {
- height: 6em;
- padding: 1.5em;
- will-change: filter;
-}
-.logo:hover {
- filter: drop-shadow(0 0 2em #646cffaa);
-}
-.logo.vanilla:hover {
- filter: drop-shadow(0 0 2em #f7df1eaa);
-}
-
-.card {
- padding: 2em;
-}
-
-.read-the-docs {
- color: #888;
-}
-
-button {
- border-radius: 8px;
- border: 1px solid transparent;
- padding: 0.6em 1.2em;
- font-size: 1em;
- font-weight: 500;
- font-family: inherit;
- background-color: #1a1a1a;
- cursor: pointer;
- transition: border-color 0.25s;
-}
-button:hover {
- border-color: #646cff;
-}
-button:focus,
-button:focus-visible {
- outline: 4px auto -webkit-focus-ring-color;
-}
-
-@media (prefers-color-scheme: light) {
- :root {
- color: #213547;
- background-color: #ffffff;
- }
- a:hover {
- color: #747bff;
- }
- button {
- background-color: #f9f9f9;
- }
-}
diff --git a/apps/web/vite.config.ts b/apps/web/vite.config.ts
index 081c8d9..da17daf 100644
--- a/apps/web/vite.config.ts
+++ b/apps/web/vite.config.ts
@@ -1,6 +1,7 @@
-import { defineConfig } from "vite";
-import react from "@vitejs/plugin-react";
+import { defineConfig } from 'vite';
+import react from '@vitejs/plugin-react';
+import tailwindcss from '@tailwindcss/vite';
export default defineConfig({
- plugins: [react()],
+ plugins: [react(), tailwindcss()],
});
diff --git a/package.json b/package.json
index d4a9ab0..8f215ea 100644
--- a/package.json
+++ b/package.json
@@ -3,6 +3,8 @@
"scripts": {
"build": "turbo run build",
"dev": "turbo run dev",
+ "dev:web": "turbo run dev --filter=web",
+ "dev:docs-dev": "turbo run dev --filter=docs-dev",
"lint": "turbo run lint",
"format": "prettier --write \"**/*.{ts,tsx,md}\""
},
@@ -13,4 +15,4 @@
},
"packageManager": "pnpm@8.15.6",
"name": "with-vite-react"
-}
+}
\ No newline at end of file
diff --git a/packages/ui/components/counter.tsx b/packages/ui/components/counter.tsx
deleted file mode 100644
index 3904438..0000000
--- a/packages/ui/components/counter.tsx
+++ /dev/null
@@ -1,11 +0,0 @@
-import React, { useState } from "react";
-
-export const Counter: React.FC = () => {
- const [count, setCount] = useState(0);
-
- return (
-
- );
-};
diff --git a/packages/ui/package.json b/packages/ui/package.json
index 991c4e6..62821c9 100644
--- a/packages/ui/package.json
+++ b/packages/ui/package.json
@@ -2,25 +2,29 @@
"name": "@repo/ui",
"version": "0.0.0",
"exports": {
- ".": "./index.ts",
- "./counter": "./components/counter.ts",
- "./header": "./components/header.ts",
- "./setup-counter": "./utils/counter.ts"
+ ".": "./src/index.ts",
+ "./global.css": "./src/assets/styles/globals.css"
},
"license": "MIT",
"scripts": {
"lint": "eslint \"**/*.ts\""
},
"dependencies": {
- "react": "^18.2.0",
- "react-dom": "^18.2.0"
+ "@tailwindcss/vite": "^4.1.18",
+ "react": "^19.2.3",
+ "react-dom": "^19.2.3",
+ "tailwind-merge": "^3.4.0",
+ "tailwind-variants": "^3.2.2",
+ "tailwindcss": "^4.1.18"
},
"devDependencies": {
- "@types/react": "^19.0.1",
- "@types/react-dom": "^19.0.2",
"@repo/eslint-config": "workspace:*",
"@repo/typescript-config": "workspace:*",
+ "@types/react": "^19.2.7",
+ "@types/react-dom": "^19.2.3",
+ "@vitejs/plugin-react": "^3.1.0",
"eslint": "^8.57.0",
- "typescript": "5.5.4"
+ "typescript": "5.5.4",
+ "vite": "^5.1.4"
}
-}
+}
\ No newline at end of file
diff --git a/packages/ui/src/assets/fonts/.gitkeep b/packages/ui/src/assets/fonts/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/packages/ui/src/assets/images/.gitkeep b/packages/ui/src/assets/images/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/packages/ui/src/assets/styles/globals.css b/packages/ui/src/assets/styles/globals.css
new file mode 100644
index 0000000..983ca7e
--- /dev/null
+++ b/packages/ui/src/assets/styles/globals.css
@@ -0,0 +1,17 @@
+@import 'tailwindcss';
+
+@source "../../../src";
+
+@theme {
+ --color-brand-50: #f5f3fd; /* sangat terang, hampir lavender */
+ --color-brand-100: #e6dbfb;
+ --color-brand-200: #d0b6f8;
+ --color-brand-300: #b78ff5;
+ --color-brand-400: #9f64f1;
+ --color-brand-500: #7d39ed; /* warna utama purple */
+ --color-brand-600: #652ed9;
+ --color-brand-700: #4a23a5;
+ --color-brand-800: #321a7a;
+ --color-brand-900: #1b0f4a;
+ --color-brand-950: #0d0726; /* paling gelap */
+}
diff --git a/packages/ui/src/components/counter.tsx b/packages/ui/src/components/counter.tsx
new file mode 100644
index 0000000..8a7a76e
--- /dev/null
+++ b/packages/ui/src/components/counter.tsx
@@ -0,0 +1,16 @@
+import React, { useState } from 'react';
+
+export const Counter: React.FC = () => {
+ const [count, setCount] = useState(0);
+
+ return (
+
+
100
+
sdsa
+
sada
+
+
+ );
+};
diff --git a/packages/ui/components/header.tsx b/packages/ui/src/components/header.tsx
similarity index 87%
rename from packages/ui/components/header.tsx
rename to packages/ui/src/components/header.tsx
index b2a6598..c142845 100644
--- a/packages/ui/components/header.tsx
+++ b/packages/ui/src/components/header.tsx
@@ -1,4 +1,4 @@
-import React from "react";
+import React from 'react';
interface HeaderProps {
title: string;
diff --git a/packages/ui/components/index.ts b/packages/ui/src/components/index.ts
similarity index 100%
rename from packages/ui/components/index.ts
rename to packages/ui/src/components/index.ts
diff --git a/packages/ui/index.ts b/packages/ui/src/index.ts
similarity index 100%
rename from packages/ui/index.ts
rename to packages/ui/src/index.ts
diff --git a/packages/ui/vite.config.ts b/packages/ui/vite.config.ts
new file mode 100644
index 0000000..6e7f528
--- /dev/null
+++ b/packages/ui/vite.config.ts
@@ -0,0 +1,8 @@
+import { defineConfig } from 'vite';
+import react from '@vitejs/plugin-react';
+import tailwindcss from '@tailwindcss/vite';
+
+// https://vite.dev/config/
+export default defineConfig({
+ plugins: [react(), tailwindcss()],
+});
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index ef1365d..dafb49c 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -18,17 +18,23 @@ importers:
specifier: ^2.7.2
version: 2.7.2
- apps/web:
+ apps/docs-dev:
dependencies:
'@repo/ui':
specifier: workspace:*
version: link:../../packages/ui
+ '@tailwindcss/vite':
+ specifier: ^4.1.18
+ version: 4.1.18(vite@5.4.17)
react:
- specifier: ^18.2.0
- version: 18.3.1
+ specifier: ^19.2.3
+ version: 19.2.3
react-dom:
- specifier: ^18.2.0
- version: 18.3.1(react@18.3.1)
+ specifier: ^19.2.3
+ version: 19.2.3(react@19.2.3)
+ tailwindcss:
+ specifier: ^4.1.18
+ version: 4.1.18
devDependencies:
'@repo/eslint-config':
specifier: workspace:*
@@ -37,11 +43,60 @@ importers:
specifier: workspace:*
version: link:../../packages/typescript-config
'@types/react':
- specifier: ^19.0.1
- version: 19.1.0
+ specifier: ^19.2.7
+ version: 19.2.7
'@types/react-dom':
- specifier: ^19.0.2
- version: 19.1.1(@types/react@19.1.0)
+ specifier: ^19.2.3
+ version: 19.2.3(@types/react@19.2.7)
+ '@vitejs/plugin-react':
+ specifier: ^3.1.0
+ version: 3.1.0(vite@5.4.17)
+ eslint:
+ specifier: ^8.57.0
+ version: 8.57.1
+ typescript:
+ specifier: 5.5.4
+ version: 5.5.4
+ vite:
+ specifier: ^5.1.4
+ version: 5.4.17
+
+ apps/web:
+ dependencies:
+ '@module/template':
+ specifier: workspace:*
+ version: link:../../packages/modules/templates
+ '@repo/ui':
+ specifier: workspace:*
+ version: link:../../packages/ui
+ '@tailwindcss/vite':
+ specifier: ^4.1.18
+ version: 4.1.18(vite@5.4.17)
+ react:
+ specifier: ^19.2.3
+ version: 19.2.3
+ react-dom:
+ specifier: ^19.2.3
+ version: 19.2.3(react@19.2.3)
+ react-router-dom:
+ specifier: ^7.11.0
+ version: 7.11.0(react-dom@19.2.3)(react@19.2.3)
+ tailwindcss:
+ specifier: ^4.1.18
+ version: 4.1.18
+ devDependencies:
+ '@repo/eslint-config':
+ specifier: workspace:*
+ version: link:../../packages/eslint-config
+ '@repo/typescript-config':
+ specifier: workspace:*
+ version: link:../../packages/typescript-config
+ '@types/react':
+ specifier: ^19.2.7
+ version: 19.2.7
+ '@types/react-dom':
+ specifier: ^19.2.3
+ version: 19.2.3(@types/react@19.2.7)
'@vitejs/plugin-react':
specifier: ^3.1.0
version: 3.1.0(vite@5.4.17)
@@ -67,16 +122,80 @@ importers:
specifier: ^9.1.0
version: 9.1.0(eslint@8.57.1)
+ packages/modules/templates:
+ dependencies:
+ '@repo/ui':
+ specifier: workspace:*
+ version: link:../../ui
+ '@tailwindcss/vite':
+ specifier: ^4.1.18
+ version: 4.1.18(vite@5.4.17)
+ react:
+ specifier: ^19.2.3
+ version: 19.2.3
+ react-dom:
+ specifier: ^19.2.3
+ version: 19.2.3(react@19.2.3)
+ react-router-dom:
+ specifier: ^7.11.0
+ version: 7.11.0(react-dom@19.2.3)(react@19.2.3)
+ tailwind-merge:
+ specifier: ^3.4.0
+ version: 3.4.0
+ tailwind-variants:
+ specifier: ^3.2.2
+ version: 3.2.2(tailwind-merge@3.4.0)(tailwindcss@4.1.18)
+ tailwindcss:
+ specifier: ^4.1.18
+ version: 4.1.18
+ devDependencies:
+ '@repo/eslint-config':
+ specifier: workspace:*
+ version: link:../../eslint-config
+ '@repo/typescript-config':
+ specifier: workspace:*
+ version: link:../../typescript-config
+ '@types/react':
+ specifier: ^19.2.7
+ version: 19.2.7
+ '@types/react-dom':
+ specifier: ^19.2.3
+ version: 19.2.3(@types/react@19.2.7)
+ '@vitejs/plugin-react':
+ specifier: ^3.1.0
+ version: 3.1.0(vite@5.4.17)
+ eslint:
+ specifier: ^8.57.0
+ version: 8.57.1
+ typescript:
+ specifier: 5.5.4
+ version: 5.5.4
+ vite:
+ specifier: ^5.1.4
+ version: 5.4.17
+
packages/typescript-config: {}
packages/ui:
dependencies:
+ '@tailwindcss/vite':
+ specifier: ^4.1.18
+ version: 4.1.18(vite@5.4.17)
react:
- specifier: ^18.2.0
- version: 18.3.1
+ specifier: ^19.2.3
+ version: 19.2.3
react-dom:
- specifier: ^18.2.0
- version: 18.3.1(react@18.3.1)
+ specifier: ^19.2.3
+ version: 19.2.3(react@19.2.3)
+ tailwind-merge:
+ specifier: ^3.4.0
+ version: 3.4.0
+ tailwind-variants:
+ specifier: ^3.2.2
+ version: 3.2.2(tailwind-merge@3.4.0)(tailwindcss@4.1.18)
+ tailwindcss:
+ specifier: ^4.1.18
+ version: 4.1.18
devDependencies:
'@repo/eslint-config':
specifier: workspace:*
@@ -85,17 +204,23 @@ importers:
specifier: workspace:*
version: link:../typescript-config
'@types/react':
- specifier: ^19.0.1
- version: 19.1.0
+ specifier: ^19.2.7
+ version: 19.2.7
'@types/react-dom':
- specifier: ^19.0.2
- version: 19.1.1(@types/react@19.1.0)
+ specifier: ^19.2.3
+ version: 19.2.3(@types/react@19.2.7)
+ '@vitejs/plugin-react':
+ specifier: ^3.1.0
+ version: 3.1.0(vite@5.4.17)
eslint:
specifier: ^8.57.0
version: 8.57.1
typescript:
specifier: 5.5.4
version: 5.5.4
+ vite:
+ specifier: ^5.1.4
+ version: 5.4.17
packages:
@@ -283,7 +408,6 @@ packages:
cpu: [ppc64]
os: [aix]
requiresBuild: true
- dev: true
optional: true
/@esbuild/android-arm64@0.21.5:
@@ -292,7 +416,6 @@ packages:
cpu: [arm64]
os: [android]
requiresBuild: true
- dev: true
optional: true
/@esbuild/android-arm@0.21.5:
@@ -301,7 +424,6 @@ packages:
cpu: [arm]
os: [android]
requiresBuild: true
- dev: true
optional: true
/@esbuild/android-x64@0.21.5:
@@ -310,7 +432,6 @@ packages:
cpu: [x64]
os: [android]
requiresBuild: true
- dev: true
optional: true
/@esbuild/darwin-arm64@0.21.5:
@@ -319,7 +440,6 @@ packages:
cpu: [arm64]
os: [darwin]
requiresBuild: true
- dev: true
optional: true
/@esbuild/darwin-x64@0.21.5:
@@ -328,7 +448,6 @@ packages:
cpu: [x64]
os: [darwin]
requiresBuild: true
- dev: true
optional: true
/@esbuild/freebsd-arm64@0.21.5:
@@ -337,7 +456,6 @@ packages:
cpu: [arm64]
os: [freebsd]
requiresBuild: true
- dev: true
optional: true
/@esbuild/freebsd-x64@0.21.5:
@@ -346,7 +464,6 @@ packages:
cpu: [x64]
os: [freebsd]
requiresBuild: true
- dev: true
optional: true
/@esbuild/linux-arm64@0.21.5:
@@ -355,7 +472,6 @@ packages:
cpu: [arm64]
os: [linux]
requiresBuild: true
- dev: true
optional: true
/@esbuild/linux-arm@0.21.5:
@@ -364,7 +480,6 @@ packages:
cpu: [arm]
os: [linux]
requiresBuild: true
- dev: true
optional: true
/@esbuild/linux-ia32@0.21.5:
@@ -373,7 +488,6 @@ packages:
cpu: [ia32]
os: [linux]
requiresBuild: true
- dev: true
optional: true
/@esbuild/linux-loong64@0.21.5:
@@ -382,7 +496,6 @@ packages:
cpu: [loong64]
os: [linux]
requiresBuild: true
- dev: true
optional: true
/@esbuild/linux-mips64el@0.21.5:
@@ -391,7 +504,6 @@ packages:
cpu: [mips64el]
os: [linux]
requiresBuild: true
- dev: true
optional: true
/@esbuild/linux-ppc64@0.21.5:
@@ -400,7 +512,6 @@ packages:
cpu: [ppc64]
os: [linux]
requiresBuild: true
- dev: true
optional: true
/@esbuild/linux-riscv64@0.21.5:
@@ -409,7 +520,6 @@ packages:
cpu: [riscv64]
os: [linux]
requiresBuild: true
- dev: true
optional: true
/@esbuild/linux-s390x@0.21.5:
@@ -418,7 +528,6 @@ packages:
cpu: [s390x]
os: [linux]
requiresBuild: true
- dev: true
optional: true
/@esbuild/linux-x64@0.21.5:
@@ -427,7 +536,6 @@ packages:
cpu: [x64]
os: [linux]
requiresBuild: true
- dev: true
optional: true
/@esbuild/netbsd-x64@0.21.5:
@@ -436,7 +544,6 @@ packages:
cpu: [x64]
os: [netbsd]
requiresBuild: true
- dev: true
optional: true
/@esbuild/openbsd-x64@0.21.5:
@@ -445,7 +552,6 @@ packages:
cpu: [x64]
os: [openbsd]
requiresBuild: true
- dev: true
optional: true
/@esbuild/sunos-x64@0.21.5:
@@ -454,7 +560,6 @@ packages:
cpu: [x64]
os: [sunos]
requiresBuild: true
- dev: true
optional: true
/@esbuild/win32-arm64@0.21.5:
@@ -463,7 +568,6 @@ packages:
cpu: [arm64]
os: [win32]
requiresBuild: true
- dev: true
optional: true
/@esbuild/win32-ia32@0.21.5:
@@ -472,7 +576,6 @@ packages:
cpu: [ia32]
os: [win32]
requiresBuild: true
- dev: true
optional: true
/@esbuild/win32-x64@0.21.5:
@@ -481,7 +584,6 @@ packages:
cpu: [x64]
os: [win32]
requiresBuild: true
- dev: true
optional: true
/@eslint-community/eslint-utils@4.5.1(eslint@8.57.1):
@@ -541,28 +643,34 @@ packages:
'@jridgewell/set-array': 1.2.1
'@jridgewell/sourcemap-codec': 1.5.0
'@jridgewell/trace-mapping': 0.3.25
- dev: true
+
+ /@jridgewell/remapping@2.3.5:
+ resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==}
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.8
+ '@jridgewell/trace-mapping': 0.3.25
+ dev: false
/@jridgewell/resolve-uri@3.1.2:
resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
engines: {node: '>=6.0.0'}
- dev: true
/@jridgewell/set-array@1.2.1:
resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
engines: {node: '>=6.0.0'}
- dev: true
/@jridgewell/sourcemap-codec@1.5.0:
resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
- dev: true
+
+ /@jridgewell/sourcemap-codec@1.5.5:
+ resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
+ dev: false
/@jridgewell/trace-mapping@0.3.25:
resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
dependencies:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.5.0
- dev: true
/@nodelib/fs.scandir@2.1.5:
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
@@ -587,7 +695,6 @@ packages:
cpu: [arm]
os: [android]
requiresBuild: true
- dev: true
optional: true
/@rollup/rollup-android-arm64@4.39.0:
@@ -595,7 +702,6 @@ packages:
cpu: [arm64]
os: [android]
requiresBuild: true
- dev: true
optional: true
/@rollup/rollup-darwin-arm64@4.39.0:
@@ -603,7 +709,6 @@ packages:
cpu: [arm64]
os: [darwin]
requiresBuild: true
- dev: true
optional: true
/@rollup/rollup-darwin-x64@4.39.0:
@@ -611,7 +716,6 @@ packages:
cpu: [x64]
os: [darwin]
requiresBuild: true
- dev: true
optional: true
/@rollup/rollup-freebsd-arm64@4.39.0:
@@ -619,7 +723,6 @@ packages:
cpu: [arm64]
os: [freebsd]
requiresBuild: true
- dev: true
optional: true
/@rollup/rollup-freebsd-x64@4.39.0:
@@ -627,7 +730,6 @@ packages:
cpu: [x64]
os: [freebsd]
requiresBuild: true
- dev: true
optional: true
/@rollup/rollup-linux-arm-gnueabihf@4.39.0:
@@ -635,7 +737,6 @@ packages:
cpu: [arm]
os: [linux]
requiresBuild: true
- dev: true
optional: true
/@rollup/rollup-linux-arm-musleabihf@4.39.0:
@@ -643,7 +744,6 @@ packages:
cpu: [arm]
os: [linux]
requiresBuild: true
- dev: true
optional: true
/@rollup/rollup-linux-arm64-gnu@4.39.0:
@@ -651,7 +751,6 @@ packages:
cpu: [arm64]
os: [linux]
requiresBuild: true
- dev: true
optional: true
/@rollup/rollup-linux-arm64-musl@4.39.0:
@@ -659,7 +758,6 @@ packages:
cpu: [arm64]
os: [linux]
requiresBuild: true
- dev: true
optional: true
/@rollup/rollup-linux-loongarch64-gnu@4.39.0:
@@ -667,7 +765,6 @@ packages:
cpu: [loong64]
os: [linux]
requiresBuild: true
- dev: true
optional: true
/@rollup/rollup-linux-powerpc64le-gnu@4.39.0:
@@ -675,7 +772,6 @@ packages:
cpu: [ppc64]
os: [linux]
requiresBuild: true
- dev: true
optional: true
/@rollup/rollup-linux-riscv64-gnu@4.39.0:
@@ -683,7 +779,6 @@ packages:
cpu: [riscv64]
os: [linux]
requiresBuild: true
- dev: true
optional: true
/@rollup/rollup-linux-riscv64-musl@4.39.0:
@@ -691,7 +786,6 @@ packages:
cpu: [riscv64]
os: [linux]
requiresBuild: true
- dev: true
optional: true
/@rollup/rollup-linux-s390x-gnu@4.39.0:
@@ -699,7 +793,6 @@ packages:
cpu: [s390x]
os: [linux]
requiresBuild: true
- dev: true
optional: true
/@rollup/rollup-linux-x64-gnu@4.39.0:
@@ -707,7 +800,6 @@ packages:
cpu: [x64]
os: [linux]
requiresBuild: true
- dev: true
optional: true
/@rollup/rollup-linux-x64-musl@4.39.0:
@@ -715,7 +807,6 @@ packages:
cpu: [x64]
os: [linux]
requiresBuild: true
- dev: true
optional: true
/@rollup/rollup-win32-arm64-msvc@4.39.0:
@@ -723,7 +814,6 @@ packages:
cpu: [arm64]
os: [win32]
requiresBuild: true
- dev: true
optional: true
/@rollup/rollup-win32-ia32-msvc@4.39.0:
@@ -731,7 +821,6 @@ packages:
cpu: [ia32]
os: [win32]
requiresBuild: true
- dev: true
optional: true
/@rollup/rollup-win32-x64-msvc@4.39.0:
@@ -739,25 +828,178 @@ packages:
cpu: [x64]
os: [win32]
requiresBuild: true
- dev: true
optional: true
+ /@tailwindcss/node@4.1.18:
+ resolution: {integrity: sha512-DoR7U1P7iYhw16qJ49fgXUlry1t4CpXeErJHnQ44JgTSKMaZUdf17cfn5mHchfJ4KRBZRFA/Coo+MUF5+gOaCQ==}
+ dependencies:
+ '@jridgewell/remapping': 2.3.5
+ enhanced-resolve: 5.18.4
+ jiti: 2.6.1
+ lightningcss: 1.30.2
+ magic-string: 0.30.21
+ source-map-js: 1.2.1
+ tailwindcss: 4.1.18
+ dev: false
+
+ /@tailwindcss/oxide-android-arm64@4.1.18:
+ resolution: {integrity: sha512-dJHz7+Ugr9U/diKJA0W6N/6/cjI+ZTAoxPf9Iz9BFRF2GzEX8IvXxFIi/dZBloVJX/MZGvRuFA9rqwdiIEZQ0Q==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@tailwindcss/oxide-darwin-arm64@4.1.18:
+ resolution: {integrity: sha512-Gc2q4Qhs660bhjyBSKgq6BYvwDz4G+BuyJ5H1xfhmDR3D8HnHCmT/BSkvSL0vQLy/nkMLY20PQ2OoYMO15Jd0A==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@tailwindcss/oxide-darwin-x64@4.1.18:
+ resolution: {integrity: sha512-FL5oxr2xQsFrc3X9o1fjHKBYBMD1QZNyc1Xzw/h5Qu4XnEBi3dZn96HcHm41c/euGV+GRiXFfh2hUCyKi/e+yw==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@tailwindcss/oxide-freebsd-x64@4.1.18:
+ resolution: {integrity: sha512-Fj+RHgu5bDodmV1dM9yAxlfJwkkWvLiRjbhuO2LEtwtlYlBgiAT4x/j5wQr1tC3SANAgD+0YcmWVrj8R9trVMA==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@tailwindcss/oxide-linux-arm-gnueabihf@4.1.18:
+ resolution: {integrity: sha512-Fp+Wzk/Ws4dZn+LV2Nqx3IilnhH51YZoRaYHQsVq3RQvEl+71VGKFpkfHrLM/Li+kt5c0DJe/bHXK1eHgDmdiA==}
+ engines: {node: '>= 10'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@tailwindcss/oxide-linux-arm64-gnu@4.1.18:
+ resolution: {integrity: sha512-S0n3jboLysNbh55Vrt7pk9wgpyTTPD0fdQeh7wQfMqLPM/Hrxi+dVsLsPrycQjGKEQk85Kgbx+6+QnYNiHalnw==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@tailwindcss/oxide-linux-arm64-musl@4.1.18:
+ resolution: {integrity: sha512-1px92582HkPQlaaCkdRcio71p8bc8i/ap5807tPRDK/uw953cauQBT8c5tVGkOwrHMfc2Yh6UuxaH4vtTjGvHg==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@tailwindcss/oxide-linux-x64-gnu@4.1.18:
+ resolution: {integrity: sha512-v3gyT0ivkfBLoZGF9LyHmts0Isc8jHZyVcbzio6Wpzifg/+5ZJpDiRiUhDLkcr7f/r38SWNe7ucxmGW3j3Kb/g==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@tailwindcss/oxide-linux-x64-musl@4.1.18:
+ resolution: {integrity: sha512-bhJ2y2OQNlcRwwgOAGMY0xTFStt4/wyU6pvI6LSuZpRgKQwxTec0/3Scu91O8ir7qCR3AuepQKLU/kX99FouqQ==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@tailwindcss/oxide-wasm32-wasi@4.1.18:
+ resolution: {integrity: sha512-LffYTvPjODiP6PT16oNeUQJzNVyJl1cjIebq/rWWBF+3eDst5JGEFSc5cWxyRCJ0Mxl+KyIkqRxk1XPEs9x8TA==}
+ engines: {node: '>=14.0.0'}
+ cpu: [wasm32]
+ requiresBuild: true
+ dev: false
+ optional: true
+ bundledDependencies:
+ - '@napi-rs/wasm-runtime'
+ - '@emnapi/core'
+ - '@emnapi/runtime'
+ - '@tybys/wasm-util'
+ - '@emnapi/wasi-threads'
+ - tslib
+
+ /@tailwindcss/oxide-win32-arm64-msvc@4.1.18:
+ resolution: {integrity: sha512-HjSA7mr9HmC8fu6bdsZvZ+dhjyGCLdotjVOgLA2vEqxEBZaQo9YTX4kwgEvPCpRh8o4uWc4J/wEoFzhEmjvPbA==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@tailwindcss/oxide-win32-x64-msvc@4.1.18:
+ resolution: {integrity: sha512-bJWbyYpUlqamC8dpR7pfjA0I7vdF6t5VpUGMWRkXVE3AXgIZjYUYAK7II1GNaxR8J1SSrSrppRar8G++JekE3Q==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /@tailwindcss/oxide@4.1.18:
+ resolution: {integrity: sha512-EgCR5tTS5bUSKQgzeMClT6iCY3ToqE1y+ZB0AKldj809QXk1Y+3jB0upOYZrn9aGIzPtUsP7sX4QQ4XtjBB95A==}
+ engines: {node: '>= 10'}
+ optionalDependencies:
+ '@tailwindcss/oxide-android-arm64': 4.1.18
+ '@tailwindcss/oxide-darwin-arm64': 4.1.18
+ '@tailwindcss/oxide-darwin-x64': 4.1.18
+ '@tailwindcss/oxide-freebsd-x64': 4.1.18
+ '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.18
+ '@tailwindcss/oxide-linux-arm64-gnu': 4.1.18
+ '@tailwindcss/oxide-linux-arm64-musl': 4.1.18
+ '@tailwindcss/oxide-linux-x64-gnu': 4.1.18
+ '@tailwindcss/oxide-linux-x64-musl': 4.1.18
+ '@tailwindcss/oxide-wasm32-wasi': 4.1.18
+ '@tailwindcss/oxide-win32-arm64-msvc': 4.1.18
+ '@tailwindcss/oxide-win32-x64-msvc': 4.1.18
+ dev: false
+
+ /@tailwindcss/vite@4.1.18(vite@5.4.17):
+ resolution: {integrity: sha512-jVA+/UpKL1vRLg6Hkao5jldawNmRo7mQYrZtNHMIVpLfLhDml5nMRUo/8MwoX2vNXvnaXNNMedrMfMugAVX1nA==}
+ peerDependencies:
+ vite: ^5.2.0 || ^6 || ^7
+ dependencies:
+ '@tailwindcss/node': 4.1.18
+ '@tailwindcss/oxide': 4.1.18
+ tailwindcss: 4.1.18
+ vite: 5.4.17
+ dev: false
+
/@types/estree@1.0.7:
resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==}
- dev: true
- /@types/react-dom@19.1.1(@types/react@19.1.0):
- resolution: {integrity: sha512-jFf/woGTVTjUJsl2O7hcopJ1r0upqoq/vIOoCj0yLh3RIXxWcljlpuZ+vEBRXsymD1jhfeJrlyTy/S1UW+4y1w==}
+ /@types/react-dom@19.2.3(@types/react@19.2.7):
+ resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==}
peerDependencies:
- '@types/react': ^19.0.0
+ '@types/react': ^19.2.0
dependencies:
- '@types/react': 19.1.0
+ '@types/react': 19.2.7
dev: true
- /@types/react@19.1.0:
- resolution: {integrity: sha512-UaicktuQI+9UKyA4njtDOGBD/67t8YEBt2xdfqu8+gP9hqPUPsiXlNPcpS2gVdjmis5GKPG3fCxbQLVgxsQZ8w==}
+ /@types/react@19.2.7:
+ resolution: {integrity: sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg==}
dependencies:
- csstype: 3.1.3
+ csstype: 3.2.3
dev: true
/@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0)(eslint@8.57.1)(typescript@5.5.4):
@@ -1006,6 +1248,11 @@ packages:
resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
dev: true
+ /cookie@1.1.1:
+ resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==}
+ engines: {node: '>=18'}
+ dev: false
+
/cross-spawn@7.0.6:
resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
engines: {node: '>= 8'}
@@ -1014,8 +1261,8 @@ packages:
shebang-command: 2.0.0
which: 2.0.2
- /csstype@3.1.3:
- resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
+ /csstype@3.2.3:
+ resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==}
dev: true
/debug@4.4.0:
@@ -1032,6 +1279,11 @@ packages:
/deep-is@0.1.4:
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
+ /detect-libc@2.1.2:
+ resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
+ engines: {node: '>=8'}
+ dev: false
+
/dir-glob@3.0.1:
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
engines: {node: '>=8'}
@@ -1049,6 +1301,14 @@ packages:
resolution: {integrity: sha512-Ou2u7L9j2XLZbhqzyX0jWDj6gA8D3jIfVzt4rikLf3cGBa0VdReuFimBKS9tQJA4+XpeCxj1NoWlfBXzbMa9IA==}
dev: true
+ /enhanced-resolve@5.18.4:
+ resolution: {integrity: sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==}
+ engines: {node: '>=10.13.0'}
+ dependencies:
+ graceful-fs: 4.2.11
+ tapable: 2.3.0
+ dev: false
+
/esbuild@0.21.5:
resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==}
engines: {node: '>=12'}
@@ -1077,7 +1337,6 @@ packages:
'@esbuild/win32-arm64': 0.21.5
'@esbuild/win32-ia32': 0.21.5
'@esbuild/win32-x64': 0.21.5
- dev: true
/escalade@3.2.0:
resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
@@ -1090,6 +1349,7 @@ packages:
/eslint-config-prettier@9.1.0(eslint@8.57.1):
resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==}
+ hasBin: true
peerDependencies:
eslint: '>=7.0.0'
dependencies:
@@ -1244,7 +1504,6 @@ packages:
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
os: [darwin]
requiresBuild: true
- dev: true
optional: true
/gensync@1.0.0-beta.2:
@@ -1298,6 +1557,10 @@ packages:
slash: 3.0.0
dev: false
+ /graceful-fs@4.2.11:
+ resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+ dev: false
+
/graphemer@1.4.0:
resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
@@ -1351,8 +1614,14 @@ packages:
/isexe@2.0.0:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+ /jiti@2.6.1:
+ resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==}
+ hasBin: true
+ dev: false
+
/js-tokens@4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+ dev: true
/js-yaml@4.1.0:
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
@@ -1390,6 +1659,124 @@ packages:
prelude-ls: 1.2.1
type-check: 0.4.0
+ /lightningcss-android-arm64@1.30.2:
+ resolution: {integrity: sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /lightningcss-darwin-arm64@1.30.2:
+ resolution: {integrity: sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /lightningcss-darwin-x64@1.30.2:
+ resolution: {integrity: sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /lightningcss-freebsd-x64@1.30.2:
+ resolution: {integrity: sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /lightningcss-linux-arm-gnueabihf@1.30.2:
+ resolution: {integrity: sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /lightningcss-linux-arm64-gnu@1.30.2:
+ resolution: {integrity: sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /lightningcss-linux-arm64-musl@1.30.2:
+ resolution: {integrity: sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /lightningcss-linux-x64-gnu@1.30.2:
+ resolution: {integrity: sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /lightningcss-linux-x64-musl@1.30.2:
+ resolution: {integrity: sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /lightningcss-win32-arm64-msvc@1.30.2:
+ resolution: {integrity: sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /lightningcss-win32-x64-msvc@1.30.2:
+ resolution: {integrity: sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /lightningcss@1.30.2:
+ resolution: {integrity: sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==}
+ engines: {node: '>= 12.0.0'}
+ dependencies:
+ detect-libc: 2.1.2
+ optionalDependencies:
+ lightningcss-android-arm64: 1.30.2
+ lightningcss-darwin-arm64: 1.30.2
+ lightningcss-darwin-x64: 1.30.2
+ lightningcss-freebsd-x64: 1.30.2
+ lightningcss-linux-arm-gnueabihf: 1.30.2
+ lightningcss-linux-arm64-gnu: 1.30.2
+ lightningcss-linux-arm64-musl: 1.30.2
+ lightningcss-linux-x64-gnu: 1.30.2
+ lightningcss-linux-x64-musl: 1.30.2
+ lightningcss-win32-arm64-msvc: 1.30.2
+ lightningcss-win32-x64-msvc: 1.30.2
+ dev: false
+
/locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
@@ -1399,12 +1786,6 @@ packages:
/lodash.merge@4.6.2:
resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
- /loose-envify@1.4.0:
- resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
- dependencies:
- js-tokens: 4.0.0
- dev: false
-
/lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
dependencies:
@@ -1418,6 +1799,12 @@ packages:
'@jridgewell/sourcemap-codec': 1.5.0
dev: true
+ /magic-string@0.30.21:
+ resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.5
+ dev: false
+
/merge2@1.4.1:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
engines: {node: '>= 8'}
@@ -1449,7 +1836,6 @@ packages:
/nanoid@3.3.11:
resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
- dev: true
/natural-compare@1.4.0:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
@@ -1511,7 +1897,6 @@ packages:
/picocolors@1.1.1:
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
- dev: true
/picomatch@2.3.1:
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
@@ -1525,7 +1910,6 @@ packages:
nanoid: 3.3.11
picocolors: 1.1.1
source-map-js: 1.2.1
- dev: true
/prelude-ls@1.2.1:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
@@ -1543,14 +1927,13 @@ packages:
/queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
- /react-dom@18.3.1(react@18.3.1):
- resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==}
+ /react-dom@19.2.3(react@19.2.3):
+ resolution: {integrity: sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==}
peerDependencies:
- react: ^18.3.1
+ react: ^19.2.3
dependencies:
- loose-envify: 1.4.0
- react: 18.3.1
- scheduler: 0.23.2
+ react: 19.2.3
+ scheduler: 0.27.0
dev: false
/react-refresh@0.14.2:
@@ -1558,11 +1941,37 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
- /react@18.3.1:
- resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
- engines: {node: '>=0.10.0'}
+ /react-router-dom@7.11.0(react-dom@19.2.3)(react@19.2.3):
+ resolution: {integrity: sha512-e49Ir/kMGRzFOOrYQBdoitq3ULigw4lKbAyKusnvtDu2t4dBX4AGYPrzNvorXmVuOyeakai6FUPW5MmibvVG8g==}
+ engines: {node: '>=20.0.0'}
+ peerDependencies:
+ react: '>=18'
+ react-dom: '>=18'
dependencies:
- loose-envify: 1.4.0
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
+ react-router: 7.11.0(react-dom@19.2.3)(react@19.2.3)
+ dev: false
+
+ /react-router@7.11.0(react-dom@19.2.3)(react@19.2.3):
+ resolution: {integrity: sha512-uI4JkMmjbWCZc01WVP2cH7ZfSzH91JAZUDd7/nIprDgWxBV1TkkmLToFh7EbMTcMak8URFRa2YoBL/W8GWnCTQ==}
+ engines: {node: '>=20.0.0'}
+ peerDependencies:
+ react: '>=18'
+ react-dom: '>=18'
+ peerDependenciesMeta:
+ react-dom:
+ optional: true
+ dependencies:
+ cookie: 1.1.1
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
+ set-cookie-parser: 2.7.2
+ dev: false
+
+ /react@19.2.3:
+ resolution: {integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==}
+ engines: {node: '>=0.10.0'}
dev: false
/resolve-from@4.0.0:
@@ -1605,17 +2014,14 @@ packages:
'@rollup/rollup-win32-ia32-msvc': 4.39.0
'@rollup/rollup-win32-x64-msvc': 4.39.0
fsevents: 2.3.3
- dev: true
/run-parallel@1.2.0:
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
dependencies:
queue-microtask: 1.2.3
- /scheduler@0.23.2:
- resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==}
- dependencies:
- loose-envify: 1.4.0
+ /scheduler@0.27.0:
+ resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==}
dev: false
/semver@6.3.1:
@@ -1627,6 +2033,10 @@ packages:
engines: {node: '>=10'}
dev: false
+ /set-cookie-parser@2.7.2:
+ resolution: {integrity: sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==}
+ dev: false
+
/shebang-command@2.0.0:
resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
engines: {node: '>=8'}
@@ -1645,7 +2055,6 @@ packages:
/source-map-js@1.2.1:
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
engines: {node: '>=0.10.0'}
- dev: true
/strip-ansi@6.0.1:
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
@@ -1663,6 +2072,33 @@ packages:
dependencies:
has-flag: 4.0.0
+ /tailwind-merge@3.4.0:
+ resolution: {integrity: sha512-uSaO4gnW+b3Y2aWoWfFpX62vn2sR3skfhbjsEnaBI81WD1wBLlHZe5sWf0AqjksNdYTbGBEd0UasQMT3SNV15g==}
+ dev: false
+
+ /tailwind-variants@3.2.2(tailwind-merge@3.4.0)(tailwindcss@4.1.18):
+ resolution: {integrity: sha512-Mi4kHeMTLvKlM98XPnK+7HoBPmf4gygdFmqQPaDivc3DpYS6aIY6KiG/PgThrGvii5YZJqRsPz0aPyhoFzmZgg==}
+ engines: {node: '>=16.x', pnpm: '>=7.x'}
+ peerDependencies:
+ tailwind-merge: '>=3.0.0'
+ tailwindcss: '*'
+ peerDependenciesMeta:
+ tailwind-merge:
+ optional: true
+ dependencies:
+ tailwind-merge: 3.4.0
+ tailwindcss: 4.1.18
+ dev: false
+
+ /tailwindcss@4.1.18:
+ resolution: {integrity: sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw==}
+ dev: false
+
+ /tapable@2.3.0:
+ resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==}
+ engines: {node: '>=6'}
+ dev: false
+
/text-table@0.2.0:
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
@@ -1755,9 +2191,11 @@ packages:
/typescript@5.5.4:
resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==}
engines: {node: '>=14.17'}
+ hasBin: true
/update-browserslist-db@1.1.3(browserslist@4.24.4):
resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==}
+ hasBin: true
peerDependencies:
browserslist: '>= 4.21.0'
dependencies:
@@ -1774,6 +2212,7 @@ packages:
/vite@5.4.17:
resolution: {integrity: sha512-5+VqZryDj4wgCs55o9Lp+p8GE78TLVg0lasCH5xFZ4jacZjtqZa6JUw9/p0WeAojaOfncSM6v77InkFPGnvPvg==}
engines: {node: ^18.0.0 || >=20.0.0}
+ hasBin: true
peerDependencies:
'@types/node': ^18.0.0 || >=20.0.0
less: '*'
@@ -1806,7 +2245,6 @@ packages:
rollup: 4.39.0
optionalDependencies:
fsevents: 2.3.3
- dev: true
/which@2.0.2:
resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index 3ff5faa..7715f33 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -1,3 +1,4 @@
packages:
- - "apps/*"
- - "packages/*"
+ - 'apps/*'
+ - 'packages/*'
+ - 'packages/modules/*'
diff --git a/turbo.json b/turbo.json
index 936c556..e688ac3 100644
--- a/turbo.json
+++ b/turbo.json
@@ -1,15 +1,34 @@
{
"$schema": "https://turborepo.com/schema.json",
+ "ui": "tui",
"tasks": {
"build": {
- "dependsOn": ["^build"],
- "inputs": ["$TURBO_DEFAULT$", ".env*"],
- "outputs": ["dist/**"]
+ "dependsOn": [
+ "^build"
+ ],
+ "inputs": [
+ "$TURBO_DEFAULT$",
+ ".env*"
+ ],
+ "outputs": [
+ "dist/**",
+ ".next/**",
+ "!.next/cache/**"
+ ]
+ },
+ "lint": {
+ "dependsOn": [
+ "^lint"
+ ]
+ },
+ "check-types": {
+ "dependsOn": [
+ "^check-types"
+ ]
},
- "lint": {},
"dev": {
"cache": false,
"persistent": true
}
}
-}
+}
\ No newline at end of file