feat: ajout de la gestion des jobs avec création, récupération, suppression et filtrage via l'API, incluant des entités, des composants Vue.js et des mises à jour de la documentation API
This commit is contained in:
parent
4d1d5b9f21
commit
fd2d3cd640
37
assets/vue/app/shared/components/ui/ToolbarButton.vue
Normal file
37
assets/vue/app/shared/components/ui/ToolbarButton.vue
Normal file
@@ -0,0 +1,37 @@
|
||||
<template>
|
||||
<button
|
||||
@click="$emit('click')"
|
||||
:class="[
|
||||
'flex flex-col items-center justify-center p-1 rounded group text-white min-w-[50px]',
|
||||
active
|
||||
? 'text-green-500' // Style actif
|
||||
: 'hover:text-green-500' // Effet de survol
|
||||
]"
|
||||
:aria-label="label || 'Toolbar button'">
|
||||
<component v-if="icon" :is="icon" class="h-6 w-6 mb-1" />
|
||||
<span v-if="label" class="text-xs">{{ label }}</span>
|
||||
</button>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { computed } from 'vue';
|
||||
|
||||
defineProps({
|
||||
icon: {
|
||||
type: [Object, Function], // Heroicons sont souvent importés comme des objets/fonctions
|
||||
required: false,
|
||||
default: null
|
||||
},
|
||||
label: {
|
||||
type: String,
|
||||
required: false,
|
||||
default: ''
|
||||
},
|
||||
active: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
});
|
||||
|
||||
defineEmits(['click']);
|
||||
</script>
|
||||
Reference in New Issue
Block a user