JSPM

@chakra-ui/popover

0.0.0-dev-20220813053727
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 371973
  • Score
    100M100P100Q181656F
  • License MIT

A React component to render that renders its content in a popover

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@chakra-ui/popover) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    @chakra-ui/popover

    Popover is a non-modal dialog that floats around a trigger. It is used to display contextual information to the user, and should be paired with a clickable trigger element.

    Installation

    yarn add @chakra-ui/popover
    
    # or
    
    npm i @chakra-ui/popover

    Import components

    import {
      Popover,
      PopoverTrigger,
      PopoverContent,
      PopoverHeader,
      PopoverBody,
      PopoverFooter,
      PopoverArrow,
      PopoverCloseButton,
    } from "@chakra-ui/react"

    Basic Usage

    When using this component, ensure the children passed to PopoverTrigger is focusable, user can tab to it using their keyboard, and it can take a ref. It is critical for accessibility.

    A11y: When the Popover opens, focus is sent to the PopoverContent. When it closes, focus is returned to the trigger.

    <Popover>
      <PopoverTrigger>
        <Button>Trigger</Button>
      </PopoverTrigger>
      <PopoverContent>
        <PopoverArrow />
        <PopoverCloseButton />
        <PopoverHeader>Confirmation!</PopoverHeader>
        <PopoverBody>Are you sure you want to have that milkshake?</PopoverBody>
      </PopoverContent>
    </Popover>

    Rendering the Popover in a Portal

    By default, the Popover doesn't render in a Portal. To make them display in a portal, pass the usePortal prop.

    You might need to Inspect Element to see this in action. Notice the PopoverContent is rendered as a child of <body>

    <Popover usePortal>
      <PopoverTrigger>
        <Button>Trigger</Button>
      </PopoverTrigger>
      <PopoverContent>
        <PopoverArrow />
        <PopoverHeader>Header</PopoverHeader>
        <PopoverCloseButton />
        <PopoverBody>
          <Button colorScheme="blue">Button</Button>
        </PopoverBody>
        <PopoverFooter>This is the footer</PopoverFooter>
      </PopoverContent>
    </Popover>