123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332 |
- <template>
- <div :class="`grid ${grid} gap-y-6`">
- <div v-for="icon in icons" :key="icon" class="flex justify-center hover:cursor-pointer" @click="selectIcon(icon)">
- <div v-if="modelValue === icon">
- <div class="flex justify-center w-full text-violet-700"><Icon :name="icon" /></div>
- <div class="text-sm text-violet-700">{{ icon }}</div>
- </div>
- <div v-else>
- <div class="flex justify-center w-full"><Icon :name="icon" /></div>
- <div class="text-sm">{{ icon }}</div>
- </div>
- </div>
- </div>
- </template>
- <script lang="ts" setup>
- const props = defineProps({
- modelValue: {
- type: String,
- require: true,
- },
- grid: {
- type: String,
- default: 'grid-cols-5',
- },
- })
- const emits = defineEmits(['update:modelValue', 'close'])
- const selectIcon = (icon: string) => {
- emits('update:modelValue', icon)
- emits('close')
- }
- // icons
- const icons = [
- 'academic-cap',
- 'adjustments-horizontal',
- 'adjustments-vertical',
- 'archive-box-arrow-down',
- 'archive-box-x-mark',
- 'archive-box',
- 'arrow-down-circle',
- 'arrow-down-left',
- 'arrow-down-on-square-stack',
- 'arrow-down-on-square',
- 'arrow-down-right',
- 'arrow-down-tray',
- 'arrow-down',
- 'arrow-left-circle',
- 'arrow-left-on-rectangle',
- 'arrow-left',
- 'arrow-long-down',
- 'arrow-long-left',
- 'arrow-long-right',
- 'arrow-long-up',
- 'arrow-path-rounded-square',
- 'arrow-path',
- 'arrow-right-circle',
- 'arrow-right-on-rectangle',
- 'arrow-right',
- 'arrow-small-down',
- 'arrow-small-left',
- 'arrow-small-right',
- 'arrow-small-up',
- 'arrow-top-right-on-square',
- 'arrow-trending-down',
- 'arrow-trending-up',
- 'arrow-up-circle',
- 'arrow-up-left',
- 'arrow-up-on-square-stack',
- 'arrow-up-on-square',
- 'arrow-up-right',
- 'arrow-up-tray',
- 'arrow-up',
- 'arrow-uturn-down',
- 'arrow-uturn-left',
- 'arrow-uturn-right',
- 'arrow-uturn-up',
- 'arrows-pointing-in',
- 'arrows-pointing-out',
- 'arrows-right-left',
- 'arrows-up-down',
- 'at-symbol',
- 'backspace',
- 'backward',
- 'banknotes',
- 'bars-2',
- 'bars-3-bottom-left',
- 'bars-3-bottom-right',
- 'bars-3-center-left',
- 'bars-3',
- 'bars-4',
- 'bars-arrow-down',
- 'bars-arrow-up',
- 'battery-0',
- 'battery-100',
- 'battery-50',
- 'beaker',
- 'bell-alert',
- 'bell-slash',
- 'bell-snooze',
- 'bell',
- 'bolt-slash',
- 'bolt',
- 'book-open',
- 'bookmark-slash',
- 'bookmark-square',
- 'bookmark',
- 'briefcase',
- 'bug-ant',
- 'building-library',
- 'building-office-2',
- 'building-office',
- 'building-storefront',
- 'cake',
- 'calculator',
- 'calendar-days',
- 'calendar',
- 'camera',
- 'chart-bar-square',
- 'chart-bar',
- 'chart-pie',
- 'chat-bubble-bottom-center-text',
- 'chat-bubble-bottom-center',
- 'chat-bubble-left-ellipsis',
- 'chat-bubble-left-right',
- 'chat-bubble-left',
- 'chat-bubble-oval-left-ellipsis',
- 'chat-bubble-oval-left',
- 'check-badge',
- 'check-circle',
- 'check',
- 'chevron-double-down',
- 'chevron-double-left',
- 'chevron-double-right',
- 'chevron-double-up',
- 'chevron-down',
- 'chevron-left',
- 'chevron-right',
- 'chevron-up-down',
- 'chevron-up',
- 'circle-stack',
- 'clipboard-document-check',
- 'clipboard-document-list',
- 'clipboard-document',
- 'clipboard',
- 'clock',
- 'cloud-arrow-down',
- 'cloud-arrow-up',
- 'cloud',
- 'code-bracket-square',
- 'code-bracket',
- 'cog-6-tooth',
- 'cog-8-tooth',
- 'cog',
- 'command-line',
- 'computer-desktop',
- 'cpu-chip',
- 'credit-card',
- 'cube-transparent',
- 'cube',
- 'currency-bangladeshi',
- 'currency-dollar',
- 'currency-euro',
- 'currency-pound',
- 'currency-rupee',
- 'currency-yen',
- 'cursor-arrow-rays',
- 'cursor-arrow-ripple',
- 'device-phone-mobile',
- 'device-tablet',
- 'document-arrow-down',
- 'document-arrow-up',
- 'document-chart-bar',
- 'document-check',
- 'document-duplicate',
- 'document-magnifying-glass',
- 'document-minus',
- 'document-plus',
- 'document-text',
- 'document',
- 'ellipsis-horizontal-circle',
- 'ellipsis-horizontal',
- 'ellipsis-vertical',
- 'envelope-open',
- 'envelope',
- 'exclamation-circle',
- 'exclamation-triangle',
- 'eye-dropper',
- 'eye-slash',
- 'eye',
- 'face-frown',
- 'face-smile',
- 'film',
- 'finger-print',
- 'fire',
- 'flag',
- 'folder-arrow-down',
- 'folder-minus',
- 'folder-open',
- 'folder-plus',
- 'folder',
- 'forward',
- 'funnel',
- 'gif',
- 'gift-top',
- 'gift',
- 'globe-alt',
- 'globe-americas',
- 'globe-asia-australia',
- 'globe-europe-africa',
- 'hand-raised',
- 'hand-thumb-down',
- 'hand-thumb-up',
- 'hashtag',
- 'heart',
- 'home-modern',
- 'home',
- 'identification',
- 'inbox-arrow-down',
- 'inbox-stack',
- 'inbox',
- 'information-circle',
- 'key',
- 'language',
- 'lifebuoy',
- 'light-bulb',
- 'link',
- 'list-bullet',
- 'lock-closed',
- 'lock-open',
- 'magnifying-glass-circle',
- 'magnifying-glass-minus',
- 'magnifying-glass-plus',
- 'magnifying-glass',
- 'map-pin',
- 'map',
- 'megaphone',
- 'microphone',
- 'minus-circle',
- 'minus-small',
- 'minus',
- 'moon',
- 'musical-note',
- 'newspaper',
- 'no-symbol',
- 'paint-brush',
- 'paper-airplane',
- 'paper-clip',
- 'pause-circle',
- 'pause',
- 'pencil-square',
- 'pencil',
- 'phone-arrow-down-left',
- 'phone-arrow-up-right',
- 'phone-x-mark',
- 'phone',
- 'photo',
- 'play-circle',
- 'play-pause',
- 'play',
- 'plus-circle',
- 'plus-small',
- 'plus',
- 'power',
- 'presentation-chart-bar',
- 'presentation-chart-line',
- 'printer',
- 'puzzle-piece',
- 'qr-code',
- 'question-mark-circle',
- 'queue-list',
- 'radio',
- 'receipt-percent',
- 'receipt-refund',
- 'rectangle-group',
- 'rectangle-stack',
- 'rocket-launch',
- 'rss',
- 'scale',
- 'scissors',
- 'server-stack',
- 'server',
- 'share',
- 'shield-check',
- 'shield-exclamation',
- 'shopping-bag',
- 'shopping-cart',
- 'signal-slash',
- 'signal',
- 'sparkles',
- 'speaker-wave',
- 'speaker-x-mark',
- 'square-2-stack',
- 'square-3-stack-3d',
- 'squares-2x2',
- 'squares-plus',
- 'star',
- 'stop-circle',
- 'stop',
- 'sun',
- 'swatch',
- 'table-cells',
- 'tag',
- 'ticket',
- 'trash',
- 'trophy',
- 'truck',
- 'tv',
- 'user-circle',
- 'user-group',
- 'user-minus',
- 'user-plus',
- 'user',
- 'users',
- 'variable',
- 'video-camera-slash',
- 'video-camera',
- 'view-columns',
- 'viewfinder-circle',
- 'wallet',
- 'wifi',
- 'window',
- 'wrench-screwdriver',
- 'wrench',
- 'x-circle',
- 'x-mark',
- ]
- </script>
- <style scoped></style>
|