11"use client" ;
22
3- import React from "react" ;
4- import { PanelGroup , Panel , PanelResizer } from "react-window-splitter" ;
3+ import * as ResizablePrimitive from "react-resizable-panels" ;
54import { cn } from "~/utils/cn" ;
65
7- const ResizablePanelGroup = ( { className, ...props } : React . ComponentProps < typeof PanelGroup > ) => (
8- < PanelGroup
9- className = { cn (
10- "flex w-full overflow-hidden data-[panel-group-direction=vertical]:flex-col" ,
11- className
12- ) }
13- autosaveStrategy = { props . autosaveId ? "cookie" : undefined }
6+ const ResizablePanelGroup = ( {
7+ className,
8+ ...props
9+ } : React . ComponentProps < typeof ResizablePrimitive . PanelGroup > ) => (
10+ < ResizablePrimitive . PanelGroup
11+ className = { cn ( "flex w-full data-[panel-group-direction=vertical]:flex-col" , className ) }
1412 { ...props }
1513 />
1614) ;
1715
18- const ResizablePanel = Panel ;
16+ const ResizablePanel = ResizablePrimitive . Panel ;
1917
2018const ResizableHandle = ( {
21- withHandle = true ,
19+ withHandle,
2220 className,
2321 ...props
24- } : React . ComponentProps < typeof PanelResizer > & {
22+ } : React . ComponentProps < typeof ResizablePrimitive . PanelResizeHandle > & {
2523 withHandle ?: boolean ;
2624} ) => (
27- < PanelResizer
25+ < ResizablePrimitive . PanelResizeHandle
2826 className = { cn (
29- "focus-visible:ring-ring group relative flex w-0.75 items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 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-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 hover:w-0.75 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-secondary/50 focus-visible:ring- offset-0 [&[data-panel-group-direction=vertical]>div]:rotate-90" ,
27+ "focus-visible:ring-ring group relative flex w-0.75 items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 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-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 hover:w-0.75 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-offset-1 [&[data-panel-group-direction=vertical]>div]:rotate-90" ,
3028 className
3129 ) }
32- size = "3px"
3330 { ...props }
3431 >
3532 < div className = "absolute left-[0.0625rem] top-0 h-full w-px bg-grid-bright transition group-hover:left-0 group-hover:w-0.75 group-hover:bg-lavender-500" />
@@ -40,9 +37,7 @@ const ResizableHandle = ({
4037 ) ) }
4138 </ div >
4239 ) }
43- </ PanelResizer >
40+ </ ResizablePrimitive . PanelResizeHandle >
4441) ;
4542
4643export { ResizableHandle , ResizablePanel , ResizablePanelGroup } ;
47-
48- export type ResizableSnapshot = React . ComponentProps < typeof PanelGroup > [ "snapshot" ] ;
0 commit comments