Skip to content
This repository was archived by the owner on Mar 24, 2026. It is now read-only.

Commit 02ba360

Browse files
committed
refactor(ui): update resizable component structure and improve accessibility
- Renamed and updated component imports from ResizablePrimitive for clarity and consistency. - Enhanced class names and data attributes to improve styling and accessibility. - Adjusted the structure of the ResizableHandle component to utilize the Separator instead of PanelResizeHandle, aligning with updated library conventions.
1 parent 817a0c1 commit 02ba360

1 file changed

Lines changed: 14 additions & 8 deletions

File tree

src/components/ui/resizable.tsx

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,17 @@ import * as React from "react"
44
import { GripVerticalIcon } from "lucide-react"
55
import * as ResizablePrimitive from "react-resizable-panels"
66

7-
import { cn } from "@/shared/utils/index"
7+
import { cn } from "@/shared/utils"
88

99
function ResizablePanelGroup({
1010
className,
1111
...props
12-
}: React.ComponentProps<typeof ResizablePrimitive.PanelGroup>) {
12+
}: React.ComponentProps<typeof ResizablePrimitive.Group>) {
1313
return (
14-
<ResizablePrimitive.PanelGroup
14+
<ResizablePrimitive.Group
1515
data-slot="resizable-panel-group"
1616
className={cn(
17-
"flex h-full w-full data-[panel-group-direction=vertical]:flex-col",
17+
"flex h-full w-full aria-[orientation=vertical]:flex-col",
1818
className
1919
)}
2020
{...props}
@@ -32,14 +32,20 @@ function ResizableHandle({
3232
withHandle,
3333
className,
3434
...props
35-
}: React.ComponentProps<typeof ResizablePrimitive.PanelResizeHandle> & {
35+
}: React.ComponentProps<typeof ResizablePrimitive.Separator> & {
3636
withHandle?: boolean
3737
}) {
3838
return (
39-
<ResizablePrimitive.PanelResizeHandle
39+
<ResizablePrimitive.Separator
4040
data-slot="resizable-handle"
4141
className={cn(
42-
"bg-border focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:translate-x-0 data-[panel-group-direction=vertical]:after:-translate-y-1/2 [&[data-panel-group-direction=vertical]>div]:rotate-90",
42+
"relative flex items-center justify-center bg-border",
43+
"focus-visible:ring-ring focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden",
44+
"after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2",
45+
"aria-[orientation=vertical]:h-auto aria-[orientation=vertical]:w-px",
46+
"aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full",
47+
"aria-[orientation=vertical]:after:left-0 aria-[orientation=vertical]:after:h-1 aria-[orientation=vertical]:after:w-full aria-[orientation=vertical]:after:translate-x-0 aria-[orientation=vertical]:after:-translate-y-1/2",
48+
"[&[aria-orientation=horizontal]>div]:rotate-90",
4349
className
4450
)}
4551
{...props}
@@ -49,7 +55,7 @@ function ResizableHandle({
4955
<GripVerticalIcon className="size-2.5" />
5056
</div>
5157
)}
52-
</ResizablePrimitive.PanelResizeHandle>
58+
</ResizablePrimitive.Separator>
5359
)
5460
}
5561

0 commit comments

Comments
 (0)