forked from tsai/budibase
2 changed files with 0 additions and 205 deletions
@ -1,44 +0,0 @@ |
|||
<script> |
|||
import "@spectrum-css/popover/dist/index-vars.css" |
|||
import Portal from "svelte-portal" |
|||
import { createEventDispatcher } from "svelte" |
|||
import positionDropdown from "../Actions/position_dropdown" |
|||
import clickOutside from "../Actions/click_outside" |
|||
|
|||
const dispatch = createEventDispatcher() |
|||
|
|||
export let anchor |
|||
export let align = "right" |
|||
|
|||
export const show = () => { |
|||
dispatch("open") |
|||
open = true |
|||
} |
|||
|
|||
export const hide = () => { |
|||
dispatch("close") |
|||
open = false |
|||
} |
|||
|
|||
let open = null |
|||
|
|||
function handleEscape(e) { |
|||
if (open && e.key === "Escape") { |
|||
hide() |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
{#if open} |
|||
<Portal> |
|||
<div |
|||
tabindex="0" |
|||
use:positionDropdown={{ anchor, align }} |
|||
use:clickOutside={hide} |
|||
on:keydown={handleEscape} |
|||
class="spectrum-Popover is-open" |
|||
role="presentation"> |
|||
<slot /> |
|||
</div> |
|||
</Portal> |
|||
{/if} |
|||
@ -1,161 +0,0 @@ |
|||
<script> |
|||
import { View } from "svench"; |
|||
import DropdownMenu from "./DropdownMenu.svelte"; |
|||
import Button from "../Button/Button.svelte"; |
|||
import Icon from "../Icons/Icon.svelte"; |
|||
|
|||
let anchorRight; |
|||
let anchorLeft; |
|||
let dropdownRight; |
|||
let dropdownLeft; |
|||
</script> |
|||
|
|||
<style> |
|||
ul { |
|||
list-style: none; |
|||
padding-left: 0; |
|||
margin: 0; |
|||
padding: var(--spacing-s) 0; |
|||
} |
|||
|
|||
li { |
|||
display: flex; |
|||
font-family: var(--font-sans); |
|||
font-size: var(--font-size-xs); |
|||
color: var(--ink); |
|||
padding: var(--spacing-s) var(--spacing-m); |
|||
margin: auto 0px; |
|||
align-items: center; |
|||
cursor: pointer; |
|||
} |
|||
|
|||
li:hover { |
|||
background-color: var(--grey-2); |
|||
} |
|||
|
|||
li:active { |
|||
color: var(--blue); |
|||
} |
|||
</style> |
|||
|
|||
<View name="Right Align (default)"> |
|||
<div bind:this={anchorRight}> |
|||
<Button primary on:click={dropdownRight.show}>Right Align</Button> |
|||
</div> |
|||
<DropdownMenu bind:this={dropdownRight} anchor={anchorRight}> |
|||
<ul> |
|||
<li>Item 1</li> |
|||
<li>Item 2</li> |
|||
<li>Item 3</li> |
|||
</ul> |
|||
</DropdownMenu> |
|||
</View> |
|||
|
|||
<View name="Left Align"> |
|||
<div bind:this={anchorLeft}> |
|||
<Button primary on:click={dropdownLeft.show}>Left Align</Button> |
|||
</div> |
|||
<DropdownMenu bind:this={dropdownLeft} anchor={anchorLeft} align="left"> |
|||
<ul> |
|||
<li>Item 1</li> |
|||
<li>Item 2</li> |
|||
<li>Item 3</li> |
|||
</ul> |
|||
</DropdownMenu> |
|||
</View> |
|||
|
|||
<View name="Left Align, TextButton, Small, Icons"> |
|||
<div bind:this={anchorLeft}> |
|||
<Button text on:click={dropdownLeft.show}> |
|||
Field Name |
|||
<Icon name="arrowdown" /> |
|||
</Button> |
|||
</div> |
|||
<DropdownMenu bind:this={dropdownLeft} anchor={anchorLeft} align="left"> |
|||
<ul> |
|||
<li> |
|||
<Icon name="edit" /> |
|||
Edit |
|||
</li> |
|||
<li> |
|||
<Icon name="delete" /> |
|||
Delete |
|||
</li> |
|||
<li> |
|||
<Icon name="sortascending" /> |
|||
Sort A - Z |
|||
</li> |
|||
<li> |
|||
<Icon name="sortdescending" /> |
|||
Sort Z - A |
|||
</li> |
|||
</ul> |
|||
</DropdownMenu> |
|||
</View> |
|||
<View name="Dropdown menu with slim menu and border color"> |
|||
<div bind:this={anchorLeft}> |
|||
<Button primary on:click={dropdownLeft.show}> |
|||
Field Name |
|||
<Icon name="arrowdown" /> |
|||
</Button> |
|||
</div> |
|||
<DropdownMenu |
|||
bind:this={dropdownLeft} |
|||
width="175px" |
|||
borderColor="#d1d1d1ff" |
|||
anchor={anchorLeft} |
|||
align="left"> |
|||
<ul> |
|||
<li> |
|||
<Icon name="edit" /> |
|||
Edit |
|||
</li> |
|||
<li> |
|||
<Icon name="delete" /> |
|||
Delete |
|||
</li> |
|||
<li> |
|||
<Icon name="sortascending" /> |
|||
Sort A - Z |
|||
</li> |
|||
<li> |
|||
<Icon name="sortdescending" /> |
|||
Sort Z - A |
|||
</li> |
|||
</ul> |
|||
</DropdownMenu> |
|||
</View> |
|||
<View name="Dropdown on close event example"> |
|||
<div bind:this={anchorLeft}> |
|||
<Button primary on:click={dropdownLeft.show}> |
|||
Field Name |
|||
<Icon name="arrowdown" /> |
|||
</Button> |
|||
</div> |
|||
<DropdownMenu |
|||
on:close={() => alert('Closed!')} |
|||
bind:this={dropdownLeft} |
|||
width="175px" |
|||
borderColor="#d1d1d1ff" |
|||
anchor={anchorLeft} |
|||
align="left"> |
|||
<ul> |
|||
<li> |
|||
<Icon name="edit" /> |
|||
Edit |
|||
</li> |
|||
<li> |
|||
<Icon name="delete" /> |
|||
Delete |
|||
</li> |
|||
<li> |
|||
<Icon name="sortascending" /> |
|||
Sort A - Z |
|||
</li> |
|||
<li> |
|||
<Icon name="sortdescending" /> |
|||
Sort Z - A |
|||
</li> |
|||
</ul> |
|||
</DropdownMenu> |
|||
</View> |
|||
Loading…
Reference in new issue