<script>
import theme from "#build/b24ui/kbd";
</script>

<script setup>
import { computed } from "vue";
import { Primitive } from "reka-ui";
import { useAppConfig } from "#imports";
import { useKbd } from "../composables/useKbd";
import { useComponentProps } from "../composables/useComponentProps";
import { tv } from "../utils/tv";
const _props = defineProps({
  as: { type: null, required: false, default: "kbd" },
  value: { type: null, required: false },
  accent: { type: null, required: false, default: "default" },
  size: { type: null, required: false },
  class: { type: null, required: false },
  b24ui: { type: Object, required: false }
});
defineSlots();
const props = useComponentProps("kbd", _props);
const { getKbdKey } = useKbd();
const appConfig = useAppConfig();
const b24ui = computed(() => tv({ extend: theme, ...appConfig.b24ui?.kbd || {} })({
  accent: props.accent,
  size: props.size
}));
</script>

<template>
  <Primitive :as="props.as" data-slot="base" :class="b24ui.base({ class: [props.b24ui?.base, props.class] })">
    <slot>
      {{ getKbdKey(props.value) }}
    </slot>
  </Primitive>
</template>
