Merge branch 'dev' into 'main'

Merge from dev (build 68)

See merge request keanuapp/keanuapp-weblite!355
This commit is contained in:
N Pex 2025-09-05 12:41:29 +00:00 committed by GitLab
commit 86ab6830cc
No known key found for this signature in database
259 changed files with 17659 additions and 28729 deletions

View file

@ -29,8 +29,8 @@ var packs = [];
fromDir(process.argv[2], /\.png$/, function (filename) {
let file = filename.substring(process.argv[2].length);
let parts = file.split("/");
let pack = parts[1];
let sticker = parts[2];
let pack = parts[parts.length - 2];
let sticker = parts[parts.length - 1];
if (!packs[pack]) {
packs[pack] = [];
}

View file

@ -4,9 +4,9 @@
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<link rel="icon" id="favicon" href="<%= BASE_URL %>favicon.ico" />
<title><%= htmlWebpackPlugin.options.title %></title>
<meta name="apple-mobile-web-app-capable" content="yes" />
<link rel="icon" id="favicon" href="/favicon.ico" />
<title></title>
<meta name="mobile-web-app-capable" content="yes" />
<link rel="apple-touch-icon" href="./icons/icon-72x72.png" sizes="72x72" />
<link rel="apple-touch-icon" href="./icons/icon-96x96.png" sizes="96x96" />
<link rel="apple-touch-icon" href="./icons/icon-128x128.png" sizes="128x128" />
@ -16,7 +16,7 @@
<link rel="apple-touch-icon" href="./icons/icon-384x384.png" sizes="384x384" />
<link rel="apple-touch-icon" href="./icons/icon-512x512.png" sizes="512x512" />
<link rel="manifest" href="./manifest.json" />
<script src="./lottie-player.js"></script>
<script src="/lottie-player.js" type="module"></script>
<style>
#loader {
position: fixed;
@ -31,11 +31,12 @@
justify-content: center;
}
</style>
<script type="module" src="/src/main.js"></script>
</head>
<body>
<noscript>
<strong
>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please
>We're sorry but the app doesn't work properly without JavaScript enabled. Please
enable it to continue.</strong
>
</noscript>
@ -46,6 +47,7 @@
<lottie-player autoplay loop mode="normal" src="./loader.json" style="width: 128px"> </lottie-player>
</div>
</div>
<div id="app2"></div>
<!-- built files will be auto injected -->
</body>

28380
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -1,69 +1,79 @@
{
"name": "keanuapp-weblite",
"version": "0.1.44",
"version": "0.1.68",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint",
"dev": "vite",
"build": "vite build",
"serve": "vite preview",
"create-sticker-config": "node ./create_sticker_config.js $1"
},
"dependencies": {
"@guardianproject/proofmode": "^0.4.0",
"@matrix-org/olm": "^3.2.12",
"@vitejs/plugin-vue": "^5.2.3",
"aes-js": "^3.1.2",
"axios": "^1.4.0",
"browserify-fs": "^1.0.0",
"buffer": "^6.0.3",
"clean-insights-sdk": "^2.4",
"core-js": "^3.6.5",
"crypto-browserify": "^3.12.0",
"data-uri-to-buffer": "^3.0.1",
"crypto-browserify": "^3.12.1",
"dayjs": "^1.10.3",
"deepmerge": "^4.3.1",
"file-saver": "^2.0.5",
"fix-webm-duration": "^1.0.0",
"image-resize": "^1.1.5",
"image-size": "^1.0.0",
"image-resize": "^1.4.1",
"image-size": "^2.0.2",
"intersection-observer": "^0.12",
"js-sha256": "^0.9.0",
"json-web-key": "^0.4.0",
"jszip": "^3.9.1",
"linkify-html": "^4.1.0",
"linkifyjs": "^4.1.0",
"material-design-icons-iconfont": "^6.7.0",
"matrix-js-sdk": "^23.4.0",
"matrix-js-sdk": "^37.12.0",
"md-gum-polyfill": "^1.0.0",
"mic-recorder-to-mp3": "^2.2.2",
"path-browserify": "^1.0.1",
"pretty-bytes": "^5.6.0",
"qrcode": "^1.4.4",
"process": "^0.11.10",
"qrcode": "^1.5.4",
"raw-loader": "^4.0.2",
"recordrtc": "^5.6.2",
"roboto-fontface": "*",
"stream-browserify": "^3.0.0",
"v-emoji-picker": "^2.3.1",
"vue": "^2.6.11",
"vue-clipboard2": "^0.3.1",
"vue-i18n": "^8.24.4",
"vue-resize": "^1.0",
"vue-router": "^3.2.0",
"vue-sanitize": "^0.2.1",
"threads": "^1.7.0",
"tiny-emitter": "^2.1.0",
"util": "^0.12.5",
"vue": "^3.5.13",
"vue-3-sanitize": "^0.1.4",
"vue-clipboard2": "^0.3.3",
"vue-i18n": "^11.1.3",
"vue-router": "^4.5.1",
"vue-swipeable-bottom-sheet": "^0.0.5",
"vuetify": "^2.2.11",
"vuex": "^3.5.1",
"vue3-emoji-picker": "^1.1.8",
"vue3-resize": "^0.2.0",
"vuetify": "^3.8.3",
"vuex": "^4.1.0",
"vuex-persist": "^3.1.3"
},
"devDependencies": {
"@vue/cli-plugin-babel": "^5.0.8",
"@vue/cli-plugin-eslint": "^5.0.8",
"@vue/cli-service": "^5.0.8",
"@rollup/plugin-commonjs": "^28.0.3",
"@types/aes-js": "^3.1.4",
"@types/jszip": "^3.4.0",
"@vitejs/plugin-vue-jsx": "^4.1.2",
"@vue/compiler-sfc": "^3.5.13",
"babel-eslint": "^10.1.0",
"copy-webpack-plugin": "^11.0.0",
"eslint": "^7.0",
"eslint-plugin-vue": "^7.0",
"sass": "^1.19.0",
"rollup-plugin-polyfill-node": "^0.13.0",
"sass": "^1.86.0",
"sass-loader": "^10",
"vue-cli-plugin-vuetify": "^2.4",
"vue-template-compiler": "^2.6.11",
"vuetify-loader": "^1.3.0"
"typescript": "^5.8.3",
"unplugin-vue-components": "^28.4.1",
"vite": "^6.2.2",
"vite-plugin-static-copy": "^2.3.0",
"vite-plugin-top-level-await": "^1.5.0",
"vite-plugin-vuetify": "^2.1.1",
"vite-plugin-wasm": "^3.4.1",
"vue-cli-plugin-vuetify": "^2.5.8"
},
"eslintConfig": {
"root": true,

View file

@ -1,69 +1,79 @@
{
"name": "keanuapp-weblite",
"version": "0.1.43",
"version": "0.1.67",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint",
"dev": "vite",
"build": "vite build",
"serve": "vite preview",
"create-sticker-config": "node ./create_sticker_config.js $1"
},
"dependencies": {
"@guardianproject/proofmode": "^0.4.0",
"@matrix-org/olm": "^3.2.12",
"@vitejs/plugin-vue": "^5.2.3",
"aes-js": "^3.1.2",
"axios": "^1.4.0",
"browserify-fs": "^1.0.0",
"buffer": "^6.0.3",
"clean-insights-sdk": "^2.4",
"core-js": "^3.6.5",
"crypto-browserify": "^3.12.0",
"data-uri-to-buffer": "^3.0.1",
"crypto-browserify": "^3.12.1",
"dayjs": "^1.10.3",
"deepmerge": "^4.3.1",
"file-saver": "^2.0.5",
"fix-webm-duration": "^1.0.0",
"image-resize": "^1.1.5",
"image-size": "^1.0.0",
"image-resize": "^1.4.1",
"image-size": "^2.0.2",
"intersection-observer": "^0.12",
"js-sha256": "^0.9.0",
"json-web-key": "^0.4.0",
"jszip": "^3.9.1",
"linkify-html": "^4.1.0",
"linkifyjs": "^4.1.0",
"material-design-icons-iconfont": "^6.7.0",
"matrix-js-sdk": "^23.4.0",
"matrix-js-sdk": "^37.12.0",
"md-gum-polyfill": "^1.0.0",
"mic-recorder-to-mp3": "^2.2.2",
"path-browserify": "^1.0.1",
"pretty-bytes": "^5.6.0",
"qrcode": "^1.4.4",
"process": "^0.11.10",
"qrcode": "^1.5.4",
"raw-loader": "^4.0.2",
"recordrtc": "^5.6.2",
"roboto-fontface": "*",
"stream-browserify": "^3.0.0",
"v-emoji-picker": "^2.3.1",
"vue": "^2.6.11",
"vue-clipboard2": "^0.3.1",
"vue-i18n": "^8.24.4",
"vue-resize": "^1.0",
"vue-router": "^3.2.0",
"vue-sanitize": "^0.2.1",
"threads": "^1.7.0",
"tiny-emitter": "^2.1.0",
"util": "^0.12.5",
"vue": "^3.5.13",
"vue-3-sanitize": "^0.1.4",
"vue-clipboard2": "^0.3.3",
"vue-i18n": "^11.1.3",
"vue-router": "^4.5.1",
"vue-swipeable-bottom-sheet": "^0.0.5",
"vuetify": "^2.2.11",
"vuex": "^3.5.1",
"vue3-emoji-picker": "^1.1.8",
"vue3-resize": "^0.2.0",
"vuetify": "^3.8.3",
"vuex": "^4.1.0",
"vuex-persist": "^3.1.3"
},
"devDependencies": {
"@vue/cli-plugin-babel": "^5.0.8",
"@vue/cli-plugin-eslint": "^5.0.8",
"@vue/cli-service": "^5.0.8",
"@rollup/plugin-commonjs": "^28.0.3",
"@types/aes-js": "^3.1.4",
"@types/jszip": "^3.4.0",
"@vitejs/plugin-vue-jsx": "^4.1.2",
"@vue/compiler-sfc": "^3.5.13",
"babel-eslint": "^10.1.0",
"copy-webpack-plugin": "^11.0.0",
"eslint": "^7.0",
"eslint-plugin-vue": "^7.0",
"sass": "^1.19.0",
"rollup-plugin-polyfill-node": "^0.13.0",
"sass": "^1.86.0",
"sass-loader": "^10",
"vue-cli-plugin-vuetify": "^2.4",
"vue-template-compiler": "^2.6.11",
"vuetify-loader": "^1.3.0"
"typescript": "^5.8.3",
"unplugin-vue-components": "^28.4.1",
"vite": "^6.2.2",
"vite-plugin-static-copy": "^2.3.0",
"vite-plugin-top-level-await": "^1.5.0",
"vite-plugin-vuetify": "^2.1.1",
"vite-plugin-wasm": "^3.4.1",
"vue-cli-plugin-vuetify": "^2.5.8"
},
"eslintConfig": {
"root": true,

View file

@ -58,6 +58,7 @@
<li>Interfering with security measures.</li>
<li>Transmitting malware or harmful code.</li>
<li>Harassing, threatening, or harming others.</li>
<li>ANY overtly sexual or pornographic material, defined as “explicit descriptions or displays of sexual organs or activities intended to stimulate erotic rather than aesthetic or emotional feelings.” or links to third-party sites featuring or hosting it.</li>
</ul>
<h2>8. Intellectual Property</h2>

View file

@ -6,9 +6,8 @@
<!-- Loading indicator -->
<v-container
fluid
fill-height
v-if="showLoadingScreen"
class="loading-container"
class="loading-container fill-height"
>
<v-row align="center" justify="center">
<v-col class="text-center">
@ -22,7 +21,7 @@
</v-container>
<v-skeleton-loader
type="list-item-avatar-two-line, divider, list-item-three-line, card-heading"
type="list-item-avatar-two-line,divider,list-item-three-line,heading"
v-if="showLoadingScreen"
></v-skeleton-loader>
<unsupported-browser-alert />
@ -87,7 +86,7 @@ export default {
} else {
this.loading = false;
}
this.$config.promise.then(this.onConfigLoaded);
this.$config.load().then(this.onConfigLoaded);
},
methods: {
windowNotificationPermission,
@ -139,7 +138,7 @@ export default {
},
computed: {
showLoadingScreen() {
return this.loading || !(this.$config.loaded);
return this.loading || !(this.$config.isLoaded());
},
notificationCount,
currentUser() {
@ -227,8 +226,9 @@ export default {
</script>
<style lang="scss">
@import '~vuetify/src/styles/settings/_variables.scss';
@import '@/assets/css/variables';
@use '@/assets/css/variables' as *;
@use "vuetify/settings" as *;
@use "sass:map";
.copyright {
font-size: 10px;
@ -239,7 +239,7 @@ export default {
}
.main {
@media #{map-get($display-breakpoints, 'lg-and-up')} {
@media #{map.get($display-breakpoints, 'lg-and-up')} {
margin: 0 auto;
width: $main-desktop-width;
}

View file

@ -14,7 +14,6 @@
"defaultMatrixDomainPart": "neo.keanu.im",
"identityServer_unset": "",
"registrationToken_unset": "",
"rtl": false,
"accentColor_unset": "",
"logo_unset": "",
"analytics": [
@ -49,9 +48,10 @@
}
],
"experimental_voice_mode": true,
"experimental_file_mode": true,
"experimental_read_only_room": true,
"experimental_public_room": true,
"show_status_messages": "never",
"hide_add_room_on_home": false
"hide_add_room_on_home": false,
"mirrors": [],
"roomTypes": ["group_chat", "channel", "file_drop"]
}

View file

@ -1 +0,0 @@
// Sass Mixins

View file

@ -1,3 +1,5 @@
@use "@/assets/css/variables" as *;
.cursor-pointer {
cursor: pointer !important;
}

View file

@ -1,3 +1,5 @@
@forward "vuetify/settings";
$font-family: "Poppins";
$background: #ffffff;
$app-background: #f6f6f6;
@ -21,4 +23,6 @@ $poll-hilite-color: #6360f0;
$poll-hilite-color-bg: #d6d5fc;
$alert-bg-color: #FF3300;
$min-touch-target: 48px;
$min-touch-target: 48px;
$large-button-height: $min-touch-target;
$small-button-height: 36px;

View file

@ -1,3 +1,5 @@
@use "@/assets/css/variables" as *;
.chat-root.channel {
background-color: #f2f2f2;
.chat-content {
@ -102,7 +104,7 @@
/* full bleed */
padding: 0 0 0 0;
border-radius: 0 !important;
.v-image, video {
.v-img, video {
border-radius: 0 !important;
}
}
@ -111,6 +113,7 @@
flex: 0 0 100%;
margin: 24px 7px 0 7px;
padding: 0 8px 16px 8px;
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
.emoji {
font-size: 12 * $chat-text-size;
font-weight: 500;
@ -120,11 +123,10 @@
height: 21px;
}
}
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}
/* Make all images 'cover' */
.v-image__image {
.v-img__image {
background-size: cover;
}
}

View file

@ -1,8 +1,10 @@
@import "~vuetify/src/styles/settings/_variables.scss";
@import "@/assets/css/main.scss";
@import "@/assets/css/vendors/v-emoji-picker";
@import "@/assets/css/filedrop.scss";
@import "@/assets/css/channel.scss";
@forward "@/assets/css/variables";
@use "vuetify/settings" as *;
@use "@/assets/css/variables" as *;
@use "@/assets/css/main.scss" as *;
@use "@/assets/css/vendors/v-emoji-picker" as *;
@use "@/assets/css/channel.scss" as *;
@use "sass:map";
$admin-bg: black;
$admin-fg: white;
@ -22,13 +24,22 @@ body {
}
}
.v-input.no-underline {
.v-field__outline {
/* Remove text underline */
color: transparent !important;
min-height: 20px;
overflow: hidden;
}
}
.home {
.v-card {
background-color: white;
box-shadow: 0px 1px 4px rgba(0, 0, 0, 0.25) !important;
border-radius: 18px;
padding-bottom: 10px;
.v-item-group > div:not(:last-of-type):after {
.v-list > .v-list-item:not(:last-of-type):before {
/* divider */
position: absolute;
content: " ";
@ -89,7 +100,7 @@ body {
font-size: 11 * $chat-text-size;
color: white;
background-color: red !important;
border-radius: $chat-standard-padding / 2;
border-radius: $chat-standard-padding * 0.5;
height: $chat-standard-padding;
margin-top: $chat-standard-padding-xs;
margin-bottom: $chat-standard-padding-xs;
@ -106,7 +117,7 @@ body {
line-height: 140%;
color: white !important;
background-color: #ff3300 !important;
border-radius: $small-button-height / 2;
border-radius: $small-button-height * 0.5;
min-height: 0;
height: $small-button-height !important;
margin-top: $chat-standard-padding-xs;
@ -183,7 +194,7 @@ body {
}
}
@media #{map-get($display-breakpoints, 'sm-and-down')} {
@media #{map.get($display-breakpoints, 'sm-and-down')} {
position: fixed;
z-index: 10;
}
@ -228,7 +239,7 @@ body {
background: #4d4d4d;
}
@media #{map-get($display-breakpoints, 'sm-and-down')} {
@media #{map.get($display-breakpoints, 'sm-and-down')} {
//margin-top: 72px;
margin-bottom: 70px;
}
@ -262,7 +273,7 @@ body {
margin: 0px 20px;
padding: 20px;
@media #{map-get($display-breakpoints, 'sm-and-down')} {
@media #{map.get($display-breakpoints, 'sm-and-down')} {
margin: 0px 5px;
padding: 15px;
}
@ -281,7 +292,7 @@ body {
border: 1px solid #d4d4d4;
border-radius: 32px;
margin-bottom: 10px;
@media #{map-get($display-breakpoints, 'sm-and-down')} {
@media #{map.get($display-breakpoints, 'sm-and-down')} {
margin-bottom: 12px;
}
}
@ -295,7 +306,7 @@ body {
fill: black;
}
@media #{map-get($display-breakpoints, 'sm-and-down')} {
@media #{map.get($display-breakpoints, 'sm-and-down')} {
display: none;
}
}
@ -312,7 +323,20 @@ body {
font-family: "Inter", sans-serif;
font-weight: 300;
font-size: 18 * $chat-text-size;
.v-input__slot {
.v-field__overlay {
display: none;
}
.v-field__input {
padding: 0;
min-height: 32px;
mask-image: none;
-webkit-mask-image: none;
font-family: "Inter", sans-serif;
font-weight: 300;
font-size: 18 * $chat-text-size;
}
.v-field__outline {
/* Remove text underline */
color: transparent !important;
min-height: 20px;
@ -333,7 +357,7 @@ body {
z-index: 40;
}
@media #{map-get($display-breakpoints, 'sm-and-down')} {
@media #{map.get($display-breakpoints, 'sm-and-down')} {
position: fixed;
bottom: 0px;
width: 100%;
@ -343,12 +367,18 @@ body {
.scroll-to-end {
position: absolute;
bottom: 20px;
bottom: 102px;
right: 16px;
opacity: 1;
transition: opacity 0.3s linear;
&.reversed {
top: 120px;
transform: rotate(180deg);
}
&.hidden {
pointer-events: none;
opacity: 0;
}
}
.op-button {
@ -437,7 +467,7 @@ body {
position: relative;
max-width: 70%;
@media #{map-get($display-breakpoints, 'sm-and-down')} {
@media #{map.get($display-breakpoints, 'sm-and-down')} {
min-height: $min-touch-target;
}
}
@ -531,7 +561,7 @@ body {
position: relative;
max-width: 70%;
@media #{map-get($display-breakpoints, 'sm-and-down')} {
@media #{map.get($display-breakpoints, 'sm-and-down')} {
min-height: $min-touch-target;
}
}
@ -550,12 +580,13 @@ body {
}
.bubble.image-bubble {
padding: 0px;
overflow: hidden;
display: inline-block;
width: 70%;
max-width: 70%;
cursor: pointer;
.v-image,
.v-img,
video {
border-radius: 10px 10px 0 10px;
[dir="rtl"] & {
@ -733,6 +764,12 @@ body {
.v-icon {
color: white !important;
}
.v-btn {
background-color: black !important;
}
.v-slider .v-slider-thumb {
color: currentColor !important;
}
}
.play-time {
font-family: "Inter", sans-serif;
@ -745,12 +782,22 @@ body {
flex: 1 1 100%;
height: 30px;
.v-slider__thumb {
.v-slider-thumb {
display: none;
}
&:hover .v-slider__thumb {
&:hover .v-slider-thumb {
display: block;
}
.v-slider-track__background {
height: 1px;
color: currentColor;
}
.v-slider-track__fill {
filter: brightness(2.5);
height: 100%;
border-radius: 0;
opacity: 0.3;
}
}
}
@ -883,6 +930,7 @@ body {
.room-list {
.room-list-room {
color: white; // Used as selected item background
min-height: 58px;
.v-avatar:not(.round) {
// Make avatars rounded squares!
border-radius: 8px;
@ -974,7 +1022,7 @@ body {
}
.filled-button {
@media #{map-get($display-breakpoints, 'sm-and-up')} {
@media #{map.get($display-breakpoints, 'sm-and-up')} {
min-width: 180px !important;
}
}
@ -989,6 +1037,12 @@ body {
margin-left: 6px;
}
.member .knock-reason {
margin-left: 38px;
font-size: 0.7em;
color: #aaa;
}
.member .user-power {
margin-left: 6px;
color: #aaa;
@ -1566,7 +1620,7 @@ body {
line-height: 140%;
color: white !important;
background-color: #4642f1 !important;
border-radius: $small-button-height / 2;
border-radius: $small-button-height * 0.5;
min-height: 0;
height: $small-button-height !important;
margin-top: $chat-standard-padding-xs;
@ -1585,4 +1639,4 @@ body {
.zip {
color: #1d1d1d;
}
}
}

View file

@ -1,3 +1,5 @@
@use "../variables" as *;
.poll-bubble {
width: 70%;
text-align: start;

View file

@ -1,3 +1,5 @@
@use "../variables" as *;
.grow-enter-active,
.grow-leave-active {
transition-timing-function: ease-out;
@ -17,14 +19,21 @@
.fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ {
opacity: 0;
}
.voice-recorder-btn {
padding: 30px;
background-color: $voice-recorder-color;
&.recording {
background-color: $voice-recording-color;
.voice-recorder {
.v-btn {
background-color: black;
color: white;
}
&.recorded {
background-color: $voice-recorded-color;
.voice-recorder-btn {
background-color: $voice-recorder-color;
&.recording {
background-color: $voice-recording-color;
}
&.recorded {
background-color: $voice-recorded-color;
}
}
}
}

View file

@ -1,4 +1,4 @@
@import "@/assets/css/main.scss";
@use "@/assets/css/main.scss" as *;
.create-root {
@ -173,7 +173,7 @@
display: flex;
align-items: center;
justify-content: center;
.v-image {
.v-img {
flex: 0 0 14px;
width: 14px;
height: 10px;

View file

@ -1,365 +0,0 @@
$large-button-height: $min-touch-target;
$small-button-height: 36px;
.file-drop-root {
$hiliteColor: #4642f1;
font-family: "Inter", sans-serif;
position: absolute;
top: 0px;
left: 0;
right: 0;
bottom: 0;
margin: 0;
background-color: var(--v-background-color);
color: var(--v-foreground-color);
overflow: hidden;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
padding: 16px;
.file-drop-title {
color: #fff;
text-align: center;
font-size: 11.54 * $chat-text-size;
font-family: "Inter", sans-serif;
font-weight: 700;
line-height: 140%;
letter-spacing: 0.34px;
text-transform: uppercase;
margin-top: 13px;
margin-bottom: 25px;
}
.background {
width: 100%;
height: 50%;
background-color: #181719;
&.drop-target {
background-color: #383739;
}
border-radius: 19px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.file-format-info {
opacity: 0.6;
color: #fff;
text-align: center;
font-size: 11 * $chat-text-size;
font-family: "Inter", sans-serif;
line-height: 117%;
letter-spacing: 0.4px;
margin-top: 13px;
background: transparent;
}
.v-btn {
font-family: "Inter", sans-serif;
font-weight: 700;
font-size: 11.54 * $chat-text-size;
line-height: 140%;
color: white;
background-color: $hiliteColor !important;
border-radius: $small-button-height / 2;
min-height: 0;
height: $small-button-height !important;
margin-top: $chat-standard-padding-xs;
margin-bottom: $chat-standard-padding-xs;
&.large {
padding: 16px 23px;
height: $large-button-height;
border-radius: $large-button-height / 2;
}
}
textarea {
color: rgba(white, 80%) !important;
}
textarea::placeholder {
color: rgba(white, 80%) !important;
}
.attachment-wrapper {
width: 100%;
flex: 0 0 100%;
overflow-y: auto;
}
.file-drop-current-item {
width: 100%;
height: 70%;
background-color: #181719;
&.drop-target {
background-color: #383739;
}
border-radius: 19px;
overflow: hidden;
.v-image {
width: 100%;
height: 100%;
object-fit: cover;
}
.filename {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
}
}
.file-drop-thumbnail-container {
width: 100%;
padding: 13px 20px 15px 20px;
height: 74px;
overflow-x: auto;
overflow-y: hidden;
white-space: nowrap;
text-align: start;
/* Hide scrollbar for Chrome, Safari and Opera */
&::-webkit-scrollbar {
display: none;
}
/* Hide scrollbar for IE, Edge and Firefox */
-ms-overflow-style: none; /* IE and Edge */
scrollbar-width: none; /* Firefox */
.file-drop-thumbnail {
width: 46px;
height: 46px;
border-radius: 9px;
overflow: hidden;
background-color: #242424;
border: 2px solid white;
display: inline-block;
position: relative;
&.current {
border: 2px solid #4642f1;
}
&.noborder {
border: 2px solid transparent;
}
.v-image {
width: 100%;
height: 100%;
object-fit: cover;
}
margin-right: 8px;
.add,
.remove {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
display: flex;
align-items: center;
justify-content: center;
.v-icon {
width: 14px;
height: 15.75px;
}
}
.remove {
// Slight background to make visible
background-color: rgba(black, 0.2);
}
}
}
.file-drop-section {
margin-top: 20px;
padding: 16px 18px;
background-color: #181719;
border-radius: 19px;
}
.file-drop-input-container,
.file-drop-sending-input-container,
.file-drop-sent-input-container {
position: relative;
width: 100%;
min-height: 20%;
background-color: #181719;
border-radius: 19px;
display: flex;
flex-direction: column;
.input-area-text {
flex: 0 0 auto;
width: 100%;
margin-bottom: 50px;
padding: 16px 18px;
font-family: "Inter", sans-serif;
font-weight: 300;
}
.v-btn {
position: absolute;
right: 8px;
bottom: 10px;
}
}
@keyframes fadeInStackItem {
from {opacity: 0;}
to {opacity: 1;}
}
// Sending
//
.file-drop-sent-stack {
width: 100%;
height: 30%;
display: flex;
align-items: center;
justify-content: center;
.no-items {
display: flex;
align-items: center;
justify-content: center;
div {
position: absolute;
}
.file-drop-stack-item {
transform: rotate(-4.4deg);
}
color: #fff;
text-align: center;
font-size: 21 * $chat-text-size;
font-family: "Poppins", sans-serif;
font-weight: 700;
letter-spacing: 0.34px;
}
.items-sent {
z-index: 1000;
display: flex;
align-items: center;
justify-content: center;
div, .v-icon {
position: absolute;
}
.v-icon, .v-icon__component {
width: 30%;
height: 30%;
}
}
.file-drop-stack-item {
background: #3a3a3c;
position: absolute;
overflow: hidden;
opacity: 0;
.v-image {
width: 100%;
height: 100%;
object-fit: cover;
}
&.direct {
opacity: 1 !important;
}
&.animated {
animation-name: fadeInStackItem;
animation-fill-mode: both;
animation-duration: 1.5s;
}
}
}
.file-drop-sending-container {
width: 100%;
padding: 13px 0px 15px 0px;
height: 50%;
overflow-x: hidden;
overflow-y: auto;
white-space: nowrap;
text-align: start;
/* Hide scrollbar for Chrome, Safari and Opera */
&::-webkit-scrollbar {
display: none;
}
/* Hide scrollbar for IE, Edge and Firefox */
-ms-overflow-style: none; /* IE and Edge */
scrollbar-width: none; /* Firefox */
.file-drop-sending-item {
width: 100%;
height: 64px;
overflow: hidden;
background-color: #242424;
border-radius: 12px;
background: linear-gradient(0deg, #26242b 0%, #26242b 100%), #fff;
position: relative;
padding: 8px;
.v-image {
width: $min-touch-target;
height: $min-touch-target;
border-radius: 8px;
object-fit: cover;
flex: 0 0 $min-touch-target;
margin-right: 8px;
}
margin-bottom: 8px;
display: flex;
align-items: center;
.filename {
position: absolute;
top: 18px;
left: 8px;
font-size: 0.7em;
}
.v-progress-linear {
align-self: flex-end;
}
.file-drop-cancel {
position: absolute;
right: 8px;
width: 17px;
height: 17px;
color: green !important;
background: #2e2e3b;
border-radius: 8.5px;
display: flex;
align-items: center;
justify-content: center;
}
}
}
.file-drop-sending-input-container {
.v-btn {
.v-progress-circular {
margin-left: 8px;
}
background: linear-gradient(0deg, #000 0%, #000 100%), #4642f1;
}
}
.file-drop-files-sent {
width: 100%;
color: #fff;
text-align: center;
font-size: 21 * $chat-text-size;
font-family: "Poppins", sans-serif;
font-weight: 700;
letter-spacing: 0.34px;
text-align: center;
}
.file-drop-sent-input-container {
background-color: transparent;
.v-btn {
right: unset;
left: 8px;
background: linear-gradient(0deg, #000 0%, #000 100%), #4642f1;
&.close {
right: 8px;
left: unset;
background: $hiliteColor !important;
}
}
}
}

View file

@ -1,5 +1,6 @@
@import "~vuetify/src/styles/settings/_variables.scss";
@import "@/assets/css/main.scss";
@use "vuetify/settings" as *;
@use "@/assets/css/main.scss" as *;
@use "sass:map";
.v-btn.btn-light {
font-family: sans-serif;
@ -8,7 +9,7 @@
color: black;
background-color: white !important;
border: 1px solid black;
border-radius: $chat-button-height / 2;
border-radius: $chat-button-height * 0.5;
min-height: 0;
height: $chat-button-height !important;
margin-top: $chat-standard-padding-xs;
@ -22,7 +23,7 @@
color: white;
background-color: black !important;
border: 1px solid black;
border-radius: $chat-button-height / 2;
border-radius: $chat-button-height * 0.5;
min-height: 0;
height: $chat-button-height !important;
margin-top: $chat-standard-padding-xs;
@ -37,7 +38,7 @@
background: white;
box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.08);
@media #{map-get($display-breakpoints, 'sm-and-down')} {
@media #{map.get($display-breakpoints, 'sm-and-down')} {
padding: 20px;
}
}
@ -58,7 +59,7 @@
.inactive {
color: unset;
@media #{map-get($display-breakpoints, 'sm-and-up')} {
@media #{map.get($display-breakpoints, 'sm-and-up')} {
&:hover {
color: $very-very-purple;
}
@ -152,10 +153,10 @@
}
}
@media #{map-get($display-breakpoints, 'sm-and-down')} {
@media #{map.get($display-breakpoints, 'sm-and-down')} {
margin: 10px;
}
@media #{map-get($display-breakpoints, 'md-and-up')} {
@media #{map.get($display-breakpoints, 'md-and-up')} {
width: $main-desktop-width;
margin: 0 auto;
}

View file

@ -1,4 +1,5 @@
@import "@/assets/css/main.scss";
@use "@/assets/css/main.scss" as *;
@use "@/assets/css/variables" as *;
.login-root {
background-color: $background;

View file

@ -1,6 +1,7 @@
@import './variables';
@import './utilities';
@import './mixins';
@forward 'variables';
@forward 'utilities';
@use 'variables' as *;
@use 'utilities' as *;
@font-face {
font-family: "Inter";
@ -96,7 +97,7 @@ body { position:absolute; top:0; bottom:0; right:0; left:0; }
color: black;
background-color: white !important;
border: 1px solid black;
border-radius: $chat-standard-padding / 2;
border-radius: $chat-standard-padding * 0.5;
height: $chat-standard-padding;
margin-top: $chat-standard-padding-xs;
margin-bottom: $chat-standard-padding-xs;
@ -118,7 +119,7 @@ body { position:absolute; top:0; bottom:0; right:0; left:0; }
font-size: 11 * $chat-text-size;
color: white;
border: none;
border-radius: $chat-standard-padding / 2;
border-radius: $chat-standard-padding * 0.5;
height: $chat-standard-padding !important;
min-height: $chat-standard-padding !important;
margin-top: $chat-standard-padding-xs;
@ -131,21 +132,29 @@ body { position:absolute; top:0; bottom:0; right:0; left:0; }
}
}
.v-dialog {
.v-dialog-rounded > * {
border-radius: 20px !important;
}
.v-dialog {
.dialog-content {
border-radius: 20px !important;
padding: 20px;
background-color: white;
}
.dialog-title {
word-break: break-word;
text-align: center;
padding: 16px 24px 10px 24px;
margin-bottom: 20px;
}
.dialog-text {
text-align: left;
word-break: break-word;
white-space: normal;
a {
color: black;
text-decoration: underline;
@ -163,3 +172,15 @@ body { position:absolute; top:0; bottom:0; right:0; left:0; }
letter-spacing: 0.4px;
color: rgba(0, 0, 0, 0.6);
}
.v-card-title {
display: flex;
}
.fluid-radio {
flex-direction: row-reverse;
margin-bottom: 0;
.v-label {
width: 100%;
}
}

View file

@ -0,0 +1,638 @@
@use "@/assets/css/variables" as *;
$background: #000000;
$backgroundSection: #333333E5;
$backgroundHilite: #383739;
$backgroundDark: #242424;
$text: #ffffff;
$hiliteColor: #4642f1;
.send-attachments {
font-family: "Inter", sans-serif;
z-index: 10;
position: absolute;
top: 0px;
left: 0;
right: 0;
bottom: 0;
margin: 0;
padding: 0;
background-color: $background;
color: $text;
overflow: hidden;
display: flex;
flex-direction: column;
text-align: center;
.title {
font-family: "Inter", sans-serif;
font-weight: 700;
font-size: 14px;
line-height: 125%;
letter-spacing: 0.4px;
text-align: center;
vertical-align: bottom;
color: white;
flex: 0 0 50px;
background-color: $backgroundSection;
display: flex;
align-items: center;
justify-content: center;
}
.v-btn {
font-family: "Inter", sans-serif;
font-weight: 700;
font-size: 11.54 * $chat-text-size;
line-height: 140%;
color: white;
background-color: $hiliteColor !important;
border-radius: $small-button-height * 0.5;
min-height: 0;
height: $small-button-height !important;
margin-top: $chat-standard-padding-xs;
margin-bottom: $chat-standard-padding-xs;
&.large {
padding: 16px 23px;
height: $large-button-height;
border-radius: $large-button-height * 0.5;
}
}
.back-button {
position: absolute;
top: 8px;
left: 16px;
margin: 0;
z-index: 1;
background-color: transparent !important;
}
textarea {
color: rgba($text, 80%) !important;
}
textarea::placeholder {
color: rgba($text, 80%) !important;
}
.send-attachments__selecting__current-item,
.gallery-current-item {
width: 100%;
flex: 1 1 100%;
background-color: $backgroundSection;
display: flex;
position: relative;
&.drop-target {
background-color: $backgroundHilite;
}
//border-radius: 19px;
overflow: hidden;
.v-img {
width: 100%;
height: 100%;
object-fit: cover;
}
.send-attachments__selecting__current-item__preparing {
position: absolute;
right: 8px;
bottom: 4px;
display: flex;
flex-direction: column;
align-items: end;
justify-content: end;
}
.send-attachments__selecting__current-item__cc {
position: absolute;
right: 12px;
bottom: 12px;
display: flex;
flex-direction: column;
align-items: end;
justify-content: end;
}
}
.file-drop-thumbnail-container,
.gallery-thumbnail-container {
width: 100%;
background-color: $backgroundSection;
padding: 16px 20px 24px 20px;
flex: 0 0 74px;
overflow-x: auto;
overflow-y: hidden;
white-space: nowrap;
text-align: start;
/* Hide scrollbar for Chrome, Safari and Opera */
&::-webkit-scrollbar {
display: none;
}
/* Hide scrollbar for IE, Edge and Firefox */
-ms-overflow-style: none;
/* IE and Edge */
scrollbar-width: none;
/* Firefox */
.v-badge {
//margin-right: 8px;
}
.v-badge__badge {
top: 0;
width: 12px;
height: 12px;
padding: 0;
min-width: 12px;
user-select: none;
span {
width: 100%;
height: 100%;
}
}
.file-drop-thumbnail {
width: 46px;
height: 46px;
border-radius: 9px;
overflow: hidden;
background-color: $backgroundDark;
border: 2px solid white;
display: inline-block;
position: relative;
&.current {
border: 2px solid #4642f1;
}
&.noborder {
border: 2px solid $backgroundDark;
}
.v-img {
width: 100%;
height: 100%;
object-fit: cover;
}
margin-right: 8px;
.add,
.remove {
color: $text;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
display: flex;
align-items: center;
justify-content: center;
.v-icon {
width: 14px;
height: 15.75px;
}
}
.remove {
// Slight background to make visible
background-color: rgba(black, 0.2);
}
}
}
.file-drop-section {
margin-top: 20px;
padding: 16px 18px;
background-color: $backgroundSection;
//border-radius: 19px;
}
.file-drop-input-container {
flex: 1 1 auto;
width: 100%;
position: relative;
padding: 0 16px 16px 16px;
display: flex;
flex-direction: row;
background-color: $backgroundSection;
.file-drop-input-container__input {
background-color: $backgroundDark;
border-radius: 22px;
flex: 1 1 auto;
position: relative;
margin-right: 15px;
height: 42px;
overflow: hidden;
}
.send-button {
margin: 0;
padding: 0;
position: absolute;
top: 3px;
right: 3px;
}
.info-button {
background-color: $backgroundDark !important;
margin: 0;
width: 44px !important;
height: 44px !important;
border-radius: 22px !important;
}
}
.file-drop-sending-input-container,
.file-drop-sent-input-container {
position: relative;
width: 100%;
min-height: 100px;
background-color: $backgroundSection;
display: flex;
flex-direction: column;
.input-container__buttons {
position: absolute;
right: 8px;
bottom: 10px;
display: flex;
&>*:not(:first-child) {
margin-left: 8px;
}
}
}
.input-area-text {
flex: 0 0 auto;
width: 100%;
margin-bottom: 50px;
//padding: 6px 8px;
font-family: "Inter", sans-serif;
font-weight: 300;
input {
color: white !important;
padding-right: 50px;
}
.v-field {
background-color: transparent !important;
}
}
@keyframes fadeInStackItem {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
// Sending
//
.file-drop-sent-stack {
width: 100%;
height: 30%;
display: flex;
align-items: center;
justify-content: center;
.no-items {
display: flex;
align-items: center;
justify-content: center;
div {
position: absolute;
}
.file-drop-stack-item {
transform: rotate(-4.4deg);
}
color: #fff;
text-align: center;
font-size: 21 * $chat-text-size;
font-family: "Poppins",
sans-serif;
font-weight: 700;
letter-spacing: 0.34px;
}
.items-sent {
z-index: 1000;
display: flex;
align-items: center;
justify-content: center;
div,
.v-icon {
position: absolute;
}
.v-icon,
.v-icon__component {
width: 30%;
height: 30%;
}
}
.file-drop-stack-item {
background: #3a3a3c;
position: absolute;
overflow: hidden;
opacity: 0;
.v-img {
width: 100%;
height: 100%;
object-fit: cover;
}
&.direct {
opacity: 1 !important;
}
&.animated {
animation-name: fadeInStackItem;
animation-fill-mode: both;
animation-duration: 1.5s;
}
}
}
.file-drop-sending-container {
width: 100%;
padding: 13px 10px 15px 10px;
height: 50%;
overflow-x: hidden;
overflow-y: auto;
white-space: nowrap;
text-align: start;
/* Hide scrollbar for Chrome, Safari and Opera */
&::-webkit-scrollbar {
display: none;
}
/* Hide scrollbar for IE, Edge and Firefox */
-ms-overflow-style: none;
/* IE and Edge */
scrollbar-width: none;
/* Firefox */
.file-drop-sending-item {
width: 100%;
height: 64px;
overflow: hidden;
background-color: $backgroundSection;
border-radius: 12px;
position: relative;
padding: 8px;
.v-img {
width: $min-touch-target;
height: $min-touch-target;
border-radius: 8px;
object-fit: cover;
flex: 0 0 $min-touch-target;
margin-right: 8px;
}
margin-bottom: 8px;
display: flex;
align-items: center;
.filename {
position: absolute;
top: 18px;
left: 8px;
font-size: 0.7em;
}
.v-progress-linear {
align-self: flex-end;
}
.file-drop-cancel {
position: absolute;
right: 8px;
width: 17px;
height: 17px;
color: green !important;
background: #2e2e3b;
border-radius: 8.5px;
display: flex;
align-items: center;
justify-content: center;
}
}
}
.file-drop-sending-input-container {
padding: 10px;
.v-btn {
.v-progress-circular {
margin-left: 8px;
}
background: linear-gradient(0deg, #000 0%, #000 100%),
#4642f1;
}
}
.file-drop-files-sent {
width: 100%;
color: $text;
text-align: center;
font-size: 21 * $chat-text-size;
font-family: "Poppins", sans-serif;
font-weight: 700;
letter-spacing: 0.34px;
text-align: center;
}
.file-drop-sent-input-container {
padding: 10px;
background-color: transparent;
.v-btn {
left: 8px;
right: 8px;
&.close {
background: $hiliteColor !important;
}
}
}
}
.send-attachments-info-popup {
background-color: rgba(0, 0, 0, 0.9);
.done-button {
padding: 14px 24px;
}
.left-right-arrow {
background-color: transparent !important;
.v-btn__overlay {
display: none;
}
}
.title {
font-family: "Inter", sans-serif;
font-weight: 400;
font-size: 12px;
line-height: 125%;
letter-spacing: 0.4px;
text-align: center;
vertical-align: middle;
text-overflow: ellipsis;
height: 36px;
display: flex;
align-items: center;
justify-content: center;
}
}
.attachment-info {
text-align: start;
position: relative;
.attachment-info__quality {
.attachment-info__quality__title {
font-family: "Inter", sans-serif;
font-weight: 600;
font-size: 16px;
line-height: 125%;
letter-spacing: 0.4px;
vertical-align: middle;
}
.attachment-info__quality__class {
font-family: "Inter", sans-serif;
font-weight: 600;
font-size: 16px;
line-height: 125%;
letter-spacing: 0.4px;
vertical-align: middle;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
width: 156px;
padding: 10px 2px;
background-color: #242424;
border-radius: 8px;
border: 2px solid #242424;
&.selected {
border: 2px solid #4642F1;
}
.attachment-info__quality__class-name {
margin: 4px 0 3px 0;
}
.attachment-info__quality__class-size {
font-family: "Inter", sans-serif;
font-weight: 400;
font-size: 12px;
line-height: 125%;
letter-spacing: 0.4px;
text-align: center;
vertical-align: middle;
}
&:not(:last-of-type) {
margin-right: 8px;
}
&:not(:first-of-type) {
margin-left: 8px;
}
}
.attachment-info__quality__info {
margin-top: 24px;
font-family: "Inter", sans-serif;
font-weight: 400;
font-size: 14px;
line-height: 125%;
letter-spacing: 0.4px;
text-align: center;
}
}
.attachment-info__detail-box {
margin-top: 32px;
padding: 16px;
border-radius: 8px;
background-color: $backgroundDark;
.detail-title {
font-family: "Inter", sans-serif;
font-weight: 600;
font-size: 16px;
line-height: 125%;
letter-spacing: 0.4px;
display: flex;
align-items: center;
justify-content: space-between;
white-space: nowrap;
.v-icon {
flex: 0 0 24px;
width: 24px;
height: 24px;
}
}
.detail-subtitle {
font-family: "Inter", sans-serif;
font-weight: 400;
font-size: 14px;
line-height: 125%;
letter-spacing: 0.4px;
margin-top: 8px;
padding-bottom: 4px;
a, a:visited {
font-weight: 700;
color: #8A87FF;
text-decoration: none !important;
}
}
.detail-row {
margin-top: 12px;
font-family: "Inter", sans-serif;
font-weight: 400;
font-size: 14px;
line-height: 125%;
letter-spacing: 0.4px;
color: rgba(255, 255, 255, 0.9);
.v-icon {
margin-right: 8px;
}
}
}
}

View file

@ -1,4 +1,4 @@
@import "@/assets/css/main.scss";
@use "@/assets/css/main.scss" as *;
.h3-bold {
font-family: "Poppins";

View file

@ -1,9 +1,22 @@
#EmojiPicker {
@use "vuetify/settings" as *;
@use "sass:map";
.v3-emoji-picker {
width: 100%;
background-color: #ffffff;
margin-top: 15px;
box-shadow: none;
height: 100%;
flex: 1 1 100%;
.container-emoji {
height: 60vh;
.v3-emojis button {
@media #{map.get($display-breakpoints, 'sm')} {
flex-basis: 10% !important;
max-width: 10% !important;
}
@media #{map.get($display-breakpoints, 'md-and-up')} {
flex-basis: 6.25% !important;
max-width: 6.25% !important;
}
}
}

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 8.3 KiB

File diff suppressed because one or more lines are too long

View file

@ -1,4 +1,13 @@
<svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13.7674 6.32558H8.55814V1.11628C8.55814 0.483721 8.07442 0 7.44186 0C6.8093 0 6.32558 0.483721 6.32558 1.11628V6.32558H1.11628C0.483721 6.32558 0 6.8093 0 7.44186C0 8.07442 0.483721 8.55814 1.11628 8.55814H6.32558V13.7674C6.32558 14.4 6.8093 14.8837 7.44186 14.8837C8.07442 14.8837 8.55814 14.4 8.55814 13.7674V8.55814H13.7674C14.4 8.55814 14.8837 8.07442 14.8837 7.44186C14.8837 6.8093 14.4 6.32558 13.7674 6.32558Z" fill="black" fill-opacity="0.5"/>
<path d="M13.7674 6.32558H8.55814V1.11628C8.55814 0.483721 8.07442 0 7.44186 0C6.8093 0 6.32558 0.483721 6.32558 1.11628V6.32558H1.11628C0.483721 6.32558 0 6.8093 0 7.44186C0 8.07442 0.483721 8.55814 1.11628 8.55814H6.32558V13.7674C6.32558 14.4 6.8093 14.8837 7.44186 14.8837C8.07442 14.8837 8.55814 14.4 8.55814 13.7674V8.55814H13.7674C14.4 8.55814 14.8837 8.07442 14.8837 7.44186C14.8837 6.8093 14.4 6.32558 13.7674 6.32558Z" fill="#242424"/>
</svg>
<template>
<svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M13.7674 6.32558H8.55814V1.11628C8.55814 0.483721 8.07442 0 7.44186 0C6.8093 0 6.32558 0.483721 6.32558 1.11628V6.32558H1.11628C0.483721 6.32558 0 6.8093 0 7.44186C0 8.07442 0.483721 8.55814 1.11628 8.55814H6.32558V13.7674C6.32558 14.4 6.8093 14.8837 7.44186 14.8837C8.07442 14.8837 8.55814 14.4 8.55814 13.7674V8.55814H13.7674C14.4 8.55814 14.8837 8.07442 14.8837 7.44186C14.8837 6.8093 14.4 6.32558 13.7674 6.32558Z"
fill="black"
fill-opacity="0.5"
/>
<path
d="M13.7674 6.32558H8.55814V1.11628C8.55814 0.483721 8.07442 0 7.44186 0C6.8093 0 6.32558 0.483721 6.32558 1.11628V6.32558H1.11628C0.483721 6.32558 0 6.8093 0 7.44186C0 8.07442 0.483721 8.55814 1.11628 8.55814H6.32558V13.7674C6.32558 14.4 6.8093 14.8837 7.44186 14.8837C8.07442 14.8837 8.55814 14.4 8.55814 13.7674V8.55814H13.7674C14.4 8.55814 14.8837 8.07442 14.8837 7.44186C14.8837 6.8093 14.4 6.32558 13.7674 6.32558Z"
fill="#242424"
/>
</svg>
</template>

Before

Width:  |  Height:  |  Size: 1,010 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Before After
Before After

View file

@ -0,0 +1,5 @@
<template>
<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6 10V2M6 2L3 5M6 2L9 5" stroke="white" stroke-linecap="round" stroke-linejoin="round" />
</svg>
</template>

View file

@ -0,0 +1,9 @@
<template>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M14.7669 7.69299C10.4143 6.49122 9.50915 5.5853 8.30704 1.23383C8.26886 1.09544 8.14319 1 8 1C7.85682 1 7.73114 1.09544 7.69296 1.23383C6.49105 5.58597 5.58502 6.49102 1.23306 7.69299C1.09465 7.73117 1 7.85683 1 8C1 8.14317 1.09545 8.26883 1.23306 8.30701C5.5857 9.50878 6.49085 10.4147 7.69296 14.7662C7.73114 14.9046 7.85682 15 8 15C8.14319 15 8.26886 14.9046 8.30704 14.7662C9.50895 10.414 10.415 9.50898 14.7669 8.30701C14.9053 8.26883 15 8.14317 15 8C15 7.85683 14.9045 7.73117 14.7669 7.69299Z"
fill="currentColor"
fill-opacity="0.9"
/>
</svg>
</template>

View file

@ -1,3 +1,8 @@
<svg width="15" height="12" viewBox="0 0 15 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13.9265 0.278549C13.6041 -0.0706278 13.0413 -0.0953257 12.6944 0.225985L4.74201 7.59645C4.66894 7.6675 4.55947 7.67068 4.48341 7.6057L2.44807 5.93997C2.20767 5.74531 1.92476 5.64018 1.62665 5.64018C1.22503 5.64018 0.844759 5.83181 0.586146 6.15932L0.321439 6.49622C-0.153089 7.10185 -0.095373 7.992 0.449243 8.52339L3.64365 11.6229C3.89315 11.8671 4.2187 12 4.55335 12C4.93661 12 5.30168 11.827 5.5603 11.521L13.9508 1.5886C14.2672 1.21487 14.2581 0.64014 13.9265 0.278521L13.9265 0.278549Z" fill="black"/>
</svg>
<template>
<svg width="15" height="12" viewBox="0 0 15 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M13.9265 0.278549C13.6041 -0.0706278 13.0413 -0.0953257 12.6944 0.225985L4.74201 7.59645C4.66894 7.6675 4.55947 7.67068 4.48341 7.6057L2.44807 5.93997C2.20767 5.74531 1.92476 5.64018 1.62665 5.64018C1.22503 5.64018 0.844759 5.83181 0.586146 6.15932L0.321439 6.49622C-0.153089 7.10185 -0.095373 7.992 0.449243 8.52339L3.64365 11.6229C3.89315 11.8671 4.2187 12 4.55335 12C4.93661 12 5.30168 11.827 5.5603 11.521L13.9508 1.5886C14.2672 1.21487 14.2581 0.64014 13.9265 0.278521L13.9265 0.278549Z"
fill="black"
/>
</svg>
</template>

Before

Width:  |  Height:  |  Size: 620 B

After

Width:  |  Height:  |  Size: 668 B

Before After
Before After

View file

@ -1,3 +1,8 @@
<svg width="9" height="8" viewBox="0 0 9 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.83799 0.185699C8.63338 -0.0470852 8.2762 -0.0635505 8.05605 0.150657L3.00935 5.0643C2.96298 5.11167 2.89351 5.11379 2.84524 5.07047L1.55358 3.95998C1.40102 3.83021 1.22148 3.76012 1.03229 3.76012C0.777422 3.76012 0.536097 3.88787 0.371977 4.10621L0.20399 4.33081C-0.0971529 4.73456 -0.0605251 5.328 0.285096 5.68226L2.31232 7.74863C2.47065 7.91143 2.67725 8 2.88963 8C3.13285 8 3.36453 7.88467 3.52865 7.68068L8.85337 1.05907C9.0542 0.809911 9.04842 0.42676 8.83794 0.185681L8.83799 0.185699Z" fill="black"/>
</svg>
<template>
<svg width="9" height="8" viewBox="0 0 9 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M8.83799 0.185699C8.63338 -0.0470852 8.2762 -0.0635505 8.05605 0.150657L3.00935 5.0643C2.96298 5.11167 2.89351 5.11379 2.84524 5.07047L1.55358 3.95998C1.40102 3.83021 1.22148 3.76012 1.03229 3.76012C0.777422 3.76012 0.536097 3.88787 0.371977 4.10621L0.20399 4.33081C-0.0971529 4.73456 -0.0605251 5.328 0.285096 5.68226L2.31232 7.74863C2.47065 7.91143 2.67725 8 2.88963 8C3.13285 8 3.36453 7.88467 3.52865 7.68068L8.85337 1.05907C9.0542 0.809911 9.04842 0.42676 8.83794 0.185681L8.83799 0.185699Z"
fill="black"
/>
</svg>
</template>

Before

Width:  |  Height:  |  Size: 620 B

After

Width:  |  Height:  |  Size: 668 B

Before After
Before After

View file

@ -0,0 +1,16 @@
<template>
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g>
<path
d="M2.55872 11.6957C2.55872 6.64866 6.63982 2.5603 11.6779 2.5603C16.716 2.5603 20.7971 6.64866 20.7971 11.6957V20.8311H11.6779C6.63982 20.8311 2.55872 16.7428 2.55872 11.6957Z"
fill="currentColor"
/>
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="M20.0946 11.6956V20.1277H11.678C7.02685 20.1277 3.26089 16.355 3.26089 11.6956C3.26089 7.03625 7.02685 3.2636 11.678 3.2636C16.3291 3.2636 20.0946 7.03625 20.0946 11.6956ZM1.5 11.6956C1.5 6.06771 6.0596 1.5 11.6775 1.5C17.2955 1.5 21.8555 6.06771 21.8555 11.6956V21.8913H11.678C6.0596 21.8913 1.5 17.3236 1.5 11.6956ZM5.55074 12.1034C5.55074 14.2037 6.96527 15.978 9.2145 15.978C11.0669 15.978 12.3185 14.7546 12.6238 13.1538H10.792C10.558 13.888 9.96752 14.3365 9.2145 14.3365C8.07449 14.3365 7.33174 13.4391 7.33174 12.1039C7.33174 10.7686 8.07492 9.8712 9.2145 9.8712C9.94742 9.8712 10.5273 10.2893 10.7719 10.9824H12.614C12.2882 9.42227 11.0468 8.22969 9.2145 8.22969C6.95544 8.22926 5.55074 10.0031 5.55074 12.1034ZM15.077 8.43317H13.3469V15.7844H15.1484V11.9509C15.1484 11.227 15.352 10.7579 15.6979 10.4624C16.0032 10.1869 16.4 10.0443 17.0517 10.0443H17.5097V8.34107H17.062C16.1153 8.34107 15.4845 8.68762 15.0775 9.21794V8.42246V8.43317H15.077Z"
fill="#141414"
/>
</g>
</svg>
</template>

View file

@ -0,0 +1,20 @@
<template>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M1.33337 5.58483C1.33337 5.35128 1.33337 5.23451 1.34312 5.13615C1.43711 4.18752 2.18755 3.43708 3.13618 3.34309C3.23454 3.33334 3.35761 3.33334 3.60376 3.33334C3.69861 3.33334 3.74603 3.33334 3.7863 3.33091C4.30045 3.29977 4.75068 2.97526 4.9428 2.49734C4.95785 2.45992 4.97191 2.41772 5.00004 2.33334C5.02817 2.24896 5.04223 2.20677 5.05728 2.16934C5.24941 1.69143 5.69963 1.36692 6.21378 1.33578C6.25405 1.33334 6.29852 1.33334 6.38747 1.33334H9.61262C9.70156 1.33334 9.74603 1.33334 9.7863 1.33578C10.3004 1.36692 10.7507 1.69143 10.9428 2.16934C10.9579 2.20677 10.9719 2.24896 11 2.33334C11.0282 2.41772 11.0422 2.45992 11.0573 2.49734C11.2494 2.97526 11.6996 3.29977 12.2138 3.33091C12.254 3.33334 12.3015 3.33334 12.3963 3.33334C12.6425 3.33334 12.7655 3.33334 12.8639 3.34309C13.8125 3.43708 14.563 4.18752 14.657 5.13615C14.6667 5.23451 14.6667 5.35128 14.6667 5.58483V10.8C14.6667 11.9201 14.6667 12.4802 14.4487 12.908C14.257 13.2843 13.951 13.5903 13.5747 13.782C13.1469 14 12.5868 14 11.4667 14H4.53337C3.41327 14 2.85322 14 2.42539 13.782C2.04907 13.5903 1.74311 13.2843 1.55136 12.908C1.33337 12.4802 1.33337 11.9201 1.33337 10.8V5.58483Z"
stroke="currentColor"
stroke-opacity="0.9"
stroke-width="1.5"
stroke-linecap="round"
stroke-linejoin="round"
/>
<path
d="M8.00004 11C9.4728 11 10.6667 9.8061 10.6667 8.33334C10.6667 6.86058 9.4728 5.66668 8.00004 5.66668C6.52728 5.66668 5.33337 6.86058 5.33337 8.33334C5.33337 9.8061 6.52728 11 8.00004 11Z"
stroke="currentColor"
stroke-opacity="0.9"
stroke-width="1.5"
stroke-linecap="round"
stroke-linejoin="round"
/>
</svg>
</template>

View file

@ -0,0 +1,20 @@
<template>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M7.99996 8.66668C9.10453 8.66668 9.99996 7.77125 9.99996 6.66668C9.99996 5.56211 9.10453 4.66668 7.99996 4.66668C6.89539 4.66668 5.99996 5.56211 5.99996 6.66668C5.99996 7.77125 6.89539 8.66668 7.99996 8.66668Z"
stroke="currentColor"
stroke-opacity="0.9"
stroke-width="1.5"
stroke-linecap="round"
stroke-linejoin="round"
/>
<path
d="M7.99996 14.6667C10.6666 12 13.3333 9.6122 13.3333 6.66668C13.3333 3.72116 10.9455 1.33334 7.99996 1.33334C5.05444 1.33334 2.66663 3.72116 2.66663 6.66668C2.66663 9.6122 5.33329 12 7.99996 14.6667Z"
stroke="currentColor"
stroke-opacity="0.9"
stroke-width="1.5"
stroke-linecap="round"
stroke-linejoin="round"
/>
</svg>
</template>

View file

@ -0,0 +1,12 @@
<template>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M14 6.66668H2M10.6667 1.33334V4.00001M5.33333 1.33334V4.00001M5.2 14.6667H10.8C11.9201 14.6667 12.4802 14.6667 12.908 14.4487C13.2843 14.2569 13.5903 13.951 13.782 13.5747C14 13.1468 14 12.5868 14 11.4667V5.86668C14 4.74657 14 4.18652 13.782 3.7587C13.5903 3.38237 13.2843 3.07641 12.908 2.88466C12.4802 2.66668 11.9201 2.66668 10.8 2.66668H5.2C4.0799 2.66668 3.51984 2.66668 3.09202 2.88466C2.71569 3.07641 2.40973 3.38237 2.21799 3.7587C2 4.18652 2 4.74657 2 5.86668V11.4667C2 12.5868 2 13.1468 2.21799 13.5747C2.40973 13.951 2.71569 14.2569 3.09202 14.4487C3.51984 14.6667 4.0799 14.6667 5.2 14.6667Z"
stroke="currentColor"
stroke-opacity="0.9"
stroke-width="1.5"
stroke-linecap="round"
stroke-linejoin="round"
/>
</svg>
</template>

View file

@ -1,4 +1,8 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.55 3H7.25C7.71944 3 8.1 3.38056 8.1 3.85C8.1 4.28591 7.77187 4.64518 7.34913 4.69428L7.25 4.7H5.55C5.11409 4.7 4.75482 5.02813 4.70572 5.45087L4.7 5.55V17.45C4.7 17.8859 5.02813 18.2452 5.45087 18.2943L5.55 18.3H17.45C17.8859 18.3 18.2452 17.9719 18.2943 17.5491L18.3 17.45V15.75C18.3 15.2806 18.6806 14.9 19.15 14.9C19.5859 14.9 19.9452 15.2281 19.9943 15.6509L20 15.75V17.45C20 18.808 18.9384 19.9181 17.5998 19.9957L17.45 20H5.55C4.19197 20 3.08189 18.9384 3.00433 17.5998L3 17.45V5.55C3 4.19197 4.06158 3.08189 5.40017 3.00433L5.55 3ZM19.15 3L19.2188 3.00255L19.3206 3.0172L19.4153 3.04228L19.5097 3.07962L19.5926 3.1241L19.6742 3.18087L19.751 3.24896L19.8331 3.34399L19.894 3.43855L19.9204 3.49037L19.9491 3.5596L19.9695 3.62391L19.9941 3.74962L20 3.85V8.95C20 9.41944 19.6194 9.8 19.15 9.8C18.6806 9.8 18.3 9.41944 18.3 8.95V5.9019L12.951 11.251C12.6446 11.5575 12.1625 11.581 11.829 11.3218L11.749 11.251C11.4425 10.9446 11.419 10.4625 11.6782 10.129L11.749 10.049L17.0964 4.7H14.05C13.5806 4.7 13.2 4.31944 13.2 3.85C13.2 3.38056 13.5806 3 14.05 3H19.15Z" fill="black"/>
</svg>
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="M5.55 3H7.25C7.71944 3 8.1 3.38056 8.1 3.85C8.1 4.28591 7.77187 4.64518 7.34913 4.69428L7.25 4.7H5.55C5.11409 4.7 4.75482 5.02813 4.70572 5.45087L4.7 5.55V17.45C4.7 17.8859 5.02813 18.2452 5.45087 18.2943L5.55 18.3H17.45C17.8859 18.3 18.2452 17.9719 18.2943 17.5491L18.3 17.45V15.75C18.3 15.2806 18.6806 14.9 19.15 14.9C19.5859 14.9 19.9452 15.2281 19.9943 15.6509L20 15.75V17.45C20 18.808 18.9384 19.9181 17.5998 19.9957L17.45 20H5.55C4.19197 20 3.08189 18.9384 3.00433 17.5998L3 17.45V5.55C3 4.19197 4.06158 3.08189 5.40017 3.00433L5.55 3ZM19.15 3L19.2188 3.00255L19.3206 3.0172L19.4153 3.04228L19.5097 3.07962L19.5926 3.1241L19.6742 3.18087L19.751 3.24896L19.8331 3.34399L19.894 3.43855L19.9204 3.49037L19.9491 3.5596L19.9695 3.62391L19.9941 3.74962L20 3.85V8.95C20 9.41944 19.6194 9.8 19.15 9.8C18.6806 9.8 18.3 9.41944 18.3 8.95V5.9019L12.951 11.251C12.6446 11.5575 12.1625 11.581 11.829 11.3218L11.749 11.251C11.4425 10.9446 11.419 10.4625 11.6782 10.129L11.749 10.049L17.0964 4.7H14.05C13.5806 4.7 13.2 4.31944 13.2 3.85C13.2 3.38056 13.5806 3 14.05 3H19.15Z"
fill="black"
/>
</svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Before After
Before After

View file

@ -0,0 +1,14 @@
<template>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M2.92292 9.87757C3.0563 10.011 3.1298 10.1928 3.12652 10.3814L3.09485 12.1976C3.09157 12.3862 3.16506 12.5681 3.29845 12.7015C3.43184 12.8349 3.61372 12.9083 3.80236 12.9051L5.61849 12.8732C5.80709 12.87 5.98896 12.9434 6.12234 13.0768L7.50821 14.4628H7.50816C7.63863 14.5933 7.81556 14.6665 7.99998 14.6665C8.18441 14.6665 8.36134 14.5933 8.49181 14.4628L9.87768 13.0768H9.87763C10.011 12.9435 10.1929 12.87 10.3815 12.8732L12.1976 12.9049C12.3863 12.9082 12.5681 12.8348 12.7015 12.7013C12.8349 12.5679 12.9084 12.386 12.9051 12.1975L12.8733 10.3815C12.87 10.1929 12.9435 10.011 13.0769 9.8776L14.4629 8.4916C14.5933 8.36118 14.6666 8.18431 14.6666 7.99988C14.6666 7.81545 14.5933 7.63857 14.4629 7.50816L13.0769 6.12216C12.9435 5.98872 12.87 5.80689 12.8733 5.61825L12.905 3.80225C12.9082 3.61361 12.8348 3.43173 12.7014 3.29829C12.568 3.16491 12.3861 3.09141 12.1974 3.09469L10.3814 3.12641C10.1928 3.12969 10.0109 3.05626 9.8775 2.92281L8.49176 1.53695C8.36129 1.40648 8.18442 1.33325 7.99994 1.33325C7.81546 1.33325 7.63858 1.40648 7.50811 1.53695L6.12224 2.92281C5.9888 3.05625 5.80694 3.12969 5.61828 3.12641L3.80228 3.09469C3.61364 3.09141 3.43176 3.1649 3.29832 3.29829C3.16494 3.43173 3.09144 3.6136 3.09472 3.80225L3.12655 5.61825C3.12983 5.80689 3.05634 5.98872 2.92295 6.12216L1.53695 7.50816C1.40653 7.63858 1.33325 7.81545 1.33325 7.99988C1.33325 8.18431 1.40653 8.36119 1.53695 8.4916L2.92292 9.87757ZM5.52865 7.5285C5.6537 7.40356 5.82324 7.33334 6.00001 7.33334C6.17678 7.33334 6.34632 7.40355 6.47137 7.5285L7.33334 8.39053L9.52868 6.1952V6.19514C9.69794 6.03102 9.94128 5.96848 10.1687 6.03066C10.3961 6.0928 10.5738 6.2705 10.6359 6.4979C10.6981 6.72536 10.6355 6.96869 10.4714 7.1379L7.80472 9.80457C7.67966 9.92957 7.51013 9.99978 7.33336 9.99978C7.15658 9.99978 6.98705 9.92958 6.862 9.80457L5.52866 8.47124C5.40366 8.34619 5.33345 8.17665 5.33345 7.99988C5.33345 7.82305 5.40366 7.65352 5.52866 7.52848L5.52865 7.5285Z"
fill="currentColor"
fill-opacity="0.9"
/>
<path
d="M2.92292 9.87757C3.0563 10.011 3.1298 10.1928 3.12652 10.3814L3.09485 12.1976C3.09157 12.3862 3.16506 12.5681 3.29845 12.7015C3.43184 12.8349 3.61372 12.9083 3.80236 12.9051L5.61849 12.8732C5.80709 12.87 5.98896 12.9434 6.12234 13.0768L7.50821 14.4628H7.50816C7.63863 14.5933 7.81556 14.6665 7.99998 14.6665C8.18441 14.6665 8.36134 14.5933 8.49181 14.4628L9.87768 13.0768H9.87763C10.011 12.9435 10.1929 12.87 10.3815 12.8732L12.1976 12.9049C12.3863 12.9082 12.5681 12.8348 12.7015 12.7013C12.8349 12.5679 12.9084 12.386 12.9051 12.1975L12.8733 10.3815C12.87 10.1929 12.9435 10.011 13.0769 9.8776L14.4629 8.4916C14.5933 8.36118 14.6666 8.18431 14.6666 7.99988C14.6666 7.81545 14.5933 7.63857 14.4629 7.50816L13.0769 6.12216C12.9435 5.98872 12.87 5.80689 12.8733 5.61825L12.905 3.80225C12.9082 3.61361 12.8348 3.43173 12.7014 3.29829C12.568 3.16491 12.3861 3.09141 12.1974 3.09469L10.3814 3.12641C10.1928 3.12969 10.0109 3.05626 9.8775 2.92281L8.49176 1.53695C8.36129 1.40648 8.18442 1.33325 7.99994 1.33325C7.81546 1.33325 7.63858 1.40648 7.50811 1.53695L6.12224 2.92281C5.9888 3.05625 5.80694 3.12969 5.61828 3.12641L3.80228 3.09469C3.61364 3.09141 3.43176 3.1649 3.29832 3.29829C3.16494 3.43173 3.09144 3.6136 3.09472 3.80225L3.12655 5.61825C3.12983 5.80689 3.05634 5.98872 2.92295 6.12216L1.53695 7.50816C1.40653 7.63858 1.33325 7.81545 1.33325 7.99988C1.33325 8.18431 1.40653 8.36119 1.53695 8.4916L2.92292 9.87757ZM5.52865 7.5285C5.6537 7.40356 5.82324 7.33334 6.00001 7.33334C6.17678 7.33334 6.34632 7.40355 6.47137 7.5285L7.33334 8.39053L9.52868 6.1952V6.19514C9.69794 6.03102 9.94128 5.96848 10.1687 6.03066C10.3961 6.0928 10.5738 6.2705 10.6359 6.4979C10.6981 6.72536 10.6355 6.96869 10.4714 7.1379L7.80472 9.80457C7.67966 9.92957 7.51013 9.99978 7.33336 9.99978C7.15658 9.99978 6.98705 9.92958 6.862 9.80457L5.52866 8.47124C5.40366 8.34619 5.33345 8.17665 5.33345 7.99988C5.33345 7.82305 5.40366 7.65352 5.52866 7.52848L5.52865 7.5285Z"
fill="currentColor"
fill-opacity="0.9"
/>
</svg>
</template>

View file

@ -0,0 +1,12 @@
<template>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M9.99992 1.33325V2.26659C9.99992 2.63995 9.99992 2.82664 9.92726 2.96925C9.86334 3.09469 9.76135 3.19667 9.63591 3.26059C9.49331 3.33325 9.30662 3.33325 8.93325 3.33325H7.06659C6.69322 3.33325 6.50653 3.33325 6.36393 3.26059C6.23848 3.19667 6.1365 3.09469 6.07258 2.96925C5.99992 2.82664 5.99992 2.63995 5.99992 2.26659V1.33325M5.46659 14.6666H10.5333C11.28 14.6666 11.6534 14.6666 11.9386 14.5213C12.1895 14.3934 12.3934 14.1895 12.5213 13.9386C12.6666 13.6534 12.6666 13.28 12.6666 12.5333V3.46659C12.6666 2.71985 12.6666 2.34648 12.5213 2.06126C12.3934 1.81038 12.1895 1.60641 11.9386 1.47858C11.6534 1.33325 11.28 1.33325 10.5333 1.33325H5.46659C4.71985 1.33325 4.34648 1.33325 4.06126 1.47858C3.81038 1.60641 3.60641 1.81038 3.47858 2.06126C3.33325 2.34648 3.33325 2.71985 3.33325 3.46659V12.5333C3.33325 13.28 3.33325 13.6534 3.47858 13.9386C3.60641 14.1895 3.81038 14.3934 4.06126 14.5213C4.34648 14.6666 4.71985 14.6666 5.46659 14.6666Z"
stroke="currentColor"
stroke-opacity="0.9"
stroke-width="1.5"
stroke-linecap="round"
stroke-linejoin="round"
/>
</svg>
</template>

View file

@ -0,0 +1,9 @@
<template>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M12.8 2C12.9105 2 13 2.08954 13 2.2V9.3C13 9.41046 12.9105 9.5 12.8 9.5H4.45C4.33954 9.5 4.25 9.58954 4.25 9.7V14.3C4.25 14.4105 4.16046 14.5 4.05 14.5H3.2C3.08954 14.5 3 14.4105 3 14.3V2.2C3 2.08954 3.08954 2 3.2 2H12.8Z"
fill="currentColor"
fill-opacity="0.9"
/>
</svg>
</template>

View file

@ -0,0 +1,15 @@
<template>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M8 10.6667C9.47276 10.6667 10.6667 9.47276 10.6667 8C10.6667 6.52724 9.47276 5.33333 8 5.33333C6.52724 5.33333 5.33333 6.52724 5.33333 8C5.33333 9.47276 6.52724 10.6667 8 10.6667Z"
fill="currentColor"
/>
<path
d="M5.33333 2H4.13333C3.3866 2 3.01323 2 2.72801 2.14532C2.47713 2.27316 2.27316 2.47713 2.14532 2.72801C2 3.01323 2 3.3866 2 4.13333V5.33333M5.33333 14H4.13333C3.3866 14 3.01323 14 2.72801 13.8547C2.47713 13.7268 2.27316 13.5229 2.14532 13.272C2 12.9868 2 12.6134 2 11.8667V10.6667M14 5.33333V4.13333C14 3.3866 14 3.01323 13.8547 2.72801C13.7268 2.47713 13.5229 2.27316 13.272 2.14532C12.9868 2 12.6134 2 11.8667 2H10.6667M14 10.6667V11.8667C14 12.6134 14 12.9868 13.8547 13.272C13.7268 13.5229 13.5229 13.7268 13.272 13.8547C12.9868 14 12.6134 14 11.8667 14H10.6667M10.6667 8C10.6667 9.47276 9.47276 10.6667 8 10.6667C6.52724 10.6667 5.33333 9.47276 5.33333 8C5.33333 6.52724 6.52724 5.33333 8 5.33333C9.47276 5.33333 10.6667 6.52724 10.6667 8Z"
stroke="currentColor"
stroke-width="1.5"
stroke-linecap="round"
stroke-linejoin="round"
/>
</svg>
</template>

View file

@ -0,0 +1,13 @@
<template>
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g opacity="0.65">
<path
d="M8 3H6.2C5.0799 3 4.51984 3 4.09202 3.21799C3.71569 3.40973 3.40973 3.71569 3.21799 4.09202C3 4.51984 3 5.0799 3 6.2V8M8 21H6.2C5.0799 21 4.51984 21 4.09202 20.782C3.71569 20.5903 3.40973 20.2843 3.21799 19.908C3 19.4802 3 18.9201 3 17.8V16M21 8V6.2C21 5.0799 21 4.51984 20.782 4.09202C20.5903 3.71569 20.2843 3.40973 19.908 3.21799C19.4802 3 18.9201 3 17.8 3H16M21 16V17.8C21 18.9201 21 19.4802 20.782 19.908C20.5903 20.2843 20.2843 20.5903 19.908 20.782C19.4802 21 18.9201 21 17.8 21H16M16 12C16 14.2091 14.2091 16 12 16C9.79086 16 8 14.2091 8 12C8 9.79086 9.79086 8 12 8C14.2091 8 16 9.79086 16 12Z"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
/>
</g>
</svg>
</template>

View file

@ -1,6 +1,20 @@
<svg width="17" height="19" viewBox="0 0 17 19" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.31462 16.4718C3.31462 16.9496 3.70026 17.3368 4.17609 17.3368L16.1385 17.3368C16.6144 17.3368 17 16.9496 17 16.4718L16.9998 13.6229C16.9998 13.1452 16.6142 12.7579 16.1383 12.7579L4.1764 12.7579C3.70056 12.7579 3.31492 13.1452 3.31492 13.6229L3.31512 16.4718L3.31462 16.4718Z" fill="white"/>
<path d="M3.31462 10.4557C3.31462 10.9335 3.70026 11.3208 4.17609 11.3208L11.3428 11.3208C11.8186 11.3208 12.2043 10.9335 12.2043 10.4557L12.2043 7.60711C12.2043 7.12931 11.8186 6.74208 11.3428 6.74208L4.17609 6.74208C3.70026 6.74208 3.31462 7.12932 3.31462 7.60711L3.31462 10.4557Z" fill="white"/>
<path d="M3.31451 1.59127L3.31451 4.44011C3.31451 4.91791 3.70016 5.30514 4.17598 5.30514L6.99509 5.30514C7.47093 5.30514 7.85657 4.91791 7.85657 4.44011L7.85637 1.59127C7.85637 1.11347 7.47073 0.726242 6.9949 0.726242L4.17599 0.726242C3.70035 0.726242 3.31452 1.11348 3.31452 1.59127L3.31451 1.59127Z" fill="white"/>
<path d="M-2.00529e-05 0.587841L-2.0791e-05 17.4747C-2.08052e-05 17.7995 0.262306 18.0625 0.585404 18.0625L1.38198 18.0625C1.70528 18.0625 1.96741 17.7995 1.96741 17.4747L1.96741 0.587841C1.96741 0.263208 1.70508 -1.14667e-08 1.38198 -2.55897e-08L0.585405 -6.04092e-08C0.261911 -7.45496e-08 -2.00387e-05 0.263213 -2.00529e-05 0.587841Z" fill="white"/>
</svg>
<template>
<svg width="17" height="19" viewBox="0 0 17 19" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M3.31462 16.4718C3.31462 16.9496 3.70026 17.3368 4.17609 17.3368L16.1385 17.3368C16.6144 17.3368 17 16.9496 17 16.4718L16.9998 13.6229C16.9998 13.1452 16.6142 12.7579 16.1383 12.7579L4.1764 12.7579C3.70056 12.7579 3.31492 13.1452 3.31492 13.6229L3.31512 16.4718L3.31462 16.4718Z"
fill="white"
/>
<path
d="M3.31462 10.4557C3.31462 10.9335 3.70026 11.3208 4.17609 11.3208L11.3428 11.3208C11.8186 11.3208 12.2043 10.9335 12.2043 10.4557L12.2043 7.60711C12.2043 7.12931 11.8186 6.74208 11.3428 6.74208L4.17609 6.74208C3.70026 6.74208 3.31462 7.12932 3.31462 7.60711L3.31462 10.4557Z"
fill="white"
/>
<path
d="M3.31451 1.59127L3.31451 4.44011C3.31451 4.91791 3.70016 5.30514 4.17598 5.30514L6.99509 5.30514C7.47093 5.30514 7.85657 4.91791 7.85657 4.44011L7.85637 1.59127C7.85637 1.11347 7.47073 0.726242 6.9949 0.726242L4.17599 0.726242C3.70035 0.726242 3.31452 1.11348 3.31452 1.59127L3.31451 1.59127Z"
fill="white"
/>
<path
d="M-2.00529e-05 0.587841L-2.0791e-05 17.4747C-2.08052e-05 17.7995 0.262306 18.0625 0.585404 18.0625L1.38198 18.0625C1.70528 18.0625 1.96741 17.7995 1.96741 17.4747L1.96741 0.587841C1.96741 0.263208 1.70508 -1.14667e-08 1.38198 -2.55897e-08L0.585405 -6.04092e-08C0.261911 -7.45496e-08 -2.00387e-05 0.263213 -2.00529e-05 0.587841Z"
fill="white"
/>
</svg>
</template>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Before After
Before After

View file

@ -0,0 +1,13 @@
<template>
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g opacity="0.65">
<path
d="M16.2 3H7.8C6.11984 3 5.27976 3 4.63803 3.32698C4.07354 3.6146 3.6146 4.07354 3.32698 4.63803C3 5.27976 3 6.11984 3 7.8V16.2C3 17.8802 3 18.7202 3.32698 19.362C3.6146 19.9265 4.07354 20.3854 4.63803 20.673C5.27976 21 6.11984 21 7.8 21H16.2C17.8802 21 18.7202 21 19.362 20.673C19.9265 20.3854 20.3854 19.9265 20.673 19.362C21 18.7202 21 17.8802 21 16.2V7.8M16.2 3C17.8802 3 18.7202 3 19.362 3.32698C19.9265 3.6146 20.3854 4.07354 20.673 4.63803C21 5.27976 21 6.11984 21 7.8M16.2 3H15.2C14.0799 3 13.5198 3 13.092 3.21799C12.7157 3.40973 12.4097 3.71569 12.218 4.09202C12 4.51984 12 5.07989 12 6.2V8.8C12 9.9201 12 10.4802 12.218 10.908C12.4097 11.2843 12.7157 11.5903 13.092 11.782C13.5198 12 14.0799 12 15.2 12H17.8C18.9201 12 19.4802 12 19.908 11.782C20.2843 11.5903 20.5903 11.2843 20.782 10.908C21 10.4802 21 9.92011 21 8.8V7.8M12.5 11.5L7 17M7 17H12M7 17L7 12"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
/>
</g>
</svg>
</template>

View file

@ -1,3 +0,0 @@
<svg width="24" height="17" viewBox="0 0 24 17" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M16.2477 0.000670823C16.1384 0.00531075 16.0311 0.0307591 15.9314 0.0754688C15.7815 0.142957 15.6546 0.25192 15.5656 0.389005C15.4766 0.526231 15.4291 0.685951 15.4291 0.849038V3.32107C14.7529 3.28142 14.0829 3.28494 13.4234 3.33598C6.62122 3.86253 0.885374 9.07191 0.00664931 16.0431H0.00679109C-0.0251098 16.2933 0.0564145 16.5444 0.229528 16.7288C0.402641 16.9133 0.649181 17.0122 0.902999 16.9988C1.15679 16.9853 1.39143 16.8609 1.54355 16.6591C4.61977 12.5918 9.44481 10.1994 14.572 10.1994H15.4292V12.7494C15.4295 12.9682 15.5147 13.1784 15.6674 13.3364C15.8199 13.4945 16.0281 13.5881 16.2484 13.5978C16.4687 13.6075 16.6845 13.5326 16.8505 13.3886L23.7079 7.43851C23.8935 7.2771 24 7.04413 24 6.79934C24 6.55455 23.8935 6.3216 23.7079 6.16016L16.8505 0.210072C16.6844 0.0659577 16.4685 -0.00898088 16.2478 0.000859754L16.2477 0.000670823Z" fill="currentColor"/>
</svg>

Before

Width:  |  Height:  |  Size: 1,022 B

View file

@ -0,0 +1,10 @@
<template>
<svg width="24" height="17" viewBox="0 0 24 17" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="M16.2477 0.000670823C16.1384 0.00531075 16.0311 0.0307591 15.9314 0.0754688C15.7815 0.142957 15.6546 0.25192 15.5656 0.389005C15.4766 0.526231 15.4291 0.685951 15.4291 0.849038V3.32107C14.7529 3.28142 14.0829 3.28494 13.4234 3.33598C6.62122 3.86253 0.885374 9.07191 0.00664931 16.0431H0.00679109C-0.0251098 16.2933 0.0564145 16.5444 0.229528 16.7288C0.402641 16.9133 0.649181 17.0122 0.902999 16.9988C1.15679 16.9853 1.39143 16.8609 1.54355 16.6591C4.61977 12.5918 9.44481 10.1994 14.572 10.1994H15.4292V12.7494C15.4295 12.9682 15.5147 13.1784 15.6674 13.3364C15.8199 13.4945 16.0281 13.5881 16.2484 13.5978C16.4687 13.6075 16.6845 13.5326 16.8505 13.3886L23.7079 7.43851C23.8935 7.2771 24 7.04413 24 6.79934C24 6.55455 23.8935 6.3216 23.7079 6.16016L16.8505 0.210072C16.6844 0.0659577 16.4685 -0.00898088 16.2478 0.000859754L16.2477 0.000670823Z"
fill="currentColor"
/>
</svg>
</template>

View file

@ -0,0 +1,11 @@
<template>
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M3 8L15 8M15 8C15 9.65686 16.3431 11 18 11C19.6569 11 21 9.65685 21 8C21 6.34315 19.6569 5 18 5C16.3431 5 15 6.34315 15 8ZM9 16L21 16M9 16C9 17.6569 7.65685 19 6 19C4.34315 19 3 17.6569 3 16C3 14.3431 4.34315 13 6 13C7.65685 13 9 14.3431 9 16Z"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
/>
</svg>
</template>

View file

@ -1,10 +1,34 @@
<svg width="13" height="13" viewBox="0 0 13 13" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.08333 5.77777H0.361111C0.161778 5.77777 0 5.93955 0 6.13888C0 6.33822 0.161778 6.49999 0.361111 6.49999H1.08333C1.28267 6.49999 1.44444 6.33822 1.44444 6.13888C1.44444 5.93955 1.28267 5.77777 1.08333 5.77777Z" fill="black"/>
<path d="M1.08333 5.77777H0.361111C0.161778 5.77777 0 5.93955 0 6.13888C0 6.33822 0.161778 6.49999 0.361111 6.49999H1.08333C1.28267 6.49999 1.44444 6.33822 1.44444 6.13888C1.44444 5.93955 1.28267 5.77777 1.08333 5.77777Z" fill="black"/>
<path d="M1.08333 8.66669H0.361111C0.161778 8.66669 0 8.82846 0 9.0278C0 9.22713 0.161778 9.38891 0.361111 9.38891H1.08333C1.28267 9.38891 1.44444 9.22713 1.44444 9.0278C1.44444 8.82846 1.28267 8.66669 1.08333 8.66669Z" fill="black"/>
<path d="M1.08333 8.66669H0.361111C0.161778 8.66669 0 8.82846 0 9.0278C0 9.22713 0.161778 9.38891 0.361111 9.38891H1.08333C1.28267 9.38891 1.44444 9.22713 1.44444 9.0278C1.44444 8.82846 1.28267 8.66669 1.08333 8.66669Z" fill="black"/>
<path d="M11.6553 4.02206L12.1724 3.50494C12.3132 3.36411 12.3132 3.13517 12.1724 2.99433C12.0316 2.8535 11.8026 2.8535 11.6618 2.99433L11.1447 3.51144C10.2766 2.75239 9.1658 2.26633 7.94453 2.18472V0.722222H9.02786C9.22719 0.722222 9.38897 0.560444 9.38897 0.361111C9.38897 0.161778 9.22719 0 9.02786 0H6.13897C5.93964 0 5.77786 0.161778 5.77786 0.361111C5.77786 0.560444 5.93964 0.722222 6.13897 0.722222H7.2223V2.18472C4.40419 2.37178 2.16675 4.71828 2.16675 7.58333C2.16675 10.5704 4.5963 13 7.58341 13C10.5705 13 13.0001 10.5704 13.0001 7.58333C13.0001 6.21978 12.4895 4.97611 11.6553 4.02206ZM7.58341 12.2778C4.99497 12.2778 2.88897 10.1718 2.88897 7.58333C2.88897 4.99489 4.99497 2.88889 7.58341 2.88889C10.1719 2.88889 12.2779 4.99489 12.2779 7.58333C12.2779 10.1718 10.1719 12.2778 7.58341 12.2778Z" fill="black"/>
<path d="M11.6553 4.02206L12.1724 3.50494C12.3132 3.36411 12.3132 3.13517 12.1724 2.99433C12.0316 2.8535 11.8026 2.8535 11.6618 2.99433L11.1447 3.51144C10.2766 2.75239 9.1658 2.26633 7.94453 2.18472V0.722222H9.02786C9.22719 0.722222 9.38897 0.560444 9.38897 0.361111C9.38897 0.161778 9.22719 0 9.02786 0H6.13897C5.93964 0 5.77786 0.161778 5.77786 0.361111C5.77786 0.560444 5.93964 0.722222 6.13897 0.722222H7.2223V2.18472C4.40419 2.37178 2.16675 4.71828 2.16675 7.58333C2.16675 10.5704 4.5963 13 7.58341 13C10.5705 13 13.0001 10.5704 13.0001 7.58333C13.0001 6.21978 12.4895 4.97611 11.6553 4.02206ZM7.58341 12.2778C4.99497 12.2778 2.88897 10.1718 2.88897 7.58333C2.88897 4.99489 4.99497 2.88889 7.58341 2.88889C10.1719 2.88889 12.2779 4.99489 12.2779 7.58333C12.2779 10.1718 10.1719 12.2778 7.58341 12.2778Z" fill="black"/>
<path d="M7.58328 4.33331C7.38395 4.33331 7.22217 4.49509 7.22217 4.69442V7.58331C7.22217 7.78265 7.38395 7.94442 7.58328 7.94442C7.78261 7.94442 7.94439 7.78265 7.94439 7.58331V4.69442C7.94439 4.49509 7.78261 4.33331 7.58328 4.33331Z" fill="black"/>
<path d="M7.58328 4.33331C7.38395 4.33331 7.22217 4.49509 7.22217 4.69442V7.58331C7.22217 7.78265 7.38395 7.94442 7.58328 7.94442C7.78261 7.94442 7.94439 7.78265 7.94439 7.58331V4.69442C7.94439 4.49509 7.78261 4.33331 7.58328 4.33331Z" fill="black"/>
</svg>
<svg width="13" height="13" viewBox="0 0 13 13" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M1.08333 5.77777H0.361111C0.161778 5.77777 0 5.93955 0 6.13888C0 6.33822 0.161778 6.49999 0.361111 6.49999H1.08333C1.28267 6.49999 1.44444 6.33822 1.44444 6.13888C1.44444 5.93955 1.28267 5.77777 1.08333 5.77777Z"
fill="black"
/>
<path
d="M1.08333 5.77777H0.361111C0.161778 5.77777 0 5.93955 0 6.13888C0 6.33822 0.161778 6.49999 0.361111 6.49999H1.08333C1.28267 6.49999 1.44444 6.33822 1.44444 6.13888C1.44444 5.93955 1.28267 5.77777 1.08333 5.77777Z"
fill="black"
/>
<path
d="M1.08333 8.66669H0.361111C0.161778 8.66669 0 8.82846 0 9.0278C0 9.22713 0.161778 9.38891 0.361111 9.38891H1.08333C1.28267 9.38891 1.44444 9.22713 1.44444 9.0278C1.44444 8.82846 1.28267 8.66669 1.08333 8.66669Z"
fill="black"
/>
<path
d="M1.08333 8.66669H0.361111C0.161778 8.66669 0 8.82846 0 9.0278C0 9.22713 0.161778 9.38891 0.361111 9.38891H1.08333C1.28267 9.38891 1.44444 9.22713 1.44444 9.0278C1.44444 8.82846 1.28267 8.66669 1.08333 8.66669Z"
fill="black"
/>
<path
d="M11.6553 4.02206L12.1724 3.50494C12.3132 3.36411 12.3132 3.13517 12.1724 2.99433C12.0316 2.8535 11.8026 2.8535 11.6618 2.99433L11.1447 3.51144C10.2766 2.75239 9.1658 2.26633 7.94453 2.18472V0.722222H9.02786C9.22719 0.722222 9.38897 0.560444 9.38897 0.361111C9.38897 0.161778 9.22719 0 9.02786 0H6.13897C5.93964 0 5.77786 0.161778 5.77786 0.361111C5.77786 0.560444 5.93964 0.722222 6.13897 0.722222H7.2223V2.18472C4.40419 2.37178 2.16675 4.71828 2.16675 7.58333C2.16675 10.5704 4.5963 13 7.58341 13C10.5705 13 13.0001 10.5704 13.0001 7.58333C13.0001 6.21978 12.4895 4.97611 11.6553 4.02206ZM7.58341 12.2778C4.99497 12.2778 2.88897 10.1718 2.88897 7.58333C2.88897 4.99489 4.99497 2.88889 7.58341 2.88889C10.1719 2.88889 12.2779 4.99489 12.2779 7.58333C12.2779 10.1718 10.1719 12.2778 7.58341 12.2778Z"
fill="black"
/>
<path
d="M11.6553 4.02206L12.1724 3.50494C12.3132 3.36411 12.3132 3.13517 12.1724 2.99433C12.0316 2.8535 11.8026 2.8535 11.6618 2.99433L11.1447 3.51144C10.2766 2.75239 9.1658 2.26633 7.94453 2.18472V0.722222H9.02786C9.22719 0.722222 9.38897 0.560444 9.38897 0.361111C9.38897 0.161778 9.22719 0 9.02786 0H6.13897C5.93964 0 5.77786 0.161778 5.77786 0.361111C5.77786 0.560444 5.93964 0.722222 6.13897 0.722222H7.2223V2.18472C4.40419 2.37178 2.16675 4.71828 2.16675 7.58333C2.16675 10.5704 4.5963 13 7.58341 13C10.5705 13 13.0001 10.5704 13.0001 7.58333C13.0001 6.21978 12.4895 4.97611 11.6553 4.02206ZM7.58341 12.2778C4.99497 12.2778 2.88897 10.1718 2.88897 7.58333C2.88897 4.99489 4.99497 2.88889 7.58341 2.88889C10.1719 2.88889 12.2779 4.99489 12.2779 7.58333C12.2779 10.1718 10.1719 12.2778 7.58341 12.2778Z"
fill="black"
/>
<path
d="M7.58328 4.33331C7.38395 4.33331 7.22217 4.49509 7.22217 4.69442V7.58331C7.22217 7.78265 7.38395 7.94442 7.58328 7.94442C7.78261 7.94442 7.94439 7.78265 7.94439 7.58331V4.69442C7.94439 4.49509 7.78261 4.33331 7.58328 4.33331Z"
fill="black"
/>
<path
d="M7.58328 4.33331C7.38395 4.33331 7.22217 4.49509 7.22217 4.69442V7.58331C7.22217 7.78265 7.38395 7.94442 7.58328 7.94442C7.78261 7.94442 7.94439 7.78265 7.94439 7.58331V4.69442C7.94439 4.49509 7.78261 4.33331 7.58328 4.33331Z"
fill="black"
/>
</svg>

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Before After
Before After

View file

@ -0,0 +1,36 @@
<template>
<svg width="13" height="13" viewBox="0 0 13 13" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M1.08333 5.77777H0.361111C0.161778 5.77777 0 5.93955 0 6.13888C0 6.33822 0.161778 6.49999 0.361111 6.49999H1.08333C1.28267 6.49999 1.44444 6.33822 1.44444 6.13888C1.44444 5.93955 1.28267 5.77777 1.08333 5.77777Z"
fill="black"
/>
<path
d="M1.08333 5.77777H0.361111C0.161778 5.77777 0 5.93955 0 6.13888C0 6.33822 0.161778 6.49999 0.361111 6.49999H1.08333C1.28267 6.49999 1.44444 6.33822 1.44444 6.13888C1.44444 5.93955 1.28267 5.77777 1.08333 5.77777Z"
fill="black"
/>
<path
d="M1.08333 8.66669H0.361111C0.161778 8.66669 0 8.82846 0 9.0278C0 9.22713 0.161778 9.38891 0.361111 9.38891H1.08333C1.28267 9.38891 1.44444 9.22713 1.44444 9.0278C1.44444 8.82846 1.28267 8.66669 1.08333 8.66669Z"
fill="black"
/>
<path
d="M1.08333 8.66669H0.361111C0.161778 8.66669 0 8.82846 0 9.0278C0 9.22713 0.161778 9.38891 0.361111 9.38891H1.08333C1.28267 9.38891 1.44444 9.22713 1.44444 9.0278C1.44444 8.82846 1.28267 8.66669 1.08333 8.66669Z"
fill="black"
/>
<path
d="M11.6553 4.02206L12.1724 3.50494C12.3132 3.36411 12.3132 3.13517 12.1724 2.99433C12.0316 2.8535 11.8026 2.8535 11.6618 2.99433L11.1447 3.51144C10.2766 2.75239 9.1658 2.26633 7.94453 2.18472V0.722222H9.02786C9.22719 0.722222 9.38897 0.560444 9.38897 0.361111C9.38897 0.161778 9.22719 0 9.02786 0H6.13897C5.93964 0 5.77786 0.161778 5.77786 0.361111C5.77786 0.560444 5.93964 0.722222 6.13897 0.722222H7.2223V2.18472C4.40419 2.37178 2.16675 4.71828 2.16675 7.58333C2.16675 10.5704 4.5963 13 7.58341 13C10.5705 13 13.0001 10.5704 13.0001 7.58333C13.0001 6.21978 12.4895 4.97611 11.6553 4.02206ZM7.58341 12.2778C4.99497 12.2778 2.88897 10.1718 2.88897 7.58333C2.88897 4.99489 4.99497 2.88889 7.58341 2.88889C10.1719 2.88889 12.2779 4.99489 12.2779 7.58333C12.2779 10.1718 10.1719 12.2778 7.58341 12.2778Z"
fill="black"
/>
<path
d="M11.6553 4.02206L12.1724 3.50494C12.3132 3.36411 12.3132 3.13517 12.1724 2.99433C12.0316 2.8535 11.8026 2.8535 11.6618 2.99433L11.1447 3.51144C10.2766 2.75239 9.1658 2.26633 7.94453 2.18472V0.722222H9.02786C9.22719 0.722222 9.38897 0.560444 9.38897 0.361111C9.38897 0.161778 9.22719 0 9.02786 0H6.13897C5.93964 0 5.77786 0.161778 5.77786 0.361111C5.77786 0.560444 5.93964 0.722222 6.13897 0.722222H7.2223V2.18472C4.40419 2.37178 2.16675 4.71828 2.16675 7.58333C2.16675 10.5704 4.5963 13 7.58341 13C10.5705 13 13.0001 10.5704 13.0001 7.58333C13.0001 6.21978 12.4895 4.97611 11.6553 4.02206ZM7.58341 12.2778C4.99497 12.2778 2.88897 10.1718 2.88897 7.58333C2.88897 4.99489 4.99497 2.88889 7.58341 2.88889C10.1719 2.88889 12.2779 4.99489 12.2779 7.58333C12.2779 10.1718 10.1719 12.2778 7.58341 12.2778Z"
fill="black"
/>
<path
d="M7.58328 4.33331C7.38395 4.33331 7.22217 4.49509 7.22217 4.69442V7.58331C7.22217 7.78265 7.38395 7.94442 7.58328 7.94442C7.78261 7.94442 7.94439 7.78265 7.94439 7.58331V4.69442C7.94439 4.49509 7.78261 4.33331 7.58328 4.33331Z"
fill="black"
/>
<path
d="M7.58328 4.33331C7.38395 4.33331 7.22217 4.49509 7.22217 4.69442V7.58331C7.22217 7.78265 7.38395 7.94442 7.58328 7.94442C7.78261 7.94442 7.94439 7.78265 7.94439 7.58331V4.69442C7.94439 4.49509 7.78261 4.33331 7.58328 4.33331Z"
fill="black"
/>
</svg>
</template>

View file

@ -1,5 +1,16 @@
<svg width="28" height="33" viewBox="0 0 28 33" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.4989 0C9.22596 0 8.16477 1.0612 8.16477 2.33409V4.66819C5.83219 4.66819 3.49962 4.66819 1.16705 4.66819C0.52251 4.66819 0 5.1907 0 5.83524C0 6.47977 0.52251 7.00228 1.16705 7.00228H2.32953V29.1762C2.32953 31.0956 3.91123 32.6773 5.83067 32.6773H22.1693C24.0888 32.6773 25.6705 31.0956 25.6705 29.1762V7.00228H26.833C27.4775 7.00228 28 6.47977 28 5.83524C28 5.1907 27.4775 4.66819 26.833 4.66819C24.5004 4.66819 22.1678 4.66819 19.8352 4.66819V2.33409C19.8352 1.0612 18.774 0 17.5011 0H10.4989ZM10.4989 2.33409H17.5011V4.66819H10.4989V2.33409ZM4.66362 7.00228C10.8879 7.00228 17.1121 7.00228 23.3364 7.00228V29.1762C23.3364 29.8429 22.8361 30.3432 22.1693 30.3432H5.83067C5.16394 30.3432 4.66362 29.8429 4.66362 29.1762V7.00228Z" fill="white"/>
<path d="M10.4991 12.8374C10.1896 12.8374 9.89272 12.9604 9.67385 13.1792C9.45499 13.3981 9.33203 13.6949 9.33203 14.0044V23.3408C9.33203 23.6503 9.45499 23.9472 9.67385 24.1661C9.89272 24.3849 10.1896 24.5079 10.4991 24.5079C10.8086 24.5079 11.1054 24.3849 11.3243 24.1661C11.5432 23.9472 11.6661 23.6503 11.6661 23.3408V14.0044C11.6661 13.6949 11.5432 13.3981 11.3243 13.1792C11.1054 12.9604 10.8086 12.8374 10.4991 12.8374Z" fill="white"/>
<path d="M17.5015 12.8374C17.192 12.8374 16.8952 12.9604 16.6763 13.1792C16.4574 13.3981 16.3345 13.6949 16.3345 14.0044V23.3408C16.3345 23.6503 16.4574 23.9472 16.6763 24.1661C16.8952 24.3849 17.192 24.5079 17.5015 24.5079C17.811 24.5079 18.1079 24.3849 18.3267 24.1661C18.5456 23.9472 18.6686 23.6503 18.6686 23.3408V14.0044C18.6686 13.6949 18.5456 13.3981 18.3267 13.1792C18.1079 12.9604 17.811 12.8374 17.5015 12.8374Z" fill="white"/>
</svg>
<template>
<svg width="28" height="33" viewBox="0 0 28 33" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M10.4989 0C9.22596 0 8.16477 1.0612 8.16477 2.33409V4.66819C5.83219 4.66819 3.49962 4.66819 1.16705 4.66819C0.52251 4.66819 0 5.1907 0 5.83524C0 6.47977 0.52251 7.00228 1.16705 7.00228H2.32953V29.1762C2.32953 31.0956 3.91123 32.6773 5.83067 32.6773H22.1693C24.0888 32.6773 25.6705 31.0956 25.6705 29.1762V7.00228H26.833C27.4775 7.00228 28 6.47977 28 5.83524C28 5.1907 27.4775 4.66819 26.833 4.66819C24.5004 4.66819 22.1678 4.66819 19.8352 4.66819V2.33409C19.8352 1.0612 18.774 0 17.5011 0H10.4989ZM10.4989 2.33409H17.5011V4.66819H10.4989V2.33409ZM4.66362 7.00228C10.8879 7.00228 17.1121 7.00228 23.3364 7.00228V29.1762C23.3364 29.8429 22.8361 30.3432 22.1693 30.3432H5.83067C5.16394 30.3432 4.66362 29.8429 4.66362 29.1762V7.00228Z"
fill="white"
/>
<path
d="M10.4991 12.8374C10.1896 12.8374 9.89272 12.9604 9.67385 13.1792C9.45499 13.3981 9.33203 13.6949 9.33203 14.0044V23.3408C9.33203 23.6503 9.45499 23.9472 9.67385 24.1661C9.89272 24.3849 10.1896 24.5079 10.4991 24.5079C10.8086 24.5079 11.1054 24.3849 11.3243 24.1661C11.5432 23.9472 11.6661 23.6503 11.6661 23.3408V14.0044C11.6661 13.6949 11.5432 13.3981 11.3243 13.1792C11.1054 12.9604 10.8086 12.8374 10.4991 12.8374Z"
fill="white"
/>
<path
d="M17.5015 12.8374C17.192 12.8374 16.8952 12.9604 16.6763 13.1792C16.4574 13.3981 16.3345 13.6949 16.3345 14.0044V23.3408C16.3345 23.6503 16.4574 23.9472 16.6763 24.1661C16.8952 24.3849 17.192 24.5079 17.5015 24.5079C17.811 24.5079 18.1079 24.3849 18.3267 24.1661C18.5456 23.9472 18.6686 23.6503 18.6686 23.3408V14.0044C18.6686 13.6949 18.5456 13.3981 18.3267 13.1792C18.1079 12.9604 17.811 12.8374 17.5015 12.8374Z"
fill="white"
/>
</svg>
</template>

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Before After
Before After

View file

@ -1,5 +1,16 @@
<svg width="28" height="33" viewBox="0 0 28 33" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.4989 0C9.22596 0 8.16477 1.0612 8.16477 2.33409V4.66819C5.83219 4.66819 3.49962 4.66819 1.16705 4.66819C0.52251 4.66819 0 5.1907 0 5.83524C0 6.47977 0.52251 7.00228 1.16705 7.00228H2.32953V29.1762C2.32953 31.0956 3.91123 32.6773 5.83067 32.6773H22.1693C24.0888 32.6773 25.6705 31.0956 25.6705 29.1762V7.00228H26.833C27.4775 7.00228 28 6.47977 28 5.83524C28 5.1907 27.4775 4.66819 26.833 4.66819C24.5004 4.66819 22.1678 4.66819 19.8352 4.66819V2.33409C19.8352 1.0612 18.774 0 17.5011 0H10.4989ZM10.4989 2.33409H17.5011V4.66819H10.4989V2.33409ZM4.66362 7.00228C10.8879 7.00228 17.1121 7.00228 23.3364 7.00228V29.1762C23.3364 29.8429 22.8361 30.3432 22.1693 30.3432H5.83067C5.16394 30.3432 4.66362 29.8429 4.66362 29.1762V7.00228Z" fill="currentColor"/>
<path d="M10.4991 12.8374C10.1896 12.8374 9.89272 12.9604 9.67385 13.1792C9.45499 13.3981 9.33203 13.6949 9.33203 14.0044V23.3408C9.33203 23.6503 9.45499 23.9472 9.67385 24.1661C9.89272 24.3849 10.1896 24.5079 10.4991 24.5079C10.8086 24.5079 11.1054 24.3849 11.3243 24.1661C11.5432 23.9472 11.6661 23.6503 11.6661 23.3408V14.0044C11.6661 13.6949 11.5432 13.3981 11.3243 13.1792C11.1054 12.9604 10.8086 12.8374 10.4991 12.8374Z" fill="currentColor"/>
<path d="M17.5015 12.8374C17.192 12.8374 16.8952 12.9604 16.6763 13.1792C16.4574 13.3981 16.3345 13.6949 16.3345 14.0044V23.3408C16.3345 23.6503 16.4574 23.9472 16.6763 24.1661C16.8952 24.3849 17.192 24.5079 17.5015 24.5079C17.811 24.5079 18.1079 24.3849 18.3267 24.1661C18.5456 23.9472 18.6686 23.6503 18.6686 23.3408V14.0044C18.6686 13.6949 18.5456 13.3981 18.3267 13.1792C18.1079 12.9604 17.811 12.8374 17.5015 12.8374Z" fill="currentColor"/>
</svg>
<template>
<svg width="28" height="33" viewBox="0 0 28 33" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M10.4989 0C9.22596 0 8.16477 1.0612 8.16477 2.33409V4.66819C5.83219 4.66819 3.49962 4.66819 1.16705 4.66819C0.52251 4.66819 0 5.1907 0 5.83524C0 6.47977 0.52251 7.00228 1.16705 7.00228H2.32953V29.1762C2.32953 31.0956 3.91123 32.6773 5.83067 32.6773H22.1693C24.0888 32.6773 25.6705 31.0956 25.6705 29.1762V7.00228H26.833C27.4775 7.00228 28 6.47977 28 5.83524C28 5.1907 27.4775 4.66819 26.833 4.66819C24.5004 4.66819 22.1678 4.66819 19.8352 4.66819V2.33409C19.8352 1.0612 18.774 0 17.5011 0H10.4989ZM10.4989 2.33409H17.5011V4.66819H10.4989V2.33409ZM4.66362 7.00228C10.8879 7.00228 17.1121 7.00228 23.3364 7.00228V29.1762C23.3364 29.8429 22.8361 30.3432 22.1693 30.3432H5.83067C5.16394 30.3432 4.66362 29.8429 4.66362 29.1762V7.00228Z"
fill="currentColor"
/>
<path
d="M10.4991 12.8374C10.1896 12.8374 9.89272 12.9604 9.67385 13.1792C9.45499 13.3981 9.33203 13.6949 9.33203 14.0044V23.3408C9.33203 23.6503 9.45499 23.9472 9.67385 24.1661C9.89272 24.3849 10.1896 24.5079 10.4991 24.5079C10.8086 24.5079 11.1054 24.3849 11.3243 24.1661C11.5432 23.9472 11.6661 23.6503 11.6661 23.3408V14.0044C11.6661 13.6949 11.5432 13.3981 11.3243 13.1792C11.1054 12.9604 10.8086 12.8374 10.4991 12.8374Z"
fill="currentColor"
/>
<path
d="M17.5015 12.8374C17.192 12.8374 16.8952 12.9604 16.6763 13.1792C16.4574 13.3981 16.3345 13.6949 16.3345 14.0044V23.3408C16.3345 23.6503 16.4574 23.9472 16.6763 24.1661C16.8952 24.3849 17.192 24.5079 17.5015 24.5079C17.811 24.5079 18.1079 24.3849 18.3267 24.1661C18.5456 23.9472 18.6686 23.6503 18.6686 23.3408V14.0044C18.6686 13.6949 18.5456 13.3981 18.3267 13.1792C18.1079 12.9604 17.811 12.8374 17.5015 12.8374Z"
fill="currentColor"
/>
</svg>
</template>

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Before After
Before After

View file

@ -1,5 +0,0 @@
<svg width="70" height="70" viewBox="0 0 70 70" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="70" height="70" rx="12" fill="#242424"/>
<circle cx="35" cy="35" r="14" fill="white" fill-opacity="0.8"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M32.6875 30.1891C32.2879 29.9393 31.7695 30.2266 31.7695 30.6979V39.302C31.7695 39.7733 32.2879 40.0606 32.6875 39.8108L39.5708 35.5088C39.9468 35.2738 39.9468 34.7262 39.5708 34.4912L32.6875 30.1891Z" fill="#242424"/>
</svg>

Before

Width:  |  Height:  |  Size: 490 B

View file

@ -0,0 +1,13 @@
<template>
<svg width="70" height="70" viewBox="0 0 70 70" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="70" height="70" rx="12" fill="#242424" />
<circle cx="35" cy="35" r="14" fill="white" fill-opacity="0.8" />
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="M32.6875 30.1891C32.2879 29.9393 31.7695 30.2266 31.7695 30.6979V39.302C31.7695 39.7733 32.2879 40.0606 32.6875 39.8108L39.5708 35.5088C39.9468 35.2738 39.9468 34.7262 39.5708 34.4912L32.6875 30.1891Z"
fill="#242424"
/>
</svg>
<template></template>
</template>

View file

@ -0,0 +1,7 @@
{
"quotes": [
{
"quote":"Je suis un programmeur","author":"Mickey Mouse"}
]
}

View file

@ -86,7 +86,9 @@
"message_history": "تاريخ الرسائل",
"message_history_warning": "تحذير: سيكون تاريخ الرسائل الكامل مرئيا للمشاركين الجدد",
"report": "تقرير",
"report_reason": "سبب"
"report_reason": "سبب",
"accept_knock": "الوصول",
"reject_knock": "ارفض"
},
"poll_create": {
"poll_status_closed": "تم إغلاق استطلاع الرأي",
@ -115,7 +117,7 @@
"tip_text": "سيتمكن الأعضاء من رؤية نتائج الاستطلاع بعد الإجابة. أغلق الاستطلاع عندما تنتهي لعرض النتائج على الجميع في الغرفة.",
"create_poll_menu_option": "إنشاء استطلاع للرأي"
},
"export": {
"room_export": {
"exported_date": "‫تم التصدير بتاريخ {date}",
"fetched_n_events": "تم جلب {count} من الأحداث",
"fetched_n_of_total_events": "تم جلب {count} من أصل {total} من الأحداث",
@ -283,7 +285,7 @@
"invite_info": "فقط الأشخاص الذين تم إضافتهم",
"invite_description": "الاختيار من قائمة أو البحث عن طريق مُعرِّف الحساب",
"status_creating": "يجري إنشاء الغرفة",
"status_avatar": "يجري تحميل الصورة الرمزية: {count}",
"status_avatar": "يجري تحميل الصورة الرمزية",
"room_name_limit_error_msg": "الحد الأقصى المسموح به هو 50 حرفا",
"colon_not_allowed": "النقطتان (:) غير مسموح بهما",
"options": "ال‮خيارات"
@ -342,7 +344,8 @@
"status_joining": "يجري الانضمام للغرفة...",
"join_failed": "فشل الانضمام للغرفة",
"choose_name": "اختيار اسم لاستخدامه",
"you_have_been_banned": "لقد تم حظرك من هذه الغرفة."
"you_have_been_banned": "لقد تم حظرك من هذه الغرفة.",
"knock": "دق"
},
"leave": {
"text_public_lastroom": "إذا رغبت في الانضمام إلى هذه الغرفة مرة أخرى، يمكنك الانضمام بهوية جديدة. للاحتفاظ بـ {user}، {action}.",
@ -439,7 +442,10 @@
"files_sent_with_note": "تم إرسال ملف واحد مع ملاحظة! | تم إرسال {count} من الملفات مع ملاحظة!",
"send_more_files": "إرسال المزيد من الملفات",
"close": "إغلاق",
"files": "الملفات"
"files": "الملفات",
"quality": "النوعية",
"original": "إبداعي",
"learn_more": "تعرف على المزيد"
},
"create": {
"room_type_channel_name": "قناة",

View file

@ -342,7 +342,9 @@
"shared_room_number_more": "আপনি {name} এর সাথে {count} এর বেশি রুম শেয়ার করছেন",
"message_history": "বার্তার ইতিহাস",
"message_history_warning": "সতর্কতা: নতুন অংশগ্রহণকারীগন পূর্বের সকল বার্তা ইতিহাস দেখতে পাবেন।",
"report": "প্রতিবেদন"
"report": "প্রতিবেদন",
"accept_knock": "রাজি আছি",
"reject_knock": "অস্বীকার"
},
"room_info_sheet": {
"this_room": "এই রুম",
@ -395,7 +397,7 @@
"num_answered": "{count} টি উত্তর",
"results_shared": "ফলাফল রুমে প্রকাশ করা হয়েছে।"
},
"export": {
"room_export": {
"exported_date": "{date} এ এক্সপোর্ট করা হয়েছে",
"fetched_n_events": "{count} ইভেন্ট জড় করা হয়েছে",
"fetched_n_of_total_events": "{total} টির মধ্যে {count} টি ইভেন্ট জড় করা হয়েছে",
@ -438,7 +440,10 @@
"files_sent_with_note": "নোট সহ ১টি ফাইল পাঠানো হয়েছে | নোট সহ {count} টি ফাইল পাঠানো হয়েছে!",
"send_more_files": "আরও ফাইল পাঠান",
"close": "বন্ধ করুন",
"files": "ফাইলগুলি"
"files": "ফাইলগুলি",
"quality": "গুনগতমান",
"original": "Original",
"learn_more": "আরো জানুন"
},
"create": {
"room_type_channel_name": "Channel",

View file

@ -29,11 +29,11 @@
"user_admin": "དོ་དམ་པ།",
"experimental_features": "ཚོད་ལྟའི་ཁྱད་ཆོས་ཁག",
"read_only_room_info": "དོ་དམ་པ་དང་གཙོ་སྐྱོང་བ་ཁོ་ནས་ཁ་བརྡ་ཁང་དུ་གཏོང་ཆོག",
"export_room": "ཁ་བརྡའི་ཟིན་ཐོ་ཕྱིར་འདྲེན།",
"export_room": "ཁ་བརྡའི་ཟིན་ཐོ་ཉར་ཚགས།",
"user_moderator": "གཙོ་སྐྱོང་བ།",
"voice_mode": "སྐད་སྒྲའི་རྣམ་པ།",
"voice_mode_info": "ཁ་བརྡའི་འབྲེལ་མཐུད་དེ་ཉན་པ་དང་སྒྲ་ཕབ་ཀྱི་རྣམ་པའི་ནང་དུ་བསྒྱུར།",
"download_chat": "ཁ་བརྡ་ཕབ་ལེན།",
"download_chat": "ཁ་བརྡའི་ཟིན་ཐོ་ཉར་ཚགས།",
"read_only_room": "ལྟ་ཀློག་ཁོ་ན།",
"direct_link": "ང་དང་ཐད་ཀར་ཁ་བརྡ་བྱེད་སའི་འབྲེལ་ཐག",
"room_type": "ཁ་བརྡ་ཁང་གི་དབྱེ་བ།",
@ -60,7 +60,17 @@
"message_history_info": "ཚོགས་མི་གསར་པ་ཚོར་ཚོགས་པའི་ནང་མ་ཞུགས་པའི་སྔོན་དུ་བཏང་ཡོད་པའི་ཆ་འཕྲིན་ཁག་མཐོང་དུ་བཅུག",
"limit_history_info": "{period}་རིང་ལ་ཆ་འཕྲིན་ཁག་ཉར།",
"report_info": "ཁྲིམས་འགལ་དང་ལོག་སྤྱོད། ཡང་ན་གནོད་འཚེ་ཅན་གྱི་ནང་དོན་ལྡན་པའི་ཚོགས་པ་འདི་ཞབས་ཞུའི་དོ་དམ་པར་སྙན་སེང་ཞུས།",
"report": "སྙན་སེང་ཞུས།"
"report": "སྙན་སེང་ཞུས།",
"accept_knock": "ངོས་ལེན།",
"join_knock": "མི་ཚོས་སྒོ་རྡུང་ཐུབ།",
"knocks": "སྒོ་རྡུང་བ།",
"reject_knock": "ངོས་ལེན་མི་བྱེད་པ།",
"user_creator": "བཟོ་མཁན།",
"confirm_make_admin": "ཁྱེད་ཀྱིས་སྤྱོད་མཁན་འདི་དོ་དམ་པ་བཟོ་རྒྱུ་ཡིན་ནམ།",
"confirm_revoke_admin": "ཁྱེད་ཀྱིས་སྤྱོད་མཁན་འདིའི་དོ་དམ་པའི་ཐོབ་ཐང་མེད་པར་བཟོ་རྒྱུ་ཡིན་ནམ།",
"confirm_make_moderator": "ཁྱེད་ཀྱིས་སྤྱོད་མཁན་འདི་གཙོ་སྐྱོང་བ་བཟོ་རྒྱུ་ཡིན་ནམ།",
"confirm_revoke_moderator": "ཁྱེད་ཀྱིས་སྤྱོད་མཁན་འདིའི་གཙོ་སྐྱོང་བའི་ཐོབ་ཐང་མེད་པར་བཟོ་རྒྱུ་ཡིན་ནམ།",
"confirm_ban": "ཁྱེད་ཀྱིས་སྤྱོད་མཁན་འདི་ཁ་བརྡ་ཁང་ནས་སྒོར་ཕུད་འདོད་དམ།"
},
"invite": {
"done": "ལེགས་འགྲུབ།",
@ -134,12 +144,15 @@
"undo": "ཕྱིར་བསྡུ།",
"user_make_admin": "དོ་དམ་པ་བཟོས།",
"user_make_moderator": "གཙོ་སྐྱོང་བ་བཟོས།",
"user_revoke_moderator": "གཙོ་སྐྱོང་བའི་དབང་ཚད་མེད་པར་བཟོས།",
"user_revoke_moderator": "གཙོ་སྐྱོང་བའི་དབང་ཚད་ཕྱིར་བསྡུ།",
"delete_now": "བསུབ་རོགས།",
"direct_chat": "ཐད་ཀར་གླེང་མོལ།",
"user_kick_and_ban": "སྒོར་ཕུད།",
"pin": "སྤེལ་གཏམ་རྩེ་རུ་ཞོག",
"unpin": "རྩེ་རུ་བཞག་པའི་སྤེལ་གཏམ་ཕྱིར་འཐེན།"
"unpin": "རྩེ་རུ་བཞག་པའི་སྤེལ་གཏམ་ཕྱིར་འཐེན།",
"user_revoke_admin": "དོ་དམ་པའི་དབང་ཚད་ཕྱིར་བསྡུ།",
"cancel_knock": "སྒོ་རྡུང་བ་ཕྱིར་འཐེན།",
"upgrade": "རིམ་སྤར།"
},
"profile": {
"change_password": "གསང་ཚིག་རྗེས།",
@ -157,7 +170,8 @@
"dont_see_yours": "ཁྱེད་ཀྱི་མིང་མཐོང་གི་མི་འདུག་གམ།",
"tell_us": "ང་ཚོར་ཤོོད།",
"display_name_required": "འཆར་མིང་དགོས།",
"notification_label": "བརྡ་ཁྱབ།"
"notification_label": "བརྡ་ཁྱབ།",
"my_rooms": "ངའི་ཁ་བརྡ་ཁང་ཁག"
},
"device_list": {
"not_verified": "ར་སྤྲོད་བྱས་མི་འདུག",
@ -180,7 +194,8 @@
"info_auto_join": "{room}་ནང་དུ་ཕེབས་པར་དགའ་བསུ་ཞུ།\nཁྱེད་རང་ {you}་མིང་ཐོག་ནས་ཞུགས་ཀྱི་ཡོད།",
"change": "བསྒྱུར་བཅོས།",
"join_channel": "ཡོད་ཚད་གྲ་སྒྲིག་ཟིན་པས། གྲོགས་གདན་ཞུ་བྱས་ཏེ་ཁྱེད་རང་དང་སྦྲེལ། {link}",
"info_retention_user": "🕓 {time}་ལས་རྙིང་བའི་ཆ་འཕྲིན་ཁག་ལོ་རྒྱུས་ཀྱི་ཁོངས་ནས་བསུབ་ངེས།"
"info_retention_user": "🕓 {time}་ལས་རྙིང་བའི་ཆ་འཕྲིན་ཁག་ལོ་རྒྱུས་ཀྱི་ཁོངས་ནས་བསུབ་ངེས།",
"join_knock": "ནང་དུ་ཞུགས་པར་མི་ཚོས་སྒོ་རྡུང་ནས་རེ་སྐུལ་ཞུ་ཆོག"
},
"room": {
"leave": "ཕྱིར་ཐོན།",
@ -195,7 +210,9 @@
"room_topic_required": "ཁ་བརྡ་ཁང་ལ་འགྲེལ་བཤད་དགོས།",
"room_name_required": "ཁ་བརྡ་ཁང་ལ་མིང་ཞིག་དགོས།",
"invitations": "ཁྱེད་ལ་གྲོགས་པོའི་གདན་ཞུ་གང་ཡང་མི་འདུག | ཁྱེད་ལ་གྲོགས་པོའི་གདན་ཞུ་གྲངས་གཅིག་འདུག | ཁྱེད་ལ་གྲོགས་པོའི་གདན་ཞུ་{count}་འདུག",
"unseen_messages": "ཁྱེད་ཀྱིས་མཐོང་མེད་པའི་ཆ་འཕྲིན་གང་ཡང་མི་འདུག | ཁྱེད་ཀྱིས་མཐོང་མེད་པའི་ཆ་འཕྲིན་གཅིག་འདུག | ཁྱེད་ཀྱིས་མཐོང་མེད་པའི་ཆ་འཕྲིན་{count}འདུག"
"unseen_messages": "ཁྱེད་ཀྱིས་མཐོང་མེད་པའི་ཆ་འཕྲིན་གང་ཡང་མི་འདུག | ཁྱེད་ཀྱིས་མཐོང་མེད་པའི་ཆ་འཕྲིན་གཅིག་འདུག | ཁྱེད་ཀྱིས་མཐོང་མེད་པའི་ཆ་འཕྲིན་{count}འདུག",
"needs_upgrade": "ཁ་བརྡ་ཁང་འདི་ཐོན་རིམ་གསར་པ་ཞིག་ལ་རིམ་སྤར་བྱེད་དགོས་ཀྱི་འདུག",
"upgrading": "ཁ་བརྡ་ཁང་གི་ཐོན་རིམ་སྤར་བྱེད་བཞིན་པ།"
},
"message": {
"users_are_typing": "{count} ཚོགས་མི་ཡིས་གཏགས་བཞིན་འདུག",
@ -253,7 +270,7 @@
"send_attachements_dialog_title": "ཁྱེད་ཀྱིས་གཤམ་གྱི་ཟུར་སྣོན་འདི་དག་གཏོང་འདོད་དམ།",
"preparing_to_upload": "ཡར་འཇུག་བྱེད་པར་གྲ་སྒྲིག་བྱེད་བཞིན་པ...",
"seen_by": "མཐོང་མཁན།",
"seen_by_count": "ཚོགས་མི་སུས་ཀྱང་མཐོང་མི་འདུག| ཚོགས་མི་གཅིག་གིས་མཐོང་འདུག ཚོགས་མི{count}་མཐོང་འདུག",
"seen_by_count": "ཚོགས་མི་སུས་ཀྱང་མཐོང་མི་འདུག| ཚོགས་མི་གཅིག་གིས་མཐོང་འདུག ཚོགས་མི{count}་མཐོང་འདུག",
"files": "ཡིག་ཆ་ཁག",
"download_all": "ཆ་ཚང་ཕབ་ལེན།",
"file": "ཡིག་ཆ།",
@ -261,7 +278,10 @@
"upload_exceeded_file_limit": "({configFormattedUploadSize}) ་ཡི་ཡིག་ཆ་ཆེ་ཤོས་ཀྱི་ཆེ་ཆུང་གི་ཚད་གཞི་ལས་བརྒལ་འདུག ",
"failed_to_render": "བྱེད་སྒོ་ལེགས་འགྲུབ་བྱུང་མ་སོང་།",
"someone": "མི་ཞིག",
"sent_media": "སྨྱན་སྦྱོར་གྲངས་{count}་བཏང་ཟིན།"
"sent_media": "སྨྱན་སྦྱོར་གྲངས་{count}་བཏང་ཟིན།",
"room_upgraded": "ཁ་བརྡ་ཁང་འདི་རིམ་སྤར་བྱས་སོང་། {link}འབྲེལ་ཐག་འདི་བརྒྱུད་ནས་བསྐྱར་དུ་ཞུགས།",
"room_upgraded_link": "འདི་ནས",
"room_upgraded_view_old": "ཁ་བརྡ་ཁང་འདི་རིམ་སྤར་བྱས་སོང་། {link}འདིའི་ཐོག་ཏུ་མནན་ཏེ་ཆ་འཕྲིན་རྙིང་པར་གཟིགས།"
},
"power_level": {
"moderator": "མདོ་འཛིན་པ།",
@ -317,7 +337,11 @@
"title_user": "དགའ་བསུ་ཞུ། ཁྱེད་རང་ཁ་བརྡ་བྱེད་པར་གདན་ཞུ་གནང་སོང་།",
"you_have_been_banned": "ཁྱེད་རང་ཚོགས་པ་འདིའི་ནང་ནས་བཀག་འདུག",
"ua": "ཞབས་ཞུ་སྤྱོད་མཁན་གྱི་གྲོས་མཐུན།",
"accept_ua": "ང་ {agreement}་ལ་མོས་མཐུན་ཡོད།"
"accept_ua": "ང་ {agreement}་ལ་མོས་མཐུན་ཡོད།",
"knock": "སྒོ་རྡུང་།",
"knock_reason": "སྒོ་རྡུང་བའི་རྒྱུ་མཚན། (རང་མོས།)",
"enter_knock": "ནང་དུ་ཞུགས་པར་རེ་སྐུལ།",
"status_knocking": "སྒོ་རྡུང་བཞིན་པ..."
},
"profile_info_popup": {
"powered_by": "ཁ་བརྡ་ཁང་འདི་{product} ནུས་ཤུགས་བསྩལ་ཡོད། {productLink} ནས་དེ་ལས་མང་བ་སྦྱོང་ཆོག་ལ། མདུན་དུ་བསྐྱོད་དེ་ཁ་བརྡ་ཁང་གཞན་ཞིག་བསྐྲུན་ཆོག",
@ -385,7 +409,7 @@
"view_results": "གྲུབ་འབྲས་ལ་གཟིགས།",
"results_shared": "གྲུབ་འབྲས་ཁ་བརྡ་ཁང་དུ་བརྒྱུད་སྤེལ་བྱེད་ངེས།"
},
"export": {
"room_export": {
"exported_date": "{date} ཉིན་ལ་ཕྱིར་འདྲེན་བྱས།",
"export_filename": "{date} ཉིན་ཕྱིར་འདྲེན་བྱས་པའི་ཁ་བརྡ།",
"processed_n_of_total_events": "བྱུང་བ་{total}ཁོངས་ནས་ལས་སྣོན་བྱས་ཟིན་པའི་སྨྱན་སྦྱོར་གྱི་གྲངས {count}",
@ -403,7 +427,20 @@
"any_file_format_accepted": "ཡིག་ཆའི་རྣམ་བཞག་ཆ་ཚང་ངོས་ལེན་བྱེད།",
"files_sent_with_note": "མཆན་ཞིག་དང་མཉམ་དུ་ཡིག་ཆ་1་བཏང་ཟིན། མཆན་ཞིག་དང་མཉམ་དུ་ཡིག་ཆ {count} བཏང་ཟིན།",
"close": "སྒོ་རྒྱོབ།",
"files_sent": "ཡིག་ཆ1 བཏང་ཟིན། |ཡིག་ཆ{count}བཏང་ཟིན།"
"files_sent": "ཡིག་ཆ1 བཏང་ཟིན། |ཡིག་ཆ{count}བཏང་ཟིན།",
"quality": "སྤུས་ཀ",
"compressed": "གནོན་བཙིར་བྱས་པ།",
"original": "དང་ཐོག་གི་པར་གཞི།",
"metadata_info_compressed": "པར་རིས་གནོན་བཙིར་བྱས་ན། དེའི་རྒྱུའི་གཞི་གྲངས་རང་བཞིན་གྱིས་འདོར་ངེས།",
"metadata_info_original": "དང་ཐོག་གི་པར་གཞི་བརྒྱུད་སྐུར་བྱས་ན། དེའི་རྒྱུའི་གཞི་གྲངས་རང་བཞིན་གྱིས་ནང་དུ་ཚུད་འགྲོ།",
"exif_data": "Exif གཞི་གྲངས།",
"content_credentials": "ནང་དོན་བདེན་དཔང་།",
"content_credentials_info": "སྨྱན་སྦྱོར་འདི་བདེན་དཔང་བྱེད་པར་ཁུངས་དང་ལོ་རྒྱུས་ཀྱི་ཆ་འཕྲིན་ཡོད།",
"learn_more": "ཞིབ་ཕྲ་སློབ་སྦྱོང་བྱོས།",
"ai_used": "མིས་བཟོས་རིག་ནུས་ཀྱིས་པར་རིས་བཅོས་སྒྱུར་བྱས་འདུག",
"screenshot_taken_on": "{date}ཉིན་འཆར་ངོས་པར་བླངས་འདུག",
"captured_with_camera": "པར་ཆས་ཤིག་གིས་པར་བླངས་འདུག",
"old_photo": "ཟླ་བ་གསུམ་ལས་རྙིང་པའི་པར།"
},
"notification": {
"dialog": {

View file

@ -192,7 +192,8 @@
"tell_us": "Sag's uns.",
"notification_label": "Benachrichtigung",
"display_name_required": "Anzeigename ist erforderlich",
"dont_see_yours": "Deines nicht gesehen?"
"dont_see_yours": "Deines nicht gesehen?",
"my_rooms": "Meine Räume"
},
"profile_info_popup": {
"you_are": "Du bist",
@ -221,7 +222,9 @@
"title_user": "Willkommen, du wurdest eingeladen mitzuchatten",
"you_have_been_banned": "Du wurdest aus diesem Raum verbannt.",
"accept_ua": "Ich akzeptiere die {agreement}",
"ua": "Dienstnutzervereinbarung"
"ua": "Dienstnutzervereinbarung",
"knock": "Anklopfen",
"enter_knock": "Beitrittsanfrage"
},
"invite": {
"title": "Freunde hinzufügen",
@ -306,7 +309,9 @@
"message_history_info": "Erlaube Personen, Nachrichten zu sehen, die vor ihrem Beitritt gesendet wurden",
"report": "Bericht",
"report_reason": "Grund",
"report_info": "Diesen Raum den Administratoren des Dienstes wegen rechtswidriger, beleidigender oder anderweitig verletzender Inhalte melden"
"report_info": "Diesen Raum den Administratoren des Dienstes wegen rechtswidriger, beleidigender oder anderweitig verletzender Inhalte melden",
"accept_knock": "Akzeptieren",
"reject_knock": "Verweigern"
},
"room_info_sheet": {
"this_room": "Dieser Raum",
@ -363,7 +368,7 @@
"results_shared": "Die Ergebnisse werden dem Raum mitgeteilt.",
"tip_text": "Die Mitglieder sehen die Umfrageergebnisse, nachdem sie geantwortet haben. Schließe die Umfrage, wenn du fertig bist, um die Ergebnisse für alle im Raum anzuzeigen."
},
"export": {
"room_export": {
"fetched_n_of_total_events": "{count} von {total} Ereignissen geladen",
"exported_date": "Am {date} exportiert",
"processed_n_of_total_events": "Medien für {count} von {total} Ereignissen verarbeitet",
@ -414,7 +419,10 @@
"any_file_format_accepted": "Jedes Dateiformat wird akzeptiert",
"secure_file_send": "sicheres Senden von Dateien",
"add_a_message": "Nachricht hinzufügen",
"files_sent_with_note": "1 Datei mit einer Notiz gesendet! | {count} Dateien mit einer Notiz gesendet!"
"files_sent_with_note": "1 Datei mit einer Notiz gesendet! | {count} Dateien mit einer Notiz gesendet!",
"quality": "Qualität",
"original": "Original",
"learn_more": "Mehr erfahren"
},
"notification": {
"dialog": {

View file

@ -21,7 +21,8 @@
"close": "close",
"notify": "Notify",
"different_browser_title": "Try different browser",
"different_browser_content": "Some features may break. Copy and open link in a different browser."
"different_browser_content": "Some features may break. Copy and open link in a different browser.",
"retry": "Retry"
},
"menu": {
"start_private_chat": "Direct Message with this user",
@ -45,10 +46,13 @@
"loading": "Loading {appName}",
"user_kick_and_ban": "Kick out",
"user_make_admin": "Make admin",
"user_revoke_admin": "Revoke admin",
"user_make_moderator": "Make moderator",
"user_revoke_moderator": "Revoke moderator",
"pin": "Pin post",
"unpin": "Unpin post"
"unpin": "Unpin post",
"cancel_knock": "Cancel knock",
"upgrade": "Upgrade"
},
"message": {
"you": "You",
@ -114,7 +118,10 @@
"images": "Images",
"send_attachements_dialog_title": "Do you want to send following attachments?",
"download_all": "Download all",
"failed_to_render": "Failed to render event"
"failed_to_render": "Failed to render event",
"room_upgraded": "This room has been upgraded, go {link} to rejoin the discussion",
"room_upgraded_link": "here",
"room_upgraded_view_old": "This room was upgraded. Click {link} to view old messages"
},
"room": {
"invitations": "You have no invitations | You have 1 invitation | You have {count} invitations",
@ -129,7 +136,9 @@
"room_list_new_messages": "{count} new messages",
"room_list_rooms": "Rooms",
"room_name_required": "Room name is required",
"room_topic_required": "Room description is required"
"room_topic_required": "Room description is required",
"needs_upgrade": "This room needs to be upgraded to a new room version",
"upgrading": "Upgrading room version"
},
"room_welcome": {
"info": "Welcome! Here are a few things to know about your room:",
@ -138,6 +147,7 @@
"room_history_joined": "People can only see the messages sent after they join.",
"join_public": "Anyone can join by opening this link: {link}.",
"join_invite": "Only people you invite can join.",
"join_knock": "People can request to join by ´knocking´.",
"info_permissions": "You can change join permissions at any time in the room settings.",
"got_it": "Got it",
"no_past_messages": "Welcome! For your security, past messages are not available.",
@ -277,10 +287,14 @@
"joining_as": "You are joining as:",
"join": "Join room",
"join_user": "Start chat",
"knock": "Knock",
"knock_reason": "Knock reason (optional)",
"enter_room": "Enter room",
"enter_room_user": "Start chat",
"enter_knock": "Request to join",
"status_logging_in": "Logging in...",
"status_joining": "Joining room...",
"status_knocking": "Knocking...",
"join_failed": "Failed to join room.",
"choose_name": "Choose a name to use",
"you_have_been_banned": "You have been banned from this room.",
@ -328,11 +342,15 @@
"permissions": "Join Permissions",
"join_invite": "Only People Added",
"join_public": "Anyone with a link",
"join_knock": "People can ´knock´.",
"copy_invite_link": "Copy invite link",
"copy_link": "Copy link",
"link_copied": "Link copied!",
"purge": "Delete room",
"members": "Members",
"knocks": "Knocks",
"accept_knock": "Accept",
"reject_knock": "Deny",
"user": "{user}",
"user_you": "{user} (you)",
"hide_all": "Hide",
@ -340,7 +358,8 @@
"leave_room": "Leave",
"version_info": "Powered by Guardian Project. Version: {version}",
"scan_code": "Scan to join the room",
"export_room": "Export chat",
"export_room": "Save chat",
"user_creator": "Creator",
"user_admin": "Administrator",
"user_moderator": "Moderator",
"moderation": "Moderation",
@ -351,7 +370,7 @@
"voice_mode_info": "Switches the chat interface to a 'listen and record' mode",
"file_mode": "File mode",
"file_mode_info": "Switches the chat interface to a 'file drop' mode",
"download_chat": "Download chat",
"download_chat": "Save chat",
"read_only_room": "Read Only",
"read_only_room_info": "Only admins and moderators are allowed to send to the room.",
"message_retention": "Limit History",
@ -373,7 +392,12 @@
"message_history_warning": "warning: Full message history will be visible to new participants",
"report": "Report",
"report_info": "Report this room to service administrators for illegal, abusive or otherwise harmful content",
"report_reason": "Reason"
"report_reason": "Reason",
"confirm_make_admin": "Do you want to make this user an administrator?",
"confirm_revoke_admin": "Do you want to remove administrator rights from this user?",
"confirm_make_moderator": "Do you want to make this user a moderator?",
"confirm_revoke_moderator": "Do you want to remove moderator rights from this user?",
"confirm_ban": "Do you want to kick this user from the room?"
},
"room_info_sheet": {
"this_room": "This room",
@ -426,7 +450,7 @@
"num_answered": "{count} answers",
"results_shared": "Results shared to the room."
},
"export": {
"room_export": {
"exported_date": "Exported on {date}",
"fetched_n_events": "Fetched {count} events",
"fetched_n_of_total_events": "Fetched {count} of {total} events",
@ -469,6 +493,19 @@
"files_sent_with_note":"1 file sent with a note! | {count} files sent with a note!",
"send_more_files": "Send more files",
"close": "Close",
"files": "Files"
"files": "Files",
"quality": "Quality",
"compressed": "Compressed",
"original": "Original",
"metadata_info_compressed": "Compressing the image automatically excludes its metadata.",
"metadata_info_original": "Sharing the original automatically includes its metadata.",
"exif_data": "Exif Data",
"content_credentials": "Content Credentials",
"content_credentials_info": "Source or history information is available for this media to be verified.",
"learn_more": "Learn more",
"ai_used": "Photo modified with AI",
"screenshot_taken_on": "Screenshot taken on {date}",
"captured_with_camera": "Captured with a camera",
"old_photo": "Photo older than 3 months"
}
}

View file

@ -52,7 +52,9 @@
"message_history_warning": "Advertencia: El historial completo de mensajes será visible para los nuevos participantes",
"message_history": "Historial de mensajes",
"report": "Informe",
"report_reason": "Razón"
"report_reason": "Razón",
"accept_knock": "Acepta",
"reject_knock": "Desestimar"
},
"purge_room": {
"button": "Borrar",
@ -95,7 +97,9 @@
"title_user": "Bienvenido, has sido invitado a chatear con",
"enter_room_user": "Empezar un chat",
"you_have_been_banned": "Has sido expulsado de esta sala.",
"join_user": "Empezar un chat"
"join_user": "Empezar un chat",
"knock": "Aviso",
"enter_knock": "Solicita unirte"
},
"profile": {
"display_name": "Nombre para mostrar",
@ -143,7 +147,7 @@
"blocked": "Bloqueado"
},
"new_room": {
"status_avatar": "Subiendo avatar: {count}",
"status_avatar": "Subiendo avatar",
"status_creating": "Creando Sala",
"invite_description": "Escoge de una lista o busca por ID de cuenta",
"invite_info": "Solo personas agregadas",
@ -400,7 +404,10 @@
"secure_file_send": "envío seguro de los archivos",
"any_file_format_accepted": "Se admite cualquier formato para un archivo",
"files_sent_with_note": "¡1 archivo enviado con una nota! | ¡ {count} archivos enviados con una nota!",
"files_sent": "¡1 archivo enviado! | ¡ {count} archivos enviados!"
"files_sent": "¡1 archivo enviado! | ¡ {count} archivos enviados!",
"quality": "Calidad",
"original": "Original",
"learn_more": "Learn more"
},
"getlink": {
"continue": "Continuar",
@ -426,7 +433,7 @@
"not_supported": "La notificación aún no es compatible con dispositivos móviles",
"periodicSync_new_msg_reminder": "Es posible que tengas nuevos mensajes"
},
"export": {
"room_export": {
"fetched_n_of_total_events": "{count} de {total} eventos recuperados",
"export_filename": "Chat exportado el {date}",
"exported_date": "Exportado el {date}",

View file

@ -169,7 +169,8 @@
"add_a_message": "Añadir un mensaje",
"sending_progress": "Enviando...",
"sending": "Enviando",
"files_sent": "¡1 archivo enviado! | ¡{count} archivos enviados!"
"files_sent": "¡1 archivo enviado! | ¡{count} archivos enviados!",
"learn_more": "Más información"
},
"new_room": {
"new_room": "Nueva Sala",
@ -365,7 +366,8 @@
"shared_room_number": "Compartes {count} salas con {name}",
"shared_room_number_more": "Compartes más de {count} salas con {name}",
"message_history": "Historial de Mensajes",
"message_history_warning": "advertencia: El historial de mensajes completo será visible para nueva(o)s participantes"
"message_history_warning": "advertencia: El historial de mensajes completo será visible para nueva(o)s participantes",
"accept_knock": "Aceptar"
},
"room_info_sheet": {
"this_room": "Esta sala",
@ -418,7 +420,7 @@
"num_answered": "{count} respuestas",
"results_shared": "Resultados compartidos a la sala."
},
"export": {
"room_export": {
"exported_date": "Exportado el {date}",
"fetched_n_events": "Se obtuvieron {count} eventos",
"processed_n_of_total_events": "Medios procesados para {count} de {total} eventos",

View file

@ -142,9 +142,11 @@
"shared_room_number": "Compartes {count} salas con {name}",
"shared_room_number_more": "Comparte más de{count}salas con {name}",
"message_history_warning": "Advertencia: el historial completo de mensajes será visible para los nuevos participantes.",
"message_history": "Historial de mensajes"
"message_history": "Historial de mensajes",
"accept_knock": "Aceptar",
"reject_knock": "Denegar"
},
"export": {
"room_export": {
"exported_date": "Exportado en {date}",
"fetched_n_events": "Eventos{count} recuperados",
"fetched_n_of_total_events": "Se recuperaron {count} de {total} eventos",

View file

@ -22,7 +22,8 @@
"loading": "در حال بارگذاری {appName}",
"user_make_moderator": "ناظم کنید",
"user_kick_and_ban": "اخراج کنید",
"user_revoke_moderator": "ناظم را لغو کنید"
"user_revoke_moderator": "ناظم را لغو کنید",
"upgrade": "ارتقا"
},
"message": {
"outgoing_message_deleted_text": "شما این پیام را حذف کردید.",
@ -88,7 +89,8 @@
"images": "تصاویر",
"send_attachements_dialog_title": "آیا می‌خواهید پیوست‌های زیر را ارسال کنید؟",
"download_all": "دانلود همه",
"failed_to_render": "تحویل رویداد با شکست مواجه شد"
"failed_to_render": "تحویل رویداد با شکست مواجه شد",
"room_upgraded_link": "این‌جا"
},
"new_room": {
"next": "بعدی",
@ -107,7 +109,7 @@
"invite_info": "فقط افرادی که اضافه شده‌اند",
"invite_description": "از یک لیست انتخاب کنید یا با شناسه حساب جستجو کنید",
"status_creating": "ایجاد اتاق",
"status_avatar": "در حال بارگذاری آواتار: {count}",
"status_avatar": "بار گذاشتن چهرک",
"room_name_limit_error_msg": "حداکثر 50 کاراکتر مجاز است",
"colon_not_allowed": "دو نقطه مجاز نیست",
"options": "گزینه‌ها"
@ -152,7 +154,11 @@
"add_a_message": "یک پیام اضافه کنید",
"sending_progress": "در حال ارسال...",
"sending": "در حال ارسال",
"files_sent": "1 فایل ارسال شد! | {count} فایل ارسال شد!"
"files_sent": "1 فایل ارسال شد! | {count} فایل ارسال شد!",
"quality": "کیفیت",
"original": "اصلی",
"learn_more": "بیش‌تر بدانید",
"compressed": "فشرده"
},
"language_display_name": "انگلیسی",
"project": {
@ -278,7 +284,8 @@
"status_joining": "در حال پیوستن به اتاق...",
"join_failed": "پیوستن به اتاق ناموفق بود.",
"choose_name": "یک نام برای استفاده انتخاب کنید",
"you_have_been_banned": "شما برای حضور در این اتاق مسدود شده‌اید."
"you_have_been_banned": "شما برای حضور در این اتاق مسدود شده‌اید.",
"knock": "در زدن"
},
"leave": {
"title_public": "خدانگهدار، {user}",
@ -356,7 +363,9 @@
"message_history_warning": "هشدار: تاریخچه کامل پیام‌ها برای شرکت‌کنندگان جدید قابل مشاهده خواهد بود.",
"message_history": "تاریخچه پیام",
"report_reason": "دلیل",
"report": "گزارش"
"report": "گزارش",
"accept_knock": "قبول کنید",
"reject_knock": "رد"
},
"room_info_sheet": {
"this_room": "این اتاق",
@ -423,7 +432,7 @@
"places": "مکان ها"
}
},
"export": {
"room_export": {
"exported_date": "خروجی گرفته شد در {date}",
"fetched_n_events": "{count} رویداد بازیابی شد",
"fetched_n_of_total_events": "{count} از {total} رویداد بازیابی شد",

View file

@ -166,7 +166,8 @@
"shared_room_number": "شما {count} اطاق با نام {name} به اشتراک می‌گذارید",
"shared_room_number_more": "شما بیش از {count} اطاق با نام {name} به اشتراک می‌گذارید",
"message_history": "تاریخچه پیغام",
"message_history_warning": "هشدار: تاریخچه کامل پیغام‌ها برای شرکت‌کنندگان جدید قابل مشاهده خواهد بود"
"message_history_warning": "هشدار: تاریخچه کامل پیغام‌ها برای شرکت‌کنندگان جدید قابل مشاهده خواهد بود",
"accept_knock": "قبول کنید"
},
"poll_create": {
"create_poll_menu_option": "ایجاد نظرسنجی",
@ -195,7 +196,7 @@
"poll_submit": "تسلیم کردن",
"num_answered": "{count} جواب"
},
"export": {
"room_export": {
"exported_date": "خروجی گرفته شد در {date}",
"fetched_n_events": "{count} رویداد بازیابی شد",
"fetched_n_of_total_events": "{count} از {total} رویداد بازیابی شد",

View file

@ -178,7 +178,9 @@
"read_only_room": "Lue Ainoastaan",
"moderation": "Moderointi",
"report": "Raportoi",
"report_reason": "Syy"
"report_reason": "Syy",
"accept_knock": "Hyväksy",
"reject_knock": "Estä"
},
"power_level": {
"restricted": "rajoitettu",
@ -233,7 +235,10 @@
"file_mode": {
"sending_progress": "Lähetetään…",
"close": "Sulje",
"files": "Tiedostot"
"files": "Tiedostot",
"quality": "Laatu",
"original": "Alkuperäinen",
"learn_more": "Lue lisää"
},
"project": {
"name": "Kokoonnu",

View file

@ -161,7 +161,9 @@
"status_joining": "Adhésion au salon…",
"join_failed": "Impossible de rejoindre le salon.",
"enter_room": "Entrer dans le salon",
"remember_me": "Rester connecté·e"
"remember_me": "Rester connecté·e",
"knock": "Frapper à la porte",
"enter_knock": "Demander à rejoindre"
},
"invite": {
"title": "Ajouter des amis",
@ -225,7 +227,9 @@
"read_only_room": "Lecture seule",
"moderation": "Modération",
"report": "Signaler",
"report_reason": "Motif"
"report_reason": "Motif",
"accept_knock": "Accept.",
"reject_knock": "Refuser"
},
"room_info_sheet": {
"this_room": "Ce salon",
@ -293,7 +297,10 @@
"sending_progress": "Envoi...",
"sending": "Envoi",
"close": "Fermer",
"files": "Fichier"
"files": "Fichier",
"quality": "Qualité",
"original": "Original",
"learn_more": "En apprendre davantage"
},
"create": {
"room_type_channel_name": "Canal",

View file

@ -63,7 +63,10 @@
"outgoing_message_deleted_text": "Scrios tú an teachtaireacht seo.",
"incoming_message_deleted_text": "Scriosadh an teachtaireacht seo.",
"seen_by": "Feiceáilte ag",
"download_all": "Íoslódáil go léir"
"download_all": "Íoslódáil go léir",
"room_upgraded": "Tá an seomra seo uasghrádaithe, téigh chuig {link} chun páirt a ghlacadh sa phlé arís",
"room_upgraded_link": "anseo",
"room_upgraded_view_old": "Rinneadh uasghrádú ar an seomra seo. Cliceáil {link} chun sean-theachtaireachtaí a fheiceáil"
},
"room_welcome": {
"info_permissions": "Is féidir leat 'ceadanna páirti' a athrú ag am ar bith i socruithe an tseomra.",
@ -81,7 +84,8 @@
"join_public": "Is féidir le duine ar bith páirt tríd an nasc seo a oscailt: {link}.",
"join_invite": "Ní féidir ach daoine a thugann tú cuireadh a bheith páirteach.",
"change": "Athraigh",
"got_it": "Fuair sé"
"got_it": "Fuair sé",
"join_knock": "Is féidir le daoine iarratas a dhéanamh chun páirt a ghlacadh trí 'chnagadh'."
},
"login": {
"create_room": "Cláraigh agus Cruthaigh Seomra",
@ -121,7 +125,11 @@
"join_failed": "Theip ar theip ar an seomra.",
"choose_name": "Roghnaigh ainm le húsáid",
"accept_ua": "Aontaím leis an {agreement}",
"ua": "comhaontú úsáideora seirbhíse"
"ua": "comhaontú úsáideora seirbhíse",
"knock": "Cnoc Mhuire",
"knock_reason": "Cúis cnagála (roghnach)",
"enter_knock": "Iarratas chun páirt a ghlacadh",
"status_knocking": "Ag bualadh..."
},
"invite": {
"title": "Cuir Cairde",
@ -164,7 +172,7 @@
"leave_room": "Fágáil",
"version_info": "Cumhachtaithe ag Tionscadal Guardian. Leagan: {version}",
"scan_code": "Scanadh chun dul isteach sa seomra",
"export_room": "Comhrá easpórtá",
"export_room": "Sábháil comhrá",
"user_admin": "Riarthóir",
"user_moderator": "Modhnóir",
"moderation": "Modhnú",
@ -185,7 +193,7 @@
"voice_mode_info": "Athraíonn an comhéadan comhrá go modh 'éisteacht agus taifead'",
"file_mode": "Modh comhad",
"file_mode_info": "Athraíonn an comhéadan comhrá go modh 'titim comhad'",
"download_chat": "Íoslódáil comhrá",
"download_chat": "Sábháil comhrá",
"read_only_room": "Léigh Amháin",
"read_only_room_info": "Ní cheadaítear ach riarthóirí agus modhnóirí a sheoladh chuig an seomra.",
"message_retention": "Stair Teorainn",
@ -196,7 +204,17 @@
"message_history_info": "Lig do dhaoine teachtaireachtaí a seoladh a fheiceáil sula ndeachaigh siad isteach ann",
"report": "Tuairisc",
"report_reason": "Cúis",
"report_info": "Tuairiscigh an seomra seo do riarthóirí seirbhíse maidir le hábhar mídhleathach, maslach nó díobhálach eile"
"report_info": "Tuairiscigh an seomra seo do riarthóirí seirbhíse maidir le hábhar mídhleathach, maslach nó díobhálach eile",
"accept_knock": "Glac leis",
"reject_knock": "Diúltú",
"join_knock": "Is féidir le daoine 'cnagadh'.",
"knocks": "Na Knicks",
"confirm_make_admin": "Ar mhaith leat riarthóir a dhéanamh den úsáideoir seo?",
"confirm_make_moderator": "Ar mhaith leat an t-úsáideoir seo a dhéanamh ina mhodhnóir?",
"confirm_revoke_moderator": "Ar mhaith leat cearta modhnóra a bhaint den úsáideoir seo?",
"confirm_ban": "Ar mhaith leat an t-úsáideoir seo a dhíbirt as an seomra?",
"user_creator": "Cruthaitheoir",
"confirm_revoke_admin": "Ar mhaith leat cearta riarthóra a bhaint den úsáideoir seo?"
},
"poll_create": {
"answer_label_1": "Freagra*",
@ -257,11 +275,24 @@
"secure_file_send": "comhad slán a sheoladh",
"add_a_message": "Cuir teachtaireacht leis",
"sending_progress": "Ag seoladh...",
"sending": "Seoladh",
"sending": "Ag seoladh",
"files_sent": "1 comhad seoladh! | {count} comhaid seolta!",
"files_sent_with_note": "1 chomhad seoladh le nóta! | Comhaid {count} seoltar le nóta!",
"send_more_files": "Seol níos mó comhaid",
"close": "Dún"
"close": "Dún",
"original": "Bunleagan",
"learn_more": "Faigh tuilleadh eolais",
"quality": "Cáilíocht",
"compressed": "Comhbhrúite",
"metadata_info_compressed": "Má chomhbhrúitear an íomhá, eisiatar a meiteashonraí go huathoibríoch.",
"metadata_info_original": "Cuirtear meiteashonraí an bhunchóip san áireamh go huathoibríoch nuair a roinntear é.",
"exif_data": "Sonraí Exif",
"content_credentials": "Dintiúir Ábhair",
"content_credentials_info": "Tá faisnéis foinse nó staire ar fáil le go bhféadfaidh an meán seo a fhíorú.",
"ai_used": "Grianghraf modhnaithe le hintleacht shaorga",
"screenshot_taken_on": "Scáileán tógtha ar {date}",
"captured_with_camera": "Gabhadh le ceamara",
"old_photo": "Grianghraf níos sine ná 3 mhí"
},
"project": {
"name": "Tionól",
@ -312,7 +343,10 @@
"user_kick_and_ban": "Cuir amach",
"user_make_admin": "Déan riarachán",
"user_make_moderator": "Déan modhnóir",
"user_revoke_moderator": "Modhnóir a chúlghairm"
"user_revoke_moderator": "Modhnóir a chúlghairm",
"cancel_knock": "Cealaigh cnag",
"user_revoke_admin": "Cealaigh an riarthóir",
"upgrade": "Uasghrádú"
},
"room": {
"invitations": "Níl aon chuireadh agat | Tá cuireadh 1 agat | Tá cuireadh {count} agat",
@ -327,7 +361,9 @@
"room_list_new_messages": "{count} teachtaireachtaí nua",
"room_list_rooms": "Seomraí",
"room_name_required": "Tá ainm an tseomra ag teastáil",
"room_topic_required": "Teastaíonn cur síos ar an seom"
"room_topic_required": "Teastaíonn cur síos ar an seom",
"needs_upgrade": "Caithfear an seomra seo a uasghrádú go leagan nua den seomra",
"upgrading": "Ag uasghrádú leagan an tseomra"
},
"new_room": {
"new_room": "Seomra Nua",
@ -395,7 +431,8 @@
"password_repeat": "Athraigh pasfhocal nua",
"display_name": "Ainm taispeána",
"display_name_required": "Tá ainm taispeána ag teastáil",
"notification_label": "Fógra"
"notification_label": "Fógra",
"my_rooms": "Mo sheomraí"
},
"profile_info_popup": {
"you_are": "Tá tú",
@ -445,7 +482,7 @@
"download_name": "Íoslódáil",
"original_text": "<buntéacs>"
},
"export": {
"room_export": {
"exported_date": "Onnmhairithe ar {date}",
"fetched_n_events": "Imeachtaí {count} faighte",
"fetched_n_of_total_events": "Fuarthas {count} de {total} imeacht",

View file

@ -159,7 +159,9 @@
"status_joining": "Unendosi alla stanza…",
"join_failed": "Impossibile unirsi alla stanza.",
"remember_me": "Ricordami",
"enter_room": "Unirsi alla stanza"
"enter_room": "Unirsi alla stanza",
"knock": "Bussa",
"enter_knock": "Chiedi di associarti"
},
"invite": {
"title": "Aggiungi amici",
@ -223,7 +225,9 @@
"message_retention_1_week": "1 settimana",
"message_retention_2_week": "2 settimane",
"report": "Segnala",
"report_reason": "Motivo"
"report_reason": "Motivo",
"accept_knock": "Accetto",
"reject_knock": "Nega"
},
"voice_recorder": {
"failed_to_record": "Impossibile registrare laudio",
@ -291,7 +295,10 @@
"close": "Chiudi",
"sending_progress": "Invio in corso...",
"sending": "Invio",
"files": "Files"
"files": "Files",
"quality": "Qualità",
"original": "Originale",
"learn_more": "Per saperne di più"
},
"getlink": {
"next": "Prossimo",

View file

@ -51,7 +51,8 @@
"room_info": {
"room_type_default": "លំនាំដើម",
"message_retention_none": "បិទ",
"hide_all": "លាក់"
"hide_all": "លាក់",
"accept_knock": "ព្រម​ទទួល"
},
"fallbacks": {
"download_name": "ទាញយក"
@ -62,7 +63,8 @@
"poll_submit": "បញ្ជូន"
},
"file_mode": {
"close": "បិទ"
"close": "បិទ",
"learn_more": "ស្វែងយល់បន្ថែម"
},
"message": {
"you": "អ្នក",
@ -70,5 +72,11 @@
"reply_video": "វីដេអូ",
"file": "ឯកសារ",
"images": "រូបភាព"
},
"leave": {
"go_back": "ត្រឡប់ក្រោយ"
},
"create": {
"room_type_channel_name": "ឆាណែល"
}
}

View file

@ -56,7 +56,7 @@
"info_auto_join": "بەخێر بێیت بۆ {room}.\nتۆ وەکوو {you} بەشداری دەکەیت.",
"change": "گۆڕین"
},
"export": {
"room_export": {
"export_filename": "چەت لە {date} دەرهێنرا",
"exported_date": "لە {date} دەرهێنرا",
"fetched_n_events": "{count} ڕووداو هێنرا",
@ -344,7 +344,8 @@
"shared_room_number_more": "زیاتر لە {count} ژوور هاوبەش دەکەیت لەگەڵ {name}",
"message_history_warning": "ئاگاداری: بەشداربووانی نوێ دەتوانن مێژووی تەواوی پەیامەکان ببینن",
"message_history": "مێژووی پەیام",
"report": "سکاڵا"
"report": "سکاڵا",
"accept_knock": "پەسەندکردن"
},
"goodbye": {
"room_deleted": "ژوورەکە سڕدرایەوە.",
@ -438,7 +439,9 @@
"files_sent_with_note": "1 فایل نێردرا بە تێبینیەکەوە! | {count} فایل نێردرا بە تێبینیەکەوە!",
"send_more_files": "فایلی زیاتر بنێرە",
"close": "داخستن",
"files": "فایلەکان"
"files": "فایلەکان",
"original": "Eslî",
"learn_more": "Learn more"
},
"create": {
"room_type_channel_name": "کەناڵ"

View file

@ -222,7 +222,8 @@
"shared_room_number": "ທ່ານໄດ້ແບ່ງປັນ {count} ຫ້ອງກັບ {name}",
"shared_room_number_more": "ທ່ານໄດ້ແບ່ງປັນຫຼາຍກວ່າ {count} ຫ້ອງກັບ {name}",
"message_history": "ປະຫວັດການສົນທະນາ",
"message_history_warning": "ຄຳເຕືອນ: ຜູ້ເຂົ້າຮ່ວມໃໝ່ຈະສາມາດເບິ່ງປະຫວັດການສົນທະນາທັງໝົດໄດ້"
"message_history_warning": "ຄຳເຕືອນ: ຜູ້ເຂົ້າຮ່ວມໃໝ່ຈະສາມາດເບິ່ງປະຫວັດການສົນທະນາທັງໝົດໄດ້",
"accept_knock": "ຍອມຮັບ"
},
"fallbacks": {
"download_name": "ດາວໂຫຼດ",
@ -407,7 +408,7 @@
"poll_submit": "ສົ່ງ",
"num_answered": "{count} ຄຳຕອບ"
},
"export": {
"room_export": {
"exported_date": "ສົ່ງອອກໃນວັນທີ {date}",
"fetched_n_events": "ໄດ້ຮັບ {count} ກິດຈະກຳ",
"fetched_n_of_total_events": "ໄດ້ຮັບ {count}ຈາກ {total} ກິດຈະກຳ",

View file

@ -213,7 +213,8 @@
"limit_history_info": "{period} စာတိုများကို သိမ်းဆည်းထားပါ။",
"report_info": "အန္တရာယ်ရှိသော အကြောင်းအရာအတွက် ဤအခန်းကို သတင်းပို့ပါ။",
"report_reason": "အကြောင်းပြချက်",
"message_history_info": "မပါဝင်မီ လူများအား ပေးပို့ထားသော မက်ဆေ့ချ်များကို ကြည့်ရှုခွင့်ပေးပါ။"
"message_history_info": "မပါဝင်မီ လူများအား ပေးပို့ထားသော မက်ဆေ့ချ်များကို ကြည့်ရှုခွင့်ပေးပါ။",
"accept_knock": "လက်ခံမည်"
},
"poll_create": {
"failed": "စစ်တမ်း ဖန်တီး၍ မရပါ၊ နောက်မှ ထပ်မံကြိုးစားကြည့်ပါ။",
@ -242,7 +243,7 @@
"num_answered": "အဖြေ {count}ခု",
"results_shared": "ရလဒ်များကို အခန်းသို့ မျှဝေခဲ့သည်။"
},
"export": {
"room_export": {
"fetched_n_events": "ပွဲအစီအစဉ် {count} ခု ရရှိခဲ့သည်",
"fetched_n_of_total_events": "ပွဲအစီအစဉ် {total} တွင် {count} ခု ရရှိခဲ့သည်",
"processed_n_of_total_events": "ပွဲအစီအစဉ် {total} တွင် {count} ခုအတွက် မီဒီယာကို စီမံဆောင်ရွက်ခဲ့သည်",
@ -451,7 +452,8 @@
"files_sent_with_note": "မှတ်စုနှင့် 1 ဖိုင် ပို့ပြီးပါပြီ | မှတ်စုနှင့် {count} ဖိုင် ပို့ပြီးပါပြီ",
"send_more_files": "ဖိုင်များ ထပ်၍ပို့ရန်",
"close": "ပိတ်မည်",
"files": "ဖိုင်များ"
"files": "ဖိုင်များ",
"learn_more": "ထပ်မံလေ့လာမယ်"
},
"create": {
"room_type_room_name": "အဖွဲ့",

View file

@ -83,7 +83,9 @@
"message_retention_1_hour": "Én time",
"read_only_room": "Skrivebeskyttet",
"report": "Rapporter",
"report_reason": "Grunn"
"report_reason": "Grunn",
"accept_knock": "Aksepter",
"reject_knock": "Nekt"
},
"goodbye": {
"view_other_rooms": "Vis andre rom",
@ -95,7 +97,8 @@
"status_logging_in": "Logger inn …",
"status_joining": "Tar del i rom…",
"user_name_label": "Brukernavn",
"remember_me": "Husk meg"
"remember_me": "Husk meg",
"knock": "Bank på"
},
"profile_info_popup": {
"identity_temporary": "{displayName}",
@ -206,7 +209,10 @@
"sending_progress": "Sender…",
"sending": "Sender",
"close": "Lukk",
"files": "Filer"
"files": "Filer",
"quality": "Kvalitet",
"original": "Original",
"learn_more": "Lær mer"
},
"emoji": {
"categories": {

View file

@ -395,7 +395,8 @@
"shared_room_number": "تاسې له {name} سره {count} خونې شریکې کړي دي",
"shared_room_number_more": "تاسې له {name} سره له {count} زیاتې خونې شریکې کړي دي",
"message_history": "د پیغام تاریخچه",
"message_history_warning": "خبرداری: د پیغام بشپړه تاریخچه به نویو ګډونوالو ته د لیدلو وړ وي"
"message_history_warning": "خبرداری: د پیغام بشپړه تاریخچه به نویو ګډونوالو ته د لیدلو وړ وي",
"accept_knock": "منل"
},
"room_info_sheet": {
"this_room": "دغه خونه",
@ -421,7 +422,7 @@
"original_text": "<original text>",
"download_name": "ډانلوډ"
},
"export": {
"room_export": {
"exported_date": "{date} نېټه خروجې اخیستل شوې ده",
"fetched_n_events": "{count} پېښې بېرته تر لاسه شوې دي",
"fetched_n_of_total_events": "له {total} پېښو څخه {count} یې بېرته تر لاسه شوې دي",

View file

@ -257,7 +257,8 @@
"choose_name": "Escolha um nome para usar",
"you_have_been_banned": "Você foi banido desta sala.",
"accept_ua": "Eu concordo com o {agreement}",
"ua": "contrato de serviço do usuário"
"ua": "contrato de serviço do usuário",
"knock": "Bater na porta"
},
"leave": {
"title_public": "Adeus, {user}",
@ -338,7 +339,9 @@
"message_history_info": "Permitir que as pessoas vejam as mensagens enviadas antes de se associarem",
"report": "Relatório",
"report_reason": "Motivo",
"report_info": "Denunciar esta sala aos administradores do serviço por conteúdo ilegal, abusivo ou prejudicial"
"report_info": "Denunciar esta sala aos administradores do serviço por conteúdo ilegal, abusivo ou prejudicial",
"accept_knock": "Aceite",
"reject_knock": "Negar"
},
"room_info_sheet": {
"this_room": "Esta sala",
@ -385,7 +388,7 @@
"view_results": "Ver os resultados",
"results_shared": "Resultados compartilhados com a sala."
},
"export": {
"room_export": {
"exported_date": "Foi exportado em {date}",
"fetched_n_events": "{count} eventos buscados",
"fetched_n_of_total_events": "Obteve {count} de {total} eventos",
@ -417,7 +420,11 @@
"any_file_format_accepted": "Qualquer formato de arquivo é aceito",
"files": "Arquivos",
"close": "Fechar",
"send_more_files": "Enviar mais arquivos"
"send_more_files": "Enviar mais arquivos",
"quality": "Qualidade",
"original": "Original",
"content_credentials": "Credenciais do conteúdo",
"learn_more": "Saiba mais"
},
"notification": {
"title": "Uma nova mensagem foi recebida",

View file

@ -1,25 +1,25 @@
{
"new_room": {
"options": "Opções",
"title": "Novo bate-papo em grupo",
"new_room": "Nova sala",
"title": "Nova Conversação de Grupo",
"new_room": "Nova Sala",
"create": "Criar",
"next": "Próximo",
"next": "Seguinte",
"name_room": "Nome da sala",
"room_topic": "Se desejar, adicione uma descrição",
"join_permissions": "Permissões de bilhete",
"set_join_permissions": "Defina as permissões de bilhete",
"get_link": "Obter a ligação",
"join_permissions_info": "Estas permissões determinam como as pessoas podem entrar na sala e com que facilidade as outras pessoas podem ser convidadas. Eles podem ser alteradas a qualquer momento.",
"join_permissions": "Permissões de adesão",
"set_join_permissions": "Defina as Permissões de Adesão",
"get_link": "Obter a hiperligação",
"join_permissions_info": "Estas permissões determinam como as pessoas podem junstar-se na sala e com que facilidade as outras pessoas podem ser convidadas. Estas podem ser alteradas a qualquer momento.",
"add_people": "Adicionar pessoas",
"link_copied": "Ligação copiada!",
"public_info": "Qualquer pessoa com uma ligação",
"public_description": "Obtenha uma ligação para partilhar",
"invite_info": "Apenas pessoas que foram adicionadas",
"invite_description": "Escolha numa lista ou busque pelo ID da conta",
"link_copied": "Hiperligação copiada!",
"public_info": "Qualquer pessoa com uma hiperligação",
"public_description": "Obtenha uma hiperligação para partilhar",
"invite_info": "Apenas as pessoas adicionadas",
"invite_description": "Escolha de uma lista ou procure pela Id. da conta",
"status_creating": "A criar a sala",
"status_avatar": "A enviar avatar",
"room_name_limit_error_msg": "O máximo de 50 caracteres são permitidos",
"room_name_limit_error_msg": "Permitido o máximo de 50 carateres",
"colon_not_allowed": "Dois pontos não são permitidos"
},
"getlink": {
@ -51,7 +51,8 @@
"password_repeat": "Repita a nova palavra-passe",
"display_name": "Nome de exibição",
"display_name_required": "O nome de exibição é obrigatório",
"notification_label": "Notificação"
"notification_label": "Notificação",
"my_rooms": "Minhas salas"
},
"room_info": {
"message_retention_8_hours": "8 horas",
@ -104,7 +105,9 @@
"message_history_warning": "aviso: o histórico completo das mensagens ficará visível para os novos participantes",
"report": "Relatório",
"report_info": "Denunciar esta sala aos administradores do serviço por conteúdo ilegal, abusivo ou prejudicial",
"report_reason": "Motivo"
"report_reason": "Motivo",
"accept_knock": "Aceitar",
"reject_knock": "Recusar"
},
"notification": {
"dialog": {
@ -142,7 +145,11 @@
"files_sent": "1 ficheiro enviado! | {count} ficheiros enviados!",
"send_more_files": "Enviar mais ficheiros",
"close": "Fechar",
"files": "Ficheiros"
"files": "Ficheiros",
"quality": "Qualidade",
"original": "Original",
"content_credentials": "Credenciais do conteúdo",
"learn_more": "Saber mais"
},
"fallbacks": {
"download_name": "Descarregar",
@ -153,110 +160,110 @@
"language_display_name": "Inglês",
"project": {
"name": "Convocar",
"tag_line": "Basta conectar"
"tag_line": "Basta ligar"
},
"global": {
"save": "Gravar",
"save": "Guardar",
"password_didnot_match": "A palavra-passe não coincidiu",
"password_hint": "Mínimo de 12 caracteres contendo pelo menos um número, uma maiúscula e uma minúscula",
"password_hint": "Mínimo de 12 carateres contendo pelo menos um número, uma letra maiúscula e uma minúscula",
"show_less": "Mostrar menos",
"show_more": "Mostrar mais",
"add_reaction": "Adicionar reação",
"click_to_remove": "Clique para remover",
"time": {
"recently": "agora mesmo",
"minutes": "1 minuto atrás | {n} minutos atrás",
"hours": "1 hora atrás | {n} horas atrás",
"days": "1 dia atrás | {n} dias atrás"
"minutes": "à 1 minuto |à {n} minutos",
"hours": "à 1 hora |à {n} horas",
"days": "à 1 dia | à {n} dias"
},
"close": "fechar",
"notify": "Notificação",
"notify": "Notificar",
"different_browser_title": "Tente um navegador diferente",
"different_browser_content": "Alguns recursos podem ser interrompidos. Copie e abra a ligação num navegador diferente."
"different_browser_content": "Algumas funcionalidades podem ester com problemas. Copie e abra a hiperligação num navegador diferente."
},
"menu": {
"start_private_chat": "Bate-papo privado com este utilizador",
"direct_chat": "Conversa direta",
"start_private_chat": "Mensagem Direta com este utilizador",
"direct_chat": "Conversação direta",
"reply": "Responder",
"edit": "Editar",
"delete": "Apagar",
"download": "Descarregar",
"delete": "Eliminar",
"download": "Transferir",
"ok": "OK",
"done": "Feito",
"cancel": "Cancela",
"send": "Envia",
"back": "RETORNA",
"login": "Entrar",
"logout": "Sair",
"new_room": "Nova sala",
"undo": "Desfazer",
"delete_now": "Apagar agora",
"join": "Entrar",
"ignore": "Ignore",
"done": "Concluído",
"cancel": "Cancelar",
"send": "Enviar",
"back": "ANTERIOR",
"login": "Iniciar sessão",
"logout": "Terminar sessão",
"new_room": "Nova Sala",
"undo": "Anular",
"delete_now": "Eliminar agora",
"join": "Aderir",
"ignore": "Ignorar",
"loading": "A carregar {appName}",
"user_kick_and_ban": "Expulsar",
"user_make_admin": "Tornar admin",
"user_make_admin": "Tornar administrador",
"user_make_moderator": "Tornar moderador",
"user_revoke_moderator": "Revogar moderador",
"pin": "Fixar post",
"unpin": "Desafixar post"
"pin": "Afixar publicação",
"unpin": "Desafixar publicação"
},
"message": {
"you": "Você",
"user_created_room": "{user} criou a sala",
"user_aliased_room": "{user} criou o codinome da sala {alias}",
"user_aliased_room": "{user} criou o pseudónimo da sala {alias}",
"user_changed_display_name": "{user} alterou o nome de exibição para {displayName}",
"user_changed_avatar": "{user} alterou o avatar",
"user_changed_room_avatar": "{user} alterou o avatar da sala",
"user_encrypted_room": "{user} criptografou a sala",
"user_was_invited": "{user} foi convidado para a conversa...",
"user_was_kicked": "{user} foi expulso do chat.",
"user_was_kicked_by_you": "Expulsou {user} do chat.",
"user_was_kicked_you": "Foi expulso do chat.",
"user_was_banned": "{user} foi expulso e banido do chat.",
"user_was_banned_by_you": "Expulsou e baniu {user} do chat.",
"user_was_banned_you": "Foi expulso e banido do chat.",
"user_joined": "{user} entrou no chat",
"user_left": "{user} saiu do chat",
"user_encrypted_room": "{user} encriptou a sala",
"user_was_invited": "{user} foi convidado para a conversação...",
"user_was_kicked": "{user} foi expulso da conversação.",
"user_was_kicked_by_you": "Você expulsou {user} da conversação.",
"user_was_kicked_you": "Você foi expulso da conversação.",
"user_was_banned": "{user} foi expulso e banido da conversação.",
"user_was_banned_by_you": "Você expulsou e baniu {user} da conversação.",
"user_was_banned_you": "Você foi expulso e banido da conversação.",
"user_joined": "{user} juntou-se à conversação",
"user_left": "{user} saiu da conversação",
"someone": "Alguém",
"user_said": "{user} disse:",
"sent_media": "Enviou {count} elementos de média.",
"sent_media": "Enviou {count} elementos de multimédia.",
"file_prefix": "Ficheiro: ",
"edited": "(editado)",
"download_progress": "{percentage}% descarregado",
"download_progress": "{percentage}% transferido",
"preparing_to_upload": "A preparar para enviar...",
"upload_file_too_large": "O ficheiro é grande demais para ser enviado!",
"upload_exceeded_file_limit": "O tamanho máximo do ficheiro ({configFormattedUploadSize}) foi excedido. ",
"upload_progress": "Carregado {count}",
"upload_file_too_large": "O ficheiro é muito grande para ser enviado!",
"upload_exceeded_file_limit": "Foi excedido o tamanho máximo do ficheiro ({configFormattedUploadSize}). ",
"upload_progress": "Enviado {count}",
"upload_progress_with_total": "Enviado {count} de {total}",
"user_changed_room_history": "{user} fez o histórico da sala {type}",
"user_changed_room_history": "{user} tornou o histórico da sala {type}",
"room_history_world_readable": "legível por qualquer pessoa",
"room_history_shared": "legível para todos os membros da sala",
"room_history_invited": "legível para os membros a partir do momento em que foram convidados",
"room_history_joined": "legível para os membros a partir de quando eles aderiram",
"room_history_joined": "legível para os membros a partir do momento em que eles aderiram",
"user_changed_join_rules": "{user} criou a sala {type}",
"room_joinrule_invite": "através de convite apenas",
"room_joinrule_invite": "convite apenas",
"room_joinrule_public": "público",
"user_changed_room_name": "{user} alterou o nome da sala para {name}",
"user_changed_room_topic": "{user} alterou o assunto da sala para {topic}",
"user_changed_room_topic": "{user} alterou o tópico da sala para {topic}",
"unread_messages": "Mensagens não lidas",
"replying_to": "{user}",
"replying_to": "A responder a {user}",
"your_message": "A sua mensagem...",
"scale_image": "Escala da imagem",
"scale_image": "Dimensionar imagem",
"user_is_typing": "{user} está a digitar",
"users_are_typing": "{count} membros estão digitando",
"users_are_typing": "{count} membros estão a digitar",
"room_powerlevel_change": "{user} alterou o nível de {changes}",
"user_powerlevel_change_from_to": "{user} de {powerOld} para {powerNew}",
"user_changed_guest_access_closed": "{user} não permitiu que os convidados entrassem na sala",
"user_changed_guest_access_open": "{user} permitiu que convidados entrassem na sala",
"user_changed_guest_access_open": "{user} permitiu que os convidados entrassem na sala",
"reply_image": "Imagem",
"reply_audio_message": "Mensagem de áudio",
"reply_video": "Vídeo",
"reply_poll": "Enquete",
"time_ago": "Hoje | Ontem | {count} dias atrás",
"outgoing_message_deleted_text": "Apagou esta mensagem.",
"incoming_message_deleted_text": "Esta mensagem foi apagada.",
"not_allowed_to_send": "Apenas administradores e moderadores podem postar na sala",
"reply_poll": "Sondagem",
"time_ago": "Hoje | Ontem |á {count} dias",
"outgoing_message_deleted_text": "Você eliminou esta mensagem.",
"incoming_message_deleted_text": "Esta mensagem foi eliminada.",
"not_allowed_to_send": "Apenas os administradores e os moderadores estão autorizados a enviar para a sala",
"reaction_count_more": "{reactionCount} mais",
"seen_by_count": "Visto por nenhum membro | Visto por 1 membro | Visto por {count} membros",
"seen_by": "Visto por",
@ -264,18 +271,18 @@
"files": "Ficheiros",
"images": "Imagens",
"send_attachements_dialog_title": "Deseja enviar os seguintes anexos?",
"download_all": "Descarregar tudo",
"failed_to_render": "Houve uma falha ao renderizar o evento"
"download_all": "Transferir tudo",
"failed_to_render": "Não foi possível renderizar o evento"
},
"room": {
"invitations": "Não tem convites | Tem 1 convite | Tem {count} convites",
"unseen_messages": "Não possui mensagens não lidas | Tem 1 mensagem não lida | Tem {count} mensagens não lidas",
"unseen_messages": "Não tem mensagens não lidas | Tem 1 mensagem não lida | Tem {count} mensagens não lidas",
"members": "sem membros | 1 membro | {count} membros",
"leave": "Sair",
"purge_set_room_state": "A configurar o estado da sala",
"purge_redacting_events": "A redigir eventos ({count} de {total})",
"purge_removing_members": "A remover membros ({count} de {total})",
"purge_failed": "Houve uma falha ao eliminar a sala!",
"purge_failed": "Não foi possível pugar a sala!",
"room_list_invites": "Convites",
"room_list_new_messages": "{count} novas mensagens",
"room_list_rooms": "Salas",
@ -284,21 +291,21 @@
},
"room_welcome": {
"info": "Bem-vindo! Aqui estão algumas coisas que deve saber sobre a sua sala:",
"encrypted": "As mensagens são criptografadas de ponta a ponta.",
"encrypted": "As mensagens são encriptadas de ponta a ponta.",
"room_history_is": "O histórico da sala é {type}.",
"room_history_joined": "As pessoas só podem ver as mensagens enviadas após entrarem.",
"join_public": "Qualquer pessoa pode participar abrindo esta ligação: {link}.",
"join_invite": "Apenas as pessoas que convidar podem participar.",
"info_permissions": "Pode alterar as \"permissões de participação\" a qualquer momento nas configurações da sala.",
"room_history_joined": "As pessoas só podem ver as mensagens enviadas depois de se juntarem.",
"join_public": "Qualquer pessoa pode participar abrindo esta hiperligação: {link}.",
"join_invite": "Só podem participar as pessoas que convidar.",
"info_permissions": "Pode alterar as \"permissões de participação\" em qualquer momento nas definições da sala.",
"got_it": "Percebi",
"no_past_messages": "Bem-vindo! Para a sua segurança, as mensagens anteriores não estão disponíveis.",
"direct_info": "Olá {you}. Está num chat privado com {user}.",
"direct_private_chat": "Mensagem direta",
"direct_info": "Olá {you}. Está numa conversação privada com {user}.",
"direct_private_chat": "Mensagem Direta",
"join_channel": "Tudo pronto! Convide pessoas para se juntarem a si: {link}",
"info_retention": "🕓 As mensagens enviadas dentro de {time} podem ser visualizadas por qualquer pessoa com a ligação.",
"info_retention_user": "As mensagens mais antigas que {time} serão apagadas do histórico.",
"info_auto_join": "Bem-vindo à {room}.\nEstá entrando como {you}.",
"change": "Mudança"
"info_retention": "🕓 As mensagens enviadas dentro de {time} podem ser visualizadas por qualquer pessoa com a hiperligação.",
"info_retention_user": "As mensagens mais antigas que {time} serão eliminadas do histórico.",
"info_auto_join": "Bem-vindo à {room}.\nEstá a juntar-se como {you}.",
"change": "Alterar"
},
"device_list": {
"blocked": "Bloqueado",
@ -381,7 +388,8 @@
"choose_name": "Escolha um nome para usar",
"accept_ua": "Concordo com o {agreement}",
"you_have_been_banned": "Foi banido desta sala.",
"ua": "contrato de serviço do utilizador"
"ua": "contrato de serviço do utilizador",
"enter_knock": "Solic. participa."
},
"invite": {
"title": "Adiciona amigos",
@ -463,7 +471,7 @@
"num_answered": "{count} respostas",
"results_shared": "Resultados partilhados com a sala."
},
"export": {
"room_export": {
"exported_date": "Foi exportado em {date}",
"fetched_n_events": "{count} eventos buscados",
"fetched_n_of_total_events": "Obteve {count} de {total} eventos",

View file

@ -66,7 +66,11 @@
"message_retention_1_hour": "O oră",
"message_retention_8_hours": "8 ore",
"report": "Raportați",
"report_reason": "Motiv"
"report_reason": "Motiv",
"message_retention_2_week": "2 săptămâni",
"message_retention_1_week": "O săptămână",
"accept_knock": "Acceptă",
"reject_knock": "Interzice"
},
"goodbye": {
"view_other_rooms": "Vezi alte camere",
@ -240,7 +244,8 @@
"files": "Fișiere",
"images": "Imagini",
"file": "Fişier",
"download_all": "Descărcați tot"
"download_all": "Descărcați tot",
"someone": "Cineva"
},
"language_display_name": "Engleză",
"fallbacks": {
@ -280,7 +285,10 @@
"file_mode": {
"sending_progress": "Se trimite...",
"close": "Închideți",
"files": "Fișiere"
"files": "Fișiere",
"quality": "Calitate",
"original": "Original",
"learn_more": "Află mai mult"
},
"notification": {
"dialog": {

View file

@ -69,7 +69,9 @@
"message_history": "История сообщений",
"message_history_warning": "предупреждение: Вся история сообщений будет доступна новым участникам",
"report_reason": "Причина",
"report": "Сообщить об ошибке"
"report": "Сообщить об ошибке",
"accept_knock": "Принять",
"reject_knock": "Запретить"
},
"file_mode": {
"sending": "Отправка",
@ -82,7 +84,10 @@
"secure_file_send": "безопасная отправка файлов",
"add_a_message": "Добавить сообщение",
"files_sent_with_note": "Отправлен 1 файл с примечанием! | Отправлены {count} файлов с примечанием!",
"choose_files": "Выбрать файлы"
"choose_files": "Выбрать файлы",
"quality": "Качество",
"original": "Оригинал",
"learn_more": "Узнать больше"
},
"global": {
"save": "Сохранить",
@ -324,7 +329,9 @@
"status_joining": "Присоединение к комнате...",
"join_failed": "Не удалось присоединиться к комнате.",
"choose_name": "Выберите себе имя",
"status_logging_in": "Вход…"
"status_logging_in": "Вход…",
"knock": "Постучаться",
"enter_knock": "Вступить"
},
"leave": {
"title_invite": "Вы уверены, что хотите выйти?",
@ -434,7 +441,7 @@
"channel_topic": "Опишите его",
"error_channel": "Не удалось создать канал"
},
"export": {
"room_export": {
"fetched_n_events": "Найдено {count} событий",
"fetched_n_of_total_events": "Получено {count} из {total} событий",
"export_filename": "Экспортированный чат {date}",

View file

@ -39,7 +39,8 @@
"message_retention_none": "ඕෆ් කරන්න",
"message_retention_1_day": "දවස් 1",
"members": "සාමාජිකයන්",
"report": "වාර්තා කරන්න"
"report": "වාර්තා කරන්න",
"accept_knock": "පිළිගන්න"
},
"leave": {
"go_back": "Go back",
@ -106,12 +107,15 @@
"emoji": {
"categories": {
"flags": "කොඩි",
"activity": "ක්‍රියාකාරිත්වය"
"activity": "ක්‍රියාකාරිත්වය",
"places": "ස්ථාන"
}
},
"file_mode": {
"close": "වසන්න",
"files": "ගොනු"
"files": "ගොනු",
"quality": "ගුණත්වය",
"learn_more": "වැඩිමනත් තොරතුරු"
},
"notification": {
"dialog": {

View file

@ -174,7 +174,10 @@
"any_file_format_accepted": "Tüm dosya türleri kabul edilmektedir",
"send_more_files": "Daha fazla dosya gönder",
"files_sent": "1 dosya gönderildi! | {count} dosya gönderildi!",
"files_sent_with_note": "1 dosya not ile birlikte gönderildi! | {count} dosya not ile birlikte gönderildi!"
"files_sent_with_note": "1 dosya not ile birlikte gönderildi! | {count} dosya not ile birlikte gönderildi!",
"quality": "Kodlama",
"original": "Orijinal",
"learn_more": "Daha fazla bilgi edin"
},
"room": {
"leave": "Ayrıl",
@ -260,7 +263,8 @@
"status_joining": "Odaya katılınıyor...",
"join_failed": "Odaya katılınamadı.",
"choose_name": "Kullanacağınız ismi seçin",
"you_have_been_banned": "Bu odadan yasaklandınız."
"you_have_been_banned": "Bu odadan yasaklandınız.",
"knock": "Tıklat"
},
"invite": {
"done": "Bitti",
@ -337,7 +341,9 @@
"message_history": "İleti Geçmişi",
"message_history_warning": "uyarı: Tüm ileti geçmişi yeni katılımcılara görünür olacaktır",
"report": "Rapor",
"report_reason": "Sebep"
"report_reason": "Sebep",
"accept_knock": "Kabul et",
"reject_knock": "Reddet"
},
"room_info_sheet": {
"view_details": "Ayrıntıları görüntüle",
@ -434,7 +440,7 @@
"close_tab": "Tarayıcı sekmesini kapat",
"view_other_rooms": "Diğer odaları görüntüle"
},
"export": {
"room_export": {
"exported_date": "{date} tarihinde dışarı aktarıldı",
"fetched_n_events": "{count} eylem toplandı",
"fetched_n_of_total_events": "{total} eylemden {count}tanesi toplandı",

View file

@ -122,7 +122,8 @@
"room_history_joined": "ئەزالارقوشۇلغاندىن كېيىنلا ئەۋەتىلگەن ئۇچۇرلارنى كۆرەلەيدۇ.",
"room_history_is": "مۇنازىرەخانا تارىخى {type}.",
"encrypted": "ئۇچۇرلار ئاخىرىغىچە مەخپىيلەشتۈرۈلگەن.",
"info": "خۇش كەپسىز! مۇنازىرەخانا ھەققىدە بىلىشكە تېگىشلىك بىر قانچە ئىش:"
"info": "خۇش كەپسىز! مۇنازىرەخانا ھەققىدە بىلىشكە تېگىشلىك بىر قانچە ئىش:",
"change": "ئۆزگەرت"
},
"fallbacks": {
"download_name": "چۈشۈرۈش",
@ -167,7 +168,8 @@
"title": "ياتاق تەپسىلاتلىرى",
"room_type_default": "كۆڭۈلدىكى",
"message_retention_none": "تاقاق",
"message_retention_8_hours": "8 سائەت"
"message_retention_8_hours": "8 سائەت",
"accept_knock": "قوشۇل"
},
"goodbye": {
"view_other_rooms": "باشقا ئۆيلەرنى كۆرۈڭ",
@ -242,7 +244,9 @@
},
"file_mode": {
"close": "يېپىش",
"files": "ھۆججەت"
"files": "ھۆججەت",
"quality": "سۈپىتى",
"learn_more": "مول بىلىم"
},
"getlink": {
"next": "كېيىنكى",

View file

@ -0,0 +1,510 @@
{
"global": {
"time": {
"days": "1 день тому | {n} днів тому",
"recently": "щойно",
"minutes": "1 хвилину тому | {n} хвилин тому",
"hours": "1 годину тому | {n} годин тому"
},
"close": "закрити",
"different_browser_title": "Спробуйте інший браузер",
"different_browser_content": "Деякі функції можуть не працювати. Скопіюйте та відкрийте посилання в іншому браузері.",
"save": "Зберегти",
"password_didnot_match": "Пароль не збігався",
"password_hint": "Мінімум 12 символів, що містять щонайменше одну цифру, одну велику та одну малу літеру",
"add_reaction": "Додати реакцію",
"click_to_remove": "Натисніть, щоб видалити",
"show_less": "Показувати менше",
"show_more": "Показати більше",
"notify": "Повідомити"
},
"menu": {
"start_private_chat": "Пряме повідомлення з цим користувачем",
"direct_chat": "Прямий чат",
"reply": "Відповідь",
"back": "НАЗАД",
"new_room": "Нова кімната",
"delete_now": "Видалити зараз",
"loading": "Завантаження {appName}",
"user_revoke_moderator": "Відкликати модератора",
"pin": "Закріпити публікацію",
"unpin": "Відкріпити публікацію",
"cancel_knock": "Скасувати стукіт",
"edit": "Редагувати",
"delete": "Вилучити",
"download": "Завантажити",
"ok": "Гаразд",
"done": "Готово",
"cancel": "Скасувати",
"send": "Надіслати",
"login": "Увійдіть",
"logout": "Вихід",
"undo": "Відмініти",
"join": "Приєднуйтесь",
"ignore": "Ігнорувати",
"user_kick_and_ban": "Вилучити",
"user_make_admin": "Зробити адміном",
"user_make_moderator": "Зробити модератором",
"user_revoke_admin": "Відкинути адміністратора",
"upgrade": "Оновлення"
},
"language_display_name": "Англійська",
"project": {
"name": "Скликати",
"tag_line": ",Просто підключіться"
},
"message": {
"you": "Ви",
"user_created_room": "{user} створив кімнату",
"user_aliased_room": "{user} зробив кімнату псевдонімом {alias}",
"user_changed_display_name": "{user} змінено відображуване ім'я на {displayName}",
"user_changed_avatar": "{user} змінив аватарку",
"user_changed_room_avatar": "{user} змінив аватар кімнати",
"user_encrypted_room": "{user} зашифрував кімнату",
"user_was_invited": "{user} був запрошений до чату...",
"user_was_kicked": "{user} було виключено з чату.",
"user_was_kicked_by_you": "Ви виключили {user} з чату.",
"user_was_kicked_you": "Тебе виключили з чату.",
"user_was_banned": "{user} був вигнаний та забанений у чаті.",
"user_was_banned_by_you": "Ви вигнали та забанили {user} у чаті.",
"user_was_banned_you": "Вас виключили та забанили в чаті.",
"user_joined": "{user} приєднався до чату",
"user_left": "{user} вийшов з чату",
"user_said": "{user} сказав:",
"sent_media": "Надіслано медіафайлів: {count}.",
"file_prefix": "Файл: ",
"download_progress": "{percentage}% завантажено",
"preparing_to_upload": "Підготовка до завантаження...",
"upload_file_too_large": "Файл занадто великий для завантаження!",
"upload_exceeded_file_limit": "Перевищено максимальний розмір файлу ({configFormattedUploadSize}). ",
"upload_progress": "Завантажено {count}",
"upload_progress_with_total": "Завантажено {count} з {total}",
"user_changed_room_history": "{user} увійшов у історію кімнати {type}",
"room_history_world_readable": "читабельний будь-кому",
"room_history_shared": "читабельний для всіх учасників кімнати",
"room_history_invited": "читабельний для учасників з моменту їх запрошення",
"room_history_joined": "читабельний для учасників з моменту їхньої реєстрації",
"user_changed_join_rules": "{user} зробив кімнату {type}",
"room_joinrule_invite": "лише за запрошеннями",
"user_changed_room_name": "{user} змінив назву кімнати на {name}",
"user_changed_room_topic": "{user} змінив тему кімнати на {topic}",
"unread_messages": "Непрочитані повідомлення",
"replying_to": "Відповідь на {user}",
"your_message": "Ваше повідомлення...",
"scale_image": "Масштаб зображення",
"user_is_typing": "{user} друкує",
"users_are_typing": "{count} учасників друкують",
"room_powerlevel_change": "{user} змінив рівень потужності {changes}",
"user_powerlevel_change_from_to": "{user} від {powerOld} до {powerNew}",
"user_changed_guest_access_closed": "{user} заборонив гостям приєднуватися до кімнати",
"user_changed_guest_access_open": "{user} дозволив гостям приєднатися до кімнати",
"reply_audio_message": "Аудіоповідомлення",
"time_ago": "Сьогодні | Вчора | {count} днів тому",
"outgoing_message_deleted_text": "Ви видалили це повідомлення.",
"incoming_message_deleted_text": "Це повідомлення було видалено.",
"not_allowed_to_send": "Тільки адміністратори та модератори можуть надсилати повідомлення до кімнати",
"reaction_count_more": "{reactionCount} більше",
"seen_by_count": "Не бачили учасники | Бачили 1 учасник | Бачили {count} учасників",
"send_attachements_dialog_title": "Ви хочете надіслати наступні вкладення?",
"failed_to_render": "Не вдалося відобразити подію",
"someone": "Хтось",
"edited": "(відредаговано)",
"room_joinrule_public": "громадськість",
"reply_image": "Зображення",
"reply_video": "Відео",
"reply_poll": "Опитування",
"seen_by": "Побачили",
"file": "Файл",
"files": "Файли",
"images": "Зображення",
"download_all": "Завантажити усі",
"room_upgraded": "Цю кімнату оновлено, перейдіть за посиланням {link}, щоб знову приєднатися до обговорення",
"room_upgraded_link": "тут",
"room_upgraded_view_old": "Цю кімнату оновлено. Натисніть {link}, щоб переглянути старі повідомлення"
},
"room": {
"invitations": "У вас немає запрошень | У вас є 1 запрошення | У вас є {count} запрошень",
"unseen_messages": "У вас немає непрочитаних повідомлень | У вас є 1 непрочитане повідомлення | У вас є {count} непрочитаних повідомлень",
"members": "немає учасників | 1 учасник | {count} учасників",
"purge_set_room_state": "Налаштування стану кімнати",
"purge_redacting_events": "Редагування подій ({count} з {total})",
"purge_removing_members": "Видалення учасників ({count} з {total})",
"purge_failed": "Не вдалося очистити кімнату!",
"room_list_new_messages": "{count} нові повідомлення",
"room_name_required": "Назва кімнати обов'язкова",
"room_topic_required": "Опис кімнати обов'язковий",
"leave": "Залишити",
"room_list_invites": "Запрошення",
"room_list_rooms": "Кількість номерів",
"needs_upgrade": "Цю кімнату потрібно оновити до нової версії",
"upgrading": "Оновлення версії кімнати"
},
"room_welcome": {
"info": "Ласкаво просимо! Ось кілька речей, які варто знати про вашу кімнату:",
"encrypted": "Повідомлення шифруються від початку до кінця.",
"room_history_is": "Історія кімнати {type}.",
"room_history_joined": "Користувачі можуть бачити повідомлення, надіслані лише після приєднання.",
"join_public": "Приєднатися може кожен, перейшовши за цим посиланням: {link}.",
"join_invite": "Приєднатися можуть лише ті, кого ви запросите.",
"join_knock": "Люди можуть подати запит на приєднання, «постукавши».",
"info_permissions": "Ви можете змінити «дозволи на приєднання» будь-коли в налаштуваннях кімнати.",
"no_past_messages": "Ласкаво просимо! З міркувань безпеки попередні повідомлення недоступні.",
"direct_info": "Привіт, {you}. Ви спілкуєтесь у приватному чаті з {user}.",
"direct_private_chat": "Пряме повідомлення",
"join_channel": "Готово! Запросіть людей приєднатися до вас: {link}",
"info_retention": "🕓 Повідомлення, надіслані протягом {time}, можуть переглядати всі, хто має посилання.",
"info_retention_user": "🕓 Повідомлення, старіші за {time}, будуть видалені з історії.",
"info_auto_join": "Ласкаво просимо до {room}.\nВи приєднуєтеся як {you}.",
"got_it": "Зрозуміли",
"change": "Змінити"
},
"new_room": {
"title": "Новий груповий чат",
"new_room": "Нова кімната",
"name_room": "Назва кімнати",
"room_topic": "Додайте опис, якщо хочете",
"join_permissions": "Дозволи на приєднання",
"set_join_permissions": "Встановити дозволи на приєднання",
"join_permissions_info": "Ці дозволи визначають, як люди можуть приєднатися до кімнати та як легко можна запросити інших. Їх можна змінити будь-коли.",
"get_link": "Отримати посилання",
"add_people": "Додати людей",
"link_copied": "Посилання скопійовано!",
"public_info": "Будь-хто, хто має посилання",
"public_description": "Отримати посилання для поширення",
"invite_info": "Тільки додані люди",
"invite_description": "Виберіть зі списку або шукайте за ідентифікатором облікового запису",
"status_creating": "Створення кімнати",
"status_avatar": "Завантаження аватара",
"room_name_limit_error_msg": "Дозволено максимум 50 символів",
"colon_not_allowed": "Двокрапка заборонена",
"create": "Створити",
"next": "Далі",
"options": "Опції"
},
"login": {
"username": "Ім'я користувача (наприклад: Марта)",
"username_required": "Потрібне ім'я користувача",
"password_required": "Потрібен пароль",
"create_room": "Зареєструватися та створити кімнату",
"or": "АБО",
"invalid_message": "Недійсне ім'я користувача або пароль",
"no_supported_flow": "Додаток не може увійти на вказаний сервер",
"terms": "Домашній сервер вимагає від вас ознайомитися та прийняти наступні правила:",
"email": "Вам потрібно підтвердити свою адресу електронної пошти",
"sent_verification": "Електронний лист надіслано на адресу {email}. Будь ласка, скористайтеся своїм звичайним поштовим клієнтом, щоб перевірити адресу.",
"email_not_valid": "Адреса електронної пошти недійсна",
"registration_token": "Будь ласка, введіть реєстраційний токен",
"send_token": "Надіслати токен",
"title": "Увійдіть",
"password": "Введіть пароль",
"login": "Увійдіть",
"accept_terms": "Прийняти",
"send_verification": "Надіслати електронний лист для підтвердження",
"resend_verification": "Повторно надіслати лист з підтвердженням",
"token_not_valid": "Неправильний код"
},
"getlink": {
"title": "Отримати пряме посилання",
"info": "Прямі посилання забезпечують безпечний зв’язок з вами. Для початку виберіть псевдонім, який відображатиметься, коли люди вступатимуть у чат з вами.",
"username": "Введіть псевдонім (наприклад: ваку)",
"hello": "Привіт, {user},\nОсь ваше пряме посилання",
"ready_to_share": "Готово до поширення! Нова прямі кімната відкриватиметься щоразу, коли хтось відкриватиме посилання.",
"scan_title": "Відскануйте цей код, щоб розпочати прямий чат",
"different_link": "Отримати інше посилання",
"share_qr": "Поділитися QR-кодом",
"qr_image_copied": "Зображення скопійовано в буфер обміну",
"next": "Далі",
"continue": "Продовжуйте"
},
"create": {
"title": "Виберіть досвід",
"room_type_room_name": "Груповий чат",
"room_type_room_description": "Зв'яжіть групу людей",
"room_type_channel_description": "Новини та ідеї в трансляції",
"room_type_filedrop_name": "Падіння файлів",
"room_type_filedrop_description": "Отримувати файли та поради",
"topic_too_long": "Дозволено максимум 500 символів",
"room_type_channel_name": "Канал",
"field_required": "Це поле є обов'язковим"
},
"createchannel": {
"title": "Створити канал",
"info": "Транслюйте новини чи знання в будь-якому форматі — відео, подкасті, тексті, зображеннях або PDF-файлах.",
"channel_name": "Назвіть свій канал",
"channel_topic": "Опишіть це",
"channel_topic_label": "Ваш опис відображатиметься, коли користувачі приєднаються до вашого каналу.",
"error_channel": "Не вдалося створити канал",
"status_creating": "Створення каналу"
},
"createfiledrop": {
"title": "Створити файловий дроп",
"info": "Файлові сховища — це безпечне місце для отримання файлів від будь-кого.",
"filedrop_name": "Назвіть свій файловий дроп",
"error_filedrop": "Не вдалося створити перетягування файлів",
"status_creating": "Створення перетягування файлів"
},
"profile": {
"title": "Мій профіль",
"temporary_identity": "Ця ідентифікаційна інформація тимчасова. Встановіть пароль, щоб використовувати її знову",
"my_rooms": "Мої кімнати",
"set_language": "Встановіть свою мову",
"language_description": "Convene доступний багатьма мовами.",
"dont_see_yours": "Не бачите свого?",
"tell_us": "Розкажіть нам.",
"password_repeat": "Повторіть новий пароль",
"display_name_required": "Потрібне відображуване ім'я",
"set_password": "Установка паролю",
"change_name": "Змінити ім'я",
"change_password": "Зміна пароля",
"select_language": "Мова",
"password_old": "Старий пароль",
"password_new": "Новий пароль",
"display_name": "Відображуване ім'я",
"notification_label": "Сповіщення"
},
"profile_info_popup": {
"you_are": "Ви є",
"identity": "{displayName}",
"identity_temporary": "{displayName}",
"want_more": "Хочете більше?",
"powered_by": "Ця кімната працює на платформі {product}. Дізнайтеся більше на {productLink} або створіть ще одну кімнату!",
"new_room": "Нова кімнати",
"review_ua": "Перегляньте Угоду користувача сервісу",
"edit_profile": "Редагувати профіль",
"logout": "Вихід"
},
"join": {
"title": "Ласкаво просимо, вас запросили приєднатися",
"title_user": "Ласкаво просимо, вас запросили до чату",
"joining_as": "Ви приєднуєтеся як:",
"join_user": "Почати чат",
"knock_reason": "Причина стуку (необов'язково)",
"enter_room_user": "Почати чат",
"enter_knock": "Запит на приєднання",
"status_logging_in": "Вхід...",
"status_joining": "Приєднання до кімнати...",
"status_knocking": "Стукіт...",
"join_failed": "Не вдалося приєднатися до кімната.",
"choose_name": "Виберіть ім'я для використання",
"you_have_been_banned": "Вам заборонено вхід до цієї кімнати.",
"accept_ua": "Я погоджуюся з {agreement}",
"ua": "угода користувача послуг",
"user_name_label": "Ім'я користувача",
"remember_me": "Запамʼятати мене",
"join": "Приєднатися до кімнати",
"knock": "Постукатись",
"enter_room": "Увійти в кімнату"
},
"invite": {
"send_invites_to": "Надіслати запрошення",
"status_inviting": "Запрошення друга {index} з {count}",
"status_error": "Не вдалося запросити одного або кількох друзів!",
"title": "Додати друзів",
"done": "Готово"
},
"leave": {
"title_public": "Прощавай, {user}",
"text_public": "Ви завжди можете знову приєднатися до цієї кімнати, якщо знаєте посилання.",
"text_public_lastroom": "Якщо ви хочете знову приєднатися до цієї кімнати, ви можете це зробити під новим ідентифікатором. Щоб зберегти {user}, {action}.",
"text_invite": "Ця кімната замкнена. Ви не можете знову приєднатися без спеціального дозволу.",
"create_account": "створити обліковий запис",
"title_invite": "Ви впевнені, що хочете піти?",
"go_back": "Іди назад",
"leave": "Залишити"
},
"logout": {
"confirm_text": "Ви впевнені, що хочете вийти?"
},
"purge_room": {
"title": "Видалити кімнату?",
"info": "Усіх учасників та повідомлення буде видалено. Цю дію не можна скасувати.",
"n_seconds": "{seconds} секунди",
"self_destruct": "Ваша кімната самознищиться за лічені секунди.",
"deleting": "Видалення кімнати:",
"notified": "Ми повідомили учасників.",
"room_deletion_notice": "Час прощатися! Цю кімнату видалив {user}. Вона самознищиться за лічені секунди.",
"button": "Вилучити"
},
"goodbye": {
"room_deleted": "Кімнату видалено.",
"close_tab": "Закрити вкладку браузера",
"view_other_rooms": "Переглянути інші кімнати"
},
"room_info": {
"title": "Деталі кімнати",
"created_by": "Створено {user}",
"permissions": "Дозволи на Приєднання",
"join_invite": "Додано лише людей",
"join_public": "Будь-хто, хто має посилання",
"join_knock": "Люди можуть «стукати».",
"copy_invite_link": "Копіювати посилання для запрошення",
"link_copied": "Посилання скопійовано!",
"purge": "Видалити кімнату",
"knocks": "Стукає",
"user": "{user}",
"user_you": "{user} (ви)",
"show_all": "Показати всі >",
"version_info": "За підтримки Guardian Project. Версія: {version}",
"scan_code": "Відскануйте, щоб приєднатися до кімнати",
"export_room": "Зберегти чат",
"room_type": "Тип кімнати",
"voice_mode": "Голосовий режим",
"voice_mode_info": "Перемикає інтерфейс чату в режим «прослуховування та запису»",
"file_mode": "Режим файлу",
"file_mode_info": "Перемикає інтерфейс чату в режим «скидання файлів»",
"download_chat": "Зберегти чат",
"read_only_room_info": "Тільки адміністратори та модератори мають право надсилати повідомлення до кімнати.",
"message_retention": "Обмеження історії",
"message_retention_info": "Встановіть обмеження на тривалість зберігання повідомлень",
"limit_history_info": "Зберігати повідомлення для {period}",
"message_retention_4_week": "4 тижні",
"direct_link": "Моє пряме посилання",
"direct_link_desc": "Готово до поширення! Нова пряма кімната відкриватиметься щоразу, коли хтось відкриватиме посилання.",
"shared_room_number": "Ви ділите {count} кімнат з {name}",
"shared_room_number_more": "Ви ділите більше ніж {count} кімнат з {name}",
"message_history": "Історія повідомлень",
"message_history_info": "Дозволити користувачам переглядати повідомлення, надіслані до їх приєднання",
"message_history_warning": "попередження: нові учасники бачитимуть повну історію повідомлень",
"report_info": "Повідомити адміністраторів служби про наявність незаконного, образливого або іншого шкідливого контенту в цій кімнаті",
"confirm_make_admin": "Ви хочете зробити цього користувача адміністратором?",
"confirm_make_moderator": "Ви хочете зробити цього користувача модератором?",
"confirm_revoke_moderator": "Ви хочете позбавити цього користувача прав модератора?",
"confirm_ban": "Ви хочете вигнати цього користувача з кімнати?",
"copy_link": "Копіювати посилання",
"members": "Члени",
"accept_knock": "Прийняти",
"reject_knock": "Заборонити",
"hide_all": "Приховати",
"leave_room": "Залишити",
"user_admin": "Адміністратор",
"user_moderator": "Модератор",
"moderation": "Модерація",
"experimental_features": "Експериментальні функції",
"room_type_default": "За замовчанням",
"read_only_room": "Тільки для читання",
"message_retention_none": "Вимкнено",
"message_retention_2_week": "2 тижня",
"message_retention_1_week": "1 тиждень",
"message_retention_1_day": "1 день",
"message_retention_8_hours": "8 години",
"message_retention_1_hour": "1 година",
"report": "Повідомити",
"report_reason": "Причина",
"user_creator": "Творець",
"confirm_revoke_admin": "Ви хочете позбавити цього користувача прав адміністратора?"
},
"room_info_sheet": {
"this_room": "Ця кімната",
"view_details": "Докладніше"
},
"voice_recorder": {
"swipe_to_cancel": "Проведіть пальцем, щоб скасувати",
"release_to_cancel": "Відпустіть, щоб скасувати",
"failed_to_record": "Не вдалося записати аудіо",
"not_supported_text": "На жаль, цей браузер не підтримує запис аудіо.",
"not_supported_title": "Не підтримується"
},
"power_level": {
"admin": "адміністратор",
"moderator": "модератор",
"custom": "звичай ({level})",
"restricted": "обмежений",
"default": "типовий"
},
"fallbacks": {
"original_text": "<оригінальний текст>",
"audio_file": "Аудіофайл",
"video_file": "Відеофайл",
"download_name": "Завантажити"
},
"poll_create": {
"title": "Створити нове опитування",
"creating": "Створення опитування",
"poll_disclosed": "Відкрито поточні результати відображаються постійно.",
"poll_undisclosed": "Закрито користувачі побачать результати після закриття опитування.",
"add_answer": "Додати відповідь",
"failed": "Не вдалося створити опитування, спробуйте пізніше.",
"question_label": "Задайте своє питання*",
"question_required": "Вам потрібно ввести питання!",
"answer_label_1": "Відповідь*",
"please_complete": "Будь ласка, заповніть",
"answer_required": "Відповідь не може бути порожньою. Будь ласка, введіть текст або видаліть цей варіант.",
"tip_title": "ДЛЯ ПОРАД",
"tip_text": "Учасники побачать результати опитування після того, як дадуть відповіді. Закрийте опитування, щоб показати результати всім присутнім.",
"create_poll_menu_option": "Створити опитування",
"poll_status_closed": "Опитування закрито",
"poll_status_disclosed": "Результати будуть показані після закриття опитування.",
"poll_status_open": "Опитування відкрите",
"poll_status_open_not_voted": "Опитування відкрите проголосуйте, щоб побачити результати",
"close_poll": "Закрити опитування",
"num_answered": "{count} відповіді",
"results_shared": "Результати опубліковано в кімнаті.",
"create": "Опублікувати",
"answer_label_n": "Відповідь",
"view_results": "Переглянути результати",
"poll_submit": "Надіслати"
},
"room_export": {
"exported_date": "Експортовано {date}",
"fetched_n_events": "Отримано подій: {count}",
"fetched_n_of_total_events": "Отримано {count} з {total} подій",
"processed_n_of_total_events": "Оброблено медіафайли для {count} з {total} подій",
"export_filename": "Експортовано чат {date}"
},
"notification": {
"title": "Отримано нове повідомлення",
"dialog": {
"title": "Залишайтеся на зв'язку за допомогою сповіщень у чаті!",
"body": "Ніколи більше не пропускайте повідомлення чи важливу розмову! Отримуйте сповіщення щоразу, коли хтось надсилає вам повідомлення або відповідає у вашому чаті.",
"enable": "Ввімкнути"
},
"blocked_message": "Сповіщення заблоковано. Перейдіть до налаштувань пристрою або браузера, щоб увімкнути сповіщення",
"not_supported": "Сповіщення ще не підтримуються в мобільних пристроях",
"periodicSync_new_msg_reminder": "У вас можуть бути нові повідомлення"
},
"device_list": {
"blocked": "Заблокований",
"verified": "Перевірено",
"not_verified": "Не перевірено"
},
"emoji": {
"search": "Пошук…",
"categories": {
"activity": "Діяльність",
"flags": "Прапори",
"objects": "Об'єкти",
"nature": "Природа",
"symbols": "Символи",
"places": "Місця",
"foods": "Продукти харчування",
"frequently": "Часто використовується",
"peoples": "Народи"
}
},
"file_mode": {
"sending": "Відправлення",
"close": "Закрити",
"files": "Файли",
"quality": "Якість",
"original": "Оригінальний",
"content_credentials": "Облікові дані вмісту",
"learn_more": "Дізнатися більше",
"choose_files": "Вибрати файли",
"any_file_format_accepted": "Приймається будь-який формат файлу",
"secure_file_send": "безпечне надсилання файлів",
"add_a_message": "Додати повідомлення",
"sending_progress": "Надсилання...",
"files_sent": "1 файл надіслано! | {count} файлів надіслано!",
"files_sent_with_note": "1 файл надіслано з приміткою! | {count} файлів надіслано з приміткою!",
"send_more_files": "Надіслати більше файлів",
"compressed": "Стиснутий",
"metadata_info_compressed": "Стиснення зображення автоматично виключає його метадані.",
"metadata_info_original": "Спільний доступ до оригіналу автоматично включає його метадані.",
"exif_data": "Дані Exif",
"content_credentials_info": "Для цього медіа доступна інформація про джерело або історію, яку потрібно перевірити.",
"ai_used": "Фото змінено за допомогою штучного інтелекту",
"screenshot_taken_on": "Знімок екрана зроблено {date}",
"captured_with_camera": "Знято камерою",
"old_photo": "Фотографія старша за 3 місяці"
}
}

View file

@ -29,10 +29,10 @@
"user_admin": "管理员",
"voice_mode": "语音模块",
"voice_mode_info": "将聊天界面切换到“收听和录音”模式",
"download_chat": "下载聊天",
"download_chat": "保存聊天记录",
"read_only_room": "只读",
"read_only_room_info": "只允许管理员和主持人发送到聊天室",
"export_room": "导出聊天",
"export_room": "保存聊天记录",
"user_moderator": "版主",
"experimental_features": "实验功能",
"direct_link": "我的直接链接",
@ -60,7 +60,17 @@
"report_reason": "理由",
"limit_history_info": "保留信息 {period}",
"message_history_info": "允许用户查看他们加入群聊之前发送的信息",
"report_info": "向服务管理员举报此房间存在非法、辱骂或其他有害内容"
"report_info": "向服务管理员举报此房间存在非法、辱骂或其他有害内容",
"accept_knock": "接受",
"reject_knock": "拒绝",
"join_knock": "人们可以“敲门”。",
"knocks": "敲门",
"user_creator": "创建者",
"confirm_make_admin": "您想让该用户成为管理员吗?",
"confirm_revoke_admin": "您想移除该用户的管理员权限吗?",
"confirm_make_moderator": "您想让该用户成为版主吗?",
"confirm_revoke_moderator": "您想移除该用户的版主权限吗?",
"confirm_ban": "您想将该用户踢出房间吗?"
},
"leave": {
"leave": "离开",
@ -112,7 +122,9 @@
"unseen_messages": "你没有任何未读信息 | 您有 1 条未读信息 | 您有 {count} 条未读信息",
"room_list_new_messages": "{count} 条新消息",
"room_name_required": "聊天室名称必填",
"room_topic_required": "需要聊天室描述"
"room_topic_required": "需要聊天室描述",
"needs_upgrade": "此聊天室需要升级到新的版本",
"upgrading": "正在升级聊天室版本"
},
"message": {
"you": "您",
@ -178,7 +190,10 @@
"upload_exceeded_file_limit": "超出 ({configFormattedUploadSize}) 的最大文件大小。 ",
"someone": "某人",
"failed_to_render": "无法呈现事件",
"sent_media": "已发送{count} 媒体项目。"
"sent_media": "已发送{count} 媒体项目。",
"room_upgraded": "此聊天室已升级,请前往{link}重新加入讨论",
"room_upgraded_view_old": "此聊天室已升级,点击{link}查看旧信息",
"room_upgraded_link": "这里"
},
"menu": {
"login": "登录",
@ -205,7 +220,10 @@
"user_kick_and_ban": "退出",
"delete_now": "立即删除",
"pin": "置顶帖",
"unpin": "取消置顶帖子"
"unpin": "取消置顶帖子",
"user_revoke_admin": "撤销管理员",
"cancel_knock": "取消敲门",
"upgrade": "升级"
},
"power_level": {
"restricted": "被限制",
@ -258,7 +276,11 @@
"choose_name": "选择要使用的名称",
"you_have_been_banned": "您已被禁止进入该聊天室。",
"accept_ua": "我同意 {agreement}",
"ua": "服务使用协议"
"ua": "服务使用协议",
"knock": "请求",
"enter_knock": "申请加入",
"knock_reason": "敲门原因(可选)",
"status_knocking": "正在敲门..."
},
"profile": {
"display_name": "显示名称",
@ -276,7 +298,8 @@
"dont_see_yours": "看不到你的?",
"tell_us": "告诉我们。",
"display_name_required": "显示名称是必需的",
"notification_label": "通知"
"notification_label": "通知",
"my_rooms": "我的聊天室"
},
"new_room": {
"status_avatar": "正在上传头像",
@ -317,7 +340,8 @@
"info_retention_user": "🕓 早于 {time} 的信息将从历史记录中删除。",
"join_channel": "一切就绪!邀请其他人加入您:{link}",
"info_retention": "🕓有链接的任何人都可以查看在 {time} 内发送的信息。",
"info_auto_join": "欢迎来到{room}。\n您以{you}的身份加入。"
"info_auto_join": "欢迎来到{room}。\n您以{you}的身份加入。",
"join_knock": "人们可以通过“敲门”来请求加入。"
},
"profile_info_popup": {
"new_room": "新的聊天室",
@ -385,7 +409,7 @@
"answer_required": "答案不能为空。 请输入一些文本或删除此选项。",
"num_answered": "{count} 答案"
},
"export": {
"room_export": {
"fetched_n_events": "获取了 {count} 个事件",
"exported_date": "于 {date} 导出",
"fetched_n_of_total_events": "已获取 {count} 个事件,共 {total} 个事件",
@ -403,7 +427,20 @@
"any_file_format_accepted": "接受任何文件格式",
"files_sent_with_note": "发送 1 个文件并附有备注! | 已发送 {count} 个文件并附有备注!",
"close": "关闭",
"files_sent": "已发送 1 个文件! | 已发送 {count} 个文件!"
"files_sent": "已发送 1 个文件! | 已发送 {count} 个文件!",
"quality": "画质",
"original": "原来的",
"content_credentials": "内容凭据",
"learn_more": "了解更多",
"compressed": "压缩",
"metadata_info_compressed": "压缩图像会自动排除其元数据。",
"metadata_info_original": "分享原件将自动包含其元数据。",
"exif_data": "Exif 数据",
"content_credentials_info": "该媒体可提供来源或历史信息以供验证。",
"ai_used": "经过 AI 修改的照片",
"screenshot_taken_on": "屏幕截图拍摄于 {date}",
"captured_with_camera": "用相机拍摄",
"old_photo": "3 个月前的照片"
},
"notification": {
"dialog": {

View file

@ -3,7 +3,6 @@
class="action-row ma-0 pa-0"
no-gutters
align-content="center"
v-on="$listeners"
>
<v-col cols="auto" class="me-2 align-self-center">
<v-icon :size="iconSize">{{ icon }}</v-icon>
@ -40,5 +39,6 @@ export default {
</script>
<style lang="scss">
@import "@/assets/css/chat.scss";
@use "vuetify/settings";
@use "@/assets/css/chat.scss" as *;
</style>

View file

@ -1,5 +1,5 @@
<template>
<div v-bind="{ ...$props, ...$attrs }" v-on="$listeners" class="messageIn">
<div v-bind="{ ...$props, ...$attrs }" class="messageIn">
<div class="load-earlier clickable" @click="loadPrevious">
<v-icon color="white" size="28">expand_less</v-icon>
</div>
@ -8,8 +8,8 @@
<div class="typing-users">
<transition-group name="list" tag="div">
<v-avatar v-for="(member) in recordingMembersExceptMe" :key="member.userId" class="typing-user" size="32" color="grey">
<img v-if="memberAvatar(member)" :src="memberAvatar(member)" />
<span v-else class="white--text headline">{{
<AuthedImage v-if="memberAvatar(member)" :src="memberAvatar(member)" />
<span v-else class="text-white headline">{{
member.name.substring(0, 1).toUpperCase()
}}</span>
</v-avatar>
@ -23,7 +23,7 @@
<v-avatar v-if="currentAudioEvent" class="avatar" ref="avatar" size="32" color="#ededed"
@click.stop="otherAvatarClicked($refs.avatar.$el)">
<img v-if="messageEventAvatar(currentAudioEvent)" :src="messageEventAvatar(currentAudioEvent)" />
<span v-else class="white--text headline">{{
<span v-else class="text-white headline">{{
eventSenderDisplayName(currentAudioEvent).substring(0, 1).toUpperCase()
}}</span>
</v-avatar>
@ -33,8 +33,8 @@
<div class="typing-users">
<transition-group name="list" tag="div">
<v-avatar v-for="reaction in reactions" :key="reaction.member.userId" class="typing-user" size="32" color="grey">
<img v-if="memberAvatar(reaction.member)" :src="memberAvatar(reaction.member)" />
<span v-else class="white--text headline">{{
<AuthedImage v-if="memberAvatar(reaction.member)" :src="memberAvatar(reaction.member)" />
<span v-else class="text-white headline">{{
reaction.member.name.substring(0, 1).toUpperCase()
}}</span>
<div class="reaction-emoji">{{ reaction.emoji }}</div>
@ -55,7 +55,7 @@
<v-btn id="btn-rewind" :disabled="!info || info.loading" @click.stop="rewind" icon>
<v-icon size="28">$vuetify.icons.rewind</v-icon>
</v-btn>
<v-progress-circular v-if="info && info.loading" :value="info.loadPercent" @click.stop="pause" size="36" width="2" style="margin:26px"></v-progress-circular>
<v-progress-circular v-if="info && info.loading" :model-value="info.loadPercent" @click.stop="pause" size="36" width="2" style="margin:26px"></v-progress-circular>
<v-btn v-else-if="info && info.playing" id="btn-pause" @click.stop="pause" icon>
<v-icon size="56">$vuetify.icons.pause_circle</v-icon>
</v-btn>
@ -69,10 +69,9 @@
<div class="load-later">
<div style="align-self: flex-end;">
<v-btn class="clap-button clickable" text elevation="0" v-blur @click.stop="clapButtonClicked()">👏</v-btn>
<v-btn :class="{'mic-button': true, 'dimmed': !canRecordAudio}" ref="mic_button" fab small elevation="0" v-blur
<v-btn class="clap-button clickable" variant="text" elevation="0" v-blur @click.stop="clapButtonClicked()">👏</v-btn>
<v-btn icon="mic" :class="{'mic-button': true, 'dimmed': !canRecordAudio}" ref="mic_button" theme="dark" size="small" elevation="0" v-blur
@click.stop="micButtonClicked()">
<v-icon color="white">mic</v-icon>
</v-btn>
</div>
<v-icon class="clickable" @click="loadNext" color="white" size="28">expand_more</v-icon>
@ -85,10 +84,14 @@
<script>
import messageMixin from "./messages/messageMixin";
import util from "../plugins/utils";
import AuthedImage from "./AuthedImage.vue";
import clapping from "@/assets/sounds/clapping.mp3";
import emitter from 'tiny-emitter/instance';
export default {
mixins: [messageMixin],
components: {},
components: { AuthedImage },
emits: ['mark-read','loadprevious','loadnext','start-recording','sendclap'],
props: {
autoplay: {
type: Boolean,
@ -129,18 +132,18 @@ export default {
};
},
mounted() {
this.$root.$on('audio-playback-started', this.audioPlaybackStarted);
this.$root.$on('audio-playback-paused', this.audioPlaybackPaused);
this.$root.$on('audio-playback-ended', this.audioPlaybackEnded);
this.$root.$on('audio-playback-reaction', this.audioPlaybackReaction);
emitter.on('audio-playback-started', this.audioPlaybackStarted);
emitter.on('audio-playback-paused', this.audioPlaybackPaused);
emitter.on('audio-playback-ended', this.audioPlaybackEnded);
emitter.on('audio-playback-reaction', this.audioPlaybackReaction);
document.body.classList.add("dark");
this.$audioPlayer.setAutoplay(false);
},
beforeDestroy() {
this.$root.$off('audio-playback-started', this.audioPlaybackStarted);
this.$root.$off('audio-playback-paused', this.audioPlaybackPaused);
this.$root.$off('audio-playback-ended', this.audioPlaybackEnded);
this.$root.$off('audio-playback-reaction', this.audioPlaybackReaction);
beforeUnmount() {
emitter.off('audio-playback-started', this.audioPlaybackStarted);
emitter.off('audio-playback-paused', this.audioPlaybackPaused);
emitter.off('audio-playback-ended', this.audioPlaybackEnded);
emitter.off('audio-playback-reaction', this.audioPlaybackReaction);
document.body.classList.remove("dark");
this.$audioPlayer.removeListener(this._uid);
this.currentAudioEvent = null;
@ -270,7 +273,7 @@ export default {
},
audioPlaybackReaction(reaction) {
// Play sound!
const audio = new Audio(require("@/assets/sounds/clapping.mp3"));
const audio = new Audio(clapping);
audio.volume = 0.6;
audio.play();
@ -407,7 +410,9 @@ export default {
40,
40,
"scale",
true
true,
false,
this.$matrix.useAuthedMedia,
);
}
return null;
@ -440,5 +445,5 @@ export default {
</script>
<style lang="scss">
@import "@/assets/css/chat.scss";
@use "@/assets/css/chat.scss" as *;
</style>

View file

@ -0,0 +1,69 @@
<template>
<img :src="imageSrc" style="width:100%;height:100%" />
</template>
<script>
import axios from 'axios';
export default {
name: "AuthedImage",
props: {
src: {
type: String,
default: function () {
return undefined;
},
},
},
unmounted() {
this.unloadSrc();
},
watch: {
src: {
immediate: true,
handler(newValue) {
this.unloadSrc();
this.loadSrc();
}
}
},
data() {
return {
imageSrc: null
}
},
methods: {
loadSrc() {
if (this.src) {
if (this.$matrix.useAuthedMedia) {
axios
.get(this.src, {
responseType: "blob", headers: {
Authorization: `Bearer ${this.$matrix.matrixClient.getAccessToken()}`,
}
})
.then((response) => {
this.imageSrc = URL.createObjectURL(response.data);
})
.catch((err) => {
console.log("Download error: ", err);
});
} else {
this.imageSrc = this.src;
}
}
},
unloadSrc() {
if (this.imageSrc && this.src != this.imageSrc) {
const url = this.imageSrc;
this.imageSrc = null;
URL.revokeObjectURL(url);
}
}
}
};
</script>
<style lang="scss">
@use "@/assets/css/chat.scss" as *;
</style>

View file

@ -18,15 +18,13 @@
:style="{ top: `${isMove ? y : calcY()}px` }"
>
<v-btn
fab
x-small
size="small"
elevation="0"
color="black"
@click.stop="onBackgroundClick"
class="bottom-sheet-close"
v-if="showCloseButton"
icon="cancel"
>
<v-icon color="white" >cancel</v-icon>
</v-btn>
<div class="bottom-sheet-handle"><div class="bottom-sheet-handle-decoration" /></div>
<div ref="sheetContent" class="sheetContent">
@ -116,7 +114,7 @@ export default {
}
});
},
beforeDestroy() {
beforeUnmount() {
this.mc.destroy();
window.onresize = null;
},
@ -163,8 +161,10 @@ export default {
</script>
<style lang="scss" scoped>
@import '~vuetify/src/styles/settings/_variables.scss';
@import '@/assets/css/variables';
@use 'vuetify/settings' as *;
@use '@/assets/css/variables' as *;
@use "sass:map";
.sheetContent {
position:absolute;
top:20px;left:0;
@ -220,12 +220,12 @@ export default {
.bottom-sheet-close {
position: absolute;
right: 0;
top: 0;
right: 4px;
top: 4px;
z-index: 1;
}
@media #{map-get($display-breakpoints, 'lg-and-up')} {
@media #{map.get($display-breakpoints, 'lg-and-up')} {
margin: 0 auto;
width: $dialog-desktop-width;
}
@ -238,7 +238,7 @@ export default {
}
.bottom-sheet-content[data-state="small"] {
@media #{map-get($display-breakpoints, 'lg-and-up')} {
@media #{map.get($display-breakpoints, 'lg-and-up')} {
top: 100px !important;
}
}

File diff suppressed because it is too large Load diff

View file

@ -6,8 +6,8 @@
class="chat-header-members text-start ma-0 pa-0"
>
<v-avatar size="48" class="clickable me-2 chat-header-avatar" color="grey" @click.stop="onAvatarClicked">
<v-img v-if="roomAvatar" :src="roomAvatar" />
<span v-else class="white--text headline">{{
<AuthedImage v-if="roomAvatar" :src="roomAvatar" />
<span v-else class="text-white headline">{{
room.name.substring(0, 1).toUpperCase()
}}</span>
</v-avatar>
@ -28,27 +28,25 @@
</div>
</div>
</div>
<div class="num-members">{{ $tc("room.members", memberCount) }}</div>
<div class="num-members">{{ $t("room.members", memberCount) }}</div>
</v-col>
<v-col cols="auto" class="text-end ma-0 pa-0 ms-1">
<v-avatar :class="{ 'avatar-32': true, 'clickable': true, 'popup-open': showProfileInfo }" size="26"
color="#e0e0e0" @click.stop="showProfileInfo = true">
<img v-if="userAvatar" :src="userAvatar" />
<span v-else class="white--text">{{ userAvatarLetter }}</span>
<AuthedImage v-if="userAvatar" :src="userAvatar" />
<span v-else class="text-white">{{ userAvatarLetter }}</span>
</v-avatar>
</v-col>
<v-col cols="auto" class="text-end ma-0 pa-0 ms-1">
<v-btn id="btn-purge-room" v-if="userCanPurgeRoom" class="mx-2 box-shadow-none" fab dark small color="red"
<v-btn id="btn-purge-room" v-if="userCanPurgeRoom" icon="$vuetify.icons.ic_moderator-delete" class="mx-2 box-shadow-none" theme="light" size="small" color="red"
@click.stop="$emit('purge')">
<v-icon light>$vuetify.icons.ic_moderator-delete</v-icon>
</v-btn>
<v-btn id="btn-leave-room" class="mx-2 box-shadow-none" fab dark small color="red" @click.stop="leaveRoom" v-else>
<v-icon color="white">$vuetify.icons.ic_member-leave</v-icon>
<v-btn id="btn-leave-room" v-else icon="$vuetify.icons.ic_member-leave" class="mx-2 box-shadow-none" theme="light" size="small" color="red" @click.stop="leaveRoom">
</v-btn>
</v-col>
<v-col cols="auto" class="text-end ma-0 pa-0 ms-1 clickable close-button more-menu-button">
<div :class="{ 'popup-open': showMoreMenu }">
<v-btn class="mx-2 box-shadow-none" fab dark small color="transparent" @click.stop="onShowMoreMenu">
<v-btn class="mx-2 box-shadow-none" icon theme="dark" size="small" color="transparent" @click.stop="onShowMoreMenu">
<v-icon size="15">$vuetify.icons.ic_more</v-icon>
</v-btn>
</div>
@ -56,7 +54,7 @@
</v-row>
<!-- "REALLY LEAVE?" dialog -->
<LeaveRoomDialog :show="showLeaveConfirmation" :room="room" @close="showLeaveConfirmation = false" />
<LeaveRoomDialog v-model="showLeaveConfirmation" :room="room" />
<!-- PROFILE INFO POPUP -->
<ProfileInfoPopup :show="showProfileInfo" @close="showProfileInfo = false" />
@ -65,8 +63,6 @@
<MoreMenuPopup :show="showMoreMenu" :menuItems="moreMenuItems" @close="showMoreMenu = false"
v-on:leave="showLeaveConfirmation = true" />
<RoomExport :room="room" v-if="downloadingChat" v-on:close="downloadingChat = false" />
</v-container>
</template>
@ -75,18 +71,18 @@ import LeaveRoomDialog from "../components/LeaveRoomDialog";
import ProfileInfoPopup from "../components/ProfileInfoPopup";
import MoreMenuPopup from "../components/MoreMenuPopup";
import profileInfoMixin from "../components/profileInfoMixin";
import RoomExport from "../components/RoomExport";
import AuthedImage from "./AuthedImage.vue";
import roomInfoMixin from "./roomInfoMixin";
export default {
name: "ChatHeader",
mixins: [profileInfoMixin, roomInfoMixin],
emits: ['download','view-room-details','header-click'],
components: {
LeaveRoomDialog,
ProfileInfoPopup,
MoreMenuPopup,
RoomExport
AuthedImage
},
data() {
return {
@ -94,7 +90,6 @@ export default {
showLeaveConfirmation: false,
showProfileInfo: false,
showMoreMenu: false,
downloadingChat: false,
showMissedItemsInfo: false,
/** Timer for showing the "missed items" hint */
@ -106,7 +101,7 @@ export default {
this.updateMemberCount();
},
destroyed() {
unmounted() {
this.$matrix.off("Room.timeline", this.onEvent);
},
@ -121,11 +116,11 @@ export default {
notificationsText() {
const invitationCount = this.$matrix.invites.length
if (invitationCount > 0) {
return this.$tc('room.invitations', invitationCount);
return this.$t('room.invitations', invitationCount);
}
const missedMessagesCount = this.$matrix.joinedRooms.reduce((value, r) => ((r.roomId !== this.$matrix.currentRoomId && r.getCanonicalAlias() !== this.$matrix.currentRoomId) ? (value + r.getUnreadNotificationCount("total")) : value), 0);
if (missedMessagesCount > 0) {
return this.$tc('room.unseen_messages', missedMessagesCount);
return this.$t('room.unseen_messages', missedMessagesCount);
}
return "";
},
@ -142,7 +137,7 @@ export default {
if (this.userCanExportChat) {
items.push({
icon: '$vuetify.icons.ic_download', text: this.$t('room_info.download_chat'), handler: () => {
this.downloadingChat = true;
this.$emit("download", { event: this.event });
}
});
}
@ -171,7 +166,9 @@ export default {
40,
40,
"scale",
true
true,
false,
this.$matrix.useAuthedMedia
);
}
}
@ -244,7 +241,7 @@ export default {
</script>
<style lang="scss">
@import "@/assets/css/chat.scss";
@use "@/assets/css/chat.scss" as *;
.popup-open {
position: relative;

View file

@ -7,7 +7,7 @@
>
<v-avatar size="48" class="clickable me-2 chat-header-avatar rounded-circle" color="grey" @click.stop="onAvatarClicked">
<v-img v-if="privatePartyAvatar(40)" :src="privatePartyAvatar(40)" />
<span v-else class="white--text headline">{{
<span v-else class="text-white headline">{{
privateParty.name.substring(0, 1).toUpperCase()
}}</span>
</v-avatar>
@ -37,28 +37,26 @@
<v-col v-if="$matrix.joinedRooms.length > 1" cols="auto" class="text-end ma-0 pa-0 ms-1">
<v-avatar :class="{ 'avatar-32': true, 'clickable': true, 'popup-open': showProfileInfo }" size="26"
color="#e0e0e0" @click.stop="showProfileInfo = true">
<img v-if="userAvatar" :src="userAvatar" />
<span v-else class="white--text">{{ userAvatarLetter }}</span>
<AuthedImage v-if="userAvatar" :src="userAvatar" />
<span v-else class="text-white">{{ userAvatarLetter }}</span>
</v-avatar>
</v-col>
<v-col cols="auto" class="text-end ma-0 pa-0 ms-1">
<v-btn id="btn-purge-room" v-if="userCanPurgeRoom" class="mx-2 box-shadow-none" fab dark small color="red"
<v-btn id="btn-purge-room" v-if="userCanPurgeRoom" icon="$vuetify.icons.ic_moderator-delete" class="mx-2 box-shadow-none" theme="light" size="small" color="red"
@click.stop="$emit('purge')">
<v-icon light>$vuetify.icons.ic_moderator-delete</v-icon>
</v-btn>
<template v-else>
<v-btn v-if="$matrix.joinedRooms.length == 1" id="btn-leave-room" class="box-shadow-none leave-button" color="red" @click.stop="leaveRoom">
<v-icon color="white">$vuetify.icons.ic_member-leave</v-icon>{{ $t('room.leave') }}
<v-btn v-if="$matrix.joinedRooms.length == 1" id="btn-leave-room" class="box-shadow-none leave-button" theme="dark" color="red" @click.stop="leaveRoom">
<v-icon color="white"></v-icon>{{ $t('room.leave') }}
</v-btn>
<v-btn id="btn-leave-room" class="mx-2 box-shadow-none" fab dark small color="red" @click.stop="leaveRoom" v-else>
<v-icon color="white">$vuetify.icons.ic_member-leave</v-icon>
<v-btn v-else id="btn-leave-room" icon="$vuetify.icons.ic_member-leave" class="mx-2 box-shadow-none" theme="dark" size="small" color="red" @click.stop="leaveRoom">
</v-btn>
</template>
</v-col>
<v-col v-if="$matrix.joinedRooms.length > 1" cols="auto" class="text-end ma-0 pa-0 ms-1 clickable close-button more-menu-button">
<div :class="{ 'popup-open': showMoreMenu }">
<v-btn class="mx-2 box-shadow-none" fab dark small color="transparent" @click.stop="onShowMoreMenu">
<v-btn class="mx-2 box-shadow-none" icon theme="dark" size="small" color="transparent" @click.stop="onShowMoreMenu">
<v-icon size="15">$vuetify.icons.ic_more</v-icon>
</v-btn>
</div>
@ -66,7 +64,7 @@
</v-row>
<!-- "REALLY LEAVE?" dialog -->
<LeaveRoomDialog :show="showLeaveConfirmation" :room="room" @close="showLeaveConfirmation = false" />
<LeaveRoomDialog v-model="showLeaveConfirmation" :room="room" />
<!-- PROFILE INFO POPUP -->
<ProfileInfoPopup :show="showProfileInfo" @close="showProfileInfo = false" />
@ -75,8 +73,6 @@
<MoreMenuPopup :show="showMoreMenu" :menuItems="moreMenuItems" @close="showMoreMenu = false"
v-on:leave="showLeaveConfirmation = true" />
<RoomExport :room="room" v-if="downloadingChat" v-on:close="downloadingChat = false" />
</v-container>
</template>
@ -84,8 +80,7 @@
import LeaveRoomDialog from "../components/LeaveRoomDialog";
import ProfileInfoPopup from "../components/ProfileInfoPopup";
import MoreMenuPopup from "../components/MoreMenuPopup";
import RoomExport from "../components/RoomExport";
import AuthedImage from "./AuthedImage.vue";
import ChatHeader from "./ChatHeader.vue";
export default {
@ -95,14 +90,14 @@ export default {
LeaveRoomDialog,
ProfileInfoPopup,
MoreMenuPopup,
RoomExport
AuthedImage
},
};
</script>
<style lang="scss">
@import "@/assets/css/chat.scss";
@use "@/assets/css/chat.scss" as *;
.popup-open {
position: relative;

View file

@ -0,0 +1,37 @@
<template>
<v-dialog
v-bind="{ ...$props }"
class="ma-0 pa-0"
:width="$vuetify.display.smAndUp ? '688px' : '95%'"
scroll-strategy="none"
@click:outside="$emit('update:modelValue', false)"
>
<v-card>
<v-card-text class="pa-4 black--text">{{ message }}</v-card-text>
<v-card-actions class="pt-3">
<v-spacer></v-spacer>
<v-btn variant="flat" class="text-button" @click.stop="$emit('update:modelValue', false)">{{ $t("menu.cancel") }}</v-btn>
<v-btn variant="flat" class="text-button" @click.stop="onOkButton">{{ $t("menu.ok") }}</v-btn>
</v-card-actions>
</v-card>
</v-dialog>
</template>
<script>
export default {
name: "ConfirmationDialog",
props: ["modelValue"],
emits: ["update:modelValue", "ok"],
props: {
message: {
type: String,
default: "?",
},
},
methods: {
onOkButton() {
this.$emit("ok");
this.$emit("update:modelValue", false);
},
},
};
</script>

View file

@ -1,10 +1,10 @@
<template>
<div>
<v-expand-transition>
<v-card class="ma-3" v-show="locationLink" flat>
<v-card class="ma-3" v-show="locationLink" variant="flat">
<v-container>
<slot/>
<v-row cols="12" class="qr-container ma-3">
<v-row cols="12" class="qr-container mt-3 ml-3 mr-3">
<v-col cols="auto">
<canvas
v-longTap:250="[
@ -23,12 +23,31 @@
<div class="link">{{ locationLink }}</div>
</v-col>
</v-row>
<v-row align="center" class="mt-0 pt-0">
<v-row v-if="mirrors.length > 0" justify="end" class="mt-3">
<v-col cols="auto">
<v-select
:items="mirrors"
v-model="currentMirror"
:menu-props="{ auto: true }"
hide-details
single-line
density="compact"
bg-color="transparent"
variant="solo"
flat
>
<template v-slot:selection>
<span style="font-size: 0.8rem">Use a mirror</span>
</template>
</v-select>
</v-col>
</v-row>
<v-row align="center" class="mt-3 pt-0">
<v-col align="center" class="mt-0 pt-0">
<v-btn
id="btn-copy-room-link"
:color="locationLinkCopied ? '#DEE6FF' : 'black'"
depressed
variant="flat"
@click.stop="copyRoomLink"
:class="{'filled-button' : true, 'link-copied-in-place' : locationLinkCopied}"
>{{ $t(`room_info.${locationLinkCopied ? 'link_copied' : i18nCopyLinkKey}`) }}</v-btn
@ -50,6 +69,7 @@ export default {
components: {
QRCodePopup
},
emits: ['mirror-change'],
props: {
locationLink: {
type: String
@ -61,19 +81,32 @@ export default {
i18nQrPopupTitleKey: {
type: String,
default: 'room_info.scan_code'
},
allowMirrors: {
type: Boolean,
default: false
}
},
data() {
return {
locationLinkCopied: false,
showFullScreenQR: false,
currentMirror: "",
}
},
computed: {
popupTitle() {
return this.$t(this.i18nQrPopupTitleKey);
},
mirrors() {
if (this.allowMirrors) {
const m = this.$config.mirrors;
if (m && Array.isArray(m) && m.length > 0) {
return m;
}
}
return [];
}
},
methods: {
copyRoomLink() {
@ -118,6 +151,11 @@ export default {
handler() {
this.updateQRCode();
}
},
currentMirror: {
handler(newVal) {
this.$emit("mirror-change", newVal);
}
}
},
mounted() {

View file

@ -1,7 +1,7 @@
<template>
<div class="create-root fill-height">
<div class="mt-4 d-flex flex-row align-center">
<v-btn id="btn-back" text class="back-button" v-show="$navigation && $navigation.canPop()" @click.stop="goBack">
<v-btn id="btn-back" variant="text" class="back-button" v-show="$navigation && $navigation.canPop()" @click.stop="goBack">
<v-icon>arrow_back</v-icon>
</v-btn>
<YouAre class="flex-grow-1 text-end" v-if="loggedIn" />
@ -62,8 +62,9 @@ export default {
</script>
<style lang="scss">
@import "@/assets/css/typography.scss";
@import "@/assets/css/create.scss";
@use "@/assets/css/typography.scss";
@use "@/assets/css/create.scss";
@use "@/assets/css/variables" as *;
.create-title {
margin-bottom: 24 * $chat-text-size;

View file

@ -1,7 +1,7 @@
<template>
<div class="create-root fill-height">
<div class="mt-4 d-flex flex-row align-center">
<v-btn id="btn-back" text class="back-button" v-show="$navigation && $navigation.canPop()" @click.stop="goBack"
<v-btn id="btn-back" variant="text" class="back-button" v-show="$navigation && $navigation.canPop()" @click.stop="goBack"
:disabled="creatingRoom">
<v-icon>arrow_back</v-icon>
</v-btn>
@ -18,22 +18,22 @@
<v-text-field v-model="roomTopic" :label="$t('createchannel.channel_topic')"
v-bind="{ ...roomTopicInputFields }" v-on="{ ...roomTopicInputListeners }"></v-text-field>
<div class="caption-2 text-center mt-2 mb-8">{{ $t('createchannel.channel_topic_label') }}</div>
<div class="error--text" v-if="errorMessage != null">{{ this.errorMessage }}</div>
<div class="text-red" v-if="errorMessage != null">{{ this.errorMessage }}</div>
<interactive-auth ref="interactiveAuth" />
<div class="create-buttons">
<!-- Create button -->
<v-btn :disabled="!formIsValid || creatingRoom" color="#6360F0" depressed @click.stop="handleNext"
<v-btn :disabled="!formIsValid || creatingRoom" color="#6360F0" variant="flat" @click.stop="handleNext"
class="filled-button mt-4">
<div v-if="creatingRoom" class="text-center">
{{ creatingRoomStatus }}
<v-progress-circular v-if="creatingRoom" :indeterminate="creatingRoomProgress == null"
:value="creatingRoomProgress" color="primary" width="2" size="20"></v-progress-circular>
:model-value="creatingRoomProgress" color="primary" width="2" size="20"></v-progress-circular>
</div>
<span v-else>{{ $t("getlink.next") }}</span>
</v-btn>
<v-btn v-if="!loggedIn" color="black" depressed text @click.stop="goToLoginPage" class="text-button">{{
<v-btn v-if="!loggedIn" color="black" variant="flat" @click.stop="goToLoginPage" class="text-button">{{
$t("menu.login")
}}</v-btn>
</div>
@ -98,7 +98,7 @@ export default {
generateAliasForRoom() {
return true;
},
getRoomCreationOptions() {
getRoomCreationOptions(roomVersion) {
const createRoomOptions = {
visibility: "private", // Not listed!
name: this.roomName,
@ -132,7 +132,9 @@ export default {
// Set power level event. Need to do that here, because we might not have the userId when the options object is created.
const powerLevels = {};
powerLevels[this.$matrix.currentUserId] = 100;
if (roomVersion < 12) {
powerLevels[this.$matrix.currentUserId] = 100;
}
let powerLevelContent = {
users: powerLevels,
events_default: 50,
@ -182,6 +184,6 @@ export default {
</script>
<style lang="scss">
@import "@/assets/css/typography.scss";
@import "@/assets/css/create.scss";
@use "@/assets/css/typography.scss";
@use "@/assets/css/create.scss";
</style>

View file

@ -1,7 +1,7 @@
<template>
<div class="create-root fill-height">
<div class="mt-4 d-flex flex-row align-center">
<v-btn id="btn-back" text class="back-button" v-show="$navigation && $navigation.canPop()" @click.stop="goBack"
<v-btn id="btn-back" variant="text" class="back-button" v-show="$navigation && $navigation.canPop()" @click.stop="goBack"
:disabled="creatingRoom">
<v-icon>arrow_back</v-icon>
</v-btn>
@ -16,22 +16,22 @@
<v-text-field v-model="roomName" :label="$t('createfiledrop.filedrop_name')"
v-bind="{ ...roomNameInputFields }" v-on="{ ...roomNameInputListeners }"></v-text-field>
<div class="error--text" v-if="errorMessage != null">{{ this.errorMessage }}</div>
<div class="text-red" v-if="errorMessage != null">{{ this.errorMessage }}</div>
<interactive-auth ref="interactiveAuth" />
<div class="create-buttons">
<!-- Create button -->
<v-btn :disabled="!formIsValid || creatingRoom" color="#6360F0" depressed @click.stop="handleNext"
<v-btn :disabled="!formIsValid || creatingRoom" color="#6360F0" variant="flat" @click.stop="handleNext"
class="filled-button mt-4">
<div v-if="creatingRoom" class="text-center">
{{ creatingRoomStatus }}
<v-progress-circular v-if="creatingRoom" :indeterminate="creatingRoomProgress == null"
:value="creatingRoomProgress" color="primary" width="2" size="20"></v-progress-circular>
:model-value="creatingRoomProgress" color="primary" width="2" size="20"></v-progress-circular>
</div>
<span v-else>{{ $t("getlink.next") }}</span>
</v-btn>
<v-btn v-if="!loggedIn" color="black" depressed text @click.stop="goToLoginPage" class="text-button">{{
<v-btn v-if="!loggedIn" color="black" variant="flat" @click.stop="goToLoginPage" class="text-button">{{
$t("menu.login")
}}</v-btn>
</div>
@ -95,7 +95,7 @@ export default {
generateAliasForRoom() {
return true;
},
getRoomCreationOptions() {
getRoomCreationOptions(roomVersion) {
const createRoomOptions = {
visibility: "private", // Not listed!
name: this.roomName,
@ -142,7 +142,9 @@ export default {
// Set power level event. Need to do that here, because we might not have the userId when the options object is created.
const powerLevels = {};
powerLevels[this.$matrix.currentUserId] = 100;
if (roomVersion < 12) {
powerLevels[this.$matrix.currentUserId] = 100;
}
let powerLevelContent = {
users: powerLevels,
events_default: 0,
@ -190,6 +192,6 @@ export default {
</script>
<style lang="scss">
@import "@/assets/css/typography.scss";
@import "@/assets/css/create.scss";
@use "@/assets/css/typography.scss";
@use "@/assets/css/create.scss";
</style>

View file

@ -1,16 +1,15 @@
<template>
<v-dialog
<RoundedDialog
v-model="showDialog"
v-show="room"
scrollable
class="ma-0 pa-0"
:width="$vuetify.breakpoint.smAndUp ? '940px' : '95%'"
:width="$vuetify.display.smAndUp ? '940px' : '95%'"
>
<v-card>
<v-card-title>
<v-container fluid>
<div class="room-name no-upper">{{ $t("poll_create.title") }}</div>
<v-btn id="btn-close" text class="header-button-right" @click.stop="showDialog = false">
<v-btn id="btn-close" icon class="header-button-right" @click.stop="showDialog = false">
<v-icon>close</v-icon>
</v-btn>
</v-container>
@ -52,7 +51,7 @@
:class="{ deletable: pollAnswers.length > 1 }"
ref="answerInput"
>
<v-btn v-if="pollAnswers.length > 1" icon @click="removeAnswer(index)"><v-icon>delete</v-icon></v-btn>
<v-btn v-if="pollAnswers.length > 1" color="transparent" icon="delete" @click="removeAnswer(index)"></v-btn>
</InputControl>
</v-col>
</v-row>
@ -60,7 +59,7 @@
<v-row cols="12" no-gutters class="ma-0 pa-0">
<v-col class="ma-0 pa-0">
<div :class="{'add-answer-button':true, 'clickable': true, 'hidden': addingAnswer}" @click.stop="addAnswer">
<img src="@/assets/icons/ic_add.svg" />
<v-icon>$vuetify.icons.ic_add</v-icon>
</div>
</v-col>
</v-row>
@ -68,7 +67,7 @@
<v-col cols="auto">
<v-btn
id="btn-create-poll"
depressed
variant="flat"
block
class="filled-button publish-button"
@click.stop="onCreatePoll()"
@ -98,37 +97,22 @@
</v-container>
</v-card-actions>
</v-card>
</v-dialog>
</RoundedDialog>
</template>
<script>
import roomInfoMixin from "./roomInfoMixin";
import util from "../plugins/utils";
import InputControl from "./InputControl.vue";
import RoomDialogBase from "./RoomDialogBase.vue";
import RoundedDialog from "./RoundedDialog.vue";
export default {
name: "CreatePollDialog",
mixins: [roomInfoMixin],
props: {
show: {
type: Boolean,
default: function() {
return false;
},
},
},
extends: RoomDialogBase,
data() {
return this.defaultData();
},
watch: {
show: {
handler(newVal, ignoredOldVal) {
this.showDialog = newVal;
},
},
showDialog() {
if (!this.showDialog) {
this.$emit("close");
} else {
methods: {
onOpenDialog() {
// Reset values
let defaults = this.defaultData();
this.isValid = defaults.isValid;
@ -142,13 +126,9 @@ export default {
if (this.$refs.pollcreateform) {
this.$refs.pollcreateform.resetValidation();
}
}
},
},
methods: {
defaultData() {
return {
showDialog: false,
isValid: true,
isCreating: false,
status: String.fromCharCode(160),
@ -213,11 +193,11 @@ export default {
return this.pollQuestion && this.pollAnswers.length > 0 && this.pollAnswers.every(a => a.text);
}
},
components: { InputControl },
components: { InputControl, RoundedDialog },
};
</script>
<style lang="scss">
@import "@/assets/css/chat.scss";
@import "@/assets/css/components/poll.scss";
@use "@/assets/css/chat.scss" as *;
@use "@/assets/css/components/poll.scss";
</style>

View file

@ -1,7 +1,7 @@
<template>
<div class="create-root fill-height">
<div class="mt-4 d-flex flex-row align-center">
<v-btn id="btn-back" text class="back-button" v-show="$navigation && $navigation.canPop()" @click.stop="goBack"
<v-btn id="btn-back" variant="text" class="back-button" v-show="$navigation && $navigation.canPop()" @click.stop="goBack"
:disabled="creatingRoom">
<v-icon>arrow_back</v-icon>
</v-btn>
@ -18,7 +18,7 @@
v-on="{ ...roomTopicInputListeners }"></v-text-field>
<!-- Message History (public room) -->
<v-card class="ma-0 mt-10" flat>
<v-card class="ma-0 mt-10" variant="flat">
<v-card-text class="with-right-label">
<div>
<div class="paragraph-bold">{{ $t('room_info.message_history') }}</div>
@ -33,7 +33,7 @@
<hr color="#ededed" />
<!-- Limit History (message retention) -->
<v-card class="ma-0 mt-2" flat>
<v-card class="ma-0 mt-2" variant="flat">
<v-card-text class="with-right-label">
<div>
<div class="paragraph-bold">{{ $t('room_info.message_retention') }}</div>
@ -48,15 +48,15 @@
</v-card>
<div class="error--text" v-if="errorMessage != null">{{ this.errorMessage }}</div>
<div class="text-red" v-if="errorMessage != null">{{ this.errorMessage }}</div>
<!-- Create button -->
<v-btn :disabled="!formIsValid || creatingRoom" color="#6360F0" depressed @click.stop="onCreate"
<v-btn :disabled="!formIsValid || creatingRoom" color="#6360F0" variant="flat" @click.stop="onCreate"
class="filled-button mt-4">
<div v-if="creatingRoom && !enterRoomDialog" class="text-center">
{{ creatingRoomStatus }}
<v-progress-circular v-if="creatingRoom" :indeterminate="creatingRoomProgress == null"
:value="creatingRoomProgress" color="primary" width="2" size="20"></v-progress-circular>
:model-value="creatingRoomProgress" color="primary" width="2" size="20"></v-progress-circular>
</div>
<span v-else>{{ $t("getlink.next") }}</span>
</v-btn>
@ -70,24 +70,45 @@
<input id="user-avatar-picker" ref="useravatar" type="file" name="user-avatar"
@change="handlePickedUserAvatar($event)" accept="image/*" class="d-none" />
<v-dialog v-model="enterRoomDialog" :width="$vuetify.breakpoint.smAndUp ? '50%' : '90%'">
<v-dialog v-model="enterRoomDialog" :width="$vuetify.display.smAndUp ? '50%' : '90%'">
<v-card>
<v-container v-if="canEditProfile" class="pa-10">
<v-row class="align-center">
<v-col class="py-0">
<div class="text-start font-weight-bold">{{ $t("join.choose_name") }}</div>
<v-select ref="avatar" :items="availableAvatars" cache-items outlined dense @change="selectAvatar"
:value="selectedProfile">
<v-select ref="avatar"
:items="availableAvatars"
variant="outlined"
density="compact"
@update:modelValue="selectAvatar"
:modelValue="selectedProfile"
item-props
item-value="id"
return-object
single-line
class="avatar-select-control"
>
<template v-slot:selection>
<v-text-field background-color="transparent" solo flat hide-details
@click.native.stop="(event) => event.target.focus()" @focus="$event.target.select()"
<v-text-field
background-color="transparent"
variant="solo"
flat
density="compact"
hide-details
@keydown="$event.stopPropagation()"
@keypress="$event.stopPropagation()"
@keyup="$event.stopPropagation()"
@click.stop="(event) => event.target.focus()" @focus="$event.target.select()"
v-model="selectedProfile.name"></v-text-field>
</template>
<template v-slot:item="data">
<v-avatar size="32">
<v-img :src="data.item.image" />
</v-avatar>
<div class="ms-2">{{ data.item.name }}</div>
<template v-slot:item="{ props }">
<v-list-item v-bind="props">
<template v-slot:prepend>
<v-avatar size="32">
<v-img :src="props.image" />
</v-avatar>
</template>
</v-list-item>
</template>
</v-select>
</v-col>
@ -99,24 +120,24 @@
</v-row>
<v-row class="mt-0">
<v-col class="py-0">
<v-checkbox id="chk-remember-me" class="mt-0" v-model="rememberMe" @change="onRememberMe"
<v-checkbox id="chk-remember-me" class="mt-0" v-model="rememberMe"
:label="$t('join.remember_me')" />
</v-col>
</v-row>
<v-row class="mt-0">
<v-col class="py-0">
<v-checkbox id="chk-accept-ua" class="mt-0" v-model="acceptUA">
<template slot="label">
<i18n path="join.accept_ua" tag="span">
<template v-slot:label>
<i18n-t keypath="join.accept_ua" tag="span">
<template v-slot:agreement>
<a href="./ua.html" target="_blank" @click.stop>{{ $t("join.ua") }}</a>
</template>
</i18n>
</i18n-t>
</template>
</v-checkbox>
</v-col>
</v-row>
<v-btn color="black" depressed class="filled-button" @click.stop="onEnterRoom"
<v-btn color="black" variant="flat" class="filled-button" @click.stop="onEnterRoom"
:disabled="!acceptUA || !selectedProfile.name">
{{ $t("join.enter_room") }}
</v-btn>
@ -124,8 +145,10 @@
</v-card>
</v-dialog>
<MessageRetentionDialog :initialValue="limitHistoryMilliseconds" :show="selectRetentionDialog"
v-on:close="selectRetentionDialog = false" v-on:message-retention-update="onUpdateHistoryLimit" />
<MessageRetentionDialog
v-model="selectRetentionDialog"
:initialValue="limitHistoryMilliseconds"
v-on:message-retention-update="onUpdateHistoryLimit" />
</div>
</template>
@ -149,7 +172,8 @@ export default {
selectedProfile: {
id: "",
image: "",
name: ""
name: "",
title: "",
},
enterRoomDialog: false,
selectRetentionDialog: false,
@ -253,7 +277,7 @@ export default {
generateAliasForRoom() {
return this.publicRoom;
},
getRoomCreationOptions() {
getRoomCreationOptions(roomVersion) {
var createRoomOptions = {};
if (this.publicRoom) {
createRoomOptions = {
@ -318,7 +342,9 @@ export default {
// Set power level event. Need to do that here, because we might not have the userId when the options object is created.
const powerLevels = {};
powerLevels[this.$matrix.currentUserId] = 100;
if (roomVersion < 12) {
powerLevels[this.$matrix.currentUserId] = 100;
}
let powerLevelContent = {
users: powerLevels,
events_default: 0
@ -333,6 +359,7 @@ export default {
},
selectAvatar(value) {
console.log("SELECT AVATAR", value);
this.selectedProfile = Object.assign({}, value); // Make a copy, so editing does not destroy data
},
@ -369,5 +396,9 @@ export default {
</script>
<style lang="scss">
@import "@/assets/css/create.scss";
@use "@/assets/css/create.scss";
.avatar-select-control .v-select__selection {
flex-basis: 100%;
}
</style>

View file

@ -1,27 +1,26 @@
<template>
<v-list dense @click.native.stop="nullEvent">
<v-list-item-group color="primary">
<v-list density="compact" @click.stop="nullEvent" color="primary">
<v-list-item
v-for="device in devices"
:key="device.deviceId"
:value="device.deviceId"
>
<template v-slot:default="{ active }">
<v-list-item-content>
<template v-slot:default>
<v-list-item-title>{{ displayName(device) }}</v-list-item-title>
<v-list-item-subtitle>{{
verificationStatus(device)
}}</v-list-item-subtitle>
</v-list-item-content>
<v-list-item-action v-if="active">
</template>
<template v-slot:append="{ isActive }">
<v-list-item-action v-if="isActive">
<v-btn icon>
<v-icon
:color="
device.isBlocked()
device.isBlocked
? 'red'
: device.isVerified()
: device.isVerified
? 'green'
: 'grey lighten-1'
: 'grey-lighten-1'
"
>verified_user</v-icon
>
@ -29,11 +28,12 @@
</v-list-item-action>
</template>
</v-list-item>
</v-list-item-group>
</v-list>
</template>
<script>
import { DeviceVerification } from 'matrix-js-sdk';
export default {
name: "DeviceList",
props: {
@ -55,7 +55,7 @@ export default {
handler(member, ignoredOldVal) {
this.updateDevices();
if (member) {
this.$matrix.matrixClient.downloadKeys([member.userId]).then(() => {
this.$matrix.matrixClient.downloadKeysForUsers([member.userId]).then(() => {
this.updateDevices();
});
}
@ -68,23 +68,36 @@ export default {
this.devices = [];
return;
}
this.devices = this.$matrix.matrixClient.getStoredDevicesForUser(
this.member.userId
);
this.$matrix.matrixClient.getCrypto().getUserDeviceInfo(
[this.member.userId], true
).then(deviceMap => {
if (deviceMap && deviceMap.get(this.member.userId)) {
const userDevices = deviceMap.get(this.member.userId);
const devices = [...userDevices.keys()].map(k => {
return userDevices.get(k);
}).map(d => ({
deviceId: d.deviceId,
displayName: d.displayName,
isBlocked: d.verified == DeviceVerification.Blocked,
isVerified: d.verified == DeviceVerification.Verified
}));
this.devices = devices;
}
})
},
displayName(device) {
var name = device.deviceId;
if (device.getDisplayName()) {
name += " - " + device.getDisplayName();
if (device.displayName) {
name += " - " + device.displayName;
}
return name;
},
verificationStatus(device) {
if (device.isBlocked()) {
if (device.isBlocked) {
return this.$t('device_list.blocked');
} else if (device.isVerified()) {
} else if (device.isVerified) {
return this.$t('device_list.verified');
} else {
return this.$t('device_list.not_verified');

View file

@ -7,20 +7,20 @@
<div color="rgba(255,255,255,0.1)" class="text-center">
<v-form v-model="isValid" ref="form">
<v-text-field v-model="user.user_id" :label="$t('getlink.username')" color="black" background-color="white"
solo :rules="[(v) => !!v || $t('login.username_required')]" :error="userErrorMessage != null"
variant="solo" :rules="[(v) => !!v || $t('login.username_required')]" :error="userErrorMessage != null"
:error-messages="userErrorMessage" required v-on:keyup.enter="onUsernameEnter"
v-on:keydown="hasError = false"></v-text-field>
<!-- <div class="error--text" v-if="loadingLoginFlows">Loading login flows...</div> -->
<!-- <div class="text-red" v-if="loadingLoginFlows">Loading login flows...</div> -->
<div class="error--text" v-if="hasError">{{ this.message }}</div>
<div class="text-red" v-if="hasError">{{ this.message }}</div>
<interactive-auth ref="interactiveAuth" />
<div class="create-buttons">
<v-btn id="btn-login" :disabled="!isValid || loading" color="primary" depressed block
<v-btn id="btn-login" :disabled="!isValid || loading" color="primary" variant="flat" block
@click.stop="handleLogin" :loading="loading" class="filled-button mt-4">{{ $t("getlink.next") }}</v-btn>
<v-btn color="black" depressed text block @click.stop="goToLoginPage" class="text-button">{{
<v-btn color="black" variant="flat" block @click.stop="goToLoginPage" class="text-button">{{
$t("menu.login")
}}</v-btn>
</div>
@ -36,14 +36,14 @@
<template v-slot:share>
<div v-if="shareSupported" class="clickable create-share" @click="shareLink">
<div>{{ $t("getlink.share_qr") }}</div>
<v-img src="@/assets/icons/ic_share.svg" />
<v-icon>$vuetify.icons.ic_share</v-icon>
</div>
</template>
</copy-link>
<div class="create-buttons">
<v-btn color="black" style="color:black;background-color:white !important;" depressed @click.stop="goHome"
<v-btn color="black" style="color:black;background-color:white !important;" variant="flat" @click.stop="goHome"
class="outlined-button">{{ $t("getlink.continue") }}</v-btn>
<v-btn color="black" depressed text block @click.stop="getDifferentLink" class="text-button">{{
<v-btn color="black" variant="flat" block @click.stop="getDifferentLink" class="text-button">{{
$t("getlink.different_link") }}</v-btn>
</div>
</div>
@ -248,6 +248,6 @@ export default {
</script>
<style lang="scss">
@import "@/assets/css/typography.scss";
@import "@/assets/css/create.scss";
@use "@/assets/css/typography.scss";
@use "@/assets/css/create.scss";
</style>

View file

@ -12,7 +12,7 @@
</v-row>
</v-container>
<v-card class="members ma-3" flat>
<v-card class="members ma-3" variant="flat">
<v-card-title class="h2">{{ $t("room.room_list_rooms") }}</v-card-title>
<v-card-text class="pa-0">
<RoomList
@ -26,9 +26,8 @@
<!-- Loading indicator -->
<v-container
fluid
fill-height
v-if="loading"
class="loading-indicator"
class="loading-indicator transparent fill-height"
>
<v-row align="center" justify="center">
<v-col class="text-center">
@ -43,7 +42,7 @@
</template>
<script>
import RoomList from "../components/RoomList";
import RoomList from "../components/RoomList.vue";
import YouAre from "../components/YouAre.vue";
import logoMixin from "../components/logoMixin";
export default {

View file

@ -0,0 +1,46 @@
<template>
<v-img class="image-with-progress" v-bind="{...$props, ...$attrs}">
<LoadProgress class="image-with-progress__progress" v-if="loadingProgress != undefined && loadingProgress >= 0 && loadingProgress < 100" :percentage="loadingProgress" />
</v-img>
</template>
<script>
import User from "../models/user";
import util from "../plugins/utils";
import rememberMeMixin from "./rememberMeMixin";
import * as sdk from "matrix-js-sdk";
import logoMixin from "./logoMixin";
import LoadProgress from "./LoadProgress.vue";
import { VImg } from "vuetify/components/VImg";
export default {
name: "ImageWithProgress",
extends: VImg,
components: { LoadProgress },
props: {
loadingProgress: {
type: Number,
default: function () {
return -1;
},
},
},
data() {
return {};
},
};
</script>
<style lang="scss">
.image-with-progress {
position: relative;
.image-with-progress__progress {
position: absolute;
top: 4px;
right: 4px;
color: white;
width: 32px;
height: 32px;
}
}
</style>

View file

@ -23,6 +23,7 @@ export default {
prop: "modelValue",
event: "update:modelValue",
},
emits: ['update:modelValue'],
props: {
label: {
type: String,
@ -64,7 +65,7 @@ export default {
</script>
<style lang="scss">
@import "@/assets/css/chat.scss";
@use "@/assets/css/chat.scss" as *;
.input-field {
width: 100%;

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