mirror of
https://github.com/jakejarvis/jarv.is.git
synced 2025-04-26 07:05:21 -04:00
lucide icons
This commit is contained in:
parent
42d9470480
commit
8e89701453
@ -50,12 +50,6 @@
|
||||
background-color: var(--colors-link);
|
||||
}
|
||||
|
||||
.submitIcon {
|
||||
font-size: 1.3em;
|
||||
margin-right: 0.3em;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.result {
|
||||
font-weight: 600;
|
||||
line-height: 1.5;
|
||||
@ -73,5 +67,4 @@
|
||||
width: 1.3em;
|
||||
height: 1.3em;
|
||||
vertical-align: -0.3em;
|
||||
fill: currentColor;
|
||||
}
|
||||
|
@ -4,10 +4,9 @@ import { useActionState } from "react";
|
||||
import TextareaAutosize from "react-textarea-autosize";
|
||||
import Turnstile from "react-turnstile";
|
||||
import clsx from "clsx";
|
||||
import { CheckIcon, XIcon } from "lucide-react";
|
||||
import Link from "../../components/Link";
|
||||
import { sendMessage } from "./actions";
|
||||
import { GoCheck, GoX } from "react-icons/go";
|
||||
import { SiMarkdown } from "react-icons/si";
|
||||
|
||||
import styles from "./form.module.css";
|
||||
|
||||
@ -56,7 +55,13 @@ const ContactForm = () => {
|
||||
lineHeight: 1.75,
|
||||
}}
|
||||
>
|
||||
<SiMarkdown
|
||||
<svg
|
||||
fill="currentColor"
|
||||
stroke="currentColor"
|
||||
strokeWidth="0"
|
||||
viewBox="0 0 24 24"
|
||||
height="1.25em"
|
||||
width="1.25em"
|
||||
style={{
|
||||
display: "inline",
|
||||
width: "1.25em",
|
||||
@ -64,7 +69,10 @@ const ContactForm = () => {
|
||||
verticalAlign: "-0.25em",
|
||||
marginRight: "0.25em",
|
||||
}}
|
||||
/>{" "}
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path d="M22.27 19.385H1.73A1.73 1.73 0 010 17.655V6.345a1.73 1.73 0 011.73-1.73h20.54A1.73 1.73 0 0124 6.345v11.308a1.73 1.73 0 01-1.73 1.731zM5.769 15.923v-4.5l2.308 2.885 2.307-2.885v4.5h2.308V8.078h-2.308l-2.307 2.885-2.308-2.885H3.46v7.847zM21.232 12h-2.309V8.077h-2.307V12h-2.308l3.461 4.039z"></path>
|
||||
</svg>{" "}
|
||||
Basic{" "}
|
||||
<Link href="https://commonmark.org/help/" title="Markdown reference sheet" style={{ fontWeight: 600 }}>
|
||||
Markdown syntax
|
||||
@ -87,15 +95,27 @@ const ContactForm = () => {
|
||||
<span>Sending...</span>
|
||||
) : (
|
||||
<>
|
||||
<span className={styles.submitIcon}>📤</span> <span>Send</span>
|
||||
<span
|
||||
style={{
|
||||
fontSize: "1.3em",
|
||||
marginRight: "0.3em",
|
||||
lineHeight: "1",
|
||||
}}
|
||||
>
|
||||
📤
|
||||
</span>{" "}
|
||||
<span>Send</span>
|
||||
</>
|
||||
)}
|
||||
</button>
|
||||
)}
|
||||
|
||||
{formState?.message && (
|
||||
<div className={clsx(styles.result, formState?.success ? styles.success : styles.error)}>
|
||||
{formState?.success ? <GoCheck className={styles.resultIcon} /> : <GoX className={styles.resultIcon} />}{" "}
|
||||
{formState?.success ? (
|
||||
<CheckIcon size="1.3em" className={styles.resultIcon} />
|
||||
) : (
|
||||
<XIcon size="1.3em" className={styles.resultIcon} />
|
||||
)}{" "}
|
||||
{formState?.message}
|
||||
</div>
|
||||
)}
|
||||
|
@ -1,5 +1,6 @@
|
||||
import { Suspense } from "react";
|
||||
import { ErrorBoundary } from "react-error-boundary";
|
||||
import { CalendarIcon, TagIcon, SquarePenIcon, EyeIcon } from "lucide-react";
|
||||
import Link from "../../../components/Link";
|
||||
import Time from "../../../components/Time";
|
||||
import Comments from "../../../components/Comments";
|
||||
@ -8,7 +9,6 @@ import HitCounter from "./counter";
|
||||
import { getPostSlugs, getFrontMatter } from "../../../lib/helpers/posts";
|
||||
import { metadata as defaultMetadata } from "../../layout";
|
||||
import config from "../../../lib/config/constants";
|
||||
import { FiCalendar, FiTag, FiEdit, FiEye } from "react-icons/fi";
|
||||
import type { Metadata, Route } from "next";
|
||||
import type { Article, WithContext } from "schema-dts";
|
||||
|
||||
@ -85,14 +85,14 @@ export default async function Page({ params }: { params: Promise<{ slug: string
|
||||
<div className={styles.meta}>
|
||||
<div className={styles.metaItem}>
|
||||
<Link href={`/notes/${frontmatter.slug}` as Route} plain className={styles.metaLink}>
|
||||
<FiCalendar className={styles.metaIcon} />
|
||||
<CalendarIcon size="1.2em" className={styles.metaIcon} />
|
||||
<Time date={frontmatter.date} format="MMMM D, YYYY" />
|
||||
</Link>
|
||||
</div>
|
||||
|
||||
{frontmatter.tags && (
|
||||
<div className={styles.metaItem}>
|
||||
<FiTag className={styles.metaIcon} />
|
||||
<TagIcon size="1.2em" className={styles.metaIcon} />
|
||||
<span className={styles.metaTags}>
|
||||
{frontmatter.tags.map((tag) => (
|
||||
<span key={tag} title={tag} className={styles.metaTag} aria-label={`Tagged with ${tag}`}>
|
||||
@ -110,7 +110,7 @@ export default async function Page({ params }: { params: Promise<{ slug: string
|
||||
plain
|
||||
className={styles.metaLink}
|
||||
>
|
||||
<FiEdit className={styles.metaIcon} />
|
||||
<SquarePenIcon size="1.2em" className={styles.metaIcon} />
|
||||
<span>Improve This Post</span>
|
||||
</Link>
|
||||
</div>
|
||||
@ -126,7 +126,7 @@ export default async function Page({ params }: { params: Promise<{ slug: string
|
||||
marginRight: 0,
|
||||
}}
|
||||
>
|
||||
<FiEye className={styles.metaIcon} />
|
||||
<EyeIcon size="1.2em" className={styles.metaIcon} />
|
||||
<Suspense fallback={<Loading boxes={3} width={20} />}>
|
||||
<HitCounter slug={`notes/${frontmatter.slug}`} />
|
||||
</Suspense>
|
||||
|
10
app/page.tsx
10
app/page.tsx
@ -1,6 +1,6 @@
|
||||
import hash from "@emotion/hash";
|
||||
import { rgba } from "polished";
|
||||
import { GoLock } from "react-icons/go";
|
||||
import { LockIcon } from "lucide-react";
|
||||
import UnstyledLink from "../components/Link";
|
||||
import type { ComponentPropsWithoutRef } from "react";
|
||||
import type { Route } from "next";
|
||||
@ -249,13 +249,7 @@ export default function Page() {
|
||||
plain
|
||||
openInNewTab
|
||||
>
|
||||
<GoLock
|
||||
size="1.25em"
|
||||
style={{
|
||||
verticalAlign: "-0.25em",
|
||||
strokeWidth: 0.5,
|
||||
}}
|
||||
/>{" "}
|
||||
<LockIcon size="1.25em" style={{ verticalAlign: "-0.25em" }} />{" "}
|
||||
<span
|
||||
style={{
|
||||
margin: "0 0.15em",
|
||||
|
@ -71,22 +71,20 @@ export default async function Page() {
|
||||
<p style={{ textAlign: "center", fontSize: "0.95em", margin: "0.5em 0" }}>
|
||||
<Link href="/y2k">
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="currentColor"
|
||||
stroke="currentColor"
|
||||
strokeWidth="0"
|
||||
viewBox="0 0 24 24"
|
||||
role="img"
|
||||
height="1.2em"
|
||||
width="1.2em"
|
||||
style={{
|
||||
display: "inline",
|
||||
width: "1.2em",
|
||||
height: "1.2em",
|
||||
verticalAlign: "-0.15em",
|
||||
marginRight: "0.1em",
|
||||
fill: "currentColor",
|
||||
stroke: "currentcolor",
|
||||
strokeWidth: 0,
|
||||
}}
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path d="M5.712 1.596l-.756.068-.238.55.734-.017zm1.39.927l-.978.137-.326.807.96-.12.345-.824zM4.89 3.535l-.72.05-.24.567.721-.017zm3.724.309l-1.287.068-.394.96 1.27-.052zm1.87.566l-1.579.069-.566 1.357 1.596-.088.548-1.338zm-4.188.037l-.977.153-.343.806.976-.12zm6.144.668l-1.87.135-.637 1.527 1.87-.154zm2.925.219c-.11 0-.222 0-.334.002l-.767 1.85c1.394-.03 2.52.089 3.373.38l-1.748 4.201c-.955-.304-2.082-.444-3.36-.394l-.54 1.305a8.762 8.762 0 0 1 3.365.396l-1.663 4.014c-1.257-.27-2.382-.395-3.387-.344l-.782 1.887c3.363-.446 6.348.822 9.009 3.773L24 9.23c-2.325-2.575-5.2-3.88-8.637-3.896zm-.644.002l-2.024.12-.687 1.68 2.025-.19zm-10.603.05l-.719.036-.224.566h.703l.24-.601zm3.69.397l-1.287.069-.395.959 1.27-.05zM5.54 6.3l-.994.154-.344.807.98-.121zm4.137.066l-1.58.069L7.53 7.77l1.596-.085.55-1.32zm1.955.688l-1.87.135-.636 1.527 1.887-.154zm2.282.19l-2.01.136-.7 1.682 2.04-.19.67-1.63zm-10.57.066l-.739.035-.238.564h.72l.257-.6zm3.705.293l-1.303.085-.394.96 1.287-.034zm11.839.255a6.718 6.718 0 0 1 2.777 1.717l-1.75 4.237c-.617-.584-1.15-.961-1.611-1.149l-1.201-.498zM4.733 8.22l-.976.154-.344.807.961-.12.36-.841zm4.186 0l-1.594.052-.549 1.354L8.37 9.54zm1.957.668L8.99 9.04l-.619 1.508 1.87-.135.636-1.527zm2.247.275l-2.007.12-.703 1.665 2.042-.156zM2.52 9.267l-.718.033-.24.549.718-.016zm3.725.273l-1.289.07-.41.96 1.287-.03.412-1zm1.87.6l-1.596.05-.55 1.356 1.598-.084.547-1.322zm-4.186.037l-.979.136-.324.805.96-.119zm6.14.633l-1.87.154-.653 1.527 1.906-.154zm2.267.275l-2.026.12-.686 1.663 2.025-.172zm-10.569.031l-.739.037-.238.565.72-.016zm3.673.362l-1.289.068-.41.978 1.305-.05zm-2.285.533l-.976.154-.326.805.96-.12.342-.84zm4.153.07l-1.596.066-.565 1.356 1.612-.084zm1.957.666l-1.889.154-.617 1.526 1.886-.15zm2.28.223l-2.025.12-.685 1.665 2.041-.172.67-1.613zm-10.584.05l-.738.053L0 13.64l.72-.02.24-.6zm3.705.31l-1.285.07-.395.976 1.287-.05.393-.997zm11.923.07c1.08.29 2.024.821 2.814 1.613l-1.715 4.183c-.892-.754-1.82-1.32-2.814-1.664l1.715-4.133zm-10.036.515L4.956 14l-.549 1.32 1.578-.066.567-1.338zm-4.184.014l-.996.156-.309.79.961-.106zm6.14.67l-1.904.154-.617 1.527 1.89-.154.632-1.527zm2.231.324l-2.025.123-.686 1.682 2.026-.174zm-6.863.328l-1.3.068-.397.98 1.285-.054zm1.871.584l-1.578.068-.566 1.334 1.595-.064zm1.953.701l-1.867.137-.635 1.51 1.87-.137zm2.23.31l-2.005.122-.703 1.68 2.04-.19.67-1.61z"></path>
|
||||
</svg>{" "}
|
||||
|
@ -52,11 +52,10 @@
|
||||
|
||||
.card .metaIcon {
|
||||
display: inline;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
vertical-align: -0.3em;
|
||||
width: 1.25em;
|
||||
height: 1.25em;
|
||||
vertical-align: -0.25em;
|
||||
margin-right: 0.5em;
|
||||
stroke-width: 0.75;
|
||||
}
|
||||
|
||||
.card .metaLanguage {
|
||||
|
@ -1,12 +1,11 @@
|
||||
import { graphql } from "@octokit/graphql";
|
||||
import { GitForkIcon, StarIcon } from "lucide-react";
|
||||
import PageTitle from "../../components/PageTitle";
|
||||
import Link from "../../components/Link";
|
||||
import RelativeTime from "../../components/RelativeTime";
|
||||
import commaNumber from "comma-number";
|
||||
import config from "../../lib/config/constants";
|
||||
import { metadata as defaultMetadata } from "../layout";
|
||||
import { GoStar, GoRepoForked } from "react-icons/go";
|
||||
import { SiGithub } from "react-icons/si";
|
||||
import type { Metadata } from "next";
|
||||
import type { User, Repository } from "@octokit/graphql-schema";
|
||||
|
||||
@ -144,7 +143,7 @@ export default async function Page() {
|
||||
plain
|
||||
className={styles.metaLink}
|
||||
>
|
||||
<GoStar className={styles.metaIcon} />
|
||||
<StarIcon size="1.25em" className={styles.metaIcon} />
|
||||
{commaNumber(repo.stars)}
|
||||
</Link>
|
||||
</div>
|
||||
@ -159,7 +158,7 @@ export default async function Page() {
|
||||
plain
|
||||
className={styles.metaLink}
|
||||
>
|
||||
<GoRepoForked className={styles.metaIcon} />
|
||||
<GitForkIcon size="1.25em" className={styles.metaIcon} />
|
||||
{commaNumber(repo.forks)}
|
||||
</Link>
|
||||
</div>
|
||||
@ -183,7 +182,11 @@ export default async function Page() {
|
||||
>
|
||||
<Link href={`https://github.com/${config.authorSocial.github}`}>
|
||||
View more on{" "}
|
||||
<SiGithub
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 24 24"
|
||||
height="1.2em"
|
||||
width="1.2em"
|
||||
style={{
|
||||
display: "inline",
|
||||
width: "1.2em",
|
||||
@ -192,7 +195,9 @@ export default async function Page() {
|
||||
margin: "0 0.15em",
|
||||
fill: "var(--colors-text)",
|
||||
}}
|
||||
/>{" "}
|
||||
>
|
||||
<path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"></path>
|
||||
</svg>{" "}
|
||||
GitHub...
|
||||
</Link>
|
||||
</p>
|
||||
|
@ -1,4 +1,5 @@
|
||||
.button {
|
||||
color: var(--colors-mediumDark);
|
||||
line-height: 1px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
@ -4,7 +4,7 @@ import { forwardRef, useState, useEffect } from "react";
|
||||
import innerText from "react-innertext";
|
||||
import copy from "copy-to-clipboard";
|
||||
import clsx from "clsx";
|
||||
import { FiClipboard, FiCheck } from "react-icons/fi";
|
||||
import { ClipboardIcon, CheckIcon } from "lucide-react";
|
||||
import type { ReactNode, Ref, ComponentPropsWithoutRef, ElementRef, MouseEventHandler } from "react";
|
||||
|
||||
import styles from "./CopyButton.module.css";
|
||||
@ -57,7 +57,11 @@ const CopyButton = (
|
||||
className={clsx(styles.button, copied && styles.copied, className)}
|
||||
{...rest}
|
||||
>
|
||||
{copied ? <FiCheck className={styles.icon} /> : <FiClipboard className={styles.icon} />}
|
||||
{copied ? (
|
||||
<CheckIcon size="1.25em" className={styles.icon} />
|
||||
) : (
|
||||
<ClipboardIcon size="1.25em" className={styles.icon} />
|
||||
)}
|
||||
</button>
|
||||
);
|
||||
};
|
||||
|
@ -21,8 +21,8 @@
|
||||
color: var(--colors-mediumDark) !important;
|
||||
}
|
||||
|
||||
.link.hover:hover,
|
||||
.link.hover:focus-visible {
|
||||
.link:has(.icon):hover,
|
||||
.link:has(.icon):focus-visible {
|
||||
color: var(--colors-medium) !important;
|
||||
}
|
||||
|
||||
@ -32,7 +32,7 @@
|
||||
}
|
||||
|
||||
.link.underline:hover,
|
||||
.link.hover:focus-visible {
|
||||
.link.underline:focus-visible {
|
||||
border-bottom-color: var(--colors-kindaLight);
|
||||
}
|
||||
|
||||
@ -41,7 +41,7 @@
|
||||
width: 1.25em;
|
||||
height: 1.25em;
|
||||
vertical-align: -0.25em;
|
||||
margin: 0 0.075em;
|
||||
margin: 0 0.1em;
|
||||
}
|
||||
|
||||
.heart {
|
||||
|
@ -1,7 +1,6 @@
|
||||
import clsx from "clsx";
|
||||
import { HeartIcon } from "lucide-react";
|
||||
import Link from "../Link";
|
||||
import { GoHeartFill } from "react-icons/go";
|
||||
import { SiNextdotjs } from "react-icons/si";
|
||||
import config from "../../lib/config/constants";
|
||||
import type { ComponentPropsWithoutRef } from "react";
|
||||
|
||||
@ -28,7 +27,7 @@ const Footer = ({ className, ...rest }: FooterProps) => {
|
||||
<div>
|
||||
Made with{" "}
|
||||
<span className={styles.heart} title="Love">
|
||||
<GoHeartFill className={styles.icon} style={{ strokeWidth: 2 }} />
|
||||
<HeartIcon size="1.25em" fill="currentColor" className={styles.icon} />
|
||||
</span>{" "}
|
||||
and{" "}
|
||||
<Link
|
||||
@ -36,9 +35,20 @@ const Footer = ({ className, ...rest }: FooterProps) => {
|
||||
title="Powered by Next.js"
|
||||
aria-label="Next.js"
|
||||
plain
|
||||
className={clsx(styles.link, styles.hover)}
|
||||
className={styles.link}
|
||||
>
|
||||
<SiNextdotjs className={styles.icon} />
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="currentColor"
|
||||
stroke="currentColor"
|
||||
strokeWidth="0"
|
||||
viewBox="0 0 24 24"
|
||||
height="1.25em"
|
||||
width="1.25em"
|
||||
className={styles.icon}
|
||||
>
|
||||
<path d="M18.665 21.978C16.758 23.255 14.465 24 12 24 5.377 24 0 18.623 0 12S5.377 0 12 0s12 5.377 12 12c0 3.583-1.574 6.801-4.067 9.001L9.219 7.2H7.2v9.596h1.615V9.251l9.85 12.727Zm-3.332-8.533 1.6 2.061V7.2h-1.6v6.245Z"></path>
|
||||
</svg>
|
||||
</Link>
|
||||
.{" "}
|
||||
<Link
|
||||
|
@ -1,5 +1,5 @@
|
||||
import Link from "../Link";
|
||||
import { FiLink } from "react-icons/fi";
|
||||
import { LinkIcon } from "lucide-react";
|
||||
import type { ComponentPropsWithoutRef } from "react";
|
||||
|
||||
export type HeadingAnchorProps = Omit<ComponentPropsWithoutRef<typeof Link>, "href"> & {
|
||||
@ -9,8 +9,8 @@ export type HeadingAnchorProps = Omit<ComponentPropsWithoutRef<typeof Link>, "hr
|
||||
|
||||
const HeadingAnchor = ({ id, title, ...rest }: HeadingAnchorProps) => {
|
||||
return (
|
||||
<Link href={`#${id}`} title={`Jump to "${title}"`} aria-hidden plain style={{ lineHeight: 1 }} {...rest}>
|
||||
<FiLink size="0.8em" />
|
||||
<Link href={`#${id}`} title={`Jump to "${title}"`} aria-hidden plain {...rest}>
|
||||
<LinkIcon size="0.8em" />
|
||||
</Link>
|
||||
);
|
||||
};
|
||||
|
@ -6,6 +6,7 @@ import MenuItem from "../MenuItem";
|
||||
import ThemeToggle from "../ThemeToggle";
|
||||
import { menuItems } from "../../lib/config/menu";
|
||||
import type { ComponentPropsWithoutRef } from "react";
|
||||
import type { LucideIcon } from "lucide-react";
|
||||
|
||||
import styles from "./Menu.module.css";
|
||||
|
||||
@ -28,7 +29,7 @@ const Menu = ({ className, ...rest }: MenuProps) => {
|
||||
})}
|
||||
|
||||
<li className={styles.menuItem}>
|
||||
<MenuItem icon={ThemeToggle} />
|
||||
<MenuItem icon={ThemeToggle as LucideIcon} />
|
||||
</li>
|
||||
</ul>
|
||||
);
|
||||
|
@ -1,15 +1,15 @@
|
||||
import clsx from "clsx";
|
||||
import Link from "../Link";
|
||||
import type { Route } from "next";
|
||||
import type { IconType } from "react-icons";
|
||||
import type { ComponentPropsWithoutRef } from "react";
|
||||
import type { LucideIcon } from "lucide-react";
|
||||
|
||||
import styles from "./MenuItem.module.css";
|
||||
|
||||
export type MenuItemProps = Omit<ComponentPropsWithoutRef<typeof Link>, "href"> & {
|
||||
text?: string;
|
||||
href?: Route;
|
||||
icon?: IconType;
|
||||
icon?: LucideIcon;
|
||||
current?: boolean;
|
||||
};
|
||||
|
||||
@ -18,7 +18,7 @@ const MenuItem = ({ text, href, icon, current, className, ...rest }: MenuItemPro
|
||||
|
||||
const item = (
|
||||
<>
|
||||
{Icon && <Icon className={styles.icon} />}
|
||||
{Icon && <Icon size="1.25em" className={styles.icon} />}
|
||||
{text && <span className={styles.label}>{text}</span>}
|
||||
</>
|
||||
);
|
||||
|
@ -1,21 +1,14 @@
|
||||
.title {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0.6em;
|
||||
font-size: 1.9em;
|
||||
font-weight: 600;
|
||||
font-size: 2em;
|
||||
font-weight: 500;
|
||||
text-transform: lowercase;
|
||||
letter-spacing: 0.02em;
|
||||
}
|
||||
|
||||
.slug::before {
|
||||
content: "\002E\002F"; /* "./" */
|
||||
letter-spacing: 0.1em;
|
||||
color: var(--colors-mediumLight) !important;
|
||||
color: var(--colors-mediumLight);
|
||||
margin-right: -0.1em;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.title {
|
||||
font-size: 2em;
|
||||
}
|
||||
}
|
||||
|
@ -1,16 +1,15 @@
|
||||
"use client";
|
||||
|
||||
import { useHasMounted, useTheme } from "../../hooks";
|
||||
import { FiSun, FiMoon } from "react-icons/fi";
|
||||
import { BsThreeDots } from "react-icons/bs";
|
||||
import { EllipsisIcon, MoonIcon, SunIcon } from "lucide-react";
|
||||
import type { ComponentPropsWithoutRef } from "react";
|
||||
import type { LucideIcon } from "lucide-react";
|
||||
|
||||
import styles from "./ThemeToggle.module.css";
|
||||
|
||||
export type ThemeToggleProps = {
|
||||
className?: string;
|
||||
};
|
||||
export type ThemeToggleProps = ComponentPropsWithoutRef<LucideIcon>;
|
||||
|
||||
const ThemeToggle = ({ className }: ThemeToggleProps) => {
|
||||
const ThemeToggle = ({ ...rest }: ThemeToggleProps) => {
|
||||
const hasMounted = useHasMounted();
|
||||
const { theme, setTheme } = useTheme();
|
||||
|
||||
@ -18,7 +17,7 @@ const ThemeToggle = ({ className }: ThemeToggleProps) => {
|
||||
if (!hasMounted) {
|
||||
return (
|
||||
<div className={styles.toggle}>
|
||||
<BsThreeDots className={className} style={{ fill: "var(--colors-mediumLight)" }} />
|
||||
<EllipsisIcon style={{ stroke: "var(--colors-mediumLight)" }} {...rest} />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@ -30,7 +29,7 @@ const ThemeToggle = ({ className }: ThemeToggleProps) => {
|
||||
title={theme === "light" ? "Toggle Dark Mode" : "Toggle Light Mode"}
|
||||
aria-label={theme === "light" ? "Toggle Dark Mode" : "Toggle Light Mode"}
|
||||
>
|
||||
{theme === "light" ? <FiSun className={className} /> : <FiMoon className={className} />}
|
||||
{theme === "light" ? <SunIcon {...rest} /> : <MoonIcon {...rest} />}
|
||||
</button>
|
||||
);
|
||||
};
|
||||
|
@ -1,25 +1,25 @@
|
||||
import { FiHome, FiEdit3, FiCode, FiMail } from "react-icons/fi";
|
||||
import { CodeIcon, HomeIcon, MailIcon, PencilLineIcon } from "lucide-react";
|
||||
import type { MenuItemProps } from "../../components/MenuItem";
|
||||
|
||||
export const menuItems: MenuItemProps[] = [
|
||||
{
|
||||
text: "Home",
|
||||
href: "/",
|
||||
icon: FiHome,
|
||||
icon: HomeIcon,
|
||||
},
|
||||
{
|
||||
text: "Notes",
|
||||
href: "/notes",
|
||||
icon: FiEdit3,
|
||||
icon: PencilLineIcon,
|
||||
},
|
||||
{
|
||||
text: "Projects",
|
||||
href: "/projects",
|
||||
icon: FiCode,
|
||||
icon: CodeIcon,
|
||||
},
|
||||
{
|
||||
text: "Contact",
|
||||
href: "/contact",
|
||||
icon: FiMail,
|
||||
icon: MailIcon,
|
||||
},
|
||||
];
|
||||
|
@ -1,5 +1,4 @@
|
||||
import Link from "../../components/Link";
|
||||
import { SiGithub } from "react-icons/si";
|
||||
import featuredImage from "./covid19dashboards.png";
|
||||
|
||||
export const frontmatter = {
|
||||
@ -13,12 +12,23 @@ export const frontmatter = {
|
||||
|
||||
export const OctocatLink = ({ repo }) => {
|
||||
return (
|
||||
<Link
|
||||
href={`https://github.com/${repo}`}
|
||||
plain
|
||||
style={{ margin: "0 0.4em", color: "var(--colors-text) !important" }}
|
||||
>
|
||||
<SiGithub style={{ display: "inline", height: "1.2em", width: "1.2em", verticalAlign: "-0.2em" }} />
|
||||
<Link href={`https://github.com/${repo}`} plain style={{ margin: "0 0.4em" }}>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
strokeWidth="0"
|
||||
viewBox="0 0 24 24"
|
||||
height="1.2em"
|
||||
width="1.2em"
|
||||
style={{
|
||||
display: "inline",
|
||||
height: "1.2em",
|
||||
width: "1.2em",
|
||||
verticalAlign: "-0.2em",
|
||||
fill: "var(--colors-text)",
|
||||
}}
|
||||
>
|
||||
<path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"></path>
|
||||
</svg>
|
||||
</Link>
|
||||
);
|
||||
};
|
||||
|
12
package.json
12
package.json
@ -23,9 +23,9 @@
|
||||
"@giscus/react": "^3.1.0",
|
||||
"@mdx-js/loader": "^3.1.0",
|
||||
"@mdx-js/react": "^3.1.0",
|
||||
"@next/bundle-analyzer": "15.2.2-canary.7",
|
||||
"@next/mdx": "15.2.2-canary.7",
|
||||
"@next/third-parties": "15.2.2-canary.7",
|
||||
"@next/bundle-analyzer": "15.3.0-canary.0",
|
||||
"@next/mdx": "15.3.0-canary.0",
|
||||
"@next/third-parties": "15.3.0-canary.0",
|
||||
"@octokit/graphql": "^8.2.1",
|
||||
"@octokit/graphql-schema": "^15.26.0",
|
||||
"@prisma/client": "^6.5.0",
|
||||
@ -35,8 +35,9 @@
|
||||
"dayjs": "^1.11.13",
|
||||
"fast-glob": "^3.3.3",
|
||||
"feed": "^4.2.2",
|
||||
"lucide-react": "0.479.0",
|
||||
"modern-normalize": "^3.0.1",
|
||||
"next": "15.2.2-canary.7",
|
||||
"next": "15.3.0-canary.0",
|
||||
"obj-str": "^1.1.0",
|
||||
"p-map": "^7.0.3",
|
||||
"p-memoize": "^7.1.1",
|
||||
@ -45,7 +46,6 @@
|
||||
"react": "19.0.0",
|
||||
"react-dom": "19.0.0",
|
||||
"react-error-boundary": "^5.0.0",
|
||||
"react-icons": "5.5.0",
|
||||
"react-innertext": "^1.1.5",
|
||||
"react-is": "19.0.0",
|
||||
"react-textarea-autosize": "^8.5.7",
|
||||
@ -78,7 +78,7 @@
|
||||
"@types/react-is": "^19.0.0",
|
||||
"cross-env": "^7.0.3",
|
||||
"eslint": "^9.22.0",
|
||||
"eslint-config-next": "15.2.2-canary.7",
|
||||
"eslint-config-next": "15.3.0-canary.0",
|
||||
"eslint-config-prettier": "^10.1.1",
|
||||
"eslint-plugin-import": "^2.31.0",
|
||||
"eslint-plugin-jsx-a11y": "^6.10.2",
|
||||
|
156
pnpm-lock.yaml
generated
156
pnpm-lock.yaml
generated
@ -21,14 +21,14 @@ importers:
|
||||
specifier: ^3.1.0
|
||||
version: 3.1.0(@types/react@19.0.10)(react@19.0.0)
|
||||
'@next/bundle-analyzer':
|
||||
specifier: 15.2.2-canary.7
|
||||
version: 15.2.2-canary.7
|
||||
specifier: 15.3.0-canary.0
|
||||
version: 15.3.0-canary.0
|
||||
'@next/mdx':
|
||||
specifier: 15.2.2-canary.7
|
||||
version: 15.2.2-canary.7(@mdx-js/loader@3.1.0(acorn@8.14.1))(@mdx-js/react@3.1.0(@types/react@19.0.10)(react@19.0.0))
|
||||
specifier: 15.3.0-canary.0
|
||||
version: 15.3.0-canary.0(@mdx-js/loader@3.1.0(acorn@8.14.1))(@mdx-js/react@3.1.0(@types/react@19.0.10)(react@19.0.0))
|
||||
'@next/third-parties':
|
||||
specifier: 15.2.2-canary.7
|
||||
version: 15.2.2-canary.7(next@15.2.2-canary.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)
|
||||
specifier: 15.3.0-canary.0
|
||||
version: 15.3.0-canary.0(next@15.3.0-canary.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)
|
||||
'@octokit/graphql':
|
||||
specifier: ^8.2.1
|
||||
version: 8.2.1
|
||||
@ -56,12 +56,15 @@ importers:
|
||||
feed:
|
||||
specifier: ^4.2.2
|
||||
version: 4.2.2
|
||||
lucide-react:
|
||||
specifier: 0.479.0
|
||||
version: 0.479.0(react@19.0.0)
|
||||
modern-normalize:
|
||||
specifier: ^3.0.1
|
||||
version: 3.0.1
|
||||
next:
|
||||
specifier: 15.2.2-canary.7
|
||||
version: 15.2.2-canary.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
specifier: 15.3.0-canary.0
|
||||
version: 15.3.0-canary.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
obj-str:
|
||||
specifier: ^1.1.0
|
||||
version: 1.1.0
|
||||
@ -86,9 +89,6 @@ importers:
|
||||
react-error-boundary:
|
||||
specifier: ^5.0.0
|
||||
version: 5.0.0(react@19.0.0)
|
||||
react-icons:
|
||||
specifier: 5.5.0
|
||||
version: 5.5.0(react@19.0.0)
|
||||
react-innertext:
|
||||
specifier: ^1.1.5
|
||||
version: 1.1.5(@types/react@19.0.10)(react@19.0.0)
|
||||
@ -181,8 +181,8 @@ importers:
|
||||
specifier: ^9.22.0
|
||||
version: 9.22.0
|
||||
eslint-config-next:
|
||||
specifier: 15.2.2-canary.7
|
||||
version: 15.2.2-canary.7(eslint@9.22.0)(typescript@5.8.2)
|
||||
specifier: 15.3.0-canary.0
|
||||
version: 15.3.0-canary.0(eslint@9.22.0)(typescript@5.8.2)
|
||||
eslint-config-prettier:
|
||||
specifier: ^10.1.1
|
||||
version: 10.1.1(eslint@9.22.0)
|
||||
@ -602,17 +602,17 @@ packages:
|
||||
'@types/react': '>=16'
|
||||
react: '>=16'
|
||||
|
||||
'@next/bundle-analyzer@15.2.2-canary.7':
|
||||
resolution: {integrity: sha512-VC24nH2u5sIr0+dySVIqCzPkxx75O1VQXgnlAtxdj2BZuWUWgA3MY7nl/4aMERI3Iz670slt1eeO8J/uPJE9/w==}
|
||||
'@next/bundle-analyzer@15.3.0-canary.0':
|
||||
resolution: {integrity: sha512-7xMSGa0whsN8igWtsmliaMF9x1BQro0sysoTKz+9B6mLOE481+C//ZsLK9hAM4b0MCL3gYAFKgBzcGaWT2Q6Yg==}
|
||||
|
||||
'@next/env@15.2.2-canary.7':
|
||||
resolution: {integrity: sha512-j1y9ucHqzNNbEN6Jqd7AWimUYzk/oG00SbDb9IaGX/61J6aOKTF5cSZ8AAgkm2IqhvELaXfOhk/hHwG8N0I2uQ==}
|
||||
'@next/env@15.3.0-canary.0':
|
||||
resolution: {integrity: sha512-DsS8aqEHx5JeyPel3GaHtg5p9zytWsU17b6kTFPm19OmaAdh7AaNyDw4a/0170vdB90Gi/dXe87sInRRHRetfw==}
|
||||
|
||||
'@next/eslint-plugin-next@15.2.2-canary.7':
|
||||
resolution: {integrity: sha512-wuxlmTw3PiRwHOdlb+43vH9ggcS9HLLzC3nROkFp3AWjj/ZQg71T0zybB64Vu8OicYoLTwaZOJP/EFDYLpHTMA==}
|
||||
'@next/eslint-plugin-next@15.3.0-canary.0':
|
||||
resolution: {integrity: sha512-uYOOe6k0obZMUMX8dfWeRHy9zQd2zZCSHGpeMnt5gJ5W0YdbuRi/WvsT/kZDPfqYuyT0rTpViKymvRCGYPvzxw==}
|
||||
|
||||
'@next/mdx@15.2.2-canary.7':
|
||||
resolution: {integrity: sha512-CZzPi6YQvA86IE0EqkeIn9Qh95baOLZ/0yqXsMBhHOwx9nV1g9twOEFGP0ro0DM+7R++e32N7zCEaBG7PTi+zA==}
|
||||
'@next/mdx@15.3.0-canary.0':
|
||||
resolution: {integrity: sha512-6RSTK8tXja6etVRsRP+4qwk4cBZ4mn4i3ZSIEUw0fAKmo8QzxOW+ZWuAqOqBCf8WgxyOegYUcqjUzstR+aEdKQ==}
|
||||
peerDependencies:
|
||||
'@mdx-js/loader': '>=0.15.0'
|
||||
'@mdx-js/react': '>=0.15.0'
|
||||
@ -622,56 +622,56 @@ packages:
|
||||
'@mdx-js/react':
|
||||
optional: true
|
||||
|
||||
'@next/swc-darwin-arm64@15.2.2-canary.7':
|
||||
resolution: {integrity: sha512-C2++v9N6LowkahZj9IsuJ0JIzD/mVkGJ189iS1TM+zc39UyOJ1U6dgyW6MZ9ogDO+p4l9Tj8tO0S2ZU0DXmUwA==}
|
||||
'@next/swc-darwin-arm64@15.3.0-canary.0':
|
||||
resolution: {integrity: sha512-b7coo/zIlV5j6ouCyo7HaZr31JSaq37AWJMtzP2midjklGqA2ZnFEAOVAWHMz/niV/SdwFBLGA08fVTX0KCbaw==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
|
||||
'@next/swc-darwin-x64@15.2.2-canary.7':
|
||||
resolution: {integrity: sha512-dikxwyTTdbHnqt+ISiCBv9TZFDdpusXkvIM5Ldwxfeqe5wzBXRyJp8dDs6JSJ871txqInt3aZrUQy73MdL9kfA==}
|
||||
'@next/swc-darwin-x64@15.3.0-canary.0':
|
||||
resolution: {integrity: sha512-CBKyXc/fUA0ehOf707hwBIRMFMG94Udv7HK7ddBUED4P6xFtk8uohxZ9865Ms/K4c/qX+WS0V3QzPTfjbdI24w==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
|
||||
'@next/swc-linux-arm64-gnu@15.2.2-canary.7':
|
||||
resolution: {integrity: sha512-t26JgARXfqbsVFJriQyb2ID4mJMsr8JZRmNZgj5YJK3Ybhnp/xFGWE7QxIZcYdvkrNzzRZr28xZYg2dwEnE5OQ==}
|
||||
'@next/swc-linux-arm64-gnu@15.3.0-canary.0':
|
||||
resolution: {integrity: sha512-FeKG+2YVcxAwAGXCvbYTy2skJ5k5J6EzRhfAqQ6pMuDQkfRZLDuMRKfv37c3BsA4H/MJy47cPXCnS5dE9WjJVQ==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
|
||||
'@next/swc-linux-arm64-musl@15.2.2-canary.7':
|
||||
resolution: {integrity: sha512-o8o/ck07RxkYya5K6FzMB6LGtLkN7E6rEFXOhSQsMrwvz0cSjeALWVwYsVEtZmEEywwor1RPLxQM+ndTUo0KUA==}
|
||||
'@next/swc-linux-arm64-musl@15.3.0-canary.0':
|
||||
resolution: {integrity: sha512-E8OZM3hYQ3ftxRTqNCVHmWC5CnC9tCrKzWBvBDUXD2SV9VMat3sv7ido22W1+9DFhYxC9qHuPNZCt1B0M/kvMQ==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
|
||||
'@next/swc-linux-x64-gnu@15.2.2-canary.7':
|
||||
resolution: {integrity: sha512-JVNNQzrz9wZ0MJNUQwN/KtLCjnm3zAn+j5pe3GjDTHoLcBmO/5YFp0TP/BF2sGSUTic6tgsvU/5lxHuB0Zo49A==}
|
||||
'@next/swc-linux-x64-gnu@15.3.0-canary.0':
|
||||
resolution: {integrity: sha512-T6Zt3mdDqUpDxQCFmw+JfYLvmxsFWQaX9ECR2nXHoztRa75GGAnr0DBr8T1OJXH5YVLSz3bDsAuwzuwdSSgW4w==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
|
||||
'@next/swc-linux-x64-musl@15.2.2-canary.7':
|
||||
resolution: {integrity: sha512-+8EVLgVk6zNYeTngx+qgXNr8gPlyrKh8gxrvUp5Zu2RdYoPxCLlockgMCQmvOTVfzM6h3GXXPcwMBnJIzFd18Q==}
|
||||
'@next/swc-linux-x64-musl@15.3.0-canary.0':
|
||||
resolution: {integrity: sha512-4SvZWk0BBFuByZHRh+00tr6e93AnIgCRka7aVNOxvohmUqJpKDW4TPCz+SzRvS2qKcvoEgmQ6tS1eYUk6V4czQ==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
|
||||
'@next/swc-win32-arm64-msvc@15.2.2-canary.7':
|
||||
resolution: {integrity: sha512-rnoDG7VPT5vr9HJOfUuDYp2xQKNeMDLYbLuS/xySrKnyhEYYJRm0leNRNOtOxMyg4nSQf5Yr2e1MFuAU8/hByw==}
|
||||
'@next/swc-win32-arm64-msvc@15.3.0-canary.0':
|
||||
resolution: {integrity: sha512-s/SYd2gbUUfB/pRLUs8s9LP2jkuo+rUYsoOrvTte3gjzpIfc7XMz9KVZtWw6gWIKtKsy+ip0pAGx/qFsEQOeXA==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [win32]
|
||||
|
||||
'@next/swc-win32-x64-msvc@15.2.2-canary.7':
|
||||
resolution: {integrity: sha512-5eKM1usgTg5H3Mpr275Tdvmr+obdxJbis5MTIxTFNWVw4KbxM4NW3GVbG43Z71DkizLm92AVtqO6O3YoB6bSvA==}
|
||||
'@next/swc-win32-x64-msvc@15.3.0-canary.0':
|
||||
resolution: {integrity: sha512-Kz4lnTvVpY4dr3mHs9MvuJbLXM0JWzBwNJntt4dBmRRUmYqTTpvdx6nXwLBw6S6uOUq3fhKljxCGHV4qiowK6g==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
|
||||
'@next/third-parties@15.2.2-canary.7':
|
||||
resolution: {integrity: sha512-d7gsLyprMrFy5FOCHn2t4W2alVs6gIVKcdnSpQrRmMOK6kkc2Qm+AzFpzzALjgdTjGYq38gYjoup5Kbf0iRiZQ==}
|
||||
'@next/third-parties@15.3.0-canary.0':
|
||||
resolution: {integrity: sha512-gcjV+VS/JT/jGmP0lbaPImMvHndN8xUwhYpHmZrE/KGUK78ozHjx0ARtGMZDYpOXYnHu/xsUMUphXmBasc1M0Q==}
|
||||
peerDependencies:
|
||||
next: ^13.0.0 || ^14.0.0 || ^15.0.0
|
||||
react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0
|
||||
@ -1373,8 +1373,8 @@ packages:
|
||||
resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
eslint-config-next@15.2.2-canary.7:
|
||||
resolution: {integrity: sha512-/wGWOrfR/S66JnRDGqUVes/tl/s91zA4e/L2g1I3xJNErnU5S1QcV5Io+FJbNYxFsynHtGp0EXqwra3CUbSPHw==}
|
||||
eslint-config-next@15.3.0-canary.0:
|
||||
resolution: {integrity: sha512-yY81GoFDjajTnLq92PjBA0DuJWU8hmU88xlCE+OSCs+RuTp9Ta16+IZVVTZgWTz1zI/wVNtA8wMvc7qXs51aHA==}
|
||||
peerDependencies:
|
||||
eslint: ^7.23.0 || ^8.0.0 || ^9.0.0
|
||||
typescript: '>=3.3.1'
|
||||
@ -2116,6 +2116,11 @@ packages:
|
||||
lru-cache@10.4.3:
|
||||
resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
|
||||
|
||||
lucide-react@0.479.0:
|
||||
resolution: {integrity: sha512-aBhNnveRhorBOK7uA4gDjgaf+YlHMdMhQ/3cupk6exM10hWlEU+2QtWYOfhXhjAsmdb6LeKR+NZnow4UxRRiTQ==}
|
||||
peerDependencies:
|
||||
react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||
|
||||
markdown-extensions@2.0.0:
|
||||
resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==}
|
||||
engines: {node: '>=16'}
|
||||
@ -2340,8 +2345,8 @@ packages:
|
||||
natural-compare@1.4.0:
|
||||
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
|
||||
|
||||
next@15.2.2-canary.7:
|
||||
resolution: {integrity: sha512-oQt/T9SPT4nhVWwNH3YkPo11GjfmOxImdlAtttkENzOiHDC782ec6HFR/4IZDGJrlHS54zf9mmKG2I6f099kgg==}
|
||||
next@15.3.0-canary.0:
|
||||
resolution: {integrity: sha512-5PT9X65OBHwY22hu3O04ylZ4zznRhKdMOR1A4Hagw3eHrXO4UYtkcnhMErWq4BbrgYKYg+5XJ+kgNcHN7H8big==}
|
||||
engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
@ -2612,11 +2617,6 @@ packages:
|
||||
peerDependencies:
|
||||
react: '>=16.13.1'
|
||||
|
||||
react-icons@5.5.0:
|
||||
resolution: {integrity: sha512-MEFcXdkP3dLo8uumGI5xN3lDFNsRtrjbOEKDLD7yv76v4wpnEq2Lt2qeHaQOr34I/wPN3s3+N08WkQ+CW37Xiw==}
|
||||
peerDependencies:
|
||||
react: '*'
|
||||
|
||||
react-innertext@1.1.5:
|
||||
resolution: {integrity: sha512-PWAqdqhxhHIv80dT9znP2KvS+hfkbRovFp4zFYHFFlOoQLRiawIic81gKb3U1wEyJZgMwgs3JoLtwryASRWP3Q==}
|
||||
peerDependencies:
|
||||
@ -3592,53 +3592,53 @@ snapshots:
|
||||
'@types/react': 19.0.10
|
||||
react: 19.0.0
|
||||
|
||||
'@next/bundle-analyzer@15.2.2-canary.7':
|
||||
'@next/bundle-analyzer@15.3.0-canary.0':
|
||||
dependencies:
|
||||
webpack-bundle-analyzer: 4.10.1
|
||||
transitivePeerDependencies:
|
||||
- bufferutil
|
||||
- utf-8-validate
|
||||
|
||||
'@next/env@15.2.2-canary.7': {}
|
||||
'@next/env@15.3.0-canary.0': {}
|
||||
|
||||
'@next/eslint-plugin-next@15.2.2-canary.7':
|
||||
'@next/eslint-plugin-next@15.3.0-canary.0':
|
||||
dependencies:
|
||||
fast-glob: 3.3.1
|
||||
|
||||
'@next/mdx@15.2.2-canary.7(@mdx-js/loader@3.1.0(acorn@8.14.1))(@mdx-js/react@3.1.0(@types/react@19.0.10)(react@19.0.0))':
|
||||
'@next/mdx@15.3.0-canary.0(@mdx-js/loader@3.1.0(acorn@8.14.1))(@mdx-js/react@3.1.0(@types/react@19.0.10)(react@19.0.0))':
|
||||
dependencies:
|
||||
source-map: 0.7.4
|
||||
optionalDependencies:
|
||||
'@mdx-js/loader': 3.1.0(acorn@8.14.1)
|
||||
'@mdx-js/react': 3.1.0(@types/react@19.0.10)(react@19.0.0)
|
||||
|
||||
'@next/swc-darwin-arm64@15.2.2-canary.7':
|
||||
'@next/swc-darwin-arm64@15.3.0-canary.0':
|
||||
optional: true
|
||||
|
||||
'@next/swc-darwin-x64@15.2.2-canary.7':
|
||||
'@next/swc-darwin-x64@15.3.0-canary.0':
|
||||
optional: true
|
||||
|
||||
'@next/swc-linux-arm64-gnu@15.2.2-canary.7':
|
||||
'@next/swc-linux-arm64-gnu@15.3.0-canary.0':
|
||||
optional: true
|
||||
|
||||
'@next/swc-linux-arm64-musl@15.2.2-canary.7':
|
||||
'@next/swc-linux-arm64-musl@15.3.0-canary.0':
|
||||
optional: true
|
||||
|
||||
'@next/swc-linux-x64-gnu@15.2.2-canary.7':
|
||||
'@next/swc-linux-x64-gnu@15.3.0-canary.0':
|
||||
optional: true
|
||||
|
||||
'@next/swc-linux-x64-musl@15.2.2-canary.7':
|
||||
'@next/swc-linux-x64-musl@15.3.0-canary.0':
|
||||
optional: true
|
||||
|
||||
'@next/swc-win32-arm64-msvc@15.2.2-canary.7':
|
||||
'@next/swc-win32-arm64-msvc@15.3.0-canary.0':
|
||||
optional: true
|
||||
|
||||
'@next/swc-win32-x64-msvc@15.2.2-canary.7':
|
||||
'@next/swc-win32-x64-msvc@15.3.0-canary.0':
|
||||
optional: true
|
||||
|
||||
'@next/third-parties@15.2.2-canary.7(next@15.2.2-canary.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)':
|
||||
'@next/third-parties@15.3.0-canary.0(next@15.3.0-canary.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)':
|
||||
dependencies:
|
||||
next: 15.2.2-canary.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
next: 15.3.0-canary.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
react: 19.0.0
|
||||
third-party-capital: 1.0.20
|
||||
|
||||
@ -4489,9 +4489,9 @@ snapshots:
|
||||
|
||||
escape-string-regexp@5.0.0: {}
|
||||
|
||||
eslint-config-next@15.2.2-canary.7(eslint@9.22.0)(typescript@5.8.2):
|
||||
eslint-config-next@15.3.0-canary.0(eslint@9.22.0)(typescript@5.8.2):
|
||||
dependencies:
|
||||
'@next/eslint-plugin-next': 15.2.2-canary.7
|
||||
'@next/eslint-plugin-next': 15.3.0-canary.0
|
||||
'@rushstack/eslint-patch': 1.10.5
|
||||
'@typescript-eslint/eslint-plugin': 8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.22.0)(typescript@5.8.2))(eslint@9.22.0)(typescript@5.8.2)
|
||||
'@typescript-eslint/parser': 8.26.0(eslint@9.22.0)(typescript@5.8.2)
|
||||
@ -5459,6 +5459,10 @@ snapshots:
|
||||
|
||||
lru-cache@10.4.3: {}
|
||||
|
||||
lucide-react@0.479.0(react@19.0.0):
|
||||
dependencies:
|
||||
react: 19.0.0
|
||||
|
||||
markdown-extensions@2.0.0: {}
|
||||
|
||||
markdown-table@3.0.4: {}
|
||||
@ -5935,9 +5939,9 @@ snapshots:
|
||||
|
||||
natural-compare@1.4.0: {}
|
||||
|
||||
next@15.2.2-canary.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0):
|
||||
next@15.3.0-canary.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0):
|
||||
dependencies:
|
||||
'@next/env': 15.2.2-canary.7
|
||||
'@next/env': 15.3.0-canary.0
|
||||
'@swc/counter': 0.1.3
|
||||
'@swc/helpers': 0.5.15
|
||||
busboy: 1.6.0
|
||||
@ -5947,14 +5951,14 @@ snapshots:
|
||||
react-dom: 19.0.0(react@19.0.0)
|
||||
styled-jsx: 5.1.6(react@19.0.0)
|
||||
optionalDependencies:
|
||||
'@next/swc-darwin-arm64': 15.2.2-canary.7
|
||||
'@next/swc-darwin-x64': 15.2.2-canary.7
|
||||
'@next/swc-linux-arm64-gnu': 15.2.2-canary.7
|
||||
'@next/swc-linux-arm64-musl': 15.2.2-canary.7
|
||||
'@next/swc-linux-x64-gnu': 15.2.2-canary.7
|
||||
'@next/swc-linux-x64-musl': 15.2.2-canary.7
|
||||
'@next/swc-win32-arm64-msvc': 15.2.2-canary.7
|
||||
'@next/swc-win32-x64-msvc': 15.2.2-canary.7
|
||||
'@next/swc-darwin-arm64': 15.3.0-canary.0
|
||||
'@next/swc-darwin-x64': 15.3.0-canary.0
|
||||
'@next/swc-linux-arm64-gnu': 15.3.0-canary.0
|
||||
'@next/swc-linux-arm64-musl': 15.3.0-canary.0
|
||||
'@next/swc-linux-x64-gnu': 15.3.0-canary.0
|
||||
'@next/swc-linux-x64-musl': 15.3.0-canary.0
|
||||
'@next/swc-win32-arm64-msvc': 15.3.0-canary.0
|
||||
'@next/swc-win32-x64-msvc': 15.3.0-canary.0
|
||||
sharp: 0.33.5
|
||||
transitivePeerDependencies:
|
||||
- '@babel/core'
|
||||
@ -6215,10 +6219,6 @@ snapshots:
|
||||
'@babel/runtime': 7.26.9
|
||||
react: 19.0.0
|
||||
|
||||
react-icons@5.5.0(react@19.0.0):
|
||||
dependencies:
|
||||
react: 19.0.0
|
||||
|
||||
react-innertext@1.1.5(@types/react@19.0.10)(react@19.0.0):
|
||||
dependencies:
|
||||
'@types/react': 19.0.10
|
||||
|
Loading…
x
Reference in New Issue
Block a user