Skip to content

Commit b5cf6b0

Browse files
committed
fix: enhance Button and ProgressBar components with new styles and variants; refactor AcceptModal to use Button component
1 parent 584e183 commit b5cf6b0

3 files changed

Lines changed: 17 additions & 19 deletions

File tree

adminforth/spa/src/afcl/Button.vue

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,16 @@
22
<button
33
v-bind="$attrs"
44
type="submit"
5-
class="afcl-button flex items-center justify-center gap-1 text-lightButtonsText bg-lightButtonsBackground border border-lightButtonsBorder dark:bg-darkButtonsBackground hover:bg-lightButtonsHover hover:border-lightButtonsBorderHover
6-
focus:ring-4 focus:outline-none focus:ring-lightButtonFocusRing focus:ring-opacity-50 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:focus:ring-darkButtonFocusRing dark:text-darkButtonsText dark:border-darkButtonsBorder dark:hover:bg-darkButtonsHover dark:hover:border-darkButtonsBorderHover"
5+
class="afcl-button flex items-center justify-center gap-1 border focus:ring-4 focus:outline-none focus:ring-opacity-50 font-medium rounded-lg text-sm px-5 py-2.5 text-center"
76
:class="{
7+
'text-lightButtonsText bg-lightButtonsBackground border-lightButtonsBorder dark:bg-darkButtonsBackground hover:bg-lightButtonsHover hover:border-lightButtonsBorderHover focus:ring-lightButtonFocusRing dark:focus:ring-darkButtonFocusRing dark:text-darkButtonsText dark:border-darkButtonsBorder dark:hover:bg-darkButtonsHover dark:hover:border-darkButtonsBorderHover': currentVariant === 'primary',
88
'cursor-default opacity-50 pointer-events-none': props.disabled,
99
'active brightness-200 hover:brightness-150' : props.active,
1010
'text-lightSecondaryContrast/70 bg-lightSecondary border-lightSecondaryContrast/30 dark:bg-darkSecondary hover:bg-lightSecondary/60 hover:border-lightSecondaryContrast/60 focus:ring-lightSecondary dark:focus:ring-darkSecondary/40 dark:text-darkSecondaryContrast dark:border-darkSecondaryContrast/40 dark:hover:bg-darkSecondary/60 dark:hover:border-white/60': currentVariant === 'secondary',
11+
'text-lightAcceptModalConfirmButtonText dark:text-darkAcceptModalConfirmButtonText bg-lightAcceptModalConfirmButtonBackground dark:bg-darkAcceptModalConfirmButtonBackground hover:bg-lightAcceptModalConfirmButtonBackgroundHover dark:hover:bg-darkAcceptModalConfirmButtonBackgroundHover focus:ring-lightAcceptModalConfirmButtonFocus dark:focus:ring-darkAcceptModalConfirmButtonFocus border-transparent hover:border-transparent': currentVariant === 'danger',
1112
}"
1213
>
13-
<Spinner v-if="props.loader" class="w-4 h-4 text-lightButtonsText dark:text-darkButtonsText fill-lightButtonsBackground dark:fill-darkPrimary" />
14+
<Spinner v-if="props.loader" class="w-4 h-4 text-lightButtonsText dark:text-darkButtonsText fill-lightPrimary dark:fill-darkPrimary" />
1415
<slot></slot>
1516
</button>
1617
</template>
@@ -23,9 +24,9 @@ const props = withDefaults(defineProps<{
2324
loader?: boolean;
2425
disabled?: boolean;
2526
active?: boolean;
26-
variant?: 'primary' | 'secondary';
27+
variant?: 'primary' | 'secondary' | 'danger';
2728
/** @deprecated use variant instead of mode */
28-
mode?: 'primary' | 'secondary';
29+
mode?: 'primary' | 'secondary' | 'danger';
2930
}>(), {
3031
loader: false,
3132
disabled: false,
@@ -35,4 +36,4 @@ const props = withDefaults(defineProps<{
3536
// mode is deprecated, but we still want to support it for backward compatibility,
3637
// so we check both variant and mode props
3738
const currentVariant = computed(() => props.variant ?? props.mode ?? 'primary');
38-
</script>
39+
</script>

adminforth/spa/src/afcl/ProgressBar.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<span v-if="leftLabel" class="absolute -top-6 left-0 text-sm text-lightProgressBarText dark:text-darkProgressBarText">{{ leftLabel }}</span>
44
<span v-if="rightLabel" class="absolute -top-6 right-0 text-sm text-lightProgressBarText dark:text-darkProgressBarText">{{ rightLabel }}</span>
55
<div
6-
class="bg-lightProgressBarFilledColor dark:bg-darkProgressBarFilledColor h-2.5 rounded-full transition-all duration-300 ease-in-out"
6+
class="bg-lightPrimary dark:bg-darkPrimary h-2.5 rounded-full transition-all duration-300 ease-in-out"
77
:class="{ 'progress-bar': showAnimation, [`h-${props.height}`]: props.height }"
88
:style="{ width: `${percentage}%` }"
99
></div>
@@ -88,4 +88,4 @@ const formatValue = (value: number): string => {
8888
transform: translateX(100%);
8989
}
9090
}
91-
</style>
91+
</style>

adminforth/spa/src/components/AcceptModal.vue

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -39,20 +39,17 @@
3939
<hr class="border-t-2 border-gray-300 dark:border-gray-500 my-6">
4040

4141
<div class="flex justify-center gap-4 w-full">
42-
<button @click="()=>{modalStore.onAcceptFunction(false);modalStore.togleModal()}" type="button" class="flex-1 py-2.5 px-4 text-sm font-medium text-gray-700 bg-white rounded-default border border-gray-200 hover:bg-gray-50 focus:ring-4 focus:ring-gray-100 transition-all dark:bg-gray-800 dark:text-gray-300 dark:border-gray-600 dark:hover:bg-gray-700">
42+
<Button @click="()=>{modalStore.onAcceptFunction(false);modalStore.togleModal()}" type="button" variant="secondary" class="flex-1">
4343
{{ modalStore?.modalContent?.cancelText }}
44-
</button>
44+
</Button>
4545

46-
<button
46+
<Button
4747
@click="()=>{ modalStore.onAcceptFunction(true);modalStore.togleModal()}"
4848
type="button"
49-
class="flex-1 flex items-center justify-center py-2.5 px-4 text-sm font-medium transition-all focus:outline-none
50-
border-none rounded-default shadow-sm focus:z-10 focus:ring-4 gap-1"
51-
:class="modalStore.modalContent.dangerous
52-
? 'text-lightAcceptModalConfirmButtonText dark:text-darkAcceptModalConfirmButtonText bg-lightAcceptModalConfirmButtonBackground dark:bg-darkAcceptModalConfirmButtonBackground hover:bg-lightAcceptModalConfirmButtonBackgroundHover dark:hover:bg-darkAcceptModalConfirmButtonBackgroundHover focus:ring-lightAcceptModalConfirmButtonFocus dark:focus:ring-darkAcceptModalConfirmButtonFocus'
53-
: 'text-lightButtonsText dark:text-darkButtonsText bg-lightButtonsBackground dark:bg-darkButtonsBackground hover:bg-lightButtonsHover dark:hover:bg-darkButtonsHover focus:ring-lightButtonFocusRing dark:focus:ring-darkButtonFocusRing'">
49+
class="flex-1"
50+
:variant="modalStore.modalContent.dangerous ? 'danger' : 'primary'">
5451
{{ modalStore?.modalContent?.acceptText }}
55-
</button>
52+
</Button>
5653
</div>
5754

5855
<div v-if="modalStore?.modalContent?.guardMessage" class="flex items-center justify-center mt-6 text-xs text-gray-400 gap-1.5 font-medium">
@@ -69,7 +66,7 @@
6966
<script setup lang="ts">
7067
import { watch, ref } from 'vue';
7168
import { useModalStore } from '@/stores/modal';
72-
import { Modal } from '@/afcl';
69+
import { Button, Modal } from '@/afcl';
7370
import { IconClipboardDocumentSolid, IconShieldCheck } from '@iconify-prerendered/vue-heroicons';
7471
7572
@@ -95,4 +92,4 @@ function close() {
9592
modalRef.value.close();
9693
}
9794
98-
</script>
95+
</script>

0 commit comments

Comments
 (0)