work in progress icons

This commit is contained in:
Insert5StarName 2023-09-30 21:53:52 +02:00
parent f2e299a7a9
commit 7b179d3a92
251 changed files with 1062 additions and 1062 deletions

View file

@ -25,7 +25,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<i class="ti ti-menu-2"></i>
</button>
<button v-if="draggable" class="_button" :class="$style.remove" @click="removeSelf">
<i class="ti ti-x"></i>
<i class="ph-x ph-bold ph-lg"></i>
</button>
</div>
@ -38,7 +38,7 @@ SPDX-License-Identifier: AGPL-3.0-only
</div>
</template>
</Sortable>
<MkButton rounded style="margin: 0 auto;" @click="addValue"><i class="ti ti-plus"></i> {{ i18n.ts.add }}</MkButton>
<MkButton rounded style="margin: 0 auto;" @click="addValue"><i class="ph-plus ph-bold ph-lg"></i> {{ i18n.ts.add }}</MkButton>
</div>
<div v-else-if="type === 'not'" :class="$style.item">

View file

@ -55,12 +55,12 @@ SPDX-License-Identifier: AGPL-3.0-only
<template #label>{{ i18n.ts.memo }}</template>
</MkTextarea>
<div class="buttons">
<MkButton class="button" inline primary style="margin-right: 12px;" @click="save(ad)"><i class="ti ti-device-floppy"></i> {{ i18n.ts.save }}</MkButton>
<MkButton class="button" inline danger @click="remove(ad)"><i class="ti ti-trash"></i> {{ i18n.ts.remove }}</MkButton>
<MkButton class="button" inline primary style="margin-right: 12px;" @click="save(ad)"><i class="ph-floppy-disk ph-bold pg-lg"></i> {{ i18n.ts.save }}</MkButton>
<MkButton class="button" inline danger @click="remove(ad)"><i class="ph-trash ph-bold ph-lg"></i> {{ i18n.ts.remove }}</MkButton>
</div>
</div>
<MkButton class="button" @click="more()">
<i class="ti ti-reload"></i>{{ i18n.ts.more }}
<i class="ph-arrow-clockwise ph-bold ph-lg"></i>{{ i18n.ts.more }}
</MkButton>
</div>
</MkSpacer>
@ -207,7 +207,7 @@ refresh();
const headerActions = $computed(() => [{
asFullButton: true,
icon: 'ti ti-plus',
icon: 'ph-plus ph-bold ph-lg',
text: i18n.ts.add,
handler: add,
}]);

View file

@ -13,10 +13,10 @@ SPDX-License-Identifier: AGPL-3.0-only
<MkFolder v-for="announcement in announcements" :key="announcement.id ?? announcement._id" :defaultOpen="announcement.id == null">
<template #label>{{ announcement.title }}</template>
<template #icon>
<i v-if="announcement.icon === 'info'" class="ti ti-info-circle"></i>
<i v-else-if="announcement.icon === 'warning'" class="ti ti-alert-triangle" style="color: var(--warn);"></i>
<i v-else-if="announcement.icon === 'error'" class="ti ti-circle-x" style="color: var(--error);"></i>
<i v-else-if="announcement.icon === 'success'" class="ti ti-check" style="color: var(--success);"></i>
<i v-if="announcement.icon === 'info'" class="ph-info ph-bold ph-lg"></i>
<i v-else-if="announcement.icon === 'warning'" class="ph-warning ph-bold ph-lg" style="color: var(--warn);"></i>
<i v-else-if="announcement.icon === 'error'" class="ph-x-circle ph-bold ph-lg" style="color: var(--error);"></i>
<i v-else-if="announcement.icon === 'success'" class="ph-check ph-bold ph-lg" style="color: var(--success);"></i>
</template>
<template #caption>{{ announcement.text }}</template>
@ -32,10 +32,10 @@ SPDX-License-Identifier: AGPL-3.0-only
</MkInput>
<MkRadios v-model="announcement.icon">
<template #label>{{ i18n.ts.icon }}</template>
<option value="info"><i class="ti ti-info-circle"></i></option>
<option value="warning"><i class="ti ti-alert-triangle" style="color: var(--warn);"></i></option>
<option value="error"><i class="ti ti-circle-x" style="color: var(--error);"></i></option>
<option value="success"><i class="ti ti-check" style="color: var(--success);"></i></option>
<option value="info"><i class="ph-info ph-bold ph-lg"></i></option>
<option value="warning"><i class="ph-warning ph-bold ph-lg" style="color: var(--warn);"></i></option>
<option value="error"><i class="ph-x-circle ph-bold ph-lg" style="color: var(--error);"></i></option>
<option value="success"><i class="ph-check ph-bold ph-lg" style="color: var(--success);"></i></option>
</MkRadios>
<MkRadios v-model="announcement.display">
<template #label>{{ i18n.ts.display }}</template>
@ -51,14 +51,14 @@ SPDX-License-Identifier: AGPL-3.0-only
</MkSwitch>
<p v-if="announcement.reads">{{ i18n.t('nUsersRead', { n: announcement.reads }) }}</p>
<div class="buttons _buttons">
<MkButton class="button" inline primary @click="save(announcement)"><i class="ti ti-device-floppy"></i> {{ i18n.ts.save }}</MkButton>
<MkButton v-if="announcement.id != null" class="button" inline @click="archive(announcement)"><i class="ti ti-check"></i> {{ i18n.ts._announcement.end }} ({{ i18n.ts.archive }})</MkButton>
<MkButton v-if="announcement.id != null" class="button" inline danger @click="del(announcement)"><i class="ti ti-trash"></i> {{ i18n.ts.delete }}</MkButton>
<MkButton class="button" inline primary @click="save(announcement)"><i class="ph-floppy-disk ph-bold pg-lg"></i> {{ i18n.ts.save }}</MkButton>
<MkButton v-if="announcement.id != null" class="button" inline @click="archive(announcement)"><i class="ph-check ph-bold ph-lg"></i> {{ i18n.ts._announcement.end }} ({{ i18n.ts.archive }})</MkButton>
<MkButton v-if="announcement.id != null" class="button" inline danger @click="del(announcement)"><i class="ph-trash ph-bold ph-lg"></i> {{ i18n.ts.delete }}</MkButton>
</div>
</div>
</MkFolder>
<MkButton class="button" @click="more()">
<i class="ti ti-reload"></i>{{ i18n.ts.more }}
<i class="ph-arrow-clockwise ph-bold ph-lg"></i>{{ i18n.ts.more }}
</MkButton>
</div>
</MkSpacer>
@ -143,7 +143,7 @@ refresh();
const headerActions = $computed(() => [{
asFullButton: true,
icon: 'ti ti-plus',
icon: 'ph-plus ph-bold ph-lg',
text: i18n.ts.add,
handler: add,
}]);
@ -152,6 +152,6 @@ const headerTabs = $computed(() => []);
definePageMetadata({
title: i18n.ts.announcements,
icon: 'ti ti-speakerphone',
icon: 'ph-megaphone ph-bold ph-lg',
});
</script>

View file

@ -16,11 +16,11 @@ SPDX-License-Identifier: AGPL-3.0-only
<template v-if="provider === 'hcaptcha'">
<MkInput v-model="hcaptchaSiteKey">
<template #prefix><i class="ti ti-key"></i></template>
<template #prefix><i class="ph-key ph-bold ph-lg"></i></template>
<template #label>{{ i18n.ts.hcaptchaSiteKey }}</template>
</MkInput>
<MkInput v-model="hcaptchaSecretKey">
<template #prefix><i class="ti ti-key"></i></template>
<template #prefix><i class="ph-key ph-bold ph-lg"></i></template>
<template #label>{{ i18n.ts.hcaptchaSecretKey }}</template>
</MkInput>
<FormSlot>
@ -30,11 +30,11 @@ SPDX-License-Identifier: AGPL-3.0-only
</template>
<template v-else-if="provider === 'recaptcha'">
<MkInput v-model="recaptchaSiteKey">
<template #prefix><i class="ti ti-key"></i></template>
<template #prefix><i class="ph-key ph-bold ph-lg"></i></template>
<template #label>{{ i18n.ts.recaptchaSiteKey }}</template>
</MkInput>
<MkInput v-model="recaptchaSecretKey">
<template #prefix><i class="ti ti-key"></i></template>
<template #prefix><i class="ph-key ph-bold ph-lg"></i></template>
<template #label>{{ i18n.ts.recaptchaSecretKey }}</template>
</MkInput>
<FormSlot v-if="recaptchaSiteKey">
@ -44,11 +44,11 @@ SPDX-License-Identifier: AGPL-3.0-only
</template>
<template v-else-if="provider === 'turnstile'">
<MkInput v-model="turnstileSiteKey">
<template #prefix><i class="ti ti-key"></i></template>
<template #prefix><i class="ph-key ph-bold ph-lg"></i></template>
<template #label>{{ i18n.ts.turnstileSiteKey }}</template>
</MkInput>
<MkInput v-model="turnstileSecretKey">
<template #prefix><i class="ti ti-key"></i></template>
<template #prefix><i class="ph-key ph-bold ph-lg"></i></template>
<template #label>{{ i18n.ts.turnstileSecretKey }}</template>
</MkInput>
<FormSlot>
@ -57,7 +57,7 @@ SPDX-License-Identifier: AGPL-3.0-only
</FormSlot>
</template>
<MkButton primary @click="save"><i class="ti ti-device-floppy"></i> {{ i18n.ts.save }}</MkButton>
<MkButton primary @click="save"><i class="ph-floppy-disk ph-bold pg-lg"></i> {{ i18n.ts.save }}</MkButton>
</div>
</FormSuspense>
</div>

View file

@ -11,12 +11,12 @@ SPDX-License-Identifier: AGPL-3.0-only
<FormSuspense :p="init">
<div class="_gaps_m">
<MkInput v-model="iconUrl">
<template #prefix><i class="ti ti-link"></i></template>
<template #prefix><i class="ph-link ph-bold ph-lg"></i></template>
<template #label>{{ i18n.ts._serverSettings.iconUrl }}</template>
</MkInput>
<MkInput v-model="app192IconUrl">
<template #prefix><i class="ti ti-link"></i></template>
<template #prefix><i class="ph-link ph-bold ph-lg"></i></template>
<template #label>{{ i18n.ts._serverSettings.iconUrl }} (App/192px)</template>
<template #caption>
<div>{{ i18n.t('_serverSettings.appIconDescription', { host: instance.name ?? host }) }}</div>
@ -27,7 +27,7 @@ SPDX-License-Identifier: AGPL-3.0-only
</MkInput>
<MkInput v-model="app512IconUrl">
<template #prefix><i class="ti ti-link"></i></template>
<template #prefix><i class="ph-link ph-bold ph-lg"></i></template>
<template #label>{{ i18n.ts._serverSettings.iconUrl }} (App/512px)</template>
<template #caption>
<div>{{ i18n.t('_serverSettings.appIconDescription', { host: instance.name ?? host }) }}</div>
@ -38,27 +38,27 @@ SPDX-License-Identifier: AGPL-3.0-only
</MkInput>
<MkInput v-model="bannerUrl">
<template #prefix><i class="ti ti-link"></i></template>
<template #prefix><i class="ph-link ph-bold ph-lg"></i></template>
<template #label>{{ i18n.ts.bannerUrl }}</template>
</MkInput>
<MkInput v-model="backgroundImageUrl">
<template #prefix><i class="ti ti-link"></i></template>
<template #prefix><i class="ph-link ph-bold ph-lg"></i></template>
<template #label>{{ i18n.ts.backgroundImageUrl }}</template>
</MkInput>
<MkInput v-model="notFoundImageUrl">
<template #prefix><i class="ti ti-link"></i></template>
<template #prefix><i class="ph-link ph-bold ph-lg"></i></template>
<template #label>{{ i18n.ts.notFoundDescription }}</template>
</MkInput>
<MkInput v-model="infoImageUrl">
<template #prefix><i class="ti ti-link"></i></template>
<template #prefix><i class="ph-link ph-bold ph-lg"></i></template>
<template #label>{{ i18n.ts.nothing }}</template>
</MkInput>
<MkInput v-model="serverErrorImageUrl">
<template #prefix><i class="ti ti-link"></i></template>
<template #prefix><i class="ph-link ph-bold ph-lg"></i></template>
<template #label>{{ i18n.ts.somethingHappened }}</template>
</MkInput>
@ -85,7 +85,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<template #footer>
<div :class="$style.footer">
<MkSpacer :contentMax="700" :marginMin="16" :marginMax="16">
<MkButton primary rounded @click="save"><i class="ti ti-check"></i> {{ i18n.ts.save }}</MkButton>
<MkButton primary rounded @click="save"><i class="ph-check ph-bold ph-lg"></i> {{ i18n.ts.save }}</MkButton>
</MkSpacer>
</div>
</template>

View file

@ -35,6 +35,6 @@ const headerTabs = $computed(() => []);
definePageMetadata({
title: i18n.ts.database,
icon: 'ti ti-database',
icon: 'ph-database ph-bold pg-lg',
});
</script>

View file

@ -54,8 +54,8 @@ SPDX-License-Identifier: AGPL-3.0-only
<div :class="$style.footer">
<MkSpacer :contentMax="700" :marginMin="16" :marginMax="16">
<div class="_buttons">
<MkButton primary rounded @click="save"><i class="ti ti-check"></i> {{ i18n.ts.save }}</MkButton>
<MkButton rounded @click="testEmail"><i class="ti ti-send"></i> {{ i18n.ts.testEmail }}</MkButton>
<MkButton primary rounded @click="save"><i class="ph-check ph-bold ph-lg"></i> {{ i18n.ts.save }}</MkButton>
<MkButton rounded @click="testEmail"><i class="ph-paper-plane-tilt ph-bold ph-lg"></i> {{ i18n.ts.testEmail }}</MkButton>
</div>
</MkSpacer>
</div>
@ -131,7 +131,7 @@ const headerTabs = $computed(() => []);
definePageMetadata({
title: i18n.ts.emailServer,
icon: 'ti ti-mail',
icon: 'ph-envelope ph-bold ph-lg',
});
</script>

View file

@ -11,7 +11,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<div class="_gaps">
<div>
<MkInput v-model="host" :debounce="true" class="">
<template #prefix><i class="ti ti-search"></i></template>
<template #prefix><i class="ph-magnifying-glass ph-bold ph-lg"></i></template>
<template #label>{{ i18n.ts.host }}</template>
</MkInput>
<FormSplit style="margin-top: var(--margin);">
@ -101,7 +101,7 @@ const headerTabs = $computed(() => []);
definePageMetadata(computed(() => ({
title: i18n.ts.federation,
icon: 'ti ti-whirl',
icon: 'ph-globe-hemisphere-west ph-bold ph-lg',
})));
</script>

View file

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

View file

@ -44,7 +44,7 @@ const router = useRouter();
const indexInfo = {
title: i18n.ts.controlPanel,
icon: 'ti ti-settings',
icon: 'ph-gear ph-bold pg-lg',
hideHeader: true,
};
@ -79,59 +79,59 @@ const menuDef = $computed(() => [{
title: i18n.ts.quickAction,
items: [{
type: 'button',
icon: 'ti ti-search',
icon: 'ph-magnifying-glass ph-bold ph-lg',
text: i18n.ts.lookup,
action: lookup,
}, ...(instance.disableRegistration ? [{
type: 'button',
icon: 'ti ti-user-plus',
icon: 'ph-user-plus ph-bold ph-lg',
text: i18n.ts.createInviteCode,
action: invite,
}] : [])],
}, {
title: i18n.ts.administration,
items: [{
icon: 'ti ti-dashboard',
icon: 'ph-gauge ph-bold pg-lg',
text: i18n.ts.dashboard,
to: '/admin/overview',
active: currentPage?.route.name === 'overview',
}, {
icon: 'ti ti-users',
icon: 'ph-users ph-bold pg-lg',
text: i18n.ts.users,
to: '/admin/users',
active: currentPage?.route.name === 'users',
}, {
icon: 'ti ti-user-plus',
icon: 'ph-user-plus ph-bold ph-lg',
text: i18n.ts.invite,
to: '/admin/invites',
active: currentPage?.route.name === 'invites',
}, {
icon: 'ti ti-badges',
icon: 'ph-seal-check ph-bold pg-lg',
text: i18n.ts.roles,
to: '/admin/roles',
active: currentPage?.route.name === 'roles',
}, {
icon: 'ti ti-icons',
icon: 'ph-smiley ph-bold pg-lg',
text: i18n.ts.customEmojis,
to: '/admin/emojis',
active: currentPage?.route.name === 'emojis',
}, {
icon: 'ti ti-whirl',
icon: 'ph-globe-hemisphere-west ph-bold ph-lg',
text: i18n.ts.federation,
to: '/admin/federation',
active: currentPage?.route.name === 'federation',
}, {
icon: 'ti ti-clock-play',
icon: 'ph-clock ph-bold ph-lg-play',
text: i18n.ts.jobQueue,
to: '/admin/queue',
active: currentPage?.route.name === 'queue',
}, {
icon: 'ti ti-cloud',
icon: 'ph-cloud ph-bold ph-lg',
text: i18n.ts.files,
to: '/admin/files',
active: currentPage?.route.name === 'files',
}, {
icon: 'ti ti-speakerphone',
icon: 'ph-megaphone ph-bold ph-lg',
text: i18n.ts.announcements,
to: '/admin/announcements',
active: currentPage?.route.name === 'announcements',
@ -146,7 +146,7 @@ const menuDef = $computed(() => [{
to: '/admin/abuses',
active: currentPage?.route.name === 'abuses',
}, {
icon: 'ti ti-list-search',
icon: 'ph-list ph-bold pg-lg-search',
text: i18n.ts.moderationLogs,
to: '/admin/modlog',
active: currentPage?.route.name === 'modlog',
@ -154,7 +154,7 @@ const menuDef = $computed(() => [{
}, {
title: i18n.ts.settings,
items: [{
icon: 'ti ti-settings',
icon: 'ph-gear ph-bold pg-lg',
text: i18n.ts.general,
to: '/admin/settings',
active: currentPage?.route.name === 'settings',
@ -164,32 +164,32 @@ const menuDef = $computed(() => [{
to: '/admin/branding',
active: currentPage?.route.name === 'branding',
}, {
icon: 'ti ti-shield',
icon: 'ph-shield ph-bold ph-lg',
text: i18n.ts.moderation,
to: '/admin/moderation',
active: currentPage?.route.name === 'moderation',
}, {
icon: 'ti ti-mail',
icon: 'ph-envelope ph-bold ph-lg',
text: i18n.ts.emailServer,
to: '/admin/email-settings',
active: currentPage?.route.name === 'email-settings',
}, {
icon: 'ti ti-cloud',
icon: 'ph-cloud ph-bold ph-lg',
text: i18n.ts.objectStorage,
to: '/admin/object-storage',
active: currentPage?.route.name === 'object-storage',
}, {
icon: 'ti ti-lock',
icon: 'ph-lock ph-bold ph-lg',
text: i18n.ts.security,
to: '/admin/security',
active: currentPage?.route.name === 'security',
}, {
icon: 'ti ti-planet',
icon: 'ph-planet ph-bold pg-lg',
text: i18n.ts.relays,
to: '/admin/relays',
active: currentPage?.route.name === 'relays',
}, {
icon: 'ti ti-ban',
icon: 'ph-prohibit ph-bold ph-lg',
text: i18n.ts.instanceBlocking,
to: '/admin/instance-block',
active: currentPage?.route.name === 'instance-block',
@ -199,7 +199,7 @@ const menuDef = $computed(() => [{
to: '/admin/proxy-account',
active: currentPage?.route.name === 'proxy-account',
}, {
icon: 'ti ti-adjustments',
icon: 'ph-faders ph-bold ph-lg',
text: i18n.ts.other,
to: '/admin/other-settings',
active: currentPage?.route.name === 'other-settings',
@ -207,7 +207,7 @@ const menuDef = $computed(() => [{
}, {
title: i18n.ts.info,
items: [{
icon: 'ti ti-database',
icon: 'ph-database ph-bold pg-lg',
text: i18n.ts.database,
to: '/admin/database',
active: currentPage?.route.name === 'database',
@ -271,25 +271,25 @@ const invite = () => {
const lookup = (ev) => {
os.popupMenu([{
text: i18n.ts.user,
icon: 'ti ti-user',
icon: 'ph-user ph-bold ph-lg',
action: () => {
lookupUser();
},
}, {
text: i18n.ts.note,
icon: 'ti ti-pencil',
icon: 'ph-pencil ph-bold ph-lg',
action: () => {
alert('TODO');
},
}, {
text: i18n.ts.file,
icon: 'ti ti-cloud',
icon: 'ph-cloud ph-bold ph-lg',
action: () => {
alert('TODO');
},
}, {
text: i18n.ts.instance,
icon: 'ti ti-planet',
icon: 'ph-planet ph-bold pg-lg',
action: () => {
alert('TODO');
},

View file

@ -13,7 +13,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<template #caption>{{ i18n.ts.blockedInstancesDescription }}</template>
</MkTextarea>
<MkButton primary @click="save"><i class="ti ti-device-floppy"></i> {{ i18n.ts.save }}</MkButton>
<MkButton primary @click="save"><i class="ph-floppy-disk ph-bold pg-lg"></i> {{ i18n.ts.save }}</MkButton>
</FormSuspense>
</MkSpacer>
</MkStickyContainer>
@ -51,6 +51,6 @@ const headerTabs = $computed(() => []);
definePageMetadata({
title: i18n.ts.instanceBlocking,
icon: 'ti ti-ban',
icon: 'ph-prohibit ph-bold ph-lg',
});
</script>

View file

@ -9,7 +9,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<MkSpacer :contentMax="800">
<div class="_gaps_m">
<MkFolder :expanded="false">
<template #icon><i class="ti ti-plus"></i></template>
<template #icon><i class="ph-plus ph-bold ph-lg"></i></template>
<template #label>{{ i18n.ts.createInviteCode }}</template>
<div class="_gaps_m">
@ -114,7 +114,7 @@ const headerTabs = $computed(() => []);
definePageMetadata({
title: i18n.ts.invite,
icon: 'ti ti-user-plus',
icon: 'ph-user-plus ph-bold ph-lg',
});
</script>

View file

@ -21,7 +21,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<FormLink to="/admin/server-rules">{{ i18n.ts.serverRules }}</FormLink>
<MkInput v-model="tosUrl">
<template #prefix><i class="ti ti-link"></i></template>
<template #prefix><i class="ph-link ph-bold ph-lg"></i></template>
<template #label>{{ i18n.ts.tosUrl }}</template>
</MkInput>
@ -40,7 +40,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<template #footer>
<div :class="$style.footer">
<MkSpacer :contentMax="700" :marginMin="16" :marginMax="16">
<MkButton primary rounded @click="save"><i class="ti ti-check"></i> {{ i18n.ts.save }}</MkButton>
<MkButton primary rounded @click="save"><i class="ph-check ph-bold ph-lg"></i> {{ i18n.ts.save }}</MkButton>
</MkSpacer>
</div>
</template>
@ -95,7 +95,7 @@ const headerTabs = $computed(() => []);
definePageMetadata({
title: i18n.ts.moderation,
icon: 'ti ti-shield',
icon: 'ph-shield ph-bold ph-lg',
});
</script>

View file

@ -62,6 +62,6 @@ const headerTabs = $computed(() => []);
definePageMetadata({
title: i18n.ts.moderationLogs,
icon: 'ti ti-list-search',
icon: 'ph-list ph-bold pg-lg-search',
});
</script>

View file

@ -40,12 +40,12 @@ SPDX-License-Identifier: AGPL-3.0-only
<FormSplit :minWidth="280">
<MkInput v-model="objectStorageAccessKey">
<template #prefix><i class="ti ti-key"></i></template>
<template #prefix><i class="ph-key ph-bold ph-lg"></i></template>
<template #label>Access key</template>
</MkInput>
<MkInput v-model="objectStorageSecretKey" type="password">
<template #prefix><i class="ti ti-key"></i></template>
<template #prefix><i class="ph-key ph-bold ph-lg"></i></template>
<template #label>Secret key</template>
</MkInput>
</FormSplit>
@ -75,7 +75,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<template #footer>
<div :class="$style.footer">
<MkSpacer :contentMax="700" :marginMin="16" :marginMax="16">
<MkButton primary rounded @click="save"><i class="ti ti-check"></i> {{ i18n.ts.save }}</MkButton>
<MkButton primary rounded @click="save"><i class="ph-check ph-bold ph-lg"></i> {{ i18n.ts.save }}</MkButton>
</MkSpacer>
</div>
</template>
@ -150,7 +150,7 @@ const headerTabs = $computed(() => []);
definePageMetadata({
title: i18n.ts.objectStorage,
icon: 'ti ti-cloud',
icon: 'ph-cloud ph-bold ph-lg',
});
</script>

View file

@ -88,7 +88,7 @@ function save() {
const headerActions = $computed(() => [{
asFullButton: true,
icon: 'ti ti-check',
icon: 'ph-check ph-bold ph-lg',
text: i18n.ts.save,
handler: save,
}]);
@ -97,6 +97,6 @@ const headerTabs = $computed(() => []);
definePageMetadata({
title: i18n.ts.other,
icon: 'ti ti-adjustments',
icon: 'ph-faders ph-bold ph-lg',
});
</script>

View file

@ -21,7 +21,7 @@ SPDX-License-Identifier: AGPL-3.0-only
</div>
<div v-if="!fetching" class="items">
<div class="item _panel sub">
<div class="icon"><i class="ti ti-world-download"></i></div>
<div class="icon"><i class="ph-globe-hemisphere-west ph-bold ph-lg-download"></i></div>
<div class="body">
<div class="value">
{{ number(federationSubActive) }}
@ -31,7 +31,7 @@ SPDX-License-Identifier: AGPL-3.0-only
</div>
</div>
<div class="item _panel pub">
<div class="icon"><i class="ti ti-world-upload"></i></div>
<div class="icon"><i class="ph-globe-hemisphere-west ph-bold ph-lg-upload"></i></div>
<div class="body">
<div class="value">
{{ number(federationPubActive) }}

View file

@ -9,7 +9,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<MkLoading v-if="fetching"/>
<div v-else :class="$style.root">
<div class="item _panel users">
<div class="icon"><i class="ti ti-users"></i></div>
<div class="icon"><i class="ph-users ph-bold pg-lg"></i></div>
<div class="body">
<div class="value">
<MkNumber :value="stats.originalUsersCount" style="margin-right: 0.5em;"/>
@ -19,7 +19,7 @@ SPDX-License-Identifier: AGPL-3.0-only
</div>
</div>
<div class="item _panel notes">
<div class="icon"><i class="ti ti-pencil"></i></div>
<div class="icon"><i class="ph-pencil ph-bold ph-lg"></i></div>
<div class="body">
<div class="value">
<MkNumber :value="stats.originalNotesCount" style="margin-right: 0.5em;"/>
@ -29,7 +29,7 @@ SPDX-License-Identifier: AGPL-3.0-only
</div>
</div>
<div class="item _panel instances">
<div class="icon"><i class="ti ti-planet"></i></div>
<div class="icon"><i class="ph-planet ph-bold pg-lg"></i></div>
<div class="body">
<div class="value">
<MkNumber :value="stats.instances" style="margin-right: 0.5em;"/>
@ -38,7 +38,7 @@ SPDX-License-Identifier: AGPL-3.0-only
</div>
</div>
<div class="item _panel emojis">
<div class="icon"><i class="ti ti-icons"></i></div>
<div class="icon"><i class="ph-smiley ph-bold pg-lg"></i></div>
<div class="body">
<div class="value">
<MkNumber :value="customEmojis.length" style="margin-right: 0.5em;"/>

View file

@ -177,7 +177,7 @@ const headerTabs = $computed(() => []);
definePageMetadata({
title: i18n.ts.dashboard,
icon: 'ti ti-dashboard',
icon: 'ph-gauge ph-bold pg-lg',
});
</script>

View file

@ -30,7 +30,7 @@ SPDX-License-Identifier: AGPL-3.0-only
</div>
</div>
<MkFolder :defaultOpen="true" :max-height="250">
<template #icon><i class="ti ti-alert-triangle"></i></template>
<template #icon><i class="ph-warning ph-bold ph-lg"></i></template>
<template #label>Errored instances</template>
<template #suffix>({{ number(jobs.reduce((a, b) => a + b[1], 0)) }} jobs)</template>

View file

@ -10,7 +10,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<XQueue v-if="tab === 'deliver'" domain="deliver"/>
<XQueue v-else-if="tab === 'inbox'" domain="inbox"/>
<br>
<MkButton @click="promoteAllQueues"><i class="ti ti-reload"></i> {{ i18n.ts.retryAllQueuesNow }}</MkButton>
<MkButton @click="promoteAllQueues"><i class="ph-arrow-clockwise ph-bold ph-lg"></i> {{ i18n.ts.retryAllQueuesNow }}</MkButton>
</MkSpacer>
</MkStickyContainer>
</template>
@ -52,7 +52,7 @@ function promoteAllQueues() {
const headerActions = $computed(() => [{
asFullButton: true,
icon: 'ti ti-external-link',
icon: 'ph-arrow-square-out ph-bold ph-lg',
text: i18n.ts.dashboard,
handler: () => {
window.open(config.url + '/queue', '_blank');
@ -69,6 +69,6 @@ const headerTabs = $computed(() => [{
definePageMetadata({
title: i18n.ts.jobQueue,
icon: 'ti ti-clock-play',
icon: 'ph-clock ph-bold ph-lg-play',
});
</script>

View file

@ -11,12 +11,12 @@ SPDX-License-Identifier: AGPL-3.0-only
<div v-for="relay in relays" :key="relay.inbox" class="relaycxt _panel" style="padding: 16px;">
<div>{{ relay.inbox }}</div>
<div style="margin: 8px 0;">
<i v-if="relay.status === 'accepted'" class="ti ti-check" :class="$style.icon" style="color: var(--success);"></i>
<i v-else-if="relay.status === 'rejected'" class="ti ti-ban" :class="$style.icon" style="color: var(--error);"></i>
<i v-else class="ti ti-clock" :class="$style.icon"></i>
<i v-if="relay.status === 'accepted'" class="ph-check ph-bold ph-lg" :class="$style.icon" style="color: var(--success);"></i>
<i v-else-if="relay.status === 'rejected'" class="ph-prohibit ph-bold ph-lg" :class="$style.icon" style="color: var(--error);"></i>
<i v-else class="ph-clock ph-bold ph-lg" :class="$style.icon"></i>
<span>{{ i18n.t(`_relayStatus.${relay.status}`) }}</span>
</div>
<MkButton class="button" inline danger @click="remove(relay.inbox)"><i class="ti ti-trash"></i> {{ i18n.ts.remove }}</MkButton>
<MkButton class="button" inline danger @click="remove(relay.inbox)"><i class="ph-trash ph-bold ph-lg"></i> {{ i18n.ts.remove }}</MkButton>
</div>
</div>
</MkSpacer>
@ -75,7 +75,7 @@ refresh();
const headerActions = $computed(() => [{
asFullButton: true,
icon: 'ti ti-plus',
icon: 'ph-plus ph-bold ph-lg',
text: i18n.ts.addRelay,
handler: addRelay,
}]);
@ -84,7 +84,7 @@ const headerTabs = $computed(() => []);
definePageMetadata({
title: i18n.ts.relays,
icon: 'ti ti-planet',
icon: 'ph-planet ph-bold pg-lg',
});
</script>

View file

@ -13,7 +13,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<template #footer>
<div :class="$style.footer">
<MkSpacer :contentMax="600" :marginMin="16" :marginMax="16">
<MkButton primary rounded @click="save"><i class="ti ti-check"></i> {{ i18n.ts.save }}</MkButton>
<MkButton primary rounded @click="save"><i class="ph-check ph-bold ph-lg"></i> {{ i18n.ts.save }}</MkButton>
</MkSpacer>
</div>
</template>
@ -87,10 +87,10 @@ const headerTabs = $computed(() => []);
definePageMetadata(computed(() => role ? {
title: i18n.ts._role.edit + ': ' + role.name,
icon: 'ti ti-badge',
icon: 'ph-seal-check ph-bold pg-lg',
} : {
title: i18n.ts._role.new,
icon: 'ti ti-badge',
icon: 'ph-seal-check ph-bold pg-lg',
}));
</script>

View file

@ -31,7 +31,7 @@ SPDX-License-Identifier: AGPL-3.0-only
</MkInput>
<MkSelect v-model="rolePermission" :readonly="readonly">
<template #label><i class="ti ti-shield-lock"></i> {{ i18n.ts._role.permission }}</template>
<template #label><i class="ph-shield ph-bold ph-lg-lock"></i> {{ i18n.ts._role.permission }}</template>
<template #caption><div v-html="i18n.ts._role.descriptionOfPermission.replaceAll('\n', '<br>')"></div></template>
<option value="normal">{{ i18n.ts.normalUser }}</option>
<option value="moderator">{{ i18n.ts.moderator }}</option>
@ -39,7 +39,7 @@ SPDX-License-Identifier: AGPL-3.0-only
</MkSelect>
<MkSelect v-model="role.target" :readonly="readonly">
<template #label><i class="ti ti-users"></i> {{ i18n.ts._role.assignTarget }}</template>
<template #label><i class="ph-users ph-bold pg-lg"></i> {{ i18n.ts._role.assignTarget }}</template>
<template #caption><div v-html="i18n.ts._role.descriptionOfAssignTarget.replaceAll('\n', '<br>')"></div></template>
<option value="manual">{{ i18n.ts._role.manual }}</option>
<option value="conditional">{{ i18n.ts._role.conditional }}</option>
@ -76,7 +76,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<template #label><i class="ti ti-license"></i> {{ i18n.ts._role.policies }}</template>
<div class="_gaps_s">
<MkInput v-model="q" type="search">
<template #prefix><i class="ti ti-search"></i></template>
<template #prefix><i class="ph-magnifying-glass ph-bold ph-lg"></i></template>
</MkInput>
<MkFolder v-if="matchQuery([i18n.ts._role._options.rateLimitFactor, 'rateLimitFactor'])">
@ -548,7 +548,7 @@ let q = $ref('');
function getPriorityIcon(option) {
if (option.priority === 2) return 'ti ti-arrows-up';
if (option.priority === 1) return 'ti ti-arrow-narrow-up';
return 'ti ti-point';
return 'ph-dot-outline ph-bold pg-lg';
}
function matchQuery(keywords: string[]): boolean {

View file

@ -10,20 +10,20 @@ SPDX-License-Identifier: AGPL-3.0-only
<MkSpacer :contentMax="700">
<div class="_gaps">
<div class="_buttons">
<MkButton primary rounded @click="edit"><i class="ti ti-pencil"></i> {{ i18n.ts.edit }}</MkButton>
<MkButton danger rounded @click="del"><i class="ti ti-trash"></i> {{ i18n.ts.delete }}</MkButton>
<MkButton primary rounded @click="edit"><i class="ph-pencil ph-bold ph-lg"></i> {{ i18n.ts.edit }}</MkButton>
<MkButton danger rounded @click="del"><i class="ph-trash ph-bold ph-lg"></i> {{ i18n.ts.delete }}</MkButton>
</div>
<MkFolder>
<template #icon><i class="ti ti-info-circle"></i></template>
<template #icon><i class="ph-info ph-bold ph-lg"></i></template>
<template #label>{{ i18n.ts.info }}</template>
<XEditor :modelValue="role" readonly/>
</MkFolder>
<MkFolder v-if="role.target === 'manual'" defaultOpen>
<template #icon><i class="ti ti-users"></i></template>
<template #icon><i class="ph-users ph-bold pg-lg"></i></template>
<template #label>{{ i18n.ts.users }}</template>
<template #suffix>{{ role.usersCount }}</template>
<div class="_gaps">
<MkButton primary rounded @click="assign"><i class="ti ti-plus"></i> {{ i18n.ts.assign }}</MkButton>
<MkButton primary rounded @click="assign"><i class="ph-plus ph-bold ph-lg"></i> {{ i18n.ts.assign }}</MkButton>
<MkPagination :pagination="usersPagination">
<template #empty>
@ -40,8 +40,8 @@ SPDX-License-Identifier: AGPL-3.0-only
<MkA :class="$style.userItemMainBody" :to="`/admin/user/${item.user.id}`">
<MkUserCardMini :user="item.user"/>
</MkA>
<button class="_button" :class="$style.userToggle" @click="toggleItem(item)"><i :class="$style.chevron" class="ti ti-chevron-down"></i></button>
<button class="_button" :class="$style.unassign" @click="unassign(item.user, $event)"><i class="ti ti-x"></i></button>
<button class="_button" :class="$style.userToggle" @click="toggleItem(item)"><i :class="$style.chevron" class="ph-caret-down ph-bold ph-lg"></i></button>
<button class="_button" :class="$style.unassign" @click="unassign(item.user, $event)"><i class="ph-x ph-bold ph-lg"></i></button>
</div>
<div v-if="expandedItems.includes(item.id)" :class="$style.userItemSub">
<div>Assigned: <MkTime :time="item.createdAt" mode="detail"/></div>
@ -150,7 +150,7 @@ async function assign() {
async function unassign(user, ev) {
os.popupMenu([{
text: i18n.ts.unassign,
icon: 'ti ti-x',
icon: 'ph-x ph-bold ph-lg',
danger: true,
action: async () => {
await os.apiWithDialog('admin/roles/unassign', { roleId: role.id, userId: user.id });
@ -173,7 +173,7 @@ const headerTabs = $computed(() => []);
definePageMetadata(computed(() => ({
title: i18n.ts.role + ': ' + role.name,
icon: 'ti ti-badge',
icon: 'ph-seal-check ph-bold pg-lg',
})));
</script>

View file

@ -13,7 +13,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<template #label>{{ i18n.ts._role.baseRole }}</template>
<div class="_gaps_s">
<MkInput v-model="baseRoleQ" type="search">
<template #prefix><i class="ti ti-search"></i></template>
<template #prefix><i class="ph-magnifying-glass ph-bold ph-lg"></i></template>
</MkInput>
<MkFolder v-if="matchQuery([i18n.ts._role._options.rateLimitFactor, 'rateLimitFactor'])">
@ -179,7 +179,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<MkButton primary rounded @click="updateBaseRole">{{ i18n.ts.save }}</MkButton>
</div>
</MkFolder>
<MkButton primary rounded @click="create"><i class="ti ti-plus"></i> {{ i18n.ts._role.new }}</MkButton>
<MkButton primary rounded @click="create"><i class="ph-plus ph-bold ph-lg"></i> {{ i18n.ts._role.new }}</MkButton>
<div class="_gaps_s">
<MkFoldableSection>
<template #header>Manual roles</template>
@ -248,7 +248,7 @@ const headerTabs = $computed(() => []);
definePageMetadata(computed(() => ({
title: i18n.ts.roles,
icon: 'ti ti-badges',
icon: 'ph-seal-check ph-bold pg-lg',
})));
</script>

View file

@ -10,7 +10,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<FormSuspense :p="init">
<div class="_gaps_m">
<MkFolder>
<template #icon><i class="ti ti-shield"></i></template>
<template #icon><i class="ph-shield ph-bold ph-lg"></i></template>
<template #label>{{ i18n.ts.botProtection }}</template>
<template v-if="enableHcaptcha" #suffix>hCaptcha</template>
<template v-else-if="enableRecaptcha" #suffix>reCAPTCHA</template>
@ -21,7 +21,7 @@ SPDX-License-Identifier: AGPL-3.0-only
</MkFolder>
<MkFolder>
<template #icon><i class="ti ti-eye-off"></i></template>
<template #icon><i class="ph-eye-slash ph-bold ph-lg"></i></template>
<template #label>{{ i18n.ts.sensitiveMediaDetection }}</template>
<template v-if="sensitiveMediaDetection === 'all'" #suffix>{{ i18n.ts.all }}</template>
<template v-else-if="sensitiveMediaDetection === 'local'" #suffix>{{ i18n.ts.localOnly }}</template>
@ -59,7 +59,7 @@ SPDX-License-Identifier: AGPL-3.0-only
</MkSwitch>
-->
<MkButton primary @click="save"><i class="ti ti-device-floppy"></i> {{ i18n.ts.save }}</MkButton>
<MkButton primary @click="save"><i class="ph-floppy-disk ph-bold pg-lg"></i> {{ i18n.ts.save }}</MkButton>
</div>
</MkFolder>
@ -93,11 +93,11 @@ SPDX-License-Identifier: AGPL-3.0-only
<div class="_gaps_m">
<MkInput v-model="summalyProxy">
<template #prefix><i class="ti ti-link"></i></template>
<template #prefix><i class="ph-link ph-bold ph-lg"></i></template>
<template #label>Summaly Proxy URL</template>
</MkInput>
<MkButton primary @click="save"><i class="ti ti-device-floppy"></i> {{ i18n.ts.save }}</MkButton>
<MkButton primary @click="save"><i class="ph-floppy-disk ph-bold pg-lg"></i> {{ i18n.ts.save }}</MkButton>
</div>
</MkFolder>
</div>
@ -178,6 +178,6 @@ const headerTabs = $computed(() => []);
definePageMetadata({
title: i18n.ts.security,
icon: 'ti ti-lock',
icon: 'ph-lock ph-bold ph-lg',
});
</script>

View file

@ -24,15 +24,15 @@ SPDX-License-Identifier: AGPL-3.0-only
<div :class="$style.itemHeader">
<div :class="$style.itemNumber" v-text="String(index + 1)"/>
<span :class="$style.itemHandle"><i class="ti ti-menu"/></span>
<button class="_button" :class="$style.itemRemove" @click="remove(index)"><i class="ti ti-x"></i></button>
<button class="_button" :class="$style.itemRemove" @click="remove(index)"><i class="ph-x ph-bold ph-lg"></i></button>
</div>
<MkInput v-model="serverRules[index]"/>
</div>
</template>
</Sortable>
<div :class="$style.commands">
<MkButton rounded @click="serverRules.push('')"><i class="ti ti-plus"></i> {{ i18n.ts.add }}</MkButton>
<MkButton primary rounded @click="save"><i class="ti ti-check"></i> {{ i18n.ts.save }}</MkButton>
<MkButton rounded @click="serverRules.push('')"><i class="ph-plus ph-bold ph-lg"></i> {{ i18n.ts.add }}</MkButton>
<MkButton primary rounded @click="save"><i class="ph-check ph-bold ph-lg"></i> {{ i18n.ts.save }}</MkButton>
</div>
</div>
</MkSpacer>
@ -69,7 +69,7 @@ const headerTabs = $computed(() => []);
definePageMetadata({
title: i18n.ts.serverRules,
icon: 'ti ti-checkbox',
icon: 'ph-check ph-bold ph-lgbox',
});
</script>

View file

@ -29,7 +29,7 @@ SPDX-License-Identifier: AGPL-3.0-only
</MkInput>
<MkInput v-model="maintainerEmail" type="email">
<template #prefix><i class="ti ti-mail"></i></template>
<template #prefix><i class="ph-envelope ph-bold ph-lg"></i></template>
<template #label>{{ i18n.ts.maintainerEmail }}</template>
</MkInput>
</FormSplit>
@ -68,12 +68,12 @@ SPDX-License-Identifier: AGPL-3.0-only
<template v-if="enableServiceWorker">
<MkInput v-model="swPublicKey">
<template #prefix><i class="ti ti-key"></i></template>
<template #prefix><i class="ph-key ph-bold ph-lg"></i></template>
<template #label>Public key</template>
</MkInput>
<MkInput v-model="swPrivateKey">
<template #prefix><i class="ti ti-key"></i></template>
<template #prefix><i class="ph-key ph-bold ph-lg"></i></template>
<template #label>Private key</template>
</MkInput>
</template>
@ -85,7 +85,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<div class="_gaps_m">
<MkInput v-model="deeplAuthKey">
<template #prefix><i class="ti ti-key"></i></template>
<template #prefix><i class="ph-key ph-bold ph-lg"></i></template>
<template #label>DeepL Auth Key</template>
</MkInput>
<MkSwitch v-model="deeplIsPro">
@ -99,7 +99,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<template #footer>
<div :class="$style.footer">
<MkSpacer :contentMax="700" :marginMin="16" :marginMax="16">
<MkButton primary rounded @click="save"><i class="ti ti-check"></i> {{ i18n.ts.save }}</MkButton>
<MkButton primary rounded @click="save"><i class="ph-check ph-bold ph-lg"></i> {{ i18n.ts.save }}</MkButton>
</MkSpacer>
</div>
</template>
@ -177,7 +177,7 @@ const headerTabs = $computed(() => []);
definePageMetadata({
title: i18n.ts.general,
icon: 'ti ti-settings',
icon: 'ph-gear ph-bold pg-lg',
});
</script>

View file

@ -120,17 +120,17 @@ function show(user) {
}
const headerActions = $computed(() => [{
icon: 'ti ti-search',
icon: 'ph-magnifying-glass ph-bold ph-lg',
text: i18n.ts.search,
handler: searchUser,
}, {
asFullButton: true,
icon: 'ti ti-plus',
icon: 'ph-plus ph-bold ph-lg',
text: i18n.ts.addUser,
handler: addUser,
}, {
asFullButton: true,
icon: 'ti ti-search',
icon: 'ph-magnifying-glass ph-bold ph-lg',
text: i18n.ts.lookup,
handler: lookupUser,
}]);
@ -139,7 +139,7 @@ const headerTabs = $computed(() => []);
definePageMetadata(computed(() => ({
title: i18n.ts.users,
icon: 'ti ti-users',
icon: 'ph-users ph-bold pg-lg',
})));
</script>