diff --git a/.gitpod.yml b/.gitpod.yml index e0bc908406..aeba52d9bf 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -109,7 +109,7 @@ vscode: - 'EditorConfig.EditorConfig' - 'dbaeumer.vscode-eslint' - 'esbenp.prettier-vscode' - - 'voorjaar.windicss-intellisense' + - 'bradlc.vscode-tailwindcss' - 'Vue.volar' - 'redhat.vscode-yaml' - 'davidanson.vscode-markdownlint' diff --git a/.vscode/extensions.json b/.vscode/extensions.json index fba35f3805..4b1931cba5 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -5,7 +5,7 @@ "EditorConfig.EditorConfig", "dbaeumer.vscode-eslint", "esbenp.prettier-vscode", - "voorjaar.windicss-intellisense", + "bradlc.vscode-tailwindcss", "Vue.volar", "redhat.vscode-yaml", "davidanson.vscode-markdownlint" diff --git a/go.sum b/go.sum index c2ca7726dc..e08516394b 100644 --- a/go.sum +++ b/go.sum @@ -417,8 +417,6 @@ github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65E github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= github.com/urfave/cli/v2 v2.27.1 h1:8xSQ6szndafKVRmfyeUMxkNUJQMjL1F2zmsZ+qHpfho= github.com/urfave/cli/v2 v2.27.1/go.mod h1:8qnjx1vcq5s2/wpsqoZFndg2CE5tNFyrTvS6SinrnYQ= -github.com/xanzy/go-gitlab v0.95.2 h1:4p0IirHqEp5f0baK/aQqr4TR57IsD+8e4fuyAA1yi88= -github.com/xanzy/go-gitlab v0.95.2/go.mod h1:ETg8tcj4OhrB84UEgeE8dSuV/0h4BBL1uOV/qK0vlyI= github.com/xanzy/go-gitlab v0.96.0 h1:LGkZ+wSNMRtHIBaYE4Hq3dZVjprwHv3Y1+rhKU3WETs= github.com/xanzy/go-gitlab v0.96.0/go.mod h1:ETg8tcj4OhrB84UEgeE8dSuV/0h4BBL1uOV/qK0vlyI= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= @@ -622,16 +620,10 @@ gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.4.0 h1:ZazjZUfuVeZGLAmlKKuyv3IKP5orXcwtOwDQH6YVr6o= gotest.tools/v3 v3.4.0/go.mod h1:CtbdzLSsqVhDgMtKsx03ird5YTGB3ar27v0u/yKBW5g= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -k8s.io/api v0.29.0 h1:NiCdQMY1QOp1H8lfRyeEf8eOwV6+0xA6XEE44ohDX2A= -k8s.io/api v0.29.0/go.mod h1:sdVmXoz2Bo/cb77Pxi71IPTSErEW32xa4aXwKH7gfBA= k8s.io/api v0.29.1 h1:DAjwWX/9YT7NQD4INu49ROJuZAAAP/Ijki48GUPzxqw= k8s.io/api v0.29.1/go.mod h1:7Kl10vBRUXhnQQI8YR/R327zXC8eJ7887/+Ybta+RoQ= -k8s.io/apimachinery v0.29.0 h1:+ACVktwyicPz0oc6MTMLwa2Pw3ouLAfAon1wPLtG48o= -k8s.io/apimachinery v0.29.0/go.mod h1:eVBxQ/cwiJxH58eK/jd/vAk4mrxmVlnpBH5J2GbMeis= k8s.io/apimachinery v0.29.1 h1:KY4/E6km/wLBguvCZv8cKTeOwwOBqFNjwJIdMkMbbRc= k8s.io/apimachinery v0.29.1/go.mod h1:6HVkd1FwxIagpYrHSwJlQqZI3G9LfYWRPAkUvLnXTKU= -k8s.io/client-go v0.29.0 h1:KmlDtFcrdUzOYrBhXHgKw5ycWzc3ryPX5mQe0SkG3y8= -k8s.io/client-go v0.29.0/go.mod h1:yLkXH4HKMAywcrD82KMSmfYg2DlE8mepPR4JGSo5n38= k8s.io/client-go v0.29.1 h1:19B/+2NGEwnFLzt0uB5kNJnfTsbV8w6TgQRz9l7ti7A= k8s.io/client-go v0.29.1/go.mod h1:TDG/psL9hdet0TI9mGyHJSgRkW3H9JZk2dNEUS7bRks= k8s.io/klog/v2 v2.110.1 h1:U/Af64HJf7FcwMcXyKm2RPM22WZzyR7OSpYj5tg3cL0= diff --git a/web/package.json b/web/package.json index 6df8ab767d..4421547491 100644 --- a/web/package.json +++ b/web/package.json @@ -35,6 +35,7 @@ }, "devDependencies": { "@iconify/json": "^2.2.171", + "@tailwindcss/typography": "^0.5.10", "@types/lodash": "^4.14.202", "@types/node": "^20.11.5", "@types/node-emoji": "^1.8.2", @@ -44,6 +45,7 @@ "@typescript-eslint/parser": "^6.19.0", "@vitejs/plugin-vue": "^5.0.3", "@vue/compiler-sfc": "^3.4.15", + "autoprefixer": "^10.4.17", "eslint": "^8.56.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-config-airbnb-typescript": "^17.1.0", @@ -54,19 +56,19 @@ "eslint-plugin-simple-import-sort": "^10.0.0", "eslint-plugin-vue": "^9.20.1", "eslint-plugin-vue-scoped-css": "^2.7.2", + "postcss": "^8.4.33", "prettier": "^3.2.4", "replace-in-file": "^7.1.0", + "tailwindcss": "^3.4.1", "tinycolor2": "^1.6.0", "typescript": "5.3.3", "unplugin-icons": "^0.18.2", "unplugin-vue-components": "^0.26.0", "vite": "^5.0.12", "vite-plugin-prismjs": "^0.0.11", - "vite-plugin-windicss": "^1.9.3", "vite-svg-loader": "^5.1.0", "vue-eslint-parser": "^9.4.0", - "vue-tsc": "^1.8.27", - "windicss": "^3.5.6" + "vue-tsc": "^1.8.27" }, "pnpm": { "overrides": { diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml index db5065dfab..46005d1941 100644 --- a/web/pnpm-lock.yaml +++ b/web/pnpm-lock.yaml @@ -58,6 +58,9 @@ devDependencies: '@iconify/json': specifier: ^2.2.171 version: 2.2.174 + '@tailwindcss/typography': + specifier: ^0.5.10 + version: 0.5.10(tailwindcss@3.4.1) '@types/lodash': specifier: ^4.14.202 version: 4.14.202 @@ -85,6 +88,9 @@ devDependencies: '@vue/compiler-sfc': specifier: ^3.4.15 version: 3.4.15 + autoprefixer: + specifier: ^10.4.17 + version: 10.4.17(postcss@8.4.33) eslint: specifier: ^8.56.0 version: 8.56.0 @@ -115,12 +121,18 @@ devDependencies: eslint-plugin-vue-scoped-css: specifier: ^2.7.2 version: 2.7.2(eslint@8.56.0)(vue-eslint-parser@9.4.2) + postcss: + specifier: ^8.4.33 + version: 8.4.33 prettier: specifier: ^3.2.4 version: 3.2.4 replace-in-file: specifier: ^7.1.0 version: 7.1.0 + tailwindcss: + specifier: ^3.4.1 + version: 3.4.1 tinycolor2: specifier: ^1.6.0 version: 1.6.0 @@ -139,9 +151,6 @@ devDependencies: vite-plugin-prismjs: specifier: ^0.0.11 version: 0.0.11(prismjs@1.29.0) - vite-plugin-windicss: - specifier: ^1.9.3 - version: 1.9.3(vite@5.0.12) vite-svg-loader: specifier: ^5.1.0 version: 5.1.0(vue@3.4.15) @@ -151,9 +160,6 @@ devDependencies: vue-tsc: specifier: ^1.8.27 version: 1.8.27(typescript@5.3.3) - windicss: - specifier: ^3.5.6 - version: 3.5.6 packages: @@ -162,6 +168,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /@alloc/quick-lru@5.2.0: + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + dev: true + /@ampproject/remapping@2.2.1: resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} engines: {node: '>=6.0.0'} @@ -741,6 +752,18 @@ packages: - supports-color dev: false + /@isaacs/cliui@8.0.2: + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + dependencies: + string-width: 5.1.2 + string-width-cjs: /string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: /strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: /wrap-ansi@7.0.0 + dev: true + /@jridgewell/gen-mapping@0.3.3: resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} engines: {node: '>=6.0.0'} @@ -796,6 +819,13 @@ packages: '@nodelib/fs.scandir': 2.1.5 fastq: 1.16.0 + /@pkgjs/parseargs@0.11.0: + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + requiresBuild: true + dev: true + optional: true + /@pkgr/core@0.1.1: resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} @@ -923,6 +953,18 @@ packages: engines: {node: '>=10'} dev: false + /@tailwindcss/typography@0.5.10(tailwindcss@3.4.1): + resolution: {integrity: sha512-Pe8BuPJQJd3FfRnm6H0ulKIGoMEQS+Vq01R6M5aCrFB/ccR/shT+0kXLjouGC1gFLm9hopTFN+DMP0pfwRWzPw==} + peerDependencies: + tailwindcss: '>=3.0.0 || insiders' + dependencies: + lodash.castarray: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + postcss-selector-parser: 6.0.10 + tailwindcss: 3.4.1 + dev: true + /@trysound/sax@0.2.0: resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} engines: {node: '>=10.13.0'} @@ -1244,30 +1286,6 @@ packages: - vue dev: false - /@windicss/config@1.9.3: - resolution: {integrity: sha512-u8GUjsfC9r5X1AGYhzb1lX3zZj8wqk6SH1DYex8XUGmZ1M2UpvnUPOFi63XFViduspQ6l2xTX84QtG+lUzhEoQ==} - dependencies: - debug: 4.3.4 - jiti: 1.21.0 - windicss: 3.5.6 - transitivePeerDependencies: - - supports-color - dev: true - - /@windicss/plugin-utils@1.9.3: - resolution: {integrity: sha512-3VG5HEGeuIfG/9iTwLyzWWm/aGKNTbtSVkpkAabdRuDP/2lEmf6Hpo4uo5drwE+2O9gXfc6nSYgAwBjotx5CfQ==} - dependencies: - '@antfu/utils': 0.7.7 - '@windicss/config': 1.9.3 - debug: 4.3.4 - fast-glob: 3.3.2 - magic-string: 0.30.5 - micromatch: 4.0.5 - windicss: 3.5.6 - transitivePeerDependencies: - - supports-color - dev: true - /acorn-jsx@5.3.2(acorn@8.11.3): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -1294,6 +1312,11 @@ packages: engines: {node: '>=8'} dev: true + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + dev: true + /ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} @@ -1308,10 +1331,19 @@ packages: color-convert: 2.0.1 dev: true + /ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + dev: true + /ansi_up@6.0.2: resolution: {integrity: sha512-3G3vKvl1ilEp7J1u6BmULpMA0xVoW/f4Ekqhl8RTrJrhEBkonKn5k3bUc5Xt+qDayA6iDX0jyUh3AbZjB/l0tw==} dev: false + /any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + dev: true + /anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -1319,6 +1351,10 @@ packages: normalize-path: 3.0.0 picomatch: 2.3.1 + /arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + dev: true + /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} @@ -1395,6 +1431,22 @@ packages: hasBin: true dev: true + /autoprefixer@10.4.17(postcss@8.4.33): + resolution: {integrity: sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: 4.22.2 + caniuse-lite: 1.0.30001579 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.33 + postcss-value-parser: 4.2.0 + dev: true + /available-typed-arrays@1.0.5: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} engines: {node: '>= 0.4'} @@ -1463,6 +1515,11 @@ packages: engines: {node: '>=6'} dev: true + /camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + dev: true + /caniuse-lite@1.0.30001579: resolution: {integrity: sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA==} dev: true @@ -1533,6 +1590,11 @@ packages: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} dev: true + /commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + dev: true + /commander@7.2.0: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} @@ -1675,6 +1737,10 @@ packages: object-keys: 1.1.1 dev: true + /didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + dev: true + /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -1682,6 +1748,10 @@ packages: path-type: 4.0.0 dev: true + /dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + dev: true + /doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} @@ -1723,6 +1793,10 @@ packages: domhandler: 5.0.3 dev: true + /eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dev: true + /electron-to-chromium@1.4.645: resolution: {integrity: sha512-EeS1oQDCmnYsRDRy2zTeC336a/4LZ6WKqvSaM1jLocEk5ZuyszkQtCpsqvuvaIXGOUjwtvF6LTcS8WueibXvSw==} dev: true @@ -1731,6 +1805,10 @@ packages: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: true + /emojilib@2.4.0: resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} dev: false @@ -2265,6 +2343,18 @@ packages: is-callable: 1.2.7 dev: true + /foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + engines: {node: '>=14'} + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + dev: true + + /fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + dev: true + /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true @@ -2349,6 +2439,18 @@ packages: is-glob: 4.0.3 dev: true + /glob@10.3.10: + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + dependencies: + foreground-child: 3.1.1 + jackspeak: 2.3.6 + minimatch: 9.0.3 + minipass: 7.0.4 + path-scurry: 1.10.1 + dev: true + /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: @@ -2650,6 +2752,15 @@ packages: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true + /jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + engines: {node: '>=14'} + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + dev: true + /jiti@1.21.0: resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} hasBin: true @@ -2730,6 +2841,20 @@ packages: type-check: 0.4.0 dev: true + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + dev: true + + /lilconfig@3.0.0: + resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} + engines: {node: '>=14'} + dev: true + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true + /local-pkg@0.4.3: resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} engines: {node: '>=14'} @@ -2750,6 +2875,14 @@ packages: p-locate: 5.0.0 dev: true + /lodash.castarray@4.4.0: + resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} + dev: true + + /lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + dev: true + /lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true @@ -2761,6 +2894,11 @@ packages: /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + /lru-cache@10.2.0: + resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} + engines: {node: 14 || >=16.14} + dev: true + /lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: @@ -2836,6 +2974,11 @@ packages: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} dev: true + /minipass@7.0.4: + resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} + engines: {node: '>=16 || 14 >=14.17'} + dev: true + /mlly@1.5.0: resolution: {integrity: sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==} dependencies: @@ -2855,6 +2998,14 @@ packages: resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} dev: true + /mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + dev: true + /nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -2882,6 +3033,11 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} + /normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + dev: true + /npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} @@ -2902,6 +3058,16 @@ packages: boolbase: 1.0.0 dev: true + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: true + + /object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + dev: true + /object-inspect@1.13.1: resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} dev: true @@ -3038,6 +3204,14 @@ packages: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} dev: true + /path-scurry@1.10.1: + resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + lru-cache: 10.2.0 + minipass: 7.0.4 + dev: true + /path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -3053,6 +3227,11 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + /pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + dev: true + /pinia@2.1.7(typescript@5.3.3)(vue@3.4.15): resolution: {integrity: sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==} peerDependencies: @@ -3071,6 +3250,11 @@ packages: vue-demi: 0.14.6(vue@3.4.15) dev: false + /pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + dev: true + /pkg-types@1.0.3: resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} dependencies: @@ -3078,6 +3262,55 @@ packages: mlly: 1.5.0 pathe: 1.1.2 + /postcss-import@15.1.0(postcss@8.4.33): + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: 8.4.33 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.8 + dev: true + + /postcss-js@4.0.1(postcss@8.4.33): + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.33 + dev: true + + /postcss-load-config@4.0.2(postcss@8.4.33): + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 3.0.0 + postcss: 8.4.33 + yaml: 2.3.4 + dev: true + + /postcss-nested@6.0.1(postcss@8.4.33): + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + dependencies: + postcss: 8.4.33 + postcss-selector-parser: 6.0.15 + dev: true + /postcss-safe-parser@6.0.0(postcss@8.4.33): resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} engines: {node: '>=12.0'} @@ -3096,6 +3329,14 @@ packages: postcss: 8.4.33 dev: true + /postcss-selector-parser@6.0.10: + resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: true + /postcss-selector-parser@6.0.15: resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==} engines: {node: '>=4'} @@ -3117,6 +3358,10 @@ packages: - supports-color dev: true + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + dev: true + /postcss@8.4.33: resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==} engines: {node: ^10 || ^12 || >=14} @@ -3155,6 +3400,12 @@ packages: /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + /read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + dependencies: + pify: 2.3.0 + dev: true + /readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} @@ -3363,6 +3614,15 @@ packages: strip-ansi: 6.0.1 dev: true + /string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + dev: true + /string.prototype.trim@1.2.8: resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} engines: {node: '>= 0.4'} @@ -3395,6 +3655,13 @@ packages: ansi-regex: 5.0.1 dev: true + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + dependencies: + ansi-regex: 6.0.1 + dev: true + /strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} @@ -3429,6 +3696,20 @@ packages: - supports-color dev: true + /sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + commander: 4.1.1 + glob: 10.3.10 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + dev: true + /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -3470,10 +3751,54 @@ packages: tslib: 2.6.2 dev: true + /tailwindcss@3.4.1: + resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.5.3 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.2 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.0 + lilconfig: 2.1.0 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.0.0 + postcss: 8.4.33 + postcss-import: 15.1.0(postcss@8.4.33) + postcss-js: 4.0.1(postcss@8.4.33) + postcss-load-config: 4.0.2(postcss@8.4.33) + postcss-nested: 6.0.1(postcss@8.4.33) + postcss-selector-parser: 6.0.15 + resolve: 1.22.8 + sucrase: 3.35.0 + transitivePeerDependencies: + - ts-node + dev: true + /text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + dependencies: + thenify: 3.3.1 + dev: true + + /thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + dependencies: + any-promise: 1.3.0 + dev: true + /tinycolor2@1.6.0: resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} dev: true @@ -3497,6 +3822,10 @@ packages: typescript: 5.3.3 dev: true + /ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + dev: true + /tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} dependencies: @@ -3687,20 +4016,6 @@ packages: - supports-color dev: true - /vite-plugin-windicss@1.9.3(vite@5.0.12): - resolution: {integrity: sha512-PqNiIsrEftCrgn0xIpj8ZMSdpz8NZn+OJ3gKXnOF+hFzbHFrKGJA49ViOUKCHDOquxoGBZMmTjepWr8GrftKcQ==} - peerDependencies: - vite: ^2.0.1 || ^3.0.0 || ^4.0.0 || ^5.0.0 - dependencies: - '@windicss/plugin-utils': 1.9.3 - debug: 4.3.4 - kolorist: 1.8.0 - vite: 5.0.12(@types/node@20.11.6) - windicss: 3.5.6 - transitivePeerDependencies: - - supports-color - dev: true - /vite-svg-loader@5.1.0(vue@3.4.15): resolution: {integrity: sha512-M/wqwtOEjgb956/+m5ZrYT/Iq6Hax0OakWbokj8+9PXOnB7b/4AxESHieEtnNEy7ZpjsjYW1/5nK8fATQMmRxw==} peerDependencies: @@ -3870,12 +4185,6 @@ packages: isexe: 2.0.0 dev: true - /windicss@3.5.6: - resolution: {integrity: sha512-P1mzPEjgFMZLX0ZqfFht4fhV/FX8DTG7ERG1fBLiWvd34pTLVReS5CVsewKn9PApSgXnVfPWwvq+qUsRwpnwFA==} - engines: {node: '>= 12'} - hasBin: true - dev: true - /wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -3885,6 +4194,15 @@ packages: strip-ansi: 6.0.1 dev: true + /wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + dev: true + /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: true @@ -3918,7 +4236,6 @@ packages: /yaml@2.3.4: resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} engines: {node: '>= 14'} - dev: false /yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} diff --git a/web/postcss.config.js b/web/postcss.config.js new file mode 100644 index 0000000000..33ad091d26 --- /dev/null +++ b/web/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/web/src/components/layout/header/ActivePipelines.vue b/web/src/components/layout/header/ActivePipelines.vue index e6419f84b2..c8bc1fbe25 100644 --- a/web/src/components/layout/header/ActivePipelines.vue +++ b/web/src/components/layout/header/ActivePipelines.vue @@ -36,7 +36,7 @@ onMounted(async () => { .spinner .spinner-ring { animation: spinner 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite; border-color: #fff transparent transparent transparent; - @apply border-3 rounded-full absolute top-1.5 bottom-1.5 left-1.5 right-1.5; + @apply border-4 rounded-full absolute top-1.5 bottom-1.5 left-1.5 right-1.5; } .spinner .ring1 { animation-delay: -0.45s; diff --git a/web/src/compositions/useTheme.ts b/web/src/compositions/useTheme.ts index 159fe8ed9a..f8ba4498f2 100644 --- a/web/src/compositions/useTheme.ts +++ b/web/src/compositions/useTheme.ts @@ -10,7 +10,7 @@ function updateTheme() { document.documentElement.classList.remove('light'); document.documentElement.classList.add('dark'); document.documentElement.setAttribute('data-theme', 'dark'); - document.querySelector('meta[name=theme-color]')?.setAttribute('content', '#2A2E3A'); // internal-wp-secondary-600 (see windi.config.ts) + document.querySelector('meta[name=theme-color]')?.setAttribute('content', '#2A2E3A'); // internal-wp-secondary-600 (see tailwind.config.js) } else { document.documentElement.classList.remove('dark'); document.documentElement.classList.add('light'); diff --git a/web/src/main.ts b/web/src/main.ts index 90eb154ee8..dbe70466fe 100644 --- a/web/src/main.ts +++ b/web/src/main.ts @@ -1,4 +1,3 @@ -import 'windi.css'; import '~/compositions/useFavicon'; import '~/style.css'; diff --git a/web/src/style.css b/web/src/style.css index 0855c2ef14..6cf26c338a 100644 --- a/web/src/style.css +++ b/web/src/style.css @@ -1,100 +1,110 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer components { + .hover-effect { + @apply hover:bg-black hover:bg-opacity-10 dark:hover:bg-white dark:hover:bg-opacity-5 transition-colors duration-100; + } +} + :root, -:root[data-theme='light'] { - --wp-background-100: theme('colors.white'); - --wp-background-200: theme('colors.gray.100'); - --wp-background-300: theme('colors.gray.200'); - --wp-background-400: theme('colors.gray.300'); - - --wp-text-100: theme('colors.gray.600'); - --wp-text-200: theme('colors.gray.700'); - --wp-text-alt-100: theme('colors.gray.500'); - - --wp-primary-100: theme('colors.int-wp-primary.300'); - --wp-primary-200: theme('colors.int-wp-primary.400'); - --wp-primary-300: theme('colors.int-wp-primary.500'); - --wp-primary-text-100: theme('colors.white'); - - --wp-control-neutral-100: theme('colors.white'); - --wp-control-neutral-200: theme('colors.gray.300'); - --wp-control-neutral-300: theme('colors.gray.400'); - - --wp-control-info-100: theme('colors.int-wp-control-info.100'); - --wp-control-info-200: theme('colors.int-wp-control-info.200'); - --wp-control-info-300: theme('colors.int-wp-control-info.300'); - - --wp-control-ok-100: theme('colors.int-wp-control-ok.100'); - --wp-control-ok-200: theme('colors.int-wp-control-ok.200'); - --wp-control-ok-300: theme('colors.int-wp-control-ok.300'); - - --wp-control-error-100: theme('colors.int-wp-control-error.100'); - --wp-control-error-200: theme('colors.int-wp-control-error.200'); - --wp-control-error-300: theme('colors.int-wp-control-error.300'); - - --wp-state-error-100: theme('colors.int-wp-state-error.100'); - --wp-state-neutral-100: theme('colors.int-wp-state-neutral.100'); - --wp-state-ok-100: theme('colors.int-wp-state-ok.100'); - --wp-state-info-100: theme('colors.int-wp-state-info.100'); - --wp-state-warn-100: theme('colors.int-wp-state-warn.100'); - - --wp-hint-warn-100: theme('colors.int-wp-hint-warn.100'); - --wp-hint-warn-200: theme('colors.int-wp-hint-warn.200'); - - --wp-code-100: theme('colors.int-wp-secondary.300'); - --wp-code-200: theme('colors.int-wp-secondary.600'); - --wp-code-text-100: theme('colors.gray.200'); - --wp-code-text-alt-100: theme('colors.gray.300'); - - --wp-link-100: theme('colors.blue.600'); - --wp-link-200: theme('colors.blue.700'); +:root[data-theme=light] { + --wp-background-100: theme(colors.white); + --wp-background-200: theme(colors.gray.100); + --wp-background-300: theme(colors.gray.200); + --wp-background-400: theme(colors.gray.300); + + --wp-text-100: theme(colors.gray.600); + --wp-text-200: theme(colors.gray.700); + --wp-text-alt-100: theme(colors.gray.500); + + --wp-primary-100: theme(colors.int-wp-primary.300); + --wp-primary-200: theme(colors.int-wp-primary.400); + --wp-primary-300: theme(colors.int-wp-primary.500); + --wp-primary-text-100: theme(colors.white); + + --wp-control-neutral-100: theme(colors.white); + --wp-control-neutral-200: theme(colors.gray.300); + --wp-control-neutral-300: theme(colors.gray.400); + + --wp-control-info-100: theme(colors.int-wp-control-info.100); + --wp-control-info-200: theme(colors.int-wp-control-info.200); + --wp-control-info-300: theme(colors.int-wp-control-info.300); + + --wp-control-ok-100: theme(colors.int-wp-control-ok.100); + --wp-control-ok-200: theme(colors.int-wp-control-ok.200); + --wp-control-ok-300: theme(colors.int-wp-control-ok.300); + + --wp-control-error-100: theme(colors.int-wp-control-error.100); + --wp-control-error-200: theme(colors.int-wp-control-error.200); + --wp-control-error-300: theme(colors.int-wp-control-error.300); + + --wp-state-error-100: theme(colors.int-wp-state-error.100); + --wp-state-neutral-100: theme(colors.int-wp-state-neutral.100); + --wp-state-ok-100: theme(colors.int-wp-state-ok.100); + --wp-state-info-100: theme(colors.int-wp-state-info.100); + --wp-state-warn-100: theme(colors.int-wp-state-warn.100); + + --wp-hint-warn-100: theme(colors.int-wp-hint-warn.100); + --wp-hint-warn-200: theme(colors.int-wp-hint-warn.200); + + --wp-code-100: theme(colors.int-wp-secondary.300); + --wp-code-200: theme(colors.int-wp-secondary.600); + --wp-code-text-100: theme(colors.gray.200); + --wp-code-text-alt-100: theme(colors.gray.300); + + --wp-link-100: theme(colors.blue.600); + --wp-link-200: theme(colors.blue.700); } -:root[data-theme='dark'] { - --wp-background-100: theme('colors.int-wp-secondary.300'); - --wp-background-200: theme('colors.int-wp-secondary.400'); - --wp-background-300: theme('colors.int-wp-secondary.500'); - --wp-background-400: theme('colors.int-wp-secondary.600'); - - --wp-text-100: theme('colors.gray.300'); - --wp-text-200: theme('colors.gray.200'); - --wp-text-alt-100: theme('colors.gray.400'); - - --wp-primary-100: theme('colors.int-wp-secondary.300'); - --wp-primary-200: theme('colors.int-wp-secondary.400'); - --wp-primary-300: theme('colors.int-wp-secondary.600'); - --wp-primary-text-100: theme('colors.gray.300'); - - --wp-control-neutral-100: theme('colors.int-wp-secondary.300'); - --wp-control-neutral-200: theme('colors.int-wp-secondary.600'); - --wp-control-neutral-300: theme('colors.int-wp-secondary.700'); - - --wp-control-info-100: theme('colors.int-wp-control-info-dark.100'); - --wp-control-info-200: theme('colors.int-wp-control-info-dark.200'); - --wp-control-info-300: theme('colors.int-wp-control-info-dark.300'); - - --wp-control-ok-100: theme('colors.int-wp-control-ok-dark.100'); - --wp-control-ok-200: theme('colors.int-wp-control-ok-dark.200'); - --wp-control-ok-300: theme('colors.int-wp-control-ok-dark.300'); - - --wp-control-error-100: theme('colors.int-wp-control-error-dark.100'); - --wp-control-error-200: theme('colors.int-wp-control-error-dark.200'); - --wp-control-error-300: theme('colors.int-wp-control-error-dark.300'); - - --wp-state-error-100: theme('colors.int-wp-state-error-dark.100'); - --wp-state-neutral-100: theme('colors.int-wp-state-neutral.100'); - --wp-state-ok-100: theme('colors.int-wp-state-ok-dark.100'); - --wp-state-info-100: theme('colors.int-wp-state-info-dark.100'); - --wp-state-warn-100: theme('colors.int-wp-state-warn-dark.100'); - - --wp-hint-warn-100: theme('colors.int-wp-hint-warn-dark.100'); - --wp-hint-warn-200: theme('colors.int-wp-hint-warn-dark.200'); - - --wp-code-100: theme('colors.int-wp-secondary.700'); - --wp-code-200: theme('colors.int-wp-secondary.800'); - --wp-code-text-100: theme('colors.gray.300'); - --wp-code-text-alt-100: theme('colors.gray.400'); - - --wp-link-100: theme('colors.blue.400'); - --wp-link-200: theme('colors.blue.500'); +:root[data-theme=dark] { + --wp-background-100: theme(colors.int-wp-secondary.300); + --wp-background-200: theme(colors.int-wp-secondary.400); + --wp-background-300: theme(colors.int-wp-secondary.500); + --wp-background-400: theme(colors.int-wp-secondary.600); + + --wp-text-100: theme(colors.gray.300); + --wp-text-200: theme(colors.gray.200); + --wp-text-alt-100: theme(colors.gray.400); + + --wp-primary-100: theme(colors.int-wp-secondary.300); + --wp-primary-200: theme(colors.int-wp-secondary.400); + --wp-primary-300: theme(colors.int-wp-secondary.600); + --wp-primary-text-100: theme(colors.gray.300); + + --wp-control-neutral-100: theme(colors.int-wp-secondary.300); + --wp-control-neutral-200: theme(colors.int-wp-secondary.600); + --wp-control-neutral-300: theme(colors.int-wp-secondary.700); + + --wp-control-info-100: theme(colors.int-wp-control-info-dark.100); + --wp-control-info-200: theme(colors.int-wp-control-info-dark.200); + --wp-control-info-300: theme(colors.int-wp-control-info-dark.300); + + --wp-control-ok-100: theme(colors.int-wp-control-ok-dark.100); + --wp-control-ok-200: theme(colors.int-wp-control-ok-dark.200); + --wp-control-ok-300: theme(colors.int-wp-control-ok-dark.300); + + --wp-control-error-100: theme(colors.int-wp-control-error-dark.100); + --wp-control-error-200: theme(colors.int-wp-control-error-dark.200); + --wp-control-error-300: theme(colors.int-wp-control-error-dark.300); + + --wp-state-error-100: theme(colors.int-wp-state-error-dark.100); + --wp-state-neutral-100: theme(colors.int-wp-state-neutral.100); + --wp-state-ok-100: theme(colors.int-wp-state-ok-dark.100); + --wp-state-info-100: theme(colors.int-wp-state-info-dark.100); + --wp-state-warn-100: theme(colors.int-wp-state-warn-dark.100); + + --wp-hint-warn-100: theme(colors.int-wp-hint-warn-dark.100); + --wp-hint-warn-200: theme(colors.int-wp-hint-warn-dark.200); + + --wp-code-100: theme(colors.int-wp-secondary.700); + --wp-code-200: theme(colors.int-wp-secondary.800); + --wp-code-text-100: theme(colors.gray.300); + --wp-code-text-alt-100: theme(colors.gray.400); + + --wp-link-100: theme(colors.blue.400); + --wp-link-200: theme(colors.blue.500); } html, @@ -121,7 +131,7 @@ body, } *::-webkit-scrollbar { - @apply bg-transparent w-12px h-12px; + @apply bg-transparent w-[12px] h-[12px]; } * { @@ -131,11 +141,11 @@ body, *::-webkit-scrollbar-thumb { transition: background 0.2s ease-in-out; border: 3px solid transparent; - @apply bg-cool-gray-200 dark:bg-dark-200 rounded-full bg-clip-content; + @apply bg-gray-200 dark:bg-stone-800 rounded-full bg-clip-content; } *::-webkit-scrollbar-thumb:hover { - @apply bg-cool-gray-300 dark:bg-dark-100; + @apply bg-gray-300 dark:bg-stone-800; } *::-webkit-scrollbar-corner { diff --git a/web/windi.config.ts b/web/tailwind.config.ts similarity index 94% rename from web/windi.config.ts rename to web/tailwind.config.ts index cdcfc551d3..a8d3669709 100644 --- a/web/windi.config.ts +++ b/web/tailwind.config.ts @@ -1,8 +1,8 @@ /* eslint-disable import/no-extraneous-dependencies */ +import typography from '@tailwindcss/typography'; +import type { Config } from 'tailwindcss'; +import colors from 'tailwindcss/colors'; import tinycolor from 'tinycolor2'; -import colors from 'windicss/colors'; -import { defineConfig } from 'windicss/helpers'; -import typography from 'windicss/plugin/typography'; const customColors = { 'wp-primary': { @@ -24,9 +24,18 @@ const customColors = { }, }; -export default defineConfig({ +export default { + content: ['./index.html', './src/**/*.{vue,js,ts,jsx,tsx}'], darkMode: 'class', theme: { + borderWidth: { + DEFAULT: '1px', + '0': '0', + '2': '2px', + '4': '4px', + '6': '6px', + '8': '8px', + }, extend: { colors: { // Internals to keep a single source for color definitions @@ -222,9 +231,5 @@ export default defineConfig({ ], }, }, - shortcuts: { - 'hover-effect': - 'hover:bg-black hover:bg-opacity-10 dark:hover:bg-white dark:hover:bg-opacity-5 transition-colors duration-100', - }, - plugins: [typography()], -}); + plugins: [typography], +} satisfies Config; diff --git a/web/tsconfig.eslint.json b/web/tsconfig.eslint.json index 8aa1c0ce6d..6827368443 100644 --- a/web/tsconfig.eslint.json +++ b/web/tsconfig.eslint.json @@ -1,4 +1,4 @@ { "extends": "./tsconfig.json", - "include": [".eslintrc.js", "jest.config.ts", "vite.config.ts", "windi.config.ts", "src", "test", "components.d.ts"] + "include": [".eslintrc.js", "jest.config.ts", "vite.config.ts", "tailwind.config.ts", "src", "test", "components.d.ts"] } diff --git a/web/vite.config.ts b/web/vite.config.ts index ec2d81ecf8..8ccaeed7c3 100644 --- a/web/vite.config.ts +++ b/web/vite.config.ts @@ -9,7 +9,6 @@ import Icons from 'unplugin-icons/vite'; import Components from 'unplugin-vue-components/vite'; import { defineConfig } from 'vite'; import prismjs from 'vite-plugin-prismjs'; -import WindiCSS from 'vite-plugin-windicss'; import svgLoader from 'vite-svg-loader'; function woodpeckerInfoPlugin() { @@ -111,7 +110,6 @@ export default defineConfig({ }, }; })(), - WindiCSS(), Icons({}), svgLoader(), Components({