Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
253e3eb855 | ||
|
|
54dd5a4edb | ||
|
|
0bd22bee13 | ||
|
|
6703614c78 | ||
|
|
32923a1c34 | ||
|
|
1dc0f9288a | ||
|
|
2e62f103f2 | ||
|
|
d0e9aea788 | ||
|
|
e12a75e431 | ||
|
|
5ece37fffe | ||
|
|
e6f228b63e | ||
|
|
5018df11f1 | ||
|
|
5f6667debf | ||
|
|
5b1d5d0326 | ||
|
|
012e933e43 | ||
|
|
825db633a0 | ||
|
|
4dfe40333e | ||
|
|
a34c35fbe3 | ||
|
|
8b4beccf82 | ||
|
|
d067fe776d | ||
|
|
9fad8a1098 | ||
|
|
8a1b749667 | ||
|
|
7b67e4a6e6 | ||
|
|
824a7f2095 | ||
|
|
b4d4cefe23 | ||
|
|
bdb94d7145 |
No files matched your search
@@ -1,2 +0,0 @@
|
||||
node_modules/
|
||||
.git/
|
||||
@@ -1,2 +1,5 @@
|
||||
webpack.common.js
|
||||
webpack.dev.js
|
||||
webpack.prod.js
|
||||
experiment
|
||||
node_modules
|
||||
@@ -4,56 +4,21 @@ module.exports = {
|
||||
es2021: true,
|
||||
},
|
||||
extends: [
|
||||
"eslint:recommended",
|
||||
"plugin:react/recommended",
|
||||
"plugin:react-hooks/recommended",
|
||||
"plugin:@typescript-eslint/eslint-recommended",
|
||||
"plugin:@typescript-eslint/recommended",
|
||||
'plugin:react/recommended',
|
||||
'airbnb',
|
||||
'prettier',
|
||||
],
|
||||
parser: "@typescript-eslint/parser",
|
||||
parserOptions: {
|
||||
ecmaFeatures: {
|
||||
jsx: true,
|
||||
},
|
||||
ecmaVersion: 'latest',
|
||||
ecmaVersion: 12,
|
||||
sourceType: 'module',
|
||||
},
|
||||
plugins: [
|
||||
'react',
|
||||
'@typescript-eslint'
|
||||
],
|
||||
rules: {
|
||||
'linebreak-style': 0,
|
||||
'no-underscore-dangle': 0,
|
||||
|
||||
"import/prefer-default-export": "off",
|
||||
"import/extensions": "off",
|
||||
"import/no-unresolved": "off",
|
||||
"import/no-extraneous-dependencies": [
|
||||
"error",
|
||||
{
|
||||
devDependencies: true,
|
||||
},
|
||||
],
|
||||
|
||||
'react/no-unstable-nested-components': [
|
||||
'error',
|
||||
{ allowAsProps: true },
|
||||
],
|
||||
"react/jsx-filename-extension": [
|
||||
"error",
|
||||
{
|
||||
extensions: [".tsx", ".jsx"],
|
||||
},
|
||||
],
|
||||
|
||||
"react/require-default-props": "off",
|
||||
"react/jsx-props-no-spreading": "off",
|
||||
"react-hooks/rules-of-hooks": "error",
|
||||
"react-hooks/exhaustive-deps": "error",
|
||||
|
||||
"@typescript-eslint/no-unused-vars": "error",
|
||||
},
|
||||
};
|
||||
@@ -1 +1,2 @@
|
||||
github: true-og
|
||||
open_collective: cinny
|
||||
liberapay: ajbura
|
||||
@@ -0,0 +1,32 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
#### Describe the bug
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
#### To Reproduce
|
||||
Steps to reproduce the behavior:
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
#### Expected behavior
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
#### Screenshots
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
#### Desktop (please complete the following information):
|
||||
- OS: [e.g. Windows, MacOS]
|
||||
- Browser: [e.g. chrome, firefox]
|
||||
- Version: [e.g. 3.22]
|
||||
|
||||
#### Additional context
|
||||
Add any other context about the problem here.
|
||||
@@ -1,57 +0,0 @@
|
||||
name: 🐞 Bug Report
|
||||
description: Report a bug
|
||||
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
## First of all
|
||||
1. Please search for [existing issues](https://github.com/NotAlexNoyle/Versi/issues?q=is%3Aissue) about the problem first.
|
||||
2. Make sure Versi is up to date.
|
||||
3. Make sure it's an issue with Versi and not something else you are using.
|
||||
4. Remember to be friendly.
|
||||
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Describe the bug
|
||||
description: A clear description of what the bug is. Include screenshots if applicable.
|
||||
placeholder: Bug description
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: reproduction
|
||||
attributes:
|
||||
label: Reproduction
|
||||
description: Steps to reproduce the behavior.
|
||||
placeholder: |
|
||||
1. Go to ...
|
||||
2. Click on ...
|
||||
3. See error
|
||||
|
||||
- type: textarea
|
||||
id: expected-behavior
|
||||
attributes:
|
||||
label: Expected behavior
|
||||
description: A clear description of what you expected to happen.
|
||||
|
||||
- type: textarea
|
||||
id: info
|
||||
attributes:
|
||||
label: Platform and versions
|
||||
description: "Provide OS, browser and Versi version with your Homeserver."
|
||||
placeholder: |
|
||||
1. OS: [e.g. Binbows 10, MacOS]
|
||||
2. Browser: [e.g. pale moon 33, waterfox 105]
|
||||
3. Versi version: [e.g. 1.8.1]
|
||||
4. Matrix homeserver: [e.g. chat.true-og.net]
|
||||
render: shell
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: context
|
||||
attributes:
|
||||
label: Additional context
|
||||
description: Add any other context about the problem here.
|
||||
@@ -1,4 +0,0 @@
|
||||
contact_links:
|
||||
- name: 💬 Matrix Chat
|
||||
url: https://chat.true-og.net/
|
||||
about: Ask questions and talk to other Versi users and the maintainers
|
||||
@@ -0,0 +1,20 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
#### Is your feature request related to a problem? Please describe.
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
#### Describe the solution you'd like
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
#### Describe alternatives you've considered
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
#### Additional context
|
||||
Add any other context or screenshots about the feature request here.
|
||||
@@ -1,33 +0,0 @@
|
||||
name: 💡 Feature Request
|
||||
description: Suggest an idea
|
||||
|
||||
body:
|
||||
- type: textarea
|
||||
id: problem
|
||||
attributes:
|
||||
label: Describe the problem
|
||||
description: A clear description of the problem this feature would solve
|
||||
placeholder: "I'm always frustrated when..."
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: solution
|
||||
attributes:
|
||||
label: "Describe the solution you'd like"
|
||||
description: A clear description of what change you would like
|
||||
placeholder: "I would like to..."
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: alternatives
|
||||
attributes:
|
||||
label: Alternatives considered
|
||||
description: "Any alternative solutions you've considered"
|
||||
|
||||
- type: textarea
|
||||
id: context
|
||||
attributes:
|
||||
label: Additional context
|
||||
description: Add any other context about the problem here.
|
||||
@@ -1,11 +1,15 @@
|
||||
<!-- Please read https://github.com/ajbura/cinny/CONTRIBUTING.md before submitting your pull request -->
|
||||
|
||||
### Description
|
||||
<!-- Please include a summary of the change. Please also include relevant motivation and context. List any dependencies that are required for this change. -->
|
||||
|
||||
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
|
||||
|
||||
Fixes #
|
||||
Fixes # (issue)
|
||||
|
||||
#### Type of change
|
||||
|
||||
Please delete options that are not relevant.
|
||||
|
||||
- [ ] Bug fix (non-breaking change which fixes an issue)
|
||||
- [ ] New feature (non-breaking change which adds functionality)
|
||||
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
# Reporting a Vulnerability
|
||||
|
||||
**If you've found a security vulnerability, please report it to admin@true-og.net**
|
||||
**If you've found a security vulnerability, please report it to cinnyapp@gmail.com**
|
||||
@@ -1,30 +0,0 @@
|
||||
# Docs: <https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/customizing-dependency-updates>
|
||||
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: npm
|
||||
directory: /
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: "tuesday"
|
||||
time: "01:00"
|
||||
timezone: "Asia/Kolkata"
|
||||
open-pull-requests-limit: 15
|
||||
|
||||
- package-ecosystem: github-actions
|
||||
directory: /
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: "tuesday"
|
||||
time: "01:00"
|
||||
timezone: "Asia/Kolkata"
|
||||
open-pull-requests-limit: 5
|
||||
|
||||
- package-ecosystem: docker
|
||||
directory: /
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: "tuesday"
|
||||
time: "01:00"
|
||||
timezone: "Asia/Kolkata"
|
||||
open-pull-requests-limit: 5
|
||||
@@ -1,15 +0,0 @@
|
||||
{
|
||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||
"extends": [
|
||||
"config:base",
|
||||
":dependencyDashboardApproval"
|
||||
],
|
||||
"labels": [ "Dependencies" ],
|
||||
"packageRules": [
|
||||
{
|
||||
"matchUpdateTypes": [ "lockFileMaintenance" ]
|
||||
}
|
||||
],
|
||||
"lockFileMaintenance": { "enabled": true },
|
||||
"dependencyDashboard": true
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
name: Build pull request
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types: ['opened', 'synchronize']
|
||||
|
||||
jobs:
|
||||
build-pull-request:
|
||||
name: Build pull request
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
PR_NUMBER: ${{github.event.number}}
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3.2.0
|
||||
- name: Setup node
|
||||
uses: actions/setup-node@v3.5.1
|
||||
with:
|
||||
node-version: 18.12.1
|
||||
cache: "npm"
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
- name: Build app
|
||||
run: npm run build
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v3.1.1
|
||||
with:
|
||||
name: preview
|
||||
path: dist
|
||||
retention-days: 1
|
||||
- name: Save pr number
|
||||
run: echo ${PR_NUMBER} > ./pr.txt
|
||||
- name: Upload pr number
|
||||
uses: actions/upload-artifact@v3.1.1
|
||||
with:
|
||||
name: pr
|
||||
path: ./pr.txt
|
||||
retention-days: 1
|
||||
@@ -1,56 +0,0 @@
|
||||
name: Deploy PR to Netlify
|
||||
|
||||
on:
|
||||
workflow_run:
|
||||
workflows: ["Build pull request"]
|
||||
types: [completed]
|
||||
|
||||
jobs:
|
||||
deploy-pull-request:
|
||||
name: Deploy pull request
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
if: ${{ github.event.workflow_run.conclusion == 'success' }}
|
||||
steps:
|
||||
- name: Download pr number
|
||||
uses: dawidd6/action-download-artifact@e6e25ac3a2b93187502a8be1ef9e9603afc34925
|
||||
with:
|
||||
workflow: ${{ github.event.workflow.id }}
|
||||
run_id: ${{ github.event.workflow_run.id }}
|
||||
name: pr
|
||||
- name: Output pr number
|
||||
id: pr
|
||||
run: echo "id=$(<pr.txt)" >> $GITHUB_OUTPUT
|
||||
- name: Download artifact
|
||||
uses: dawidd6/action-download-artifact@e6e25ac3a2b93187502a8be1ef9e9603afc34925
|
||||
with:
|
||||
workflow: ${{ github.event.workflow.id }}
|
||||
run_id: ${{ github.event.workflow_run.id }}
|
||||
name: preview
|
||||
path: dist
|
||||
- name: Deploy to Netlify
|
||||
id: netlify
|
||||
uses: nwtgck/actions-netlify@5da65c9f74c7961c5501a3ba329b8d0912f39c03
|
||||
with:
|
||||
publish-dir: dist
|
||||
deploy-message: "Deploy PR ${{ steps.pr.outputs.id }}"
|
||||
alias: ${{ steps.pr.outputs.id }}
|
||||
# These don't work because we're in workflow_run
|
||||
enable-pull-request-comment: false
|
||||
enable-commit-comment: false
|
||||
env:
|
||||
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
|
||||
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID_PR_CINNY }}
|
||||
timeout-minutes: 1
|
||||
- name: Comment preview on PR
|
||||
uses: thollander/actions-comment-pull-request@c22fb302208b7b170d252a61a505d2ea27245eff
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
pr_number: ${{ steps.pr.outputs.id }}
|
||||
comment_tag: ${{ steps.pr.outputs.id }}
|
||||
message: |
|
||||
Preview: ${{ steps.netlify.outputs.deploy-url }}
|
||||
⚠️ Exercise caution. Use test accounts. ⚠️
|
||||
@@ -1,19 +0,0 @@
|
||||
name: 'Docker check'
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
paths:
|
||||
- 'Dockerfile'
|
||||
- '.github/workflows/docker-pr.yml'
|
||||
|
||||
jobs:
|
||||
docker-build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3.2.0
|
||||
- name: Build Docker image
|
||||
uses: docker/build-push-action@v3.2.0
|
||||
with:
|
||||
context: .
|
||||
push: false
|
||||
@@ -0,0 +1,34 @@
|
||||
name: Publish Docker image
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
jobs:
|
||||
push_to_registry:
|
||||
name: Push Docker image to Docker Hub
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Check out the repo
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Log in to Docker Hub
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
|
||||
- name: Extract metadata (tags, labels) for Docker
|
||||
id: meta
|
||||
uses: docker/metadata-action@v3
|
||||
with:
|
||||
images: ajbura/cinny
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
context: .
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
@@ -1,26 +0,0 @@
|
||||
name: NPM Lockfile Changes
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
paths:
|
||||
- 'package-lock.json'
|
||||
|
||||
jobs:
|
||||
lockfile_changes:
|
||||
runs-on: ubuntu-latest
|
||||
# Permission overwrite is required for Dependabot PRs, see "Common issues" below.
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3.2.0
|
||||
- name: NPM Lockfile Changes
|
||||
uses: codepunkt/npm-lockfile-changes@b40543471c36394409466fdb277a73a0856d7891
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
# Optional inputs, can be deleted safely if you are happy with default values.
|
||||
collapsibleThreshold: 25
|
||||
failOnDowngrade: false
|
||||
path: package-lock.json
|
||||
updateComment: true
|
||||
@@ -0,0 +1,21 @@
|
||||
name: 'Deploy to Netlify (dev)'
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- dev
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
name: 'Deploy'
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- uses: jsmrcaga/action-netlify-deploy@master
|
||||
with:
|
||||
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
|
||||
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE2_ID }}
|
||||
BUILD_DIRECTORY: "dist"
|
||||
NETLIFY_DEPLOY_MESSAGE: "Dev deploy v${{ github.ref }}"
|
||||
NETLIFY_DEPLOY_TO_PROD: true
|
||||
@@ -1,37 +0,0 @@
|
||||
name: Deploy to Netlify (dev)
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- dev
|
||||
|
||||
jobs:
|
||||
deploy-to-netlify:
|
||||
name: Deploy to Netlify
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3.2.0
|
||||
- name: Setup node
|
||||
uses: actions/setup-node@v3.5.1
|
||||
with:
|
||||
node-version: 18.12.1
|
||||
cache: "npm"
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
- name: Build app
|
||||
run: npm run build
|
||||
- name: Deploy to Netlify
|
||||
uses: nwtgck/actions-netlify@5da65c9f74c7961c5501a3ba329b8d0912f39c03
|
||||
with:
|
||||
publish-dir: dist
|
||||
deploy-message: "Dev deploy ${{ github.sha }}"
|
||||
enable-commit-comment: false
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
production-deploy: true
|
||||
github-deployment-environment: nightly
|
||||
github-deployment-description: 'Nightly deployment on each commit to dev branch'
|
||||
env:
|
||||
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
|
||||
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID_DEV }}
|
||||
timeout-minutes: 1
|
||||
@@ -0,0 +1,20 @@
|
||||
name: 'Deploy to Netlify (prod)'
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
name: 'Deploy'
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- uses: jsmrcaga/action-netlify-deploy@master
|
||||
with:
|
||||
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
|
||||
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
|
||||
BUILD_DIRECTORY: "dist"
|
||||
NETLIFY_DEPLOY_MESSAGE: "Prod deploy v${{ github.ref }}"
|
||||
NETLIFY_DEPLOY_TO_PROD: true
|
||||
@@ -0,0 +1,30 @@
|
||||
name: 'Netlify Preview Deploy'
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
types: ['opened', 'synchronize']
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
name: "Deploy to Netlify"
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- uses: jsmrcaga/action-netlify-deploy@master
|
||||
with:
|
||||
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
|
||||
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE3_ID }}
|
||||
BUILD_DIRECTORY: "dist"
|
||||
- name: Post on PR
|
||||
uses: nwtgck/actions-netlify@v1.1
|
||||
with:
|
||||
publish-dir: "dist"
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
deploy-message: "Deploy from GitHub Actions"
|
||||
enable-pull-request-comment: true
|
||||
enable-commit-comment: false
|
||||
overwrites-pull-request-comment: true
|
||||
env:
|
||||
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
|
||||
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE3_ID }}
|
||||
@@ -4,4 +4,3 @@ node_modules
|
||||
devAssets
|
||||
|
||||
.DS_Store
|
||||
android
|
||||
@@ -1,3 +0,0 @@
|
||||
legacy-peer-deps=true
|
||||
save-exact=true
|
||||
@matrix-org:registry=https://gitlab.matrix.org/api/v4/projects/27/packages/npm/
|
||||
@@ -1,6 +0,0 @@
|
||||
dist
|
||||
node_modules
|
||||
package.json
|
||||
package-lock.json
|
||||
LICENSE
|
||||
README.md
|
||||
@@ -1,4 +0,0 @@
|
||||
{
|
||||
"printWidth": 100,
|
||||
"singleQuote": true
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"recommendations": ["dbaeumer.vscode-eslint", "esbenp.prettier-vscode"]
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"editor.formatOnSave": true,
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
||||
"typescript.tsdk": "node_modules/typescript/lib"
|
||||
}
|
||||
@@ -0,0 +1,139 @@
|
||||
<!-- omit in toc -->
|
||||
# Contributing to Cinny
|
||||
|
||||
First off, thanks for taking the time to contribute! ❤️
|
||||
|
||||
All types of contributions are encouraged and valued. See the [Table of Contents](#table-of-contents) for different ways to help and details about how this project handles them. Please make sure to read the relevant section before making your contribution. It will make it a lot easier for us maintainers and smooth out the experience for all involved. The community looks forward to your contributions. 🎉
|
||||
|
||||
> And if you like the project, but just don't have time to contribute, that's fine. There are other easy ways to support the project and show your appreciation, which we would also be very happy about:
|
||||
> - Star the project
|
||||
> - Tweet about it (tag @cinnyapp)
|
||||
> - Refer this project in your project's readme
|
||||
> - Mention the project at local meetups and tell your friends/colleagues
|
||||
> - [Donate to us](https://liberapay.com/ajbura/donate)
|
||||
|
||||
<!-- omit in toc -->
|
||||
## Table of Contents
|
||||
|
||||
- [I Have a Question](#i-have-a-question)
|
||||
- [I Want To Contribute](#i-want-to-contribute)
|
||||
- [Reporting Bugs](#reporting-bugs)
|
||||
- [Suggesting Enhancements](#suggesting-enhancements)
|
||||
- [Your First Code Contribution](#your-first-code-contribution)
|
||||
- [Styleguides](#styleguides)
|
||||
- [Commit Messages](#commit-messages)
|
||||
- [Coding conventions](#coding-conventions)
|
||||
|
||||
## I Have a Question
|
||||
|
||||
Before you ask a question, it is best to search for existing [Issues](https://github.com/ajbura/cinny/issues) that might help you. In case you have found a suitable issue and still need clarification, you can write your question in this issue.
|
||||
|
||||
If you then still feel the need to ask a question and need clarification, we recommend the following:
|
||||
|
||||
- Ask in our [Matrix room](https://matrix.to/#/#cinny:matrix.org) or [IRC channel](https://web.libera.chat/?channel=#cinny).
|
||||
- If no one respond in our channel, please open an [Issue](https://github.com/ajbura/cinny/issues/new).
|
||||
- Provide as much context as you can about what you're running into.
|
||||
- Provide project and platform versions (nodejs, npm, etc), depending on what seems relevant.
|
||||
|
||||
We will then take care of the issue as soon as possible.
|
||||
|
||||
|
||||
## I Want To Contribute
|
||||
|
||||
> ### Legal Notice <!-- omit in toc -->
|
||||
> When contributing to this project, you must agree that you have authored 100% of the content, that you have the necessary rights to the content and that the content you contribute may be provided under the project license.
|
||||
|
||||
### Reporting Bugs
|
||||
|
||||
<!-- omit in toc -->
|
||||
#### Before Submitting a Bug Report
|
||||
|
||||
A good bug report shouldn't leave others needing to chase you up for more information. Therefore, we ask you to investigate carefully, collect information and describe the issue in detail in your report. Please complete the following steps in advance to help us fix any potential bug as fast as possible.
|
||||
|
||||
- Make sure that you are using the latest version.
|
||||
- Determine if your bug is really a bug and not an error on your side. If you are looking for support, you might want to check [this section](#i-have-a-question)).
|
||||
- To see if other users have experienced (and potentially already solved) the same issue you are having, check if there is not already a bug report existing for your bug or error in the [bug tracker](https://github.com/ajbura/cinny/issues?q=label%3Abug).
|
||||
- Collect information about the bug:
|
||||
- OS, Platform and Version (Windows, Linux, macOS, x86, ARM)
|
||||
- Possibly your input and the output
|
||||
- Can you reliably reproduce the issue?
|
||||
|
||||
<!-- omit in toc -->
|
||||
#### How Do I Submit a Good Bug Report?
|
||||
|
||||
> You must never report security related issues, vulnerabilities or bugs to the issue tracker, or elsewhere in public. Instead sensitive bugs must be sent by email to <cinnyapp@gmail.com>.
|
||||
|
||||
We use GitHub issues to track bugs and errors. If you run into an issue with the project:
|
||||
|
||||
- Open an [Issue](https://github.com/ajbura/cinny/issues/new). (Since we can't be sure at this point whether it is a bug or not, we ask you not to talk about a bug yet and not to label the issue.)
|
||||
- Explain the behavior you would expect and the actual behavior.
|
||||
- Please provide as much context as possible and describe the *reproduction steps* that someone else can follow to recreate the issue on their own. For good bug reports you should isolate the problem and create a reduced test case.
|
||||
- Provide the information you collected in the previous section.
|
||||
|
||||
Once it's filed:
|
||||
|
||||
- The project team will label the issue accordingly.
|
||||
- A team member will try to reproduce the issue with your provided steps. If there are no reproduction steps or no obvious way to reproduce the issue, the team will ask you for those steps and mark the issue as `needs-repro`. Bugs with the `needs-repro` tag will not be addressed until they are reproduced.
|
||||
- If the team is able to reproduce the issue, it will be marked `needs-fix`, as well as possibly other tags (such as `critical`), and the issue will be left to be [implemented by someone](#your-first-code-contribution).
|
||||
|
||||
|
||||
### Suggesting Enhancements
|
||||
|
||||
This section guides you through submitting an enhancement suggestion for Cinny, **including completely new features and minor improvements to existing functionality**. Following these guidelines will help maintainers and the community to understand your suggestion and find related suggestions.
|
||||
|
||||
<!-- omit in toc -->
|
||||
#### Before Submitting an Enhancement
|
||||
|
||||
- Make sure that you are using the latest version.
|
||||
- Perform a [search](https://github.com/ajbura/cinny/issues) to see if the enhancement has already been suggested. If it has, add a comment to the existing issue instead of opening a new one.
|
||||
- Find out whether your idea fits with the scope and aims of the project. It's up to you to make a strong case to convince the project's developers of the merits of this feature. Keep in mind that we want features that will be useful to the majority of our users and not just a small subset.
|
||||
|
||||
<!-- omit in toc -->
|
||||
#### How Do I Submit a Good Enhancement Suggestion?
|
||||
|
||||
Enhancement suggestions are tracked as [GitHub issues](https://github.com/ajbura/cinny/issues).
|
||||
|
||||
- Use a **clear and descriptive title** for the issue to identify the suggestion.
|
||||
- Provide a **step-by-step description of the suggested enhancement** in as many details as possible.
|
||||
- **Describe the current behavior** and **explain which behavior you expected to see instead** and why. At this point you can also tell which alternatives do not work for you.
|
||||
- You may want to **include screenshots and animated GIFs** which help you demonstrate the steps or point out the part which the suggestion is related to. You can use [this tool](https://www.cockos.com/licecap/) to record GIFs on macOS and Windows, and [this tool](https://github.com/colinkeenan/silentcast) on Linux.
|
||||
- **Explain why this enhancement would be useful** to most Cinny users. You may also want to point out the other projects that solved it better and which could serve as inspiration.
|
||||
|
||||
### Your First Code Contribution
|
||||
Please send a [GitHub Pull Request to cinny](https://github.com/ajbura/cinny/pull/new/master) with a clear list of what you've done (read more about [pull requests](http://help.github.com/pull-requests/)).
|
||||
|
||||
When proposing a PR:
|
||||
|
||||
- Describe what problem it solves, what side effects come with it.
|
||||
- Adding some screenshots will help.
|
||||
- Add some documentation if relevant.
|
||||
- Add some comments around blocks/functions if relevant.
|
||||
|
||||
Some reasons why a PR could be refused:
|
||||
|
||||
- PR is not meeting one of the previous points.
|
||||
- PR is not meeting project goals.
|
||||
- PR is conflicting with another PR, and the latter is being preferred.
|
||||
- PR slows down Cinny, or it obviously does too many
|
||||
computations for the task being accomplished. It needs to be optimized.
|
||||
- PR is using copy-n-paste-programming. It needs to be factorized.
|
||||
- PR contains commented code: remove it.
|
||||
- PR adds new features or changes the behavior of Cinny without
|
||||
having be approved by the current project owners first.
|
||||
- PR is too big and needs to be splitted in many smaller ones.
|
||||
- PR contains unnecessary "space/indentations fixes".
|
||||
|
||||
If a PR stays in a stale/WIP/POC state for too long, it may be closed
|
||||
at any time.
|
||||
|
||||
|
||||
## Styleguides
|
||||
### Commit Messages
|
||||
Always write a clear log message for your commits. One-line messages are fine for small changes, but bigger changes should look like this:
|
||||
|
||||
$ git commit -m "A brief summary of the commit
|
||||
>
|
||||
> A paragraph describing what changed and its impact."
|
||||
|
||||
### Coding conventions
|
||||
We use [ESLint](https://eslint.org/) for clean and stylistically consistent code syntax.
|
||||
@@ -0,0 +1,20 @@
|
||||
## Builder
|
||||
FROM node:14-alpine as builder
|
||||
|
||||
WORKDIR /src
|
||||
|
||||
COPY . /src
|
||||
RUN npm install \
|
||||
&& npm run build
|
||||
|
||||
|
||||
## App
|
||||
FROM nginx:alpine
|
||||
|
||||
COPY --from=builder /src/dist /app
|
||||
|
||||
# Insert wasm type into Nginx mime.types file so they load correctly.
|
||||
RUN sed -i '3i\ \ \ \ application/wasm wasm\;' /etc/nginx/mime.types
|
||||
|
||||
RUN rm -rf /usr/share/nginx/html \
|
||||
&& ln -s /app /usr/share/nginx/html
|
||||
@@ -1,6 +1,6 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2021-present Ajay Bura (ajbura)
|
||||
Copyright (c) 2021 Ajay Bura (ajbura) and other contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
SOFTWARE.
|
||||
@@ -1,65 +1,60 @@
|
||||
# Versi
|
||||
<p>
|
||||
<a href="https://github.com/NotAlexNoyle/Versi/releases">Download</a> |
|
||||
<a href="https://mastodon.gamedev.place/@trueog">Mastodon</a> |
|
||||
<a href="https://store.trueog.net">Donate</a> |
|
||||
<a href="https://true-og.net">Join TrueOG Network</a>
|
||||
<br>
|
||||
<br>
|
||||
<img alt="Versi Logo" src="https://raw.githubusercontent.com/NotAlexNoyle/Versi/dev/assets/versi-logo.png"></a>
|
||||
</p>
|
||||
# Cinny
|
||||
|
||||
Versi is a liberated MIT-licensed fork of [Cinny](https://github.com/cinnyapp/cinny) 2.2.4 maintained by and for [TrueOG Network](https://true-og.net/).
|
||||
## Table of Contents
|
||||
|
||||
Versi is named for Calotes versicolor, a predator of the Cinnyris asiaticus. It also means "an account or description from a particular point of view, especially as contrasted with another account.", which calls attention to the permissive vs copyleft licensing conflict between Versi and Cinny.
|
||||
- [About](#about)
|
||||
- [Getting Started](https://cinny.in)
|
||||
- [Contributing](./CONTRIBUTING.md)
|
||||
|
||||
- [Roadmap](https://true-og.net/todo-list)
|
||||
- [Contributing](https://true-og.net/TrueOG-Contributor-Guide.pdf)
|
||||
## About <a name = "about"></a>
|
||||
|
||||
## Getting started
|
||||
Our web app is available at https://chat.true-og.net and gets updated upon each new release.
|
||||
Cinny is a [Matrix](https://matrix.org) client focusing primarily on simple, elegant and secure interface.
|
||||
|
||||
You can also download our desktop app, [Versi-Desktop](https://github.com/NotAlexNoyle/Versi-Desktop).
|
||||

|
||||
|
||||
To host Versi on your own, download tarball of the app from the latest [GitHub release](https://github.com/NotAlexNoyle/Versi/releases/latest).
|
||||
## Building and Running
|
||||
|
||||
You can serve the application with a webserver of your choice by simply copying `dist/` directory to the webroot.
|
||||
### Running pre-compiled
|
||||
|
||||
To set default Homeserver on login and register page, place a customized [`config.json`](config.json) in webroot of your choice.
|
||||
A tarball of pre-compiled version of the app is provided with each [release](https://github.com/ajbura/cinny/releases).
|
||||
You can serve the application with a webserver of your choosing by simply copying `dist/` directory to the webroot.
|
||||
|
||||
<details>
|
||||
<summary>PGP Public Key to verify tarball</summary>
|
||||
### Building from source
|
||||
|
||||
```
|
||||
TBA on first release.
|
||||
```
|
||||
</details>
|
||||
Execute the following commands to compile the app from its source code:
|
||||
|
||||
## Local development
|
||||
> We recommend using [nvm](https://github.com/nvm-sh/nvm) to create a dedicated node environment for each project you work on.
|
||||
|
||||
Execute the following commands to start a development server:
|
||||
```sh
|
||||
npm ci # Installs all dependencies
|
||||
npm start # Serve a development version
|
||||
```
|
||||
|
||||
To build Versi:
|
||||
```sh
|
||||
npm install # Installs all dependencies
|
||||
npm run build # Compiles the app into the dist/ directory
|
||||
```
|
||||
|
||||
## Changes
|
||||
- Changed branding from Cinny to Versi.
|
||||
- Updated dependencies, patched security vulnerabilities.
|
||||
- Close settings and search with escape key (credit to MyBeansAreBaked).
|
||||
You can then copy the files to a webserver's webroot of your choice.
|
||||
To serve a development version of the app locally for testing, you may also use the command `npm start`.
|
||||
|
||||
### Running with Docker
|
||||
|
||||
This repository includes a Dockerfile, which builds the application from source and serves it with Nginx on port 80. To
|
||||
use this locally, you can build the container like so:
|
||||
|
||||
```
|
||||
docker build -t cinny:latest .
|
||||
```
|
||||
|
||||
You can then run the container you've built with a command similar to this:
|
||||
|
||||
```
|
||||
docker run -p 8080:80 cinny:latest
|
||||
```
|
||||
|
||||
This will forward your `localhost` port 8080 to the container's port 80. You can visit the app in your browser by
|
||||
navigating to `http://localhost:8080`.
|
||||
|
||||
Alternatively you can just pull the [DockerHub image](https://hub.docker.com/r/ajbura/cinny) by `docker pull ajbura/cinny`.
|
||||
|
||||
## License
|
||||
|
||||
Copyright (c) 2021-present Ajay Bura (ajbura)
|
||||
Copyright (c) 2021 Ajay Bura (ajbura) and other contributors
|
||||
|
||||
Code licensed under the [MIT License](https://raw.githubusercontent.com/NotAlexNoyle/Versi/dev/LICENSE.md).
|
||||
Code licensed under the MIT License: <http://opensource.org/licenses/MIT>
|
||||
|
||||
Original graphics from [Cinny](https://github.com/cinnyapp/cinny) licensed under [CC-BY 4.0](https://creativecommons.org/licenses/by/4.0/).
|
||||
|
||||
Original graphics from [TrueOG Network](https://github.com/true-og/true-og) are released into the public domain via [The Unlicense](https://github.com/true-og/true-og/blob/main/LICENSE).
|
||||
Graphics licensed under CC-BY 4.0: <https://creativecommons.org/licenses/by/4.0/>
|
||||
|
Before Width: | Height: | Size: 9.1 KiB |
|
Before Width: | Height: | Size: 80 KiB |
@@ -1,10 +0,0 @@
|
||||
import { CapacitorConfig } from '@capacitor/cli';
|
||||
|
||||
const config: CapacitorConfig = {
|
||||
appId: 'net.trueog.versi',
|
||||
appName: 'Versi',
|
||||
webDir: 'dist',
|
||||
bundledWebRuntime: false,
|
||||
};
|
||||
|
||||
export default config;
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"defaultHomeserver": 3,
|
||||
"homeserverList": [
|
||||
"matrix.org",
|
||||
"chat.true-og.net",
|
||||
"mozilla.org"
|
||||
],
|
||||
"allowCustomHomeservers": true
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
server_name versi.domain.tld;
|
||||
server_name cinny.domain.tld;
|
||||
|
||||
location / {
|
||||
return 301 https://$host$request_uri;
|
||||
@@ -15,10 +15,10 @@ server {
|
||||
server {
|
||||
listen 443 ssl http2;
|
||||
listen [::]:443 ssl;
|
||||
server_name versi.domain.tld;
|
||||
server_name cinny.domain.tld;
|
||||
|
||||
location / {
|
||||
root /opt/versi/dist/;
|
||||
root /opt/cinny/dist/;
|
||||
index index.html;
|
||||
}
|
||||
location ~* ^\/(login|register) {
|
||||
@@ -1,101 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Versi</title>
|
||||
<meta name="name" content="Versi" />
|
||||
<meta name="author" content="TrueOG Network" />
|
||||
<meta
|
||||
name="description"
|
||||
content="A liberated MIT-licensed fork of Cinny 2.2.4 maintained by and for TrueOG Network. "
|
||||
/>
|
||||
<meta
|
||||
name="keywords"
|
||||
content="versi, versiapp, versichat, matrix, matrix client, matrix.org"
|
||||
/>
|
||||
|
||||
<meta property="og:title" content="Versi" />
|
||||
<meta property="og:url" content="https://chat.true-og.net" />
|
||||
<meta property="og:image" content="https://raw.githubusercontent.com/NotAlexNoyle/Versi/dev/assets/versi-logo.png" />
|
||||
<meta
|
||||
property="og:description"
|
||||
content="A liberated MIT-licensed fork of Cinny 2.2.4 maintained by and for TrueOG Network. "
|
||||
/>
|
||||
<meta name="theme-color" content="#000000" />
|
||||
|
||||
<link id="favicon" rel="shortcut icon" href="./public/favicon.ico" />
|
||||
|
||||
<link rel="manifest" href="./manifest.json" />
|
||||
<meta name="mobile-web-app-capable" content="yes" />
|
||||
<meta name="application-name" content="Versi" />
|
||||
<meta name="apple-mobile-web-app-title" content="Versi" />
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
|
||||
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="57x57"
|
||||
href="./public/res/apple/apple-touch-icon-57x57.png"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="60x60"
|
||||
href="./public/res/apple/apple-touch-icon-60x60.png"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="72x72"
|
||||
href="./public/res/apple/apple-touch-icon-72x72.png"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="76x76"
|
||||
href="./public/res/apple/apple-touch-icon-76x76.png"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="114x114"
|
||||
href="./public/res/apple/apple-touch-icon-114x114.png"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="120x120"
|
||||
href="./public/res/apple/apple-touch-icon-120x120.png"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="144x144"
|
||||
href="./public/res/apple/apple-touch-icon-144x144.png"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="152x152"
|
||||
href="./public/res/apple/apple-touch-icon-152x152.png"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="167x167"
|
||||
href="./public/res/apple/apple-touch-icon-167x167.png"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="180x180"
|
||||
href="./public/res/apple/apple-touch-icon-180x180.png"
|
||||
/>
|
||||
</head>
|
||||
<body id="appBody">
|
||||
<script>
|
||||
window.global ||= window;
|
||||
</script>
|
||||
<div id="root"></div>
|
||||
<audio id="notificationSound">
|
||||
<source src="./public/sound/notification.ogg" type="audio/ogg" />
|
||||
</audio>
|
||||
<audio id="inviteSound">
|
||||
<source src="./public/sound/invite.ogg" type="audio/ogg" />
|
||||
</audio>
|
||||
<script type="module" src="./src/index.jsx"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,87 +1,79 @@
|
||||
{
|
||||
"name": "versi",
|
||||
"version": 0.1,
|
||||
"description": "A liberated MIT-licensed fork of Cinny 2.2.4 maintained by and for TrueOG Network.",
|
||||
"name": "cinny",
|
||||
"version": "1.4.0",
|
||||
"description": "Yet another matrix client",
|
||||
"main": "index.js",
|
||||
"engines": {
|
||||
"node": ">=16.0.0"
|
||||
"npm": ">=6.14.11",
|
||||
"node": ">=14.6.0"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "vite",
|
||||
"build": "vite build",
|
||||
"lint": "yarn check:eslint && yarn check:prettier",
|
||||
"check:eslint": "eslint src/*",
|
||||
"check:prettier": "prettier --check .",
|
||||
"fix:prettier": "prettier --write .",
|
||||
"typecheck": "tsc --noEmit"
|
||||
"start": "webpack serve --config ./webpack.dev.js --open",
|
||||
"build": "webpack --config ./webpack.prod.js"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "TrueOG Network",
|
||||
"author": "Ajay Bura",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@capacitor/android": "4.7.1",
|
||||
"@capacitor/core": "4.7.1",
|
||||
"@fontsource/inter": "4.5.14",
|
||||
"@fontsource/roboto": "4.5.8",
|
||||
"@khanacademy/simple-markdown": "0.8.6",
|
||||
"@lzy1960/google-translate": "0.2.6",
|
||||
"@matrix-org/olm": "3.2.14",
|
||||
"@tippyjs/react": "4.2.6",
|
||||
"blurhash": "2.0.4",
|
||||
"browser-encrypt-attachment": "0.3.0",
|
||||
"dateformat": "5.0.3",
|
||||
"emojibase-data": "7.0.1",
|
||||
"file-saver": "2.0.5",
|
||||
"flux": "4.0.3",
|
||||
"formik": "2.2.9",
|
||||
"google-translate-api-browser": "5.0.0",
|
||||
"html-react-parser": "3.0.4",
|
||||
"i18next": "22.4.9",
|
||||
"i18next-browser-languagedetector": "7.0.1",
|
||||
"i18next-http-backend": "2.1.1",
|
||||
"katex": "0.16.10",
|
||||
"linkify-html": "4.0.2",
|
||||
"linkifyjs": "4.0.2",
|
||||
"matrix-js-sdk": "24.1.0",
|
||||
"prop-types": "15.8.1",
|
||||
"react": "17.0.2",
|
||||
"react-autosize-textarea": "7.1.0",
|
||||
"react-blurhash": "0.2.0",
|
||||
"react-dnd": "15.1.2",
|
||||
"react-dnd-html5-backend": "15.1.3",
|
||||
"react-dom": "17.0.2",
|
||||
"react-google-recaptcha": "2.1.0",
|
||||
"react-i18next": "12.1.5",
|
||||
"react-modal": "3.16.1",
|
||||
"sanitize-html": "2.13.0",
|
||||
"tippy.js": "6.3.7",
|
||||
"twemoji": "14.0.2"
|
||||
"@matrix-org/olm": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.4.tgz",
|
||||
"@tippyjs/react": "^4.2.5",
|
||||
"babel-polyfill": "^6.26.0",
|
||||
"browser-encrypt-attachment": "^0.3.0",
|
||||
"dateformat": "^4.5.1",
|
||||
"emojibase-data": "^6.2.0",
|
||||
"flux": "^4.0.1",
|
||||
"html-react-parser": "^1.2.7",
|
||||
"linkifyjs": "^3.0.0-beta.3",
|
||||
"matrix-js-sdk": "^12.4.1",
|
||||
"micromark": "^3.0.3",
|
||||
"micromark-extension-gfm": "^1.0.0",
|
||||
"prop-types": "^15.7.2",
|
||||
"react": "^17.0.2",
|
||||
"react-autosize-textarea": "^7.1.0",
|
||||
"react-dom": "^17.0.2",
|
||||
"react-google-recaptcha": "^2.1.0",
|
||||
"react-markdown": "^6.0.1",
|
||||
"react-modal": "^3.13.1",
|
||||
"react-router-dom": "^5.2.0",
|
||||
"react-syntax-highlighter": "^15.4.3",
|
||||
"remark-gfm": "^1.0.0",
|
||||
"tippy.js": "^6.3.1",
|
||||
"twemoji": "^13.1.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@capacitor/assets": "3.0.5",
|
||||
"@capacitor/cli": "4.8.2",
|
||||
"@esbuild-plugins/node-globals-polyfill": "0.2.3",
|
||||
"@rollup/plugin-inject": "5.0.3",
|
||||
"@rollup/plugin-wasm": "6.1.1",
|
||||
"@types/node": "18.11.18",
|
||||
"@types/react": "18.0.26",
|
||||
"@types/react-dom": "18.0.9",
|
||||
"@typescript-eslint/eslint-plugin": "5.46.1",
|
||||
"@typescript-eslint/parser": "5.46.1",
|
||||
"@vitejs/plugin-react": "3.0.0",
|
||||
"buffer": "6.0.3",
|
||||
"eslint": "8.29.0",
|
||||
"eslint-config-airbnb": "19.0.4",
|
||||
"eslint-config-prettier": "8.5.0",
|
||||
"eslint-plugin-import": "2.26.0",
|
||||
"eslint-plugin-jsx-a11y": "6.6.1",
|
||||
"eslint-plugin-react": "7.31.11",
|
||||
"eslint-plugin-react-hooks": "4.6.0",
|
||||
"mini-svg-data-uri": "1.4.4",
|
||||
"prettier": "2.8.1",
|
||||
"sass": "1.56.2",
|
||||
"typescript": "4.9.4",
|
||||
"vite": "4.5.3",
|
||||
"vite-plugin-static-copy": "0.13.0"
|
||||
"@babel/core": "^7.15.5",
|
||||
"@babel/preset-env": "^7.13.12",
|
||||
"@babel/preset-react": "^7.13.13",
|
||||
"assert": "^2.0.0",
|
||||
"babel-loader": "^8.2.2",
|
||||
"browserify-fs": "^1.0.0",
|
||||
"buffer": "^6.0.3",
|
||||
"clean-webpack-plugin": "^3.0.0",
|
||||
"copy-webpack-plugin": "^9.0.1",
|
||||
"crypto-browserify": "^3.12.0",
|
||||
"css-loader": "^5.2.0",
|
||||
"css-minimizer-webpack-plugin": "^1.3.0",
|
||||
"eslint": "^7.23.0",
|
||||
"eslint-config-airbnb": "^18.2.1",
|
||||
"eslint-plugin-import": "^2.22.1",
|
||||
"eslint-plugin-jsx-a11y": "^6.4.1",
|
||||
"eslint-plugin-react": "^7.23.1",
|
||||
"eslint-plugin-react-hooks": "^4.2.0",
|
||||
"favicons": "^6.2.1",
|
||||
"favicons-webpack-plugin": "^5.0.2",
|
||||
"file-loader": "^6.2.0",
|
||||
"html-loader": "^2.1.2",
|
||||
"html-webpack-plugin": "^5.3.1",
|
||||
"mini-css-extract-plugin": "^1.4.0",
|
||||
"path-browserify": "^1.0.1",
|
||||
"sass": "^1.32.8",
|
||||
"sass-loader": "^11.0.1",
|
||||
"stream-browserify": "^3.0.0",
|
||||
"style-loader": "^2.0.0",
|
||||
"util": "^0.12.4",
|
||||
"webpack": "^5.28.0",
|
||||
"webpack-cli": "^4.5.0",
|
||||
"webpack-dev-server": "^3.11.2",
|
||||
"webpack-merge": "^5.7.3"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 33 KiB |
@@ -0,0 +1,23 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<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 href="https://api.fontshare.com/css?f[]=supreme@300,301,400,401,500,501,700,701&display=swap" rel="stylesheet">
|
||||
<title>Cinny</title>
|
||||
<meta name="name" content="Cinny">
|
||||
<meta name="author" content="Ajay Bura">
|
||||
<meta name="description" content="A Matrix client where you can enjoy the conversation using simple, elegant and secure interface protected by e2ee with the power of open source.">
|
||||
<meta name="keywords" content="cinny, cinnyapp, cinnychat, matrix, matrix client, matrix.org, element">
|
||||
|
||||
<meta property="og:title" content="Cinny">
|
||||
<meta property="og:url" content="https://cinny.in">
|
||||
<meta property="og:image" content="https://cinny.in/assets/favicon-48x48.png">
|
||||
<meta property="og:description" content="A Matrix client where you can enjoy the conversation using simple, elegant and secure interface protected by e2ee with the power of open source.">
|
||||
<meta name="theme-color" content="#000000">
|
||||
</head>
|
||||
<body id="appBody">
|
||||
<div id="root"></div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,889 +0,0 @@
|
||||
{
|
||||
"translation": {
|
||||
"common": {
|
||||
"close": "Close",
|
||||
"open": "Open",
|
||||
"leave": "Leave",
|
||||
"options": "Options",
|
||||
versi: Versi,
|
||||
"slogan": "Yet another matrix client",
|
||||
"source_code": "Source code",
|
||||
"sponsor": "Support",
|
||||
"retry": "Retry",
|
||||
"delete": "Delete",
|
||||
"continue": "Continue",
|
||||
"cancel": "Cancel",
|
||||
"save": "Save",
|
||||
"view_more": "View more",
|
||||
"view_less": "View less",
|
||||
"copy": "Copy",
|
||||
"upload": "Upload",
|
||||
"download": "Download",
|
||||
"or": "Or",
|
||||
"reset": "Reset",
|
||||
"setup": "Setup",
|
||||
"search": "Search",
|
||||
"loading": "Loading...",
|
||||
"joining": "Joining...",
|
||||
"join": "Join",
|
||||
"remove": "Remove",
|
||||
"send": "Send",
|
||||
"homeserver": "Homeserver",
|
||||
"invite": "Invite",
|
||||
"uninvite": "Uninvite",
|
||||
"invited": "Invited",
|
||||
"inviting": "Inviting...",
|
||||
"uninviting": "Uninviting...",
|
||||
"change": "Change",
|
||||
"edit": "Edit",
|
||||
"message_prompt": "Message"
|
||||
},
|
||||
"errors": {
|
||||
"browser_not_supported": "Not supported in this browser",
|
||||
"generic": "Something went wrong!"
|
||||
},
|
||||
"Organisms": {
|
||||
"Welcome": {
|
||||
"heading": "Welcome to Versi!",
|
||||
"subheading": A libre matrix client by TrueOG Network
|
||||
},
|
||||
"ViewSource": {
|
||||
"title": "View Source",
|
||||
"original_source": "Original source",
|
||||
"decrypted_source": "Decrypted source"
|
||||
},
|
||||
"SpaceManage": {
|
||||
"subtitle": "manage rooms",
|
||||
"load_more": "Load more",
|
||||
"rooms_and_spaces": "Rooms and spaces",
|
||||
"private_rooms_message": "Either the space contains private rooms or you need to join space to view it's rooms.",
|
||||
"items_selected_zero": "No selected items",
|
||||
"items_selected_one": "{{count}} selected item",
|
||||
"items_selected_other": "{{count}} selected items",
|
||||
"room_members_zero": "No room members",
|
||||
"room_members_one": "{{count}} room member",
|
||||
"room_members_other": "{{count}} room members",
|
||||
"mark_suggested_zero": "Marking no rooms as suggested",
|
||||
"mark_suggested_one": "Marking {{count}} room as suggested",
|
||||
"mark_suggested_other": "Marking {{count}} rooms as suggested",
|
||||
"mark_not_suggested_zero": "Marking no rooms as suggested",
|
||||
"mark_not_suggested_one": "Marking {{count}} room as suggested",
|
||||
"mark_not_suggested_other": "Marking {{count}} rooms as suggested",
|
||||
"remove_zero": "Removing no items",
|
||||
"remove_one": "Removing {{count}} item",
|
||||
"remove_other": "Removing {{count}} items.",
|
||||
"suggested": "Suggested",
|
||||
"mark_as_suggested": "Mark as suggested",
|
||||
"mark_as_not_suggested": "Mark as not suggested"
|
||||
},
|
||||
"SpaceSettings": {
|
||||
"subtitle": "space settings",
|
||||
"leave": {
|
||||
"leave_space": "Leave Space",
|
||||
"leave_dialog_title": "Leave Space",
|
||||
"leave_dialog_message": "Are you sure you want to leave {{space}}?"
|
||||
},
|
||||
"visibility": {
|
||||
"header": "Space visibility (who can join)"
|
||||
},
|
||||
"addresses": {
|
||||
"header": "Space addresses"
|
||||
},
|
||||
"categorize_subspaces": "Categorize subspaces",
|
||||
"uncategorize_subspaces": "Uncategorize subspaces",
|
||||
"pin_sidebar": "Pin to sidebar",
|
||||
"unpin_sidebar": "Unpin from sidebar"
|
||||
},
|
||||
"Settings": {
|
||||
"title": "Settings",
|
||||
"theme": {
|
||||
"follow_system": {
|
||||
"title": "Follow system theme",
|
||||
"description": "Use light or dark mode based on the system settings."
|
||||
},
|
||||
"title": "Theme",
|
||||
"theme_light": "Light",
|
||||
"theme_silver": "Silver",
|
||||
"theme_dark": "Dark",
|
||||
"theme_butter": "Butter"
|
||||
},
|
||||
"markdown": {
|
||||
"title": "Markdown formatting",
|
||||
"description": "Format messages with markdown before sending"
|
||||
},
|
||||
"hide_membership_events": {
|
||||
"title": "Hide membership events",
|
||||
"description": "Hide membership change messages from room timeline. (Join, Leave, Invite, Kick and Ban)"
|
||||
},
|
||||
"hide_nickname_avatar_events": {
|
||||
"title": "Hide nick/avatar events",
|
||||
"description": "Hide nickname and avatar change messages from the room timeline."
|
||||
},
|
||||
"notifications_and_sound": {
|
||||
"title": "Notifications & Sound",
|
||||
"desktop": {
|
||||
"title": "Desktop notifications",
|
||||
"description": "Show desktop notifications when new messages arrive."
|
||||
},
|
||||
"sound": {
|
||||
"title": "Notification sound",
|
||||
"description": "Play a sound when new messages arrive."
|
||||
}
|
||||
},
|
||||
"security": {
|
||||
"cross_signing": {
|
||||
"title": "Cross signing and backup"
|
||||
},
|
||||
"export_import_encryption_keys": {
|
||||
"title": "Export / Import encryption keys"
|
||||
},
|
||||
"export_encryption_keys": {
|
||||
"title": "Export E2E room keys",
|
||||
"description": "Export end-to-end encryption room keys to decrypt old messages in other session. In order to encrypt keys you need to set a password, which will be used while importing."
|
||||
},
|
||||
"import_encryption_keys": {
|
||||
"title": "Import E2E room keys",
|
||||
"description": "To decrypt older messages, Export E2EE room keys from Element (Settings > Security & Privacy > Encryption > Cryptography) and import them here. Imported keys are encrypted so you\\'ll have to enter the password you set in order to decrypt it."
|
||||
}
|
||||
},
|
||||
"logout": {
|
||||
"title": "Logout",
|
||||
"dialog": {
|
||||
"title": "Logout",
|
||||
"description": "Are you sure that you want to logout your session?",
|
||||
"confirm": "Logout"
|
||||
}
|
||||
},
|
||||
"about": {
|
||||
"application": "Application",
|
||||
"credits": "Credits"
|
||||
}
|
||||
},
|
||||
"ShortcutSpaces": {
|
||||
"header": "Pin Spaces",
|
||||
"pinned_spaces": "Pinned spaces",
|
||||
"no_pinned_spaces": "No pinned spaces",
|
||||
"unpinned_spaces": "Unpinned spaces",
|
||||
"no_unpinned_spaces": "No unpinned spaces",
|
||||
"spaces_selected_zero": "No selected spaces",
|
||||
"spaces_selected_one": "{{count}} selected space",
|
||||
"spaces_selected_other": "{{count}} selected spaces",
|
||||
"pin_button": "Pin"
|
||||
},
|
||||
"SecretStorageAccess": {
|
||||
"incorrect_security_key": "Incorrect security key",
|
||||
"incorrect_security_phrase": "Incorrect security phrase",
|
||||
"security_phrase": "Security Phrase",
|
||||
"security_key": "Security Key",
|
||||
"use_security_key": "Use Security Key",
|
||||
"use_security_phrase": "Use Security Phrase"
|
||||
},
|
||||
"KeyBackup": {
|
||||
"create_backup_title": "Create key backup",
|
||||
"create_backup_tooltip": "Create backup",
|
||||
"creating_backup": "Creating Backup...",
|
||||
"backup_created": "Successfully created backup",
|
||||
"backup_failed": "Failed to create backup",
|
||||
"restoring": "Restoring backup keys...",
|
||||
"restoring_progress": "Restoring backup keys... ({{progress}}/{{total}}",
|
||||
"restore_backup_title": "Restore Key Backup",
|
||||
"restore_backup_tooltip": "Restore Key Backup",
|
||||
"restore_complete": "Successfully restored backup keys ({{progress}}/{{total}})",
|
||||
"restore_failed_bad_key": "Failed to restore backup. Key is invalid!",
|
||||
"restore_failed_unknown": "Failed to restore backup.",
|
||||
"delete_key_backup_title": "Delete key backup",
|
||||
"delete_key_backup_tooltip": "Delete backup",
|
||||
"delete_key_backup_subtitle": "Deleting key backup is permanent.",
|
||||
"delete_key_backup_message": "All encrypted message keys stored on the server will be permanently deleted.",
|
||||
"encrypted_messages_backup_description": "Online backup your encrypted messages keys with your account data in case you lose access to your sessions. Your keys will be secured with a unique Security Key.",
|
||||
"encrypted_messages_backup_title": "Encrypted messages backup",
|
||||
"encrypted_messages_backup_cross_signing_disabled": "Setup cross signing to backup your encrypted messages."
|
||||
},
|
||||
"DeviceManage": {
|
||||
"edit_session_name_title": "Edit session name",
|
||||
"edit_session_name_subtitle": "Session name",
|
||||
"edit_session_name_tooltip": "Edit session name",
|
||||
"current_device_label": "Current",
|
||||
"verify_session_button": "Verify",
|
||||
"unverified_sessions_title": "Unverified sessions",
|
||||
"unverified_sessions_none": "No unverified sessions",
|
||||
"unencrypted_sessions_title": "Sessions without encryption support",
|
||||
"verified_sessions_title": "Verified sessions",
|
||||
"verified_sessions_none": "No verified sessions",
|
||||
"setup_cross_signing_message": "Setup cross signing in case you lose all your sessions",
|
||||
"loading_devices": "Loading devices...",
|
||||
"logout_device_title": "Logout {{device}}",
|
||||
"logout_device_message": "You are about to log out the session for {{device}}",
|
||||
"logout_device_confirm": "Logout",
|
||||
"logout_device_tooltip": "Remove session",
|
||||
"session_verification_title": "Session Verification",
|
||||
"session_name_privacy_message": "Session names are visible to everyone, so do not put any private info here."
|
||||
},
|
||||
"CrossSigning": {
|
||||
"title": "Cross Signing",
|
||||
"setup_failed": "Failed to setup cross signing. Please try again",
|
||||
"setup": "Setup cross signing",
|
||||
"save_security_key_message": "Please save this security key somewhere safe",
|
||||
"security_key_dialog_title": "Security Key",
|
||||
"security_key_generation_message": "We will generate a Security Key, which you can use to manage message backups and session verification.",
|
||||
"security_key_generation_button": "Generate Key",
|
||||
"security_phrase_message": "Alternatively you can set a 'Security Phrase' so you don't have to remember the long Security Key, and optionally save the key as a backup",
|
||||
"security_phrase_label": "Security Phrase",
|
||||
"security_phrase_confirm_label": "Confirm Security Phrase",
|
||||
"security_phrase_set_button": "Set Phrase & Generate Key",
|
||||
"setup_dialog_title": "Setup cross signing",
|
||||
"setup_message": "Setup to verify and keep track of all your sessions. Also required to backup encrypted message.",
|
||||
"reset_keys_subtitle": "Resetting cross-signing keys is permanent.",
|
||||
"reset_keys_message": "Anyone you have verified with will see security alerts and your message backup will lost. You almost certainly do not want to do this, unless you have lost Security Key or Phrase and every session you can cross-sign from."
|
||||
},
|
||||
"AuthRequest": {
|
||||
"wrong_password": "Wrong password. Please enter the correct password",
|
||||
"request_failed": "Request failed!",
|
||||
"password_label": "Account password"
|
||||
},
|
||||
"Search": {
|
||||
"description": "Type # for rooms, @ for DMs and * for spaces. Hotkey: Ctrl + k"
|
||||
},
|
||||
"RoomViewInput": {
|
||||
"upload_progress": "Uploading: {{progress}}/{{total}} ({{percent}}%)",
|
||||
"tombstone_replaced": "This room has been replaced, and is no longer active.",
|
||||
"tombstone_permission_denied": "You do not have permission to post to this room",
|
||||
"send_message_placeholder": "Send a message...",
|
||||
"emoji_tooltip": "Emoji",
|
||||
"file_size": "Size: {{size}}",
|
||||
"cancel_reply_tooltip": "Cancel reply"
|
||||
},
|
||||
"RoomViewHeader": {
|
||||
"search_tooltip": "Search",
|
||||
"people_tooltip": "People",
|
||||
"members_tooltip": "Members"
|
||||
},
|
||||
"RoomViewFloating": {
|
||||
"jump_unread": "Jump to unread messages",
|
||||
"mark_read": "Mark as read",
|
||||
"jump_latest": "Jump to latest",
|
||||
"user_typing_1": "<bold><user_one/></bold> is typing...",
|
||||
"user_typing_2": "<bold><user_one/></bold> and <bold><user_two/></bold> are typing...",
|
||||
"user_typing_3": "<bold><user_one/></bold>, <bold><user_two/></bold> and <bold><user_three/></bold> are typing...",
|
||||
"user_typing_4": "<bold><user_one/></bold>, <bold><user_two/></bold>, <bold><user_three/></bold> and <bold><user_four/></bold> are typing...",
|
||||
"user_typing_other": "<bold>Several people</bold> are typing..."
|
||||
},
|
||||
"RoomViewContent": {
|
||||
"welcome_to_room": "Welcome to {{room_name}}!",
|
||||
"beginning_room": "This is the beginning of the <bold>{{room_name}}</bold> room.",
|
||||
"beginning_dm": "This is the beginning of your direct message history with <bold>@{{user_name}}</bold>.",
|
||||
"created_on": "Created on {{date, datetime}}",
|
||||
"new_messages": "New messages"
|
||||
},
|
||||
"RoomSettings": {
|
||||
"leave_room": "Leave room",
|
||||
"leave_room_confirm_message": "Are you sure you want to leave {{room_name}}?",
|
||||
"leave_room_confirm_button": "Leave",
|
||||
"notification_header": "Notifications (Changing this will only affect you)",
|
||||
"visibility_header": "Room visibility (Who can join)",
|
||||
"address_header": "Room addresses",
|
||||
"encryption_header": "Encryption",
|
||||
"message_history_header": "Message history visibility",
|
||||
"room_settings_subtitle": "room settings"
|
||||
},
|
||||
"RoomCommon": {
|
||||
"user_joined": "<bold><user/></bold> joined the room",
|
||||
"user_left": "<bold><user/></bold> left the room",
|
||||
"user_left_reason": "<bold><user/></bold> left the room: <reason/>",
|
||||
"user_invited": "<bold><inviter/></bold> invited <bold><user/></bold>",
|
||||
"invite_cancelled": "<bold><inviter/></bold> cancelled <bold><user/>'s</bold> invite",
|
||||
"invite_rejected": "<bold><user/></bold> rejected the invitation",
|
||||
"user_kicked": "<bold><actor/></bold> kicked <bold><user/></bold>",
|
||||
"user_kicked_reason": "<bold><actor/></bold> kicked <bold><user/></bold>: <reason/>",
|
||||
"user_banned": "<bold><actor/></bold> banned <bold><user/></bold>",
|
||||
"user_banned_reason": "<bold><actor/></bold> banned <bold><user/></bold>: <reason/>",
|
||||
"user_unbanned": "<bold><actor/> unbanned <bold><user/></bold>",
|
||||
"avatar_set": "<bold><user/></bold> set an avatar",
|
||||
"avatar_changed": "<bold><user/></bold> changed their avatar",
|
||||
"avatar_removed": "<bold><user/></bold> removed their avatar",
|
||||
"name_set": "<bold><user/></bold> set their display name to <bold><new_name/></bold>",
|
||||
"name_changed": "<bold><user/></bold> changed their display name to <bold><new_name/></bold>",
|
||||
"name_removed": "<bold><user/></bold> removed their display name <bold><last_name/></bold>"
|
||||
},
|
||||
"PublicRooms": {
|
||||
"could_not_join_alias": "Unable to join {{alias}}. Either the room is private or doesn't exist",
|
||||
"try_joining_alias": "Try joining {{alias}}",
|
||||
"joining_alias": "Joining {{alias}}...",
|
||||
"no_public_rooms": "No public rooms on {{homeserver}}",
|
||||
"no_result_found": "No result found for '{{input}}' on {{homeserver}}",
|
||||
"title": "Public Rooms",
|
||||
"search_room_name_alias": "Room name or alias",
|
||||
"search_button": "Search",
|
||||
"loading": "Loading public rooms from {{homeserver}}...",
|
||||
"searching": "Searching for '{{query}}' on {{homeserver}}...",
|
||||
"result_title": "Public rooms on {{homeserver}}",
|
||||
"search_result_title": "Search result for '{{query}}' on {{homeserver}}"
|
||||
},
|
||||
"ProfileViewer": {
|
||||
"kick_button": "Kick",
|
||||
"kick_reason_label": "Kick Reason",
|
||||
"ban_button": "Ban",
|
||||
"ban_reason_label": "Ban reason",
|
||||
"loading_sessions": "Loading sessions...",
|
||||
"no_sessions_found": "No sessions found.",
|
||||
"view_sessions_one": "View session",
|
||||
"view_sessions_other": "View {{count}} sessions",
|
||||
"send_direct_message_button": "Message",
|
||||
"creating_dm_room": "Creating room...",
|
||||
"ignore": "Ignore",
|
||||
"ignoring": "Ignoring...",
|
||||
"unignore": "Unignore",
|
||||
"unignoring": "Unignoring...",
|
||||
"change_power_level": "Change power level",
|
||||
"shared_power_message": "You will not be able to undo this change as you are promoting the user to have the same power level as yourself. Are you sure?",
|
||||
"demoting_self_message": "You will not be able to undo this change as you are demoting yourself. Are you sure?"
|
||||
},
|
||||
"PeopleDrawer": {
|
||||
"title": "People",
|
||||
"members_one": "{{count}} member",
|
||||
"members_other": "{{count}} members",
|
||||
"joined": "Joined",
|
||||
"invited": "Invited",
|
||||
"banned": "Banned",
|
||||
"search_no_results": "No results found",
|
||||
"view_more": "View more",
|
||||
"placeholder": "Search",
|
||||
"invite_tooltip": "Invite"
|
||||
},
|
||||
"ProfileEditor": {
|
||||
"remove_avatar": "Remove avatar",
|
||||
"remove_avatar_confirmation": "Are you sure that you want to remove your avatar?",
|
||||
"display_name_message": "Display name of {{user_name}}"
|
||||
},
|
||||
"DrawerBreadcrumb": {
|
||||
"home": "Home"
|
||||
},
|
||||
"DrawerHeader": {
|
||||
"add_rooms_or_spaces": "Add rooms or spaces",
|
||||
"create_new_space": "Create new space",
|
||||
"create_new_room": "Create new room",
|
||||
"join_public_room": "Join public room",
|
||||
"join_with_address": "Join with address",
|
||||
"add_existing": "Add existing",
|
||||
"manage_rooms": "Manage rooms",
|
||||
"home": "Home",
|
||||
"direct_messages": "Direct messages",
|
||||
"start_dm_tooltip": "Start DM",
|
||||
"add_rooms_spaces_tooltip": "Add rooms/spaces"
|
||||
},
|
||||
"SideBar": {
|
||||
"settings_tooltip": "Settings",
|
||||
"unverified_sessions_one": "{{count}} unverified session",
|
||||
"unverified_sessions_other": "{{count}} unverified sessions",
|
||||
"home_tooltip": "Home",
|
||||
"direct_messages_tooltip": "People",
|
||||
"pin_spaces_tooltip": "Pin spaces",
|
||||
"search_tooltip": "Search",
|
||||
"invites_tooltip": "Invites"
|
||||
},
|
||||
"JoinAlias": {
|
||||
"invalid_address": "Invalid address.",
|
||||
"looking_for_address": "Looking for address...",
|
||||
"joining_alias": "Joining {{alias_name}}...",
|
||||
"couldnt_find_room_or_space_alias": "Unable to find room/space with {{alias_name}}. Either the room/space is private or doesn't exist.",
|
||||
"couldnt_find_room_or_space": "Unable to join {{alias_name}}. Either the room/space is private or doesn't exist.",
|
||||
"address_label": "Address",
|
||||
"title": "Join with address"
|
||||
},
|
||||
"InviteUser": {
|
||||
"user_not_found": "{{user_name}} not found!",
|
||||
"no_matches_found": "No matches found for {{user_name}}",
|
||||
"invite_result": {
|
||||
"invited": "Invited",
|
||||
"already_joined": "Already joined",
|
||||
"already_invited": "Already invited",
|
||||
"banned": "Banned"
|
||||
},
|
||||
"search_label": "Name or User ID",
|
||||
"search_result_title": "Search result for user {{user_name}}",
|
||||
"searching_for_user": "Searching for user {{user_name}}...",
|
||||
"invite_to_room": "Invite to {{room}}",
|
||||
"invite_to_dm": "Direct Message"
|
||||
},
|
||||
"InviteList": {
|
||||
"accept_invite": "Accept",
|
||||
"reject_invite": "Reject",
|
||||
"direct_messages_title": "Direct Messages",
|
||||
"rooms_title": "Rooms",
|
||||
"spaces_title": "Spaces",
|
||||
"title": "Invites"
|
||||
},
|
||||
"EmojiVerification": {
|
||||
"waiting_for_response": "Waiting for response from other device...",
|
||||
"confirmation_prompt": "Confirm the emoji below are displayed on both devices, in the same order:",
|
||||
"emojis_match_button": "They match",
|
||||
"emojis_dont_match_button": "They don't match",
|
||||
"accept_request_from_other_device_message": "Please accept the request from other device.",
|
||||
"begin_verification_process_message": "Click accept to start the verification process.",
|
||||
"begin_verification_button_text": "Accept",
|
||||
"title": "Emoji Verification"
|
||||
},
|
||||
"DragDrop": {
|
||||
"drop_file_to_upload_prompt": "Drop file to upload"
|
||||
},
|
||||
"CreateRoom": {
|
||||
"private_room_short": "Private",
|
||||
"restricted_room_short": "Restricted",
|
||||
"public_room_short": "Public",
|
||||
"private_room_long": "Private (invite only)",
|
||||
"restricted_room_long": "Restricted (space member can join)",
|
||||
"public_room_long": "Public (anyone can join)",
|
||||
"visibility_title": "Visibility",
|
||||
"visibility_message": "Visibility (who can join)",
|
||||
"select_who_can_join_space": "Select who can join this space",
|
||||
"select_who_can_join_room": "Select who can join this room",
|
||||
"space_address": "Space address",
|
||||
"room_address": "Room address",
|
||||
"room_address_already_in_use": "{{room_address}} is already in use",
|
||||
"e2e_title": "Enable end-to-end encryption",
|
||||
"e2e_message": "You can’t disable this later. Bridges & most bots won’t work yet.",
|
||||
"role_title": "Select your role",
|
||||
"role_message": "Selecting 'Admin' sets your power level to 100 whereas 'Founder' sets it to 101.",
|
||||
"creating_room": "Creating room...",
|
||||
"creating_space": "Creating space...",
|
||||
"topic_label": "Topic (optional)",
|
||||
"space_name": "Space name",
|
||||
"room_name": "Room name",
|
||||
"role_admin": "Admin",
|
||||
"role_founder": "Founder",
|
||||
"create_room": "Create room",
|
||||
"create_space": "Create space",
|
||||
"home": "Home"
|
||||
}
|
||||
},
|
||||
"Molecules": {
|
||||
"ConfirmDialog": {
|
||||
"cancel": "Cancel"
|
||||
},
|
||||
"ReusableDialog": {
|
||||
"close_tooltip": "Close"
|
||||
},
|
||||
"FollowingMembers": {
|
||||
"users_following_1": "<bold><user_one/></bold> is following the conversation",
|
||||
"users_following_2": "<bold><user_one/></bold> and <bold><user_two/></bold> are following the conversation",
|
||||
"users_following_3": "<bold><user_one/></bold>, <bold><user_two/></bold>, and <bold><user_three/></bold> are following the conversation",
|
||||
"users_following_other": "<bold><user_one/></bold>, <bold><user_two/></bold>, <bold><user_three/></bold> and {{other_count}} others are following the conversation"
|
||||
},
|
||||
"ImageUpload": {
|
||||
"prompt": "Upload",
|
||||
"cancel": "Cancel",
|
||||
"remove": "Remove"
|
||||
},
|
||||
"ExportE2ERoomKeys": {
|
||||
"getting_keys": "Getting keys...",
|
||||
"encrypting_keys": "Encrypting Keys...",
|
||||
"password_does_not_match": "Password does not match.",
|
||||
"export_success": "Successfully exported all keys.",
|
||||
"export_failed": "Failed to export keys. Please try again.",
|
||||
"button_text": "Export"
|
||||
},
|
||||
"ImportE2ERoomKeys": {
|
||||
"decrypting_file": "Decrypting file...",
|
||||
"decrypting_messages": "Decrypting messages...",
|
||||
"import_success": "Successfully imported all keys",
|
||||
"import_failed": "Failed tp decrypt keys. Please try again",
|
||||
"import_keys_button": "Import Keys",
|
||||
"decrypt_button": "Decrypt"
|
||||
},
|
||||
"Media": {
|
||||
"open_new_tab": "Open in new tab",
|
||||
"download": "Download",
|
||||
"play_audio": "Play audio",
|
||||
"play_video": "Play video"
|
||||
},
|
||||
"Message": {
|
||||
"message_deleted": "*** This message has been deleted ***",
|
||||
"unable_to_load_reply": "*** Unable to load reply ***",
|
||||
"unknown_user": "** Unknown user **",
|
||||
"edited": "(edited)",
|
||||
"edit_placeholder": "Edit message",
|
||||
"user_reacted_1": "<bold><user_one/></bold> reacted with <emoji/>",
|
||||
"user_reacted_2": "<bold><user_one/></bold> and <bold><user_two/></bold> reacted with <emoji/>",
|
||||
"user_reacted_3": "<bold><user_one/></bold>, <bold><user_two/></bold> and <bold><user_three/></bold> reacted with <emoji/>",
|
||||
"user_reacted_other": "<bold><user_one/></bold>, <bold><user_two/></bold>, <bold><user_three/></bold> and {{other_count}} others reacted with <emoji/>",
|
||||
"add_reaction_tooltip": "Add reaction",
|
||||
"reply_tooltip": "Reply",
|
||||
"edit_tooltip": "Edit",
|
||||
"options_header": "Options",
|
||||
"options_tooltip": "Options",
|
||||
"read_receipts": "Read receipts",
|
||||
"view_source": "View source",
|
||||
"delete_message_prompt": "Delete message",
|
||||
"delete_message_confirmation": "Are you sure that you want to delete this message?",
|
||||
"delete_message_button": "Delete"
|
||||
},
|
||||
"PopupWindow": {
|
||||
"close_tooltip": "Back"
|
||||
},
|
||||
"PowerLevelSelector": {
|
||||
"placeholder": "Power level"
|
||||
},
|
||||
"RoomAliases": {
|
||||
"invalid_characters": "Invalid character: only letter, numbers and _- are allowed.",
|
||||
"validating_alias": "validating {{alias}}...",
|
||||
"alias_available": "{{alias}} is available.",
|
||||
"alias_unavailable": "{{alias}} is unavailable.",
|
||||
"deleting_alias": "Deleting...",
|
||||
"set_main_alias": "Set as Main",
|
||||
"publish_alias": "Publish",
|
||||
"unpublish_alias": "Unpublish",
|
||||
"delete_alias": "Delete",
|
||||
"main_alias": "Main",
|
||||
"publish_to_room_directory": {
|
||||
"title": "Publish to room directory",
|
||||
"publish_room_message": "Publish this room to the {{homeserver}} publish directory?",
|
||||
"publish_space_message": "Publish this space to the {{homeserver}} publish directory?"
|
||||
},
|
||||
"published_addresses": {
|
||||
"title": "Published addresses",
|
||||
"none": "No published addresses",
|
||||
"no_main_address": "No main address (select one from below)",
|
||||
"message_room": "Published addresses can be used by anyone on any server to join your room. To publish an address, it needs to be set as a local address first.",
|
||||
"message_space": "Published addresses can be used by anyone on any server to join your space. To publish an address, it needs to be set as a local address first."
|
||||
},
|
||||
"local_addresses": {
|
||||
"title": "Local addresses",
|
||||
"none": "No local addresses",
|
||||
"message_room": "Set local addresses for this room so users can find this room through your homeserver.",
|
||||
"message_space": "Set local addresses for this space so users can find this space through your homeserver.",
|
||||
"add": "Add local address",
|
||||
"add_button": "Add",
|
||||
"placeholder_room": "my_room_address",
|
||||
"placeholder_space": "my_space_address",
|
||||
"hide": "Hide local addresses",
|
||||
"view": "View local addresses"
|
||||
}
|
||||
},
|
||||
"RoomEncryption": {
|
||||
"encryption_public_room_message": "It is not recommended to add encryption in public room. Anyone can find and join public rooms, so anyone should be able to read messages in them.",
|
||||
"encryption_message": "Once enabled, encryption for a room cannot be disabled. Messages sent in an encrypted room cannot be seen by the server, only by the participants of the room. Enabling encryption may prevent many bots and bridges from working correctly",
|
||||
"encryption_cannot_be_disabled": "Once enabled, encryption cannot be disabled.",
|
||||
"enable_room_encryption": "Enable room encryption",
|
||||
"enable_encryption_prompt": "Enable Encryption",
|
||||
"enable_encryption_button": "Enable",
|
||||
"continue_button": "Continue"
|
||||
},
|
||||
"RoomHistoryVisibility": {
|
||||
"world_readable": "Anyone (including guests)",
|
||||
"shared": "Members (all messages)",
|
||||
"invited": "Members (messages after invite)",
|
||||
"joined": "Members (messages after join)",
|
||||
"changes_only_affect_future": "Changes to history visibility will only apply to future messages. The visibility of existing history will have no effect."
|
||||
},
|
||||
"RoomMembers": {
|
||||
"search_title": "Search member",
|
||||
"found_members_one": "Found — one member",
|
||||
"found_members_other": "Found — {{count}} members",
|
||||
"no_results": "No results found for {{term}}",
|
||||
"no_members": "No members to display",
|
||||
"view_more": "View more",
|
||||
"joined": "Joined",
|
||||
"invited": "Invited",
|
||||
"banned": "Banned",
|
||||
"search_placeholder": "Search for name"
|
||||
},
|
||||
"RoomNotification": {
|
||||
"default": "Global",
|
||||
"all_messages": "All messages",
|
||||
"mentions_and_keywords": "Mentions & Keywords",
|
||||
"mute": "Mute"
|
||||
},
|
||||
"RoomOptions": {
|
||||
"title": "Options for {{room_name}}",
|
||||
"leave": {
|
||||
"title": "Leave room",
|
||||
"subtitle": "Are you sure you want to leave the {{room_name}} room?",
|
||||
"button_text": "Leave"
|
||||
},
|
||||
"mark_as_read": "Mark as read",
|
||||
"notifications_heading": "Notifications",
|
||||
"invite": "Invite"
|
||||
},
|
||||
"RoomPermissions": {
|
||||
"default_role": {
|
||||
"name": "Default role",
|
||||
"description": "Set default role for all members"
|
||||
},
|
||||
"send_messages": {
|
||||
"name": "Send messages",
|
||||
"description": "Set minimum power level to send messages in a room"
|
||||
},
|
||||
"reactions": {
|
||||
"name": "Send reactions",
|
||||
"description": "Set minimum power level to send reactions in a room"
|
||||
},
|
||||
"delete": {
|
||||
"name": "Delete messages sent by others",
|
||||
"description": "Set minumum power level to delete messages in a room"
|
||||
},
|
||||
"notifications": {
|
||||
"name": "Ping room",
|
||||
"description": "Set minimum power level to ping room"
|
||||
},
|
||||
"manage_rooms": {
|
||||
"name": "Manage rooms in space",
|
||||
"description": "Set minimum power level to manage rooms in space"
|
||||
},
|
||||
"invite": {
|
||||
"name": "Invite",
|
||||
"description": "Set minimum power level to invite members"
|
||||
},
|
||||
"kick": {
|
||||
"name": "Kick",
|
||||
"description": "Set minimum power level to kick members"
|
||||
},
|
||||
"ban": {
|
||||
"name": "Ban",
|
||||
"description": "Set minimum power level to ban members"
|
||||
},
|
||||
"change_avatar": {
|
||||
"name": "Change avatar",
|
||||
"description": "Set minimum power level to change room/space avatar"
|
||||
},
|
||||
"change_name": {
|
||||
"name": "Change name",
|
||||
"description": "Set minimum power evel to change room/space name"
|
||||
},
|
||||
"change_topic": {
|
||||
"name": "Change topic",
|
||||
"description": "Set minimum power level to change room/space topic"
|
||||
},
|
||||
"change_settings": {
|
||||
"name": "Change settings",
|
||||
"description": "Set minimum power level to change settings"
|
||||
},
|
||||
"change_published_address": {
|
||||
"name": "Change published address",
|
||||
"description": "Set minimum power level to publish and set main address"
|
||||
},
|
||||
"change_permissions": {
|
||||
"name": "Change permissions",
|
||||
"description": "Set minimum power level to change permissions"
|
||||
},
|
||||
"enable_room_encryption": {
|
||||
"name": "Enable room encryption",
|
||||
"description": "Set minimum power level to enable room encryption"
|
||||
},
|
||||
"change_history_visibility": {
|
||||
"name": "Change history visibility",
|
||||
"description": "Set minimum power level to change room message history visibility"
|
||||
},
|
||||
"upgrade_room": {
|
||||
"name": "Upgrade room",
|
||||
"description": "Set minimum power level to upgrade room"
|
||||
},
|
||||
"pin_messages": {
|
||||
"name": "Pin messages",
|
||||
"description": "Set minimum power level to pin messages in a room"
|
||||
},
|
||||
"change_acls": {
|
||||
"name": "Change server ACLs",
|
||||
"description": "Set minimum power level to change server ACLs"
|
||||
},
|
||||
"modify_widgets": {
|
||||
"name": "Modify widgets",
|
||||
"description": "Set minimum power level to modify room widgets"
|
||||
},
|
||||
"groups": {
|
||||
"general": "General permissions",
|
||||
"manage_members": "Manage members permissions",
|
||||
"room": "Room profile permissions",
|
||||
"space": "Space profile permissions",
|
||||
"other": "Other permissions",
|
||||
"settings": "Settings permissions"
|
||||
}
|
||||
},
|
||||
"RoomProfile": {
|
||||
"saving_room_name": "Saving room name...",
|
||||
"saving_room_topic": "Saving room topic...",
|
||||
"save_success": "Saved successfully",
|
||||
"save_failed": "Unable to save",
|
||||
"remove_avatar_title": "Remove avatar",
|
||||
"remove_avatar_subtitle": "Are you sure that you want to remove room avatar?",
|
||||
"remove_avatar_button": "Remove",
|
||||
"permission_change_room_name": "You have permission to change room name only",
|
||||
"permission_change_room_topic": "You have permission to change room topic only",
|
||||
"permission_change_space_name": "You have permission to change space name only",
|
||||
"permission_change_space_topic": "You have permission to change space topic only",
|
||||
"name_label": "Name",
|
||||
"topic_label": "Topic"
|
||||
},
|
||||
"RoomSearch": {
|
||||
"title": "Room search",
|
||||
"placeholder": "Search for keywords",
|
||||
"search_button": "Search",
|
||||
"searching": "Searching room messages...",
|
||||
"subtitle": "Search room messages",
|
||||
"failed": "Failed to search messages",
|
||||
"no_results": "No results found",
|
||||
"encrypted_room": "Search does not work in encrypted room",
|
||||
"load_more": "Load more",
|
||||
"results_one": "{{count}} result for {{term}}",
|
||||
"results_other": "{{count}} results for {{term}}"
|
||||
},
|
||||
"RoomTile": {
|
||||
"invited_by_user_zero": "Invited by {{inviter}} to {{id}}",
|
||||
"invited_by_user_one": "Invited by {{inviter}} to {{id}} • {{member_count}} member",
|
||||
"invited_by_user_other": "Invited by {{inviter}} to {{id}} • {{member_count}} members",
|
||||
"invited_zero": "{{id}}",
|
||||
"invited_one": "{{id}} • {{member_count}} member",
|
||||
"invited_other": "{{id}} • {{member_count}} members"
|
||||
},
|
||||
"RoomVisibility": {
|
||||
"private": "Private (invite only)",
|
||||
"restricted": "Restricted (space members can join)",
|
||||
"restricted_unsupported": "Restricted (Unsupported: room required upgrade)",
|
||||
"public": "Public (anyone can join)"
|
||||
},
|
||||
"RoomEmojis": {
|
||||
"header": "Create Pack",
|
||||
"submit_button": "Create pack",
|
||||
"name_placeholder": "Pack Name",
|
||||
"no_packs": "No emoji or sticker packs."
|
||||
},
|
||||
"ImagePack": {
|
||||
"rename_title": "Rename",
|
||||
"rename_button": "Rename",
|
||||
"shortcode_label": "Shortcode",
|
||||
"delete_item_title": "Delete",
|
||||
"delete_item_message": "Are you sure that you want to delete {{key}}?",
|
||||
"delete_item_button": "Delete",
|
||||
"delete_pack_title": "Delete Pack",
|
||||
"delete_pack_message": "Are you sure that you want to delete {{pack_name}}?",
|
||||
"delete_pack_button": "Delete",
|
||||
"image_title": "Image",
|
||||
"image_shortcode": "Shortcode",
|
||||
"image_usage": "Usage",
|
||||
"view_more": "View {{count}} more",
|
||||
"view_less": "View less",
|
||||
"use_globally": "Use globally",
|
||||
"use_globally_description": "Add this pack to your account to use in all rooms.",
|
||||
"no_global_packs": "No global packs",
|
||||
"default_personal_pack_name": "Personal"
|
||||
},
|
||||
"ImagePackItem": {
|
||||
"rename_tooltip": "Rename",
|
||||
"delete_tooltip": "Delete"
|
||||
},
|
||||
"ImagePackUsageSelector": {
|
||||
"header": "Usage",
|
||||
"type_emoji": "Emoji",
|
||||
"type_sticker": "Sticker",
|
||||
"type_both": "Both"
|
||||
},
|
||||
"ImagePackUpload": {
|
||||
"remove_file_tooltip": "Remove file",
|
||||
"import_image_button": "Import image",
|
||||
"shortcode_placeholder": "shortcode",
|
||||
"upload_button": "Upload",
|
||||
"upload_button_progress": "Uploading..."
|
||||
},
|
||||
"ImagePackProfile": {
|
||||
"attribution_prompt": "Attribution",
|
||||
"name_prompt": "Name",
|
||||
"edit_tooltip": "Edit",
|
||||
"usage_header": "Usage",
|
||||
"pack_usage": "Pack usage"
|
||||
},
|
||||
"SpaceAddExisting": {
|
||||
"adding_items_one": "Adding one item...",
|
||||
"adding_items_other": "Adding {{count}} items...",
|
||||
"items_selected_one": "{{count}} item selected",
|
||||
"items_selected_other": "{{count}} items selected",
|
||||
"search_rooms_placeholder": "Search rooms",
|
||||
"no_results": "No results found",
|
||||
"add_button": "Add",
|
||||
"subtitle": "add existing rooms"
|
||||
},
|
||||
"SpaceOptions": {
|
||||
"leave_space": "Leave Space",
|
||||
"leave_space_confirmation": "Are you sure that you want to leave the {{space}} space?",
|
||||
"leave_space_confirm": "Leave",
|
||||
"invite": "Invite",
|
||||
"manage_rooms": "Manage rooms",
|
||||
"settings": "Settings",
|
||||
"leave": "Leave"
|
||||
},
|
||||
"SSOButtons": {
|
||||
"login_with": "Login with {{idp_name}}"
|
||||
}
|
||||
},
|
||||
"Templates": {
|
||||
"Auth": {
|
||||
"loading_homeserver_list": "Loading homeserver list...",
|
||||
"looking_for_homeserver": "Looking for homeserver...",
|
||||
"connecting_to_homeserver": "Connecting to {{homeserver}}...",
|
||||
"unable_to_connect": "Unable to connect. Please check your input",
|
||||
"username_taken": "Username is already taken",
|
||||
"registration_in_progress": "Registration in progress...",
|
||||
"link_about": "About",
|
||||
"link_twitter": "Twitter",
|
||||
"link_matrix": "Powered by Matrix",
|
||||
"dont_have_an_account": "Dont have an account?",
|
||||
"already_have_an_account": "Already have an account?",
|
||||
"register_link": "Register",
|
||||
"login_link": "Login",
|
||||
"redirecting": "Redirecting...",
|
||||
"login_in_progress": "Login in progress...",
|
||||
"bad_localpart_error": "Username can only contain characters a-z, 0-9, or '=_-./'",
|
||||
"user_id_too_long_error": "Your user ID, including the hostname, can't be more than 255 characters long.",
|
||||
"bad_password_error": "Password must contain at least 1 lowercase, 1 uppercase, 1 number, 1 non-alphanumeric character, 8-127 characters with no space.",
|
||||
"confirm_password_error": "Passwords don't match.",
|
||||
"bad_email_error": "Invalid email address",
|
||||
"invalid_password": "Invalid password",
|
||||
"check_credentials": "Please check your credentials",
|
||||
"login_types": {
|
||||
"username": "Username",
|
||||
"email": "Email"
|
||||
},
|
||||
"homeserver_form": {
|
||||
"title": "Homeserver",
|
||||
"header": "Homeserver list"
|
||||
},
|
||||
"login_form": {
|
||||
"title": "Login",
|
||||
"prompt_email": "Email",
|
||||
"prompt_username": "Username",
|
||||
"prompt_password": "Password",
|
||||
"login_button": "Login"
|
||||
},
|
||||
"register_form": {
|
||||
"title": "Register",
|
||||
"prompt_email_required": "Email (Required)",
|
||||
"prompt_email_optional": "Email",
|
||||
"prompt_username": "Username",
|
||||
"prompt_password": "Password",
|
||||
"prompt_confirm_password": "Confirm password",
|
||||
"register_button": "Register"
|
||||
},
|
||||
"terms_and_conditions": {
|
||||
"title": "Agree with terms",
|
||||
"description": "In order to complete registration, you need to agree to the terms and conditions.",
|
||||
"accept": "I accept <a>Terms and Conditions</a>",
|
||||
"submit_button": "Submit"
|
||||
},
|
||||
"validate_email": {
|
||||
"title": "Verify email",
|
||||
"continue_button": "Continue",
|
||||
"message": "Please check your email <bold>{{email_address}}</bold> and validate before continuing further"
|
||||
},
|
||||
"captcha": {
|
||||
"message": "Pleace check the box below to proceed"
|
||||
}
|
||||
},
|
||||
"Client": {
|
||||
"loading_messages": {
|
||||
"default": "Heating up",
|
||||
"message_one": "Almost there...",
|
||||
"message_two": "Looks like you have a lot of stuff to heat up!"
|
||||
},
|
||||
"logout_prompt": "Logout"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,889 +0,0 @@
|
||||
{
|
||||
"translation": {
|
||||
"common": {
|
||||
"close": "Close",
|
||||
"open": "Open",
|
||||
"leave": "Leave",
|
||||
"options": "Options",
|
||||
"versi": Versi,
|
||||
"slogan": "A Libre matrix client by TrueOG Network",
|
||||
"source_code": "Source code",
|
||||
"sponsor": "Support",
|
||||
"retry": "Retry",
|
||||
"delete": "Delete",
|
||||
"continue": "Continue",
|
||||
"cancel": "Cancel",
|
||||
"save": "Save",
|
||||
"view_more": "View more",
|
||||
"view_less": "View less",
|
||||
"copy": "Copy",
|
||||
"upload": "Upload",
|
||||
"download": "Download",
|
||||
"or": "Or",
|
||||
"reset": "Reset",
|
||||
"setup": "Setup",
|
||||
"search": "Search",
|
||||
"loading": "Loading...",
|
||||
"joining": "Joining...",
|
||||
"join": "Join",
|
||||
"remove": "Remove",
|
||||
"send": "Send",
|
||||
"homeserver": "Homeserver",
|
||||
"invite": "Invite",
|
||||
"uninvite": "Uninvite",
|
||||
"invited": "Invited",
|
||||
"inviting": "Inviting...",
|
||||
"uninviting": "Uninviting...",
|
||||
"change": "Change",
|
||||
"edit": "Edit",
|
||||
"message_prompt": "Message"
|
||||
},
|
||||
"errors": {
|
||||
"browser_not_supported": "Not supported in this browser",
|
||||
"generic": "Something went wrong!"
|
||||
},
|
||||
"Organisms": {
|
||||
"Welcome": {
|
||||
"heading": "Welcome to Versi!",
|
||||
"subheading": A Libre matrix client by TrueOG Network
|
||||
},
|
||||
"ViewSource": {
|
||||
"title": "View Source",
|
||||
"original_source": "Original source",
|
||||
"decrypted_source": "Decrypted source"
|
||||
},
|
||||
"SpaceManage": {
|
||||
"subtitle": "manage rooms",
|
||||
"load_more": "Load more",
|
||||
"rooms_and_spaces": "Rooms and spaces",
|
||||
"private_rooms_message": "Either the space contains private rooms or you need to join space to view it's rooms.",
|
||||
"items_selected_zero": "No selected items",
|
||||
"items_selected_one": "{{count}} selected item",
|
||||
"items_selected_other": "{{count}} selected items",
|
||||
"room_members_zero": "No room members",
|
||||
"room_members_one": "{{count}} room member",
|
||||
"room_members_other": "{{count}} room members",
|
||||
"mark_suggested_zero": "Marking no rooms as suggested",
|
||||
"mark_suggested_one": "Marking {{count}} room as suggested",
|
||||
"mark_suggested_other": "Marking {{count}} rooms as suggested",
|
||||
"mark_not_suggested_zero": "Marking no rooms as suggested",
|
||||
"mark_not_suggested_one": "Marking {{count}} room as suggested",
|
||||
"mark_not_suggested_other": "Marking {{count}} rooms as suggested",
|
||||
"remove_zero": "Removing no items",
|
||||
"remove_one": "Removing {{count}} item",
|
||||
"remove_other": "Removing {{count}} items.",
|
||||
"suggested": "Suggested",
|
||||
"mark_as_suggested": "Mark as suggested",
|
||||
"mark_as_not_suggested": "Mark as not suggested"
|
||||
},
|
||||
"SpaceSettings": {
|
||||
"subtitle": "space settings",
|
||||
"leave": {
|
||||
"leave_space": "Leave Space",
|
||||
"leave_dialog_title": "Leave Space",
|
||||
"leave_dialog_message": "Are you sure you want to leave {{space}}?"
|
||||
},
|
||||
"visibility": {
|
||||
"header": "Space visibility (who can join)"
|
||||
},
|
||||
"addresses": {
|
||||
"header": "Space addresses"
|
||||
},
|
||||
"categorize_subspaces": "Categorize subspaces",
|
||||
"uncategorize_subspaces": "Uncategorize subspaces",
|
||||
"pin_sidebar": "Pin to sidebar",
|
||||
"unpin_sidebar": "Unpin from sidebar"
|
||||
},
|
||||
"Settings": {
|
||||
"title": "设置",
|
||||
"theme": {
|
||||
"follow_system": {
|
||||
"title": "Follow system theme",
|
||||
"description": "Use light or dark mode based on the system settings."
|
||||
},
|
||||
"title": "主题",
|
||||
"theme_light": "Light",
|
||||
"theme_silver": "Silver",
|
||||
"theme_dark": "Dark",
|
||||
"theme_butter": "Butter"
|
||||
},
|
||||
"markdown": {
|
||||
"title": "Markdown formatting",
|
||||
"description": "Format messages with markdown before sending"
|
||||
},
|
||||
"hide_membership_events": {
|
||||
"title": "Hide membership events",
|
||||
"description": "Hide membership change messages from room timeline. (Join, Leave, Invite, Kick and Ban)"
|
||||
},
|
||||
"hide_nickname_avatar_events": {
|
||||
"title": "Hide nick/avatar events",
|
||||
"description": "Hide nickname and avatar change messages from the room timeline."
|
||||
},
|
||||
"notifications_and_sound": {
|
||||
"title": "Notifications & Sound",
|
||||
"desktop": {
|
||||
"title": "Desktop notifications",
|
||||
"description": "Show desktop notifications when new messages arrive."
|
||||
},
|
||||
"sound": {
|
||||
"title": "Notification sound",
|
||||
"description": "Play a sound when new messages arrive."
|
||||
}
|
||||
},
|
||||
"security": {
|
||||
"cross_signing": {
|
||||
"title": "Cross signing and backup"
|
||||
},
|
||||
"export_import_encryption_keys": {
|
||||
"title": "Export / Import encryption keys"
|
||||
},
|
||||
"export_encryption_keys": {
|
||||
"title": "Export E2E room keys",
|
||||
"description": "Export end-to-end encryption room keys to decrypt old messages in other session. In order to encrypt keys you need to set a password, which will be used while importing."
|
||||
},
|
||||
"import_encryption_keys": {
|
||||
"title": "Import E2E room keys",
|
||||
"description": "To decrypt older messages, Export E2EE room keys from Element (Settings > Security & Privacy > Encryption > Cryptography) and import them here. Imported keys are encrypted so you\\'ll have to enter the password you set in order to decrypt it."
|
||||
}
|
||||
},
|
||||
"logout": {
|
||||
"title": "Logout",
|
||||
"dialog": {
|
||||
"title": "Logout",
|
||||
"description": "Are you sure that you want to logout your session?",
|
||||
"confirm": "Logout"
|
||||
}
|
||||
},
|
||||
"about": {
|
||||
"application": "Application",
|
||||
"credits": "Credits"
|
||||
}
|
||||
},
|
||||
"ShortcutSpaces": {
|
||||
"header": "Pin Spaces",
|
||||
"pinned_spaces": "Pinned spaces",
|
||||
"no_pinned_spaces": "No pinned spaces",
|
||||
"unpinned_spaces": "Unpinned spaces",
|
||||
"no_unpinned_spaces": "No unpinned spaces",
|
||||
"spaces_selected_zero": "No selected spaces",
|
||||
"spaces_selected_one": "{{count}} selected space",
|
||||
"spaces_selected_other": "{{count}} selected spaces",
|
||||
"pin_button": "Pin"
|
||||
},
|
||||
"SecretStorageAccess": {
|
||||
"incorrect_security_key": "Incorrect security key",
|
||||
"incorrect_security_phrase": "Incorrect security phrase",
|
||||
"security_phrase": "Security Phrase",
|
||||
"security_key": "Security Key",
|
||||
"use_security_key": "Use Security Key",
|
||||
"use_security_phrase": "Use Security Phrase"
|
||||
},
|
||||
"KeyBackup": {
|
||||
"create_backup_title": "Create key backup",
|
||||
"create_backup_tooltip": "Create backup",
|
||||
"creating_backup": "Creating Backup...",
|
||||
"backup_created": "Successfully created backup",
|
||||
"backup_failed": "Failed to create backup",
|
||||
"restoring": "Restoring backup keys...",
|
||||
"restoring_progress": "Restoring backup keys... ({{progress}}/{{total}}",
|
||||
"restore_backup_title": "Restore Key Backup",
|
||||
"restore_backup_tooltip": "Restore Key Backup",
|
||||
"restore_complete": "Successfully restored backup keys ({{progress}}/{{total}})",
|
||||
"restore_failed_bad_key": "Failed to restore backup. Key is invalid!",
|
||||
"restore_failed_unknown": "Failed to restore backup.",
|
||||
"delete_key_backup_title": "Delete key backup",
|
||||
"delete_key_backup_tooltip": "Delete backup",
|
||||
"delete_key_backup_subtitle": "Deleting key backup is permanent.",
|
||||
"delete_key_backup_message": "All encrypted message keys stored on the server will be permanently deleted.",
|
||||
"encrypted_messages_backup_description": "Online backup your encrypted messages keys with your account data in case you lose access to your sessions. Your keys will be secured with a unique Security Key.",
|
||||
"encrypted_messages_backup_title": "Encrypted messages backup",
|
||||
"encrypted_messages_backup_cross_signing_disabled": "Setup cross signing to backup your encrypted messages."
|
||||
},
|
||||
"DeviceManage": {
|
||||
"edit_session_name_title": "Edit session name",
|
||||
"edit_session_name_subtitle": "Session name",
|
||||
"edit_session_name_tooltip": "Edit session name",
|
||||
"current_device_label": "Current",
|
||||
"verify_session_button": "Verify",
|
||||
"unverified_sessions_title": "Unverified sessions",
|
||||
"unverified_sessions_none": "No unverified sessions",
|
||||
"unencrypted_sessions_title": "Sessions without encryption support",
|
||||
"verified_sessions_title": "Verified sessions",
|
||||
"verified_sessions_none": "No verified sessions",
|
||||
"setup_cross_signing_message": "Setup cross signing in case you lose all your sessions",
|
||||
"loading_devices": "Loading devices...",
|
||||
"logout_device_title": "Logout {{device}}",
|
||||
"logout_device_message": "You are about to log out the session for {{device}}",
|
||||
"logout_device_confirm": "Logout",
|
||||
"logout_device_tooltip": "Remove session",
|
||||
"session_verification_title": "Session Verification",
|
||||
"session_name_privacy_message": "Session names are visible to everyone, so do not put any private info here."
|
||||
},
|
||||
"CrossSigning": {
|
||||
"title": "Cross Signing",
|
||||
"setup_failed": "Failed to setup cross signing. Please try again",
|
||||
"setup": "Setup cross signing",
|
||||
"save_security_key_message": "Please save this security key somewhere safe",
|
||||
"security_key_dialog_title": "Security Key",
|
||||
"security_key_generation_message": "We will generate a Security Key, which you can use to manage message backups and session verification.",
|
||||
"security_key_generation_button": "Generate Key",
|
||||
"security_phrase_message": "Alternatively you can set a 'Security Phrase' so you don't have to remember the long Security Key, and optionally save the key as a backup",
|
||||
"security_phrase_label": "Security Phrase",
|
||||
"security_phrase_confirm_label": "Confirm Security Phrase",
|
||||
"security_phrase_set_button": "Set Phrase & Generate Key",
|
||||
"setup_dialog_title": "Setup cross signing",
|
||||
"setup_message": "Setup to verify and keep track of all your sessions. Also required to backup encrypted message.",
|
||||
"reset_keys_subtitle": "Resetting cross-signing keys is permanent.",
|
||||
"reset_keys_message": "Anyone you have verified with will see security alerts and your message backup will lost. You almost certainly do not want to do this, unless you have lost Security Key or Phrase and every session you can cross-sign from."
|
||||
},
|
||||
"AuthRequest": {
|
||||
"wrong_password": "Wrong password. Please enter the correct password",
|
||||
"request_failed": "Request failed!",
|
||||
"password_label": "Account password"
|
||||
},
|
||||
"Search": {
|
||||
"description": "Type # for rooms, @ for DMs and * for spaces. Hotkey: Ctrl + k"
|
||||
},
|
||||
"RoomViewInput": {
|
||||
"upload_progress": "Uploading: {{progress}}/{{total}} ({{percent}}%)",
|
||||
"tombstone_replaced": "This room has been replaced, and is no longer active.",
|
||||
"tombstone_permission_denied": "You do not have permission to post to this room",
|
||||
"send_message_placeholder": "Send a message...",
|
||||
"emoji_tooltip": "Emoji",
|
||||
"file_size": "Size: {{size}}",
|
||||
"cancel_reply_tooltip": "Cancel reply"
|
||||
},
|
||||
"RoomViewHeader": {
|
||||
"search_tooltip": "Search",
|
||||
"people_tooltip": "People",
|
||||
"members_tooltip": "Members"
|
||||
},
|
||||
"RoomViewFloating": {
|
||||
"jump_unread": "Jump to unread messages",
|
||||
"mark_read": "Mark as read",
|
||||
"jump_latest": "Jump to latest",
|
||||
"user_typing_1": "<bold><user_one/></bold> is typing...",
|
||||
"user_typing_2": "<bold><user_one/></bold> and <bold><user_two/></bold> are typing...",
|
||||
"user_typing_3": "<bold><user_one/></bold>, <bold><user_two/></bold> and <bold><user_three/></bold> are typing...",
|
||||
"user_typing_4": "<bold><user_one/></bold>, <bold><user_two/></bold>, <bold><user_three/></bold> and <bold><user_four/></bold> are typing...",
|
||||
"user_typing_other": "<bold>Several people</bold> are typing..."
|
||||
},
|
||||
"RoomViewContent": {
|
||||
"welcome_to_room": "Welcome to {{room_name}}!",
|
||||
"beginning_room": "This is the beginning of the <bold>{{room_name}}</bold> room.",
|
||||
"beginning_dm": "This is the beginning of your direct message history with <bold>@{{user_name}}</bold>.",
|
||||
"created_on": "Created on {{date, datetime}}",
|
||||
"new_messages": "New messages"
|
||||
},
|
||||
"RoomSettings": {
|
||||
"leave_room": "Leave room",
|
||||
"leave_room_confirm_message": "Are you sure you want to leave {{room_name}}?",
|
||||
"leave_room_confirm_button": "Leave",
|
||||
"notification_header": "Notifications (Changing this will only affect you)",
|
||||
"visibility_header": "Room visibility (Who can join)",
|
||||
"address_header": "Room addresses",
|
||||
"encryption_header": "Encryption",
|
||||
"message_history_header": "Message history visibility",
|
||||
"room_settings_subtitle": "room settings"
|
||||
},
|
||||
"RoomCommon": {
|
||||
"user_joined": "<bold><user/></bold> joined the room",
|
||||
"user_left": "<bold><user/></bold> left the room",
|
||||
"user_left_reason": "<bold><user/></bold> left the room: <reason/>",
|
||||
"user_invited": "<bold><inviter/></bold> invited <bold><user/></bold>",
|
||||
"invite_cancelled": "<bold><inviter/></bold> cancelled <bold><user/>'s</bold> invite",
|
||||
"invite_rejected": "<bold><user/></bold> rejected the invitation",
|
||||
"user_kicked": "<bold><actor/></bold> kicked <bold><user/></bold>",
|
||||
"user_kicked_reason": "<bold><actor/></bold> kicked <bold><user/></bold>: <reason/>",
|
||||
"user_banned": "<bold><actor/></bold> banned <bold><user/></bold>",
|
||||
"user_banned_reason": "<bold><actor/></bold> banned <bold><user/></bold>: <reason/>",
|
||||
"user_unbanned": "<bold><actor/> unbanned <bold><user/></bold>",
|
||||
"avatar_set": "<bold><user/></bold> set an avatar",
|
||||
"avatar_changed": "<bold><user/></bold> changed their avatar",
|
||||
"avatar_removed": "<bold><user/></bold> removed their avatar",
|
||||
"name_set": "<bold><user/></bold> set their display name to <bold><new_name/></bold>",
|
||||
"name_changed": "<bold><user/></bold> changed their display name to <bold><new_name/></bold>",
|
||||
"name_removed": "<bold><user/></bold> removed their display name <bold><last_name/></bold>"
|
||||
},
|
||||
"PublicRooms": {
|
||||
"could_not_join_alias": "Unable to join {{alias}}. Either the room is private or doesn't exist",
|
||||
"try_joining_alias": "Try joining {{alias}}",
|
||||
"joining_alias": "Joining {{alias}}...",
|
||||
"no_public_rooms": "No public rooms on {{homeserver}}",
|
||||
"no_result_found": "No result found for '{{input}}' on {{homeserver}}",
|
||||
"title": "Public Rooms",
|
||||
"search_room_name_alias": "Room name or alias",
|
||||
"search_button": "Search",
|
||||
"loading": "Loading public rooms from {{homeserver}}...",
|
||||
"searching": "Searching for '{{query}}' on {{homeserver}}...",
|
||||
"result_title": "Public rooms on {{homeserver}}",
|
||||
"search_result_title": "Search result for '{{query}}' on {{homeserver}}"
|
||||
},
|
||||
"ProfileViewer": {
|
||||
"kick_button": "Kick",
|
||||
"kick_reason_label": "Kick Reason",
|
||||
"ban_button": "Ban",
|
||||
"ban_reason_label": "Ban reason",
|
||||
"loading_sessions": "Loading sessions...",
|
||||
"no_sessions_found": "No sessions found.",
|
||||
"view_sessions_one": "View session",
|
||||
"view_sessions_other": "View {{count}} sessions",
|
||||
"send_direct_message_button": "Message",
|
||||
"creating_dm_room": "Creating room...",
|
||||
"ignore": "Ignore",
|
||||
"ignoring": "Ignoring...",
|
||||
"unignore": "Unignore",
|
||||
"unignoring": "Unignoring...",
|
||||
"change_power_level": "Change power level",
|
||||
"shared_power_message": "You will not be able to undo this change as you are promoting the user to have the same power level as yourself. Are you sure?",
|
||||
"demoting_self_message": "You will not be able to undo this change as you are demoting yourself. Are you sure?"
|
||||
},
|
||||
"PeopleDrawer": {
|
||||
"title": "People",
|
||||
"members_one": "{{count}} member",
|
||||
"members_other": "{{count}} members",
|
||||
"joined": "Joined",
|
||||
"invited": "Invited",
|
||||
"banned": "Banned",
|
||||
"search_no_results": "No results found",
|
||||
"view_more": "View more",
|
||||
"placeholder": "Search",
|
||||
"invite_tooltip": "Invite"
|
||||
},
|
||||
"ProfileEditor": {
|
||||
"remove_avatar": "Remove avatar",
|
||||
"remove_avatar_confirmation": "Are you sure that you want to remove your avatar?",
|
||||
"display_name_message": "Display name of {{user_name}}"
|
||||
},
|
||||
"DrawerBreadcrumb": {
|
||||
"home": "Home"
|
||||
},
|
||||
"DrawerHeader": {
|
||||
"add_rooms_or_spaces": "Add rooms or spaces",
|
||||
"create_new_space": "Create new space",
|
||||
"create_new_room": "Create new room",
|
||||
"join_public_room": "Join public room",
|
||||
"join_with_address": "Join with address",
|
||||
"add_existing": "Add existing",
|
||||
"manage_rooms": "Manage rooms",
|
||||
"home": "Home",
|
||||
"direct_messages": "Direct messages",
|
||||
"start_dm_tooltip": "Start DM",
|
||||
"add_rooms_spaces_tooltip": "Add rooms/spaces"
|
||||
},
|
||||
"SideBar": {
|
||||
"settings_tooltip": "Settings",
|
||||
"unverified_sessions_one": "{{count}} unverified session",
|
||||
"unverified_sessions_other": "{{count}} unverified sessions",
|
||||
"home_tooltip": "Home",
|
||||
"direct_messages_tooltip": "People",
|
||||
"pin_spaces_tooltip": "Pin spaces",
|
||||
"search_tooltip": "Search",
|
||||
"invites_tooltip": "Invites"
|
||||
},
|
||||
"JoinAlias": {
|
||||
"invalid_address": "Invalid address.",
|
||||
"looking_for_address": "Looking for address...",
|
||||
"joining_alias": "Joining {{alias_name}}...",
|
||||
"couldnt_find_room_or_space_alias": "Unable to find room/space with {{alias_name}}. Either the room/space is private or doesn't exist.",
|
||||
"couldnt_find_room_or_space": "Unable to join {{alias_name}}. Either the room/space is private or doesn't exist.",
|
||||
"address_label": "Address",
|
||||
"title": "Join with address"
|
||||
},
|
||||
"InviteUser": {
|
||||
"user_not_found": "{{user_name}} not found!",
|
||||
"no_matches_found": "No matches found for {{user_name}}",
|
||||
"invite_result": {
|
||||
"invited": "Invited",
|
||||
"already_joined": "Already joined",
|
||||
"already_invited": "Already invited",
|
||||
"banned": "Banned"
|
||||
},
|
||||
"search_label": "Name or User ID",
|
||||
"search_result_title": "Search result for user {{user_name}}",
|
||||
"searching_for_user": "Searching for user {{user_name}}...",
|
||||
"invite_to_room": "Invite to {{room}}",
|
||||
"invite_to_dm": "Direct Message"
|
||||
},
|
||||
"InviteList": {
|
||||
"accept_invite": "Accept",
|
||||
"reject_invite": "Reject",
|
||||
"direct_messages_title": "Direct Messages",
|
||||
"rooms_title": "Rooms",
|
||||
"spaces_title": "Spaces",
|
||||
"title": "Invites"
|
||||
},
|
||||
"EmojiVerification": {
|
||||
"waiting_for_response": "Waiting for response from other device...",
|
||||
"confirmation_prompt": "Confirm the emoji below are displayed on both devices, in the same order:",
|
||||
"emojis_match_button": "They match",
|
||||
"emojis_dont_match_button": "They don't match",
|
||||
"accept_request_from_other_device_message": "Please accept the request from other device.",
|
||||
"begin_verification_process_message": "Click accept to start the verification process.",
|
||||
"begin_verification_button_text": "Accept",
|
||||
"title": "Emoji Verification"
|
||||
},
|
||||
"DragDrop": {
|
||||
"drop_file_to_upload_prompt": "Drop file to upload"
|
||||
},
|
||||
"CreateRoom": {
|
||||
"private_room_short": "Private",
|
||||
"restricted_room_short": "Restricted",
|
||||
"public_room_short": "Public",
|
||||
"private_room_long": "Private (invite only)",
|
||||
"restricted_room_long": "Restricted (space member can join)",
|
||||
"public_room_long": "Public (anyone can join)",
|
||||
"visibility_title": "Visibility",
|
||||
"visibility_message": "Visibility (who can join)",
|
||||
"select_who_can_join_space": "Select who can join this space",
|
||||
"select_who_can_join_room": "Select who can join this room",
|
||||
"space_address": "Space address",
|
||||
"room_address": "Room address",
|
||||
"room_address_already_in_use": "{{room_address}} is already in use",
|
||||
"e2e_title": "Enable end-to-end encryption",
|
||||
"e2e_message": "You can’t disable this later. Bridges & most bots won’t work yet.",
|
||||
"role_title": "Select your role",
|
||||
"role_message": "Selecting 'Admin' sets your power level to 100 whereas 'Founder' sets it to 101.",
|
||||
"creating_room": "Creating room...",
|
||||
"creating_space": "Creating space...",
|
||||
"topic_label": "Topic (optional)",
|
||||
"space_name": "Space name",
|
||||
"room_name": "Room name",
|
||||
"role_admin": "Admin",
|
||||
"role_founder": "Founder",
|
||||
"create_room": "Create room",
|
||||
"create_space": "Create space",
|
||||
"home": "Home"
|
||||
}
|
||||
},
|
||||
"Molecules": {
|
||||
"ConfirmDialog": {
|
||||
"cancel": "Cancel"
|
||||
},
|
||||
"ReusableDialog": {
|
||||
"close_tooltip": "Close"
|
||||
},
|
||||
"FollowingMembers": {
|
||||
"users_following_1": "<bold><user_one/></bold> is following the conversation",
|
||||
"users_following_2": "<bold><user_one/></bold> and <bold><user_two/></bold> are following the conversation",
|
||||
"users_following_3": "<bold><user_one/></bold>, <bold><user_two/></bold>, and <bold><user_three/></bold> are following the conversation",
|
||||
"users_following_other": "<bold><user_one/></bold>, <bold><user_two/></bold>, <bold><user_three/></bold> and {{other_count}} others are following the conversation"
|
||||
},
|
||||
"ImageUpload": {
|
||||
"prompt": "Upload",
|
||||
"cancel": "Cancel",
|
||||
"remove": "Remove"
|
||||
},
|
||||
"ExportE2ERoomKeys": {
|
||||
"getting_keys": "Getting keys...",
|
||||
"encrypting_keys": "Encrypting Keys...",
|
||||
"password_does_not_match": "Password does not match.",
|
||||
"export_success": "Successfully exported all keys.",
|
||||
"export_failed": "Failed to export keys. Please try again.",
|
||||
"button_text": "Export"
|
||||
},
|
||||
"ImportE2ERoomKeys": {
|
||||
"decrypting_file": "Decrypting file...",
|
||||
"decrypting_messages": "Decrypting messages...",
|
||||
"import_success": "Successfully imported all keys",
|
||||
"import_failed": "Failed tp decrypt keys. Please try again",
|
||||
"import_keys_button": "Import Keys",
|
||||
"decrypt_button": "Decrypt"
|
||||
},
|
||||
"Media": {
|
||||
"open_new_tab": "Open in new tab",
|
||||
"download": "Download",
|
||||
"play_audio": "Play audio",
|
||||
"play_video": "Play video"
|
||||
},
|
||||
"Message": {
|
||||
"message_deleted": "*** This message has been deleted ***",
|
||||
"unable_to_load_reply": "*** Unable to load reply ***",
|
||||
"unknown_user": "** Unknown user **",
|
||||
"edited": "(edited)",
|
||||
"edit_placeholder": "Edit message",
|
||||
"user_reacted_1": "<bold><user_one/></bold> reacted with <emoji/>",
|
||||
"user_reacted_2": "<bold><user_one/></bold> and <bold><user_two/></bold> reacted with <emoji/>",
|
||||
"user_reacted_3": "<bold><user_one/></bold>, <bold><user_two/></bold> and <bold><user_three/></bold> reacted with <emoji/>",
|
||||
"user_reacted_other": "<bold><user_one/></bold>, <bold><user_two/></bold>, <bold><user_three/></bold> and {{other_count}} others reacted with <emoji/>",
|
||||
"add_reaction_tooltip": "Add reaction",
|
||||
"reply_tooltip": "Reply",
|
||||
"edit_tooltip": "Edit",
|
||||
"options_header": "Options",
|
||||
"options_tooltip": "Options",
|
||||
"read_receipts": "Read receipts",
|
||||
"view_source": "View source",
|
||||
"delete_message_prompt": "Delete message",
|
||||
"delete_message_confirmation": "Are you sure that you want to delete this message?",
|
||||
"delete_message_button": "Delete"
|
||||
},
|
||||
"PopupWindow": {
|
||||
"close_tooltip": "Back"
|
||||
},
|
||||
"PowerLevelSelector": {
|
||||
"placeholder": "Power level"
|
||||
},
|
||||
"RoomAliases": {
|
||||
"invalid_characters": "Invalid character: only letter, numbers and _- are allowed.",
|
||||
"validating_alias": "validating {{alias}}...",
|
||||
"alias_available": "{{alias}} is available.",
|
||||
"alias_unavailable": "{{alias}} is unavailable.",
|
||||
"deleting_alias": "Deleting...",
|
||||
"set_main_alias": "Set as Main",
|
||||
"publish_alias": "Publish",
|
||||
"unpublish_alias": "Unpublish",
|
||||
"delete_alias": "Delete",
|
||||
"main_alias": "Main",
|
||||
"publish_to_room_directory": {
|
||||
"title": "Publish to room directory",
|
||||
"publish_room_message": "Publish this room to the {{homeserver}} publish directory?",
|
||||
"publish_space_message": "Publish this space to the {{homeserver}} publish directory?"
|
||||
},
|
||||
"published_addresses": {
|
||||
"title": "Published addresses",
|
||||
"none": "No published addresses",
|
||||
"no_main_address": "No main address (select one from below)",
|
||||
"message_room": "Published addresses can be used by anyone on any server to join your room. To publish an address, it needs to be set as a local address first.",
|
||||
"message_space": "Published addresses can be used by anyone on any server to join your space. To publish an address, it needs to be set as a local address first."
|
||||
},
|
||||
"local_addresses": {
|
||||
"title": "Local addresses",
|
||||
"none": "No local addresses",
|
||||
"message_room": "Set local addresses for this room so users can find this room through your homeserver.",
|
||||
"message_space": "Set local addresses for this space so users can find this space through your homeserver.",
|
||||
"add": "Add local address",
|
||||
"add_button": "Add",
|
||||
"placeholder_room": "my_room_address",
|
||||
"placeholder_space": "my_space_address",
|
||||
"hide": "Hide local addresses",
|
||||
"view": "View local addresses"
|
||||
}
|
||||
},
|
||||
"RoomEncryption": {
|
||||
"encryption_public_room_message": "It is not recommended to add encryption in public room. Anyone can find and join public rooms, so anyone should be able to read messages in them.",
|
||||
"encryption_message": "Once enabled, encryption for a room cannot be disabled. Messages sent in an encrypted room cannot be seen by the server, only by the participants of the room. Enabling encryption may prevent many bots and bridges from working correctly",
|
||||
"encryption_cannot_be_disabled": "Once enabled, encryption cannot be disabled.",
|
||||
"enable_room_encryption": "Enable room encryption",
|
||||
"enable_encryption_prompt": "Enable Encryption",
|
||||
"enable_encryption_button": "Enable",
|
||||
"continue_button": "Continue"
|
||||
},
|
||||
"RoomHistoryVisibility": {
|
||||
"world_readable": "Anyone (including guests)",
|
||||
"shared": "Members (all messages)",
|
||||
"invited": "Members (messages after invite)",
|
||||
"joined": "Members (messages after join)",
|
||||
"changes_only_affect_future": "Changes to history visibility will only apply to future messages. The visibility of existing history will have no effect."
|
||||
},
|
||||
"RoomMembers": {
|
||||
"search_title": "Search member",
|
||||
"found_members_one": "Found — one member",
|
||||
"found_members_other": "Found — {{count}} members",
|
||||
"no_results": "No results found for {{term}}",
|
||||
"no_members": "No members to display",
|
||||
"view_more": "View more",
|
||||
"joined": "Joined",
|
||||
"invited": "Invited",
|
||||
"banned": "Banned",
|
||||
"search_placeholder": "Search for name"
|
||||
},
|
||||
"RoomNotification": {
|
||||
"default": "Global",
|
||||
"all_messages": "All messages",
|
||||
"mentions_and_keywords": "Mentions & Keywords",
|
||||
"mute": "Mute"
|
||||
},
|
||||
"RoomOptions": {
|
||||
"title": "Options for {{room_name}}",
|
||||
"leave": {
|
||||
"title": "Leave room",
|
||||
"subtitle": "Are you sure you want to leave the {{room_name}} room?",
|
||||
"button_text": "Leave"
|
||||
},
|
||||
"mark_as_read": "Mark as read",
|
||||
"notifications_heading": "Notifications",
|
||||
"invite": "Invite"
|
||||
},
|
||||
"RoomPermissions": {
|
||||
"default_role": {
|
||||
"name": "Default role",
|
||||
"description": "Set default role for all members"
|
||||
},
|
||||
"send_messages": {
|
||||
"name": "Send messages",
|
||||
"description": "Set minimum power level to send messages in a room"
|
||||
},
|
||||
"reactions": {
|
||||
"name": "Send reactions",
|
||||
"description": "Set minimum power level to send reactions in a room"
|
||||
},
|
||||
"delete": {
|
||||
"name": "Delete messages sent by others",
|
||||
"description": "Set minumum power level to delete messages in a room"
|
||||
},
|
||||
"notifications": {
|
||||
"name": "Ping room",
|
||||
"description": "Set minimum power level to ping room"
|
||||
},
|
||||
"manage_rooms": {
|
||||
"name": "Manage rooms in space",
|
||||
"description": "Set minimum power level to manage rooms in space"
|
||||
},
|
||||
"invite": {
|
||||
"name": "Invite",
|
||||
"description": "Set minimum power level to invite members"
|
||||
},
|
||||
"kick": {
|
||||
"name": "Kick",
|
||||
"description": "Set minimum power level to kick members"
|
||||
},
|
||||
"ban": {
|
||||
"name": "Ban",
|
||||
"description": "Set minimum power level to ban members"
|
||||
},
|
||||
"change_avatar": {
|
||||
"name": "Change avatar",
|
||||
"description": "Set minimum power level to change room/space avatar"
|
||||
},
|
||||
"change_name": {
|
||||
"name": "Change name",
|
||||
"description": "Set minimum power evel to change room/space name"
|
||||
},
|
||||
"change_topic": {
|
||||
"name": "Change topic",
|
||||
"description": "Set minimum power level to change room/space topic"
|
||||
},
|
||||
"change_settings": {
|
||||
"name": "Change settings",
|
||||
"description": "Set minimum power level to change settings"
|
||||
},
|
||||
"change_published_address": {
|
||||
"name": "Change published address",
|
||||
"description": "Set minimum power level to publish and set main address"
|
||||
},
|
||||
"change_permissions": {
|
||||
"name": "Change permissions",
|
||||
"description": "Set minimum power level to change permissions"
|
||||
},
|
||||
"enable_room_encryption": {
|
||||
"name": "Enable room encryption",
|
||||
"description": "Set minimum power level to enable room encryption"
|
||||
},
|
||||
"change_history_visibility": {
|
||||
"name": "Change history visibility",
|
||||
"description": "Set minimum power level to change room message history visibility"
|
||||
},
|
||||
"upgrade_room": {
|
||||
"name": "Upgrade room",
|
||||
"description": "Set minimum power level to upgrade room"
|
||||
},
|
||||
"pin_messages": {
|
||||
"name": "Pin messages",
|
||||
"description": "Set minimum power level to pin messages in a room"
|
||||
},
|
||||
"change_acls": {
|
||||
"name": "Change server ACLs",
|
||||
"description": "Set minimum power level to change server ACLs"
|
||||
},
|
||||
"modify_widgets": {
|
||||
"name": "Modify widgets",
|
||||
"description": "Set minimum power level to modify room widgets"
|
||||
},
|
||||
"groups": {
|
||||
"general": "General permissions",
|
||||
"manage_members": "Manage members permissions",
|
||||
"room": "Room profile permissions",
|
||||
"space": "Space profile permissions",
|
||||
"other": "Other permissions",
|
||||
"settings": "Settings permissions"
|
||||
}
|
||||
},
|
||||
"RoomProfile": {
|
||||
"saving_room_name": "Saving room name...",
|
||||
"saving_room_topic": "Saving room topic...",
|
||||
"save_success": "Saved successfully",
|
||||
"save_failed": "Unable to save",
|
||||
"remove_avatar_title": "Remove avatar",
|
||||
"remove_avatar_subtitle": "Are you sure that you want to remove room avatar?",
|
||||
"remove_avatar_button": "Remove",
|
||||
"permission_change_room_name": "You have permission to change room name only",
|
||||
"permission_change_room_topic": "You have permission to change room topic only",
|
||||
"permission_change_space_name": "You have permission to change space name only",
|
||||
"permission_change_space_topic": "You have permission to change space topic only",
|
||||
"name_label": "Name",
|
||||
"topic_label": "Topic"
|
||||
},
|
||||
"RoomSearch": {
|
||||
"title": "Room search",
|
||||
"placeholder": "Search for keywords",
|
||||
"search_button": "Search",
|
||||
"searching": "Searching room messages...",
|
||||
"subtitle": "Search room messages",
|
||||
"failed": "Failed to search messages",
|
||||
"no_results": "No results found",
|
||||
"encrypted_room": "Search does not work in encrypted room",
|
||||
"load_more": "Load more",
|
||||
"results_one": "{{count}} result for {{term}}",
|
||||
"results_other": "{{count}} results for {{term}}"
|
||||
},
|
||||
"RoomTile": {
|
||||
"invited_by_user_zero": "Invited by {{inviter}} to {{id}}",
|
||||
"invited_by_user_one": "Invited by {{inviter}} to {{id}} • {{member_count}} member",
|
||||
"invited_by_user_other": "Invited by {{inviter}} to {{id}} • {{member_count}} members",
|
||||
"invited_zero": "{{id}}",
|
||||
"invited_one": "{{id}} • {{member_count}} member",
|
||||
"invited_other": "{{id}} • {{member_count}} members"
|
||||
},
|
||||
"RoomVisibility": {
|
||||
"private": "Private (invite only)",
|
||||
"restricted": "Restricted (space members can join)",
|
||||
"restricted_unsupported": "Restricted (Unsupported: room required upgrade)",
|
||||
"public": "Public (anyone can join)"
|
||||
},
|
||||
"RoomEmojis": {
|
||||
"header": "Create Pack",
|
||||
"submit_button": "Create pack",
|
||||
"name_placeholder": "Pack Name",
|
||||
"no_packs": "No emoji or sticker packs."
|
||||
},
|
||||
"ImagePack": {
|
||||
"rename_title": "Rename",
|
||||
"rename_button": "Rename",
|
||||
"shortcode_label": "Shortcode",
|
||||
"delete_item_title": "Delete",
|
||||
"delete_item_message": "Are you sure that you want to delete {{key}}?",
|
||||
"delete_item_button": "Delete",
|
||||
"delete_pack_title": "Delete Pack",
|
||||
"delete_pack_message": "Are you sure that you want to delete {{pack_name}}?",
|
||||
"delete_pack_button": "Delete",
|
||||
"image_title": "Image",
|
||||
"image_shortcode": "Shortcode",
|
||||
"image_usage": "Usage",
|
||||
"view_more": "View {{count}} more",
|
||||
"view_less": "View less",
|
||||
"use_globally": "Use globally",
|
||||
"use_globally_description": "Add this pack to your account to use in all rooms.",
|
||||
"no_global_packs": "No global packs",
|
||||
"default_personal_pack_name": "Personal"
|
||||
},
|
||||
"ImagePackItem": {
|
||||
"rename_tooltip": "Rename",
|
||||
"delete_tooltip": "Delete"
|
||||
},
|
||||
"ImagePackUsageSelector": {
|
||||
"header": "Usage",
|
||||
"type_emoji": "Emoji",
|
||||
"type_sticker": "Sticker",
|
||||
"type_both": "Both"
|
||||
},
|
||||
"ImagePackUpload": {
|
||||
"remove_file_tooltip": "Remove file",
|
||||
"import_image_button": "Import image",
|
||||
"shortcode_placeholder": "shortcode",
|
||||
"upload_button": "Upload",
|
||||
"upload_button_progress": "Uploading..."
|
||||
},
|
||||
"ImagePackProfile": {
|
||||
"attribution_prompt": "Attribution",
|
||||
"name_prompt": "Name",
|
||||
"edit_tooltip": "Edit",
|
||||
"usage_header": "Usage",
|
||||
"pack_usage": "Pack usage"
|
||||
},
|
||||
"SpaceAddExisting": {
|
||||
"adding_items_one": "Adding one item...",
|
||||
"adding_items_other": "Adding {{count}} items...",
|
||||
"items_selected_one": "{{count}} item selected",
|
||||
"items_selected_other": "{{count}} items selected",
|
||||
"search_rooms_placeholder": "Search rooms",
|
||||
"no_results": "No results found",
|
||||
"add_button": "Add",
|
||||
"subtitle": "add existing rooms"
|
||||
},
|
||||
"SpaceOptions": {
|
||||
"leave_space": "Leave Space",
|
||||
"leave_space_confirmation": "Are you sure that you want to leave the {{space}} space?",
|
||||
"leave_space_confirm": "Leave",
|
||||
"invite": "Invite",
|
||||
"manage_rooms": "Manage rooms",
|
||||
"settings": "Settings",
|
||||
"leave": "Leave"
|
||||
},
|
||||
"SSOButtons": {
|
||||
"login_with": "Login with {{idp_name}}"
|
||||
}
|
||||
},
|
||||
"Templates": {
|
||||
"Auth": {
|
||||
"loading_homeserver_list": "Loading homeserver list...",
|
||||
"looking_for_homeserver": "Looking for homeserver...",
|
||||
"connecting_to_homeserver": "Connecting to {{homeserver}}...",
|
||||
"unable_to_connect": "Unable to connect. Please check your input",
|
||||
"username_taken": "Username is already taken",
|
||||
"registration_in_progress": "Registration in progress...",
|
||||
"link_about": "About",
|
||||
"link_twitter": "Twitter",
|
||||
"link_matrix": "Powered by Matrix",
|
||||
"dont_have_an_account": "Dont have an account?",
|
||||
"already_have_an_account": "Already have an account?",
|
||||
"register_link": "Register",
|
||||
"login_link": "Login",
|
||||
"redirecting": "Redirecting...",
|
||||
"login_in_progress": "Login in progress...",
|
||||
"bad_localpart_error": "Username can only contain characters a-z, 0-9, or '=_-./'",
|
||||
"user_id_too_long_error": "Your user ID, including the hostname, can't be more than 255 characters long.",
|
||||
"bad_password_error": "Password must contain at least 1 lowercase, 1 uppercase, 1 number, 1 non-alphanumeric character, 8-127 characters with no space.",
|
||||
"confirm_password_error": "Passwords don't match.",
|
||||
"bad_email_error": "Invalid email address",
|
||||
"invalid_password": "Invalid password",
|
||||
"check_credentials": "Please check your credentials",
|
||||
"login_types": {
|
||||
"username": "Username",
|
||||
"email": "Email"
|
||||
},
|
||||
"homeserver_form": {
|
||||
"title": "Homeserver",
|
||||
"header": "Homeserver list"
|
||||
},
|
||||
"login_form": {
|
||||
"title": "Login",
|
||||
"prompt_email": "Email",
|
||||
"prompt_username": "Username",
|
||||
"prompt_password": "Password",
|
||||
"login_button": "Login"
|
||||
},
|
||||
"register_form": {
|
||||
"title": "Register",
|
||||
"prompt_email_required": "Email (Required)",
|
||||
"prompt_email_optional": "Email",
|
||||
"prompt_username": "Username",
|
||||
"prompt_password": "Password",
|
||||
"prompt_confirm_password": "Confirm password",
|
||||
"register_button": "Register"
|
||||
},
|
||||
"terms_and_conditions": {
|
||||
"title": "Agree with terms",
|
||||
"description": "In order to complete registration, you need to agree to the terms and conditions.",
|
||||
"accept": "I accept <a>Terms and Conditions</a>",
|
||||
"submit_button": "Submit"
|
||||
},
|
||||
"validate_email": {
|
||||
"title": "Verify email",
|
||||
"continue_button": "Continue",
|
||||
"message": "Please check your email <bold>{{email_address}}</bold> and validate before continuing further"
|
||||
},
|
||||
"captcha": {
|
||||
"message": "Pleace check the box below to proceed"
|
||||
}
|
||||
},
|
||||
"Client": {
|
||||
"loading_messages": {
|
||||
"default": "Heating up",
|
||||
"message_one": "Almost there...",
|
||||
"message_two": "Looks like you have a lot of stuff to heat up!"
|
||||
},
|
||||
"logout_prompt": "Logout"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
{
|
||||
"name": "Versi",
|
||||
"short_name": "Versi",
|
||||
"description": "A Libre matrix client by TrueOG Network",
|
||||
"dir": "auto",
|
||||
"lang": "en-US",
|
||||
"display": "standalone",
|
||||
"orientation": "portrait",
|
||||
"start_url": "/",
|
||||
"background_color": "#fff",
|
||||
"theme_color": "#fff",
|
||||
"icons": [
|
||||
{
|
||||
"src": "/public/android/android-chrome-36x36.png",
|
||||
"sizes": "36x36",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "/public/android/android-chrome-48x48.png",
|
||||
"sizes": "48x48",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "/public/android/android-chrome-72x72.png",
|
||||
"sizes": "72x72",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "/public/android/android-chrome-96x96.png",
|
||||
"sizes": "96x96",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "/public/android/android-chrome-144x144.png",
|
||||
"sizes": "144x144",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "/public/android/android-chrome-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "/public/android/android-chrome-256x256.png",
|
||||
"sizes": "256x256",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "/public/android/android-chrome-384x384.png",
|
||||
"sizes": "384x384",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "/public/android/android-chrome-512x512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,395 +0,0 @@
|
||||
Attribution 4.0 International
|
||||
|
||||
=======================================================================
|
||||
|
||||
Creative Commons Corporation ("Creative Commons") is not a law firm and
|
||||
does not provide legal services or legal advice. Distribution of
|
||||
Creative Commons public licenses does not create a lawyer-client or
|
||||
other relationship. Creative Commons makes its licenses and related
|
||||
information available on an "as-is" basis. Creative Commons gives no
|
||||
warranties regarding its licenses, any material licensed under their
|
||||
terms and conditions, or any related information. Creative Commons
|
||||
disclaims all liability for damages resulting from their use to the
|
||||
fullest extent possible.
|
||||
|
||||
Using Creative Commons Public Licenses
|
||||
|
||||
Creative Commons public licenses provide a standard set of terms and
|
||||
conditions that creators and other rights holders may use to share
|
||||
original works of authorship and other material subject to copyright
|
||||
and certain other rights specified in the public license below. The
|
||||
following considerations are for informational purposes only, are not
|
||||
exhaustive, and do not form part of our licenses.
|
||||
|
||||
Considerations for licensors: Our public licenses are
|
||||
intended for use by those authorized to give the public
|
||||
permission to use material in ways otherwise restricted by
|
||||
copyright and certain other rights. Our licenses are
|
||||
irrevocable. Licensors should read and understand the terms
|
||||
and conditions of the license they choose before applying it.
|
||||
Licensors should also secure all rights necessary before
|
||||
applying our licenses so that the public can reuse the
|
||||
material as expected. Licensors should clearly mark any
|
||||
material not subject to the license. This includes other CC-
|
||||
licensed material, or material used under an exception or
|
||||
limitation to copyright. More considerations for licensors:
|
||||
wiki.creativecommons.org/Considerations_for_licensors
|
||||
|
||||
Considerations for the public: By using one of our public
|
||||
licenses, a licensor grants the public permission to use the
|
||||
licensed material under specified terms and conditions. If
|
||||
the licensor's permission is not necessary for any reason--for
|
||||
example, because of any applicable exception or limitation to
|
||||
copyright--then that use is not regulated by the license. Our
|
||||
licenses grant only permissions under copyright and certain
|
||||
other rights that a licensor has authority to grant. Use of
|
||||
the licensed material may still be restricted for other
|
||||
reasons, including because others have copyright or other
|
||||
rights in the material. A licensor may make special requests,
|
||||
such as asking that all changes be marked or described.
|
||||
Although not required by our licenses, you are encouraged to
|
||||
respect those requests where reasonable. More considerations
|
||||
for the public:
|
||||
wiki.creativecommons.org/Considerations_for_licensees
|
||||
|
||||
=======================================================================
|
||||
|
||||
Creative Commons Attribution 4.0 International Public License
|
||||
|
||||
By exercising the Licensed Rights (defined below), You accept and agree
|
||||
to be bound by the terms and conditions of this Creative Commons
|
||||
Attribution 4.0 International Public License ("Public License"). To the
|
||||
extent this Public License may be interpreted as a contract, You are
|
||||
granted the Licensed Rights in consideration of Your acceptance of
|
||||
these terms and conditions, and the Licensor grants You such rights in
|
||||
consideration of benefits the Licensor receives from making the
|
||||
Licensed Material available under these terms and conditions.
|
||||
|
||||
|
||||
Section 1 -- Definitions.
|
||||
|
||||
a. Adapted Material means material subject to Copyright and Similar
|
||||
Rights that is derived from or based upon the Licensed Material
|
||||
and in which the Licensed Material is translated, altered,
|
||||
arranged, transformed, or otherwise modified in a manner requiring
|
||||
permission under the Copyright and Similar Rights held by the
|
||||
Licensor. For purposes of this Public License, where the Licensed
|
||||
Material is a musical work, performance, or sound recording,
|
||||
Adapted Material is always produced where the Licensed Material is
|
||||
synched in timed relation with a moving image.
|
||||
|
||||
b. Adapter's License means the license You apply to Your Copyright
|
||||
and Similar Rights in Your contributions to Adapted Material in
|
||||
accordance with the terms and conditions of this Public License.
|
||||
|
||||
c. Copyright and Similar Rights means copyright and/or similar rights
|
||||
closely related to copyright including, without limitation,
|
||||
performance, broadcast, sound recording, and Sui Generis Database
|
||||
Rights, without regard to how the rights are labeled or
|
||||
categorized. For purposes of this Public License, the rights
|
||||
specified in Section 2(b)(1)-(2) are not Copyright and Similar
|
||||
Rights.
|
||||
|
||||
d. Effective Technological Measures means those measures that, in the
|
||||
absence of proper authority, may not be circumvented under laws
|
||||
fulfilling obligations under Article 11 of the WIPO Copyright
|
||||
Treaty adopted on December 20, 1996, and/or similar international
|
||||
agreements.
|
||||
|
||||
e. Exceptions and Limitations means fair use, fair dealing, and/or
|
||||
any other exception or limitation to Copyright and Similar Rights
|
||||
that applies to Your use of the Licensed Material.
|
||||
|
||||
f. Licensed Material means the artistic or literary work, database,
|
||||
or other material to which the Licensor applied this Public
|
||||
License.
|
||||
|
||||
g. Licensed Rights means the rights granted to You subject to the
|
||||
terms and conditions of this Public License, which are limited to
|
||||
all Copyright and Similar Rights that apply to Your use of the
|
||||
Licensed Material and that the Licensor has authority to license.
|
||||
|
||||
h. Licensor means the individual(s) or entity(ies) granting rights
|
||||
under this Public License.
|
||||
|
||||
i. Share means to provide material to the public by any means or
|
||||
process that requires permission under the Licensed Rights, such
|
||||
as reproduction, public display, public performance, distribution,
|
||||
dissemination, communication, or importation, and to make material
|
||||
available to the public including in ways that members of the
|
||||
public may access the material from a place and at a time
|
||||
individually chosen by them.
|
||||
|
||||
j. Sui Generis Database Rights means rights other than copyright
|
||||
resulting from Directive 96/9/EC of the European Parliament and of
|
||||
the Council of 11 March 1996 on the legal protection of databases,
|
||||
as amended and/or succeeded, as well as other essentially
|
||||
equivalent rights anywhere in the world.
|
||||
|
||||
k. You means the individual or entity exercising the Licensed Rights
|
||||
under this Public License. Your has a corresponding meaning.
|
||||
|
||||
|
||||
Section 2 -- Scope.
|
||||
|
||||
a. License grant.
|
||||
|
||||
1. Subject to the terms and conditions of this Public License,
|
||||
the Licensor hereby grants You a worldwide, royalty-free,
|
||||
non-sublicensable, non-exclusive, irrevocable license to
|
||||
exercise the Licensed Rights in the Licensed Material to:
|
||||
|
||||
a. reproduce and Share the Licensed Material, in whole or
|
||||
in part; and
|
||||
|
||||
b. produce, reproduce, and Share Adapted Material.
|
||||
|
||||
2. Exceptions and Limitations. For the avoidance of doubt, where
|
||||
Exceptions and Limitations apply to Your use, this Public
|
||||
License does not apply, and You do not need to comply with
|
||||
its terms and conditions.
|
||||
|
||||
3. Term. The term of this Public License is specified in Section
|
||||
6(a).
|
||||
|
||||
4. Media and formats; technical modifications allowed. The
|
||||
Licensor authorizes You to exercise the Licensed Rights in
|
||||
all media and formats whether now known or hereafter created,
|
||||
and to make technical modifications necessary to do so. The
|
||||
Licensor waives and/or agrees not to assert any right or
|
||||
authority to forbid You from making technical modifications
|
||||
necessary to exercise the Licensed Rights, including
|
||||
technical modifications necessary to circumvent Effective
|
||||
Technological Measures. For purposes of this Public License,
|
||||
simply making modifications authorized by this Section 2(a)
|
||||
(4) never produces Adapted Material.
|
||||
|
||||
5. Downstream recipients.
|
||||
|
||||
a. Offer from the Licensor -- Licensed Material. Every
|
||||
recipient of the Licensed Material automatically
|
||||
receives an offer from the Licensor to exercise the
|
||||
Licensed Rights under the terms and conditions of this
|
||||
Public License.
|
||||
|
||||
b. No downstream restrictions. You may not offer or impose
|
||||
any additional or different terms or conditions on, or
|
||||
apply any Effective Technological Measures to, the
|
||||
Licensed Material if doing so restricts exercise of the
|
||||
Licensed Rights by any recipient of the Licensed
|
||||
Material.
|
||||
|
||||
6. No endorsement. Nothing in this Public License constitutes or
|
||||
may be construed as permission to assert or imply that You
|
||||
are, or that Your use of the Licensed Material is, connected
|
||||
with, or sponsored, endorsed, or granted official status by,
|
||||
the Licensor or others designated to receive attribution as
|
||||
provided in Section 3(a)(1)(A)(i).
|
||||
|
||||
b. Other rights.
|
||||
|
||||
1. Moral rights, such as the right of integrity, are not
|
||||
licensed under this Public License, nor are publicity,
|
||||
privacy, and/or other similar personality rights; however, to
|
||||
the extent possible, the Licensor waives and/or agrees not to
|
||||
assert any such rights held by the Licensor to the limited
|
||||
extent necessary to allow You to exercise the Licensed
|
||||
Rights, but not otherwise.
|
||||
|
||||
2. Patent and trademark rights are not licensed under this
|
||||
Public License.
|
||||
|
||||
3. To the extent possible, the Licensor waives any right to
|
||||
collect royalties from You for the exercise of the Licensed
|
||||
Rights, whether directly or through a collecting society
|
||||
under any voluntary or waivable statutory or compulsory
|
||||
licensing scheme. In all other cases the Licensor expressly
|
||||
reserves any right to collect such royalties.
|
||||
|
||||
|
||||
Section 3 -- License Conditions.
|
||||
|
||||
Your exercise of the Licensed Rights is expressly made subject to the
|
||||
following conditions.
|
||||
|
||||
a. Attribution.
|
||||
|
||||
1. If You Share the Licensed Material (including in modified
|
||||
form), You must:
|
||||
|
||||
a. retain the following if it is supplied by the Licensor
|
||||
with the Licensed Material:
|
||||
|
||||
i. identification of the creator(s) of the Licensed
|
||||
Material and any others designated to receive
|
||||
attribution, in any reasonable manner requested by
|
||||
the Licensor (including by pseudonym if
|
||||
designated);
|
||||
|
||||
ii. a copyright notice;
|
||||
|
||||
iii. a notice that refers to this Public License;
|
||||
|
||||
iv. a notice that refers to the disclaimer of
|
||||
warranties;
|
||||
|
||||
v. a URI or hyperlink to the Licensed Material to the
|
||||
extent reasonably practicable;
|
||||
|
||||
b. indicate if You modified the Licensed Material and
|
||||
retain an indication of any previous modifications; and
|
||||
|
||||
c. indicate the Licensed Material is licensed under this
|
||||
Public License, and include the text of, or the URI or
|
||||
hyperlink to, this Public License.
|
||||
|
||||
2. You may satisfy the conditions in Section 3(a)(1) in any
|
||||
reasonable manner based on the medium, means, and context in
|
||||
which You Share the Licensed Material. For example, it may be
|
||||
reasonable to satisfy the conditions by providing a URI or
|
||||
hyperlink to a resource that includes the required
|
||||
information.
|
||||
|
||||
3. If requested by the Licensor, You must remove any of the
|
||||
information required by Section 3(a)(1)(A) to the extent
|
||||
reasonably practicable.
|
||||
|
||||
4. If You Share Adapted Material You produce, the Adapter's
|
||||
License You apply must not prevent recipients of the Adapted
|
||||
Material from complying with this Public License.
|
||||
|
||||
|
||||
Section 4 -- Sui Generis Database Rights.
|
||||
|
||||
Where the Licensed Rights include Sui Generis Database Rights that
|
||||
apply to Your use of the Licensed Material:
|
||||
|
||||
a. for the avoidance of doubt, Section 2(a)(1) grants You the right
|
||||
to extract, reuse, reproduce, and Share all or a substantial
|
||||
portion of the contents of the database;
|
||||
|
||||
b. if You include all or a substantial portion of the database
|
||||
contents in a database in which You have Sui Generis Database
|
||||
Rights, then the database in which You have Sui Generis Database
|
||||
Rights (but not its individual contents) is Adapted Material; and
|
||||
|
||||
c. You must comply with the conditions in Section 3(a) if You Share
|
||||
all or a substantial portion of the contents of the database.
|
||||
|
||||
For the avoidance of doubt, this Section 4 supplements and does not
|
||||
replace Your obligations under this Public License where the Licensed
|
||||
Rights include other Copyright and Similar Rights.
|
||||
|
||||
|
||||
Section 5 -- Disclaimer of Warranties and Limitation of Liability.
|
||||
|
||||
a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
|
||||
EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
|
||||
AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
|
||||
ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
|
||||
IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
|
||||
WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
|
||||
PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
|
||||
ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
|
||||
KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
|
||||
ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
|
||||
|
||||
b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
|
||||
TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
|
||||
NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
|
||||
INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
|
||||
COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
|
||||
USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
|
||||
ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
|
||||
DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
|
||||
IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
|
||||
|
||||
c. The disclaimer of warranties and limitation of liability provided
|
||||
above shall be interpreted in a manner that, to the extent
|
||||
possible, most closely approximates an absolute disclaimer and
|
||||
waiver of all liability.
|
||||
|
||||
|
||||
Section 6 -- Term and Termination.
|
||||
|
||||
a. This Public License applies for the term of the Copyright and
|
||||
Similar Rights licensed here. However, if You fail to comply with
|
||||
this Public License, then Your rights under this Public License
|
||||
terminate automatically.
|
||||
|
||||
b. Where Your right to use the Licensed Material has terminated under
|
||||
Section 6(a), it reinstates:
|
||||
|
||||
1. automatically as of the date the violation is cured, provided
|
||||
it is cured within 30 days of Your discovery of the
|
||||
violation; or
|
||||
|
||||
2. upon express reinstatement by the Licensor.
|
||||
|
||||
For the avoidance of doubt, this Section 6(b) does not affect any
|
||||
right the Licensor may have to seek remedies for Your violations
|
||||
of this Public License.
|
||||
|
||||
c. For the avoidance of doubt, the Licensor may also offer the
|
||||
Licensed Material under separate terms or conditions or stop
|
||||
distributing the Licensed Material at any time; however, doing so
|
||||
will not terminate this Public License.
|
||||
|
||||
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
|
||||
License.
|
||||
|
||||
|
||||
Section 7 -- Other Terms and Conditions.
|
||||
|
||||
a. The Licensor shall not be bound by any additional or different
|
||||
terms or conditions communicated by You unless expressly agreed.
|
||||
|
||||
b. Any arrangements, understandings, or agreements regarding the
|
||||
Licensed Material not stated herein are separate from and
|
||||
independent of the terms and conditions of this Public License.
|
||||
|
||||
|
||||
Section 8 -- Interpretation.
|
||||
|
||||
a. For the avoidance of doubt, this Public License does not, and
|
||||
shall not be interpreted to, reduce, limit, restrict, or impose
|
||||
conditions on any use of the Licensed Material that could lawfully
|
||||
be made without permission under this Public License.
|
||||
|
||||
b. To the extent possible, if any provision of this Public License is
|
||||
deemed unenforceable, it shall be automatically reformed to the
|
||||
minimum extent necessary to make it enforceable. If the provision
|
||||
cannot be reformed, it shall be severed from this Public License
|
||||
without affecting the enforceability of the remaining terms and
|
||||
conditions.
|
||||
|
||||
c. No term or condition of this Public License will be waived and no
|
||||
failure to comply consented to unless expressly agreed to by the
|
||||
Licensor.
|
||||
|
||||
d. Nothing in this Public License constitutes or may be interpreted
|
||||
as a limitation upon, or waiver of, any privileges and immunities
|
||||
that apply to the Licensor or You, including from the legal
|
||||
processes of any jurisdiction or authority.
|
||||
|
||||
|
||||
=======================================================================
|
||||
|
||||
Creative Commons is not a party to its public
|
||||
licenses. Notwithstanding, Creative Commons may elect to apply one of
|
||||
its public licenses to material it publishes and in those instances
|
||||
will be considered the “Licensor.” The text of the Creative Commons
|
||||
public licenses is dedicated to the public domain under the CC0 Public
|
||||
Domain Dedication. Except for the limited purpose of indicating that
|
||||
material is shared under a Creative Commons public license or as
|
||||
otherwise permitted by the Creative Commons policies published at
|
||||
creativecommons.org/policies, Creative Commons does not authorize the
|
||||
use of the trademark "Creative Commons" or any other trademark or logo
|
||||
of Creative Commons without its prior written consent including,
|
||||
without limitation, in connection with any unauthorized modifications
|
||||
to any of its public licenses or any other arrangements,
|
||||
understandings, or agreements concerning use of licensed material. For
|
||||
the avoidance of doubt, this paragraph does not form part of the
|
||||
public licenses.
|
||||
|
||||
Creative Commons may be contacted at creativecommons.org.
|
||||
@@ -1,7 +0,0 @@
|
||||
Copyright (c) 2021-present Ajay Bura (ajbura)
|
||||
|
||||
Graphic content is licensed under a
|
||||
Creative Commons Attribution 4.0 International License.
|
||||
|
||||
You should have received a copy of the license along with this
|
||||
work. If not, see <http://creativecommons.org/licenses/by/4.0/>;.
|
||||
|
Before Width: | Height: | Size: 4.4 KiB |
|
Before Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 8.2 KiB |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 5.9 KiB |
|
Before Width: | Height: | Size: 6.5 KiB |
|
Before Width: | Height: | Size: 7.2 KiB |
|
Before Width: | Height: | Size: 7.7 KiB |
|
Before Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 3.1 KiB |
@@ -1,18 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
|
||||
<g>
|
||||
<path fill="#231F20" d="M9,11H5c-1.1,0-2-0.9-2-2V5c0-1.1,0.9-2,2-2h4c1.1,0,2,0.9,2,2v4C11,10.1,10.1,11,9,11z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#231F20" d="M19,11h-4c-1.1,0-2-0.9-2-2V5c0-1.1,0.9-2,2-2h4c1.1,0,2,0.9,2,2v4C21,10.1,20.1,11,19,11z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#231F20" d="M9,21H5c-1.1,0-2-0.9-2-2v-4c0-1.1,0.9-2,2-2h4c1.1,0,2,0.9,2,2v4C11,20.1,10.1,21,9,21z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#231F20" d="M19,21h-4c-1.1,0-2-0.9-2-2v-4c0-1.1,0.9-2,2-2h4c1.1,0,2,0.9,2,2v4C21,20.1,20.1,21,19,21z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 940 B |
@@ -1,11 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
|
||||
<g>
|
||||
<path d="M13.8,4.7l0.7,0.7l-3.4,3.4L7.7,10l-1-1l-1.4,1.4l3.5,3.5l-5.7,5.7L4.6,21l5.7-5.7l3.5,3.5l1.4-1.4l-1-1l1.1-3.4l3.4-3.4
|
||||
l0.7,0.7L20.9,9l-5.7-5.7L13.8,4.7z M13.7,12l-1,2.9l-3.4-3.4l2.9-1l3.7-3.7l1.4,1.4L13.7,12z"/>
|
||||
<polygon points="10,3.3 7.8,3.3 7.8,1 6.3,1 6.3,3.3 4,3.3 4,4.8 6.3,4.8 6.3,7 7.8,7 7.8,4.8 10,4.8 "/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 781 B |
@@ -1,15 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
|
||||
<g>
|
||||
<path fill="#221F1F" d="M9,5v4H5V5H9 M9,3H5C3.9,3,3,3.9,3,5v4c0,1.1,0.9,2,2,2h4c1.1,0,2-0.9,2-2V5C11,3.9,10.1,3,9,3L9,3z"/>
|
||||
<path fill="#221F1F" d="M19,5v4h-4V5H19 M19,3h-4c-1.1,0-2,0.9-2,2v4c0,1.1,0.9,2,2,2h4c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3L19,3
|
||||
z"/>
|
||||
<path fill="#221F1F" d="M9,15v4H5v-4H9 M9,13H5c-1.1,0-2,0.9-2,2v4c0,1.1,0.9,2,2,2h4c1.1,0,2-0.9,2-2v-4C11,13.9,10.1,13,9,13
|
||||
L9,13z"/>
|
||||
<path fill="#221F1F" d="M19,15v4h-4v-4H19 M19,13h-4c-1.1,0-2,0.9-2,2v4c0,1.1,0.9,2,2,2h4c1.1,0,2-0.9,2-2v-4
|
||||
C21,13.9,20.1,13,19,13L19,13z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 995 B |
@@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
|
||||
<polygon points="9.5,14.1 6,10.6 4.6,12 8.1,15.5 9.5,16.9 19.4,7 18,5.6 "/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 520 B |
@@ -1,4 +1,12 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M14 3V5H17.8L12.9 9.9L14.3 11.3L19 6.6V10.2H21V3H14Z" fill="black"/>
|
||||
<path d="M5 5H10V3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V14.2H19V19H5V5Z" fill="black"/>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
|
||||
<g>
|
||||
<polygon points="14,3 14,5 17.8,5 12.9,9.9 14.3,11.3 19,6.6 19,10.2 21,10.2 21,3 "/>
|
||||
<path d="M3,10.2h2V5h5V3H5C3.9,3,3,3.9,3,5V10.2z"/>
|
||||
<path d="M5,14.2H3V19c0,1.1,0.9,2,2,2h5v-2H5V14.2z"/>
|
||||
<path d="M19,19h-5v2h5c1.1,0,2-0.9,2-2v-4.8h-2V19z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 297 B After Width: | Height: | Size: 703 B |
@@ -1,4 +0,0 @@
|
||||
<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="M4.92896 3.51471L3.51474 4.92892L5.97515 7.38933C4.46742 8.5776 3.32116 9.93994 2.7 10.8C2.1 11.5 2.1 12.5 2.7 13.2C4 15 7.6 19 12 19C13.5709 19 15.0398 18.4902 16.3384 17.7526L19.0711 20.4853L20.4853 19.0711L4.92896 3.51471ZM4.2 12C4.68291 11.3561 5.85678 9.9637 7.39721 8.81139L9.29238 10.7066C9.10496 11.0982 9 11.5368 9 12C9 13.6569 10.3431 15 12 15C12.4632 15 12.9018 14.895 13.2934 14.7076L14.8573 16.2715C13.9566 16.7128 12.9896 17 12 17C8.4 17 5.1 13.2 4.2 12Z" fill="black"/>
|
||||
<path d="M9.6226 5.37995L11.2906 7.04797C11.5254 7.01661 11.762 7 12 7C15.6 7 18.9 10.8 19.8 12C19.493 12.4094 18.9066 13.1213 18.1244 13.8817L19.5194 15.2768C20.2973 14.4974 20.9049 13.7471 21.3 13.2C21.9 12.5 21.9 11.5 21.3 10.8C20 9 16.4 5 12 5C11.1762 5 10.3805 5.14021 9.6226 5.37995Z" fill="black"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 943 B |
@@ -1,4 +1,13 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M12 19C7.6 19 4 15 2.7 13.2C2.1 12.5 2.1 11.5 2.7 10.8C4 9 7.6 5 12 5C16.4 5 20 9 21.3 10.8C21.9 11.5 21.9 12.5 21.3 13.2C20 15 16.4 19 12 19ZM12 7C8.4 7 5.1 10.8 4.2 12C5.1 13.2 8.4 17 12 17C15.6 17 18.9 13.2 19.8 12C18.9 10.8 15.6 7 12 7Z" fill="black"/>
|
||||
<path d="M12 15C13.6569 15 15 13.6569 15 12C15 10.3431 13.6569 9 12 9C10.3431 9 9 10.3431 9 12C9 13.6569 10.3431 15 12 15Z" fill="black"/>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
|
||||
<g>
|
||||
<g>
|
||||
<path d="M12,19c-4.4,0-8-4-9.3-5.8c-0.6-0.7-0.6-1.7,0-2.4C4,9,7.6,5,12,5s8,4,9.3,5.8c0.6,0.7,0.6,1.7,0,2.4C20,15,16.4,19,12,19
|
||||
z M12,7c-3.6,0-6.9,3.8-7.8,5c0.9,1.2,4.2,5,7.8,5s6.9-3.8,7.8-5C18.9,10.8,15.6,7,12,7z"/>
|
||||
</g>
|
||||
<circle cx="12" cy="12" r="3"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 508 B After Width: | Height: | Size: 718 B |
@@ -1,14 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
|
||||
<g>
|
||||
<polygon points="16,12 14,12 14,14 10,14 10,10 12,10 12,8 10,8 10,3 8,3 8,8 3,8 3,10 8,10 8,14 3,14 3,16 8,16 8,21 10,21 10,16
|
||||
14,16 14,21 16,21 16,16 21,16 21,14 16,14 "/>
|
||||
<path d="M18.5,1C16,1,14,3,14,5.5s2,4.5,4.5,4.5S23,8,23,5.5S21,1,18.5,1z M17.5,7C17.5,7,17.5,7,17.5,7c-0.2-0.1-0.3-0.1-0.3-0.2
|
||||
c-0.6-0.5-1.7-1.1-1.8-2c-0.1-0.7,0.8-1.6,1.3-2c0.8-0.6,2.3-1.1,3.2-0.5c0.6,0.4-1.2,1-1.4,1.3c-0.3,0.4-0.3,0.9-0.3,1.4
|
||||
c0,0.5,0.1,1.2-0.2,1.6C17.9,6.9,17.7,7,17.5,7z M20.8,7.9c-0.4,0.3-0.9,0.2-1.3,0.5c-0.1,0.1-0.2,0.2-0.3,0.2
|
||||
c-0.2,0.1-0.5-0.1-0.5-0.3c-0.3-0.8,0.3-1.2,0.9-1.3c0.3,0,0.7,0,1,0c0.2,0,0.4,0.1,0.4,0.3C21.1,7.5,20.9,7.7,20.8,7.9z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.1 KiB |
@@ -1,11 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
|
||||
<g>
|
||||
<circle cx="5" cy="12" r="2"/>
|
||||
<circle cx="12" cy="12" r="2"/>
|
||||
<circle cx="19" cy="12" r="2"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 551 B |
@@ -1,15 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
|
||||
<g>
|
||||
<rect x="7" y="12" fill="#010101" width="10" height="2"/>
|
||||
<g>
|
||||
<circle fill="#010101" cx="19" cy="6" r="4"/>
|
||||
</g>
|
||||
<path fill="#010101" d="M13.3,8H7v2h7.5C14,9.4,13.6,8.7,13.3,8z"/>
|
||||
<path fill="#010101" d="M19,12v5.6l-2.4-1.3L16.1,16h-0.5H5V6h8c0-0.7,0.1-1.4,0.3-2H4.8C3.8,4,3,4.9,3,6v10c0,1.1,0.8,2,1.8,2
|
||||
h10.8l5.4,3v-9.3C20.4,11.9,19.7,12,19,12z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 811 B |
@@ -1,12 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
|
||||
<g>
|
||||
<path fill="#010101" d="M19,6v11.6l-2.4-1.3L16.1,16h-0.5H5V6H19 M19.2,4H4.8C3.8,4,3,4.9,3,6v10c0,1.1,0.8,2,1.8,2h10.8l5.4,3V6
|
||||
C21,4.9,20.2,4,19.2,4L19.2,4z"/>
|
||||
<rect x="7" y="8" fill="#010101" width="10" height="2"/>
|
||||
<rect x="7" y="12" fill="#010101" width="10" height="2"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 732 B |
@@ -1,17 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
|
||||
<g>
|
||||
<polygon points="11,7 11,13 14.5,16.5 15.9,15.1 13,12.2 13,7 "/>
|
||||
<path d="M12,2C8.7,2,5.8,3.6,4,6V4H2.5v5h5V7.5H5.4C6.9,5.4,9.3,4,12,4c4.4,0,8,3.6,8,8s-3.6,8-8,8s-8-3.6-8-8H2
|
||||
c0,5.5,4.5,10,10,10s10-4.5,10-10S17.5,2,12,2z"/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon points="49,44 49,50 53.2,54.2 54.7,52.8 51,49.2 51,44 "/>
|
||||
<polygon points="45.5,47 40.5,47 40.5,42 42,42 42,45.5 45.5,45.5 "/>
|
||||
<path d="M50,40c-4.1,0-7.6,2.5-9.2,6h2.2c1.4-2.4,4-4,6.9-4c4.4,0,8,3.6,8,8s-3.6,8-8,8s-8-3.6-8-8h-2c0,5.5,4.5,10,10,10
|
||||
s10-4.5,10-10S55.5,40,50,40z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 985 B |
@@ -1,12 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 26.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 800 800" style="enable-background:new 0 0 800 800;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{stroke:#000000;stroke-width:9;stroke-miterlimit:10;}
|
||||
</style>
|
||||
<g>
|
||||
<path class="st0" d="M405,442.5H244.8v160.2h-67.1V442.5H17.5v-67.1h160.2V215.2h67.1v160.2H405V442.5z"/>
|
||||
<path class="st0" d="M757,697.8h-75.1V237.2c-30.4,20.2-77.4,30.4-141,30.4v-59.1c91.9,0,144.6-35.4,158.2-106.3H757V697.8z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 688 B |
@@ -1,11 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
|
||||
<g>
|
||||
<path d="M12,2L3,6v7c0,5,4,9,9,9c5,0,9-4,9-9V6L12,2z M19,13c0,3.9-3.1,7-7,7s-7-3.1-7-7V7.3l7-3.1l7,3.1V13z"/>
|
||||
<circle cx="12" cy="9" r="2"/>
|
||||
<path d="M15,16H9v-1c0-1.7,1.3-3,3-3h0c1.7,0,3,1.3,3,3V16z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 659 B |
@@ -1,15 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
|
||||
<g>
|
||||
<path d="M15.4,13.7L14,14l-0.2,1.4c-0.4,2.8-1.3,4.2-1.7,4.6c-0.4-0.3-1.3-1.8-1.7-4.6L10,14l-1.4-0.2c-2.8-0.4-4.2-1.3-4.6-1.7
|
||||
c0.3-0.4,1.8-1.3,4.6-1.7L10,10l0.2-1.4c0.4-2.8,1.3-4.2,1.7-4.6V2c-1.7,0-3.1,2.6-3.7,6.3C4.6,8.9,2,10.3,2,12s2.6,3.1,6.3,3.7
|
||||
c0.6,3.7,2,6.3,3.7,6.3s3.1-2.6,3.7-6.3c3.7-0.6,6.3-2,6.3-3.7h-2.1C19.6,12.4,18.2,13.3,15.4,13.7z"/>
|
||||
<path d="M18.5,1C16,1,14,3,14,5.5s2,4.5,4.5,4.5S23,8,23,5.5S21,1,18.5,1z M17.5,7C17.5,7,17.5,7,17.5,7c-0.2-0.1-0.3-0.1-0.3-0.2
|
||||
c-0.6-0.5-1.7-1.1-1.8-2c-0.1-0.7,0.8-1.6,1.3-2c0.8-0.6,2.3-1.1,3.2-0.5c0.6,0.4-1.2,1-1.4,1.3c-0.3,0.4-0.3,0.9-0.3,1.4
|
||||
c0,0.5,0.1,1.2-0.2,1.6C17.9,6.9,17.7,7,17.5,7z M20.8,7.9c-0.4,0.3-0.9,0.2-1.3,0.5c-0.1,0.1-0.2,0.2-0.3,0.2
|
||||
c-0.2,0.1-0.5-0.1-0.5-0.3c-0.3-0.8,0.3-1.2,0.9-1.3c0.3,0,0.7,0,1,0c0.2,0,0.4,0.1,0.4,0.3C21.1,7.5,20.9,7.7,20.8,7.9z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -1,12 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
|
||||
<g>
|
||||
<path d="M15.4,13.7L14,14l-0.2,1.4c-0.4,2.8-1.3,4.2-1.7,4.6c-0.4-0.3-1.3-1.8-1.7-4.6L10,14l-1.4-0.2c-2.8-0.4-4.2-1.3-4.6-1.7
|
||||
c0.3-0.4,1.8-1.3,4.6-1.7L10,10l0.2-1.4c0.4-2.8,1.3-4.2,1.7-4.6V2c-1.7,0-3.1,2.6-3.7,6.3C4.6,8.9,2,10.3,2,12s2.6,3.1,6.3,3.7
|
||||
c0.6,3.7,2,6.3,3.7,6.3s3.1-2.6,3.7-6.3c3.7-0.6,6.3-2,6.3-3.7h-2.1C19.6,12.4,18.2,13.3,15.4,13.7z"/>
|
||||
<path d="M19,0c-2.8,0-5,2.2-5,5s2.2,5,5,5s5-2.2,5-5S21.8,0,19,0z M22,5.8h-2.3V8h-1.5V5.8H16V4.3h2.3V2h1.5v2.3H22V5.8z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 930 B |
@@ -1,4 +0,0 @@
|
||||
<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="M16 3L21 8V19C21 20.1046 20.1046 21 19 21H5C3.89543 21 3 20.1046 3 19V5C3 3.89543 3.89543 3 5 3H16ZM19 9H17C15.8954 9 15 8.10457 15 7V5H5V19H19V9Z" fill="black"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 12C9 13.6569 10.3431 15 12 15C13.6569 15 15 13.6569 15 12H17C17 14.7614 14.7614 17 12 17C9.23858 17 7 14.7614 7 12H9Z" fill="black"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 501 B |
@@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M5 8L10 13M4 14L10 8L12 5M2 5H14M7 2H8M12.913 17H20.087M12.913 17L11 21M12.913 17L15.7783 11.009C16.0092 10.5263 16.1246 10.2849 16.2826 10.2086C16.4199 10.1423 16.5801 10.1423 16.7174 10.2086C16.8754 10.2849 16.9908 10.5263 17.2217 11.009L20.087 17M20.087 17L22 21" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 586 B |
@@ -0,0 +1,19 @@
|
||||
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In -->
|
||||
<svg version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
|
||||
x="0px" y="0px" width="18px" height="18px" viewBox="0 0 18 18" enable-background="new 0 0 18 18" xml:space="preserve">
|
||||
<defs>
|
||||
</defs>
|
||||
<g>
|
||||
<g>
|
||||
<circle fill="#FFFFFF" cx="9" cy="9" r="8.5"/>
|
||||
</g>
|
||||
<g>
|
||||
<path d="M9,0C4,0,0,4,0,9c0,5,4,9,9,9c5,0,9-4,9-9C18,4,14,0,9,0z M1.2,10.8l3.5-2.3c0-0.1,0-0.2,0-0.3c0-1.8,1.3-3.2,3.1-3.4
|
||||
c0.1,0,0.2,0,0.4,0c1.2,0,2.3,0.6,2.9,1.6c0.3-0.1,0.6-0.1,0.9-0.1c0.4,0,0.8,0,1.2,0.1c0.7,0.2,1.4,0.5,2,0.9
|
||||
C14.6,7.1,14,7,13.3,7c-1.2,0-2.2,0.4-2.9,1.4c-0.7,0.9-1.1,2-1.1,3.2c0,1.5-0.4,2.9-1.3,4.2c-0.3,0.4-0.5,0.7-0.8,1
|
||||
C4.2,16.1,1.9,13.8,1.2,10.8z"/>
|
||||
<circle cx="9.5" cy="6.4" r="0.5"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 871 B |
@@ -1,18 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
|
||||
<g>
|
||||
<g>
|
||||
<polygon fill="#7F7F7F" points="20,7 20,5 18,5 18,7 16,7 16,5 18,5 18,3 16,3 16,2 3,2 3,22 11,22 11,20 19,12 21,12 21,7 "/>
|
||||
<polygon fill="#7F7F7F" points="19,16 21,16 21,22 15,22 15,20 19,20 "/>
|
||||
</g>
|
||||
<polygon fill="#6FBEFF" points="19,9 14,9 14,4 5,4 5,20 11,20 13,20 13,18 15,18 15,16 17,16 17,14 19,14 "/>
|
||||
<polygon fill="#FFFFFF" points="7,10 12,10 12,8 10,8 10,7 8,7 8,8 7,8 "/>
|
||||
<g>
|
||||
<rect x="17" y="18" fill="#00C72C" width="2" height="2"/>
|
||||
<polygon fill="#00C72C" points="5,20 5,18 7,18 7,16 9,16 9,14 11,14 11,12 13,12 13,14 15,14 15,18 13,18 13,20 "/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.0 KiB |
@@ -0,0 +1,49 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14576) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="789.322px" height="336.807px" viewBox="0 0 789.322 336.807" enable-background="new 0 0 789.322 336.807"
|
||||
xml:space="preserve">
|
||||
<path d="M8.876,7.71v321.386h23.13v7.711H0V0h32.006v7.71H8.876z"/>
|
||||
<path d="M97.989,109.594v16.264h0.463c4.338-6.191,9.563-10.998,15.684-14.406c6.117-3.402,13.129-5.11,21.027-5.11
|
||||
c7.588,0,14.521,1.475,20.793,4.415c6.274,2.945,11.038,8.131,14.291,15.567c3.56-5.265,8.4-9.913,14.521-13.94
|
||||
c6.117-4.025,13.358-6.042,21.724-6.042c6.351,0,12.234,0.776,17.66,2.325c5.418,1.549,10.065,4.027,13.938,7.434
|
||||
c3.869,3.41,6.889,7.863,9.062,13.357c2.167,5.504,3.253,12.122,3.253,19.869v80.385h-32.993v-68.074
|
||||
c0-4.025-0.154-7.82-0.465-11.385c-0.313-3.56-1.161-6.656-2.555-9.293c-1.395-2.631-3.45-4.724-6.157-6.274
|
||||
c-2.711-1.543-6.391-2.322-11.037-2.322s-8.403,0.896-11.269,2.671c-2.868,1.784-5.112,4.109-6.737,6.971
|
||||
c-1.626,2.869-2.711,6.12-3.252,9.762c-0.545,3.638-0.814,7.318-0.814,11.035v66.91h-32.991v-67.375c0-3.562-0.081-7.087-0.23-10.57
|
||||
c-0.158-3.487-0.814-6.7-1.978-9.645c-1.162-2.94-3.099-5.304-5.809-7.088c-2.711-1.775-6.699-2.671-11.965-2.671
|
||||
c-1.551,0-3.603,0.349-6.156,1.048c-2.556,0.697-5.036,2.016-7.435,3.949c-2.404,1.938-4.454,4.726-6.158,8.363
|
||||
c-1.705,3.642-2.556,8.402-2.556,14.287v69.701h-32.99V109.594H97.989z"/>
|
||||
<path d="M271.545,127.254c3.405-5.113,7.744-9.215,13.012-12.316c5.264-3.097,11.186-5.303,17.771-6.621
|
||||
c6.582-1.315,13.205-1.976,19.865-1.976c6.042,0,12.158,0.428,18.354,1.277c6.195,0.855,11.85,2.522,16.962,4.997
|
||||
c5.111,2.477,9.292,5.926,12.546,10.338c3.253,4.414,4.879,10.262,4.879,17.543v62.494c0,5.428,0.31,10.611,0.931,15.567
|
||||
c0.615,4.959,1.701,8.676,3.251,11.153h-33.455c-0.621-1.86-1.126-3.755-1.511-5.693c-0.39-1.933-0.661-3.908-0.813-5.923
|
||||
c-5.267,5.422-11.465,9.217-18.585,11.386c-7.127,2.163-14.407,3.251-21.842,3.251c-5.733,0-11.077-0.698-16.033-2.09
|
||||
c-4.958-1.395-9.293-3.562-13.01-6.51c-3.718-2.938-6.622-6.656-8.713-11.147s-3.138-9.84-3.138-16.033
|
||||
c0-6.813,1.199-12.43,3.604-16.84c2.399-4.417,5.495-7.939,9.295-10.575c3.793-2.632,8.129-4.607,13.01-5.923
|
||||
c4.878-1.315,9.795-2.358,14.752-3.137c4.957-0.772,9.835-1.393,14.638-1.857c4.801-0.466,9.062-1.164,12.779-2.093
|
||||
c3.718-0.929,6.658-2.282,8.829-4.065c2.165-1.781,3.172-4.375,3.02-7.785c0-3.56-0.58-6.389-1.742-8.479
|
||||
c-1.161-2.09-2.711-3.719-4.646-4.88c-1.937-1.161-4.183-1.936-6.737-2.325c-2.557-0.382-5.309-0.58-8.248-0.58
|
||||
c-6.506,0-11.617,1.395-15.335,4.183c-3.716,2.788-5.889,7.437-6.506,13.94h-32.991C266.2,138.793,268.133,132.362,271.545,127.254z
|
||||
M336.714,173.837c-2.09,0.696-4.337,1.275-6.736,1.741c-2.402,0.465-4.918,0.853-7.551,1.161c-2.635,0.313-5.268,0.698-7.899,1.163
|
||||
c-2.48,0.461-4.919,1.086-7.317,1.857c-2.404,0.779-4.495,1.822-6.274,3.138c-1.784,1.317-3.216,2.985-4.3,4.994
|
||||
c-1.085,2.014-1.626,4.571-1.626,7.668c0,2.94,0.541,5.422,1.626,7.431c1.084,2.017,2.558,3.604,4.416,4.765
|
||||
s4.025,1.976,6.507,2.438c2.475,0.466,5.031,0.698,7.665,0.698c6.505,0,11.537-1.082,15.103-3.253
|
||||
c3.561-2.166,6.192-4.762,7.899-7.785c1.702-3.019,2.749-6.072,3.137-9.174c0.384-3.097,0.58-5.576,0.58-7.434V170.93
|
||||
C340.548,172.172,338.806,173.139,336.714,173.837z"/>
|
||||
<path d="M461.826,109.594v22.072h-24.161v59.479c0,5.573,0.928,9.292,2.788,11.149c1.856,1.859,5.576,2.788,11.152,2.788
|
||||
c1.859,0,3.638-0.076,5.343-0.232c1.703-0.152,3.33-0.388,4.878-0.696v25.557c-2.788,0.465-5.887,0.773-9.293,0.931
|
||||
c-3.407,0.149-6.737,0.23-9.99,0.23c-5.111,0-9.953-0.35-14.521-1.048c-4.571-0.695-8.597-2.047-12.081-4.063
|
||||
c-3.486-2.011-6.236-4.88-8.248-8.597c-2.016-3.714-3.021-8.595-3.021-14.639v-70.859h-19.98v-22.072h19.98V73.582h32.992v36.012
|
||||
H461.826z"/>
|
||||
<path d="M508.989,109.594v22.306h0.465c1.546-3.72,3.636-7.163,6.272-10.341c2.634-3.172,5.652-5.885,9.06-8.131
|
||||
c3.405-2.242,7.047-3.985,10.923-5.228c3.868-1.237,7.898-1.859,12.081-1.859c2.168,0,4.566,0.39,7.202,1.163v30.67
|
||||
c-1.551-0.312-3.41-0.584-5.576-0.814c-2.17-0.233-4.26-0.35-6.274-0.35c-6.041,0-11.152,1.01-15.332,3.021
|
||||
c-4.182,2.014-7.55,4.761-10.107,8.247c-2.555,3.487-4.379,7.55-5.462,12.198c-1.083,4.645-1.625,9.682-1.625,15.102v54.133h-32.991
|
||||
V109.594H508.989z"/>
|
||||
<path d="M568.931,91.006V63.823h32.994v27.183H568.931z M601.925,109.594v120.117h-32.994V109.594H601.925z"/>
|
||||
<path d="M619.116,109.594h37.637l21.144,31.365l20.911-31.365h36.476l-39.496,56.226l44.377,63.892h-37.64l-25.093-37.87
|
||||
l-25.094,37.87H615.4l43.213-63.193L619.116,109.594z"/>
|
||||
<path d="M780.444,329.096V7.71h-23.13V0h32.008v336.807h-32.008v-7.711H780.444z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.7 KiB |
@@ -1,66 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
width="560"
|
||||
height="646.66669"
|
||||
viewBox="0 0 560 646.66669"
|
||||
sodipodi:docname="versi-logo-online.png"
|
||||
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs1" />
|
||||
<sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#505050"
|
||||
bordercolor="#eeeeee"
|
||||
borderopacity="1"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#505050"
|
||||
inkscape:zoom="1.370103"
|
||||
inkscape:cx="279.90595"
|
||||
inkscape:cy="323.33334"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1090"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g1" />
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="Image"
|
||||
id="g1">
|
||||
<image
|
||||
width="560"
|
||||
height="646.66669"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAaQAAAHlCAYAAAC6SIj8AAAA0GVYSWZJSSoACAAAAAoAAAEEAAEA AACkAQAAAQEEAAEAAADlAQAAAgEDAAMAAACGAAAAEgEDAAEAAAABAAAAGgEFAAEAAACMAAAAGwEF AAEAAACUAAAAKAEDAAEAAAACAAAAMQECAA0AAACcAAAAMgECABQAAACqAAAAaYcEAAEAAAC+AAAA AAAAAAgACAAIAEgAAAABAAAASAAAAAEAAABHSU1QIDIuMTAuMzYAADIwMjQ6MDU6MDQgMTQ6MzE6 NDIAAQABoAMAAQAAAAEAAAAAAAAAZfBtEQAAAYRpQ0NQSUNDIHByb2ZpbGUAAHicfZE9SMNAHMVf 05aKVB3sINIhQ3Wyi4o41ioUoUKoFVp1MLn0C5q0JCkujoJrwcGPxaqDi7OuDq6CIPgB4uzgpOgi Jf4vKbSI8eC4H+/uPe7eAUKryjQzkAA03TIyqaSYy6+KoVcEEcAgogjKzKzPSVIanuPrHj6+3sV5 lve5P8eAWjAZ4BOJE6xuWMQbxDObVp3zPnGElWWV+Jx4wqALEj9yXXH5jXPJYYFnRoxsZp44QiyW eljpYVY2NOJp4piq6ZQv5FxWOW9x1qoN1rknf2G4oK8sc51mFCksYgkSRChooIIqLMRp1UkxkaH9 pId/1PFL5FLIVQEjxwJq0CA7fvA/+N2tWZyadJPCSSD4YtsfY0BoF2g3bfv72LbbJ4D/GbjSu/5a C5j9JL3Z1WJHwNA2cHHd1ZQ94HIHGHmqy4bsSH6aQrEIvJ/RN+WB4Vugf83trbOP0wcgS12lb4CD Q2C8RNnrHu/u6+3t3zOd/n4AKbNyiX17rBAAAA14aVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8 P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4 bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA0LjQuMC1F eGl2MiI+CiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjIt cmRmLXN5bnRheC1ucyMiPgogIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICB4bWxu czp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0 PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4 bWxuczpHSU1QPSJodHRwOi8vd3d3LmdpbXAub3JnL3htcC8iCiAgICB4bWxuczpkYz0iaHR0cDov L3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRv YmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAv MS4wLyIKICAgeG1wTU06RG9jdW1lbnRJRD0iZ2ltcDpkb2NpZDpnaW1wOjE3YmUwMzI2LWIyOWYt NDI5Yi04NTcwLWI1MTMzYjExZDQ0YSIKICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpjMjRj NWQ4Yy0zNTcwLTQ5OTctYjE0Zi0zYzAzYjVjZDdjMzkiCiAgIHhtcE1NOk9yaWdpbmFsRG9jdW1l bnRJRD0ieG1wLmRpZDozZjcyZDNjNi0wZjMwLTQwYjgtODcwOC1hYzY3MGRlMmUxMjgiCiAgIEdJ TVA6QVBJPSIyLjAiCiAgIEdJTVA6UGxhdGZvcm09IkxpbnV4IgogICBHSU1QOlRpbWVTdGFtcD0i MTcxNDgzMzEwMjQ4MDk0NiIKICAgR0lNUDpWZXJzaW9uPSIyLjEwLjM2IgogICBkYzpGb3JtYXQ9 ImltYWdlL3BuZyIKICAgdGlmZjpPcmllbnRhdGlvbj0iMSIKICAgeG1wOkNyZWF0b3JUb29sPSJH SU1QIDIuMTAiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjQ6MDU6MDRUMTQ6MzE6NDIrMDA6MDAi CiAgIHhtcDpNb2RpZnlEYXRlPSIyMDI0OjA1OjA0VDE0OjMxOjQyKzAwOjAwIj4KICAgPHhtcE1N Okhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0i c2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9Inht cC5paWQ6Y2E0MDUwNGQtYzljMy00YjM2LWI4NTYtMGJiNDBiNTllYjBiIgogICAgICBzdEV2dDpz b2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKExpbnV4KSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyNC0w NS0wNFQxNDozMTo0MiswMDowMCIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+ CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgILine truncated
|
||||
id="image1" />
|
||||
<ellipse
|
||||
style="fill:#000000"
|
||||
id="path1"
|
||||
cx="442.30249"
|
||||
cy="465.65845"
|
||||
rx="112.40031"
|
||||
ry="104.37171" />
|
||||
<ellipse
|
||||
style="fill:#000000"
|
||||
id="path2"
|
||||
cx="454.71033"
|
||||
cy="534.63135"
|
||||
rx="2.9194884"
|
||||
ry="28.100077" />
|
||||
<path
|
||||
style="fill:#00a300;stroke-width:0.729872;fill-opacity:1"
|
||||
d="m 434.2739,569.24658 c -54.95257,-3.48219 -100.03982,-45.22417 -103.50508,-95.82547 -2.89219,-42.23312 19.69182,-80.06487 59.53143,-99.72443 32.34786,-15.96262 72.30954,-15.82157 104.78517,0.36986 33.88524,16.89422 56.36753,49.02828 58.76166,83.98838 2.88058,42.06367 -19.79258,79.97509 -59.54233,99.55973 -12.72429,6.26923 -28.88524,10.67911 -41.76453,11.39637 -3.42289,0.19063 -7.20875,0.43088 -8.41304,0.53388 -1.20429,0.10302 -5.63826,-0.0312 -9.85328,-0.29832 z"
|
||||
id="path3" />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 202 KiB |
@@ -1,66 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
width="560"
|
||||
height="646.66669"
|
||||
viewBox="0 0 560 646.66669"
|
||||
sodipodi:docname="versi-logo-online.png"
|
||||
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs1" />
|
||||
<sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#505050"
|
||||
bordercolor="#eeeeee"
|
||||
borderopacity="1"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#505050"
|
||||
inkscape:zoom="1.370103"
|
||||
inkscape:cx="279.90595"
|
||||
inkscape:cy="323.33334"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1090"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g1" />
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="Image"
|
||||
id="g1">
|
||||
<image
|
||||
width="560"
|
||||
height="646.66669"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAaQAAAHlCAYAAAC6SIj8AAAA0GVYSWZJSSoACAAAAAoAAAEEAAEA AACkAQAAAQEEAAEAAADlAQAAAgEDAAMAAACGAAAAEgEDAAEAAAABAAAAGgEFAAEAAACMAAAAGwEF AAEAAACUAAAAKAEDAAEAAAACAAAAMQECAA0AAACcAAAAMgECABQAAACqAAAAaYcEAAEAAAC+AAAA AAAAAAgACAAIAEgAAAABAAAASAAAAAEAAABHSU1QIDIuMTAuMzYAADIwMjQ6MDU6MDQgMTQ6MzE6 NDIAAQABoAMAAQAAAAEAAAAAAAAAZfBtEQAAAYRpQ0NQSUNDIHByb2ZpbGUAAHicfZE9SMNAHMVf 05aKVB3sINIhQ3Wyi4o41ioUoUKoFVp1MLn0C5q0JCkujoJrwcGPxaqDi7OuDq6CIPgB4uzgpOgi Jf4vKbSI8eC4H+/uPe7eAUKryjQzkAA03TIyqaSYy6+KoVcEEcAgogjKzKzPSVIanuPrHj6+3sV5 lve5P8eAWjAZ4BOJE6xuWMQbxDObVp3zPnGElWWV+Jx4wqALEj9yXXH5jXPJYYFnRoxsZp44QiyW eljpYVY2NOJp4piq6ZQv5FxWOW9x1qoN1rknf2G4oK8sc51mFCksYgkSRChooIIqLMRp1UkxkaH9 pId/1PFL5FLIVQEjxwJq0CA7fvA/+N2tWZyadJPCSSD4YtsfY0BoF2g3bfv72LbbJ4D/GbjSu/5a C5j9JL3Z1WJHwNA2cHHd1ZQ94HIHGHmqy4bsSH6aQrEIvJ/RN+WB4Vugf83trbOP0wcgS12lb4CD Q2C8RNnrHu/u6+3t3zOd/n4AKbNyiX17rBAAAA14aVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8 P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4 bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA0LjQuMC1F eGl2MiI+CiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjIt cmRmLXN5bnRheC1ucyMiPgogIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICB4bWxu czp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0 PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4 bWxuczpHSU1QPSJodHRwOi8vd3d3LmdpbXAub3JnL3htcC8iCiAgICB4bWxuczpkYz0iaHR0cDov L3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRv YmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAv MS4wLyIKICAgeG1wTU06RG9jdW1lbnRJRD0iZ2ltcDpkb2NpZDpnaW1wOjE3YmUwMzI2LWIyOWYt NDI5Yi04NTcwLWI1MTMzYjExZDQ0YSIKICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpjMjRj NWQ4Yy0zNTcwLTQ5OTctYjE0Zi0zYzAzYjVjZDdjMzkiCiAgIHhtcE1NOk9yaWdpbmFsRG9jdW1l bnRJRD0ieG1wLmRpZDozZjcyZDNjNi0wZjMwLTQwYjgtODcwOC1hYzY3MGRlMmUxMjgiCiAgIEdJ TVA6QVBJPSIyLjAiCiAgIEdJTVA6UGxhdGZvcm09IkxpbnV4IgogICBHSU1QOlRpbWVTdGFtcD0i MTcxNDgzMzEwMjQ4MDk0NiIKICAgR0lNUDpWZXJzaW9uPSIyLjEwLjM2IgogICBkYzpGb3JtYXQ9 ImltYWdlL3BuZyIKICAgdGlmZjpPcmllbnRhdGlvbj0iMSIKICAgeG1wOkNyZWF0b3JUb29sPSJH SU1QIDIuMTAiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjQ6MDU6MDRUMTQ6MzE6NDIrMDA6MDAi CiAgIHhtcDpNb2RpZnlEYXRlPSIyMDI0OjA1OjA0VDE0OjMxOjQyKzAwOjAwIj4KICAgPHhtcE1N Okhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0i c2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9Inht cC5paWQ6Y2E0MDUwNGQtYzljMy00YjM2LWI4NTYtMGJiNDBiNTllYjBiIgogICAgICBzdEV2dDpz b2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKExpbnV4KSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyNC0w NS0wNFQxNDozMTo0MiswMDowMCIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+ CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgILine truncated
|
||||
id="image1" />
|
||||
<ellipse
|
||||
style="fill:#000000"
|
||||
id="path1"
|
||||
cx="442.30249"
|
||||
cy="465.65845"
|
||||
rx="112.40031"
|
||||
ry="104.37171" />
|
||||
<ellipse
|
||||
style="fill:#000000"
|
||||
id="path2"
|
||||
cx="454.71033"
|
||||
cy="534.63135"
|
||||
rx="2.9194884"
|
||||
ry="28.100077" />
|
||||
<path
|
||||
style="fill:#00a300;stroke-width:0.729872;fill-opacity:1"
|
||||
d="m 434.2739,569.24658 c -54.95257,-3.48219 -100.03982,-45.22417 -103.50508,-95.82547 -2.89219,-42.23312 19.69182,-80.06487 59.53143,-99.72443 32.34786,-15.96262 72.30954,-15.82157 104.78517,0.36986 33.88524,16.89422 56.36753,49.02828 58.76166,83.98838 2.88058,42.06367 -19.79258,79.97509 -59.54233,99.55973 -12.72429,6.26923 -28.88524,10.67911 -41.76453,11.39637 -3.42289,0.19063 -7.20875,0.43088 -8.41304,0.53388 -1.20429,0.10302 -5.63826,-0.0312 -9.85328,-0.29832 z"
|
||||
id="path3" />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 202 KiB |
@@ -1,52 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
width="560"
|
||||
height="646.66669"
|
||||
viewBox="0 0 560 646.66669"
|
||||
sodipodi:docname="versi-logo.svg"
|
||||
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs1" />
|
||||
<sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#505050"
|
||||
bordercolor="#eeeeee"
|
||||
borderopacity="1"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#505050"
|
||||
inkscape:zoom="1.370103"
|
||||
inkscape:cx="279.90595"
|
||||
inkscape:cy="323.33334"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1090"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g1" />
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="Image"
|
||||
id="g1">
|
||||
<image
|
||||
width="560"
|
||||
height="646.66669"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAaQAAAHlCAYAAAC6SIj8AAAA0GVYSWZJSSoACAAAAAoAAAEEAAEA AACkAQAAAQEEAAEAAADlAQAAAgEDAAMAAACGAAAAEgEDAAEAAAABAAAAGgEFAAEAAACMAAAAGwEF AAEAAACUAAAAKAEDAAEAAAACAAAAMQECAA0AAACcAAAAMgECABQAAACqAAAAaYcEAAEAAAC+AAAA AAAAAAgACAAIAEgAAAABAAAASAAAAAEAAABHSU1QIDIuMTAuMzYAADIwMjQ6MDU6MDQgMTQ6MzE6 NDIAAQABoAMAAQAAAAEAAAAAAAAAZfBtEQAAAYRpQ0NQSUNDIHByb2ZpbGUAAHicfZE9SMNAHMVf 05aKVB3sINIhQ3Wyi4o41ioUoUKoFVp1MLn0C5q0JCkujoJrwcGPxaqDi7OuDq6CIPgB4uzgpOgi Jf4vKbSI8eC4H+/uPe7eAUKryjQzkAA03TIyqaSYy6+KoVcEEcAgogjKzKzPSVIanuPrHj6+3sV5 lve5P8eAWjAZ4BOJE6xuWMQbxDObVp3zPnGElWWV+Jx4wqALEj9yXXH5jXPJYYFnRoxsZp44QiyW eljpYVY2NOJp4piq6ZQv5FxWOW9x1qoN1rknf2G4oK8sc51mFCksYgkSRChooIIqLMRp1UkxkaH9 pId/1PFL5FLIVQEjxwJq0CA7fvA/+N2tWZyadJPCSSD4YtsfY0BoF2g3bfv72LbbJ4D/GbjSu/5a C5j9JL3Z1WJHwNA2cHHd1ZQ94HIHGHmqy4bsSH6aQrEIvJ/RN+WB4Vugf83trbOP0wcgS12lb4CD Q2C8RNnrHu/u6+3t3zOd/n4AKbNyiX17rBAAAA14aVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8 P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4 bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA0LjQuMC1F eGl2MiI+CiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjIt cmRmLXN5bnRheC1ucyMiPgogIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICB4bWxu czp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0 PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4 bWxuczpHSU1QPSJodHRwOi8vd3d3LmdpbXAub3JnL3htcC8iCiAgICB4bWxuczpkYz0iaHR0cDov L3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRv YmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAv MS4wLyIKICAgeG1wTU06RG9jdW1lbnRJRD0iZ2ltcDpkb2NpZDpnaW1wOjE3YmUwMzI2LWIyOWYt NDI5Yi04NTcwLWI1MTMzYjExZDQ0YSIKICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpjMjRj NWQ4Yy0zNTcwLTQ5OTctYjE0Zi0zYzAzYjVjZDdjMzkiCiAgIHhtcE1NOk9yaWdpbmFsRG9jdW1l bnRJRD0ieG1wLmRpZDozZjcyZDNjNi0wZjMwLTQwYjgtODcwOC1hYzY3MGRlMmUxMjgiCiAgIEdJ TVA6QVBJPSIyLjAiCiAgIEdJTVA6UGxhdGZvcm09IkxpbnV4IgogICBHSU1QOlRpbWVTdGFtcD0i MTcxNDgzMzEwMjQ4MDk0NiIKICAgR0lNUDpWZXJzaW9uPSIyLjEwLjM2IgogICBkYzpGb3JtYXQ9 ImltYWdlL3BuZyIKICAgdGlmZjpPcmllbnRhdGlvbj0iMSIKICAgeG1wOkNyZWF0b3JUb29sPSJH SU1QIDIuMTAiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjQ6MDU6MDRUMTQ6MzE6NDIrMDA6MDAi CiAgIHhtcDpNb2RpZnlEYXRlPSIyMDI0OjA1OjA0VDE0OjMxOjQyKzAwOjAwIj4KICAgPHhtcE1N Okhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0i c2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9Inht cC5paWQ6Y2E0MDUwNGQtYzljMy00YjM2LWI4NTYtMGJiNDBiNTllYjBiIgogICAgICBzdEV2dDpz b2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKExpbnV4KSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyNC0w NS0wNFQxNDozMTo0MiswMDowMCIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+ CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgILine truncated
|
||||
id="image1" />
|
||||
<path
|
||||
style="stroke:#7d394a;fill:none"
|
||||
d="M 150.66667,49.333335 C 149.84511,33.530641 134.10995,28.10905 125.33333,26.489706 c -6.8526,-1.264323 -8.73425,-4.663249 -12,-7.823039 8.07987,-8.39091 25.21668,-5.155517 38.66667,2.299398 9.23164,5.116822 10.99872,7.847819 18.66667,12.49585 5.7139,3.463542 25.20355,6.144247 33.33333,10.318929 4.71983,2.423666 9.01042,7.375815 13.33333,10.082358 4.87104,3.049723 7.34558,2.074056 9.33334,2.135783 4.43394,0.137695 9.52384,-1.782878 21.33333,7.692383 9.77309,7.84139 18.93573,13.945394 28,21.10905 19.50376,15.414142 43.61882,30.288292 61.33333,44.966022 9.00533,7.46155 20.7944,21.10299 30.71916,29.61422 5.36153,4.59794 10.0518,7.30705 14.61418,11.39095 8.8752,7.94438 15.89241,15.73889 23.11112,26.56173 7.68966,11.52893 14.94629,23.46757 21.2181,36 3.61397,7.22148 7.61808,12.51115 11.23971,20 8.44006,17.45239 12.4628,34.24911 15.42696,52 3.76977,22.57536 4.30265,44.97136 2.45166,68.00001 -1.30738,16.26538 -4.13957,32.64013 -12.11422,46.66666 M 61.333333,25.333334 c 28.123149,0 35.975108,-5.967936 51.999997,-6.666667 M 116,21.333334 c -4.29793,5.31014 -4.75938,6.922282 -7.65432,12 -2.20742,3.871827 -5.08146,9.133179 -4.6214,14.666668 0.80439,9.674927 6.39278,16.617228 16.27572,21.333334 M 37.333333,42.666668 32,46.666668 c -3.898649,-8.299601 -0.479693,-13.567627 8,-12 l -4,5.333333 5.333333,-5.333333 m 79.999997,14.666667 c 2.84037,-5.710978 3.786,-16.055461 13.02984,-11.91976 3.31931,1.485067 5.80316,10.544475 4.82099,14.585409 -1.25339,5.15682 -5.01705,8.486125 -8.46605,8.486614 -5.81374,8.13e-4 -6.78468,-5.569092 -8.05144,-9.81893 3.11394,0.872071 4.83898,1.065267 12,8.000001 M 41.333333,37.333335 c 4.034277,7.723836 1.504049,12.595784 -8,9.333333 m 5.333334,-2.666667 v 4.000001 m 56,-1.333334 c -0.66506,3.749471 -1.273946,13.887615 2.13271,18.382732 3.202203,4.225342 7.873843,5.902913 11.200623,7.255127 5.00155,2.032959 11.30037,4.646688 18.66667,5.028809 M 30.666667,57.333335 c 4.623647,4.219971 17.565404,11.818563 24,14.886841 7.154856,3.411744 8.093551,3.157553 10.666666,-0.220174 l -6.666666,1.333334 M 146.66667,60.000002 C 140.09175,67.879559 134.20327,70.581098 124,70.666669 m -60,-2.666667 -1.333333,1.333334 m 90.666663,0 c 3.48328,-0.264893 6.92936,-1.798422 12,0.233561 6.6837,2.678385 15.80742,11.552328 21.30042,16.299357 2.76416,2.388754 4.66431,4.185873 6.69958,6.133749 M 65.333333,70.666669 68,69.333336 m -6.666667,4 H 64 m 22.666667,10.666667 c 5.401896,3.341919 12.842214,6.696777 20.000003,9.94751 2.4771,1.125 6.85221,2.685832 10.66666,3.158447 6.27525,0.777547 10.7251,1.253581 16,2.93213 13.36854,4.25411 33.5697,24.09493 53.33334,26.55656 6.09137,0.75871 9.41758,1.39355 13.33333,1.19238 10.84216,-0.55705 21.98891,-2.76872 29.33333,-4.45369 2.79802,-0.64193 6.2284,-3.72445 13.33334,-2.16976 4.82261,1.05526 17.14194,10.28072 20.56583,13.74898 7.93083,8.03357 18.95887,20.30876 24.22223,27.54012 1.32685,1.82296 2.96605,3.89518 3.21194,4.21399 m -176,-69.333334 c 2.04287,9.772174 0.75965,12.666184 8.85083,22.386844 3.3049,3.97046 12.02571,8.85298 17.81583,11.9681 14.38467,7.73901 27.19511,15.39628 41.33334,22.21089 14.88901,7.17652 21.96423,11.33724 38.66666,22.00928 9.42823,6.02417 12.84349,6.36316 15.99384,7.82919 1.20054,0.55867 4.1756,1.62614 6.88169,5.66874 6.67397,9.97013 3.02718,14.18986 7.63784,29.26029 2.66406,8.70781 4.25197,12.48686 5.97839,17.33334 2.5484,7.15393 5.74128,14.71826 7.48765,22.66666 0.85067,3.87175 4.06055,12.75334 -0.0165,17.86113 -5.43841,6.8134 -17.75467,-1.57621 -21.29628,-2.94238 -13.15729,-5.07532 -25.05119,-5.21367 -45.33333,-7.1451 -4.25586,-0.40528 -11.71513,-1.97522 -15.76852,-0.30245 -4.55735,1.88073 -5.35315,4.59135 -6.27881,5.88785 -2.65203,3.71456 -3.13348,6.47201 -9.29012,14.64096 -5.90728,7.83805 -10.41679,18.40478 -15.3498,26.66666 -3.67265,6.15102 -6.5688,9.10759 -9.31275,12 m 86.66666,-141.33333 c 1.54356,2.19124 2.94916,4.06677 5.41152,6.69958 0.41112,0.43958 1.73594,1.77067 3.91667,3.9609 4.15181,4.16992 7.09169,7.09273 8.00515,8.00618 M 304,205.33334 c 9.52553,0.0799 20.92043,5.97677 34.66667,9.8066 3.34326,0.93148 7.09261,0.8953 10.66666,0.87345 5.02071,-0.0307 11.79204,0.24512 17.33334,4.94031 11.01216,9.33069 14.26688,-0.26558 25.69649,15.29321 3.49756,4.76111 3.01489,9.26612 5.15637,13.03394 3.3079,5.82015 7.30921,6.93205 10.11731,13.39095 2.16036,4.96904 4.3999,9.18966 2.20577,14.52161 -2.10201,5.10811 -9.13651,7.0448 -13.84261,7.73869 -4.25517,0.6274 -8.16992,-0.0317 -12,0.56278 -4.99072,0.77466 -5.81938,2.45805 -12,3.43209 -5.31401,0.83748 -11.12219,0.40637 -14.66667,0.40637 L 352.93518,272.22637 345.41154,261.32821 344,248.00001 c 9.84212,-0.0282 12.04993,-0.45642 15.57613,-4.30453 2.42794,-2.64957 2.90747,-7.34358 3.33024,-10.3601 0.63806,-4.5527 1.60791,-6.75155 2.42696,-9.33537 M 166.66667,210.66667 c -3.85874,14.67058 -1.48799,17.93262 0.56584,33.33334 0.7747,5.80912 0.77436,8.54683 1.57099,10.66565 1.64758,4.38212 5.27715,7.67159 11.1965,9.33435 m 161.33333,-46.66667 c -4.8313,5.71358 -10.16711,15.54057 2.66667,30.66667 m -50.Line truncated
|
||||
id="path1" />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 212 KiB |
@@ -1,62 +1,47 @@
|
||||
import React from 'react';
|
||||
import React, { useState, useEffect } from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import './Avatar.scss';
|
||||
|
||||
import { twemojify } from '../../../util/twemojify';
|
||||
|
||||
import Text from '../text/Text';
|
||||
import RawIcon from '../system-icons/RawIcon';
|
||||
|
||||
import ImageBrokenSVG from '../../../../public/res/svg/image-broken.svg';
|
||||
import { avatarInitials } from '../../../util/common';
|
||||
|
||||
const Avatar = React.forwardRef(({
|
||||
text, bgColor, iconSrc, iconColor, imageSrc, size,
|
||||
}, ref) => {
|
||||
function Avatar({
|
||||
text, bgColor, iconSrc, imageSrc, size,
|
||||
}) {
|
||||
const [image, updateImage] = useState(imageSrc);
|
||||
let textSize = 's1';
|
||||
if (size === 'large') textSize = 'h1';
|
||||
if (size === 'small') textSize = 'b1';
|
||||
if (size === 'extra-small') textSize = 'b3';
|
||||
|
||||
useEffect(() => updateImage(imageSrc), [imageSrc]);
|
||||
|
||||
return (
|
||||
<div ref={ref} className={`avatar-container avatar-container__${size} noselect`}>
|
||||
<div className={`avatar-container avatar-container__${size} noselect`}>
|
||||
{
|
||||
imageSrc !== null
|
||||
? (
|
||||
<img
|
||||
draggable="false"
|
||||
src={imageSrc}
|
||||
onLoad={(e) => { e.target.style.backgroundColor = 'transparent'; }}
|
||||
onError={(e) => { e.target.src = ImageBrokenSVG; }}
|
||||
alt=""
|
||||
/>
|
||||
)
|
||||
image !== null
|
||||
? <img src={image} onError={() => updateImage(null)} alt="avatar" />
|
||||
: (
|
||||
<span
|
||||
style={{ backgroundColor: iconSrc === null ? bgColor : 'transparent' }}
|
||||
className={`avatar__border${iconSrc !== null ? '--active' : ''}`}
|
||||
className={`avatar__border${iconSrc !== null ? ' avatar__bordered' : ''} inline-flex--center`}
|
||||
>
|
||||
{
|
||||
iconSrc !== null
|
||||
? <RawIcon size={size} src={iconSrc} color={iconColor} />
|
||||
: text !== null && (
|
||||
<Text variant={textSize} primary>
|
||||
{twemojify(avatarInitials(text))}
|
||||
</Text>
|
||||
)
|
||||
? <RawIcon size={size} src={iconSrc} />
|
||||
: text !== null && <Text variant={textSize}>{text}</Text>
|
||||
}
|
||||
</span>
|
||||
)
|
||||
}
|
||||
</div>
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
Avatar.defaultProps = {
|
||||
text: null,
|
||||
bgColor: 'transparent',
|
||||
iconSrc: null,
|
||||
iconColor: null,
|
||||
imageSrc: null,
|
||||
size: 'normal',
|
||||
};
|
||||
@@ -65,7 +50,6 @@ Avatar.propTypes = {
|
||||
text: PropTypes.string,
|
||||
bgColor: PropTypes.string,
|
||||
iconSrc: PropTypes.string,
|
||||
iconColor: PropTypes.string,
|
||||
imageSrc: PropTypes.string,
|
||||
size: PropTypes.oneOf(['large', 'normal', 'small', 'extra-small']),
|
||||
};
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
@use '../../partials/flex';
|
||||
|
||||
.avatar-container {
|
||||
display: inline-flex;
|
||||
width: 42px;
|
||||
@@ -26,17 +24,18 @@
|
||||
height: var(--av-extra-small);
|
||||
}
|
||||
|
||||
> img {
|
||||
img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
border-radius: inherit;
|
||||
background-color: var(--bg-surface-hover);
|
||||
}
|
||||
|
||||
.avatar__bordered {
|
||||
box-shadow: var(--bs-surface-border);
|
||||
}
|
||||
|
||||
.avatar__border {
|
||||
@extend .cp-fx__row--c-c;
|
||||
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
@@ -46,11 +45,7 @@
|
||||
border-radius: inherit;
|
||||
|
||||
.text {
|
||||
color: white;
|
||||
}
|
||||
&--active {
|
||||
@extend .avatar__border;
|
||||
box-shadow: var(--bs-surface-border);
|
||||
color: var(--tc-primary-high);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,57 +0,0 @@
|
||||
import { avatarInitials, cssVar } from '../../../util/common';
|
||||
|
||||
// renders the avatar and returns it as an URL
|
||||
export default async function renderAvatar({
|
||||
text, bgColor, imageSrc, size, borderRadius, scale,
|
||||
}) {
|
||||
try {
|
||||
const canvas = document.createElement('canvas');
|
||||
canvas.width = size * scale;
|
||||
canvas.height = size * scale;
|
||||
|
||||
const ctx = canvas.getContext('2d');
|
||||
|
||||
ctx.scale(scale, scale);
|
||||
|
||||
// rounded corners
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(size, size);
|
||||
ctx.arcTo(0, size, 0, 0, borderRadius);
|
||||
ctx.arcTo(0, 0, size, 0, borderRadius);
|
||||
ctx.arcTo(size, 0, size, size, borderRadius);
|
||||
ctx.arcTo(size, size, 0, size, borderRadius);
|
||||
|
||||
if (imageSrc) {
|
||||
// clip corners of image
|
||||
ctx.closePath();
|
||||
ctx.clip();
|
||||
|
||||
const img = new Image();
|
||||
img.crossOrigin = 'anonymous';
|
||||
const promise = new Promise((resolve, reject) => {
|
||||
img.onerror = reject;
|
||||
img.onload = resolve;
|
||||
});
|
||||
img.src = imageSrc;
|
||||
await promise;
|
||||
|
||||
ctx.drawImage(img, 0, 0, size, size);
|
||||
} else {
|
||||
// colored background
|
||||
ctx.fillStyle = cssVar(bgColor);
|
||||
ctx.fill();
|
||||
|
||||
// centered letter
|
||||
ctx.fillStyle = '#fff';
|
||||
ctx.font = `${cssVar('--fs-s1')} ${cssVar('--font-primary')}`;
|
||||
ctx.textBaseline = 'middle';
|
||||
ctx.textAlign = 'center';
|
||||
ctx.fillText(avatarInitials(text), size / 2, size / 2);
|
||||
}
|
||||
|
||||
return canvas.toDataURL();
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
return imageSrc;
|
||||
}
|
||||
}
|
||||
@@ -8,7 +8,7 @@ function NotificationBadge({ alert, content }) {
|
||||
const notificationClass = alert ? ' notification-badge--alert' : '';
|
||||
return (
|
||||
<div className={`notification-badge${notificationClass}`}>
|
||||
{content !== null && <Text variant="b3" weight="bold">{content}</Text>}
|
||||
{content !== null && <Text variant="b3">{content}</Text>}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
.text {
|
||||
color: var(--tc-badge);
|
||||
text-align: center;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
&--alert {
|
||||
|
||||
@@ -6,14 +6,13 @@ import Text from '../text/Text';
|
||||
import RawIcon from '../system-icons/RawIcon';
|
||||
import { blurOnBubbling } from './script';
|
||||
|
||||
const Button = React.forwardRef(({
|
||||
function Button({
|
||||
id, className, variant, iconSrc,
|
||||
type, onClick, children, disabled,
|
||||
}, ref) => {
|
||||
}) {
|
||||
const iconClass = (iconSrc === null) ? '' : `btn-${variant}--icon`;
|
||||
return (
|
||||
<button
|
||||
ref={ref}
|
||||
id={id === '' ? undefined : id}
|
||||
className={`${className ? `${className} ` : ''}btn-${variant} ${iconClass} noselect`}
|
||||
onMouseUp={(e) => blurOnBubbling(e, `.btn-${variant}`)}
|
||||
@@ -27,7 +26,7 @@ const Button = React.forwardRef(({
|
||||
{typeof children !== 'string' && children }
|
||||
</button>
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
Button.defaultProps = {
|
||||
id: '',
|
||||
|
||||