2023-01-03 09:26:08 +01:00
|
|
|
<script>
|
2023-09-11 11:47:30 +01:00
|
|
|
import Avatar from '$lib/components/Avatar/index.svelte';
|
2023-01-03 09:26:08 +01:00
|
|
|
import TextChip from '../Chip/Text.svelte';
|
2023-05-02 23:55:26 +00:00
|
|
|
import ComingSoon from '../ComingSoon/index.svelte';
|
2023-01-03 09:26:08 +01:00
|
|
|
|
2023-09-11 11:47:30 +01:00
|
|
|
export let size = '';
|
2023-01-03 09:26:08 +01:00
|
|
|
export let hasDivider = false;
|
|
|
|
|
export let active = false;
|
2023-09-11 11:47:30 +01:00
|
|
|
export let avatar = '';
|
2023-01-03 09:26:08 +01:00
|
|
|
export let avatarText = '';
|
|
|
|
|
export let text = '';
|
2023-09-11 11:47:30 +01:00
|
|
|
export let onClick = () => {};
|
2023-04-22 20:00:37 +00:00
|
|
|
export let disabled = false;
|
2023-01-03 09:26:08 +01:00
|
|
|
</script>
|
|
|
|
|
|
2023-04-22 20:00:37 +00:00
|
|
|
<div class="relative">
|
|
|
|
|
<button
|
2023-09-13 20:22:15 +01:00
|
|
|
class="{disabled && 'opacity-25'} flex items-center w-[14rem] py-2 px-3 {hasDivider &&
|
2023-08-20 19:08:48 +00:00
|
|
|
'border-b border-gray-100'} {active && 'bg-primary-100 dark:bg-gray-500'}"
|
2023-04-22 20:00:37 +00:00
|
|
|
on:click={onClick}
|
|
|
|
|
>
|
2023-09-11 11:47:30 +01:00
|
|
|
{#if avatar}
|
|
|
|
|
<Avatar
|
|
|
|
|
src={avatar}
|
|
|
|
|
name={text}
|
|
|
|
|
shape="rounded-md"
|
|
|
|
|
width="w-7"
|
|
|
|
|
height="h-7"
|
|
|
|
|
className="mr-2"
|
|
|
|
|
/>
|
|
|
|
|
{:else if avatarText}
|
2023-04-22 20:00:37 +00:00
|
|
|
<TextChip
|
|
|
|
|
value={avatarText}
|
2023-08-20 19:08:48 +00:00
|
|
|
className="mr-2 bg-primary-200 font-bold dark:bg-gray-600"
|
2023-04-22 20:00:37 +00:00
|
|
|
{size}
|
|
|
|
|
/>
|
|
|
|
|
{/if}
|
|
|
|
|
{text}
|
|
|
|
|
</button>
|
|
|
|
|
{#if disabled}
|
|
|
|
|
<div class="coming-soon">
|
2023-05-02 23:55:26 +00:00
|
|
|
<ComingSoon />
|
2023-04-22 20:00:37 +00:00
|
|
|
</div>
|
2023-01-03 09:26:08 +01:00
|
|
|
{/if}
|
2023-04-22 20:00:37 +00:00
|
|
|
</div>
|
2023-01-03 09:26:08 +01:00
|
|
|
|
|
|
|
|
<style>
|
|
|
|
|
button {
|
|
|
|
|
min-height: 56px;
|
|
|
|
|
}
|
2023-04-22 20:00:37 +00:00
|
|
|
|
|
|
|
|
.coming-soon {
|
|
|
|
|
position: absolute;
|
|
|
|
|
top: 5px;
|
|
|
|
|
right: 5px;
|
|
|
|
|
}
|
2023-01-03 09:26:08 +01:00
|
|
|
</style>
|