This commit is contained in:
syuilo 2022-12-19 13:53:41 +09:00
parent 9e9142a110
commit f83bd31fd5
143 changed files with 311 additions and 306 deletions

View File

@ -34,7 +34,7 @@ html
link(rel='prefetch' href='https://xn--931a.moe/assets/info.jpg') link(rel='prefetch' href='https://xn--931a.moe/assets/info.jpg')
link(rel='prefetch' href='https://xn--931a.moe/assets/not-found.jpg') link(rel='prefetch' href='https://xn--931a.moe/assets/not-found.jpg')
link(rel='prefetch' href='https://xn--931a.moe/assets/error.jpg') link(rel='prefetch' href='https://xn--931a.moe/assets/error.jpg')
link(rel='stylesheet' href='/assets/fontawesome/css/all.css') link(rel='stylesheet' href='https://unpkg.com/@tabler/icons@1.117.0/iconfont/tabler-icons.min.css')
link(rel='modulepreload' href=`/assets/${clientEntry.file}`) link(rel='modulepreload' href=`/assets/${clientEntry.file}`)
if Array.isArray(clientEntry.css) if Array.isArray(clientEntry.css)

View File

@ -213,7 +213,7 @@ export async function openAccountMenu(opts: {
avatar: $i, avatar: $i,
}, null, ...(opts.includeCurrentAccount ? [createItem($i)] : []), ...accountItemPromises, { }, null, ...(opts.includeCurrentAccount ? [createItem($i)] : []), ...accountItemPromises, {
type: 'parent', type: 'parent',
icon: 'fas fa-plus', icon: 'ti ti-plus',
text: i18n.ts.addAccount, text: i18n.ts.addAccount,
children: [{ children: [{
text: i18n.ts.existingAccount, text: i18n.ts.existingAccount,

View File

@ -1,7 +1,7 @@
<template> <template>
<XWindow ref="uiWindow" :initial-width="400" :initial-height="500" :can-resize="true" @closed="emit('closed')"> <XWindow ref="uiWindow" :initial-width="400" :initial-height="500" :can-resize="true" @closed="emit('closed')">
<template #header> <template #header>
<i class="fas fa-exclamation-circle" style="margin-right: 0.5em;"></i> <i class="ti ti-exclamation-circle" style="margin-right: 0.5em;"></i>
<I18n :src="i18n.ts.reportAbuseOf" tag="span"> <I18n :src="i18n.ts.reportAbuseOf" tag="span">
<template #name> <template #name>
<b><MkAcct :user="user"/></b> <b><MkAcct :user="user"/></b>

View File

@ -6,10 +6,10 @@
> >
<template v-if="!wait"> <template v-if="!wait">
<template v-if="isFollowing"> <template v-if="isFollowing">
<span v-if="full">{{ i18n.ts.unfollow }}</span><i class="fas fa-minus"></i> <span v-if="full">{{ i18n.ts.unfollow }}</span><i class="ti ti-minus"></i>
</template> </template>
<template v-else> <template v-else>
<span v-if="full">{{ i18n.ts.follow }}</span><i class="fas fa-plus"></i> <span v-if="full">{{ i18n.ts.follow }}</span><i class="ti ti-plus"></i>
</template> </template>
</template> </template>
<template v-else> <template v-else>

View File

@ -5,7 +5,7 @@
<i :class="icon"></i> <i :class="icon"></i>
</div> </div>
<div v-else-if="!input && !select" class="icon" :class="type"> <div v-else-if="!input && !select" class="icon" :class="type">
<i v-if="type === 'success'" class="fas fa-check"></i> <i v-if="type === 'success'" class="ti ti-check"></i>
<i v-else-if="type === 'error'" class="fas fa-times-circle"></i> <i v-else-if="type === 'error'" class="fas fa-times-circle"></i>
<i v-else-if="type === 'warning'" class="fas fa-exclamation-triangle"></i> <i v-else-if="type === 'warning'" class="fas fa-exclamation-triangle"></i>
<i v-else-if="type === 'info'" class="fas fa-info-circle"></i> <i v-else-if="type === 'info'" class="fas fa-info-circle"></i>

View File

@ -75,7 +75,7 @@ function getMenu() {
action: describe, action: describe,
}, null, { }, null, {
text: i18n.ts.copyUrl, text: i18n.ts.copyUrl,
icon: 'fas fa-link', icon: 'ti ti-link',
action: copyUrl, action: copyUrl,
}, { }, {
type: 'a', type: 'a',
@ -86,7 +86,7 @@ function getMenu() {
download: props.file.name, download: props.file.name,
}, null, { }, null, {
text: i18n.ts.delete, text: i18n.ts.delete,
icon: 'fas fa-trash-alt', icon: 'ti ti-trash',
danger: true, danger: true,
action: deleteFile, action: deleteFile,
}]; }];

View File

@ -257,7 +257,7 @@ function onContextmenu(ev: MouseEvent) {
action: rename, action: rename,
}, null, { }, null, {
text: i18n.ts.delete, text: i18n.ts.delete,
icon: 'fas fa-trash-alt', icon: 'ti ti-trash',
danger: true, danger: true,
action: deleteFolder, action: deleteFolder,
}], ev); }], ev);

View File

@ -7,7 +7,7 @@
@dragleave="onDragleave" @dragleave="onDragleave"
@drop.stop="onDrop" @drop.stop="onDrop"
> >
<i v-if="folder == null" class="fas fa-cloud"></i> <i v-if="folder == null" class="ti ti-cloud"></i>
<span>{{ folder == null ? i18n.ts.drive : folder.name }}</span> <span>{{ folder == null ? i18n.ts.drive : folder.name }}</span>
</div> </div>
</template> </template>

View File

@ -24,7 +24,7 @@
<span v-if="folder != null" class="separator"><i class="fas fa-angle-right"></i></span> <span v-if="folder != null" class="separator"><i class="fas fa-angle-right"></i></span>
<span v-if="folder != null" class="folder current">{{ folder.name }}</span> <span v-if="folder != null" class="folder current">{{ folder.name }}</span>
</div> </div>
<button class="menu _button" @click="showMenu"><i class="fas fa-ellipsis-h"></i></button> <button class="menu _button" @click="showMenu"><i class="ti ti-dots"></i></button>
</nav> </nav>
<div <div
ref="main" class="main" ref="main" class="main"
@ -592,7 +592,7 @@ function getMenu() {
action: () => { selectLocalFile(); }, action: () => { selectLocalFile(); },
}, { }, {
text: i18n.ts.fromUrl, text: i18n.ts.fromUrl,
icon: 'fas fa-link', icon: 'ti ti-link',
action: () => { urlUpload(); }, action: () => { urlUpload(); },
}, null, { }, null, {
text: folder.value ? folder.value.name : i18n.ts.drive, text: folder.value ? folder.value.name : i18n.ts.drive,
@ -603,7 +603,7 @@ function getMenu() {
action: () => { renameFolder(folder.value); }, action: () => { renameFolder(folder.value); },
} : undefined, folder.value ? { } : undefined, folder.value ? {
text: i18n.ts.deleteFolder, text: i18n.ts.deleteFolder,
icon: 'fas fa-trash-alt', icon: 'ti ti-trash',
action: () => { deleteFolder(folder.value as Misskey.entities.DriveFolder); }, action: () => { deleteFolder(folder.value as Misskey.entities.DriveFolder); },
} : undefined, { } : undefined, {
text: i18n.ts.createFolder, text: i18n.ts.createFolder,

View File

@ -72,7 +72,7 @@
<button class="_button tab" :class="{ active: tab === 'index' }" @click="tab = 'index'"><i class="fas fa-asterisk fa-fw"></i></button> <button class="_button tab" :class="{ active: tab === 'index' }" @click="tab = 'index'"><i class="fas fa-asterisk fa-fw"></i></button>
<button class="_button tab" :class="{ active: tab === 'custom' }" @click="tab = 'custom'"><i class="fas fa-laugh fa-fw"></i></button> <button class="_button tab" :class="{ active: tab === 'custom' }" @click="tab = 'custom'"><i class="fas fa-laugh fa-fw"></i></button>
<button class="_button tab" :class="{ active: tab === 'unicode' }" @click="tab = 'unicode'"><i class="fas fa-leaf fa-fw"></i></button> <button class="_button tab" :class="{ active: tab === 'unicode' }" @click="tab = 'unicode'"><i class="fas fa-leaf fa-fw"></i></button>
<button class="_button tab" :class="{ active: tab === 'tags' }" @click="tab = 'tags'"><i class="fas fa-hashtag fa-fw"></i></button> <button class="_button tab" :class="{ active: tab === 'tags' }" @click="tab = 'tags'"><i class="ti ti-hash fa-fw"></i></button>
</div> </div>
</div> </div>
</template> </template>

View File

@ -12,13 +12,13 @@
<span v-if="full">{{ i18n.ts.processing }}</span><i class="fas fa-spinner fa-pulse"></i> <span v-if="full">{{ i18n.ts.processing }}</span><i class="fas fa-spinner fa-pulse"></i>
</template> </template>
<template v-else-if="isFollowing"> <template v-else-if="isFollowing">
<span v-if="full">{{ i18n.ts.unfollow }}</span><i class="fas fa-minus"></i> <span v-if="full">{{ i18n.ts.unfollow }}</span><i class="ti ti-minus"></i>
</template> </template>
<template v-else-if="!isFollowing && user.isLocked"> <template v-else-if="!isFollowing && user.isLocked">
<span v-if="full">{{ i18n.ts.followRequest }}</span><i class="fas fa-plus"></i> <span v-if="full">{{ i18n.ts.followRequest }}</span><i class="ti ti-plus"></i>
</template> </template>
<template v-else-if="!isFollowing && !user.isLocked"> <template v-else-if="!isFollowing && !user.isLocked">
<span v-if="full">{{ i18n.ts.follow }}</span><i class="fas fa-plus"></i> <span v-if="full">{{ i18n.ts.follow }}</span><i class="ti ti-plus"></i>
</template> </template>
</template> </template>
<template v-else> <template v-else>

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="mk-google"> <div class="mk-google">
<input v-model="query" type="search" :placeholder="q"> <input v-model="query" type="search" :placeholder="q">
<button @click="search"><i class="fas fa-search"></i> {{ $ts.searchByGoogle }}</button> <button @click="search"><i class="ti ti-search"></i> {{ $ts.searchByGoogle }}</button>
</div> </div>
</template> </template>

View File

@ -72,18 +72,18 @@ const contextmenu = $computed(() => {
text: i18n.ts.showInPage, text: i18n.ts.showInPage,
action: expand, action: expand,
}, { }, {
icon: 'fas fa-external-link-alt', icon: 'ti ti-external-link',
text: i18n.ts.popout, text: i18n.ts.popout,
action: popout, action: popout,
}, null, { }, null, {
icon: 'fas fa-external-link-alt', icon: 'ti ti-external-link',
text: i18n.ts.openInNewTab, text: i18n.ts.openInNewTab,
action: () => { action: () => {
window.open(pageUrl, '_blank'); window.open(pageUrl, '_blank');
modal.close(); modal.close();
}, },
}, { }, {
icon: 'fas fa-link', icon: 'ti ti-link',
text: i18n.ts.copyLink, text: i18n.ts.copyLink,
action: () => { action: () => {
copyToClipboard(pageUrl); copyToClipboard(pageUrl);

View File

@ -7,7 +7,7 @@
<slot name="header"></slot> <slot name="header"></slot>
</span> </span>
<button v-if="!withOkButton" class="_button" @click="$emit('close')"><i class="fas fa-times"></i></button> <button v-if="!withOkButton" class="_button" @click="$emit('close')"><i class="fas fa-times"></i></button>
<button v-if="withOkButton" class="_button" :disabled="okButtonDisabled" @click="$emit('ok')"><i class="fas fa-check"></i></button> <button v-if="withOkButton" class="_button" :disabled="okButtonDisabled" @click="$emit('ok')"><i class="ti ti-check"></i></button>
</div> </div>
<div class="body"> <div class="body">
<slot :width="bodyWidth" :height="bodyHeight"></slot> <slot :width="bodyWidth" :height="bodyHeight"></slot>

View File

@ -15,7 +15,7 @@
<div v-if="appearNote._featuredId_" class="info"><i class="fas fa-bolt"></i> {{ i18n.ts.featured }}</div> <div v-if="appearNote._featuredId_" class="info"><i class="fas fa-bolt"></i> {{ i18n.ts.featured }}</div>
<div v-if="isRenote" class="renote"> <div v-if="isRenote" class="renote">
<MkAvatar class="avatar" :user="note.user"/> <MkAvatar class="avatar" :user="note.user"/>
<i class="fas fa-retweet"></i> <i class="ti ti-repeat"></i>
<I18n :src="i18n.ts.renotedBy" tag="span"> <I18n :src="i18n.ts.renotedBy" tag="span">
<template #user> <template #user>
<MkA v-user-preview="note.userId" class="name" :to="userPage(note.user)"> <MkA v-user-preview="note.userId" class="name" :to="userPage(note.user)">
@ -25,7 +25,7 @@
</I18n> </I18n>
<div class="info"> <div class="info">
<button ref="renoteTime" class="_button time" @click="showRenoteMenu()"> <button ref="renoteTime" class="_button time" @click="showRenoteMenu()">
<i v-if="isMyRenote" class="fas fa-ellipsis-h dropdownIcon"></i> <i v-if="isMyRenote" class="ti ti-dots dropdownIcon"></i>
<MkTime :time="note.createdAt"/> <MkTime :time="note.createdAt"/>
</button> </button>
<MkVisibility :note="note"/> <MkVisibility :note="note"/>
@ -44,7 +44,7 @@
<div v-show="appearNote.cw == null || showContent" class="content" :class="{ collapsed, isLong }"> <div v-show="appearNote.cw == null || showContent" class="content" :class="{ collapsed, isLong }">
<div class="text"> <div class="text">
<span v-if="appearNote.isHidden" style="opacity: 0.5">({{ i18n.ts.private }})</span> <span v-if="appearNote.isHidden" style="opacity: 0.5">({{ i18n.ts.private }})</span>
<MkA v-if="appearNote.replyId" class="reply" :to="`/notes/${appearNote.replyId}`"><i class="fas fa-reply"></i></MkA> <MkA v-if="appearNote.replyId" class="reply" :to="`/notes/${appearNote.replyId}`"><i class="ti ti-arrow-back-up"></i></MkA>
<Mfm v-if="appearNote.text" :text="appearNote.text" :author="appearNote.user" :i="$i" :custom-emojis="appearNote.emojis"/> <Mfm v-if="appearNote.text" :text="appearNote.text" :author="appearNote.user" :i="$i" :custom-emojis="appearNote.emojis"/>
<a v-if="appearNote.renote != null" class="rp">RN:</a> <a v-if="appearNote.renote != null" class="rp">RN:</a>
<div v-if="translating || translation" class="translation"> <div v-if="translating || translation" class="translation">
@ -73,19 +73,19 @@
<footer class="footer"> <footer class="footer">
<XReactionsViewer ref="reactionsViewer" :note="appearNote"/> <XReactionsViewer ref="reactionsViewer" :note="appearNote"/>
<button class="button _button" @click="reply()"> <button class="button _button" @click="reply()">
<template v-if="appearNote.reply"><i class="fas fa-reply-all"></i></template> <template v-if="appearNote.reply"><i class="ti ti-arrow-back-up-all"></i></template>
<template v-else><i class="fas fa-reply"></i></template> <template v-else><i class="ti ti-arrow-back-up"></i></template>
<p v-if="appearNote.repliesCount > 0" class="count">{{ appearNote.repliesCount }}</p> <p v-if="appearNote.repliesCount > 0" class="count">{{ appearNote.repliesCount }}</p>
</button> </button>
<XRenoteButton ref="renoteButton" class="button" :note="appearNote" :count="appearNote.renoteCount"/> <XRenoteButton ref="renoteButton" class="button" :note="appearNote" :count="appearNote.renoteCount"/>
<button v-if="appearNote.myReaction == null" ref="reactButton" class="button _button" @click="react()"> <button v-if="appearNote.myReaction == null" ref="reactButton" class="button _button" @click="react()">
<i class="fas fa-plus"></i> <i class="ti ti-plus"></i>
</button> </button>
<button v-if="appearNote.myReaction != null" ref="reactButton" class="button _button reacted" @click="undoReact(appearNote)"> <button v-if="appearNote.myReaction != null" ref="reactButton" class="button _button reacted" @click="undoReact(appearNote)">
<i class="fas fa-minus"></i> <i class="ti ti-minus"></i>
</button> </button>
<button ref="menuButton" class="button _button" @click="menu()"> <button ref="menuButton" class="button _button" @click="menu()">
<i class="fas fa-ellipsis-h"></i> <i class="ti ti-dots"></i>
</button> </button>
</footer> </footer>
</div> </div>
@ -256,7 +256,7 @@ function showRenoteMenu(viaKeyboard = false): void {
if (!isMyRenote) return; if (!isMyRenote) return;
os.popupMenu([{ os.popupMenu([{
text: i18n.ts.unrenote, text: i18n.ts.unrenote,
icon: 'fas fa-trash-alt', icon: 'ti ti-trash',
danger: true, danger: true,
action: () => { action: () => {
os.api('notes/delete', { os.api('notes/delete', {

View File

@ -13,7 +13,7 @@
<MkNoteSub v-if="appearNote.reply" :note="appearNote.reply" class="reply-to"/> <MkNoteSub v-if="appearNote.reply" :note="appearNote.reply" class="reply-to"/>
<div v-if="isRenote" class="renote"> <div v-if="isRenote" class="renote">
<MkAvatar class="avatar" :user="note.user"/> <MkAvatar class="avatar" :user="note.user"/>
<i class="fas fa-retweet"></i> <i class="ti ti-repeat"></i>
<I18n :src="i18n.ts.renotedBy" tag="span"> <I18n :src="i18n.ts.renotedBy" tag="span">
<template #user> <template #user>
<MkA v-user-preview="note.userId" class="name" :to="userPage(note.user)"> <MkA v-user-preview="note.userId" class="name" :to="userPage(note.user)">
@ -23,7 +23,7 @@
</I18n> </I18n>
<div class="info"> <div class="info">
<button ref="renoteTime" class="_button time" @click="showRenoteMenu()"> <button ref="renoteTime" class="_button time" @click="showRenoteMenu()">
<i v-if="isMyRenote" class="fas fa-ellipsis-h dropdownIcon"></i> <i v-if="isMyRenote" class="ti ti-dots dropdownIcon"></i>
<MkTime :time="note.createdAt"/> <MkTime :time="note.createdAt"/>
</button> </button>
<MkVisibility :note="note"/> <MkVisibility :note="note"/>
@ -55,7 +55,7 @@
<div v-show="appearNote.cw == null || showContent" class="content"> <div v-show="appearNote.cw == null || showContent" class="content">
<div class="text"> <div class="text">
<span v-if="appearNote.isHidden" style="opacity: 0.5">({{ i18n.ts.private }})</span> <span v-if="appearNote.isHidden" style="opacity: 0.5">({{ i18n.ts.private }})</span>
<MkA v-if="appearNote.replyId" class="reply" :to="`/notes/${appearNote.replyId}`"><i class="fas fa-reply"></i></MkA> <MkA v-if="appearNote.replyId" class="reply" :to="`/notes/${appearNote.replyId}`"><i class="ti ti-arrow-back-up"></i></MkA>
<Mfm v-if="appearNote.text" :text="appearNote.text" :author="appearNote.user" :i="$i" :custom-emojis="appearNote.emojis"/> <Mfm v-if="appearNote.text" :text="appearNote.text" :author="appearNote.user" :i="$i" :custom-emojis="appearNote.emojis"/>
<a v-if="appearNote.renote != null" class="rp">RN:</a> <a v-if="appearNote.renote != null" class="rp">RN:</a>
<div v-if="translating || translation" class="translation"> <div v-if="translating || translation" class="translation">
@ -83,19 +83,19 @@
</div> </div>
<XReactionsViewer ref="reactionsViewer" :note="appearNote"/> <XReactionsViewer ref="reactionsViewer" :note="appearNote"/>
<button class="button _button" @click="reply()"> <button class="button _button" @click="reply()">
<template v-if="appearNote.reply"><i class="fas fa-reply-all"></i></template> <template v-if="appearNote.reply"><i class="ti ti-arrow-back-up-all"></i></template>
<template v-else><i class="fas fa-reply"></i></template> <template v-else><i class="ti ti-arrow-back-up"></i></template>
<p v-if="appearNote.repliesCount > 0" class="count">{{ appearNote.repliesCount }}</p> <p v-if="appearNote.repliesCount > 0" class="count">{{ appearNote.repliesCount }}</p>
</button> </button>
<XRenoteButton ref="renoteButton" class="button" :note="appearNote" :count="appearNote.renoteCount"/> <XRenoteButton ref="renoteButton" class="button" :note="appearNote" :count="appearNote.renoteCount"/>
<button v-if="appearNote.myReaction == null" ref="reactButton" class="button _button" @click="react()"> <button v-if="appearNote.myReaction == null" ref="reactButton" class="button _button" @click="react()">
<i class="fas fa-plus"></i> <i class="ti ti-plus"></i>
</button> </button>
<button v-if="appearNote.myReaction != null" ref="reactButton" class="button _button reacted" @click="undoReact(appearNote)"> <button v-if="appearNote.myReaction != null" ref="reactButton" class="button _button reacted" @click="undoReact(appearNote)">
<i class="fas fa-minus"></i> <i class="ti ti-minus"></i>
</button> </button>
<button ref="menuButton" class="button _button" @click="menu()"> <button ref="menuButton" class="button _button" @click="menu()">
<i class="fas fa-ellipsis-h"></i> <i class="ti ti-dots"></i>
</button> </button>
</footer> </footer>
</div> </div>
@ -259,7 +259,7 @@ function showRenoteMenu(viaKeyboard = false): void {
if (!isMyRenote) return; if (!isMyRenote) return;
os.popupMenu([{ os.popupMenu([{
text: i18n.ts.unrenote, text: i18n.ts.unrenote,
icon: 'fas fa-trash-alt', icon: 'ti ti-trash',
danger: true, danger: true,
action: () => { action: () => {
os.api('notes/delete', { os.api('notes/delete', {

View File

@ -5,12 +5,12 @@
<MkAvatar v-else-if="notification.user" class="icon" :user="notification.user"/> <MkAvatar v-else-if="notification.user" class="icon" :user="notification.user"/>
<img v-else-if="notification.icon" class="icon" :src="notification.icon" alt=""/> <img v-else-if="notification.icon" class="icon" :src="notification.icon" alt=""/>
<div class="sub-icon" :class="notification.type"> <div class="sub-icon" :class="notification.type">
<i v-if="notification.type === 'follow'" class="fas fa-plus"></i> <i v-if="notification.type === 'follow'" class="ti ti-plus"></i>
<i v-else-if="notification.type === 'receiveFollowRequest'" class="fas fa-clock"></i> <i v-else-if="notification.type === 'receiveFollowRequest'" class="fas fa-clock"></i>
<i v-else-if="notification.type === 'followRequestAccepted'" class="fas fa-check"></i> <i v-else-if="notification.type === 'followRequestAccepted'" class="ti ti-check"></i>
<i v-else-if="notification.type === 'groupInvited'" class="fas fa-id-card-alt"></i> <i v-else-if="notification.type === 'groupInvited'" class="fas fa-id-card-alt"></i>
<i v-else-if="notification.type === 'renote'" class="fas fa-retweet"></i> <i v-else-if="notification.type === 'renote'" class="ti ti-repeat"></i>
<i v-else-if="notification.type === 'reply'" class="fas fa-reply"></i> <i v-else-if="notification.type === 'reply'" class="ti ti-arrow-back-up"></i>
<i v-else-if="notification.type === 'mention'" class="fas fa-at"></i> <i v-else-if="notification.type === 'mention'" class="fas fa-at"></i>
<i v-else-if="notification.type === 'quote'" class="fas fa-quote-left"></i> <i v-else-if="notification.type === 'quote'" class="fas fa-quote-left"></i>
<i v-else-if="notification.type === 'pollVote'" class="fas fa-poll-h"></i> <i v-else-if="notification.type === 'pollVote'" class="fas fa-poll-h"></i>

View File

@ -90,18 +90,18 @@ const contextmenu = $computed(() => ([{
text: i18n.ts.showInPage, text: i18n.ts.showInPage,
action: expand, action: expand,
}, { }, {
icon: 'fas fa-external-link-alt', icon: 'ti ti-external-link',
text: i18n.ts.popout, text: i18n.ts.popout,
action: popout, action: popout,
}, { }, {
icon: 'fas fa-external-link-alt', icon: 'ti ti-external-link',
text: i18n.ts.openInNewTab, text: i18n.ts.openInNewTab,
action: () => { action: () => {
window.open(url + router.getCurrentPath(), '_blank'); window.open(url + router.getCurrentPath(), '_blank');
windowEl.close(); windowEl.close();
}, },
}, { }, {
icon: 'fas fa-link', icon: 'ti ti-link',
text: i18n.ts.copyLink, text: i18n.ts.copyLink,
action: () => { action: () => {
copyToClipboard(url + router.getCurrentPath()); copyToClipboard(url + router.getCurrentPath());

View File

@ -4,7 +4,7 @@
<li v-for="(choice, i) in note.poll.choices" :key="i" :class="{ voted: choice.voted }" @click="vote(i)"> <li v-for="(choice, i) in note.poll.choices" :key="i" :class="{ voted: choice.voted }" @click="vote(i)">
<div class="backdrop" :style="{ 'width': `${showResult ? (choice.votes / total * 100) : 0}%` }"></div> <div class="backdrop" :style="{ 'width': `${showResult ? (choice.votes / total * 100) : 0}%` }"></div>
<span> <span>
<template v-if="choice.isVoted"><i class="fas fa-check"></i></template> <template v-if="choice.isVoted"><i class="ti ti-check"></i></template>
<Mfm :text="choice.text" :plain="true" :custom-emojis="note.emojis"/> <Mfm :text="choice.text" :plain="true" :custom-emojis="note.emojis"/>
<span v-if="showResult" class="votes">({{ $t('_poll.votesCount', { n: choice.votes }) }})</span> <span v-if="showResult" class="votes">({{ $t('_poll.votesCount', { n: choice.votes }) }})</span>
</span> </span>

View File

@ -16,13 +16,13 @@
<span class="text-count" :class="{ over: textLength > maxTextLength }">{{ maxTextLength - textLength }}</span> <span class="text-count" :class="{ over: textLength > maxTextLength }">{{ maxTextLength - textLength }}</span>
<span v-if="localOnly" class="local-only"><i class="fas fa-biohazard"></i></span> <span v-if="localOnly" class="local-only"><i class="fas fa-biohazard"></i></span>
<button ref="visibilityButton" v-tooltip="i18n.ts.visibility" class="_button visibility" :disabled="channel != null" @click="setVisibility"> <button ref="visibilityButton" v-tooltip="i18n.ts.visibility" class="_button visibility" :disabled="channel != null" @click="setVisibility">
<span v-if="visibility === 'public'"><i class="fas fa-globe"></i></span> <span v-if="visibility === 'public'"><i class="ti ti-world"></i></span>
<span v-if="visibility === 'home'"><i class="fas fa-home"></i></span> <span v-if="visibility === 'home'"><i class="ti ti-home-2"></i></span>
<span v-if="visibility === 'followers'"><i class="fas fa-unlock"></i></span> <span v-if="visibility === 'followers'"><i class="fas fa-unlock"></i></span>
<span v-if="visibility === 'specified'"><i class="fas fa-envelope"></i></span> <span v-if="visibility === 'specified'"><i class="fas fa-envelope"></i></span>
</button> </button>
<button v-tooltip="i18n.ts.previewNoteText" class="_button preview" :class="{ active: showPreview }" @click="showPreview = !showPreview"><i class="fas fa-file-code"></i></button> <button v-tooltip="i18n.ts.previewNoteText" class="_button preview" :class="{ active: showPreview }" @click="showPreview = !showPreview"><i class="fas fa-file-code"></i></button>
<button class="submit _buttonGradate" :disabled="!canPost" data-cy-open-post-form-submit @click="post">{{ submitText }}<i :class="reply ? 'fas fa-reply' : renote ? 'fas fa-quote-right' : 'fas fa-paper-plane'"></i></button> <button class="submit _buttonGradate" :disabled="!canPost" data-cy-open-post-form-submit @click="post">{{ submitText }}<i :class="reply ? 'ti ti-arrow-back-up' : renote ? 'fas fa-quote-right' : 'ti ti-send'"></i></button>
</div> </div>
</header> </header>
<div class="form" :class="{ fixed }"> <div class="form" :class="{ fixed }">
@ -36,7 +36,7 @@
<MkAcct :user="u"/> <MkAcct :user="u"/>
<button class="_button" @click="removeVisibleUser(u)"><i class="fas fa-times"></i></button> <button class="_button" @click="removeVisibleUser(u)"><i class="fas fa-times"></i></button>
</span> </span>
<button class="_buttonPrimary" @click="addVisibleUser"><i class="fas fa-plus fa-fw"></i></button> <button class="_buttonPrimary" @click="addVisibleUser"><i class="ti ti-plus fa-fw"></i></button>
</div> </div>
</div> </div>
<MkInfo v-if="hasNotSpecifiedMentions" warn class="hasNotSpecifiedMentions">{{ i18n.ts.notSpecifiedMentionWarning }} - <button class="_textButton" @click="addMissingMention()">{{ i18n.ts.add }}</button></MkInfo> <MkInfo v-if="hasNotSpecifiedMentions" warn class="hasNotSpecifiedMentions">{{ i18n.ts.notSpecifiedMentionWarning }} - <button class="_textButton" @click="addMissingMention()">{{ i18n.ts.add }}</button></MkInfo>
@ -51,7 +51,7 @@
<button v-tooltip="i18n.ts.poll" class="_button" :class="{ active: poll }" @click="togglePoll"><i class="fas fa-poll-h"></i></button> <button v-tooltip="i18n.ts.poll" class="_button" :class="{ active: poll }" @click="togglePoll"><i class="fas fa-poll-h"></i></button>
<button v-tooltip="i18n.ts.useCw" class="_button" :class="{ active: useCw }" @click="useCw = !useCw"><i class="fas fa-eye-slash"></i></button> <button v-tooltip="i18n.ts.useCw" class="_button" :class="{ active: useCw }" @click="useCw = !useCw"><i class="fas fa-eye-slash"></i></button>
<button v-tooltip="i18n.ts.mention" class="_button" @click="insertMention"><i class="fas fa-at"></i></button> <button v-tooltip="i18n.ts.mention" class="_button" @click="insertMention"><i class="fas fa-at"></i></button>
<button v-tooltip="i18n.ts.hashtags" class="_button" :class="{ active: withHashtags }" @click="withHashtags = !withHashtags"><i class="fas fa-hashtag"></i></button> <button v-tooltip="i18n.ts.hashtags" class="_button" :class="{ active: withHashtags }" @click="withHashtags = !withHashtags"><i class="ti ti-hash"></i></button>
<button v-tooltip="i18n.ts.emoji" class="_button" @click="insertEmoji"><i class="fas fa-laugh-squint"></i></button> <button v-tooltip="i18n.ts.emoji" class="_button" @click="insertEmoji"><i class="fas fa-laugh-squint"></i></button>
<button v-if="postFormActions.length > 0" v-tooltip="i18n.ts.plugin" class="_button" @click="showActions"><i class="fas fa-plug"></i></button> <button v-if="postFormActions.length > 0" v-tooltip="i18n.ts.plugin" class="_button" @click="showActions"><i class="fas fa-plug"></i></button>
</footer> </footer>

View File

@ -5,7 +5,7 @@
class="eddddedb _button canRenote" class="eddddedb _button canRenote"
@click="renote()" @click="renote()"
> >
<i class="fas fa-retweet"></i> <i class="ti ti-repeat"></i>
<p v-if="count > 0" class="count">{{ count }}</p> <p v-if="count > 0" class="count">{{ count }}</p>
</button> </button>
<button v-else class="eddddedb _button"> <button v-else class="eddddedb _button">
@ -54,7 +54,7 @@ const renote = (viaKeyboard = false) => {
pleaseLogin(); pleaseLogin();
os.popupMenu([{ os.popupMenu([{
text: i18n.ts.renote, text: i18n.ts.renote,
icon: 'fas fa-retweet', icon: 'ti ti-repeat',
action: () => { action: () => {
os.api('notes/create', { os.api('notes/create', {
renoteId: props.note.id, renoteId: props.note.id,

View File

@ -10,7 +10,7 @@
<template #suffix>@{{ host }}</template> <template #suffix>@{{ host }}</template>
<template #caption> <template #caption>
<span v-if="usernameState === 'wait'" style="color:#999"><i class="fas fa-spinner fa-pulse fa-fw"></i> {{ i18n.ts.checking }}</span> <span v-if="usernameState === 'wait'" style="color:#999"><i class="fas fa-spinner fa-pulse fa-fw"></i> {{ i18n.ts.checking }}</span>
<span v-else-if="usernameState === 'ok'" style="color: var(--success)"><i class="fas fa-check fa-fw"></i> {{ i18n.ts.available }}</span> <span v-else-if="usernameState === 'ok'" style="color: var(--success)"><i class="ti ti-check fa-fw"></i> {{ i18n.ts.available }}</span>
<span v-else-if="usernameState === 'unavailable'" style="color: var(--error)"><i class="fas fa-exclamation-triangle fa-fw"></i> {{ i18n.ts.unavailable }}</span> <span v-else-if="usernameState === 'unavailable'" style="color: var(--error)"><i class="fas fa-exclamation-triangle fa-fw"></i> {{ i18n.ts.unavailable }}</span>
<span v-else-if="usernameState === 'error'" style="color: var(--error)"><i class="fas fa-exclamation-triangle fa-fw"></i> {{ i18n.ts.error }}</span> <span v-else-if="usernameState === 'error'" style="color: var(--error)"><i class="fas fa-exclamation-triangle fa-fw"></i> {{ i18n.ts.error }}</span>
<span v-else-if="usernameState === 'invalid-format'" style="color: var(--error)"><i class="fas fa-exclamation-triangle fa-fw"></i> {{ i18n.ts.usernameInvalidFormat }}</span> <span v-else-if="usernameState === 'invalid-format'" style="color: var(--error)"><i class="fas fa-exclamation-triangle fa-fw"></i> {{ i18n.ts.usernameInvalidFormat }}</span>
@ -23,7 +23,7 @@
<template #prefix><i class="fas fa-envelope"></i></template> <template #prefix><i class="fas fa-envelope"></i></template>
<template #caption> <template #caption>
<span v-if="emailState === 'wait'" style="color:#999"><i class="fas fa-spinner fa-pulse fa-fw"></i> {{ i18n.ts.checking }}</span> <span v-if="emailState === 'wait'" style="color:#999"><i class="fas fa-spinner fa-pulse fa-fw"></i> {{ i18n.ts.checking }}</span>
<span v-else-if="emailState === 'ok'" style="color: var(--success)"><i class="fas fa-check fa-fw"></i> {{ i18n.ts.available }}</span> <span v-else-if="emailState === 'ok'" style="color: var(--success)"><i class="ti ti-check fa-fw"></i> {{ i18n.ts.available }}</span>
<span v-else-if="emailState === 'unavailable:used'" style="color: var(--error)"><i class="fas fa-exclamation-triangle fa-fw"></i> {{ i18n.ts._emailUnavailable.used }}</span> <span v-else-if="emailState === 'unavailable:used'" style="color: var(--error)"><i class="fas fa-exclamation-triangle fa-fw"></i> {{ i18n.ts._emailUnavailable.used }}</span>
<span v-else-if="emailState === 'unavailable:format'" style="color: var(--error)"><i class="fas fa-exclamation-triangle fa-fw"></i> {{ i18n.ts._emailUnavailable.format }}</span> <span v-else-if="emailState === 'unavailable:format'" style="color: var(--error)"><i class="fas fa-exclamation-triangle fa-fw"></i> {{ i18n.ts._emailUnavailable.format }}</span>
<span v-else-if="emailState === 'unavailable:disposable'" style="color: var(--error)"><i class="fas fa-exclamation-triangle fa-fw"></i> {{ i18n.ts._emailUnavailable.disposable }}</span> <span v-else-if="emailState === 'unavailable:disposable'" style="color: var(--error)"><i class="fas fa-exclamation-triangle fa-fw"></i> {{ i18n.ts._emailUnavailable.disposable }}</span>
@ -38,15 +38,15 @@
<template #prefix><i class="fas fa-lock"></i></template> <template #prefix><i class="fas fa-lock"></i></template>
<template #caption> <template #caption>
<span v-if="passwordStrength == 'low'" style="color: var(--error)"><i class="fas fa-exclamation-triangle fa-fw"></i> {{ i18n.ts.weakPassword }}</span> <span v-if="passwordStrength == 'low'" style="color: var(--error)"><i class="fas fa-exclamation-triangle fa-fw"></i> {{ i18n.ts.weakPassword }}</span>
<span v-if="passwordStrength == 'medium'" style="color: var(--warn)"><i class="fas fa-check fa-fw"></i> {{ i18n.ts.normalPassword }}</span> <span v-if="passwordStrength == 'medium'" style="color: var(--warn)"><i class="ti ti-check fa-fw"></i> {{ i18n.ts.normalPassword }}</span>
<span v-if="passwordStrength == 'high'" style="color: var(--success)"><i class="fas fa-check fa-fw"></i> {{ i18n.ts.strongPassword }}</span> <span v-if="passwordStrength == 'high'" style="color: var(--success)"><i class="ti ti-check fa-fw"></i> {{ i18n.ts.strongPassword }}</span>
</template> </template>
</MkInput> </MkInput>
<MkInput v-model="retypedPassword" class="_formBlock" type="password" autocomplete="new-password" required data-cy-signup-password-retype @update:modelValue="onChangePasswordRetype"> <MkInput v-model="retypedPassword" class="_formBlock" type="password" autocomplete="new-password" required data-cy-signup-password-retype @update:modelValue="onChangePasswordRetype">
<template #label>{{ i18n.ts.password }} ({{ i18n.ts.retype }})</template> <template #label>{{ i18n.ts.password }} ({{ i18n.ts.retype }})</template>
<template #prefix><i class="fas fa-lock"></i></template> <template #prefix><i class="fas fa-lock"></i></template>
<template #caption> <template #caption>
<span v-if="passwordRetypeState == 'match'" style="color: var(--success)"><i class="fas fa-check fa-fw"></i> {{ i18n.ts.passwordMatched }}</span> <span v-if="passwordRetypeState == 'match'" style="color: var(--success)"><i class="ti ti-check fa-fw"></i> {{ i18n.ts.passwordMatched }}</span>
<span v-if="passwordRetypeState == 'not-match'" style="color: var(--error)"><i class="fas fa-exclamation-triangle fa-fw"></i> {{ i18n.ts.passwordNotMatched }}</span> <span v-if="passwordRetypeState == 'not-match'" style="color: var(--error)"><i class="fas fa-exclamation-triangle fa-fw"></i> {{ i18n.ts.passwordNotMatched }}</span>
</template> </template>
</MkInput> </MkInput>

View File

@ -3,7 +3,7 @@
<div class="body"> <div class="body">
<span v-if="note.isHidden" style="opacity: 0.5">({{ i18n.ts.private }})</span> <span v-if="note.isHidden" style="opacity: 0.5">({{ i18n.ts.private }})</span>
<span v-if="note.deletedAt" style="opacity: 0.5">({{ i18n.ts.deleted }})</span> <span v-if="note.deletedAt" style="opacity: 0.5">({{ i18n.ts.deleted }})</span>
<MkA v-if="note.replyId" class="reply" :to="`/notes/${note.replyId}`"><i class="fas fa-reply"></i></MkA> <MkA v-if="note.replyId" class="reply" :to="`/notes/${note.replyId}`"><i class="ti ti-arrow-back-up"></i></MkA>
<Mfm v-if="note.text" :text="note.text" :author="note.user" :i="$i" :custom-emojis="note.emojis"/> <Mfm v-if="note.text" :text="note.text" :author="note.user" :i="$i" :custom-emojis="note.emojis"/>
<MkA v-if="note.renoteId" class="rp" :to="`/notes/${note.renoteId}`">RN: ...</MkA> <MkA v-if="note.renoteId" class="rp" :to="`/notes/${note.renoteId}`">RN: ...</MkA>
</div> </div>

View File

@ -1,6 +1,6 @@
<template> <template>
<span v-if="note.visibility !== 'public'" :class="$style.visibility" :title="i18n.ts._visibility[note.visibility]"> <span v-if="note.visibility !== 'public'" :class="$style.visibility" :title="i18n.ts._visibility[note.visibility]">
<i v-if="note.visibility === 'home'" class="fas fa-home"></i> <i v-if="note.visibility === 'home'" class="ti ti-home-2"></i>
<i v-else-if="note.visibility === 'followers'" class="fas fa-unlock"></i> <i v-else-if="note.visibility === 'followers'" class="fas fa-unlock"></i>
<i v-else-if="note.visibility === 'specified'" ref="specified" class="fas fa-envelope"></i> <i v-else-if="note.visibility === 'specified'" ref="specified" class="fas fa-envelope"></i>
</span> </span>

View File

@ -2,14 +2,14 @@
<MkModal ref="modal" :z-priority="'high'" :src="src" @click="modal.close()" @closed="emit('closed')"> <MkModal ref="modal" :z-priority="'high'" :src="src" @click="modal.close()" @closed="emit('closed')">
<div class="gqyayizv _popup"> <div class="gqyayizv _popup">
<button key="public" class="_button" :class="{ active: v === 'public' }" data-index="1" @click="choose('public')"> <button key="public" class="_button" :class="{ active: v === 'public' }" data-index="1" @click="choose('public')">
<div><i class="fas fa-globe"></i></div> <div><i class="ti ti-world"></i></div>
<div> <div>
<span>{{ i18n.ts._visibility.public }}</span> <span>{{ i18n.ts._visibility.public }}</span>
<span>{{ i18n.ts._visibility.publicDescription }}</span> <span>{{ i18n.ts._visibility.publicDescription }}</span>
</div> </div>
</button> </button>
<button key="home" class="_button" :class="{ active: v === 'home' }" data-index="2" @click="choose('home')"> <button key="home" class="_button" :class="{ active: v === 'home' }" data-index="2" @click="choose('home')">
<div><i class="fas fa-home"></i></div> <div><i class="ti ti-home-2"></i></div>
<div> <div>
<span>{{ i18n.ts._visibility.home }}</span> <span>{{ i18n.ts._visibility.home }}</span>
<span>{{ i18n.ts._visibility.homeDescription }}</span> <span>{{ i18n.ts._visibility.homeDescription }}</span>

View File

@ -1,7 +1,7 @@
<template> <template>
<MkModal ref="modal" :prefer-type="'dialog'" :z-priority="'high'" @click="success ? done() : () => {}" @closed="emit('closed')"> <MkModal ref="modal" :prefer-type="'dialog'" :z-priority="'high'" @click="success ? done() : () => {}" @closed="emit('closed')">
<div class="iuyakobc" :class="{ iconOnly: (text == null) || success }"> <div class="iuyakobc" :class="{ iconOnly: (text == null) || success }">
<i v-if="success" class="fas fa-check icon success"></i> <i v-if="success" class="ti ti-check icon success"></i>
<i v-else class="fas fa-spinner fa-pulse icon waiting"></i> <i v-else class="fas fa-spinner fa-pulse icon waiting"></i>
<div v-if="text && !success" class="text">{{ text }}<MkEllipsis/></div> <div v-if="text && !success" class="text">{{ text }}<MkEllipsis/></div>
</div> </div>

View File

@ -6,7 +6,7 @@
<template #label>{{ i18n.ts.selectWidget }}</template> <template #label>{{ i18n.ts.selectWidget }}</template>
<option v-for="widget in widgetDefs" :key="widget" :value="widget">{{ i18n.t(`_widgets.${widget}`) }}</option> <option v-for="widget in widgetDefs" :key="widget" :value="widget">{{ i18n.t(`_widgets.${widget}`) }}</option>
</MkSelect> </MkSelect>
<MkButton inline primary class="mk-widget-add" @click="addWidget"><i class="fas fa-plus"></i> {{ i18n.ts.add }}</MkButton> <MkButton inline primary class="mk-widget-add" @click="addWidget"><i class="ti ti-plus"></i> {{ i18n.ts.add }}</MkButton>
<MkButton inline @click="$emit('exit')">{{ i18n.ts.close }}</MkButton> <MkButton inline @click="$emit('exit')">{{ i18n.ts.close }}</MkButton>
</header> </header>
<XDraggable <XDraggable
@ -17,7 +17,7 @@
> >
<template #item="{element}"> <template #item="{element}">
<div class="customize-container"> <div class="customize-container">
<button class="config _button" @click.prevent.stop="configWidget(element.id)"><i class="fas fa-cog"></i></button> <button class="config _button" @click.prevent.stop="configWidget(element.id)"><i class="ti ti-settings"></i></button>
<button class="remove _button" @click.prevent.stop="removeWidget(element)"><i class="fas fa-times"></i></button> <button class="remove _button" @click.prevent.stop="removeWidget(element)"><i class="fas fa-times"></i></button>
<div class="handle"> <div class="handle">
<component :is="`mkw-${element.name}`" :ref="el => widgetRefs[element.id] = el" class="widget" :widget="element" @updateProps="updateWidget(element.id, $event)"/> <component :is="`mkw-${element.name}`" :ref="el => widgetRefs[element.id] = el" class="widget" :widget="element" @updateProps="updateWidget(element.id, $event)"/>
@ -104,7 +104,7 @@ function onContextmenu(widget: Widget, ev: MouseEvent) {
type: 'label', type: 'label',
text: i18n.t(`_widgets.${widget.name}`), text: i18n.t(`_widgets.${widget.name}`),
}, { }, {
icon: 'fas fa-cog', icon: 'ti ti-settings',
text: i18n.ts.settings, text: i18n.ts.settings,
action: () => { action: () => {
configWidget(widget.id); configWidget(widget.id);

View File

@ -10,7 +10,7 @@
@keydown.enter="toggle" @keydown.enter="toggle"
> >
<span ref="button" v-adaptive-border v-tooltip="checked ? i18n.ts.itsOn : i18n.ts.itsOff" class="button" @click.prevent="toggle"> <span ref="button" v-adaptive-border v-tooltip="checked ? i18n.ts.itsOn : i18n.ts.itsOff" class="button" @click.prevent="toggle">
<i class="check fas fa-check"></i> <i class="check ti ti-check"></i>
</span> </span>
<span class="label"> <span class="label">
<!-- TODO: 無名slotの方は廃止 --> <!-- TODO: 無名slotの方は廃止 -->

View File

@ -29,7 +29,7 @@
</div> </div>
<div class="caption"><slot name="caption"></slot></div> <div class="caption"><slot name="caption"></slot></div>
<MkButton v-if="manualSave && changed" primary class="save" @click="updated"><i class="fas fa-check"></i> {{ i18n.ts.save }}</MkButton> <MkButton v-if="manualSave && changed" primary class="save" @click="updated"><i class="ti ti-check"></i> {{ i18n.ts.save }}</MkButton>
</div> </div>
</template> </template>

View File

@ -5,7 +5,7 @@
<span class="text"><slot></slot></span> <span class="text"><slot></slot></span>
<span class="right"> <span class="right">
<span class="text"><slot name="suffix"></slot></span> <span class="text"><slot name="suffix"></slot></span>
<i class="fas fa-external-link-alt icon"></i> <i class="ti ti-external-link icon"></i>
</span> </span>
</a> </a>
<MkA v-else class="main _button" :class="{ active }" :to="to" :behavior="behavior"> <MkA v-else class="main _button" :class="{ active }" :to="to" :behavior="behavior">

View File

@ -53,13 +53,13 @@ function onContextmenu(ev) {
router.push(props.to, 'forcePage'); router.push(props.to, 'forcePage');
}, },
}, null, { }, null, {
icon: 'fas fa-external-link-alt', icon: 'ti ti-external-link',
text: i18n.ts.openInNewTab, text: i18n.ts.openInNewTab,
action: () => { action: () => {
window.open(props.to, '_blank'); window.open(props.to, '_blank');
}, },
}, { }, {
icon: 'fas fa-link', icon: 'ti ti-link',
text: i18n.ts.copyLink, text: i18n.ts.copyLink,
action: () => { action: () => {
copyToClipboard(`${url}${props.to}`); copyToClipboard(`${url}${props.to}`);

View File

@ -2,8 +2,8 @@
<div class="ngbfujlo"> <div class="ngbfujlo">
<MkTextarea :model-value="text" readonly style="margin: 0;"></MkTextarea> <MkTextarea :model-value="text" readonly style="margin: 0;"></MkTextarea>
<MkButton class="button" primary :disabled="posting || posted" @click="post()"> <MkButton class="button" primary :disabled="posting || posted" @click="post()">
<i v-if="posted" class="fas fa-check"></i> <i v-if="posted" class="ti ti-check"></i>
<i v-else class="fas fa-paper-plane"></i> <i v-else class="ti ti-send"></i>
</MkButton> </MkButton>
</div> </div>
</template> </template>

View File

@ -9,21 +9,21 @@ import { unisonReload } from '@/scripts/unison-reload';
export const navbarItemDef = reactive({ export const navbarItemDef = reactive({
notifications: { notifications: {
title: 'notifications', title: 'notifications',
icon: 'fas fa-bell', icon: 'ti ti-bell',
show: computed(() => $i != null), show: computed(() => $i != null),
indicated: computed(() => $i != null && $i.hasUnreadNotification), indicated: computed(() => $i != null && $i.hasUnreadNotification),
to: '/my/notifications', to: '/my/notifications',
}, },
messaging: { messaging: {
title: 'messaging', title: 'messaging',
icon: 'fas fa-comments', icon: 'ti ti-messages',
show: computed(() => $i != null), show: computed(() => $i != null),
indicated: computed(() => $i != null && $i.hasUnreadMessagingMessage), indicated: computed(() => $i != null && $i.hasUnreadMessagingMessage),
to: '/my/messaging', to: '/my/messaging',
}, },
drive: { drive: {
title: 'drive', title: 'drive',
icon: 'fas fa-cloud', icon: 'ti ti-cloud',
show: computed(() => $i != null), show: computed(() => $i != null),
to: '/my/drive', to: '/my/drive',
}, },
@ -36,7 +36,7 @@ export const navbarItemDef = reactive({
}, },
explore: { explore: {
title: 'explore', title: 'explore',
icon: 'fas fa-hashtag', icon: 'ti ti-hash',
to: '/explore', to: '/explore',
}, },
announcements: { announcements: {
@ -47,7 +47,7 @@ export const navbarItemDef = reactive({
}, },
search: { search: {
title: 'search', title: 'search',
icon: 'fas fa-search', icon: 'ti ti-search',
action: () => search(), action: () => search(),
}, },
lists: { lists: {
@ -72,7 +72,7 @@ export const navbarItemDef = reactive({
}, },
favorites: { favorites: {
title: 'favorites', title: 'favorites',
icon: 'fas fa-star', icon: 'ti ti-star',
show: computed(() => $i != null), show: computed(() => $i != null),
to: '/my/favorites', to: '/my/favorites',
}, },
@ -88,7 +88,7 @@ export const navbarItemDef = reactive({
}, },
clips: { clips: {
title: 'clip', title: 'clip',
icon: 'fas fa-paperclip', icon: 'ti ti-paperclip',
show: computed(() => $i != null), show: computed(() => $i != null),
to: '/my/clips', to: '/my/clips',
}, },

View File

@ -25,7 +25,7 @@
<template #suffix>GitHub</template> <template #suffix>GitHub</template>
</FormLink> </FormLink>
<FormLink to="https://crowdin.com/project/misskey" external> <FormLink to="https://crowdin.com/project/misskey" external>
<template #icon><i class="fas fa-language"></i></template> <template #icon><i class="ti ti-language-hiragana"></i></template>
{{ i18n.ts._aboutMisskey.translation }} {{ i18n.ts._aboutMisskey.translation }}
<template #suffix>Crowdin</template> <template #suffix>Crowdin</template>
</FormLink> </FormLink>

View File

@ -2,7 +2,7 @@
<div class="driuhtrh"> <div class="driuhtrh">
<div class="query"> <div class="query">
<MkInput v-model="q" class="" :placeholder="$ts.search"> <MkInput v-model="q" class="" :placeholder="$ts.search">
<template #prefix><i class="fas fa-search"></i></template> <template #prefix><i class="ti ti-search"></i></template>
</MkInput> </MkInput>
<!-- たくさんあると邪魔 <!-- たくさんあると邪魔

View File

@ -2,7 +2,7 @@
<div class="taeiyria"> <div class="taeiyria">
<div class="query"> <div class="query">
<MkInput v-model="host" :debounce="true" class=""> <MkInput v-model="host" :debounce="true" class="">
<template #prefix><i class="fas fa-search"></i></template> <template #prefix><i class="ti ti-search"></i></template>
<template #label>{{ i18n.ts.host }}</template> <template #label>{{ i18n.ts.host }}</template>
</MkInput> </MkInput>
<FormSplit style="margin-top: var(--margin);"> <FormSplit style="margin-top: var(--margin);">

View File

@ -123,7 +123,7 @@ const headerTabs = $computed(() => [{
}, { }, {
key: 'federation', key: 'federation',
title: i18n.ts.federation, title: i18n.ts.federation,
icon: 'fas fa-globe', icon: 'ti ti-world',
}, { }, {
key: 'charts', key: 'charts',
title: i18n.ts.charts, title: i18n.ts.charts,

View File

@ -36,7 +36,7 @@
</div> </div>
<div class="_formBlock"> <div class="_formBlock">
<MkButton danger @click="del"><i class="fas fa-trash-alt"></i> {{ i18n.ts.delete }}</MkButton> <MkButton danger @click="del"><i class="ti ti-trash"></i> {{ i18n.ts.delete }}</MkButton>
</div> </div>
</div> </div>
<div v-else-if="tab === 'ip' && info" class="_formRoot"> <div v-else-if="tab === 'ip' && info" class="_formRoot">
@ -114,7 +114,7 @@ async function toggleIsSensitive(v) {
const headerActions = $computed(() => [{ const headerActions = $computed(() => [{
text: i18n.ts.openInNewTab, text: i18n.ts.openInNewTab,
icon: 'fas fa-external-link-alt', icon: 'ti ti-external-link',
handler: () => { handler: () => {
window.open(file.url, '_blank'); window.open(file.url, '_blank');
}, },

View File

@ -86,7 +86,7 @@ const headerTabs = $computed(() => []);
definePageMetadata({ definePageMetadata({
title: i18n.ts.abuseReports, title: i18n.ts.abuseReports,
icon: 'fas fa-exclamation-circle', icon: 'ti ti-exclamation-circle',
}); });
</script> </script>

View File

@ -38,7 +38,7 @@
</MkTextarea> </MkTextarea>
<div class="buttons _formBlock"> <div class="buttons _formBlock">
<MkButton class="button" inline primary style="margin-right: 12px;" @click="save(ad)"><i class="fas fa-save"></i> {{ i18n.ts.save }}</MkButton> <MkButton class="button" inline primary style="margin-right: 12px;" @click="save(ad)"><i class="fas fa-save"></i> {{ i18n.ts.save }}</MkButton>
<MkButton class="button" inline danger @click="remove(ad)"><i class="fas fa-trash-alt"></i> {{ i18n.ts.remove }}</MkButton> <MkButton class="button" inline danger @click="remove(ad)"><i class="ti ti-trash"></i> {{ i18n.ts.remove }}</MkButton>
</div> </div>
</div> </div>
</div> </div>
@ -106,7 +106,7 @@ function save(ad) {
const headerActions = $computed(() => [{ const headerActions = $computed(() => [{
asFullButton: true, asFullButton: true,
icon: 'fas fa-plus', icon: 'ti ti-plus',
text: i18n.ts.add, text: i18n.ts.add,
handler: add, handler: add,
}]); }]);

View File

@ -17,7 +17,7 @@
<p v-if="announcement.reads">{{ i18n.t('nUsersRead', { n: announcement.reads }) }}</p> <p v-if="announcement.reads">{{ i18n.t('nUsersRead', { n: announcement.reads }) }}</p>
<div class="buttons"> <div class="buttons">
<MkButton class="button" inline primary @click="save(announcement)"><i class="fas fa-save"></i> {{ i18n.ts.save }}</MkButton> <MkButton class="button" inline primary @click="save(announcement)"><i class="fas fa-save"></i> {{ i18n.ts.save }}</MkButton>
<MkButton class="button" inline @click="remove(announcement)"><i class="fas fa-trash-alt"></i> {{ i18n.ts.remove }}</MkButton> <MkButton class="button" inline @click="remove(announcement)"><i class="ti ti-trash"></i> {{ i18n.ts.remove }}</MkButton>
</div> </div>
</div> </div>
</section> </section>
@ -92,7 +92,7 @@ function save(announcement) {
const headerActions = $computed(() => [{ const headerActions = $computed(() => [{
asFullButton: true, asFullButton: true,
icon: 'fas fa-plus', icon: 'ti ti-plus',
text: i18n.ts.add, text: i18n.ts.add,
handler: add, handler: add,
}]); }]);

View File

@ -112,7 +112,7 @@ const headerActions = $computed(() => [{
handler: testEmail, handler: testEmail,
}, { }, {
asFullButton: true, asFullButton: true,
icon: 'fas fa-check', icon: 'ti ti-check',
text: i18n.ts.save, text: i18n.ts.save,
handler: save, handler: save,
}]); }]);

View File

@ -22,7 +22,7 @@
<template #label>{{ i18n.ts.tags }}</template> <template #label>{{ i18n.ts.tags }}</template>
<template #caption>{{ i18n.ts.setMultipleBySeparatingWithSpace }}</template> <template #caption>{{ i18n.ts.setMultipleBySeparatingWithSpace }}</template>
</MkInput> </MkInput>
<MkButton danger @click="del()"><i class="fas fa-trash-alt"></i> {{ i18n.ts.delete }}</MkButton> <MkButton danger @click="del()"><i class="ti ti-trash"></i> {{ i18n.ts.delete }}</MkButton>
</div> </div>
</div> </div>
</XModalWindow> </XModalWindow>

View File

@ -6,7 +6,7 @@
<div class="ogwlenmc"> <div class="ogwlenmc">
<div v-if="tab === 'local'" class="local"> <div v-if="tab === 'local'" class="local">
<MkInput v-model="query" :debounce="true" type="search"> <MkInput v-model="query" :debounce="true" type="search">
<template #prefix><i class="fas fa-search"></i></template> <template #prefix><i class="ti ti-search"></i></template>
<template #label>{{ i18n.ts.search }}</template> <template #label>{{ i18n.ts.search }}</template>
</MkInput> </MkInput>
<MkSwitch v-model="selectMode" style="margin: 8px 0;"> <MkSwitch v-model="selectMode" style="margin: 8px 0;">
@ -39,7 +39,7 @@
<div v-else-if="tab === 'remote'" class="remote"> <div v-else-if="tab === 'remote'" class="remote">
<FormSplit> <FormSplit>
<MkInput v-model="queryRemote" :debounce="true" type="search"> <MkInput v-model="queryRemote" :debounce="true" type="search">
<template #prefix><i class="fas fa-search"></i></template> <template #prefix><i class="ti ti-search"></i></template>
<template #label>{{ i18n.ts.search }}</template> <template #label>{{ i18n.ts.search }}</template>
</MkInput> </MkInput>
<MkInput v-model="host" :debounce="true"> <MkInput v-model="host" :debounce="true">
@ -164,7 +164,7 @@ const remoteMenu = (emoji, ev: MouseEvent) => {
text: ':' + emoji.name + ':', text: ':' + emoji.name + ':',
}, { }, {
text: i18n.ts.import, text: i18n.ts.import,
icon: 'fas fa-plus', icon: 'ti ti-plus',
action: () => { im(emoji); }, action: () => { im(emoji); },
}], ev.currentTarget ?? ev.target); }], ev.currentTarget ?? ev.target);
}; };
@ -273,11 +273,11 @@ const delBulk = async () => {
const headerActions = $computed(() => [{ const headerActions = $computed(() => [{
asFullButton: true, asFullButton: true,
icon: 'fas fa-plus', icon: 'ti ti-plus',
text: i18n.ts.addEmoji, text: i18n.ts.addEmoji,
handler: add, handler: add,
}, { }, {
icon: 'fas fa-ellipsis-h', icon: 'ti ti-dots',
handler: menu, handler: menu,
}]); }]);

View File

@ -97,11 +97,11 @@ async function find() {
const headerActions = $computed(() => [{ const headerActions = $computed(() => [{
text: i18n.ts.lookup, text: i18n.ts.lookup,
icon: 'fas fa-search', icon: 'ti ti-search',
handler: find, handler: find,
}, { }, {
text: i18n.ts.clearCachedFiles, text: i18n.ts.clearCachedFiles,
icon: 'fas fa-trash-alt', icon: 'ti ti-trash',
handler: clear, handler: clear,
}]); }]);
@ -109,7 +109,7 @@ const headerTabs = $computed(() => []);
definePageMetadata(computed(() => ({ definePageMetadata(computed(() => ({
title: i18n.ts.files, title: i18n.ts.files,
icon: 'fas fa-cloud', icon: 'ti ti-cloud',
}))); })));
</script> </script>

View File

@ -40,7 +40,7 @@ const router = useRouter();
const indexInfo = { const indexInfo = {
title: i18n.ts.controlPanel, title: i18n.ts.controlPanel,
icon: 'fas fa-cog', icon: 'ti ti-settings',
hideHeader: true, hideHeader: true,
}; };
@ -75,7 +75,7 @@ const menuDef = $computed(() => [{
title: i18n.ts.quickAction, title: i18n.ts.quickAction,
items: [{ items: [{
type: 'button', type: 'button',
icon: 'fas fa-search', icon: 'ti ti-search',
text: i18n.ts.lookup, text: i18n.ts.lookup,
action: lookup, action: lookup,
}, ...(instance.disableRegistration ? [{ }, ...(instance.disableRegistration ? [{
@ -102,7 +102,7 @@ const menuDef = $computed(() => [{
to: '/admin/emojis', to: '/admin/emojis',
active: currentPage?.route.name === 'emojis', active: currentPage?.route.name === 'emojis',
}, { }, {
icon: 'fas fa-globe', icon: 'ti ti-world',
text: i18n.ts.federation, text: i18n.ts.federation,
to: '/about#federation', to: '/about#federation',
active: currentPage?.route.name === 'federation', active: currentPage?.route.name === 'federation',
@ -112,7 +112,7 @@ const menuDef = $computed(() => [{
to: '/admin/queue', to: '/admin/queue',
active: currentPage?.route.name === 'queue', active: currentPage?.route.name === 'queue',
}, { }, {
icon: 'fas fa-cloud', icon: 'ti ti-cloud',
text: i18n.ts.files, text: i18n.ts.files,
to: '/admin/files', to: '/admin/files',
active: currentPage?.route.name === 'files', active: currentPage?.route.name === 'files',
@ -127,7 +127,7 @@ const menuDef = $computed(() => [{
to: '/admin/ads', to: '/admin/ads',
active: currentPage?.route.name === 'ads', active: currentPage?.route.name === 'ads',
}, { }, {
icon: 'fas fa-exclamation-circle', icon: 'ti ti-exclamation-circle',
text: i18n.ts.abuseReports, text: i18n.ts.abuseReports,
to: '/admin/abuses', to: '/admin/abuses',
active: currentPage?.route.name === 'abuses', active: currentPage?.route.name === 'abuses',
@ -135,7 +135,7 @@ const menuDef = $computed(() => [{
}, { }, {
title: i18n.ts.settings, title: i18n.ts.settings,
items: [{ items: [{
icon: 'fas fa-cog', icon: 'ti ti-settings',
text: i18n.ts.general, text: i18n.ts.general,
to: '/admin/settings', to: '/admin/settings',
active: currentPage?.route.name === 'settings', active: currentPage?.route.name === 'settings',
@ -145,7 +145,7 @@ const menuDef = $computed(() => [{
to: '/admin/email-settings', to: '/admin/email-settings',
active: currentPage?.route.name === 'email-settings', active: currentPage?.route.name === 'email-settings',
}, { }, {
icon: 'fas fa-cloud', icon: 'ti ti-cloud',
text: i18n.ts.objectStorage, text: i18n.ts.objectStorage,
to: '/admin/object-storage', to: '/admin/object-storage',
active: currentPage?.route.name === 'object-storage', active: currentPage?.route.name === 'object-storage',
@ -155,12 +155,12 @@ const menuDef = $computed(() => [{
to: '/admin/security', to: '/admin/security',
active: currentPage?.route.name === 'security', active: currentPage?.route.name === 'security',
}, { }, {
icon: 'fas fa-globe', icon: 'ti ti-world',
text: i18n.ts.relays, text: i18n.ts.relays,
to: '/admin/relays', to: '/admin/relays',
active: currentPage?.route.name === 'relays', active: currentPage?.route.name === 'relays',
}, { }, {
icon: 'fas fa-share-alt', icon: 'ti ti-share',
text: i18n.ts.integration, text: i18n.ts.integration,
to: '/admin/integrations', to: '/admin/integrations',
active: currentPage?.route.name === 'integrations', active: currentPage?.route.name === 'integrations',
@ -175,7 +175,7 @@ const menuDef = $computed(() => [{
to: '/admin/proxy-account', to: '/admin/proxy-account',
active: currentPage?.route.name === 'proxy-account', active: currentPage?.route.name === 'proxy-account',
}, { }, {
icon: 'fas fa-cogs', icon: 'ti ti-adjustments',
text: i18n.ts.other, text: i18n.ts.other,
to: '/admin/other-settings', to: '/admin/other-settings',
active: currentPage?.route.name === 'other-settings', active: currentPage?.route.name === 'other-settings',
@ -246,13 +246,13 @@ const lookup = (ev) => {
}, },
}, { }, {
text: i18n.ts.file, text: i18n.ts.file,
icon: 'fas fa-cloud', icon: 'ti ti-cloud',
action: () => { action: () => {
alert('TODO'); alert('TODO');
}, },
}, { }, {
text: i18n.ts.instance, text: i18n.ts.instance,
icon: 'fas fa-globe', icon: 'ti ti-world',
action: () => { action: () => {
alert('TODO'); alert('TODO');
}, },

View File

@ -52,6 +52,6 @@ const headerTabs = $computed(() => []);
definePageMetadata({ definePageMetadata({
title: i18n.ts.integration, title: i18n.ts.integration,
icon: 'fas fa-share-alt', icon: 'ti ti-share',
}); });
</script> </script>

View File

@ -134,7 +134,7 @@ function save() {
const headerActions = $computed(() => [{ const headerActions = $computed(() => [{
asFullButton: true, asFullButton: true,
icon: 'fas fa-check', icon: 'ti ti-check',
text: i18n.ts.save, text: i18n.ts.save,
handler: save, handler: save,
}]); }]);
@ -143,6 +143,6 @@ const headerTabs = $computed(() => []);
definePageMetadata({ definePageMetadata({
title: i18n.ts.objectStorage, title: i18n.ts.objectStorage,
icon: 'fas fa-cloud', icon: 'ti ti-cloud',
}); });
</script> </script>

View File

@ -30,7 +30,7 @@ function save() {
const headerActions = $computed(() => [{ const headerActions = $computed(() => [{
asFullButton: true, asFullButton: true,
icon: 'fas fa-check', icon: 'ti ti-check',
text: i18n.ts.save, text: i18n.ts.save,
handler: save, handler: save,
}]); }]);
@ -39,6 +39,6 @@ const headerTabs = $computed(() => []);
definePageMetadata({ definePageMetadata({
title: i18n.ts.other, title: i18n.ts.other,
icon: 'fas fa-cogs', icon: 'ti ti-adjustments',
}); });
</script> </script>

View File

@ -5,12 +5,12 @@
<div v-for="relay in relays" :key="relay.inbox" class="relaycxt _panel _block" style="padding: 16px;"> <div v-for="relay in relays" :key="relay.inbox" class="relaycxt _panel _block" style="padding: 16px;">
<div>{{ relay.inbox }}</div> <div>{{ relay.inbox }}</div>
<div class="status"> <div class="status">
<i v-if="relay.status === 'accepted'" class="fas fa-check icon accepted"></i> <i v-if="relay.status === 'accepted'" class="ti ti-check icon accepted"></i>
<i v-else-if="relay.status === 'rejected'" class="fas fa-ban icon rejected"></i> <i v-else-if="relay.status === 'rejected'" class="fas fa-ban icon rejected"></i>
<i v-else class="fas fa-clock icon requesting"></i> <i v-else class="fas fa-clock icon requesting"></i>
<span>{{ $t(`_relayStatus.${relay.status}`) }}</span> <span>{{ $t(`_relayStatus.${relay.status}`) }}</span>
</div> </div>
<MkButton class="button" inline danger @click="remove(relay.inbox)"><i class="fas fa-trash-alt"></i> {{ i18n.ts.remove }}</MkButton> <MkButton class="button" inline danger @click="remove(relay.inbox)"><i class="ti ti-trash"></i> {{ i18n.ts.remove }}</MkButton>
</div> </div>
</MkSpacer> </MkSpacer>
</MkStickyContainer> </MkStickyContainer>
@ -68,7 +68,7 @@ refresh();
const headerActions = $computed(() => [{ const headerActions = $computed(() => [{
asFullButton: true, asFullButton: true,
icon: 'fas fa-plus', icon: 'ti ti-plus',
text: i18n.ts.addRelay, text: i18n.ts.addRelay,
handler: addRelay, handler: addRelay,
}]); }]);
@ -77,7 +77,7 @@ const headerTabs = $computed(() => []);
definePageMetadata({ definePageMetadata({
title: i18n.ts.relays, title: i18n.ts.relays,
icon: 'fas fa-globe', icon: 'ti ti-world',
}); });
</script> </script>

View File

@ -88,7 +88,7 @@
<div class="_formRoot"> <div class="_formRoot">
<FormInput v-model="summalyProxy" class="_formBlock"> <FormInput v-model="summalyProxy" class="_formBlock">
<template #prefix><i class="fas fa-link"></i></template> <template #prefix><i class="ti ti-link"></i></template>
<template #label>Summaly Proxy URL</template> <template #label>Summaly Proxy URL</template>
</FormInput> </FormInput>

View File

@ -14,7 +14,7 @@
</FormTextarea> </FormTextarea>
<FormInput v-model="tosUrl" class="_formBlock"> <FormInput v-model="tosUrl" class="_formBlock">
<template #prefix><i class="fas fa-link"></i></template> <template #prefix><i class="ti ti-link"></i></template>
<template #label>{{ i18n.ts.tosUrl }}</template> <template #label>{{ i18n.ts.tosUrl }}</template>
</FormInput> </FormInput>
@ -54,17 +54,17 @@
<template #label>{{ i18n.ts.theme }}</template> <template #label>{{ i18n.ts.theme }}</template>
<FormInput v-model="iconUrl" class="_formBlock"> <FormInput v-model="iconUrl" class="_formBlock">
<template #prefix><i class="fas fa-link"></i></template> <template #prefix><i class="ti ti-link"></i></template>
<template #label>{{ i18n.ts.iconUrl }}</template> <template #label>{{ i18n.ts.iconUrl }}</template>
</FormInput> </FormInput>
<FormInput v-model="bannerUrl" class="_formBlock"> <FormInput v-model="bannerUrl" class="_formBlock">
<template #prefix><i class="fas fa-link"></i></template> <template #prefix><i class="ti ti-link"></i></template>
<template #label>{{ i18n.ts.bannerUrl }}</template> <template #label>{{ i18n.ts.bannerUrl }}</template>
</FormInput> </FormInput>
<FormInput v-model="backgroundImageUrl" class="_formBlock"> <FormInput v-model="backgroundImageUrl" class="_formBlock">
<template #prefix><i class="fas fa-link"></i></template> <template #prefix><i class="ti ti-link"></i></template>
<template #label>{{ i18n.ts.backgroundImageUrl }}</template> <template #label>{{ i18n.ts.backgroundImageUrl }}</template>
</FormInput> </FormInput>
@ -248,7 +248,7 @@ function save() {
const headerActions = $computed(() => [{ const headerActions = $computed(() => [{
asFullButton: true, asFullButton: true,
icon: 'fas fa-check', icon: 'ti ti-check',
text: i18n.ts.save, text: i18n.ts.save,
handler: save, handler: save,
}]); }]);
@ -257,6 +257,6 @@ const headerTabs = $computed(() => []);
definePageMetadata({ definePageMetadata({
title: i18n.ts.general, title: i18n.ts.general,
icon: 'fas fa-cog', icon: 'ti ti-settings',
}); });
</script> </script>

View File

@ -115,17 +115,17 @@ function show(user) {
} }
const headerActions = $computed(() => [{ const headerActions = $computed(() => [{
icon: 'fas fa-search', icon: 'ti ti-search',
text: i18n.ts.search, text: i18n.ts.search,
handler: searchUser, handler: searchUser,
}, { }, {
asFullButton: true, asFullButton: true,
icon: 'fas fa-plus', icon: 'ti ti-plus',
text: i18n.ts.addUser, text: i18n.ts.addUser,
handler: addUser, handler: addUser,
}, { }, {
asFullButton: true, asFullButton: true,
icon: 'fas fa-search', icon: 'ti ti-search',
text: i18n.ts.lookup, text: i18n.ts.lookup,
handler: lookupUser, handler: lookupUser,
}]); }]);

View File

@ -10,7 +10,7 @@
<img v-if="announcement.imageUrl" :src="announcement.imageUrl"/> <img v-if="announcement.imageUrl" :src="announcement.imageUrl"/>
</div> </div>
<div v-if="$i && !announcement.isRead" class="_footer"> <div v-if="$i && !announcement.isRead" class="_footer">
<MkButton primary @click="read(items, announcement, i)"><i class="fas fa-check"></i> {{ $ts.gotIt }}</MkButton> <MkButton primary @click="read(items, announcement, i)"><i class="ti ti-check"></i> {{ $ts.gotIt }}</MkButton>
</div> </div>
</section> </section>
</MkPagination> </MkPagination>

View File

@ -76,7 +76,7 @@ const headerActions = $computed(() => antenna ? [{
text: i18n.ts.jumpToSpecifiedDate, text: i18n.ts.jumpToSpecifiedDate,
handler: timetravel, handler: timetravel,
}, { }, {
icon: 'fas fa-cog', icon: 'ti ti-settings',
text: i18n.ts.settings, text: i18n.ts.settings,
handler: settings, handler: settings,
}] : []); }] : []);

View File

@ -15,7 +15,7 @@
</MkSwitch> </MkSwitch>
<MkButton class="_formBlock" primary :disabled="sending" @click="send"> <MkButton class="_formBlock" primary :disabled="sending" @click="send">
<template v-if="sending"><MkEllipsis/></template> <template v-if="sending"><MkEllipsis/></template>
<template v-else><i class="fas fa-paper-plane"></i> Send</template> <template v-else><i class="ti ti-send"></i> Send</template>
</MkButton> </MkButton>
</div> </div>
<div v-if="res" class="_formBlock"> <div v-if="res" class="_formBlock">

View File

@ -12,10 +12,10 @@
</MkTextarea> </MkTextarea>
<div class="banner"> <div class="banner">
<MkButton v-if="bannerId == null" @click="setBannerImage"><i class="fas fa-plus"></i> {{ i18n.ts._channel.setBanner }}</MkButton> <MkButton v-if="bannerId == null" @click="setBannerImage"><i class="ti ti-plus"></i> {{ i18n.ts._channel.setBanner }}</MkButton>
<div v-else-if="bannerUrl"> <div v-else-if="bannerUrl">
<img :src="bannerUrl" style="width: 100%;"/> <img :src="bannerUrl" style="width: 100%;"/>
<MkButton @click="removeBannerImage()"><i class="fas fa-trash-alt"></i> {{ i18n.ts._channel.removeBanner }}</MkButton> <MkButton @click="removeBannerImage()"><i class="ti ti-trash"></i> {{ i18n.ts._channel.removeBanner }}</MkButton>
</div> </div>
</div> </div>
<div class="_formBlock"> <div class="_formBlock">

View File

@ -70,7 +70,7 @@ function edit() {
} }
const headerActions = $computed(() => channel && channel.userId ? [{ const headerActions = $computed(() => channel && channel.userId ? [{
icon: 'fas fa-cog', icon: 'ti ti-settings',
text: i18n.ts.edit, text: i18n.ts.edit,
handler: edit, handler: edit,
}] : null); }] : null);

View File

@ -13,7 +13,7 @@
</MkPagination> </MkPagination>
</div> </div>
<div v-else-if="tab === 'owned'" class="_content grwlizim owned"> <div v-else-if="tab === 'owned'" class="_content grwlizim owned">
<MkButton class="new" @click="create()"><i class="fas fa-plus"></i></MkButton> <MkButton class="new" @click="create()"><i class="ti ti-plus"></i></MkButton>
<MkPagination v-slot="{items}" :pagination="ownedPagination"> <MkPagination v-slot="{items}" :pagination="ownedPagination">
<MkChannelPreview v-for="channel in items" :key="channel.id" class="_gap" :channel="channel"/> <MkChannelPreview v-for="channel in items" :key="channel.id" class="_gap" :channel="channel"/>
</MkPagination> </MkPagination>
@ -53,7 +53,7 @@ function create() {
} }
const headerActions = $computed(() => [{ const headerActions = $computed(() => [{
icon: 'fas fa-plus', icon: 'ti ti-plus',
text: i18n.ts.create, text: i18n.ts.create,
handler: create, handler: create,
}]); }]);

View File

@ -83,7 +83,7 @@ const headerActions = $computed(() => clip && isOwned ? [{
}); });
}, },
}, { }, {
icon: 'fas fa-trash-alt', icon: 'ti ti-trash',
text: i18n.ts.delete, text: i18n.ts.delete,
danger: true, danger: true,
handler: async (): Promise<void> => { handler: async (): Promise<void> => {
@ -101,7 +101,7 @@ const headerActions = $computed(() => clip && isOwned ? [{
definePageMetadata(computed(() => clip ? { definePageMetadata(computed(() => clip ? {
title: clip.name, title: clip.name,
icon: 'fas fa-paperclip', icon: 'ti ti-paperclip',
} : null)); } : null));
</script> </script>

View File

@ -19,7 +19,7 @@ const headerTabs = $computed(() => []);
definePageMetadata(computed(() => ({ definePageMetadata(computed(() => ({
title: folder ? folder.name : i18n.ts.drive, title: folder ? folder.name : i18n.ts.drive,
icon: 'fas fa-cloud', icon: 'ti ti-cloud',
hideHeader: true, hideHeader: true,
}))); })));
</script> </script>

View File

@ -24,7 +24,7 @@ function menu(ev) {
text: ':' + props.emoji.name + ':', text: ':' + props.emoji.name + ':',
}, { }, {
text: i18n.ts.copy, text: i18n.ts.copy,
icon: 'fas fa-copy', icon: 'ti ti-copy',
action: () => { action: () => {
copyToClipboard(`:${props.emoji.name}:`); copyToClipboard(`:${props.emoji.name}:`);
os.success(); os.success();

View File

@ -19,14 +19,14 @@
<XUserList :pagination="recentlyUpdatedUsers"/> <XUserList :pagination="recentlyUpdatedUsers"/>
</MkFolder> </MkFolder>
<MkFolder class="_gap" persist-key="explore-recently-registered-users"> <MkFolder class="_gap" persist-key="explore-recently-registered-users">
<template #header><i class="fas fa-plus fa-fw" style="margin-right: 0.5em;"></i>{{ i18n.ts.recentlyRegisteredUsers }}</template> <template #header><i class="ti ti-plus fa-fw" style="margin-right: 0.5em;"></i>{{ i18n.ts.recentlyRegisteredUsers }}</template>
<XUserList :pagination="recentlyRegisteredUsers"/> <XUserList :pagination="recentlyRegisteredUsers"/>
</MkFolder> </MkFolder>
</template> </template>
</div> </div>
<div v-else> <div v-else>
<MkFolder ref="tagsEl" :foldable="true" :expanded="false" class="_gap"> <MkFolder ref="tagsEl" :foldable="true" :expanded="false" class="_gap">
<template #header><i class="fas fa-hashtag fa-fw" style="margin-right: 0.5em;"></i>{{ i18n.ts.popularTags }}</template> <template #header><i class="ti ti-hash fa-fw" style="margin-right: 0.5em;"></i>{{ i18n.ts.popularTags }}</template>
<div class="vxjfqztj"> <div class="vxjfqztj">
<MkA v-for="tag in tagsLocal" :key="'local:' + tag.tag" :to="`/explore/tags/${tag.tag}`" class="local">{{ tag.tag }}</MkA> <MkA v-for="tag in tagsLocal" :key="'local:' + tag.tag" :to="`/explore/tags/${tag.tag}`" class="local">{{ tag.tag }}</MkA>
@ -35,7 +35,7 @@
</MkFolder> </MkFolder>
<MkFolder v-if="tag != null" :key="`${tag}`" class="_gap"> <MkFolder v-if="tag != null" :key="`${tag}`" class="_gap">
<template #header><i class="fas fa-hashtag fa-fw" style="margin-right: 0.5em;"></i>{{ tag }}</template> <template #header><i class="ti ti-hash fa-fw" style="margin-right: 0.5em;"></i>{{ tag }}</template>
<XUserList :pagination="tagUsers"/> <XUserList :pagination="tagUsers"/>
</MkFolder> </MkFolder>

View File

@ -12,7 +12,7 @@
<MkSpacer :content-max="1200"> <MkSpacer :content-max="1200">
<div> <div>
<MkInput v-model="searchQuery" :debounce="true" type="search" class="_formBlock"> <MkInput v-model="searchQuery" :debounce="true" type="search" class="_formBlock">
<template #prefix><i class="fas fa-search"></i></template> <template #prefix><i class="ti ti-search"></i></template>
<template #label>{{ i18n.ts.searchUser }}</template> <template #label>{{ i18n.ts.searchUser }}</template>
</MkInput> </MkInput>
<MkRadios v-model="searchOrigin" class="_formBlock"> <MkRadios v-model="searchOrigin" class="_formBlock">
@ -82,6 +82,6 @@ const headerTabs = $computed(() => [{
definePageMetadata(computed(() => ({ definePageMetadata(computed(() => ({
title: i18n.ts.explore, title: i18n.ts.explore,
icon: 'fas fa-hashtag', icon: 'ti ti-hash',
}))); })));
</script> </script>

View File

@ -37,7 +37,7 @@ const pagingComponent = ref<InstanceType<typeof MkPagination>>();
definePageMetadata({ definePageMetadata({
title: i18n.ts.favorites, title: i18n.ts.favorites,
icon: 'fas fa-star', icon: 'ti ti-star',
}); });
</script> </script>

View File

@ -22,7 +22,7 @@
<Mfm :text="req.follower.description" :is-note="false" :author="req.follower" :i="$i" :custom-emojis="req.follower.emojis" :plain="true" :nowrap="true"/> <Mfm :text="req.follower.description" :is-note="false" :author="req.follower" :i="$i" :custom-emojis="req.follower.emojis" :plain="true" :nowrap="true"/>
</div> </div>
<div class="actions"> <div class="actions">
<button class="_button" @click="accept(req.follower)"><i class="fas fa-check"></i></button> <button class="_button" @click="accept(req.follower)"><i class="ti ti-check"></i></button>
<button class="_button" @click="reject(req.follower)"><i class="fas fa-times"></i></button> <button class="_button" @click="reject(req.follower)"><i class="fas fa-times"></i></button>
</div> </div>
</div> </div>

View File

@ -16,7 +16,7 @@
<div class="name">{{ file.name }}</div> <div class="name">{{ file.name }}</div>
<button v-tooltip="i18n.ts.remove" class="remove _button" @click="remove(file)"><i class="fas fa-times"></i></button> <button v-tooltip="i18n.ts.remove" class="remove _button" @click="remove(file)"><i class="fas fa-times"></i></button>
</div> </div>
<FormButton primary @click="selectFile"><i class="fas fa-plus"></i> {{ i18n.ts.attachFile }}</FormButton> <FormButton primary @click="selectFile"><i class="ti ti-plus"></i> {{ i18n.ts.attachFile }}</FormButton>
</div> </div>
<FormSwitch v-model="isSensitive">{{ i18n.ts.markAsSensitive }}</FormSwitch> <FormSwitch v-model="isSensitive">{{ i18n.ts.markAsSensitive }}</FormSwitch>
@ -24,7 +24,7 @@
<FormButton v-if="postId" primary @click="save"><i class="fas fa-save"></i> {{ i18n.ts.save }}</FormButton> <FormButton v-if="postId" primary @click="save"><i class="fas fa-save"></i> {{ i18n.ts.save }}</FormButton>
<FormButton v-else primary @click="save"><i class="fas fa-save"></i> {{ i18n.ts.publish }}</FormButton> <FormButton v-else primary @click="save"><i class="fas fa-save"></i> {{ i18n.ts.publish }}</FormButton>
<FormButton v-if="postId" danger @click="del"><i class="fas fa-trash-alt"></i> {{ i18n.ts.delete }}</FormButton> <FormButton v-if="postId" danger @click="del"><i class="ti ti-trash"></i> {{ i18n.ts.delete }}</FormButton>
</FormSuspense> </FormSuspense>
</MkSpacer> </MkSpacer>
</MkStickyContainer> </MkStickyContainer>

View File

@ -29,7 +29,7 @@
</MkPagination> </MkPagination>
</div> </div>
<div v-else-if="tab === 'my'"> <div v-else-if="tab === 'my'">
<MkA to="/gallery/new" class="_link" style="margin: 16px;"><i class="fas fa-plus"></i> {{ i18n.ts.postToGallery }}</MkA> <MkA to="/gallery/new" class="_link" style="margin: 16px;"><i class="ti ti-plus"></i> {{ i18n.ts.postToGallery }}</MkA>
<MkPagination v-slot="{items}" :pagination="myPostsPagination"> <MkPagination v-slot="{items}" :pagination="myPostsPagination">
<div class="vfpdbgtk"> <div class="vfpdbgtk">
<MkGalleryPostPreview v-for="post in items" :key="post.id" :post="post" class="post"/> <MkGalleryPostPreview v-for="post in items" :key="post.id" :post="post" class="post"/>
@ -98,7 +98,7 @@ watch(() => props.tag, () => {
}); });
const headerActions = $computed(() => [{ const headerActions = $computed(() => [{
icon: 'fas fa-plus', icon: 'ti ti-plus',
text: i18n.ts.create, text: i18n.ts.create,
handler: () => { handler: () => {
router.push('/gallery/new'); router.push('/gallery/new');

View File

@ -23,8 +23,8 @@
</div> </div>
<div class="other"> <div class="other">
<button v-if="$i && $i.id === post.user.id" v-tooltip="i18n.ts.edit" v-click-anime class="_button" @click="edit"><i class="fas fa-pencil-alt fa-fw"></i></button> <button v-if="$i && $i.id === post.user.id" v-tooltip="i18n.ts.edit" v-click-anime class="_button" @click="edit"><i class="fas fa-pencil-alt fa-fw"></i></button>
<button v-tooltip="i18n.ts.shareWithNote" v-click-anime class="_button" @click="shareWithNote"><i class="fas fa-retweet fa-fw"></i></button> <button v-tooltip="i18n.ts.shareWithNote" v-click-anime class="_button" @click="shareWithNote"><i class="ti ti-repeat fa-fw"></i></button>
<button v-tooltip="i18n.ts.share" v-click-anime class="_button" @click="share"><i class="fas fa-share-alt fa-fw"></i></button> <button v-tooltip="i18n.ts.share" v-click-anime class="_button" @click="share"><i class="ti ti-share fa-fw"></i></button>
</div> </div>
</div> </div>
<div class="user"> <div class="user">

View File

@ -195,7 +195,7 @@ fetch();
const headerActions = $computed(() => [{ const headerActions = $computed(() => [{
text: `https://${props.host}`, text: `https://${props.host}`,
icon: 'fas fa-external-link-alt', icon: 'ti ti-external-link',
handler: () => { handler: () => {
window.open(`https://${props.host}`, '_blank'); window.open(`https://${props.host}`, '_blank');
}, },

View File

@ -3,7 +3,7 @@
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template> <template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
<MkSpacer :content-max="800"> <MkSpacer :content-max="800">
<div v-size="{ max: [400] }" class="yweeujhr"> <div v-size="{ max: [400] }" class="yweeujhr">
<MkButton primary class="start" @click="start"><i class="fas fa-plus"></i> {{ $ts.startMessaging }}</MkButton> <MkButton primary class="start" @click="start"><i class="ti ti-plus"></i> {{ $ts.startMessaging }}</MkButton>
<div v-if="messages.length > 0" class="history"> <div v-if="messages.length > 0" class="history">
<MkA <MkA
@ -158,7 +158,7 @@ const headerTabs = $computed(() => []);
definePageMetadata({ definePageMetadata({
title: i18n.ts.messaging, title: i18n.ts.messaging,
icon: 'fas fa-comments', icon: 'ti ti-messages',
}); });
</script> </script>

View File

@ -18,7 +18,7 @@
<button class="_button" @click="chooseFile"><i class="fas fa-photo-video"></i></button> <button class="_button" @click="chooseFile"><i class="fas fa-photo-video"></i></button>
<button class="_button" @click="insertEmoji"><i class="fas fa-laugh-squint"></i></button> <button class="_button" @click="insertEmoji"><i class="fas fa-laugh-squint"></i></button>
<button class="send _button" :disabled="!canSend || sending" :title="i18n.ts.send" @click="send"> <button class="send _button" :disabled="!canSend || sending" :title="i18n.ts.send" @click="send">
<template v-if="!sending"><i class="fas fa-paper-plane"></i></template><template v-if="sending"><i class="fas fa-spinner fa-pulse fa-fw"></i></template> <template v-if="!sending"><i class="ti ti-send"></i></template><template v-if="sending"><i class="fas fa-spinner fa-pulse fa-fw"></i></template>
</button> </button>
</div> </div>
</footer> </footer>

View File

@ -2,7 +2,7 @@
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template> <template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
<MkSpacer :content-max="700"> <MkSpacer :content-max="700">
<div class="ieepwinx"> <div class="ieepwinx">
<MkButton :link="true" to="/my/antennas/create" primary class="add"><i class="fas fa-plus"></i> {{ i18n.ts.add }}</MkButton> <MkButton :link="true" to="/my/antennas/create" primary class="add"><i class="ti ti-plus"></i> {{ i18n.ts.add }}</MkButton>
<div class=""> <div class="">
<MkPagination v-slot="{items}" ref="list" :pagination="pagination"> <MkPagination v-slot="{items}" ref="list" :pagination="pagination">

View File

@ -3,7 +3,7 @@
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template> <template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
<MkSpacer :content-max="700"> <MkSpacer :content-max="700">
<div class="qtcaoidl"> <div class="qtcaoidl">
<MkButton primary class="add" @click="create"><i class="fas fa-plus"></i> {{ i18n.ts.add }}</MkButton> <MkButton primary class="add" @click="create"><i class="ti ti-plus"></i> {{ i18n.ts.add }}</MkButton>
<MkPagination v-slot="{items}" ref="pagingComponent" :pagination="pagination" class="list"> <MkPagination v-slot="{items}" ref="pagingComponent" :pagination="pagination" class="list">
<MkA v-for="item in items" :key="item.id" :to="`/clips/${item.id}`" class="item _panel _gap"> <MkA v-for="item in items" :key="item.id" :to="`/clips/${item.id}`" class="item _panel _gap">
@ -70,9 +70,9 @@ const headerTabs = $computed(() => []);
definePageMetadata({ definePageMetadata({
title: i18n.ts.clip, title: i18n.ts.clip,
icon: 'fas fa-paperclip', icon: 'ti ti-paperclip',
action: { action: {
icon: 'fas fa-plus', icon: 'ti ti-plus',
handler: create, handler: create,
}, },
}); });

View File

@ -3,7 +3,7 @@
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template> <template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
<MkSpacer :content-max="700"> <MkSpacer :content-max="700">
<div class="qkcjvfiv"> <div class="qkcjvfiv">
<MkButton primary class="add" @click="create"><i class="fas fa-plus"></i> {{ i18n.ts.createList }}</MkButton> <MkButton primary class="add" @click="create"><i class="ti ti-plus"></i> {{ i18n.ts.createList }}</MkButton>
<MkPagination v-slot="{items}" ref="pagingComponent" :pagination="pagination" class="lists _content"> <MkPagination v-slot="{items}" ref="pagingComponent" :pagination="pagination" class="lists _content">
<MkA v-for="list in items" :key="list.id" class="list _panel" :to="`/my/lists/${ list.id }`"> <MkA v-for="list in items" :key="list.id" class="list _panel" :to="`/my/lists/${ list.id }`">
@ -49,7 +49,7 @@ definePageMetadata({
title: i18n.ts.manageLists, title: i18n.ts.manageLists,
icon: 'fas fa-list-ul', icon: 'fas fa-list-ul',
action: { action: {
icon: 'fas fa-plus', icon: 'ti ti-plus',
handler: create, handler: create,
}, },
}); });

View File

@ -66,7 +66,7 @@ const headerActions = $computed(() => [tab === 'all' ? {
handler: setFilter, handler: setFilter,
} : undefined, tab === 'all' ? { } : undefined, tab === 'all' ? {
text: i18n.ts.markAllAsRead, text: i18n.ts.markAllAsRead,
icon: 'fas fa-check', icon: 'ti ti-check',
handler: () => { handler: () => {
os.apiWithDialog('notifications/mark-all-as-read'); os.apiWithDialog('notifications/mark-all-as-read');
}, },
@ -90,6 +90,6 @@ const headerTabs = $computed(() => [{
definePageMetadata(computed(() => ({ definePageMetadata(computed(() => ({
title: i18n.ts.notifications, title: i18n.ts.notifications,
icon: 'fas fa-bell', icon: 'ti ti-bell',
}))); })));
</script> </script>

View File

@ -4,7 +4,7 @@
<template #header><i class="fas fa-question"></i> {{ $ts._pages.blocks.if }}</template> <template #header><i class="fas fa-question"></i> {{ $ts._pages.blocks.if }}</template>
<template #func> <template #func>
<button class="_button" @click="add()"> <button class="_button" @click="add()">
<i class="fas fa-plus"></i> <i class="ti ti-plus"></i>
</button> </button>
</template> </template>

View File

@ -1,7 +1,7 @@
<template> <template>
<!-- eslint-disable vue/no-mutating-props --> <!-- eslint-disable vue/no-mutating-props -->
<XContainer :draggable="true" @remove="() => $emit('remove')"> <XContainer :draggable="true" @remove="() => $emit('remove')">
<template #header><i class="fas fa-paper-plane"></i> {{ $ts._pages.blocks.post }}</template> <template #header><i class="ti ti-send"></i> {{ $ts._pages.blocks.post }}</template>
<section style="padding: 16px;"> <section style="padding: 16px;">
<MkTextarea v-model="value.text"><template #label>{{ $ts._pages.blocks._post.text }}</template></MkTextarea> <MkTextarea v-model="value.text"><template #label>{{ $ts._pages.blocks._post.text }}</template></MkTextarea>

View File

@ -7,7 +7,7 @@
<i class="fas fa-pencil-alt"></i> <i class="fas fa-pencil-alt"></i>
</button> </button>
<button class="_button" @click="add()"> <button class="_button" @click="add()">
<i class="fas fa-plus"></i> <i class="ti ti-plus"></i>
</button> </button>
</template> </template>

View File

@ -5,7 +5,7 @@
<div class="buttons"> <div class="buttons">
<slot name="func"></slot> <slot name="func"></slot>
<button v-if="removable" class="_button" @click="remove()"> <button v-if="removable" class="_button" @click="remove()">
<i class="fas fa-trash-alt"></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="fas fa-bars"></i> <i class="fas fa-bars"></i>

View File

@ -5,8 +5,8 @@
<div class="jqqmcavi"> <div class="jqqmcavi">
<MkButton v-if="pageId" class="button" inline link :to="`/@${ author.username }/pages/${ currentName }`"><i class="fas fa-external-link-square-alt"></i> {{ $ts._pages.viewPage }}</MkButton> <MkButton v-if="pageId" class="button" inline link :to="`/@${ author.username }/pages/${ currentName }`"><i class="fas fa-external-link-square-alt"></i> {{ $ts._pages.viewPage }}</MkButton>
<MkButton v-if="!readonly" inline primary class="button" @click="save"><i class="fas fa-save"></i> {{ $ts.save }}</MkButton> <MkButton v-if="!readonly" inline primary class="button" @click="save"><i class="fas fa-save"></i> {{ $ts.save }}</MkButton>
<MkButton v-if="pageId" inline class="button" @click="duplicate"><i class="fas fa-copy"></i> {{ $ts.duplicate }}</MkButton> <MkButton v-if="pageId" inline class="button" @click="duplicate"><i class="ti ti-copy"></i> {{ $ts.duplicate }}</MkButton>
<MkButton v-if="pageId && !readonly" inline class="button" danger @click="del"><i class="fas fa-trash-alt"></i> {{ $ts.delete }}</MkButton> <MkButton v-if="pageId && !readonly" inline class="button" danger @click="del"><i class="ti ti-trash"></i> {{ $ts.delete }}</MkButton>
</div> </div>
<div v-if="tab === 'settings'"> <div v-if="tab === 'settings'">
@ -35,10 +35,10 @@
<MkSwitch v-model="hideTitleWhenPinned" class="_formBlock">{{ $ts._pages.hideTitleWhenPinned }}</MkSwitch> <MkSwitch v-model="hideTitleWhenPinned" class="_formBlock">{{ $ts._pages.hideTitleWhenPinned }}</MkSwitch>
<div class="eyeCatch"> <div class="eyeCatch">
<MkButton v-if="eyeCatchingImageId == null && !readonly" @click="setEyeCatchingImage"><i class="fas fa-plus"></i> {{ $ts._pages.eyeCatchingImageSet }}</MkButton> <MkButton v-if="eyeCatchingImageId == null && !readonly" @click="setEyeCatchingImage"><i class="ti ti-plus"></i> {{ $ts._pages.eyeCatchingImageSet }}</MkButton>
<div v-else-if="eyeCatchingImage"> <div v-else-if="eyeCatchingImage">
<img :src="eyeCatchingImage.url" :alt="eyeCatchingImage.name" style="max-width: 100%;"/> <img :src="eyeCatchingImage.url" :alt="eyeCatchingImage.name" style="max-width: 100%;"/>
<MkButton v-if="!readonly" @click="removeEyeCatchingImage()"><i class="fas fa-trash-alt"></i> {{ $ts._pages.eyeCatchingImageRemove }}</MkButton> <MkButton v-if="!readonly" @click="removeEyeCatchingImage()"><i class="ti ti-trash"></i> {{ $ts._pages.eyeCatchingImageRemove }}</MkButton>
</div> </div>
</div> </div>
</div> </div>
@ -48,7 +48,7 @@
<div> <div>
<XBlocks v-model="content" class="content" :hpml="hpml"/> <XBlocks v-model="content" class="content" :hpml="hpml"/>
<MkButton v-if="!readonly" @click="add()"><i class="fas fa-plus"></i></MkButton> <MkButton v-if="!readonly" @click="add()"><i class="ti ti-plus"></i></MkButton>
</div> </div>
</div> </div>
@ -68,7 +68,7 @@
</template> </template>
</XDraggable> </XDraggable>
<MkButton v-if="!readonly" class="add" @click="addVariable()"><i class="fas fa-plus"></i></MkButton> <MkButton v-if="!readonly" class="add" @click="addVariable()"><i class="ti ti-plus"></i></MkButton>
</div> </div>
</div> </div>
@ -412,7 +412,7 @@ const headerActions = $computed(() => []);
const headerTabs = $computed(() => [{ const headerTabs = $computed(() => [{
key: 'settings', key: 'settings',
title: i18n.ts._pages.pageSetting, title: i18n.ts._pages.pageSetting,
icon: 'fas fa-cog', icon: 'ti ti-settings',
}, { }, {
key: 'contents', key: 'contents',
title: i18n.ts._pages.contents, title: i18n.ts._pages.contents,

View File

@ -22,8 +22,8 @@
<MkButton v-else v-tooltip="i18n.ts._pages.like" class="button" @click="like()"><i class="far fa-heart"></i><span v-if="page.likedCount > 0" class="count">{{ page.likedCount }}</span></MkButton> <MkButton v-else v-tooltip="i18n.ts._pages.like" class="button" @click="like()"><i class="far fa-heart"></i><span v-if="page.likedCount > 0" class="count">{{ page.likedCount }}</span></MkButton>
</div> </div>
<div class="other"> <div class="other">
<button v-tooltip="i18n.ts.shareWithNote" v-click-anime class="_button" @click="shareWithNote"><i class="fas fa-retweet fa-fw"></i></button> <button v-tooltip="i18n.ts.shareWithNote" v-click-anime class="_button" @click="shareWithNote"><i class="ti ti-repeat fa-fw"></i></button>
<button v-tooltip="i18n.ts.share" v-click-anime class="_button" @click="share"><i class="fas fa-share-alt fa-fw"></i></button> <button v-tooltip="i18n.ts.share" v-click-anime class="_button" @click="share"><i class="ti ti-share fa-fw"></i></button>
</div> </div>
</div> </div>
<div class="user"> <div class="user">

View File

@ -9,7 +9,7 @@
</div> </div>
<div v-else-if="tab === 'my'" class="rknalgpo my"> <div v-else-if="tab === 'my'" class="rknalgpo my">
<MkButton class="new" @click="create()"><i class="fas fa-plus"></i></MkButton> <MkButton class="new" @click="create()"><i class="ti ti-plus"></i></MkButton>
<MkPagination v-slot="{items}" :pagination="myPagesPagination"> <MkPagination v-slot="{items}" :pagination="myPagesPagination">
<MkPagePreview v-for="page in items" :key="page.id" class="ckltabjg" :page="page"/> <MkPagePreview v-for="page in items" :key="page.id" class="ckltabjg" :page="page"/>
</MkPagination> </MkPagination>
@ -55,7 +55,7 @@ function create() {
} }
const headerActions = $computed(() => [{ const headerActions = $computed(() => [{
icon: 'fas fa-plus', icon: 'ti ti-plus',
text: i18n.ts.create, text: i18n.ts.create,
handler: create, handler: create,
}]); }]);

View File

@ -88,7 +88,7 @@ const headerTabs = $computed(() => []);
definePageMetadata({ definePageMetadata({
title: i18n.ts.registry, title: i18n.ts.registry,
icon: 'fas fa-cogs', icon: 'ti ti-adjustments',
}); });
</script> </script>

View File

@ -115,7 +115,7 @@ const headerTabs = $computed(() => []);
definePageMetadata({ definePageMetadata({
title: i18n.ts.registry, title: i18n.ts.registry,
icon: 'fas fa-cogs', icon: 'ti ti-adjustments',
}); });
</script> </script>

View File

@ -66,7 +66,7 @@ const headerTabs = $computed(() => []);
definePageMetadata({ definePageMetadata({
title: i18n.ts.registry, title: i18n.ts.registry,
icon: 'fas fa-cogs', icon: 'ti ti-adjustments',
}); });
</script> </script>

View File

@ -33,6 +33,6 @@ const headerTabs = $computed(() => []);
definePageMetadata(computed(() => ({ definePageMetadata(computed(() => ({
title: i18n.t('searchWith', { q: props.query }), title: i18n.t('searchWith', { q: props.query }),
icon: 'fas fa-search', icon: 'ti ti-search',
}))); })));
</script> </script>

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="_formRoot"> <div class="_formRoot">
<FormSuspense :p="init"> <FormSuspense :p="init">
<FormButton primary @click="addAccount"><i class="fas fa-plus"></i> {{ i18n.ts.addAccount }}</FormButton> <FormButton primary @click="addAccount"><i class="ti ti-plus"></i> {{ i18n.ts.addAccount }}</FormButton>
<div v-for="account in accounts" :key="account.id" class="_panel _button lcjjdxlm" @click="menu(account, $event)"> <div v-for="account in accounts" :key="account.id" class="_panel _button lcjjdxlm" @click="menu(account, $event)">
<div class="avatar"> <div class="avatar">
@ -54,7 +54,7 @@ function menu(account, ev) {
action: () => switchAccount(account), action: () => switchAccount(account),
}, { }, {
text: i18n.ts.remove, text: i18n.ts.remove,
icon: 'fas fa-trash-alt', icon: 'ti ti-trash',
danger: true, danger: true,
action: () => removeAccount(account), action: () => removeAccount(account),
}], ev.currentTarget ?? ev.target); }], ev.currentTarget ?? ev.target);

View File

@ -22,7 +22,7 @@
<div><MkTime :time="token.lastUsedAt"/></div> <div><MkTime :time="token.lastUsedAt"/></div>
</div> </div>
<div class="actions"> <div class="actions">
<button class="_button" @click="revoke(token)"><i class="fas fa-trash-alt"></i></button> <button class="_button" @click="revoke(token)"><i class="ti ti-trash"></i></button>
</div> </div>
<details> <details>
<summary>{{ i18n.ts.details }}</summary> <summary>{{ i18n.ts.details }}</summary>

View File

@ -120,7 +120,7 @@ const headerTabs = $computed(() => []);
definePageMetadata({ definePageMetadata({
title: i18n.ts.drive, title: i18n.ts.drive,
icon: 'fas fa-cloud', icon: 'ti ti-cloud',
}); });
</script> </script>

View File

@ -5,7 +5,7 @@
<FormInput v-model="emailAddress" type="email" manual-save> <FormInput v-model="emailAddress" type="email" manual-save>
<template #prefix><i class="fas fa-envelope"></i></template> <template #prefix><i class="fas fa-envelope"></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="fas fa-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>
</FormInput> </FormInput>
</FormSection> </FormSection>

View File

@ -185,6 +185,6 @@ const headerTabs = $computed(() => []);
definePageMetadata({ definePageMetadata({
title: i18n.ts.general, title: i18n.ts.general,
icon: 'fas fa-cogs', icon: 'ti ti-adjustments',
}); });
</script> </script>

View File

@ -36,7 +36,7 @@ import * as os from '@/os';
const indexInfo = { const indexInfo = {
title: i18n.ts.settings, title: i18n.ts.settings,
icon: 'fas fa-cog', icon: 'ti ti-settings',
hideHeader: true, hideHeader: true,
}; };
const INFO = ref(indexInfo); const INFO = ref(indexInfo);
@ -73,12 +73,12 @@ const menuDef = computed(() => [{
to: '/settings/reaction', to: '/settings/reaction',
active: currentPage?.route.name === 'reaction', active: currentPage?.route.name === 'reaction',
}, { }, {
icon: 'fas fa-cloud', icon: 'ti ti-cloud',
text: i18n.ts.drive, text: i18n.ts.drive,
to: '/settings/drive', to: '/settings/drive',
active: currentPage?.route.name === 'drive', active: currentPage?.route.name === 'drive',
}, { }, {
icon: 'fas fa-bell', icon: 'ti ti-bell',
text: i18n.ts.notifications, text: i18n.ts.notifications,
to: '/settings/notifications', to: '/settings/notifications',
active: currentPage?.route.name === 'notifications', active: currentPage?.route.name === 'notifications',
@ -88,7 +88,7 @@ const menuDef = computed(() => [{
to: '/settings/email', to: '/settings/email',
active: currentPage?.route.name === 'email', active: currentPage?.route.name === 'email',
}, { }, {
icon: 'fas fa-share-alt', icon: 'ti ti-share',
text: i18n.ts.integration, text: i18n.ts.integration,
to: '/settings/integration', to: '/settings/integration',
active: currentPage?.route.name === 'integration', active: currentPage?.route.name === 'integration',
@ -101,7 +101,7 @@ const menuDef = computed(() => [{
}, { }, {
title: i18n.ts.clientSettings, title: i18n.ts.clientSettings,
items: [{ items: [{
icon: 'fas fa-cogs', icon: 'ti ti-adjustments',
text: i18n.ts.general, text: i18n.ts.general,
to: '/settings/general', to: '/settings/general',
active: currentPage?.route.name === 'general', active: currentPage?.route.name === 'general',
@ -164,7 +164,7 @@ const menuDef = computed(() => [{
to: '/settings/webhook', to: '/settings/webhook',
active: currentPage?.route.name === 'webhook', active: currentPage?.route.name === 'webhook',
}, { }, {
icon: 'fas fa-ellipsis-h', icon: 'ti ti-dots',
text: i18n.ts.other, text: i18n.ts.other,
to: '/settings/other', to: '/settings/other',
active: currentPage?.route.name === 'other', active: currentPage?.route.name === 'other',

View File

@ -94,6 +94,6 @@ const headerTabs = $computed(() => []);
definePageMetadata({ definePageMetadata({
title: i18n.ts.integration, title: i18n.ts.integration,
icon: 'fas fa-share-alt', icon: 'ti ti-share',
}); });
</script> </script>

View File

@ -1,6 +1,6 @@
<template> <template>
<div class="_formRoot"> <div class="_formRoot">
<FormLink class="_formBlock" @click="configure"><template #icon><i class="fas fa-cog"></i></template>{{ i18n.ts.notificationSetting }}</FormLink> <FormLink class="_formBlock" @click="configure"><template #icon><i class="ti ti-settings"></i></template>{{ i18n.ts.notificationSetting }}</FormLink>
<FormSection> <FormSection>
<FormLink class="_formBlock" @click="readAllNotifications">{{ i18n.ts.markAsReadAllNotifications }}</FormLink> <FormLink class="_formBlock" @click="readAllNotifications">{{ i18n.ts.markAsReadAllNotifications }}</FormLink>
<FormLink class="_formBlock" @click="readAllUnreadNotes">{{ i18n.ts.markAsReadAllUnreadNotes }}</FormLink> <FormLink class="_formBlock" @click="readAllUnreadNotes">{{ i18n.ts.markAsReadAllUnreadNotes }}</FormLink>
@ -85,6 +85,6 @@ const headerTabs = $computed(() => []);
definePageMetadata({ definePageMetadata({
title: i18n.ts.notifications, title: i18n.ts.notifications,
icon: 'fas fa-bell', icon: 'ti ti-bell',
}); });
</script> </script>

View File

@ -10,7 +10,7 @@
<FormLink to="/settings/account-info" class="_formBlock">{{ i18n.ts.accountInfo }}</FormLink> <FormLink to="/settings/account-info" class="_formBlock">{{ i18n.ts.accountInfo }}</FormLink>
<FormLink to="/registry" class="_formBlock"><template #icon><i class="fas fa-cogs"></i></template>{{ i18n.ts.registry }}</FormLink> <FormLink to="/registry" class="_formBlock"><template #icon><i class="ti ti-adjustments"></i></template>{{ i18n.ts.registry }}</FormLink>
<FormLink to="/settings/delete-account" class="_formBlock"><template #icon><i class="fas fa-exclamation-triangle"></i></template>{{ i18n.ts.closeAccount }}</FormLink> <FormLink to="/settings/delete-account" class="_formBlock"><template #icon><i class="fas fa-exclamation-triangle"></i></template>{{ i18n.ts.closeAccount }}</FormLink>
</div> </div>
@ -42,6 +42,6 @@ const headerTabs = $computed(() => []);
definePageMetadata({ definePageMetadata({
title: i18n.ts.other, title: i18n.ts.other,
icon: 'fas fa-ellipsis-h', icon: 'ti ti-dots',
}); });
</script> </script>

View File

@ -7,7 +7,7 @@
</FormTextarea> </FormTextarea>
<div class="_formBlock"> <div class="_formBlock">
<FormButton :disabled="code == null" primary inline @click="install"><i class="fas fa-check"></i> {{ i18n.ts.install }}</FormButton> <FormButton :disabled="code == null" primary inline @click="install"><i class="ti ti-check"></i> {{ i18n.ts.install }}</FormButton>
</div> </div>
</div> </div>
</template> </template>

View File

@ -23,8 +23,8 @@
</MkKeyValue> </MkKeyValue>
<div style="display: flex; gap: var(--margin); flex-wrap: wrap;"> <div style="display: flex; gap: var(--margin); flex-wrap: wrap;">
<MkButton v-if="plugin.config" inline @click="config(plugin)"><i class="fas fa-cog"></i> {{ i18n.ts.settings }}</MkButton> <MkButton v-if="plugin.config" inline @click="config(plugin)"><i class="ti ti-settings"></i> {{ i18n.ts.settings }}</MkButton>
<MkButton inline danger @click="uninstall(plugin)"><i class="fas fa-trash-alt"></i> {{ i18n.ts.uninstall }}</MkButton> <MkButton inline danger @click="uninstall(plugin)"><i class="ti ti-trash"></i> {{ i18n.ts.uninstall }}</MkButton>
</div> </div>
</div> </div>
</FormSection> </FormSection>

View File

@ -46,8 +46,8 @@
<template #label>{{ i18n.ts._profile.metadataContent }} #{{ i + 1 }}</template> <template #label>{{ i18n.ts._profile.metadataContent }} #{{ i + 1 }}</template>
</FormInput> </FormInput>
</FormSplit> </FormSplit>
<MkButton :disabled="fields.length >= 16" inline style="margin-right: 8px;" @click="addField"><i class="fas fa-plus"></i> {{ i18n.ts.add }}</MkButton> <MkButton :disabled="fields.length >= 16" inline style="margin-right: 8px;" @click="addField"><i class="ti ti-plus"></i> {{ i18n.ts.add }}</MkButton>
<MkButton inline primary @click="saveFields"><i class="fas fa-check"></i> {{ i18n.ts.save }}</MkButton> <MkButton inline primary @click="saveFields"><i class="ti ti-check"></i> {{ i18n.ts.save }}</MkButton>
</div> </div>
</FormFolder> </FormFolder>
<template #caption>{{ i18n.ts._profile.metadataDescription }}</template> <template #caption>{{ i18n.ts._profile.metadataDescription }}</template>

View File

@ -10,7 +10,7 @@
</button> </button>
</template> </template>
<template #footer> <template #footer>
<button class="_button add" @click="chooseEmoji"><i class="fas fa-plus"></i></button> <button class="_button add" @click="chooseEmoji"><i class="ti ti-plus"></i></button>
</template> </template>
</XDraggable> </XDraggable>
</div> </div>

Some files were not shown because too many files have changed in this diff Show More