replaced a bunch of ti-*
This commit is contained in:
parent
fc00c7401e
commit
df26b6501d
104 changed files with 267 additions and 213 deletions
|
@ -21,8 +21,8 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</div>
|
</div>
|
||||||
<MkNoteSub v-if="appearNote.reply && !renoteCollapsed && !inReplyToCollapsed" :note="appearNote.reply" :class="$style.replyTo"/>
|
<MkNoteSub v-if="appearNote.reply && !renoteCollapsed && !inReplyToCollapsed" :note="appearNote.reply" :class="$style.replyTo"/>
|
||||||
<div v-if="pinned" :class="$style.tip"><i class="ti ti-pin"></i> {{ i18n.ts.pinnedNote }}</div>
|
<div v-if="pinned" :class="$style.tip"><i class="ti ti-pin"></i> {{ i18n.ts.pinnedNote }}</div>
|
||||||
<!--<div v-if="appearNote._prId_" class="tip"><i class="ph-megaphone ph-bold ph-lg"></i> {{ i18n.ts.promotion }}<button class="_textButton hide" @click="readPromo()">{{ i18n.ts.hideThisNote }} <i class="ti ti-x"></i></button></div>-->
|
<!--<div v-if="appearNote._prId_" class="tip"><i class="ti ti-speakerphone"></i> {{ i18n.ts.promotion }}<button class="_textButton hide" @click="readPromo()">{{ i18n.ts.hideThisNote }} <i class="ti ti-x"></i></button></div>-->
|
||||||
<!--<div v-if="appearNote._featuredId_" class="tip"><i class="ph-lightning ph-bold ph-lg"></i> {{ i18n.ts.featured }}</div>-->
|
<!--<div v-if="appearNote._featuredId_" class="tip"><i class="ti ti-bolt"></i> {{ i18n.ts.featured }}</div>-->
|
||||||
<div v-if="isRenote" :class="$style.renote">
|
<div v-if="isRenote" :class="$style.renote">
|
||||||
<div v-if="note.channel" :class="$style.colorBar" :style="{ background: note.channel.color }"></div>
|
<div v-if="note.channel" :class="$style.colorBar" :style="{ background: note.channel.color }"></div>
|
||||||
<MkAvatar :class="$style.renoteAvatar" :user="note.user" link preview/>
|
<MkAvatar :class="$style.renoteAvatar" :user="note.user" link preview/>
|
||||||
|
@ -42,7 +42,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<span v-if="note.visibility !== 'public'" style="margin-left: 0.5em;" :title="i18n.ts._visibility[note.visibility]">
|
<span v-if="note.visibility !== 'public'" style="margin-left: 0.5em;" :title="i18n.ts._visibility[note.visibility]">
|
||||||
<i v-if="note.visibility === 'home'" class="ti ti-home"></i>
|
<i v-if="note.visibility === 'home'" class="ti ti-home"></i>
|
||||||
<i v-else-if="note.visibility === 'followers'" class="ti ti-lock"></i>
|
<i v-else-if="note.visibility === 'followers'" class="ti ti-lock"></i>
|
||||||
<i v-else-if="note.visibility === 'specified'" ref="specified" class="ph-envelope ph-bold ph-lg"></i>
|
<i v-else-if="note.visibility === 'specified'" ref="specified" class="ti ti-mail"></i>
|
||||||
</span>
|
</span>
|
||||||
<span v-if="note.localOnly" style="margin-left: 0.5em;" :title="i18n.ts._visibility['disableFederation']"><i class="ti ti-rocket-off"></i></span>
|
<span v-if="note.localOnly" style="margin-left: 0.5em;" :title="i18n.ts._visibility['disableFederation']"><i class="ti ti-rocket-off"></i></span>
|
||||||
<span v-if="note.channel" style="margin-left: 0.5em;" :title="note.channel.name"><i class="ti ti-device-tv"></i></span>
|
<span v-if="note.channel" style="margin-left: 0.5em;" :title="note.channel.name"><i class="ti ti-device-tv"></i></span>
|
||||||
|
@ -132,7 +132,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<p v-if="appearNote.renoteCount > 0" :class="$style.footerButtonCount">{{ number(appearNote.renoteCount) }}</p>
|
<p v-if="appearNote.renoteCount > 0" :class="$style.footerButtonCount">{{ number(appearNote.renoteCount) }}</p>
|
||||||
</button>
|
</button>
|
||||||
<button v-else :class="$style.footerButton" class="_button" disabled>
|
<button v-else :class="$style.footerButton" class="_button" disabled>
|
||||||
<i class="ph-prohibit ph-bold ph-lg"></i>
|
<i class="ti ti-ban"></i>
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
v-if="canRenote && !props.mock"
|
v-if="canRenote && !props.mock"
|
||||||
|
@ -155,7 +155,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<p v-if="(appearNote.reactionAcceptance === 'likeOnly' || defaultStore.state.showReactionsCount) && appearNote.reactionCount > 0" :class="$style.footerButtonCount">{{ number(appearNote.reactionCount) }}</p>
|
<p v-if="(appearNote.reactionAcceptance === 'likeOnly' || defaultStore.state.showReactionsCount) && appearNote.reactionCount > 0" :class="$style.footerButtonCount">{{ number(appearNote.reactionCount) }}</p>
|
||||||
</button>
|
</button>
|
||||||
<button v-if="defaultStore.state.showClipButtonInNoteFooter" ref="clipButton" :class="$style.footerButton" class="_button" @mousedown="clip()">
|
<button v-if="defaultStore.state.showClipButtonInNoteFooter" ref="clipButton" :class="$style.footerButton" class="_button" @mousedown="clip()">
|
||||||
<i class="ph-paperclip ph-bold ph-lg"></i>
|
<i class="ti ti-paperclip"></i>
|
||||||
</button>
|
</button>
|
||||||
<button ref="menuButton" :class="$style.footerButton" class="_button" @mousedown="showMenu()">
|
<button ref="menuButton" :class="$style.footerButton" class="_button" @mousedown="showMenu()">
|
||||||
<i class="ti ti-dots"></i>
|
<i class="ti ti-dots"></i>
|
||||||
|
|
|
@ -38,7 +38,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<span v-if="note.visibility !== 'public'" style="margin-left: 0.5em;" :title="i18n.ts._visibility[note.visibility]">
|
<span v-if="note.visibility !== 'public'" style="margin-left: 0.5em;" :title="i18n.ts._visibility[note.visibility]">
|
||||||
<i v-if="note.visibility === 'home'" class="ti ti-home"></i>
|
<i v-if="note.visibility === 'home'" class="ti ti-home"></i>
|
||||||
<i v-else-if="note.visibility === 'followers'" class="ti ti-lock"></i>
|
<i v-else-if="note.visibility === 'followers'" class="ti ti-lock"></i>
|
||||||
<i v-else-if="note.visibility === 'specified'" ref="specified" class="ph-envelope ph-bold ph-lg"></i>
|
<i v-else-if="note.visibility === 'specified'" ref="specified" class="ti ti-mail"></i>
|
||||||
</span>
|
</span>
|
||||||
<span v-if="note.localOnly" style="margin-left: 0.5em;" :title="i18n.ts._visibility['disableFederation']"><i class="ti ti-rocket-off"></i></span>
|
<span v-if="note.localOnly" style="margin-left: 0.5em;" :title="i18n.ts._visibility['disableFederation']"><i class="ti ti-rocket-off"></i></span>
|
||||||
</div>
|
</div>
|
||||||
|
@ -56,7 +56,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<span v-if="appearNote.visibility !== 'public'" style="margin-left: 0.5em;" :title="i18n.ts._visibility[appearNote.visibility]">
|
<span v-if="appearNote.visibility !== 'public'" style="margin-left: 0.5em;" :title="i18n.ts._visibility[appearNote.visibility]">
|
||||||
<i v-if="appearNote.visibility === 'home'" class="ti ti-home"></i>
|
<i v-if="appearNote.visibility === 'home'" class="ti ti-home"></i>
|
||||||
<i v-else-if="appearNote.visibility === 'followers'" class="ti ti-lock"></i>
|
<i v-else-if="appearNote.visibility === 'followers'" class="ti ti-lock"></i>
|
||||||
<i v-else-if="appearNote.visibility === 'specified'" ref="specified" class="ph-envelope ph-bold ph-lg"></i>
|
<i v-else-if="appearNote.visibility === 'specified'" ref="specified" class="ti ti-mail"></i>
|
||||||
</span>
|
</span>
|
||||||
<span v-if="appearNote.updatedAt" ref="menuVersionsButton" style="margin-left: 0.5em;" title="Edited" @mousedown="menuVersions()"><i class="ph-pencil-simple ph-bold ph-lg"></i></span>
|
<span v-if="appearNote.updatedAt" ref="menuVersionsButton" style="margin-left: 0.5em;" title="Edited" @mousedown="menuVersions()"><i class="ph-pencil-simple ph-bold ph-lg"></i></span>
|
||||||
<span v-if="appearNote.localOnly" style="margin-left: 0.5em;" :title="i18n.ts._visibility['disableFederation']"><i class="ti ti-rocket-off"></i></span>
|
<span v-if="appearNote.localOnly" style="margin-left: 0.5em;" :title="i18n.ts._visibility['disableFederation']"><i class="ti ti-rocket-off"></i></span>
|
||||||
|
@ -133,7 +133,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<p v-if="appearNote.renoteCount > 0" :class="$style.noteFooterButtonCount">{{ number(appearNote.renoteCount) }}</p>
|
<p v-if="appearNote.renoteCount > 0" :class="$style.noteFooterButtonCount">{{ number(appearNote.renoteCount) }}</p>
|
||||||
</button>
|
</button>
|
||||||
<button v-else class="_button" :class="$style.noteFooterButton" disabled>
|
<button v-else class="_button" :class="$style.noteFooterButton" disabled>
|
||||||
<i class="ph-prohibit ph-bold ph-lg"></i>
|
<i class="ti ti-ban"></i>
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
v-if="canRenote"
|
v-if="canRenote"
|
||||||
|
@ -155,7 +155,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<p v-if="(appearNote.reactionAcceptance === 'likeOnly' || defaultStore.state.showReactionsCount) && appearNote.reactionCount > 0" :class="$style.noteFooterButtonCount">{{ number(appearNote.reactionCount) }}</p>
|
<p v-if="(appearNote.reactionAcceptance === 'likeOnly' || defaultStore.state.showReactionsCount) && appearNote.reactionCount > 0" :class="$style.noteFooterButtonCount">{{ number(appearNote.reactionCount) }}</p>
|
||||||
</button>
|
</button>
|
||||||
<button v-if="defaultStore.state.showClipButtonInNoteFooter" ref="clipButton" class="_button" :class="$style.noteFooterButton" @mousedown="clip()">
|
<button v-if="defaultStore.state.showClipButtonInNoteFooter" ref="clipButton" class="_button" :class="$style.noteFooterButton" @mousedown="clip()">
|
||||||
<i class="ph-paperclip ph-bold ph-lg"></i>
|
<i class="ti ti-paperclip"></i>
|
||||||
</button>
|
</button>
|
||||||
<button ref="menuButton" class="_button" :class="$style.noteFooterButton" @mousedown="showMenu()">
|
<button ref="menuButton" class="_button" :class="$style.noteFooterButton" @mousedown="showMenu()">
|
||||||
<i class="ti ti-dots"></i>
|
<i class="ti ti-dots"></i>
|
||||||
|
|
|
@ -26,7 +26,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<span v-if="note.visibility !== 'public'" style="margin-left: 0.5em;" :title="i18n.ts._visibility[note.visibility]">
|
<span v-if="note.visibility !== 'public'" style="margin-left: 0.5em;" :title="i18n.ts._visibility[note.visibility]">
|
||||||
<i v-if="note.visibility === 'home'" class="ti ti-home"></i>
|
<i v-if="note.visibility === 'home'" class="ti ti-home"></i>
|
||||||
<i v-else-if="note.visibility === 'followers'" class="ti ti-lock"></i>
|
<i v-else-if="note.visibility === 'followers'" class="ti ti-lock"></i>
|
||||||
<i v-else-if="note.visibility === 'specified'" ref="specified" class="ph-envelope ph-bold ph-lg"></i>
|
<i v-else-if="note.visibility === 'specified'" ref="specified" class="ti ti-mail"></i>
|
||||||
</span>
|
</span>
|
||||||
<span v-if="note.updatedAt" ref="menuVersionsButton" style="margin-left: 0.5em; cursor: pointer;" title="Edited" @mousedown="menuVersions()"><i class="ph-pencil-simple ph-bold ph-lg"></i></span>
|
<span v-if="note.updatedAt" ref="menuVersionsButton" style="margin-left: 0.5em; cursor: pointer;" title="Edited" @mousedown="menuVersions()"><i class="ph-pencil-simple ph-bold ph-lg"></i></span>
|
||||||
<span v-if="note.localOnly" style="margin-left: 0.5em;" :title="i18n.ts._visibility['disableFederation']"><i class="ti ti-rocket-off"></i></span>
|
<span v-if="note.localOnly" style="margin-left: 0.5em;" :title="i18n.ts._visibility['disableFederation']"><i class="ti ti-rocket-off"></i></span>
|
||||||
|
|
|
@ -68,7 +68,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<MkNoteSub v-for="reply in replies" :key="reply.id" :note="reply" :class="$style.reply" :detail="true" :depth="depth + 1" :expandAllCws="props.expandAllCws" :onDeleteCallback="removeReply"/>
|
<MkNoteSub v-for="reply in replies" :key="reply.id" :note="reply" :class="$style.reply" :detail="true" :depth="depth + 1" :expandAllCws="props.expandAllCws" :onDeleteCallback="removeReply"/>
|
||||||
</template>
|
</template>
|
||||||
<div v-else :class="$style.more">
|
<div v-else :class="$style.more">
|
||||||
<MkA class="_link" :to="notePage(note)">{{ i18n.ts.continueThread }} <i class="ph-caret-double-right ph-bold ph-lg"></i></MkA>
|
<MkA class="_link" :to="notePage(note)">{{ i18n.ts.continueThread }} <i class="ti ti-chevron-double-right"></i></MkA>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else :class="$style.muted" @click="muted = false">
|
<div v-else :class="$style.muted" @click="muted = false">
|
||||||
|
|
|
@ -34,13 +34,13 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<i v-else-if="notification.type === 'followRequestAccepted'" class="ti ti-check"></i>
|
<i v-else-if="notification.type === 'followRequestAccepted'" class="ti ti-check"></i>
|
||||||
<i v-else-if="notification.type === 'renote'" class="ti ti-repeat"></i>
|
<i v-else-if="notification.type === 'renote'" class="ti ti-repeat"></i>
|
||||||
<i v-else-if="notification.type === 'reply'" class="ti ti-arrow-back-up"></i>
|
<i v-else-if="notification.type === 'reply'" class="ti ti-arrow-back-up"></i>
|
||||||
<i v-else-if="notification.type === 'mention'" class="ph-at ph-bold ph-lg"></i>
|
<i v-else-if="notification.type === 'mention'" class="ti ti-at"></i>
|
||||||
<i v-else-if="notification.type === 'quote'" class="ti ti-quote"></i>
|
<i v-else-if="notification.type === 'quote'" class="ti ti-quote"></i>
|
||||||
<i v-else-if="notification.type === 'pollEnded'" class="ph-chart-bar-horizontal ph-bold ph-lg"></i>
|
<i v-else-if="notification.type === 'pollEnded'" class="ti ti-chart-arrows"></i>
|
||||||
<i v-else-if="notification.type === 'achievementEarned'" class="ph-trophy ph-bold ph-lg"></i>
|
<i v-else-if="notification.type === 'achievementEarned'" class="ti ti-medal"></i>
|
||||||
<template v-else-if="notification.type === 'roleAssigned'">
|
<template v-else-if="notification.type === 'roleAssigned'">
|
||||||
<img v-if="notification.role.iconUrl" style="height: 1.3em; vertical-align: -22%;" :src="notification.role.iconUrl" alt=""/>
|
<img v-if="notification.role.iconUrl" style="height: 1.3em; vertical-align: -22%;" :src="notification.role.iconUrl" alt=""/>
|
||||||
<i v-else class="ph-seal-check ph-bold ph-lg"></i>
|
<i v-else class="ti ti-badges"></i>
|
||||||
</template>
|
</template>
|
||||||
<i v-else-if="notification.type === 'edited'" class="ph-pencil ph-bold ph-lg"></i>
|
<i v-else-if="notification.type === 'edited'" class="ph-pencil ph-bold ph-lg"></i>
|
||||||
<!-- notification.reaction が null になることはまずないが、ここでoptional chaining使うと一部ブラウザで刺さるので念の為 -->
|
<!-- notification.reaction が null になることはまずないが、ここでoptional chaining使うと一部ブラウザで刺さるので念の為 -->
|
||||||
|
|
|
@ -117,7 +117,7 @@ const contextmenu = computed(() => ([{
|
||||||
text: i18n.ts.showInPage,
|
text: i18n.ts.showInPage,
|
||||||
action: expand,
|
action: expand,
|
||||||
}, {
|
}, {
|
||||||
icon: 'ph-frame-corners ph-bold ph-lg',
|
icon: 'ti ti-window-maximize',
|
||||||
text: i18n.ts.popout,
|
text: i18n.ts.popout,
|
||||||
action: popout,
|
action: popout,
|
||||||
}, {
|
}, {
|
||||||
|
|
|
@ -22,12 +22,12 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<form @submit.prevent="done">
|
<form @submit.prevent="done">
|
||||||
<div class="_gaps">
|
<div class="_gaps">
|
||||||
<MkInput ref="passwordInput" v-model="password" :placeholder="i18n.ts.password" type="password" autocomplete="current-password webauthn" required :withPasswordToggle="true">
|
<MkInput ref="passwordInput" v-model="password" :placeholder="i18n.ts.password" type="password" autocomplete="current-password webauthn" required :withPasswordToggle="true">
|
||||||
<template #prefix><i class="ph-password ph-bold ph-lg"></i></template>
|
<template #prefix><i class="ti ti-password"></i></template>
|
||||||
</MkInput>
|
</MkInput>
|
||||||
|
|
||||||
<MkInput v-if="$i.twoFactorEnabled" v-model="token" type="text" :pattern="isBackupCode ? '^[A-Z0-9]{32}$' :'^[0-9]{6}$'" autocomplete="one-time-code" required :spellcheck="false" :inputmode="isBackupCode ? undefined : 'numeric'">
|
<MkInput v-if="$i.twoFactorEnabled" v-model="token" type="text" :pattern="isBackupCode ? '^[A-Z0-9]{32}$' :'^[0-9]{6}$'" autocomplete="one-time-code" required :spellcheck="false" :inputmode="isBackupCode ? undefined : 'numeric'">
|
||||||
<template #label>{{ i18n.ts.token }} ({{ i18n.ts['2fa'] }})</template>
|
<template #label>{{ i18n.ts.token }} ({{ i18n.ts['2fa'] }})</template>
|
||||||
<template #prefix><i v-if="isBackupCode" class="ph-keyhole ph-bold ph-lg"></i><i v-else class="ph-numpad ph-bold ph-lg"></i></template>
|
<template #prefix><i v-if="isBackupCode" class="ti ti-key"></i><i v-else class="ti ti-123"></i></template>
|
||||||
<template #caption><button class="_textButton" type="button" @click="isBackupCode = !isBackupCode">{{ isBackupCode ? i18n.ts.useTotp : i18n.ts.useBackupCode }}</button></template>
|
<template #caption><button class="_textButton" type="button" @click="isBackupCode = !isBackupCode">{{ isBackupCode ? i18n.ts.useTotp : i18n.ts.useBackupCode }}</button></template>
|
||||||
</MkInput>
|
</MkInput>
|
||||||
|
|
||||||
|
|
|
@ -21,10 +21,10 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<div :class="$style.headerRight">
|
<div :class="$style.headerRight">
|
||||||
<template v-if="!(channel != null && fixed)">
|
<template v-if="!(channel != null && fixed)">
|
||||||
<button v-if="channel == null" ref="visibilityButton" v-click-anime v-tooltip="i18n.ts.visibility" :class="['_button', $style.headerRightItem, $style.visibility]" @click="setVisibility">
|
<button v-if="channel == null" ref="visibilityButton" v-click-anime v-tooltip="i18n.ts.visibility" :class="['_button', $style.headerRightItem, $style.visibility]" @click="setVisibility">
|
||||||
<span v-if="visibility === 'public'"><i class="ph-globe-hemisphere-west ph-bold ph-lg"></i></span>
|
<span v-if="visibility === 'public'"><i class="ti ti-world"></i></span>
|
||||||
<span v-if="visibility === 'home'"><i class="ti ti-home"></i></span>
|
<span v-if="visibility === 'home'"><i class="ti ti-home"></i></span>
|
||||||
<span v-if="visibility === 'followers'"><i class="ti ti-lock"></i></span>
|
<span v-if="visibility === 'followers'"><i class="ti ti-lock"></i></span>
|
||||||
<span v-if="visibility === 'specified'"><i class="ph-envelope ph-bold ph-lg"></i></span>
|
<span v-if="visibility === 'specified'"><i class="ti ti-mail"></i></span>
|
||||||
<span :class="$style.headerRightButtonText">{{ i18n.ts._visibility[visibility] }}</span>
|
<span :class="$style.headerRightButtonText">{{ i18n.ts._visibility[visibility] }}</span>
|
||||||
</button>
|
</button>
|
||||||
<button v-else class="_button" :class="[$style.headerRightItem, $style.visibility]" disabled>
|
<button v-else class="_button" :class="[$style.headerRightItem, $style.visibility]" disabled>
|
||||||
|
@ -80,13 +80,13 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<footer :class="$style.footer">
|
<footer :class="$style.footer">
|
||||||
<div :class="$style.footerLeft">
|
<div :class="$style.footerLeft">
|
||||||
<button v-tooltip="i18n.ts.attachFile" class="_button" :class="$style.footerButton" @click="chooseFileFrom"><i class="ph-image-square ph-bold ph-lg-plus"></i></button>
|
<button v-tooltip="i18n.ts.attachFile" class="_button" :class="$style.footerButton" @click="chooseFileFrom"><i class="ph-image-square ph-bold ph-lg-plus"></i></button>
|
||||||
<button v-tooltip="i18n.ts.poll" class="_button" :class="[$style.footerButton, { [$style.footerButtonActive]: poll }]" @click="togglePoll"><i class="ph-chart-bar-horizontal ph-bold ph-lg"></i></button>
|
<button v-tooltip="i18n.ts.poll" class="_button" :class="[$style.footerButton, { [$style.footerButtonActive]: poll }]" @click="togglePoll"><i class="ti ti-chart-arrows"></i></button>
|
||||||
<button v-tooltip="i18n.ts.useCw" class="_button" :class="[$style.footerButton, { [$style.footerButtonActive]: useCw }]" @click="useCw = !useCw"><i class="ti ti-eye-off"></i></button>
|
<button v-tooltip="i18n.ts.useCw" class="_button" :class="[$style.footerButton, { [$style.footerButtonActive]: useCw }]" @click="useCw = !useCw"><i class="ti ti-eye-off"></i></button>
|
||||||
<button v-tooltip="i18n.ts.mention" class="_button" :class="$style.footerButton" @click="insertMention"><i class="ph-at ph-bold ph-lg"></i></button>
|
<button v-tooltip="i18n.ts.mention" class="_button" :class="$style.footerButton" @click="insertMention"><i class="ti ti-at"></i></button>
|
||||||
<button v-tooltip="i18n.ts.hashtags" class="_button" :class="[$style.footerButton, { [$style.footerButtonActive]: withHashtags }]" @click="withHashtags = !withHashtags"><i class="ti ti-hash"></i></button>
|
<button v-tooltip="i18n.ts.hashtags" class="_button" :class="[$style.footerButton, { [$style.footerButtonActive]: withHashtags }]" @click="withHashtags = !withHashtags"><i class="ti ti-hash"></i></button>
|
||||||
<button v-if="postFormActions.length > 0" v-tooltip="i18n.ts.plugins" class="_button" :class="$style.footerButton" @click="showActions"><i class="ph-plug ph-bold ph-lg"></i></button>
|
<button v-if="postFormActions.length > 0" v-tooltip="i18n.ts.plugins" class="_button" :class="$style.footerButton" @click="showActions"><i class="ti ti-plug"></i></button>
|
||||||
<button v-tooltip="i18n.ts.emoji" :class="['_button', $style.footerButton]" @click="insertEmoji"><i class="ti ti-mood-happy"></i></button>
|
<button v-tooltip="i18n.ts.emoji" :class="['_button', $style.footerButton]" @click="insertEmoji"><i class="ti ti-mood-happy"></i></button>
|
||||||
<button v-if="showAddMfmFunction" v-tooltip="i18n.ts.addMfmFunction" :class="['_button', $style.footerButton]" @click="insertMfmFunction"><i class="ph-palette ph-bold ph-lg"></i></button>
|
<button v-if="showAddMfmFunction" v-tooltip="i18n.ts.addMfmFunction" :class="['_button', $style.footerButton]" @click="insertMfmFunction"><i class="ti ti-palette"></i></button>
|
||||||
</div>
|
</div>
|
||||||
<div :class="$style.footerRight">
|
<div :class="$style.footerRight">
|
||||||
<button v-tooltip="i18n.ts.previewNoteText" class="_button" :class="[$style.footerButton, { [$style.previewButtonActive]: showPreview }]" @click="showPreview = !showPreview"><i class="ti ti-eye"></i></button>
|
<button v-tooltip="i18n.ts.previewNoteText" class="_button" :class="[$style.footerButton, { [$style.previewButtonActive]: showPreview }]" @click="showPreview = !showPreview"><i class="ti ti-eye"></i></button>
|
||||||
|
|
|
@ -145,11 +145,11 @@ function showFileMenu(file: Misskey.entities.DriveFile, ev: MouseEvent): void {
|
||||||
action: () => { toggleSensitive(file); },
|
action: () => { toggleSensitive(file); },
|
||||||
}, {
|
}, {
|
||||||
text: i18n.ts.describeFile,
|
text: i18n.ts.describeFile,
|
||||||
icon: 'ph-text-indent ph-bold ph-lg',
|
icon: 'ti ti-text-caption',
|
||||||
action: () => { describe(file); },
|
action: () => { describe(file); },
|
||||||
}, ...isImage ? [{
|
}, ...isImage ? [{
|
||||||
text: i18n.ts.cropImage,
|
text: i18n.ts.cropImage,
|
||||||
icon: 'ph-crop ph-bold ph-lg',
|
icon: 'ti ti-crop',
|
||||||
action: () : void => { crop(file); },
|
action: () : void => { crop(file); },
|
||||||
}] : [], {
|
}] : [], {
|
||||||
type: 'divider',
|
type: 'divider',
|
||||||
|
|
|
@ -11,9 +11,9 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<img :class="$style.badge" :src="role.iconUrl"/>
|
<img :class="$style.badge" :src="role.iconUrl"/>
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<i v-if="role.isAdministrator" class="ph-crown ph-bold ph-lg" style="color: var(--accent);"></i>
|
<i v-if="role.isAdministrator" class="ti ti-crown" style="color: var(--accent);"></i>
|
||||||
<i v-else-if="role.isModerator" class="ti ti-shield" style="color: var(--accent);"></i>
|
<i v-else-if="role.isModerator" class="ti ti-shield" style="color: var(--accent);"></i>
|
||||||
<i v-else class="ph-user ph-bold ph-lg" style="opacity: 0.7;"></i>
|
<i v-else class="ti ti-user" style="opacity: 0.7;"></i>
|
||||||
</template>
|
</template>
|
||||||
</span>
|
</span>
|
||||||
<span :class="$style.name">{{ role.name }}</span>
|
<span :class="$style.name">{{ role.name }}</span>
|
||||||
|
|
|
@ -38,7 +38,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</MkInput>
|
</MkInput>
|
||||||
<MkInput v-model="token" type="text" :pattern="isBackupCode ? '^[A-Z0-9]{32}$' :'^[0-9]{6}$'" autocomplete="one-time-code" required :spellcheck="false" :inputmode="isBackupCode ? undefined : 'numeric'">
|
<MkInput v-model="token" type="text" :pattern="isBackupCode ? '^[A-Z0-9]{32}$' :'^[0-9]{6}$'" autocomplete="one-time-code" required :spellcheck="false" :inputmode="isBackupCode ? undefined : 'numeric'">
|
||||||
<template #label>{{ i18n.ts.token }} ({{ i18n.ts['2fa'] }})</template>
|
<template #label>{{ i18n.ts.token }} ({{ i18n.ts['2fa'] }})</template>
|
||||||
<template #prefix><i v-if="isBackupCode" class="ph-keyhole ph-bold ph-lg"></i><i v-else class="ph-numpad ph-bold ph-lg"></i></template>
|
<template #prefix><i v-if="isBackupCode" class="ti ti-key"></i><i v-else class="ti ti-123"></i></template>
|
||||||
<template #caption><button class="_textButton" type="button" @click="isBackupCode = !isBackupCode">{{ isBackupCode ? i18n.ts.useTotp : i18n.ts.useBackupCode }}</button></template>
|
<template #caption><button class="_textButton" type="button" @click="isBackupCode = !isBackupCode">{{ isBackupCode ? i18n.ts.useTotp : i18n.ts.useBackupCode }}</button></template>
|
||||||
</MkInput>
|
</MkInput>
|
||||||
<MkButton type="submit" :disabled="signing" large primary rounded style="margin: 0 auto;">{{ signing ? i18n.ts.loggingIn : i18n.ts.login }}</MkButton>
|
<MkButton type="submit" :disabled="signing" large primary rounded style="margin: 0 auto;">{{ signing ? i18n.ts.loggingIn : i18n.ts.login }}</MkButton>
|
||||||
|
|
|
@ -6,7 +6,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div :class="$style.banner">
|
<div :class="$style.banner">
|
||||||
<i class="ph-user-list ph-bold ph-lg"></i>
|
<i class="ti ti-user-edit"></i>
|
||||||
</div>
|
</div>
|
||||||
<MkSpacer :marginMin="20" :marginMax="32">
|
<MkSpacer :marginMin="20" :marginMax="32">
|
||||||
<form class="_gaps_m" autocomplete="new-password" @submit.prevent="onSubmit">
|
<form class="_gaps_m" autocomplete="new-password" @submit.prevent="onSubmit">
|
||||||
|
@ -31,7 +31,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</MkInput>
|
</MkInput>
|
||||||
<MkInput v-if="instance.emailRequiredForSignup" v-model="email" :debounce="true" type="email" :spellcheck="false" required data-cy-signup-email @update:modelValue="onChangeEmail">
|
<MkInput v-if="instance.emailRequiredForSignup" v-model="email" :debounce="true" type="email" :spellcheck="false" required data-cy-signup-email @update:modelValue="onChangeEmail">
|
||||||
<template #label>{{ i18n.ts.emailAddress }} <div v-tooltip:dialog="i18n.ts._signup.emailAddressInfo" class="_button _help"><i class="ti ti-help-circle"></i></div></template>
|
<template #label>{{ i18n.ts.emailAddress }} <div v-tooltip:dialog="i18n.ts._signup.emailAddressInfo" class="_button _help"><i class="ti ti-help-circle"></i></div></template>
|
||||||
<template #prefix><i class="ph-envelope ph-bold ph-lg"></i></template>
|
<template #prefix><i class="ti ti-mail"></i></template>
|
||||||
<template #caption>
|
<template #caption>
|
||||||
<span v-if="emailState === 'wait'" style="color:#999"><MkLoading :em="true"/> {{ i18n.ts.checking }}</span>
|
<span v-if="emailState === 'wait'" style="color:#999"><MkLoading :em="true"/> {{ i18n.ts.checking }}</span>
|
||||||
<span v-else-if="emailState === 'ok'" style="color: var(--success)"><i class="ti ti-check ti-fw"></i> {{ i18n.ts.available }}</span>
|
<span v-else-if="emailState === 'ok'" style="color: var(--success)"><i class="ti ti-check ti-fw"></i> {{ i18n.ts.available }}</span>
|
||||||
|
|
|
@ -11,11 +11,11 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<template #label>{{ i18n.ts.visibility }}</template>
|
<template #label>{{ i18n.ts.visibility }}</template>
|
||||||
<div class="_gaps">
|
<div class="_gaps">
|
||||||
<div>{{ i18n.ts._initialTutorial._postNote._visibility.description }}</div>
|
<div>{{ i18n.ts._initialTutorial._postNote._visibility.description }}</div>
|
||||||
<div><i class="ph-globe-hemisphere-west ph-bold ph-lg"></i> <b>{{ i18n.ts._visibility.public }}</b> … {{ i18n.ts._initialTutorial._postNote._visibility.public }}</div>
|
<div><i class="ti ti-world"></i> <b>{{ i18n.ts._visibility.public }}</b> … {{ i18n.ts._initialTutorial._postNote._visibility.public }}</div>
|
||||||
<div><i class="ti ti-home"></i> <b>{{ i18n.ts._visibility.home }}</b> … {{ i18n.ts._initialTutorial._postNote._visibility.home }}</div>
|
<div><i class="ti ti-home"></i> <b>{{ i18n.ts._visibility.home }}</b> … {{ i18n.ts._initialTutorial._postNote._visibility.home }}</div>
|
||||||
<div><i class="ti ti-lock"></i> <b>{{ i18n.ts._visibility.followers }}</b> … {{ i18n.ts._initialTutorial._postNote._visibility.followers }}</div>
|
<div><i class="ti ti-lock"></i> <b>{{ i18n.ts._visibility.followers }}</b> … {{ i18n.ts._initialTutorial._postNote._visibility.followers }}</div>
|
||||||
<div class="_gaps_s">
|
<div class="_gaps_s">
|
||||||
<div><i class="ph-envelope ph-bold ph-lg"></i> <b>{{ i18n.ts._visibility.specified }}</b> … {{ i18n.ts._initialTutorial._postNote._visibility.direct }}</div>
|
<div><i class="ti ti-mail"></i> <b>{{ i18n.ts._visibility.specified }}</b> … {{ i18n.ts._initialTutorial._postNote._visibility.direct }}</div>
|
||||||
<MkInfo :warn="true">
|
<MkInfo :warn="true">
|
||||||
<b>{{ i18n.ts._initialTutorial._postNote._visibility.doNotSendConfidencialOnDirect1 }}</b> {{ i18n.ts._initialTutorial._postNote._visibility.doNotSendConfidencialOnDirect2 }}
|
<b>{{ i18n.ts._initialTutorial._postNote._visibility.doNotSendConfidencialOnDirect1 }}</b> {{ i18n.ts._initialTutorial._postNote._visibility.doNotSendConfidencialOnDirect2 }}
|
||||||
</MkInfo>
|
</MkInfo>
|
||||||
|
|
|
@ -10,7 +10,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<div><i class="ti ti-home"></i> <b>{{ i18n.ts._timelines.home }}</b> … {{ i18n.ts._initialTutorial._timeline.home }}</div>
|
<div><i class="ti ti-home"></i> <b>{{ i18n.ts._timelines.home }}</b> … {{ i18n.ts._initialTutorial._timeline.home }}</div>
|
||||||
<div><i class="ti ti-planet"></i> <b>{{ i18n.ts._timelines.local }}</b> … {{ i18n.ts._initialTutorial._timeline.local }}</div>
|
<div><i class="ti ti-planet"></i> <b>{{ i18n.ts._timelines.local }}</b> … {{ i18n.ts._initialTutorial._timeline.local }}</div>
|
||||||
<div><i class="ph-rocket-launch ph-bold ph-lg"></i> <b>{{ i18n.ts._timelines.social }}</b> … {{ i18n.ts._initialTutorial._timeline.social }}</div>
|
<div><i class="ph-rocket-launch ph-bold ph-lg"></i> <b>{{ i18n.ts._timelines.social }}</b> … {{ i18n.ts._initialTutorial._timeline.social }}</div>
|
||||||
<div><i class="ph-globe-hemisphere-west ph-bold ph-lg"></i> <b>{{ i18n.ts._timelines.global }}</b> … {{ i18n.ts._initialTutorial._timeline.global }}</div>
|
<div><i class="ti ti-world"></i> <b>{{ i18n.ts._timelines.global }}</b> … {{ i18n.ts._initialTutorial._timeline.global }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="_gaps_s">
|
<div class="_gaps_s">
|
||||||
<div>{{ i18n.ts._initialTutorial._timeline.description2 }}</div>
|
<div>{{ i18n.ts._initialTutorial._timeline.description2 }}</div>
|
||||||
|
|
|
@ -67,7 +67,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<template v-if="showActions">
|
<template v-if="showActions">
|
||||||
<div v-if="tweetId" :class="$style.action">
|
<div v-if="tweetId" :class="$style.action">
|
||||||
<MkButton :small="true" inline @click="tweetExpanded = true">
|
<MkButton :small="true" inline @click="tweetExpanded = true">
|
||||||
<i class="ph-twitter-logo ph-bold ph-lg"></i> {{ i18n.ts.expandTweet }}
|
<i class="ti ti-brand-x"></i> {{ i18n.ts.expandTweet }}
|
||||||
</MkButton>
|
</MkButton>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="!playerEnabled && player.url" :class="$style.action">
|
<div v-if="!playerEnabled && player.url" :class="$style.action">
|
||||||
|
@ -75,7 +75,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<i class="ti ti-player-play"></i> {{ i18n.ts.enablePlayer }}
|
<i class="ti ti-player-play"></i> {{ i18n.ts.enablePlayer }}
|
||||||
</MkButton>
|
</MkButton>
|
||||||
<MkButton v-if="!isMobile" :small="true" inline @click="openPlayer()">
|
<MkButton v-if="!isMobile" :small="true" inline @click="openPlayer()">
|
||||||
<i class="ph-picture-in-picture ph-bold ph-lg"></i> {{ i18n.ts.openInWindow }}
|
<i class="ti ti-picture-in-picture"></i> {{ i18n.ts.openInWindow }}
|
||||||
</MkButton>
|
</MkButton>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -12,10 +12,10 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
@close="close(true)"
|
@close="close(true)"
|
||||||
@closed="emit('closed')"
|
@closed="emit('closed')"
|
||||||
>
|
>
|
||||||
<template v-if="page === 1" #header><i class="ph-user-list ph-bold ph-lg"></i> {{ i18n.ts._initialAccountSetting.profileSetting }}</template>
|
<template v-if="page === 1" #header><i class="ti ti-user-edit"></i> {{ i18n.ts._initialAccountSetting.profileSetting }}</template>
|
||||||
<template v-else-if="page === 2" #header><i class="ti ti-lock"></i> {{ i18n.ts._initialAccountSetting.privacySetting }}</template>
|
<template v-else-if="page === 2" #header><i class="ti ti-lock"></i> {{ i18n.ts._initialAccountSetting.privacySetting }}</template>
|
||||||
<template v-else-if="page === 3" #header><i class="ph-user-plus ph-bold ph-lg"></i> {{ i18n.ts.follow }}</template>
|
<template v-else-if="page === 3" #header><i class="ti ti-user-plus"></i> {{ i18n.ts.follow }}</template>
|
||||||
<template v-else-if="page === 4" #header><i class="ph-bell-ringing ph-bold ph-lg"></i> {{ i18n.ts.pushNotification }}</template>
|
<template v-else-if="page === 4" #header><i class="ti ti-bell-plus"></i> {{ i18n.ts.pushNotification }}</template>
|
||||||
<template v-else-if="page === 5" #header>{{ i18n.ts.done }}</template>
|
<template v-else-if="page === 5" #header>{{ i18n.ts.done }}</template>
|
||||||
<template v-else #header>{{ i18n.ts.initialAccountSetting }}</template>
|
<template v-else #header>{{ i18n.ts.initialAccountSetting }}</template>
|
||||||
|
|
||||||
|
@ -91,7 +91,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<div :class="$style.centerPage">
|
<div :class="$style.centerPage">
|
||||||
<MkSpacer :marginMin="20" :marginMax="28">
|
<MkSpacer :marginMin="20" :marginMax="28">
|
||||||
<div class="_gaps" style="text-align: center;">
|
<div class="_gaps" style="text-align: center;">
|
||||||
<i class="ph-bell-ringing ph-bold ph-lg" style="display: block; margin: auto; font-size: 3em; color: var(--accent);"></i>
|
<i class="ti ti-bell-ringing-2" style="display: block; margin: auto; font-size: 3em; color: var(--accent);"></i>
|
||||||
<div style="font-size: 120%;">{{ i18n.ts.pushNotification }}</div>
|
<div style="font-size: 120%;">{{ i18n.ts.pushNotification }}</div>
|
||||||
<div style="padding: 0 16px;">{{ i18n.tsx._initialAccountSetting.pushNotificationDescription({ name: instance.name ?? host }) }}</div>
|
<div style="padding: 0 16px;">{{ i18n.tsx._initialAccountSetting.pushNotificationDescription({ name: instance.name ?? host }) }}</div>
|
||||||
<MkPushNotificationAllowButton primary showOnlyToRegister style="margin: 0 auto;"/>
|
<MkPushNotificationAllowButton primary showOnlyToRegister style="margin: 0 auto;"/>
|
||||||
|
|
|
@ -10,7 +10,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
{{ i18n.ts.visibility }}
|
{{ i18n.ts.visibility }}
|
||||||
</div>
|
</div>
|
||||||
<button key="public" :disabled="isSilenced || isReplyVisibilitySpecified" class="_button" :class="[$style.item, { [$style.active]: v === 'public' }]" data-index="1" @click="choose('public')">
|
<button key="public" :disabled="isSilenced || isReplyVisibilitySpecified" class="_button" :class="[$style.item, { [$style.active]: v === 'public' }]" data-index="1" @click="choose('public')">
|
||||||
<div :class="$style.icon"><i class="ph-globe-hemisphere-west ph-bold ph-lg"></i></div>
|
<div :class="$style.icon"><i class="ti ti-world"></i></div>
|
||||||
<div :class="$style.body">
|
<div :class="$style.body">
|
||||||
<span :class="$style.itemTitle">{{ i18n.ts._visibility.public }}</span>
|
<span :class="$style.itemTitle">{{ i18n.ts._visibility.public }}</span>
|
||||||
<span :class="$style.itemDescription">{{ i18n.ts._visibility.publicDescription }}</span>
|
<span :class="$style.itemDescription">{{ i18n.ts._visibility.publicDescription }}</span>
|
||||||
|
@ -31,7 +31,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</div>
|
</div>
|
||||||
</button>
|
</button>
|
||||||
<button key="specified" :disabled="localOnly" class="_button" :class="[$style.item, { [$style.active]: v === 'specified' }]" data-index="4" @click="choose('specified')">
|
<button key="specified" :disabled="localOnly" class="_button" :class="[$style.item, { [$style.active]: v === 'specified' }]" data-index="4" @click="choose('specified')">
|
||||||
<div :class="$style.icon"><i class="ph-envelope ph-bold ph-lg"></i></div>
|
<div :class="$style.icon"><i class="ti ti-mail"></i></div>
|
||||||
<div :class="$style.body">
|
<div :class="$style.body">
|
||||||
<span :class="$style.itemTitle">{{ i18n.ts._visibility.specified }}</span>
|
<span :class="$style.itemTitle">{{ i18n.ts._visibility.specified }}</span>
|
||||||
<span :class="$style.itemDescription">{{ i18n.ts._visibility.specifiedDescription }}</span>
|
<span :class="$style.itemDescription">{{ i18n.ts._visibility.specifiedDescription }}</span>
|
||||||
|
|
|
@ -27,10 +27,10 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<template v-if="!minimized">
|
<template v-if="!minimized">
|
||||||
<button v-for="button in buttonsRight" v-tooltip="button.title" class="_button" :class="[$style.headerButton, { [$style.highlighted]: button.highlighted }]" @click="button.onClick"><i :class="button.icon"></i></button>
|
<button v-for="button in buttonsRight" v-tooltip="button.title" class="_button" :class="[$style.headerButton, { [$style.highlighted]: button.highlighted }]" @click="button.onClick"><i :class="button.icon"></i></button>
|
||||||
</template>
|
</template>
|
||||||
<button v-if="canResize && minimized" v-tooltip="i18n.ts.windowRestore" class="_button" :class="$style.headerButton" @click="unMinimize()"><i class="ph-frame-corners ph-bold ph-lg"></i></button>
|
<button v-if="canResize && minimized" v-tooltip="i18n.ts.windowRestore" class="_button" :class="$style.headerButton" @click="unMinimize()"><i class="ti ti-maximize"></i></button>
|
||||||
<button v-else-if="canResize && !maximized" v-tooltip="i18n.ts.windowMinimize" class="_button" :class="$style.headerButton" @click="minimize()"><i class="ph-arrows-in-simple ph-bold ph-lg"></i></button>
|
<button v-else-if="canResize && !maximized" v-tooltip="i18n.ts.windowMinimize" class="_button" :class="$style.headerButton" @click="minimize()"><i class="ti ti-minimize"></i></button>
|
||||||
<button v-if="canResize && maximized" v-tooltip="i18n.ts.windowRestore" class="_button" :class="$style.headerButton" @click="unMaximize()"><i class="ph-picture-in-picture ph-bold ph-lg"></i></button>
|
<button v-if="canResize && maximized" v-tooltip="i18n.ts.windowRestore" class="_button" :class="$style.headerButton" @click="unMaximize()"><i class="ti ti-picture-in-picture"></i></button>
|
||||||
<button v-else-if="canResize && !maximized && !minimized" v-tooltip="i18n.ts.windowMaximize" class="_button" :class="$style.headerButton" @click="maximize()"><i class="ph-frame-corners ph-bold ph-lg"></i></button>
|
<button v-else-if="canResize && !maximized && !minimized" v-tooltip="i18n.ts.windowMaximize" class="_button" :class="$style.headerButton" @click="maximize()"><i class="ti ti-rectangle"></i></button>
|
||||||
<button v-if="closeButton" v-tooltip="i18n.ts.close" class="_button" :class="$style.headerButton" @click="close()"><i class="ti ti-x"></i></button>
|
<button v-if="closeButton" v-tooltip="i18n.ts.close" class="_button" :class="$style.headerButton" @click="close()"><i class="ti ti-x"></i></button>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -6,7 +6,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<template>
|
<template>
|
||||||
<MkWindow :initialWidth="640" :initialHeight="402" :canResize="true" :closeButton="true">
|
<MkWindow :initialWidth="640" :initialHeight="402" :canResize="true" :closeButton="true">
|
||||||
<template #header>
|
<template #header>
|
||||||
<i class="icon ph-youtube-logo ph-bold ph-lg" style="margin-right: 0.5em;"></i>
|
<i class="icon ti ti-brand-youtube" style="margin-right: 0.5em;"></i>
|
||||||
<span>{{ title ?? 'YouTube' }}</span>
|
<span>{{ title ?? 'YouTube' }}</span>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -86,17 +86,17 @@ export const SomeTabs = {
|
||||||
{
|
{
|
||||||
key: 'princess',
|
key: 'princess',
|
||||||
title: 'Princess',
|
title: 'Princess',
|
||||||
icon: 'ph-crown ph-bold ph-lg',
|
icon: 'ti ti-crown',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: 'fairy',
|
key: 'fairy',
|
||||||
title: 'Fairy',
|
title: 'Fairy',
|
||||||
icon: 'ph-snowflake ph-bold ph-lg',
|
icon: 'ti ti-snowflake',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: 'angel',
|
key: 'angel',
|
||||||
title: 'Angel',
|
title: 'Angel',
|
||||||
icon: 'ph-feather ph-bold ph-lg',
|
icon: 'ti ti-feather',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
|
|
@ -6,7 +6,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<!-- 動的ページのブロックの代替。利用できないということを表示する -->
|
<!-- 動的ページのブロックの代替。利用できないということを表示する -->
|
||||||
<template>
|
<template>
|
||||||
<div :class="$style.root">
|
<div :class="$style.root">
|
||||||
<div :class="$style.heading"><i class="ph ph-dice-5 ph-bold ph-lg"></i> {{ i18n.ts._pages.blocks.dynamic }}</div>
|
<div :class="$style.heading"><i class="ti ti-dice-5"></i> {{ i18n.ts._pages.blocks.dynamic }}</div>
|
||||||
<I18n :src="i18n.ts._pages.blocks.dynamicDescription" tag="div" :class="$style.text">
|
<I18n :src="i18n.ts._pages.blocks.dynamicDescription" tag="div" :class="$style.text">
|
||||||
<template #play>
|
<template #play>
|
||||||
<MkA to="/play" class="_link">Play</MkA>
|
<MkA to="/play" class="_link">Play</MkA>
|
||||||
|
|
|
@ -40,7 +40,7 @@ export const navbarItemDef = reactive({
|
||||||
},
|
},
|
||||||
followRequests: {
|
followRequests: {
|
||||||
title: i18n.ts.followRequests,
|
title: i18n.ts.followRequests,
|
||||||
icon: 'ph-user-plus ph-bold ph-lg',
|
icon: 'ti ti-user-plus',
|
||||||
show: computed(() => $i != null && $i.isLocked),
|
show: computed(() => $i != null && $i.isLocked),
|
||||||
indicated: computed(() => $i != null && $i.hasPendingReceivedFollowRequest),
|
indicated: computed(() => $i != null && $i.hasPendingReceivedFollowRequest),
|
||||||
to: '/my/follow-requests',
|
to: '/my/follow-requests',
|
||||||
|
@ -52,7 +52,7 @@ export const navbarItemDef = reactive({
|
||||||
},
|
},
|
||||||
announcements: {
|
announcements: {
|
||||||
title: i18n.ts.announcements,
|
title: i18n.ts.announcements,
|
||||||
icon: 'ph-megaphone ph-bold ph-lg',
|
icon: 'ti ti-speakerphone',
|
||||||
indicated: computed(() => $i != null && $i.hasUnreadAnnouncement),
|
indicated: computed(() => $i != null && $i.hasUnreadAnnouncement),
|
||||||
to: '/announcements',
|
to: '/announcements',
|
||||||
},
|
},
|
||||||
|
@ -63,20 +63,20 @@ export const navbarItemDef = reactive({
|
||||||
},
|
},
|
||||||
lookup: {
|
lookup: {
|
||||||
title: i18n.ts.lookup,
|
title: i18n.ts.lookup,
|
||||||
icon: 'ph-binoculars ph-bold ph-lg',
|
icon: 'ti ti-world-search',
|
||||||
action: (ev) => {
|
action: (ev) => {
|
||||||
lookup();
|
lookup();
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
lists: {
|
lists: {
|
||||||
title: i18n.ts.lists,
|
title: i18n.ts.lists,
|
||||||
icon: 'ph-list ph-bold ph-lg',
|
icon: 'ti ti-list',
|
||||||
show: computed(() => $i != null),
|
show: computed(() => $i != null),
|
||||||
to: '/my/lists',
|
to: '/my/lists',
|
||||||
},
|
},
|
||||||
antennas: {
|
antennas: {
|
||||||
title: i18n.ts.antennas,
|
title: i18n.ts.antennas,
|
||||||
icon: 'ph-flying-saucer ph-bold ph-lg',
|
icon: 'ti ti-antenna',
|
||||||
show: computed(() => $i != null),
|
show: computed(() => $i != null),
|
||||||
to: '/my/antennas',
|
to: '/my/antennas',
|
||||||
},
|
},
|
||||||
|
@ -88,7 +88,7 @@ export const navbarItemDef = reactive({
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
title: i18n.ts.pages,
|
title: i18n.ts.pages,
|
||||||
icon: 'ph-newspaper ph-bold ph-lg',
|
icon: 'ti ti-news',
|
||||||
to: '/pages',
|
to: '/pages',
|
||||||
},
|
},
|
||||||
play: {
|
play: {
|
||||||
|
@ -103,7 +103,7 @@ export const navbarItemDef = reactive({
|
||||||
},
|
},
|
||||||
clips: {
|
clips: {
|
||||||
title: i18n.ts.clip,
|
title: i18n.ts.clip,
|
||||||
icon: 'ph-paperclip ph-bold ph-lg',
|
icon: 'ti ti-paperclip',
|
||||||
show: computed(() => $i != null),
|
show: computed(() => $i != null),
|
||||||
to: '/my/clips',
|
to: '/my/clips',
|
||||||
},
|
},
|
||||||
|
@ -114,18 +114,18 @@ export const navbarItemDef = reactive({
|
||||||
},
|
},
|
||||||
achievements: {
|
achievements: {
|
||||||
title: i18n.ts.achievements,
|
title: i18n.ts.achievements,
|
||||||
icon: 'ph-trophy ph-bold ph-lg',
|
icon: 'ti ti-medal',
|
||||||
show: computed(() => $i != null && instance.enableAchievements),
|
show: computed(() => $i != null && instance.enableAchievements),
|
||||||
to: '/my/achievements',
|
to: '/my/achievements',
|
||||||
},
|
},
|
||||||
games: {
|
games: {
|
||||||
title: 'Games',
|
title: 'Games',
|
||||||
icon: 'ph-game-controller ph-bold ph-lg',
|
icon: 'ti ti-device-gamepad',
|
||||||
to: '/games',
|
to: '/games',
|
||||||
},
|
},
|
||||||
ui: {
|
ui: {
|
||||||
title: i18n.ts.switchUi,
|
title: i18n.ts.switchUi,
|
||||||
icon: 'ph-devices ph-bold ph-lg',
|
icon: 'ti ti-devices',
|
||||||
action: (ev) => {
|
action: (ev) => {
|
||||||
os.popupMenu([{
|
os.popupMenu([{
|
||||||
text: i18n.ts.default,
|
text: i18n.ts.default,
|
||||||
|
@ -167,7 +167,7 @@ export const navbarItemDef = reactive({
|
||||||
},
|
},
|
||||||
profile: {
|
profile: {
|
||||||
title: i18n.ts.profile,
|
title: i18n.ts.profile,
|
||||||
icon: 'ph-user ph-bold ph-lg',
|
icon: 'ti ti-user',
|
||||||
show: computed(() => $i != null),
|
show: computed(() => $i != null),
|
||||||
to: `/@${$i?.username}`,
|
to: `/@${$i?.username}`,
|
||||||
},
|
},
|
||||||
|
|
|
@ -58,13 +58,13 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</MkKeyValue>
|
</MkKeyValue>
|
||||||
</FormSplit>
|
</FormSplit>
|
||||||
<FormLink v-if="instance.impressumUrl" :to="instance.impressumUrl" external>
|
<FormLink v-if="instance.impressumUrl" :to="instance.impressumUrl" external>
|
||||||
<template #icon><i class="ph-newspaper-clipping ph-bold ph-lg"></i></template>
|
<template #icon><i class="ti ti-user-shield"></i></template>
|
||||||
{{ i18n.ts.impressum }}
|
{{ i18n.ts.impressum }}
|
||||||
</FormLink>
|
</FormLink>
|
||||||
<div class="_gaps_s">
|
<div class="_gaps_s">
|
||||||
<MkFolder v-if="instance.serverRules.length > 0">
|
<MkFolder v-if="instance.serverRules.length > 0">
|
||||||
<template #label>
|
<template #label>
|
||||||
<i class="ph-list-checks ph-bold ph-lg"></i>
|
<i class="ti ti-checkup-list"></i>
|
||||||
{{ i18n.ts.serverRules }}
|
{{ i18n.ts.serverRules }}
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -73,7 +73,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</ol>
|
</ol>
|
||||||
</MkFolder>
|
</MkFolder>
|
||||||
<FormLink v-if="instance.tosUrl" :to="instance.tosUrl" external>
|
<FormLink v-if="instance.tosUrl" :to="instance.tosUrl" external>
|
||||||
<template #icon><i class="ph-notebook ph-bold ph-lg"></i></template>
|
<template #icon><i class="ti ti-license"></i></template>
|
||||||
{{ i18n.ts.termsOfService }}
|
{{ i18n.ts.termsOfService }}
|
||||||
</FormLink>
|
</FormLink>
|
||||||
<FormLink v-if="instance.privacyPolicyUrl" :to="instance.privacyPolicyUrl" external>
|
<FormLink v-if="instance.privacyPolicyUrl" :to="instance.privacyPolicyUrl" external>
|
||||||
|
@ -81,7 +81,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
{{ i18n.ts.privacyPolicy }}
|
{{ i18n.ts.privacyPolicy }}
|
||||||
</FormLink>
|
</FormLink>
|
||||||
<FormLink v-if="instance.feedbackUrl" :to="instance.feedbackUrl" external>
|
<FormLink v-if="instance.feedbackUrl" :to="instance.feedbackUrl" external>
|
||||||
<template #icon><i class="ph-envelope ph-bold ph-lg"></i></template>
|
<template #icon><i class="ti ti-message"></i></template>
|
||||||
{{ i18n.ts.feedback }}
|
{{ i18n.ts.feedback }}
|
||||||
</FormLink>
|
</FormLink>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -50,7 +50,7 @@ onDeactivated(() => {
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: i18n.ts.achievements,
|
title: i18n.ts.achievements,
|
||||||
icon: 'ph-trophy ph-bold ph-lg',
|
icon: 'ti ti-medal',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -133,7 +133,7 @@ const headerTabs = computed(() => [{
|
||||||
}, iAmModerator ? {
|
}, iAmModerator ? {
|
||||||
key: 'ip',
|
key: 'ip',
|
||||||
title: 'IP',
|
title: 'IP',
|
||||||
icon: 'ph-password ph-bold ph-lg',
|
icon: 'ti ti-password',
|
||||||
} : null, {
|
} : null, {
|
||||||
key: 'raw',
|
key: 'raw',
|
||||||
title: 'Raw data',
|
title: 'Raw data',
|
||||||
|
|
|
@ -97,7 +97,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</MkFolder>
|
</MkFolder>
|
||||||
|
|
||||||
<MkFolder>
|
<MkFolder>
|
||||||
<template #icon><i class="ph-password ph-bold ph-lg"></i></template>
|
<template #icon><i class="ti ti-password"></i></template>
|
||||||
<template #label>IP</template>
|
<template #label>IP</template>
|
||||||
<MkInfo v-if="!iAmAdmin" warn>{{ i18n.ts.requireAdminForView }}</MkInfo>
|
<MkInfo v-if="!iAmAdmin" warn>{{ i18n.ts.requireAdminForView }}</MkInfo>
|
||||||
<MkInfo v-else>The date is the IP address was first acknowledged.</MkInfo>
|
<MkInfo v-else>The date is the IP address was first acknowledged.</MkInfo>
|
||||||
|
@ -110,7 +110,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</MkFolder>
|
</MkFolder>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<MkButton v-if="iAmModerator" inline danger style="margin-right: 8px;" @click="unsetUserAvatar"><i class="ph-user-circle ph-bold ph-lg"></i> {{ i18n.ts.unsetUserAvatar }}</MkButton>
|
<MkButton v-if="iAmModerator" inline danger style="margin-right: 8px;" @click="unsetUserAvatar"><i class="ti ti-user-circle"></i> {{ i18n.ts.unsetUserAvatar }}</MkButton>
|
||||||
<MkButton v-if="iAmModerator" inline danger style="margin-right: 8px;" @click="unsetUserBanner"><i class="ti ti-photo"></i> {{ i18n.ts.unsetUserBanner }}</MkButton>
|
<MkButton v-if="iAmModerator" inline danger style="margin-right: 8px;" @click="unsetUserBanner"><i class="ti ti-photo"></i> {{ i18n.ts.unsetUserBanner }}</MkButton>
|
||||||
<MkButton v-if="iAmModerator" inline danger @click="deleteAllFiles"><i class="ph-cloud ph-bold ph-lg"></i> {{ i18n.ts.deleteAllFiles }}</MkButton>
|
<MkButton v-if="iAmModerator" inline danger @click="deleteAllFiles"><i class="ph-cloud ph-bold ph-lg"></i> {{ i18n.ts.deleteAllFiles }}</MkButton>
|
||||||
</div>
|
</div>
|
||||||
|
@ -127,7 +127,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<MkRolePreview :class="$style.role" :role="role" :forModeration="true"/>
|
<MkRolePreview :class="$style.role" :role="role" :forModeration="true"/>
|
||||||
<button class="_button" @click="toggleRoleItem(role)"><i class="ti ti-chevron-down"></i></button>
|
<button class="_button" @click="toggleRoleItem(role)"><i class="ti ti-chevron-down"></i></button>
|
||||||
<button v-if="role.target === 'manual'" class="_button" :class="$style.roleUnassign" @click="unassignRole(role, $event)"><i class="ti ti-x"></i></button>
|
<button v-if="role.target === 'manual'" class="_button" :class="$style.roleUnassign" @click="unassignRole(role, $event)"><i class="ti ti-x"></i></button>
|
||||||
<button v-else class="_button" :class="$style.roleUnassign" disabled><i class="ph-prohibit ph-bold ph-lg"></i></button>
|
<button v-else class="_button" :class="$style.roleUnassign" disabled><i class="ti ti-ban"></i></button>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="expandedRoles.includes(role.id)" :class="$style.roleItemSub">
|
<div v-if="expandedRoles.includes(role.id)" :class="$style.roleItemSub">
|
||||||
<div>Assigned: <MkTime :time="info.roleAssigns.find(a => a.roleId === role.id).createdAt" mode="detail"/></div>
|
<div>Assigned: <MkTime :time="info.roleAssigns.find(a => a.roleId === role.id).createdAt" mode="detail"/></div>
|
||||||
|
@ -517,11 +517,11 @@ const headerTabs = computed(() => [{
|
||||||
}, {
|
}, {
|
||||||
key: 'roles',
|
key: 'roles',
|
||||||
title: i18n.ts.roles,
|
title: i18n.ts.roles,
|
||||||
icon: 'ph-seal-check ph-bold ph-lg',
|
icon: 'ti ti-badges',
|
||||||
}, {
|
}, {
|
||||||
key: 'announcements',
|
key: 'announcements',
|
||||||
title: i18n.ts.announcements,
|
title: i18n.ts.announcements,
|
||||||
icon: 'ph-megaphone ph-bold ph-lg',
|
icon: 'ti ti-speakerphone',
|
||||||
}, {
|
}, {
|
||||||
key: 'drive',
|
key: 'drive',
|
||||||
title: i18n.ts.drive,
|
title: i18n.ts.drive,
|
||||||
|
|
|
@ -28,7 +28,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<option value="not">{{ i18n.ts._role._condition.not }}</option>
|
<option value="not">{{ i18n.ts._role._condition.not }}</option>
|
||||||
</MkSelect>
|
</MkSelect>
|
||||||
<button v-if="draggable" class="drag-handle _button" :class="$style.dragHandle">
|
<button v-if="draggable" class="drag-handle _button" :class="$style.dragHandle">
|
||||||
<i class="ph-list ph-bold ph-lg-2"></i>
|
<i class="ti ti-menu-2"></i>
|
||||||
</button>
|
</button>
|
||||||
<button v-if="draggable" class="_button" :class="$style.remove" @click="removeSelf">
|
<button v-if="draggable" class="_button" :class="$style.remove" @click="removeSelf">
|
||||||
<i class="ti ti-x"></i>
|
<i class="ti ti-x"></i>
|
||||||
|
|
|
@ -257,7 +257,7 @@ const headerTabs = computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: i18n.ts.ads,
|
title: i18n.ts.ads,
|
||||||
icon: 'ph-flag ph-bold ph-lg',
|
icon: 'ti ti-ad',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -159,6 +159,6 @@ const headerTabs = computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: i18n.ts.announcements,
|
title: i18n.ts.announcements,
|
||||||
icon: 'ph-megaphone ph-bold ph-lg',
|
icon: 'ti ti-speakerphone',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -200,7 +200,7 @@ const headerTabs = computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: i18n.ts.branding,
|
title: i18n.ts.branding,
|
||||||
icon: 'ph-paint-roller ph-bold ph-lg',
|
icon: 'ti ti-paint',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,6 @@ const headerTabs = computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: i18n.ts.database,
|
title: i18n.ts.database,
|
||||||
icon: 'ph-database ph-bold ph-lg',
|
icon: 'ti ti-database',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -132,7 +132,7 @@ const headerTabs = computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: i18n.ts.emailServer,
|
title: i18n.ts.emailServer,
|
||||||
icon: 'ph-envelope ph-bold ph-lg',
|
icon: 'ti ti-mail',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -100,7 +100,7 @@ const menuDef = computed(() => [{
|
||||||
action: adminLookup,
|
action: adminLookup,
|
||||||
}, ...(instance.disableRegistration ? [{
|
}, ...(instance.disableRegistration ? [{
|
||||||
type: 'button',
|
type: 'button',
|
||||||
icon: 'ph-user-plus ph-bold ph-lg',
|
icon: 'ti ti-user-plus',
|
||||||
text: i18n.ts.createInviteCode,
|
text: i18n.ts.createInviteCode,
|
||||||
action: invite,
|
action: invite,
|
||||||
}] : [])],
|
}] : [])],
|
||||||
|
@ -117,7 +117,7 @@ const menuDef = computed(() => [{
|
||||||
to: '/admin/users',
|
to: '/admin/users',
|
||||||
active: currentPage.value?.route.name === 'users',
|
active: currentPage.value?.route.name === 'users',
|
||||||
}, {
|
}, {
|
||||||
icon: 'ph-user-plus ph-bold ph-lg',
|
icon: 'ti ti-user-plus',
|
||||||
text: i18n.ts.invite,
|
text: i18n.ts.invite,
|
||||||
to: '/admin/invites',
|
to: '/admin/invites',
|
||||||
active: currentPage.value?.route.name === 'invites',
|
active: currentPage.value?.route.name === 'invites',
|
||||||
|
@ -127,7 +127,7 @@ const menuDef = computed(() => [{
|
||||||
to: '/admin/approvals',
|
to: '/admin/approvals',
|
||||||
active: currentPage.value?.route.name === 'approvals',
|
active: currentPage.value?.route.name === 'approvals',
|
||||||
}, {
|
}, {
|
||||||
icon: 'ph-seal-check ph-bold ph-lg',
|
icon: 'ti ti-badges',
|
||||||
text: i18n.ts.roles,
|
text: i18n.ts.roles,
|
||||||
to: '/admin/roles',
|
to: '/admin/roles',
|
||||||
active: currentPage.value?.route.name === 'roles',
|
active: currentPage.value?.route.name === 'roles',
|
||||||
|
@ -157,12 +157,12 @@ const menuDef = computed(() => [{
|
||||||
to: '/admin/files',
|
to: '/admin/files',
|
||||||
active: currentPage.value?.route.name === 'files',
|
active: currentPage.value?.route.name === 'files',
|
||||||
}, {
|
}, {
|
||||||
icon: 'ph-megaphone ph-bold ph-lg',
|
icon: 'ti ti-speakerphone',
|
||||||
text: i18n.ts.announcements,
|
text: i18n.ts.announcements,
|
||||||
to: '/admin/announcements',
|
to: '/admin/announcements',
|
||||||
active: currentPage.value?.route.name === 'announcements',
|
active: currentPage.value?.route.name === 'announcements',
|
||||||
}, {
|
}, {
|
||||||
icon: 'ph-flag ph-bold ph-lg',
|
icon: 'ti ti-ad',
|
||||||
text: i18n.ts.ads,
|
text: i18n.ts.ads,
|
||||||
to: '/admin/ads',
|
to: '/admin/ads',
|
||||||
active: currentPage.value?.route.name === 'ads',
|
active: currentPage.value?.route.name === 'ads',
|
||||||
|
@ -185,7 +185,7 @@ const menuDef = computed(() => [{
|
||||||
to: '/admin/settings',
|
to: '/admin/settings',
|
||||||
active: currentPage.value?.route.name === 'settings',
|
active: currentPage.value?.route.name === 'settings',
|
||||||
}, {
|
}, {
|
||||||
icon: 'ph-paint-roller ph-bold ph-lg',
|
icon: 'ti ti-paint',
|
||||||
text: i18n.ts.branding,
|
text: i18n.ts.branding,
|
||||||
to: '/admin/branding',
|
to: '/admin/branding',
|
||||||
active: currentPage.value?.route.name === 'branding',
|
active: currentPage.value?.route.name === 'branding',
|
||||||
|
@ -195,7 +195,7 @@ const menuDef = computed(() => [{
|
||||||
to: '/admin/moderation',
|
to: '/admin/moderation',
|
||||||
active: currentPage.value?.route.name === 'moderation',
|
active: currentPage.value?.route.name === 'moderation',
|
||||||
}, {
|
}, {
|
||||||
icon: 'ph-envelope ph-bold ph-lg',
|
icon: 'ti ti-mail',
|
||||||
text: i18n.ts.emailServer,
|
text: i18n.ts.emailServer,
|
||||||
to: '/admin/email-settings',
|
to: '/admin/email-settings',
|
||||||
active: currentPage.value?.route.name === 'email-settings',
|
active: currentPage.value?.route.name === 'email-settings',
|
||||||
|
@ -215,7 +215,7 @@ const menuDef = computed(() => [{
|
||||||
to: '/admin/relays',
|
to: '/admin/relays',
|
||||||
active: currentPage.value?.route.name === 'relays',
|
active: currentPage.value?.route.name === 'relays',
|
||||||
}, {
|
}, {
|
||||||
icon: 'ph-prohibit ph-bold ph-lg',
|
icon: 'ti ti-ban',
|
||||||
text: i18n.ts.instanceBlocking,
|
text: i18n.ts.instanceBlocking,
|
||||||
to: '/admin/instance-block',
|
to: '/admin/instance-block',
|
||||||
active: currentPage.value?.route.name === 'instance-block',
|
active: currentPage.value?.route.name === 'instance-block',
|
||||||
|
@ -238,7 +238,7 @@ const menuDef = computed(() => [{
|
||||||
}, {
|
}, {
|
||||||
title: i18n.ts.info,
|
title: i18n.ts.info,
|
||||||
items: [{
|
items: [{
|
||||||
icon: 'ph-database ph-bold ph-lg',
|
icon: 'ti ti-database',
|
||||||
text: i18n.ts.database,
|
text: i18n.ts.database,
|
||||||
to: '/admin/database',
|
to: '/admin/database',
|
||||||
active: currentPage.value?.route.name === 'database',
|
active: currentPage.value?.route.name === 'database',
|
||||||
|
@ -305,13 +305,13 @@ function invite() {
|
||||||
function adminLookup(ev: MouseEvent) {
|
function adminLookup(ev: MouseEvent) {
|
||||||
os.popupMenu([{
|
os.popupMenu([{
|
||||||
text: i18n.ts.user,
|
text: i18n.ts.user,
|
||||||
icon: 'ph-user ph-bold ph-lg',
|
icon: 'ti ti-user',
|
||||||
action: () => {
|
action: () => {
|
||||||
lookupUser();
|
lookupUser();
|
||||||
},
|
},
|
||||||
}, {
|
}, {
|
||||||
text: `${i18n.ts.user} (${i18n.ts.email})`,
|
text: `${i18n.ts.user} (${i18n.ts.email})`,
|
||||||
icon: 'ph-user ph-bold ph-lg',
|
icon: 'ti ti-user',
|
||||||
action: () => {
|
action: () => {
|
||||||
lookupUserByEmail();
|
lookupUserByEmail();
|
||||||
},
|
},
|
||||||
|
|
|
@ -59,7 +59,7 @@ const headerActions = computed(() => []);
|
||||||
const headerTabs = computed(() => [{
|
const headerTabs = computed(() => [{
|
||||||
key: 'block',
|
key: 'block',
|
||||||
title: i18n.ts.block,
|
title: i18n.ts.block,
|
||||||
icon: 'ph-prohibit ph-bold ph-lg',
|
icon: 'ti ti-ban',
|
||||||
}, {
|
}, {
|
||||||
key: 'silence',
|
key: 'silence',
|
||||||
title: i18n.ts.silence,
|
title: i18n.ts.silence,
|
||||||
|
@ -68,6 +68,6 @@ const headerTabs = computed(() => [{
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: i18n.ts.instanceBlocking,
|
title: i18n.ts.instanceBlocking,
|
||||||
icon: 'ph-prohibit ph-bold ph-lg',
|
icon: 'ti ti-ban',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -115,7 +115,7 @@ const headerTabs = computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: i18n.ts.invite,
|
title: i18n.ts.invite,
|
||||||
icon: 'ph-user-plus ph-bold ph-lg',
|
icon: 'ti ti-user-plus',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<div>{{ relay.inbox }}</div>
|
<div>{{ relay.inbox }}</div>
|
||||||
<div style="margin: 8px 0;">
|
<div style="margin: 8px 0;">
|
||||||
<i v-if="relay.status === 'accepted'" class="ti ti-check" :class="$style.icon" style="color: var(--success);"></i>
|
<i v-if="relay.status === 'accepted'" class="ti ti-check" :class="$style.icon" style="color: var(--success);"></i>
|
||||||
<i v-else-if="relay.status === 'rejected'" class="ph-prohibit ph-bold ph-lg" :class="$style.icon" style="color: var(--error);"></i>
|
<i v-else-if="relay.status === 'rejected'" class="ti ti-ban" :class="$style.icon" style="color: var(--error);"></i>
|
||||||
<i v-else class="ti ti-clock" :class="$style.icon"></i>
|
<i v-else class="ti ti-clock" :class="$style.icon"></i>
|
||||||
<span>{{ i18n.ts._relayStatus[relay.status] }}</span>
|
<span>{{ i18n.ts._relayStatus[relay.status] }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -89,7 +89,7 @@ const headerTabs = computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: role.value ? `${i18n.ts._role.edit}: ${role.value.name}` : i18n.ts._role.new,
|
title: role.value ? `${i18n.ts._role.edit}: ${role.value.name}` : i18n.ts._role.new,
|
||||||
icon: 'ph-seal-check ph-bold ph-lg',
|
icon: 'ti ti-badge',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -172,7 +172,7 @@ const headerTabs = computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: `${i18n.ts.role}: ${role.name}`,
|
title: `${i18n.ts.role}: ${role.name}`,
|
||||||
icon: 'ph-seal-check ph-bold ph-lg',
|
icon: 'ti ti-badge',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -299,7 +299,7 @@ const headerTabs = computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: i18n.ts.roles,
|
title: i18n.ts.roles,
|
||||||
icon: 'ph-seal-check ph-bold ph-lg',
|
icon: 'ti ti-badges',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<div :class="$style.item">
|
<div :class="$style.item">
|
||||||
<div :class="$style.itemHeader">
|
<div :class="$style.itemHeader">
|
||||||
<div :class="$style.itemNumber" v-text="String(index + 1)"/>
|
<div :class="$style.itemNumber" v-text="String(index + 1)"/>
|
||||||
<span :class="$style.itemHandle"><i class="ph-list ph-bold ph-lg"/></span>
|
<span :class="$style.itemHandle"><i class="ti ti-menu"/></span>
|
||||||
<button class="_button" :class="$style.itemRemove" @click="remove(index)"><i class="ti ti-x"></i></button>
|
<button class="_button" :class="$style.itemRemove" @click="remove(index)"><i class="ti ti-x"></i></button>
|
||||||
</div>
|
</div>
|
||||||
<MkInput v-model="serverRules[index]"/>
|
<MkInput v-model="serverRules[index]"/>
|
||||||
|
|
|
@ -29,7 +29,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</MkInput>
|
</MkInput>
|
||||||
|
|
||||||
<MkInput v-model="maintainerEmail" type="email">
|
<MkInput v-model="maintainerEmail" type="email">
|
||||||
<template #prefix><i class="ph-envelope ph-bold ph-lg"></i></template>
|
<template #prefix><i class="ti ti-mail"></i></template>
|
||||||
<template #label>{{ i18n.ts.maintainerEmail }}</template>
|
<template #label>{{ i18n.ts.maintainerEmail }}</template>
|
||||||
</MkInput>
|
</MkInput>
|
||||||
</FormSplit>
|
</FormSplit>
|
||||||
|
|
|
@ -22,7 +22,7 @@ import { instance } from '@/instance.js';
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: i18n.ts.ads,
|
title: i18n.ts.ads,
|
||||||
icon: 'ph-flag ph-bold ph-lg',
|
icon: 'ti ti-ad',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -104,7 +104,7 @@ const headerTabs = computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: announcement.value ? `${i18n.ts.announcements}: ${announcement.value.title}` : i18n.ts.announcements,
|
title: announcement.value ? `${i18n.ts.announcements}: ${announcement.value.title}` : i18n.ts.announcements,
|
||||||
icon: 'ph-megaphone ph-bold ph-lg',
|
icon: 'ti ti-speakerphone',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -113,7 +113,7 @@ const headerTabs = computed(() => [{
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: i18n.ts.announcements,
|
title: i18n.ts.announcements,
|
||||||
icon: 'ph-megaphone ph-bold ph-lg',
|
icon: 'ti ti-speakerphone',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -93,7 +93,7 @@ const headerTabs = computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: antenna.value ? antenna.value.name : i18n.ts.antennas,
|
title: antenna.value ? antenna.value.name : i18n.ts.antennas,
|
||||||
icon: 'ph-flying-saucer ph-bold ph-lg',
|
icon: 'ti ti-antenna',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -50,7 +50,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
>
|
>
|
||||||
<template #item="{element,index}">
|
<template #item="{element,index}">
|
||||||
<div :class="$style.pinnedNote">
|
<div :class="$style.pinnedNote">
|
||||||
<button class="_button" :class="$style.pinnedNoteHandle"><i class="ph-list ph-bold ph-lg"></i></button>
|
<button class="_button" :class="$style.pinnedNoteHandle"><i class="ti ti-menu"></i></button>
|
||||||
{{ element.id }}
|
{{ element.id }}
|
||||||
<button class="_button" :class="$style.pinnedNoteRemove" @click="removePinnedNote(index)"><i class="ti ti-x"></i></button>
|
<button class="_button" :class="$style.pinnedNoteRemove" @click="removePinnedNote(index)"><i class="ti ti-x"></i></button>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -285,7 +285,7 @@ const headerTabs = computed(() => [{
|
||||||
}, {
|
}, {
|
||||||
key: 'featured',
|
key: 'featured',
|
||||||
title: i18n.ts.featured,
|
title: i18n.ts.featured,
|
||||||
icon: 'ph-lightning ph-bold ph-lg',
|
icon: 'ti ti-bolt',
|
||||||
}, {
|
}, {
|
||||||
key: 'search',
|
key: 'search',
|
||||||
title: i18n.ts.search,
|
title: i18n.ts.search,
|
||||||
|
|
|
@ -164,7 +164,7 @@ const headerActions = computed(() => clip.value && isOwned.value ? [{
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: clip.value ? clip.value.name : i18n.ts.clip,
|
title: clip.value ? clip.value.name : i18n.ts.clip,
|
||||||
icon: 'ph-paperclip ph-bold ph-lg',
|
icon: 'ti ti-paperclip',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<i class="ti ti-pencil"></i>
|
<i class="ti ti-pencil"></i>
|
||||||
</button>
|
</button>
|
||||||
<button v-if="isImage" v-tooltip="i18n.ts.cropImage" class="_button" :class="$style.fileQuickActionsOthersButton" @click="crop()">
|
<button v-if="isImage" v-tooltip="i18n.ts.cropImage" class="_button" :class="$style.fileQuickActionsOthersButton" @click="crop()">
|
||||||
<i class="ph-crop ph-bold ph-lg"></i>
|
<i class="ti ti-crop"></i>
|
||||||
</button>
|
</button>
|
||||||
<button v-if="file.isSensitive" v-tooltip="i18n.ts.unmarkAsSensitive" class="_button" :class="$style.fileQuickActionsOthersButton" @click="toggleSensitive()">
|
<button v-if="file.isSensitive" v-tooltip="i18n.ts.unmarkAsSensitive" class="_button" :class="$style.fileQuickActionsOthersButton" @click="toggleSensitive()">
|
||||||
<i class="ti ti-eye"></i>
|
<i class="ti ti-eye"></i>
|
||||||
|
|
|
@ -123,7 +123,7 @@ function onGameEnd() {
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: i18n.ts.bubbleGame,
|
title: i18n.ts.bubbleGame,
|
||||||
icon: 'ph-game-controller ph-bold ph-lg',
|
icon: 'ti ti-device-gamepad',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -59,7 +59,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<div v-for="role in rolesThatCanBeUsedThisEmojiAsReaction" :key="role.id" :class="$style.roleItem">
|
<div v-for="role in rolesThatCanBeUsedThisEmojiAsReaction" :key="role.id" :class="$style.roleItem">
|
||||||
<MkRolePreview :class="$style.role" :role="role" :forModeration="true" :detailed="false" style="pointer-events: none;"/>
|
<MkRolePreview :class="$style.role" :role="role" :forModeration="true" :detailed="false" style="pointer-events: none;"/>
|
||||||
<button v-if="role.target === 'manual'" class="_button" :class="$style.roleUnassign" @click="removeRole(role, $event)"><i class="ti ti-x"></i></button>
|
<button v-if="role.target === 'manual'" class="_button" :class="$style.roleUnassign" @click="removeRole(role, $event)"><i class="ti ti-x"></i></button>
|
||||||
<button v-else class="_button" :class="$style.roleUnassign" disabled><i class="ph-prohibit ph-bold ph-lg"></i></button>
|
<button v-else class="_button" :class="$style.roleUnassign" disabled><i class="ti ti-ban"></i></button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<MkInfo>{{ i18n.ts.rolesThatCanBeUsedThisEmojiAsReactionEmptyDescription }}</MkInfo>
|
<MkInfo>{{ i18n.ts.rolesThatCanBeUsedThisEmojiAsReactionEmptyDescription }}</MkInfo>
|
||||||
|
|
|
@ -48,7 +48,7 @@ const headerActions = computed(() => []);
|
||||||
|
|
||||||
const headerTabs = computed(() => [{
|
const headerTabs = computed(() => [{
|
||||||
key: 'featured',
|
key: 'featured',
|
||||||
icon: 'ph-lightning ph-bold ph-lg',
|
icon: 'ti ti-bolt',
|
||||||
title: i18n.ts.featured,
|
title: i18n.ts.featured,
|
||||||
}, {
|
}, {
|
||||||
key: 'users',
|
key: 'users',
|
||||||
|
@ -56,7 +56,7 @@ const headerTabs = computed(() => [{
|
||||||
title: i18n.ts.users,
|
title: i18n.ts.users,
|
||||||
}, {
|
}, {
|
||||||
key: 'roles',
|
key: 'roles',
|
||||||
icon: 'ph-seal-check ph-bold ph-lg',
|
icon: 'ti ti-badges',
|
||||||
title: i18n.ts.roles,
|
title: i18n.ts.roles,
|
||||||
}]);
|
}]);
|
||||||
|
|
||||||
|
|
|
@ -71,7 +71,7 @@ const headerTabs = computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: i18n.ts.followRequests,
|
title: i18n.ts.followRequests,
|
||||||
icon: 'ph-user-plus ph-bold ph-lg',
|
icon: 'ti ti-user-plus',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,6 @@ import { definePageMetadata } from '@/scripts/page-metadata.js';
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: 'Misskey Games',
|
title: 'Misskey Games',
|
||||||
icon: 'ph-game-controller ph-bold ph-lg',
|
icon: 'ti ti-device-gamepad',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -10,8 +10,8 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<MkLoading v-if="uiPhase === 'fetching'"/>
|
<MkLoading v-if="uiPhase === 'fetching'"/>
|
||||||
<div v-else-if="uiPhase === 'confirm' && data" class="_gaps_m" :class="$style.extInstallerRoot">
|
<div v-else-if="uiPhase === 'confirm' && data" class="_gaps_m" :class="$style.extInstallerRoot">
|
||||||
<div :class="$style.extInstallerIconWrapper">
|
<div :class="$style.extInstallerIconWrapper">
|
||||||
<i v-if="data.type === 'plugin'" class="ph-plug ph-bold ph-lg"></i>
|
<i v-if="data.type === 'plugin'" class="ti ti-plug"></i>
|
||||||
<i v-else-if="data.type === 'theme'" class="ph-palette ph-bold ph-lg"></i>
|
<i v-else-if="data.type === 'theme'" class="ti ti-palette"></i>
|
||||||
<i v-else class="ti ti-download"></i>
|
<i v-else class="ti ti-download"></i>
|
||||||
</div>
|
</div>
|
||||||
<h2 :class="$style.extInstallerTitle">{{ i18n.ts._externalResourceInstaller[`_${data.type}`].title }}</h2>
|
<h2 :class="$style.extInstallerTitle">{{ i18n.ts._externalResourceInstaller[`_${data.type}`].title }}</h2>
|
||||||
|
|
|
@ -20,7 +20,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<MkSpacer v-else :contentMax="800">
|
<MkSpacer v-else :contentMax="800">
|
||||||
<div class="_gaps_m" style="text-align: center;">
|
<div class="_gaps_m" style="text-align: center;">
|
||||||
<div v-if="resetCycle && inviteLimit">{{ i18n.tsx.inviteLimitResetCycle({ time: resetCycle, limit: inviteLimit }) }}</div>
|
<div v-if="resetCycle && inviteLimit">{{ i18n.tsx.inviteLimitResetCycle({ time: resetCycle, limit: inviteLimit }) }}</div>
|
||||||
<MkButton inline primary rounded :disabled="currentInviteLimit !== null && currentInviteLimit <= 0" @click="create"><i class="ph-user-plus ph-bold ph-lg"></i> {{ i18n.ts.createInviteCode }}</MkButton>
|
<MkButton inline primary rounded :disabled="currentInviteLimit !== null && currentInviteLimit <= 0" @click="create"><i class="ti ti-user-plus"></i> {{ i18n.ts.createInviteCode }}</MkButton>
|
||||||
<div v-if="currentInviteLimit !== null">{{ i18n.tsx.createLimitRemaining({ limit: currentInviteLimit }) }}</div>
|
<div v-if="currentInviteLimit !== null">{{ i18n.tsx.createLimitRemaining({ limit: currentInviteLimit }) }}</div>
|
||||||
|
|
||||||
<MkPagination ref="pagingComponent" :pagination="pagination">
|
<MkPagination ref="pagingComponent" :pagination="pagination">
|
||||||
|
@ -95,7 +95,7 @@ update();
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: i18n.ts.invite,
|
title: i18n.ts.invite,
|
||||||
icon: 'ph-user-plus ph-bold ph-lg',
|
icon: 'ti ti-user-plus',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -103,7 +103,7 @@ const headerTabs = computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: list.value ? list.value.name : i18n.ts.lists,
|
title: list.value ? list.value.name : i18n.ts.lists,
|
||||||
icon: 'ph-list ph-bold ph-lg',
|
icon: 'ti ti-list',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" module>
|
<style lang="scss" module>
|
||||||
|
|
|
@ -41,6 +41,6 @@ function onAntennaCreated() {
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: i18n.ts.manageAntennas,
|
title: i18n.ts.manageAntennas,
|
||||||
icon: 'ph-flying-saucer ph-bold ph-lg',
|
icon: 'ti ti-antenna',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -38,6 +38,6 @@ misskeyApi('antennas/show', { antennaId: props.antennaId }).then((antennaRespons
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: i18n.ts.manageAntennas,
|
title: i18n.ts.manageAntennas,
|
||||||
icon: 'ph-flying-saucer ph-bold ph-lg',
|
icon: 'ti ti-antenna',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -57,7 +57,7 @@ const headerTabs = computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: i18n.ts.manageAntennas,
|
title: i18n.ts.manageAntennas,
|
||||||
icon: 'ph-flying-saucer ph-bold ph-lg',
|
icon: 'ti ti-antenna',
|
||||||
}));
|
}));
|
||||||
|
|
||||||
onActivated(() => {
|
onActivated(() => {
|
||||||
|
|
|
@ -93,7 +93,7 @@ const headerActions = computed(() => []);
|
||||||
const headerTabs = computed(() => [{
|
const headerTabs = computed(() => [{
|
||||||
key: 'my',
|
key: 'my',
|
||||||
title: i18n.ts.myClips,
|
title: i18n.ts.myClips,
|
||||||
icon: 'ph-paperclip ph-bold ph-lg',
|
icon: 'ti ti-paperclip',
|
||||||
}, {
|
}, {
|
||||||
key: 'favorites',
|
key: 'favorites',
|
||||||
title: i18n.ts.favorites,
|
title: i18n.ts.favorites,
|
||||||
|
@ -102,7 +102,7 @@ const headerTabs = computed(() => [{
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: i18n.ts.clip,
|
title: i18n.ts.clip,
|
||||||
icon: 'ph-paperclip ph-bold ph-lg',
|
icon: 'ti ti-paperclip',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -73,7 +73,7 @@ const headerTabs = computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: i18n.ts.manageLists,
|
title: i18n.ts.manageLists,
|
||||||
icon: 'ph-list ph-bold ph-lg',
|
icon: 'ti ti-list',
|
||||||
}));
|
}));
|
||||||
|
|
||||||
onActivated(() => {
|
onActivated(() => {
|
||||||
|
|
|
@ -135,7 +135,7 @@ async function removeUser(item, ev) {
|
||||||
async function showMembershipMenu(item, ev) {
|
async function showMembershipMenu(item, ev) {
|
||||||
os.popupMenu([{
|
os.popupMenu([{
|
||||||
text: item.withReplies ? i18n.ts.hideRepliesToOthersInTimeline : i18n.ts.showRepliesToOthersInTimeline,
|
text: item.withReplies ? i18n.ts.hideRepliesToOthersInTimeline : i18n.ts.showRepliesToOthersInTimeline,
|
||||||
icon: item.withReplies ? 'ph-envelope-open ph-bold ph-lg' : 'ph-envelope ph-bold ph-lg',
|
icon: item.withReplies ? 'ph-envelope-open ph-bold ph-lg' : 'ti ti-messages',
|
||||||
action: async () => {
|
action: async () => {
|
||||||
misskeyApi('users/lists/update-membership', {
|
misskeyApi('users/lists/update-membership', {
|
||||||
listId: list.value.id,
|
listId: list.value.id,
|
||||||
|
@ -188,7 +188,7 @@ const headerTabs = computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: list.value ? list.value.name : i18n.ts.lists,
|
title: list.value ? list.value.name : i18n.ts.lists,
|
||||||
icon: 'ph-list ph-bold ph-lg',
|
icon: 'ti ti-list',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<div class="_margin">
|
<div class="_margin">
|
||||||
<div v-if="!showNext" class="_buttons" :class="$style.loadNext">
|
<div v-if="!showNext" class="_buttons" :class="$style.loadNext">
|
||||||
<MkButton v-if="note.channelId" rounded :class="$style.loadButton" @click="showNext = 'channel'"><i class="ti ti-chevron-up"></i> <i class="ph-television-simple ph-bold ph-lg"></i></MkButton>
|
<MkButton v-if="note.channelId" rounded :class="$style.loadButton" @click="showNext = 'channel'"><i class="ti ti-chevron-up"></i> <i class="ph-television-simple ph-bold ph-lg"></i></MkButton>
|
||||||
<MkButton rounded :class="$style.loadButton" @click="showNext = 'user'"><i class="ti ti-chevron-up"></i> <i class="ph-user ph-bold ph-lg"></i></MkButton>
|
<MkButton rounded :class="$style.loadButton" @click="showNext = 'user'"><i class="ti ti-chevron-up"></i> <i class="ti ti-user"></i></MkButton>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="defaultStore.state.noteDesign === 'misskey'" class="_margin _gaps_s">
|
<div v-if="defaultStore.state.noteDesign === 'misskey'" class="_margin _gaps_s">
|
||||||
<MkRemoteCaution v-if="note.user.host != null" :href="note.url ?? note.uri"/>
|
<MkRemoteCaution v-if="note.user.host != null" :href="note.url ?? note.uri"/>
|
||||||
|
@ -35,7 +35,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</div>
|
</div>
|
||||||
<div v-if="!showPrev" class="_buttons" :class="$style.loadPrev">
|
<div v-if="!showPrev" class="_buttons" :class="$style.loadPrev">
|
||||||
<MkButton v-if="note.channelId" rounded :class="$style.loadButton" @click="showPrev = 'channel'"><i class="ti ti-chevron-down"></i> <i class="ph-television-simple ph-bold ph-lg"></i></MkButton>
|
<MkButton v-if="note.channelId" rounded :class="$style.loadButton" @click="showPrev = 'channel'"><i class="ti ti-chevron-down"></i> <i class="ph-television-simple ph-bold ph-lg"></i></MkButton>
|
||||||
<MkButton rounded :class="$style.loadButton" @click="showPrev = 'user'"><i class="ti ti-chevron-down"></i> <i class="ph-user ph-bold ph-lg"></i></MkButton>
|
<MkButton rounded :class="$style.loadButton" @click="showPrev = 'user'"><i class="ti ti-chevron-down"></i> <i class="ti ti-user"></i></MkButton>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -87,11 +87,11 @@ const headerTabs = computed(() => [{
|
||||||
}, {
|
}, {
|
||||||
key: 'mentions',
|
key: 'mentions',
|
||||||
title: i18n.ts.mentions,
|
title: i18n.ts.mentions,
|
||||||
icon: 'ph-at ph-bold ph-lg',
|
icon: 'ti ti-at',
|
||||||
}, {
|
}, {
|
||||||
key: 'directNotes',
|
key: 'directNotes',
|
||||||
title: i18n.ts.directNotes,
|
title: i18n.ts.directNotes,
|
||||||
icon: 'ph-envelope ph-bold ph-lg',
|
icon: 'ti ti-mail',
|
||||||
}]);
|
}]);
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
|
|
|
@ -13,7 +13,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<i class="ti ti-trash"></i>
|
<i class="ti ti-trash"></i>
|
||||||
</button>
|
</button>
|
||||||
<button v-if="draggable" class="drag-handle _button">
|
<button v-if="draggable" class="drag-handle _button">
|
||||||
<i class="ph-list ph-bold ph-lg-2"></i>
|
<i class="ti ti-menu-2"></i>
|
||||||
</button>
|
</button>
|
||||||
<button class="_button" @click="toggleContent(!showBody)">
|
<button class="_button" @click="toggleContent(!showBody)">
|
||||||
<template v-if="showBody"><i class="ti ti-chevron-up"></i></template>
|
<template v-if="showBody"><i class="ti ti-chevron-up"></i></template>
|
||||||
|
|
|
@ -115,6 +115,6 @@ onUnmounted(() => {
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: 'Reversi',
|
title: 'Reversi',
|
||||||
icon: 'ph-game-controller ph-bold ph-lg',
|
icon: 'ti ti-device-gamepad',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -36,13 +36,13 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<div :class="$style.gamePreviews">
|
<div :class="$style.gamePreviews">
|
||||||
<MkA v-for="g in items" :key="g.id" v-panel :class="[$style.gamePreview, !g.isStarted && !g.isEnded && $style.gamePreviewWaiting, g.isStarted && !g.isEnded && $style.gamePreviewActive]" tabindex="-1" :to="`/reversi/g/${g.id}`">
|
<MkA v-for="g in items" :key="g.id" v-panel :class="[$style.gamePreview, !g.isStarted && !g.isEnded && $style.gamePreviewWaiting, g.isStarted && !g.isEnded && $style.gamePreviewActive]" tabindex="-1" :to="`/reversi/g/${g.id}`">
|
||||||
<div :class="$style.gamePreviewPlayers">
|
<div :class="$style.gamePreviewPlayers">
|
||||||
<span v-if="g.winnerId === g.user1Id" style="margin-right: 0.75em; color: var(--accent); font-weight: bold;"><i class="ph-trophy ph-bold ph-lg"></i></span>
|
<span v-if="g.winnerId === g.user1Id" style="margin-right: 0.75em; color: var(--accent); font-weight: bold;"><i class="ti ti-trophy"></i></span>
|
||||||
<span v-if="g.winnerId === g.user2Id" style="margin-right: 0.75em; visibility: hidden;"><i class="ti ti-x"></i></span>
|
<span v-if="g.winnerId === g.user2Id" style="margin-right: 0.75em; visibility: hidden;"><i class="ti ti-x"></i></span>
|
||||||
<MkAvatar :class="$style.gamePreviewPlayersAvatar" :user="g.user1"/>
|
<MkAvatar :class="$style.gamePreviewPlayersAvatar" :user="g.user1"/>
|
||||||
<span style="margin: 0 1em;">vs</span>
|
<span style="margin: 0 1em;">vs</span>
|
||||||
<MkAvatar :class="$style.gamePreviewPlayersAvatar" :user="g.user2"/>
|
<MkAvatar :class="$style.gamePreviewPlayersAvatar" :user="g.user2"/>
|
||||||
<span v-if="g.winnerId === g.user1Id" style="margin-left: 0.75em; visibility: hidden;"><i class="ti ti-x"></i></span>
|
<span v-if="g.winnerId === g.user1Id" style="margin-left: 0.75em; visibility: hidden;"><i class="ti ti-x"></i></span>
|
||||||
<span v-if="g.winnerId === g.user2Id" style="margin-left: 0.75em; color: var(--accent); font-weight: bold;"><i class="ph-trophy ph-bold ph-lg"></i></span>
|
<span v-if="g.winnerId === g.user2Id" style="margin-left: 0.75em; color: var(--accent); font-weight: bold;"><i class="ti ti-trophy"></i></span>
|
||||||
</div>
|
</div>
|
||||||
<div :class="$style.gamePreviewFooter">
|
<div :class="$style.gamePreviewFooter">
|
||||||
<span v-if="g.isStarted && !g.isEnded" :class="$style.gamePreviewStatusActive">{{ i18n.ts._reversi.playing }}</span>
|
<span v-if="g.isStarted && !g.isEnded" :class="$style.gamePreviewStatusActive">{{ i18n.ts._reversi.playing }}</span>
|
||||||
|
@ -63,13 +63,13 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<div :class="$style.gamePreviews">
|
<div :class="$style.gamePreviews">
|
||||||
<MkA v-for="g in items" :key="g.id" v-panel :class="[$style.gamePreview, !g.isStarted && !g.isEnded && $style.gamePreviewWaiting, g.isStarted && !g.isEnded && $style.gamePreviewActive]" tabindex="-1" :to="`/reversi/g/${g.id}`">
|
<MkA v-for="g in items" :key="g.id" v-panel :class="[$style.gamePreview, !g.isStarted && !g.isEnded && $style.gamePreviewWaiting, g.isStarted && !g.isEnded && $style.gamePreviewActive]" tabindex="-1" :to="`/reversi/g/${g.id}`">
|
||||||
<div :class="$style.gamePreviewPlayers">
|
<div :class="$style.gamePreviewPlayers">
|
||||||
<span v-if="g.winnerId === g.user1Id" style="margin-right: 0.75em; color: var(--accent); font-weight: bold;"><i class="ph-trophy ph-bold ph-lg"></i></span>
|
<span v-if="g.winnerId === g.user1Id" style="margin-right: 0.75em; color: var(--accent); font-weight: bold;"><i class="ti ti-trophy"></i></span>
|
||||||
<span v-if="g.winnerId === g.user2Id" style="margin-right: 0.75em; visibility: hidden;"><i class="ti ti-x"></i></span>
|
<span v-if="g.winnerId === g.user2Id" style="margin-right: 0.75em; visibility: hidden;"><i class="ti ti-x"></i></span>
|
||||||
<MkAvatar :class="$style.gamePreviewPlayersAvatar" :user="g.user1"/>
|
<MkAvatar :class="$style.gamePreviewPlayersAvatar" :user="g.user1"/>
|
||||||
<span style="margin: 0 1em;">vs</span>
|
<span style="margin: 0 1em;">vs</span>
|
||||||
<MkAvatar :class="$style.gamePreviewPlayersAvatar" :user="g.user2"/>
|
<MkAvatar :class="$style.gamePreviewPlayersAvatar" :user="g.user2"/>
|
||||||
<span v-if="g.winnerId === g.user1Id" style="margin-left: 0.75em; visibility: hidden;"><i class="ti ti-x"></i></span>
|
<span v-if="g.winnerId === g.user1Id" style="margin-left: 0.75em; visibility: hidden;"><i class="ti ti-x"></i></span>
|
||||||
<span v-if="g.winnerId === g.user2Id" style="margin-left: 0.75em; color: var(--accent); font-weight: bold;"><i class="ph-trophy ph-bold ph-lg"></i></span>
|
<span v-if="g.winnerId === g.user2Id" style="margin-left: 0.75em; color: var(--accent); font-weight: bold;"><i class="ti ti-trophy"></i></span>
|
||||||
</div>
|
</div>
|
||||||
<div :class="$style.gamePreviewFooter">
|
<div :class="$style.gamePreviewFooter">
|
||||||
<span v-if="g.isStarted && !g.isEnded" :class="$style.gamePreviewStatusActive">{{ i18n.ts._reversi.playing }}</span>
|
<span v-if="g.isStarted && !g.isEnded" :class="$style.gamePreviewStatusActive">{{ i18n.ts._reversi.playing }}</span>
|
||||||
|
@ -263,7 +263,7 @@ onUnmounted(() => {
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: 'Reversi',
|
title: 'Reversi',
|
||||||
icon: 'ph-game-controller ph-bold ph-lg',
|
icon: 'ti ti-device-gamepad',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -95,7 +95,7 @@ const headerTabs = computed(() => [{
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: role.value ? role.value.name : i18n.ts.role,
|
title: role.value ? role.value.name : i18n.ts.role,
|
||||||
icon: 'ph-seal-check ph-bold ph-lg',
|
icon: 'ti ti-badge',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -77,7 +77,7 @@ const headerTabs = computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: i18n.ts.installedApps,
|
title: i18n.ts.installedApps,
|
||||||
icon: 'ph-plug ph-bold ph-lg',
|
icon: 'ti ti-plug',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<FormSection first>
|
<FormSection first>
|
||||||
<template #label>{{ i18n.ts.emailAddress }}</template>
|
<template #label>{{ i18n.ts.emailAddress }}</template>
|
||||||
<MkInput v-model="emailAddress" type="email" manualSave>
|
<MkInput v-model="emailAddress" type="email" manualSave>
|
||||||
<template #prefix><i class="ph-envelope ph-bold ph-lg"></i></template>
|
<template #prefix><i class="ti ti-mail"></i></template>
|
||||||
<template v-if="$i.email && !$i.emailVerified" #caption>{{ i18n.ts.verificationEmailSent }}</template>
|
<template v-if="$i.email && !$i.emailVerified" #caption>{{ i18n.ts.verificationEmailSent }}</template>
|
||||||
<template v-else-if="emailAddress === $i.email && $i.emailVerified" #caption><i class="ti ti-check" style="color: var(--success);"></i> {{ i18n.ts.emailVerified }}</template>
|
<template v-else-if="emailAddress === $i.email && $i.emailVerified" #caption><i class="ti ti-check" style="color: var(--success);"></i> {{ i18n.ts.emailVerified }}</template>
|
||||||
</MkInput>
|
</MkInput>
|
||||||
|
@ -115,6 +115,6 @@ const headerTabs = computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: i18n.ts.email,
|
title: i18n.ts.email,
|
||||||
icon: 'ph-envelope ph-bold ph-lg',
|
icon: 'ti ti-mail',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -116,7 +116,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</div>
|
</div>
|
||||||
</FormSection>
|
</FormSection>
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<template #label><i class="ph-flying-saucer ph-bold ph-lg"></i> {{ i18n.ts.antennas }}</template>
|
<template #label><i class="ti ti-antenna"></i> {{ i18n.ts.antennas }}</template>
|
||||||
<div class="_gaps_s">
|
<div class="_gaps_s">
|
||||||
<MkFolder>
|
<MkFolder>
|
||||||
<template #label>{{ i18n.ts.export }}</template>
|
<template #label>{{ i18n.ts.export }}</template>
|
||||||
|
|
|
@ -62,7 +62,7 @@ const ro = new ResizeObserver((entries, observer) => {
|
||||||
const menuDef = computed(() => [{
|
const menuDef = computed(() => [{
|
||||||
title: i18n.ts.basicSettings,
|
title: i18n.ts.basicSettings,
|
||||||
items: [{
|
items: [{
|
||||||
icon: 'ph-user ph-bold ph-lg',
|
icon: 'ti ti-user',
|
||||||
text: i18n.ts.profile,
|
text: i18n.ts.profile,
|
||||||
to: '/settings/profile',
|
to: '/settings/profile',
|
||||||
active: currentPage.value?.route.name === 'profile',
|
active: currentPage.value?.route.name === 'profile',
|
||||||
|
@ -87,7 +87,7 @@ const menuDef = computed(() => [{
|
||||||
to: '/settings/notifications',
|
to: '/settings/notifications',
|
||||||
active: currentPage.value?.route.name === 'notifications',
|
active: currentPage.value?.route.name === 'notifications',
|
||||||
}, {
|
}, {
|
||||||
icon: 'ph-envelope ph-bold ph-lg',
|
icon: 'ti ti-mail',
|
||||||
text: i18n.ts.email,
|
text: i18n.ts.email,
|
||||||
to: '/settings/email',
|
to: '/settings/email',
|
||||||
active: currentPage.value?.route.name === 'email',
|
active: currentPage.value?.route.name === 'email',
|
||||||
|
@ -105,12 +105,12 @@ const menuDef = computed(() => [{
|
||||||
to: '/settings/general',
|
to: '/settings/general',
|
||||||
active: currentPage.value?.route.name === 'general',
|
active: currentPage.value?.route.name === 'general',
|
||||||
}, {
|
}, {
|
||||||
icon: 'ph-palette ph-bold ph-lg',
|
icon: 'ti ti-palette',
|
||||||
text: i18n.ts.theme,
|
text: i18n.ts.theme,
|
||||||
to: '/settings/theme',
|
to: '/settings/theme',
|
||||||
active: currentPage.value?.route.name === 'theme',
|
active: currentPage.value?.route.name === 'theme',
|
||||||
}, {
|
}, {
|
||||||
icon: 'ph-list ph-bold ph-lg-2',
|
icon: 'ti ti-menu-2',
|
||||||
text: i18n.ts.navbar,
|
text: i18n.ts.navbar,
|
||||||
to: '/settings/navbar',
|
to: '/settings/navbar',
|
||||||
active: currentPage.value?.route.name === 'navbar',
|
active: currentPage.value?.route.name === 'navbar',
|
||||||
|
@ -125,7 +125,7 @@ const menuDef = computed(() => [{
|
||||||
to: '/settings/sounds',
|
to: '/settings/sounds',
|
||||||
active: currentPage.value?.route.name === 'sounds',
|
active: currentPage.value?.route.name === 'sounds',
|
||||||
}, {
|
}, {
|
||||||
icon: 'ph-plug ph-bold ph-lg',
|
icon: 'ti ti-plug',
|
||||||
text: i18n.ts.plugins,
|
text: i18n.ts.plugins,
|
||||||
to: '/settings/plugin',
|
to: '/settings/plugin',
|
||||||
active: currentPage.value?.route.name === 'plugin',
|
active: currentPage.value?.route.name === 'plugin',
|
||||||
|
@ -133,12 +133,12 @@ const menuDef = computed(() => [{
|
||||||
}, {
|
}, {
|
||||||
title: i18n.ts.otherSettings,
|
title: i18n.ts.otherSettings,
|
||||||
items: [{
|
items: [{
|
||||||
icon: 'ph-seal-check ph-bold ph-lg',
|
icon: 'ti ti-badges',
|
||||||
text: i18n.ts.roles,
|
text: i18n.ts.roles,
|
||||||
to: '/settings/roles',
|
to: '/settings/roles',
|
||||||
active: currentPage.value?.route.name === 'roles',
|
active: currentPage.value?.route.name === 'roles',
|
||||||
}, {
|
}, {
|
||||||
icon: 'ph-prohibit ph-bold ph-lg',
|
icon: 'ti ti-ban',
|
||||||
text: i18n.ts.muteAndBlock,
|
text: i18n.ts.muteAndBlock,
|
||||||
to: '/settings/mute-block',
|
to: '/settings/mute-block',
|
||||||
active: currentPage.value?.route.name === 'mute-block',
|
active: currentPage.value?.route.name === 'mute-block',
|
||||||
|
|
|
@ -91,7 +91,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</MkFolder>
|
</MkFolder>
|
||||||
|
|
||||||
<MkFolder>
|
<MkFolder>
|
||||||
<template #icon><i class="ph-prohibit ph-bold ph-lg"></i></template>
|
<template #icon><i class="ti ti-ban"></i></template>
|
||||||
<template #label>{{ i18n.ts.blockedUsers }}</template>
|
<template #label>{{ i18n.ts.blockedUsers }}</template>
|
||||||
|
|
||||||
<MkPagination :pagination="blockingPagination">
|
<MkPagination :pagination="blockingPagination">
|
||||||
|
@ -231,7 +231,7 @@ const headerTabs = computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: i18n.ts.muteAndBlock,
|
title: i18n.ts.muteAndBlock,
|
||||||
icon: 'ph-prohibit ph-bold ph-lg',
|
icon: 'ti ti-ban',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
v-if="element.type === '-' || navbarItemDef[element.type]"
|
v-if="element.type === '-' || navbarItemDef[element.type]"
|
||||||
:class="$style.item"
|
:class="$style.item"
|
||||||
>
|
>
|
||||||
<button class="_button" :class="$style.itemHandle"><i class="ph-list ph-bold ph-lg"></i></button>
|
<button class="_button" :class="$style.itemHandle"><i class="ti ti-menu"></i></button>
|
||||||
<i class="ti-fw" :class="[$style.itemIcon, navbarItemDef[element.type]?.icon]"></i><span :class="$style.itemText">{{ navbarItemDef[element.type]?.title ?? i18n.ts.divider }}</span>
|
<i class="ti-fw" :class="[$style.itemIcon, navbarItemDef[element.type]?.icon]"></i><span :class="$style.itemText">{{ navbarItemDef[element.type]?.title ?? i18n.ts.divider }}</span>
|
||||||
<button class="_button" :class="$style.itemRemove" @click="removeItem(index)"><i class="ti ti-x"></i></button>
|
<button class="_button" :class="$style.itemRemove" @click="removeItem(index)"><i class="ti ti-x"></i></button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -120,7 +120,7 @@ const headerTabs = computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: i18n.ts.navbar,
|
title: i18n.ts.navbar,
|
||||||
icon: 'ph-list ph-bold ph-lg',
|
icon: 'ti ti-list',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -141,6 +141,6 @@ const headerTabs = computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: i18n.ts.plugins,
|
title: i18n.ts.plugins,
|
||||||
icon: 'ph-plug ph-bold ph-lg',
|
icon: 'ti ti-plug',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -50,7 +50,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
|
||||||
<FormSlot>
|
<FormSlot>
|
||||||
<MkFolder>
|
<MkFolder>
|
||||||
<template #icon><i class="ph-list ph-bold ph-lg"></i></template>
|
<template #icon><i class="ti ti-list"></i></template>
|
||||||
<template #label>{{ i18n.ts._profile.metadataEdit }}</template>
|
<template #label>{{ i18n.ts._profile.metadataEdit }}</template>
|
||||||
|
|
||||||
<div :class="$style.metadataRoot">
|
<div :class="$style.metadataRoot">
|
||||||
|
@ -72,7 +72,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
>
|
>
|
||||||
<template #item="{element, index}">
|
<template #item="{element, index}">
|
||||||
<div :class="$style.fieldDragItem">
|
<div :class="$style.fieldDragItem">
|
||||||
<button v-if="!fieldEditMode" class="_button" :class="$style.dragItemHandle" tabindex="-1"><i class="ph-list ph-bold ph-lg"></i></button>
|
<button v-if="!fieldEditMode" class="_button" :class="$style.dragItemHandle" tabindex="-1"><i class="ti ti-menu"></i></button>
|
||||||
<button v-if="fieldEditMode" :disabled="fields.length <= 1" class="_button" :class="$style.dragItemRemove" @click="deleteField(index)"><i class="ti ti-x"></i></button>
|
<button v-if="fieldEditMode" :disabled="fields.length <= 1" class="_button" :class="$style.dragItemRemove" @click="deleteField(index)"><i class="ti ti-x"></i></button>
|
||||||
<div :class="$style.dragItemForm">
|
<div :class="$style.dragItemForm">
|
||||||
<FormSplit :minWidth="200">
|
<FormSplit :minWidth="200">
|
||||||
|
@ -396,7 +396,7 @@ const headerTabs = computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: i18n.ts.profile,
|
title: i18n.ts.profile,
|
||||||
icon: 'ph-user ph-bold ph-lg',
|
icon: 'ti ti-user',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ const headerTabs = computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: i18n.ts.roles,
|
title: i18n.ts.roles,
|
||||||
icon: 'ph-seal-check ph-bold ph-lg',
|
icon: 'ti ti-badges',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -52,6 +52,6 @@ const headerTabs = computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: i18n.ts.statusbar,
|
title: i18n.ts.statusbar,
|
||||||
icon: 'ph-list ph-bold ph-lg',
|
icon: 'ti ti-list',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -59,9 +59,9 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<div class="_formLinksGrid">
|
<div class="_formLinksGrid">
|
||||||
<FormLink to="/settings/theme/manage"><template #icon><i class="ph-wrench ph-bold ph-lg"></i></template>{{ i18n.ts._theme.manage }}<template #suffix>{{ themesCount }}</template></FormLink>
|
<FormLink to="/settings/theme/manage"><template #icon><i class="ph-wrench ph-bold ph-lg"></i></template>{{ i18n.ts._theme.manage }}<template #suffix>{{ themesCount }}</template></FormLink>
|
||||||
<FormLink to="https://assets.misskey.io/theme/list" external><template #icon><i class="ph-globe-hemisphere-west ph-bold ph-lg"></i></template>{{ i18n.ts._theme.explore }}</FormLink>
|
<FormLink to="https://assets.misskey.io/theme/list" external><template #icon><i class="ti ti-world"></i></template>{{ i18n.ts._theme.explore }}</FormLink>
|
||||||
<FormLink to="/settings/theme/install"><template #icon><i class="ti ti-download"></i></template>{{ i18n.ts._theme.install }}</FormLink>
|
<FormLink to="/settings/theme/install"><template #icon><i class="ti ti-download"></i></template>{{ i18n.ts._theme.install }}</FormLink>
|
||||||
<FormLink to="/theme-editor"><template #icon><i class="ph-paint-roller ph-bold ph-lg"></i></template>{{ i18n.ts._theme.make }}</FormLink>
|
<FormLink to="/theme-editor"><template #icon><i class="ti ti-paint"></i></template>{{ i18n.ts._theme.make }}</FormLink>
|
||||||
</div>
|
</div>
|
||||||
</FormSection>
|
</FormSection>
|
||||||
|
|
||||||
|
@ -179,7 +179,7 @@ const headerTabs = computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: i18n.ts.theme,
|
title: i18n.ts.theme,
|
||||||
icon: 'ph-palette ph-bold ph-lg',
|
icon: 'ti ti-palette',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -221,7 +221,7 @@ const headerTabs = computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: i18n.ts.themeEditor,
|
title: i18n.ts.themeEditor,
|
||||||
icon: 'ph-palette ph-bold ph-lg',
|
icon: 'ti ti-palette',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -316,12 +316,12 @@ const headerTabs = computed(() => [...(defaultStore.reactiveState.pinnedUserList
|
||||||
icon: 'ph-globe-hemisphere-west ph-bold ph-lg',
|
icon: 'ph-globe-hemisphere-west ph-bold ph-lg',
|
||||||
iconOnly: true,
|
iconOnly: true,
|
||||||
}] : []), {
|
}] : []), {
|
||||||
icon: 'ph-list ph-bold ph-lg',
|
icon: 'ti ti-list',
|
||||||
title: i18n.ts.lists,
|
title: i18n.ts.lists,
|
||||||
iconOnly: true,
|
iconOnly: true,
|
||||||
onClick: chooseList,
|
onClick: chooseList,
|
||||||
}, {
|
}, {
|
||||||
icon: 'ph-flying-saucer ph-bold ph-lg',
|
icon: 'ti ti-antenna',
|
||||||
title: i18n.ts.antennas,
|
title: i18n.ts.antennas,
|
||||||
iconOnly: true,
|
iconOnly: true,
|
||||||
onClick: chooseAntenna,
|
onClick: chooseAntenna,
|
||||||
|
@ -349,7 +349,7 @@ const headerTabsWhenNotLogin = computed(() => [
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: i18n.ts.timeline,
|
title: i18n.ts.timeline,
|
||||||
icon: src.value === 'local' ? 'ti ti-planet' : src.value === 'social' ? 'ph-rocket-launch ph-bold ph-lg' : src.value === 'global' ? 'ph-globe-hemisphere-west ph-bold ph-lg' : src.value === 'bubble' ? 'ph-drop ph-bold ph-lg' : 'ti ti-home',
|
icon: src.value === 'local' ? 'ti ti-planet' : src.value === 'social' ? 'ph-rocket-launch ph-bold ph-lg' : src.value === 'global' ? 'ti ti-world' : src.value === 'bubble' ? 'ph-drop ph-bold ph-lg' : 'ti ti-home',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -107,7 +107,7 @@ const headerTabs = computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: list.value ? list.value.name : i18n.ts.lists,
|
title: list.value ? list.value.name : i18n.ts.lists,
|
||||||
icon: 'ph-list ph-bold ph-lg',
|
icon: 'ti ti-list',
|
||||||
}));
|
}));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -54,7 +54,7 @@ const headerTabs = computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: i18n.ts.user,
|
title: i18n.ts.user,
|
||||||
icon: 'ph-user ph-bold ph-lg',
|
icon: 'ti ti-user',
|
||||||
...user.value ? {
|
...user.value ? {
|
||||||
title: user.value.name ? `${user.value.name} (@${user.value.username})` : `@${user.value.username}`,
|
title: user.value.name ? `${user.value.name} (@${user.value.username})` : `@${user.value.username}`,
|
||||||
subtitle: i18n.ts.followers,
|
subtitle: i18n.ts.followers,
|
||||||
|
|
|
@ -54,7 +54,7 @@ const headerTabs = computed(() => []);
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: i18n.ts.user,
|
title: i18n.ts.user,
|
||||||
icon: 'ph-user ph-bold ph-lg',
|
icon: 'ti ti-user',
|
||||||
...user.value ? {
|
...user.value ? {
|
||||||
title: user.value.name ? `${user.value.name} (@${user.value.username})` : `@${user.value.username}`,
|
title: user.value.name ? `${user.value.name} (@${user.value.username})` : `@${user.value.username}`,
|
||||||
subtitle: i18n.ts.following,
|
subtitle: i18n.ts.following,
|
||||||
|
|
|
@ -95,7 +95,7 @@ const headerTabs = computed(() => user.value ? [{
|
||||||
}, ...(user.value.host == null ? [{
|
}, ...(user.value.host == null ? [{
|
||||||
key: 'achievements',
|
key: 'achievements',
|
||||||
title: i18n.ts.achievements,
|
title: i18n.ts.achievements,
|
||||||
icon: 'ph-trophy ph-bold ph-lg',
|
icon: 'ti ti-medal',
|
||||||
}] : []), ...($i && ($i.id === user.value.id || $i.isAdmin || $i.isModerator)) || user.value.publicReactions ? [{
|
}] : []), ...($i && ($i.id === user.value.id || $i.isAdmin || $i.isModerator)) || user.value.publicReactions ? [{
|
||||||
key: 'reactions',
|
key: 'reactions',
|
||||||
title: i18n.ts.reaction,
|
title: i18n.ts.reaction,
|
||||||
|
@ -103,15 +103,15 @@ const headerTabs = computed(() => user.value ? [{
|
||||||
}] : [], {
|
}] : [], {
|
||||||
key: 'clips',
|
key: 'clips',
|
||||||
title: i18n.ts.clips,
|
title: i18n.ts.clips,
|
||||||
icon: 'ph-paperclip ph-bold ph-lg',
|
icon: 'ti ti-paperclip',
|
||||||
}, {
|
}, {
|
||||||
key: 'lists',
|
key: 'lists',
|
||||||
title: i18n.ts.lists,
|
title: i18n.ts.lists,
|
||||||
icon: 'ph-list ph-bold ph-lg',
|
icon: 'ti ti-list',
|
||||||
}, {
|
}, {
|
||||||
key: 'pages',
|
key: 'pages',
|
||||||
title: i18n.ts.pages,
|
title: i18n.ts.pages,
|
||||||
icon: 'ph-newspaper ph-bold ph-lg',
|
icon: 'ti ti-news',
|
||||||
}, {
|
}, {
|
||||||
key: 'flashs',
|
key: 'flashs',
|
||||||
title: 'Play',
|
title: 'Play',
|
||||||
|
@ -128,7 +128,7 @@ const headerTabs = computed(() => user.value ? [{
|
||||||
|
|
||||||
definePageMetadata(() => ({
|
definePageMetadata(() => ({
|
||||||
title: i18n.ts.user,
|
title: i18n.ts.user,
|
||||||
icon: 'ph-user ph-bold ph-lg',
|
icon: 'ti ti-user',
|
||||||
...user.value ? {
|
...user.value ? {
|
||||||
title: user.value.name ? ` (@${user.value.username})` : `@${user.value.username}`,
|
title: user.value.name ? ` (@${user.value.username})` : `@${user.value.username}`,
|
||||||
subtitle: `@${getAcct(user.value)}`,
|
subtitle: `@${getAcct(user.value)}`,
|
||||||
|
|
|
@ -93,11 +93,11 @@ export function getDriveFileMenu(file: Misskey.entities.DriveFile, folder?: Miss
|
||||||
action: () => toggleSensitive(file),
|
action: () => toggleSensitive(file),
|
||||||
}, {
|
}, {
|
||||||
text: i18n.ts.describeFile,
|
text: i18n.ts.describeFile,
|
||||||
icon: 'ph-text-indent ph-bold ph-lg',
|
icon: 'ti ti-text-caption',
|
||||||
action: () => describe(file),
|
action: () => describe(file),
|
||||||
}, ...isImage ? [{
|
}, ...isImage ? [{
|
||||||
text: i18n.ts.cropImage,
|
text: i18n.ts.cropImage,
|
||||||
icon: 'ph-crop ph-bold ph-lg',
|
icon: 'ti ti-crop',
|
||||||
action: () => os.cropImage(file, {
|
action: () => os.cropImage(file, {
|
||||||
aspectRatio: NaN,
|
aspectRatio: NaN,
|
||||||
uploadFolder: folder ? folder.id : folder,
|
uploadFolder: folder ? folder.id : folder,
|
||||||
|
|
|
@ -363,7 +363,7 @@ export function getNoteMenu(props: {
|
||||||
}),
|
}),
|
||||||
{
|
{
|
||||||
type: 'parent' as const,
|
type: 'parent' as const,
|
||||||
icon: 'ph-paperclip ph-bold ph-lg',
|
icon: 'ti ti-paperclip',
|
||||||
text: i18n.ts.clip,
|
text: i18n.ts.clip,
|
||||||
children: () => getNoteClipMenu(props),
|
children: () => getNoteClipMenu(props),
|
||||||
},
|
},
|
||||||
|
@ -387,7 +387,7 @@ export function getNoteMenu(props: {
|
||||||
} : undefined,
|
} : undefined,
|
||||||
{
|
{
|
||||||
type: 'parent' as const,
|
type: 'parent' as const,
|
||||||
icon: 'ph-user ph-bold ph-lg',
|
icon: 'ti ti-user',
|
||||||
text: i18n.ts.user,
|
text: i18n.ts.user,
|
||||||
children: async () => {
|
children: async () => {
|
||||||
const user = appearNote.userId === $i?.id ? $i : await misskeyApi('users/show', { userId: appearNote.userId });
|
const user = appearNote.userId === $i?.id ? $i : await misskeyApi('users/show', { userId: appearNote.userId });
|
||||||
|
@ -400,7 +400,7 @@ export function getNoteMenu(props: {
|
||||||
...($i.isModerator || $i.isAdmin ? [
|
...($i.isModerator || $i.isAdmin ? [
|
||||||
{ type: 'divider' },
|
{ type: 'divider' },
|
||||||
{
|
{
|
||||||
icon: 'ph-megaphone ph-bold ph-lg',
|
icon: 'ti ti-speakerphone',
|
||||||
text: i18n.ts.promote,
|
text: i18n.ts.promote,
|
||||||
action: promote
|
action: promote
|
||||||
}]
|
}]
|
||||||
|
@ -495,7 +495,7 @@ export function getNoteMenu(props: {
|
||||||
|
|
||||||
if (noteActions.length > 0) {
|
if (noteActions.length > 0) {
|
||||||
menu = menu.concat([{ type: "divider" }, ...noteActions.map(action => ({
|
menu = menu.concat([{ type: "divider" }, ...noteActions.map(action => ({
|
||||||
icon: 'ph-plug ph-bold ph-lg',
|
icon: 'ti ti-plug',
|
||||||
text: action.title,
|
text: action.title,
|
||||||
action: () => {
|
action: () => {
|
||||||
action.handler(appearNote);
|
action.handler(appearNote);
|
||||||
|
@ -578,7 +578,7 @@ export function getRenoteMenu(props: {
|
||||||
},
|
},
|
||||||
}, {
|
}, {
|
||||||
text: i18n.ts.inChannelQuote,
|
text: i18n.ts.inChannelQuote,
|
||||||
icon: 'ph ph-quotes',
|
icon: 'ti ti-quote',
|
||||||
action: () => {
|
action: () => {
|
||||||
if (!props.mock) {
|
if (!props.mock) {
|
||||||
os.post({
|
os.post({
|
||||||
|
@ -624,7 +624,7 @@ export function getRenoteMenu(props: {
|
||||||
},
|
},
|
||||||
}, (props.mock) ? undefined : {
|
}, (props.mock) ? undefined : {
|
||||||
text: i18n.ts.quote,
|
text: i18n.ts.quote,
|
||||||
icon: 'ph ph-quotes',
|
icon: 'ti ti-quote',
|
||||||
action: () => {
|
action: () => {
|
||||||
os.post({
|
os.post({
|
||||||
renote: appearNote,
|
renote: appearNote,
|
||||||
|
|
|
@ -153,7 +153,7 @@ export function getUserMenu(user: Misskey.entities.UserDetailed, router: IRouter
|
||||||
}
|
}
|
||||||
|
|
||||||
let menu = [{
|
let menu = [{
|
||||||
icon: 'ph-at ph-bold ph-lg',
|
icon: 'ti ti-at',
|
||||||
text: i18n.ts.copyUsername,
|
text: i18n.ts.copyUsername,
|
||||||
action: () => {
|
action: () => {
|
||||||
copyToClipboard(`@${user.username}@${user.host ?? host}`);
|
copyToClipboard(`@${user.username}@${user.host ?? host}`);
|
||||||
|
@ -185,7 +185,7 @@ export function getUserMenu(user: Misskey.entities.UserDetailed, router: IRouter
|
||||||
copyToClipboard(`${url}/${canonical}`);
|
copyToClipboard(`${url}/${canonical}`);
|
||||||
},
|
},
|
||||||
}, {
|
}, {
|
||||||
icon: 'ph-envelope ph-bold ph-lg',
|
icon: 'ti ti-mail',
|
||||||
text: i18n.ts.sendMessage,
|
text: i18n.ts.sendMessage,
|
||||||
action: () => {
|
action: () => {
|
||||||
const canonical = user.host === null ? `@${user.username}` : `@${user.username}@${user.host}`;
|
const canonical = user.host === null ? `@${user.username}` : `@${user.username}@${user.host}`;
|
||||||
|
@ -199,7 +199,7 @@ export function getUserMenu(user: Misskey.entities.UserDetailed, router: IRouter
|
||||||
},
|
},
|
||||||
}, {
|
}, {
|
||||||
type: 'parent',
|
type: 'parent',
|
||||||
icon: 'ph-list ph-bold ph-lg',
|
icon: 'ti ti-list',
|
||||||
text: i18n.ts.addToList,
|
text: i18n.ts.addToList,
|
||||||
children: async () => {
|
children: async () => {
|
||||||
const lists = await userListsCache.fetch();
|
const lists = await userListsCache.fetch();
|
||||||
|
@ -232,7 +232,7 @@ export function getUserMenu(user: Misskey.entities.UserDetailed, router: IRouter
|
||||||
},
|
},
|
||||||
}, {
|
}, {
|
||||||
type: 'parent',
|
type: 'parent',
|
||||||
icon: 'ph-flying-saucer ph-bold ph-lg',
|
icon: 'ti ti-antenna',
|
||||||
text: i18n.ts.addToAntenna,
|
text: i18n.ts.addToAntenna,
|
||||||
children: async () => {
|
children: async () => {
|
||||||
const antennas = await antennasCache.fetch();
|
const antennas = await antennasCache.fetch();
|
||||||
|
@ -263,7 +263,7 @@ export function getUserMenu(user: Misskey.entities.UserDetailed, router: IRouter
|
||||||
if (iAmModerator) {
|
if (iAmModerator) {
|
||||||
menu = menu.concat([{
|
menu = menu.concat([{
|
||||||
type: 'parent',
|
type: 'parent',
|
||||||
icon: 'ph-seal-check ph-bold ph-lg',
|
icon: 'ti ti-badges',
|
||||||
text: i18n.ts.roles,
|
text: i18n.ts.roles,
|
||||||
children: async () => {
|
children: async () => {
|
||||||
const roles = await rolesCache.fetch();
|
const roles = await rolesCache.fetch();
|
||||||
|
@ -324,7 +324,7 @@ export function getUserMenu(user: Misskey.entities.UserDetailed, router: IRouter
|
||||||
text: user.isRenoteMuted ? i18n.ts.renoteUnmute : i18n.ts.renoteMute,
|
text: user.isRenoteMuted ? i18n.ts.renoteUnmute : i18n.ts.renoteMute,
|
||||||
action: toggleRenoteMute,
|
action: toggleRenoteMute,
|
||||||
}, {
|
}, {
|
||||||
icon: 'ph-prohibit ph-bold ph-lg',
|
icon: 'ti ti-ban',
|
||||||
text: user.isBlocking ? i18n.ts.unblock : i18n.ts.block,
|
text: user.isBlocking ? i18n.ts.unblock : i18n.ts.block,
|
||||||
action: toggleBlock,
|
action: toggleBlock,
|
||||||
}]);
|
}]);
|
||||||
|
@ -374,7 +374,7 @@ export function getUserMenu(user: Misskey.entities.UserDetailed, router: IRouter
|
||||||
|
|
||||||
if (userActions.length > 0) {
|
if (userActions.length > 0) {
|
||||||
menu = menu.concat([{ type: 'divider' }, ...userActions.map(action => ({
|
menu = menu.concat([{ type: 'divider' }, ...userActions.map(action => ({
|
||||||
icon: 'ph-plug ph-bold ph-lg',
|
icon: 'ti ti-plug',
|
||||||
text: action.title,
|
text: action.title,
|
||||||
action: () => {
|
action: () => {
|
||||||
action.handler(user);
|
action.handler(user);
|
||||||
|
|
|
@ -67,13 +67,13 @@ export function openInstanceMenu(ev: MouseEvent) {
|
||||||
}, { type: 'divider' }, {
|
}, { type: 'divider' }, {
|
||||||
type: 'link',
|
type: 'link',
|
||||||
text: i18n.ts.ads,
|
text: i18n.ts.ads,
|
||||||
icon: 'ph-flag ph-bold ph-lg',
|
icon: 'ti ti-ad',
|
||||||
to: '/ads',
|
to: '/ads',
|
||||||
}, ($i && ($i.isAdmin || $i.policies.canInvite) && instance.disableRegistration) ? {
|
}, ($i && ($i.isAdmin || $i.policies.canInvite) && instance.disableRegistration) ? {
|
||||||
type: 'link',
|
type: 'link',
|
||||||
to: '/invite',
|
to: '/invite',
|
||||||
text: i18n.ts.invite,
|
text: i18n.ts.invite,
|
||||||
icon: 'ph-user-plus ph-bold ph-lg',
|
icon: 'ti ti-user-plus',
|
||||||
} : undefined, {
|
} : undefined, {
|
||||||
type: 'parent',
|
type: 'parent',
|
||||||
text: i18n.ts.tools,
|
text: i18n.ts.tools,
|
||||||
|
@ -92,7 +92,7 @@ export function openInstanceMenu(ev: MouseEvent) {
|
||||||
},
|
},
|
||||||
} : undefined, (instance.tosUrl) ? {
|
} : undefined, (instance.tosUrl) ? {
|
||||||
text: i18n.ts.termsOfService,
|
text: i18n.ts.termsOfService,
|
||||||
icon: 'ph-notebook ph-bold ph-lg',
|
icon: 'ti ti-notebook',
|
||||||
action: () => {
|
action: () => {
|
||||||
window.open(instance.tosUrl, '_blank', 'noopener');
|
window.open(instance.tosUrl, '_blank', 'noopener');
|
||||||
},
|
},
|
||||||
|
|
|
@ -118,13 +118,13 @@ function onContextmenu(ev: MouseEvent) {
|
||||||
type: 'label',
|
type: 'label',
|
||||||
text: path,
|
text: path,
|
||||||
}, {
|
}, {
|
||||||
icon: fullView.value ? 'ph-arrows-in-simple ph-bold ph-lg' : 'ph-frame-corners ph-bold ph-lg',
|
icon: fullView.value ? 'ti ti-minimize' : 'ti ti-maximize',
|
||||||
text: fullView.value ? i18n.ts.quitFullView : i18n.ts.fullView,
|
text: fullView.value ? i18n.ts.quitFullView : i18n.ts.fullView,
|
||||||
action: () => {
|
action: () => {
|
||||||
fullView.value = !fullView.value;
|
fullView.value = !fullView.value;
|
||||||
},
|
},
|
||||||
}, {
|
}, {
|
||||||
icon: 'ph-frame-corners ph-bold ph-lg',
|
icon: 'ti ti-window-maximize',
|
||||||
text: i18n.ts.openInWindow,
|
text: i18n.ts.openInWindow,
|
||||||
action: () => {
|
action: () => {
|
||||||
os.pageWindow(path);
|
os.pageWindow(path);
|
||||||
|
|
|
@ -50,7 +50,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="isMobile" :class="$style.nav">
|
<div v-if="isMobile" :class="$style.nav">
|
||||||
<button :class="$style.navButton" class="_button" @click="drawerMenuShowing = true"><i :class="$style.navButtonIcon" class="ph-list ph-bold ph-lg-2"></i><span v-if="menuIndicated" :class="$style.navButtonIndicator"><i class="_indicatorCircle"></i></span></button>
|
<button :class="$style.navButton" class="_button" @click="drawerMenuShowing = true"><i :class="$style.navButtonIcon" class="ti ti-menu-2"></i><span v-if="menuIndicated" :class="$style.navButtonIndicator"><i class="_indicatorCircle"></i></span></button>
|
||||||
<button :class="$style.navButton" class="_button" @click="mainRouter.push('/')"><i :class="$style.navButtonIcon" class="ti ti-home"></i></button>
|
<button :class="$style.navButton" class="_button" @click="mainRouter.push('/')"><i :class="$style.navButtonIcon" class="ti ti-home"></i></button>
|
||||||
<button :class="$style.navButton" class="_button" @click="mainRouter.push('/my/notifications')">
|
<button :class="$style.navButton" class="_button" @click="mainRouter.push('/my/notifications')">
|
||||||
<i :class="$style.navButtonIcon" class="ph-bell ph-bold ph-lg"></i>
|
<i :class="$style.navButtonIcon" class="ph-bell ph-bold ph-lg"></i>
|
||||||
|
|
|
@ -6,7 +6,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<template>
|
<template>
|
||||||
<XColumn :menu="menu" :column="column" :isStacked="isStacked" :refresher="() => timeline.reloadTimeline()">
|
<XColumn :menu="menu" :column="column" :isStacked="isStacked" :refresher="() => timeline.reloadTimeline()">
|
||||||
<template #header>
|
<template #header>
|
||||||
<i class="ph-flying-saucer ph-bold ph-lg"></i><span style="margin-left: 8px;">{{ column.name }}</span>
|
<i class="ti ti-antenna"></i><span style="margin-left: 8px;">{{ column.name }}</span>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<MkTimeline v-if="column.antennaId" ref="timeline" src="antenna" :antenna="column.antennaId" @note="onNote"/>
|
<MkTimeline v-if="column.antennaId" ref="timeline" src="antenna" :antenna="column.antennaId" @note="onNote"/>
|
||||||
|
|
|
@ -165,7 +165,7 @@ function getMenu() {
|
||||||
stackLeftColumn(props.column.id);
|
stackLeftColumn(props.column.id);
|
||||||
},
|
},
|
||||||
}, props.isStacked ? {
|
}, props.isStacked ? {
|
||||||
icon: 'ph-frame-corners ph-bold ph-lg',
|
icon: 'ti ti-window-maximize',
|
||||||
text: i18n.ts._deck.popRight,
|
text: i18n.ts._deck.popRight,
|
||||||
action: () => {
|
action: () => {
|
||||||
popRightColumn(props.column.id);
|
popRightColumn(props.column.id);
|
||||||
|
|
|
@ -5,7 +5,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<XColumn :column="column" :isStacked="isStacked" :refresher="() => reloadTimeline()">
|
<XColumn :column="column" :isStacked="isStacked" :refresher="() => reloadTimeline()">
|
||||||
<template #header><i class="ph-envelope ph-bold ph-lg" style="margin-right: 8px;"></i>{{ column.name }}</template>
|
<template #header><i class="ti ti-mail" style="margin-right: 8px;"></i>{{ column.name }}</template>
|
||||||
|
|
||||||
<MkNotes ref="tlComponent" :pagination="pagination"/>
|
<MkNotes ref="tlComponent" :pagination="pagination"/>
|
||||||
</XColumn>
|
</XColumn>
|
||||||
|
|
|
@ -6,7 +6,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<template>
|
<template>
|
||||||
<XColumn :menu="menu" :column="column" :isStacked="isStacked" :refresher="() => timeline.reloadTimeline()">
|
<XColumn :menu="menu" :column="column" :isStacked="isStacked" :refresher="() => timeline.reloadTimeline()">
|
||||||
<template #header>
|
<template #header>
|
||||||
<i class="ph-list ph-bold ph-lg"></i><span style="margin-left: 8px;">{{ column.name }}</span>
|
<i class="ti ti-list"></i><span style="margin-left: 8px;">{{ column.name }}</span>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<MkTimeline v-if="column.listId" ref="timeline" :key="column.listId + column.withRenotes + column.onlyFiles" src="list" :list="column.listId" :withRenotes="withRenotes" :onlyFiles="onlyFiles" @note="onNote"/>
|
<MkTimeline v-if="column.listId" ref="timeline" :key="column.listId + column.withRenotes + column.onlyFiles" src="list" :list="column.listId" :withRenotes="withRenotes" :onlyFiles="onlyFiles" @note="onNote"/>
|
||||||
|
|
|
@ -66,7 +66,7 @@ function onContextmenu(ev: MouseEvent) {
|
||||||
type: 'label',
|
type: 'label',
|
||||||
text: path,
|
text: path,
|
||||||
}, {
|
}, {
|
||||||
icon: 'ph-frame-corners ph-bold ph-lg',
|
icon: 'ti ti-window-maximize',
|
||||||
text: i18n.ts.openInWindow,
|
text: i18n.ts.openInWindow,
|
||||||
action: () => {
|
action: () => {
|
||||||
os.pageWindow(path);
|
os.pageWindow(path);
|
||||||
|
|
|
@ -5,7 +5,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<XColumn :column="column" :isStacked="isStacked" :refresher="() => reloadTimeline()">
|
<XColumn :column="column" :isStacked="isStacked" :refresher="() => reloadTimeline()">
|
||||||
<template #header><i class="ph-at ph-bold ph-lg" style="margin-right: 8px;"></i>{{ column.name }}</template>
|
<template #header><i class="ti ti-at" style="margin-right: 8px;"></i>{{ column.name }}</template>
|
||||||
|
|
||||||
<MkNotes ref="tlComponent" :pagination="pagination"/>
|
<MkNotes ref="tlComponent" :pagination="pagination"/>
|
||||||
</XColumn>
|
</XColumn>
|
||||||
|
|
|
@ -6,7 +6,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<template>
|
<template>
|
||||||
<XColumn :menu="menu" :column="column" :isStacked="isStacked" :refresher="() => timeline.reloadTimeline()">
|
<XColumn :menu="menu" :column="column" :isStacked="isStacked" :refresher="() => timeline.reloadTimeline()">
|
||||||
<template #header>
|
<template #header>
|
||||||
<i class="ph-seal-check ph-bold ph-lg"></i><span style="margin-left: 8px;">{{ column.name }}</span>
|
<i class="ti ti-badge"></i><span style="margin-left: 8px;">{{ column.name }}</span>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<MkTimeline v-if="column.roleId" ref="timeline" src="role" :role="column.roleId" @note="onNote"/>
|
<MkTimeline v-if="column.roleId" ref="timeline" src="role" :role="column.roleId" @note="onNote"/>
|
||||||
|
|
|
@ -25,7 +25,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<button v-if="(!isDesktop || pageMetadata?.needWideArea) && !isMobile" :class="$style.widgetButton" class="_button" @click="widgetsShowing = true"><i class="ph-stack ph-bold ph-lg"></i></button>
|
<button v-if="(!isDesktop || pageMetadata?.needWideArea) && !isMobile" :class="$style.widgetButton" class="_button" @click="widgetsShowing = true"><i class="ph-stack ph-bold ph-lg"></i></button>
|
||||||
|
|
||||||
<div v-if="isMobile" ref="navFooter" :class="$style.nav">
|
<div v-if="isMobile" ref="navFooter" :class="$style.nav">
|
||||||
<button :class="$style.navButton" class="_button" @click="drawerMenuShowing = true"><i :class="$style.navButtonIcon" class="ph-list ph-bold ph-lg-2"></i><span v-if="menuIndicated" :class="$style.navButtonIndicator"><i class="_indicatorCircle"></i></span></button>
|
<button :class="$style.navButton" class="_button" @click="drawerMenuShowing = true"><i :class="$style.navButtonIcon" class="ti ti-menu-2"></i><span v-if="menuIndicated" :class="$style.navButtonIndicator"><i class="_indicatorCircle"></i></span></button>
|
||||||
<button :class="$style.navButton" class="_button" @click="isRoot ? top() : mainRouter.push('/')"><i :class="$style.navButtonIcon" class="ti ti-home"></i></button>
|
<button :class="$style.navButton" class="_button" @click="isRoot ? top() : mainRouter.push('/')"><i :class="$style.navButtonIcon" class="ti ti-home"></i></button>
|
||||||
<button :class="$style.navButton" class="_button" @click="mainRouter.push('/my/notifications')">
|
<button :class="$style.navButton" class="_button" @click="mainRouter.push('/my/notifications')">
|
||||||
<i :class="$style.navButtonIcon" class="ph-bell ph-bold ph-lg"></i>
|
<i :class="$style.navButtonIcon" class="ph-bell ph-bold ph-lg"></i>
|
||||||
|
@ -209,7 +209,7 @@ const onContextmenu = (ev) => {
|
||||||
type: 'label',
|
type: 'label',
|
||||||
text: path,
|
text: path,
|
||||||
}, {
|
}, {
|
||||||
icon: 'ph-frame-corners ph-bold ph-lg',
|
icon: 'ti ti-window-maximize',
|
||||||
text: i18n.ts.openInWindow,
|
text: i18n.ts.openInWindow,
|
||||||
action: () => {
|
action: () => {
|
||||||
os.pageWindow(path);
|
os.pageWindow(path);
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue