This commit is contained in:
syuilo 2023-01-06 13:40:17 +09:00
parent dc5b4a0402
commit 82c4f694a0
73 changed files with 141 additions and 135 deletions

View file

@ -9,7 +9,7 @@
</I18n>
</template>
<MkSpacer :margin-min="20" :margin-max="28">
<div class="dpvffvvy _autoGap">
<div class="dpvffvvy _gaps_m">
<div class="">
<MkTextarea v-model="comment">
<template #label>{{ i18n.ts.details }}</template>

View file

@ -9,7 +9,7 @@
<template #header>{{ i18n.ts.forgotPassword }}</template>
<form v-if="instance.enableEmail" class="bafeceda" @submit.prevent="onSubmit">
<div class="main _autoGap">
<div class="main _gaps_m">
<MkInput v-model="username" type="text" pattern="^[a-zA-Z0-9_]+$" :spellcheck="false" autofocus required>
<template #label>{{ i18n.ts.username }}</template>
<template #prefix>@</template>

View file

@ -15,7 +15,7 @@
</template>
<MkSpacer :margin-min="20" :margin-max="32">
<div class="xkpnjxcv _autoGap">
<div class="xkpnjxcv _gaps_m">
<template v-for="item in Object.keys(form).filter(item => !form[item].hidden)">
<FormInput v-if="form[item].type === 'number'" v-model="values[item]" type="number" :step="form[item].step || 1">
<template #label><span v-text="form[item].label || item"></span><span v-if="form[item].required === false"> ({{ $ts.optional }})</span></template>

View file

@ -12,7 +12,7 @@
<template #header>{{ i18n.ts.notificationSetting }}</template>
<MkSpacer :margin-min="20" :margin-max="28">
<div class="_autoGap">
<div class="_gaps_m">
<template v-if="showGlobalToggle">
<MkSwitch v-model="useGlobalSetting">
{{ i18n.ts.useGlobalSetting }}

View file

@ -1,11 +1,11 @@
<template>
<form class="eppvobhk" :class="{ signing, totpLogin }" @submit.prevent="onSubmit">
<div class="auth _autoGap">
<div class="auth _gaps_m">
<div v-show="withAvatar" class="avatar" :style="{ backgroundImage: user ? `url('${ user.avatarUrl }')` : null, marginBottom: message ? '1.5em' : null }"></div>
<MkInfo v-if="message">
{{ message }}
</MkInfo>
<div v-if="!totpLogin" class="normal-signin _autoGap">
<div v-if="!totpLogin" class="normal-signin _gaps_m">
<MkInput v-model="username" :placeholder="i18n.ts.username" type="text" pattern="^[a-zA-Z0-9_]+$" :spellcheck="false" autofocus required data-cy-signin-username @update:model-value="onUsernameChange">
<template #prefix>@</template>
<template #suffix>@{{ host }}</template>

View file

@ -1,5 +1,5 @@
<template>
<form class="qlvuhzng _autoGap" autocomplete="new-password" @submit.prevent="onSubmit">
<form class="qlvuhzng _gaps_m" autocomplete="new-password" @submit.prevent="onSubmit">
<MkInput v-if="instance.disableRegistration" v-model="invitationCode" type="text" :spellcheck="false" required>
<template #label>{{ i18n.ts.invitationCode }}</template>
<template #prefix><i class="ti ti-key"></i></template>

View file

@ -13,7 +13,7 @@
<template #header>{{ title || $ts.generateAccessToken }}</template>
<MkSpacer :margin-min="20" :margin-max="28">
<div class="_autoGap">
<div class="_gaps_m">
<div v-if="information">
<MkInfo warn>{{ information }}</MkInfo>
</div>

View file

@ -3,7 +3,7 @@
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
<div style="overflow: clip;">
<MkSpacer :content-max="600" :margin-min="20">
<div class="_autoGap znqjceqz">
<div class="_gaps_m znqjceqz">
<div ref="containerEl" v-panel class="about" :class="{ playing: easterEggEngine != null }">
<img src="/client-assets/about-icon.png" alt="" class="icon" draggable="false" @load="iconLoaded" @click="gravity"/>
<div class="misskey">Misskey</div>

View file

@ -2,7 +2,7 @@
<MkStickyContainer>
<template #header><MkPageHeader v-model:tab="tab" :actions="headerActions" :tabs="headerTabs"/></template>
<MkSpacer v-if="tab === 'overview'" :content-max="600" :margin-min="20">
<div class="_autoGap">
<div class="_gaps_m">
<div class="fwhjspax" :style="{ backgroundImage: `url(${ $instance.bannerUrl })` }">
<div class="content">
<img :src="$instance.iconUrl ?? $instance.faviconUrl ?? '/favicon.ico'" alt="" class="icon"/>
@ -18,7 +18,7 @@
</MkKeyValue>
<FormSection>
<div class="_autoGap">
<div class="_gaps_m">
<MkKeyValue :copy="version">
<template #key>Misskey</template>
<template #value>{{ version }}</template>
@ -30,7 +30,7 @@
</FormSection>
<FormSection>
<div class="_autoGap">
<div class="_gaps_m">
<FormSplit>
<MkKeyValue>
<template #key>{{ i18n.ts.administrator }}</template>

View file

@ -2,7 +2,7 @@
<MkStickyContainer>
<template #header><MkPageHeader v-model:tab="tab" :actions="headerActions" :tabs="headerTabs"/></template>
<MkSpacer v-if="file" :content-max="600" :margin-min="16" :margin-max="32">
<div v-if="tab === 'overview'" class="cxqhhsmd _autoGap">
<div v-if="tab === 'overview'" class="cxqhhsmd _gaps_m">
<a class="thumbnail" :href="file.url" target="_blank">
<MkDriveFileThumbnail class="thumbnail" :file="file" fit="contain"/>
</a>
@ -39,7 +39,7 @@
<MkButton danger @click="del"><i class="ti ti-trash"></i> {{ i18n.ts.delete }}</MkButton>
</div>
</div>
<div v-else-if="tab === 'ip' && info" class="_autoGap">
<div v-else-if="tab === 'ip' && info" class="_gaps_m">
<MkInfo v-if="!iAmAdmin" warn>{{ i18n.ts.requireAdminForView }}</MkInfo>
<MkKeyValue v-if="info.requestIp" class="_monospace" :copy="info.requestIp" oneline>
<template #key>IP</template>
@ -53,7 +53,7 @@
</MkKeyValue>
</FormSection>
</div>
<div v-else-if="tab === 'raw'" class="_autoGap">
<div v-else-if="tab === 'raw'" class="_gaps_m">
<MkObjectView v-if="info" tall :value="info">
</MkObjectView>
</div>

View file

@ -3,7 +3,7 @@
<template #header><XHeader :actions="headerActions" :tabs="headerTabs"/></template>
<MkSpacer :content-max="900">
<div class="uqshojas">
<div v-for="ad in ads" class="_panel _autoGap ad">
<div v-for="ad in ads" class="_panel _gaps_m ad">
<MkAd v-if="ad.url" :specify="ad"/>
<MkInput v-model="ad.url" type="url">
<template #label>URL</template>

View file

@ -2,9 +2,9 @@
<MkStickyContainer>
<template #header><XHeader :actions="headerActions" :tabs="headerTabs"/></template>
<MkSpacer :content-max="900">
<div class="ztgjmzrw _autoGap">
<div class="ztgjmzrw _gaps_m">
<section v-for="announcement in announcements" class="">
<div class="_panel _autoGap" style="padding: 24px;">
<div class="_panel _gaps_m" style="padding: 24px;">
<MkInput v-model="announcement.title">
<template #label>{{ i18n.ts.title }}</template>
</MkInput>

View file

@ -1,7 +1,7 @@
<template>
<div>
<FormSuspense :p="init">
<div class="_autoGap">
<div class="_gaps_m">
<FormRadios v-model="provider">
<option :value="null">{{ i18n.ts.none }} ({{ i18n.ts.notRecommended }})</option>
<option value="hcaptcha">hCaptcha</option>

View file

@ -3,7 +3,7 @@
<template #header><XHeader :actions="headerActions" :tabs="headerTabs"/></template>
<MkSpacer :content-max="700" :margin-min="16" :margin-max="32">
<FormSuspense :p="init">
<div class="_autoGap">
<div class="_gaps_m">
<FormSwitch v-model="enableEmail">
<template #label>{{ i18n.ts.enableEmail }} ({{ i18n.ts.recommended }})</template>
<template #caption>{{ i18n.ts.emailConfigInfo }}</template>
@ -17,7 +17,7 @@
<FormSection>
<template #label>{{ i18n.ts.smtpConfig }}</template>
<div class="_autoGap">
<div class="_gaps_m">
<FormSplit :min-width="280">
<FormInput v-model="smtpHost">
<template #label>{{ i18n.ts.smtpHost }}</template>

View file

@ -10,7 +10,7 @@
<template #header>:{{ emoji.name }}:</template>
<MkSpacer :margin-min="20" :margin-max="28">
<div class="yigymqpb _autoGap">
<div class="yigymqpb _gaps_m">
<img :src="`/emoji/${emoji.name}.webp`" class="img"/>
<MkInput v-model="name">
<template #label>{{ i18n.ts.name }}</template>

View file

@ -1,6 +1,6 @@
<template>
<FormSuspense :p="init">
<div class="_autoGap">
<div class="_gaps_m">
<FormSwitch v-model="enableDiscordIntegration">
<template #label>{{ i18n.ts.enable }}</template>
</FormSwitch>

View file

@ -1,6 +1,6 @@
<template>
<FormSuspense :p="init">
<div class="_autoGap">
<div class="_gaps_m">
<FormSwitch v-model="enableGithubIntegration">
<template #label>{{ i18n.ts.enable }}</template>
</FormSwitch>

View file

@ -1,6 +1,6 @@
<template>
<FormSuspense :p="init">
<div class="_autoGap">
<div class="_gaps_m">
<FormSwitch v-model="enableTwitterIntegration">
<template #label>{{ i18n.ts.enable }}</template>
</FormSwitch>

View file

@ -3,7 +3,7 @@
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
<MkSpacer :content-max="700" :margin-min="16" :margin-max="32">
<FormSuspense :p="init">
<div class="_autoGap">
<div class="_gaps_m">
<FormFolder>
<template #icon><i class="ti ti-brand-twitter"></i></template>
<template #label>Twitter</template>

View file

@ -3,7 +3,7 @@
<template #header><XHeader :actions="headerActions" :tabs="headerTabs"/></template>
<MkSpacer :content-max="700" :margin-min="16" :margin-max="32">
<FormSuspense :p="init">
<div class="_autoGap">
<div class="_gaps_m">
<FormSwitch v-model="useObjectStorage">{{ i18n.ts.useObjectStorage }}</FormSwitch>
<template v-if="useObjectStorage">

View file

@ -3,7 +3,7 @@
<template #header><XHeader :actions="headerActions" :tabs="headerTabs"/></template>
<MkSpacer :content-max="700" :margin-min="16" :margin-max="32">
<FormSuspense :p="init">
<div class="_autoGap">
<div class="_gaps_m">
<FormFolder>
<template #icon><i class="ti ti-shield"></i></template>
<template #label>{{ i18n.ts.botProtection }}</template>
@ -23,7 +23,7 @@
<template v-else-if="sensitiveMediaDetection === 'remote'" #suffix>{{ i18n.ts.remoteOnly }}</template>
<template v-else #suffix>{{ i18n.ts.none }}</template>
<div class="_autoGap">
<div class="_gaps_m">
<span>{{ i18n.ts._sensitiveMediaDetection.description }}</span>
<FormRadios v-model="sensitiveMediaDetection">
@ -63,7 +63,7 @@
<template v-if="enableActiveEmailValidation" #suffix>Enabled</template>
<template v-else #suffix>Disabled</template>
<div class="_autoGap">
<div class="_gaps_m">
<span>{{ i18n.ts.activeEmailValidationDescription }}</span>
<FormSwitch v-model="enableActiveEmailValidation" @update:model-value="save">
<template #label>Enable</template>
@ -76,7 +76,7 @@
<template v-if="enableIpLogging" #suffix>Enabled</template>
<template v-else #suffix>Disabled</template>
<div class="_autoGap">
<div class="_gaps_m">
<FormSwitch v-model="enableIpLogging" @update:model-value="save">
<template #label>Enable</template>
</FormSwitch>
@ -86,7 +86,7 @@
<FormFolder>
<template #label>Summaly Proxy</template>
<div class="_autoGap">
<div class="_gaps_m">
<FormInput v-model="summalyProxy">
<template #prefix><i class="ti ti-link"></i></template>
<template #label>Summaly Proxy URL</template>

View file

@ -4,7 +4,7 @@
<template #header><XHeader :actions="headerActions" :tabs="headerTabs"/></template>
<MkSpacer :content-max="700" :margin-min="16" :margin-max="32">
<FormSuspense :p="init">
<div class="_autoGap">
<div class="_gaps_m">
<FormInput v-model="name">
<template #label>{{ i18n.ts.instanceName }}</template>
</FormInput>
@ -35,7 +35,7 @@
</FormTextarea>
<FormSection>
<div class="_autoGap_half">
<div class="_gaps_s">
<FormSwitch v-model="enableRegistration">
<template #label>{{ i18n.ts.enableRegistration }}</template>
</FormSwitch>
@ -47,7 +47,7 @@
</FormSection>
<FormSection>
<div class="_autoGap_half">
<div class="_gaps_s">
<FormSwitch v-model="enableLocalTimeline">{{ i18n.ts.enableLocalTimeline }}</FormSwitch>
<FormSwitch v-model="enableGlobalTimeline">{{ i18n.ts.enableGlobalTimeline }}</FormSwitch>
<FormInfo>{{ i18n.ts.disablingTimelinesInfo }}</FormInfo>
@ -57,7 +57,7 @@
<FormSection>
<template #label>{{ i18n.ts.theme }}</template>
<div class="_autoGap">
<div class="_gaps_m">
<FormInput v-model="iconUrl">
<template #prefix><i class="ti ti-link"></i></template>
<template #label>{{ i18n.ts.iconUrl }}</template>
@ -94,7 +94,7 @@
<FormSection>
<template #label>{{ i18n.ts.files }}</template>
<div class="_autoGap">
<div class="_gaps_m">
<FormSwitch v-model="cacheRemoteFiles">
<template #label>{{ i18n.ts.cacheRemoteFiles }}</template>
<template #caption>{{ i18n.ts.cacheRemoteFilesDescription }}</template>
@ -119,7 +119,7 @@
<FormSection>
<template #label>ServiceWorker</template>
<div class="_autoGap">
<div class="_gaps_m">
<FormSwitch v-model="enableServiceWorker">
<template #label>{{ i18n.ts.enableServiceworker }}</template>
<template #caption>{{ i18n.ts.serviceworkerInfo }}</template>
@ -142,7 +142,7 @@
<FormSection>
<template #label>DeepL Translation</template>
<div class="_autoGap">
<div class="_gaps_m">
<FormInput v-model="deeplAuthKey">
<template #prefix><i class="ti ti-key"></i></template>
<template #label>DeepL Auth Key</template>

View file

@ -2,7 +2,7 @@
<MkStickyContainer>
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
<MkSpacer :content-max="800">
<MkPagination v-slot="{items}" :pagination="pagination" class="ruryvtyk _autoGap">
<MkPagination v-slot="{items}" :pagination="pagination" class="ruryvtyk _gaps_m">
<section v-for="(announcement, i) in items" :key="announcement.id" class="announcement _panel">
<div class="header"><span v-if="$i && !announcement.isRead">🆕 </span>{{ announcement.title }}</div>
<div class="content">

View file

@ -2,8 +2,8 @@
<MkStickyContainer>
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
<MkSpacer :content-max="700">
<div class="_autoGap">
<div class="_autoGap">
<div class="_gaps_m">
<div class="_gaps_m">
<MkInput v-model="endpoint" :datalist="endpoints" @update:model-value="onEndpointChange()">
<template #label>Endpoint</template>
</MkInput>

View file

@ -2,7 +2,7 @@
<MkStickyContainer>
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
<MkSpacer :content-max="700">
<div class="_autoGap">
<div class="_gaps_m">
<MkInput v-model="name">
<template #label>{{ i18n.ts.name }}</template>
</MkInput>

View file

@ -2,7 +2,7 @@
<MkStickyContainer>
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
<MkSpacer :content-max="700">
<div class="_autoGap">
<div class="_gaps_m">
<MkInput v-model="title">
<template #label>{{ i18n.ts._play.title }}</template>
</MkInput>

View file

@ -4,7 +4,7 @@
<MkSpacer :content-max="700">
<div v-if="tab === 'featured'" class="">
<MkPagination v-slot="{items}" :pagination="featuredFlashsPagination">
<div class="_autoGap_half">
<div class="_gaps_s">
<MkFlashPreview v-for="flash in items" :key="flash.id" class="" :flash="flash"/>
</div>
</MkPagination>
@ -13,7 +13,7 @@
<div v-else-if="tab === 'my'" class="my">
<MkButton class="new" @click="create()"><i class="ti ti-plus"></i></MkButton>
<MkPagination v-slot="{items}" :pagination="myFlashsPagination">
<div class="_autoGap_half">
<div class="_gaps_s">
<MkFlashPreview v-for="flash in items" :key="flash.id" class="" :flash="flash"/>
</div>
</MkPagination>
@ -21,7 +21,7 @@
<div v-else-if="tab === 'liked'" class="">
<MkPagination v-slot="{items}" :pagination="likedFlashsPagination">
<div class="_autoGap_half">
<div class="_gaps_s">
<MkFlashPreview v-for="like in items" :key="like.flash.id" class="" :flash="like.flash"/>
</div>
</MkPagination>

View file

@ -2,7 +2,7 @@
<MkStickyContainer>
<template #header><MkPageHeader v-model:tab="tab" :actions="headerActions" :tabs="headerTabs"/></template>
<MkSpacer v-if="instance" :content-max="600" :margin-min="16" :margin-max="32">
<div v-if="tab === 'overview'" class="_autoGap">
<div v-if="tab === 'overview'" class="_gaps_m">
<div class="fnfelxur">
<img :src="faviconUrl" alt="" class="icon"/>
<span class="name">{{ instance.name || `(${i18n.ts.unknown})` }}</span>
@ -28,7 +28,7 @@
<FormSection v-if="iAmModerator">
<template #label>Moderation</template>
<div class="_autoGap_half">
<div class="_gaps_s">
<FormSwitch v-model="suspended" @update:model-value="toggleSuspend">{{ i18n.ts.stopActivityDelivery }}</FormSwitch>
<FormSwitch v-model="isBlocked" @update:model-value="toggleBlock">{{ i18n.ts.blockThisInstance }}</FormSwitch>
<MkButton @click="refreshMetadata"><i class="ti ti-refresh"></i> Refresh metadata</MkButton>
@ -70,7 +70,7 @@
<FormLink :to="`https://${host}/manifest.json`" external style="margin-bottom: 8px;">manifest.json</FormLink>
</FormSection>
</div>
<div v-else-if="tab === 'chart'" class="_autoGap">
<div v-else-if="tab === 'chart'" class="_gaps_m">
<div class="cmhjzshl">
<div class="selects">
<MkSelect v-model="chartSrc" style="margin: 0 10px 0 0; flex: 1;">
@ -95,14 +95,14 @@
</div>
</div>
</div>
<div v-else-if="tab === 'users'" class="_autoGap">
<div v-else-if="tab === 'users'" class="_gaps_m">
<MkPagination v-slot="{items}" :pagination="usersPagination" style="display: grid; grid-template-columns: repeat(auto-fill,minmax(270px,1fr)); grid-gap: 12px;">
<MkA v-for="user in items" :key="user.id" v-tooltip.mfm="`Last posted: ${dateString(user.updatedAt)}`" class="user" :to="`/user-info/${user.id}`">
<MkUserCardMini :user="user"/>
</MkA>
</MkPagination>
</div>
<div v-else-if="tab === 'raw'" class="_autoGap">
<div v-else-if="tab === 'raw'" class="_gaps_m">
<MkObjectView tall :value="instance">
</MkObjectView>
</div>

View file

@ -1,7 +1,7 @@
<template>
<MkSpacer :content-max="700">
<div class="shaynizk">
<div class="_autoGap">
<div class="_gaps_m">
<MkInput v-model="name">
<template #label>{{ i18n.ts.name }}</template>
</MkInput>

View file

@ -10,7 +10,7 @@
</div>
<div v-if="tab === 'settings'">
<div class="_autoGap">
<div class="_gaps_m">
<MkInput v-model="title">
<template #label>{{ $ts._pages.title }}</template>
</MkInput>

View file

@ -2,7 +2,7 @@
<MkStickyContainer>
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
<MkSpacer :content-max="600" :margin-min="16">
<div class="_autoGap">
<div class="_gaps_m">
<FormSplit>
<MkKeyValue>
<template #key>{{ i18n.ts._registry.domain }}</template>

View file

@ -2,7 +2,7 @@
<MkStickyContainer>
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
<MkSpacer :content-max="600" :margin-min="16">
<div class="_autoGap">
<div class="_gaps_m">
<FormInfo warn>{{ i18n.ts.editTheseSettingsMayBreakAccount }}</FormInfo>
<template v-if="value">

View file

@ -2,7 +2,7 @@
<MkStickyContainer>
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
<MkSpacer v-if="token" :content-max="700" :margin-min="16" :margin-max="32">
<div class="_autoGap">
<div class="_gaps_m">
<FormInput v-model="password" type="password">
<template #prefix><i class="ti ti-lock"></i></template>
<template #label>{{ i18n.ts.newPassword }}</template>

View file

@ -1,5 +1,5 @@
<template>
<div class="_autoGap">
<div class="_gaps_m">
<MkKeyValue>
<template #key>ID</template>
<template #value><span class="_monospace">{{ $i.id }}</span></template>

View file

@ -1,5 +1,5 @@
<template>
<div class="_autoGap">
<div class="_gaps_m">
<FormSuspense :p="init">
<MkButton primary @click="addAccount"><i class="ti ti-plus"></i> {{ i18n.ts.addAccount }}</MkButton>

View file

@ -1,5 +1,5 @@
<template>
<div class="_autoGap">
<div class="_gaps_m">
<MkButton primary @click="generateToken">{{ i18n.ts.generateAccessToken }}</MkButton>
<FormLink to="/settings/apps">{{ i18n.ts.manageAccessTokens }}</FormLink>
<FormLink to="/api-console" :behavior="isDesktop ? 'window' : null">API console</FormLink>

View file

@ -1,5 +1,5 @@
<template>
<div class="_autoGap">
<div class="_gaps_m">
<FormPagination ref="list" :pagination="pagination">
<template #empty>
<div class="_fullinfo">

View file

@ -1,5 +1,5 @@
<template>
<div class="_autoGap">
<div class="_gaps_m">
<FormInfo warn>{{ i18n.ts.customCssWarn }}</FormInfo>
<FormTextarea v-model="localCustomCss" manual-save tall class="_monospace" style="tab-size: 2;">

View file

@ -1,5 +1,5 @@
<template>
<div class="_autoGap">
<div class="_gaps_m">
<FormSwitch v-model="navWindow">{{ i18n.ts.defaultNavigationBehaviour }}: {{ i18n.ts.openInWindow }}</FormSwitch>
<FormSwitch v-model="alwaysShowMainColumn">{{ i18n.ts._deck.alwaysShowMainColumn }}</FormSwitch>

View file

@ -1,5 +1,5 @@
<template>
<div class="_autoGap">
<div class="_gaps_m">
<FormInfo warn>{{ i18n.ts._accountDelete.mayTakeTime }}</FormInfo>
<FormInfo>{{ i18n.ts._accountDelete.sendEmail }}</FormInfo>
<MkButton v-if="!$i.isDeleted" danger @click="deleteAccount">{{ i18n.ts._accountDelete.requestAccountDelete }}</MkButton>

View file

@ -1,9 +1,9 @@
<template>
<div class="_autoGap">
<div class="_gaps_m">
<FormSection v-if="!fetching" first>
<template #label>{{ i18n.ts.usageAmount }}</template>
<div class="_autoGap">
<div class="_gaps_m">
<div class="uawsfosz">
<div class="meter"><div :style="meterStyle"></div></div>
</div>
@ -26,7 +26,7 @@
</FormSection>
<FormSection>
<div class="_autoGap">
<div class="_gaps_m">
<FormLink @click="chooseUploadFolder()">
{{ i18n.ts.uploadFolder }}
<template #suffix>{{ uploadFolder ? uploadFolder.name : '-' }}</template>

View file

@ -1,5 +1,5 @@
<template>
<div class="_autoGap">
<div class="_gaps_m">
<FormSection first>
<template #label>{{ i18n.ts.emailAddress }}</template>
<FormInput v-model="emailAddress" type="email" manual-save>
@ -18,7 +18,7 @@
<FormSection>
<template #label>{{ i18n.ts.emailNotification }}</template>
<div class="_autoGap_half">
<div class="_gaps_s">
<FormSwitch v-model="emailNotification_mention">
{{ i18n.ts._notification._types.mention }}
</FormSwitch>

View file

@ -1,5 +1,5 @@
<template>
<div class="_autoGap">
<div class="_gaps_m">
<FormSelect v-model="lang">
<template #label>{{ i18n.ts.uiLanguage }}</template>
<option v-for="x in langs" :key="x[0]" :value="x[0]">{{ x[1] }}</option>
@ -25,8 +25,8 @@
<FormSection>
<template #label>{{ i18n.ts.behavior }}</template>
<div class="_autoGap">
<div class="_autoGap_half">
<div class="_gaps_m">
<div class="_gaps_s">
<FormSwitch v-model="imageNewTab">{{ i18n.ts.openImageInNewTab }}</FormSwitch>
<FormSwitch v-model="enableInfiniteScroll">{{ i18n.ts.enableInfiniteScroll }}</FormSwitch>
<FormSwitch v-model="useReactionPickerForContextMenu">{{ i18n.ts.useReactionPickerForContextMenu }}</FormSwitch>
@ -43,8 +43,8 @@
<FormSection>
<template #label>{{ i18n.ts.appearance }}</template>
<div class="_autoGap">
<div class="_autoGap_half">
<div class="_gaps_m">
<div class="_gaps_s">
<FormSwitch v-model="disableAnimatedMfm">{{ i18n.ts.disableAnimatedMfm }}</FormSwitch>
<FormSwitch v-model="reduceAnimation">{{ i18n.ts.reduceUiAnimation }}</FormSwitch>
<FormSwitch v-model="useBlurEffect">{{ i18n.ts.useBlurEffect }}</FormSwitch>

View file

@ -1,5 +1,5 @@
<template>
<div class="_autoGap">
<div class="_gaps_m">
<FormSection first>
<template #label><i class="ti ti-pencil"></i> {{ i18n.ts._exportOrImport.allNotes }}</template>
<FormFolder>
@ -18,11 +18,11 @@
</FormSection>
<FormSection>
<template #label><i class="ti ti-users"></i> {{ i18n.ts._exportOrImport.followingList }}</template>
<div class="_autoGap_half">
<div class="_gaps_s">
<FormFolder>
<template #label>{{ i18n.ts.export }}</template>
<template #icon><i class="ti ti-download"></i></template>
<div class="_autoGap_half">
<div class="_gaps_s">
<FormSwitch v-model="excludeMutingUsers">
{{ i18n.ts._exportOrImport.excludeMutingUsers }}
</FormSwitch>
@ -41,7 +41,7 @@
</FormSection>
<FormSection>
<template #label><i class="ti ti-users"></i> {{ i18n.ts._exportOrImport.userLists }}</template>
<div class="_autoGap_half">
<div class="_gaps_s">
<FormFolder>
<template #label>{{ i18n.ts.export }}</template>
<template #icon><i class="ti ti-download"></i></template>
@ -56,7 +56,7 @@
</FormSection>
<FormSection>
<template #label><i class="ti ti-user-off"></i> {{ i18n.ts._exportOrImport.muteList }}</template>
<div class="_autoGap_half">
<div class="_gaps_s">
<FormFolder>
<template #label>{{ i18n.ts.export }}</template>
<template #icon><i class="ti ti-download"></i></template>
@ -71,7 +71,7 @@
</FormSection>
<FormSection>
<template #label><i class="ti ti-user-off"></i> {{ i18n.ts._exportOrImport.blockingList }}</template>
<div class="_autoGap_half">
<div class="_gaps_s">
<FormFolder>
<template #label>{{ i18n.ts.export }}</template>
<template #icon><i class="ti ti-download"></i></template>

View file

@ -1,5 +1,5 @@
<template>
<div class="_autoGap">
<div class="_gaps_m">
<MkInfo>{{ i18n.ts._instanceMute.title }}</MkInfo>
<FormTextarea v-model="instanceMutes">
<template #label>{{ i18n.ts._instanceMute.heading }}</template>

View file

@ -1,5 +1,5 @@
<template>
<div class="_autoGap">
<div class="_gaps_m">
<FormSection v-if="instance.enableTwitterIntegration">
<template #label><i class="ti ti-brand-twitter"></i> Twitter</template>
<p v-if="integrations.twitter">{{ i18n.ts.connectedTo }}: <a :href="`https://twitter.com/${integrations.twitter.screenName}`" rel="nofollow noopener" target="_blank">@{{ integrations.twitter.screenName }}</a></p>

View file

@ -1,5 +1,5 @@
<template>
<div class="_autoGap">
<div class="_gaps_m">
<MkTab v-model="tab" style="margin-bottom: var(--margin);">
<option value="mute">{{ i18n.ts.mutedUsers }}</option>
<option value="block">{{ i18n.ts.blockedUsers }}</option>

View file

@ -1,5 +1,5 @@
<template>
<div class="_autoGap">
<div class="_gaps_m">
<FormTextarea v-model="items" tall manual-save>
<template #label>{{ i18n.ts.navbar }}</template>
<template #caption><button class="_textButton" @click="addItem">{{ i18n.ts.addItem }}</button></template>

View file

@ -1,8 +1,8 @@
<template>
<div class="_autoGap">
<div class="_gaps_m">
<FormLink @click="configure"><template #icon><i class="ti ti-settings"></i></template>{{ i18n.ts.notificationSetting }}</FormLink>
<FormSection>
<div class="_autoGap">
<div class="_gaps_m">
<FormLink @click="readAllNotifications">{{ i18n.ts.markAsReadAllNotifications }}</FormLink>
<FormLink @click="readAllUnreadNotes">{{ i18n.ts.markAsReadAllUnreadNotes }}</FormLink>
<FormLink @click="readAllMessagingMessages">{{ i18n.ts.markAsReadAllTalkMessages }}</FormLink>
@ -11,7 +11,7 @@
<FormSection>
<template #label>{{ i18n.ts.pushNotification }}</template>
<div class="_autoGap">
<div class="_gaps_m">
<MkPushNotificationAllowButton ref="allowButton"/>
<FormSwitch :disabled="!pushRegistrationInServer" :model-value="sendReadMessage" @update:model-value="onChangeSendReadMessage">
<template #label>{{ i18n.ts.sendPushNotificationReadMessage }}</template>

View file

@ -1,5 +1,5 @@
<template>
<div class="_autoGap">
<div class="_gaps_m">
<FormSwitch v-model="$i.injectFeaturedNote" @update:model-value="onChangeInjectFeaturedNote">
{{ i18n.ts.showFeaturedNotesInTimeline }}
</FormSwitch>

View file

@ -1,5 +1,5 @@
<template>
<div class="_autoGap">
<div class="_gaps_m">
<FormInfo warn>{{ i18n.ts._plugin.installWarn }}</FormInfo>
<FormTextarea v-model="code" tall>

View file

@ -1,10 +1,10 @@
<template>
<div class="_autoGap">
<div class="_gaps_m">
<FormLink to="/settings/plugin/install"><template #icon><i class="ti ti-download"></i></template>{{ i18n.ts._plugin.install }}</FormLink>
<FormSection>
<template #label>{{ i18n.ts.manage }}</template>
<div v-for="plugin in plugins" :key="plugin.id" class="_panel _autoGap_half" style="padding: 20px;">
<div v-for="plugin in plugins" :key="plugin.id" class="_panel _gaps_s" style="padding: 20px;">
<span style="display: flex;"><b>{{ plugin.name }}</b><span style="margin-left: auto;">v{{ plugin.version }}</span></span>
<FormSwitch :model-value="plugin.active" @update:model-value="changeActive(plugin, $event)">{{ i18n.ts.makeActive }}</FormSwitch>

View file

@ -1,5 +1,5 @@
<template>
<div class="_autoGap">
<div class="_gaps_m">
<div :class="$style.buttons">
<MkButton inline primary @click="saveNew">{{ ts._preferencesBackups.saveNew }}</MkButton>
<MkButton inline @click="loadFile">{{ ts._preferencesBackups.loadFile }}</MkButton>
@ -8,7 +8,7 @@
<FormSection>
<template #label>{{ ts._preferencesBackups.list }}</template>
<template v-if="profiles && Object.keys(profiles).length > 0">
<div class="_autoGap_half">
<div class="_gaps_s">
<div
v-for="(profile, id) in profiles"
:key="id"

View file

@ -1,5 +1,5 @@
<template>
<div class="_autoGap">
<div class="_gaps_m">
<FormSwitch v-model="isLocked" @update:model-value="save()">{{ i18n.ts.makeFollowManuallyApprove }}<template #caption>{{ i18n.ts.lockedAccountInfo }}</template></FormSwitch>
<FormSwitch v-if="isLocked" v-model="autoAcceptFollowed" @update:model-value="save()">{{ i18n.ts.autoAcceptFollowed }}</FormSwitch>
@ -30,7 +30,7 @@
</FormSwitch>
<FormSection>
<div class="_autoGap">
<div class="_gaps_m">
<FormSwitch v-model="rememberNoteVisibility" @update:model-value="save()">{{ i18n.ts.rememberNoteVisibility }}</FormSwitch>
<FormFolder v-if="!rememberNoteVisibility">
<template #label>{{ i18n.ts.defaultNoteVisibility }}</template>
@ -39,7 +39,7 @@
<template v-else-if="defaultNoteVisibility === 'followers'" #suffix>{{ i18n.ts._visibility.followers }}</template>
<template v-else-if="defaultNoteVisibility === 'specified'" #suffix>{{ i18n.ts._visibility.specified }}</template>
<div class="_autoGap">
<div class="_gaps_m">
<FormSelect v-model="defaultNoteVisibility">
<option value="public">{{ i18n.ts._visibility.public }}</option>
<option value="home">{{ i18n.ts._visibility.home }}</option>

View file

@ -1,5 +1,5 @@
<template>
<div class="_autoGap">
<div class="_gaps_m">
<div class="llvierxe" :style="{ backgroundImage: $i.bannerUrl ? `url(${ $i.bannerUrl })` : null }">
<div class="avatar">
<MkAvatar class="avatar" :user="$i" :disable-link="true" @click="changeAvatar"/>
@ -37,7 +37,7 @@
<template #icon><i class="ti ti-list"></i></template>
<template #label>{{ i18n.ts._profile.metadataEdit }}</template>
<div class="_autoGap">
<div class="_gaps_m">
<FormSplit v-for="(record, i) in fields" :min-width="250">
<FormInput v-model="record.name" small>
<template #label>{{ i18n.ts._profile.metadataLabel }} #{{ i + 1 }}</template>
@ -58,7 +58,7 @@
<FormFolder>
<template #label>{{ i18n.ts.advancedSettings }}</template>
<div class="_autoGap">
<div class="_gaps_m">
<FormSwitch v-model="profile.isCat">{{ i18n.ts.flagAsCat }}<template #caption>{{ i18n.ts.flagAsCatDescription }}</template></FormSwitch>
<FormSwitch v-model="profile.isBot">{{ i18n.ts.flagAsBot }}<template #caption>{{ i18n.ts.flagAsBotDescription }}</template></FormSwitch>
</div>

View file

@ -1,5 +1,5 @@
<template>
<div class="_autoGap">
<div class="_gaps_m">
<FromSlot>
<template #label>{{ i18n.ts.reactionSettingDescription }}</template>
<div v-panel style="border-radius: 6px;">

View file

@ -1,5 +1,5 @@
<template>
<div class="_autoGap">
<div class="_gaps_m">
<FormSection first>
<template #label>{{ i18n.ts.password }}</template>
<MkButton primary @click="change()">{{ i18n.ts.changePassword }}</MkButton>

View file

@ -1,5 +1,5 @@
<template>
<div class="_autoGap">
<div class="_gaps_m">
<FormSelect v-model="type">
<template #label>{{ i18n.ts.sound }}</template>
<option v-for="x in soundsTypes" :key="x" :value="x">{{ x == null ? i18n.ts.none : x }}</option>

View file

@ -1,12 +1,12 @@
<template>
<div class="_autoGap">
<div class="_gaps_m">
<FormRange v-model="masterVolume" :min="0" :max="1" :step="0.05" :text-converter="(v) => `${Math.floor(v * 100)}%`">
<template #label>{{ i18n.ts.masterVolume }}</template>
</FormRange>
<FormSection>
<template #label>{{ i18n.ts.sounds }}</template>
<div class="_autoGap_half">
<div class="_gaps_s">
<FormFolder v-for="type in Object.keys(sounds)" :key="type">
<template #label>{{ $t('_sfx.' + type) }}</template>
<template #suffix>{{ sounds[type].type ?? i18n.ts.none }}</template>

View file

@ -1,5 +1,5 @@
<template>
<div class="_autoGap">
<div class="_gaps_m">
<FormSelect v-model="statusbar.type" placeholder="Please select">
<template #label>{{ i18n.ts.type }}</template>
<option value="rss">RSS</option>

View file

@ -1,5 +1,5 @@
<template>
<div class="_autoGap">
<div class="_gaps_m">
<FormFolder v-for="x in statusbars" :key="x.id">
<template #label>{{ x.type ?? i18n.ts.notSet }}</template>
<template #suffix>{{ x.name }}</template>

View file

@ -1,5 +1,5 @@
<template>
<div class="_autoGap">
<div class="_gaps_m">
<FormTextarea v-model="installThemeCode">
<template #label>{{ i18n.ts._theme.code }}</template>
</FormTextarea>

View file

@ -1,5 +1,5 @@
<template>
<div class="_autoGap">
<div class="_gaps_m">
<FormSelect v-model="selectedThemeId">
<template #label>{{ i18n.ts.theme }}</template>
<optgroup :label="i18n.ts._theme.installedThemes">

View file

@ -1,5 +1,5 @@
<template>
<div class="_autoGap rsljpzjq">
<div class="_gaps_m rsljpzjq">
<div v-adaptive-border class="rfqxtzch _panel">
<div class="toggle">
<div class="toggleWrapper">

View file

@ -1,5 +1,5 @@
<template>
<div class="_autoGap">
<div class="_gaps_m">
<FormInput v-model="name">
<template #label>Name</template>
</FormInput>
@ -16,7 +16,7 @@
<FormSection>
<template #label>Events</template>
<div class="_autoGap_half">
<div class="_gaps_s">
<FormSwitch v-model="event_follow">Follow</FormSwitch>
<FormSwitch v-model="event_followed">Followed</FormSwitch>
<FormSwitch v-model="event_note">Note</FormSwitch>

View file

@ -1,5 +1,5 @@
<template>
<div class="_autoGap">
<div class="_gaps_m">
<FormInput v-model="name">
<template #label>Name</template>
</FormInput>
@ -16,7 +16,7 @@
<FormSection>
<template #label>Events</template>
<div class="_autoGap_half">
<div class="_gaps_s">
<FormSwitch v-model="event_follow">Follow</FormSwitch>
<FormSwitch v-model="event_followed">Followed</FormSwitch>
<FormSwitch v-model="event_note">Note</FormSwitch>

View file

@ -1,5 +1,5 @@
<template>
<div class="_autoGap">
<div class="_gaps_m">
<FormLink :to="`/settings/webhook/new`">
Create webhook
</FormLink>

View file

@ -1,18 +1,18 @@
<template>
<div class="_autoGap">
<div class="_gaps_m">
<MkTab v-model="tab">
<option value="soft">{{ i18n.ts._wordMute.soft }}</option>
<option value="hard">{{ i18n.ts._wordMute.hard }}</option>
</MkTab>
<div>
<div v-show="tab === 'soft'" class="_autoGap">
<div v-show="tab === 'soft'" class="_gaps_m">
<MkInfo>{{ i18n.ts._wordMute.softDescription }}</MkInfo>
<FormTextarea v-model="softMutedWords">
<span>{{ i18n.ts._wordMute.muteWords }}</span>
<template #caption>{{ i18n.ts._wordMute.muteWordsDescription }}<br>{{ i18n.ts._wordMute.muteWordsDescription2 }}</template>
</FormTextarea>
</div>
<div v-show="tab === 'hard'" class="_autoGap">
<div v-show="tab === 'hard'" class="_gaps_m">
<MkInfo>{{ i18n.ts._wordMute.hardDescription }} {{ i18n.ts.reflectMayTakeTime }}</MkInfo>
<FormTextarea v-model="hardMutedWords">
<span>{{ i18n.ts._wordMute.muteWords }}</span>

View file

@ -2,7 +2,7 @@
<MkStickyContainer>
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
<MkSpacer :content-max="800" :margin-min="16" :margin-max="32">
<div class="cwepdizn _autoGap">
<div class="cwepdizn _gaps_m">
<FormFolder :default-open="true">
<template #label>{{ i18n.ts.backgroundColor }}</template>
<div class="cwepdizn-colors">
@ -45,7 +45,7 @@
<template #icon><i class="ti ti-code"></i></template>
<template #label>{{ i18n.ts.editCode }}</template>
<div class="_autoGap">
<div class="_gaps_m">
<FormTextarea v-model="themeCode" tall>
<template #label>{{ i18n.ts._theme.code }}</template>
</FormTextarea>
@ -56,7 +56,7 @@
<FormFolder :default-open="false">
<template #label>{{ i18n.ts.addDescription }}</template>
<div class="_autoGap">
<div class="_gaps_m">
<FormTextarea v-model="description">
<template #label>{{ i18n.ts._theme.description }}</template>
</FormTextarea>

View file

@ -3,7 +3,7 @@
<template #header><MkPageHeader v-model:tab="tab" :actions="headerActions" :tabs="headerTabs"/></template>
<MkSpacer :content-max="600" :margin-min="16" :margin-max="32">
<FormSuspense :p="init">
<div v-if="tab === 'overview'" class="_autoGap">
<div v-if="tab === 'overview'" class="_gaps_m">
<div class="aeakzknw">
<MkAvatar class="avatar" :user="user" :show-indicator="true"/>
<div class="body">
@ -55,7 +55,7 @@
<FormSection>
<template #label>ActivityPub</template>
<div class="_autoGap">
<div class="_gaps_m">
<div style="display: flex; flex-direction: column; gap: 1em;">
<MkKeyValue v-if="user.host" oneline>
<template #key>{{ i18n.ts.instanceInfo }}</template>
@ -86,7 +86,7 @@
</div>
</FormSection>
</div>
<div v-else-if="tab === 'moderation'" class="_autoGap">
<div v-else-if="tab === 'moderation'" class="_gaps_m">
<FormSwitch v-if="user.host == null && $i.isAdmin && (moderator || !user.isAdmin)" v-model="moderator" @update:model-value="toggleModerator">{{ i18n.ts.moderator }}</FormSwitch>
<FormSwitch v-model="silenced" @update:model-value="toggleSilence">{{ i18n.ts.silence }}</FormSwitch>
<FormSwitch v-model="suspended" @update:model-value="toggleSuspend">{{ i18n.ts.suspend }}</FormSwitch>
@ -126,7 +126,7 @@
</FormInput>
</FormSection>
</div>
<div v-else-if="tab === 'chart'" class="_autoGap">
<div v-else-if="tab === 'chart'" class="_gaps_m">
<div class="cmhjzshm">
<div class="selects">
<MkSelect v-model="chartSrc" style="margin: 0 10px 0 0; flex: 1;">
@ -141,7 +141,7 @@
</div>
</div>
</div>
<div v-else-if="tab === 'raw'" class="_autoGap">
<div v-else-if="tab === 'raw'" class="_gaps_m">
<MkObjectView v-if="info && $i.isAdmin" tall :value="info">
</MkObjectView>

View file

@ -1,12 +1,12 @@
<template>
<MkSpacer :content-max="narrow ? 800 : 1100">
<div ref="rootEl" class="ftskorzw" :class="{ wide: !narrow }" style="container-type: inline-size;">
<div class="main _autoGap">
<div class="main _gaps">
<!-- TODO -->
<!-- <div class="punished" v-if="user.isSuspended"><i class="ti ti-alert-triangle" style="margin-right: 8px;"></i> {{ i18n.ts.userSuspended }}</div> -->
<!-- <div class="punished" v-if="user.isSilenced"><i class="ti ti-alert-triangle" style="margin-right: 8px;"></i> {{ i18n.ts.userSilenced }}</div> -->
<div class="profile _autoGap">
<div class="profile _gaps">
<MkRemoteCaution v-if="user.host != null" :href="user.url" class="warn"/>
<div :key="user.id" class="main _panel">
@ -85,23 +85,23 @@
</div>
</div>
<div class="contents">
<div v-if="user.pinnedNotes.length > 0" class="_autoGap_half">
<div class="contents _gaps">
<div v-if="user.pinnedNotes.length > 0" class="_gaps">
<XNote v-for="note in user.pinnedNotes" :key="note.id" class="note _panel" :note="note" :pinned="true"/>
</div>
<MkInfo v-else-if="$i && $i.id === user.id">{{ i18n.ts.userPagePinTip }}</MkInfo>
<template v-if="narrow">
<XPhotos :key="user.id" :user="user"/>
<XActivity :key="user.id" :user="user" style="margin-top: var(--margin);"/>
<XActivity :key="user.id" :user="user"/>
</template>
</div>
<div>
<XUserTimeline :user="user"/>
</div>
</div>
<div v-if="!narrow" class="sub" style="container-type: inline-size;">
<div v-if="!narrow" class="sub _gaps" style="container-type: inline-size;">
<XPhotos :key="user.id" :user="user"/>
<XActivity :key="user.id" :user="user" style="margin-top: var(--margin);"/>
<XActivity :key="user.id" :user="user"/>
</div>
</div>
</MkSpacer>

View file

@ -1,7 +1,7 @@
<template>
<form class="mk-setup" @submit.prevent="submit()">
<h1>Welcome to Misskey!</h1>
<div class="_autoGap">
<div class="_gaps_m">
<p>{{ $ts.intro }}</p>
<MkInput v-model="username" pattern="^[a-zA-Z0-9_]{1,20}$" :spellcheck="false" required data-cy-admin-username>
<template #label>{{ $ts.username }}</template>

View file

@ -256,18 +256,24 @@ hr {
margin: var(--margin) 0;
}
._autoGap {
._gaps_m {
display: flex;
flex-direction: column;
gap: 1.5em;
}
._autoGap_half {
._gaps_s {
display: flex;
flex-direction: column;
gap: 0.75em;
}
._gaps {
display: flex;
flex-direction: column;
gap: var(--margin);
}
._buttons {
display: flex;
gap: 8px;