Skip to content

Commit b85d61a

Browse files
merging all conflicts
2 parents a2210ad + 6326e7b commit b85d61a

File tree

110 files changed

+3582
-921
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

110 files changed

+3582
-921
lines changed

.eslintrc

+5-3
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@
22
"root": true,
33
"extends": "next/core-web-vitals",
44
"parser": "@typescript-eslint/parser",
5-
"plugins": ["@typescript-eslint"],
5+
"plugins": ["@typescript-eslint", "eslint-plugin-react-compiler"],
66
"rules": {
77
"no-unused-vars": "off",
8-
"@typescript-eslint/no-unused-vars": ["error", { "varsIgnorePattern": "^_" }],
9-
"react-hooks/exhaustive-deps": "error"
8+
"@typescript-eslint/no-unused-vars": ["error", {"varsIgnorePattern": "^_"}],
9+
"react-hooks/exhaustive-deps": "error",
10+
"react/no-unknown-property": ["error", {"ignore": ["meta"]}],
11+
"react-compiler/react-compiler": "error"
1012
},
1113
"env": {
1214
"node": true,

.github/workflows/discord_notify.yml

+12-1
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,22 @@ name: Discord Notify
22

33
on:
44
pull_request_target:
5+
<<<<<<< HEAD
56
types: [labeled]
7+
=======
8+
types: [opened, ready_for_review]
9+
>>>>>>> 6326e7b1b9fa2a7e36a555792e2f1b97cfcf2669
610

711
jobs:
12+
check_maintainer:
13+
uses: facebook/react/.github/workflows/shared_check_maintainer.yml@main
14+
with:
15+
actor: ${{ github.event.pull_request.user.login }}
16+
is_remote: true
17+
818
notify:
9-
if: ${{ github.event.label.name == 'React Core Team' }}
19+
if: ${{ needs.check_maintainer.outputs.is_core_team == 'true' }}
20+
needs: check_maintainer
1021
runs-on: ubuntu-latest
1122
steps:
1223
- name: Discord Webhook Action
+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: Label Core Team PRs
2+
3+
on:
4+
pull_request_target:
5+
6+
env:
7+
TZ: /usr/share/zoneinfo/America/Los_Angeles
8+
# https://github.com/actions/cache/blob/main/tips-and-workarounds.md#cache-segment-restore-timeout
9+
SEGMENT_DOWNLOAD_TIMEOUT_MINS: 1
10+
11+
jobs:
12+
check_maintainer:
13+
uses: facebook/react/.github/workflows/shared_check_maintainer.yml@main
14+
with:
15+
actor: ${{ github.event.pull_request.user.login }}
16+
is_remote: true
17+
18+
label:
19+
if: ${{ needs.check_maintainer.outputs.is_core_team == 'true' }}
20+
runs-on: ubuntu-latest
21+
needs: check_maintainer
22+
steps:
23+
- name: Label PR as React Core Team
24+
uses: actions/github-script@v7
25+
with:
26+
script: |
27+
github.rest.issues.addLabels({
28+
owner: context.repo.owner,
29+
repo: context.repo.repo,
30+
issue_number: ${{ github.event.number }},
31+
labels: ['React Core Team']
32+
});

next-env.d.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
/// <reference types="next" />
22
/// <reference types="next/image-types/global" />
3+
/// <reference types="next/navigation-types/compat/navigation" />
34

45
// NOTE: This file should not be edited
5-
// see https://nextjs.org/docs/basic-features/typescript for more information.
6+
// see https://nextjs.org/docs/app/api-reference/config/typescript for more information.

next.config.js

+1-3
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,8 @@ const nextConfig = {
99
pageExtensions: ['jsx', 'js', 'ts', 'tsx', 'mdx', 'md'],
1010
reactStrictMode: true,
1111
experimental: {
12-
// TODO: Remove after https://github.com/vercel/next.js/issues/49355 is fixed
13-
appDir: false,
1412
scrollRestoration: true,
15-
legacyBrowsers: false,
13+
reactCompiler: true,
1614
},
1715
env: {},
1816
webpack: (config, {dev, isServer, ...options}) => {

package.json

+26-9
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
"ci-check": "npm-run-all prettier:diff --parallel lint tsc lint-heading-ids rss lint-editorconfig",
1818
"tsc": "tsc --noEmit",
1919
"start": "next start",
20-
"postinstall": "patch-package && (is-ci || husky install .husky)",
20+
"postinstall": "is-ci || husky install .husky",
2121
"check-all": "npm-run-all prettier lint:fix tsc rss",
2222
"rss": "node scripts/generateRss.js",
2323
"cache-reset": "rm -rf node_modules/.cache && rm -rf .next && yarn cache clean",
@@ -28,21 +28,21 @@
2828
},
2929
"dependencies": {
3030
"@codesandbox/sandpack-react": "2.13.5",
31-
"@docsearch/css": "^3.6.1",
32-
"@docsearch/react": "^3.6.1",
31+
"@docsearch/css": "^3.8.3",
32+
"@docsearch/react": "^3.8.3",
3333
"@headlessui/react": "^1.7.0",
3434
"@radix-ui/react-context-menu": "^2.1.5",
3535
"body-scroll-lock": "^3.1.3",
3636
"classnames": "^2.2.6",
3737
"date-fns": "^2.16.1",
3838
"debounce": "^1.2.1",
3939
"github-slugger": "^1.3.0",
40-
"next": "^13.4.1",
40+
"next": "15.1.0",
4141
"next-remote-watch": "^1.0.0",
4242
"parse-numeric-range": "^1.2.0",
43-
"react": "^0.0.0-experimental-16d053d59-20230506",
43+
"react": "^19.0.0",
4444
"react-collapsed": "4.0.4",
45-
"react-dom": "^0.0.0-experimental-16d053d59-20230506",
45+
"react-dom": "^19.0.0",
4646
"remark-frontmatter": "^4.0.1",
4747
"remark-gfm": "^3.0.1"
4848
},
@@ -58,21 +58,26 @@
5858
"@types/mdx-js__react": "^1.5.2",
5959
"@types/node": "^14.6.4",
6060
"@types/parse-numeric-range": "^0.0.1",
61-
"@types/react": "^18.0.9",
62-
"@types/react-dom": "^18.0.5",
61+
"@types/react": "^19.0.0",
62+
"@types/react-dom": "^19.0.0",
6363
"@typescript-eslint/eslint-plugin": "^5.36.2",
6464
"@typescript-eslint/parser": "^5.36.2",
6565
"asyncro": "^3.0.0",
6666
"autoprefixer": "^10.4.2",
6767
"babel-eslint": "10.x",
68+
<<<<<<< HEAD
6869
"editorconfig-checker": "^6.0.0",
70+
=======
71+
"babel-plugin-react-compiler": "19.0.0-beta-e552027-20250112",
72+
>>>>>>> 6326e7b1b9fa2a7e36a555792e2f1b97cfcf2669
6973
"eslint": "7.x",
7074
"eslint-config-next": "12.0.3",
7175
"eslint-config-react-app": "^5.2.1",
7276
"eslint-plugin-flowtype": "4.x",
7377
"eslint-plugin-import": "2.x",
7478
"eslint-plugin-jsx-a11y": "6.x",
7579
"eslint-plugin-react": "7.x",
80+
"eslint-plugin-react-compiler": "^19.0.0-beta-e552027-20250112",
7681
"eslint-plugin-react-hooks": "^0.0.0-experimental-fabef7a6b-20221215",
7782
"fs-extra": "^9.0.1",
7883
"globby": "^11.0.1",
@@ -84,7 +89,6 @@
8489
"metro-cache": "0.72.2",
8590
"mocha": "^10.6.0",
8691
"npm-run-all": "^4.1.5",
87-
"patch-package": "^6.2.2",
8892
"postcss": "^8.4.5",
8993
"postcss-flexbugs-fixes": "4.2.1",
9094
"postcss-preset-env": "^6.7.0",
@@ -100,11 +104,15 @@
100104
"retext-smartypants": "^4.0.0",
101105
"rss": "^1.2.2",
102106
"tailwindcss": "^3.4.1",
107+
<<<<<<< HEAD
103108
"textlint": "^14.0.4",
104109
"textlint-filter-rule-comments": "^1.2.2",
105110
"textlint-rule-allowed-uris": "^1.0.7",
106111
"textlint-tester": "^14.0.4",
107112
"typescript": "^4.0.2",
113+
=======
114+
"typescript": "^5.7.2",
115+
>>>>>>> 6326e7b1b9fa2a7e36a555792e2f1b97cfcf2669
108116
"unist-util-visit": "^2.0.3",
109117
"webpack-bundle-analyzer": "^4.5.0"
110118
},
@@ -115,5 +123,14 @@
115123
"budget": null,
116124
"budgetPercentIncreaseRed": 10,
117125
"showDetails": true
126+
<<<<<<< HEAD
118127
}
128+
=======
129+
},
130+
"lint-staged": {
131+
"*.{js,ts,jsx,tsx,css}": "yarn prettier",
132+
"src/**/*.md": "yarn fix-headings"
133+
},
134+
"packageManager": "[email protected]"
135+
>>>>>>> 6326e7b1b9fa2a7e36a555792e2f1b97cfcf2669
119136
}

patches/next+13.4.1.patch

-22
This file was deleted.

patches/next-remote-watch+1.0.0.patch

-16
This file was deleted.

public/images/team/andrey-lunyov.jpg

-56.2 KB
Binary file not shown.

public/images/team/hendrik.jpg

306 KB
Loading

public/images/team/jordan.jpg

281 KB
Loading
-129 KB
Binary file not shown.

public/images/team/lauren.jpg

-897 KB
Loading

public/images/team/luna-wei.jpg

-283 KB
Binary file not shown.

public/images/team/mike.jpg

310 KB
Loading

public/images/team/noahlemen.jpg

-330 KB
Binary file not shown.

public/images/team/pieter.jpg

359 KB
Loading

public/images/team/sam.jpg

-99.9 KB
Binary file not shown.

public/images/team/sathya.jpg

-68.8 KB
Binary file not shown.

public/images/team/tianyu.jpg

-51.4 KB
Binary file not shown.

src/components/ExternalLink.tsx

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
/*
22
* Copyright (c) Facebook, Inc. and its affiliates.
33
*/
4+
import type {DetailedHTMLProps, AnchorHTMLAttributes} from 'react';
45

56
export function ExternalLink({
67
href,
78
target,
89
children,
910
...props
10-
}: JSX.IntrinsicElements['a']) {
11+
}: DetailedHTMLProps<
12+
AnchorHTMLAttributes<HTMLAnchorElement>,
13+
HTMLAnchorElement
14+
>) {
1115
return (
1216
<a href={href} target={target ?? '_blank'} rel="noopener" {...props}>
1317
{children}

src/components/Icon/IconArrow.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@
44

55
import {memo} from 'react';
66
import cn from 'classnames';
7+
import type {SVGProps} from 'react';
78

89
export const IconArrow = memo<
9-
JSX.IntrinsicElements['svg'] & {
10+
SVGProps<SVGSVGElement> & {
1011
/**
1112
* The direction the arrow should point.
1213
* `start` and `end` are relative to the current locale.

src/components/Icon/IconArrowSmall.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@
44

55
import {memo} from 'react';
66
import cn from 'classnames';
7+
import type {SVGProps} from 'react';
78

89
export const IconArrowSmall = memo<
9-
JSX.IntrinsicElements['svg'] & {
10+
SVGProps<SVGSVGElement> & {
1011
/**
1112
* The direction the arrow should point.
1213
* `start` and `end` are relative to the current locale.

src/components/Icon/IconBsky.tsx

+2-3
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,9 @@
33
*/
44

55
import {memo} from 'react';
6+
import type {SVGProps} from 'react';
67

7-
export const IconBsky = memo<JSX.IntrinsicElements['svg']>(function IconBsky(
8-
props
9-
) {
8+
export const IconBsky = memo<SVGProps<SVGSVGElement>>(function IconBsky(props) {
109
return (
1110
<svg
1211
aria-label="Bluesky"

src/components/Icon/IconClose.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33
*/
44

55
import {memo} from 'react';
6+
import type {SVGProps} from 'react';
67

7-
export const IconClose = memo<JSX.IntrinsicElements['svg']>(function IconClose(
8+
export const IconClose = memo<SVGProps<SVGSVGElement>>(function IconClose(
89
props
910
) {
1011
return (

src/components/Icon/IconFacebookCircle.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33
*/
44

55
import {memo} from 'react';
6+
import type {SVGProps} from 'react';
67

7-
export const IconFacebookCircle = memo<JSX.IntrinsicElements['svg']>(
8+
export const IconFacebookCircle = memo<SVGProps<SVGSVGElement>>(
89
function IconFacebookCircle(props) {
910
return (
1011
<svg

src/components/Icon/IconGitHub.tsx

+16-15
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,20 @@
33
*/
44

55
import {memo} from 'react';
6+
import type {SVGProps} from 'react';
67

7-
export const IconGitHub = memo<JSX.IntrinsicElements['svg']>(
8-
function IconGitHub(props) {
9-
return (
10-
<svg
11-
xmlns="http://www.w3.org/2000/svg"
12-
width="1.5em"
13-
height="1.5em"
14-
viewBox="0 -2 24 24"
15-
fill="currentColor"
16-
{...props}>
17-
<path d="M10 0a10 10 0 0 0-3.16 19.49c.5.1.68-.22.68-.48l-.01-1.7c-2.78.6-3.37-1.34-3.37-1.34-.46-1.16-1.11-1.47-1.11-1.47-.9-.62.07-.6.07-.6 1 .07 1.53 1.03 1.53 1.03.9 1.52 2.34 1.08 2.91.83.1-.65.35-1.09.63-1.34-2.22-.25-4.55-1.11-4.55-4.94 0-1.1.39-1.99 1.03-2.69a3.6 3.6 0 0 1 .1-2.64s.84-.27 2.75 1.02a9.58 9.58 0 0 1 5 0c1.91-1.3 2.75-1.02 2.75-1.02.55 1.37.2 2.4.1 2.64.64.7 1.03 1.6 1.03 2.69 0 3.84-2.34 4.68-4.57 4.93.36.31.68.92.68 1.85l-.01 2.75c0 .26.18.58.69.48A10 10 0 0 0 10 0"></path>
18-
</svg>
19-
);
20-
}
21-
);
8+
export const IconGitHub = memo<SVGProps<SVGSVGElement>>(function IconGitHub(
9+
props
10+
) {
11+
return (
12+
<svg
13+
xmlns="http://www.w3.org/2000/svg"
14+
width="1.5em"
15+
height="1.5em"
16+
viewBox="0 -2 24 24"
17+
fill="currentColor"
18+
{...props}>
19+
<path d="M10 0a10 10 0 0 0-3.16 19.49c.5.1.68-.22.68-.48l-.01-1.7c-2.78.6-3.37-1.34-3.37-1.34-.46-1.16-1.11-1.47-1.11-1.47-.9-.62.07-.6.07-.6 1 .07 1.53 1.03 1.53 1.03.9 1.52 2.34 1.08 2.91.83.1-.65.35-1.09.63-1.34-2.22-.25-4.55-1.11-4.55-4.94 0-1.1.39-1.99 1.03-2.69a3.6 3.6 0 0 1 .1-2.64s.84-.27 2.75 1.02a9.58 9.58 0 0 1 5 0c1.91-1.3 2.75-1.02 2.75-1.02.55 1.37.2 2.4.1 2.64.64.7 1.03 1.6 1.03 2.69 0 3.84-2.34 4.68-4.57 4.93.36.31.68.92.68 1.85l-.01 2.75c0 .26.18.58.69.48A10 10 0 0 0 10 0"></path>
20+
</svg>
21+
);
22+
});

src/components/Icon/IconHamburger.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33
*/
44

55
import {memo} from 'react';
6+
import type {SVGProps} from 'react';
67

7-
export const IconHamburger = memo<JSX.IntrinsicElements['svg']>(
8+
export const IconHamburger = memo<SVGProps<SVGSVGElement>>(
89
function IconHamburger(props) {
910
return (
1011
<svg

src/components/Icon/IconInstagram.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33
*/
44

55
import {memo} from 'react';
6+
import type {SVGProps} from 'react';
67

7-
export const IconInstagram = memo<JSX.IntrinsicElements['svg']>(
8+
export const IconInstagram = memo<SVGProps<SVGSVGElement>>(
89
function IconInstagram(props) {
910
return (
1011
<svg

src/components/Icon/IconLink.tsx

+2-3
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,9 @@
33
*/
44

55
import {memo} from 'react';
6+
import type {SVGProps} from 'react';
67

7-
export const IconLink = memo<JSX.IntrinsicElements['svg']>(function IconLink(
8-
props
9-
) {
8+
export const IconLink = memo<SVGProps<SVGSVGElement>>(function IconLink(props) {
109
return (
1110
<svg
1211
xmlns="http://www.w3.org/2000/svg"

0 commit comments

Comments
 (0)