nqui
Components

Popover

Floating panel. PopoverAnchor decouples trigger from anchor position.

Popover

Floating panel that opens on click. Use PopoverAnchor to position content by an anchor element instead of the trigger.

Installation

npm install @nqlib/nqui

Import

import { Popover, PopoverTrigger, PopoverContent, PopoverAnchor } from '@nqlib/nqui';

Basic Usage

Copy this into your app — same pattern as the first example below.

import { Popover, PopoverTrigger, PopoverContent } from '@nqlib/nqui';
import { Button } from '@nqlib/nqui';

export default function Example() {
  return (
    <Popover>
      <PopoverTrigger asChild>
        <Button>Open</Button>
      </PopoverTrigger>
      <PopoverContent>Content</PopoverContent>
    </Popover>
  );
}

Examples

Each example has a Preview and Code tab. The code is copy-paste ready for your app (import from '@nqlib/nqui', same usage as above).

Basic Popover

Floating panel. Use PopoverAnchor to position by anchor, not trigger.

Reactexample.tsx
import { Popover, PopoverTrigger, PopoverContent } from '@nqlib/nqui';import { Button } from '@nqlib/nqui';export default function Example() {  return (    <Popover>      <PopoverTrigger asChild>        <Button>Open</Button>      </PopoverTrigger>      <PopoverContent>Content</PopoverContent>    </Popover>  );}

Props

Popover (Root)

PropTypeDefaultDescription
openboolean-Controlled open state
defaultOpenbooleanfalseUncontrolled default open
onOpenChange(open: boolean) => void-Callback when open changes

PopoverTrigger

PropTypeDefaultDescription
asChildbooleanfalseMerge props into child (e.g. Button)
All standard button props--Accepts HTML button attributes

PopoverContent

PropTypeDefaultDescription
align"start" | "center" | "end""center"Content alignment
sideOffsetnumber4Offset from trigger
side"top" | "right" | "bottom" | "left""bottom"Placement
classNamestring-Additional CSS classes
All standard div props--Accepts HTML div attributes

PopoverAnchor

Use instead of PopoverTrigger when you need to position content by an anchor element. Pass through standard div props.

Next Steps