2021-05-08 11:47:18 +03:00
|
|
|
<script>
|
2023-08-11 00:19:53 +01:00
|
|
|
// import { Moon } from 'svelte-loading-spinners';
|
2021-08-18 19:47:02 +03:00
|
|
|
import { VARIANTS, VARIANTS_CLASS } from './constants';
|
2023-08-11 00:19:53 +01:00
|
|
|
import { Loading } from 'carbon-components-svelte';
|
2021-12-30 22:30:30 +02:00
|
|
|
|
2021-08-18 19:47:02 +03:00
|
|
|
export let label = '';
|
|
|
|
|
export let className = '';
|
2021-05-14 08:04:35 +03:00
|
|
|
export let onClick = () => {};
|
2021-08-18 19:47:02 +03:00
|
|
|
export let name = '';
|
2022-11-28 11:23:46 +01:00
|
|
|
export let type = 'button';
|
2021-06-26 21:32:42 +03:00
|
|
|
export let variant = VARIANTS.CONTAINED;
|
2021-07-03 19:29:41 +00:00
|
|
|
export let disablePadding = false;
|
|
|
|
|
export let isDisabled = false;
|
2021-12-30 22:30:30 +02:00
|
|
|
export let isLoading = false;
|
|
|
|
|
|
2022-12-30 13:08:54 +01:00
|
|
|
$: isDisabled = isLoading ? true : false;
|
2021-05-08 11:47:18 +03:00
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<button
|
2023-05-20 23:53:28 +00:00
|
|
|
class="{isDisabled
|
|
|
|
|
? 'bg-opacity-25 hover:bg-opacity-25 cursor-not-allowed'
|
|
|
|
|
: 'cursor-pointer'} flex items-center h-auto {VARIANTS_CLASS[
|
2023-01-03 09:26:08 +01:00
|
|
|
isLoading ? VARIANTS.OUTLINED : variant
|
2021-07-06 08:39:17 +03:00
|
|
|
]} {!disablePadding &&
|
2023-08-05 05:48:32 +01:00
|
|
|
'py-[0.60rem] px-6'} rounded-md {className} w-fit justify-center sm:w-auto {isLoading &&
|
2023-08-20 19:08:48 +00:00
|
|
|
'py-[0.60rem] border-primary-700'} {variant !== VARIANTS.TEXT &&
|
2023-06-17 19:11:29 +00:00
|
|
|
'hover:shadow-xl'} transition delay-150 duration-300 ease-in-out {variant !==
|
|
|
|
|
VARIANTS.CONTAINED_WHITE
|
|
|
|
|
? 'dark:text-white'
|
|
|
|
|
: ''}"
|
2021-05-14 08:04:35 +03:00
|
|
|
on:click={onClick}
|
|
|
|
|
{name}
|
|
|
|
|
{type}
|
2021-07-03 19:29:41 +00:00
|
|
|
disabled={isDisabled}
|
2021-05-08 11:47:18 +03:00
|
|
|
>
|
2021-12-30 22:30:30 +02:00
|
|
|
{#if isLoading}
|
2023-08-11 00:19:53 +01:00
|
|
|
<Loading withOverlay={false} small />
|
|
|
|
|
<!-- <Moon size="20" color="#1d4ed8" unit="px" duration="1s" /> -->
|
2021-12-30 22:30:30 +02:00
|
|
|
{:else if !!label}
|
2021-07-03 19:29:41 +00:00
|
|
|
{label}
|
|
|
|
|
{:else}
|
|
|
|
|
<slot />
|
|
|
|
|
{/if}
|
2021-05-08 11:47:18 +03:00
|
|
|
</button>
|