1
mirror of https://github.com/jakejarvis/jarv.is.git synced 2025-10-30 07:36:02 -04:00

fix more icons

This commit is contained in:
2025-05-20 16:55:28 -04:00
parent 2393bb3337
commit 1996ad6c10
13 changed files with 300 additions and 277 deletions

View File

@@ -52,7 +52,7 @@ export const PageStyles = () => (
<PageStyles /> <PageStyles />
<PageTitle canonical="/previously" className="font-semibold"> <PageTitle canonical="/previously" className="font-semibold">
<>Previously</> {"Previously"}
</PageTitle> </PageTitle>
![Timeline of this website's past.](./images/wayback.png) ![Timeline of this website's past.](./images/wayback.png)

View File

@@ -51,15 +51,15 @@ const CommentActions = ({ comment }: { comment: CommentWithUser }) => {
/> />
) : ( ) : (
<div className="flex gap-2"> <div className="flex gap-2">
<Button variant="outline" size="sm" onClick={() => setIsReplying(!isReplying)} className="h-8 px-2"> <Button variant="outline" size="sm" onClick={() => setIsReplying(!isReplying)}>
<ReplyIcon className="mr-1 h-3.5 w-3.5" /> <ReplyIcon />
Reply Reply
</Button> </Button>
{session.user.id === comment.user.id && ( {session.user.id === comment.user.id && (
<DropdownMenu> <DropdownMenu>
<DropdownMenuTrigger asChild> <DropdownMenuTrigger asChild>
<Button variant="outline" size="sm" className="h-8 px-2 text-xs"> <Button variant="outline" size="sm">
<EllipsisIcon /> <EllipsisIcon />
<span className="sr-only">Actions Menu</span> <span className="sr-only">Actions Menu</span>
</Button> </Button>

View File

@@ -171,7 +171,7 @@ const CommentForm = ({
<Button type="submit" disabled={isPending || !content.trim()}> <Button type="submit" disabled={isPending || !content.trim()}>
{isPending ? ( {isPending ? (
<> <>
<Loader2Icon className="mr-2 h-4 w-4 animate-spin" /> <Loader2Icon className="animate-spin" />
{isEditing ? "Updating..." : "Posting..."} {isEditing ? "Updating..." : "Posting..."}
</> </>
) : isEditing ? ( ) : isEditing ? (

View File

@@ -105,11 +105,13 @@ const ContactForm = () => {
<Button type="submit" size="lg" disabled={pending}> <Button type="submit" size="lg" disabled={pending}>
{pending ? ( {pending ? (
<> <>
<Loader2Icon className="animate-spin" /> Sending... <Loader2Icon className="animate-spin" />
Sending...
</> </>
) : ( ) : (
<> <>
<SendIcon /> Send <SendIcon />
Send
</> </>
)} )}
</Button> </Button>

View File

@@ -118,7 +118,7 @@ const ImageDiff = ({ children, className }: { children: React.ReactElement[]; cl
onMouseDown={handleMouseDown} onMouseDown={handleMouseDown}
onTouchStart={handleMouseDown} onTouchStart={handleMouseDown}
onTouchEnd={handleMouseUp} onTouchEnd={handleMouseUp}
className="bg-muted absolute top-1/2 left-[var(--slider-position)] flex h-10 w-10 -translate-x-1/2 -translate-y-1/2 cursor-ew-resize touch-none items-center justify-center rounded-full border-2 drop-shadow-md" className="bg-muted absolute top-1/2 left-[var(--slider-position)] flex size-10 -translate-x-1/2 -translate-y-1/2 cursor-ew-resize touch-none items-center justify-center rounded-full border-2 drop-shadow-md"
aria-hidden="true" aria-hidden="true"
> >
<ChevronsLeftRightIcon className="text-foreground/70 size-6" /> <ChevronsLeftRightIcon className="text-foreground/70 size-6" />

View File

@@ -31,7 +31,7 @@ const MenuItem = ({
aria-label={text} aria-label={text}
data-current={current || undefined} data-current={current || undefined}
className={cn( className={cn(
"text-foreground/85 hover:border-ring data-current:border-primary/40! inline-flex items-center p-2.5 hover:border-b-[3px] hover:no-underline data-current:border-b-[3px]", "text-foreground/85 hover:border-ring data-current:border-primary/40! inline-flex items-center hover:border-b-[3px] hover:no-underline data-current:border-b-[3px]",
className className
)} )}
{...rest} {...rest}

View File

@@ -44,7 +44,7 @@ const Menu = ({ className, ...rest }: React.ComponentProps<"div">) => {
const isCurrent = item.href?.split("/")[1] === segment; const isCurrent = item.href?.split("/")[1] === segment;
return ( return (
<div className="mt-[3px] inline-block last:-mr-2.5 max-sm:first:hidden" key={index}> <div className="mt-[3px] inline-block last:-mr-2.5 max-sm:first:hidden [&_a,&_button]:p-2.5" key={index}>
<MenuItem {...item} current={isCurrent} /> <MenuItem {...item} current={isCurrent} />
</div> </div>
); );

View File

@@ -13,7 +13,7 @@ const ThemeToggle = ({ className, ...rest }: React.ComponentProps<"button">) =>
onClick={() => setTheme(theme === "light" ? "dark" : "light")} onClick={() => setTheme(theme === "light" ? "dark" : "light")}
aria-label="Toggle theme" aria-label="Toggle theme"
className={cn( className={cn(
"hover:*:stroke-warning block cursor-pointer bg-transparent p-2.5 not-dark:[&_.lucide-moon]:hidden dark:[&_.lucide-sun]:hidden", "hover:*:stroke-warning block cursor-pointer bg-transparent not-dark:[&_.lucide-moon]:hidden dark:[&_.lucide-sun]:hidden",
className className
)} )}
{...rest} {...rest}

View File

@@ -1,6 +1,7 @@
import { env } from "@/lib/env";
import { drizzle } from "drizzle-orm/neon-http"; import { drizzle } from "drizzle-orm/neon-http";
import { neon } from "@neondatabase/serverless"; import { neon } from "@neondatabase/serverless";
const sql = neon(process.env.DATABASE_URL!); const sql = neon(env.DATABASE_URL);
export const db = drizzle({ client: sql }); export const db = drizzle({ client: sql });

View File

@@ -81,13 +81,13 @@ export const env = createEnv({
.url() .url()
.default( .default(
((): string => ((): string =>
(process.env.VERCEL (process.env.VERCEL || process.env.NEXT_PUBLIC_VERCEL
? process.env.VERCEL_ENV === "production" ? process.env.NEXT_PUBLIC_VERCEL_ENV === "production"
? `https://${process.env.VERCEL_PROJECT_PRODUCTION_URL}` ? `https://${process.env.NEXT_PUBLIC_VERCEL_PROJECT_PRODUCTION_URL}`
: process.env.VERCEL_ENV === "preview" : process.env.NEXT_PUBLIC_VERCEL_ENV === "preview"
? `https://${process.env.VERCEL_BRANCH_URL}` ? `https://${process.env.NEXT_PUBLIC_VERCEL_BRANCH_URL}`
: process.env.VERCEL_URL : process.env.NEXT_PUBLIC_VERCEL_URL
? `https://${process.env.VERCEL_URL}` ? `https://${process.env.NEXT_PUBLIC_VERCEL_URL}`
: undefined : undefined
: undefined) || : undefined) ||
(process.env.NETLIFY (process.env.NETLIFY

View File

@@ -26,6 +26,6 @@ export const ComicNeue = ComicNeueLoader({
style: ["normal", "italic"], style: ["normal", "italic"],
subsets: ["latin"], subsets: ["latin"],
display: "swap", display: "swap",
fallback: ["'Comic Sans MS'", "'Comic Sans'"], fallback: ["'Comic Sans MS'", "'Comic Sans'", "cursive"],
preload: false, preload: false,
}); });

View File

@@ -15,6 +15,8 @@
"start": "next start", "start": "next start",
"lint": "eslint .", "lint": "eslint .",
"typecheck": "tsc --noEmit", "typecheck": "tsc --noEmit",
"db:generate": "drizzle-kit generate",
"db:migrate": "drizzle-kit migrate",
"prepare": "test -d node_modules/husky && husky || echo \"skipping husky\"" "prepare": "test -d node_modules/husky && husky || echo \"skipping husky\""
}, },
"dependencies": { "dependencies": {
@@ -26,19 +28,19 @@
"@neondatabase/serverless": "^1.0.0", "@neondatabase/serverless": "^1.0.0",
"@next/bundle-analyzer": "15.4.0-canary.41", "@next/bundle-analyzer": "15.4.0-canary.41",
"@next/mdx": "15.4.0-canary.41", "@next/mdx": "15.4.0-canary.41",
"@octokit/graphql": "^8.2.2", "@octokit/graphql": "^9.0.1",
"@octokit/graphql-schema": "^15.26.0", "@octokit/graphql-schema": "^15.26.0",
"@radix-ui/react-alert-dialog": "^1.1.13", "@radix-ui/react-alert-dialog": "^1.1.14",
"@radix-ui/react-aspect-ratio": "^1.1.6", "@radix-ui/react-aspect-ratio": "^1.1.7",
"@radix-ui/react-avatar": "^1.1.9", "@radix-ui/react-avatar": "^1.1.10",
"@radix-ui/react-dropdown-menu": "^2.1.14", "@radix-ui/react-dropdown-menu": "^2.1.15",
"@radix-ui/react-label": "^2.1.6", "@radix-ui/react-label": "^2.1.7",
"@radix-ui/react-popover": "^1.1.13", "@radix-ui/react-popover": "^1.1.14",
"@radix-ui/react-scroll-area": "^1.2.8", "@radix-ui/react-scroll-area": "^1.2.9",
"@radix-ui/react-separator": "^1.1.6", "@radix-ui/react-separator": "^1.1.7",
"@radix-ui/react-slot": "^1.2.2", "@radix-ui/react-slot": "^1.2.3",
"@radix-ui/react-toast": "^1.2.13", "@radix-ui/react-toast": "^1.2.14",
"@radix-ui/react-tooltip": "^1.2.6", "@radix-ui/react-tooltip": "^1.2.7",
"@t3-oss/env-nextjs": "^0.13.4", "@t3-oss/env-nextjs": "^0.13.4",
"@vercel/analytics": "^1.5.0", "@vercel/analytics": "^1.5.0",
"@vercel/speed-insights": "^1.2.0", "@vercel/speed-insights": "^1.2.0",
@@ -89,7 +91,7 @@
"tailwind-merge": "^3.3.0", "tailwind-merge": "^3.3.0",
"tailwindcss": "^4.1.7", "tailwindcss": "^4.1.7",
"unified": "^11.0.5", "unified": "^11.0.5",
"zod": "3.25.6" "zod": "3.25.7"
}, },
"devDependencies": { "devDependencies": {
"@eslint/eslintrc": "^3.3.1", "@eslint/eslintrc": "^3.3.1",
@@ -97,7 +99,7 @@
"@jakejarvis/eslint-config": "^4.0.7", "@jakejarvis/eslint-config": "^4.0.7",
"@tailwindcss/postcss": "^4.1.7", "@tailwindcss/postcss": "^4.1.7",
"@types/mdx": "^2.0.13", "@types/mdx": "^2.0.13",
"@types/node": "^22.15.19", "@types/node": "^22.15.20",
"@types/react": "19.1.4", "@types/react": "19.1.4",
"@types/react-dom": "19.1.5", "@types/react-dom": "19.1.5",
"babel-plugin-react-compiler": "19.1.0-rc.2", "babel-plugin-react-compiler": "19.1.0-rc.2",
@@ -125,7 +127,7 @@
"typescript": "5.8.3" "typescript": "5.8.3"
}, },
"optionalDependencies": { "optionalDependencies": {
"sharp": "^0.34.1" "sharp": "^0.34.2"
}, },
"engines": { "engines": {
"node": ">=22.x" "node": ">=22.x"
@@ -152,11 +154,11 @@
"@prisma/client" "@prisma/client"
], ],
"ignoredBuiltDependencies": [ "ignoredBuiltDependencies": [
"@vercel/speed-insights",
"unrs-resolver" "unrs-resolver"
], ],
"onlyBuiltDependencies": [ "onlyBuiltDependencies": [
"@tailwindcss/oxide", "@tailwindcss/oxide",
"@vercel/speed-insights",
"esbuild", "esbuild",
"sharp" "sharp"
] ]

500
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff