tethys.backend/resources/js/Components/CardBoxWidget.vue
Arno Kaimbacher a7142f694f
All checks were successful
CI Pipeline / japa-tests (push) Successful in 51s
- prettier formatting
- npm updates
- new SearchMap.vue component
2023-10-31 15:38:43 +01:00

65 lines
1.7 KiB
Vue

<script setup>
import { mdiCog } from '@mdi/js';
import CardBox from '@/Components/CardBox.vue';
import NumberDynamic from '@/Components/NumberDynamic.vue';
import BaseIcon from '@/Components/BaseIcon.vue';
import BaseLevel from '@/Components/BaseLevel.vue';
import PillTagTrend from '@/Components/PillTagTrend.vue';
import BaseButton from '@/Components/BaseButton.vue';
defineProps({
number: {
type: Number,
default: 0,
},
icon: {
type: String,
default: null,
},
prefix: {
type: String,
default: null,
},
suffix: {
type: String,
default: null,
},
label: {
type: String,
default: null,
},
color: {
type: String,
default: null,
},
trend: {
type: String,
default: null,
},
trendType: {
type: String,
default: null,
},
});
</script>
<template>
<CardBox>
<BaseLevel v-if="trend" class="mb-3" mobile>
<PillTagTrend :trend="trend" :trend-type="trendType" small />
<BaseButton :icon="mdiCog" icon-w="w-4" icon-h="h-4" color="white" small />
</BaseLevel>
<BaseLevel mobile>
<div>
<h3 class="text-lg leading-tight text-gray-500 dark:text-slate-400">
{{ label }}
</h3>
<h1 class="text-3xl leading-tight font-semibold">
<NumberDynamic :value="number" :prefix="prefix" :suffix="suffix" />
</h1>
</div>
<BaseIcon v-if="icon" :path="icon" size="48" w="" h="h-16" :class="color" />
</BaseLevel>
</CardBox>
</template>