From 412fb6b6247fc409314b2b7708de60396605a992 Mon Sep 17 00:00:00 2001
From: Matt Van Horn <455140+mvanhorn@users.noreply.github.com>
Date: Sun, 28 Jun 2026 01:36:35 -0700
Subject: [PATCH] fix: add DEFAULT_SLOT to TreeItem CheckboxContext so
unslotted Checkboxes render
---
packages/react-aria-components/src/Tree.tsx | 2 ++
packages/react-aria-components/test/Tree.test.tsx | 15 +++++++++++++++
2 files changed, 17 insertions(+)
diff --git a/packages/react-aria-components/src/Tree.tsx b/packages/react-aria-components/src/Tree.tsx
index f743c06c70b..c05ce61afa2 100644
--- a/packages/react-aria-components/src/Tree.tsx
+++ b/packages/react-aria-components/src/Tree.tsx
@@ -1004,6 +1004,7 @@ export const TreeItem = /*#__PURE__*/ createBranchComponent(
CheckboxContext,
{
slots: {
+ [DEFAULT_SLOT]: {},
selection: checkboxProps
}
}
@@ -1012,6 +1013,7 @@ export const TreeItem = /*#__PURE__*/ createBranchComponent(
CheckboxFieldContext,
{
slots: {
+ [DEFAULT_SLOT]: {},
selection: checkboxProps
}
}
diff --git a/packages/react-aria-components/test/Tree.test.tsx b/packages/react-aria-components/test/Tree.test.tsx
index 2e0f634ad75..ee5a6d7f891 100644
--- a/packages/react-aria-components/test/Tree.test.tsx
+++ b/packages/react-aria-components/test/Tree.test.tsx
@@ -664,6 +664,21 @@ describe('Tree', () => {
}
);
+ it('should allow unslotted checkboxes in item content', () => {
+ let {getByRole} = render(
+
+
+
+ Item
+ Flag item
+
+
+
+ );
+
+ expect(getByRole('checkbox', {name: 'Flag item'})).toBeInTheDocument();
+ });
+
it('should not render checkboxes for selection with selectionBehavior=replace ', async () => {
let {getByRole, getAllByRole} = render(