<template>
  <svg
    xmlns="http://www.w3.org/2000/svg"
    :width="width"
    :height="height"
    :viewBox="viewBox"
    :class="`app-icon-${iconName}`"
    role="presentation"
  >
    <g :fill="iconColor">
      <slot />
    </g>
  </svg>
</template>

<script>
export default {
  props: {
    iconName: {
      type: String,
      default: "box",
    },
    width: {
      type: [Number, String],
      default: 18,
    },
    height: {
      type: [Number, String],
      default: 18,
    },
    iconColor: {
      type: String,
      default: "currentColor",
    },
    viewBox: {
      type: String,
      default: "0 0 17 17",
    },
  },
};
</script>

<style scoped>
svg {
  display: inline-flex;
  align-items: center;
  margin-bottom: -2px;
  justify-content: center;
}
</style>