You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.2 KiB
56 lines
1.2 KiB
<script lang="ts">
|
|
import type { IconName } from "../external/icons";
|
|
import { iconNames } from "../external/icons";
|
|
import Icon from "./Icon.svelte";
|
|
|
|
export let value: IconName;
|
|
export let disabled: boolean;
|
|
</script>
|
|
|
|
<div class:disabled class="icon-select">
|
|
{#each iconNames as iconName (iconName)}
|
|
<div class="icon-item" class:selected={value===iconName} on:click={() => {if (!disabled) { value = iconName }}}>
|
|
<Icon name={iconName} />
|
|
</div>
|
|
{/each}
|
|
</div>
|
|
|
|
<style>
|
|
div.icon-select {
|
|
background: #222;
|
|
margin: 0;
|
|
padding: 0;
|
|
border-radius: 0.05em;
|
|
margin-bottom: 0.5em;
|
|
}
|
|
|
|
div.icon-select.disabled {
|
|
background: #444;
|
|
}
|
|
|
|
div.icon-item {
|
|
display: inline-block;
|
|
box-sizing: border-box;
|
|
width: calc(100% / 8);
|
|
padding: 0.35em 0 0.25em 0;
|
|
text-align: center;
|
|
|
|
cursor: pointer;
|
|
}
|
|
div.icon-item:hover {
|
|
background-color: #292929;
|
|
}
|
|
div.icon-item.selected {
|
|
background-color: rgb(18, 63, 75);
|
|
}
|
|
div.icon-item.selected:hover {
|
|
background-color: rgb(24, 83, 99);
|
|
}
|
|
div.icon-select.disabled > div.icon-item {
|
|
background-color: #444;
|
|
cursor: default;
|
|
}
|
|
div.icon-select.disabled > div.icon-item.selected {
|
|
background-color: #555;
|
|
}
|
|
</style>
|