Popover dialog
Add dialog functionality to your component.
Anatomy
import { Popover, Button, Menu } from "@lualtek/react-components";
 
export default () => {
  return (
    <Popover>
      <Popover.Trigger>
        <Button>Open popover</Button>
      </Popover.Trigger>
      <Popover.Content>
        <Menu>
          <Menu.Item>Item option 1</Menu.Item>
          <Menu.Item>Item option 2</Menu.Item>
          <Menu.Item>Item option 3</Menu.Item>
        </Menu>
      </Popover.Content>
    </Popover>
  );
};Controlled popover
The Popover component can be controlled from the outside by using the open property. If set to true, the popover will be open once rendered, while passing false when it's open, it will force close.
import { Popover, Button } from "@lualtek/react-components";
 
export default () => {
  const [open, setOpen] = useState(false);
 
  return (
    <Popover open={open} onOpenChange={(state) => setOpen(state)}>
      <Popover.Trigger>
        <Button onClick={() => setOpen((state) => !state)}>Open popover</Button>
      </Popover.Trigger>
      <Popover.Content>
        ....
        <Button onClick={() => setOpen(false)}>Close</Button>
      </Popover.Content>
    </Popover>
  );
};API Reference
Popover
This component extends the radix-ui Popover.Root (opens in a new tab) component, which exposes different props that enables multiple functionalities
Popover.Trigger
This component extends the radix-ui Popover.Trigger (opens in a new tab) component, which exposes different props that enables multiple functionalities
Popover.Content
This component extends the radix-ui Popover.Content (opens in a new tab) component, which exposes different props that enables multiple functionalities, and adds the following:
export type PopoverContentProps = {
  /**
   * Whether to show the arrow pointing to the anchor element.
   * @default false
   */
  showArrow?: boolean;
 
  /**
   * The color of the arrow
   * @defualt 'var(--dimmed-2)'
   */
  arrowColor?: string;
 
  /**
   * The side of the anchor element from which the popover will appear.
   */
  side?: PopoverContentProps["side"];
 
  /**
   * The offset from the anchor element.
   * @default 4
   */
  offset?: TokensTypes["space"];
 
  /**
   * Whether to use a portal to render the popover.
   * @default true
   */
  usePortal?: boolean;
};Popover.Close
This component extends the radix-ui Popover.Close (opens in a new tab) component, which exposes different props that enables multiple functionalities

