Resizable

Resizable makes it possible for a user to resize panels

One
Two
Three
tsx
'use client'

import { Resizable, ResizablePanel, ResizableHandle } from '@nerdfish/ui'

export function ResizableExample() {
	return (
		<Resizable
			direction="horizontal"
			className="rounded-container max-w-md md:min-w-[450px]"
		>
			<ResizablePanel defaultSize={50}>
				<div className="border-muted/30 rounded-container p-md flex h-[200px] w-full items-center justify-center border">
					<span className="font-semibold">One</span>
				</div>
			</ResizablePanel>
			<ResizableHandle />
			<ResizablePanel defaultSize={50}>
				<Resizable direction="vertical">
					<ResizablePanel defaultSize={50}>
						<div className="border-muted/30 rounded-container p-md flex h-full w-full items-center justify-center border">
							<span className="font-semibold">Two</span>
						</div>
					</ResizablePanel>
					<ResizableHandle />
					<ResizablePanel defaultSize={50}>
						<div className="border-muted/30 rounded-container p-md flex h-full w-full items-center justify-center border">
							<span className="font-semibold">Three</span>
						</div>
					</ResizablePanel>
				</Resizable>
			</ResizablePanel>
		</Resizable>
	)
}

Usage

tsx
import { Resizable, ResizablePanel, ResizableHandle } from '@nerdfish/ui'
tsx
<Resizable
	direction="horizontal"
	className="rounded-container max-w-md border md:min-w-[450px]"
>
	<ResizablePanel defaultSize={50}>
		<div className="p-md flex h-[200px] items-center justify-center">
			<span className="font-semibold">One</span>
		</div>
	</ResizablePanel>
	<ResizableHandle />
	<ResizablePanel defaultSize={50}>
		<Resizable direction="vertical">
			<ResizablePanel defaultSize={25}>
				<div className="p-md flex h-full items-center justify-center">
					<span className="font-semibold">Two</span>
				</div>
			</ResizablePanel>
			<ResizableHandle />
			<ResizablePanel defaultSize={75}>
				<div className="p-md flex h-full items-center justify-center">
					<span className="font-semibold">Three</span>
				</div>
			</ResizablePanel>
		</Resizable>
	</ResizablePanel>
</Resizable>