Hello from MCP server

List Files | Just Commands | Repo | Logs

← back |
<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>