refactor: update Button to always use a size, determine tag from url

This commit is contained in:
2023-06-11 21:28:47 +02:00
parent 1360b095be
commit 9c329b5ff7
10 changed files with 37 additions and 25 deletions

View File

@@ -6,22 +6,23 @@
import { cx } from 'classix'
import SplitText from '$components/SplitText.svelte'
export let tag = 'a'
export let text: string
export let url: string = undefined
export let color: string = undefined
export let size: string = undefined
export let size: 'xsmall' | 'small' | 'medium' | 'large'
export let effect = 'link-3d'
export let disabled: boolean = undefined
export let slotPosition = 'before'
const className = 'button'
let tag: 'a' | 'button'
$: tag = url ? 'a' : 'button'
$: classes = cx(
className,
'button',
effect ? effect : undefined,
...[color, size].map(variant => variant && `${className}--${variant}`),
...[color, size].map(variant => variant && `button--${variant}`),
Object.keys($$slots).length !== 0 ? `has-icon-${slotPosition}` : undefined,
$$props.class
$$props.class,
)
// Define external links