From 148559c7dd1a0614930ecaa2d288d977e4504c41 Mon Sep 17 00:00:00 2001 From: Lacy Morrow Date: Mon, 14 Sep 2026 11:29:28 -0400 Subject: [PATCH] chore(deps): lucide-react 0.564 -> 1.46 (major) lucide-react 1.0 removed all brand icons. This repo used seven of them (Facebook, Linkedin, Twitter, Youtube, Github, Instagram, Dribbble) in src/components/ui/share.tsx and src/components/ui/social-links.tsx. Those now come from @tabler/icons-react (already a dependency, IconBrand* set); Twitter maps to IconBrandX. The platformIcon record is typed as ComponentType<{ className?: string }> so both icon libraries fit. Other 1.0 changes (aria-hidden default, absoluteStrokeWidth deprecated for nonScalingStroke, IconNode renamed LucideIconNode, UMD build dropped) do not affect this code. All 35 other named imports across src/ still exist in 1.46.0. Claude-Session: https://claude.ai/code/session_01KLWmWU1KLE2diUH14ryqv1 --- package.json | 2 +- pnpm-lock.yaml | 10 ++++---- src/components/ui/share.tsx | 9 ++++--- src/components/ui/social-links.tsx | 40 +++++++++++++++--------------- 4 files changed, 31 insertions(+), 30 deletions(-) diff --git a/package.json b/package.json index 89baeece..cca07f50 100644 --- a/package.json +++ b/package.json @@ -126,7 +126,7 @@ "holy-loader": "2.3.14", "input-otp": "^1.5.0", "jotai": "2.17.1", - "lucide-react": "0.564.0", + "lucide-react": "1.46.0", "motion": "^12.34.0", "next": "16.3.5", "next-auth": "5.0.0-beta.32", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 40fdf783..f7f21c99 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -233,8 +233,8 @@ importers: specifier: 2.17.1 version: 2.17.1(@babel/core@7.28.5)(@babel/template@7.27.2)(@types/react@19.2.18)(react@19.2.4) lucide-react: - specifier: 0.564.0 - version: 0.564.0(react@19.2.4) + specifier: 1.46.0 + version: 1.46.0(react@19.2.4) motion: specifier: ^12.34.0 version: 12.38.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) @@ -6433,8 +6433,8 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - lucide-react@0.564.0: - resolution: {integrity: sha512-JJ8GVTQqFwuliifD48U6+h7DXEHdkhJ/E87kksGByII3qHxtPciVb8T8woQONHBQgHVOl7rSMrrip3SeVNy7Fg==} + lucide-react@1.46.0: + resolution: {integrity: sha512-Bv+FZXgZPrxc/NCl1e7JJVQFLdiCxYgxNVhqoV7X0p6I8ADJo8DxBnK1auH0fZz4AmqOJ3jgneL4f1i8LJQRAA==} peerDependencies: react: 19.2.4 @@ -15045,7 +15045,7 @@ snapshots: dependencies: yallist: 3.1.1 - lucide-react@0.564.0(react@19.2.4): + lucide-react@1.46.0(react@19.2.4): dependencies: react: 19.2.4 diff --git a/src/components/ui/share.tsx b/src/components/ui/share.tsx index bba16858..111322ae 100644 --- a/src/components/ui/share.tsx +++ b/src/components/ui/share.tsx @@ -1,6 +1,7 @@ "use client"; -import { Facebook, Linkedin, Link as LinkIcon, Share2, Twitter } from "lucide-react"; +import { IconBrandFacebook, IconBrandLinkedin, IconBrandX } from "@tabler/icons-react"; +import { Link as LinkIcon, Share2 } from "lucide-react"; import { usePathname } from "next/navigation"; import { useEffect, useState } from "react"; import { Button } from "@/components/ui/button"; @@ -108,15 +109,15 @@ export const Share = ({ {!supportsNativeShare && ( openShareWindow(twitterUrl)}> - + Share on Twitter openShareWindow(facebookUrl)}> - + Share on Facebook openShareWindow(linkedinUrl)}> - + Share on LinkedIn diff --git a/src/components/ui/social-links.tsx b/src/components/ui/social-links.tsx index a82fdd9f..a01c1726 100644 --- a/src/components/ui/social-links.tsx +++ b/src/components/ui/social-links.tsx @@ -1,15 +1,14 @@ import { - Dribbble, - Facebook, - Github, - Globe, - Instagram, - Linkedin, - MessageCircle, - Twitter, - Youtube, -} from "lucide-react"; -import type { ComponentType, SVGProps } from "react"; + IconBrandDribbble, + IconBrandFacebook, + IconBrandGithub, + IconBrandInstagram, + IconBrandLinkedin, + IconBrandX, + IconBrandYoutube, +} from "@tabler/icons-react"; +import { Globe, MessageCircle } from "lucide-react"; +import type { ComponentType } from "react"; import { Link } from "@/components/primitives/link"; import { siteConfig } from "@/config/site-config"; import { cn } from "@/lib/utils"; @@ -34,17 +33,18 @@ interface SocialLinksProps { labelled?: boolean; } -const platformIcon: Record>> = { - github: Github, - twitter: Twitter, - x: Twitter, - linkedin: Linkedin, - instagram: Instagram, - facebook: Facebook, - youtube: Youtube, +// lucide-react 1.0 removed its brand icons; brand marks come from @tabler/icons-react instead. +const platformIcon: Record> = { + github: IconBrandGithub, + twitter: IconBrandX, + x: IconBrandX, + linkedin: IconBrandLinkedin, + instagram: IconBrandInstagram, + facebook: IconBrandFacebook, + youtube: IconBrandYoutube, tiktok: Globe, discord: MessageCircle, - dribbble: Dribbble, + dribbble: IconBrandDribbble, threads: Globe, };