2023-01-10 17:28:27 +01:00
|
|
|
<script>
|
2023-07-02 11:00:20 +02:00
|
|
|
import icons from '$lib/icons.json';
|
|
|
|
|
2023-01-14 20:38:39 +01:00
|
|
|
export let name = '';
|
2023-06-26 21:09:28 +02:00
|
|
|
export let spin = false;
|
2023-07-19 20:18:40 +02:00
|
|
|
export let rotation = 0;
|
2023-06-26 21:09:28 +02:00
|
|
|
|
|
|
|
if (name === 'loading') {
|
|
|
|
spin = true;
|
|
|
|
}
|
2023-01-10 17:28:27 +01:00
|
|
|
</script>
|
|
|
|
|
2023-01-22 15:34:37 +01:00
|
|
|
<style>
|
2023-07-19 20:18:40 +02:00
|
|
|
@keyframes spinning {
|
|
|
|
0% { transform: rotate(0deg); }
|
|
|
|
100% { transform: rotate(360deg); }
|
|
|
|
}
|
|
|
|
|
|
|
|
svg {
|
|
|
|
transition: transform 0.25s;
|
|
|
|
will-change: transform;
|
2023-12-22 13:30:03 +01:00
|
|
|
width: 1.2em;
|
|
|
|
height: 1.2em;
|
2023-07-19 20:18:40 +02:00
|
|
|
}
|
|
|
|
svg.spinning {
|
|
|
|
animation: spinning 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
|
|
|
|
}
|
|
|
|
|
2023-01-22 15:34:37 +01:00
|
|
|
:global(.field) svg {
|
2023-12-22 13:30:03 +01:00
|
|
|
width: 1em;
|
|
|
|
height: 1em;
|
2023-01-22 15:34:37 +01:00
|
|
|
margin-right: 2px;
|
|
|
|
}
|
2023-06-27 17:21:54 +02:00
|
|
|
:global(.button) svg {
|
2023-12-22 13:30:03 +01:00
|
|
|
height: 1em;
|
2023-01-22 15:34:37 +01:00
|
|
|
width: auto;
|
|
|
|
vertical-align: bottom;
|
|
|
|
}
|
2023-07-19 20:45:05 +02:00
|
|
|
:global(.blankstate .button) svg {
|
2023-12-22 13:30:03 +01:00
|
|
|
height: 1.25em;
|
2023-07-19 20:45:05 +02:00
|
|
|
vertical-align: -3px;
|
|
|
|
margin-right: 4px;
|
|
|
|
}
|
2023-01-22 15:34:37 +01:00
|
|
|
</style>
|
|
|
|
|
2023-06-23 17:22:47 +02:00
|
|
|
<svg
|
|
|
|
xmlns="http://www.w3.org/2000/svg"
|
2023-06-11 09:34:00 +02:00
|
|
|
width="24"
|
|
|
|
height="24"
|
|
|
|
viewBox="0 0 24 24"
|
|
|
|
fill="none"
|
|
|
|
stroke="currentColor"
|
|
|
|
stroke-width="2"
|
|
|
|
stroke-linecap="round"
|
2023-06-23 17:22:47 +02:00
|
|
|
stroke-linejoin="round"
|
2023-06-26 21:09:28 +02:00
|
|
|
class:spinning={spin}
|
2023-07-19 20:18:40 +02:00
|
|
|
style:transform="rotate({rotation}deg)"
|
2023-06-23 17:22:47 +02:00
|
|
|
>
|
2023-07-02 11:00:20 +02:00
|
|
|
{@html icons[name] || ''}
|
2023-01-19 20:57:22 +01:00
|
|
|
</svg>
|