From 0f61fbc625b3cb8d7c131bf7a79f71678c5b19d2 Mon Sep 17 00:00:00 2001
From: Yihui Liao <44729383+yihuiliao@users.noreply.github.com>
Date: Tue, 6 Jan 2026 07:17:07 -0800
Subject: [PATCH 1/3] fix: filter DOM props on TabPanels (#9432)
---
packages/react-aria-components/src/Tabs.tsx | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/packages/react-aria-components/src/Tabs.tsx b/packages/react-aria-components/src/Tabs.tsx
index 3ff831f1ebd..dfa2b9fa381 100644
--- a/packages/react-aria-components/src/Tabs.tsx
+++ b/packages/react-aria-components/src/Tabs.tsx
@@ -394,9 +394,12 @@ export const TabPanels = /*#__PURE__*/ createHideableComponent(function TabPanel
prevSize.current = ref.current.getBoundingClientRect();
}
+ let DOMProps = filterDOMProps(props, {global: true});
+ delete DOMProps.id;
+
return (
From d7dca0ce5cda5ff8c0f4f77e50c2d686f190a630 Mon Sep 17 00:00:00 2001
From: Reid Barber
Date: Tue, 6 Jan 2026 10:15:17 -0600
Subject: [PATCH 2/3] fix: ColorWheel inner border width (#9440)
* s2: fix ColorWheel inner border width
* add new stories
---
.../s2/chromatic/ColorWheel.stories.tsx | 11 +++++++++++
packages/@react-spectrum/s2/src/ColorWheel.tsx | 2 +-
.../@react-spectrum/s2/stories/ColorWheel.stories.tsx | 11 +++++++++++
3 files changed, 23 insertions(+), 1 deletion(-)
diff --git a/packages/@react-spectrum/s2/chromatic/ColorWheel.stories.tsx b/packages/@react-spectrum/s2/chromatic/ColorWheel.stories.tsx
index 7d123961c43..692a419cf36 100644
--- a/packages/@react-spectrum/s2/chromatic/ColorWheel.stories.tsx
+++ b/packages/@react-spectrum/s2/chromatic/ColorWheel.stories.tsx
@@ -29,3 +29,14 @@ export const Example: StoryObj = {
defaultValue: 'hsl(30, 100%, 50%)'
}
};
+
+export const InContainer: StoryObj = {
+ render: (args) => (
+
+
+
+ ),
+ args: {
+ defaultValue: 'hsl(30, 100%, 50%)'
+ }
+};
diff --git a/packages/@react-spectrum/s2/src/ColorWheel.tsx b/packages/@react-spectrum/s2/src/ColorWheel.tsx
index 43d26419a9b..57d63dec7ff 100644
--- a/packages/@react-spectrum/s2/src/ColorWheel.tsx
+++ b/packages/@react-spectrum/s2/src/ColorWheel.tsx
@@ -51,7 +51,7 @@ export const ColorWheel = forwardRef(function ColorWheel(props: ColorWheelProps,
outerRadius={outerRadius}
innerRadius={innerRadius}
ref={containerRef}
- style={UNSAFE_style}
+ style={{...UNSAFE_style, width: outerRadius * 2, height: outerRadius * 2}}
className={UNSAFE_className + styles}>
{({isDisabled, state}) => (<>
(
+
+
+
+ ),
+ args: {
+ defaultValue: 'hsl(30, 100%, 50%)'
+ }
+};
From 31861ad3a59fb3909d63ec0b20ed27c63026566a Mon Sep 17 00:00:00 2001
From: Reid Barber
Date: Tue, 6 Jan 2026 11:44:10 -0600
Subject: [PATCH 3/3] chore: replace tsc with tsgo (#9409)
* replace tsc with tsgo
* stricter types fixes
* patch @types/jsdom
* fix patch
---
package.json | 5 +-
packages/@react-spectrum/utils/src/Slots.tsx | 2 +-
packages/dev/s2-docs/src/zip.tsx | 2 +-
patches/@types+jsdom+20.0.1.patch | 14 ++++
yarn.lock | 82 ++++++++++++++++++++
5 files changed, 102 insertions(+), 3 deletions(-)
create mode 100644 patches/@types+jsdom+20.0.1.patch
diff --git a/package.json b/package.json
index 2e23fdb774f..d770a0ddc96 100644
--- a/package.json
+++ b/package.json
@@ -9,7 +9,9 @@
},
"packageManager": "yarn@4.2.2",
"scripts": {
- "check-types": "tsc",
+ "tsgo": "tsgo",
+ "check-types": "tsgo --noEmit",
+ "check-types:tsc": "tsc",
"clean": "make clean",
"clean:all": "make clean_all",
"install-16": "node scripts/react-16-install-prep.mjs && yarn add react@^16.8.0 react-dom@^16.8.0 @testing-library/react@^12 @testing-library/react-hooks@^8 @testing-library/dom@^8 react-test-renderer@^16.9.0 && node scripts/oldReactSupport.mjs",
@@ -134,6 +136,7 @@
"@testing-library/user-event": "patch:@testing-library/user-event@npm%3A14.6.1#~/.yarn/patches/@testing-library-user-event-npm-14.6.1-5da7e1d4e2.patch",
"@types/react": "^19.0.0",
"@types/react-dom": "^19.0.0",
+ "@typescript/native-preview": "^7.0.0-dev.20251223.1",
"@yarnpkg/types": "^4.0.0",
"autoprefixer": "^9.6.0",
"axe-playwright": "^1.1.11",
diff --git a/packages/@react-spectrum/utils/src/Slots.tsx b/packages/@react-spectrum/utils/src/Slots.tsx
index b796049186b..498b5be4660 100644
--- a/packages/@react-spectrum/utils/src/Slots.tsx
+++ b/packages/@react-spectrum/utils/src/Slots.tsx
@@ -24,7 +24,7 @@ export function useSlotProps(props: T & {id?: string}, defaultSlot?: string):
// @ts-ignore TODO why is slot an object and not just string or undefined?
let {[slot]: slotProps = {}} = useContext(SlotContext) || {};
- return mergeProps(props, mergeProps(slotProps, {id: props.id}));
+ return mergeProps(props, mergeProps(slotProps, {id: props.id})) as T;
}
export function cssModuleToSlots(cssModule: {[cssmodule: string]: string}): {[slot: string]: {UNSAFE_className: string}} {
diff --git a/packages/dev/s2-docs/src/zip.tsx b/packages/dev/s2-docs/src/zip.tsx
index 831d69c6db0..b02236857ac 100644
--- a/packages/dev/s2-docs/src/zip.tsx
+++ b/packages/dev/s2-docs/src/zip.tsx
@@ -85,5 +85,5 @@ export function zip(files: {[name: string]: string}): Blob {
putUint32s(eocd, 12, cdSz, offset);
records.push(eocd);
- return new Blob(records, {type: 'application/zip'});
+ return new Blob(records as BlobPart[], {type: 'application/zip'});
}
diff --git a/patches/@types+jsdom+20.0.1.patch b/patches/@types+jsdom+20.0.1.patch
new file mode 100644
index 00000000000..c076ba73a41
--- /dev/null
+++ b/patches/@types+jsdom+20.0.1.patch
@@ -0,0 +1,14 @@
+diff --git a/node_modules/@types/jsdom/base.d.ts b/node_modules/@types/jsdom/base.d.ts
+index 67d7514..144a595 100755
+--- a/node_modules/@types/jsdom/base.d.ts
++++ b/node_modules/@types/jsdom/base.d.ts
+@@ -191,7 +191,9 @@ declare module "jsdom" {
+
+ /* ECMAScript Globals */
+ globalThis: DOMWindow;
++ // @ts-ignore - conflicts with Window's numeric index signature
+ readonly ["Infinity"]: number;
++ // @ts-ignore - conflicts with Window's numeric index signature
+ readonly ["NaN"]: number;
+ readonly undefined: undefined;
+
diff --git a/yarn.lock b/yarn.lock
index a3f19fc789e..6500c7bc175 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -10882,6 +10882,87 @@ __metadata:
languageName: node
linkType: hard
+"@typescript/native-preview-darwin-arm64@npm:7.0.0-dev.20251223.1":
+ version: 7.0.0-dev.20251223.1
+ resolution: "@typescript/native-preview-darwin-arm64@npm:7.0.0-dev.20251223.1"
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@typescript/native-preview-darwin-x64@npm:7.0.0-dev.20251223.1":
+ version: 7.0.0-dev.20251223.1
+ resolution: "@typescript/native-preview-darwin-x64@npm:7.0.0-dev.20251223.1"
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@typescript/native-preview-linux-arm64@npm:7.0.0-dev.20251223.1":
+ version: 7.0.0-dev.20251223.1
+ resolution: "@typescript/native-preview-linux-arm64@npm:7.0.0-dev.20251223.1"
+ conditions: os=linux & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@typescript/native-preview-linux-arm@npm:7.0.0-dev.20251223.1":
+ version: 7.0.0-dev.20251223.1
+ resolution: "@typescript/native-preview-linux-arm@npm:7.0.0-dev.20251223.1"
+ conditions: os=linux & cpu=arm
+ languageName: node
+ linkType: hard
+
+"@typescript/native-preview-linux-x64@npm:7.0.0-dev.20251223.1":
+ version: 7.0.0-dev.20251223.1
+ resolution: "@typescript/native-preview-linux-x64@npm:7.0.0-dev.20251223.1"
+ conditions: os=linux & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@typescript/native-preview-win32-arm64@npm:7.0.0-dev.20251223.1":
+ version: 7.0.0-dev.20251223.1
+ resolution: "@typescript/native-preview-win32-arm64@npm:7.0.0-dev.20251223.1"
+ conditions: os=win32 & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@typescript/native-preview-win32-x64@npm:7.0.0-dev.20251223.1":
+ version: 7.0.0-dev.20251223.1
+ resolution: "@typescript/native-preview-win32-x64@npm:7.0.0-dev.20251223.1"
+ conditions: os=win32 & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@typescript/native-preview@npm:^7.0.0-dev.20251223.1":
+ version: 7.0.0-dev.20251223.1
+ resolution: "@typescript/native-preview@npm:7.0.0-dev.20251223.1"
+ dependencies:
+ "@typescript/native-preview-darwin-arm64": "npm:7.0.0-dev.20251223.1"
+ "@typescript/native-preview-darwin-x64": "npm:7.0.0-dev.20251223.1"
+ "@typescript/native-preview-linux-arm": "npm:7.0.0-dev.20251223.1"
+ "@typescript/native-preview-linux-arm64": "npm:7.0.0-dev.20251223.1"
+ "@typescript/native-preview-linux-x64": "npm:7.0.0-dev.20251223.1"
+ "@typescript/native-preview-win32-arm64": "npm:7.0.0-dev.20251223.1"
+ "@typescript/native-preview-win32-x64": "npm:7.0.0-dev.20251223.1"
+ dependenciesMeta:
+ "@typescript/native-preview-darwin-arm64":
+ optional: true
+ "@typescript/native-preview-darwin-x64":
+ optional: true
+ "@typescript/native-preview-linux-arm":
+ optional: true
+ "@typescript/native-preview-linux-arm64":
+ optional: true
+ "@typescript/native-preview-linux-x64":
+ optional: true
+ "@typescript/native-preview-win32-arm64":
+ optional: true
+ "@typescript/native-preview-win32-x64":
+ optional: true
+ bin:
+ tsgo: bin/tsgo.js
+ checksum: 10c0/e7ce674c99fb045d72318e5a9d6d16a0f60e11e7315105197a5115f433ac86ee6a583899f0e54c8022fd799f58dc546fa1d0cd730dd6fe3de1f22751fe281bb1
+ languageName: node
+ linkType: hard
+
"@verdaccio/auth@npm:8.0.0-next-8.7":
version: 8.0.0-next-8.7
resolution: "@verdaccio/auth@npm:8.0.0-next-8.7"
@@ -24759,6 +24840,7 @@ __metadata:
"@testing-library/user-event": "patch:@testing-library/user-event@npm%3A14.6.1#~/.yarn/patches/@testing-library-user-event-npm-14.6.1-5da7e1d4e2.patch"
"@types/react": "npm:^19.0.0"
"@types/react-dom": "npm:^19.0.0"
+ "@typescript/native-preview": "npm:^7.0.0-dev.20251223.1"
"@yarnpkg/types": "npm:^4.0.0"
autoprefixer: "npm:^9.6.0"
axe-playwright: "npm:^1.1.11"