Hello from MCP server
<template>
<div class="button-container">
<button
class="yes-button"
:class="{ 'inverse': inverse }"
:disabled="disabled"
@click="handleClick"
>
{{ text }}
</button>
</div>
</template>
<script setup lang="ts">
// YesButton component - reusable primary action button
const props = withDefaults(defineProps<{
text?: string;
inverse?: boolean;
disabled?: boolean;
}>(), {
text: 'Yes',
inverse: false,
disabled: false
});
const emit = defineEmits(['click']);
const handleClick = () => {
if (!props.disabled) {
emit('click');
}
};
</script>
<style scoped>
.button-container {
display: inline-flex;
justify-content: center;
}
.yes-button {
background-color: var(--ion-color-primary);
color: #ffffff;
border: none;
border-radius: 8px;
padding: 16px 48px;
font-size: 20px;
font-weight: 600;
cursor: pointer;
transition: transform 0.2s ease, background-color 0.2s ease;
}
.yes-button:hover {
background-color: var(--ion-color-primary-shade);
transform: scale(1.05);
}
.yes-button:active {
transform: scale(0.95);
}
/* Inverse style */
.yes-button.inverse {
background-color: var(--ion-background-color);
border: 3px solid var(--ion-color-primary);
color: var(--ion-color-primary);
}
.yes-button.inverse:hover {
background-color: var(--ion-color-primary);
color: #ffffff;
}
/* Disabled style matches inverse */
.yes-button:disabled {
background-color: var(--ion-background-color);
border: 3px solid var(--ion-color-primary);
color: var(--ion-color-primary);
opacity: 0.6;
cursor: not-allowed;
}
.yes-button:disabled:hover {
background-color: var(--ion-background-color);
transform: none;
}
/* Mobile adjustments */
@media (max-width: 767px) {
.yes-button {
font-size: 18px;
padding: 12px 36px;
}
}
</style>