2020-02-18 08:57:00 +01:00
|
|
|
<template>
|
2022-07-12 10:55:28 +02:00
|
|
|
<span
|
2022-09-26 10:29:20 +02:00
|
|
|
class="rounded-md truncate text-sm text-violet-title px-2 py-1"
|
2022-08-26 16:08:58 +02:00
|
|
|
:class="[
|
|
|
|
typeClasses,
|
|
|
|
capitalize,
|
|
|
|
withHashTag ? `before:content-['#']` : '',
|
|
|
|
]"
|
2022-07-12 10:55:28 +02:00
|
|
|
>
|
|
|
|
<slot />
|
2020-02-18 08:57:00 +01:00
|
|
|
</span>
|
|
|
|
</template>
|
2022-07-12 10:55:28 +02:00
|
|
|
<script lang="ts" setup>
|
|
|
|
import { computed } from "vue";
|
2020-02-18 08:57:00 +01:00
|
|
|
|
2022-07-12 10:55:28 +02:00
|
|
|
const props = withDefaults(
|
|
|
|
defineProps<{
|
2022-08-26 16:08:58 +02:00
|
|
|
variant?: "info" | "danger" | "warning" | "light" | "primary";
|
|
|
|
capitalize?: boolean;
|
|
|
|
withHashTag?: boolean;
|
2022-07-12 10:55:28 +02:00
|
|
|
}>(),
|
2022-08-26 16:08:58 +02:00
|
|
|
{ variant: "light", capitalize: false, withHashTag: false }
|
2022-07-12 10:55:28 +02:00
|
|
|
);
|
|
|
|
|
|
|
|
const typeClasses = computed(() => {
|
|
|
|
switch (props.variant) {
|
|
|
|
default:
|
|
|
|
case "light":
|
|
|
|
return "bg-purple-3 dark:text-violet-3";
|
|
|
|
case "info":
|
2022-08-26 16:08:58 +02:00
|
|
|
return "bg-mbz-info dark:text-black";
|
2022-08-22 12:12:09 +02:00
|
|
|
case "warning":
|
|
|
|
return "bg-yellow-1";
|
2022-07-12 10:55:28 +02:00
|
|
|
case "danger":
|
|
|
|
return "bg-mbz-danger dark:text-white";
|
|
|
|
}
|
|
|
|
});
|
2020-02-18 08:57:00 +01:00
|
|
|
</script>
|
|
|
|
|
|
|
|
<style lang="scss" scoped>
|
2022-08-26 16:08:58 +02:00
|
|
|
span.withHashTag::before {
|
|
|
|
content: "#";
|
2020-02-18 08:57:00 +01:00
|
|
|
}
|
|
|
|
</style>
|