forked from tsai/budibase
20 changed files with 337 additions and 418 deletions
@ -0,0 +1,65 @@ |
|||
<script> |
|||
export let horizontal = false |
|||
export let paddingX = "M" |
|||
export let paddingY = "M" |
|||
export let noPadding = false |
|||
export let gap = "M" |
|||
export let noGap = false |
|||
</script> |
|||
|
|||
<div |
|||
class:horizontal |
|||
class="container paddingX-{!noPadding && paddingX} paddingY-{!noPadding && |
|||
paddingY} gap-{!noGap && gap}" |
|||
> |
|||
<slot /> |
|||
</div> |
|||
|
|||
<style> |
|||
.container { |
|||
display: grid; |
|||
grid-template-columns: 1fr; |
|||
} |
|||
.paddingX-S { |
|||
padding-left: var(--spacing-s); |
|||
padding-right: var(--spacing-s); |
|||
} |
|||
.paddingX-M { |
|||
padding-left: var(--spacing-m); |
|||
padding-right: var(--spacing-m); |
|||
} |
|||
.paddingX-L { |
|||
padding-left: var(--spacing-l); |
|||
padding-right: var(--spacing-l); |
|||
} |
|||
.paddingY-S { |
|||
padding-top: var(--spacing-s); |
|||
padding-bottom: var(--spacing-s); |
|||
} |
|||
.paddingY-M { |
|||
padding-top: var(--spacing-m); |
|||
padding-bottom: var(--spacing-m); |
|||
} |
|||
.paddingY-L { |
|||
padding-top: var(--spacing-l); |
|||
padding-bottom: var(--spacing-l); |
|||
} |
|||
.gap-S { |
|||
grid-gap: var(--spectrum-alias-grid-gutter-xsmall); |
|||
} |
|||
.gap-M { |
|||
grid-gap: var(--spectrum-alias-grid-gutter-small); |
|||
} |
|||
.gap-L { |
|||
grid-gap: var(--spectrum-alias-grid-gutter-medium); |
|||
} |
|||
.horizontal.gap-S :global(*) + :global(*) { |
|||
margin-left: var(--spectrum-alias-grid-gutter-xsmall); |
|||
} |
|||
.horizontal.gap-M :global(*) + :global(*) { |
|||
margin-left: var(--spectrum-alias-grid-gutter-small); |
|||
} |
|||
.horizontal.gap-L :global(*) + :global(*) { |
|||
margin-left: var(--spectrum-alias-grid-gutter-medium); |
|||
} |
|||
</style> |
|||
@ -1,13 +1,39 @@ |
|||
<script> |
|||
export let icon = undefined; |
|||
export let disabled = undefined; |
|||
import { createEventDispatcher, getContext } from "svelte" |
|||
|
|||
const dispatch = createEventDispatcher() |
|||
const actionMenu = getContext("actionMenu") |
|||
|
|||
export let dataCy |
|||
export let icon = undefined |
|||
export let disabled = undefined |
|||
export let noClose = false |
|||
|
|||
const onClick = () => { |
|||
if (actionMenu && !noClose) { |
|||
actionMenu.hide() |
|||
} |
|||
dispatch("click") |
|||
} |
|||
</script> |
|||
|
|||
<li on:click|preventDefault class="spectrum-Menu-item" class:is-disabled={disabled} role="menuitem" tabindex="0"> |
|||
{#if icon} |
|||
<svg class="spectrum-Icon spectrum-Icon--sizeM spectrum-Menu-itemIcon" focusable="false" aria-hidden="true" aria-label={icon}> |
|||
<use xlink:href="#spectrum-icon-18-{icon}"></use> |
|||
</svg> |
|||
{/if} |
|||
<span class="spectrum-Menu-itemLabel"><slot /></span> |
|||
</li> |
|||
<li |
|||
data-cy={dataCy} |
|||
on:click|preventDefault={onClick} |
|||
class="spectrum-Menu-item" |
|||
class:is-disabled={disabled} |
|||
role="menuitem" |
|||
tabindex="0" |
|||
> |
|||
{#if icon} |
|||
<svg |
|||
class="spectrum-Icon spectrum-Icon--sizeM spectrum-Menu-itemIcon" |
|||
focusable="false" |
|||
aria-hidden="true" |
|||
aria-label={icon} |
|||
> |
|||
<use xlink:href="#spectrum-icon-18-{icon}" /> |
|||
</svg> |
|||
{/if} |
|||
<span class="spectrum-Menu-itemLabel"><slot /></span> |
|||
</li> |
|||
|
|||
Loading…
Reference in new issue