Budibase is an open-source low-code platform for creating internal apps in minutes. Supports PostgreSQL, MySQL, MSSQL, MongoDB, Rest API, Docker, K8s 🚀
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

42 lines
823 B

<script>
import Popover from "../Popover/Popover.svelte"
import Menu from "../Menu/Menu.svelte"
export let supressOpen = false
let anchor
let dropdown
// This is needed because display: contents is considered "invisible".
// It should only ever be an action button, so should be fine.
function getAnchor(node) {
anchor = node.firstChild
}
export const hide = () => {
dropdown.hide()
}
export const show = () => {
dropdown.show()
}
const closeOnClickWrapper = (cb) => {
dropdown.hide()
cb()
}
</script>
<div class="contents" use:getAnchor>
<slot name="button" />
</div>
<Popover bind:this={dropdown} {anchor} align="left">
<Menu>
<slot open={show} closeOnClick={closeOnClickWrapper} />
</Menu>
</Popover>
<style>
div {
display: contents;
}
</style>