Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .husky/prepare-commit-msg
Original file line number Diff line number Diff line change
@@ -1 +1 @@
exec < /dev/tty && npx cz --hook || true
npx cz --hook || true
204 changes: 148 additions & 56 deletions apps/web/app/globals.css
Original file line number Diff line number Diff line change
@@ -1,77 +1,171 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
@import 'tailwindcss';

@layer base {
:root {
--background: 0 0% 100%;
--foreground: 222.2 47.4% 11.2%;
@plugin 'tailwindcss-animate';

--muted: 210 40% 96.1%;
--muted-foreground: 215.4 16.3% 46.9%;
@custom-variant dark (&:is(.dark *));

--popover: 0 0% 100%;
--popover-foreground: 222.2 47.4% 11.2%;
@theme {
--color-background: hsl(var(--background));
--color-foreground: hsl(var(--foreground));

--border: 214.3 31.8% 91.4%;
--input: 214.3 31.8% 91.4%;
--color-card: hsl(var(--card));
--color-card-foreground: hsl(var(--card-foreground));

--card: 0 0% 100%;
--card-foreground: 222.2 47.4% 11.2%;

--primary: 222.2 47.4% 11.2%;
--primary-foreground: 210 40% 98%;
--color-popover: hsl(var(--popover));
--color-popover-foreground: hsl(var(--popover-foreground));

--secondary: 210 40% 96.1%;
--secondary-foreground: 222.2 47.4% 11.2%;
--color-primary: hsl(var(--primary));
--color-primary-foreground: hsl(var(--primary-foreground));

--accent: 210 40% 96.1%;
--accent-foreground: 222.2 47.4% 11.2%;
--color-secondary: hsl(var(--secondary));
--color-secondary-foreground: hsl(var(--secondary-foreground));

--destructive: 0 100% 50%;
--destructive-foreground: 210 40% 98%;
--color-muted: hsl(var(--muted));
--color-muted-foreground: hsl(var(--muted-foreground));

--ring: 215 20.2% 65.1%;
--color-accent: hsl(var(--accent));
--color-accent-foreground: hsl(var(--accent-foreground));

--radius: 0.5rem;
}
.auth {
@apply flex-center min-h-screen w-full;
}
.flex-center {
@apply flex justify-center items-center;
}
.dark {
--background: 224 71% 4%;
--foreground: 213 31% 91%;
--color-destructive: hsl(var(--destructive));
--color-destructive-foreground: hsl(var(--destructive-foreground));

--muted: 223 47% 11%;
--muted-foreground: 215.4 16.3% 56.9%;
--color-border: hsl(var(--border));
--color-input: hsl(var(--input));
--color-ring: hsl(var(--ring));

--accent: 216 34% 17%;
--accent-foreground: 210 40% 98%;
--color-chart-1: hsl(var(--chart-1));
--color-chart-2: hsl(var(--chart-2));
--color-chart-3: hsl(var(--chart-3));
--color-chart-4: hsl(var(--chart-4));
--color-chart-5: hsl(var(--chart-5));

--popover: 224 71% 4%;
--popover-foreground: 215 20.2% 65.1%;
--color-sidebar: hsl(var(--sidebar-background));
--color-sidebar-foreground: hsl(var(--sidebar-foreground));
--color-sidebar-primary: hsl(var(--sidebar-primary));
--color-sidebar-primary-foreground: hsl(var(--sidebar-primary-foreground));
--color-sidebar-accent: hsl(var(--sidebar-accent));
--color-sidebar-accent-foreground: hsl(var(--sidebar-accent-foreground));
--color-sidebar-border: hsl(var(--sidebar-border));
--color-sidebar-ring: hsl(var(--sidebar-ring));

--border: 216 34% 17%;
--input: 216 34% 17%;
--radius-lg: var(--radius);
--radius-md: calc(var(--radius) - 2px);
--radius-sm: calc(var(--radius) - 4px);

--card: 224 71% 4%;
--card-foreground: 213 31% 91%;
--animate-accordion-down: accordion-down 0.2s ease-out;
--animate-accordion-up: accordion-up 0.2s ease-out;

--primary: 210 40% 98%;
--primary-foreground: 222.2 47.4% 1.2%;
@keyframes accordion-down {
from {
height: 0;
}
to {
height: var(--radix-accordion-content-height);
}
}
@keyframes accordion-up {
from {
height: var(--radix-accordion-content-height);
}
to {
height: 0;
}
}
}

--secondary: 222.2 47.4% 11.2%;
--secondary-foreground: 210 40% 98%;
/*
The default border color has changed to `currentColor` in Tailwind CSS v4,
so we've added these compatibility styles to make sure everything still
looks the same as it did with Tailwind CSS v3.

--destructive: 0 63% 31%;
--destructive-foreground: 210 40% 98%;
If we ever want to remove these styles, we need to add an explicit border
color utility to any element that depends on these defaults.
*/
@layer base {
*,
::after,
::before,
::backdrop,
::file-selector-button {
border-color: var(--color-gray-200, currentColor);
}
}

--ring: 216 34% 17%;
@layer utilities {
body {
font-family: Arial, Helvetica, sans-serif;
}
}

@layer base {
:root {
--background: 0 0% 100%;
--foreground: 0 0% 3.9%;
--card: 0 0% 100%;
--card-foreground: 0 0% 3.9%;
--popover: 0 0% 100%;
--popover-foreground: 0 0% 3.9%;
--primary: 0 0% 9%;
--primary-foreground: 0 0% 98%;
--secondary: 0 0% 96.1%;
--secondary-foreground: 0 0% 9%;
--muted: 0 0% 96.1%;
--muted-foreground: 0 0% 45.1%;
--accent: 0 0% 96.1%;
--accent-foreground: 0 0% 9%;
--destructive: 0 84.2% 60.2%;
--destructive-foreground: 0 0% 98%;
--border: 0 0% 89.8%;
--input: 0 0% 89.8%;
--ring: 0 0% 3.9%;
--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%;
--radius: 0.5rem;
--sidebar-background: 0 0% 98%;
--sidebar-foreground: 240 5.3% 26.1%;
--sidebar-primary: 240 5.9% 10%;
--sidebar-primary-foreground: 0 0% 98%;
--sidebar-accent: 240 4.8% 95.9%;
--sidebar-accent-foreground: 240 5.9% 10%;
--sidebar-border: 220 13% 91%;
--sidebar-ring: 217.2 91.2% 59.8%;
}
.dark {
--background: 0 0% 3.9%;
--foreground: 0 0% 98%;
--card: 0 0% 3.9%;
--card-foreground: 0 0% 98%;
--popover: 0 0% 3.9%;
--popover-foreground: 0 0% 98%;
--primary: 0 0% 98%;
--primary-foreground: 0 0% 9%;
--secondary: 0 0% 14.9%;
--secondary-foreground: 0 0% 98%;
--muted: 0 0% 14.9%;
--muted-foreground: 0 0% 63.9%;
--accent: 0 0% 14.9%;
--accent-foreground: 0 0% 98%;
--destructive: 0 62.8% 30.6%;
--destructive-foreground: 0 0% 98%;
--border: 0 0% 14.9%;
--input: 0 0% 14.9%;
--ring: 0 0% 83.1%;
--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%;
--sidebar-background: 240 5.9% 10%;
--sidebar-foreground: 240 4.8% 95.9%;
--sidebar-primary: 224.3 76.3% 48%;
--sidebar-primary-foreground: 0 0% 100%;
--sidebar-accent: 240 3.7% 15.9%;
--sidebar-accent-foreground: 240 4.8% 95.9%;
--sidebar-border: 240 3.7% 15.9%;
--sidebar-ring: 217.2 91.2% 59.8%;
}
}

Expand All @@ -81,11 +175,9 @@
}
body {
@apply bg-background text-foreground;
font-feature-settings:
"rlig" 1,
"calt" 1;
}
}

.cl-formButtonPrimary {
@apply inline-flex h-9 items-center justify-center whitespace-nowrap rounded-md bg-primary px-3 font-medium text-primary-foreground !shadow-none ring-offset-background transition-colors hover:bg-primary/90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50;
}
Expand Down
47 changes: 30 additions & 17 deletions apps/web/next.config.mjs
Original file line number Diff line number Diff line change
@@ -1,33 +1,46 @@
/** @type {import('next').NextConfig} */
import { PrismaPlugin } from "@prisma/nextjs-monorepo-workaround-plugin";

const nextConfig = {
// Preserve existing monorepo setup
transpilePackages: ["ui", "api", "database"],
output: "standalone",

// Output standalone to reduce Edge Function size
output: 'standalone',

experimental: {
// Existing package imports
optimizePackageImports: ["api"],
// Optimize CSS for smaller bundle size
optimizeCss: true,
},

// Use SWC minify for better performance
swcMinify: true,

typescript: {
ignoreBuildErrors: true,
},
eslint: {
ignoreDuringBuilds: true,
},
webpack: (config, { isServer }) => {
if (isServer) {
config.plugins = [...config.plugins, new PrismaPlugin()];
}

config.resolve = {
...config.resolve,
fallback: {
...config.resolve.fallback,
stream: false,
tls: false,
net: false,
crypto: false,
},

// Webpack configuration
webpack: (config, { }) => {
// Enhanced fallbacks
config.resolve.fallback = {
...(config.resolve.fallback || {}),
stream: false,
tls: false,
net: false,
crypto: false,
self: false,
};

// Optimize for Edge Functions


return config;
},
};

export default nextConfig;

67 changes: 34 additions & 33 deletions apps/web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,48 +10,49 @@
"prettier": "prettier --w ."
},
"dependencies": {
"@clerk/clerk-sdk-node": "^5.0.65",
"@clerk/nextjs": "^6.3.4",
"@prisma/client": "^5.22.0",
"@prisma/nextjs-monorepo-workaround-plugin": "^5.22.0",
"@radix-ui/react-dialog": "^1.1.2",
"@radix-ui/react-dropdown-menu": "^2.1.2",
"@radix-ui/react-label": "^2.1.0",
"@radix-ui/react-select": "^2.1.2",
"@radix-ui/react-slot": "^1.1.0",
"@radix-ui/react-tabs": "^1.1.1",
"@radix-ui/react-toast": "^1.2.2",
"@clerk/clerk-sdk-node": "^5.1.6",
"@clerk/nextjs": "^6.12.0",
"@prisma/client": "^6.4.1",
"@prisma/nextjs-monorepo-workaround-plugin": "^6.4.1",
"@radix-ui/react-dialog": "^1.1.6",
"@radix-ui/react-dropdown-menu": "^2.1.6",
"@radix-ui/react-label": "^2.1.2",
"@radix-ui/react-select": "^2.1.6",
"@radix-ui/react-slot": "^1.1.2",
"@radix-ui/react-tabs": "^1.1.3",
"@radix-ui/react-toast": "^1.2.6",
"@tailwindcss/postcss": "^4.0.8",
"api": "workspace:*",
"class-variance-authority": "^0.7.0",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"configs": "workspace:*",
"database": "workspace:*",
"hono": "^4.6.10",
"ioredis": "^5.4.1",
"lucide-react": "^0.460.0",
"next": "15.0.3",
"next-themes": "^0.4.3",
"prettier": "^3.3.3",
"prisma-extension-redis": "^1.2.0",
"react": "19.0.0-rc-69d4b800-20241021",
"react-dom": "19.0.0-rc-69d4b800-20241021",
"recharts": "^2.13.3",
"hono": "^4.7.2",
"ioredis": "^5.5.0",
"lucide-react": "^0.475.0",
"next": "15.1.7",
"next-themes": "^0.4.4",
"prettier": "^3.5.2",
"prisma-extension-redis": "^2.1.1",
"react": "19.0.0",
"react-dom": "19.0.0",
"recharts": "^2.15.1",
"sharp": "^0.33.5",
"svix": "^1.40.0",
"tailwind-merge": "^2.5.4",
"svix": "^1.59.2",
"tailwind-merge": "^3.0.2",
"tailwindcss-animate": "^1.0.7",
"turbo": "^2.3.0",
"ui": "workspace:*",
"configs": "workspace:*"
"turbo": "^2.4.2",
"ui": "workspace:*"
},
"devDependencies": {
"@types/node": "^22",
"@types/react": "18.3.12",
"@types/react-dom": "18.3.1",
"@types/react": "19.0.10",
"@types/react-dom": "19.0.4",
"eslint": "^9",
"eslint-config-next": "15.0.3",
"eslint-config-next": "15.1.7",
"postcss": "^8",
"prisma": "^5.22.0",
"tailwindcss": "^3.4.15",
"typescript": "5.6.3"
"prisma": "^6.4.1",
"tailwindcss": "^4.0.8",
"typescript": "5.7.3"
}
}
Loading