Skip to content

Commit 23d254e

Browse files
committed
Add RovingFocusGroup Utility with Root, Group, Item
1 parent 698dc9a commit 23d254e

File tree

5 files changed

+54
-7
lines changed

5 files changed

+54
-7
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import React from 'react';
2+
import Primitive from '~/core/primitives/Primitive';
3+
4+
const RovingFocusGroup = ({ children, ...props }: { children: React.ReactNode }) => {
5+
return <Primitive.div {...props}>
6+
{children}
7+
</Primitive.div>;
8+
};
9+
10+
export default RovingFocusGroup;
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import React from 'react';
2+
3+
import Primitive from '~/core/primitives/Primitive';
4+
5+
const RovingFocusItem = ({ children, ...props }: { children: React.ReactNode }) => {
6+
return <Primitive.span {...props}>
7+
{children}
8+
</Primitive.span>;
9+
};
10+
11+
export default RovingFocusItem;
Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
import React from 'react';
22

3-
const RovingFocusRoot = ({ children }: { children: React.ReactNode }) => {
4-
return <div>RovingFocusRoot</div>;
3+
import Primitive from '~/core/primitives/Primitive';
4+
5+
const RovingFocusRoot = ({ children, ...props }: { children: React.ReactNodex }) => {
6+
return <Primitive.div {...props}>
7+
{children}
8+
</Primitive.div>;
59
};
610

711
export default RovingFocusRoot;
Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
import RovingFocusRoot from './fragments/RovingFocusRoot';
2+
import RovingFocusGroup from './fragments/RovingFocusGroup';
3+
import RovingFocusItem from './fragments/RovingFocusItem';
24

3-
const RovingFocusGroup = {
4-
Root: RovingFocusRoot
5+
const RovingFocusGroupUtility = {
6+
Root: RovingFocusRoot,
7+
Group: RovingFocusGroup,
8+
Item: RovingFocusItem
59
};
610

7-
export default RovingFocusGroup;
11+
export default RovingFocusGroupUtility;

src/core/utils/RovingFocusGroup/stories/RovingFocusGroup.stories.tsx

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,26 @@ export default {
99
component: RovingFocusGroup,
1010
render: () => <>
1111
<SandboxEditor className="space-y-2">
12-
<RovingFocusGroup.Root>
13-
<div>RovingFocusGroup</div>
12+
<RovingFocusGroup.Root className="flex items-center gap-2">
13+
<RovingFocusGroup.Group className="flex gap-2 border border-green-500 p-2">
14+
<RovingFocusGroup.Item>
15+
<button>Button 1 Group 1</button>
16+
</RovingFocusGroup.Item>
17+
<RovingFocusGroup.Item>
18+
<button>Button 2 Group 1</button>
19+
</RovingFocusGroup.Item>
20+
<RovingFocusGroup.Item>
21+
<button>Button 3 Group 1</button>
22+
</RovingFocusGroup.Item>
23+
</RovingFocusGroup.Group>
24+
<RovingFocusGroup.Group className="flex gap-2 border border-red-500 p-2">
25+
<RovingFocusGroup.Item>
26+
<button>Button 1 Group 2</button>
27+
</RovingFocusGroup.Item>
28+
<RovingFocusGroup.Item>
29+
<button>Button 2 Group 2</button>
30+
</RovingFocusGroup.Item>
31+
</RovingFocusGroup.Group>
1432
</RovingFocusGroup.Root>
1533
</SandboxEditor>
1634
</>

0 commit comments

Comments
 (0)