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(