diff --git a/components.json b/components.json index a577707..fdcefc1 100644 --- a/components.json +++ b/components.json @@ -6,10 +6,12 @@ "tailwind": { "config": "tailwind.config.ts", "css": "src/app/globals.css", - "baseColor": "zinc", + "baseColor": "neutral", "cssVariables": true, "prefix": "" }, + "iconLibrary": "lucide", + "rtl": false, "aliases": { "components": "@/components", "utils": "@/lib/utils", @@ -17,5 +19,5 @@ "lib": "@/lib", "hooks": "@/hooks" }, - "iconLibrary": "lucide" -} \ No newline at end of file + "registries": {} +} diff --git a/src/app/globals.css b/src/app/globals.css index a79c13d..419ee2c 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -1,4 +1,8 @@ @import "tailwindcss"; +/* + ---break--- +*/ +@plugin "tailwindcss-animate"; @import "tw-animate-css"; @import "fumadocs-ui/css/neutral.css"; @import "fumadocs-ui/css/preset.css"; @@ -91,6 +95,9 @@ } } + --radius-2xl: calc(var(--radius) + 8px); + --radius-3xl: calc(var(--radius) + 12px); + --radius-4xl: calc(var(--radius) + 16px) } /* @@ -101,37 +108,35 @@ --theme-toggle-sun-icon-display: block; --theme-toggle-moon-icon-display: none; --radius: 0.625rem; - --background: oklch(1 0 0); - --foreground: oklch(0.141 0.005 285.823); --card: oklch(1 0 0); - --card-foreground: oklch(0.141 0.005 285.823); + --card-foreground: oklch(0.145 0 0); --popover: oklch(1 0 0); - --popover-foreground: oklch(0.141 0.005 285.823); - --primary: oklch(0.21 0.006 285.885); + --popover-foreground: oklch(0.145 0 0); + --primary: oklch(0.205 0 0); --primary-foreground: oklch(0.985 0 0); - --secondary: oklch(0.967 0.001 286.375); - --secondary-foreground: oklch(0.21 0.006 285.885); - --muted: oklch(0.967 0.001 286.375); - --muted-foreground: oklch(0.552 0.016 285.938); - --accent: oklch(0.967 0.001 286.375); - --accent-foreground: oklch(0.21 0.006 285.885); + --secondary: oklch(0.97 0 0); + --secondary-foreground: oklch(0.205 0 0); + --muted: oklch(0.97 0 0); + --muted-foreground: oklch(0.556 0 0); + --accent: oklch(0.97 0 0); + --accent-foreground: oklch(0.205 0 0); --destructive: oklch(0.577 0.245 27.325); - --border: oklch(0.92 0.004 286.32); - --input: oklch(0.92 0.004 286.32); - --ring: oklch(0.705 0.015 286.067); + --border: oklch(0.922 0 0); + --input: oklch(0.922 0 0); + --ring: oklch(0.708 0 0); --chart-1: oklch(0.646 0.222 41.116); --chart-2: oklch(0.6 0.118 184.704); --chart-3: oklch(0.398 0.07 227.392); --chart-4: oklch(0.828 0.189 84.429); --chart-5: oklch(0.769 0.188 70.08); --sidebar: oklch(0.985 0 0); - --sidebar-foreground: oklch(0.141 0.005 285.823); - --sidebar-primary: oklch(0.21 0.006 285.885); + --sidebar-foreground: oklch(0.145 0 0); + --sidebar-primary: oklch(0.205 0 0); --sidebar-primary-foreground: oklch(0.985 0 0); - --sidebar-accent: oklch(0.967 0.001 286.375); - --sidebar-accent-foreground: oklch(0.21 0.006 285.885); - --sidebar-border: oklch(0.92 0.004 286.32); - --sidebar-ring: oklch(0.705 0.015 286.067); + --sidebar-accent: oklch(0.97 0 0); + --sidebar-accent-foreground: oklch(0.205 0 0); + --sidebar-border: oklch(0.922 0 0); + --sidebar-ring: oklch(0.708 0 0); --lp-primary: oklch(0.205 0 0); --lp-primary-foreground: oklch(0.985 0 0); --lp-accent: oklch(0.269 0 0); @@ -155,6 +160,8 @@ hsla(0, 0%, 91%, 0.74) 100% ); --lp-timeline-buffered-color: oklch(0.985 0 0 / 0.4); + --background: oklch(1 0 0); + --foreground: oklch(0.145 0 0); } /* @@ -165,37 +172,37 @@ --sidebar-docs: #000000; --theme-toggle-sun-icon-display: none; --theme-toggle-moon-icon-display: block; - --background: oklch(0% 0 0); + --background: oklch(0.145 0 0); --foreground: oklch(0.985 0 0); - --card: oklch(0.21 0.006 285.885); + --card: oklch(0.205 0 0); --card-foreground: oklch(0.985 0 0); - --popover: oklch(0% 0 0); + --popover: oklch(0.205 0 0); --popover-foreground: oklch(0.985 0 0); - --primary: oklch(0.92 0.004 286.32); - --primary-foreground: oklch(0.21 0.006 285.885); - --secondary: oklch(0.274 0.006 286.033); + --primary: oklch(0.922 0 0); + --primary-foreground: oklch(0.205 0 0); + --secondary: oklch(0.269 0 0); --secondary-foreground: oklch(0.985 0 0); - --muted: oklch(0.274 0.006 286.033); - --muted-foreground: oklch(0.705 0.015 286.067); - --accent: oklch(0.274 0.006 286.033); + --muted: oklch(0.269 0 0); + --muted-foreground: oklch(0.708 0 0); + --accent: oklch(0.269 0 0); --accent-foreground: oklch(0.985 0 0); --destructive: oklch(0.704 0.191 22.216); --border: oklch(1 0 0 / 10%); --input: oklch(1 0 0 / 15%); - --ring: oklch(55.6% 0 0); + --ring: oklch(0.556 0 0); --chart-1: oklch(0.488 0.243 264.376); --chart-2: oklch(0.696 0.17 162.48); --chart-3: oklch(0.769 0.188 70.08); --chart-4: oklch(0.627 0.265 303.9); --chart-5: oklch(0.645 0.246 16.439); - --sidebar: oklch(0.21 0.006 285.885); + --sidebar: oklch(0.205 0 0); --sidebar-foreground: oklch(0.985 0 0); --sidebar-primary: oklch(0.488 0.243 264.376); --sidebar-primary-foreground: oklch(0.985 0 0); - --sidebar-accent: oklch(0.274 0.006 286.033); + --sidebar-accent: oklch(0.269 0 0); --sidebar-accent-foreground: oklch(0.985 0 0); --sidebar-border: oklch(1 0 0 / 10%); - --sidebar-ring: oklch(0.552 0.016 285.938); + --sidebar-ring: oklch(0.556 0 0); --lp-primary: oklch(0.205 0 0); --lp-primary-foreground: oklch(0.985 0 0); --lp-accent: oklch(0.97 0 0); diff --git a/src/lib/utils.ts b/src/lib/utils.ts index 365bfc5..bd0c391 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -1,98 +1,6 @@ -import type React from "react"; -import { clsx, type ClassValue } from "clsx"; -import { twMerge } from "tailwind-merge"; +import { clsx, type ClassValue } from "clsx" +import { twMerge } from "tailwind-merge" export function cn(...inputs: ClassValue[]) { - return twMerge(clsx(inputs)); + return twMerge(clsx(inputs)) } - -/** - * Type-safe event handler utility function - * Provides autocomplete for available events based on element type - */ - -// // Helper type to extract valid event names from an element type -// type EventNames = { -// [K in keyof T]: K extends `on${infer E}` ? Lowercase : never -// }[keyof T] - -// // Helper type to get the event type for a given event name and element -// type EventType = T extends { -// addEventListener: (event: any, handler: infer H) => any -// } -// ? H extends (event: infer Event) => any -// ? Event -// : never -// : never - -/** - * Overloaded function for React synthetic events - */ -export function on( - element: EventTarget, - events: string | string[], - callback: (event: React.SyntheticEvent) => void, -): EventTarget; - -/** - * Implementation - */ -export function on( - element: EventTarget, - events: string | string[], - callback: (event: any) => void, -): EventTarget { - if (Array.isArray(events)) { - events.forEach((event) => { - element.addEventListener(event, callback as EventListener); - }); - } else { - element.addEventListener(events, callback as EventListener); - } - - return element; -} - -/** - * Overloaded function for React synthetic events - */ -export function off( - element: EventTarget, - events: string | string[], - callback: (event: React.SyntheticEvent) => void, -): EventTarget; - -/** - * Implementation - */ -export function off( - element: EventTarget, - events: string | string[], - callback: (event: any) => void, -): EventTarget { - if (Array.isArray(events)) { - events.forEach((event) => { - element.removeEventListener(event, callback as EventListener); - }); - } else { - element.removeEventListener(events, callback as EventListener); - } - - return element; -} - -/** - * No-op function - * @returns undefined - */ -export function noop() { - // noop -} - -export function toFixedNumber(num: number, digits: number, base = 10) { - const pow = Math.pow(base, digits); - return Math.round(num * pow) / pow; -} -export function absoluteUrl(path: string) { - return `${process.env.NEXT_PUBLIC_APP_URL}${path}`; -} \ No newline at end of file