Sha256: 9274e18ac3f4866ea0ee25e3444625cf99c3a29926025ba0d8c4db6f6cc95628

Contents?: true

Size: 738 Bytes

Versions: 6

Compression:

Stored size: 738 Bytes

Contents

<template>
  <component
    v-bind:is="icon"
    v-bind="$attrs"
    viewBox="0 0 24 24"
    :width="size"
    :height="size"
    class="fill-current"
    :class="{ 'animate-spin': spin, 'animate-bounce': bounce }"
  ></component>
</template>

<script>
import { defineAsyncComponent } from 'vue'

export default {
  name: 'MaglevIcon',
  props: {
    name: { type: String },
    size: { type: String, default: '1.25rem' },
    spin: { type: Boolean, default: false },
    bounce: { type: Boolean, default: false },
    library: { type: String, default: 'remixicons' },
  },
  computed: {
    icon() {
      return defineAsyncComponent(() =>
        import(`../../assets/${this.library}/${this.name}.svg`),
      )
    },
  },
}
</script>

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
maglevcms-1.1.5 app/frontend/editor/components/kit/icon.vue
maglevcms-1.1.4 app/frontend/editor/components/kit/icon.vue
maglevcms-1.1.3 app/frontend/editor/components/kit/icon.vue
maglevcms-1.1.2 app/frontend/editor/components/kit/icon.vue
maglevcms-1.1.1 app/frontend/editor/components/kit/icon.vue
maglevcms-1.1.0 app/frontend/editor/components/kit/icon.vue