Files
frontend/app/components/BIIcon.vue
T

36 lines
844 B
Vue

<script setup lang="ts">
const iconAliases: Record<string, string> = {
'it-bell': 'it-info-circle',
'it-grid': 'it-list',
'it-history': 'it-clock',
'it-home': 'it-pa',
'it-image': 'it-file-image',
'it-location': 'it-map-marker-circle',
'it-map': 'it-map-marker-circle',
'it-piu': 'it-plus',
'it-star': 'it-star-full',
'it-write': 'it-pencil',
}
const props = defineProps<{
name: string
size?: 'xs' | 'sm' | 'lg' | 'xl'
color?: 'primary' | 'success' | 'warning' | 'danger' | 'info' | 'white'
}>()
const resolvedName = computed(() => iconAliases[props.name] || props.name)
</script>
<template>
<svg
class="icon"
:class="[
size ? `icon-${size}` : '',
color ? `icon-${color}` : ''
]"
aria-hidden="true"
>
<use :href="`/sprites.svg#${resolvedName}`"></use>
</svg>
</template>