summaryrefslogtreecommitdiff
path: root/src/components/_sila/Global/StatusIcon.vue
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/_sila/Global/StatusIcon.vue')
-rw-r--r--src/components/_sila/Global/StatusIcon.vue61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/components/_sila/Global/StatusIcon.vue b/src/components/_sila/Global/StatusIcon.vue
new file mode 100644
index 00000000..4552633e
--- /dev/null
+++ b/src/components/_sila/Global/StatusIcon.vue
@@ -0,0 +1,61 @@
+<template>
+ <span :class="['status-icon', status]">
+ <icon-info v-if="status === 'info'" />
+ <icon-success v-else-if="status === 'success'" />
+ <icon-warning v-else-if="status === 'warning'" />
+ <icon-danger v-else-if="status === 'danger'" />
+ <icon-secondary v-else />
+ </span>
+</template>
+
+<script>
+import IconInfo from '@carbon/icons-vue/es/information--filled/20';
+import IconCheckmark from '@carbon/icons-vue/es/checkmark--filled/20';
+import IconWarning from '@carbon/icons-vue/es/warning--filled/20';
+import IconError from '@carbon/icons-vue/es/error--filled/20';
+import IconMisuse from '@carbon/icons-vue/es/misuse/20';
+
+export default {
+ name: 'StatusIcon',
+ components: {
+ IconInfo: IconInfo,
+ iconSuccess: IconCheckmark,
+ iconDanger: IconMisuse,
+ iconSecondary: IconError,
+ iconWarning: IconWarning,
+ },
+ props: {
+ status: {
+ type: String,
+ default: '',
+ },
+ },
+};
+</script>
+
+<style lang="scss" scoped>
+.status-icon {
+ vertical-align: text-bottom;
+
+ &.info {
+ color: theme-color('info');
+ }
+ &.success {
+ color: theme-color('success');
+ }
+ &.danger {
+ color: theme-color('danger');
+ }
+ &.secondary {
+ color: gray('600');
+ transform: rotate(-45deg);
+ }
+ &.warning {
+ color: theme-color('warning');
+ }
+
+ svg {
+ fill: currentColor;
+ }
+}
+</style>