fix: prefix imported components

This commit is contained in:
Benjamin Canac
2023-05-05 12:15:20 +02:00
parent 97b1a85ea1
commit 0c69385771
12 changed files with 77 additions and 77 deletions

View File

@@ -6,13 +6,13 @@
:aria-label="ariaLabel" :aria-label="ariaLabel"
v-bind="buttonProps" v-bind="buttonProps"
> >
<Icon v-if="isLeading && leadingIconName" :name="leadingIconName" :class="leadingIconClass" aria-hidden="true" /> <UIcon v-if="isLeading && leadingIconName" :name="leadingIconName" :class="leadingIconClass" aria-hidden="true" />
<slot> <slot>
<span v-if="label" :class="[truncate ? 'text-left break-all line-clamp-1' : '']"> <span v-if="label" :class="[truncate ? 'text-left break-all line-clamp-1' : '']">
{{ label }} {{ label }}
</span> </span>
</slot> </slot>
<Icon v-if="isTrailing && trailingIconName" :name="trailingIconName" :class="trailingIconClass" aria-hidden="true" /> <UIcon v-if="isTrailing && trailingIconName" :name="trailingIconName" :class="trailingIconClass" aria-hidden="true" />
</component> </component>
</template> </template>
@@ -21,7 +21,7 @@ import { ref, computed, defineComponent, useSlots } from 'vue'
import type { PropType } from 'vue' import type { PropType } from 'vue'
import type { RouteLocationNormalized, RouteLocationRaw } from 'vue-router' import type { RouteLocationNormalized, RouteLocationRaw } from 'vue-router'
import { defu } from 'defu' import { defu } from 'defu'
import Icon from '../elements/Icon.vue' import UIcon from '../elements/Icon.vue'
import { classNames } from '../../utils' import { classNames } from '../../utils'
import { NuxtLink } from '#components' import { NuxtLink } from '#components'
import { useAppConfig } from '#imports' import { useAppConfig } from '#imports'
@@ -33,7 +33,7 @@ import appConfig from '#build/app.config'
export default defineComponent({ export default defineComponent({
components: { components: {
Icon UIcon
}, },
props: { props: {
type: { type: {

View File

@@ -27,8 +27,8 @@
@click="item.click" @click="item.click"
> >
<slot :name="item.slot || 'item'" :item="item"> <slot :name="item.slot || 'item'" :item="item">
<Icon v-if="item.icon" :name="item.icon" :class="[ui.item.icon.base, active ? ui.item.icon.active : ui.item.icon.inactive, item.iconClass]" /> <UIcon v-if="item.icon" :name="item.icon" :class="[ui.item.icon.base, active ? ui.item.icon.active : ui.item.icon.inactive, item.iconClass]" />
<Avatar v-else-if="item.avatar" v-bind="{ size: ui.item.avatar.size, ...item.avatar }" :class="ui.item.avatar.base" /> <UAvatar v-else-if="item.avatar" v-bind="{ size: ui.item.avatar.size, ...item.avatar }" :class="ui.item.avatar.base" />
<span class="truncate">{{ item.label }}</span> <span class="truncate">{{ item.label }}</span>
@@ -51,8 +51,8 @@ import type { PropType } from 'vue'
import type { RouteLocationNormalized } from 'vue-router' import type { RouteLocationNormalized } from 'vue-router'
import { defineComponent, ref, computed, onMounted } from 'vue' import { defineComponent, ref, computed, onMounted } from 'vue'
import { defu } from 'defu' import { defu } from 'defu'
import Icon from '../elements/Icon.vue' import UIcon from '../elements/Icon.vue'
import Avatar from '../elements/Avatar.vue' import UAvatar from '../elements/Avatar.vue'
import { classNames, omit } from '../../utils' import { classNames, omit } from '../../utils'
import { usePopper } from '../../composables/usePopper' import { usePopper } from '../../composables/usePopper'
import type { Avatar as AvatarType } from '../../types/avatar' import type { Avatar as AvatarType } from '../../types/avatar'
@@ -72,8 +72,8 @@ export default defineComponent({
MenuButton, MenuButton,
MenuItems, MenuItems,
MenuItem, MenuItem,
Icon, UIcon,
Avatar UAvatar
}, },
props: { props: {
items: { items: {

View File

@@ -2,11 +2,13 @@
<span :class="name" /> <span :class="name" />
</template> </template>
<script setup lang="ts"> <script lang="ts">
defineProps({ export default defineComponent({
name: { props: {
type: String, name: {
required: true type: String,
required: true
}
} }
}) })
</script> </script>

View File

@@ -19,10 +19,10 @@
> >
<slot /> <slot />
<div v-if="isLeading && leadingIconName" :class="leadingIconClass"> <div v-if="isLeading && leadingIconName" :class="leadingIconClass">
<Icon :name="leadingIconName" :class="iconClass" /> <UIcon :name="leadingIconName" :class="iconClass" />
</div> </div>
<div v-if="isTrailing && trailingIconName" :class="trailingIconClass"> <div v-if="isTrailing && trailingIconName" :class="trailingIconClass">
<Icon :name="trailingIconName" :class="iconClass" /> <UIcon :name="trailingIconName" :class="iconClass" />
</div> </div>
</div> </div>
</template> </template>
@@ -31,7 +31,7 @@
import { ref, computed, onMounted, defineComponent } from 'vue' import { ref, computed, onMounted, defineComponent } from 'vue'
import type { PropType } from 'vue' import type { PropType } from 'vue'
import { defu } from 'defu' import { defu } from 'defu'
import Icon from '../elements/Icon.vue' import UIcon from '../elements/Icon.vue'
import { classNames } from '../../utils' import { classNames } from '../../utils'
import { useAppConfig } from '#imports' import { useAppConfig } from '#imports'
// TODO: Remove // TODO: Remove
@@ -42,7 +42,7 @@ import appConfig from '#build/app.config'
export default defineComponent({ export default defineComponent({
components: { components: {
Icon UIcon
}, },
props: { props: {
modelValue: { modelValue: {

View File

@@ -37,11 +37,11 @@
</select> </select>
<div v-if="icon" :class="leadingIconClass"> <div v-if="icon" :class="leadingIconClass">
<Icon :name="icon" :class="iconClass" /> <UIcon :name="icon" :class="iconClass" />
</div> </div>
<span :class="trailingIconClass"> <span :class="trailingIconClass">
<Icon name="i-heroicons-chevron-down-20-solid" :class="iconClass" aria-hidden="true" /> <UIcon name="i-heroicons-chevron-down-20-solid" :class="iconClass" aria-hidden="true" />
</span> </span>
</div> </div>
</template> </template>
@@ -51,7 +51,7 @@ import { computed, defineComponent } from 'vue'
import type { PropType, ComputedRef } from 'vue' import type { PropType, ComputedRef } from 'vue'
import { get } from 'lodash-es' import { get } from 'lodash-es'
import { defu } from 'defu' import { defu } from 'defu'
import Icon from '../elements/Icon.vue' import UIcon from '../elements/Icon.vue'
import { classNames } from '../../utils' import { classNames } from '../../utils'
import { useAppConfig } from '#imports' import { useAppConfig } from '#imports'
// TODO: Remove // TODO: Remove
@@ -62,7 +62,7 @@ import appConfig from '#build/app.config'
export default defineComponent({ export default defineComponent({
components: { components: {
Icon UIcon
}, },
props: { props: {
modelValue: { modelValue: {

View File

@@ -24,7 +24,7 @@
<slot :open="open" :disabled="disabled"> <slot :open="open" :disabled="disabled">
<button :class="selectMenuClass" :disabled="disabled" type="button"> <button :class="selectMenuClass" :disabled="disabled" type="button">
<span v-if="icon" :class="leadingIconClass"> <span v-if="icon" :class="leadingIconClass">
<Icon :name="icon" :class="iconClass" /> <UIcon :name="icon" :class="iconClass" />
</span> </span>
<slot name="label"> <slot name="label">
@@ -33,7 +33,7 @@
</slot> </slot>
<span :class="trailingIconClass"> <span :class="trailingIconClass">
<Icon name="i-heroicons-chevron-down-20-solid" :class="iconClass" aria-hidden="true" /> <UIcon name="i-heroicons-chevron-down-20-solid" :class="iconClass" aria-hidden="true" />
</span> </span>
</button> </button>
</slot> </slot>
@@ -65,8 +65,8 @@
<li :class="resolveOptionClass({ active, disabled: optionDisabled })"> <li :class="resolveOptionClass({ active, disabled: optionDisabled })">
<div :class="ui.option.container"> <div :class="ui.option.container">
<slot name="option" :option="option" :active="active" :selected="selected"> <slot name="option" :option="option" :active="active" :selected="selected">
<Icon v-if="option.icon" :name="option.icon" :class="[ui.option.icon.base, active ? ui.option.icon.active : ui.option.icon.inactive, option.iconClass]" aria-hidden="true" /> <UIcon v-if="option.icon" :name="option.icon" :class="[ui.option.icon.base, active ? ui.option.icon.active : ui.option.icon.inactive, option.iconClass]" aria-hidden="true" />
<Avatar <UAvatar
v-else-if="option.avatar" v-else-if="option.avatar"
v-bind="{ size: ui.option.avatar.size, ...option.avatar }" v-bind="{ size: ui.option.avatar.size, ...option.avatar }"
:class="ui.option.avatar.base" :class="ui.option.avatar.base"
@@ -79,7 +79,7 @@
</div> </div>
<span v-if="selected" :class="ui.option.selected.wrapper"> <span v-if="selected" :class="ui.option.selected.wrapper">
<Icon :name="selectedIcon" :class="ui.option.selected.icon" aria-hidden="true" /> <UIcon :name="selectedIcon" :class="ui.option.selected.icon" aria-hidden="true" />
</span> </span>
</li> </li>
</component> </component>
@@ -109,8 +109,8 @@ import { ref, computed, watch, defineComponent } from 'vue'
import type { PropType, ComponentPublicInstance } from 'vue' import type { PropType, ComponentPublicInstance } from 'vue'
import { defu } from 'defu' import { defu } from 'defu'
import { Combobox, ComboboxButton, ComboboxOptions, ComboboxOption, ComboboxInput, Listbox, ListboxButton, ListboxOptions, ListboxOption } from '@headlessui/vue' import { Combobox, ComboboxButton, ComboboxOptions, ComboboxOption, ComboboxInput, Listbox, ListboxButton, ListboxOptions, ListboxOption } from '@headlessui/vue'
import Icon from '../elements/Icon.vue' import UIcon from '../elements/Icon.vue'
import Avatar from '../elements/Avatar.vue' import UAvatar from '../elements/Avatar.vue'
import { classNames } from '../../utils' import { classNames } from '../../utils'
import { usePopper } from '../../composables/usePopper' import { usePopper } from '../../composables/usePopper'
import type { PopperOptions } from '../../types' import type { PopperOptions } from '../../types'
@@ -132,8 +132,8 @@ export default defineComponent({
ListboxButton, ListboxButton,
ListboxOptions, ListboxOptions,
ListboxOption, ListboxOption,
Icon, UIcon,
Avatar UAvatar
}, },
props: { props: {
modelValue: { modelValue: {

View File

@@ -5,10 +5,10 @@
> >
<span :class="[active ? ui.container.active : ui.container.inactive, ui.container.base]"> <span :class="[active ? ui.container.active : ui.container.inactive, ui.container.base]">
<span v-if="iconOn" :class="[active ? ui.icon.active : ui.icon.inactive, ui.icon.base]" aria-hidden="true"> <span v-if="iconOn" :class="[active ? ui.icon.active : ui.icon.inactive, ui.icon.base]" aria-hidden="true">
<Icon :name="iconOn" :class="ui.icon.on" /> <UIcon :name="iconOn" :class="ui.icon.on" />
</span> </span>
<span v-if="iconOff" :class="[active ? ui.icon.active : ui.icon.inactive, ui.icon.base]" aria-hidden="true"> <span v-if="iconOff" :class="[active ? ui.icon.active : ui.icon.inactive, ui.icon.base]" aria-hidden="true">
<Icon :name="iconOff" :class="ui.icon.off" /> <UIcon :name="iconOff" :class="ui.icon.off" />
</span> </span>
</span> </span>
</Switch> </Switch>
@@ -19,7 +19,7 @@ import { computed, defineComponent } from 'vue'
import type { PropType } from 'vue' import type { PropType } from 'vue'
import { defu } from 'defu' import { defu } from 'defu'
import { Switch } from '@headlessui/vue' import { Switch } from '@headlessui/vue'
import Icon from '../elements/Icon.vue' import UIcon from '../elements/Icon.vue'
import { useAppConfig } from '#imports' import { useAppConfig } from '#imports'
// TODO: Remove // TODO: Remove
// @ts-expect-error // @ts-expect-error
@@ -31,7 +31,7 @@ export default defineComponent({
components: { components: {
// eslint-disable-next-line vue/no-reserved-component-names // eslint-disable-next-line vue/no-reserved-component-names
Switch, Switch,
Icon UIcon
}, },
props: { props: {
modelValue: { modelValue: {

View File

@@ -9,7 +9,7 @@
> >
<div :class="ui.wrapper"> <div :class="ui.wrapper">
<div v-if="searchable" :class="ui.input.wrapper"> <div v-if="searchable" :class="ui.input.wrapper">
<Icon v-if="icon" :name="icon" :class="ui.input.icon" aria-hidden="true" /> <UIcon v-if="icon" :name="icon" :class="ui.input.icon" aria-hidden="true" />
<ComboboxInput <ComboboxInput
ref="comboboxInput" ref="comboboxInput"
:value="query" :value="query"
@@ -19,7 +19,7 @@
@change="query = $event.target.value" @change="query = $event.target.value"
/> />
<Button <UButton
v-if="close" v-if="close"
v-bind="close" v-bind="close"
:class="ui.input.close" :class="ui.input.close"
@@ -53,7 +53,7 @@
</ComboboxOptions> </ComboboxOptions>
<div v-else-if="empty" :class="ui.empty.wrapper"> <div v-else-if="empty" :class="ui.empty.wrapper">
<Icon v-if="empty.icon" :name="empty.icon" :class="ui.empty.icon" aria-hidden="true" /> <UIcon v-if="empty.icon" :name="empty.icon" :class="ui.empty.icon" aria-hidden="true" />
<p :class="query ? ui.empty.queryLabel : ui.empty.label"> <p :class="query ? ui.empty.queryLabel : ui.empty.label">
{{ query ? empty.queryLabel : empty.label }} {{ query ? empty.queryLabel : empty.label }}
</p> </p>
@@ -72,8 +72,8 @@ import { groupBy, map } from 'lodash-es'
import { defu } from 'defu' import { defu } from 'defu'
import type { UseFuseOptions } from '@vueuse/integrations/useFuse' import type { UseFuseOptions } from '@vueuse/integrations/useFuse'
import type { Group, Command } from '../../types/command-palette' import type { Group, Command } from '../../types/command-palette'
import Icon from '../elements/Icon.vue' import UIcon from '../elements/Icon.vue'
import Button from '../elements/Button.vue' import UButton from '../elements/Button.vue'
import type { Button as ButtonType } from '../../types/button' import type { Button as ButtonType } from '../../types/button'
import CommandPaletteGroup from './CommandPaletteGroup.vue' import CommandPaletteGroup from './CommandPaletteGroup.vue'
import { useAppConfig } from '#imports' import { useAppConfig } from '#imports'
@@ -88,9 +88,8 @@ export default defineComponent({
Combobox, Combobox,
ComboboxInput, ComboboxInput,
ComboboxOptions, ComboboxOptions,
Icon, UIcon,
// eslint-disable-next-line vue/no-reserved-component-names UButton,
Button,
CommandPaletteGroup CommandPaletteGroup
}, },
props: { props: {
@@ -127,7 +126,7 @@ export default defineComponent({
default: () => appConfig.ui.commandPalette.default.selectedIcon default: () => appConfig.ui.commandPalette.default.selectedIcon
}, },
close: { close: {
type: Object as PropType<Partial<ButtonType>>, type: Object as PropType<Partial<UButtonType>>,
default: () => appConfig.ui.commandPalette.default.close default: () => appConfig.ui.commandPalette.default.close
}, },
empty: { empty: {

View File

@@ -16,8 +16,8 @@
<div :class="[ui.group.command.base, active ? ui.group.command.active : ui.group.command.inactive, command.disabled ? 'cursor-not-allowed' : 'cursor-pointer']"> <div :class="[ui.group.command.base, active ? ui.group.command.active : ui.group.command.inactive, command.disabled ? 'cursor-not-allowed' : 'cursor-pointer']">
<div :class="ui.group.command.container"> <div :class="ui.group.command.container">
<slot :name="`${group.key}-icon`" :group="group" :command="command"> <slot :name="`${group.key}-icon`" :group="group" :command="command">
<Icon v-if="command.icon" :name="command.icon" :class="[ui.group.command.icon.base, active ? ui.group.command.icon.active : ui.group.command.icon.inactive, command.iconClass]" aria-hidden="true" /> <UIcon v-if="command.icon" :name="command.icon" :class="[ui.group.command.icon.base, active ? ui.group.command.icon.active : ui.group.command.icon.inactive, command.iconClass]" aria-hidden="true" />
<Avatar <UAvatar
v-else-if="command.avatar" v-else-if="command.avatar"
v-bind="{ size: ui.group.command.avatar.size, ...command.avatar }" v-bind="{ size: ui.group.command.avatar.size, ...command.avatar }"
:class="ui.group.command.avatar.base" :class="ui.group.command.avatar.base"
@@ -39,7 +39,7 @@
</div> </div>
</div> </div>
<Icon v-if="selected" :name="selectedIcon" :class="ui.group.command.selected.icon" aria-hidden="true" /> <UIcon v-if="selected" :name="selectedIcon" :class="ui.group.command.selected.icon" aria-hidden="true" />
<slot v-else-if="active && (group.active || $slots[`${group.key}-active`])" :name="`${group.key}-active`" :group="group" :command="command"> <slot v-else-if="active && (group.active || $slots[`${group.key}-active`])" :name="`${group.key}-active`" :group="group" :command="command">
<span v-if="group.active" :class="ui.group.active">{{ group.active }}</span> <span v-if="group.active" :class="ui.group.active">{{ group.active }}</span>
</slot> </slot>
@@ -59,8 +59,8 @@
import { computed, defineComponent } from 'vue' import { computed, defineComponent } from 'vue'
import type { PropType } from 'vue' import type { PropType } from 'vue'
import { ComboboxOption } from '@headlessui/vue' import { ComboboxOption } from '@headlessui/vue'
import Icon from '../elements/Icon.vue' import UIcon from '../elements/Icon.vue'
import Avatar from '../elements/Avatar.vue' import UAvatar from '../elements/Avatar.vue'
import type { Group } from '../../types/command-palette' import type { Group } from '../../types/command-palette'
// TODO: Remove // TODO: Remove
// @ts-expect-error // @ts-expect-error
@@ -71,8 +71,8 @@ import appConfig from '#build/app.config'
export default defineComponent({ export default defineComponent({
components: { components: {
ComboboxOption, ComboboxOption,
Icon, UIcon,
Avatar UAvatar
}, },
props: { props: {
group: { group: {

View File

@@ -1,6 +1,6 @@
<template> <template>
<nav :class="ui.wrapper"> <nav :class="ui.wrapper">
<LinkCustom <ULinkCustom
v-for="(link, index) of links" v-for="(link, index) of links"
v-slot="{ isActive }" v-slot="{ isActive }"
:key="index" :key="index"
@@ -12,14 +12,14 @@
@keyup.enter="$event.target.blur()" @keyup.enter="$event.target.blur()"
> >
<slot name="avatar" :link="link"> <slot name="avatar" :link="link">
<Avatar <UAvatar
v-if="link.avatar" v-if="link.avatar"
v-bind="{ size: ui.avatar.size, ...link.avatar }" v-bind="{ size: ui.avatar.size, ...link.avatar }"
:class="[ui.avatar.base]" :class="[ui.avatar.base]"
/> />
</slot> </slot>
<slot name="icon" :link="link" :is-active="isActive"> <slot name="icon" :link="link" :is-active="isActive">
<Icon <UIcon
v-if="link.icon" v-if="link.icon"
:name="link.icon" :name="link.icon"
:class="[ui.icon.base, isActive ? ui.icon.active : ui.icon.inactive, link.iconClass]" :class="[ui.icon.base, isActive ? ui.icon.active : ui.icon.inactive, link.iconClass]"
@@ -33,7 +33,7 @@
{{ link.badge }} {{ link.badge }}
</span> </span>
</slot> </slot>
</LinkCustom> </ULinkCustom>
</nav> </nav>
</template> </template>
@@ -42,9 +42,9 @@ import { computed, defineComponent } from 'vue'
import type { PropType } from 'vue' import type { PropType } from 'vue'
import type { RouteLocationNormalized } from 'vue-router' import type { RouteLocationNormalized } from 'vue-router'
import { defu } from 'defu' import { defu } from 'defu'
import Icon from '../elements/Icon.vue' import UIcon from '../elements/Icon.vue'
import Avatar from '../elements/Avatar.vue' import UAvatar from '../elements/Avatar.vue'
import LinkCustom from '../elements/LinkCustom.vue' import ULinkCustom from '../elements/LinkCustom.vue'
import type { Avatar as AvatarType } from '../../types/avatar' import type { Avatar as AvatarType } from '../../types/avatar'
import { useAppConfig } from '#imports' import { useAppConfig } from '#imports'
// TODO: Remove // TODO: Remove
@@ -55,9 +55,9 @@ import appConfig from '#build/app.config'
export default defineComponent({ export default defineComponent({
components: { components: {
Icon, UIcon,
Avatar, UAvatar,
LinkCustom ULinkCustom
}, },
props: { props: {
links: { links: {

View File

@@ -8,8 +8,8 @@
<div :class="[ui.container, ui.rounded, ui.ring]"> <div :class="[ui.container, ui.rounded, ui.ring]">
<div class="p-4"> <div class="p-4">
<div class="flex gap-3" :class="{ 'items-start': description, 'items-center': !description }"> <div class="flex gap-3" :class="{ 'items-start': description, 'items-center': !description }">
<Icon v-if="icon" :name="icon" :class="ui.icon" /> <UIcon v-if="icon" :name="icon" :class="ui.icon" />
<Avatar v-if="avatar" v-bind="avatar" :class="ui.avatar" /> <UAvatar v-if="avatar" v-bind="avatar" :class="ui.avatar" />
<div class="w-0 flex-1"> <div class="w-0 flex-1">
<p :class="ui.title"> <p :class="ui.title">
@@ -20,15 +20,15 @@
</p> </p>
<div v-if="description && actions.length" class="mt-3 flex items-center gap-2"> <div v-if="description && actions.length" class="mt-3 flex items-center gap-2">
<Button v-for="(action, index) of actions" :key="index" v-bind="{ ...ui.default.action, ...action }" @click.stop="onAction(action)" /> <UButton v-for="(action, index) of actions" :key="index" v-bind="{ ...ui.default.action, ...action }" @click.stop="onAction(action)" />
</div> </div>
</div> </div>
<div class="flex-shrink-0 flex items-center gap-3"> <div class="flex-shrink-0 flex items-center gap-3">
<div v-if="!description && actions.length" class="flex items-center gap-2"> <div v-if="!description && actions.length" class="flex items-center gap-2">
<Button v-for="(action, index) of actions" :key="index" v-bind="{ ...ui.default.action, ...action }" @click.stop="onAction(action)" /> <UButton v-for="(action, index) of actions" :key="index" v-bind="{ ...ui.default.action, ...action }" @click.stop="onAction(action)" />
</div> </div>
<Button v-if="close" v-bind="{ ...ui.default.close, ...close }" @click.stop="onClose" /> <UButton v-if="close" v-bind="{ ...ui.default.close, ...close }" @click.stop="onClose" />
</div> </div>
</div> </div>
</div> </div>
@@ -42,9 +42,9 @@
import { ref, computed, onMounted, onUnmounted, watchEffect, defineComponent } from 'vue' import { ref, computed, onMounted, onUnmounted, watchEffect, defineComponent } from 'vue'
import type { PropType } from 'vue' import type { PropType } from 'vue'
import { defu } from 'defu' import { defu } from 'defu'
import Icon from '../elements/Icon.vue' import UIcon from '../elements/Icon.vue'
import Avatar from '../elements/Avatar.vue' import UAvatar from '../elements/Avatar.vue'
import Button from '../elements/Button.vue' import UButton from '../elements/Button.vue'
import { useTimer } from '../../composables/useTimer' import { useTimer } from '../../composables/useTimer'
import type { ToastNotificationAction } from '../../types' import type { ToastNotificationAction } from '../../types'
import type { Avatar as AvatarType } from '../../types/avatar' import type { Avatar as AvatarType } from '../../types/avatar'
@@ -58,10 +58,9 @@ import appConfig from '#build/app.config'
export default defineComponent({ export default defineComponent({
components: { components: {
Icon, UIcon,
Avatar, UAvatar,
// eslint-disable-next-line vue/no-reserved-component-names UButton
Button
}, },
props: { props: {
id: { id: {

View File

@@ -2,7 +2,7 @@
<div :class="ui.wrapper"> <div :class="ui.wrapper">
<div v-if="notifications.length" :class="ui.container"> <div v-if="notifications.length" :class="ui.container">
<div v-for="notification of notifications" :key="notification.id"> <div v-for="notification of notifications" :key="notification.id">
<Notification <UNotification
v-bind="notification" v-bind="notification"
:class="notification.click && 'cursor-pointer'" :class="notification.click && 'cursor-pointer'"
@click="notification.click && notification.click(notification)" @click="notification.click && notification.click(notification)"
@@ -19,7 +19,7 @@ import type { PropType } from 'vue'
import { defu } from 'defu' import { defu } from 'defu'
import type { ToastNotification } from '../../types' import type { ToastNotification } from '../../types'
import { useToast } from '../../composables/useToast' import { useToast } from '../../composables/useToast'
import Notification from './Notification.vue' import UNotification from './Notification.vue'
import { useState, useAppConfig } from '#imports' import { useState, useAppConfig } from '#imports'
// TODO: Remove // TODO: Remove
// @ts-expect-error // @ts-expect-error
@@ -29,7 +29,7 @@ import appConfig from '#build/app.config'
export default defineComponent({ export default defineComponent({
components: { components: {
Notification UNotification
}, },
props: { props: {
ui: { ui: {