1
mirror of https://github.com/jakejarvis/jarv.is.git synced 2025-04-26 09:05:22 -04:00

allow react to properly merge/dedupe homepage inline styles

https://react.dev/reference/react-dom/components/style#rendering-an-inline-css-stylesheet
This commit is contained in:
Jake Jarvis 2025-03-08 10:34:57 -05:00
parent 9229f92c0c
commit a21206eaa5
Signed by: jake
SSH Key Fingerprint: SHA256:nCkvAjYA6XaSPUqc4TfbBQTpzr8Xj7ritg/sGInCdkc
3 changed files with 121 additions and 204 deletions

View File

@ -1,3 +1,4 @@
import { useId } from "react";
import { GoLock } from "react-icons/go";
import { rgba } from "polished";
import Link from "../components/Link";
@ -15,15 +16,22 @@ const ColorfulLink = ({
lightColor: string;
darkColor: string;
}) => {
const uniqueId = `Link_themed__${lightColor.replace("#", "")}_${darkColor.replace("#", "")}`;
const uniqueId = `styled_${useId().replaceAll(":", "")}`;
return (
<>
<Link className={uniqueId} {...rest}>
<Link id={uniqueId} {...rest}>
{children}
</Link>
<style>{`.${uniqueId}{--colors-link:${lightColor};--colors-linkUnderline:${rgba(lightColor, 0.4)}}[data-theme="dark"] .${uniqueId}{--colors-link:${darkColor};--colors-linkUnderline:${rgba(darkColor, 0.4)}}`}</style>
<style
// workaround to have react combine all of the inline styles into a single <style> tag in the <head>, see:
// https://react.dev/reference/react-dom/components/style#rendering-an-inline-css-stylesheet
href={uniqueId}
precedence={styles.page}
>
{`.${styles.page} #${uniqueId}{--colors-link:${lightColor};--colors-linkUnderline:${rgba(lightColor, 0.4)}}[data-theme="dark"] .${styles.page} #${uniqueId}{--colors-link:${darkColor};--colors-linkUnderline:${rgba(darkColor, 0.4)}}`}
</style>
</>
);
};

View File

@ -69,22 +69,22 @@
},
"devDependencies": {
"@eslint/eslintrc": "^3.3.0",
"@eslint/js": "^9.21.0",
"@eslint/js": "^9.22.0",
"@jakejarvis/eslint-config": "^4.0.7",
"@types/comma-number": "^2.1.2",
"@types/mdx": "^2.0.13",
"@types/node": "^22.13.9",
"@types/node": "^22.13.10",
"@types/prop-types": "^15.7.14",
"@types/react": "^19.0.10",
"@types/react-dom": "^19.0.4",
"@types/react-is": "^19.0.0",
"cross-env": "^7.0.3",
"eslint": "^9.21.0",
"eslint": "^9.22.0",
"eslint-config-next": "15.2.2-canary.3",
"eslint-config-prettier": "^10.1.1",
"eslint-plugin-import": "^2.31.0",
"eslint-plugin-jsx-a11y": "^6.10.2",
"eslint-plugin-mdx": "^3.1.5",
"eslint-plugin-mdx": "^3.2.0",
"eslint-plugin-prettier": "^5.2.3",
"eslint-plugin-react": "^7.37.4",
"eslint-plugin-react-hooks": "^5.2.0",
@ -125,6 +125,12 @@
"prisma",
"sharp",
"simple-git-hooks"
]
],
"peerDependencyRules": {
"allowedVersions": {
"react": "^19",
"react-dom": "^19"
}
}
}
}

295
pnpm-lock.yaml generated
View File

@ -154,11 +154,11 @@ importers:
specifier: ^3.3.0
version: 3.3.0
'@eslint/js':
specifier: ^9.21.0
version: 9.21.0
specifier: ^9.22.0
version: 9.22.0
'@jakejarvis/eslint-config':
specifier: ^4.0.7
version: 4.0.7(eslint@9.21.0)
version: 4.0.7(eslint@9.22.0)
'@types/comma-number':
specifier: ^2.1.2
version: 2.1.2
@ -166,8 +166,8 @@ importers:
specifier: ^2.0.13
version: 2.0.13
'@types/node':
specifier: ^22.13.9
version: 22.13.9
specifier: ^22.13.10
version: 22.13.10
'@types/prop-types':
specifier: ^15.7.14
version: 15.7.14
@ -184,32 +184,32 @@ importers:
specifier: ^7.0.3
version: 7.0.3
eslint:
specifier: ^9.21.0
version: 9.21.0
specifier: ^9.22.0
version: 9.22.0
eslint-config-next:
specifier: 15.2.2-canary.3
version: 15.2.2-canary.3(eslint@9.21.0)(typescript@5.8.2)
version: 15.2.2-canary.3(eslint@9.22.0)(typescript@5.8.2)
eslint-config-prettier:
specifier: ^10.1.1
version: 10.1.1(eslint@9.21.0)
version: 10.1.1(eslint@9.22.0)
eslint-plugin-import:
specifier: ^2.31.0
version: 2.31.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0)(typescript@5.8.2))(eslint-import-resolver-typescript@3.8.3)(eslint@9.21.0)
version: 2.31.0(@typescript-eslint/parser@8.26.0(eslint@9.22.0)(typescript@5.8.2))(eslint-import-resolver-typescript@3.8.3)(eslint@9.22.0)
eslint-plugin-jsx-a11y:
specifier: ^6.10.2
version: 6.10.2(eslint@9.21.0)
version: 6.10.2(eslint@9.22.0)
eslint-plugin-mdx:
specifier: ^3.1.5
version: 3.1.5(eslint@9.21.0)
specifier: ^3.2.0
version: 3.2.0(eslint@9.22.0)
eslint-plugin-prettier:
specifier: ^5.2.3
version: 5.2.3(eslint-config-prettier@10.1.1(eslint@9.21.0))(eslint@9.21.0)(prettier@3.5.3)
version: 5.2.3(eslint-config-prettier@10.1.1(eslint@9.22.0))(eslint@9.22.0)(prettier@3.5.3)
eslint-plugin-react:
specifier: ^7.37.4
version: 7.37.4(eslint@9.21.0)
version: 7.37.4(eslint@9.22.0)
eslint-plugin-react-hooks:
specifier: ^5.2.0
version: 5.2.0(eslint@9.21.0)
version: 5.2.0(eslint@9.22.0)
lint-staged:
specifier: ^15.4.3
version: 15.4.3
@ -418,6 +418,10 @@ packages:
resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/config-helpers@0.1.0':
resolution: {integrity: sha512-kLrdPDJE1ckPo94kmPPf9Hfd0DU0Jw6oKYrhe+pwSC0iTUInmTa+w6fw8sGgcfkFJGNdWOUeOaDM4quW4a7OkA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/core@0.12.0':
resolution: {integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@ -426,8 +430,8 @@ packages:
resolution: {integrity: sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/js@9.21.0':
resolution: {integrity: sha512-BqStZ3HX8Yz6LvsF5ByXYrtigrV5AXADWLAGc7PH/1SxOb7/FIYYMszZZWiUou/GB9P2lXWk2SV4d+Z8h0nknw==}
'@eslint/js@9.22.0':
resolution: {integrity: sha512-vLFajx9o8d1/oL2ZkpMYbkLv8nDB6yaIwFNt7nI4+I80U/z03SxmfOMsLbvWr3p7C+Wnoh//aOu2pQW8cS0HCQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/object-schema@2.1.6':
@ -863,9 +867,6 @@ packages:
'@types/json5@0.0.29':
resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
'@types/mdast@3.0.15':
resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==}
'@types/mdast@4.0.4':
resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==}
@ -878,8 +879,8 @@ packages:
'@types/nlcst@2.0.3':
resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==}
'@types/node@22.13.9':
resolution: {integrity: sha512-acBjXdRJ3A6Pb3tqnw9HZmyR3Fiol3aGxRCK1x3d+6CDAMjl7I649wpSd+yNURCjbOUGu9tqtLKnTGxmK6CyGw==}
'@types/node@22.13.10':
resolution: {integrity: sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==}
'@types/prismjs@1.26.5':
resolution: {integrity: sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==}
@ -1151,21 +1152,12 @@ packages:
character-entities-html4@2.1.0:
resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==}
character-entities-legacy@1.1.4:
resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==}
character-entities-legacy@3.0.0:
resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==}
character-entities@1.2.4:
resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==}
character-entities@2.0.2:
resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
character-reference-invalid@1.1.4:
resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==}
character-reference-invalid@2.0.1:
resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==}
@ -1468,8 +1460,8 @@ packages:
eslint-plugin-import-x:
optional: true
eslint-mdx@3.1.5:
resolution: {integrity: sha512-ynztX0k7CQ3iDL7fDEIeg3g0O/d6QPv7IBI9fdYLhXp5fAp0fi8X22xF/D3+Pk0f90R27uwqa1clHpay6t0l8Q==}
eslint-mdx@3.2.0:
resolution: {integrity: sha512-7A6/TDZeUh8ORwM2pe+n1FyUjwEYfGF1OZI+sn45L11NMHSzj/RTK+VqAGjIi+kvDrGc3yScUa20L3DKW0IRjg==}
engines: {node: '>=18.0.0'}
peerDependencies:
eslint: '>=8.0.0'
@ -1511,14 +1503,8 @@ packages:
peerDependencies:
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9
eslint-plugin-markdown@3.0.1:
resolution: {integrity: sha512-8rqoc148DWdGdmYF6WSQFT3uQ6PO7zXYgeBpHAOAakX/zpq+NvFYbDA/H7PYzHajwtmaOzAwfxyl++x0g1/N9A==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
eslint-plugin-mdx@3.1.5:
resolution: {integrity: sha512-lUE7tP7IrIRHU3gTtASDe5u4YM2SvQveYVJfuo82yn3MLh/B/v05FNySURCK4aIxIYF1QYo3IRemQG/lyQzpAg==}
eslint-plugin-mdx@3.2.0:
resolution: {integrity: sha512-zMD6DoFf5tj86dF1M0g90IxeBzrckyhYwksvalO1vfOBPPzhpR2wAbILBHZnubNuQALVgiqYQbPQ922GpviuGA==}
engines: {node: '>=18.0.0'}
peerDependencies:
eslint: '>=8.0.0'
@ -1549,8 +1535,8 @@ packages:
peerDependencies:
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
eslint-scope@8.2.0:
resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==}
eslint-scope@8.3.0:
resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
eslint-visitor-keys@3.4.3:
@ -1561,8 +1547,8 @@ packages:
resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
eslint@9.21.0:
resolution: {integrity: sha512-KjeihdFqTPhOMXTt7StsDxriV4n66ueuF/jfPNC3j/lduHwr/ijDwJMsF+wyMJethgiKi5wniIE243vi07d3pg==}
eslint@9.22.0:
resolution: {integrity: sha512-9V/QURhsRN40xuHXWjV64yvrzMjcz7ZyNoF2jJFmy9j/SLk0u1OLSZgXi28MrXjymnjEGSR80WCdab3RGMDveQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
hasBin: true
peerDependencies:
@ -1930,15 +1916,9 @@ packages:
resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==}
engines: {node: '>= 0.4'}
is-alphabetical@1.0.4:
resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==}
is-alphabetical@2.0.1:
resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==}
is-alphanumerical@1.0.4:
resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==}
is-alphanumerical@2.0.1:
resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==}
@ -1983,9 +1963,6 @@ packages:
resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==}
engines: {node: '>= 0.4'}
is-decimal@1.0.4:
resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==}
is-decimal@2.0.1:
resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==}
@ -2024,9 +2001,6 @@ packages:
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
engines: {node: '>=0.10.0'}
is-hexadecimal@1.0.4:
resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==}
is-hexadecimal@2.0.1:
resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==}
@ -2237,9 +2211,6 @@ packages:
mdast-util-find-and-replace@3.0.2:
resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==}
mdast-util-from-markdown@0.8.5:
resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==}
mdast-util-from-markdown@2.0.2:
resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==}
@ -2282,9 +2253,6 @@ packages:
mdast-util-to-markdown@2.1.2:
resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==}
mdast-util-to-string@2.0.0:
resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==}
mdast-util-to-string@4.0.0:
resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==}
@ -2397,9 +2365,6 @@ packages:
micromark-util-types@2.0.2:
resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==}
micromark@2.11.4:
resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==}
micromark@4.0.2:
resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==}
@ -2588,9 +2553,6 @@ packages:
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
engines: {node: '>=6'}
parse-entities@2.0.0:
resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==}
parse-entities@4.0.2:
resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==}
@ -3256,9 +3218,6 @@ packages:
unist-util-position@5.0.0:
resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
unist-util-stringify-position@2.0.3:
resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==}
unist-util-stringify-position@4.0.0:
resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
@ -3522,9 +3481,9 @@ snapshots:
'@esbuild/win32-x64@0.25.0':
optional: true
'@eslint-community/eslint-utils@4.4.1(eslint@9.21.0)':
'@eslint-community/eslint-utils@4.4.1(eslint@9.22.0)':
dependencies:
eslint: 9.21.0
eslint: 9.22.0
eslint-visitor-keys: 3.4.3
'@eslint-community/regexpp@4.12.1': {}
@ -3537,6 +3496,8 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@eslint/config-helpers@0.1.0': {}
'@eslint/core@0.12.0':
dependencies:
'@types/json-schema': 7.0.15
@ -3555,7 +3516,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@eslint/js@9.21.0': {}
'@eslint/js@9.22.0': {}
'@eslint/object-schema@2.1.6': {}
@ -3667,9 +3628,9 @@ snapshots:
wrap-ansi: 8.1.0
wrap-ansi-cjs: wrap-ansi@7.0.0
'@jakejarvis/eslint-config@4.0.7(eslint@9.21.0)':
'@jakejarvis/eslint-config@4.0.7(eslint@9.22.0)':
dependencies:
eslint: 9.21.0
eslint: 9.22.0
'@lit-labs/ssr-dom-shim@1.3.0': {}
@ -3969,7 +3930,7 @@ snapshots:
'@types/concat-stream@2.0.3':
dependencies:
'@types/node': 22.13.9
'@types/node': 22.13.10
'@types/debug@4.1.12':
dependencies:
@ -3995,10 +3956,6 @@ snapshots:
'@types/json5@0.0.29': {}
'@types/mdast@3.0.15':
dependencies:
'@types/unist': 2.0.11
'@types/mdast@4.0.4':
dependencies:
'@types/unist': 3.0.3
@ -4011,7 +3968,7 @@ snapshots:
dependencies:
'@types/unist': 3.0.3
'@types/node@22.13.9':
'@types/node@22.13.10':
dependencies:
undici-types: 6.20.0
@ -4039,15 +3996,15 @@ snapshots:
'@types/unist@3.0.3': {}
'@typescript-eslint/eslint-plugin@8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0)(typescript@5.8.2))(eslint@9.21.0)(typescript@5.8.2)':
'@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)':
dependencies:
'@eslint-community/regexpp': 4.12.1
'@typescript-eslint/parser': 8.26.0(eslint@9.21.0)(typescript@5.8.2)
'@typescript-eslint/parser': 8.26.0(eslint@9.22.0)(typescript@5.8.2)
'@typescript-eslint/scope-manager': 8.26.0
'@typescript-eslint/type-utils': 8.26.0(eslint@9.21.0)(typescript@5.8.2)
'@typescript-eslint/utils': 8.26.0(eslint@9.21.0)(typescript@5.8.2)
'@typescript-eslint/type-utils': 8.26.0(eslint@9.22.0)(typescript@5.8.2)
'@typescript-eslint/utils': 8.26.0(eslint@9.22.0)(typescript@5.8.2)
'@typescript-eslint/visitor-keys': 8.26.0
eslint: 9.21.0
eslint: 9.22.0
graphemer: 1.4.0
ignore: 5.3.2
natural-compare: 1.4.0
@ -4056,14 +4013,14 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@typescript-eslint/parser@8.26.0(eslint@9.21.0)(typescript@5.8.2)':
'@typescript-eslint/parser@8.26.0(eslint@9.22.0)(typescript@5.8.2)':
dependencies:
'@typescript-eslint/scope-manager': 8.26.0
'@typescript-eslint/types': 8.26.0
'@typescript-eslint/typescript-estree': 8.26.0(typescript@5.8.2)
'@typescript-eslint/visitor-keys': 8.26.0
debug: 4.4.0
eslint: 9.21.0
eslint: 9.22.0
typescript: 5.8.2
transitivePeerDependencies:
- supports-color
@ -4073,12 +4030,12 @@ snapshots:
'@typescript-eslint/types': 8.26.0
'@typescript-eslint/visitor-keys': 8.26.0
'@typescript-eslint/type-utils@8.26.0(eslint@9.21.0)(typescript@5.8.2)':
'@typescript-eslint/type-utils@8.26.0(eslint@9.22.0)(typescript@5.8.2)':
dependencies:
'@typescript-eslint/typescript-estree': 8.26.0(typescript@5.8.2)
'@typescript-eslint/utils': 8.26.0(eslint@9.21.0)(typescript@5.8.2)
'@typescript-eslint/utils': 8.26.0(eslint@9.22.0)(typescript@5.8.2)
debug: 4.4.0
eslint: 9.21.0
eslint: 9.22.0
ts-api-utils: 2.0.1(typescript@5.8.2)
typescript: 5.8.2
transitivePeerDependencies:
@ -4100,13 +4057,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@typescript-eslint/utils@8.26.0(eslint@9.21.0)(typescript@5.8.2)':
'@typescript-eslint/utils@8.26.0(eslint@9.22.0)(typescript@5.8.2)':
dependencies:
'@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0)
'@eslint-community/eslint-utils': 4.4.1(eslint@9.22.0)
'@typescript-eslint/scope-manager': 8.26.0
'@typescript-eslint/types': 8.26.0
'@typescript-eslint/typescript-estree': 8.26.0(typescript@5.8.2)
eslint: 9.21.0
eslint: 9.22.0
typescript: 5.8.2
transitivePeerDependencies:
- supports-color
@ -4299,16 +4256,10 @@ snapshots:
character-entities-html4@2.1.0: {}
character-entities-legacy@1.1.4: {}
character-entities-legacy@3.0.0: {}
character-entities@1.2.4: {}
character-entities@2.0.2: {}
character-reference-invalid@1.1.4: {}
character-reference-invalid@2.0.1: {}
ci-info@4.1.0: {}
@ -4662,19 +4613,19 @@ snapshots:
escape-string-regexp@5.0.0: {}
eslint-config-next@15.2.2-canary.3(eslint@9.21.0)(typescript@5.8.2):
eslint-config-next@15.2.2-canary.3(eslint@9.22.0)(typescript@5.8.2):
dependencies:
'@next/eslint-plugin-next': 15.2.2-canary.3
'@rushstack/eslint-patch': 1.10.5
'@typescript-eslint/eslint-plugin': 8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0)(typescript@5.8.2))(eslint@9.21.0)(typescript@5.8.2)
'@typescript-eslint/parser': 8.26.0(eslint@9.21.0)(typescript@5.8.2)
eslint: 9.21.0
'@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)
eslint: 9.22.0
eslint-import-resolver-node: 0.3.9
eslint-import-resolver-typescript: 3.8.3(eslint-plugin-import@2.31.0)(eslint@9.21.0)
eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0)(typescript@5.8.2))(eslint-import-resolver-typescript@3.8.3)(eslint@9.21.0)
eslint-plugin-jsx-a11y: 6.10.2(eslint@9.21.0)
eslint-plugin-react: 7.37.4(eslint@9.21.0)
eslint-plugin-react-hooks: 5.2.0(eslint@9.21.0)
eslint-import-resolver-typescript: 3.8.3(eslint-plugin-import@2.31.0)(eslint@9.22.0)
eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.26.0(eslint@9.22.0)(typescript@5.8.2))(eslint-import-resolver-typescript@3.8.3)(eslint@9.22.0)
eslint-plugin-jsx-a11y: 6.10.2(eslint@9.22.0)
eslint-plugin-react: 7.37.4(eslint@9.22.0)
eslint-plugin-react-hooks: 5.2.0(eslint@9.22.0)
optionalDependencies:
typescript: 5.8.2
transitivePeerDependencies:
@ -4682,9 +4633,9 @@ snapshots:
- eslint-plugin-import-x
- supports-color
eslint-config-prettier@10.1.1(eslint@9.21.0):
eslint-config-prettier@10.1.1(eslint@9.22.0):
dependencies:
eslint: 9.21.0
eslint: 9.22.0
eslint-import-resolver-node@0.3.9:
dependencies:
@ -4694,26 +4645,26 @@ snapshots:
transitivePeerDependencies:
- supports-color
eslint-import-resolver-typescript@3.8.3(eslint-plugin-import@2.31.0)(eslint@9.21.0):
eslint-import-resolver-typescript@3.8.3(eslint-plugin-import@2.31.0)(eslint@9.22.0):
dependencies:
'@nolyfill/is-core-module': 1.0.39
debug: 4.4.0
enhanced-resolve: 5.18.1
eslint: 9.21.0
eslint: 9.22.0
get-tsconfig: 4.10.0
is-bun-module: 1.3.0
stable-hash: 0.0.4
tinyglobby: 0.2.12
optionalDependencies:
eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0)(typescript@5.8.2))(eslint-import-resolver-typescript@3.8.3)(eslint@9.21.0)
eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.26.0(eslint@9.22.0)(typescript@5.8.2))(eslint-import-resolver-typescript@3.8.3)(eslint@9.22.0)
transitivePeerDependencies:
- supports-color
eslint-mdx@3.1.5(eslint@9.21.0):
eslint-mdx@3.2.0(eslint@9.22.0):
dependencies:
acorn: 8.14.1
acorn-jsx: 5.3.2(acorn@8.14.1)
eslint: 9.21.0
eslint: 9.22.0
espree: 9.6.1
estree-util-visit: 2.0.0
remark-mdx: 3.1.0
@ -4730,18 +4681,18 @@ snapshots:
- bluebird
- supports-color
eslint-module-utils@2.12.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0)(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.8.3)(eslint@9.21.0):
eslint-module-utils@2.12.0(@typescript-eslint/parser@8.26.0(eslint@9.22.0)(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.8.3)(eslint@9.22.0):
dependencies:
debug: 3.2.7
optionalDependencies:
'@typescript-eslint/parser': 8.26.0(eslint@9.21.0)(typescript@5.8.2)
eslint: 9.21.0
'@typescript-eslint/parser': 8.26.0(eslint@9.22.0)(typescript@5.8.2)
eslint: 9.22.0
eslint-import-resolver-node: 0.3.9
eslint-import-resolver-typescript: 3.8.3(eslint-plugin-import@2.31.0)(eslint@9.21.0)
eslint-import-resolver-typescript: 3.8.3(eslint-plugin-import@2.31.0)(eslint@9.22.0)
transitivePeerDependencies:
- supports-color
eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0)(typescript@5.8.2))(eslint-import-resolver-typescript@3.8.3)(eslint@9.21.0):
eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.26.0(eslint@9.22.0)(typescript@5.8.2))(eslint-import-resolver-typescript@3.8.3)(eslint@9.22.0):
dependencies:
'@rtsao/scc': 1.1.0
array-includes: 3.1.8
@ -4750,9 +4701,9 @@ snapshots:
array.prototype.flatmap: 1.3.3
debug: 3.2.7
doctrine: 2.1.0
eslint: 9.21.0
eslint: 9.22.0
eslint-import-resolver-node: 0.3.9
eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.26.0(eslint@9.21.0)(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.8.3)(eslint@9.21.0)
eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.26.0(eslint@9.22.0)(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.8.3)(eslint@9.22.0)
hasown: 2.0.2
is-core-module: 2.16.1
is-glob: 4.0.3
@ -4764,13 +4715,13 @@ snapshots:
string.prototype.trimend: 1.0.9
tsconfig-paths: 3.15.0
optionalDependencies:
'@typescript-eslint/parser': 8.26.0(eslint@9.21.0)(typescript@5.8.2)
'@typescript-eslint/parser': 8.26.0(eslint@9.22.0)(typescript@5.8.2)
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
- supports-color
eslint-plugin-jsx-a11y@6.10.2(eslint@9.21.0):
eslint-plugin-jsx-a11y@6.10.2(eslint@9.22.0):
dependencies:
aria-query: 5.3.2
array-includes: 3.1.8
@ -4780,7 +4731,7 @@ snapshots:
axobject-query: 4.1.0
damerau-levenshtein: 1.0.8
emoji-regex: 9.2.2
eslint: 9.21.0
eslint: 9.22.0
hasown: 2.0.2
jsx-ast-utils: 3.3.5
language-tags: 1.0.9
@ -4789,21 +4740,15 @@ snapshots:
safe-regex-test: 1.1.0
string.prototype.includes: 2.0.1
eslint-plugin-markdown@3.0.1(eslint@9.21.0):
eslint-plugin-mdx@3.2.0(eslint@9.22.0):
dependencies:
eslint: 9.21.0
mdast-util-from-markdown: 0.8.5
transitivePeerDependencies:
- supports-color
eslint-plugin-mdx@3.1.5(eslint@9.21.0):
dependencies:
eslint: 9.21.0
eslint-mdx: 3.1.5(eslint@9.21.0)
eslint-plugin-markdown: 3.0.1(eslint@9.21.0)
eslint: 9.22.0
eslint-mdx: 3.2.0(eslint@9.22.0)
mdast-util-from-markdown: 2.0.2
remark-mdx: 3.1.0
remark-parse: 11.0.0
remark-stringify: 11.0.0
synckit: 0.9.2
tslib: 2.8.1
unified: 11.0.5
vfile: 6.0.3
@ -4811,20 +4756,20 @@ snapshots:
- bluebird
- supports-color
eslint-plugin-prettier@5.2.3(eslint-config-prettier@10.1.1(eslint@9.21.0))(eslint@9.21.0)(prettier@3.5.3):
eslint-plugin-prettier@5.2.3(eslint-config-prettier@10.1.1(eslint@9.22.0))(eslint@9.22.0)(prettier@3.5.3):
dependencies:
eslint: 9.21.0
eslint: 9.22.0
prettier: 3.5.3
prettier-linter-helpers: 1.0.0
synckit: 0.9.2
optionalDependencies:
eslint-config-prettier: 10.1.1(eslint@9.21.0)
eslint-config-prettier: 10.1.1(eslint@9.22.0)
eslint-plugin-react-hooks@5.2.0(eslint@9.21.0):
eslint-plugin-react-hooks@5.2.0(eslint@9.22.0):
dependencies:
eslint: 9.21.0
eslint: 9.22.0
eslint-plugin-react@7.37.4(eslint@9.21.0):
eslint-plugin-react@7.37.4(eslint@9.22.0):
dependencies:
array-includes: 3.1.8
array.prototype.findlast: 1.2.5
@ -4832,7 +4777,7 @@ snapshots:
array.prototype.tosorted: 1.1.4
doctrine: 2.1.0
es-iterator-helpers: 1.2.1
eslint: 9.21.0
eslint: 9.22.0
estraverse: 5.3.0
hasown: 2.0.2
jsx-ast-utils: 3.3.5
@ -4846,7 +4791,7 @@ snapshots:
string.prototype.matchall: 4.0.12
string.prototype.repeat: 1.0.0
eslint-scope@8.2.0:
eslint-scope@8.3.0:
dependencies:
esrecurse: 4.3.0
estraverse: 5.3.0
@ -4855,14 +4800,15 @@ snapshots:
eslint-visitor-keys@4.2.0: {}
eslint@9.21.0:
eslint@9.22.0:
dependencies:
'@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0)
'@eslint-community/eslint-utils': 4.4.1(eslint@9.22.0)
'@eslint-community/regexpp': 4.12.1
'@eslint/config-array': 0.19.2
'@eslint/config-helpers': 0.1.0
'@eslint/core': 0.12.0
'@eslint/eslintrc': 3.3.0
'@eslint/js': 9.21.0
'@eslint/js': 9.22.0
'@eslint/plugin-kit': 0.2.7
'@humanfs/node': 0.16.6
'@humanwhocodes/module-importer': 1.0.1
@ -4874,7 +4820,7 @@ snapshots:
cross-spawn: 7.0.6
debug: 4.4.0
escape-string-regexp: 4.0.0
eslint-scope: 8.2.0
eslint-scope: 8.3.0
eslint-visitor-keys: 4.2.0
espree: 10.3.0
esquery: 1.6.0
@ -5361,15 +5307,8 @@ snapshots:
hasown: 2.0.2
side-channel: 1.1.0
is-alphabetical@1.0.4: {}
is-alphabetical@2.0.1: {}
is-alphanumerical@1.0.4:
dependencies:
is-alphabetical: 1.0.4
is-decimal: 1.0.4
is-alphanumerical@2.0.1:
dependencies:
is-alphabetical: 2.0.1
@ -5424,8 +5363,6 @@ snapshots:
call-bound: 1.0.4
has-tostringtag: 1.0.2
is-decimal@1.0.4: {}
is-decimal@2.0.1: {}
is-empty@1.2.0: {}
@ -5457,8 +5394,6 @@ snapshots:
dependencies:
is-extglob: 2.1.1
is-hexadecimal@1.0.4: {}
is-hexadecimal@2.0.1: {}
is-map@2.0.3: {}
@ -5683,16 +5618,6 @@ snapshots:
unist-util-is: 6.0.0
unist-util-visit-parents: 6.0.1
mdast-util-from-markdown@0.8.5:
dependencies:
'@types/mdast': 3.0.15
mdast-util-to-string: 2.0.0
micromark: 2.11.4
parse-entities: 2.0.0
unist-util-stringify-position: 2.0.3
transitivePeerDependencies:
- supports-color
mdast-util-from-markdown@2.0.2:
dependencies:
'@types/mdast': 4.0.4
@ -5845,8 +5770,6 @@ snapshots:
unist-util-visit: 5.0.0
zwitch: 2.0.4
mdast-util-to-string@2.0.0: {}
mdast-util-to-string@4.0.0:
dependencies:
'@types/mdast': 4.0.4
@ -6099,13 +6022,6 @@ snapshots:
micromark-util-types@2.0.2: {}
micromark@2.11.4:
dependencies:
debug: 4.4.0
parse-entities: 2.0.0
transitivePeerDependencies:
- supports-color
micromark@4.0.2:
dependencies:
'@types/debug': 4.1.12
@ -6317,15 +6233,6 @@ snapshots:
dependencies:
callsites: 3.1.0
parse-entities@2.0.0:
dependencies:
character-entities: 1.2.4
character-entities-legacy: 1.1.4
character-reference-invalid: 1.1.4
is-alphanumerical: 1.0.4
is-decimal: 1.0.4
is-hexadecimal: 1.0.4
parse-entities@4.0.2:
dependencies:
'@types/unist': 2.0.11
@ -7138,7 +7045,7 @@ snapshots:
'@types/concat-stream': 2.0.3
'@types/debug': 4.1.12
'@types/is-empty': 1.2.3
'@types/node': 22.13.9
'@types/node': 22.13.10
'@types/unist': 3.0.3
concat-stream: 2.0.0
debug: 4.4.0
@ -7197,10 +7104,6 @@ snapshots:
dependencies:
'@types/unist': 3.0.3
unist-util-stringify-position@2.0.3:
dependencies:
'@types/unist': 2.0.11
unist-util-stringify-position@4.0.0:
dependencies:
'@types/unist': 3.0.3