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:
@@ -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>
|
||||||
|
|
||||||

|

|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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 ? (
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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" />
|
||||||
|
|||||||
@@ -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}
|
||||||
|
|||||||
@@ -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>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -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}
|
||||||
|
|||||||
@@ -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 });
|
||||||
|
|||||||
14
lib/env.ts
14
lib/env.ts
@@ -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
|
||||||
|
|||||||
@@ -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,
|
||||||
});
|
});
|
||||||
|
|||||||
34
package.json
34
package.json
@@ -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
500
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user