update shadcn/tailwind config

This commit is contained in:
padreug 2025-03-09 14:59:19 +01:00
parent 2a83972b47
commit 903636b6f9
9 changed files with 278 additions and 195 deletions

View file

@ -1,8 +1,7 @@
{
"$schema": "https://shadcn-vue.com/schema.json",
"style": "default",
"style": "new-york",
"typescript": true,
"tsConfigPath": "./tsconfig.json",
"tailwind": {
"config": "tailwind.config.js",
"css": "src/assets/index.css",
@ -10,9 +9,12 @@
"cssVariables": true,
"prefix": ""
},
"framework": "vite",
"aliases": {
"components": "@/components",
"utils": "@/lib/utils"
}
"composables": "@/composables",
"utils": "@/lib/utils",
"ui": "@/components/ui",
"lib": "@/lib"
},
"iconLibrary": "lucide"
}

140
package-lock.json generated
View file

@ -29,14 +29,14 @@
"devDependencies": {
"@tailwindcss/forms": "^0.5.10",
"@tailwindcss/typography": "^0.5.16",
"@tailwindcss/vite": "^4.0.1",
"@types/node": "^22.12.0",
"@tailwindcss/vite": "^4.0.12",
"@types/node": "^22.13.10",
"@types/rollup-plugin-visualizer": "^4.2.3",
"@vitejs/plugin-vue": "^5.2.1",
"@vue/tsconfig": "^0.7.0",
"rollup-plugin-visualizer": "^5.12.0",
"sharp": "^0.33.2",
"tailwindcss": "^4.0.1",
"tailwindcss": "^4.0.12",
"typescript": "~5.6.2",
"vite": "^6.0.5",
"vite-plugin-image-optimizer": "^1.1.7",
@ -3044,44 +3044,44 @@
}
},
"node_modules/@tailwindcss/node": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.0.1.tgz",
"integrity": "sha512-lc+ly6PKHqgCVl7eO8D2JlV96Lks5bmL6pdtM6UasyUHLU2zmrOqU6jfgln120IVnCh3VC8GG/ca24xVTtSokw==",
"version": "4.0.12",
"resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.0.12.tgz",
"integrity": "sha512-a6J11K1Ztdln9OrGfoM75/hChYPcHYGNYimqciMrvKXRmmPaS8XZTHhdvb5a3glz4Kd4ZxE1MnuFE2c0fGGmtg==",
"dev": true,
"license": "MIT",
"dependencies": {
"enhanced-resolve": "^5.18.0",
"enhanced-resolve": "^5.18.1",
"jiti": "^2.4.2",
"tailwindcss": "4.0.1"
"tailwindcss": "4.0.12"
}
},
"node_modules/@tailwindcss/oxide": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.0.1.tgz",
"integrity": "sha512-3z1SpWoDeaA6K6jd92CRrGyDghOcRILEgyWVHRhaUm/tcpiazwJpU9BSG0xB7GGGnl9capojaC+zme/nKsZd/w==",
"version": "4.0.12",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.0.12.tgz",
"integrity": "sha512-DWb+myvJB9xJwelwT9GHaMc1qJj6MDXRDR0CS+T8IdkejAtu8ctJAgV4r1drQJLPeS7mNwq2UHW2GWrudTf63A==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">= 10"
},
"optionalDependencies": {
"@tailwindcss/oxide-android-arm64": "4.0.1",
"@tailwindcss/oxide-darwin-arm64": "4.0.1",
"@tailwindcss/oxide-darwin-x64": "4.0.1",
"@tailwindcss/oxide-freebsd-x64": "4.0.1",
"@tailwindcss/oxide-linux-arm-gnueabihf": "4.0.1",
"@tailwindcss/oxide-linux-arm64-gnu": "4.0.1",
"@tailwindcss/oxide-linux-arm64-musl": "4.0.1",
"@tailwindcss/oxide-linux-x64-gnu": "4.0.1",
"@tailwindcss/oxide-linux-x64-musl": "4.0.1",
"@tailwindcss/oxide-win32-arm64-msvc": "4.0.1",
"@tailwindcss/oxide-win32-x64-msvc": "4.0.1"
"@tailwindcss/oxide-android-arm64": "4.0.12",
"@tailwindcss/oxide-darwin-arm64": "4.0.12",
"@tailwindcss/oxide-darwin-x64": "4.0.12",
"@tailwindcss/oxide-freebsd-x64": "4.0.12",
"@tailwindcss/oxide-linux-arm-gnueabihf": "4.0.12",
"@tailwindcss/oxide-linux-arm64-gnu": "4.0.12",
"@tailwindcss/oxide-linux-arm64-musl": "4.0.12",
"@tailwindcss/oxide-linux-x64-gnu": "4.0.12",
"@tailwindcss/oxide-linux-x64-musl": "4.0.12",
"@tailwindcss/oxide-win32-arm64-msvc": "4.0.12",
"@tailwindcss/oxide-win32-x64-msvc": "4.0.12"
}
},
"node_modules/@tailwindcss/oxide-android-arm64": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.0.1.tgz",
"integrity": "sha512-eP/rI9WaAElpeiiHDqGtDqga9iDsOClXxIqdHayHsw93F24F03b60CwgGhrGF9Io/EuWIpz3TMRhPVOLhoXivw==",
"version": "4.0.12",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.0.12.tgz",
"integrity": "sha512-dAXCaemu3mHLXcA5GwGlQynX8n7tTdvn5i1zAxRvZ5iC9fWLl5bGnjZnzrQqT7ttxCvRwdVf3IHUnMVdDBO/kQ==",
"cpu": [
"arm64"
],
@ -3096,9 +3096,9 @@
}
},
"node_modules/@tailwindcss/oxide-darwin-arm64": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.0.1.tgz",
"integrity": "sha512-jZVUo0kNd1IjxdCYwg4dwegDNsq7PoUx4LM814RmgY3gfJ63Y6GlpJXHOpd5FLv1igpeZox5LzRk2oz8MQoJwQ==",
"version": "4.0.12",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.0.12.tgz",
"integrity": "sha512-vPNI+TpJQ7sizselDXIJdYkx9Cu6JBdtmRWujw9pVIxW8uz3O2PjgGGzL/7A0sXI8XDjSyRChrUnEW9rQygmJQ==",
"cpu": [
"arm64"
],
@ -3113,9 +3113,9 @@
}
},
"node_modules/@tailwindcss/oxide-darwin-x64": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.0.1.tgz",
"integrity": "sha512-E31wHiIf4LB0aKRohrS4U6XfFSACCL9ifUFfPQ16FhcBIL4wU5rcBidvWvT9TQFGPkpE69n5dyXUcqiMrnF/Ig==",
"version": "4.0.12",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.0.12.tgz",
"integrity": "sha512-RL/9jM41Fdq4Efr35C5wgLx98BirnrfwuD+zgMFK6Ir68HeOSqBhW9jsEeC7Y/JcGyPd3MEoJVIU4fAb7YLg7A==",
"cpu": [
"x64"
],
@ -3130,9 +3130,9 @@
}
},
"node_modules/@tailwindcss/oxide-freebsd-x64": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.0.1.tgz",
"integrity": "sha512-8/3ZKLMYqgAsBzTeczOKWtT4geF02g9S7cntY5gvqQZ4E0ImX724cHcZJi9k6fkE6aLbvwxxHxaShFvRxblwKQ==",
"version": "4.0.12",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.0.12.tgz",
"integrity": "sha512-7WzWiax+LguJcMEimY0Q4sBLlFXu1tYxVka3+G2M9KmU/3m84J3jAIV4KZWnockbHsbb2XgrEjtlJKVwHQCoRA==",
"cpu": [
"x64"
],
@ -3147,9 +3147,9 @@
}
},
"node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.0.1.tgz",
"integrity": "sha512-EYjbh225klQfWzy6LeIAfdjHCK+p71yLV/GjdPNW47Bfkkq05fTzIhHhCgshUvNp78EIA33iQU+ktWpW06NgHw==",
"version": "4.0.12",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.0.12.tgz",
"integrity": "sha512-X9LRC7jjE1QlfIaBbXjY0PGeQP87lz5mEfLSVs2J1yRc9PSg1tEPS9NBqY4BU9v5toZgJgzKeaNltORyTs22TQ==",
"cpu": [
"arm"
],
@ -3164,9 +3164,9 @@
}
},
"node_modules/@tailwindcss/oxide-linux-arm64-gnu": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.0.1.tgz",
"integrity": "sha512-PrX2SwIqWNP5cYeSyQfrhbk4ffOM338T6CrEwIAGvLPoUZiklt19yknlsBme6bReSw7TSAMy+8KFdLLi5fcWNQ==",
"version": "4.0.12",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.0.12.tgz",
"integrity": "sha512-i24IFNq2402zfDdoWKypXz0ZNS2G4NKaA82tgBlE2OhHIE+4mg2JDb5wVfyP6R+MCm5grgXvurcIcKWvo44QiQ==",
"cpu": [
"arm64"
],
@ -3181,9 +3181,9 @@
}
},
"node_modules/@tailwindcss/oxide-linux-arm64-musl": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.0.1.tgz",
"integrity": "sha512-iuoFGhKDojtfloi5uj6MIk4kxEOGcsAk/kPbZItF9Dp7TnzVhxo2U/718tXhxGrg6jSL3ST3cQHIjA6yw3OeXw==",
"version": "4.0.12",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.0.12.tgz",
"integrity": "sha512-LmOdshJBfAGIBG0DdBWhI0n5LTMurnGGJCHcsm9F//ISfsHtCnnYIKgYQui5oOz1SUCkqsMGfkAzWyNKZqbGNw==",
"cpu": [
"arm64"
],
@ -3198,9 +3198,9 @@
}
},
"node_modules/@tailwindcss/oxide-linux-x64-gnu": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.0.1.tgz",
"integrity": "sha512-pNUrGQYyE8RK+N9yvkPmHnlKDfFbni9A3lsi37u4RoA/6Yn+zWVoegvAQMZu3w+jqnpb2A/bYJ+LumcclUZ3yg==",
"version": "4.0.12",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.0.12.tgz",
"integrity": "sha512-OSK667qZRH30ep8RiHbZDQfqkXjnzKxdn0oRwWzgCO8CoTxV+MvIkd0BWdQbYtYuM1wrakARV/Hwp0eA/qzdbw==",
"cpu": [
"x64"
],
@ -3215,9 +3215,9 @@
}
},
"node_modules/@tailwindcss/oxide-linux-x64-musl": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.0.1.tgz",
"integrity": "sha512-xSGWaDcT6SJ75su9zWXj8GYb2jM/przXwZGH96RTS7HGDIoI1tvgpls88YajG5Sx7hXaqAWCufjw5L/dlu+lzg==",
"version": "4.0.12",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.0.12.tgz",
"integrity": "sha512-uylhWq6OWQ8krV8Jk+v0H/3AZKJW6xYMgNMyNnUbbYXWi7hIVdxRKNUB5UvrlC3RxtgsK5EAV2i1CWTRsNcAnA==",
"cpu": [
"x64"
],
@ -3232,9 +3232,9 @@
}
},
"node_modules/@tailwindcss/oxide-win32-arm64-msvc": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.0.1.tgz",
"integrity": "sha512-BUNL2isUZ2yWnbplPddggJpZxsqGHPZ1RJAYpu63W4znUnKCzI4m/jiy0WpyYqqOKL9jDM5q0QdsQ9mc3aw5YQ==",
"version": "4.0.12",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.0.12.tgz",
"integrity": "sha512-XDLnhMoXZEEOir1LK43/gHHwK84V1GlV8+pAncUAIN2wloeD+nNciI9WRIY/BeFTqES22DhTIGoilSO39xDb2g==",
"cpu": [
"arm64"
],
@ -3249,9 +3249,9 @@
}
},
"node_modules/@tailwindcss/oxide-win32-x64-msvc": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.0.1.tgz",
"integrity": "sha512-ZtcVu+XXOddGsPlvO5nh2fnbKmwly2C07ZB1lcYCf/b8qIWF04QY9o6vy6/+6ioLRfbp3E7H/ipFio38DZX4oQ==",
"version": "4.0.12",
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.0.12.tgz",
"integrity": "sha512-I/BbjCLpKDQucvtn6rFuYLst1nfFwSMYyPzkx/095RE+tuzk5+fwXuzQh7T3fIBTcbn82qH/sFka7yPGA50tLw==",
"cpu": [
"x64"
],
@ -3282,16 +3282,16 @@
}
},
"node_modules/@tailwindcss/vite": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.0.1.tgz",
"integrity": "sha512-ZkwMBA7uR+nyrafIZI8ce3PduE0dDVFVmxmInCUPTN17Jgy6RfEPXzqtL5fz658eDDxKa5xZ+gmiTt+5AMD0pw==",
"version": "4.0.12",
"resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.0.12.tgz",
"integrity": "sha512-JM3gp601UJiryIZ9R2bSqalzcOy15RCybQ1Q+BJqDEwVyo4LkWKeqQAcrpHapWXY31OJFTuOUVBFDWMhzHm2Bg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@tailwindcss/node": "^4.0.1",
"@tailwindcss/oxide": "^4.0.1",
"@tailwindcss/node": "4.0.12",
"@tailwindcss/oxide": "4.0.12",
"lightningcss": "^1.29.1",
"tailwindcss": "4.0.1"
"tailwindcss": "4.0.12"
},
"peerDependencies": {
"vite": "^5.2.0 || ^6"
@ -3338,9 +3338,9 @@
"license": "MIT"
},
"node_modules/@types/node": {
"version": "22.12.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.12.0.tgz",
"integrity": "sha512-Fll2FZ1riMjNmlmJOdAyY5pUbkftXslB5DgEzlIuNaiWhXd00FhWxVC/r4yV/4wBb9JfImTu+jiSvXTkJ7F/gA==",
"version": "22.13.10",
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.10.tgz",
"integrity": "sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==",
"dev": true,
"license": "MIT",
"dependencies": {
@ -4514,9 +4514,9 @@
"license": "MIT"
},
"node_modules/enhanced-resolve": {
"version": "5.18.0",
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz",
"integrity": "sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==",
"version": "5.18.1",
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz",
"integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==",
"dev": true,
"license": "MIT",
"dependencies": {
@ -7444,9 +7444,9 @@
}
},
"node_modules/tailwindcss": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.1.tgz",
"integrity": "sha512-UK5Biiit/e+r3i0O223bisoS5+y7ZT1PM8Ojn0MxRHzXN1VPZ2KY6Lo6fhu1dOfCfyUAlK7Lt6wSxowRabATBw==",
"version": "4.0.12",
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.12.tgz",
"integrity": "sha512-bT0hJo91FtncsAMSsMzUkoo/iEU0Xs5xgFgVC9XmdM9bw5MhZuQFjPNl6wxAE0SiQF/YTZJa+PndGWYSDtuxAg==",
"license": "MIT"
},
"node_modules/tailwindcss-animate": {

View file

@ -31,14 +31,14 @@
"devDependencies": {
"@tailwindcss/forms": "^0.5.10",
"@tailwindcss/typography": "^0.5.16",
"@tailwindcss/vite": "^4.0.1",
"@types/node": "^22.12.0",
"@tailwindcss/vite": "^4.0.12",
"@types/node": "^22.13.10",
"@types/rollup-plugin-visualizer": "^4.2.3",
"@vitejs/plugin-vue": "^5.2.1",
"@vue/tsconfig": "^0.7.0",
"rollup-plugin-visualizer": "^5.12.0",
"sharp": "^0.33.2",
"tailwindcss": "^4.0.1",
"tailwindcss": "^4.0.12",
"typescript": "~5.6.2",
"vite": "^6.0.5",
"vite-plugin-image-optimizer": "^1.1.7",

View file

@ -4,104 +4,119 @@
@layer base {
:root {
/* Light theme */
--background: rgb(231, 236, 254);
--background: 0 0% 100%;
--background: oklch(0.97 0.02 250);
--foreground: rgb(75, 78, 104);
--foreground: 222.2 84% 4.9%;
--foreground: oklch(0.40 0.03 265);
--card: rgb(226, 230, 242);
--card: 0 0% 100%;
--card: oklch(0.92 0.02 260);
--card-foreground: rgb(75, 78, 104);
--card-foreground: 222.2 84% 4.9%;
--card-foreground: oklch(0.40 0.03 265);
--popover: rgb(226, 230, 242);
--popover: 0 0% 100%;
--popover: oklch(0.92 0.02 260);
--popover-foreground: rgb(75, 78, 104);
--popover-foreground: 222.2 84% 4.9%;
--popover-foreground: oklch(0.40 0.03 265);
--primary: rgb(31, 102, 244);
--primary: 222.2 47.4% 11.2%;
--primary: oklch(0.60 0.20 260);
--primary-foreground: rgb(231, 236, 254);
--primary-foreground: 210 40% 98%;
--primary-foreground: oklch(0.97 0.02 250);
--secondary: rgb(212, 217, 228);
--secondary: 210 40% 96.1%;
--secondary: oklch(0.87 0.03 255);
--secondary-foreground: rgb(75, 78, 104);
--secondary-foreground: 222.2 47.4% 11.2%;
--secondary-foreground: oklch(0.40 0.03 265);
--muted: rgb(212, 217, 228);
--muted: 210 40% 96.1%;
--muted: oklch(0.87 0.03 255);
--muted-foreground: rgb(115, 120, 141);
--muted-foreground: 215.4 16.3% 46.9%;
--muted-foreground: oklch(0.55 0.03 265);
--accent: rgb(241, 127, 101);
--accent: 210 40% 96.1%;
--accent: oklch(0.70 0.15 30);
--accent-foreground: rgb(231, 236, 254);
--accent-foreground: 222.2 47.4% 11.2%;
--accent-foreground: oklch(0.97 0.02 250);
--destructive: rgb(210, 15, 57);
--destructive: 0 84.2% 60.2%;
--destructive: oklch(0.50 0.28 15);
--destructive-foreground: rgb(231, 236, 254);
--destructive-foreground: 210 40% 98%;
--destructive-foreground: oklch(0.97 0.02 250);
--border: rgb(197, 201, 216);
--border: 214.3 31.8% 91.4%;
--border: oklch(0.83 0.02 265);
--input: rgb(197, 201, 216);
--input: 214.3 31.8% 91.4%;
--input: oklch(0.83 0.02 265);
--ring: rgb(31, 102, 244);
--ring: 222.2 84% 4.9%;
--ring: oklch(0.60 0.20 260);
--radius: 0.5rem;
--chart-1: 12 76% 61%;
--chart-2: 173 58% 39%;
--chart-3: 197 37% 24%;
--chart-4: 43 74% 66%;
--chart-5: 27 87% 67%;
}
.dark {
/* Dark theme */
--background: rgb(26, 32, 54);
--background: 222.2 84% 4.9%;
--background: oklch(0.25 0.05 265);
--foreground: rgb(218, 226, 248);
--foreground: 210 40% 98%;
--foreground: oklch(0.90 0.03 260);
--card: rgb(22, 27, 45);
--card: 222.2 84% 4.9%;
--card: oklch(0.20 0.05 265);
--card-foreground: rgb(218, 226, 248);
--card-foreground: 210 40% 98%;
--card-foreground: oklch(0.90 0.03 260);
--popover: rgb(22, 27, 45);
--popover: 222.2 84% 4.9%;
--popover: oklch(0.20 0.05 265);
--popover-foreground: rgb(218, 226, 248);
--popover-foreground: 210 40% 98%;
--popover-foreground: oklch(0.90 0.03 260);
--primary: rgb(127, 167, 249);
--primary: 210 40% 98%;
--primary: oklch(0.75 0.15 260);
--primary-foreground: rgb(26, 32, 54);
--primary-foreground: 222.2 47.4% 11.2%;
--primary-foreground: oklch(0.25 0.05 265);
--secondary: rgb(38, 46, 72);
--secondary: 217.2 32.6% 17.5%;
--secondary: oklch(0.30 0.06 265);
--secondary-foreground: rgb(218, 226, 248);
--secondary-foreground: 210 40% 98%;
--secondary-foreground: oklch(0.90 0.03 260);
--muted: rgb(38, 46, 72);
--muted: 217.2 32.6% 17.5%;
--muted: oklch(0.30 0.06 265);
--muted-foreground: rgb(177, 186, 211);
--muted-foreground: 215 20.2% 65.1%;
--muted-foreground: oklch(0.78 0.06 265);
--accent: rgb(255, 179, 164);
--accent: 217.2 32.6% 17.5%;
--accent: oklch(0.83 0.12 30);
--accent-foreground: rgb(26, 32, 54);
--accent-foreground: 210 40% 98%;
--accent-foreground: oklch(0.25 0.05 265);
--destructive: rgb(247, 130, 150);
--destructive: 0 62.8% 30.6%;
--destructive: oklch(0.75 0.18 15);
--destructive-foreground: rgb(26, 32, 54);
--destructive-foreground: 210 40% 98%;
--destructive-foreground: oklch(0.25 0.05 265);
--border: rgb(38, 46, 72);
--border: 217.2 32.6% 17.5%;
--border: oklch(0.30 0.06 265);
--input: rgb(38, 46, 72);
--input: 217.2 32.6% 17.5%;
--input: oklch(0.30 0.06 265);
--ring: rgb(127, 167, 249);
--ring: 212.7 26.8% 83.9%;
--ring: oklch(0.75 0.15 260);
--chart-1: 220 70% 50%;
--chart-2: 160 60% 45%;
--chart-3: 30 80% 55%;
--chart-4: 280 65% 60%;
--chart-5: 340 75% 55%;
}
}
@ -294,3 +309,11 @@
border-color: var(--destructive-foreground);
}
}
@layer base {
* {
@apply border-border;
}
body {
@apply bg-background text-foreground;
}
}

View file

@ -0,0 +1,16 @@
<script setup lang="ts">
import type { HTMLAttributes } from 'vue'
import { cn } from '@/lib/utils'
import { type BadgeVariants, badgeVariants } from '.'
const props = defineProps<{
variant?: BadgeVariants['variant']
class?: HTMLAttributes['class']
}>()
</script>
<template>
<div :class="cn(badgeVariants({ variant }), props.class)">
<slot />
</div>
</template>

View file

@ -0,0 +1,25 @@
import { cva, type VariantProps } from 'class-variance-authority'
export { default as Badge } from './Badge.vue'
export const badgeVariants = cva(
'inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',
{
variants: {
variant: {
default:
'border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80',
secondary:
'border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80',
destructive:
'border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80',
outline: 'text-foreground',
},
},
defaultVariants: {
variant: 'default',
},
},
)
export type BadgeVariants = VariantProps<typeof badgeVariants>

View file

@ -1,3 +1,5 @@
import type { Updater } from '@tanstack/vue-table'
import type { Ref } from 'vue'
import { type ClassValue, clsx } from 'clsx'
import { twMerge } from 'tailwind-merge'
@ -5,11 +7,9 @@ export function cn(...inputs: ClassValue[]) {
return twMerge(clsx(inputs))
}
export async function withTimeout<T>(promise: Promise<T>, timeoutMs: number = 10000): Promise<T> {
return Promise.race([
promise,
new Promise<T>((_, reject) =>
setTimeout(() => reject(new Error('Operation timed out')), timeoutMs)
)
])
export function valueUpdater<T extends Updater<any>>(updaterOrValue: T, ref: Ref) {
ref.value
= typeof updaterOrValue === 'function'
? updaterOrValue(ref.value)
: updaterOrValue
}

View file

@ -2,7 +2,7 @@ const animate = require("tailwindcss-animate")
/** @type {import('tailwindcss').Config} */
module.exports = {
darkMode: 'class',
darkMode: ['class', 'class'],
safelist: ["dark"],
prefix: "",
@ -15,79 +15,95 @@ module.exports = {
],
theme: {
container: {
center: true,
padding: "2rem",
screens: {
"2xl": "1400px",
},
},
extend: {
colors: {
border: 'hsl(var(--border) / <alpha-value>)',
input: 'hsl(var(--input) / <alpha-value>)',
ring: 'hsl(var(--ring) / <alpha-value>)',
background: 'hsl(var(--background) / <alpha-value>)',
foreground: 'hsl(var(--foreground) / <alpha-value>)',
primary: {
DEFAULT: 'hsl(var(--primary) / <alpha-value>)',
foreground: 'hsl(var(--primary-foreground) / <alpha-value>)',
},
secondary: {
DEFAULT: 'hsl(var(--secondary) / <alpha-value>)',
foreground: 'hsl(var(--secondary-foreground) / <alpha-value>)',
},
destructive: {
DEFAULT: 'hsl(var(--destructive) / <alpha-value>)',
foreground: 'hsl(var(--destructive-foreground) / <alpha-value>)',
},
muted: {
DEFAULT: 'hsl(var(--muted) / <alpha-value>)',
foreground: 'hsl(var(--muted-foreground) / <alpha-value>)',
},
accent: {
DEFAULT: 'hsl(var(--accent) / <alpha-value>)',
foreground: 'hsl(var(--accent-foreground) / <alpha-value>)',
},
popover: {
DEFAULT: 'hsl(var(--popover) / <alpha-value>)',
foreground: 'hsl(var(--popover-foreground) / <alpha-value>)',
},
card: {
DEFAULT: 'hsl(var(--card) / <alpha-value>)',
foreground: 'hsl(var(--card-foreground) / <alpha-value>)',
},
},
borderRadius: {
lg: 'var(--radius)',
md: 'calc(var(--radius) - 2px)',
sm: 'calc(var(--radius) - 4px)',
},
keyframes: {
"accordion-down": {
from: { height: "0" },
to: { height: "var(--radix-accordion-content-height)" },
},
"accordion-up": {
from: { height: "var(--radix-accordion-content-height)" },
to: { height: "0" },
},
},
animation: {
"accordion-down": "accordion-down 0.2s ease-out",
"accordion-up": "accordion-up 0.2s ease-out",
},
backgroundImage: {
'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))',
'gradient-conic': 'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))',
},
},
container: {
center: true,
padding: '2rem',
screens: {
'2xl': '1400px'
}
},
extend: {
colors: {
border: 'hsl(var(--border))',
input: 'hsl(var(--input))',
ring: 'hsl(var(--ring))',
background: 'hsl(var(--background))',
foreground: 'hsl(var(--foreground))',
primary: {
DEFAULT: 'hsl(var(--primary))',
foreground: 'hsl(var(--primary-foreground))'
},
secondary: {
DEFAULT: 'hsl(var(--secondary))',
foreground: 'hsl(var(--secondary-foreground))'
},
destructive: {
DEFAULT: 'hsl(var(--destructive))',
foreground: 'hsl(var(--destructive-foreground))'
},
muted: {
DEFAULT: 'hsl(var(--muted))',
foreground: 'hsl(var(--muted-foreground))'
},
accent: {
DEFAULT: 'hsl(var(--accent))',
foreground: 'hsl(var(--accent-foreground))'
},
popover: {
DEFAULT: 'hsl(var(--popover))',
foreground: 'hsl(var(--popover-foreground))'
},
card: {
DEFAULT: 'hsl(var(--card))',
foreground: 'hsl(var(--card-foreground))'
},
chart: {
'1': 'hsl(var(--chart-1))',
'2': 'hsl(var(--chart-2))',
'3': 'hsl(var(--chart-3))',
'4': 'hsl(var(--chart-4))',
'5': 'hsl(var(--chart-5))'
}
},
borderRadius: {
lg: 'var(--radius)',
md: 'calc(var(--radius) - 2px)',
sm: 'calc(var(--radius) - 4px)'
},
keyframes: {
'accordion-down': {
from: {
height: '0'
},
to: {
height: 'var(--radix-accordion-content-height)'
}
},
'accordion-up': {
from: {
height: 'var(--radix-accordion-content-height)'
},
to: {
height: '0'
}
}
},
animation: {
'accordion-down': 'accordion-down 0.2s ease-out',
'accordion-up': 'accordion-up 0.2s ease-out'
},
backgroundImage: {
'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))',
'gradient-conic': 'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))'
}
}
},
plugins: [
animate,
require('@tailwindcss/forms'),
require('@tailwindcss/typography'),
],
require("tailwindcss-animate")
],
future: {
hoverOnlyWhenSupported: true,
respectDefaultRingColorOpacity: true,

View file

@ -11,9 +11,10 @@
// shadcn
"baseUrl": ".",
"paths": {
"@/*": [
"./src/*"
]
"@/*": ["./src/*"],
"@/components/*": ["./src/components/*"],
"@/lib/*": ["./src/lib/*"],
"@/composables/*": ["./src/composables/*"]
}
},
"include": [