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> |
<script> |
||||
export let icon = undefined; |
import { createEventDispatcher, getContext } from "svelte" |
||||
export let disabled = undefined; |
|
||||
|
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> |
</script> |
||||
|
|
||||
<li on:click|preventDefault class="spectrum-Menu-item" class:is-disabled={disabled} role="menuitem" tabindex="0"> |
<li |
||||
{#if icon} |
data-cy={dataCy} |
||||
<svg class="spectrum-Icon spectrum-Icon--sizeM spectrum-Menu-itemIcon" focusable="false" aria-hidden="true" aria-label={icon}> |
on:click|preventDefault={onClick} |
||||
<use xlink:href="#spectrum-icon-18-{icon}"></use> |
class="spectrum-Menu-item" |
||||
</svg> |
class:is-disabled={disabled} |
||||
{/if} |
role="menuitem" |
||||
<span class="spectrum-Menu-itemLabel"><slot /></span> |
tabindex="0" |
||||
</li> |
> |
||||
|
{#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