diff --git a/frontend/components.json b/frontend/components.json new file mode 100644 index 000000000..6f561a01f --- /dev/null +++ b/frontend/components.json @@ -0,0 +1,16 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "new-york", + "rsc": false, + "tsx": true, + "tailwind": { + "config": "tailwind.config.js", + "css": "src/globals.css", + "baseColor": "slate", + "cssVariables": true + }, + "aliases": { + "components": "@/", + "utils": "@util/helpers" + } +} diff --git a/frontend/package.json b/frontend/package.json index ee687d423..462984561 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -13,8 +13,10 @@ "dependencies": { "@monitor/client": "link:../client/ts", "@radix-ui/react-accordion": "^1.1.2", + "@radix-ui/react-checkbox": "^1.0.4", "@radix-ui/react-dialog": "^1.0.4", "@radix-ui/react-dropdown-menu": "^2.0.5", + "@radix-ui/react-icons": "^1.3.0", "@radix-ui/react-label": "^2.0.2", "@radix-ui/react-popover": "^1.0.6", "@radix-ui/react-progress": "^1.0.3", @@ -26,8 +28,8 @@ "@tanstack/react-query": "^4.29.7", "autoprefixer": "^10.4.14", "axios": "^1.4.0", - "class-variance-authority": "^0.6.0", - "clsx": "^1.2.1", + "class-variance-authority": "^0.7.0", + "clsx": "^2.0.0", "cmdk": "^0.2.0", "jotai": "^2.1.0", "js-file-download": "^0.4.12", @@ -40,9 +42,9 @@ "react-router-dom": "^6.11.2", "reconnecting-websocket": "^4.4.0", "sanitize-html": "^2.10.0", - "tailwind-merge": "^1.12.0", + "tailwind-merge": "^1.14.0", "tailwindcss": "^3.3.2", - "tailwindcss-animate": "^1.0.5", + "tailwindcss-animate": "^1.0.7", "vite-tsconfig-paths": "^4.2.0" }, "devDependencies": { diff --git a/frontend/src/globals.css b/frontend/src/globals.css index 94cf69471..cfcf600c9 100644 --- a/frontend/src/globals.css +++ b/frontend/src/globals.css @@ -7,19 +7,13 @@ @layer base { :root { --background: 0 0% 100%; - --foreground: 222.2 47.4% 11.2%; - - --muted: 210 40% 96.1%; - --muted-foreground: 215.4 16.3% 46.9%; - - --popover: 0 0% 100%; - --popover-foreground: 222.2 47.4% 11.2%; + --foreground: 222.2 84% 4.9%; --card: 0 0% 100%; - --card-foreground: 222.2 47.4% 11.2%; + --card-foreground: 222.2 84% 4.9%; - --border: 214.3 31.8% 91.4%; - --input: 214.3 31.8% 91.4%; + --popover: 0 0% 100%; + --popover-foreground: 222.2 84% 4.9%; --primary: 222.2 47.4% 11.2%; --primary-foreground: 210 40% 98%; @@ -27,55 +21,53 @@ --secondary: 210 40% 96.1%; --secondary-foreground: 222.2 47.4% 11.2%; + --muted: 210 40% 96.1%; + --muted-foreground: 215.4 16.3% 46.9%; + --accent: 210 40% 96.1%; --accent-foreground: 222.2 47.4% 11.2%; - --destructive: 0 100% 50%; + --destructive: 0 84.2% 60.2%; --destructive-foreground: 210 40% 98%; - --ring: 215 20.2% 65.1%; + --border: 214.3 31.8% 91.4%; + --input: 214.3 31.8% 91.4%; + --ring: 222.2 84% 4.9%; --radius: 0.5rem; } .dark { - --background: 224 71% 4%; - --foreground: 213 31% 91%; + --background: 222.2 84% 4.9%; + --foreground: 210 40% 98%; - --muted: 223 47% 11%; - --muted-foreground: 215.4 16.3% 56.9%; + --card: 222.2 84% 4.9%; + --card-foreground: 210 40% 98%; - --popover: 224 71% 4%; - --popover-foreground: 215 20.2% 65.1%; - - --card: 224 71% 4%; - --card-foreground: 213 31% 91%; - - --border: 216 34% 17%; - --input: 216 34% 17%; + --popover: 222.2 84% 4.9%; + --popover-foreground: 210 40% 98%; --primary: 210 40% 98%; - --primary-foreground: 222.2 47.4% 1.2%; + --primary-foreground: 222.2 47.4% 11.2%; - --secondary: 222.2 47.4% 11.2%; + --secondary: 217.2 32.6% 17.5%; --secondary-foreground: 210 40% 98%; - --accent: 216 34% 17%; + --muted: 217.2 32.6% 17.5%; + --muted-foreground: 215 20.2% 65.1%; + + --accent: 217.2 32.6% 17.5%; --accent-foreground: 210 40% 98%; - --destructive: 0 63% 31%; + --destructive: 0 62.8% 30.6%; --destructive-foreground: 210 40% 98%; - --ring: 216 34% 17%; - - --radius: 0.5rem; + --border: 217.2 32.6% 17.5%; + --input: 217.2 32.6% 17.5%; + --ring: 212.7 26.8% 83.9%; } } -pre { - border-radius: var(--radius); -} - @layer base { * { @apply border-border; @@ -89,25 +81,3 @@ pre { @apply bg-accent/50 min-h-full text-xs p-4 whitespace-pre-wrap scroll-m-4 break-all; } } - -@layer utilities { - .scrollbar::-webkit-scrollbar { - width: 20px; - height: 20px; - } - - .scrollbar::-webkit-scrollbar-track { - border-radius: 100vh; - background: transparent; - } - - .scrollbar::-webkit-scrollbar-thumb { - background: #e0cbcb; - border-radius: 100vh; - border: 3px solid #f6f7ed; - } - - .scrollbar::-webkit-scrollbar-thumb:hover { - background: #c0a0b9; - } -} diff --git a/frontend/tailwind.config.js b/frontend/tailwind.config.js index 787d7749a..0377ea1de 100644 --- a/frontend/tailwind.config.js +++ b/frontend/tailwind.config.js @@ -1,9 +1,12 @@ -import animate from "tailwindcss-animate"; - /** @type {import('tailwindcss').Config} */ -export default { +module.exports = { darkMode: ["class"], - content: ["./index.html", "./src/**/*.{js,ts,jsx,tsx}"], + content: [ + './pages/**/*.{ts,tsx}', + './components/**/*.{ts,tsx}', + './app/**/*.{ts,tsx}', + './src/**/*.{ts,tsx}', + ], theme: { container: { center: true, @@ -49,13 +52,10 @@ export default { }, }, borderRadius: { - lg: `var(--radius)`, - md: `calc(var(--radius) - 2px)`, + lg: "var(--radius)", + md: "calc(var(--radius) - 2px)", sm: "calc(var(--radius) - 4px)", }, - fontFamily: { - sans: ["Inter"], - }, keyframes: { "accordion-down": { from: { height: 0 }, @@ -72,5 +72,5 @@ export default { }, }, }, - plugins: [animate], -}; + plugins: [require("tailwindcss-animate")], +} \ No newline at end of file diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 340ffb5b2..f4d1ce5f2 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -509,6 +509,21 @@ "@babel/runtime" "^7.13.10" "@radix-ui/react-primitive" "1.0.3" +"@radix-ui/react-checkbox@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@radix-ui/react-checkbox/-/react-checkbox-1.0.4.tgz#98f22c38d5010dd6df4c5744cac74087e3275f4b" + integrity sha512-CBuGQa52aAYnADZVt/KBQzXrwx6TqnlwtcIPGtVt5JkkzQwMOLJjPukimhfKEr4GQNd43C+djUh5Ikopj8pSLg== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/primitive" "1.0.1" + "@radix-ui/react-compose-refs" "1.0.1" + "@radix-ui/react-context" "1.0.1" + "@radix-ui/react-presence" "1.0.1" + "@radix-ui/react-primitive" "1.0.3" + "@radix-ui/react-use-controllable-state" "1.0.1" + "@radix-ui/react-use-previous" "1.0.1" + "@radix-ui/react-use-size" "1.0.1" + "@radix-ui/react-collapsible@1.0.3": version "1.0.3" resolved "https://registry.yarnpkg.com/@radix-ui/react-collapsible/-/react-collapsible-1.0.3.tgz#df0e22e7a025439f13f62d4e4a9e92c4a0df5b81" @@ -702,6 +717,11 @@ "@radix-ui/react-primitive" "1.0.3" "@radix-ui/react-use-callback-ref" "1.0.1" +"@radix-ui/react-icons@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-icons/-/react-icons-1.3.0.tgz#c61af8f323d87682c5ca76b856d60c2312dbcb69" + integrity sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw== + "@radix-ui/react-id@1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@radix-ui/react-id/-/react-id-1.0.0.tgz#8d43224910741870a45a8c9d092f25887bb6d11e" @@ -1429,17 +1449,17 @@ chokidar@^3.5.3: optionalDependencies: fsevents "~2.3.2" -class-variance-authority@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/class-variance-authority/-/class-variance-authority-0.6.0.tgz#d10df1ee148bb8efc11c17909ef1567abdc85a03" - integrity sha512-qdRDgfjx3GRb9fpwpSvn+YaidnT7IUJNe4wt5/SWwM+PmUwJUhQRk/8zAyNro0PmVfmen2635UboTjIBXXxy5A== +class-variance-authority@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/class-variance-authority/-/class-variance-authority-0.7.0.tgz#1c3134d634d80271b1837452b06d821915954522" + integrity sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A== dependencies: - clsx "1.2.1" + clsx "2.0.0" -clsx@1.2.1, clsx@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" - integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== +clsx@2.0.0, clsx@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.0.0.tgz#12658f3fd98fafe62075595a5c30e43d18f3d00b" + integrity sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q== cmdk@^0.2.0: version "0.2.0" @@ -2673,15 +2693,15 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -tailwind-merge@^1.12.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/tailwind-merge/-/tailwind-merge-1.12.0.tgz#747d09d64a25a4864150e8930f8e436866066cc8" - integrity sha512-Y17eDp7FtN1+JJ4OY0Bqv9OA41O+MS8c1Iyr3T6JFLnOgLg3EvcyMKZAnQ8AGyvB5Nxm3t9Xb5Mhe139m8QT/g== +tailwind-merge@^1.14.0: + version "1.14.0" + resolved "https://registry.yarnpkg.com/tailwind-merge/-/tailwind-merge-1.14.0.tgz#e677f55d864edc6794562c63f5001f45093cdb8b" + integrity sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ== -tailwindcss-animate@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/tailwindcss-animate/-/tailwindcss-animate-1.0.5.tgz#a6720e3b0616e1ff922b32846729881c626a069d" - integrity sha512-UU3qrOJ4lFQABY+MVADmBm+0KW3xZyhMdRvejwtXqYOL7YjHYxmuREFAZdmVG5LPe5E9CAst846SLC4j5I3dcw== +tailwindcss-animate@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz#318b692c4c42676cc9e67b19b78775742388bef4" + integrity sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA== tailwindcss@^3.3.2: version "3.3.2"