<template>
  <div
    class="group flex cursor-pointer items-center justify-start gap-2 whitespace-nowrap"
  >
    <button
      :class="[
        'h-[40px] cursor-pointer min-w-40 rounded-[10px] px-[22px] transition-all sm:h-[50px] md:h-[65px] md:rounded-[15px] md:px-[42px]',
        type === 'fill'
          ? 'bg-button text-text-dark group-hover:bg-button-hover'
          : type === 'border'
            ? 'border-button text-button group-hover:border-button-hover group-hover:text-button-hover border'
            : 'border-button text-button dark:border-block dark:text-block group-hover:border-button-hover group-hover:text-button-hover border',
        full && 'w-full',
      ]"
    >
      <slot />
    </button>
    <div
      v-if="arrow"
      :class="[
        'flex h-[40px] w-[40px] items-center justify-center rounded-[10px] p-2.5 transition-all sm:h-[50px] sm:w-[50px] md:h-[65px] md:w-[65px] md:rounded-[15px]',
        type === 'fill'
          ? 'bg-button text-text-dark group-hover:bg-button-hover'
          : 'border-button text-button dark:border-block dark:text-block group-hover:border-button-hover group-hover:text-button-hover border',
      ]"
    >
      <svg
        class=""
        width="26"
        height="26"
        viewBox="0 0 26 26"
        fill="none"
        xmlns="http://www.w3.org/2000/svg"
      >
        <path
          d="M25.1274 1.87258C25.1274 1.3203 24.6797 0.872582 24.1274 0.872584L15.1274 0.872583C14.5751 0.872583 14.1274 1.3203 14.1274 1.87258C14.1274 2.42487 14.5751 2.87258 15.1274 2.87258L23.1274 2.87258L23.1274 10.8726C23.1274 11.4249 23.5751 11.8726 24.1274 11.8726C24.6797 11.8726 25.1274 11.4249 25.1274 10.8726L25.1274 1.87258ZM1.5 24.5L2.20711 25.2071L24.8345 2.57969L24.1274 1.87258L23.4203 1.16548L0.792893 23.7929L1.5 24.5Z"
          fill="currentColor"
        />
      </svg>
    </div>
  </div>
</template>

<script lang="ts" setup>
defineProps({
  type: {
    type: String,
  },
  arrow: {
    type: Boolean,
  },
  full: {
    type: Boolean,
  },
})
</script>
