cleanup
|
@ -0,0 +1,201 @@
|
||||||
|
# Byte-compiled / optimized / DLL files
|
||||||
|
__pycache__/
|
||||||
|
*.py[cod]
|
||||||
|
*$py.class
|
||||||
|
|
||||||
|
# C extensions
|
||||||
|
*.so
|
||||||
|
|
||||||
|
# Distribution / packaging
|
||||||
|
.Python
|
||||||
|
build/
|
||||||
|
develop-eggs/
|
||||||
|
# dist/
|
||||||
|
downloads/
|
||||||
|
eggs/
|
||||||
|
.eggs/
|
||||||
|
lib/
|
||||||
|
lib64/
|
||||||
|
parts/
|
||||||
|
sdist/
|
||||||
|
var/
|
||||||
|
wheels/
|
||||||
|
share/python-wheels/
|
||||||
|
*.egg-info/
|
||||||
|
.installed.cfg
|
||||||
|
*.egg
|
||||||
|
MANIFEST
|
||||||
|
|
||||||
|
# PyInstaller
|
||||||
|
# Usually these files are written by a python script from a template
|
||||||
|
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
||||||
|
*.manifest
|
||||||
|
*.spec
|
||||||
|
|
||||||
|
# Installer logs
|
||||||
|
pip-log.txt
|
||||||
|
pip-delete-this-directory.txt
|
||||||
|
|
||||||
|
# Unit test / coverage reports
|
||||||
|
htmlcov/
|
||||||
|
.tox/
|
||||||
|
.nox/
|
||||||
|
.coverage
|
||||||
|
.coverage.*
|
||||||
|
.cache
|
||||||
|
nosetests.xml
|
||||||
|
coverage.xml
|
||||||
|
*.cover
|
||||||
|
*.py,cover
|
||||||
|
.hypothesis/
|
||||||
|
.pytest_cache/
|
||||||
|
cover/
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
*.mo
|
||||||
|
*.pot
|
||||||
|
|
||||||
|
# Django stuff:
|
||||||
|
*.log
|
||||||
|
local_settings.py
|
||||||
|
db.sqlite3
|
||||||
|
db.sqlite3-journal
|
||||||
|
|
||||||
|
# Flask stuff:
|
||||||
|
instance/
|
||||||
|
.webassets-cache
|
||||||
|
|
||||||
|
# Scrapy stuff:
|
||||||
|
.scrapy
|
||||||
|
|
||||||
|
# Sphinx documentation
|
||||||
|
docs/_build/
|
||||||
|
|
||||||
|
# PyBuilder
|
||||||
|
.pybuilder/
|
||||||
|
target/
|
||||||
|
|
||||||
|
# Jupyter Notebook
|
||||||
|
.ipynb_checkpoints
|
||||||
|
|
||||||
|
# IPython
|
||||||
|
profile_default/
|
||||||
|
ipython_config.py
|
||||||
|
|
||||||
|
# pyenv
|
||||||
|
# For a library or package, you might want to ignore these files since the code is
|
||||||
|
# intended to run in multiple environments; otherwise, check them in:
|
||||||
|
.python-version
|
||||||
|
|
||||||
|
# pipenv
|
||||||
|
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
||||||
|
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
||||||
|
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
||||||
|
# install all needed dependencies.
|
||||||
|
#Pipfile.lock
|
||||||
|
|
||||||
|
# UV
|
||||||
|
# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
|
||||||
|
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
||||||
|
# commonly ignored for libraries.
|
||||||
|
#uv.lock
|
||||||
|
|
||||||
|
# poetry
|
||||||
|
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
||||||
|
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
||||||
|
# commonly ignored for libraries.
|
||||||
|
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
||||||
|
#poetry.lock
|
||||||
|
#poetry.toml
|
||||||
|
|
||||||
|
# pdm
|
||||||
|
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
||||||
|
#pdm.lock
|
||||||
|
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
||||||
|
# in version control.
|
||||||
|
# https://pdm.fming.dev/latest/usage/project/#working-with-version-control
|
||||||
|
.pdm.toml
|
||||||
|
.pdm-python
|
||||||
|
.pdm-build/
|
||||||
|
|
||||||
|
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
||||||
|
__pypackages__/
|
||||||
|
|
||||||
|
# Celery stuff
|
||||||
|
celerybeat-schedule
|
||||||
|
celerybeat.pid
|
||||||
|
|
||||||
|
# SageMath parsed files
|
||||||
|
*.sage.py
|
||||||
|
|
||||||
|
# Environments
|
||||||
|
.env
|
||||||
|
.venv
|
||||||
|
env/
|
||||||
|
venv/
|
||||||
|
ENV/
|
||||||
|
env.bak/
|
||||||
|
venv.bak/
|
||||||
|
|
||||||
|
# Spyder project settings
|
||||||
|
.spyderproject
|
||||||
|
.spyproject
|
||||||
|
|
||||||
|
# Rope project settings
|
||||||
|
.ropeproject
|
||||||
|
|
||||||
|
# mkdocs documentation
|
||||||
|
/site
|
||||||
|
|
||||||
|
# mypy
|
||||||
|
.mypy_cache/
|
||||||
|
.dmypy.json
|
||||||
|
dmypy.json
|
||||||
|
|
||||||
|
# Pyre type checker
|
||||||
|
.pyre/
|
||||||
|
|
||||||
|
# pytype static type analyzer
|
||||||
|
.pytype/
|
||||||
|
|
||||||
|
# Cython debug symbols
|
||||||
|
cython_debug/
|
||||||
|
|
||||||
|
# PyCharm
|
||||||
|
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
||||||
|
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
||||||
|
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
||||||
|
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
||||||
|
#.idea/
|
||||||
|
|
||||||
|
# Abstra
|
||||||
|
# Abstra is an AI-powered process automation framework.
|
||||||
|
# Ignore directories containing user credentials, local state, and settings.
|
||||||
|
# Learn more at https://abstra.io/docs
|
||||||
|
.abstra/
|
||||||
|
|
||||||
|
# Visual Studio Code
|
||||||
|
# Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
|
||||||
|
# that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
|
||||||
|
# and can be added to the global gitignore or merged into this file. However, if you prefer,
|
||||||
|
# you could uncomment the following to ignore the entire vscode folder
|
||||||
|
.vscode/
|
||||||
|
|
||||||
|
# Ruff stuff:
|
||||||
|
.ruff_cache/
|
||||||
|
|
||||||
|
# PyPI configuration file
|
||||||
|
.pypirc
|
||||||
|
|
||||||
|
# Cursor
|
||||||
|
# Cursor is an AI-powered code editor. `.cursorignore` specifies files/directories to
|
||||||
|
# exclude from AI features like autocomplete and code analysis. Recommended for sensitive data
|
||||||
|
# refer to https://docs.cursor.com/context/ignore-files
|
||||||
|
.cursorignore
|
||||||
|
.cursorindexingignore
|
||||||
|
|
||||||
|
|
||||||
|
poetry.lock
|
||||||
|
datings.db
|
||||||
|
.env.local
|
||||||
|
pwd.txt
|
|
@ -0,0 +1 @@
|
||||||
|
/home/lera/.cache/trunk/repos/f4b10994d6ff347dfcb62d83cc717268/actions
|
|
@ -0,0 +1 @@
|
||||||
|
/home/lera/.cache/trunk/repos/f4b10994d6ff347dfcb62d83cc717268/logs
|
|
@ -0,0 +1 @@
|
||||||
|
/home/lera/.cache/trunk/repos/f4b10994d6ff347dfcb62d83cc717268/notifications
|
|
@ -0,0 +1 @@
|
||||||
|
/home/lera/.cache/trunk/repos/f4b10994d6ff347dfcb62d83cc717268/out
|
|
@ -0,0 +1 @@
|
||||||
|
/home/lera/.cache/trunk/repos/f4b10994d6ff347dfcb62d83cc717268/tools
|
|
@ -0,0 +1 @@
|
||||||
|
OPENAPI_URL=""
|
|
@ -0,0 +1,42 @@
|
||||||
|
################
|
||||||
|
# Stage: Build #
|
||||||
|
################
|
||||||
|
|
||||||
|
FROM python:3.13-slim AS build
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Export poetry dependencies to file
|
||||||
|
RUN pip install --upgrade pip
|
||||||
|
RUN pip install poetry poetry-plugin-export
|
||||||
|
RUN poetry self update
|
||||||
|
COPY pyproject.toml ./
|
||||||
|
RUN poetry export --without-hashes --format requirements.txt --output /app/requirements.txt
|
||||||
|
|
||||||
|
#####################
|
||||||
|
# Stage: Production #
|
||||||
|
#####################
|
||||||
|
FROM python:3.13-slim AS prod
|
||||||
|
|
||||||
|
# ENV PYTHONPATH=/app
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Copy requirements from build stage, and install them
|
||||||
|
COPY --from=build /app/requirements.txt .
|
||||||
|
|
||||||
|
RUN pip install --upgrade pip
|
||||||
|
RUN pip install --no-cache-dir -r requirements.txt
|
||||||
|
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
# Create a non-root user to run the web server
|
||||||
|
RUN adduser -u 5678 --disabled-password --gecos "" appuser && chown -R appuser /app
|
||||||
|
USER appuser
|
||||||
|
|
||||||
|
# Run server
|
||||||
|
EXPOSE 8001
|
||||||
|
# CMD ["gunicorn", "--bind", "0.0.0.0:8001", "main_package.app:app"]
|
||||||
|
# CMD ["uvicorn", "main_package.app:app", "--reload", "--host", "0.0.0.0", "--port", "8001", "--proxy-headers"]
|
||||||
|
CMD ["fastapi", "run", "main_package/app.py", "--reload", "--port", "8001", "--proxy-headers"]
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
docker-build.sh
|
||||||
|
|
||||||
|
docker-up.sh
|
||||||
|
|
||||||
|
https://www.tutorialspoint.com/fastapi/fastapi_path_parameters.htm
|
||||||
|
|
||||||
|
https://eugeneyan.com/writing/how-to-set-up-html-app-with-fastapi-jinja-forms-templates/
|
||||||
|
|
||||||
|
https://github.com/josepaiva94/starter-fastapi-celery/tree/master/app
|
|
@ -0,0 +1,11 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
|
||||||
|
echo -n $( dirname -- "$( readlink -f -- "$0" )" ) > pwd.txt
|
||||||
|
CWD=$(cat pwd.txt)
|
||||||
|
cd "${CWD}"
|
||||||
|
|
||||||
|
find . -name .venv -type d -exec rm -vrf {} \;
|
||||||
|
find . -name __pycache__ -type d -exec rm -vrf {} \;
|
||||||
|
|
||||||
|
echo "Finish!!!"
|
|
@ -0,0 +1,5 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
docker-compose build
|
||||||
|
|
||||||
|
echo "Finish!"
|
|
@ -0,0 +1,15 @@
|
||||||
|
services:
|
||||||
|
site:
|
||||||
|
container_name: LeraFoxQueen
|
||||||
|
build: .
|
||||||
|
working_dir: /app
|
||||||
|
image: lerafoxqueen
|
||||||
|
ports:
|
||||||
|
- "8001:8001"
|
||||||
|
volumes:
|
||||||
|
- .:/app:ro
|
||||||
|
- ./datings.db:/app/datings.db:rw
|
||||||
|
environment:
|
||||||
|
- WATCHFILES_FORCE_POLLING=true
|
||||||
|
command: fastapi run main_package/app.py --reload --port 8001 --proxy-headers
|
||||||
|
restart: on-failure
|
|
@ -0,0 +1,5 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
docker-compose down
|
||||||
|
|
||||||
|
echo "Finish!"
|
|
@ -0,0 +1,5 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
docker-compose up -d
|
||||||
|
|
||||||
|
echo "Finish!"
|
|
@ -0,0 +1,5 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
docker-compose up
|
||||||
|
|
||||||
|
echo "Finish!"
|
|
@ -0,0 +1,160 @@
|
||||||
|
import uvicorn
|
||||||
|
# import pathlib
|
||||||
|
import datetime
|
||||||
|
import uuid
|
||||||
|
from contextlib import asynccontextmanager
|
||||||
|
|
||||||
|
from fastapi import FastAPI, Request, HTTPException
|
||||||
|
from fastapi.responses import HTMLResponse, JSONResponse, PlainTextResponse, FileResponse
|
||||||
|
from fastapi.staticfiles import StaticFiles
|
||||||
|
from fastapi.templating import Jinja2Templates
|
||||||
|
from fastapi_sitemap import SiteMap
|
||||||
|
|
||||||
|
from .database import create_tables, delete_tables
|
||||||
|
from .router import router as datings_router
|
||||||
|
from .validity import is_valid_uuid
|
||||||
|
|
||||||
|
|
||||||
|
from pydantic_settings import BaseSettings, SettingsConfigDict
|
||||||
|
|
||||||
|
|
||||||
|
class Settings(BaseSettings):
|
||||||
|
OPENAPI_URL: str = "/openapi.json"
|
||||||
|
|
||||||
|
model_config = SettingsConfigDict(
|
||||||
|
env_file=(".env", ".env.local", ".env.prod"),
|
||||||
|
env_file_encoding="utf-8",
|
||||||
|
case_sensitive=True
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
settings = Settings()
|
||||||
|
|
||||||
|
|
||||||
|
@asynccontextmanager
|
||||||
|
async def lifespan(app: FastAPI):
|
||||||
|
await create_tables()
|
||||||
|
print("База готова")
|
||||||
|
yield
|
||||||
|
# await delete_tables()
|
||||||
|
# print("База очищена")
|
||||||
|
print("Приложение завершено")
|
||||||
|
|
||||||
|
|
||||||
|
app = FastAPI(
|
||||||
|
lifespan=lifespan, docs_url=None, redoc_url=None, openapi_url=settings.OPENAPI_URL
|
||||||
|
)
|
||||||
|
|
||||||
|
favicon_path = "static/assets/img/favicons/favicon.ico"
|
||||||
|
|
||||||
|
templates = Jinja2Templates(directory="templates")
|
||||||
|
|
||||||
|
app.include_router(datings_router)
|
||||||
|
|
||||||
|
app.mount("/static", StaticFiles(directory="static"), name="static")
|
||||||
|
|
||||||
|
|
||||||
|
@app.get("/", response_class=HTMLResponse)
|
||||||
|
async def index(request: Request):
|
||||||
|
|
||||||
|
response = templates.TemplateResponse(
|
||||||
|
"index.html", {"request": request}
|
||||||
|
)
|
||||||
|
sessionKey = request.cookies.get("sessionkey")
|
||||||
|
if isinstance(sessionKey, str) and is_valid_uuid(sessionKey):
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
days = 365
|
||||||
|
expires_t_obj = datetime.datetime.now(datetime.timezone.utc) + datetime.timedelta(
|
||||||
|
days=days
|
||||||
|
)
|
||||||
|
expires_t_str = expires_t_obj.strftime("%a, %d %b %Y %H:%M:%S GMT")
|
||||||
|
|
||||||
|
response.set_cookie(
|
||||||
|
key="sessionkey", value=str(uuid.uuid4()), expires=expires_t_str
|
||||||
|
)
|
||||||
|
return response
|
||||||
|
|
||||||
|
|
||||||
|
@app.get("/about_me", response_class=HTMLResponse)
|
||||||
|
async def about_me(request: Request):
|
||||||
|
response = templates.TemplateResponse("about_me.html", {"request": request})
|
||||||
|
sessionKey = request.cookies.get("sessionkey")
|
||||||
|
if isinstance(sessionKey, str) and is_valid_uuid(sessionKey):
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
days = 365
|
||||||
|
expires_t_obj = datetime.datetime.now(
|
||||||
|
datetime.timezone.utc
|
||||||
|
) + datetime.timedelta(days=days)
|
||||||
|
expires_t_str = expires_t_obj.strftime("%a, %d %b %Y %H:%M:%S GMT")
|
||||||
|
|
||||||
|
response.set_cookie(
|
||||||
|
key="sessionkey", value=str(uuid.uuid4()), expires=expires_t_str
|
||||||
|
)
|
||||||
|
return response
|
||||||
|
|
||||||
|
|
||||||
|
@app.get("/about_site", response_class=HTMLResponse)
|
||||||
|
async def about_site(request: Request):
|
||||||
|
response = templates.TemplateResponse("about_site.html", {"request": request})
|
||||||
|
sessionKey = request.cookies.get("sessionkey")
|
||||||
|
if isinstance(sessionKey, str) and is_valid_uuid(sessionKey):
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
days = 365
|
||||||
|
expires_t_obj = datetime.datetime.now(
|
||||||
|
datetime.timezone.utc
|
||||||
|
) + datetime.timedelta(days=days)
|
||||||
|
expires_t_str = expires_t_obj.strftime("%a, %d %b %Y %H:%M:%S GMT")
|
||||||
|
|
||||||
|
response.set_cookie(
|
||||||
|
key="sessionkey", value=str(uuid.uuid4()), expires=expires_t_str
|
||||||
|
)
|
||||||
|
return response
|
||||||
|
|
||||||
|
|
||||||
|
@app.get("/favicon.ico", include_in_schema=False)
|
||||||
|
async def favicon():
|
||||||
|
return FileResponse(favicon_path)
|
||||||
|
|
||||||
|
|
||||||
|
@app.get("/robots.txt", response_class=PlainTextResponse)
|
||||||
|
def robots():
|
||||||
|
data = """User-agent: *\nAllow: /\nSitemap: /sitemap.xml"""
|
||||||
|
return data
|
||||||
|
|
||||||
|
|
||||||
|
@app.exception_handler(HTTPException)
|
||||||
|
async def http_exception_handler(request, exc):
|
||||||
|
return JSONResponse(status_code=exc.status_code, content={"detail": exc.detail})
|
||||||
|
|
||||||
|
|
||||||
|
sitemap = SiteMap(
|
||||||
|
app=app,
|
||||||
|
base_url="https://lerafoxqueen.ru",
|
||||||
|
static_dirs=["static", "docs"],
|
||||||
|
exclude_patterns=[
|
||||||
|
"^/api/",
|
||||||
|
"^/docs/",
|
||||||
|
"^/datings",
|
||||||
|
"^/api/",
|
||||||
|
"^/admin/",
|
||||||
|
], # optional: exclude patterns
|
||||||
|
include_dynamic=True,
|
||||||
|
changefreq="daily",
|
||||||
|
priority_map={
|
||||||
|
"/": 1.0,
|
||||||
|
},
|
||||||
|
gzip=True, # optional: make a gz version too
|
||||||
|
)
|
||||||
|
|
||||||
|
sitemap.attach() # now GET /sitemap.xml is live
|
||||||
|
|
||||||
|
# @sitemap.source
|
||||||
|
# def extra_urls():
|
||||||
|
# yield URLInfo("https://lerafoxqueen.ru/sitemap.xml")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
uvicorn.run(app, host="0.0.0.0", port=8001)
|
|
@ -0,0 +1,49 @@
|
||||||
|
# from datetime import datetime
|
||||||
|
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
|
||||||
|
from sqlalchemy.ext.asyncio import async_sessionmaker, create_async_engine
|
||||||
|
|
||||||
|
|
||||||
|
engine = create_async_engine("sqlite+aiosqlite:///datings.db", echo=True)
|
||||||
|
new_session = async_sessionmaker(engine, expire_on_commit=False)
|
||||||
|
|
||||||
|
|
||||||
|
class Model(DeclarativeBase):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class DatingOrm(Model):
|
||||||
|
__tablename__ = "datings"
|
||||||
|
|
||||||
|
id: Mapped[int] = mapped_column(primary_key=True, unique=True, autoincrement=True)
|
||||||
|
sessionkey: Mapped[str] = mapped_column(unique=True)
|
||||||
|
theme_name: Mapped[str]
|
||||||
|
sender_looking_relationship: Mapped[str]
|
||||||
|
sender_name: Mapped[str]
|
||||||
|
sender_sex: Mapped[str]
|
||||||
|
sender_age: Mapped[int]
|
||||||
|
sender_city: Mapped[str]
|
||||||
|
telegram_name: Mapped[str]
|
||||||
|
sender_relationship: Mapped[str]
|
||||||
|
sender_having_kids: Mapped[str]
|
||||||
|
sender_want_to_have_kids: Mapped[str]
|
||||||
|
interests_in_school_university: Mapped[str]
|
||||||
|
interests_in_sports: Mapped[str]
|
||||||
|
interests_in_work: Mapped[str]
|
||||||
|
interests_in_your_free_time: Mapped[str]
|
||||||
|
pets_plants_fish: Mapped[str]
|
||||||
|
relationships_with_relatives_and_friends: Mapped[str]
|
||||||
|
past_relationships: Mapped[str]
|
||||||
|
life_principles_values: Mapped[str]
|
||||||
|
goals_in_life: Mapped[str]
|
||||||
|
message_text: Mapped[str]
|
||||||
|
privacy_accept: Mapped[bool]
|
||||||
|
|
||||||
|
|
||||||
|
async def create_tables():
|
||||||
|
async with engine.begin() as conn:
|
||||||
|
await conn.run_sync(Model.metadata.create_all)
|
||||||
|
|
||||||
|
|
||||||
|
async def delete_tables():
|
||||||
|
async with engine.begin() as conn:
|
||||||
|
await conn.run_sync(Model.metadata.drop_all)
|
|
@ -0,0 +1,31 @@
|
||||||
|
from sqlalchemy import select
|
||||||
|
from .database import DatingOrm, new_session
|
||||||
|
from .schemas import SDatingAdd, SDating
|
||||||
|
|
||||||
|
|
||||||
|
class DatingRepository:
|
||||||
|
@classmethod
|
||||||
|
async def add_dating(cls, dating: SDatingAdd) -> int | None:
|
||||||
|
async with new_session() as session:
|
||||||
|
try:
|
||||||
|
data = dating.model_dump()
|
||||||
|
new_dating = DatingOrm(**data)
|
||||||
|
|
||||||
|
session.add(new_dating)
|
||||||
|
await session.flush()
|
||||||
|
await session.commit()
|
||||||
|
return new_dating.id
|
||||||
|
except Exception as e:
|
||||||
|
print(e)
|
||||||
|
return None
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
async def get_datings(cls) -> list[SDating]:
|
||||||
|
async with new_session() as session:
|
||||||
|
query = select(DatingOrm)
|
||||||
|
result = await session.execute(query)
|
||||||
|
dating_models = result.scalars().all()
|
||||||
|
datings = [
|
||||||
|
SDating.model_validate(dating_model) for dating_model in dating_models
|
||||||
|
]
|
||||||
|
return datings
|
|
@ -0,0 +1,72 @@
|
||||||
|
from fastapi import (
|
||||||
|
APIRouter,
|
||||||
|
Body,
|
||||||
|
# Cookie,
|
||||||
|
# Depends,
|
||||||
|
# FastAPI,
|
||||||
|
# Form,
|
||||||
|
# Header,
|
||||||
|
# HTTPException,
|
||||||
|
# Request,
|
||||||
|
)
|
||||||
|
from fastapi.responses import JSONResponse
|
||||||
|
|
||||||
|
from .repository import DatingRepository
|
||||||
|
from .schemas import SDating, SDatingAdd, SDatingId
|
||||||
|
|
||||||
|
# async def get_body(request: Request):
|
||||||
|
# content_type = request.headers.get('Content-Type')
|
||||||
|
# if content_type is None:
|
||||||
|
# raise HTTPException(status_code=400, detail='No Content-Type provided!')
|
||||||
|
# elif content_type == 'application/json':
|
||||||
|
# try:
|
||||||
|
# return await request.json()
|
||||||
|
# except JSONDecodeError:
|
||||||
|
# raise HTTPException(status_code=400, detail='Invalid JSON data')
|
||||||
|
# elif (content_type == 'application/x-www-form-urlencoded' or
|
||||||
|
# content_type.startswith('multipart/form-data')):
|
||||||
|
# try:
|
||||||
|
# return await request.form()
|
||||||
|
# except Exception:
|
||||||
|
# raise HTTPException(status_code=400, detail='Invalid Form data')
|
||||||
|
# else:
|
||||||
|
# raise HTTPException(status_code=400, detail='Content-Type not supported!')
|
||||||
|
|
||||||
|
|
||||||
|
router = APIRouter(
|
||||||
|
prefix="/datings",
|
||||||
|
tags=["Знакомства"],
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@router.post(
|
||||||
|
"/add",
|
||||||
|
description="Добавляет знакомство в базу данных, а еще ....",
|
||||||
|
summary="Добавляет знакомство в базу данных",
|
||||||
|
response_description="Вот такой ответ придет",
|
||||||
|
)
|
||||||
|
# async def add_dating(dating: SDatingAdd = Body()) -> SDatingId:
|
||||||
|
# new_dating_id = await DatingRepository.add_dating(dating)
|
||||||
|
# return {"id": new_dating_id} # type: ignore
|
||||||
|
|
||||||
|
|
||||||
|
async def add_dating(dating: SDatingAdd = Body()) -> JSONResponse:
|
||||||
|
new_dating_id = await DatingRepository.add_dating(dating)
|
||||||
|
content = {"id": new_dating_id} # type: ignore
|
||||||
|
response = JSONResponse(content=content)
|
||||||
|
return response
|
||||||
|
|
||||||
|
|
||||||
|
# @router.get("/get")
|
||||||
|
# async def get_datings() -> list[SDating]:
|
||||||
|
# datings = await DatingRepository.get_datings()
|
||||||
|
# return datings
|
||||||
|
|
||||||
|
|
||||||
|
# async def get_datings() -> JSONResponse:
|
||||||
|
# datings = await DatingRepository.get_datings()
|
||||||
|
# content = dumps(datings, default=lambda o: o.__dict__) # type: ignore
|
||||||
|
# response = JSONResponse(content=content)
|
||||||
|
# response.set_cookie(key="fakesession", value="fake-cookie-session-value")
|
||||||
|
# return response
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
# from datetime import datetime
|
||||||
|
from pydantic import BaseModel, ConfigDict
|
||||||
|
|
||||||
|
|
||||||
|
class SDatingAdd(BaseModel):
|
||||||
|
sessionkey: str
|
||||||
|
theme_name: str
|
||||||
|
sender_looking_relationship: str
|
||||||
|
sender_name: str
|
||||||
|
sender_sex: str
|
||||||
|
sender_age: int
|
||||||
|
sender_city: str
|
||||||
|
telegram_name: str
|
||||||
|
sender_relationship: str
|
||||||
|
sender_having_kids: str
|
||||||
|
sender_want_to_have_kids: str
|
||||||
|
interests_in_school_university: str
|
||||||
|
interests_in_sports: str
|
||||||
|
interests_in_work: str
|
||||||
|
interests_in_your_free_time: str
|
||||||
|
pets_plants_fish: str
|
||||||
|
relationships_with_relatives_and_friends: str
|
||||||
|
past_relationships: str
|
||||||
|
life_principles_values: str
|
||||||
|
goals_in_life: str
|
||||||
|
message_text: str
|
||||||
|
privacy_accept: bool
|
||||||
|
|
||||||
|
|
||||||
|
class SDating(SDatingAdd):
|
||||||
|
id: int
|
||||||
|
model_config = ConfigDict(from_attributes=True)
|
||||||
|
|
||||||
|
|
||||||
|
class SDatingId(BaseModel):
|
||||||
|
id: int
|
|
@ -0,0 +1,29 @@
|
||||||
|
import uuid
|
||||||
|
|
||||||
|
|
||||||
|
def is_valid_uuid(uuid_to_test, version=4):
|
||||||
|
"""
|
||||||
|
Check if uuid_to_test is a valid UUID.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
uuid_to_test : str
|
||||||
|
version : {1, 2, 3, 4}
|
||||||
|
|
||||||
|
Returns
|
||||||
|
-------
|
||||||
|
`True` if uuid_to_test is a valid UUID, otherwise `False`.
|
||||||
|
|
||||||
|
Examples
|
||||||
|
--------
|
||||||
|
>>> is_valid_uuid('c9bf9e57-1685-4c89-bafb-ff5af830be8a')
|
||||||
|
True
|
||||||
|
>>> is_valid_uuid('c9bf9e58')
|
||||||
|
False
|
||||||
|
"""
|
||||||
|
|
||||||
|
try:
|
||||||
|
uuid_obj = uuid.UUID(uuid_to_test, version=version)
|
||||||
|
except ValueError:
|
||||||
|
return False
|
||||||
|
return str(uuid_obj) == uuid_to_test
|
|
@ -0,0 +1,44 @@
|
||||||
|
[project]
|
||||||
|
name = "main_package"
|
||||||
|
version = "0.1.0"
|
||||||
|
description = ""
|
||||||
|
authors = [
|
||||||
|
{ name = "Valeria Fadeeva" },
|
||||||
|
{ email = "valeria.fadeeva.me@gmail.com" },
|
||||||
|
]
|
||||||
|
license = { text = "AGPL3" }
|
||||||
|
readme = "README.md"
|
||||||
|
requires-python = ">=3.13"
|
||||||
|
dependencies = [
|
||||||
|
"hypercorn (>=0.17.3,<0.18.0)",
|
||||||
|
"unicorn (>=2.1.3,<3.0.0)",
|
||||||
|
"uvicorn (>=0.34.3,<0.35.0)",
|
||||||
|
"gunicorn (>=23.0.0,<24.0.0)",
|
||||||
|
"fastapi[standard] (>=0.115.12,<0.116.0)",
|
||||||
|
"aiosqlite (>=0.21.0,<0.22.0)",
|
||||||
|
"sqlalchemy (>=2.0.41,<3.0.0)",
|
||||||
|
"pydantic (>=2.11.5,<3.0.0)",
|
||||||
|
"annotated-types (>=0.7.0,<0.8.0)",
|
||||||
|
"typing-extensions (>=4.14.0,<5.0.0)",
|
||||||
|
"python-multipart (>=0.0.20,<0.0.21)",
|
||||||
|
"anyio (>=4.9.0,<5.0.0)",
|
||||||
|
"click (>=8.2.1,<9.0.0)",
|
||||||
|
"colorama (>=0.4.6,<0.5.0)",
|
||||||
|
"greenlet (>=3.2.2,<4.0.0)",
|
||||||
|
"h11 (>=0.16.0,<0.17.0)",
|
||||||
|
"idna (>=3.10,<4.0)",
|
||||||
|
"sniffio (>=1.3.1,<2.0.0)",
|
||||||
|
"jinja2 (>=3.1.6,<4.0.0)",
|
||||||
|
"pydantic-settings (>=2.9.1,<3.0.0)",
|
||||||
|
"fastapi-sitemap (>=1.0.4,<2.0.0)",
|
||||||
|
]
|
||||||
|
package-mode = false
|
||||||
|
packages = [{include = "main_package"}]
|
||||||
|
|
||||||
|
[tool.poetry.requires-plugins]
|
||||||
|
poetry-plugin-export = ">=1.8"
|
||||||
|
|
||||||
|
[build-system]
|
||||||
|
requires = ["poetry-core>=2.0.0,<3.0.0"]
|
||||||
|
build-backend = "poetry.core.masonry.api"
|
||||||
|
package-mode = false
|
|
@ -0,0 +1,54 @@
|
||||||
|
aiosqlite==0.21.0 ; python_version >= "3.13"
|
||||||
|
annotated-types==0.7.0 ; python_version >= "3.13"
|
||||||
|
anyio==4.9.0 ; python_version >= "3.13"
|
||||||
|
certifi==2025.7.14 ; python_version >= "3.13"
|
||||||
|
click==8.2.1 ; python_version >= "3.13"
|
||||||
|
colorama==0.4.6 ; python_version >= "3.13"
|
||||||
|
dnspython==2.7.0 ; python_version >= "3.13"
|
||||||
|
email-validator==2.2.0 ; python_version >= "3.13"
|
||||||
|
fastapi-cli==0.0.8 ; python_version >= "3.13"
|
||||||
|
fastapi-cloud-cli==0.1.4 ; python_version >= "3.13"
|
||||||
|
fastapi-sitemap==1.0.4 ; python_version >= "3.13"
|
||||||
|
fastapi==0.115.12 ; python_version >= "3.13"
|
||||||
|
greenlet==3.2.2 ; python_version >= "3.13"
|
||||||
|
gunicorn==23.0.0 ; python_version >= "3.13"
|
||||||
|
h11==0.16.0 ; python_version >= "3.13"
|
||||||
|
h2==4.2.0 ; python_version >= "3.13"
|
||||||
|
hpack==4.1.0 ; python_version >= "3.13"
|
||||||
|
httpcore==1.0.9 ; python_version >= "3.13"
|
||||||
|
httptools==0.6.4 ; python_version >= "3.13"
|
||||||
|
httpx==0.28.1 ; python_version >= "3.13"
|
||||||
|
hypercorn==0.17.3 ; python_version >= "3.13"
|
||||||
|
hyperframe==6.1.0 ; python_version >= "3.13"
|
||||||
|
idna==3.10 ; python_version >= "3.13"
|
||||||
|
jinja2==3.1.6 ; python_version >= "3.13"
|
||||||
|
markdown-it-py==3.0.0 ; python_version >= "3.13"
|
||||||
|
markupsafe==3.0.2 ; python_version >= "3.13"
|
||||||
|
mdurl==0.1.2 ; python_version >= "3.13"
|
||||||
|
packaging==25.0 ; python_version >= "3.13"
|
||||||
|
priority==2.0.0 ; python_version >= "3.13"
|
||||||
|
pydantic-core==2.33.2 ; python_version >= "3.13"
|
||||||
|
pydantic-settings==2.9.1 ; python_version >= "3.13"
|
||||||
|
pydantic==2.11.5 ; python_version >= "3.13"
|
||||||
|
pygments==2.19.2 ; python_version >= "3.13"
|
||||||
|
python-dotenv==1.1.0 ; python_version >= "3.13"
|
||||||
|
python-multipart==0.0.20 ; python_version >= "3.13"
|
||||||
|
pyyaml==6.0.2 ; python_version >= "3.13"
|
||||||
|
rich-toolkit==0.14.8 ; python_version >= "3.13"
|
||||||
|
rich==14.1.0 ; python_version >= "3.13"
|
||||||
|
rignore==0.6.4 ; python_version >= "3.13"
|
||||||
|
sentry-sdk==2.33.2 ; python_version >= "3.13"
|
||||||
|
shellingham==1.5.4 ; python_version >= "3.13"
|
||||||
|
sniffio==1.3.1 ; python_version >= "3.13"
|
||||||
|
sqlalchemy==2.0.41 ; python_version >= "3.13"
|
||||||
|
starlette==0.46.2 ; python_version >= "3.13"
|
||||||
|
typer==0.16.0 ; python_version >= "3.13"
|
||||||
|
typing-extensions==4.14.0 ; python_version >= "3.13"
|
||||||
|
typing-inspection==0.4.1 ; python_version >= "3.13"
|
||||||
|
unicorn==2.1.3 ; python_version >= "3.13"
|
||||||
|
urllib3==2.5.0 ; python_version >= "3.13"
|
||||||
|
uvicorn==0.34.3 ; python_version >= "3.13"
|
||||||
|
uvloop==0.21.0 ; sys_platform != "win32" and sys_platform != "cygwin" and platform_python_implementation != "PyPy" and python_version >= "3.13"
|
||||||
|
watchfiles==1.1.0 ; python_version >= "3.13"
|
||||||
|
websockets==15.0.1 ; python_version >= "3.13"
|
||||||
|
wsproto==1.2.0 ; python_version >= "3.13"
|
|
@ -0,0 +1,38 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
|
||||||
|
echo -n $( dirname -- "$( readlink -f -- "$0" )" ) > pwd.txt
|
||||||
|
CWD=$(cat pwd.txt)
|
||||||
|
cd "${CWD}"
|
||||||
|
|
||||||
|
find . -name .venv -type d -exec rm -vrf {} \;
|
||||||
|
find . -name __pycache__ -type d -exec rm -vrf {} \;
|
||||||
|
|
||||||
|
python -m venv .venv
|
||||||
|
source "${CWD}/.venv/bin/activate"
|
||||||
|
|
||||||
|
pip install --upgrade pip
|
||||||
|
pip install poetry poetry-plugin-export
|
||||||
|
poetry lock
|
||||||
|
poetry self update
|
||||||
|
poetry export --without-hashes --format requirements.txt --output ./requirements.txt
|
||||||
|
pip install --no-cache-dir -r requirements.txt
|
||||||
|
|
||||||
|
pip show uvicorn | grep -E "Name:|Version:|Location:"
|
||||||
|
pip show gunicorn | grep -E "Name:|Version:|Location:"
|
||||||
|
pip show fastapi | grep -E "Name:|Version:|Location:"
|
||||||
|
|
||||||
|
pyenv local 3.13
|
||||||
|
poetry env activate
|
||||||
|
poetry lock
|
||||||
|
poetry install --no-root
|
||||||
|
|
||||||
|
#hypercorn main_package.app:app --reload -w $(nproc) --bind 0.0.0.0:8001
|
||||||
|
#poetry run hypercorn main_package/app:app --reload -w $(nproc) --bind 0.0.0.0:8001
|
||||||
|
#uvicorn main_package.app:app --reload --workers $(nproc) --host 0.0.0.0 --port 8001
|
||||||
|
#uvicorn main_package.app:app --reload --workers $(nproc) --host 127.0.0.1 --port 8001
|
||||||
|
#gunicorn -b 0.0.0.0:8001 -k uvicorn.workers.UvicornWorker main_package.app:app
|
||||||
|
|
||||||
|
cd "${CWD}"
|
||||||
|
source "${CWD}/.venv/bin/activate"
|
||||||
|
fastapi run main_package/app.py --reload --port 8001 --proxy-headers
|
After Width: | Height: | Size: 8.3 KiB |
After Width: | Height: | Size: 8.1 KiB |
|
@ -0,0 +1,11 @@
|
||||||
|
body {
|
||||||
|
background-image: linear-gradient(180deg, var(--bs-secondary-bg), var(--bs-body-bg) 100px, var(--bs-body-bg));
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
max-width: 960px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pricing-header {
|
||||||
|
max-width: 700px;
|
||||||
|
}
|
|
@ -0,0 +1,182 @@
|
||||||
|
body {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background: linear-gradient(135deg,
|
||||||
|
rgba(255, 179, 179, 0.5) 0%,
|
||||||
|
rgba(212, 76, 76, 0.658),
|
||||||
|
rgba(231, 35, 49, 0.5) 100%);
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: center center;
|
||||||
|
background-attachment: fixed;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bd-placeholder-img {
|
||||||
|
font-size: 1.125rem;
|
||||||
|
text-anchor: middle;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
user-select: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 768px) {
|
||||||
|
.bd-placeholder-img-lg {
|
||||||
|
font-size: 3.5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.b-example-divider {
|
||||||
|
width: 100%;
|
||||||
|
height: 3rem;
|
||||||
|
background-color: #0000001a;
|
||||||
|
border: solid rgba(0, 0, 0, 0.15);
|
||||||
|
border-width: 1px 0;
|
||||||
|
box-shadow: inset 0 0.5em 1.5em #0000001a,
|
||||||
|
inset 0 0.125em 0.5em #00000026;
|
||||||
|
}
|
||||||
|
|
||||||
|
.b-example-vr {
|
||||||
|
flex-shrink: 0;
|
||||||
|
width: 1.5rem;
|
||||||
|
height: 100vh;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bi {
|
||||||
|
vertical-align: -0.125em;
|
||||||
|
fill: currentColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-scroller {
|
||||||
|
position: relative;
|
||||||
|
z-index: 2;
|
||||||
|
height: 2.75rem;
|
||||||
|
overflow-y: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-scroller .nav {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: nowrap;
|
||||||
|
padding-bottom: 1rem;
|
||||||
|
margin-top: -1px;
|
||||||
|
overflow-x: auto;
|
||||||
|
text-align: center;
|
||||||
|
white-space: nowrap;
|
||||||
|
-webkit-overflow-scrolling: touch;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-bd-primary {
|
||||||
|
--bd-violet-bg: #712cf9;
|
||||||
|
--bd-violet-rgb: 112.520718, 44.062154, 249.437846;
|
||||||
|
--bs-btn-font-weight: 600;
|
||||||
|
--bs-btn-color: var(--bs-white);
|
||||||
|
--bs-btn-bg: var(--bd-violet-bg);
|
||||||
|
--bs-btn-border-color: var(--bd-violet-bg);
|
||||||
|
--bs-btn-hover-color: var(--bs-white);
|
||||||
|
--bs-btn-hover-bg: #6528e0;
|
||||||
|
--bs-btn-hover-border-color: #6528e0;
|
||||||
|
--bs-btn-focus-shadow-rgb: var(--bd-violet-rgb);
|
||||||
|
--bs-btn-active-color: var(--bs-btn-hover-color);
|
||||||
|
--bs-btn-active-bg: #5a23c8;
|
||||||
|
--bs-btn-active-border-color: #5a23c8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bd-mode-toggle {
|
||||||
|
z-index: 1500;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bd-mode-toggle .bi {
|
||||||
|
width: 1em;
|
||||||
|
height: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bd-mode-toggle .dropdown-menu .active .bi {
|
||||||
|
display: block !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-min-height {
|
||||||
|
min-height: 28rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.center {
|
||||||
|
display: flex;
|
||||||
|
text-align: center;
|
||||||
|
justify-content: center;
|
||||||
|
/* align-items: center; */
|
||||||
|
margin: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.w-100 {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Center the loader */
|
||||||
|
#loader {
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
z-index: 1;
|
||||||
|
width: 120px;
|
||||||
|
height: 120px;
|
||||||
|
margin: -76px 0 0 -76px;
|
||||||
|
border: 16px solid #f3f3f3;
|
||||||
|
border-radius: 50%;
|
||||||
|
border-top: 16px solid #3498db;
|
||||||
|
-webkit-animation: spin 2s linear infinite;
|
||||||
|
animation: spin 2s linear infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
@-webkit-keyframes spin {
|
||||||
|
0% {
|
||||||
|
-webkit-transform: rotate(0deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
-webkit-transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes spin {
|
||||||
|
0% {
|
||||||
|
transform: rotate(0deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Add animation to "page content" */
|
||||||
|
.animate-bottom {
|
||||||
|
position: relative;
|
||||||
|
-webkit-animation-name: animatebottom;
|
||||||
|
-webkit-animation-duration: 1s;
|
||||||
|
animation-name: animatebottom;
|
||||||
|
animation-duration: 1s
|
||||||
|
}
|
||||||
|
|
||||||
|
@-webkit-keyframes animatebottom {
|
||||||
|
from {
|
||||||
|
bottom: -100px;
|
||||||
|
opacity: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
to {
|
||||||
|
bottom: 0px;
|
||||||
|
opacity: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes animatebottom {
|
||||||
|
from {
|
||||||
|
bottom: -100px;
|
||||||
|
opacity: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
to {
|
||||||
|
bottom: 0;
|
||||||
|
opacity: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#main_content {
|
||||||
|
display: none;
|
||||||
|
}
|
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 697 B |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 2.5 KiB |
|
@ -0,0 +1,26 @@
|
||||||
|
{
|
||||||
|
"name": "LeraFoxQueen : Найдём свою любовь вместе",
|
||||||
|
"short_name": "LeraFoxQueen : Найдём свою любовь вместе",
|
||||||
|
"description": "Найди свою любовь вместе с LeraFoxQueen",
|
||||||
|
"orientation": "any",
|
||||||
|
"display": "standalone",
|
||||||
|
"dir": "auto",
|
||||||
|
"lang": "ru-RU",
|
||||||
|
"id": "https://LeraFoxQueen.ru",
|
||||||
|
"start_url": "/",
|
||||||
|
"scope": "https://LeraFoxQueen.ru/",
|
||||||
|
"theme_color": "#7952b3",
|
||||||
|
"background_color": "#7952b3",
|
||||||
|
"icons": [
|
||||||
|
{
|
||||||
|
"src": "android-chrome-192x192.png",
|
||||||
|
"sizes": "192x192",
|
||||||
|
"type": "image/png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "android-chrome-512x512.png",
|
||||||
|
"sizes": "512x512",
|
||||||
|
"type": "image/png"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
After Width: | Height: | Size: 8.5 KiB |
|
@ -0,0 +1,80 @@
|
||||||
|
/*!
|
||||||
|
* Color mode toggler for Bootstrap's docs (https://getbootstrap.com/)
|
||||||
|
* Copyright 2011-2025 The Bootstrap Authors
|
||||||
|
* Licensed under the Creative Commons Attribution 3.0 Unported License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
(() => {
|
||||||
|
'use strict'
|
||||||
|
|
||||||
|
const getStoredTheme = () => localStorage.getItem('theme')
|
||||||
|
const setStoredTheme = theme => localStorage.setItem('theme', theme)
|
||||||
|
|
||||||
|
const getPreferredTheme = () => {
|
||||||
|
const storedTheme = getStoredTheme()
|
||||||
|
if (storedTheme) {
|
||||||
|
return storedTheme
|
||||||
|
}
|
||||||
|
|
||||||
|
return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'
|
||||||
|
}
|
||||||
|
|
||||||
|
const setTheme = theme => {
|
||||||
|
if (theme === 'auto') {
|
||||||
|
document.documentElement.setAttribute('data-bs-theme', (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'))
|
||||||
|
} else {
|
||||||
|
document.documentElement.setAttribute('data-bs-theme', theme)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
setTheme(getPreferredTheme())
|
||||||
|
|
||||||
|
const showActiveTheme = (theme, focus = false) => {
|
||||||
|
const themeSwitcher = document.querySelector('#bd-theme')
|
||||||
|
|
||||||
|
if (!themeSwitcher) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
const themeSwitcherText = document.querySelector('#bd-theme-text')
|
||||||
|
const activeThemeIcon = document.querySelector('.theme-icon-active use')
|
||||||
|
const btnToActive = document.querySelector(`[data-bs-theme-value="${theme}"]`)
|
||||||
|
const svgOfActiveBtn = btnToActive.querySelector('svg use').getAttribute('href')
|
||||||
|
|
||||||
|
document.querySelectorAll('[data-bs-theme-value]').forEach(element => {
|
||||||
|
element.classList.remove('active')
|
||||||
|
element.setAttribute('aria-pressed', 'false')
|
||||||
|
})
|
||||||
|
|
||||||
|
btnToActive.classList.add('active')
|
||||||
|
btnToActive.setAttribute('aria-pressed', 'true')
|
||||||
|
activeThemeIcon.setAttribute('href', svgOfActiveBtn)
|
||||||
|
const themeSwitcherLabel = `${themeSwitcherText.textContent} (${btnToActive.dataset.bsThemeValue})`
|
||||||
|
themeSwitcher.setAttribute('aria-label', themeSwitcherLabel)
|
||||||
|
|
||||||
|
if (focus) {
|
||||||
|
themeSwitcher.focus()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => {
|
||||||
|
const storedTheme = getStoredTheme()
|
||||||
|
if (storedTheme !== 'light' && storedTheme !== 'dark') {
|
||||||
|
setTheme(getPreferredTheme())
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
window.addEventListener('DOMContentLoaded', () => {
|
||||||
|
showActiveTheme(getPreferredTheme())
|
||||||
|
|
||||||
|
document.querySelectorAll('[data-bs-theme-value]')
|
||||||
|
.forEach(toggle => {
|
||||||
|
toggle.addEventListener('click', () => {
|
||||||
|
const theme = toggle.getAttribute('data-bs-theme-value')
|
||||||
|
setStoredTheme(theme)
|
||||||
|
setTheme(theme)
|
||||||
|
showActiveTheme(theme, true)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})()
|
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
"systemParams": "linux-x64-137",
|
||||||
|
"modulesFolders": [
|
||||||
|
"node_modules"
|
||||||
|
],
|
||||||
|
"flags": [],
|
||||||
|
"linkedModules": [],
|
||||||
|
"topLevelPatterns": [
|
||||||
|
"@fortawesome/fontawesome-free@^6.7.2",
|
||||||
|
"bootstrap@^5.3.6"
|
||||||
|
],
|
||||||
|
"lockfileEntries": {
|
||||||
|
"@fortawesome/fontawesome-free@^6.7.2": "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-6.7.2.tgz#8249de9b7e22fcb3ceb5e66090c30a1d5492b81a",
|
||||||
|
"bootstrap@^5.3.6": "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.3.7.tgz#8640065036124d961d885d80b5945745e1154d90"
|
||||||
|
},
|
||||||
|
"files": [],
|
||||||
|
"artifacts": {}
|
||||||
|
}
|
165
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/LICENSE.txt
generated
vendored
Normal file
|
@ -0,0 +1,165 @@
|
||||||
|
Fonticons, Inc. (https://fontawesome.com)
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Font Awesome Free License
|
||||||
|
|
||||||
|
Font Awesome Free is free, open source, and GPL friendly. You can use it for
|
||||||
|
commercial projects, open source projects, or really almost whatever you want.
|
||||||
|
Full Font Awesome Free license: https://fontawesome.com/license/free.
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)
|
||||||
|
|
||||||
|
The Font Awesome Free download is licensed under a Creative Commons
|
||||||
|
Attribution 4.0 International License and applies to all icons packaged
|
||||||
|
as SVG and JS file types.
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Fonts: SIL OFL 1.1 License
|
||||||
|
|
||||||
|
In the Font Awesome Free download, the SIL OFL license applies to all icons
|
||||||
|
packaged as web and desktop font files.
|
||||||
|
|
||||||
|
Copyright (c) 2024 Fonticons, Inc. (https://fontawesome.com)
|
||||||
|
with Reserved Font Name: "Font Awesome".
|
||||||
|
|
||||||
|
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||||
|
This license is copied below, and is also available with a FAQ at:
|
||||||
|
http://scripts.sil.org/OFL
|
||||||
|
|
||||||
|
SIL OPEN FONT LICENSE
|
||||||
|
Version 1.1 - 26 February 2007
|
||||||
|
|
||||||
|
PREAMBLE
|
||||||
|
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||||
|
development of collaborative font projects, to support the font creation
|
||||||
|
efforts of academic and linguistic communities, and to provide a free and
|
||||||
|
open framework in which fonts may be shared and improved in partnership
|
||||||
|
with others.
|
||||||
|
|
||||||
|
The OFL allows the licensed fonts to be used, studied, modified and
|
||||||
|
redistributed freely as long as they are not sold by themselves. The
|
||||||
|
fonts, including any derivative works, can be bundled, embedded,
|
||||||
|
redistributed and/or sold with any software provided that any reserved
|
||||||
|
names are not used by derivative works. The fonts and derivatives,
|
||||||
|
however, cannot be released under any other type of license. The
|
||||||
|
requirement for fonts to remain under this license does not apply
|
||||||
|
to any document created using the fonts or their derivatives.
|
||||||
|
|
||||||
|
DEFINITIONS
|
||||||
|
"Font Software" refers to the set of files released by the Copyright
|
||||||
|
Holder(s) under this license and clearly marked as such. This may
|
||||||
|
include source files, build scripts and documentation.
|
||||||
|
|
||||||
|
"Reserved Font Name" refers to any names specified as such after the
|
||||||
|
copyright statement(s).
|
||||||
|
|
||||||
|
"Original Version" refers to the collection of Font Software components as
|
||||||
|
distributed by the Copyright Holder(s).
|
||||||
|
|
||||||
|
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||||
|
or substituting — in part or in whole — any of the components of the
|
||||||
|
Original Version, by changing formats or by porting the Font Software to a
|
||||||
|
new environment.
|
||||||
|
|
||||||
|
"Author" refers to any designer, engineer, programmer, technical
|
||||||
|
writer or other person who contributed to the Font Software.
|
||||||
|
|
||||||
|
PERMISSION & CONDITIONS
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||||
|
redistribute, and sell modified and unmodified copies of the Font
|
||||||
|
Software, subject to the following conditions:
|
||||||
|
|
||||||
|
1) Neither the Font Software nor any of its individual components,
|
||||||
|
in Original or Modified Versions, may be sold by itself.
|
||||||
|
|
||||||
|
2) Original or Modified Versions of the Font Software may be bundled,
|
||||||
|
redistributed and/or sold with any software, provided that each copy
|
||||||
|
contains the above copyright notice and this license. These can be
|
||||||
|
included either as stand-alone text files, human-readable headers or
|
||||||
|
in the appropriate machine-readable metadata fields within text or
|
||||||
|
binary files as long as those fields can be easily viewed by the user.
|
||||||
|
|
||||||
|
3) No Modified Version of the Font Software may use the Reserved Font
|
||||||
|
Name(s) unless explicit written permission is granted by the corresponding
|
||||||
|
Copyright Holder. This restriction only applies to the primary font name as
|
||||||
|
presented to the users.
|
||||||
|
|
||||||
|
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||||
|
Software shall not be used to promote, endorse or advertise any
|
||||||
|
Modified Version, except to acknowledge the contribution(s) of the
|
||||||
|
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||||
|
permission.
|
||||||
|
|
||||||
|
5) The Font Software, modified or unmodified, in part or in whole,
|
||||||
|
must be distributed entirely under this license, and must not be
|
||||||
|
distributed under any other license. The requirement for fonts to
|
||||||
|
remain under this license does not apply to any document created
|
||||||
|
using the Font Software.
|
||||||
|
|
||||||
|
TERMINATION
|
||||||
|
This license becomes null and void if any of the above conditions are
|
||||||
|
not met.
|
||||||
|
|
||||||
|
DISCLAIMER
|
||||||
|
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||||
|
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||||
|
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||||
|
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||||
|
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Code: MIT License (https://opensource.org/licenses/MIT)
|
||||||
|
|
||||||
|
In the Font Awesome Free download, the MIT license applies to all non-font and
|
||||||
|
non-icon files.
|
||||||
|
|
||||||
|
Copyright 2024 Fonticons, Inc.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Attribution
|
||||||
|
|
||||||
|
Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font
|
||||||
|
Awesome Free files already contain embedded comments with sufficient
|
||||||
|
attribution, so you shouldn't need to do anything additional when using these
|
||||||
|
files normally.
|
||||||
|
|
||||||
|
We've kept attribution comments terse, so we ask that you do not actively work
|
||||||
|
to remove them from files, especially code. They're a great way for folks to
|
||||||
|
learn about Font Awesome.
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Brand Icons
|
||||||
|
|
||||||
|
All brand icons are trademarks of their respective owners. The use of these
|
||||||
|
trademarks does not indicate endorsement of the trademark holder by Font
|
||||||
|
Awesome, nor vice versa. **Please do not use brand logos for any purpose except
|
||||||
|
to represent the company, product, or service to which they refer.**
|
38
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/README.md
generated
vendored
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
# @fortawesome/fontawesome-free - The Official Font Awesome 6 NPM package
|
||||||
|
|
||||||
|
> "I came here to chew bubblegum and install Font Awesome 6 - and I'm all out of bubblegum"
|
||||||
|
|
||||||
|
[](https://www.npmjs.com/package/@fortawesome/fontawesome-free)
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
```
|
||||||
|
$ npm i --save @fortawesome/fontawesome-free
|
||||||
|
```
|
||||||
|
|
||||||
|
Or
|
||||||
|
|
||||||
|
```
|
||||||
|
$ yarn add @fortawesome/fontawesome-free
|
||||||
|
```
|
||||||
|
|
||||||
|
## What's included?
|
||||||
|
|
||||||
|
**This package includes all the same files available through our Free and Pro CDN.**
|
||||||
|
|
||||||
|
* /js - All JavaScript files associated with Font Awesome 6 SVG with JS
|
||||||
|
* /css - All CSS using the classic Web Fonts with CSS implementation
|
||||||
|
* /sprites - SVG icons packaged in a convenient sprite
|
||||||
|
* /scss, /less - CSS Pre-processor files for Web Fonts with CSS
|
||||||
|
* /webfonts - Accompanying files for Web Fonts with CSS
|
||||||
|
* /svg - Individual icon files in SVG format
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
|
||||||
|
Get started [here](https://docs.fontawesome.com/web/setup/get-started). Continue your journey [here](https://docs.fontawesome.com/web/setup/packages).
|
||||||
|
|
||||||
|
Or go straight to the [API documentation](https://docs.fontawesome.com/apis/javascript/get-started).
|
||||||
|
|
||||||
|
## Issues and support
|
||||||
|
|
||||||
|
Start with [GitHub issues](https://github.com/FortAwesome/Font-Awesome/issues) and ping us on [Twitter](https://twitter.com/fontawesome) if you need to.
|
7913
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/css/all.css
generated
vendored
Normal file
9
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/css/all.min.css
generated
vendored
Normal file
1609
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/css/brands.css
generated
vendored
Normal file
6
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/css/brands.min.css
generated
vendored
Normal file
6243
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/css/fontawesome.css
generated
vendored
Normal file
9
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/css/fontawesome.min.css
generated
vendored
Normal file
19
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/css/regular.css
generated
vendored
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
/*!
|
||||||
|
* Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||||
|
* Copyright 2024 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
:root, :host {
|
||||||
|
--fa-style-family-classic: 'Font Awesome 6 Free';
|
||||||
|
--fa-font-regular: normal 400 1em/1 'Font Awesome 6 Free'; }
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 6 Free';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
font-display: block;
|
||||||
|
src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); }
|
||||||
|
|
||||||
|
.far,
|
||||||
|
.fa-regular {
|
||||||
|
font-weight: 400; }
|
6
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/css/regular.min.css
generated
vendored
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
/*!
|
||||||
|
* Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||||
|
* Copyright 2024 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-weight:400}
|
19
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/css/solid.css
generated
vendored
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
/*!
|
||||||
|
* Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||||
|
* Copyright 2024 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
:root, :host {
|
||||||
|
--fa-style-family-classic: 'Font Awesome 6 Free';
|
||||||
|
--fa-font-solid: normal 900 1em/1 'Font Awesome 6 Free'; }
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 6 Free';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 900;
|
||||||
|
font-display: block;
|
||||||
|
src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); }
|
||||||
|
|
||||||
|
.fas,
|
||||||
|
.fa-solid {
|
||||||
|
font-weight: 900; }
|
6
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/css/solid.min.css
generated
vendored
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
/*!
|
||||||
|
* Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||||
|
* Copyright 2024 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}
|
461
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/css/svg-with-js.css
generated
vendored
Normal file
|
@ -0,0 +1,461 @@
|
||||||
|
/*!
|
||||||
|
* Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||||
|
* Copyright 2024 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
:root, :host {
|
||||||
|
--fa-font-solid: normal 900 1em/1 'Font Awesome 6 Free';
|
||||||
|
--fa-font-regular: normal 400 1em/1 'Font Awesome 6 Free';
|
||||||
|
--fa-font-light: normal 300 1em/1 'Font Awesome 6 Pro';
|
||||||
|
--fa-font-thin: normal 100 1em/1 'Font Awesome 6 Pro';
|
||||||
|
--fa-font-duotone: normal 900 1em/1 'Font Awesome 6 Duotone';
|
||||||
|
--fa-font-duotone-regular: normal 400 1em/1 'Font Awesome 6 Duotone';
|
||||||
|
--fa-font-duotone-light: normal 300 1em/1 'Font Awesome 6 Duotone';
|
||||||
|
--fa-font-duotone-thin: normal 100 1em/1 'Font Awesome 6 Duotone';
|
||||||
|
--fa-font-brands: normal 400 1em/1 'Font Awesome 6 Brands';
|
||||||
|
--fa-font-sharp-solid: normal 900 1em/1 'Font Awesome 6 Sharp';
|
||||||
|
--fa-font-sharp-regular: normal 400 1em/1 'Font Awesome 6 Sharp';
|
||||||
|
--fa-font-sharp-light: normal 300 1em/1 'Font Awesome 6 Sharp';
|
||||||
|
--fa-font-sharp-thin: normal 100 1em/1 'Font Awesome 6 Sharp';
|
||||||
|
--fa-font-sharp-duotone-solid: normal 900 1em/1 'Font Awesome 6 Sharp Duotone';
|
||||||
|
--fa-font-sharp-duotone-regular: normal 400 1em/1 'Font Awesome 6 Sharp Duotone';
|
||||||
|
--fa-font-sharp-duotone-light: normal 300 1em/1 'Font Awesome 6 Sharp Duotone';
|
||||||
|
--fa-font-sharp-duotone-thin: normal 100 1em/1 'Font Awesome 6 Sharp Duotone'; }
|
||||||
|
|
||||||
|
svg.svg-inline--fa:not(:root), svg.svg-inline--fa:not(:host) {
|
||||||
|
overflow: visible;
|
||||||
|
box-sizing: content-box; }
|
||||||
|
|
||||||
|
.svg-inline--fa {
|
||||||
|
display: var(--fa-display, inline-block);
|
||||||
|
height: 1em;
|
||||||
|
overflow: visible;
|
||||||
|
vertical-align: -.125em; }
|
||||||
|
.svg-inline--fa.fa-2xs {
|
||||||
|
vertical-align: 0.1em; }
|
||||||
|
.svg-inline--fa.fa-xs {
|
||||||
|
vertical-align: 0em; }
|
||||||
|
.svg-inline--fa.fa-sm {
|
||||||
|
vertical-align: -0.07143em; }
|
||||||
|
.svg-inline--fa.fa-lg {
|
||||||
|
vertical-align: -0.2em; }
|
||||||
|
.svg-inline--fa.fa-xl {
|
||||||
|
vertical-align: -0.25em; }
|
||||||
|
.svg-inline--fa.fa-2xl {
|
||||||
|
vertical-align: -0.3125em; }
|
||||||
|
.svg-inline--fa.fa-pull-left {
|
||||||
|
margin-right: var(--fa-pull-margin, 0.3em);
|
||||||
|
width: auto; }
|
||||||
|
.svg-inline--fa.fa-pull-right {
|
||||||
|
margin-left: var(--fa-pull-margin, 0.3em);
|
||||||
|
width: auto; }
|
||||||
|
.svg-inline--fa.fa-li {
|
||||||
|
width: var(--fa-li-width, 2em);
|
||||||
|
top: 0.25em; }
|
||||||
|
.svg-inline--fa.fa-fw {
|
||||||
|
width: var(--fa-fw-width, 1.25em); }
|
||||||
|
|
||||||
|
.fa-layers svg.svg-inline--fa {
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
margin: auto;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 0; }
|
||||||
|
|
||||||
|
.fa-layers-counter, .fa-layers-text {
|
||||||
|
display: inline-block;
|
||||||
|
position: absolute;
|
||||||
|
text-align: center; }
|
||||||
|
|
||||||
|
.fa-layers {
|
||||||
|
display: inline-block;
|
||||||
|
height: 1em;
|
||||||
|
position: relative;
|
||||||
|
text-align: center;
|
||||||
|
vertical-align: -.125em;
|
||||||
|
width: 1em; }
|
||||||
|
.fa-layers svg.svg-inline--fa {
|
||||||
|
transform-origin: center center; }
|
||||||
|
|
||||||
|
.fa-layers-text {
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
transform-origin: center center; }
|
||||||
|
|
||||||
|
.fa-layers-counter {
|
||||||
|
background-color: var(--fa-counter-background-color, #ff253a);
|
||||||
|
border-radius: var(--fa-counter-border-radius, 1em);
|
||||||
|
box-sizing: border-box;
|
||||||
|
color: var(--fa-inverse, #fff);
|
||||||
|
line-height: var(--fa-counter-line-height, 1);
|
||||||
|
max-width: var(--fa-counter-max-width, 5em);
|
||||||
|
min-width: var(--fa-counter-min-width, 1.5em);
|
||||||
|
overflow: hidden;
|
||||||
|
padding: var(--fa-counter-padding, 0.25em 0.5em);
|
||||||
|
right: var(--fa-right, 0);
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
top: var(--fa-top, 0);
|
||||||
|
transform: scale(var(--fa-counter-scale, 0.25));
|
||||||
|
transform-origin: top right; }
|
||||||
|
|
||||||
|
.fa-layers-bottom-right {
|
||||||
|
bottom: var(--fa-bottom, 0);
|
||||||
|
right: var(--fa-right, 0);
|
||||||
|
top: auto;
|
||||||
|
transform: scale(var(--fa-layers-scale, 0.25));
|
||||||
|
transform-origin: bottom right; }
|
||||||
|
|
||||||
|
.fa-layers-bottom-left {
|
||||||
|
bottom: var(--fa-bottom, 0);
|
||||||
|
left: var(--fa-left, 0);
|
||||||
|
right: auto;
|
||||||
|
top: auto;
|
||||||
|
transform: scale(var(--fa-layers-scale, 0.25));
|
||||||
|
transform-origin: bottom left; }
|
||||||
|
|
||||||
|
.fa-layers-top-right {
|
||||||
|
top: var(--fa-top, 0);
|
||||||
|
right: var(--fa-right, 0);
|
||||||
|
transform: scale(var(--fa-layers-scale, 0.25));
|
||||||
|
transform-origin: top right; }
|
||||||
|
|
||||||
|
.fa-layers-top-left {
|
||||||
|
left: var(--fa-left, 0);
|
||||||
|
right: auto;
|
||||||
|
top: var(--fa-top, 0);
|
||||||
|
transform: scale(var(--fa-layers-scale, 0.25));
|
||||||
|
transform-origin: top left; }
|
||||||
|
|
||||||
|
.fa-1x {
|
||||||
|
font-size: 1em; }
|
||||||
|
|
||||||
|
.fa-2x {
|
||||||
|
font-size: 2em; }
|
||||||
|
|
||||||
|
.fa-3x {
|
||||||
|
font-size: 3em; }
|
||||||
|
|
||||||
|
.fa-4x {
|
||||||
|
font-size: 4em; }
|
||||||
|
|
||||||
|
.fa-5x {
|
||||||
|
font-size: 5em; }
|
||||||
|
|
||||||
|
.fa-6x {
|
||||||
|
font-size: 6em; }
|
||||||
|
|
||||||
|
.fa-7x {
|
||||||
|
font-size: 7em; }
|
||||||
|
|
||||||
|
.fa-8x {
|
||||||
|
font-size: 8em; }
|
||||||
|
|
||||||
|
.fa-9x {
|
||||||
|
font-size: 9em; }
|
||||||
|
|
||||||
|
.fa-10x {
|
||||||
|
font-size: 10em; }
|
||||||
|
|
||||||
|
.fa-2xs {
|
||||||
|
font-size: 0.625em;
|
||||||
|
line-height: 0.1em;
|
||||||
|
vertical-align: 0.225em; }
|
||||||
|
|
||||||
|
.fa-xs {
|
||||||
|
font-size: 0.75em;
|
||||||
|
line-height: 0.08333em;
|
||||||
|
vertical-align: 0.125em; }
|
||||||
|
|
||||||
|
.fa-sm {
|
||||||
|
font-size: 0.875em;
|
||||||
|
line-height: 0.07143em;
|
||||||
|
vertical-align: 0.05357em; }
|
||||||
|
|
||||||
|
.fa-lg {
|
||||||
|
font-size: 1.25em;
|
||||||
|
line-height: 0.05em;
|
||||||
|
vertical-align: -0.075em; }
|
||||||
|
|
||||||
|
.fa-xl {
|
||||||
|
font-size: 1.5em;
|
||||||
|
line-height: 0.04167em;
|
||||||
|
vertical-align: -0.125em; }
|
||||||
|
|
||||||
|
.fa-2xl {
|
||||||
|
font-size: 2em;
|
||||||
|
line-height: 0.03125em;
|
||||||
|
vertical-align: -0.1875em; }
|
||||||
|
|
||||||
|
.fa-fw {
|
||||||
|
text-align: center;
|
||||||
|
width: 1.25em; }
|
||||||
|
|
||||||
|
.fa-ul {
|
||||||
|
list-style-type: none;
|
||||||
|
margin-left: var(--fa-li-margin, 2.5em);
|
||||||
|
padding-left: 0; }
|
||||||
|
.fa-ul > li {
|
||||||
|
position: relative; }
|
||||||
|
|
||||||
|
.fa-li {
|
||||||
|
left: calc(-1 * var(--fa-li-width, 2em));
|
||||||
|
position: absolute;
|
||||||
|
text-align: center;
|
||||||
|
width: var(--fa-li-width, 2em);
|
||||||
|
line-height: inherit; }
|
||||||
|
|
||||||
|
.fa-border {
|
||||||
|
border-color: var(--fa-border-color, #eee);
|
||||||
|
border-radius: var(--fa-border-radius, 0.1em);
|
||||||
|
border-style: var(--fa-border-style, solid);
|
||||||
|
border-width: var(--fa-border-width, 0.08em);
|
||||||
|
padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); }
|
||||||
|
|
||||||
|
.fa-pull-left {
|
||||||
|
float: left;
|
||||||
|
margin-right: var(--fa-pull-margin, 0.3em); }
|
||||||
|
|
||||||
|
.fa-pull-right {
|
||||||
|
float: right;
|
||||||
|
margin-left: var(--fa-pull-margin, 0.3em); }
|
||||||
|
|
||||||
|
.fa-beat {
|
||||||
|
animation-name: fa-beat;
|
||||||
|
animation-delay: var(--fa-animation-delay, 0s);
|
||||||
|
animation-direction: var(--fa-animation-direction, normal);
|
||||||
|
animation-duration: var(--fa-animation-duration, 1s);
|
||||||
|
animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||||
|
animation-timing-function: var(--fa-animation-timing, ease-in-out); }
|
||||||
|
|
||||||
|
.fa-bounce {
|
||||||
|
animation-name: fa-bounce;
|
||||||
|
animation-delay: var(--fa-animation-delay, 0s);
|
||||||
|
animation-direction: var(--fa-animation-direction, normal);
|
||||||
|
animation-duration: var(--fa-animation-duration, 1s);
|
||||||
|
animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||||
|
animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); }
|
||||||
|
|
||||||
|
.fa-fade {
|
||||||
|
animation-name: fa-fade;
|
||||||
|
animation-delay: var(--fa-animation-delay, 0s);
|
||||||
|
animation-direction: var(--fa-animation-direction, normal);
|
||||||
|
animation-duration: var(--fa-animation-duration, 1s);
|
||||||
|
animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||||
|
animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); }
|
||||||
|
|
||||||
|
.fa-beat-fade {
|
||||||
|
animation-name: fa-beat-fade;
|
||||||
|
animation-delay: var(--fa-animation-delay, 0s);
|
||||||
|
animation-direction: var(--fa-animation-direction, normal);
|
||||||
|
animation-duration: var(--fa-animation-duration, 1s);
|
||||||
|
animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||||
|
animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); }
|
||||||
|
|
||||||
|
.fa-flip {
|
||||||
|
animation-name: fa-flip;
|
||||||
|
animation-delay: var(--fa-animation-delay, 0s);
|
||||||
|
animation-direction: var(--fa-animation-direction, normal);
|
||||||
|
animation-duration: var(--fa-animation-duration, 1s);
|
||||||
|
animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||||
|
animation-timing-function: var(--fa-animation-timing, ease-in-out); }
|
||||||
|
|
||||||
|
.fa-shake {
|
||||||
|
animation-name: fa-shake;
|
||||||
|
animation-delay: var(--fa-animation-delay, 0s);
|
||||||
|
animation-direction: var(--fa-animation-direction, normal);
|
||||||
|
animation-duration: var(--fa-animation-duration, 1s);
|
||||||
|
animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||||
|
animation-timing-function: var(--fa-animation-timing, linear); }
|
||||||
|
|
||||||
|
.fa-spin {
|
||||||
|
animation-name: fa-spin;
|
||||||
|
animation-delay: var(--fa-animation-delay, 0s);
|
||||||
|
animation-direction: var(--fa-animation-direction, normal);
|
||||||
|
animation-duration: var(--fa-animation-duration, 2s);
|
||||||
|
animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||||
|
animation-timing-function: var(--fa-animation-timing, linear); }
|
||||||
|
|
||||||
|
.fa-spin-reverse {
|
||||||
|
--fa-animation-direction: reverse; }
|
||||||
|
|
||||||
|
.fa-pulse,
|
||||||
|
.fa-spin-pulse {
|
||||||
|
animation-name: fa-spin;
|
||||||
|
animation-direction: var(--fa-animation-direction, normal);
|
||||||
|
animation-duration: var(--fa-animation-duration, 1s);
|
||||||
|
animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||||
|
animation-timing-function: var(--fa-animation-timing, steps(8)); }
|
||||||
|
|
||||||
|
@media (prefers-reduced-motion: reduce) {
|
||||||
|
.fa-beat,
|
||||||
|
.fa-bounce,
|
||||||
|
.fa-fade,
|
||||||
|
.fa-beat-fade,
|
||||||
|
.fa-flip,
|
||||||
|
.fa-pulse,
|
||||||
|
.fa-shake,
|
||||||
|
.fa-spin,
|
||||||
|
.fa-spin-pulse {
|
||||||
|
animation-delay: -1ms;
|
||||||
|
animation-duration: 1ms;
|
||||||
|
animation-iteration-count: 1;
|
||||||
|
transition-delay: 0s;
|
||||||
|
transition-duration: 0s; } }
|
||||||
|
|
||||||
|
@keyframes fa-beat {
|
||||||
|
0%, 90% {
|
||||||
|
transform: scale(1); }
|
||||||
|
45% {
|
||||||
|
transform: scale(var(--fa-beat-scale, 1.25)); } }
|
||||||
|
|
||||||
|
@keyframes fa-bounce {
|
||||||
|
0% {
|
||||||
|
transform: scale(1, 1) translateY(0); }
|
||||||
|
10% {
|
||||||
|
transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); }
|
||||||
|
30% {
|
||||||
|
transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); }
|
||||||
|
50% {
|
||||||
|
transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); }
|
||||||
|
57% {
|
||||||
|
transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); }
|
||||||
|
64% {
|
||||||
|
transform: scale(1, 1) translateY(0); }
|
||||||
|
100% {
|
||||||
|
transform: scale(1, 1) translateY(0); } }
|
||||||
|
|
||||||
|
@keyframes fa-fade {
|
||||||
|
50% {
|
||||||
|
opacity: var(--fa-fade-opacity, 0.4); } }
|
||||||
|
|
||||||
|
@keyframes fa-beat-fade {
|
||||||
|
0%, 100% {
|
||||||
|
opacity: var(--fa-beat-fade-opacity, 0.4);
|
||||||
|
transform: scale(1); }
|
||||||
|
50% {
|
||||||
|
opacity: 1;
|
||||||
|
transform: scale(var(--fa-beat-fade-scale, 1.125)); } }
|
||||||
|
|
||||||
|
@keyframes fa-flip {
|
||||||
|
50% {
|
||||||
|
transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } }
|
||||||
|
|
||||||
|
@keyframes fa-shake {
|
||||||
|
0% {
|
||||||
|
transform: rotate(-15deg); }
|
||||||
|
4% {
|
||||||
|
transform: rotate(15deg); }
|
||||||
|
8%, 24% {
|
||||||
|
transform: rotate(-18deg); }
|
||||||
|
12%, 28% {
|
||||||
|
transform: rotate(18deg); }
|
||||||
|
16% {
|
||||||
|
transform: rotate(-22deg); }
|
||||||
|
20% {
|
||||||
|
transform: rotate(22deg); }
|
||||||
|
32% {
|
||||||
|
transform: rotate(-12deg); }
|
||||||
|
36% {
|
||||||
|
transform: rotate(12deg); }
|
||||||
|
40%, 100% {
|
||||||
|
transform: rotate(0deg); } }
|
||||||
|
|
||||||
|
@keyframes fa-spin {
|
||||||
|
0% {
|
||||||
|
transform: rotate(0deg); }
|
||||||
|
100% {
|
||||||
|
transform: rotate(360deg); } }
|
||||||
|
|
||||||
|
.fa-rotate-90 {
|
||||||
|
transform: rotate(90deg); }
|
||||||
|
|
||||||
|
.fa-rotate-180 {
|
||||||
|
transform: rotate(180deg); }
|
||||||
|
|
||||||
|
.fa-rotate-270 {
|
||||||
|
transform: rotate(270deg); }
|
||||||
|
|
||||||
|
.fa-flip-horizontal {
|
||||||
|
transform: scale(-1, 1); }
|
||||||
|
|
||||||
|
.fa-flip-vertical {
|
||||||
|
transform: scale(1, -1); }
|
||||||
|
|
||||||
|
.fa-flip-both,
|
||||||
|
.fa-flip-horizontal.fa-flip-vertical {
|
||||||
|
transform: scale(-1, -1); }
|
||||||
|
|
||||||
|
.fa-rotate-by {
|
||||||
|
transform: rotate(var(--fa-rotate-angle, 0)); }
|
||||||
|
|
||||||
|
.fa-stack {
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: middle;
|
||||||
|
height: 2em;
|
||||||
|
position: relative;
|
||||||
|
width: 2.5em; }
|
||||||
|
|
||||||
|
.fa-stack-1x,
|
||||||
|
.fa-stack-2x {
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
margin: auto;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
z-index: var(--fa-stack-z-index, auto); }
|
||||||
|
|
||||||
|
.svg-inline--fa.fa-stack-1x {
|
||||||
|
height: 1em;
|
||||||
|
width: 1.25em; }
|
||||||
|
|
||||||
|
.svg-inline--fa.fa-stack-2x {
|
||||||
|
height: 2em;
|
||||||
|
width: 2.5em; }
|
||||||
|
|
||||||
|
.fa-inverse {
|
||||||
|
color: var(--fa-inverse, #fff); }
|
||||||
|
|
||||||
|
.sr-only,
|
||||||
|
.fa-sr-only {
|
||||||
|
position: absolute;
|
||||||
|
width: 1px;
|
||||||
|
height: 1px;
|
||||||
|
padding: 0;
|
||||||
|
margin: -1px;
|
||||||
|
overflow: hidden;
|
||||||
|
clip: rect(0, 0, 0, 0);
|
||||||
|
white-space: nowrap;
|
||||||
|
border-width: 0; }
|
||||||
|
|
||||||
|
.sr-only-focusable:not(:focus),
|
||||||
|
.fa-sr-only-focusable:not(:focus) {
|
||||||
|
position: absolute;
|
||||||
|
width: 1px;
|
||||||
|
height: 1px;
|
||||||
|
padding: 0;
|
||||||
|
margin: -1px;
|
||||||
|
overflow: hidden;
|
||||||
|
clip: rect(0, 0, 0, 0);
|
||||||
|
white-space: nowrap;
|
||||||
|
border-width: 0; }
|
||||||
|
|
||||||
|
.svg-inline--fa .fa-primary {
|
||||||
|
fill: var(--fa-primary-color, currentColor);
|
||||||
|
opacity: var(--fa-primary-opacity, 1); }
|
||||||
|
|
||||||
|
.svg-inline--fa .fa-secondary {
|
||||||
|
fill: var(--fa-secondary-color, currentColor);
|
||||||
|
opacity: var(--fa-secondary-opacity, 0.4); }
|
||||||
|
|
||||||
|
.svg-inline--fa.fa-swap-opacity .fa-primary {
|
||||||
|
opacity: var(--fa-secondary-opacity, 0.4); }
|
||||||
|
|
||||||
|
.svg-inline--fa.fa-swap-opacity .fa-secondary {
|
||||||
|
opacity: var(--fa-primary-opacity, 1); }
|
||||||
|
|
||||||
|
.svg-inline--fa mask .fa-primary,
|
||||||
|
.svg-inline--fa mask .fa-secondary {
|
||||||
|
fill: black; }
|
6
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/css/svg-with-js.min.css
generated
vendored
Normal file
26
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/css/v4-font-face.css
generated
vendored
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
/*!
|
||||||
|
* Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||||
|
* Copyright 2024 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
@font-face {
|
||||||
|
font-family: 'FontAwesome';
|
||||||
|
font-display: block;
|
||||||
|
src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); }
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'FontAwesome';
|
||||||
|
font-display: block;
|
||||||
|
src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); }
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'FontAwesome';
|
||||||
|
font-display: block;
|
||||||
|
src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype");
|
||||||
|
unicode-range: U+F003,U+F006,U+F014,U+F016-F017,U+F01A-F01B,U+F01D,U+F022,U+F03E,U+F044,U+F046,U+F05C-F05D,U+F06E,U+F070,U+F087-F088,U+F08A,U+F094,U+F096-F097,U+F09D,U+F0A0,U+F0A2,U+F0A4-F0A7,U+F0C5,U+F0C7,U+F0E5-F0E6,U+F0EB,U+F0F6-F0F8,U+F10C,U+F114-F115,U+F118-F11A,U+F11C-F11D,U+F133,U+F147,U+F14E,U+F150-F152,U+F185-F186,U+F18E,U+F190-F192,U+F196,U+F1C1-F1C9,U+F1D9,U+F1DB,U+F1E3,U+F1EA,U+F1F7,U+F1F9,U+F20A,U+F247-F248,U+F24A,U+F24D,U+F255-F25B,U+F25D,U+F271-F274,U+F278,U+F27B,U+F28C,U+F28E,U+F29C,U+F2B5,U+F2B7,U+F2BA,U+F2BC,U+F2BE,U+F2C0-F2C1,U+F2C3,U+F2D0,U+F2D2,U+F2D4,U+F2DC; }
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'FontAwesome';
|
||||||
|
font-display: block;
|
||||||
|
src: url("../webfonts/fa-v4compatibility.woff2") format("woff2"), url("../webfonts/fa-v4compatibility.ttf") format("truetype");
|
||||||
|
unicode-range: U+F041,U+F047,U+F065-F066,U+F07D-F07E,U+F080,U+F08B,U+F08E,U+F090,U+F09A,U+F0AC,U+F0AE,U+F0B2,U+F0D0,U+F0D6,U+F0E4,U+F0EC,U+F10A-F10B,U+F123,U+F13E,U+F148-F149,U+F14C,U+F156,U+F15E,U+F160-F161,U+F163,U+F175-F178,U+F195,U+F1F8,U+F219,U+F27A; }
|
6
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/css/v4-font-face.min.css
generated
vendored
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
/*!
|
||||||
|
* Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||||
|
* Copyright 2024 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a}
|
2194
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/css/v4-shims.css
generated
vendored
Normal file
6
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/css/v4-shims.min.css
generated
vendored
Normal file
22
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/css/v5-font-face.css
generated
vendored
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
/*!
|
||||||
|
* Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||||
|
* Copyright 2024 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 5 Brands';
|
||||||
|
font-display: block;
|
||||||
|
font-weight: 400;
|
||||||
|
src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); }
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 5 Free';
|
||||||
|
font-display: block;
|
||||||
|
font-weight: 900;
|
||||||
|
src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); }
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 5 Free';
|
||||||
|
font-display: block;
|
||||||
|
font-weight: 400;
|
||||||
|
src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); }
|
6
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/css/v5-font-face.min.css
generated
vendored
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
/*!
|
||||||
|
* Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||||
|
* Copyright 2024 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
@font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}
|
6200
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/js/all.js
generated
vendored
Normal file
6
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/js/all.min.js
generated
vendored
Normal file
862
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/js/brands.js
generated
vendored
Normal file
6
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/js/brands.min.js
generated
vendored
Normal file
1108
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/js/conflict-detection.js
generated
vendored
Normal file
6
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/js/conflict-detection.min.js
generated
vendored
Normal file
3054
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/js/fontawesome.js
generated
vendored
Normal file
6
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/js/fontawesome.min.js
generated
vendored
Normal file
530
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/js/regular.js
generated
vendored
Normal file
6
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/js/regular.min.js
generated
vendored
Normal file
1769
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/js/solid.js
generated
vendored
Normal file
6
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/js/solid.min.js
generated
vendored
Normal file
338
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/js/v4-shims.js
generated
vendored
Normal file
6
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/js/v4-shims.min.js
generated
vendored
Normal file
152
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/less/_animated.less
generated
vendored
Normal file
|
@ -0,0 +1,152 @@
|
||||||
|
// animating icons
|
||||||
|
// --------------------------
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-beat {
|
||||||
|
animation-name: ~'@{fa-css-prefix}-beat';
|
||||||
|
animation-delay: ~'var(--@{fa-css-prefix}-animation-delay, 0s)';
|
||||||
|
animation-direction: ~'var(--@{fa-css-prefix}-animation-direction, normal)';
|
||||||
|
animation-duration: ~'var(--@{fa-css-prefix}-animation-duration, 1s)';
|
||||||
|
animation-iteration-count: ~'var(--@{fa-css-prefix}-animation-iteration-count, infinite)';
|
||||||
|
animation-timing-function: ~'var(--@{fa-css-prefix}-animation-timing, ease-in-out)';
|
||||||
|
}
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-bounce {
|
||||||
|
animation-name: ~'@{fa-css-prefix}-bounce';
|
||||||
|
animation-delay: ~'var(--@{fa-css-prefix}-animation-delay, 0s)';
|
||||||
|
animation-direction: ~'var(--@{fa-css-prefix}-animation-direction, normal)';
|
||||||
|
animation-duration: ~'var(--@{fa-css-prefix}-animation-duration, 1s)';
|
||||||
|
animation-iteration-count: ~'var(--@{fa-css-prefix}-animation-iteration-count, infinite)';
|
||||||
|
animation-timing-function: ~'var(--@{fa-css-prefix}-animation-timing, cubic-bezier(0.280, 0.840, 0.420, 1))';
|
||||||
|
}
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-fade {
|
||||||
|
animation-name: ~'@{fa-css-prefix}-fade';
|
||||||
|
animation-delay: ~'var(--@{fa-css-prefix}-animation-delay, 0s)';
|
||||||
|
animation-direction: ~'var(--@{fa-css-prefix}-animation-direction, normal)';
|
||||||
|
animation-duration: ~'var(--@{fa-css-prefix}-animation-duration, 1s)';
|
||||||
|
animation-iteration-count: ~'var(--@{fa-css-prefix}-animation-iteration-count, infinite)';
|
||||||
|
animation-timing-function: ~'var(--@{fa-css-prefix}-animation-timing, cubic-bezier(.4,0,.6,1))';
|
||||||
|
}
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-beat-fade {
|
||||||
|
animation-name: ~'@{fa-css-prefix}-beat-fade';
|
||||||
|
animation-delay: ~'var(--@{fa-css-prefix}-animation-delay, 0s)';
|
||||||
|
animation-direction: ~'var(--@{fa-css-prefix}-animation-direction, normal)';
|
||||||
|
animation-duration: ~'var(--@{fa-css-prefix}-animation-duration, 1s)';
|
||||||
|
animation-iteration-count: ~'var(--@{fa-css-prefix}-animation-iteration-count, infinite)';
|
||||||
|
animation-timing-function: ~'var(--@{fa-css-prefix}-animation-timing, cubic-bezier(.4,0,.6,1))';
|
||||||
|
}
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-flip {
|
||||||
|
animation-name: ~'@{fa-css-prefix}-flip';
|
||||||
|
animation-delay: ~'var(--@{fa-css-prefix}-animation-delay, 0s)';
|
||||||
|
animation-direction: ~'var(--@{fa-css-prefix}-animation-direction, normal)';
|
||||||
|
animation-duration: ~'var(--@{fa-css-prefix}-animation-duration, 1s)';
|
||||||
|
animation-iteration-count: ~'var(--@{fa-css-prefix}-animation-iteration-count, infinite)';
|
||||||
|
animation-timing-function: ~'var(--@{fa-css-prefix}-animation-timing, ease-in-out)';
|
||||||
|
}
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-shake {
|
||||||
|
animation-name: ~'@{fa-css-prefix}-shake';
|
||||||
|
animation-delay: ~'var(--@{fa-css-prefix}-animation-delay, 0s)';
|
||||||
|
animation-direction: ~'var(--@{fa-css-prefix}-animation-direction, normal)';
|
||||||
|
animation-duration: ~'var(--@{fa-css-prefix}-animation-duration, 1s)';
|
||||||
|
animation-iteration-count: ~'var(--@{fa-css-prefix}-animation-iteration-count, infinite)';
|
||||||
|
animation-timing-function: ~'var(--@{fa-css-prefix}-animation-timing, linear)';
|
||||||
|
}
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-spin {
|
||||||
|
animation-name: ~'@{fa-css-prefix}-spin';
|
||||||
|
animation-delay: ~'var(--@{fa-css-prefix}-animation-delay, 0s)';
|
||||||
|
animation-direction: ~'var(--@{fa-css-prefix}-animation-direction, normal)';
|
||||||
|
animation-duration: ~'var(--@{fa-css-prefix}-animation-duration, 2s)';
|
||||||
|
animation-iteration-count: ~'var(--@{fa-css-prefix}-animation-iteration-count, infinite)';
|
||||||
|
animation-timing-function: ~'var(--@{fa-css-prefix}-animation-timing, linear)';
|
||||||
|
}
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-spin-reverse {
|
||||||
|
--@{fa-css-prefix}-animation-direction: reverse;
|
||||||
|
}
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-pulse,
|
||||||
|
.@{fa-css-prefix}-spin-pulse {
|
||||||
|
animation-name: ~'@{fa-css-prefix}-spin';
|
||||||
|
animation-direction: ~'var(--@{fa-css-prefix}-animation-direction, normal)';
|
||||||
|
animation-duration: ~'var(--@{fa-css-prefix}-animation-duration, 1s)';
|
||||||
|
animation-iteration-count: ~'var(--@{fa-css-prefix}-animation-iteration-count, infinite)';
|
||||||
|
animation-timing-function: ~'var(--@{fa-css-prefix}-animation-timing, steps(8));';
|
||||||
|
}
|
||||||
|
|
||||||
|
// if agent or operating system prefers reduced motion, disable animations
|
||||||
|
// see: https://www.smashingmagazine.com/2020/09/design-reduced-motion-sensitivities/
|
||||||
|
// see: https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion
|
||||||
|
@media (prefers-reduced-motion: reduce) {
|
||||||
|
.@{fa-css-prefix}-beat,
|
||||||
|
.@{fa-css-prefix}-bounce,
|
||||||
|
.@{fa-css-prefix}-fade,
|
||||||
|
.@{fa-css-prefix}-beat-fade,
|
||||||
|
.@{fa-css-prefix}-flip,
|
||||||
|
.@{fa-css-prefix}-pulse,
|
||||||
|
.@{fa-css-prefix}-shake,
|
||||||
|
.@{fa-css-prefix}-spin,
|
||||||
|
.@{fa-css-prefix}-spin-pulse {
|
||||||
|
animation-delay: -1ms;
|
||||||
|
animation-duration: 1ms;
|
||||||
|
animation-iteration-count: 1;
|
||||||
|
transition-delay: 0s;
|
||||||
|
transition-duration: 0s;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes ~'@{fa-css-prefix}-beat' {
|
||||||
|
0%, 90% { transform: scale(1); }
|
||||||
|
45% { transform: ~'scale(var(--@{fa-css-prefix}-beat-scale, 1.25))'; }
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes ~'@{fa-css-prefix}-bounce' {
|
||||||
|
0% { transform: scale(1,1) translateY(0); }
|
||||||
|
10% { transform: ~'scale(var(--@{fa-css-prefix}-bounce-start-scale-x, 1.1),var(--@{fa-css-prefix}-bounce-start-scale-y, 0.9))' translateY(0); }
|
||||||
|
30% { transform: ~'scale(var(--@{fa-css-prefix}-bounce-jump-scale-x, 0.9),var(--@{fa-css-prefix}-bounce-jump-scale-y, 1.1))' ~'translateY(var(--@{fa-css-prefix}-bounce-height, -0.5em))'; }
|
||||||
|
50% { transform: ~'scale(var(--@{fa-css-prefix}-bounce-land-scale-x, 1.05),var(--@{fa-css-prefix}-bounce-land-scale-y, 0.95))' translateY(0); }
|
||||||
|
57% { transform: ~'scale(1,1) translateY(var(--@{fa-css-prefix}-bounce-rebound, -0.125em))'; }
|
||||||
|
64% { transform: scale(1,1) translateY(0); }
|
||||||
|
100% { transform: scale(1,1) translateY(0); }
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes ~'@{fa-css-prefix}-fade' {
|
||||||
|
50% { opacity: ~'var(--@{fa-css-prefix}-fade-opacity, 0.4)'; }
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes ~'@{fa-css-prefix}-beat-fade' {
|
||||||
|
0%, 100% {
|
||||||
|
opacity: ~'var(--@{fa-css-prefix}-beat-fade-opacity, 0.4)';
|
||||||
|
transform: scale(1);
|
||||||
|
}
|
||||||
|
50% {
|
||||||
|
opacity: 1;
|
||||||
|
transform: ~'scale(var(--@{fa-css-prefix}-beat-fade-scale, 1.125))';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes ~'@{fa-css-prefix}-flip' {
|
||||||
|
50% {
|
||||||
|
transform: ~'rotate3d(var(--@{fa-css-prefix}-flip-x, 0), var(--@{fa-css-prefix}-flip-y, 1), var(--@{fa-css-prefix}-flip-z, 0), var(--@{fa-css-prefix}-flip-angle, -180deg))';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes ~'@{fa-css-prefix}-shake' {
|
||||||
|
0% { transform: rotate(-15deg); }
|
||||||
|
4% { transform: rotate(15deg); }
|
||||||
|
8%, 24% { transform: rotate(-18deg); }
|
||||||
|
12%, 28% { transform: rotate(18deg); }
|
||||||
|
16% { transform: rotate(-22deg); }
|
||||||
|
20% { transform: rotate(22deg); }
|
||||||
|
32% { transform: rotate(-12deg); }
|
||||||
|
36% { transform: rotate(12deg); }
|
||||||
|
40%, 100% { transform: rotate(0deg); }
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes ~'@{fa-css-prefix}-spin' {
|
||||||
|
0% { transform: rotate(0deg); }
|
||||||
|
100% { transform: rotate(360deg); }
|
||||||
|
}
|
20
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/less/_bordered-pulled.less
generated
vendored
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
// bordered + pulled icons
|
||||||
|
// -------------------------
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-border {
|
||||||
|
border-color: ~'var(--@{fa-css-prefix}-border-color, @{fa-border-color})';
|
||||||
|
border-radius: ~'var(--@{fa-css-prefix}-border-radius, @{fa-border-radius})';
|
||||||
|
border-style: ~'var(--@{fa-css-prefix}-border-style, @{fa-border-style})';
|
||||||
|
border-width: ~'var(--@{fa-css-prefix}-border-width, @{fa-border-width})';
|
||||||
|
padding: ~'var(--@{fa-css-prefix}-border-padding, @{fa-border-padding})';
|
||||||
|
}
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-pull-left {
|
||||||
|
float: left;
|
||||||
|
margin-right: ~'var(--@{fa-css-prefix}-pull-margin, @{fa-pull-margin})';
|
||||||
|
}
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-pull-right {
|
||||||
|
float: right;
|
||||||
|
margin-left: ~'var(--@{fa-css-prefix}-pull-margin, @{fa-pull-margin})';
|
||||||
|
}
|
48
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/less/_core.less
generated
vendored
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
// base icon class definition
|
||||||
|
// -------------------------
|
||||||
|
|
||||||
|
.@{fa-css-prefix} {
|
||||||
|
font-family: ~"var(--@{fa-css-prefix}-style-family, '@{fa-style-family}')";
|
||||||
|
font-weight: ~'var(--@{fa-css-prefix}-style, @{fa-style})';
|
||||||
|
}
|
||||||
|
|
||||||
|
.fas,
|
||||||
|
.far,
|
||||||
|
.fab,
|
||||||
|
.@{fa-css-prefix}-solid,
|
||||||
|
.@{fa-css-prefix}-regular,
|
||||||
|
.@{fa-css-prefix}-brands,
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-sharp-solid,
|
||||||
|
.@{fa-css-prefix}-classic,
|
||||||
|
.@{fa-css-prefix} {
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
display: ~'var(--@{fa-css-prefix}-display, @{fa-display})';
|
||||||
|
font-style: normal;
|
||||||
|
font-variant: normal;
|
||||||
|
line-height: 1;
|
||||||
|
text-rendering: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fas::before,
|
||||||
|
.far::before,
|
||||||
|
.fab::before,
|
||||||
|
.@{fa-css-prefix}-solid::before,
|
||||||
|
.@{fa-css-prefix}-regular::before,
|
||||||
|
.@{fa-css-prefix}-brands::before,
|
||||||
|
.@{fa-css-prefix}::before {
|
||||||
|
content: ~'var(@{fa-icon-property})';
|
||||||
|
}
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-classic,
|
||||||
|
.fas,
|
||||||
|
.@{fa-css-prefix}-solid,
|
||||||
|
.far,
|
||||||
|
.@{fa-css-prefix}-regular {
|
||||||
|
font-family: 'Font Awesome 6 Free';
|
||||||
|
}
|
||||||
|
.@{fa-css-prefix}-brands,
|
||||||
|
.fab {
|
||||||
|
font-family: 'Font Awesome 6 Brands';
|
||||||
|
}
|
7
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/less/_fixed-width.less
generated
vendored
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
// fixed-width icons
|
||||||
|
// -------------------------
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-fw {
|
||||||
|
text-align: center;
|
||||||
|
width: @fa-fw-width;
|
||||||
|
}
|
11
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/less/_icons.less
generated
vendored
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
// specific icon class definition
|
||||||
|
// -------------------------
|
||||||
|
|
||||||
|
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
|
||||||
|
readers do not read off random characters that represent icons */
|
||||||
|
|
||||||
|
each(.fa-icons(), {
|
||||||
|
.@{fa-css-prefix}-@{key} {
|
||||||
|
@{fa-icon-property}: @value;
|
||||||
|
}
|
||||||
|
});
|
18
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/less/_list.less
generated
vendored
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
// icons in a list
|
||||||
|
// -------------------------
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-ul {
|
||||||
|
list-style-type: none;
|
||||||
|
margin-left: ~'var(--@{fa-css-prefix}-li-margin, @{fa-li-margin})';
|
||||||
|
padding-left: 0;
|
||||||
|
|
||||||
|
> li { position: relative; }
|
||||||
|
}
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-li {
|
||||||
|
left: calc(~'var(--@{fa-css-prefix}-li-width, @{fa-li-width})' * -1);
|
||||||
|
position: absolute;
|
||||||
|
text-align: center;
|
||||||
|
width: ~'var(--@{fa-css-prefix}-li-width, @{fa-li-width})';
|
||||||
|
line-height: inherit;
|
||||||
|
}
|
68
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/less/_mixins.less
generated
vendored
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
// mixins
|
||||||
|
// --------------------------
|
||||||
|
|
||||||
|
// base rendering for an icon
|
||||||
|
.fa-icon() {
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
display: inline-block;
|
||||||
|
font-style: normal;
|
||||||
|
font-variant: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
line-height: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// sets relative font-sizing and alignment (in _sizing)
|
||||||
|
.fa-size(@font-size) {
|
||||||
|
font-size: (@font-size / @fa-size-scale-base) * 1em; // converts step in sizing scale into an em-based value that's relative to the scale's base
|
||||||
|
line-height: (1 / @font-size) * 1em; // sets the line-height of the icon back to that of it's parent
|
||||||
|
vertical-align: ((6 / @font-size) - (3 / 8)) * 1em; // vertically centers the icon taking into account the surrounding text's descender
|
||||||
|
}
|
||||||
|
|
||||||
|
// only display content to screen readers
|
||||||
|
// see: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/
|
||||||
|
// see: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/
|
||||||
|
.fa-sr-only() {
|
||||||
|
position: absolute;
|
||||||
|
width: 1px;
|
||||||
|
height: 1px;
|
||||||
|
padding: 0;
|
||||||
|
margin: -1px;
|
||||||
|
overflow: hidden;
|
||||||
|
clip: rect(0, 0, 0, 0);
|
||||||
|
white-space: nowrap;
|
||||||
|
border-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// use in conjunction with .sr-only to only display content when it's focused
|
||||||
|
.fa-sr-only-focusable() {
|
||||||
|
&:not(:focus) {
|
||||||
|
.fa-sr-only();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// sets a specific icon family to use alongside style + icon mixins
|
||||||
|
.fa-family-classic() {
|
||||||
|
&:extend(.fa-classic all);
|
||||||
|
}
|
||||||
|
|
||||||
|
// convenience mixins for declaring pseudo-elements by CSS variable,
|
||||||
|
// including all style-specific font properties
|
||||||
|
.fa-icon-solid(@fa-var) {
|
||||||
|
&:extend(.fa-solid all);
|
||||||
|
|
||||||
|
& { @{fa-icon-property}: @fa-var; @{fa-duotone-icon-property}: %("%s%s", @fa-var, @fa-var); }
|
||||||
|
}
|
||||||
|
|
||||||
|
.fa-icon-regular(@fa-var) {
|
||||||
|
&:extend(.fa-regular all);
|
||||||
|
|
||||||
|
& { @{fa-icon-property}: @fa-var; @{fa-duotone-icon-property}: %("%s%s", @fa-var, @fa-var); }
|
||||||
|
}
|
||||||
|
|
||||||
|
.fa-icon-brands(@fa-var) {
|
||||||
|
&:extend(.fa-brands all);
|
||||||
|
|
||||||
|
& { @{fa-icon-property}: @fa-var; @{fa-duotone-icon-property}: %("%s%s", @fa-var, @fa-var); }
|
||||||
|
}
|
||||||
|
|
31
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/less/_rotated-flipped.less
generated
vendored
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
// rotating + flipping icons
|
||||||
|
// -------------------------
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-rotate-90 {
|
||||||
|
transform: rotate(90deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-rotate-180 {
|
||||||
|
transform: rotate(180deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-rotate-270 {
|
||||||
|
transform: rotate(270deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-flip-horizontal {
|
||||||
|
transform: scale(-1, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-flip-vertical {
|
||||||
|
transform: scale(1, -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-flip-both,
|
||||||
|
.@{fa-css-prefix}-flip-horizontal.@{fa-css-prefix}-flip-vertical {
|
||||||
|
transform: scale(-1, -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-rotate-by {
|
||||||
|
transform: rotate(~'var(--@{fa-css-prefix}-rotate-angle, 0)');
|
||||||
|
}
|
14
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/less/_screen-reader.less
generated
vendored
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
// screen-reader utilities
|
||||||
|
// -------------------------
|
||||||
|
|
||||||
|
// only display content to screen readers
|
||||||
|
.sr-only,
|
||||||
|
.@{fa-css-prefix}-sr-only {
|
||||||
|
.fa-sr-only();
|
||||||
|
}
|
||||||
|
|
||||||
|
// use in conjunction with .sr-only to only display content when it's focused
|
||||||
|
.sr-only-focusable,
|
||||||
|
.@{fa-css-prefix}-sr-only-focusable {
|
||||||
|
.fa-sr-only-focusable();
|
||||||
|
}
|
2042
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/less/_shims.less
generated
vendored
Normal file
19
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/less/_sizing.less
generated
vendored
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
// sizing icons
|
||||||
|
// -------------------------
|
||||||
|
|
||||||
|
// literal magnification scale
|
||||||
|
.sizes-literal(@factor) when (@factor > 0) {
|
||||||
|
.sizes-literal((@factor - 1));
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-@{factor}x {
|
||||||
|
font-size: (@factor * 1em);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.sizes-literal(10);
|
||||||
|
|
||||||
|
// step-based scale (with alignment)
|
||||||
|
each(.fa-sizes(), {
|
||||||
|
.@{fa-css-prefix}-@{key} {
|
||||||
|
.fa-size(@value);
|
||||||
|
}
|
||||||
|
});
|
31
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/less/_stacked.less
generated
vendored
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
// stacking icons
|
||||||
|
// -------------------------
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-stack {
|
||||||
|
display: inline-block;
|
||||||
|
height: 2em;
|
||||||
|
line-height: 2em;
|
||||||
|
position: relative;
|
||||||
|
vertical-align: @fa-stack-vertical-align;
|
||||||
|
width: @fa-stack-width;
|
||||||
|
}
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x {
|
||||||
|
left: 0;
|
||||||
|
position: absolute;
|
||||||
|
text-align: center;
|
||||||
|
width: 100%;
|
||||||
|
z-index: ~'var(--@{fa-css-prefix}-stack-z-index, @{fa-stack-z-index})';
|
||||||
|
}
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-stack-1x {
|
||||||
|
line-height: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-stack-2x {
|
||||||
|
font-size: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.@{fa-css-prefix}-inverse {
|
||||||
|
color: ~'var(--@{fa-css-prefix}-inverse, @{fa-inverse})';
|
||||||
|
}
|
5044
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/less/_variables.less
generated
vendored
Normal file
29
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/less/brands.less
generated
vendored
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
/*!
|
||||||
|
* Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||||
|
* Copyright 2024 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
@import "_variables.less";
|
||||||
|
|
||||||
|
:root, :host {
|
||||||
|
--@{fa-css-prefix}-style-family-brands: 'Font Awesome 6 Brands';
|
||||||
|
--@{fa-css-prefix}-font-brands: normal 400 1em/1 'Font Awesome 6 Brands';
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 6 Brands';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
font-display: @fa-font-display;
|
||||||
|
src: url('@{fa-font-path}/fa-brands-400.woff2') format('woff2'),
|
||||||
|
url('@{fa-font-path}/fa-brands-400.ttf') format('truetype');
|
||||||
|
}
|
||||||
|
|
||||||
|
.fab,
|
||||||
|
.@{fa-css-prefix}-brands {
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
|
||||||
|
each(.fa-brand-icons(), {
|
||||||
|
.@{fa-css-prefix}-@{key} { @{fa-icon-property}: @value; }
|
||||||
|
});
|
20
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/less/fontawesome.less
generated
vendored
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
/*!
|
||||||
|
* Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||||
|
* Copyright 2024 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
// Font Awesome core compile (Web Fonts-based)
|
||||||
|
// -------------------------
|
||||||
|
|
||||||
|
@import "_variables.less";
|
||||||
|
@import "_mixins.less";
|
||||||
|
@import "_core.less";
|
||||||
|
@import "_sizing.less";
|
||||||
|
@import "_fixed-width.less";
|
||||||
|
@import "_list.less";
|
||||||
|
@import "_bordered-pulled.less";
|
||||||
|
@import "_animated.less";
|
||||||
|
@import "_rotated-flipped.less";
|
||||||
|
@import "_stacked.less";
|
||||||
|
@import "_icons.less";
|
||||||
|
@import "_screen-reader.less";
|
25
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/less/regular.less
generated
vendored
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
/*!
|
||||||
|
* Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||||
|
* Copyright 2024 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
@import "_variables.less";
|
||||||
|
|
||||||
|
:root, :host {
|
||||||
|
--@{fa-css-prefix}-style-family-classic: '@{fa-style-family}';
|
||||||
|
--@{fa-css-prefix}-font-regular: normal 400 1em/1 '@{fa-style-family}';
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 6 Free';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
font-display: @fa-font-display;
|
||||||
|
src: url('@{fa-font-path}/fa-regular-400.woff2') format('woff2'),
|
||||||
|
url('@{fa-font-path}/fa-regular-400.ttf') format('truetype');
|
||||||
|
}
|
||||||
|
|
||||||
|
.far,
|
||||||
|
.@{fa-css-prefix}-regular {
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
25
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/less/solid.less
generated
vendored
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
/*!
|
||||||
|
* Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||||
|
* Copyright 2024 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
@import "_variables.less";
|
||||||
|
|
||||||
|
:root, :host {
|
||||||
|
--@{fa-css-prefix}-style-family-classic: '@{fa-style-family}';
|
||||||
|
--@{fa-css-prefix}-font-solid: normal 900 1em/1 '@{fa-style-family}';
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 6 Free';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 900;
|
||||||
|
font-display: @fa-font-display;
|
||||||
|
src: url('@{fa-font-path}/fa-solid-900.woff2') format('woff2'),
|
||||||
|
url('@{fa-font-path}/fa-solid-900.ttf') format('truetype');
|
||||||
|
}
|
||||||
|
|
||||||
|
.fas,
|
||||||
|
.@{fa-css-prefix}-solid {
|
||||||
|
font-weight: 900;
|
||||||
|
}
|
10
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/less/v4-shims.less
generated
vendored
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
/*!
|
||||||
|
* Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||||
|
* Copyright 2024 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
// V4 shims compile (Web Fonts-based)
|
||||||
|
// -------------------------
|
||||||
|
|
||||||
|
@import '_variables.less';
|
||||||
|
@import '_shims.less';
|
3096
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/metadata/categories.yml
generated
vendored
Normal file
118512
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/metadata/icon-families.json
generated
vendored
Normal file
56887
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/metadata/icon-families.yml
generated
vendored
Normal file
46917
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/metadata/icons.yml
generated
vendored
Normal file
646
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/metadata/shims.yml
generated
vendored
Normal file
|
@ -0,0 +1,646 @@
|
||||||
|
area-chart:
|
||||||
|
name: chart-area
|
||||||
|
arrow-circle-o-down:
|
||||||
|
prefix: far
|
||||||
|
name: circle-down
|
||||||
|
arrow-circle-o-left:
|
||||||
|
prefix: far
|
||||||
|
name: circle-left
|
||||||
|
arrow-circle-o-right:
|
||||||
|
prefix: far
|
||||||
|
name: circle-right
|
||||||
|
arrow-circle-o-up:
|
||||||
|
prefix: far
|
||||||
|
name: circle-up
|
||||||
|
arrows:
|
||||||
|
name: up-down-left-right
|
||||||
|
arrows-alt:
|
||||||
|
name: maximize
|
||||||
|
arrows-h:
|
||||||
|
name: left-right
|
||||||
|
arrows-v:
|
||||||
|
name: up-down
|
||||||
|
asl-interpreting:
|
||||||
|
name: hands-asl-interpreting
|
||||||
|
automobile:
|
||||||
|
name: car
|
||||||
|
bank:
|
||||||
|
name: building-columns
|
||||||
|
bar-chart:
|
||||||
|
name: chart-column
|
||||||
|
bar-chart-o:
|
||||||
|
name: chart-column
|
||||||
|
bathtub:
|
||||||
|
name: bath
|
||||||
|
battery:
|
||||||
|
name: battery-full
|
||||||
|
battery-0:
|
||||||
|
name: battery-empty
|
||||||
|
battery-1:
|
||||||
|
name: battery-quarter
|
||||||
|
battery-2:
|
||||||
|
name: battery-half
|
||||||
|
battery-3:
|
||||||
|
name: battery-three-quarters
|
||||||
|
battery-4:
|
||||||
|
name: battery-full
|
||||||
|
behance-square:
|
||||||
|
prefix: fab
|
||||||
|
name: square-behance
|
||||||
|
bitbucket-square:
|
||||||
|
prefix: fab
|
||||||
|
name: bitbucket
|
||||||
|
bitcoin:
|
||||||
|
prefix: fab
|
||||||
|
name: btc
|
||||||
|
cab:
|
||||||
|
name: taxi
|
||||||
|
calendar:
|
||||||
|
name: calendar-days
|
||||||
|
calendar-times-o:
|
||||||
|
prefix: far
|
||||||
|
name: calendar-xmark
|
||||||
|
caret-square-o-down:
|
||||||
|
prefix: far
|
||||||
|
name: square-caret-down
|
||||||
|
caret-square-o-left:
|
||||||
|
prefix: far
|
||||||
|
name: square-caret-left
|
||||||
|
caret-square-o-right:
|
||||||
|
prefix: far
|
||||||
|
name: square-caret-right
|
||||||
|
caret-square-o-up:
|
||||||
|
prefix: far
|
||||||
|
name: square-caret-up
|
||||||
|
cc:
|
||||||
|
prefix: far
|
||||||
|
name: closed-captioning
|
||||||
|
chain:
|
||||||
|
name: link
|
||||||
|
chain-broken:
|
||||||
|
name: link-slash
|
||||||
|
check-circle-o:
|
||||||
|
prefix: far
|
||||||
|
name: circle-check
|
||||||
|
check-square-o:
|
||||||
|
prefix: far
|
||||||
|
name: square-check
|
||||||
|
circle-o-notch:
|
||||||
|
name: circle-notch
|
||||||
|
circle-thin:
|
||||||
|
prefix: far
|
||||||
|
name: circle
|
||||||
|
clipboard:
|
||||||
|
name: paste
|
||||||
|
clone:
|
||||||
|
prefix: far
|
||||||
|
close:
|
||||||
|
name: xmark
|
||||||
|
cloud-download:
|
||||||
|
name: cloud-arrow-down
|
||||||
|
cloud-upload:
|
||||||
|
name: cloud-arrow-up
|
||||||
|
cny:
|
||||||
|
name: yen-sign
|
||||||
|
code-fork:
|
||||||
|
name: code-branch
|
||||||
|
commenting:
|
||||||
|
name: comment-dots
|
||||||
|
commenting-o:
|
||||||
|
prefix: far
|
||||||
|
name: comment-dots
|
||||||
|
compass:
|
||||||
|
prefix: far
|
||||||
|
compress:
|
||||||
|
name: down-left-and-up-right-to-center
|
||||||
|
copyright:
|
||||||
|
prefix: far
|
||||||
|
credit-card:
|
||||||
|
prefix: far
|
||||||
|
credit-card-alt:
|
||||||
|
name: credit-card
|
||||||
|
cut:
|
||||||
|
name: scissors
|
||||||
|
cutlery:
|
||||||
|
name: utensils
|
||||||
|
dashboard:
|
||||||
|
name: gauge-high
|
||||||
|
deafness:
|
||||||
|
name: ear-deaf
|
||||||
|
dedent:
|
||||||
|
name: outdent
|
||||||
|
diamond:
|
||||||
|
prefix: far
|
||||||
|
name: gem
|
||||||
|
dollar:
|
||||||
|
name: dollar-sign
|
||||||
|
dot-circle-o:
|
||||||
|
prefix: far
|
||||||
|
name: circle-dot
|
||||||
|
drivers-license:
|
||||||
|
name: id-card
|
||||||
|
drivers-license-o:
|
||||||
|
prefix: far
|
||||||
|
name: id-card
|
||||||
|
edit:
|
||||||
|
prefix: far
|
||||||
|
name: pen-to-square
|
||||||
|
eercast:
|
||||||
|
prefix: fab
|
||||||
|
name: sellcast
|
||||||
|
eur:
|
||||||
|
name: euro-sign
|
||||||
|
euro:
|
||||||
|
name: euro-sign
|
||||||
|
exchange:
|
||||||
|
name: right-left
|
||||||
|
expand:
|
||||||
|
name: up-right-and-down-left-from-center
|
||||||
|
external-link:
|
||||||
|
name: up-right-from-square
|
||||||
|
external-link-square:
|
||||||
|
name: square-up-right
|
||||||
|
eye:
|
||||||
|
prefix: far
|
||||||
|
eye-slash:
|
||||||
|
prefix: far
|
||||||
|
eyedropper:
|
||||||
|
name: eye-dropper
|
||||||
|
fa:
|
||||||
|
prefix: fab
|
||||||
|
name: font-awesome
|
||||||
|
facebook:
|
||||||
|
prefix: fab
|
||||||
|
name: facebook-f
|
||||||
|
facebook-f:
|
||||||
|
prefix: fab
|
||||||
|
name: facebook-f
|
||||||
|
facebook-official:
|
||||||
|
prefix: fab
|
||||||
|
name: facebook
|
||||||
|
facebook-square:
|
||||||
|
prefix: fab
|
||||||
|
name: square-facebook
|
||||||
|
feed:
|
||||||
|
name: rss
|
||||||
|
file-archive-o:
|
||||||
|
prefix: far
|
||||||
|
name: file-zipper
|
||||||
|
file-movie-o:
|
||||||
|
prefix: far
|
||||||
|
name: file-video
|
||||||
|
file-photo-o:
|
||||||
|
prefix: far
|
||||||
|
name: file-image
|
||||||
|
file-picture-o:
|
||||||
|
prefix: far
|
||||||
|
name: file-image
|
||||||
|
file-sound-o:
|
||||||
|
prefix: far
|
||||||
|
name: file-audio
|
||||||
|
file-text:
|
||||||
|
name: file-lines
|
||||||
|
file-text-o:
|
||||||
|
prefix: far
|
||||||
|
name: file-lines
|
||||||
|
file-zip-o:
|
||||||
|
prefix: far
|
||||||
|
name: file-zipper
|
||||||
|
files-o:
|
||||||
|
prefix: far
|
||||||
|
name: copy
|
||||||
|
flash:
|
||||||
|
name: bolt
|
||||||
|
floppy-o:
|
||||||
|
prefix: far
|
||||||
|
name: floppy-disk
|
||||||
|
frown-o:
|
||||||
|
prefix: far
|
||||||
|
name: face-frown
|
||||||
|
gbp:
|
||||||
|
name: sterling-sign
|
||||||
|
ge:
|
||||||
|
prefix: fab
|
||||||
|
name: empire
|
||||||
|
gear:
|
||||||
|
name: gear
|
||||||
|
gears:
|
||||||
|
name: gears
|
||||||
|
git-square:
|
||||||
|
prefix: fab
|
||||||
|
name: square-git
|
||||||
|
github-square:
|
||||||
|
prefix: fab
|
||||||
|
name: square-github
|
||||||
|
gittip:
|
||||||
|
prefix: fab
|
||||||
|
name: gratipay
|
||||||
|
glass:
|
||||||
|
name: martini-glass-empty
|
||||||
|
globe:
|
||||||
|
name: earth-americas
|
||||||
|
google-plus:
|
||||||
|
prefix: fab
|
||||||
|
name: google-plus-g
|
||||||
|
google-plus-circle:
|
||||||
|
prefix: fab
|
||||||
|
name: google-plus
|
||||||
|
google-plus-official:
|
||||||
|
prefix: fab
|
||||||
|
name: google-plus
|
||||||
|
google-plus-square:
|
||||||
|
prefix: fab
|
||||||
|
name: square-google-plus
|
||||||
|
group:
|
||||||
|
name: users
|
||||||
|
hand-grab-o:
|
||||||
|
prefix: far
|
||||||
|
name: hand-back-fist
|
||||||
|
hand-o-down:
|
||||||
|
prefix: far
|
||||||
|
name: hand-point-down
|
||||||
|
hand-o-left:
|
||||||
|
prefix: far
|
||||||
|
name: hand-point-left
|
||||||
|
hand-o-right:
|
||||||
|
prefix: far
|
||||||
|
name: hand-point-right
|
||||||
|
hand-o-up:
|
||||||
|
prefix: far
|
||||||
|
name: hand-point-up
|
||||||
|
hand-paper-o:
|
||||||
|
prefix: far
|
||||||
|
name: hand
|
||||||
|
hand-rock-o:
|
||||||
|
prefix: far
|
||||||
|
name: hand-back-fist
|
||||||
|
hand-stop-o:
|
||||||
|
prefix: far
|
||||||
|
name: hand
|
||||||
|
hard-of-hearing:
|
||||||
|
name: ear-deaf
|
||||||
|
hdd-o:
|
||||||
|
prefix: far
|
||||||
|
name: hard-drive
|
||||||
|
header:
|
||||||
|
name: heading
|
||||||
|
home:
|
||||||
|
name: house
|
||||||
|
hotel:
|
||||||
|
name: bed
|
||||||
|
hourglass-1:
|
||||||
|
name: hourglass-start
|
||||||
|
hourglass-2:
|
||||||
|
name: hourglass-half
|
||||||
|
hourglass-3:
|
||||||
|
name: hourglass-end
|
||||||
|
hourglass-o:
|
||||||
|
name: hourglass
|
||||||
|
id-badge:
|
||||||
|
prefix: far
|
||||||
|
ils:
|
||||||
|
name: shekel-sign
|
||||||
|
image:
|
||||||
|
prefix: far
|
||||||
|
name: image
|
||||||
|
inr:
|
||||||
|
name: indian-rupee-sign
|
||||||
|
institution:
|
||||||
|
name: building-columns
|
||||||
|
intersex:
|
||||||
|
name: mars-and-venus
|
||||||
|
jpy:
|
||||||
|
name: yen-sign
|
||||||
|
krw:
|
||||||
|
name: won-sign
|
||||||
|
lastfm-square:
|
||||||
|
prefix: fab
|
||||||
|
name: square-lastfm
|
||||||
|
legal:
|
||||||
|
name: gavel
|
||||||
|
level-down:
|
||||||
|
name: turn-down
|
||||||
|
level-up:
|
||||||
|
name: turn-up
|
||||||
|
life-bouy:
|
||||||
|
name: life-ring
|
||||||
|
life-buoy:
|
||||||
|
name: life-ring
|
||||||
|
life-saver:
|
||||||
|
name: life-ring
|
||||||
|
line-chart:
|
||||||
|
name: chart-line
|
||||||
|
linkedin:
|
||||||
|
prefix: fab
|
||||||
|
name: linkedin-in
|
||||||
|
linkedin-square:
|
||||||
|
prefix: fab
|
||||||
|
name: linkedin
|
||||||
|
list-alt:
|
||||||
|
prefix: far
|
||||||
|
name: rectangle-list
|
||||||
|
long-arrow-down:
|
||||||
|
name: down-long
|
||||||
|
long-arrow-left:
|
||||||
|
name: left-long
|
||||||
|
long-arrow-right:
|
||||||
|
name: right-long
|
||||||
|
long-arrow-up:
|
||||||
|
name: up-long
|
||||||
|
magic:
|
||||||
|
name: wand-magic-sparkles
|
||||||
|
mail-forward:
|
||||||
|
name: share
|
||||||
|
mail-reply:
|
||||||
|
name: reply
|
||||||
|
mail-reply-all:
|
||||||
|
name: reply-all
|
||||||
|
map-marker:
|
||||||
|
name: location-dot
|
||||||
|
meh-o:
|
||||||
|
prefix: far
|
||||||
|
name: face-meh
|
||||||
|
minus-square-o:
|
||||||
|
prefix: far
|
||||||
|
name: square-minus
|
||||||
|
mobile:
|
||||||
|
name: mobile-screen-button
|
||||||
|
mobile-phone:
|
||||||
|
name: mobile-screen-button
|
||||||
|
money:
|
||||||
|
name: money-bill-1
|
||||||
|
mortar-board:
|
||||||
|
name: graduation-cap
|
||||||
|
navicon:
|
||||||
|
name: bars
|
||||||
|
object-group:
|
||||||
|
prefix: far
|
||||||
|
object-ungroup:
|
||||||
|
prefix: far
|
||||||
|
odnoklassniki-square:
|
||||||
|
prefix: fab
|
||||||
|
name: square-odnoklassniki
|
||||||
|
pause-circle-o:
|
||||||
|
prefix: far
|
||||||
|
name: circle-pause
|
||||||
|
pencil-square:
|
||||||
|
name: square-pen
|
||||||
|
pencil-square-o:
|
||||||
|
prefix: far
|
||||||
|
name: pen-to-square
|
||||||
|
photo:
|
||||||
|
prefix: far
|
||||||
|
name: image
|
||||||
|
picture-o:
|
||||||
|
prefix: far
|
||||||
|
name: image
|
||||||
|
pie-chart:
|
||||||
|
name: chart-pie
|
||||||
|
pinterest-square:
|
||||||
|
prefix: fab
|
||||||
|
name: square-pinterest
|
||||||
|
play-circle-o:
|
||||||
|
prefix: far
|
||||||
|
name: circle-play
|
||||||
|
plus-square-o:
|
||||||
|
prefix: far
|
||||||
|
name: square-plus
|
||||||
|
question-circle-o:
|
||||||
|
prefix: far
|
||||||
|
name: circle-question
|
||||||
|
ra:
|
||||||
|
prefix: fab
|
||||||
|
name: rebel
|
||||||
|
reddit-square:
|
||||||
|
prefix: fab
|
||||||
|
name: square-reddit
|
||||||
|
refresh:
|
||||||
|
name: arrows-rotate
|
||||||
|
registered:
|
||||||
|
prefix: far
|
||||||
|
remove:
|
||||||
|
name: xmark
|
||||||
|
reorder:
|
||||||
|
name: bars
|
||||||
|
repeat:
|
||||||
|
name: arrow-rotate-right
|
||||||
|
resistance:
|
||||||
|
prefix: fab
|
||||||
|
name: rebel
|
||||||
|
rmb:
|
||||||
|
name: yen-sign
|
||||||
|
rotate-left:
|
||||||
|
name: arrow-rotate-left
|
||||||
|
rotate-right:
|
||||||
|
name: arrow-rotate-right
|
||||||
|
rouble:
|
||||||
|
name: ruble-sign
|
||||||
|
rub:
|
||||||
|
name: ruble-sign
|
||||||
|
ruble:
|
||||||
|
name: ruble-sign
|
||||||
|
rupee:
|
||||||
|
name: indian-rupee-sign
|
||||||
|
s15:
|
||||||
|
name: bath
|
||||||
|
save:
|
||||||
|
prefix: far
|
||||||
|
name: floppy-disk
|
||||||
|
send:
|
||||||
|
name: paper-plane
|
||||||
|
send-o:
|
||||||
|
prefix: far
|
||||||
|
name: paper-plane
|
||||||
|
share-square-o:
|
||||||
|
name: share-from-square
|
||||||
|
shekel:
|
||||||
|
name: shekel-sign
|
||||||
|
sheqel:
|
||||||
|
name: shekel-sign
|
||||||
|
sign-in:
|
||||||
|
name: right-to-bracket
|
||||||
|
sign-out:
|
||||||
|
name: right-from-bracket
|
||||||
|
signing:
|
||||||
|
name: hands
|
||||||
|
smile-o:
|
||||||
|
prefix: far
|
||||||
|
name: face-smile
|
||||||
|
snapchat-ghost:
|
||||||
|
prefix: fab
|
||||||
|
name: snapchat
|
||||||
|
snapchat-square:
|
||||||
|
prefix: fab
|
||||||
|
name: square-snapchat
|
||||||
|
soccer-ball-o:
|
||||||
|
prefix: far
|
||||||
|
name: futbol
|
||||||
|
sort-alpha-asc:
|
||||||
|
name: arrow-down-a-z
|
||||||
|
sort-alpha-desc:
|
||||||
|
name: arrow-down-z-a
|
||||||
|
sort-amount-asc:
|
||||||
|
name: arrow-down-short-wide
|
||||||
|
sort-amount-desc:
|
||||||
|
name: arrow-down-wide-short
|
||||||
|
sort-asc:
|
||||||
|
name: sort-up
|
||||||
|
sort-desc:
|
||||||
|
name: sort-down
|
||||||
|
sort-numeric-asc:
|
||||||
|
name: arrow-down-1-9
|
||||||
|
sort-numeric-desc:
|
||||||
|
name: arrow-down-9-1
|
||||||
|
star-half-empty:
|
||||||
|
prefix: far
|
||||||
|
name: star-half-stroke
|
||||||
|
star-half-full:
|
||||||
|
prefix: far
|
||||||
|
name: star-half-stroke
|
||||||
|
star-half-o:
|
||||||
|
prefix: far
|
||||||
|
name: star-half-stroke
|
||||||
|
steam-square:
|
||||||
|
prefix: fab
|
||||||
|
name: square-steam
|
||||||
|
sticky-note-o:
|
||||||
|
prefix: far
|
||||||
|
name: note-sticky
|
||||||
|
stop-circle-o:
|
||||||
|
prefix: far
|
||||||
|
name: circle-stop
|
||||||
|
support:
|
||||||
|
name: life-ring
|
||||||
|
tablet:
|
||||||
|
name: tablet-screen-button
|
||||||
|
tachometer:
|
||||||
|
name: gauge-high
|
||||||
|
tasks:
|
||||||
|
name: bars-progress
|
||||||
|
television:
|
||||||
|
name: tv
|
||||||
|
thermometer:
|
||||||
|
name: temperature-full
|
||||||
|
thermometer-0:
|
||||||
|
name: temperature-empty
|
||||||
|
thermometer-1:
|
||||||
|
name: temperature-quarter
|
||||||
|
thermometer-2:
|
||||||
|
name: temperature-half
|
||||||
|
thermometer-3:
|
||||||
|
name: temperature-three-quarters
|
||||||
|
thermometer-4:
|
||||||
|
name: temperature-full
|
||||||
|
thumb-tack:
|
||||||
|
name: thumbtack
|
||||||
|
thumbs-o-down:
|
||||||
|
prefix: far
|
||||||
|
name: thumbs-down
|
||||||
|
thumbs-o-up:
|
||||||
|
prefix: far
|
||||||
|
name: thumbs-up
|
||||||
|
times-circle-o:
|
||||||
|
prefix: far
|
||||||
|
name: circle-xmark
|
||||||
|
times-rectangle:
|
||||||
|
name: rectangle-xmark
|
||||||
|
times-rectangle-o:
|
||||||
|
prefix: far
|
||||||
|
name: rectangle-xmark
|
||||||
|
toggle-down:
|
||||||
|
prefix: far
|
||||||
|
name: square-caret-down
|
||||||
|
toggle-left:
|
||||||
|
prefix: far
|
||||||
|
name: square-caret-left
|
||||||
|
toggle-right:
|
||||||
|
prefix: far
|
||||||
|
name: square-caret-right
|
||||||
|
toggle-up:
|
||||||
|
prefix: far
|
||||||
|
name: square-caret-up
|
||||||
|
transgender:
|
||||||
|
name: mars-and-venus
|
||||||
|
transgender-alt:
|
||||||
|
name: transgender
|
||||||
|
trash:
|
||||||
|
name: trash-can
|
||||||
|
trash-o:
|
||||||
|
prefix: far
|
||||||
|
name: trash-can
|
||||||
|
try:
|
||||||
|
name: turkish-lira-sign
|
||||||
|
tumblr-square:
|
||||||
|
prefix: fab
|
||||||
|
name: square-tumblr
|
||||||
|
turkish-lira:
|
||||||
|
name: turkish-lira-sign
|
||||||
|
twitter-square:
|
||||||
|
prefix: fab
|
||||||
|
name: square-twitter
|
||||||
|
unlink:
|
||||||
|
name: link-slash
|
||||||
|
unlock-alt:
|
||||||
|
name: unlock
|
||||||
|
unsorted:
|
||||||
|
name: sort
|
||||||
|
usd:
|
||||||
|
name: dollar-sign
|
||||||
|
user-circle-o:
|
||||||
|
prefix: far
|
||||||
|
name: circle-user
|
||||||
|
vcard:
|
||||||
|
name: address-card
|
||||||
|
vcard-o:
|
||||||
|
prefix: far
|
||||||
|
name: address-card
|
||||||
|
viadeo-square:
|
||||||
|
prefix: fab
|
||||||
|
name: square-viadeo
|
||||||
|
video-camera:
|
||||||
|
name: video
|
||||||
|
vimeo:
|
||||||
|
prefix: fab
|
||||||
|
name: vimeo-v
|
||||||
|
vimeo-square:
|
||||||
|
prefix: fab
|
||||||
|
name: square-vimeo
|
||||||
|
volume-control-phone:
|
||||||
|
name: phone-volume
|
||||||
|
warning:
|
||||||
|
name: triangle-exclamation
|
||||||
|
wechat:
|
||||||
|
prefix: fab
|
||||||
|
name: weixin
|
||||||
|
wheelchair-alt:
|
||||||
|
prefix: fab
|
||||||
|
name: accessible-icon
|
||||||
|
window-close-o:
|
||||||
|
prefix: far
|
||||||
|
name: rectangle-xmark
|
||||||
|
window-maximize:
|
||||||
|
prefix: far
|
||||||
|
window-restore:
|
||||||
|
prefix: far
|
||||||
|
won:
|
||||||
|
name: won-sign
|
||||||
|
xing-square:
|
||||||
|
prefix: fab
|
||||||
|
name: square-xing
|
||||||
|
y-combinator-square:
|
||||||
|
prefix: fab
|
||||||
|
name: hacker-news
|
||||||
|
yc:
|
||||||
|
prefix: fab
|
||||||
|
name: y-combinator
|
||||||
|
yc-square:
|
||||||
|
prefix: fab
|
||||||
|
name: hacker-news
|
||||||
|
yen:
|
||||||
|
name: yen-sign
|
||||||
|
youtube-play:
|
||||||
|
prefix: fab
|
||||||
|
name: youtube
|
||||||
|
youtube-square:
|
||||||
|
prefix: fab
|
||||||
|
name: square-youtube
|
1495
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/metadata/sponsors.yml
generated
vendored
Normal file
29
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/package.json
generated
vendored
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
{
|
||||||
|
"description": "The iconic font, CSS, and SVG framework",
|
||||||
|
"keywords": [
|
||||||
|
"font",
|
||||||
|
"awesome",
|
||||||
|
"fontawesome",
|
||||||
|
"icon",
|
||||||
|
"svg",
|
||||||
|
"bootstrap"
|
||||||
|
],
|
||||||
|
"homepage": "https://fontawesome.com",
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://github.com/FortAwesome/Font-Awesome/issues"
|
||||||
|
},
|
||||||
|
"author": "The Font Awesome Team (https://github.com/orgs/FortAwesome/people)",
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/FortAwesome/Font-Awesome"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6"
|
||||||
|
},
|
||||||
|
"dependencies": {},
|
||||||
|
"version": "6.7.2",
|
||||||
|
"name": "@fortawesome/fontawesome-free",
|
||||||
|
"main": "js/fontawesome.js",
|
||||||
|
"style": "css/fontawesome.css",
|
||||||
|
"license": "(CC-BY-4.0 AND OFL-1.1 AND MIT)"
|
||||||
|
}
|
152
LeraFoxQueen/static/node_modules/@fortawesome/fontawesome-free/scss/_animated.scss
generated
vendored
Normal file
|
@ -0,0 +1,152 @@
|
||||||
|
// animating icons
|
||||||
|
// --------------------------
|
||||||
|
|
||||||
|
.#{$fa-css-prefix}-beat {
|
||||||
|
animation-name: #{$fa-css-prefix}-beat;
|
||||||
|
animation-delay: var(--#{$fa-css-prefix}-animation-delay, 0s);
|
||||||
|
animation-direction: var(--#{$fa-css-prefix}-animation-direction, normal);
|
||||||
|
animation-duration: var(--#{$fa-css-prefix}-animation-duration, 1s);
|
||||||
|
animation-iteration-count: var(--#{$fa-css-prefix}-animation-iteration-count, infinite);
|
||||||
|
animation-timing-function: var(--#{$fa-css-prefix}-animation-timing, ease-in-out);
|
||||||
|
}
|
||||||
|
|
||||||
|
.#{$fa-css-prefix}-bounce {
|
||||||
|
animation-name: #{$fa-css-prefix}-bounce;
|
||||||
|
animation-delay: var(--#{$fa-css-prefix}-animation-delay, 0s);
|
||||||
|
animation-direction: var(--#{$fa-css-prefix}-animation-direction, normal);
|
||||||
|
animation-duration: var(--#{$fa-css-prefix}-animation-duration, 1s);
|
||||||
|
animation-iteration-count: var(--#{$fa-css-prefix}-animation-iteration-count, infinite);
|
||||||
|
animation-timing-function: var(--#{$fa-css-prefix}-animation-timing, cubic-bezier(0.280, 0.840, 0.420, 1));
|
||||||
|
}
|
||||||
|
|
||||||
|
.#{$fa-css-prefix}-fade {
|
||||||
|
animation-name: #{$fa-css-prefix}-fade;
|
||||||
|
animation-delay: var(--#{$fa-css-prefix}-animation-delay, 0s);
|
||||||
|
animation-direction: var(--#{$fa-css-prefix}-animation-direction, normal);
|
||||||
|
animation-duration: var(--#{$fa-css-prefix}-animation-duration, 1s);
|
||||||
|
animation-iteration-count: var(--#{$fa-css-prefix}-animation-iteration-count, infinite);
|
||||||
|
animation-timing-function: var(--#{$fa-css-prefix}-animation-timing, cubic-bezier(.4,0,.6,1));
|
||||||
|
}
|
||||||
|
|
||||||
|
.#{$fa-css-prefix}-beat-fade {
|
||||||
|
animation-name: #{$fa-css-prefix}-beat-fade;
|
||||||
|
animation-delay: var(--#{$fa-css-prefix}-animation-delay, 0s);
|
||||||
|
animation-direction: var(--#{$fa-css-prefix}-animation-direction, normal);
|
||||||
|
animation-duration: var(--#{$fa-css-prefix}-animation-duration, 1s);
|
||||||
|
animation-iteration-count: var(--#{$fa-css-prefix}-animation-iteration-count, infinite);
|
||||||
|
animation-timing-function: var(--#{$fa-css-prefix}-animation-timing, cubic-bezier(.4,0,.6,1));
|
||||||
|
}
|
||||||
|
|
||||||
|
.#{$fa-css-prefix}-flip {
|
||||||
|
animation-name: #{$fa-css-prefix}-flip;
|
||||||
|
animation-delay: var(--#{$fa-css-prefix}-animation-delay, 0s);
|
||||||
|
animation-direction: var(--#{$fa-css-prefix}-animation-direction, normal);
|
||||||
|
animation-duration: var(--#{$fa-css-prefix}-animation-duration, 1s);
|
||||||
|
animation-iteration-count: var(--#{$fa-css-prefix}-animation-iteration-count, infinite);
|
||||||
|
animation-timing-function: var(--#{$fa-css-prefix}-animation-timing, ease-in-out);
|
||||||
|
}
|
||||||
|
|
||||||
|
.#{$fa-css-prefix}-shake {
|
||||||
|
animation-name: #{$fa-css-prefix}-shake;
|
||||||
|
animation-delay: var(--#{$fa-css-prefix}-animation-delay, 0s);
|
||||||
|
animation-direction: var(--#{$fa-css-prefix}-animation-direction, normal);
|
||||||
|
animation-duration: var(--#{$fa-css-prefix}-animation-duration, 1s);
|
||||||
|
animation-iteration-count: var(--#{$fa-css-prefix}-animation-iteration-count, infinite);
|
||||||
|
animation-timing-function: var(--#{$fa-css-prefix}-animation-timing, linear);
|
||||||
|
}
|
||||||
|
|
||||||
|
.#{$fa-css-prefix}-spin {
|
||||||
|
animation-name: #{$fa-css-prefix}-spin;
|
||||||
|
animation-delay: var(--#{$fa-css-prefix}-animation-delay, 0s);
|
||||||
|
animation-direction: var(--#{$fa-css-prefix}-animation-direction, normal);
|
||||||
|
animation-duration: var(--#{$fa-css-prefix}-animation-duration, 2s);
|
||||||
|
animation-iteration-count: var(--#{$fa-css-prefix}-animation-iteration-count, infinite);
|
||||||
|
animation-timing-function: var(--#{$fa-css-prefix}-animation-timing, linear);
|
||||||
|
}
|
||||||
|
|
||||||
|
.#{$fa-css-prefix}-spin-reverse {
|
||||||
|
--#{$fa-css-prefix}-animation-direction: reverse;
|
||||||
|
}
|
||||||
|
|
||||||
|
.#{$fa-css-prefix}-pulse,
|
||||||
|
.#{$fa-css-prefix}-spin-pulse {
|
||||||
|
animation-name: #{$fa-css-prefix}-spin;
|
||||||
|
animation-direction: var(--#{$fa-css-prefix}-animation-direction, normal);
|
||||||
|
animation-duration: var(--#{$fa-css-prefix}-animation-duration, 1s);
|
||||||
|
animation-iteration-count: var(--#{$fa-css-prefix}-animation-iteration-count, infinite);
|
||||||
|
animation-timing-function: var(--#{$fa-css-prefix}-animation-timing, steps(8));
|
||||||
|
}
|
||||||
|
|
||||||
|
// if agent or operating system prefers reduced motion, disable animations
|
||||||
|
// see: https://www.smashingmagazine.com/2020/09/design-reduced-motion-sensitivities/
|
||||||
|
// see: https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion
|
||||||
|
@media (prefers-reduced-motion: reduce) {
|
||||||
|
.#{$fa-css-prefix}-beat,
|
||||||
|
.#{$fa-css-prefix}-bounce,
|
||||||
|
.#{$fa-css-prefix}-fade,
|
||||||
|
.#{$fa-css-prefix}-beat-fade,
|
||||||
|
.#{$fa-css-prefix}-flip,
|
||||||
|
.#{$fa-css-prefix}-pulse,
|
||||||
|
.#{$fa-css-prefix}-shake,
|
||||||
|
.#{$fa-css-prefix}-spin,
|
||||||
|
.#{$fa-css-prefix}-spin-pulse {
|
||||||
|
animation-delay: -1ms;
|
||||||
|
animation-duration: 1ms;
|
||||||
|
animation-iteration-count: 1;
|
||||||
|
transition-delay: 0s;
|
||||||
|
transition-duration: 0s;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes #{$fa-css-prefix}-beat {
|
||||||
|
0%, 90% { transform: scale(1); }
|
||||||
|
45% { transform: scale(var(--#{$fa-css-prefix}-beat-scale, 1.25)); }
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes #{$fa-css-prefix}-bounce {
|
||||||
|
0% { transform: scale(1,1) translateY(0); }
|
||||||
|
10% { transform: scale(var(--#{$fa-css-prefix}-bounce-start-scale-x, 1.1),var(--#{$fa-css-prefix}-bounce-start-scale-y, 0.9)) translateY(0); }
|
||||||
|
30% { transform: scale(var(--#{$fa-css-prefix}-bounce-jump-scale-x, 0.9),var(--#{$fa-css-prefix}-bounce-jump-scale-y, 1.1)) translateY(var(--#{$fa-css-prefix}-bounce-height, -0.5em)); }
|
||||||
|
50% { transform: scale(var(--#{$fa-css-prefix}-bounce-land-scale-x, 1.05),var(--#{$fa-css-prefix}-bounce-land-scale-y, 0.95)) translateY(0); }
|
||||||
|
57% { transform: scale(1,1) translateY(var(--#{$fa-css-prefix}-bounce-rebound, -0.125em)); }
|
||||||
|
64% { transform: scale(1,1) translateY(0); }
|
||||||
|
100% { transform: scale(1,1) translateY(0); }
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes #{$fa-css-prefix}-fade {
|
||||||
|
50% { opacity: var(--#{$fa-css-prefix}-fade-opacity, 0.4); }
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes #{$fa-css-prefix}-beat-fade {
|
||||||
|
0%, 100% {
|
||||||
|
opacity: var(--#{$fa-css-prefix}-beat-fade-opacity, 0.4);
|
||||||
|
transform: scale(1);
|
||||||
|
}
|
||||||
|
50% {
|
||||||
|
opacity: 1;
|
||||||
|
transform: scale(var(--#{$fa-css-prefix}-beat-fade-scale, 1.125));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes #{$fa-css-prefix}-flip {
|
||||||
|
50% {
|
||||||
|
transform: rotate3d(var(--#{$fa-css-prefix}-flip-x, 0), var(--#{$fa-css-prefix}-flip-y, 1), var(--#{$fa-css-prefix}-flip-z, 0), var(--#{$fa-css-prefix}-flip-angle, -180deg));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes #{$fa-css-prefix}-shake {
|
||||||
|
0% { transform: rotate(-15deg); }
|
||||||
|
4% { transform: rotate(15deg); }
|
||||||
|
8%, 24% { transform: rotate(-18deg); }
|
||||||
|
12%, 28% { transform: rotate(18deg); }
|
||||||
|
16% { transform: rotate(-22deg); }
|
||||||
|
20% { transform: rotate(22deg); }
|
||||||
|
32% { transform: rotate(-12deg); }
|
||||||
|
36% { transform: rotate(12deg); }
|
||||||
|
40%, 100% { transform: rotate(0deg); }
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes #{$fa-css-prefix}-spin {
|
||||||
|
0% { transform: rotate(0deg); }
|
||||||
|
100% { transform: rotate(360deg); }
|
||||||
|
}
|