Files
Zero/app/globals.css
nizzy a5a3e2ab04 Multi gmail connection (#148)
* feat: Integrate Google OAuth and SWR for mail threads

* refactor: simplify mail list and navigation UI

* feat: enhance mail parsing and UI with sender details and unread status

* chore: update pnpm lock with new dependencies

* refactor: organize imports in app-sidebar component

* dynamic rendering data

* chore: update .gitignore with IDE-specific exclusions

* refactor(mail): update routing and component structure for mail views

* refactor(mail): remove draft and junk routes; update folder names to proper terms in UI and API

* refactor(mail): clean up imports, adjust API endpoints, and improve mail component structures for better clarity and performance

* automatic search

* YOP!

* KIND OF lint. lmao.

* feat:gmail connection WIP

* feat(mail): add mail count endpoint and dynamic sidebar stats

* feat(mail): add sanitization and dynamic provider support for email rendering

* grim's changes

* feat(mail): implement indexedDB caching for email threads and improve SWR configuration in layout component

* feat(mail): enhance indexedDB operations for email threads caching and update SWR configuration for better data handling

* idk

* fix(mail): adjust email body processing and reverse cached email messages for consistent order

* Fullscreen (#154)

* FULL SCREEN!!! RAH!!!

* Update mail-display.tsx

* auth

* email dispaly

* gmail connection

* env example resend add

* fix: env issues

* refactor: replace nanoid with randomUUID for ID generation in early access and update database schema to unify connection table

* refactor: update API endpoint for email connections and modify driver initialization for async support across mail routes

* feat: enhance Gmail OAuth flow and connection handling

- Update Google OAuth driver with expanded scopes and improved token management
- Modify callback route to handle user info extraction and connection creation more robustly
- Add unique constraint to email in connection table
- Improve error handling and logging in authentication process

* fix: improve error responses and connection handling in Gmail integration

- Enhance error messages when tokens or emails are missing.
- Update handling of Gmail connections in the API and user-related components

* feat: add default connection support and improve connection switching

- Add `defaultConnectionId` to user schema
- Implement PUT endpoint to set default connection for a user
- Update mail API routes to use dynamic provider and connection ID
- Enhance NavUser component with account switching functionality
- Modify hooks and auth logic to support default connection selection

* typo

* feat: integrate thread hook for email data loading in MailDisplay component

- Replace local email data state with useThread hook for improved loading management

* fix: improve mail route authorization with connection validation

- Add explicit check for connectionId in session
- Update database query to filter by both userId and connectionId
- Make connectionId optional in ParsedMessage type to support flexible connection handling

* privacy and tos

* linting

---------

Co-authored-by: Aj Wazzan <x_1337@outlook.com>
Co-authored-by: grim <75869731+vys69@users.noreply.github.com>
Co-authored-by: BlankParticle <blankparticle@gmail.com>
2025-02-12 21:56:07 -05:00

167 lines
3.8 KiB
CSS

@tailwind base;
@tailwind components;
@tailwind utilities;
:root {
--foreground-rgb: 0, 0, 0;
--background-start-rgb: 214, 219, 220;
--background-end-rgb: 255, 255, 255;
}
@media (prefers-color-scheme: dark) {
:root {
--foreground-rgb: 255, 255, 255;
--background-start-rgb: 0, 0, 0;
--background-end-rgb: 0, 0, 0;
}
}
@layer utilities {
.text-balance {
text-wrap: balance;
}
}
@layer base {
:root {
--background: 0 0% 100%;
--foreground: 240 10% 3.9%;
--card: 0 0% 100%;
--card-foreground: 240 10% 3.9%;
--popover: 0 0% 100%;
--popover-foreground: 240 10% 3.9%;
--primary: 240 5.9% 10%;
--primary-foreground: 0 0% 98%;
--secondary: 240 4.8% 95.9%;
--secondary-foreground: 240 5.9% 10%;
--muted: 240 4.8% 95.9%;
--muted-foreground: 240 3.8% 46.1%;
--accent: 240 4.8% 95.9%;
--accent-foreground: 240 5.9% 10%;
--destructive: 0 84.2% 60.2%;
--destructive-foreground: 0 0% 98%;
--border: 240 5.9% 90%;
--input: 240 5.9% 90%;
--ring: 240 10% 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%;
--icon-color: black;
}
.dark {
--background: 240 10% 3.9%;
--foreground: 0 0% 98%;
--card: 240 10% 3.9%;
--card-foreground: 0 0% 98%;
--popover: 240 10% 3.9%;
--popover-foreground: 0 0% 98%;
--primary: 0 0% 98%;
--primary-foreground: 240 5.9% 10%;
--secondary: 240 3.7% 15.9%;
--secondary-foreground: 0 0% 98%;
--muted: 240 3.7% 15.9%;
--muted-foreground: 240 5% 64.9%;
--accent: 240 3.7% 15.9%;
--accent-foreground: 0 0% 98%;
--destructive: 0 62.8% 30.6%;
--destructive-foreground: 0 0% 98%;
--border: 240 3.7% 20%;
--input: 240 3.7% 15.9%;
--ring: 240 4.9% 83.9%;
--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%;
--icon-color: currentColor;
}
}
@layer base {
* {
@apply border-border;
}
body {
@apply bg-background font-sans text-foreground;
}
}
.skeleton {
* {
pointer-events: none !important;
}
*[class^="text-"] {
color: transparent;
@apply animate-pulse select-none rounded-md bg-foreground/20;
}
.skeleton-bg {
@apply bg-foreground/10;
}
.skeleton-div {
@apply animate-pulse bg-foreground/20;
}
}
.ProseMirror {
outline: none;
}
.cm-editor,
.cm-gutters {
@apply bg-background outline-none selection:bg-zinc-900 dark:bg-zinc-800 !important;
}
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
.ͼo.cm-selectionBackground,
.ͼo.cm-content::selection {
@apply bg-zinc-200 dark:bg-zinc-900 !important;
}
.cm-activeLine,
.cm-activeLineGutter {
@apply bg-transparent !important;
}
.cm-activeLine {
@apply rounded-r-sm !important;
}
.cm-lineNumbers {
@apply min-w-7;
}
.cm-foldGutter {
@apply min-w-3;
}
.cm-lineNumbers .cm-activeLineGutter {
@apply rounded-l-sm !important;
}
.suggestion-highlight {
@apply bg-blue-200 hover:bg-blue-300 dark:bg-blue-500/40 dark:text-blue-50 dark:hover:bg-blue-400/50;
}