npm i svelte-popover --save-dev
The basic example
<Popover>
<button slot=target>Click</button>
<div slot=content>
<h1>Content</h1>
</div>
</Popover>
You can also use nested popovers
<Popover>
<button slot=target>Click</button>
<div slot=content>
<h1>Content</h1>
<Popover>
<button slot=target></button>
<div slot=content>
<h1>Content</h1>
</div>
</Popover>
</div>
</Popover>
Use let:open directive. For example
<Popover let:open={isOpen}>
<button slot=target class:active={isOpen}>Target</button>
<div slot=content>
<h1>Content</h1>
</div>
</Popover>
| Prop | Type | Description | Default | Required |
|---|---|---|---|---|
| let:open | Boolean | Returns the value of the visibility of a popover | ... | ✘ |
| arrow | Boolean | If false , the arrow is removed | true | ✘ |
| placement | String | The placement of the popover. top-start , top-center , top-end , left-start , left-center , left-end , right-start , right-center , right-end , bottom-start , bottom-center , bottom-end | auto | ✘ |
| action | String | click | hover . Supports touch event | click | ✘ |
| on:open | Function | on:open is dispatched/called when the content is mounted | ... | ✘ |
| on:close | Function | on:close is dispatched/called after the content is unmounted from the dom | ... | ✘ |
| open | Boolean | Whether the popover is visible. Passing this prop puts the popover in controlled mode.To make the popover completely manageable, you must pass the null value to the action prop | false | ✘ |
| zIndex | Number | Initial number for zIndex | 1000 | ✘ |
| overlayColor | String | Set the background color of an overlay element | rgba(0,0,0,0.5) | ✘ |
| preventDefault | Boolean | Cancels the event if it is cancelable, meaning that the default action that belongs to the event will not occur. more | false | ✘ |
| stopPropagation | Boolean | Stops the bubbling of an event to parent elements, preventing any parent event handlers from being executed. more | false | ✘ |