diff --git a/dev-dist/sw.js b/dev-dist/sw.js index 5f3d99b..f02da09 100644 --- a/dev-dist/sw.js +++ b/dev-dist/sw.js @@ -79,7 +79,7 @@ define(['./workbox-54d0af47'], (function (workbox) { 'use strict'; */ workbox.precacheAndRoute([{ "url": "index.html", - "revision": "0.fnrrna5najg" + "revision": "0.d4m96v8cgs" }], {}); workbox.cleanupOutdatedCaches(); workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("index.html"), { diff --git a/package-lock.json b/package-lock.json index 6ca134b..d26357e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,6 +24,8 @@ "vue-router": "^4.5.0" }, "devDependencies": { + "@tailwindcss/forms": "^0.5.10", + "@tailwindcss/typography": "^0.5.16", "@tailwindcss/vite": "^4.0.1", "@types/node": "^22.12.0", "@vitejs/plugin-vue": "^5.2.1", @@ -2612,6 +2614,19 @@ "tslib": "^2.8.0" } }, + "node_modules/@tailwindcss/forms": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.10.tgz", + "integrity": "sha512-utI1ONF6uf/pPNO68kmN1b8rEwNXv3czukalo8VtJH8ksIkZXr3Q3VYudZLkCsDd4Wku120uF02hYK25XGPorw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mini-svg-data-uri": "^1.2.3" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1" + } + }, "node_modules/@tailwindcss/node": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.0.1.tgz", @@ -2834,6 +2849,22 @@ "node": ">= 10" } }, + "node_modules/@tailwindcss/typography": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.16.tgz", + "integrity": "sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash.castarray": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "postcss-selector-parser": "6.0.10" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1" + } + }, "node_modules/@tailwindcss/vite": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.0.1.tgz", @@ -3602,6 +3633,19 @@ "node": ">=8" } }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", @@ -5271,6 +5315,13 @@ "dev": true, "license": "MIT" }, + "node_modules/lodash.castarray": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz", + "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==", + "dev": true, + "license": "MIT" + }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -5278,6 +5329,20 @@ "dev": true, "license": "MIT" }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, "node_modules/lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", @@ -5323,6 +5388,16 @@ "node": ">= 0.4" } }, + "node_modules/mini-svg-data-uri": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", + "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==", + "dev": true, + "license": "MIT", + "bin": { + "mini-svg-data-uri": "cli.js" + } + }, "node_modules/minimatch": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", @@ -5585,6 +5660,20 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/pretty-bytes": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.1.tgz", @@ -6680,6 +6769,13 @@ "browserslist": ">= 4.21.0" } }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, "node_modules/vite": { "version": "6.0.11", "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.11.tgz", diff --git a/package.json b/package.json index 94fc54d..23f91cf 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,8 @@ "vue-router": "^4.5.0" }, "devDependencies": { + "@tailwindcss/forms": "^0.5.10", + "@tailwindcss/typography": "^0.5.16", "@tailwindcss/vite": "^4.0.1", "@types/node": "^22.12.0", "@vitejs/plugin-vue": "^5.2.1", diff --git a/src/assets/index.css b/src/assets/index.css index 4c7ded6..0d076d3 100644 --- a/src/assets/index.css +++ b/src/assets/index.css @@ -1,4 +1,5 @@ @import "tailwindcss"; +@config "../../tailwind.config.js"; @layer base { :root { @@ -70,108 +71,108 @@ } body { - background-color: hsl(var(--background)); - color: hsl(var(--foreground)); + @apply bg-background text-foreground; + font-feature-settings: "rlig" 1, "calt" 1; } } @layer utilities { .bg-background { - background-color: hsl(var(--background)); + background-color: hsl(var(--background) / ); } .bg-foreground { - background-color: hsl(var(--foreground)); + background-color: hsl(var(--foreground) / ); } .bg-card { - background-color: hsl(var(--card)); + background-color: hsl(var(--card) / var(--tw-bg-opacity, 1)); } .bg-card-foreground { - background-color: hsl(var(--card-foreground)); + background-color: hsl(var(--card-foreground) / var(--tw-bg-opacity, 1)); } .bg-popover { - background-color: hsl(var(--popover)); + background-color: hsl(var(--popover) / var(--tw-bg-opacity, 1)); } .bg-popover-foreground { - background-color: hsl(var(--popover-foreground)); + background-color: hsl(var(--popover-foreground) / var(--tw-bg-opacity, 1)); } .bg-primary { - background-color: hsl(var(--primary)); + background-color: hsl(var(--primary) / var(--tw-bg-opacity, 1)); } .bg-primary-foreground { - background-color: hsl(var(--primary-foreground)); + background-color: hsl(var(--primary-foreground) / var(--tw-bg-opacity, 1)); } .bg-secondary { - background-color: hsl(var(--secondary)); + background-color: hsl(var(--secondary) / var(--tw-bg-opacity, 1)); } .bg-secondary-foreground { - background-color: hsl(var(--secondary-foreground)); + background-color: hsl(var(--secondary-foreground) / var(--tw-bg-opacity, 1)); } .bg-muted { - background-color: hsl(var(--muted)); + background-color: hsl(var(--muted) / var(--tw-bg-opacity, 1)); } .bg-muted-foreground { - background-color: hsl(var(--muted-foreground)); + background-color: hsl(var(--muted-foreground) / var(--tw-bg-opacity, 1)); } .bg-accent { - background-color: hsl(var(--accent)); + background-color: hsl(var(--accent) / var(--tw-bg-opacity, 1)); } .bg-accent-foreground { - background-color: hsl(var(--accent-foreground)); + background-color: hsl(var(--accent-foreground) / var(--tw-bg-opacity, 1)); } .bg-destructive { - background-color: hsl(var(--destructive)); + background-color: hsl(var(--destructive) / var(--tw-bg-opacity, 1)); } .bg-destructive-foreground { - background-color: hsl(var(--destructive-foreground)); + background-color: hsl(var(--destructive-foreground) / var(--tw-bg-opacity, 1)); } .text-background { - color: hsl(var(--background)); + color: hsl(var(--background) / ); } .text-foreground { - color: hsl(var(--foreground)); + color: hsl(var(--foreground) / ); } .text-card { - color: hsl(var(--card)); + color: hsl(var(--card) / var(--tw-text-opacity, 1)); } .text-card-foreground { - color: hsl(var(--card-foreground)); + color: hsl(var(--card-foreground) / var(--tw-text-opacity, 1)); } .text-popover { - color: hsl(var(--popover)); + color: hsl(var(--popover) / var(--tw-text-opacity, 1)); } .text-popover-foreground { - color: hsl(var(--popover-foreground)); + color: hsl(var(--popover-foreground) / var(--tw-text-opacity, 1)); } .text-primary { - color: hsl(var(--primary)); + color: hsl(var(--primary) / var(--tw-text-opacity, 1)); } .text-primary-foreground { - color: hsl(var(--primary-foreground)); + color: hsl(var(--primary-foreground) / var(--tw-text-opacity, 1)); } .text-secondary { - color: hsl(var(--secondary)); + color: hsl(var(--secondary) / var(--tw-text-opacity, 1)); } .text-secondary-foreground { - color: hsl(var(--secondary-foreground)); + color: hsl(var(--secondary-foreground) / var(--tw-text-opacity, 1)); } .text-muted { - color: hsl(var(--muted)); + color: hsl(var(--muted) / var(--tw-text-opacity, 1)); } .text-muted-foreground { - color: hsl(var(--muted-foreground)); + color: hsl(var(--muted-foreground) / var(--tw-text-opacity, 1)); } .text-accent { - color: hsl(var(--accent)); + color: hsl(var(--accent) / var(--tw-text-opacity, 1)); } .text-accent-foreground { - color: hsl(var(--accent-foreground)); + color: hsl(var(--accent-foreground) / var(--tw-text-opacity, 1)); } .text-destructive { - color: hsl(var(--destructive)); + color: hsl(var(--destructive) / var(--tw-text-opacity, 1)); } .text-destructive-foreground { - color: hsl(var(--destructive-foreground)); + color: hsl(var(--destructive-foreground) / var(--tw-text-opacity, 1)); } @supports not (backdrop-filter: blur(1px)) { @@ -180,3 +181,29 @@ } } } + +/* Add support for ring colors */ +@layer utilities { + .ring-border { + --tw-ring-color: hsl(var(--border) / ); + } + .ring-primary { + --tw-ring-color: hsl(var(--primary) / ); + } + .ring-background { + --tw-ring-color: hsl(var(--background) / ); + } +} + +/* Add support for border colors */ +@layer utilities { + .box-border { + border-color: hsl(var(--border) / var(--tw-border-opacity, 1)); + } + .border-primary { + border-color: hsl(var(--primary) / ); + } + .border-background { + border-color: hsl(var(--background) / ); + } +} diff --git a/src/components/SupportChat.vue b/src/components/SupportChat.vue index 7ef1123..05ddd99 100644 --- a/src/components/SupportChat.vue +++ b/src/components/SupportChat.vue @@ -126,25 +126,25 @@ const getMessageGroupClasses = (sent: boolean) => {