This commit is contained in:
parent
dc5b4a0402
commit
82c4f694a0
|
@ -9,7 +9,7 @@
|
||||||
</I18n>
|
</I18n>
|
||||||
</template>
|
</template>
|
||||||
<MkSpacer :margin-min="20" :margin-max="28">
|
<MkSpacer :margin-min="20" :margin-max="28">
|
||||||
<div class="dpvffvvy _autoGap">
|
<div class="dpvffvvy _gaps_m">
|
||||||
<div class="">
|
<div class="">
|
||||||
<MkTextarea v-model="comment">
|
<MkTextarea v-model="comment">
|
||||||
<template #label>{{ i18n.ts.details }}</template>
|
<template #label>{{ i18n.ts.details }}</template>
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
<template #header>{{ i18n.ts.forgotPassword }}</template>
|
<template #header>{{ i18n.ts.forgotPassword }}</template>
|
||||||
|
|
||||||
<form v-if="instance.enableEmail" class="bafeceda" @submit.prevent="onSubmit">
|
<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>
|
<MkInput v-model="username" type="text" pattern="^[a-zA-Z0-9_]+$" :spellcheck="false" autofocus required>
|
||||||
<template #label>{{ i18n.ts.username }}</template>
|
<template #label>{{ i18n.ts.username }}</template>
|
||||||
<template #prefix>@</template>
|
<template #prefix>@</template>
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<MkSpacer :margin-min="20" :margin-max="32">
|
<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)">
|
<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">
|
<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>
|
<template #label><span v-text="form[item].label || item"></span><span v-if="form[item].required === false"> ({{ $ts.optional }})</span></template>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
<template #header>{{ i18n.ts.notificationSetting }}</template>
|
<template #header>{{ i18n.ts.notificationSetting }}</template>
|
||||||
|
|
||||||
<MkSpacer :margin-min="20" :margin-max="28">
|
<MkSpacer :margin-min="20" :margin-max="28">
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<template v-if="showGlobalToggle">
|
<template v-if="showGlobalToggle">
|
||||||
<MkSwitch v-model="useGlobalSetting">
|
<MkSwitch v-model="useGlobalSetting">
|
||||||
{{ i18n.ts.useGlobalSetting }}
|
{{ i18n.ts.useGlobalSetting }}
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
<template>
|
<template>
|
||||||
<form class="eppvobhk" :class="{ signing, totpLogin }" @submit.prevent="onSubmit">
|
<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>
|
<div v-show="withAvatar" class="avatar" :style="{ backgroundImage: user ? `url('${ user.avatarUrl }')` : null, marginBottom: message ? '1.5em' : null }"></div>
|
||||||
<MkInfo v-if="message">
|
<MkInfo v-if="message">
|
||||||
{{ message }}
|
{{ message }}
|
||||||
</MkInfo>
|
</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">
|
<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 #prefix>@</template>
|
||||||
<template #suffix>@{{ host }}</template>
|
<template #suffix>@{{ host }}</template>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<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>
|
<MkInput v-if="instance.disableRegistration" v-model="invitationCode" type="text" :spellcheck="false" required>
|
||||||
<template #label>{{ i18n.ts.invitationCode }}</template>
|
<template #label>{{ i18n.ts.invitationCode }}</template>
|
||||||
<template #prefix><i class="ti ti-key"></i></template>
|
<template #prefix><i class="ti ti-key"></i></template>
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
<template #header>{{ title || $ts.generateAccessToken }}</template>
|
<template #header>{{ title || $ts.generateAccessToken }}</template>
|
||||||
|
|
||||||
<MkSpacer :margin-min="20" :margin-max="28">
|
<MkSpacer :margin-min="20" :margin-max="28">
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<div v-if="information">
|
<div v-if="information">
|
||||||
<MkInfo warn>{{ information }}</MkInfo>
|
<MkInfo warn>{{ information }}</MkInfo>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
|
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
|
||||||
<div style="overflow: clip;">
|
<div style="overflow: clip;">
|
||||||
<MkSpacer :content-max="600" :margin-min="20">
|
<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 }">
|
<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"/>
|
<img src="/client-assets/about-icon.png" alt="" class="icon" draggable="false" @load="iconLoaded" @click="gravity"/>
|
||||||
<div class="misskey">Misskey</div>
|
<div class="misskey">Misskey</div>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<MkStickyContainer>
|
<MkStickyContainer>
|
||||||
<template #header><MkPageHeader v-model:tab="tab" :actions="headerActions" :tabs="headerTabs"/></template>
|
<template #header><MkPageHeader v-model:tab="tab" :actions="headerActions" :tabs="headerTabs"/></template>
|
||||||
<MkSpacer v-if="tab === 'overview'" :content-max="600" :margin-min="20">
|
<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="fwhjspax" :style="{ backgroundImage: `url(${ $instance.bannerUrl })` }">
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<img :src="$instance.iconUrl ?? $instance.faviconUrl ?? '/favicon.ico'" alt="" class="icon"/>
|
<img :src="$instance.iconUrl ?? $instance.faviconUrl ?? '/favicon.ico'" alt="" class="icon"/>
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
</MkKeyValue>
|
</MkKeyValue>
|
||||||
|
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<MkKeyValue :copy="version">
|
<MkKeyValue :copy="version">
|
||||||
<template #key>Misskey</template>
|
<template #key>Misskey</template>
|
||||||
<template #value>{{ version }}</template>
|
<template #value>{{ version }}</template>
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
</FormSection>
|
</FormSection>
|
||||||
|
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormSplit>
|
<FormSplit>
|
||||||
<MkKeyValue>
|
<MkKeyValue>
|
||||||
<template #key>{{ i18n.ts.administrator }}</template>
|
<template #key>{{ i18n.ts.administrator }}</template>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<MkStickyContainer>
|
<MkStickyContainer>
|
||||||
<template #header><MkPageHeader v-model:tab="tab" :actions="headerActions" :tabs="headerTabs"/></template>
|
<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">
|
<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">
|
<a class="thumbnail" :href="file.url" target="_blank">
|
||||||
<MkDriveFileThumbnail class="thumbnail" :file="file" fit="contain"/>
|
<MkDriveFileThumbnail class="thumbnail" :file="file" fit="contain"/>
|
||||||
</a>
|
</a>
|
||||||
|
@ -39,7 +39,7 @@
|
||||||
<MkButton danger @click="del"><i class="ti ti-trash"></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="_autoGap">
|
<div v-else-if="tab === 'ip' && info" class="_gaps_m">
|
||||||
<MkInfo v-if="!iAmAdmin" warn>{{ i18n.ts.requireAdminForView }}</MkInfo>
|
<MkInfo v-if="!iAmAdmin" warn>{{ i18n.ts.requireAdminForView }}</MkInfo>
|
||||||
<MkKeyValue v-if="info.requestIp" class="_monospace" :copy="info.requestIp" oneline>
|
<MkKeyValue v-if="info.requestIp" class="_monospace" :copy="info.requestIp" oneline>
|
||||||
<template #key>IP</template>
|
<template #key>IP</template>
|
||||||
|
@ -53,7 +53,7 @@
|
||||||
</MkKeyValue>
|
</MkKeyValue>
|
||||||
</FormSection>
|
</FormSection>
|
||||||
</div>
|
</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 v-if="info" tall :value="info">
|
||||||
</MkObjectView>
|
</MkObjectView>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<template #header><XHeader :actions="headerActions" :tabs="headerTabs"/></template>
|
<template #header><XHeader :actions="headerActions" :tabs="headerTabs"/></template>
|
||||||
<MkSpacer :content-max="900">
|
<MkSpacer :content-max="900">
|
||||||
<div class="uqshojas">
|
<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"/>
|
<MkAd v-if="ad.url" :specify="ad"/>
|
||||||
<MkInput v-model="ad.url" type="url">
|
<MkInput v-model="ad.url" type="url">
|
||||||
<template #label>URL</template>
|
<template #label>URL</template>
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
<MkStickyContainer>
|
<MkStickyContainer>
|
||||||
<template #header><XHeader :actions="headerActions" :tabs="headerTabs"/></template>
|
<template #header><XHeader :actions="headerActions" :tabs="headerTabs"/></template>
|
||||||
<MkSpacer :content-max="900">
|
<MkSpacer :content-max="900">
|
||||||
<div class="ztgjmzrw _autoGap">
|
<div class="ztgjmzrw _gaps_m">
|
||||||
<section v-for="announcement in announcements" class="">
|
<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">
|
<MkInput v-model="announcement.title">
|
||||||
<template #label>{{ i18n.ts.title }}</template>
|
<template #label>{{ i18n.ts.title }}</template>
|
||||||
</MkInput>
|
</MkInput>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<FormSuspense :p="init">
|
<FormSuspense :p="init">
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormRadios v-model="provider">
|
<FormRadios v-model="provider">
|
||||||
<option :value="null">{{ i18n.ts.none }} ({{ i18n.ts.notRecommended }})</option>
|
<option :value="null">{{ i18n.ts.none }} ({{ i18n.ts.notRecommended }})</option>
|
||||||
<option value="hcaptcha">hCaptcha</option>
|
<option value="hcaptcha">hCaptcha</option>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<template #header><XHeader :actions="headerActions" :tabs="headerTabs"/></template>
|
<template #header><XHeader :actions="headerActions" :tabs="headerTabs"/></template>
|
||||||
<MkSpacer :content-max="700" :margin-min="16" :margin-max="32">
|
<MkSpacer :content-max="700" :margin-min="16" :margin-max="32">
|
||||||
<FormSuspense :p="init">
|
<FormSuspense :p="init">
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormSwitch v-model="enableEmail">
|
<FormSwitch v-model="enableEmail">
|
||||||
<template #label>{{ i18n.ts.enableEmail }} ({{ i18n.ts.recommended }})</template>
|
<template #label>{{ i18n.ts.enableEmail }} ({{ i18n.ts.recommended }})</template>
|
||||||
<template #caption>{{ i18n.ts.emailConfigInfo }}</template>
|
<template #caption>{{ i18n.ts.emailConfigInfo }}</template>
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<template #label>{{ i18n.ts.smtpConfig }}</template>
|
<template #label>{{ i18n.ts.smtpConfig }}</template>
|
||||||
|
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormSplit :min-width="280">
|
<FormSplit :min-width="280">
|
||||||
<FormInput v-model="smtpHost">
|
<FormInput v-model="smtpHost">
|
||||||
<template #label>{{ i18n.ts.smtpHost }}</template>
|
<template #label>{{ i18n.ts.smtpHost }}</template>
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
<template #header>:{{ emoji.name }}:</template>
|
<template #header>:{{ emoji.name }}:</template>
|
||||||
|
|
||||||
<MkSpacer :margin-min="20" :margin-max="28">
|
<MkSpacer :margin-min="20" :margin-max="28">
|
||||||
<div class="yigymqpb _autoGap">
|
<div class="yigymqpb _gaps_m">
|
||||||
<img :src="`/emoji/${emoji.name}.webp`" class="img"/>
|
<img :src="`/emoji/${emoji.name}.webp`" class="img"/>
|
||||||
<MkInput v-model="name">
|
<MkInput v-model="name">
|
||||||
<template #label>{{ i18n.ts.name }}</template>
|
<template #label>{{ i18n.ts.name }}</template>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<FormSuspense :p="init">
|
<FormSuspense :p="init">
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormSwitch v-model="enableDiscordIntegration">
|
<FormSwitch v-model="enableDiscordIntegration">
|
||||||
<template #label>{{ i18n.ts.enable }}</template>
|
<template #label>{{ i18n.ts.enable }}</template>
|
||||||
</FormSwitch>
|
</FormSwitch>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<FormSuspense :p="init">
|
<FormSuspense :p="init">
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormSwitch v-model="enableGithubIntegration">
|
<FormSwitch v-model="enableGithubIntegration">
|
||||||
<template #label>{{ i18n.ts.enable }}</template>
|
<template #label>{{ i18n.ts.enable }}</template>
|
||||||
</FormSwitch>
|
</FormSwitch>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<FormSuspense :p="init">
|
<FormSuspense :p="init">
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormSwitch v-model="enableTwitterIntegration">
|
<FormSwitch v-model="enableTwitterIntegration">
|
||||||
<template #label>{{ i18n.ts.enable }}</template>
|
<template #label>{{ i18n.ts.enable }}</template>
|
||||||
</FormSwitch>
|
</FormSwitch>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
|
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
|
||||||
<MkSpacer :content-max="700" :margin-min="16" :margin-max="32">
|
<MkSpacer :content-max="700" :margin-min="16" :margin-max="32">
|
||||||
<FormSuspense :p="init">
|
<FormSuspense :p="init">
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormFolder>
|
<FormFolder>
|
||||||
<template #icon><i class="ti ti-brand-twitter"></i></template>
|
<template #icon><i class="ti ti-brand-twitter"></i></template>
|
||||||
<template #label>Twitter</template>
|
<template #label>Twitter</template>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<template #header><XHeader :actions="headerActions" :tabs="headerTabs"/></template>
|
<template #header><XHeader :actions="headerActions" :tabs="headerTabs"/></template>
|
||||||
<MkSpacer :content-max="700" :margin-min="16" :margin-max="32">
|
<MkSpacer :content-max="700" :margin-min="16" :margin-max="32">
|
||||||
<FormSuspense :p="init">
|
<FormSuspense :p="init">
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormSwitch v-model="useObjectStorage">{{ i18n.ts.useObjectStorage }}</FormSwitch>
|
<FormSwitch v-model="useObjectStorage">{{ i18n.ts.useObjectStorage }}</FormSwitch>
|
||||||
|
|
||||||
<template v-if="useObjectStorage">
|
<template v-if="useObjectStorage">
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<template #header><XHeader :actions="headerActions" :tabs="headerTabs"/></template>
|
<template #header><XHeader :actions="headerActions" :tabs="headerTabs"/></template>
|
||||||
<MkSpacer :content-max="700" :margin-min="16" :margin-max="32">
|
<MkSpacer :content-max="700" :margin-min="16" :margin-max="32">
|
||||||
<FormSuspense :p="init">
|
<FormSuspense :p="init">
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormFolder>
|
<FormFolder>
|
||||||
<template #icon><i class="ti ti-shield"></i></template>
|
<template #icon><i class="ti ti-shield"></i></template>
|
||||||
<template #label>{{ i18n.ts.botProtection }}</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-if="sensitiveMediaDetection === 'remote'" #suffix>{{ i18n.ts.remoteOnly }}</template>
|
||||||
<template v-else #suffix>{{ i18n.ts.none }}</template>
|
<template v-else #suffix>{{ i18n.ts.none }}</template>
|
||||||
|
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<span>{{ i18n.ts._sensitiveMediaDetection.description }}</span>
|
<span>{{ i18n.ts._sensitiveMediaDetection.description }}</span>
|
||||||
|
|
||||||
<FormRadios v-model="sensitiveMediaDetection">
|
<FormRadios v-model="sensitiveMediaDetection">
|
||||||
|
@ -63,7 +63,7 @@
|
||||||
<template v-if="enableActiveEmailValidation" #suffix>Enabled</template>
|
<template v-if="enableActiveEmailValidation" #suffix>Enabled</template>
|
||||||
<template v-else #suffix>Disabled</template>
|
<template v-else #suffix>Disabled</template>
|
||||||
|
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<span>{{ i18n.ts.activeEmailValidationDescription }}</span>
|
<span>{{ i18n.ts.activeEmailValidationDescription }}</span>
|
||||||
<FormSwitch v-model="enableActiveEmailValidation" @update:model-value="save">
|
<FormSwitch v-model="enableActiveEmailValidation" @update:model-value="save">
|
||||||
<template #label>Enable</template>
|
<template #label>Enable</template>
|
||||||
|
@ -76,7 +76,7 @@
|
||||||
<template v-if="enableIpLogging" #suffix>Enabled</template>
|
<template v-if="enableIpLogging" #suffix>Enabled</template>
|
||||||
<template v-else #suffix>Disabled</template>
|
<template v-else #suffix>Disabled</template>
|
||||||
|
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormSwitch v-model="enableIpLogging" @update:model-value="save">
|
<FormSwitch v-model="enableIpLogging" @update:model-value="save">
|
||||||
<template #label>Enable</template>
|
<template #label>Enable</template>
|
||||||
</FormSwitch>
|
</FormSwitch>
|
||||||
|
@ -86,7 +86,7 @@
|
||||||
<FormFolder>
|
<FormFolder>
|
||||||
<template #label>Summaly Proxy</template>
|
<template #label>Summaly Proxy</template>
|
||||||
|
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormInput v-model="summalyProxy">
|
<FormInput v-model="summalyProxy">
|
||||||
<template #prefix><i class="ti ti-link"></i></template>
|
<template #prefix><i class="ti ti-link"></i></template>
|
||||||
<template #label>Summaly Proxy URL</template>
|
<template #label>Summaly Proxy URL</template>
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<template #header><XHeader :actions="headerActions" :tabs="headerTabs"/></template>
|
<template #header><XHeader :actions="headerActions" :tabs="headerTabs"/></template>
|
||||||
<MkSpacer :content-max="700" :margin-min="16" :margin-max="32">
|
<MkSpacer :content-max="700" :margin-min="16" :margin-max="32">
|
||||||
<FormSuspense :p="init">
|
<FormSuspense :p="init">
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormInput v-model="name">
|
<FormInput v-model="name">
|
||||||
<template #label>{{ i18n.ts.instanceName }}</template>
|
<template #label>{{ i18n.ts.instanceName }}</template>
|
||||||
</FormInput>
|
</FormInput>
|
||||||
|
@ -35,7 +35,7 @@
|
||||||
</FormTextarea>
|
</FormTextarea>
|
||||||
|
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<div class="_autoGap_half">
|
<div class="_gaps_s">
|
||||||
<FormSwitch v-model="enableRegistration">
|
<FormSwitch v-model="enableRegistration">
|
||||||
<template #label>{{ i18n.ts.enableRegistration }}</template>
|
<template #label>{{ i18n.ts.enableRegistration }}</template>
|
||||||
</FormSwitch>
|
</FormSwitch>
|
||||||
|
@ -47,7 +47,7 @@
|
||||||
</FormSection>
|
</FormSection>
|
||||||
|
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<div class="_autoGap_half">
|
<div class="_gaps_s">
|
||||||
<FormSwitch v-model="enableLocalTimeline">{{ i18n.ts.enableLocalTimeline }}</FormSwitch>
|
<FormSwitch v-model="enableLocalTimeline">{{ i18n.ts.enableLocalTimeline }}</FormSwitch>
|
||||||
<FormSwitch v-model="enableGlobalTimeline">{{ i18n.ts.enableGlobalTimeline }}</FormSwitch>
|
<FormSwitch v-model="enableGlobalTimeline">{{ i18n.ts.enableGlobalTimeline }}</FormSwitch>
|
||||||
<FormInfo>{{ i18n.ts.disablingTimelinesInfo }}</FormInfo>
|
<FormInfo>{{ i18n.ts.disablingTimelinesInfo }}</FormInfo>
|
||||||
|
@ -57,7 +57,7 @@
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<template #label>{{ i18n.ts.theme }}</template>
|
<template #label>{{ i18n.ts.theme }}</template>
|
||||||
|
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormInput v-model="iconUrl">
|
<FormInput v-model="iconUrl">
|
||||||
<template #prefix><i class="ti ti-link"></i></template>
|
<template #prefix><i class="ti ti-link"></i></template>
|
||||||
<template #label>{{ i18n.ts.iconUrl }}</template>
|
<template #label>{{ i18n.ts.iconUrl }}</template>
|
||||||
|
@ -94,7 +94,7 @@
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<template #label>{{ i18n.ts.files }}</template>
|
<template #label>{{ i18n.ts.files }}</template>
|
||||||
|
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormSwitch v-model="cacheRemoteFiles">
|
<FormSwitch v-model="cacheRemoteFiles">
|
||||||
<template #label>{{ i18n.ts.cacheRemoteFiles }}</template>
|
<template #label>{{ i18n.ts.cacheRemoteFiles }}</template>
|
||||||
<template #caption>{{ i18n.ts.cacheRemoteFilesDescription }}</template>
|
<template #caption>{{ i18n.ts.cacheRemoteFilesDescription }}</template>
|
||||||
|
@ -119,7 +119,7 @@
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<template #label>ServiceWorker</template>
|
<template #label>ServiceWorker</template>
|
||||||
|
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormSwitch v-model="enableServiceWorker">
|
<FormSwitch v-model="enableServiceWorker">
|
||||||
<template #label>{{ i18n.ts.enableServiceworker }}</template>
|
<template #label>{{ i18n.ts.enableServiceworker }}</template>
|
||||||
<template #caption>{{ i18n.ts.serviceworkerInfo }}</template>
|
<template #caption>{{ i18n.ts.serviceworkerInfo }}</template>
|
||||||
|
@ -142,7 +142,7 @@
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<template #label>DeepL Translation</template>
|
<template #label>DeepL Translation</template>
|
||||||
|
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormInput v-model="deeplAuthKey">
|
<FormInput v-model="deeplAuthKey">
|
||||||
<template #prefix><i class="ti ti-key"></i></template>
|
<template #prefix><i class="ti ti-key"></i></template>
|
||||||
<template #label>DeepL Auth Key</template>
|
<template #label>DeepL Auth Key</template>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<MkStickyContainer>
|
<MkStickyContainer>
|
||||||
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
|
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
|
||||||
<MkSpacer :content-max="800">
|
<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">
|
<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="header"><span v-if="$i && !announcement.isRead">🆕 </span>{{ announcement.title }}</div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
<MkStickyContainer>
|
<MkStickyContainer>
|
||||||
<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="_autoGap">
|
<div class="_gaps_m">
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<MkInput v-model="endpoint" :datalist="endpoints" @update:model-value="onEndpointChange()">
|
<MkInput v-model="endpoint" :datalist="endpoints" @update:model-value="onEndpointChange()">
|
||||||
<template #label>Endpoint</template>
|
<template #label>Endpoint</template>
|
||||||
</MkInput>
|
</MkInput>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<MkStickyContainer>
|
<MkStickyContainer>
|
||||||
<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="_autoGap">
|
<div class="_gaps_m">
|
||||||
<MkInput v-model="name">
|
<MkInput v-model="name">
|
||||||
<template #label>{{ i18n.ts.name }}</template>
|
<template #label>{{ i18n.ts.name }}</template>
|
||||||
</MkInput>
|
</MkInput>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<MkStickyContainer>
|
<MkStickyContainer>
|
||||||
<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="_autoGap">
|
<div class="_gaps_m">
|
||||||
<MkInput v-model="title">
|
<MkInput v-model="title">
|
||||||
<template #label>{{ i18n.ts._play.title }}</template>
|
<template #label>{{ i18n.ts._play.title }}</template>
|
||||||
</MkInput>
|
</MkInput>
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<MkSpacer :content-max="700">
|
<MkSpacer :content-max="700">
|
||||||
<div v-if="tab === 'featured'" class="">
|
<div v-if="tab === 'featured'" class="">
|
||||||
<MkPagination v-slot="{items}" :pagination="featuredFlashsPagination">
|
<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"/>
|
<MkFlashPreview v-for="flash in items" :key="flash.id" class="" :flash="flash"/>
|
||||||
</div>
|
</div>
|
||||||
</MkPagination>
|
</MkPagination>
|
||||||
|
@ -13,7 +13,7 @@
|
||||||
<div v-else-if="tab === 'my'" class="my">
|
<div v-else-if="tab === 'my'" class="my">
|
||||||
<MkButton class="new" @click="create()"><i class="ti ti-plus"></i></MkButton>
|
<MkButton class="new" @click="create()"><i class="ti ti-plus"></i></MkButton>
|
||||||
<MkPagination v-slot="{items}" :pagination="myFlashsPagination">
|
<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"/>
|
<MkFlashPreview v-for="flash in items" :key="flash.id" class="" :flash="flash"/>
|
||||||
</div>
|
</div>
|
||||||
</MkPagination>
|
</MkPagination>
|
||||||
|
@ -21,7 +21,7 @@
|
||||||
|
|
||||||
<div v-else-if="tab === 'liked'" class="">
|
<div v-else-if="tab === 'liked'" class="">
|
||||||
<MkPagination v-slot="{items}" :pagination="likedFlashsPagination">
|
<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"/>
|
<MkFlashPreview v-for="like in items" :key="like.flash.id" class="" :flash="like.flash"/>
|
||||||
</div>
|
</div>
|
||||||
</MkPagination>
|
</MkPagination>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<MkStickyContainer>
|
<MkStickyContainer>
|
||||||
<template #header><MkPageHeader v-model:tab="tab" :actions="headerActions" :tabs="headerTabs"/></template>
|
<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">
|
<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">
|
<div class="fnfelxur">
|
||||||
<img :src="faviconUrl" alt="" class="icon"/>
|
<img :src="faviconUrl" alt="" class="icon"/>
|
||||||
<span class="name">{{ instance.name || `(${i18n.ts.unknown})` }}</span>
|
<span class="name">{{ instance.name || `(${i18n.ts.unknown})` }}</span>
|
||||||
|
@ -28,7 +28,7 @@
|
||||||
|
|
||||||
<FormSection v-if="iAmModerator">
|
<FormSection v-if="iAmModerator">
|
||||||
<template #label>Moderation</template>
|
<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="suspended" @update:model-value="toggleSuspend">{{ i18n.ts.stopActivityDelivery }}</FormSwitch>
|
||||||
<FormSwitch v-model="isBlocked" @update:model-value="toggleBlock">{{ i18n.ts.blockThisInstance }}</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>
|
<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>
|
<FormLink :to="`https://${host}/manifest.json`" external style="margin-bottom: 8px;">manifest.json</FormLink>
|
||||||
</FormSection>
|
</FormSection>
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="tab === 'chart'" class="_autoGap">
|
<div v-else-if="tab === 'chart'" class="_gaps_m">
|
||||||
<div class="cmhjzshl">
|
<div class="cmhjzshl">
|
||||||
<div class="selects">
|
<div class="selects">
|
||||||
<MkSelect v-model="chartSrc" style="margin: 0 10px 0 0; flex: 1;">
|
<MkSelect v-model="chartSrc" style="margin: 0 10px 0 0; flex: 1;">
|
||||||
|
@ -95,14 +95,14 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</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;">
|
<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}`">
|
<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"/>
|
<MkUserCardMini :user="user"/>
|
||||||
</MkA>
|
</MkA>
|
||||||
</MkPagination>
|
</MkPagination>
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="tab === 'raw'" class="_autoGap">
|
<div v-else-if="tab === 'raw'" class="_gaps_m">
|
||||||
<MkObjectView tall :value="instance">
|
<MkObjectView tall :value="instance">
|
||||||
</MkObjectView>
|
</MkObjectView>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<MkSpacer :content-max="700">
|
<MkSpacer :content-max="700">
|
||||||
<div class="shaynizk">
|
<div class="shaynizk">
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<MkInput v-model="name">
|
<MkInput v-model="name">
|
||||||
<template #label>{{ i18n.ts.name }}</template>
|
<template #label>{{ i18n.ts.name }}</template>
|
||||||
</MkInput>
|
</MkInput>
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="tab === 'settings'">
|
<div v-if="tab === 'settings'">
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<MkInput v-model="title">
|
<MkInput v-model="title">
|
||||||
<template #label>{{ $ts._pages.title }}</template>
|
<template #label>{{ $ts._pages.title }}</template>
|
||||||
</MkInput>
|
</MkInput>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<MkStickyContainer>
|
<MkStickyContainer>
|
||||||
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
|
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
|
||||||
<MkSpacer :content-max="600" :margin-min="16">
|
<MkSpacer :content-max="600" :margin-min="16">
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormSplit>
|
<FormSplit>
|
||||||
<MkKeyValue>
|
<MkKeyValue>
|
||||||
<template #key>{{ i18n.ts._registry.domain }}</template>
|
<template #key>{{ i18n.ts._registry.domain }}</template>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<MkStickyContainer>
|
<MkStickyContainer>
|
||||||
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
|
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
|
||||||
<MkSpacer :content-max="600" :margin-min="16">
|
<MkSpacer :content-max="600" :margin-min="16">
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormInfo warn>{{ i18n.ts.editTheseSettingsMayBreakAccount }}</FormInfo>
|
<FormInfo warn>{{ i18n.ts.editTheseSettingsMayBreakAccount }}</FormInfo>
|
||||||
|
|
||||||
<template v-if="value">
|
<template v-if="value">
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<MkStickyContainer>
|
<MkStickyContainer>
|
||||||
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
|
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
|
||||||
<MkSpacer v-if="token" :content-max="700" :margin-min="16" :margin-max="32">
|
<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">
|
<FormInput v-model="password" type="password">
|
||||||
<template #prefix><i class="ti ti-lock"></i></template>
|
<template #prefix><i class="ti ti-lock"></i></template>
|
||||||
<template #label>{{ i18n.ts.newPassword }}</template>
|
<template #label>{{ i18n.ts.newPassword }}</template>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<MkKeyValue>
|
<MkKeyValue>
|
||||||
<template #key>ID</template>
|
<template #key>ID</template>
|
||||||
<template #value><span class="_monospace">{{ $i.id }}</span></template>
|
<template #value><span class="_monospace">{{ $i.id }}</span></template>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormSuspense :p="init">
|
<FormSuspense :p="init">
|
||||||
<MkButton primary @click="addAccount"><i class="ti ti-plus"></i> {{ i18n.ts.addAccount }}</MkButton>
|
<MkButton primary @click="addAccount"><i class="ti ti-plus"></i> {{ i18n.ts.addAccount }}</MkButton>
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<MkButton primary @click="generateToken">{{ i18n.ts.generateAccessToken }}</MkButton>
|
<MkButton primary @click="generateToken">{{ i18n.ts.generateAccessToken }}</MkButton>
|
||||||
<FormLink to="/settings/apps">{{ i18n.ts.manageAccessTokens }}</FormLink>
|
<FormLink to="/settings/apps">{{ i18n.ts.manageAccessTokens }}</FormLink>
|
||||||
<FormLink to="/api-console" :behavior="isDesktop ? 'window' : null">API console</FormLink>
|
<FormLink to="/api-console" :behavior="isDesktop ? 'window' : null">API console</FormLink>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormPagination ref="list" :pagination="pagination">
|
<FormPagination ref="list" :pagination="pagination">
|
||||||
<template #empty>
|
<template #empty>
|
||||||
<div class="_fullinfo">
|
<div class="_fullinfo">
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormInfo warn>{{ i18n.ts.customCssWarn }}</FormInfo>
|
<FormInfo warn>{{ i18n.ts.customCssWarn }}</FormInfo>
|
||||||
|
|
||||||
<FormTextarea v-model="localCustomCss" manual-save tall class="_monospace" style="tab-size: 2;">
|
<FormTextarea v-model="localCustomCss" manual-save tall class="_monospace" style="tab-size: 2;">
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormSwitch v-model="navWindow">{{ i18n.ts.defaultNavigationBehaviour }}: {{ i18n.ts.openInWindow }}</FormSwitch>
|
<FormSwitch v-model="navWindow">{{ i18n.ts.defaultNavigationBehaviour }}: {{ i18n.ts.openInWindow }}</FormSwitch>
|
||||||
|
|
||||||
<FormSwitch v-model="alwaysShowMainColumn">{{ i18n.ts._deck.alwaysShowMainColumn }}</FormSwitch>
|
<FormSwitch v-model="alwaysShowMainColumn">{{ i18n.ts._deck.alwaysShowMainColumn }}</FormSwitch>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormInfo warn>{{ i18n.ts._accountDelete.mayTakeTime }}</FormInfo>
|
<FormInfo warn>{{ i18n.ts._accountDelete.mayTakeTime }}</FormInfo>
|
||||||
<FormInfo>{{ i18n.ts._accountDelete.sendEmail }}</FormInfo>
|
<FormInfo>{{ i18n.ts._accountDelete.sendEmail }}</FormInfo>
|
||||||
<MkButton v-if="!$i.isDeleted" danger @click="deleteAccount">{{ i18n.ts._accountDelete.requestAccountDelete }}</MkButton>
|
<MkButton v-if="!$i.isDeleted" danger @click="deleteAccount">{{ i18n.ts._accountDelete.requestAccountDelete }}</MkButton>
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormSection v-if="!fetching" first>
|
<FormSection v-if="!fetching" first>
|
||||||
<template #label>{{ i18n.ts.usageAmount }}</template>
|
<template #label>{{ i18n.ts.usageAmount }}</template>
|
||||||
|
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<div class="uawsfosz">
|
<div class="uawsfosz">
|
||||||
<div class="meter"><div :style="meterStyle"></div></div>
|
<div class="meter"><div :style="meterStyle"></div></div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -26,7 +26,7 @@
|
||||||
</FormSection>
|
</FormSection>
|
||||||
|
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormLink @click="chooseUploadFolder()">
|
<FormLink @click="chooseUploadFolder()">
|
||||||
{{ i18n.ts.uploadFolder }}
|
{{ i18n.ts.uploadFolder }}
|
||||||
<template #suffix>{{ uploadFolder ? uploadFolder.name : '-' }}</template>
|
<template #suffix>{{ uploadFolder ? uploadFolder.name : '-' }}</template>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormSection first>
|
<FormSection first>
|
||||||
<template #label>{{ i18n.ts.emailAddress }}</template>
|
<template #label>{{ i18n.ts.emailAddress }}</template>
|
||||||
<FormInput v-model="emailAddress" type="email" manual-save>
|
<FormInput v-model="emailAddress" type="email" manual-save>
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<template #label>{{ i18n.ts.emailNotification }}</template>
|
<template #label>{{ i18n.ts.emailNotification }}</template>
|
||||||
|
|
||||||
<div class="_autoGap_half">
|
<div class="_gaps_s">
|
||||||
<FormSwitch v-model="emailNotification_mention">
|
<FormSwitch v-model="emailNotification_mention">
|
||||||
{{ i18n.ts._notification._types.mention }}
|
{{ i18n.ts._notification._types.mention }}
|
||||||
</FormSwitch>
|
</FormSwitch>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormSelect v-model="lang">
|
<FormSelect v-model="lang">
|
||||||
<template #label>{{ i18n.ts.uiLanguage }}</template>
|
<template #label>{{ i18n.ts.uiLanguage }}</template>
|
||||||
<option v-for="x in langs" :key="x[0]" :value="x[0]">{{ x[1] }}</option>
|
<option v-for="x in langs" :key="x[0]" :value="x[0]">{{ x[1] }}</option>
|
||||||
|
@ -25,8 +25,8 @@
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<template #label>{{ i18n.ts.behavior }}</template>
|
<template #label>{{ i18n.ts.behavior }}</template>
|
||||||
|
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<div class="_autoGap_half">
|
<div class="_gaps_s">
|
||||||
<FormSwitch v-model="imageNewTab">{{ i18n.ts.openImageInNewTab }}</FormSwitch>
|
<FormSwitch v-model="imageNewTab">{{ i18n.ts.openImageInNewTab }}</FormSwitch>
|
||||||
<FormSwitch v-model="enableInfiniteScroll">{{ i18n.ts.enableInfiniteScroll }}</FormSwitch>
|
<FormSwitch v-model="enableInfiniteScroll">{{ i18n.ts.enableInfiniteScroll }}</FormSwitch>
|
||||||
<FormSwitch v-model="useReactionPickerForContextMenu">{{ i18n.ts.useReactionPickerForContextMenu }}</FormSwitch>
|
<FormSwitch v-model="useReactionPickerForContextMenu">{{ i18n.ts.useReactionPickerForContextMenu }}</FormSwitch>
|
||||||
|
@ -43,8 +43,8 @@
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<template #label>{{ i18n.ts.appearance }}</template>
|
<template #label>{{ i18n.ts.appearance }}</template>
|
||||||
|
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<div class="_autoGap_half">
|
<div class="_gaps_s">
|
||||||
<FormSwitch v-model="disableAnimatedMfm">{{ i18n.ts.disableAnimatedMfm }}</FormSwitch>
|
<FormSwitch v-model="disableAnimatedMfm">{{ i18n.ts.disableAnimatedMfm }}</FormSwitch>
|
||||||
<FormSwitch v-model="reduceAnimation">{{ i18n.ts.reduceUiAnimation }}</FormSwitch>
|
<FormSwitch v-model="reduceAnimation">{{ i18n.ts.reduceUiAnimation }}</FormSwitch>
|
||||||
<FormSwitch v-model="useBlurEffect">{{ i18n.ts.useBlurEffect }}</FormSwitch>
|
<FormSwitch v-model="useBlurEffect">{{ i18n.ts.useBlurEffect }}</FormSwitch>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormSection first>
|
<FormSection first>
|
||||||
<template #label><i class="ti ti-pencil"></i> {{ i18n.ts._exportOrImport.allNotes }}</template>
|
<template #label><i class="ti ti-pencil"></i> {{ i18n.ts._exportOrImport.allNotes }}</template>
|
||||||
<FormFolder>
|
<FormFolder>
|
||||||
|
@ -18,11 +18,11 @@
|
||||||
</FormSection>
|
</FormSection>
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<template #label><i class="ti ti-users"></i> {{ i18n.ts._exportOrImport.followingList }}</template>
|
<template #label><i class="ti ti-users"></i> {{ i18n.ts._exportOrImport.followingList }}</template>
|
||||||
<div class="_autoGap_half">
|
<div class="_gaps_s">
|
||||||
<FormFolder>
|
<FormFolder>
|
||||||
<template #label>{{ i18n.ts.export }}</template>
|
<template #label>{{ i18n.ts.export }}</template>
|
||||||
<template #icon><i class="ti ti-download"></i></template>
|
<template #icon><i class="ti ti-download"></i></template>
|
||||||
<div class="_autoGap_half">
|
<div class="_gaps_s">
|
||||||
<FormSwitch v-model="excludeMutingUsers">
|
<FormSwitch v-model="excludeMutingUsers">
|
||||||
{{ i18n.ts._exportOrImport.excludeMutingUsers }}
|
{{ i18n.ts._exportOrImport.excludeMutingUsers }}
|
||||||
</FormSwitch>
|
</FormSwitch>
|
||||||
|
@ -41,7 +41,7 @@
|
||||||
</FormSection>
|
</FormSection>
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<template #label><i class="ti ti-users"></i> {{ i18n.ts._exportOrImport.userLists }}</template>
|
<template #label><i class="ti ti-users"></i> {{ i18n.ts._exportOrImport.userLists }}</template>
|
||||||
<div class="_autoGap_half">
|
<div class="_gaps_s">
|
||||||
<FormFolder>
|
<FormFolder>
|
||||||
<template #label>{{ i18n.ts.export }}</template>
|
<template #label>{{ i18n.ts.export }}</template>
|
||||||
<template #icon><i class="ti ti-download"></i></template>
|
<template #icon><i class="ti ti-download"></i></template>
|
||||||
|
@ -56,7 +56,7 @@
|
||||||
</FormSection>
|
</FormSection>
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<template #label><i class="ti ti-user-off"></i> {{ i18n.ts._exportOrImport.muteList }}</template>
|
<template #label><i class="ti ti-user-off"></i> {{ i18n.ts._exportOrImport.muteList }}</template>
|
||||||
<div class="_autoGap_half">
|
<div class="_gaps_s">
|
||||||
<FormFolder>
|
<FormFolder>
|
||||||
<template #label>{{ i18n.ts.export }}</template>
|
<template #label>{{ i18n.ts.export }}</template>
|
||||||
<template #icon><i class="ti ti-download"></i></template>
|
<template #icon><i class="ti ti-download"></i></template>
|
||||||
|
@ -71,7 +71,7 @@
|
||||||
</FormSection>
|
</FormSection>
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<template #label><i class="ti ti-user-off"></i> {{ i18n.ts._exportOrImport.blockingList }}</template>
|
<template #label><i class="ti ti-user-off"></i> {{ i18n.ts._exportOrImport.blockingList }}</template>
|
||||||
<div class="_autoGap_half">
|
<div class="_gaps_s">
|
||||||
<FormFolder>
|
<FormFolder>
|
||||||
<template #label>{{ i18n.ts.export }}</template>
|
<template #label>{{ i18n.ts.export }}</template>
|
||||||
<template #icon><i class="ti ti-download"></i></template>
|
<template #icon><i class="ti ti-download"></i></template>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<MkInfo>{{ i18n.ts._instanceMute.title }}</MkInfo>
|
<MkInfo>{{ i18n.ts._instanceMute.title }}</MkInfo>
|
||||||
<FormTextarea v-model="instanceMutes">
|
<FormTextarea v-model="instanceMutes">
|
||||||
<template #label>{{ i18n.ts._instanceMute.heading }}</template>
|
<template #label>{{ i18n.ts._instanceMute.heading }}</template>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormSection v-if="instance.enableTwitterIntegration">
|
<FormSection v-if="instance.enableTwitterIntegration">
|
||||||
<template #label><i class="ti ti-brand-twitter"></i> Twitter</template>
|
<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>
|
<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>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<MkTab v-model="tab" style="margin-bottom: var(--margin);">
|
<MkTab v-model="tab" style="margin-bottom: var(--margin);">
|
||||||
<option value="mute">{{ i18n.ts.mutedUsers }}</option>
|
<option value="mute">{{ i18n.ts.mutedUsers }}</option>
|
||||||
<option value="block">{{ i18n.ts.blockedUsers }}</option>
|
<option value="block">{{ i18n.ts.blockedUsers }}</option>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormTextarea v-model="items" tall manual-save>
|
<FormTextarea v-model="items" tall manual-save>
|
||||||
<template #label>{{ i18n.ts.navbar }}</template>
|
<template #label>{{ i18n.ts.navbar }}</template>
|
||||||
<template #caption><button class="_textButton" @click="addItem">{{ i18n.ts.addItem }}</button></template>
|
<template #caption><button class="_textButton" @click="addItem">{{ i18n.ts.addItem }}</button></template>
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormLink @click="configure"><template #icon><i class="ti ti-settings"></i></template>{{ i18n.ts.notificationSetting }}</FormLink>
|
<FormLink @click="configure"><template #icon><i class="ti ti-settings"></i></template>{{ i18n.ts.notificationSetting }}</FormLink>
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormLink @click="readAllNotifications">{{ i18n.ts.markAsReadAllNotifications }}</FormLink>
|
<FormLink @click="readAllNotifications">{{ i18n.ts.markAsReadAllNotifications }}</FormLink>
|
||||||
<FormLink @click="readAllUnreadNotes">{{ i18n.ts.markAsReadAllUnreadNotes }}</FormLink>
|
<FormLink @click="readAllUnreadNotes">{{ i18n.ts.markAsReadAllUnreadNotes }}</FormLink>
|
||||||
<FormLink @click="readAllMessagingMessages">{{ i18n.ts.markAsReadAllTalkMessages }}</FormLink>
|
<FormLink @click="readAllMessagingMessages">{{ i18n.ts.markAsReadAllTalkMessages }}</FormLink>
|
||||||
|
@ -11,7 +11,7 @@
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<template #label>{{ i18n.ts.pushNotification }}</template>
|
<template #label>{{ i18n.ts.pushNotification }}</template>
|
||||||
|
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<MkPushNotificationAllowButton ref="allowButton"/>
|
<MkPushNotificationAllowButton ref="allowButton"/>
|
||||||
<FormSwitch :disabled="!pushRegistrationInServer" :model-value="sendReadMessage" @update:model-value="onChangeSendReadMessage">
|
<FormSwitch :disabled="!pushRegistrationInServer" :model-value="sendReadMessage" @update:model-value="onChangeSendReadMessage">
|
||||||
<template #label>{{ i18n.ts.sendPushNotificationReadMessage }}</template>
|
<template #label>{{ i18n.ts.sendPushNotificationReadMessage }}</template>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormSwitch v-model="$i.injectFeaturedNote" @update:model-value="onChangeInjectFeaturedNote">
|
<FormSwitch v-model="$i.injectFeaturedNote" @update:model-value="onChangeInjectFeaturedNote">
|
||||||
{{ i18n.ts.showFeaturedNotesInTimeline }}
|
{{ i18n.ts.showFeaturedNotesInTimeline }}
|
||||||
</FormSwitch>
|
</FormSwitch>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormInfo warn>{{ i18n.ts._plugin.installWarn }}</FormInfo>
|
<FormInfo warn>{{ i18n.ts._plugin.installWarn }}</FormInfo>
|
||||||
|
|
||||||
<FormTextarea v-model="code" tall>
|
<FormTextarea v-model="code" tall>
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
<template>
|
<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>
|
<FormLink to="/settings/plugin/install"><template #icon><i class="ti ti-download"></i></template>{{ i18n.ts._plugin.install }}</FormLink>
|
||||||
|
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<template #label>{{ i18n.ts.manage }}</template>
|
<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>
|
<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>
|
<FormSwitch :model-value="plugin.active" @update:model-value="changeActive(plugin, $event)">{{ i18n.ts.makeActive }}</FormSwitch>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<div :class="$style.buttons">
|
<div :class="$style.buttons">
|
||||||
<MkButton inline primary @click="saveNew">{{ ts._preferencesBackups.saveNew }}</MkButton>
|
<MkButton inline primary @click="saveNew">{{ ts._preferencesBackups.saveNew }}</MkButton>
|
||||||
<MkButton inline @click="loadFile">{{ ts._preferencesBackups.loadFile }}</MkButton>
|
<MkButton inline @click="loadFile">{{ ts._preferencesBackups.loadFile }}</MkButton>
|
||||||
|
@ -8,7 +8,7 @@
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<template #label>{{ ts._preferencesBackups.list }}</template>
|
<template #label>{{ ts._preferencesBackups.list }}</template>
|
||||||
<template v-if="profiles && Object.keys(profiles).length > 0">
|
<template v-if="profiles && Object.keys(profiles).length > 0">
|
||||||
<div class="_autoGap_half">
|
<div class="_gaps_s">
|
||||||
<div
|
<div
|
||||||
v-for="(profile, id) in profiles"
|
v-for="(profile, id) in profiles"
|
||||||
:key="id"
|
:key="id"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<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-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>
|
<FormSwitch v-if="isLocked" v-model="autoAcceptFollowed" @update:model-value="save()">{{ i18n.ts.autoAcceptFollowed }}</FormSwitch>
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
</FormSwitch>
|
</FormSwitch>
|
||||||
|
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormSwitch v-model="rememberNoteVisibility" @update:model-value="save()">{{ i18n.ts.rememberNoteVisibility }}</FormSwitch>
|
<FormSwitch v-model="rememberNoteVisibility" @update:model-value="save()">{{ i18n.ts.rememberNoteVisibility }}</FormSwitch>
|
||||||
<FormFolder v-if="!rememberNoteVisibility">
|
<FormFolder v-if="!rememberNoteVisibility">
|
||||||
<template #label>{{ i18n.ts.defaultNoteVisibility }}</template>
|
<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 === 'followers'" #suffix>{{ i18n.ts._visibility.followers }}</template>
|
||||||
<template v-else-if="defaultNoteVisibility === 'specified'" #suffix>{{ i18n.ts._visibility.specified }}</template>
|
<template v-else-if="defaultNoteVisibility === 'specified'" #suffix>{{ i18n.ts._visibility.specified }}</template>
|
||||||
|
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormSelect v-model="defaultNoteVisibility">
|
<FormSelect v-model="defaultNoteVisibility">
|
||||||
<option value="public">{{ i18n.ts._visibility.public }}</option>
|
<option value="public">{{ i18n.ts._visibility.public }}</option>
|
||||||
<option value="home">{{ i18n.ts._visibility.home }}</option>
|
<option value="home">{{ i18n.ts._visibility.home }}</option>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<div class="llvierxe" :style="{ backgroundImage: $i.bannerUrl ? `url(${ $i.bannerUrl })` : null }">
|
<div class="llvierxe" :style="{ backgroundImage: $i.bannerUrl ? `url(${ $i.bannerUrl })` : null }">
|
||||||
<div class="avatar">
|
<div class="avatar">
|
||||||
<MkAvatar class="avatar" :user="$i" :disable-link="true" @click="changeAvatar"/>
|
<MkAvatar class="avatar" :user="$i" :disable-link="true" @click="changeAvatar"/>
|
||||||
|
@ -37,7 +37,7 @@
|
||||||
<template #icon><i class="ti ti-list"></i></template>
|
<template #icon><i class="ti ti-list"></i></template>
|
||||||
<template #label>{{ i18n.ts._profile.metadataEdit }}</template>
|
<template #label>{{ i18n.ts._profile.metadataEdit }}</template>
|
||||||
|
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormSplit v-for="(record, i) in fields" :min-width="250">
|
<FormSplit v-for="(record, i) in fields" :min-width="250">
|
||||||
<FormInput v-model="record.name" small>
|
<FormInput v-model="record.name" small>
|
||||||
<template #label>{{ i18n.ts._profile.metadataLabel }} #{{ i + 1 }}</template>
|
<template #label>{{ i18n.ts._profile.metadataLabel }} #{{ i + 1 }}</template>
|
||||||
|
@ -58,7 +58,7 @@
|
||||||
<FormFolder>
|
<FormFolder>
|
||||||
<template #label>{{ i18n.ts.advancedSettings }}</template>
|
<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.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>
|
<FormSwitch v-model="profile.isBot">{{ i18n.ts.flagAsBot }}<template #caption>{{ i18n.ts.flagAsBotDescription }}</template></FormSwitch>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FromSlot>
|
<FromSlot>
|
||||||
<template #label>{{ i18n.ts.reactionSettingDescription }}</template>
|
<template #label>{{ i18n.ts.reactionSettingDescription }}</template>
|
||||||
<div v-panel style="border-radius: 6px;">
|
<div v-panel style="border-radius: 6px;">
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormSection first>
|
<FormSection first>
|
||||||
<template #label>{{ i18n.ts.password }}</template>
|
<template #label>{{ i18n.ts.password }}</template>
|
||||||
<MkButton primary @click="change()">{{ i18n.ts.changePassword }}</MkButton>
|
<MkButton primary @click="change()">{{ i18n.ts.changePassword }}</MkButton>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormSelect v-model="type">
|
<FormSelect v-model="type">
|
||||||
<template #label>{{ i18n.ts.sound }}</template>
|
<template #label>{{ i18n.ts.sound }}</template>
|
||||||
<option v-for="x in soundsTypes" :key="x" :value="x">{{ x == null ? i18n.ts.none : x }}</option>
|
<option v-for="x in soundsTypes" :key="x" :value="x">{{ x == null ? i18n.ts.none : x }}</option>
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
<template>
|
<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)}%`">
|
<FormRange v-model="masterVolume" :min="0" :max="1" :step="0.05" :text-converter="(v) => `${Math.floor(v * 100)}%`">
|
||||||
<template #label>{{ i18n.ts.masterVolume }}</template>
|
<template #label>{{ i18n.ts.masterVolume }}</template>
|
||||||
</FormRange>
|
</FormRange>
|
||||||
|
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<template #label>{{ i18n.ts.sounds }}</template>
|
<template #label>{{ i18n.ts.sounds }}</template>
|
||||||
<div class="_autoGap_half">
|
<div class="_gaps_s">
|
||||||
<FormFolder v-for="type in Object.keys(sounds)" :key="type">
|
<FormFolder v-for="type in Object.keys(sounds)" :key="type">
|
||||||
<template #label>{{ $t('_sfx.' + type) }}</template>
|
<template #label>{{ $t('_sfx.' + type) }}</template>
|
||||||
<template #suffix>{{ sounds[type].type ?? i18n.ts.none }}</template>
|
<template #suffix>{{ sounds[type].type ?? i18n.ts.none }}</template>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormSelect v-model="statusbar.type" placeholder="Please select">
|
<FormSelect v-model="statusbar.type" placeholder="Please select">
|
||||||
<template #label>{{ i18n.ts.type }}</template>
|
<template #label>{{ i18n.ts.type }}</template>
|
||||||
<option value="rss">RSS</option>
|
<option value="rss">RSS</option>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormFolder v-for="x in statusbars" :key="x.id">
|
<FormFolder v-for="x in statusbars" :key="x.id">
|
||||||
<template #label>{{ x.type ?? i18n.ts.notSet }}</template>
|
<template #label>{{ x.type ?? i18n.ts.notSet }}</template>
|
||||||
<template #suffix>{{ x.name }}</template>
|
<template #suffix>{{ x.name }}</template>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormTextarea v-model="installThemeCode">
|
<FormTextarea v-model="installThemeCode">
|
||||||
<template #label>{{ i18n.ts._theme.code }}</template>
|
<template #label>{{ i18n.ts._theme.code }}</template>
|
||||||
</FormTextarea>
|
</FormTextarea>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormSelect v-model="selectedThemeId">
|
<FormSelect v-model="selectedThemeId">
|
||||||
<template #label>{{ i18n.ts.theme }}</template>
|
<template #label>{{ i18n.ts.theme }}</template>
|
||||||
<optgroup :label="i18n.ts._theme.installedThemes">
|
<optgroup :label="i18n.ts._theme.installedThemes">
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="_autoGap rsljpzjq">
|
<div class="_gaps_m rsljpzjq">
|
||||||
<div v-adaptive-border class="rfqxtzch _panel">
|
<div v-adaptive-border class="rfqxtzch _panel">
|
||||||
<div class="toggle">
|
<div class="toggle">
|
||||||
<div class="toggleWrapper">
|
<div class="toggleWrapper">
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormInput v-model="name">
|
<FormInput v-model="name">
|
||||||
<template #label>Name</template>
|
<template #label>Name</template>
|
||||||
</FormInput>
|
</FormInput>
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<template #label>Events</template>
|
<template #label>Events</template>
|
||||||
|
|
||||||
<div class="_autoGap_half">
|
<div class="_gaps_s">
|
||||||
<FormSwitch v-model="event_follow">Follow</FormSwitch>
|
<FormSwitch v-model="event_follow">Follow</FormSwitch>
|
||||||
<FormSwitch v-model="event_followed">Followed</FormSwitch>
|
<FormSwitch v-model="event_followed">Followed</FormSwitch>
|
||||||
<FormSwitch v-model="event_note">Note</FormSwitch>
|
<FormSwitch v-model="event_note">Note</FormSwitch>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormInput v-model="name">
|
<FormInput v-model="name">
|
||||||
<template #label>Name</template>
|
<template #label>Name</template>
|
||||||
</FormInput>
|
</FormInput>
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<template #label>Events</template>
|
<template #label>Events</template>
|
||||||
|
|
||||||
<div class="_autoGap_half">
|
<div class="_gaps_s">
|
||||||
<FormSwitch v-model="event_follow">Follow</FormSwitch>
|
<FormSwitch v-model="event_follow">Follow</FormSwitch>
|
||||||
<FormSwitch v-model="event_followed">Followed</FormSwitch>
|
<FormSwitch v-model="event_followed">Followed</FormSwitch>
|
||||||
<FormSwitch v-model="event_note">Note</FormSwitch>
|
<FormSwitch v-model="event_note">Note</FormSwitch>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormLink :to="`/settings/webhook/new`">
|
<FormLink :to="`/settings/webhook/new`">
|
||||||
Create webhook
|
Create webhook
|
||||||
</FormLink>
|
</FormLink>
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<MkTab v-model="tab">
|
<MkTab v-model="tab">
|
||||||
<option value="soft">{{ i18n.ts._wordMute.soft }}</option>
|
<option value="soft">{{ i18n.ts._wordMute.soft }}</option>
|
||||||
<option value="hard">{{ i18n.ts._wordMute.hard }}</option>
|
<option value="hard">{{ i18n.ts._wordMute.hard }}</option>
|
||||||
</MkTab>
|
</MkTab>
|
||||||
<div>
|
<div>
|
||||||
<div v-show="tab === 'soft'" class="_autoGap">
|
<div v-show="tab === 'soft'" class="_gaps_m">
|
||||||
<MkInfo>{{ i18n.ts._wordMute.softDescription }}</MkInfo>
|
<MkInfo>{{ i18n.ts._wordMute.softDescription }}</MkInfo>
|
||||||
<FormTextarea v-model="softMutedWords">
|
<FormTextarea v-model="softMutedWords">
|
||||||
<span>{{ i18n.ts._wordMute.muteWords }}</span>
|
<span>{{ i18n.ts._wordMute.muteWords }}</span>
|
||||||
<template #caption>{{ i18n.ts._wordMute.muteWordsDescription }}<br>{{ i18n.ts._wordMute.muteWordsDescription2 }}</template>
|
<template #caption>{{ i18n.ts._wordMute.muteWordsDescription }}<br>{{ i18n.ts._wordMute.muteWordsDescription2 }}</template>
|
||||||
</FormTextarea>
|
</FormTextarea>
|
||||||
</div>
|
</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>
|
<MkInfo>{{ i18n.ts._wordMute.hardDescription }} {{ i18n.ts.reflectMayTakeTime }}</MkInfo>
|
||||||
<FormTextarea v-model="hardMutedWords">
|
<FormTextarea v-model="hardMutedWords">
|
||||||
<span>{{ i18n.ts._wordMute.muteWords }}</span>
|
<span>{{ i18n.ts._wordMute.muteWords }}</span>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<MkStickyContainer>
|
<MkStickyContainer>
|
||||||
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
|
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
|
||||||
<MkSpacer :content-max="800" :margin-min="16" :margin-max="32">
|
<MkSpacer :content-max="800" :margin-min="16" :margin-max="32">
|
||||||
<div class="cwepdizn _autoGap">
|
<div class="cwepdizn _gaps_m">
|
||||||
<FormFolder :default-open="true">
|
<FormFolder :default-open="true">
|
||||||
<template #label>{{ i18n.ts.backgroundColor }}</template>
|
<template #label>{{ i18n.ts.backgroundColor }}</template>
|
||||||
<div class="cwepdizn-colors">
|
<div class="cwepdizn-colors">
|
||||||
|
@ -45,7 +45,7 @@
|
||||||
<template #icon><i class="ti ti-code"></i></template>
|
<template #icon><i class="ti ti-code"></i></template>
|
||||||
<template #label>{{ i18n.ts.editCode }}</template>
|
<template #label>{{ i18n.ts.editCode }}</template>
|
||||||
|
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormTextarea v-model="themeCode" tall>
|
<FormTextarea v-model="themeCode" tall>
|
||||||
<template #label>{{ i18n.ts._theme.code }}</template>
|
<template #label>{{ i18n.ts._theme.code }}</template>
|
||||||
</FormTextarea>
|
</FormTextarea>
|
||||||
|
@ -56,7 +56,7 @@
|
||||||
<FormFolder :default-open="false">
|
<FormFolder :default-open="false">
|
||||||
<template #label>{{ i18n.ts.addDescription }}</template>
|
<template #label>{{ i18n.ts.addDescription }}</template>
|
||||||
|
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<FormTextarea v-model="description">
|
<FormTextarea v-model="description">
|
||||||
<template #label>{{ i18n.ts._theme.description }}</template>
|
<template #label>{{ i18n.ts._theme.description }}</template>
|
||||||
</FormTextarea>
|
</FormTextarea>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<template #header><MkPageHeader v-model:tab="tab" :actions="headerActions" :tabs="headerTabs"/></template>
|
<template #header><MkPageHeader v-model:tab="tab" :actions="headerActions" :tabs="headerTabs"/></template>
|
||||||
<MkSpacer :content-max="600" :margin-min="16" :margin-max="32">
|
<MkSpacer :content-max="600" :margin-min="16" :margin-max="32">
|
||||||
<FormSuspense :p="init">
|
<FormSuspense :p="init">
|
||||||
<div v-if="tab === 'overview'" class="_autoGap">
|
<div v-if="tab === 'overview'" class="_gaps_m">
|
||||||
<div class="aeakzknw">
|
<div class="aeakzknw">
|
||||||
<MkAvatar class="avatar" :user="user" :show-indicator="true"/>
|
<MkAvatar class="avatar" :user="user" :show-indicator="true"/>
|
||||||
<div class="body">
|
<div class="body">
|
||||||
|
@ -55,7 +55,7 @@
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<template #label>ActivityPub</template>
|
<template #label>ActivityPub</template>
|
||||||
|
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<div style="display: flex; flex-direction: column; gap: 1em;">
|
<div style="display: flex; flex-direction: column; gap: 1em;">
|
||||||
<MkKeyValue v-if="user.host" oneline>
|
<MkKeyValue v-if="user.host" oneline>
|
||||||
<template #key>{{ i18n.ts.instanceInfo }}</template>
|
<template #key>{{ i18n.ts.instanceInfo }}</template>
|
||||||
|
@ -86,7 +86,7 @@
|
||||||
</div>
|
</div>
|
||||||
</FormSection>
|
</FormSection>
|
||||||
</div>
|
</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-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="silenced" @update:model-value="toggleSilence">{{ i18n.ts.silence }}</FormSwitch>
|
||||||
<FormSwitch v-model="suspended" @update:model-value="toggleSuspend">{{ i18n.ts.suspend }}</FormSwitch>
|
<FormSwitch v-model="suspended" @update:model-value="toggleSuspend">{{ i18n.ts.suspend }}</FormSwitch>
|
||||||
|
@ -126,7 +126,7 @@
|
||||||
</FormInput>
|
</FormInput>
|
||||||
</FormSection>
|
</FormSection>
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="tab === 'chart'" class="_autoGap">
|
<div v-else-if="tab === 'chart'" class="_gaps_m">
|
||||||
<div class="cmhjzshm">
|
<div class="cmhjzshm">
|
||||||
<div class="selects">
|
<div class="selects">
|
||||||
<MkSelect v-model="chartSrc" style="margin: 0 10px 0 0; flex: 1;">
|
<MkSelect v-model="chartSrc" style="margin: 0 10px 0 0; flex: 1;">
|
||||||
|
@ -141,7 +141,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</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 v-if="info && $i.isAdmin" tall :value="info">
|
||||||
</MkObjectView>
|
</MkObjectView>
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
<template>
|
<template>
|
||||||
<MkSpacer :content-max="narrow ? 800 : 1100">
|
<MkSpacer :content-max="narrow ? 800 : 1100">
|
||||||
<div ref="rootEl" class="ftskorzw" :class="{ wide: !narrow }" style="container-type: inline-size;">
|
<div ref="rootEl" class="ftskorzw" :class="{ wide: !narrow }" style="container-type: inline-size;">
|
||||||
<div class="main _autoGap">
|
<div class="main _gaps">
|
||||||
<!-- TODO -->
|
<!-- 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.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="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"/>
|
<MkRemoteCaution v-if="user.host != null" :href="user.url" class="warn"/>
|
||||||
|
|
||||||
<div :key="user.id" class="main _panel">
|
<div :key="user.id" class="main _panel">
|
||||||
|
@ -85,23 +85,23 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="contents">
|
<div class="contents _gaps">
|
||||||
<div v-if="user.pinnedNotes.length > 0" class="_autoGap_half">
|
<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"/>
|
<XNote v-for="note in user.pinnedNotes" :key="note.id" class="note _panel" :note="note" :pinned="true"/>
|
||||||
</div>
|
</div>
|
||||||
<MkInfo v-else-if="$i && $i.id === user.id">{{ i18n.ts.userPagePinTip }}</MkInfo>
|
<MkInfo v-else-if="$i && $i.id === user.id">{{ i18n.ts.userPagePinTip }}</MkInfo>
|
||||||
<template v-if="narrow">
|
<template v-if="narrow">
|
||||||
<XPhotos :key="user.id" :user="user"/>
|
<XPhotos :key="user.id" :user="user"/>
|
||||||
<XActivity :key="user.id" :user="user" style="margin-top: var(--margin);"/>
|
<XActivity :key="user.id" :user="user"/>
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<XUserTimeline :user="user"/>
|
<XUserTimeline :user="user"/>
|
||||||
</div>
|
</div>
|
||||||
</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"/>
|
<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>
|
||||||
</div>
|
</div>
|
||||||
</MkSpacer>
|
</MkSpacer>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<form class="mk-setup" @submit.prevent="submit()">
|
<form class="mk-setup" @submit.prevent="submit()">
|
||||||
<h1>Welcome to Misskey!</h1>
|
<h1>Welcome to Misskey!</h1>
|
||||||
<div class="_autoGap">
|
<div class="_gaps_m">
|
||||||
<p>{{ $ts.intro }}</p>
|
<p>{{ $ts.intro }}</p>
|
||||||
<MkInput v-model="username" pattern="^[a-zA-Z0-9_]{1,20}$" :spellcheck="false" required data-cy-admin-username>
|
<MkInput v-model="username" pattern="^[a-zA-Z0-9_]{1,20}$" :spellcheck="false" required data-cy-admin-username>
|
||||||
<template #label>{{ $ts.username }}</template>
|
<template #label>{{ $ts.username }}</template>
|
||||||
|
|
|
@ -256,18 +256,24 @@ hr {
|
||||||
margin: var(--margin) 0;
|
margin: var(--margin) 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
._autoGap {
|
._gaps_m {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 1.5em;
|
gap: 1.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
._autoGap_half {
|
._gaps_s {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 0.75em;
|
gap: 0.75em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
._gaps {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: var(--margin);
|
||||||
|
}
|
||||||
|
|
||||||
._buttons {
|
._buttons {
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: 8px;
|
gap: 8px;
|
||||||
|
|
Loading…
Reference in New Issue