replace el-tag with Badge

This commit is contained in:
pa
2026-01-07 17:41:33 +09:00
committed by Natsumi
parent 02e221e307
commit f819a3f500
16 changed files with 272 additions and 414 deletions

View File

@@ -31,28 +31,19 @@
v-text="avatarDialog.ref.authorName"></span>
</div>
<div>
<el-tag
<Badge
v-if="avatarDialog.ref.releaseStatus === 'public'"
type="success"
effect="plain"
size="small"
style="margin-right: 5px; margin-top: 5px"
>{{ t('dialog.avatar.tags.public') }}</el-tag
>
<el-tag
v-else
type="danger"
effect="plain"
size="small"
style="margin-right: 5px; margin-top: 5px"
>{{ t('dialog.avatar.tags.private') }}</el-tag
>
variant="outline"
style="margin-right: 5px; margin-top: 5px">
{{ t('dialog.avatar.tags.public') }}
</Badge>
<Badge v-else variant="outline" style="margin-right: 5px; margin-top: 5px">
{{ t('dialog.avatar.tags.private') }}
</Badge>
<TooltipWrapper v-if="avatarDialog.isPC" side="top" content="PC">
<el-tag
<Badge
class="x-tag-platform-pc"
type="info"
effect="plain"
size="small"
variant="outline"
style="margin-right: 5px; margin-top: 5px"
><i class="ri-computer-line"></i>
<span
@@ -65,14 +56,12 @@
:class="['x-grey', 'x-tag-platform-pc', 'x-tag-border-left']"
>{{ avatarDialog.bundleSizes['standalonewindows'].fileSize }}</span
>
</el-tag>
</Badge>
</TooltipWrapper>
<TooltipWrapper v-if="avatarDialog.isQuest" side="top" content="Android">
<el-tag
<Badge
class="x-tag-platform-quest"
type="info"
effect="plain"
size="small"
variant="outline"
style="margin-right: 5px; margin-top: 5px"
><i class="ri-android-line"></i>
<span
@@ -85,14 +74,12 @@
:class="['x-grey', 'x-tag-platform-quest', 'x-tag-border-left']"
>{{ avatarDialog.bundleSizes['android'].fileSize }}</span
>
</el-tag>
</Badge>
</TooltipWrapper>
<TooltipWrapper v-if="avatarDialog.isIos" side="top" content="iOS">
<el-tag
<Badge
class="x-tag-platform-ios"
type="info"
effect="plain"
size="small"
variant="outline"
style="margin-right: 5px; margin-top: 5px"
><i class="ri-apple-line"></i>
<span
@@ -105,24 +92,20 @@
:class="['x-grey', 'x-tag-platform-ios', 'x-tag-border-left']"
>{{ avatarDialog.bundleSizes['ios'].fileSize }}</span
>
</el-tag>
</Badge>
</TooltipWrapper>
<el-tag
<Badge
v-if="avatarDialog.inCache"
variant="outline"
class="x-link"
type="info"
effect="plain"
size="small"
style="margin-right: 5px; margin-top: 5px"
@click="openFolderGeneric(avatarDialog.cachePath)">
<span v-text="avatarDialog.cacheSize"></span>
&nbsp;{{ t('dialog.avatar.tags.cache') }}
</el-tag>
<el-tag
</Badge>
<Badge
v-if="avatarDialog.ref.styles?.primary || avatarDialog.ref.styles?.secondary"
type="info"
effect="plain"
size="small"
variant="outline"
style="margin-right: 5px; margin-top: 5px"
>Styles
<span v-if="avatarDialog.ref.styles.primary" :class="['x-grey', 'x-tag-border-left']">{{
@@ -133,40 +116,33 @@
:class="['x-grey', 'x-tag-border-left']"
>{{ avatarDialog.ref.styles.secondary }}</span
>
</el-tag>
<el-tag
</Badge>
<Badge
v-if="avatarDialog.isQuestFallback"
type="info"
effect="plain"
size="small"
style="margin-right: 5px; margin-top: 5px"
>{{ t('dialog.avatar.tags.fallback') }}</el-tag
>
<el-tag
variant="outline"
style="margin-right: 5px; margin-top: 5px">
{{ t('dialog.avatar.tags.fallback') }}
</Badge>
<Badge
v-if="avatarDialog.hasImposter"
type="info"
effect="plain"
size="small"
variant="outline"
style="margin-right: 5px; margin-top: 5px"
>{{ t('dialog.avatar.tags.impostor') }}
<span v-if="avatarDialog.imposterVersion" :class="['x-grey', 'x-tag-border-left']"
>v{{ avatarDialog.imposterVersion }}</span
>
</el-tag>
<el-tag
</Badge>
<Badge
v-if="avatarDialog.ref.unityPackageUrl"
type="success"
effect="plain"
size="small"
style="margin-right: 5px; margin-top: 5px"
>{{ t('dialog.avatar.tags.future_proofing') }}</el-tag
>
variant="outline"
style="margin-right: 5px; margin-top: 5px">
{{ t('dialog.avatar.tags.future_proofing') }}
</Badge>
<div>
<template v-for="tag in avatarDialog.ref.tags" :key="tag">
<el-tag
<Badge
v-if="tag.startsWith('content_')"
effect="plain"
size="small"
variant="outline"
style="margin-right: 5px; margin-top: 5px">
<span v-if="tag === 'content_horror'">{{
t('dialog.avatar.tags.content_horror')
@@ -184,16 +160,15 @@
t('dialog.avatar.tags.content_sex')
}}</span>
<span v-else>{{ tag.replace('content_', '') }}</span>
</el-tag>
<el-tag
</Badge>
<Badge
v-if="tag.startsWith('author_tag_')"
effect="plain"
size="small"
variant="outline"
style="margin-right: 5px; margin-top: 5px">
<span>
{{ tag.replace('author_tag_', '') }}
</span>
</el-tag>
</Badge>
</template>
</div>
</div>
@@ -507,8 +482,8 @@
<span class="name"
>{{ t('dialog.avatar.info.time_spent')
}}<TooltipWrapper side="top" :content="t('dialog.world.info.accuracy_notice')">
<el-icon style="margin-left: 3px"><Warning /></el-icon>
</TooltipWrapper></span>
<el-icon style="margin-left: 3px"><Warning /></el-icon> </TooltipWrapper
></span>
<span v-if="timeSpent === 0" class="extra">-</span>
<span v-else class="extra">{{ timeToText(timeSpent) }}</span>
@@ -612,6 +587,7 @@
import { useAvatarStore, useFavoriteStore, useGalleryStore, useGameStore, useUserStore } from '../../../stores';
import { avatarModerationRequest, avatarRequest, favoriteRequest, miscRequest } from '../../../api';
import { AppDebug } from '../../../service/appConfig.js';
import { Badge } from '../../ui/badge';
import { database } from '../../../service/database';
import { getNextDialogIndex } from '../../../shared/utils/base/ui';
import { handleImageUploadInput } from '../../../shared/utils/imageUpload';

View File

@@ -62,13 +62,13 @@
</div>
<div class="custom-nav-entry__folder-items">
<template v-if="entry.items?.length">
<el-tag
<Badge
v-for="key in entry.items"
:key="`${entry.id}-${key}`"
size="small"
variant="outline"
class="custom-nav-entry__folder-tag">
{{ t(definitionsMap.get(key)?.labelKey || key) }}
</el-tag>
</Badge>
</template>
<span v-else class="custom-nav-entry__folder-empty">
{{ t('nav_menu.custom_nav.folder_empty') }}
@@ -205,6 +205,7 @@
import dayjs from 'dayjs';
import { Badge } from '../ui/badge';
import { navDefinitions } from '../../shared/constants/ui.js';
import IconPicker from '../IconPicker.vue';

View File

@@ -44,111 +44,85 @@
v-text="groupDialog.ownerDisplayName"></span>
</div>
<div class="group-tags">
<el-tag
<Badge
v-if="groupDialog.ref.isVerified"
type="info"
effect="plain"
size="small"
variant="outline"
style="margin-right: 5px; margin-top: 5px">
{{ t('dialog.group.tags.verified') }}
</el-tag>
<el-tag
</Badge>
<Badge
v-if="groupDialog.ref.privacy === 'private'"
type="danger"
effect="plain"
size="small"
variant="outline"
style="margin-right: 5px; margin-top: 5px">
{{ t('dialog.group.tags.private') }}
</el-tag>
<el-tag
</Badge>
<Badge
v-if="groupDialog.ref.privacy === 'default'"
type="success"
effect="plain"
size="small"
variant="outline"
style="margin-right: 5px; margin-top: 5px">
{{ t('dialog.group.tags.public') }}
</el-tag>
<el-tag
</Badge>
<Badge
v-if="groupDialog.ref.joinState === 'open'"
type="success"
effect="plain"
size="small"
variant="outline"
style="margin-right: 5px; margin-top: 5px">
{{ t('dialog.group.tags.open') }}
</el-tag>
<el-tag
</Badge>
<Badge
v-else-if="groupDialog.ref.joinState === 'request'"
type="warning"
effect="plain"
size="small"
variant="outline"
style="margin-right: 5px; margin-top: 5px">
{{ t('dialog.group.tags.request') }}
</el-tag>
<el-tag
</Badge>
<Badge
v-else-if="groupDialog.ref.joinState === 'invite'"
type="danger"
effect="plain"
size="small"
variant="outline"
style="margin-right: 5px; margin-top: 5px">
{{ t('dialog.group.tags.invite') }}
</el-tag>
<el-tag
</Badge>
<Badge
v-else-if="groupDialog.ref.joinState === 'closed'"
type="danger"
effect="plain"
size="small"
variant="outline"
style="margin-right: 5px; margin-top: 5px">
{{ t('dialog.group.tags.closed') }}
</el-tag>
<el-tag
</Badge>
<Badge
v-if="groupDialog.inGroup"
type="info"
effect="plain"
size="small"
variant="outline"
style="margin-right: 5px; margin-top: 5px">
{{ t('dialog.group.tags.joined') }}
</el-tag>
<el-tag
</Badge>
<Badge
v-if="groupDialog.ref.myMember && groupDialog.ref.myMember.bannedAt"
type="danger"
effect="plain"
size="small"
variant="outline"
style="margin-right: 5px; margin-top: 5px">
{{ t('dialog.group.tags.banned') }}
</el-tag>
</Badge>
<template v-if="groupDialog.inGroup && groupDialog.ref.myMember">
<el-tag
<Badge
v-if="groupDialog.ref.myMember.visibility === 'visible'"
type="info"
effect="plain"
size="small"
variant="outline"
style="margin-right: 5px; margin-top: 5px">
{{ t('dialog.group.tags.visible') }}
</el-tag>
<el-tag
</Badge>
<Badge
v-else-if="groupDialog.ref.myMember.visibility === 'friends'"
type="info"
effect="plain"
size="small"
variant="outline"
style="margin-right: 5px; margin-top: 5px">
{{ t('dialog.group.tags.friends') }}
</el-tag>
<el-tag
</Badge>
<Badge
v-else-if="groupDialog.ref.myMember.visibility === 'hidden'"
type="info"
effect="plain"
size="small"
variant="outline"
style="margin-right: 5px; margin-top: 5px">
{{ t('dialog.group.tags.hidden') }}
</el-tag>
<el-tag
</Badge>
<Badge
v-if="groupDialog.ref.myMember.isSubscribedToAnnouncements"
type="info"
effect="plain"
size="small"
variant="outline"
style="margin-right: 5px; margin-top: 5px">
{{ t('dialog.group.tags.subscribed') }}
</el-tag>
</Badge>
</template>
</div>
<div style="margin-top: 5px">
@@ -192,9 +166,7 @@
</TooltipWrapper>
</template>
<template v-else-if="groupDialog.ref.myMember?.membershipStatus === 'requested'">
<TooltipWrapper
side="top"
:content="t('dialog.group.actions.cancel_join_request_tooltip')">
<TooltipWrapper side="top" :content="t('dialog.group.actions.cancel_join_request_tooltip')">
<span>
<el-button
type="default"
@@ -649,8 +621,8 @@
:icon="CopyDocument"
circle
style="margin-left: 5px"
@click="copyToClipboard(groupDialog.ref.$url)" />
</TooltipWrapper></span>
@click="copyToClipboard(groupDialog.ref.$url)" /> </TooltipWrapper
></span>
</div>
</div>
<div class="x-friend-item" style="width: 350px; cursor: default">
@@ -665,8 +637,8 @@
:icon="CopyDocument"
circle
style="margin-left: 5px"
@click="copyToClipboard(groupDialog.id)" />
</TooltipWrapper></span>
@click="copyToClipboard(groupDialog.id)" /> </TooltipWrapper
></span>
</div>
</div>
<div
@@ -1205,6 +1177,7 @@
} from '../../../shared/utils';
import { useGalleryStore, useGroupStore, useLocationStore, useUserStore } from '../../../stores';
import { groupDialogFilterOptions, groupDialogSortingOptions } from '../../../shared/constants';
import { Badge } from '../../ui/badge';
import { getNextDialogIndex } from '../../../shared/utils/base/ui';
import { groupRequest } from '../../../api';

View File

@@ -723,14 +723,11 @@
style="margin-left: 5px"
@click="clearSelectedGroupMembers"></el-button>
<br />
<el-tag
<Badge
v-for="user in selectedUsersArray"
:key="user.id"
type="info"
:disable-transitions="true"
style="margin-right: 5px; margin-top: 5px"
closable
@close="deleteSelectedGroupMember(user)">
variant="outline"
style="margin-right: 5px; margin-top: 5px">
<TooltipWrapper v-if="user.membershipStatus !== 'member'" side="top">
<template #content>
<span>{{ t('dialog.group_member_moderation.user_isnt_in_group') }}</span>
@@ -738,7 +735,22 @@
<el-icon style="margin-left: 3px; display: inline-block"><Warning /></el-icon>
</TooltipWrapper>
<span v-text="user.user?.displayName || user.userId" style="font-weight: bold; margin-left: 5px"></span>
</el-tag>
<button
type="button"
style="
margin-left: 6px;
border: none;
background: transparent;
padding: 0;
display: inline-flex;
align-items: center;
color: inherit;
cursor: pointer;
"
@click="deleteSelectedGroupMember(user)">
<i class="ri-close-line" style="font-size: 12px; line-height: 1"></i>
</button>
</Badge>
<br />
<br />
<span class="name">{{ t('dialog.group_member_moderation.notes') }}</span>
@@ -860,6 +872,7 @@
import { useAppearanceSettingsStore, useGalleryStore, useGroupStore, useUserStore } from '../../../stores';
import { groupDialogFilterOptions, groupDialogSortingOptions } from '../../../shared/constants';
import { groupRequest, userRequest } from '../../../api';
import { Badge } from '../../ui/badge';
import GroupMemberModerationExportDialog from './GroupMemberModerationExportDialog.vue';

View File

@@ -7,19 +7,28 @@
append-to-body>
<div v-loading="languageDialog.loading">
<div v-for="item in currentUser.$languages" :key="item.key" style="margin: 6px 0">
<el-tag
size="small"
type="info"
effect="plain"
closable
style="margin-right: 5px"
@close="removeUserLanguage(item.key)">
<Badge variant="outline" style="margin-right: 5px">
<span
class="flags"
:class="languageClass(item.key)"
style="display: inline-block; margin-right: 5px"></span>
{{ item.value }} ({{ item.key.toUpperCase() }})
</el-tag>
<button
type="button"
style="
margin-left: 6px;
border: none;
background: transparent;
padding: 0;
display: inline-flex;
align-items: center;
color: inherit;
cursor: pointer;
"
@click="removeUserLanguage(item.key)">
<i class="ri-close-line" style="font-size: 12px; line-height: 1"></i>
</button>
</Badge>
</div>
<el-select
:disabled="languageDialog.loading || (currentUser.$languages && currentUser.$languages.length === 3)"
@@ -46,6 +55,7 @@
import { storeToRefs } from 'pinia';
import { useI18n } from 'vue-i18n';
import { Badge } from '../../ui/badge';
import { languageClass } from '../../../shared/utils';
import { useUserStore } from '../../../stores';
import { userRequest } from '../../../api';

View File

@@ -74,24 +74,20 @@
</div>
<div style="margin-top: 5px" v-show="!userDialog.loading">
<TooltipWrapper side="top" :content="t('dialog.user.tags.trust_level')">
<el-tag
type="info"
effect="plain"
size="small"
<Badge
variant="outline"
class="name"
:class="userDialog.ref.$trustClass"
style="margin-right: 5px; margin-top: 5px">
<i class="ri-shield-line"></i> {{ userDialog.ref.$trustLevel }}
</el-tag>
</Badge>
</TooltipWrapper>
<TooltipWrapper
v-if="userDialog.ref.ageVerified && userDialog.ref.ageVerificationStatus"
side="top"
:content="t('dialog.user.tags.age_verified')">
<el-tag
type="info"
effect="plain"
size="small"
<Badge
variant="outline"
class="x-tag-age-verification"
style="margin-right: 5px; margin-top: 5px">
<template v-if="userDialog.ref.ageVerificationStatus === '18+'">
@@ -100,116 +96,84 @@
<template v-else>
<i class="ri-info-card-line"></i>
</template>
</el-tag>
</Badge>
</TooltipWrapper>
<TooltipWrapper
v-if="userDialog.isFriend && userDialog.friend"
side="top"
:content="t('dialog.user.tags.friend_number')">
<el-tag
type="info"
effect="plain"
size="small"
class="x-tag-friend"
style="margin-right: 5px; margin-top: 5px">
<Badge variant="outline" class="x-tag-friend" style="margin-right: 5px; margin-top: 5px">
<i class="ri-user-add-line"></i>
{{ userDialog.ref.$friendNumber ? userDialog.ref.$friendNumber : '' }}
</el-tag>
</Badge>
</TooltipWrapper>
<TooltipWrapper
v-if="userDialog.mutualFriendCount"
side="top"
:content="t('dialog.user.tags.mutual_friends')">
<el-tag
type="info"
effect="plain"
size="small"
class="x-tag-mutual-friend"
style="margin-right: 5px; margin-top: 5px">
<Badge variant="outline" class="x-tag-mutual-friend" style="margin-right: 5px; margin-top: 5px">
<i class="ri-group-line"></i>
{{ userDialog.mutualFriendCount }}
</el-tag>
</Badge>
</TooltipWrapper>
<el-tag
<Badge
v-if="userDialog.ref.$isTroll"
type="info"
effect="plain"
size="small"
variant="outline"
class="x-tag-troll"
style="margin-right: 5px; margin-top: 5px">
Nuisance
</el-tag>
<el-tag
</Badge>
<Badge
v-if="userDialog.ref.$isProbableTroll"
type="info"
effect="plain"
size="small"
variant="outline"
class="x-tag-troll"
style="margin-right: 5px; margin-top: 5px">
Almost Nuisance
</el-tag>
<el-tag
</Badge>
<Badge
v-if="userDialog.ref.$isModerator"
type="info"
effect="plain"
size="small"
variant="outline"
class="x-tag-vip"
style="margin-right: 5px; margin-top: 5px">
{{ t('dialog.user.tags.vrchat_team') }}
</el-tag>
</Badge>
<TooltipWrapper v-if="userDialog.ref.$platform === 'standalonewindows'" side="top" content="PC">
<el-tag
type="info"
effect="plain"
size="small"
class="x-tag-platform-pc"
style="margin-right: 5px; margin-top: 5px">
<Badge variant="outline" class="x-tag-platform-pc" style="margin-right: 5px; margin-top: 5px">
<i class="ri-computer-line"></i>
</el-tag>
</Badge>
</TooltipWrapper>
<TooltipWrapper v-else-if="userDialog.ref.$platform === 'android'" side="top" content="Android">
<el-tag
type="info"
effect="plain"
size="small"
<Badge
variant="outline"
class="x-tag-platform-quest"
style="margin-right: 5px; margin-top: 5px">
<i class="ri-android-line"></i>
</el-tag>
</Badge>
</TooltipWrapper>
<TooltipWrapper v-else-if="userDialog.ref.$platform === 'ios'" side="top" content="iOS">
<el-tag
type="info"
effect="plain"
size="small"
class="x-tag-platform-ios"
style="margin-right: 5px; margin-top: 5px"
<Badge variant="outline" class="x-tag-platform-ios" style="margin-right: 5px; margin-top: 5px"
><i class="ri-apple-line"></i
></el-tag>
></Badge>
</TooltipWrapper>
<el-tag
<Badge
v-else-if="userDialog.ref.$platform"
type="info"
effect="plain"
size="small"
variant="outline"
class="x-tag-platform-other"
style="margin-right: 5px; margin-top: 5px">
{{ userDialog.ref.$platform }}
</el-tag>
</Badge>
<el-tag
<Badge
v-if="userDialog.ref.$customTag"
type="info"
effect="plain"
size="small"
variant="outline"
class="name"
:style="{
color: userDialog.ref.$customTagColour,
'border-color': userDialog.ref.$customTagColour
}"
style="margin-right: 5px; margin-top: 5px"
>{{ userDialog.ref.$customTag }}</el-tag
>{{ userDialog.ref.$customTag }}</Badge
>
<br />
<TooltipWrapper v-for="badge in userDialog.ref.badges" :key="badge.badgeId" side="top">
@@ -297,6 +261,7 @@
import { formatDateFilter, languageClass, userImage, userStatusClass } from '../../../shared/utils';
import { useGalleryStore, useUserStore } from '../../../stores';
import { Badge } from '../../ui/badge';
import UserActionDropdown from './UserActionDropdown.vue';

View File

@@ -40,36 +40,25 @@
v-text="worldDialog.ref.authorName" />
</div>
<div>
<el-tag
<Badge
v-if="worldDialog.ref.$isLabs"
type="primary"
effect="plain"
size="small"
variant="outline"
style="margin-right: 5px; margin-top: 5px">
{{ t('dialog.world.tags.labs') }}
</el-tag>
<el-tag
</Badge>
<Badge
v-else-if="worldDialog.ref.releaseStatus === 'public'"
type="success"
effect="plain"
size="small"
variant="outline"
style="margin-right: 5px; margin-top: 5px">
{{ t('dialog.world.tags.public') }}
</el-tag>
<el-tag
v-else
type="danger"
effect="plain"
size="small"
style="margin-right: 5px; margin-top: 5px">
</Badge>
<Badge v-else variant="outline" style="margin-right: 5px; margin-top: 5px">
{{ t('dialog.world.tags.private') }}
</el-tag>
</Badge>
<TooltipWrapper v-if="worldDialog.isPC" side="top" content="PC">
<el-tag
<Badge
class="x-tag-platform-pc"
type="info"
effect="plain"
size="small"
variant="outline"
style="margin-right: 5px; margin-top: 5px">
<i class="ri-computer-line"></i
><span
@@ -77,15 +66,13 @@
:class="['x-grey', 'x-tag-platform-pc', 'x-tag-border-left']">
{{ worldDialog.bundleSizes['standalonewindows'].fileSize }}
</span>
</el-tag>
</Badge>
</TooltipWrapper>
<TooltipWrapper v-if="worldDialog.isQuest" side="top" content="Quest">
<el-tag
<Badge
class="x-tag-platform-quest"
type="info"
effect="plain"
size="small"
variant="outline"
style="margin-right: 5px; margin-top: 5px">
<i class="ri-android-line"></i
><span
@@ -93,15 +80,13 @@
:class="['x-grey', 'x-tag-platform-quest', 'x-tag-border-left']">
{{ worldDialog.bundleSizes['android'].fileSize }}
</span>
</el-tag>
</Badge>
</TooltipWrapper>
<TooltipWrapper v-if="worldDialog.isIos" side="top" content="iOS">
<el-tag
<Badge
class="x-tag-platform-ios"
type="info"
effect="plain"
size="small"
variant="outline"
style="margin-right: 5px; margin-top: 5px">
<i class="ri-apple-line"></i
><span
@@ -109,51 +94,42 @@
:class="['x-grey', 'x-tag-platform-ios', 'x-tag-border-left']">
{{ worldDialog.bundleSizes['ios'].fileSize }}
</span>
</el-tag>
</Badge>
</TooltipWrapper>
<el-tag
<Badge
v-if="worldDialog.avatarScalingDisabled"
type="warning"
effect="plain"
size="small"
variant="outline"
style="margin-right: 5px; margin-top: 5px">
{{ t('dialog.world.tags.avatar_scaling_disabled') }}
</el-tag>
<el-tag
</Badge>
<Badge
v-if="worldDialog.focusViewDisabled"
type="warning"
effect="plain"
size="small"
variant="outline"
style="margin-right: 5px; margin-top: 5px">
{{ t('dialog.world.tags.focus_view_disabled') }}
</el-tag>
<el-tag
</Badge>
<Badge
v-if="worldDialog.ref.unityPackageUrl"
type="success"
effect="plain"
size="small"
variant="outline"
style="margin-right: 5px; margin-top: 5px">
{{ t('dialog.world.tags.future_proofing') }}
</el-tag>
<el-tag
</Badge>
<Badge
v-if="worldDialog.inCache"
variant="outline"
class="x-link"
type="info"
effect="plain"
size="small"
style="margin-right: 5px; margin-top: 5px"
@click="openFolderGeneric(worldDialog.cachePath)">
<span v-text="worldDialog.cacheSize" />
| {{ t('dialog.world.tags.cache') }}
</el-tag>
</Badge>
</div>
<div>
<template v-for="tag in worldDialog.ref.tags" :key="tag">
<el-tag
<Badge
v-if="tag.startsWith('content_')"
effect="plain"
size="small"
variant="outline"
style="margin-right: 5px; margin-top: 5px">
<span v-if="tag === 'content_horror'">
{{ t('dialog.world.tags.content_horror') }}
@@ -173,7 +149,7 @@
<span v-else>
{{ tag.replace('content_', '') }}
</span>
</el-tag>
</Badge>
</template>
</div>
<div style="margin-top: 5px">
@@ -804,6 +780,7 @@
useWorldStore
} from '../../../stores';
import { favoriteRequest, miscRequest, userRequest, worldRequest } from '../../../api';
import { Badge } from '../../ui/badge';
import { database } from '../../../service/database.js';
import { getNextDialogIndex } from '../../../shared/utils/base/ui';

View File

@@ -2,6 +2,7 @@
import { Primitive } from 'reka-ui';
import { cn } from '@/lib/utils';
import { reactiveOmit } from '@vueuse/core';
import { useAttrs } from 'vue';
import { badgeVariants } from '.';
@@ -13,10 +14,14 @@
});
const delegatedProps = reactiveOmit(props, 'class');
const attrs = useAttrs();
</script>
<template>
<Primitive data-slot="badge" :class="cn(badgeVariants({ variant }), props.class)" v-bind="delegatedProps">
<Primitive
data-slot="badge"
:class="cn(badgeVariants({ variant }), props.class)"
v-bind="{ ...delegatedProps, ...attrs }">
<slot />
</Primitive>
</template>