Hello world
First open source release of Campfire 🎉
49
.dockerignore
Normal file
@@ -0,0 +1,49 @@
|
||||
# See https://docs.docker.com/engine/reference/builder/#dockerignore-file for more about ignoring files.
|
||||
|
||||
# Ignore git directory.
|
||||
/.git/
|
||||
/.git*
|
||||
|
||||
# Ignore bundler config.
|
||||
/.bundle
|
||||
|
||||
# Ignore all environment files.
|
||||
/.env*
|
||||
!/.env.example
|
||||
|
||||
# Ignore all logfiles and tempfiles.
|
||||
/log/*
|
||||
/tmp/*
|
||||
!/log/.keep
|
||||
!/tmp/.keep
|
||||
|
||||
# Ignore pidfiles, but keep the directory.
|
||||
/tmp/pids/*
|
||||
!/tmp/pids/
|
||||
!/tmp/pids/.keep
|
||||
|
||||
# Ignore storage (uploaded files in development and any SQLite databases).
|
||||
/storage/*
|
||||
!/storage/
|
||||
!/storage/.keep
|
||||
|
||||
# Ignore development credentials
|
||||
/config/credentials.yml.enc
|
||||
|
||||
# Ignore deployment files
|
||||
/config/deploy*.yml
|
||||
/bin/deploy
|
||||
/bin/deploy-*
|
||||
/bin/release
|
||||
|
||||
# Ignore master.key (should be set in environment)
|
||||
/config/master.key
|
||||
|
||||
# Ignore editor noise
|
||||
/.vscode
|
||||
|
||||
# Ignore ignore
|
||||
.dockerignore
|
||||
|
||||
# Ignore test files
|
||||
/test/
|
||||
4
.env.erb
Normal file
@@ -0,0 +1,4 @@
|
||||
<% if (session_token = `op signin --account basecamp --raw`.strip) != "" %># Generated by mrsk envify
|
||||
MRSK_REGISTRY_PASSWORD=<%= `op read "op://Deploy/Docker Hub MRSK/password" -n --session #{session_token}` %>
|
||||
RAILS_MASTER_KEY=<%= `op read "op://Development/Chat-in-a-box/RAILS_MASTER_KEY" -n --session #{session_token}` %>
|
||||
<% else raise ArgumentError, "Session token missing" end %>
|
||||
7
.gitattributes
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# See https://git-scm.com/docs/gitattributes for more about git attribute files.
|
||||
|
||||
# Mark the database schema as having been generated.
|
||||
db/schema.rb linguist-generated
|
||||
|
||||
# Mark any vendored files as having been vendored.
|
||||
vendor/* linguist-vendored
|
||||
91
.github/workflows/ci.yml
vendored
Normal file
@@ -0,0 +1,91 @@
|
||||
name: CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
|
||||
jobs:
|
||||
scan:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Ruby
|
||||
uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: .ruby-version
|
||||
bundler-cache: true
|
||||
|
||||
- name: Scan for security vulnerabilities
|
||||
run: bin/brakeman
|
||||
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Ruby
|
||||
uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: .ruby-version
|
||||
bundler-cache: true
|
||||
|
||||
- name: Lint code for consistent style
|
||||
run: bin/rubocop
|
||||
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
services:
|
||||
redis:
|
||||
image: redis
|
||||
ports:
|
||||
- 6379:6379
|
||||
options: --health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5
|
||||
steps:
|
||||
- name: Install packages
|
||||
run: sudo apt-get update && sudo apt-get install --no-install-recommends -y libsqlite3-0 libvips curl ffmpeg
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Ruby
|
||||
uses: ruby/setup-ruby@v1
|
||||
env:
|
||||
REDIS_URL: redis://localhost:6379/0
|
||||
with:
|
||||
ruby-version: .ruby-version
|
||||
bundler-cache: true
|
||||
|
||||
- name: Run tests
|
||||
run: bin/rails db:setup test
|
||||
|
||||
test_system:
|
||||
runs-on: ubuntu-latest
|
||||
services:
|
||||
redis:
|
||||
image: redis
|
||||
ports:
|
||||
- 6379:6379
|
||||
options: --health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5
|
||||
steps:
|
||||
- name: Install packages
|
||||
run: sudo apt-get update && sudo apt-get install --no-install-recommends -y libsqlite3-0 libvips curl ffmpeg
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Ruby
|
||||
uses: ruby/setup-ruby@v1
|
||||
env:
|
||||
REDIS_URL: redis://localhost:6379/0
|
||||
with:
|
||||
ruby-version: .ruby-version
|
||||
bundler-cache: true
|
||||
|
||||
- name: Run tests
|
||||
run: bin/rails db:setup test:system
|
||||
44
.gitignore
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
# See https://help.github.com/articles/ignoring-files for more about ignoring files.
|
||||
#
|
||||
# If you find yourself ignoring temporary files generated by your text editor
|
||||
# or operating system, you probably want to add a global ignore instead:
|
||||
# git config --global core.excludesfile '~/.gitignore_global'
|
||||
|
||||
# Ignore bundler config.
|
||||
/.bundle
|
||||
|
||||
# Ignore the default SQLite database.
|
||||
/db/*.sqlite3
|
||||
/db/*.sqlite3-*
|
||||
|
||||
# Ignore all logfiles and tempfiles.
|
||||
/log/*
|
||||
/tmp/*
|
||||
!/log/.keep
|
||||
!/tmp/.keep
|
||||
|
||||
# Ignore pidfiles, but keep the directory.
|
||||
/tmp/pids/*
|
||||
!/tmp/pids/
|
||||
!/tmp/pids/.keep
|
||||
|
||||
# Ignore uploaded files in development.
|
||||
/storage/*
|
||||
!/storage/.keep
|
||||
/tmp/storage/*
|
||||
!/tmp/storage/
|
||||
!/tmp/storage/.keep
|
||||
|
||||
/public/assets
|
||||
|
||||
# Ignore master key for decrypting credentials and more.
|
||||
/config/master.key
|
||||
|
||||
# Ignore production envs
|
||||
/.env
|
||||
|
||||
# Ignore dartsass builds
|
||||
app/assets/builds/*
|
||||
|
||||
# Ignore our exported zipfiles
|
||||
/*.zip
|
||||
5
.pumaenv
Normal file
@@ -0,0 +1,5 @@
|
||||
CONFIG=./config/puma_dev.rb
|
||||
|
||||
# Mitigate Ruby crash on macOS (see https://github.com/rails/rails/issues/38560)
|
||||
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
|
||||
|
||||
2
.rubocop.yml
Normal file
@@ -0,0 +1,2 @@
|
||||
# Omakase Ruby styling for Rails
|
||||
inherit_gem: { rubocop-rails-omakase: rubocop.yml }
|
||||
1
.ruby-version
Normal file
@@ -0,0 +1 @@
|
||||
3.3.1
|
||||
67
Dockerfile
Normal file
@@ -0,0 +1,67 @@
|
||||
# syntax = docker/dockerfile:1
|
||||
|
||||
# Make sure it matches the Ruby version in .ruby-version and Gemfile
|
||||
ARG RUBY_VERSION=3.3.1
|
||||
FROM ruby:$RUBY_VERSION-slim AS base
|
||||
|
||||
# Rails app lives here
|
||||
WORKDIR /rails
|
||||
|
||||
# Set production environment
|
||||
ENV RAILS_ENV="production" \
|
||||
BUNDLE_DEPLOYMENT="1" \
|
||||
BUNDLE_PATH="/usr/local/bundle" \
|
||||
BUNDLE_WITHOUT="development"
|
||||
|
||||
|
||||
# Throw-away build stage to reduce size of final image
|
||||
FROM base AS build
|
||||
|
||||
# Install packages need to build gems
|
||||
RUN apt-get update -qq && \
|
||||
apt-get install -y build-essential git pkg-config
|
||||
|
||||
# Install application gems
|
||||
COPY Gemfile Gemfile.lock ./
|
||||
RUN bundle install && \
|
||||
rm -rf ~/.bundle/ "${BUNDLE_PATH}"/ruby/*/cache "${BUNDLE_PATH}"/ruby/*/bundler/gems/*/.git
|
||||
|
||||
# Copy application code
|
||||
COPY . .
|
||||
|
||||
# Precompiling assets for production without requiring secret RAILS_MASTER_KEY
|
||||
RUN SECRET_KEY_BASE_DUMMY=1 ./bin/rails assets:precompile
|
||||
|
||||
|
||||
# Final stage for app image
|
||||
FROM base
|
||||
|
||||
# Configure environment defaults
|
||||
ENV HTTP_IDLE_TIMEOUT=60
|
||||
ENV HTTP_READ_TIMEOUT=300
|
||||
ENV HTTP_WRITE_TIMEOUT=300
|
||||
|
||||
# Install packages needed to run the application
|
||||
RUN apt-get update -qq && \
|
||||
apt-get install --no-install-recommends -y libsqlite3-0 libvips curl ffmpeg redis && \
|
||||
rm -rf /var/lib/apt/lists /var/cache/apt/archives
|
||||
|
||||
# Run and own the application files as a non-root user for security
|
||||
RUN useradd rails
|
||||
USER rails:rails
|
||||
|
||||
# Copy built artifacts: gems, application
|
||||
COPY --from=build --chown=rails:rails /usr/local/bundle /usr/local/bundle
|
||||
COPY --from=build --chown=rails:rails /rails /rails
|
||||
|
||||
# Set version and revision
|
||||
ARG APP_VERSION
|
||||
ENV APP_VERSION=$APP_VERSION
|
||||
ARG GIT_REVISION
|
||||
ENV GIT_REVISION=$GIT_REVISION
|
||||
|
||||
# Expose ports for HTTP and HTTPS
|
||||
EXPOSE 80 443
|
||||
|
||||
# Start the server by default, this can be overwritten at runtime
|
||||
CMD ["bin/boot"]
|
||||
59
Gemfile
Normal file
@@ -0,0 +1,59 @@
|
||||
source "https://rubygems.org"
|
||||
|
||||
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
|
||||
git_source(:bc) { |repo| "https://github.com/basecamp/#{repo}" }
|
||||
|
||||
# Rails
|
||||
gem "rails", github: "rails/rails", branch: "main"
|
||||
|
||||
# Drivers
|
||||
gem "sqlite3", "~> 1.4"
|
||||
gem "redis", "~> 4.0"
|
||||
|
||||
# Deployment
|
||||
gem "puma", "~> 6.4"
|
||||
|
||||
# Jobs
|
||||
gem "resque", "~> 2.6.0"
|
||||
gem "resque-pool", "~> 0.7.1"
|
||||
|
||||
# Assets
|
||||
gem "propshaft", github: "rails/propshaft"
|
||||
gem "importmap-rails", github: "rails/importmap-rails"
|
||||
|
||||
# Hotwire
|
||||
gem "turbo-rails", github: "hotwired/turbo-rails"
|
||||
gem "stimulus-rails"
|
||||
|
||||
# Media handling
|
||||
gem "image_processing", ">= 1.2"
|
||||
|
||||
# Telemetry
|
||||
gem "sentry-ruby"
|
||||
gem "sentry-rails"
|
||||
|
||||
# Other
|
||||
gem "bcrypt"
|
||||
gem "web-push"
|
||||
gem "rqrcode"
|
||||
gem "rails_autolink"
|
||||
gem "geared_pagination"
|
||||
gem "jbuilder"
|
||||
gem "net-http-persistent"
|
||||
gem "kredis"
|
||||
gem "platform_agent"
|
||||
gem "thruster"
|
||||
|
||||
group :development, :test do
|
||||
gem "debug"
|
||||
gem "rubocop-rails-omakase", require: false
|
||||
gem "faker", require: false
|
||||
gem "brakeman", require: false
|
||||
end
|
||||
|
||||
group :test do
|
||||
gem "capybara"
|
||||
gem "mocha"
|
||||
gem "selenium-webdriver"
|
||||
gem "webmock", require: false
|
||||
end
|
||||
407
Gemfile.lock
Normal file
@@ -0,0 +1,407 @@
|
||||
GIT
|
||||
remote: https://github.com/hotwired/turbo-rails.git
|
||||
revision: d7155dd51d8aeaa7128ab50a62b5cd3cb91b84f1
|
||||
specs:
|
||||
turbo-rails (2.0.0)
|
||||
actionpack (>= 6.0.0)
|
||||
activejob (>= 6.0.0)
|
||||
railties (>= 6.0.0)
|
||||
|
||||
GIT
|
||||
remote: https://github.com/rails/importmap-rails.git
|
||||
revision: be74dead314957833f5d09e05a8daaa3526a964b
|
||||
specs:
|
||||
importmap-rails (2.0.1)
|
||||
actionpack (>= 6.0.0)
|
||||
activesupport (>= 6.0.0)
|
||||
railties (>= 6.0.0)
|
||||
|
||||
GIT
|
||||
remote: https://github.com/rails/propshaft.git
|
||||
revision: e7cdbcd4aa9c9a390dade263bbd7c7cedc0c6442
|
||||
specs:
|
||||
propshaft (0.8.0)
|
||||
actionpack (>= 7.0.0)
|
||||
activesupport (>= 7.0.0)
|
||||
rack
|
||||
railties (>= 7.0.0)
|
||||
|
||||
GIT
|
||||
remote: https://github.com/rails/rails.git
|
||||
revision: 776626ff987a96201b0bdbd86d716ca6698fa8b3
|
||||
branch: main
|
||||
specs:
|
||||
actioncable (7.2.0.alpha)
|
||||
actionpack (= 7.2.0.alpha)
|
||||
activesupport (= 7.2.0.alpha)
|
||||
nio4r (~> 2.0)
|
||||
websocket-driver (>= 0.6.1)
|
||||
zeitwerk (~> 2.6)
|
||||
actionmailbox (7.2.0.alpha)
|
||||
actionpack (= 7.2.0.alpha)
|
||||
activejob (= 7.2.0.alpha)
|
||||
activerecord (= 7.2.0.alpha)
|
||||
activestorage (= 7.2.0.alpha)
|
||||
activesupport (= 7.2.0.alpha)
|
||||
mail (>= 2.8.0)
|
||||
actionmailer (7.2.0.alpha)
|
||||
actionpack (= 7.2.0.alpha)
|
||||
actionview (= 7.2.0.alpha)
|
||||
activejob (= 7.2.0.alpha)
|
||||
activesupport (= 7.2.0.alpha)
|
||||
mail (>= 2.8.0)
|
||||
rails-dom-testing (~> 2.2)
|
||||
actionpack (7.2.0.alpha)
|
||||
actionview (= 7.2.0.alpha)
|
||||
activesupport (= 7.2.0.alpha)
|
||||
nokogiri (>= 1.8.5)
|
||||
racc
|
||||
rack (>= 2.2.4)
|
||||
rack-session (>= 1.0.1)
|
||||
rack-test (>= 0.6.3)
|
||||
rails-dom-testing (~> 2.2)
|
||||
rails-html-sanitizer (~> 1.6)
|
||||
useragent (~> 0.16)
|
||||
actiontext (7.2.0.alpha)
|
||||
actionpack (= 7.2.0.alpha)
|
||||
activerecord (= 7.2.0.alpha)
|
||||
activestorage (= 7.2.0.alpha)
|
||||
activesupport (= 7.2.0.alpha)
|
||||
globalid (>= 0.6.0)
|
||||
nokogiri (>= 1.8.5)
|
||||
actionview (7.2.0.alpha)
|
||||
activesupport (= 7.2.0.alpha)
|
||||
builder (~> 3.1)
|
||||
erubi (~> 1.11)
|
||||
rails-dom-testing (~> 2.2)
|
||||
rails-html-sanitizer (~> 1.6)
|
||||
activejob (7.2.0.alpha)
|
||||
activesupport (= 7.2.0.alpha)
|
||||
globalid (>= 0.3.6)
|
||||
activemodel (7.2.0.alpha)
|
||||
activesupport (= 7.2.0.alpha)
|
||||
activerecord (7.2.0.alpha)
|
||||
activemodel (= 7.2.0.alpha)
|
||||
activesupport (= 7.2.0.alpha)
|
||||
timeout (>= 0.4.0)
|
||||
activestorage (7.2.0.alpha)
|
||||
actionpack (= 7.2.0.alpha)
|
||||
activejob (= 7.2.0.alpha)
|
||||
activerecord (= 7.2.0.alpha)
|
||||
activesupport (= 7.2.0.alpha)
|
||||
marcel (~> 1.0)
|
||||
activesupport (7.2.0.alpha)
|
||||
base64
|
||||
bigdecimal
|
||||
concurrent-ruby (~> 1.0, >= 1.0.2)
|
||||
connection_pool (>= 2.2.5)
|
||||
drb
|
||||
i18n (>= 1.6, < 2)
|
||||
minitest (>= 5.1)
|
||||
tzinfo (~> 2.0, >= 2.0.5)
|
||||
rails (7.2.0.alpha)
|
||||
actioncable (= 7.2.0.alpha)
|
||||
actionmailbox (= 7.2.0.alpha)
|
||||
actionmailer (= 7.2.0.alpha)
|
||||
actionpack (= 7.2.0.alpha)
|
||||
actiontext (= 7.2.0.alpha)
|
||||
actionview (= 7.2.0.alpha)
|
||||
activejob (= 7.2.0.alpha)
|
||||
activemodel (= 7.2.0.alpha)
|
||||
activerecord (= 7.2.0.alpha)
|
||||
activestorage (= 7.2.0.alpha)
|
||||
activesupport (= 7.2.0.alpha)
|
||||
bundler (>= 1.15.0)
|
||||
railties (= 7.2.0.alpha)
|
||||
railties (7.2.0.alpha)
|
||||
actionpack (= 7.2.0.alpha)
|
||||
activesupport (= 7.2.0.alpha)
|
||||
irb
|
||||
rackup (>= 1.0.0)
|
||||
rake (>= 12.2)
|
||||
thor (~> 1.0, >= 1.2.2)
|
||||
zeitwerk (~> 2.6)
|
||||
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
addressable (2.8.6)
|
||||
public_suffix (>= 2.0.2, < 6.0)
|
||||
ast (2.4.2)
|
||||
base64 (0.2.0)
|
||||
bcrypt (3.1.20)
|
||||
bigdecimal (3.1.6)
|
||||
brakeman (6.1.1)
|
||||
racc
|
||||
builder (3.2.4)
|
||||
capybara (3.39.2)
|
||||
addressable
|
||||
matrix
|
||||
mini_mime (>= 0.1.3)
|
||||
nokogiri (~> 1.8)
|
||||
rack (>= 1.6.0)
|
||||
rack-test (>= 0.6.3)
|
||||
regexp_parser (>= 1.5, < 3.0)
|
||||
xpath (~> 3.2)
|
||||
chunky_png (1.4.0)
|
||||
concurrent-ruby (1.2.3)
|
||||
connection_pool (2.4.1)
|
||||
crack (0.4.5)
|
||||
rexml
|
||||
crass (1.0.6)
|
||||
date (3.3.4)
|
||||
debug (1.9.1)
|
||||
irb (~> 1.10)
|
||||
reline (>= 0.3.8)
|
||||
drb (2.2.0)
|
||||
ruby2_keywords
|
||||
erubi (1.12.0)
|
||||
faker (3.2.2)
|
||||
i18n (>= 1.8.11, < 2)
|
||||
ffi (1.16.3)
|
||||
geared_pagination (1.2.0)
|
||||
activesupport (>= 5.0)
|
||||
addressable (>= 2.5.0)
|
||||
globalid (1.2.1)
|
||||
activesupport (>= 6.1)
|
||||
hashdiff (1.1.0)
|
||||
i18n (1.14.1)
|
||||
concurrent-ruby (~> 1.0)
|
||||
image_processing (1.12.2)
|
||||
mini_magick (>= 4.9.5, < 5)
|
||||
ruby-vips (>= 2.0.17, < 3)
|
||||
io-console (0.7.2)
|
||||
irb (1.11.1)
|
||||
rdoc
|
||||
reline (>= 0.4.2)
|
||||
jbuilder (2.11.5)
|
||||
actionview (>= 5.0.0)
|
||||
activesupport (>= 5.0.0)
|
||||
json (2.7.1)
|
||||
jwt (2.7.1)
|
||||
kredis (1.7.0)
|
||||
activemodel (>= 6.0.0)
|
||||
activesupport (>= 6.0.0)
|
||||
redis (>= 4.2, < 6)
|
||||
language_server-protocol (3.17.0.3)
|
||||
loofah (2.22.0)
|
||||
crass (~> 1.0.2)
|
||||
nokogiri (>= 1.12.0)
|
||||
mail (2.8.1)
|
||||
mini_mime (>= 0.1.1)
|
||||
net-imap
|
||||
net-pop
|
||||
net-smtp
|
||||
marcel (1.0.2)
|
||||
matrix (0.4.2)
|
||||
mini_magick (4.12.0)
|
||||
mini_mime (1.1.5)
|
||||
minitest (5.22.1)
|
||||
mocha (2.1.0)
|
||||
ruby2_keywords (>= 0.0.5)
|
||||
mono_logger (1.1.2)
|
||||
multi_json (1.15.0)
|
||||
mustermann (3.0.0)
|
||||
ruby2_keywords (~> 0.0.1)
|
||||
net-http-persistent (4.0.2)
|
||||
connection_pool (~> 2.2)
|
||||
net-imap (0.4.9.1)
|
||||
date
|
||||
net-protocol
|
||||
net-pop (0.1.2)
|
||||
net-protocol
|
||||
net-protocol (0.2.2)
|
||||
timeout
|
||||
net-smtp (0.4.0.1)
|
||||
net-protocol
|
||||
nio4r (2.7.0)
|
||||
nokogiri (1.16.2-aarch64-linux)
|
||||
racc (~> 1.4)
|
||||
nokogiri (1.16.2-arm64-darwin)
|
||||
racc (~> 1.4)
|
||||
nokogiri (1.16.2-x86_64-darwin)
|
||||
racc (~> 1.4)
|
||||
nokogiri (1.16.2-x86_64-linux)
|
||||
racc (~> 1.4)
|
||||
openssl (3.2.0)
|
||||
parallel (1.24.0)
|
||||
parser (3.3.0.3)
|
||||
ast (~> 2.4.1)
|
||||
racc
|
||||
platform_agent (1.0.1)
|
||||
activesupport (>= 5.2.0)
|
||||
useragent (~> 0.16.3)
|
||||
psych (5.1.2)
|
||||
stringio
|
||||
public_suffix (5.0.4)
|
||||
puma (6.4.2)
|
||||
nio4r (~> 2.0)
|
||||
racc (1.7.3)
|
||||
rack (2.2.8)
|
||||
rack-protection (3.2.0)
|
||||
base64 (>= 0.1.0)
|
||||
rack (~> 2.2, >= 2.2.4)
|
||||
rack-session (1.0.2)
|
||||
rack (< 3)
|
||||
rack-test (2.1.0)
|
||||
rack (>= 1.3)
|
||||
rackup (1.0.0)
|
||||
rack (< 3)
|
||||
webrick
|
||||
rails-dom-testing (2.2.0)
|
||||
activesupport (>= 5.0.0)
|
||||
minitest
|
||||
nokogiri (>= 1.6)
|
||||
rails-html-sanitizer (1.6.0)
|
||||
loofah (~> 2.21)
|
||||
nokogiri (~> 1.14)
|
||||
rails_autolink (1.1.8)
|
||||
actionview (> 3.1)
|
||||
activesupport (> 3.1)
|
||||
railties (> 3.1)
|
||||
rainbow (3.1.1)
|
||||
rake (13.1.0)
|
||||
rdoc (6.6.2)
|
||||
psych (>= 4.0.0)
|
||||
redis (4.8.1)
|
||||
redis-namespace (1.11.0)
|
||||
redis (>= 4)
|
||||
regexp_parser (2.9.0)
|
||||
reline (0.4.2)
|
||||
io-console (~> 0.5)
|
||||
resque (2.6.0)
|
||||
mono_logger (~> 1.0)
|
||||
multi_json (~> 1.0)
|
||||
redis-namespace (~> 1.6)
|
||||
sinatra (>= 0.9.2)
|
||||
resque-pool (0.7.1)
|
||||
rake (>= 10.0, < 14.0)
|
||||
resque (>= 1.22, < 3)
|
||||
rexml (3.2.6)
|
||||
rqrcode (2.2.0)
|
||||
chunky_png (~> 1.0)
|
||||
rqrcode_core (~> 1.0)
|
||||
rqrcode_core (1.2.0)
|
||||
rubocop (1.59.0)
|
||||
json (~> 2.3)
|
||||
language_server-protocol (>= 3.17.0)
|
||||
parallel (~> 1.10)
|
||||
parser (>= 3.2.2.4)
|
||||
rainbow (>= 2.2.2, < 4.0)
|
||||
regexp_parser (>= 1.8, < 3.0)
|
||||
rexml (>= 3.2.5, < 4.0)
|
||||
rubocop-ast (>= 1.30.0, < 2.0)
|
||||
ruby-progressbar (~> 1.7)
|
||||
unicode-display_width (>= 2.4.0, < 3.0)
|
||||
rubocop-ast (1.30.0)
|
||||
parser (>= 3.2.1.0)
|
||||
rubocop-minitest (0.34.4)
|
||||
rubocop (>= 1.39, < 2.0)
|
||||
rubocop-ast (>= 1.30.0, < 2.0)
|
||||
rubocop-performance (1.20.2)
|
||||
rubocop (>= 1.48.1, < 2.0)
|
||||
rubocop-ast (>= 1.30.0, < 2.0)
|
||||
rubocop-rails (2.23.1)
|
||||
activesupport (>= 4.2.0)
|
||||
rack (>= 1.1)
|
||||
rubocop (>= 1.33.0, < 2.0)
|
||||
rubocop-ast (>= 1.30.0, < 2.0)
|
||||
rubocop-rails-omakase (1.0.0)
|
||||
rubocop
|
||||
rubocop-minitest
|
||||
rubocop-performance
|
||||
rubocop-rails
|
||||
ruby-progressbar (1.13.0)
|
||||
ruby-vips (2.2.0)
|
||||
ffi (~> 1.12)
|
||||
ruby2_keywords (0.0.5)
|
||||
rubyzip (2.3.2)
|
||||
selenium-webdriver (4.16.0)
|
||||
rexml (~> 3.2, >= 3.2.5)
|
||||
rubyzip (>= 1.2.2, < 3.0)
|
||||
websocket (~> 1.0)
|
||||
sentry-rails (5.16.1)
|
||||
railties (>= 5.0)
|
||||
sentry-ruby (~> 5.16.1)
|
||||
sentry-ruby (5.16.1)
|
||||
concurrent-ruby (~> 1.0, >= 1.0.2)
|
||||
sinatra (3.2.0)
|
||||
mustermann (~> 3.0)
|
||||
rack (~> 2.2, >= 2.2.4)
|
||||
rack-protection (= 3.2.0)
|
||||
tilt (~> 2.0)
|
||||
sqlite3 (1.7.0-aarch64-linux)
|
||||
sqlite3 (1.7.0-arm64-darwin)
|
||||
sqlite3 (1.7.0-x86_64-darwin)
|
||||
sqlite3 (1.7.0-x86_64-linux)
|
||||
stimulus-rails (1.3.3)
|
||||
railties (>= 6.0.0)
|
||||
stringio (3.1.0)
|
||||
thor (1.3.0)
|
||||
thruster (0.1.7-aarch64-linux)
|
||||
thruster (0.1.7-arm64-darwin)
|
||||
thruster (0.1.7-x86_64-darwin)
|
||||
thruster (0.1.7-x86_64-linux)
|
||||
tilt (2.3.0)
|
||||
timeout (0.4.1)
|
||||
tzinfo (2.0.6)
|
||||
concurrent-ruby (~> 1.0)
|
||||
unicode-display_width (2.5.0)
|
||||
useragent (0.16.10)
|
||||
web-push (3.0.1)
|
||||
jwt (~> 2.0)
|
||||
openssl (~> 3.0)
|
||||
webmock (3.19.1)
|
||||
addressable (>= 2.8.0)
|
||||
crack (>= 0.3.2)
|
||||
hashdiff (>= 0.4.0, < 2.0.0)
|
||||
webrick (1.8.1)
|
||||
websocket (1.2.10)
|
||||
websocket-driver (0.7.6)
|
||||
websocket-extensions (>= 0.1.0)
|
||||
websocket-extensions (0.1.5)
|
||||
xpath (3.2.0)
|
||||
nokogiri (~> 1.8)
|
||||
zeitwerk (2.6.13)
|
||||
|
||||
PLATFORMS
|
||||
aarch64-linux
|
||||
arm64-darwin
|
||||
x86_64-darwin
|
||||
x86_64-linux
|
||||
|
||||
DEPENDENCIES
|
||||
bcrypt
|
||||
brakeman
|
||||
capybara
|
||||
debug
|
||||
faker
|
||||
geared_pagination
|
||||
image_processing (>= 1.2)
|
||||
importmap-rails!
|
||||
jbuilder
|
||||
kredis
|
||||
mocha
|
||||
net-http-persistent
|
||||
platform_agent
|
||||
propshaft!
|
||||
puma (~> 6.4)
|
||||
rails!
|
||||
rails_autolink
|
||||
redis (~> 4.0)
|
||||
resque (~> 2.6.0)
|
||||
resque-pool (~> 0.7.1)
|
||||
rqrcode
|
||||
rubocop-rails-omakase
|
||||
selenium-webdriver
|
||||
sentry-rails
|
||||
sentry-ruby
|
||||
sqlite3 (~> 1.4)
|
||||
stimulus-rails
|
||||
thruster
|
||||
turbo-rails!
|
||||
web-push
|
||||
webmock
|
||||
|
||||
BUNDLED WITH
|
||||
2.5.9
|
||||
20
MIT-LICENSE
Normal file
@@ -0,0 +1,20 @@
|
||||
Copyright (c) 37signals, LLC
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, 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.
|
||||
3
Procfile
Normal file
@@ -0,0 +1,3 @@
|
||||
web: bundle exec thrust bin/start-app
|
||||
redis: redis-server config/redis.conf
|
||||
workers: FORK_PER_JOB=false INTERVAL=0.1 bundle exec resque-pool
|
||||
51
README.md
Normal file
@@ -0,0 +1,51 @@
|
||||
# Campfire
|
||||
|
||||
Campfire is web-based chat application. It supports many of the features you'd
|
||||
expect, including:
|
||||
|
||||
- Multiple rooms, with access controls
|
||||
- Direct messages
|
||||
- File attachments with previews
|
||||
- Search
|
||||
- Notifications (via Web Push)
|
||||
- @mentions
|
||||
- API, with support for bot integrations
|
||||
|
||||
Campfire is single-tenant: any rooms designated "public" will be accessible by
|
||||
all users in the system. To support entirely distinct groups of customers, you
|
||||
would deploy multiple instances of the application.
|
||||
|
||||
## Running in development
|
||||
|
||||
bin/setup
|
||||
bin/rails server
|
||||
|
||||
## Deploying with Docker
|
||||
|
||||
Campfire's Docker image contains everything needed for a fully-functional,
|
||||
single-machine deployment. This includes the web app, background jobs, caching,
|
||||
file serving, and SSL.
|
||||
|
||||
To persist storage of the database and file attachments, map a volume to `/rails/storage`.
|
||||
|
||||
To configure additional features, you can set the following environment variables:
|
||||
|
||||
- `SSL_DOMAIN` - enable automatic SSL via Let's Encrypt for the given domain name.
|
||||
- `DISABLE_SSL` - alternatively, set `DISABLE_SSL` to serve over plain HTTP
|
||||
- `VAPID_PUBLIC_KEY`/`VAPID_PRIVATE_KEY` - set these to a valid keypair to
|
||||
allow sending Web Push notifications. You can generate a new keypair by running
|
||||
`/script/admin/create-vapid-key`
|
||||
|
||||
For example:
|
||||
|
||||
docker build -t campfire .
|
||||
|
||||
docker run \
|
||||
--publish 80:80 --publish 443:443 \
|
||||
--restart unless-stopped \
|
||||
--volume campfire:/rails/storage \
|
||||
--env SECRET_KEY_BASE=$YOUR_SECRET_KEY_BASE \
|
||||
--env VAPID_PUBLIC_KEY=$YOUR_PUBLIC_KEY \
|
||||
--env VAPID_PRIVATE_KEY=$YOUR_PRIVATE_KEY \
|
||||
--env SSL_DOMAIN=chat.example.com \
|
||||
campfire
|
||||
6
Rakefile
Normal file
@@ -0,0 +1,6 @@
|
||||
# Add your own tasks in files placed in lib/tasks ending in .rake,
|
||||
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
|
||||
|
||||
require_relative "config/application"
|
||||
|
||||
Rails.application.load_tasks
|
||||
0
app/assets/images/.keep
Normal file
1
app/assets/images/add.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m0 12a1.5 1.5 0 0 0 1.5 1.5h8.75a.25.25 0 0 1 .25.25v8.75a1.5 1.5 0 0 0 3 0v-8.75a.25.25 0 0 1 .25-.25h8.75a1.5 1.5 0 0 0 0-3h-8.75a.25.25 0 0 1 -.25-.25v-8.75a1.5 1.5 0 0 0 -3 0v8.75a.25.25 0 0 1 -.25.25h-8.75a1.5 1.5 0 0 0 -1.5 1.5z"/></svg>
|
||||
|
After Width: | Height: | Size: 312 B |
1
app/assets/images/alert.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m23.119 20-9.347-17.85a2 2 0 0 0 -3.543 0l-9.348 17.85a2 2 0 0 0 1.772 2.928h18.694a2 2 0 0 0 1.772-2.928zm-12.119-11.577a1 1 0 0 1 2 0v6a1 1 0 1 1 -2 0zm1.05 11.51h-.028a1.528 1.528 0 0 1 -1.522-1.47 1.476 1.476 0 0 1 1.448-1.53h.028a1.527 1.527 0 0 1 1.524 1.467 1.475 1.475 0 0 1 -1.45 1.533z"/></svg>
|
||||
|
After Width: | Height: | Size: 373 B |
1
app/assets/images/arrow-down.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m22.334 10.127a2.6 2.6 0 0 0 -3.689-.066l-3.716 3.872a.25.25 0 0 1 -.43-.173v-11.621a2.277 2.277 0 0 0 -2.499-2.039c-.817 0-2.516.449-2.5 2v11.681a.251.251 0 0 1 -.427.177l-3.741-3.73a2.616 2.616 0 0 0 -3.659.1 2.6 2.6 0 0 0 -.1 3.659l9.717 9.623a.988.988 0 0 0 .7.289h.01a.993.993 0 0 0 .705-.3l9.7-9.791a2.61 2.61 0 0 0 -.071-3.681z"/></svg>
|
||||
|
After Width: | Height: | Size: 412 B |
1
app/assets/images/arrow-left.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m21.864 9.5h-11.607a.25.25 0 0 1 -.174-.43l3.864-3.721a2.609 2.609 0 0 0 -.075-3.682 2.612 2.612 0 0 0 -3.68-.077l-9.792 9.699a1 1 0 0 0 -.008 1.411l9.625 9.724a2.66 2.66 0 0 0 3.755-3.757l-3.729-3.733a.25.25 0 0 1 .177-.427h11.673c1.556 0 2-1.675 2-2.51a2.28 2.28 0 0 0 -2.029-2.497z"/></svg>
|
||||
|
After Width: | Height: | Size: 362 B |
1
app/assets/images/arrow-right.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m23.6 11.289-9.793-9.7a2.607 2.607 0 0 0 -3.679.075 2.638 2.638 0 0 0 -.068 3.689l3.871 3.714a.25.25 0 0 1 -.173.43h-11.623a2.28 2.28 0 0 0 -2.035 2.503c0 .815.448 2.51 2 2.51h11.679a.25.25 0 0 1 .177.427l-3.731 3.733a2.66 2.66 0 0 0 3.758 3.754l9.625-9.72a1 1 0 0 0 -.008-1.415z"/></svg>
|
||||
|
After Width: | Height: | Size: 357 B |
1
app/assets/images/arrow-up.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m22.41 10.2-9.704-9.8a.99.99 0 0 0 -.706-.3.992.992 0 0 0 -.7.289l-9.727 9.631a2.6 2.6 0 0 0 .1 3.657 2.59 2.59 0 0 0 3.657.1l3.743-3.732a.25.25 0 0 1 .426.178v11.666c-.016 1.559 1.665 2.011 2.501 2.011a2.276 2.276 0 0 0 2.5-2.034v-11.625a.25.25 0 0 1 .431-.173l3.722 3.881a2.658 2.658 0 0 0 3.757-3.749z"/></svg>
|
||||
|
After Width: | Height: | Size: 382 B |
1
app/assets/images/art.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg enable-background="new 0 0 24 24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m14.2 15.2c.1-.7-.4-1.4-1.1-1.5-1.8-.2-3.5.8-4.2 2.5-.5 1.2-1 1.1-1.5.9-2.7-.7-4.6-3.1-4.8-5.8.1-3.5 3.6-6.3 7.9-6.3 1.7 0 3.3.4 4.7 1.3.6.4 1.5.2 1.9-.4s.2-1.5-.4-1.9c-1.9-1.1-4-1.7-6.1-1.7-6-.1-10.6 4-10.6 9 .2 3.9 2.8 7.3 6.6 8.4 1.9.7 4-.2 4.7-2.1 0-.1.1-.2.1-.3.2-.6.8-.9 1.4-.9s1.3-.5 1.4-1.2z"/><circle cx="6.1" cy="12.8" r="1.3"/><circle cx="7.4" cy="8.4" r="1.3"/><circle cx="11.8" cy="7.5" r="1.3"/><path d="m21.8 4.4c-.3-.2-.6-.2-.9-.1s-.5.4-.5.7c0 1.1-.6 2.1-1.5 2.6-1.3 1-2.2 2-1.8 3.7.1.4.3.8.5 1.1s.2.6.1.9l-4.5 8.9c-.3.7-.1 1.5.6 1.8s1.5.1 1.8-.6l4.7-9.3c.1-.2.3-.4.6-.5.9-.2 1.6-.8 2.2-1.5.8-1.1 1.1-2.5.8-3.8-.2-1.6-1-2.9-2.1-3.9z"/></svg>
|
||||
|
After Width: | Height: | Size: 760 B |
1
app/assets/images/attachment.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m21.843 3.455a6.961 6.961 0 0 0 -9.846 0l-10.378 10.377a5.128 5.128 0 0 0 7.252 7.252l8.429-8.431a3.293 3.293 0 1 0 -4.654-4.653l-5.189 5.184a1 1 0 1 0 1.414 1.416l5.189-5.191a1.294 1.294 0 0 1 1.829 1.83l-8.432 8.431a3.128 3.128 0 0 1 -4.424-4.424l10.378-10.377a4.962 4.962 0 1 1 7.018 7.018l-7.783 7.783a1 1 0 1 0 1.414 1.414l7.783-7.784a6.96 6.96 0 0 0 0-9.846z"/></svg>
|
||||
|
After Width: | Height: | Size: 442 B |
1
app/assets/images/bio.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m19.75 6h3.5a.5.5 0 0 0 .475-.658l-1.75-5a.5.5 0 0 0 -.95 0l-1.75 5a.5.5 0 0 0 .475.658z"/><path d="m16.5 2h-12.5a.5.5 0 0 0 -.5.5v19a.5.5 0 0 0 .5.5h12.5a.5.5 0 0 0 .5-.5v-19a.5.5 0 0 0 -.5-.5zm-9 8.5v-3a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 .5.5v3a.5.5 0 0 1 -.5.5h-5a.5.5 0 0 1 -.5-.5z"/><path d="m2 2h-.5a1.5 1.5 0 0 0 -1.5 1.5v17a1.5 1.5 0 0 0 1.5 1.5h.5a.5.5 0 0 0 .5-.5v-19a.5.5 0 0 0 -.5-.5z"/><rect height="12.5" rx=".5" width="5" x="19" y="7"/><path d="m23.5 20.5h-4a.5.5 0 0 0 -.5.5v.5a2.5 2.5 0 1 0 5 0v-.5a.5.5 0 0 0 -.5-.5z"/></svg>
|
||||
|
After Width: | Height: | Size: 607 B |
1
app/assets/images/boost.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg enable-background="new 0 0 24 24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m16.5 14.1c-.5-.3-1.1-.1-1.4.4-.6 1.2-1.8 1.9-3.1 2-1.3 0-2.5-.8-3.1-2-.3-.5-.9-.6-1.4-.3-.5.2-.6.8-.4 1.3 1 1.8 2.8 3 4.9 3s3.9-1.2 4.9-3c.2-.5.1-1.1-.4-1.4z"/><circle cx="8" cy="9" r="2"/><circle cx="16" cy="9" r="2"/><path d="m6.9 1.1c-6 2.9-8.4 10.1-5.5 16 2.3 4.6 7.2 7.3 12.3 6.6.1 0 .2 0 .3-.1.5-.2.7-.8.5-1.3-.2-.4-.6-.6-1-.6-5.5.7-10.5-3.1-11.2-8.6s3.1-10.4 8.5-11.1 10.5 3.1 11.2 8.6c.2 1.2.1 2.4-.2 3.6-.1.5.2 1.1.7 1.2s1.1-.2 1.2-.7c1.6-6.4-2.4-12.9-8.9-14.5-2.6-.6-5.4-.3-7.9.9z"/><path d="m18.1 22.8c0 .7.6 1.2 1.2 1.2s1.2-.6 1.2-1.2v-2c0-.1.1-.2.2-.2h2c.7 0 1.2-.6 1.2-1.2s-.3-1.4-1-1.4h-2c-.1 0-.2-.1-.2-.2v-2c0-.7-.6-1.2-1.2-1.2s-1.2.6-1.2 1.2v2c0 .1-.1.2-.2.2h-2c-.7 0-1.2.6-1.2 1.2s.6 1.2 1.2 1.2h2c.1 0 .2.1.2.2v2.2z"/></svg>
|
||||
|
After Width: | Height: | Size: 848 B |
1
app/assets/images/bot.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg enable-background="new 0 0 24 24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m12 0c1.2 0 2.2 1 2.2 2.2 0 .8-.4 1.5-1.1 1.9v1.4h1.1c4.2 0 7.6 3.4 7.6 7.6h1.1c.6 0 1.1.5 1.1 1.1v3.3c0 .6-.5 1.1-1.1 1.1h-1.1v1.1c0 1.2-1 2.2-2.2 2.2h-15.2c-1.2 0-2.2-1-2.2-2.2v-1.1h-1.1c-.6 0-1.1-.5-1.1-1.1v-3.3c0-.6.5-1.1 1.1-1.1h1.1c0-4.2 3.4-7.6 7.6-7.6h1.1v-1.4c-.6-.4-1.1-1.1-1.1-1.9 0-1.2 1-2.2 2.2-2.2m-4.9 12c-1.5 0-2.7 1.2-2.7 2.7s1.2 2.7 2.7 2.7 2.7-1.2 2.7-2.7-1.2-2.7-2.7-2.7m9.8 0c-1.5 0-2.7 1.2-2.7 2.7s1.2 2.7 2.7 2.7 2.7-1.2 2.7-2.7-1.2-2.7-2.7-2.7z"/></svg>
|
||||
|
After Width: | Height: | Size: 580 B |
1
app/assets/images/broom.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m23.183 15.264-4.773-3.819a4.93 4.93 0 0 0 -4.21-.945.5.5 0 0 1 -.467-.133l-.819-.819a2.418 2.418 0 0 0 -2.236-.607.5.5 0 0 1 -.463-.134l-8.51-8.516a1 1 0 0 0 -1.405 1.418l8.487 8.491a.5.5 0 0 1 .133.474 2.35 2.35 0 0 0 .627 2.24l.819.819a.5.5 0 0 1 .133.467 4.926 4.926 0 0 0 .945 4.207l3.82 4.774a2.185 2.185 0 0 0 1.707.819 2.161 2.161 0 0 0 1.117-.309 16.382 16.382 0 0 0 5.6-5.6 2.186 2.186 0 0 0 -.505-2.827zm-1.359 2.041c-.052.083-.113.178-.182.283a.5.5 0 0 1 -.771.076l-2.339-2.339a.75.75 0 0 0 -1.06 1.06l2.528 2.53a.5.5 0 0 1 .008.7q-.2.207-.416.417a.5.5 0 0 1 -.7-.007l-2.508-2.508a.75.75 0 0 0 -1.061 1.061l2.312 2.311a.5.5 0 0 1 -.076.77c-.094.063-.179.118-.253.165a.5.5 0 0 1 -.658-.11l-3.641-4.554a2.955 2.955 0 0 1 4.153-4.154l4.553 3.643a.5.5 0 0 1 .111.656z"/><path d="m5.25 10.25a.5.5 0 0 1 -.5-.5.75.75 0 0 0 -1.5 0 .5.5 0 0 1 -.5.5.75.75 0 0 0 0 1.5.5.5 0 0 1 .5.5.75.75 0 0 0 1.5 0 .5.5 0 0 1 .5-.5.75.75 0 0 0 0-1.5z"/><path d="m10.25 21.25a.5.5 0 0 1 -.5-.5.75.75 0 0 0 -1.5 0 .5.5 0 0 1 -.5.5.75.75 0 0 0 0 1.5.5.5 0 0 1 .5.5.75.75 0 0 0 1.5 0 .5.5 0 0 1 .5-.5.75.75 0 0 0 0-1.5z"/><path d="m12.25 4h.75a.5.5 0 0 1 .5.5v.75a.75.75 0 0 0 1.5 0v-.75a.5.5 0 0 1 .5-.5h.75a.75.75 0 0 0 0-1.5h-.75a.5.5 0 0 1 -.5-.5v-.75a.75.75 0 0 0 -1.5 0v.75a.5.5 0 0 1 -.5.5h-.75a.75.75 0 0 0 0 1.5z"/><circle cx="3.5" cy="18.5" r="1"/><circle cx="21.5" cy="6" r="1"/></svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
1
app/assets/images/browsers/android.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 48 48" height="48" width="48"><defs><linearGradient id="a" x1="3.2173" y1="15" x2="44.7812" y2="15" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#d93025"/><stop offset="1" stop-color="#ea4335"/></linearGradient><linearGradient id="b" x1="20.7219" y1="47.6791" x2="41.5039" y2="11.6837" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fcc934"/><stop offset="1" stop-color="#fbbc04"/></linearGradient><linearGradient id="c" x1="26.5981" y1="46.5015" x2="5.8161" y2="10.506" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#1e8e3e"/><stop offset="1" stop-color="#34a853"/></linearGradient></defs><circle cx="24" cy="23.9947" r="12" style="fill:#fff"/><path d="M3.2154,36A24,24,0,1,0,12,3.2154,24,24,0,0,0,3.2154,36ZM34.3923,18A12,12,0,1,1,18,13.6077,12,12,0,0,1,34.3923,18Z" style="fill:none"/><path d="M24,12H44.7812a23.9939,23.9939,0,0,0-41.5639.0029L13.6079,30l.0093-.0024A11.9852,11.9852,0,0,1,24,12Z" style="fill:url(#a)"/><circle cx="24" cy="24" r="9.5" style="fill:#1a73e8"/><path d="M34.3913,30.0029,24.0007,48A23.994,23.994,0,0,0,44.78,12.0031H23.9989l-.0025.0093A11.985,11.985,0,0,1,34.3913,30.0029Z" style="fill:url(#b)"/><path d="M13.6086,30.0031,3.218,12.006A23.994,23.994,0,0,0,24.0025,48L34.3931,30.0029l-.0067-.0068a11.9852,11.9852,0,0,1-20.7778.007Z" style="fill:url(#c)"/></svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
1
app/assets/images/browsers/chrome.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 48 48" height="48" width="48"><defs><linearGradient id="a" x1="3.2173" y1="15" x2="44.7812" y2="15" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#d93025"/><stop offset="1" stop-color="#ea4335"/></linearGradient><linearGradient id="b" x1="20.7219" y1="47.6791" x2="41.5039" y2="11.6837" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fcc934"/><stop offset="1" stop-color="#fbbc04"/></linearGradient><linearGradient id="c" x1="26.5981" y1="46.5015" x2="5.8161" y2="10.506" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#1e8e3e"/><stop offset="1" stop-color="#34a853"/></linearGradient></defs><circle cx="24" cy="23.9947" r="12" style="fill:#fff"/><path d="M3.2154,36A24,24,0,1,0,12,3.2154,24,24,0,0,0,3.2154,36ZM34.3923,18A12,12,0,1,1,18,13.6077,12,12,0,0,1,34.3923,18Z" style="fill:none"/><path d="M24,12H44.7812a23.9939,23.9939,0,0,0-41.5639.0029L13.6079,30l.0093-.0024A11.9852,11.9852,0,0,1,24,12Z" style="fill:url(#a)"/><circle cx="24" cy="24" r="9.5" style="fill:#1a73e8"/><path d="M34.3913,30.0029,24.0007,48A23.994,23.994,0,0,0,44.78,12.0031H23.9989l-.0025.0093A11.985,11.985,0,0,1,34.3913,30.0029Z" style="fill:url(#b)"/><path d="M13.6086,30.0031,3.218,12.006A23.994,23.994,0,0,0,24.0025,48L34.3931,30.0029l-.0067-.0068a11.9852,11.9852,0,0,1-20.7778.007Z" style="fill:url(#c)"/></svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
1
app/assets/images/browsers/edge.svg
Normal file
|
After Width: | Height: | Size: 31 KiB |
1
app/assets/images/browsers/firefox.svg
Normal file
|
After Width: | Height: | Size: 10 KiB |
1
app/assets/images/browsers/opera.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 75.591 75.591" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" gradientTransform="matrix(0 -54.944 -54.944 0 23.62 79.474)" gradientUnits="userSpaceOnUse" x2="1"><stop offset="0" stop-color="#ff1b2d"/><stop offset=".3" stop-color="#ff1b2d"/><stop offset=".614" stop-color="#ff1b2d"/><stop offset="1" stop-color="#a70014"/></linearGradient><linearGradient id="b" gradientTransform="matrix(0 -48.595 -48.595 0 37.854 76.235)" gradientUnits="userSpaceOnUse" x2="1"><stop offset="0" stop-color="#9c0000"/><stop offset=".7" stop-color="#ff4b4b"/><stop offset="1" stop-color="#ff4b4b"/></linearGradient><g transform="matrix(1.3333 0 0 -1.3333 0 107.2)"><path d="m28.346 80.398c-15.655 0-28.346-12.691-28.346-28.346 0-15.202 11.968-27.609 26.996-28.313.44848-.02115.89766-.03314 1.3504-.03314 7.2574 0 13.876 2.7289 18.891 7.2137-3.3227-2.2036-7.2074-3.4715-11.359-3.4715-6.7504 0-12.796 3.3488-16.862 8.6297-3.1344 3.6999-5.1645 9.1691-5.3028 15.307v1.3349c.13821 6.1377 2.1683 11.608 5.302 15.307 4.0666 5.2809 10.112 8.6297 16.862 8.6297 4.1526 0 8.038-1.2679 11.361-3.4729-4.9904 4.4643-11.569 7.1876-18.786 7.2144-.03596 0-.07122.0014-.10718.0014z" fill="url(#a)"/><path d="m19.016 68.025c2.6013 3.0709 5.9607 4.9227 9.631 4.9227 8.2524 0 14.941-9.356 14.941-20.897s-6.6891-20.897-14.941-20.897c-3.6703 0-7.0297 1.851-9.6303 4.922 4.0659-5.2809 10.111-8.6297 16.862-8.6297 4.1519 0 8.0366 1.2679 11.359 3.4715 5.802 5.1906 9.4554 12.735 9.4554 21.133 0 8.397-3.6527 15.941-9.4533 21.131-3.3234 2.205-7.2088 3.4729-11.361 3.4729-6.7504 0-12.796-3.3488-16.862-8.6297" fill="url(#b)"/></g></svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
1
app/assets/images/browsers/safari.svg
Normal file
|
After Width: | Height: | Size: 16 KiB |
1
app/assets/images/camera.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><circle cx="14.75" cy="13.125" r="3.75"/><path d="m21.444 6.125h-1.316a.534.534 0 0 1 -.481-.346c-.618-1.304-1.257-2.654-2.647-2.654h-5c-1.071 0-1.636.778-2.659 2.191-.384.527-.51.809-.844.809h-6c-2.063 0-2.497 1.209-2.497 2.223v10.388a2.254 2.254 0 0 0 2.556 2.389h18.888a2.254 2.254 0 0 0 2.556-2.389v-10.388c0-1.014-.443-2.223-2.556-2.223zm-.944 7a5.75 5.75 0 1 1 -5.75-5.75 5.756 5.756 0 0 1 5.75 5.75zm-15.5-3.25a1.25 1.25 0 1 1 -1.25-1.25 1.25 1.25 0 0 1 1.25 1.25z"/><path d="m2.5 5.109 3 .016a.5.5 0 0 0 .5-.5v-.25a1.5 1.5 0 0 0 -1.5-1.5h-1a1.5 1.5 0 0 0 -1.5 1.5v.234a.5.5 0 0 0 .5.5z"/></svg>
|
||||
|
After Width: | Height: | Size: 662 B |
BIN
app/assets/images/campfire-icon.png
Normal file
|
After Width: | Height: | Size: 108 KiB |
1
app/assets/images/check.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m23.146 5.4-2.792-2.8a.5.5 0 0 0 -.708 0l-11.792 11.8a.5.5 0 0 1 -.708 0l-2.792-2.8a.5.5 0 0 0 -.708 0l-2.792 2.8a.5.5 0 0 0 0 .707l6.292 6.293a.5.5 0 0 0 .708 0l15.292-15.3a.5.5 0 0 0 0-.7z"/></svg>
|
||||
|
After Width: | Height: | Size: 268 B |
1
app/assets/images/common-file-text.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m21.414 4.914-4.328-4.328a2 2 0 0 0 -1.414-.586h-11.672a2 2 0 0 0 -2 2v20a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-15.672a2 2 0 0 0 -.586-1.414zm-10.414 14.586h-4.5a1 1 0 0 1 0-2h4.5a1 1 0 0 1 0 2zm4.5-4h-9a1 1 0 0 1 0-2h9a1 1 0 0 1 0 2zm0-4h-9a1 1 0 0 1 0-2h9a1 1 0 0 1 0 2z"/></svg>
|
||||
|
After Width: | Height: | Size: 344 B |
1
app/assets/images/copy-paste.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m13.4 4.727a.251.251 0 0 0 .2.265 1.089 1.089 0 0 1 .824 1.108v1.4a1.244 1.244 0 0 0 1.244 1.244 1.244 1.244 0 0 0 1.245-1.244v-3.525a1.494 1.494 0 0 0 -1.5-1.494h-1.724a.246.246 0 0 0 -.177.074.249.249 0 0 0 -.073.177c.002.473.001 1.492-.039 1.995z"/><path d="m8.954 21.262a1.244 1.244 0 0 0 -1.244-1.244h-4.226a1.073 1.073 0 0 1 -1-1.136v-12.782a1.086 1.086 0 0 1 .842-1.115.25.25 0 0 0 .2-.258c-.039-.766-.051-1.6-.055-2a.25.25 0 0 0 -.25-.247h-1.721a1.494 1.494 0 0 0 -1.5 1.495v17.037a1.493 1.493 0 0 0 1.494 1.493h6.216a1.244 1.244 0 0 0 1.244-1.243z"/><path d="m11.937 4.472v-1.988a.5.5 0 0 0 -.5-.5h-.758a.251.251 0 0 1 -.249-.222 1.989 1.989 0 0 0 -3.953 0 .249.249 0 0 1 -.249.222h-.755a.5.5 0 0 0 -.5.5v1.988a.5.5 0 0 0 .5.5h5.967a.5.5 0 0 0 .497-.5z"/><path d="m19.02 17.269h-3.979a.75.75 0 1 0 0 1.5h3.979a.75.75 0 1 0 0-1.5z"/><path d="m14.291 14.54a.75.75 0 0 0 .75.749h2.486a.75.75 0 1 0 0-1.5h-2.486a.75.75 0 0 0 -.75.751z"/><path d="m23.5 13.46a1.991 1.991 0 0 0 -.584-1.409l-1.406-1.4a1.994 1.994 0 0 0 -1.41-.584h-7.606a1.993 1.993 0 0 0 -1.994 1.988v9.945a2 2 0 0 0 2 2h9a2 2 0 0 0 2-2zm-11-.4a1 1 0 0 1 1-1h6.187a1 1 0 0 1 .707.292l.818.816a1 1 0 0 1 .293.708v7.124a1 1 0 0 1 -1 1h-7a1 1 0 0 1 -1-1z"/></svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
1
app/assets/images/crown.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m24 6.25a3 3 0 1 0 -4.258 2.714c-.47 1.376-1.536 3.786-3.242 3.786-2.3 0-2.967-3.142-3.53-6.175a3 3 0 1 0 -1.94 0c-.56 3.1-1.239 6.175-3.53 6.175-1.706 0-2.772-2.41-3.242-3.786a3.008 3.008 0 1 0 -2.129.141l1.635 9.809a1 1 0 0 0 .986.836h14.5a1 1 0 0 0 .986-.836l1.635-9.809a2.992 2.992 0 0 0 2.129-2.855z"/><path d="m19.25 21.25h-14.5a1 1 0 0 0 0 2h14.5a1 1 0 0 0 0-2z"/></svg>
|
||||
|
After Width: | Height: | Size: 446 B |
1
app/assets/images/default-avatar.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg enable-background="new 0 0 17 17" viewBox="0 0 17 17" xmlns="http://www.w3.org/2000/svg"><path d="m0 0h17v17h-17z" fill="#fff"/><path d="m0 0h17v17h-17z" fill-opacity=".33"/><path d="m10.9 11.9-.5-.2c-.2-.4-.2-.8-.1-1.2.9-.9 1.3-2.1 1.2-3.3 0-1.8-1.3-3.2-3.1-3.2s-3 1.4-3 3.2c-.1 1.1.3 2.4 1.2 3.3.2.4.2.8-.1 1.2l-.5.2c-1.9.7-3.4 1.1-3.9 2-.3.9-.6 1.8-.6 2.7 0 .2.2.4.4.4h12.9c.2 0 .4-.2.4-.4 0-.9-.2-1.8-.6-2.7-.3-.8-1.8-1.3-3.7-2z" fill-opacity=".5"/></svg>
|
||||
|
After Width: | Height: | Size: 464 B |
1
app/assets/images/default-bot-avatar.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg enable-background="new 0 0 18 18" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg"><path d="m0 0h18v18h-18z" fill="#fff"/><path d="m0 0h18v18h-18z" fill-opacity=".33"/><g fill-opacity=".5"><path d="m14.9 15.2-3.3-.6s0-.9 0-1.1-.8-.1-.8-.1v-.3c.1 0 .2-.1.2-.1s.1-.1.2-.2h.6v.3l.4-.2v-1.1l-.4-.4.5-.1.2-1.1h.3l.2-1.8-.3-.2.1-.2s.1-.9-.5-2.3c-.7-1.7-3.1-2.5-3.1-2.5h-.4c-.4.1-2.4 1-3.1 2.5-.6 1.3-.4 2.2-.4 2.2l.1.2-.4.3.3 1.9h.3l.2 1.1.5.1-.4.4v1.1l.4.2v-.3h.6c0 .1 0 .1.1.2 0 0 .1.1.2.1v.3s-.8-.1-.8.1v1.1l-3.3.6s-.9 1-.8 2.8h13.5c0-1.9-.9-2.9-.9-2.9zm-7.1-5.5c-.5 0-.8-.4-.8-.8-.1-.5.3-.9.8-.9s.8.4.8.8c0 .5-.4.9-.8.9zm1.8 2.2h-1.2v-.4h1.1zm.6-2.2c-.5 0-.8-.4-.8-.8 0-.5.4-.9.8-.9.5 0 .8.4.8.8.1.5-.3.9-.8.9z"/><path d="m7.8 8.6c-.1 0-.2.1-.2.2s.1.2.2.2c.1.1.2 0 .2-.2 0-.1-.1-.2-.2-.2z"/><path d="m10.2 8.6c-.1 0-.2.1-.2.2s.1.2.2.2.2-.1.2-.2c.1-.1 0-.2-.2-.2z"/></g></svg>
|
||||
|
After Width: | Height: | Size: 884 B |
1
app/assets/images/disclosure.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m7.207 23.751 12.471-10.984a1.066 1.066 0 0 0 0-1.539l-12.471-10.979a.987.987 0 0 0 -1.414.107l-1.557 1.85a1.028 1.028 0 0 0 .111 1.438l9.453 8.165a.25.25 0 0 1 0 .379l-9.45 8.168a1.021 1.021 0 0 0 -.349.7 1 1 0 0 0 .238.741l1.558 1.851a.989.989 0 0 0 1.414.107z"/></svg>
|
||||
|
After Width: | Height: | Size: 340 B |
1
app/assets/images/download.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m22.667 16.938a1.212 1.212 0 0 0 -1.212 1.212v1.855a1.572 1.572 0 0 1 -1.571 1.57h-15.768a1.572 1.572 0 0 1 -1.571-1.57v-1.855a1.212 1.212 0 0 0 -2.424 0v1.855a4 4 0 0 0 3.995 4h15.768a4 4 0 0 0 4-4v-1.855a1.212 1.212 0 0 0 -1.217-1.212z"/><path d="m12 0a1.939 1.939 0 0 0 -1.939 1.939v9.066a.25.25 0 0 1 -.25.25h-2.659a.97.97 0 0 0 -.732 1.606l4.848 5.576a.969.969 0 0 0 1.464 0l4.848-5.576a.97.97 0 0 0 -.732-1.606h-2.659a.25.25 0 0 1 -.25-.25v-9.066a1.939 1.939 0 0 0 -1.939-1.939z"/></svg>
|
||||
|
After Width: | Height: | Size: 562 B |
1
app/assets/images/email.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m23.888 5.832a.182.182 0 0 0 -.2.039l-9.747 9.745a2.75 2.75 0 0 1 -3.888 0l-9.743-9.745a.18.18 0 0 0 -.2-.039.182.182 0 0 0 -.11.168v12a2 2 0 0 0 2 2h20a2 2 0 0 0 2-2v-12a.181.181 0 0 0 -.112-.168z"/><path d="m11.115 14.556a1.252 1.252 0 0 0 1.768 0l9.686-9.686a.5.5 0 0 0 .121-.511c-.11-.329-.416-.359-.69-.359h-20c-.275 0-.583.03-.691.359a.5.5 0 0 0 .121.511z"/></svg>
|
||||
|
After Width: | Height: | Size: 439 B |
1
app/assets/images/everyone.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg enable-background="new 0 0 24 24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m5.1.6c1.4 0 2.6 1.2 2.6 2.6s-1.1 2.5-2.6 2.5-2.5-1.1-2.5-2.5 1.1-2.6 2.5-2.6m0 6c2.8 0 5.1 1.2 5.1 2.6v1.1h-10.2v-1.1c0-1.5 2.3-2.6 5.1-2.6z"/><path d="m18.9.6c1.4 0 2.6 1.2 2.6 2.6s-1.2 2.6-2.6 2.6-2.6-1.2-2.6-2.6 1.1-2.6 2.6-2.6m0 6c2.8 0 5.1 1.2 5.1 2.6v1.1h-10.3v-1.1c0-1.5 2.3-2.6 5.2-2.6z"/><path d="m5.1 14.3c1.4 0 2.6 1.2 2.6 2.6s-1.2 2.6-2.6 2.6-2.6-1.2-2.6-2.6 1.2-2.6 2.6-2.6m0 6c2.8 0 5.1 1.2 5.1 2.6v1.1h-10.2v-1.1c0-1.5 2.3-2.6 5.1-2.6z"/><path d="m18.9 14.3c1.4 0 2.6 1.2 2.6 2.6s-1.2 2.6-2.6 2.6-2.6-1.2-2.6-2.6 1.1-2.6 2.6-2.6m0 6c2.8 0 5.1 1.2 5.1 2.6v1.1h-10.3v-1.1c0-1.5 2.3-2.6 5.2-2.6z"/></svg>
|
||||
|
After Width: | Height: | Size: 720 B |
1
app/assets/images/external/gear.svg
vendored
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
1
app/assets/images/external/install-edge.svg
vendored
Normal file
@@ -0,0 +1 @@
|
||||
<svg enable-background="new 0 0 22 22" viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg"><path d="m20.3 4.7h-2.8c-.1 0-.3-.1-.3-.3v-2.7c0-.4-.4-.8-.8-.8s-.8.4-.8.8v2.8c0 .1-.1.3-.3.3h-2.8c-.4 0-.8.4-.8.8s.4.8.8.8h2.8c.1 0 .3.1.3.3v2.8c0 .4.4.8.8.8s.8-.4.8-.8v-3c0-.1.1-.3.3-.3h2.8c.4 0 .8-.4.8-.8 0-.3-.3-.7-.8-.7z"/><path d="m8.2 1.6c.4 0 .8.3.8.8v5.8c0 .4-.3.8-.8.8h-5.9c-.4 0-.8-.3-.8-.8v-5.9c0-.4.3-.8.8-.8h5.9m0-1.5h-5.9c-1.2 0-2.3 1.1-2.3 2.3v5.8c0 1.3 1.1 2.3 2.3 2.3h5.8c1.3 0 2.3-1.1 2.3-2.3v-5.8c.1-1.2-1-2.3-2.2-2.3z"/><path d="m8.2 13.1c.4 0 .8.3.8.8v5.8c0 .4-.3.8-.8.8h-5.9c-.4 0-.8-.3-.8-.8v-5.8c0-.4.3-.8.8-.8zm0-1.6h-5.9c-1.3 0-2.3 1.1-2.3 2.3v5.8c0 1.3 1.1 2.4 2.3 2.4h5.8c1.3 0 2.3-1.1 2.3-2.3v-5.8c.1-1.3-1-2.4-2.2-2.4z"/><path d="m19.7 13.1c.4 0 .8.3.8.8v5.8c0 .4-.3.8-.8.8h-5.8c-.4 0-.8-.3-.8-.8v-5.8c0-.4.3-.8.8-.8zm0-1.6h-5.8c-1.3 0-2.3 1.1-2.3 2.3v5.8c0 1.3 1.1 2.3 2.3 2.3h5.8c1.3 0 2.3-1.1 2.3-2.3v-5.8c0-1.2-1.1-2.3-2.3-2.3z"/></svg>
|
||||
|
After Width: | Height: | Size: 965 B |
1
app/assets/images/external/install.svg
vendored
Normal file
@@ -0,0 +1 @@
|
||||
<svg enable-background="new 0 0 24 24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m20.3 16.9c0 .1-.1.2-.2.2h-16.1c-.1 0-.2-.1-.2-.2v-9.8c-.1-.1 0-.2.2-.2h5.8c0-.1 0-.2 0-.3 0-.6.1-1.1.2-1.7h-6.3c-1.1 0-2 .9-2 2v11.7c0 1.1.9 2 2 2h7.1c.1 0 .2.1.2.2v1c0 .1-.1.2-.2.2h-4.9c-.5 0-1 .4-1 1 0 .5.4 1 1 1h12.2c.5 0 1-.4 1-1 0-.5-.4-1-1-1h-4.9c-.1 0-.2-.1-.2-.2v-1c0-.1.1-.2.2-.2h7.1c1.1 0 2-.9 2-2v-5.8c-.6.5-1.2.8-2 1.1z"/><path d="m17.5.1c-3 0-5.6 2.1-6.3 4.9-.1.4-.2 1-.2 1.6v.3c.2 3.4 3 6.2 6.5 6.2 1 0 2-.2 2.8-.6.7-.4 1.4-.8 2-1.4 1-1.3 1.7-2.8 1.7-4.5 0-3.6-2.9-6.5-6.5-6.5zm2.4 7.3-2 2.5c-.2.2-.5.3-.7.1 0 0-.1 0-.1-.1l-2-2.5c-.2-.2-.1-.5.1-.7.1-.1.2-.1.3-.1h.8c.1 0 .2-.1.2-.2v-2.8c0-.6.4-1 1-1s1 .4 1 1v2.8c0 .1.1.2.2.2h.8c.3 0 .5.2.5.5 0 .1 0 .2-.1.3z"/></svg>
|
||||
|
After Width: | Height: | Size: 785 B |
1
app/assets/images/external/share.svg
vendored
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m12 1-4 4h3v9h2v-9h3m2 18h-12c-1.11 0-2-.9-2-2v-12a2 2 0 0 1 2-2h3v2h-3v12h12v-12h-3v-2h3a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2z"/></svg>
|
||||
|
After Width: | Height: | Size: 200 B |
1
app/assets/images/external/sliders.svg
vendored
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m8 13c-1.86 0-3.41 1.28-3.86 3h-2.14v2h2.14c.45 1.72 2 3 3.86 3s3.41-1.28 3.86-3h10.14v-2h-10.14c-.45-1.72-2-3-3.86-3m0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2m11.86-13c-.45-1.72-2-3-3.86-3s-3.41 1.28-3.86 3h-10.14v2h10.14c.45 1.72 2 3 3.86 3s3.41-1.28 3.86-3h2.14v-2zm-3.86 3c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/></svg>
|
||||
|
After Width: | Height: | Size: 403 B |
1
app/assets/images/external/switch.svg
vendored
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 6H7c-3.31 0-6 2.69-6 6s2.69 6 6 6h10c3.31 0 6-2.69 6-6s-2.69-6-6-6zm0 10H7c-2.21 0-4-1.79-4-4s1.79-4 4-4h10c2.21 0 4 1.79 4 4s-1.79 4-4 4zM7 9c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z" /></svg>
|
||||
|
After Width: | Height: | Size: 278 B |
1
app/assets/images/external/web.svg
vendored
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2m-5.15 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95c-.96 1.65-2.49 2.93-4.33 3.56m-.25-5.56h-4.68c-.1-.66-.16-1.32-.16-2s.06-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2m-2.34 5.96c-.83-1.2-1.5-2.53-1.91-3.96h3.82c-.41 1.43-1.08 2.76-1.91 3.96m-4-11.96h-2.92c.95-1.66 2.49-2.94 4.32-3.56-.6 1.11-1.05 2.31-1.4 3.56m-2.92 8h2.92c.35 1.25.8 2.45 1.4 3.56-1.83-.63-3.37-1.91-4.32-3.56m-.82-2c-.16-.64-.26-1.31-.26-2s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2m4.36-9.97c.83 1.2 1.5 2.54 1.91 3.97h-3.82c.41-1.43 1.08-2.77 1.91-3.97m6.92 3.97h-2.95c-.32-1.25-.78-2.45-1.38-3.56 1.84.63 3.37 1.9 4.33 3.56m-6.92-6c-5.53 0-10 4.5-10 10a10 10 0 0 0 10 10 10 10 0 0 0 10-10 10 10 0 0 0 -10-10z"/></svg>
|
||||
|
After Width: | Height: | Size: 859 B |
1
app/assets/images/globe.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg enable-background="new 0 0 24 24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><circle cx="12.2" cy="12.1" fill="#4183bf" r="9.3"/><path d="m17.9 17.4c-.3-.8-1-1.4-1.9-1.4h-1v-3c0-.6-.4-1-1-1h-6v-2h2c.6 0 1-.4 1-1v-2h2c1.1 0 2-.9 2-2v-.4c2.9 1.2 5 4.1 5 7.4 0 2.1-.8 4-2.1 5.4m-6.9 2.5c-3.9-.5-7-3.9-7-7.9 0-.6.1-1.2.2-1.8l4.8 4.8v1c0 1.1.9 2 2 2m1-16c-5.5 0-10 4.5-10 10s4.5 10 10 10 10-4.5 10-10-4.5-10-10-10z" fill="#40c149"/></svg>
|
||||
|
After Width: | Height: | Size: 450 B |
1
app/assets/images/help-circle.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m12 0a12 12 0 1 0 12 12 12.013 12.013 0 0 0 -12-12zm0 19a1.5 1.5 0 1 1 1.5-1.5 1.5 1.5 0 0 1 -1.5 1.5zm1.6-6.08a1 1 0 0 0 -.6.917 1 1 0 1 1 -2 0 3 3 0 0 1 1.8-2.75 2 2 0 1 0 -2.8-1.832 1 1 0 1 1 -2 0 4 4 0 1 1 5.6 3.666z"/></svg>
|
||||
|
After Width: | Height: | Size: 298 B |
1
app/assets/images/help.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg enable-background="new 0 0 24 24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><ellipse cx="12" cy="21.4" rx="2.6" ry="2.6"/><path d="m12 0c-3.9 0-7 3.1-7 7 0 1 .8 1.7 1.8 1.7s1.7-.8 1.7-1.7c0-1.4.8-2.6 2.1-3.2 1.8-.8 3.8 0 4.6 1.8s0 3.8-1.8 4.6c-1.9.8-3.2 2.7-3.1 4.8 0 1 .8 1.7 1.8 1.7s1.8-.8 1.8-1.7c0-.7.4-1.3 1-1.6 2.5-1.1 4.1-3.6 4.1-6.4 0-3.9-3.1-7-7-7z"/></svg>
|
||||
|
After Width: | Height: | Size: 384 B |
1
app/assets/images/key.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg enable-background="new 0 0 24 24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m12.3 23.9 1.7-1.7c.1-.1.1-.2.1-.3v-10.6c3-1.1 4.6-4.5 3.5-7.6-1.1-3-4.5-4.6-7.6-3.5s-4.6 4.7-3.5 7.7c.6 1.6 1.9 2.9 3.5 3.5v2.6l-1.4.7c-.4.2-.5.7-.3 1.1.1.1.1.2.2.3l1.5 1.1v.8l-1.2.4c-.4.2-.6.6-.5 1 .1.2.2.3.4.4l1.3.7v1.4c0 .1 0 .2.1.3l1.7 1.7c.1.1.3.1.5 0zm-1.1-19.4c-.5-.5-.5-1.2 0-1.7s1.2-.5 1.7 0 .5 1.2 0 1.7-1.3.5-1.7 0z"/></svg>
|
||||
|
After Width: | Height: | Size: 439 B |
1
app/assets/images/lanyard.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg enable-background="new 0 0 200 276" viewBox="0 0 200 276" xmlns="http://www.w3.org/2000/svg"><g fill="none" stroke="#bebcbb" stroke-miterlimit="10" stroke-width="2"><path d="m135.3 268.8h-69.5c-5.1 0-9.3-4.2-9.3-9.3s4.2-9.3 9.3-9.3h69.5c5.1 0 9.3 4.2 9.3 9.3-0 5.2-4.2 9.3-9.3 9.3z"/><ellipse cx="16.7" cy="259.5" rx="9.3" ry="9.3" transform="matrix(.9999 -.01514628 .01514628 .9999 -3.9285 .2827)"/><circle cx="182.7" cy="259.5" r="9.3"/></g><path d="m149.9 2-16.6 104.7c0 4-3.3 7.3-7.3 7.3h-49.8c-4 0-7.3-3.3-7.3-7.3l16.7-104.7z" fill="#222"/><circle cx="100" cy="180.3" fill="none" r="5.6"/><path d="m119.2 138.5c11.1 0 20.1-9 20.1-20.1s-9-20.1-20.1-20.1h-38.4c-11.1 0-20.1 9-20.1 20.1s9 20.1 20.1 20.1h5.1c.6-1.5 2-2.5 3.7-2.5h20.9c1.7 0 3.1 1 3.7 2.5z" fill="none"/><path d="m114.4 147.9v-1.2h4.8c15.6 0 28.4-12.8 28.4-28.4s-12.8-28.4-28.4-28.4h-38.4c-15.6 0-28.4 12.8-28.4 28.4s12.8 28.4 28.4 28.4h4.8v1.2c0 2 1.5 3.6 3.3 3.9l-.7 2.6h-.2c-2.5 0-4.6 2.1-4.6 4.6 0 1.8 1.1 3.4 2.6 4.1l-7.7 31c-.2.9.4 1.9 1.4 2.1h.3 2.2l-7.7 30.9h11.8l6.7-26.6h12.2c5.1 8.7 14.5 26.6 14.7 37.2.1 4.1-1.2 7.4-3.9 10.2-4.2 4.3-10.6 5.9-13.7 5.9-6.5 0-10.8-1.9-13.6-4.6h-13.5c2.3 5.5 5.9 8.9 9.1 11.1 6.6 4.4 14.1 5 18 5 6.3 0 15.5-2.9 21.8-9.3 4.8-4.9 7.3-11.3 7.2-18.4-.2-9.1-4.9-20.8-9.4-30.2h14.4c5.1 0 9.3-4.2 9.3-9.3s-4.2-9.3-9.3-9.3h-16l-6.1-25.9c1.4-.8 2.3-2.3 2.3-3.9 0-2.4-1.9-4.4-4.3-4.5l-.7-2.8c1.7-.5 2.9-2 2.9-3.8zm-14.4 38c-3.1 0-5.6-2.5-5.6-5.6s2.5-5.6 5.6-5.6 5.6 2.5 5.6 5.6-2.5 5.6-5.6 5.6zm10.4-49.9h-20.8c-1.7 0-3.1 1-3.7 2.5h-5.1c-11.1 0-20.1-9-20.1-20.1s9-20.1 20.1-20.1h38.5c11.1 0 20.1 9 20.1 20.1s-9 20.1-20.1 20.1h-5.1c-.7-1.5-2.1-2.5-3.8-2.5z" fill="#777"/><path d="m84.1 236.3 2.3-9.1h-11.8l-1.9 7.7v.7c0 5.5 1 10 2.5 13.6h13.6c-3.5-3.5-4.6-8.4-4.7-12.9z" fill="#aaa"/><path d="m115.5 2 16.6 104.7c0 4-3.3 7.3-7.3 7.3h-49.7c-4 0-7.3-3.3-7.3-7.3l-16.6-104.7z" fill="#333"/></svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
1
app/assets/images/laptop.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m23.3 20.691-2.1-6.83a1.486 1.486 0 0 0 -.339-.56 2.639 2.639 0 0 0 .643-1.717v-8.666a2.669 2.669 0 0 0 -2.673-2.667h-13.667a2.67 2.67 0 0 0 -2.664 2.667v8.666a2.64 2.64 0 0 0 .641 1.716 1.486 1.486 0 0 0 -.339.56l-2.074 6.755a2.167 2.167 0 0 0 1.938 3.136h18.662a2.153 2.153 0 0 0 1.844-1.028 2.1 2.1 0 0 0 .128-2.032zm-7.793.457a.5.5 0 0 1 -.4.208h-6.207a.5.5 0 0 1 -.474-.658l.6-1.8a.5.5 0 0 1 .474-.342h5a.5.5 0 0 1 .475.342l.6 1.8a.5.5 0 0 1 -.075.45zm-11.007-18.23a.667.667 0 0 1 .667-.667h13.664a.667.667 0 0 1 .666.667v8.666a.667.667 0 0 1 -.666.667h-13.667a.667.667 0 0 1 -.667-.667z"/></svg>
|
||||
|
After Width: | Height: | Size: 670 B |
1
app/assets/images/lifebuoy.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m19.79 15.41c.95-2.17.95-4.66 0-6.82l-2.74 1.24c.6 1.38.6 2.95.01 4.34zm-4.37-11.2c-2.17-.95-4.66-.95-6.83 0l1.24 2.73c1.39-.59 2.96-.59 4.35.01zm-11.21 4.37c-.95 2.18-.95 4.66 0 6.84l2.74-1.25c-.6-1.38-.6-2.96 0-4.35zm4.38 11.21c2.17.95 4.66.95 6.83-.01l-1.24-2.73c-1.38.6-2.96.6-4.34.01zm3.41-17.79a10 10 0 0 1 10 10 10 10 0 0 1 -10 10 10 10 0 0 1 -10-10 10 10 0 0 1 10-10m0 6a4 4 0 0 0 -4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0 -4-4z"/></svg>
|
||||
|
After Width: | Height: | Size: 515 B |
1
app/assets/images/link.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg enable-background="new 0 0 24 24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m9.4 14.5c-2.3-2.3-2.3-5.9 0-8.2l4.6-4.6c1.1-1 2.6-1.7 4.2-1.7s3 .5 4.1 1.7c2.3 2.3 2.3 5.9 0 8.2l-2.7 2.3c-.5.5-1.2.5-1.8 0-.5-.5-.5-1.2 0-1.7l2.7-2.3c1.4-1.3 1.4-3.4 0-4.7-.7-.7-1.5-.9-2.3-.9s-1.8.4-2.5.9l-4.7 4.5c-1.4 1.3-1.4 3.4 0 4.7.5.5.5 1.2 0 1.7-.1.3-.4.4-.8.4s-.5-.1-.8-.3z"/><path d="m1.7 22.3c-2.3-2.3-2.3-5.9 0-8.2l2.6-2.5c.5-.5 1.2-.5 1.8 0 .5.5.5 1.2 0 1.7l-2.6 2.5c-1.4 1.3-1.4 3.4 0 4.7.7.7 1.5.9 2.3.9s1.8-.4 2.3-.9l4.6-4.6c1.4-1.3 1.4-3.4 0-4.7-.5-.4-.5-1.2 0-1.7s1.2-.5 1.8 0c2.3 2.3 2.3 5.9 0 8.2l-4.6 4.6c-1 1-2.5 1.7-4.1 1.7s-3-.7-4.1-1.7z"/></svg>
|
||||
|
After Width: | Height: | Size: 674 B |
1
app/assets/images/lock.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m19.5 9.5h-.75v-2.75a6.75 6.75 0 0 0 -13.5 0v2.75h-.75a2 2 0 0 0 -2 2v10.5a2 2 0 0 0 2 2h15a2 2 0 0 0 2-2v-10.5a2 2 0 0 0 -2-2zm-9.5 6a2 2 0 1 1 3 1.723v2.277a1 1 0 0 1 -2 0v-2.277a1.994 1.994 0 0 1 -1-1.723zm-2.25-8.75a4.25 4.25 0 0 1 8.5 0v2.25a.5.5 0 0 1 -.5.5h-7.5a.5.5 0 0 1 -.5-.5z"/></svg>
|
||||
|
After Width: | Height: | Size: 365 B |
1
app/assets/images/login-keys.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><title>login-keys</title><path d="M13.5,9A5.975,5.975,0,0,0,12,5.036V2.5a2.5,2.5,0,0,0-5,0v.521A6,6,0,0,0,5.5,14.652v.641l-.854.853A.5.5,0,0,0,4.5,16.5a.505.505,0,0,0,.146.354l.854.854v.586l-.854.854a.5.5,0,0,0,0,.707l.854.853V22a.5.5,0,0,0,.146.354l1.5,1.5a.5.5,0,0,0,.708,0l1.5-1.5A.5.5,0,0,0,9.5,22V14.652A6.019,6.019,0,0,0,13.5,9Zm-6-3a1,1,0,1,1-1,1A1,1,0,0,1,7.5,6Zm2-5A1.5,1.5,0,0,1,11,2.5V4.13a5.988,5.988,0,0,0-2-.94V5H8V2.5A1.5,1.5,0,0,1,9.5,1Z"/><path d="M22.354,18.026l-5.2-5.2a5.946,5.946,0,0,0-2.123-7.592.5.5,0,0,0-.728.628,7.471,7.471,0,0,1-2.774,9.45.5.5,0,0,0,.269.921h.006a6.023,6.023,0,0,0,2.541-.589l.65.577V17.5a.5.5,0,0,0,.5.5h1.286l.214.224V19.5a.5.5,0,0,0,.5.5h1.119l.917.864a.5.5,0,0,0,.343.136H22a.5.5,0,0,0,.5-.5V18.379A.5.5,0,0,0,22.354,18.026Z"/></svg>
|
||||
|
After Width: | Height: | Size: 841 B |
BIN
app/assets/images/logos/app-icon-192.png
Normal file
|
After Width: | Height: | Size: 60 KiB |
BIN
app/assets/images/logos/app-icon.png
Normal file
|
After Width: | Height: | Size: 396 KiB |
1
app/assets/images/logout.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m17.508 18.5a1 1 0 0 0 -1 1v.5a.5.5 0 0 1 -.5.5h-5.5a.5.5 0 0 1 -.5-.5v-16a.5.5 0 0 1 .5-.5h5.5a.5.5 0 0 1 .5.5v1a1 1 0 0 0 2 0v-2.5a1 1 0 0 0 -1-1h-7.5v-1a.5.5 0 0 0 -.608-.488l-9 2a.5.5 0 0 0 -.392.488v19a.5.5 0 0 0 .392.489l9 2a.506.506 0 0 0 .421-.1.5.5 0 0 0 .187-.39v-1h7.5a1 1 0 0 0 1-1v-2a1 1 0 0 0 -1-.999zm-10-6a1.5 1.5 0 1 1 -1.5-1.5 1.5 1.5 0 0 1 1.5 1.5z"/><path d="m23.546 11.668-4.875-3.25a1 1 0 0 0 -1.554.832v1.75h-4.125a1.5 1.5 0 0 0 0 3h4.125v1.75a1 1 0 0 0 1.554.832l4.875-3.25a1 1 0 0 0 0-1.664z"/></svg>
|
||||
|
After Width: | Height: | Size: 594 B |
1
app/assets/images/menu-dots-horizontal.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><circle cx="3.25" cy="12" r="3.25"/><circle cx="12" cy="12" r="3.25"/><circle cx="20.75" cy="12" r="3.25"/></svg>
|
||||
|
After Width: | Height: | Size: 173 B |
1
app/assets/images/menu-dots-vertical.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><circle cx="12" cy="3.25" r="3.25"/><circle cx="12" cy="12" r="3.25"/><circle cx="12" cy="20.75" r="3.25"/></svg>
|
||||
|
After Width: | Height: | Size: 173 B |
1
app/assets/images/menu.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><rect height="3" rx="1" width="23" x=".5" y="2.5"/><rect height="3" rx="1" width="23" x=".5" y="10.5"/><rect height="3" rx="1" width="23" x=".5" y="18.5"/></svg>
|
||||
|
After Width: | Height: | Size: 221 B |
1
app/assets/images/messages-add.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m17.5 9.5a7.932 7.932 0 0 1 3.992 1.077.249.249 0 0 0 .228.012.254.254 0 0 0 .143-.18 7.4 7.4 0 0 0 .137-1.409c0-4.962-4.935-9-11-9s-11 4.038-11 9a8.08 8.08 0 0 0 2.657 5.854l-1.627 4.475a.5.5 0 0 0 .662.632l5.832-2.429a13.155 13.155 0 0 0 1.7.34.25.25 0 0 0 .2-.063.254.254 0 0 0 .081-.2c0-.037 0-.075 0-.113a8.009 8.009 0 0 1 7.995-7.996z"/><path d="m17.5 11a6.5 6.5 0 1 0 6.5 6.5 6.508 6.508 0 0 0 -6.5-6.5zm.75 9a.75.75 0 0 1 -1.5 0v-1.5a.25.25 0 0 0 -.25-.25h-1.5a.75.75 0 0 1 0-1.5h1.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5a.25.25 0 0 0 .25.25h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0 -.25.25z"/></svg>
|
||||
|
After Width: | Height: | Size: 688 B |
1
app/assets/images/messages-empty.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg fill="none" height="175" width="188" xmlns="http://www.w3.org/2000/svg"><path d="m30.408 133.432 1.8-3.59-3.116-2.532a65.255 65.255 0 0 1 -24.092-49.587c.026-39.037 38.975-72.36 88.95-72.36 49.992 0 88.95 33.337 88.95 72.399 0 39.061-38.959 72.406-88.95 72.406h-.011a107.064 107.064 0 0 1 -29.792-4.16l-1.796-.516-1.694.789-47.862 22.276zm-18.79 37.472v.002z" stroke="#000" stroke-width="10"/><path d="m85.079 91.359-.049-2.827c-.162-2.307.033-4.37.585-6.19s1.495-3.46 2.827-4.923c1.365-1.495 3.152-2.892 5.362-4.192 2.112-1.267 3.752-2.42 4.922-3.46 1.203-1.04 2.047-2.129 2.535-3.266.487-1.137.731-2.47.731-3.997v-.048c0-1.593-.39-2.974-1.17-4.143-.78-1.203-1.868-2.145-3.266-2.827-1.364-.683-2.973-1.024-4.825-1.024s-3.477.374-4.874 1.121c-1.397.748-2.502 1.771-3.314 3.07-.813 1.3-1.268 2.795-1.365 4.485l-.049.39h-13.209v-.487c.13-3.802 1.121-7.198 2.974-10.187 1.884-3.022 4.565-5.394 8.042-7.117 3.477-1.722 7.7-2.583 12.672-2.583 4.647 0 8.693.796 12.137 2.388 3.477 1.593 6.174 3.802 8.091 6.63 1.95 2.826 2.925 6.108 2.925 9.845v.049c0 2.437-.39 4.646-1.17 6.629-.78 1.982-1.95 3.785-3.51 5.41-1.527 1.592-3.444 3.07-5.751 4.435-2.145 1.235-3.818 2.388-5.02 3.46-1.203 1.04-2.047 2.145-2.535 3.315-.487 1.137-.731 2.486-.731 4.046v1.998zm6.677 23.347c-2.21 0-4.094-.731-5.654-2.193-1.527-1.495-2.29-3.315-2.29-5.459 0-2.145.763-3.948 2.29-5.411 1.56-1.494 3.445-2.242 5.654-2.242 2.242 0 4.127.748 5.654 2.242 1.56 1.463 2.34 3.266 2.34 5.411 0 2.144-.78 3.964-2.34 5.459-1.527 1.462-3.412 2.193-5.654 2.193z" fill="#000"/></svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
1
app/assets/images/messages-outlined.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m12 .836c-6.617 0-12 4.474-12 9.975a9.01 9.01 0 0 0 3.057 6.658l-2.126 4.244a1 1 0 0 0 1.316 1.355l5.981-2.784a14.243 14.243 0 0 0 3.772.5c6.617 0 12-4.475 12-9.975s-5.383-9.973-12-9.973zm0 17.95a12.189 12.189 0 0 1 -3.562-.524 1 1 0 0 0 -.714.05l-3.07 1.429a.25.25 0 0 1 -.329-.339l.869-1.735a1 1 0 0 0 -.269-1.228 7.214 7.214 0 0 1 -2.925-5.628c0-4.4 4.486-7.975 10-7.975s10 3.577 10 7.975-4.486 7.975-10 7.975z"/></svg>
|
||||
|
After Width: | Height: | Size: 491 B |
1
app/assets/images/messages.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m12 1.337c-6.341 0-11.5 4.25-11.5 9.474a8.6 8.6 0 0 0 3.175 6.54l-2.3 4.587a.5.5 0 0 0 .659.677l6.149-2.862a13.717 13.717 0 0 0 3.817.533c6.341 0 11.5-4.25 11.5-9.475s-5.159-9.474-11.5-9.474z"/></svg>
|
||||
|
After Width: | Height: | Size: 269 B |
1
app/assets/images/minus.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg enable-background="new 0 0 24 24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m14.5 14.3h6.7c.6 0 1.1-.5 1.1-1.1v-2.3c0-.6-.5-1.1-1.1-1.1h-6.7-5-6.7c-.6 0-1.1.5-1.1 1.1v2.3c0 .6.5 1.1 1.1 1.1h6.7z"/></svg>
|
||||
|
After Width: | Height: | Size: 230 B |
1
app/assets/images/mobile-phone.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m17 .034h-10a3 3 0 0 0 -3 3v17.932a3 3 0 0 0 3 3h10a3 3 0 0 0 3-3v-17.932a3 3 0 0 0 -3-3zm-5 22.432a1 1 0 1 1 1-1 1 1 0 0 1 -1 1zm6-4.5a1 1 0 0 1 -1 1h-10a1 1 0 0 1 -1-1v-14.432a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1z"/></svg>
|
||||
|
After Width: | Height: | Size: 287 B |
1
app/assets/images/notification-bell-alert.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg enable-background="new 0 0 24 24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m17 20.5c0 .2 0 .3-.1.5.1-.1.1-.3.1-.5z"/><path d="m14.1 9.1c.1-.2.2-.3.3-.4-.1.1-.2.2-.3.4l-2.2 4.2z"/><path d="m14 6.6c.6-.3 1.2-.4 1.8-.4h.2c-1.2-1.6-3-2.7-5-3.1v-2.1c0-.6-.4-1-1-1s-1 .4-1 1v2.1c-3.9.7-6.6 4.1-6.5 8.1v4.8c0 .8-.7 1.5-1.5 1.5-.6 0-1 .4-1 1s.4 1 1 1h5.4l5.9-11.3c.4-.7 1-1.3 1.7-1.6z"/><path d="m23.8 21.3-6.4-12.2c0-.1-.1-.1-.1-.2s-.1-.1-.2-.2c0 0-.1-.1-.1-.1s-.1-.1-.1-.1c-.1 0-.1-.1-.2-.1 0 0-.1 0-.1-.1-.1-.1-.3-.1-.4-.2h-.1-.1c-.1 0-.2 0-.3 0s0 0-.1 0c0 0 0 0-.1 0h-.1c-.1 0-.1 0-.2 0h-.1c-.1 0-.3.1-.4.1-.3.2-.6.4-.8.8l-5.2 10.5-.8 1.5-.2.3c-.1.2-.1.4-.2.5-.1.4 0 .9.2 1.3.4.6 1 .9 1.6.9h.7 12.2c.6 0 1.2-.3 1.6-.9.3-.5.3-1.2 0-1.8zm-8.7-3.6c-.1-.1-.2-.2-.2-.3v-.1c0-.1-.1-.2-.1-.3v-3.2c0-.1 0-.2.1-.3v-.1c0-.1.1-.1.1-.2 0 0 0 0 .1-.1.2-.2.4-.3.6-.3.5 0 1 .4 1 1v3.2c0 .5-.4 1-1 1-.2 0-.4-.1-.6-.3zm.7 4.1c.4 0 .7-.1.9-.4-.3.2-.6.4-.9.4-.7 0-1.3-.6-1.3-1.3 0-.1 0-.3.1-.4 0-.1 0-.1.1-.1 0-.1.1-.1.1-.1.1-.1.2-.2.3-.3s.2-.1.3-.2c.1 0 .3-.1.4-.1.3 0 .5.1.7.3.3.2.5.6.5 1 0 .6-.5 1.2-1.2 1.2z"/></svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
1
app/assets/images/notification-bell-everything.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m21 17.5a1.5 1.5 0 0 1 -1.5-1.5v-4.862a7.957 7.957 0 0 0 -6.5-8.065v-2.073a1 1 0 0 0 -2 0v2.073a7.957 7.957 0 0 0 -6.5 8.065v4.862a1.5 1.5 0 0 1 -1.5 1.5 1 1 0 0 0 0 2h18a1 1 0 0 0 0-2z"/><path d="m14.236 21h-4.472a.25.25 0 0 0 -.248.222 2.319 2.319 0 0 0 -.016.278 2.5 2.5 0 1 0 5 0 2.319 2.319 0 0 0 -.016-.278.248.248 0 0 0 -.248-.222z"/></svg>
|
||||
|
After Width: | Height: | Size: 416 B |
1
app/assets/images/notification-bell-invisible.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m2 5.27 1.28-1.27 16.72 16.72-1.27 1.28-3.08-3.08c-1.15.38-2.37.58-3.65.58-5 0-9.27-3.11-11-7.5.69-1.76 1.79-3.31 3.19-4.54zm10 3.73a3 3 0 0 1 3 3c0 .35-.06.69-.17 1l-3.83-3.83c.31-.11.65-.17 1-.17m0-4.5c5 0 9.27 3.11 11 7.5-.82 2.08-2.21 3.88-4 5.19l-1.42-1.43c1.36-.94 2.48-2.22 3.24-3.76-1.65-3.36-5.06-5.5-8.82-5.5-1.09 0-2.16.18-3.16.5l-1.54-1.53c1.44-.62 3.03-.97 4.7-.97m-8.82 7.5c1.65 3.36 5.06 5.5 8.82 5.5.69 0 1.37-.07 2-.21l-2.28-2.29c-1.43-.15-2.57-1.29-2.72-2.72l-3.4-3.41c-.99.85-1.82 1.91-2.42 3.13z"/></svg>
|
||||
|
After Width: | Height: | Size: 593 B |
1
app/assets/images/notification-bell-loading.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg enable-background="new 0 0 24 24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m12 4.9.6.1c2.9.5 5 3.1 4.9 6v5c0 .5.1 1 .3 1.5h-11.6c.2-.5.3-1 .3-1.5v-4.9c-.1-3 2-5.5 4.9-6zm0-4.9c-.6 0-1 .4-1 1v2.1c-3.9.7-6.6 4.1-6.5 8.1v4.8c0 .8-.7 1.5-1.5 1.5-.6 0-1 .4-1 1s.4 1 1 1h18c.6 0 1-.4 1-1s-.4-1-1-1c-.8 0-1.5-.7-1.5-1.5v-4.9c.1-3.9-2.6-7.3-6.5-8.1v-2c0-.6-.4-1-1-1z"/><path d="m14.2 21h-4.5c-.1 0-.2.1-.2.2v.3c0 1.4 1.1 2.5 2.5 2.5s2.5-1.1 2.5-2.5c0-.1 0-.2 0-.3s-.1-.2-.3-.2z"/></svg>
|
||||
|
After Width: | Height: | Size: 506 B |
1
app/assets/images/notification-bell-mentions.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg enable-background="new 0 0 24 24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m7 16.4c0-5 4-9 9-9 1.1 0 2.2.2 3.2.6-.6-1.8-1.8-3.3-3.3-4.4-.7-.5-1.5-.8-2.3-.9v-1.2c-.1-.8-.8-1.5-1.6-1.5s-1.5.7-1.5 1.5v1.1c-1 .2-2 .6-2.9 1.3-2.2 1.8-3.4 4.4-3.3 7.2v.8c0 2.5-.6 5.1-1.7 7.3-.1.2 0 .5.2.7 0 .1.1.1.2.1h4.7c-.4-1.1-.7-2.3-.7-3.6z"/><path d="m22.1 11.4c-1.6-1.6-3.9-2.4-6.2-2.3-4.1 0-7.4 3.3-7.4 7.4s3.3 7.4 7.4 7.4c.7 0 1.5-.1 2.2-.3.5-.1.8-.7.6-1.2s-.7-.8-1.2-.6c-2.9.9-6-.7-6.9-3.6s.7-6 3.6-6.9c.5-.2 1.1-.2 1.6-.2 1.8-.1 3.5.5 4.8 1.7.9.9 1.4 2.1 1.4 3.4s-.6 2.6-1.5 2.6c-.1 0-.2 0-.3 0v-5c0-.5-.4-.9-.9-.9-.3 0-.6.2-.8.5-.7-.6-1.6-.9-2.5-.9-2.3 0-4.1 1.8-4.1 4.1s1.8 4.1 4.1 4.1c1 0 1.9-.3 2.6-1 .1.2.2.3.3.4.5.4 1.1.6 1.7.6 2 0 3.4-1.9 3.4-4.5 0-1.8-.7-3.5-1.9-4.8zm-6.2 7.4c-1.2 0-2.2-1-2.2-2.2s1-2.2 2.2-2.2 2.2 1 2.2 2.2-1 2.2-2.2 2.2z"/></svg>
|
||||
|
After Width: | Height: | Size: 873 B |
1
app/assets/images/notification-bell-nothing.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg enable-background="new 0 0 24 24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m15.9 19.5-11-11c-.3.8-.4 1.7-.4 2.6v4.9c0 .8-.7 1.5-1.5 1.5-.6 0-1 .4-1 1s.4 1 1 1z"/><path d="m9.5 21.2v.3c0 1.4 1.1 2.5 2.5 2.5s2.5-1.1 2.5-2.5c0-.1 0-.2 0-.3s-.1-.2-.2-.2h-4.5c-.2 0-.3.1-.3.2z"/><path d="m23.7 23.7c.4-.4.4-1 0-1.4l-2.8-2.8h.1c.6 0 1-.4 1-1s-.4-1-1-1c-.8 0-1.5-.7-1.5-1.5v-4.9c.1-3.9-2.6-7.4-6.5-8.1v-2c0-.6-.4-1-1-1s-1 .4-1 1v2.1c-1.6.3-3.1 1-4.3 2.3l-5-5c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4l22 22c.2.2.4.3.7.3.3-.1.5-.2.7-.4z"/></svg>
|
||||
|
After Width: | Height: | Size: 557 B |
1
app/assets/images/office.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><title>building-1</title><path d="M3.5,3.5h17a.5.5,0,0,0,.391-.812L19.19.563A1.492,1.492,0,0,0,18.02,0H5.98A1.492,1.492,0,0,0,4.81.563l-1.7,2.125A.5.5,0,0,0,3.5,3.5Z"/><path d="M20.5,5H3.5a.5.5,0,0,0-.5.5v17A1.5,1.5,0,0,0,4.5,24h5a.5.5,0,0,0,.5-.5v-2a2,2,0,0,1,4,0v2a.5.5,0,0,0,.5.5h5A1.5,1.5,0,0,0,21,22.5V5.5A.5.5,0,0,0,20.5,5ZM8,16.5a.5.5,0,0,1-.5.5h-2a.5.5,0,0,1-.5-.5v-2a1.5,1.5,0,0,1,3,0Zm0-6a.5.5,0,0,1-.5.5h-2a.5.5,0,0,1-.5-.5v-2a1.5,1.5,0,0,1,3,0Zm5.5,6a.5.5,0,0,1-.5.5H11a.5.5,0,0,1-.5-.5v-2a1.5,1.5,0,0,1,3,0Zm0-6a.5.5,0,0,1-.5.5H11a.5.5,0,0,1-.5-.5v-2a1.5,1.5,0,0,1,3,0Zm5.5,6a.5.5,0,0,1-.5.5h-2a.5.5,0,0,1-.5-.5v-2a1.5,1.5,0,0,1,3,0Zm0-6a.5.5,0,0,1-.5.5h-2a.5.5,0,0,1-.5-.5v-2a1.5,1.5,0,0,1,3,0Z"/></svg>
|
||||
|
After Width: | Height: | Size: 777 B |
1
app/assets/images/password.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m21.5 2.5h-19-.00000011c-1.38071.00000006-2.5 1.11929-2.5 2.5v14 .00000038c.00000021 1.38071 1.11929 2.5 2.5 2.5h19 .00000011c1.38071-.00000027 2.5-1.11929 2.5-2.5v-14c0-1.38071-1.11929-2.5-2.5-2.5zm-.5 12.25h-4-.00000003c-.414214-.00000002-.75-.335786-.75-.75.00000002-.414214.335786-.75.75-.75h4-.00000003c.414214-.00000002.75.335786.75.75.00000002.414214-.335786.75-.75.75zm-6.469-1.28c.292711.292294.293049.766535.00075431 1.05925-.00025126.00025162-.0005027.00050305-.00075431.00075431l-.00000003.00000002c-.29683.283557-.76417.283557-1.061-.00000005l-1.293-1.293-.00000001-.00000001c-.0975674-.0972627-.255433-.0972627-.353.00000002l-1.293 1.293.00000001-.00000001c-.294501.28931-.766499.28931-1.061.00000002l.00000002.00000002c-.292711-.292294-.293049-.766535-.00075434-1.05925.00025126-.00025162.0005027-.00050305.00075431-.00075431l1.293-1.293.00000001-.00000001c.0977544-.0975076.0979545-.255799.00044687-.353553-.00014878-.00014915-.00029774-.00029812-.00044689-.00044689l-1.293-1.293-.00000005-.00000006c-.28762-.298073-.279147-.772871.0189256-1.06049.290776-.280579.751564-.280362 1.04207.00049142l1.293 1.293c.0975674.0972627.255433.0972627.353-.00000001l1.293-1.293.00000005-.00000005c.297801-.287901.772607-.279876 1.06051.0179256.280853.290511.28107.751299.00049121 1.04207l-1.293 1.293-.00000003.00000003c-.0977544.0975076-.0979544.255799-.00044684.353553.00014878.00014915.00029774.00029812.00044689.00044689zm-7 0c.292711.292294.293049.766535.00075431 1.05925-.00025126.00025162-.0005027.00050305-.00075431.00075431l.00000003-.00000003c-.294812.287593-.765187.287593-1.06.00000005l-1.294-1.293c-.0981335-.0968348-.255866-.0968348-.354 0l-1.293 1.293.00000001-.00000001c-.296698.282921-.763302.282921-1.06.00000002l.00000002.00000002c-.292711-.292294-.293049-.766535-.00075434-1.05925.00025126-.00025162.0005027-.00050305.00075431-.00075431l1.293-1.293c.0968348-.0981335.0968348-.255866-.00000001-.354l-1.293-1.293-.00000002-.00000002c-.282379-.303043-.265627-.777621.0374166-1.06.28803-.268389.734554-.268389 1.02258.00000004l1.293 1.293c.0981335.0968348.255866.0968348.354.00000001l1.293-1.293.00000002-.00000002c.303043-.282379.777621-.265627 1.06.0374166.268389.28803.268389.734554-.00000003 1.02258l-1.293 1.293c-.0968348.0981335-.0968348.255866 0 .354z"/></svg>
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
1
app/assets/images/pencil.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m2.649 16.4a.5.5 0 0 0 -.841.245l-1.414 6.365a.5.5 0 0 0 .134.462.509.509 0 0 0 .462.135l6.364-1.414a.5.5 0 0 0 .245-.842z"/><path d="m17.852 7.208-10.96 10.96a.252.252 0 0 0 0 .354l1.768 1.768a.507.507 0 0 0 .707 0l10.607-10.607a.5.5 0 0 0 0-.707l-1.768-1.768a.252.252 0 0 0 -.354 0z"/><path d="m16.792 5.794-1.768-1.767a.5.5 0 0 0 -.707 0l-10.607 10.606a.5.5 0 0 0 0 .707l1.768 1.768a.252.252 0 0 0 .354 0l10.96-10.96a.252.252 0 0 0 0-.354z"/><path d="m22.449 1.552a4.005 4.005 0 0 0 -5.658 0l-.707.707a.5.5 0 0 0 0 .707l4.95 4.949a.513.513 0 0 0 .707 0l.708-.707a4 4 0 0 0 0-5.656z"/></svg>
|
||||
|
After Width: | Height: | Size: 662 B |
1
app/assets/images/person-add.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg enable-background="new 0 0 17 21.1" viewBox="0 0 17 21.1" xmlns="http://www.w3.org/2000/svg"><path d="m7.9 17c0-2.8 2.2-5 5-5 1.4 0 2.6.6 3.5 1.4 0-.2-.1-.3-.1-.5-.6-1.1-2.4-1.8-4.8-2.7l-.6-.2c-.2-.5-.3-1.1-.1-1.6 1.1-1.2 1.6-2.7 1.5-4.3 0-2.4-1.6-4.2-3.8-4.2s-3.8 1.9-3.8 4.3c-.1 1.5.4 3.1 1.5 4.3.2.5.2 1.1-.1 1.6l-.6.2c-2.4.9-4.2 1.5-4.8 2.6-.4 1.2-.7 5.4-.7 6.6 0 .3.2.5.5.5h8.5c-.7-.8-1.1-1.8-1.1-3z"/><path d="m12.9 12.9c-2.3 0-4.1 1.8-4.1 4.1s1.8 4.1 4.1 4.1 4.1-1.8 4.1-4.1-1.8-4.1-4.1-4.1zm2.8 4.1c0 .3-.3.6-.6.6h-1.4c-.1 0-.2.1-.2.2v1.4c0 .3-.3.6-.6.6s-.6-.3-.6-.6v-1.4c0-.1-.1-.2-.2-.2h-1.4c-.3 0-.6-.3-.6-.6s.3-.6.6-.6h1.4c.1 0 .2-.1.2-.2v-1.4c0-.3.3-.6.6-.6s.6.3.6.6v1.4c0 .1.1.2.2.2h1.4c.4 0 .6.3.6.6z"/></svg>
|
||||
|
After Width: | Height: | Size: 729 B |
1
app/assets/images/person.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg enable-background="new 0 0 17 17" viewBox="0 0 17 17" xmlns="http://www.w3.org/2000/svg"><path d="m11.5 10.3-.6-.2c-.2-.5-.3-1.1-.1-1.6 1.1-1.2 1.6-2.7 1.5-4.3 0-2.4-1.6-4.2-3.8-4.2s-3.8 1.8-3.8 4.2c-.1 1.5.4 3.1 1.5 4.3.2.5.2 1.1-.1 1.6l-.6.2c-2.4.9-4.2 1.5-4.8 2.6-.4 1.2-.7 2.4-.7 3.6 0 .3.2.5.5.5h16c.3 0 .5-.2.5-.5 0-1.2-.3-2.4-.7-3.5-.6-1.1-2.4-1.8-4.8-2.7z"/></svg>
|
||||
|
After Width: | Height: | Size: 377 B |
1
app/assets/images/qr-code.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m4 4h6v6h-6zm16 0v6h-6v-6zm-6 11h2v-2h-2v-2h2v2h2v-2h2v2h-2v2h2v3h-2v2h-2v-2h-3v2h-2v-4h3zm2 0v3h2v-3zm-12 5v-6h6v6zm2-14v2h2v-2zm10 0v2h2v-2zm-10 10v2h2v-2zm-2-5h2v2h-2zm5 0h4v4h-2v-2h-2zm2-5h2v4h-2zm-9-4v4h-2v-4a2 2 0 0 1 2-2h4v2zm20-2a2 2 0 0 1 2 2v4h-2v-4h-4v-2zm-20 18v4h4v2h-4a2 2 0 0 1 -2-2v-4zm20 4v-4h2v4a2 2 0 0 1 -2 2h-4v-2z"/></svg>
|
||||
|
After Width: | Height: | Size: 413 B |
1
app/assets/images/refresh.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m6.177 6.167a8.233 8.233 0 0 1 8.351-2.027 1.249 1.249 0 1 0 .76-2.38 10.751 10.751 0 0 0 -13.242 14.273.248.248 0 0 1 -.094.3l-1.4.922a1 1 0 0 0 .348 1.816l4.407.908a.99.99 0 0 0 .2.021 1 1 0 0 0 .979-.8l.914-4.406a1 1 0 0 0 -1.529-1.037l-1.339.881a.25.25 0 0 1 -.376-.133 8.269 8.269 0 0 1 2.021-8.338z"/><path d="m23.883 5.832a1 1 0 0 0 -.763-.807l-4.388-1a1 1 0 0 0 -1.2.752l-1 4.387a1 1 0 0 0 1.507 1.069l1.443-.906a.247.247 0 0 1 .218-.027.252.252 0 0 1 .153.159 8.249 8.249 0 0 1 -10.285 10.424 1.25 1.25 0 1 0 -.737 2.388 10.75 10.75 0 0 0 13.154-14.271.248.248 0 0 1 .1-.3l1.346-.846a1 1 0 0 0 .452-1.022z"/></svg>
|
||||
|
After Width: | Height: | Size: 692 B |
1
app/assets/images/remove-circle.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m12 0a12 12 0 1 0 12 12 12.014 12.014 0 0 0 -12-12zm5.49 16.076a1 1 0 1 1 -1.414 1.414l-3.9-3.9a.252.252 0 0 0 -.354 0l-3.9 3.9a1.012 1.012 0 0 1 -1.414 0 1 1 0 0 1 0-1.414l3.9-3.9a.249.249 0 0 0 0-.353l-3.9-3.9a1 1 0 0 1 1.416-1.413l3.9 3.9a.25.25 0 0 0 .354 0l3.9-3.9a1 1 0 1 1 1.412 1.414l-3.9 3.9a.249.249 0 0 0 0 .353z"/></svg>
|
||||
|
After Width: | Height: | Size: 401 B |
1
app/assets/images/remove.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m22.664 5.578a1.5 1.5 0 0 0 0-2.121l-2.121-2.121a1.5 1.5 0 0 0 -2.122 0l-6.244 6.245a.251.251 0 0 1 -.354 0l-6.244-6.245a1.5 1.5 0 0 0 -2.122 0l-2.121 2.121a1.5 1.5 0 0 0 0 2.121l6.245 6.245a.252.252 0 0 1 0 .354l-6.245 6.245a1.5 1.5 0 0 0 0 2.121l2.121 2.121a1.5 1.5 0 0 0 2.122 0l6.244-6.245a.251.251 0 0 1 .354 0l6.244 6.245a1.5 1.5 0 0 0 2.122 0l2.121-2.121a1.5 1.5 0 0 0 0-2.121l-6.245-6.245a.252.252 0 0 1 0-.354z"/></svg>
|
||||
|
After Width: | Height: | Size: 497 B |
1
app/assets/images/reply.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m19.618 10.679c-3.011-2.67-7.125-2.853-8.859-2.793a.249.249 0 0 1 -.259-.25v-2.572a1 1 0 0 0 -1.642-.764l-7.494 6.366a1 1 0 0 0 -.364.772.986.986 0 0 0 .351.76l7.513 6.637a1 1 0 0 0 1.636-.773v-3.035a.249.249 0 0 1 .2-.244c1.908-.4 8.135-1.158 11.36 4.89a.5.5 0 0 0 .94-.235c0-3.821-1.138-6.767-3.382-8.759z"/></svg>
|
||||
|
After Width: | Height: | Size: 385 B |
BIN
app/assets/images/screenshots/android-chat.png
Normal file
|
After Width: | Height: | Size: 240 KiB |
BIN
app/assets/images/screenshots/android-dark-mode.png
Normal file
|
After Width: | Height: | Size: 179 KiB |
BIN
app/assets/images/screenshots/android-sidebar.png
Normal file
|
After Width: | Height: | Size: 277 KiB |
1
app/assets/images/search.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m23.414 20.591-4.645-4.645a10.256 10.256 0 1 0 -2.828 2.829l4.645 4.644a2.025 2.025 0 0 0 2.828 0 2 2 0 0 0 0-2.828zm-13.164-17.586a7.25 7.25 0 1 1 -7.25 7.25 7.258 7.258 0 0 1 7.25-7.25z"/></svg>
|
||||
|
After Width: | Height: | Size: 265 B |
1
app/assets/images/settings.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m22.421 9.763-1.266-.449.00000012.00000004c-.715005-.254175-1.08858-1.03985-.834406-1.75486.015863-.0446231.0340224-.0883962.0544056-.131144l.576-1.213.00000009-.0000002c.562362-1.18562.0571125-2.60264-1.12851-3.165-.644423-.305662-1.39207-.305662-2.03649.0000002l-1.213.577.00000003-.00000002c-.686103.325481-1.50615.0331379-1.83163-.652965-.0199623-.0420799-.0377737-.0851469-.0533652-.129034l-.45-1.265.00000005.00000014c-.440698-1.23601-1.79994-1.88074-3.03595-1.44005-.671828.239539-1.20051.768217-1.44005 1.44005l-.45 1.266v-.00000001c-.254689.715408-1.04111 1.08889-1.75652.834205-.0436977-.0155566-.0865803-.0333144-.128483-.0532053l-1.213-.577-.00000004-.00000002c-1.18562-.562362-2.60264-.0571125-3.165 1.12851-.305662.644423-.305662 1.39207.00000004 2.03649l.576 1.213.00000005.0000001c.326289.685719.0349133 1.50611-.650806 1.8324-.0421276.0200458-.0852481.0379345-.129194.0535967l-1.266.45-.00000004.00000001c-1.23574.439828-1.88095 1.79814-1.44112 3.03388.239375.672547.768575 1.20175 1.44112 1.44112l1.266.45-.00000004-.00000002c.714925.2544 1.08825 1.04019.833853 1.75512-.0157227.0441846-.0336974.0875352-.0538533.129882l-.576 1.213.00000006-.00000012c-.562362 1.18562-.0571127 2.60264 1.12851 3.165.644423.305662 1.39207.305662 2.03649.00000011l1.213-.576-.00000004.00000002c.6845-.32628 1.5039-.0358847 1.83018.648616.0205653.0431439.0388639.0873322.0548208.132384l.45 1.265-.00000012-.00000034c.440698 1.23601 1.79994 1.88074 3.03595 1.44005.671828-.239539 1.20051-.768217 1.44005-1.44004l.45-1.266.00000007-.00000021c.2544-.714925 1.04019-1.08825 1.75512-.833853.0441846.0157227.0875352.0336974.129882.0538534l1.213.576-.00000014-.00000007c1.18562.562362 2.60264.0571127 3.165-1.12851.305662-.644423.305662-1.39207.00000014-2.03649l-.576-1.213-.00000001-.00000001c-.326132-.685182-.035064-1.50501.650118-1.83115.0423464-.020156.085697-.0381306.129882-.0538533l1.266-.451-.00000016.00000006c1.23574-.439828 1.88095-1.79814 1.44112-3.03388-.239375-.672547-.768575-1.20175-1.44112-1.44112zm-10.421 7.022h-.00000027c-1.92881-.0279814-3.66412-1.17834-4.441-2.944l-.00000007-.00000017c-1.01279-2.45242.150189-5.26191 2.6-6.281l-.00000002.00000001c2.45232-.980726 5.23932.172946 6.281 2.6l.00000007.00000018c1.01279 2.45242-.150189 5.26191-2.6 6.281l-.00000033.00000014c-.583184.239869-1.20955.356971-1.84.344z"/></svg>
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
1
app/assets/images/share.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m20.5 9a2 2 0 0 0 -2-2h-3.25a.25.25 0 0 0 -.25.25v1.5a.25.25 0 0 0 .25.25h2.75a.5.5 0 0 1 .5.5v12a.5.5 0 0 1 -.5.5h-12a.5.5 0 0 1 -.5-.5v-12a.5.5 0 0 1 .5-.5h2.75a.25.25 0 0 0 .25-.251v-1.5a.25.25 0 0 0 -.252-.249h-3.248a2 2 0 0 0 -2 2v13a2 2 0 0 0 2 2h13a2 2 0 0 0 2-2z"/><path d="m10.5 11a1.5 1.5 0 0 0 3 0v-5.251a.25.25 0 0 1 .25-.25h1.75a1 1 0 0 0 .7-1.707l-3.5-3.5a1 1 0 0 0 -1.414 0l-3.5 3.5a1 1 0 0 0 .714 1.708h1.75a.25.25 0 0 1 .25.25z"/></svg>
|
||||
|
After Width: | Height: | Size: 522 B |
BIN
app/assets/images/sounds/56k.gif
Normal file
|
After Width: | Height: | Size: 6.2 KiB |
BIN
app/assets/images/sounds/56k.webp
Normal file
|
After Width: | Height: | Size: 5.5 KiB |
BIN
app/assets/images/sounds/clowntown.gif
Normal file
|
After Width: | Height: | Size: 20 KiB |