Files
librodrome/app/components/admin/AdminSaveButton.vue
Yvv 8f548afb17
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Palette dynamique dans BookPlayer et admin
- BookPlayer : toutes les couleurs HSL en dur remplacées par variables CSS palette
- Admin (sidebar, formulaires, pages, book, songs, messages, media, login) : idem
- L'ambiance graphique suit maintenant la palette active partout

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 16:41:23 +01:00

55 lines
1.0 KiB
Vue

<template>
<button
class="save-btn"
:class="{ 'save-btn--saving': saving, 'save-btn--saved': saved }"
:disabled="saving"
@click="$emit('save')"
>
<div v-if="saving" class="i-lucide-loader-2 h-4 w-4 animate-spin" />
<div v-else-if="saved" class="i-lucide-check h-4 w-4" />
<div v-else class="i-lucide-save h-4 w-4" />
{{ saving ? 'Sauvegarde...' : saved ? 'Sauvegardé' : 'Sauvegarder' }}
</button>
</template>
<script setup lang="ts">
defineProps<{
saving?: boolean
saved?: boolean
}>()
defineEmits<{
save: []
}>()
</script>
<style scoped>
.save-btn {
display: inline-flex;
align-items: center;
gap: 0.5rem;
padding: 0.625rem 1.25rem;
border-radius: 0.5rem;
border: none;
background: hsl(var(--color-primary));
color: white;
font-weight: 600;
font-size: 0.85rem;
cursor: pointer;
transition: all 0.2s;
}
.save-btn:hover:not(:disabled) {
background: hsl(var(--color-primary));
}
.save-btn:disabled {
opacity: 0.7;
cursor: wait;
}
.save-btn--saved {
background: hsl(140 50% 40%);
}
</style>