2025-08-20 04:12:49 -06:00

89 lines
2.5 KiB
TypeScript

import { Button } from '@workspace/ui/components/ui/button';
import { Input } from '@workspace/ui/components/ui/input';
import { Label } from '@workspace/ui/components/ui/label';
import {
Popover,
PopoverContent,
PopoverTrigger,
type Side,
type Align,
} from '@/registry/base/popover';
interface BasePopoverDemoProps {
side?: Side;
sideOffset?: number;
align?: Align;
alignOffset?: number;
openOnHover?: boolean;
delay?: number;
closeDelay?: number;
}
export const BasePopoverDemo = ({
side,
sideOffset,
align,
alignOffset,
openOnHover,
delay,
closeDelay,
}: BasePopoverDemoProps) => {
return (
<Popover openOnHover={openOnHover} delay={delay} closeDelay={closeDelay}>
<PopoverTrigger
render={<Button variant="outline">Open popover</Button>}
/>
<PopoverContent
className="w-80"
side={side}
sideOffset={sideOffset}
align={align}
alignOffset={alignOffset}
>
<div className="grid gap-4">
<div className="space-y-2">
<h4 className="font-medium leading-none">Dimensions</h4>
<p className="text-sm text-muted-foreground">
Set the dimensions for the layer.
</p>
</div>
<div className="grid gap-2">
<div className="grid grid-cols-3 items-center gap-4">
<Label htmlFor="width">Width</Label>
<Input
id="width"
defaultValue="100%"
className="col-span-2 h-8"
/>
</div>
<div className="grid grid-cols-3 items-center gap-4">
<Label htmlFor="maxWidth">Max. width</Label>
<Input
id="maxWidth"
defaultValue="300px"
className="col-span-2 h-8"
/>
</div>
<div className="grid grid-cols-3 items-center gap-4">
<Label htmlFor="height">Height</Label>
<Input
id="height"
defaultValue="25px"
className="col-span-2 h-8"
/>
</div>
<div className="grid grid-cols-3 items-center gap-4">
<Label htmlFor="maxHeight">Max. height</Label>
<Input
id="maxHeight"
defaultValue="none"
className="col-span-2 h-8"
/>
</div>
</div>
</div>
</PopoverContent>
</Popover>
);
};