Files
fnx_web/svelte/src/layout/ToggleButton.svelte

40 lines
657 B
Svelte
Raw Normal View History

2024-11-19 15:31:51 +01:00
<script lang="ts">
export let on = false
2025-03-25 17:58:26 +01:00
export let icon_on = "check"
export let icon_off = "close"
2024-11-19 15:31:51 +01:00
export let group_first = false
export let group_middle = false
export let group_last = false
2025-03-21 12:57:53 +01:00
export let action = (e: MouseEvent) => {}
const click = (e: MouseEvent) => {
on = !on
if (typeof action === "function") {
action(e)
}
}
2024-11-19 15:31:51 +01:00
</script>
<button
2025-03-21 12:57:53 +01:00
on:click={click}
2024-11-19 15:31:51 +01:00
type="button"
class="button"
class:button_highlight={on}
class:group_first
class:group_middle
class:group_last
>
{#if on}
2025-03-25 17:58:26 +01:00
<i class="icon">{icon_on}</i>
2024-11-19 15:31:51 +01:00
{:else}
2025-03-25 17:58:26 +01:00
<i class="icon">{icon_off}</i>
2024-11-19 15:31:51 +01:00
{/if}
<slot></slot>
</button>
<style>
.button {
flex: 0 0 content;
}
</style>