Initial commit

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
谢宇宁
2026-10-26 17:51:31 +07:00
co-authored by Claude Opus 5.5
commit 61d0a11dfa
371 changed files with 35836 additions and 0 deletions
+23
View File
@@ -0,0 +1,23 @@
.git
.cursor
.idea
.node_modules
node_modules
.next
.next-dev
.next-test
.next*
dist
dist.zip
dist.zip.sha256
web_hjsq_h5.tar.gz
web_hjsq_h5.md5
config/*.local.env
test-results
playwright-report
*.log
*.tsbuildinfo
.env*
!.env.example
README.md
AGENTS.md
+51
View File
@@ -0,0 +1,51 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
/node_modules
/.pnp
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/versions
# testing
/coverage
# next.js
/.next/
/.next-dev/
/.next-test/
/out/
# production / packaging
/build
/dist/
/dist.zip
/dist.zip.sha256
/web_hjsq_h5.tar.gz
/web_hjsq_h5.md5
config/*.local.env
# misc
.DS_Store
*.pem
# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*
# env files (can opt-in for committing if needed)
.env*
# vercel
.vercel
# typescript
*.tsbuildinfo
next-env.d.ts
.cursor
+9
View File
@@ -0,0 +1,9 @@
<!-- BEGIN:nextjs-agent-rules -->
## This is NOT the Next.js you know
This version has breaking changes — APIs, conventions, and file structure may all differ from your training data. Read the relevant guide in `node_modules/next/dist/docs/` (resolved from this file's directory; in monorepos the `next` package may not be visible from the repo root) before writing any code. Heed deprecation notices.
This block is written and re-added by `next dev` — verify at `node_modules/next/dist/server/lib/generate-agent-files.js`. Removing it from a diff only re-creates the uncommitted change; committing it with your work keeps the tree clean.
<!-- END:nextjs-agent-rules -->
+18
View File
@@ -0,0 +1,18 @@
FROM node:22-alpine AS build
WORKDIR /app
RUN corepack enable && corepack prepare pnpm@10.32.1 --activate
COPY package.json pnpm-lock.yaml ./
RUN pnpm install --frozen-lockfile
COPY . .
ARG APP_ENV=production
RUN pnpm exec tsx scripts/next-env.ts "$APP_ENV" build \
&& pnpm exec tsx scripts/package-standalone.ts "$APP_ENV" \
&& mv "dist/$APP_ENV" /release
FROM node:22-alpine AS runtime
WORKDIR /app
ENV NODE_ENV=production PORT=3000 HOSTNAME=0.0.0.0
COPY --from=build --chown=node:node /release ./
USER node
EXPOSE 3000
CMD ["node", "start.mjs"]
+113
View File
@@ -0,0 +1,113 @@
# jha-1046-hjsq-web
海角社区 H5 / Web(Next.js 16 · React 19 · pnpm)。
## 环境要求
- Node.js `>= 20.9`(打包 Linux sharp 推荐 **22**,npm `>= 10.9.2`)
- pnpm `10+`
- 本机 SSH 私钥(默认 `~/.ssh/id_ed25519`),需已加入对应服务器 `authorized_keys`
## 本地开发
```bash
pnpm install
pnpm dev # development.env
pnpm dev:test # test.env
```
浏览器打开 [http://localhost:26122](http://localhost:26122)。
常用命令:
| 命令 | 说明 |
|------|------|
| `pnpm lint` | ESLint |
| `pnpm build` | 正式环境构建 |
| `pnpm build:test` | 测试环境构建 |
## 环境配置
配置文件在 `config/`(可另加 `*.local.env`,勿提交密钥):
| 文件 | 用途 |
|------|------|
| `config/development.env` | 本地开发 |
| `config/test.env` | 测试构建 / 测试服 |
| `config/production.env` | 正式构建 / 正式服 |
关键变量示例:`API_PROXY_TARGET` / `NEXT_PUBLIC_API_BASE_URL`、`PORT`、`NEXT_PUBLIC_SITE_URL`、`NEXT_PUBLIC_GTAG_ID`、`NEXT_PUBLIC_TRACKER_APP_ID`。
## 打包与部署
产物统一为仓库根目录的 **`web_hjsq_h5.tar.gz`**(及 `web_hjsq_h5.md5`)。
流程:`build` → standalone(`start.mjs`)→ 补 Linux sharp → `tar.gz` → `scp` → 远程更新脚本。
### 测试服
默认:`root@172.104.181.99:22889` → `/server/web_hjsq/h5`,远程执行 `run.sh`;应用端口 **26122**(`config/test.env`)。
```bash
pnpm pack:gz:test # 打包并推送(等同 pnpm deploy:test)
pnpm pack:gz:test:only # 只打包,不上传
```
等价远程步骤:
```bash
scp -P 22889 web_hjsq_h5.tar.gz root@172.104.181.99:/server/web_hjsq/h5
ssh -p 22889 root@172.104.181.99 "cd /server/web_hjsq/h5 && bash run.sh"
```
可选环境变量:`DEPLOY_TEST_HOST`、`DEPLOY_TEST_DIR`、`DEPLOY_TEST_REMOTE_SCRIPT`、`DEPLOY_SSH_IDENTITY`、`DEPLOY_SCP_PORT`、`DEPLOY_SSH_PORT`。
### 正式服
默认:`server@34.92.204.175:22889` → `/home/server/web_hjsq/h5`,远程执行 `rsupdate.sh`。
```bash
pnpm pack:gz # 打包并推送(等同 pnpm deploy:prod)
pnpm pack:gz:only # 只打包,不上传(等同 pnpm package:prod)
```
等价远程步骤:
```bash
scp -P 22889 web_hjsq_h5.tar.gz server@34.92.204.175:/home/server/web_hjsq/h5
ssh -p 22889 server@34.92.204.175 "bash /home/server/web_hjsq/h5/rsupdate.sh"
```
可选环境变量:`DEPLOY_JUMP_HOST`、`DEPLOY_JUMP_DIR`、`DEPLOY_REMOTE_SCRIPT`、`DEPLOY_SSH_IDENTITY`、`DEPLOY_SCP_PORT`、`DEPLOY_SSH_PORT`、`DEPLOY_TARGET_ARCH`、`DEPLOY_TARGET_LIBC`。
### 服务器启动注意
Standalone **必须**用包内入口,不要 `next start`:
```bash
node start.mjs
# 或
pm2 start ecosystem.config.cjs
```
缺少 `.next/BUILD_ID` 时会出现 `production-start-no-build-id`。测试构建本地目录仍是 `.next-test`,但打进 `web_hjsq_h5.tar.gz` 后会规范为 `.next`。若解压报 `File exists`(pnpm 软链冲突),先清理旧 `node_modules` 再跑更新脚本。
## 目录速览
```
config/ # 各环境 env
scripts/
next-env.ts # 按环境跑 next
package-standalone.ts # 整理 standalone + start.mjs
prepare-production-runtime.ts # 补 Linux sharp
package-prod.sh # 正式一键打包/推送
package-test.sh # 测试一键打包/推送
deploy_prod.sh / deploy_test.sh
src/ # 应用代码
```
## 约定(简要)
- 接口图片展示走 `DecryptedImage` / 解密链路,勿裸用接口 URL。
- 带 `slug` 的资源路由优先用 `slug`,不要用数字 id。
- 对接接口字段勿擅自改名映射;列表/详情直接用接口类型字段。
+10
View File
@@ -0,0 +1,10 @@
APP_ENV=development
# 浏览器走同源 /api/*(配合 next.config rewrites)
NEXT_PUBLIC_API_BASE_URL=
# 上游地址:rewrites + 服务端直连
API_PROXY_TARGET=https://mdcom-wz.80sygtm.com
PORT=26122
NEXT_PUBLIC_TRACKER_APP_ID=JHA-1046
NEXT_PUBLIC_GTAG_ID=G-748CPNEVP5
NEXT_PUBLIC_SITE_URL=https://haijiaosq.net
NEXT_PUBLIC_APP_VERSION=1.0.0
+8
View File
@@ -0,0 +1,8 @@
APP_ENV=production
NEXT_PUBLIC_API_BASE_URL=
API_PROXY_TARGET=http://139.162.44.29:26119
PORT=3000
NEXT_PUBLIC_TRACKER_APP_ID=JHA-1046
NEXT_PUBLIC_GTAG_ID=G-748CPNEVP5
NEXT_PUBLIC_SITE_URL=https://denv08sep7brv.cloudfront.net
NEXT_PUBLIC_APP_VERSION=1.0.0
+8
View File
@@ -0,0 +1,8 @@
APP_ENV=test
NEXT_PUBLIC_API_BASE_URL=
API_PROXY_TARGET=https://mdcom-wz.80sygtm.com
PORT=26122
NEXT_PUBLIC_TRACKER_APP_ID=JHA-1046
NEXT_PUBLIC_GTAG_ID=G-748CPNEVP5
NEXT_PUBLIC_SITE_URL=https://haijiaosq.net
NEXT_PUBLIC_APP_VERSION=1.0.0
+186
View File
@@ -0,0 +1,186 @@
#!/usr/bin/env bash
# 测试服:dist.zip 为 dist/test 内容(不含 node_modules),安装到 next/,Supervisor:hjsq_next_h5。
set -Eeuo pipefail
DIR=$(cd "$(dirname "$0")" && pwd)
PACKAGE="$DIR/dist.zip"
CHECKSUM="$DIR/dist.zip.sha256"
CURRENT="$DIR/next"
PREVIOUS="$DIR/next.prev"
PROGRAM=hjsq_next_h5
SUP_CONF_DIR=${SUP_CONF_DIR:-/etc/supervisor/conf.d}
SUP_LOG_DIR=${SUP_LOG_DIR:-/var/log/supervisor}
CONF="$SUP_CONF_DIR/$PROGRAM.conf"
LOCK="$DIR/.$PROGRAM.lock"
STAMP=$(date +%Y%m%d%H%M%S)-$$
STAGING= UPLOAD_COPY= HEALTH_FILE= CONF_BACKUP= NEW_CONF=
LOCKED=0 SWITCHED=0 OLD_MOVED=0 INSTALLED=0 HAD_CONF=0 CONF_CHANGED=0 WAS_RUNNING=0
fail() { printf '发布失败:%s\n' "$*" >&2; exit 1; }
rollback() {
echo '检查失败,恢复上一版。' >&2
supervisorctl stop "$PROGRAM" >/dev/null 2>&1 || true
if [ "$INSTALLED" = 1 ] && [ -d "$CURRENT" ]; then
mv "$CURRENT" "$DIR/.${PROGRAM}.failed.$STAMP" || return 1
fi
if [ "$OLD_MOVED" = 1 ]; then mv "$PREVIOUS" "$CURRENT" || return 1; fi
if [ "$CONF_CHANGED" = 1 ]; then
if [ "$HAD_CONF" = 1 ]; then cp -p "$CONF_BACKUP" "$CONF" || return 1
else rm -f "$CONF" || return 1; fi
fi
supervisorctl reread >/dev/null && supervisorctl update >/dev/null || return 1
if [ "$WAS_RUNNING" = 1 ]; then
supervisorctl restart "$PROGRAM" >/dev/null || return 1
else supervisorctl stop "$PROGRAM" >/dev/null 2>&1 || true; fi
}
finish() {
local rc=$?
trap - EXIT
if [ "$rc" -ne 0 ] && [ "$SWITCHED" = 1 ]; then rollback || true; fi
[ -z "$STAGING" ] || rm -rf "$STAGING"
[ -z "$UPLOAD_COPY" ] || rm -rf "$UPLOAD_COPY"
[ -z "$HEALTH_FILE" ] || rm -f "$HEALTH_FILE"
[ -z "$NEW_CONF" ] || rm -f "$NEW_CONF"
[ "$LOCKED" = 0 ] || rmdir "$LOCK" 2>/dev/null || true
exit "$rc"
}
trap finish EXIT
trap 'exit 130' INT
trap 'exit 143' TERM
for command_name in sha256sum unzip supervisorctl curl mktemp; do
command -v "$command_name" >/dev/null || fail "缺少 $command_name"
done
mkdir "$LOCK" 2>/dev/null || fail "另一次发布正在执行($LOCK)"
LOCKED=1
[ -f "$PACKAGE" ] && [ -f "$CHECKSUM" ] || fail '缺少 dist.zip 或 dist.zip.sha256'
UPLOAD_COPY=$(mktemp -d "$DIR/.${PROGRAM}.upload.XXXXXX")
cp "$PACKAGE" "$UPLOAD_COPY/dist.zip"
cp "$CHECKSUM" "$UPLOAD_COPY/dist.zip.sha256"
EXPECTED=$(awk 'NR == 1 { print tolower($1) }' "$UPLOAD_COPY/dist.zip.sha256")
[[ "$EXPECTED" =~ ^[[:xdigit:]]{64}$ ]] || fail 'SHA-256 校验文件格式无效'
ACTUAL=$(sha256sum "$UPLOAD_COPY/dist.zip" | awk '{print $1}')
[ "$EXPECTED" = "$ACTUAL" ] || fail 'dist.zip SHA-256 不匹配'
node_ok() {
"$1" -e 'const [a,b]=process.versions.node.split(".").map(Number); process.exit(a>20 || a===20 && b>=9 ? 0 : 1)' 2>/dev/null
}
candidates=("${NODE_BIN:-}" /usr/local/bin/node /usr/bin/node /opt/node/bin/node)
for candidate in /usr/local/node*/bin/node /opt/node*/bin/node \
"${HOME:-/root}"/.nvm/versions/node/v*/bin/node; do
[ ! -x "$candidate" ] || candidates+=("$candidate")
done
candidates+=("$(command -v node || true)")
NODE_BIN=
for candidate in "${candidates[@]}"; do
if [ -x "$candidate" ] && node_ok "$candidate"; then NODE_BIN=$candidate; break; fi
done
[ -n "$NODE_BIN" ] || fail '需要 Node.js >=20.9'
export PATH="$(dirname "$NODE_BIN"):$PATH"
PNPM_BIN=$(command -v pnpm || true)
NPM_BIN=$(command -v npm || true)
[ -n "$PNPM_BIN" ] || [ -n "$NPM_BIN" ] || fail '需要 pnpm 或 npm'
supervisorctl pid >/dev/null || fail 'Supervisor 未运行'
STATUS=$(supervisorctl status "$PROGRAM" 2>/dev/null || true)
[[ "$STATUS" != *RUNNING* ]] || WAS_RUNNING=1
STAGING=$(mktemp -d "$DIR/.${PROGRAM}.staging.XXXXXX")
unzip -Z1 "$UPLOAD_COPY/dist.zip" | while IFS= read -r entry; do
case "$entry" in
/*|../*|*/../*|*/..|node_modules|node_modules/*|*/node_modules/*)
echo "包内包含不允许的路径:$entry" >&2; exit 1 ;;
esac
done || fail 'ZIP 路径检查失败'
unzip -q "$UPLOAD_COPY/dist.zip" -d "$STAGING"
for required in start.mjs server.js package.json .next/BUILD_ID config/test.env; do
[ -s "$STAGING/$required" ] || fail "包中缺少 $required"
done
for required in .next/static public; do
[ -d "$STAGING/$required" ] || fail "包中缺少目录 $required"
done
if [ -f "$CURRENT/config/test.local.env" ]; then
cp -p "$CURRENT/config/test.local.env" "$STAGING/config/test.local.env"
fi
echo "安装生产依赖…"
(
cd "$STAGING"
if [ -n "$PNPM_BIN" ]; then
"$PNPM_BIN" install --prod --frozen-lockfile
else
"$NPM_BIN" install --omit=dev --no-audit --no-fund
fi
)
APP_PORT=$(cd "$STAGING" && "$NODE_BIN" --input-type=module <<'NODE'
import { existsSync, readFileSync } from 'node:fs';
import { parse } from 'dotenv';
const read = (path) => (existsSync(path) ? parse(readFileSync(path)) : {});
const config = { ...read('config/test.env'), ...read('config/test.local.env'), ...process.env };
const port = config.PORT || '3000';
if (!/^\d+$/.test(port) || Number(port) < 1 || Number(port) > 65535) throw new Error('Invalid PORT');
const api = (config.API_PROXY_TARGET || config.NEXT_PUBLIC_API_BASE_URL || '').trim();
if (!api) throw new Error('API_PROXY_TARGET 或 NEXT_PUBLIC_API_BASE_URL 必填');
console.log(Number(port));
NODE
)
mkdir -p "$SUP_CONF_DIR" "$SUP_LOG_DIR"
NEW_CONF=$(mktemp "$DIR/.${PROGRAM}.supervisor.XXXXXX")
supervisor_quote() { local value=${1//\\/\\\\}; value=${value//\"/\\\"}; printf '%s' "${value//%/%%}"; }
cat > "$NEW_CONF" <<CONF
[program:$PROGRAM]
directory=$(supervisor_quote "$CURRENT")
command="$(supervisor_quote "$NODE_BIN")" "$(supervisor_quote "$CURRENT/start.mjs")"
environment=HOSTNAME="0.0.0.0",PORT="$APP_PORT",APP_ENV="test",NODE_ENV="production",PATH="$(supervisor_quote "$PATH")"
autostart=true
autorestart=true
startsecs=3
stopasgroup=true
killasgroup=true
stopwaitsecs=15
stdout_logfile=$(supervisor_quote "$SUP_LOG_DIR/$PROGRAM.log")
stderr_logfile=$(supervisor_quote "$SUP_LOG_DIR/${PROGRAM}_error.log")
CONF
if [ -f "$CONF" ]; then
HAD_CONF=1
CONF_BACKUP="$CONF.bak.$STAMP"
cp -p "$CONF" "$CONF_BACKUP"
fi
SWITCHED=1
if [ "$WAS_RUNNING" = 1 ]; then supervisorctl stop "$PROGRAM"; fi
if [ -d "$CURRENT" ]; then
rm -rf "$PREVIOUS"
mv "$CURRENT" "$PREVIOUS"
OLD_MOVED=1
fi
mv "$STAGING" "$CURRENT"
INSTALLED=1
STAGING=
CONF_CHANGED=1
cp "$NEW_CONF" "$CONF"
chmod 644 "$CONF"
supervisorctl reread
supervisorctl update
supervisorctl restart "$PROGRAM"
BASE="http://127.0.0.1:$APP_PORT"
HEALTH_FILE=$(mktemp "$DIR/.${PROGRAM}.health.XXXXXX")
HEALTH_OK=0
for attempt in $(seq 1 20); do
CODE=$(curl -sS --connect-timeout 2 --max-time 5 -o "$HEALTH_FILE" -w '%{http_code}' "$BASE/healthz" 2>/dev/null || true)
if [ "$CODE" = 200 ] && "$NODE_BIN" -e '
try { const value=JSON.parse(require("fs").readFileSync(process.argv[1],"utf8"));
process.exit(value.status==="ok" ? 0 : 1);
} catch { process.exit(1); }' "$HEALTH_FILE"; then HEALTH_OK=1; break; fi
sleep 1
done
[ "$HEALTH_OK" = 1 ] || fail '/healthz 未返回 HTTP 200'
CODE=$(curl -sS --connect-timeout 2 --max-time 45 -o /dev/null -w '%{http_code}' "$BASE/" || true)
[ "$CODE" = 200 ] || fail "首页检查失败,HTTP $CODE"
supervisorctl status "$PROGRAM"
SWITCHED=0
echo "测试更新完成:${CURRENT};请确认 Nginx 反代到 127.0.0.1:${APP_PORT}"
Executable
+122
View File
@@ -0,0 +1,122 @@
#!/bin/bash
# 正式服:构建 → Linux 运行包 + MD5 → 跳板机 running.sh(对齐 hkdj-web)。
set -euo pipefail
SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)
cd "$SCRIPT_DIR"
JUMP_HOST="${DEPLOY_JUMP_HOST:-server@34.92.204.175}"
JUMP_DIR="${DEPLOY_JUMP_DIR:-/home/server/web_hjsq/h5}"
SCP_PORT="${DEPLOY_SCP_PORT:-22889}"
SSH_PORT="${DEPLOY_SSH_PORT:-22889}"
REMOTE_SCRIPT="${DEPLOY_REMOTE_SCRIPT:-rsupdate.sh}"
SSH_IDENTITY="${DEPLOY_SSH_IDENTITY:-$HOME/.ssh/id_ed25519}"
TARGET_ARCH="${DEPLOY_TARGET_ARCH:-x64}"
TARGET_LIBC="${DEPLOY_TARGET_LIBC:-glibc}"
PACKAGE_NAME=web_hjsq_h5.tar.gz
MD5_NAME=web_hjsq_h5.md5
PACKAGE="$SCRIPT_DIR/$PACKAGE_NAME"
MD5_FILE="$SCRIPT_DIR/$MD5_NAME"
RELEASE="$SCRIPT_DIR/dist/production-linux-$TARGET_ARCH-$TARGET_LIBC"
PACKAGE_ONLY=0
fail() { printf '错误:%s\n' "$*" >&2; exit 1; }
step() { printf '\n▸ %s\n' "$*"; }
for argument in "$@"; do
case "$argument" in
--) ;;
--dry-run) DEPLOY_DRY_RUN=1 ;;
--package-only) PACKAGE_ONLY=1 ;;
-h|--help)
printf '用法:%s [--dry-run | --package-only]\n' "$0"
printf '默认跳板:%s 端口 %s,远程脚本 %s\n' "$JUMP_HOST" "$SCP_PORT" "$REMOTE_SCRIPT"
printf '可选:DEPLOY_JUMP_HOST / DEPLOY_JUMP_DIR / DEPLOY_SCP_PORT / DEPLOY_SSH_PORT\n'
printf ' DEPLOY_REMOTE_SCRIPT / DEPLOY_SSH_IDENTITY / DEPLOY_TARGET_ARCH / DEPLOY_TARGET_LIBC\n'
exit 0 ;;
*) fail "不支持的参数 $argument;使用 --help 查看用法" ;;
esac
done
[[ "$JUMP_HOST" =~ ^[a-zA-Z0-9_][a-zA-Z0-9_.@-]*$ ]] || fail 'DEPLOY_JUMP_HOST 格式无效'
[[ "$JUMP_DIR" =~ ^/[a-zA-Z0-9_-]+(/[a-zA-Z0-9_-]+)*/?$ ]] || fail 'DEPLOY_JUMP_DIR 必须是普通绝对路径'
JUMP_DIR="${JUMP_DIR%/}"
for port in "$SCP_PORT" "$SSH_PORT"; do
[[ "$port" =~ ^[0-9]+$ ]] && [ "$port" -ge 1 ] && [ "$port" -le 65535 ] || fail 'SCP/SSH 端口必须在 1–65535 内'
done
case "$TARGET_ARCH" in x64|arm64) ;; *) fail 'DEPLOY_TARGET_ARCH 仅支持 x64 或 arm64' ;; esac
case "$TARGET_LIBC" in glibc|musl) ;; *) fail 'DEPLOY_TARGET_LIBC 仅支持 glibc 或 musl' ;; esac
for tool in node pnpm tar; do
command -v "$tool" >/dev/null || fail "缺少命令 $tool"
done
node -e 'const [a,b]=process.versions.node.split(".").map(Number); if(a<20 || a===20 && b<9) process.exit(1)' || fail '需要 Node.js >=20.9,推荐 22'
command -v md5sum >/dev/null || command -v md5 >/dev/null || fail '缺少 md5sum 或 macOS md5'
for file in config/production.env package.json scripts/prepare-production-runtime.ts; do
[ -s "$file" ] || fail "缺少 $file"
done
[ -x node_modules/.bin/tsx ] || fail '请先执行 pnpm install'
if [ "${DEPLOY_DRY_RUN:-0}" = 1 ]; then
printf 'DRY RUN:正式环境;Linux %s/%s\n' "$TARGET_ARCH" "$TARGET_LIBC"
node --input-type=module -e 'import {readFileSync} from "node:fs"; import {parse} from "dotenv"; const c=parse(readFileSync("config/production.env")); console.log(` PORT=${c.PORT} API=${c.API_PROXY_TARGET||c.NEXT_PUBLIC_API_BASE_URL}`)'
printf ' pnpm build → bundle → bundle:linux -- %s %s\n' "$TARGET_ARCH" "$TARGET_LIBC"
printf ' 生成 %s + %s\n' "$PACKAGE_NAME" "$MD5_NAME"
if [ "$PACKAGE_ONLY" = 1 ]; then
printf ' --package-only:生成后结束,不上传。\n'
else
printf ' scp -P %s → %s:%s/\n' "$SCP_PORT" "$JUMP_HOST" "$JUMP_DIR"
printf ' ssh -p %s %s bash %s/%s\n' "$SSH_PORT" "$JUMP_HOST" "$JUMP_DIR" "$REMOTE_SCRIPT"
fi
exit 0
fi
if [ "$PACKAGE_ONLY" = 0 ]; then
for tool in ssh scp tee; do command -v "$tool" >/dev/null || fail "缺少命令 $tool"; done
[ -f "$SSH_IDENTITY" ] || fail "缺少 SSH 私钥:$SSH_IDENTITY"
fi
mkdir -p "$SCRIPT_DIR/dist"
DEPLOY_LOCK="$SCRIPT_DIR/dist/.production-deploy.lock"
mkdir "$DEPLOY_LOCK" 2>/dev/null || fail "已有正式发布进程或残留锁:${DEPLOY_LOCK}"
trap 'rmdir "$DEPLOY_LOCK" 2>/dev/null || true' EXIT
trap 'exit 130' INT
trap 'exit 143' TERM
step '构建并整理正式环境 standalone'
pnpm run build
pnpm run bundle
step "准备 Linux $TARGET_ARCH/$TARGET_LIBC 运行包"
pnpm run bundle:linux -- "$TARGET_ARCH" "$TARGET_LIBC"
for file in start.mjs server.js .next/BUILD_ID config/production.env runtime-target.json ecosystem.config.cjs; do
[ -s "$RELEASE/$file" ] || fail "正式运行包缺少 $file"
done
for directory in node_modules .next/static public; do
[ -d "$RELEASE/$directory" ] || fail "正式运行包缺少目录 $directory"
done
step "打包 $PACKAGE_NAME"
COPYFILE_DISABLE=1 COPY_EXTENDED_ATTRIBUTES_DISABLE=1 tar \
--no-xattrs \
--exclude='._*' --exclude='.DS_Store' --exclude='.env*' \
--exclude='*.local.env' --exclude='*.log' \
-czf "$PACKAGE" -C "$RELEASE" .
chmod 600 "$PACKAGE"
if command -v md5sum >/dev/null; then
md5sum "$PACKAGE" | awk '{print $1}' > "$MD5_FILE"
else
md5 -q "$PACKAGE" > "$MD5_FILE"
fi
tar -tzf "$PACKAGE" >/dev/null
printf '运行包已生成:%s;校验:%s\n' "$PACKAGE_NAME" "$MD5_NAME"
if [ "$PACKAGE_ONLY" = 1 ]; then exit 0; fi
SSH_OPTS=(-i "$SSH_IDENTITY" -o IdentitiesOnly=yes -o BatchMode=yes)
step "上传到跳板机 $JUMP_HOST:$JUMP_DIR/"
scp -P "$SCP_PORT" "${SSH_OPTS[@]}" "$PACKAGE" "$JUMP_HOST:$JUMP_DIR/"
step "执行正式服 $REMOTE_SCRIPT"
RUN_LOG=$(mktemp "$SCRIPT_DIR/dist/production-running.XXXXXX")
if ! ssh -p "$SSH_PORT" "${SSH_OPTS[@]}" "$JUMP_HOST" "bash $JUMP_DIR/$REMOTE_SCRIPT" 2>&1 | tee "$RUN_LOG"; then
fail "正式服 $REMOTE_SCRIPT 执行失败;日志:${RUN_LOG}"
fi
printf '\n正式服发布完成;日志:%s\n' "$RUN_LOG"
Executable
+5
View File
@@ -0,0 +1,5 @@
#!/usr/bin/env bash
# 测试服:委托 scripts/package-test.sh(web_hjsq_h5.tar.gz → scp → run.sh)
set -euo pipefail
SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)
exec bash "$SCRIPT_DIR/scripts/package-test.sh" "$@"
+28
View File
@@ -0,0 +1,28 @@
import { defineConfig, globalIgnores } from "eslint/config";
import nextVitals from "eslint-config-next/core-web-vitals";
import nextTs from "eslint-config-next/typescript";
const eslintConfig = defineConfig([
...nextVitals,
...nextTs,
// Override default ignores of eslint-config-next.
globalIgnores([
// Default ignores of eslint-config-next:
".next/**",
".next-test/**",
".next-dev/**",
"dist/**",
"out/**",
"build/**",
"public/js/**",
"next-env.d.ts",
]),
{
rules: {
// 接口图需 XOR 解密,统一走 DecryptedImage / 原生 <img>,不能用 next/image
"@next/next/no-img-element": "off",
},
},
]);
export default eslintConfig;
+93
View File
@@ -0,0 +1,93 @@
import process from "node:process";
import type { NextConfig } from "next";
/** 本地调试代理目标,见 config/*.env / .env.local 的 API_PROXY_TARGET */
const apiProxyTarget = (process.env.API_PROXY_TARGET || "").replace(/\/$/, "");
const appEnv = process.env.APP_ENV;
const nextConfig: NextConfig = {
output: "standalone",
// 仅在显式 APP_ENV=test|development 时分目录;未设置 / production 仍用 .next
distDir:
appEnv === "test" ? ".next-test" : appEnv === "development" ? ".next-dev" : ".next",
poweredByHeader: false,
cacheComponents: true,
partialPrefetching: true,
turbopack: {
rules: {
"*.css": {
loaders: ["@tailwindcss/turbopack"],
as: "*.css",
},
},
},
async headers() {
const xml = [{ key: "Content-Type", value: "application/xml; charset=utf-8" }];
const xsl = [{ key: "Content-Type", value: "text/xsl; charset=utf-8" }];
return [
{ source: "/sitemap.xml", headers: xml },
{ source: "/sitemaps/:file", headers: xml },
{ source: "/static/sitemapindex.xsl", headers: xsl },
{ source: "/static/sitemap.xsl", headers: xsl },
];
},
async redirects() {
// 枢纽入口 / 旧中文排序段 → 英文规范 URL
return [
{ source: "/short-drama", destination: "/short-drama/hot", permanent: true },
{ source: "/video", destination: "/video/hot", permanent: true },
{ source: "/short-drama/热度优先", destination: "/short-drama/hot", permanent: true },
{ source: "/short-drama/热度优先/:path*", destination: "/short-drama/hot/:path*", permanent: true },
{ source: "/short-drama/最近更新", destination: "/short-drama/latest", permanent: true },
{ source: "/short-drama/最近更新/:path*", destination: "/short-drama/latest/:path*", permanent: true },
{ source: "/video/热度优先", destination: "/video/hot", permanent: true },
{ source: "/video/热度优先/:path*", destination: "/video/hot/:path*", permanent: true },
{ source: "/video/最近更新", destination: "/video/latest", permanent: true },
{ source: "/video/最近更新/:path*", destination: "/video/latest/:path*", permanent: true },
{ source: "/ranking", destination: "/ranking/drama", permanent: true },
{ source: "/ranking/短剧", destination: "/ranking/drama", permanent: true },
{ source: "/ranking/短剧/:path*", destination: "/ranking/drama/:path*", permanent: true },
{ source: "/ranking/视频", destination: "/ranking/video", permanent: true },
{ source: "/ranking/视频/:path*", destination: "/ranking/video/:path*", permanent: true },
// 专题排序段:中文 → 英文
{ source: "/topic/:kind/:key/编辑排序", destination: "/topic/:kind/:key/editorial", permanent: true },
{ source: "/topic/:kind/:key/编辑排序/:page", destination: "/topic/:kind/:key/editorial/:page", permanent: true },
{ source: "/topic/:kind/:key/最新", destination: "/topic/:kind/:key/latest", permanent: true },
{ source: "/topic/:kind/:key/最新/:page", destination: "/topic/:kind/:key/latest/:page", permanent: true },
{ source: "/topic/:kind/:key/最热", destination: "/topic/:kind/:key/hot", permanent: true },
{ source: "/topic/:kind/:key/最热/:page", destination: "/topic/:kind/:key/hot/:page", permanent: true },
];
},
async rewrites() {
if (!apiProxyTarget) return [];
return [
{
source: "/api/:path*",
destination: `${apiProxyTarget}/api/:path*`,
},
// 加密 HLS:相对路径经同域代理(对齐 hkdj-web / 1045)
{
source: "/h5/m3u8/:path*",
destination: `${apiProxyTarget}/h5/m3u8/:path*`,
},
{
source: "/enkey",
destination: `${apiProxyTarget}/enkey`,
},
{
source: "/enkey/:path*",
destination: `${apiProxyTarget}/enkey/:path*`,
},
{
source: "/newenkey",
destination: `${apiProxyTarget}/newenkey`,
},
{
source: "/newenkey/:path*",
destination: `${apiProxyTarget}/newenkey/:path*`,
},
];
},
};
export default nextConfig;
+67
View File
@@ -0,0 +1,67 @@
{
"name": "jha-1046-hjsq-web",
"version": "1.0.0",
"private": true,
"scripts": {
"dev": "tsx scripts/next-env.ts development dev",
"dev:test": "tsx scripts/next-env.ts test dev",
"build": "tsx scripts/next-env.ts production build",
"build:dev": "tsx scripts/next-env.ts development build",
"build:test": "tsx scripts/next-env.ts test build",
"start": "tsx scripts/next-env.ts production start",
"start:dev": "tsx scripts/next-env.ts development start",
"start:test": "tsx scripts/next-env.ts test start",
"lint": "eslint",
"bundle": "tsx scripts/package-standalone.ts production",
"bundle:test": "tsx scripts/package-standalone.ts test",
"bundle:linux": "tsx scripts/prepare-production-runtime.ts",
"package:prod": "bash scripts/package-prod.sh --package-only",
"pack:gz": "bash scripts/package-prod.sh",
"pack:gz:only": "bash scripts/package-prod.sh --package-only",
"pack:gz:test": "bash scripts/package-test.sh",
"pack:gz:test:only": "bash scripts/package-test.sh --package-only",
"deploy:test": "bash deploy_test.sh",
"deploy:prod": "bash deploy_prod.sh"
},
"dependencies": {
"@heroui/react": "^3.2.6",
"@heroui/styles": "^3.2.6",
"@internationalized/date": "^3.12.4",
"@react-aria/ssr": "^3.10.1",
"@react-aria/utils": "^3.34.1",
"dotenv": "^17.4.2",
"next": "16.4.1",
"qrcode.react": "^4.2.0",
"react": "19.3.0",
"react-aria": "^3.53.1",
"react-aria-components": "^1.22.1",
"react-dom": "19.3.0",
"swiper": "^14.3.0",
"web-streams-polyfill": "^4.3.0",
"xgplayer": "^3.0.26",
"xgplayer-hls": "^3.0.26"
},
"devDependencies": {
"@tailwindcss/turbopack": "^4",
"@types/node": "^20",
"@types/react": "^19",
"@types/react-dom": "^19",
"eslint": "^9",
"eslint-config-next": "16.4.1",
"tailwindcss": "^4",
"tsx": "^4.20.0",
"typescript": "^5"
},
"packageManager": "pnpm@10.32.1",
"engines": {
"node": ">=20.9.0"
},
"type": "module",
"browserslist": [
"chrome >= 80",
"android >= 5",
"ios >= 13",
"safari >= 13",
"not dead"
]
}
+5251
View File
File diff suppressed because it is too large Load Diff
+4
View File
@@ -0,0 +1,4 @@
<?xml version="1.0"?>
<users>
<user>431F89B229D3A00661DAF708E5C24BC0</user>
</users>
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 434 KiB

+1
View File
@@ -0,0 +1 @@
<svg fill="none" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M14.5 13.5V5.41a1 1 0 0 0-.3-.7L9.8.29A1 1 0 0 0 9.08 0H1.5v13.5A2.5 2.5 0 0 0 4 16h8a2.5 2.5 0 0 0 2.5-2.5m-1.5 0v-7H8v-5H3v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1M9.5 5V2.12L12.38 5zM5.13 5h-.62v1.25h2.12V5zm-.62 3h7.12v1.25H4.5zm.62 3h-.62v1.25h7.12V11z" clip-rule="evenodd" fill="#666" fill-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 391 B

+1
View File
@@ -0,0 +1 @@
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><g clip-path="url(#a)"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.27 14.1a6.5 6.5 0 0 0 3.67-3.45q-1.24.21-2.7.34-.31 1.83-.97 3.1M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16m.48-1.52a7 7 0 0 1-.96 0H7.5a4 4 0 0 1-.84-1.32q-.38-.89-.63-2.08a40 40 0 0 0 3.92 0q-.25 1.2-.63 2.08a4 4 0 0 1-.84 1.31zm2.94-4.76q1.66-.15 2.95-.43a7 7 0 0 0 0-2.58q-1.3-.27-2.95-.43a18 18 0 0 1 0 3.44m-1.27-3.54a17 17 0 0 1 0 3.64 39 39 0 0 1-4.3 0 17 17 0 0 1 0-3.64 39 39 0 0 1 4.3 0m1.1-1.17q1.45.13 2.69.34a6.5 6.5 0 0 0-3.67-3.44q.65 1.26.98 3.1M8.48 1.5l.01.02q.41.37.84 1.31.38.89.63 2.08a40 40 0 0 0-3.92 0q.25-1.2.63-2.08a4 4 0 0 1 .85-1.32 7 7 0 0 1 .96 0m-2.75.4a6.5 6.5 0 0 0-3.67 3.44 29 29 0 0 1 2.7-.34q.31-1.83.97-3.1M4.58 6.28q-1.66.16-2.95.43a7 7 0 0 0 0 2.58q1.3.27 2.95.43a18 18 0 0 1 0-3.44m.17 4.71q-1.45-.12-2.69-.34a6.5 6.5 0 0 0 3.67 3.44q-.65-1.27-.98-3.1" fill="#666"/></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h16v16H0z"/></clipPath></defs></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

+1
View File
@@ -0,0 +1 @@
google-site-verification: google5ce6ca462e54c213.html
+3
View File
@@ -0,0 +1,3 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M17.2288 7.08904C17.4965 7.08904 17.7234 7.17341 17.9096 7.34214C18.0958 7.51085 18.1889 7.71739 18.1889 7.96173V13.1108C18.1889 13.3435 18.0958 13.5442 17.9096 13.7129C17.7234 13.8816 17.4965 13.966 17.2288 13.966H16.9147C16.6471 13.966 16.4202 13.8816 16.234 13.7129C16.0478 13.5442 15.9547 13.3435 15.9547 13.1108V7.96173C15.9547 7.71739 16.0478 7.51081 16.234 7.34214C16.4201 7.17341 16.6471 7.08902 16.9147 7.08902L17.2288 7.08904ZM3.07346 7.08904C3.34109 7.08904 3.56217 7.17341 3.73672 7.34214C3.91127 7.51085 3.99855 7.71739 3.99855 7.96173V13.1108C3.99855 13.3435 3.91129 13.5442 3.73672 13.7129C3.56217 13.8816 3.34109 13.966 3.07344 13.966H2.7593C2.49166 13.966 2.26477 13.8816 2.07857 13.7129C1.8924 13.5442 1.79932 13.3435 1.79932 13.1108V7.96173C1.79932 7.71739 1.8924 7.51081 2.07857 7.34214C2.26477 7.17341 2.49166 7.08902 2.7593 7.08902H3.07348L3.07346 7.08904ZM12.7082 3.03962C12.9177 3.13273 13.1358 3.26072 13.3628 3.42363C13.5896 3.58652 13.8078 3.77853 14.0173 3.99962C14.2264 4.2203 14.4108 4.46321 14.5671 4.724C14.7242 4.98579 14.8377 5.26216 14.9075 5.55308H4.9934C5.17961 4.93634 5.4734 4.43017 5.87484 4.03452C6.27631 3.63888 6.68066 3.32472 7.08793 3.092L6.19777 1.69564C6.17449 1.67239 6.1716 1.62874 6.18904 1.56476C6.20648 1.50077 6.26758 1.43386 6.3723 1.36406C6.46541 1.28259 6.55266 1.24478 6.63412 1.25058C6.71557 1.25644 6.76795 1.27095 6.79119 1.29423L7.69883 2.72548C8.02463 2.57423 8.36789 2.45784 8.72861 2.3764C9.08936 2.29495 9.4617 2.25423 9.84568 2.25423C10.6369 2.25423 11.3759 2.41712 12.0624 2.74296L12.9874 1.29425C13.0107 1.27097 13.0544 1.25935 13.1184 1.25935C13.1824 1.25935 13.2784 1.29425 13.4063 1.36409C13.5227 1.42228 13.5896 1.47462 13.6071 1.52118C13.6245 1.56773 13.6216 1.60263 13.5984 1.62589L12.7082 3.03964L12.7082 3.03962ZM7.83846 4.54072C7.98971 4.54072 8.11774 4.48833 8.22244 4.38363C8.32717 4.2789 8.37955 4.15089 8.37955 3.99964C8.37955 3.84837 8.32717 3.72034 8.22246 3.61566C8.11773 3.51089 7.98971 3.45855 7.83846 3.45855C7.68721 3.45855 7.5592 3.51089 7.45447 3.61564C7.34973 3.72034 7.29736 3.84837 7.29736 3.99962C7.29736 4.15089 7.34973 4.27892 7.45445 4.38361C7.5592 4.48833 7.68721 4.54072 7.83846 4.54072ZM12.1322 4.47087C12.2835 4.47087 12.4115 4.41853 12.5162 4.31378C12.6209 4.20906 12.6733 4.08105 12.6733 3.9298C12.6733 3.77853 12.6209 3.65054 12.5162 3.54579C12.4115 3.44109 12.2835 3.38872 12.1322 3.38872C11.9809 3.38872 11.853 3.44107 11.7482 3.54579C11.6435 3.65054 11.5912 3.77853 11.5912 3.92982C11.5912 4.08105 11.6435 4.20906 11.7482 4.3138C11.853 4.41853 11.9809 4.47087 12.1322 4.47087ZM14.9075 6.65267L14.9249 14.5071C14.9249 14.7631 14.8405 14.9784 14.6718 15.1529C14.5031 15.3275 14.2966 15.4147 14.0522 15.4147H13.8078V17.8584C13.8078 18.0911 13.7234 18.2947 13.5547 18.4692C13.386 18.6438 13.1795 18.731 12.9351 18.731H12.4289C12.1962 18.731 11.9955 18.6438 11.8268 18.4692C11.6581 18.2947 11.5737 18.091 11.5737 17.8584V15.4147H8.36213V17.8583C8.36213 18.091 8.27772 18.2947 8.109 18.4692C7.94029 18.6438 7.73375 18.731 7.4894 18.731H6.98322C6.75049 18.731 6.54975 18.6438 6.38105 18.4692C6.21231 18.2947 6.12793 18.091 6.12793 17.8583V15.4147H5.93594C5.6916 15.4147 5.48506 15.3275 5.31633 15.1529C5.14762 14.9784 5.06326 14.7631 5.06326 14.5071V6.65267H14.9075Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7.875 6L10.875 9L7.875 12" stroke="white" stroke-opacity="0.55" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 245 B

+3
View File
@@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.9457 9.54601C11.773 9.71335 11.6937 9.95535 11.733 10.1927L12.3257 13.4727C12.3757 13.7507 12.2584 14.032 12.0257 14.1927C11.7977 14.3593 11.4944 14.3793 11.2457 14.246L8.29305 12.706C8.19038 12.6513 8.07638 12.622 7.95971 12.6187H7.77905C7.71638 12.628 7.65505 12.648 7.59905 12.6787L4.64571 14.226C4.49971 14.2993 4.33438 14.3253 4.17238 14.2993C3.77771 14.2247 3.51438 13.8487 3.57905 13.452L4.17238 10.172C4.21171 9.93268 4.13238 9.68935 3.95971 9.51935L1.55238 7.18602C1.35105 6.99068 1.28105 6.69735 1.37305 6.43268C1.46238 6.16868 1.69038 5.97602 1.96571 5.93268L5.27905 5.45202C5.53105 5.42602 5.75238 5.27268 5.86571 5.04602L7.32571 2.05268C7.36038 1.98602 7.40505 1.92468 7.45905 1.87268L7.51905 1.82602C7.55038 1.79135 7.58638 1.76268 7.62638 1.73935L7.69905 1.71268L7.81238 1.66602H8.09305C8.34371 1.69202 8.56438 1.84202 8.67971 2.06602L10.159 5.04602C10.2657 5.26402 10.473 5.41535 10.7124 5.45202L14.0257 5.93268C14.3057 5.97268 14.5397 6.16602 14.6324 6.43268C14.7197 6.70002 14.6444 6.99335 14.439 7.18602L11.9457 9.54601Z" fill="#EBE5F2"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M21.5037 4H8.49635C6.08759 4 4 6.1581 4 8.64822V17.9447C4 20.4348 6.08759 22.5929 8.49635 22.5929H8.9781C8.9781 22.5929 8.9781 22.7589 9.13869 22.7589L10.9051 24.751C11.2263 25.083 11.708 25.083 11.8686 24.751L13.4745 22.9249L13.635 22.7589H21.5037C23.9124 22.7589 26 20.6008 26 18.1107V8.64822C26 6.1581 23.9124 4 21.5037 4ZM8.81752 15.1225C7.85401 15.1225 7.21168 14.2925 7.21168 13.2964C7.21168 12.3004 8.0146 11.4704 8.9781 11.4704C9.94161 11.4704 10.7445 12.3004 10.7445 13.2964C10.5839 14.2925 9.78102 15.1225 8.81752 15.1225ZM14.9197 15.1225C13.9562 15.1225 13.1533 14.2925 13.1533 13.2964C13.1533 12.3004 13.9562 11.4704 14.9197 11.4704C15.8832 11.4704 16.6861 12.3004 16.6861 13.2964C16.6861 14.2925 15.8832 15.1225 14.9197 15.1225ZM21.1825 15.1225C20.219 15.1225 19.4161 14.2925 19.4161 13.2964C19.4161 12.3004 20.219 11.4704 21.1825 11.4704C22.146 11.4704 22.9489 12.3004 22.9489 13.2964C22.7883 14.2925 21.9854 15.1225 21.1825 15.1225Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

+12
View File
@@ -0,0 +1,12 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_4356_17223)">
<circle cx="12" cy="12" r="12" fill="#F12B9E" fill-opacity="0.1"/>
<ellipse cx="12" cy="15.375" rx="6" ry="2.625" fill="#F12B9E"/>
<path d="M9 8.625C9 6.76104 10.511 5.25 12.375 5.25H14.25C14.6642 5.25 15 5.58579 15 6V9C15 10.6569 13.6569 12 12 12C10.3431 12 9 10.6569 9 9V8.625Z" fill="#F12B9E"/>
</g>
<defs>
<clipPath id="clip0_4356_17223">
<path d="M0 12C0 5.37258 5.37258 0 12 0C18.6274 0 24 5.37258 24 12C24 18.6274 18.6274 24 12 24C5.37258 24 0 18.6274 0 12Z" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 643 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

+6
View File
@@ -0,0 +1,6 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.1631 4L17.9639 7.80081L7.80081 17.9639L4.00357 17.9603L4 14.1631L14.1631 4Z" stroke="white" stroke-width="1.5" stroke-linecap="square"/>
<path d="M14.7239 10.207L11.7377 7.22084" stroke="white" stroke-width="1.5" stroke-linecap="square"/>
<path d="M17.4989 20.3018H17.5089" stroke="#E5365C" stroke-width="1.5" stroke-linecap="square" stroke-linejoin="round"/>
<path d="M17.4219 17.4603C17.8468 17.4591 18.259 17.3278 18.5925 17.0874C18.926 16.847 19.1615 16.5115 19.2613 16.1345C19.3611 15.7575 19.3195 15.3609 19.1431 15.0081C18.9667 14.6552 18.6657 14.3666 18.2882 14.1884C17.9111 14.0121 17.4798 13.9574 17.0643 14.0333C16.6489 14.1092 16.2737 14.3111 16 14.6063" stroke="#E5365C" stroke-width="1.38889" stroke-linecap="square" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 873 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M22.5937 9.02503H23.7499C24.0815 9.02503 24.3994 9.15673 24.6338 9.39115C24.8682 9.62557 24.9999 9.94351 24.9999 10.275V16.525C24.9999 16.8566 24.8682 17.1745 24.6338 17.4089C24.3994 17.6433 24.0815 17.775 23.7499 17.775H21.4743L16.2437 10.2188L15.6356 9.35753L11.9131 11.0763C11.6725 11.1873 11.4028 11.2191 11.1431 11.1669C10.0068 10.9388 9.62556 10.5413 9.99931 9.97378C10.3612 9.42441 11.9012 8.31941 14.6199 6.65753C14.6912 6.61378 14.7649 6.57628 14.8406 6.54628C15.9824 6.00878 17.2856 6.20253 18.7493 7.12816C19.9594 7.89544 21.248 8.53133 22.5931 9.02503H22.5937ZM5.85369 17.7107C5.60502 17.6275 5.38878 17.4683 5.23556 17.2556C5.08235 17.0428 4.99992 16.7872 4.99994 16.525V10.275C4.99994 9.94351 5.13163 9.62557 5.36606 9.39115C5.60048 9.15673 5.91842 9.02503 6.24994 9.02503H9.13244L9.12744 9.02941C8.95343 9.18616 8.8155 9.3788 8.72318 9.59403C8.63086 9.80927 8.58634 10.042 8.5927 10.2761C8.59905 10.5102 8.65614 10.7401 8.76 10.9501C8.86387 11.16 9.01205 11.3448 9.19431 11.4919C9.64481 11.8555 10.1817 12.0965 10.7527 12.1914C11.3238 12.2864 11.9098 12.2321 12.4537 12.0338L15.2656 11.0088L17.2374 13.8588C17.2981 13.9169 17.3527 13.981 17.4006 14.05L20.8568 19.045C20.9589 19.1926 21.028 19.3604 21.0595 19.5371C21.0909 19.7138 21.084 19.8951 21.0391 20.0689C20.9942 20.2426 20.9124 20.4046 20.7993 20.544C20.6862 20.6833 20.5445 20.7966 20.3837 20.8763L14.8624 23.6082C14.6062 23.735 14.3249 23.7663 14.0624 23.7132L14.2668 23.5063C14.7294 23.0383 14.9888 22.4068 14.9888 21.7488C14.9888 21.0908 14.7294 20.4593 14.2668 19.9913L10.2668 15.9438C10.0924 15.7673 9.88473 15.6272 9.65578 15.5315C9.42684 15.4359 9.18118 15.3866 8.93306 15.3866C8.68494 15.3866 8.43929 15.4359 8.21034 15.5315C7.9814 15.6272 7.77371 15.7673 7.59931 15.9438L5.85306 17.7107H5.85369ZM9.77244 17.1732L13.3199 20.7619C13.4729 20.9168 13.5828 21.1089 13.6387 21.3192C13.6946 21.5296 13.6946 21.7509 13.6387 21.9613L13.4599 22.6382C13.4197 22.7899 13.343 22.9296 13.2364 23.045C13.1299 23.1603 12.9968 23.2479 12.8487 23.3001C12.7005 23.3523 12.5419 23.3675 12.3866 23.3444C12.2313 23.3213 12.0839 23.2606 11.9574 23.1675L7.39619 19.8125C7.25165 19.7062 7.1317 19.57 7.0445 19.4131C6.9573 19.2563 6.90489 19.0825 6.89084 18.9036C6.87679 18.7247 6.90142 18.5449 6.96306 18.3763C7.0247 18.2078 7.1219 18.0545 7.24806 17.9269L7.99369 17.1719C8.10995 17.0543 8.24839 16.9609 8.40101 16.8971C8.55362 16.8334 8.71736 16.8006 8.88275 16.8006C9.04814 16.8006 9.21188 16.8334 9.3645 16.8971C9.51711 16.9609 9.65556 17.0543 9.77181 17.1719L9.77244 17.1732Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M19.6191 3.65516C19.6191 3.65516 21.5611 2.89716 21.3991 4.73716C21.3461 5.49416 20.8601 8.14516 20.4821 11.0132L19.1871 19.5082C19.1871 19.5082 19.0791 20.7522 18.1071 20.9682C17.1371 21.1852 15.6801 20.2112 15.4101 19.9952C15.1941 19.8332 11.3631 17.3982 10.0131 16.2072C9.63609 15.8832 9.20409 15.2332 10.0681 14.4762L15.7341 9.06616C16.3811 8.41616 17.0291 6.90116 14.3311 8.74116L6.77609 13.8812C6.77609 13.8812 5.91209 14.4212 4.29409 13.9352L0.786088 12.8532C0.786088 12.8532 -0.508912 12.0412 1.70309 11.2302C7.10009 8.68516 13.7371 6.09016 19.6191 3.65416V3.65516Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 702 B

+3
View File
@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M18.244 2.25H21.552L14.325 10.51L22.827 21.75H16.17L10.956 14.933L4.99001 21.75H1.68003L9.41002 12.915L1.25403 2.25H8.08004L12.793 8.481L18.244 2.25ZM17.083 19.77H18.916L7.08401 4.12601H5.117L17.083 19.77Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 334 B

+3
View File
@@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.00004 14.6673C4.32004 14.6673 1.33337 11.6873 1.33337 8.00065C1.33337 4.32065 4.32004 1.33398 8.00004 1.33398C11.6867 1.33398 14.6667 4.32065 14.6667 8.00065C14.6667 11.6873 11.6867 14.6673 8.00004 14.6673ZM10.1267 10.474C10.2067 10.5207 10.2934 10.5473 10.3867 10.5473C10.5534 10.5473 10.72 10.4607 10.8134 10.3007C10.9534 10.0673 10.88 9.76065 10.64 9.61398L8.26671 8.20065V5.12065C8.26671 4.84065 8.04004 4.62065 7.76671 4.62065C7.49337 4.62065 7.26671 4.84065 7.26671 5.12065V8.48732C7.26671 8.66065 7.36004 8.82065 7.51337 8.91398L10.1267 10.474Z" fill="#EBE5F2"/>
</svg>

After

Width:  |  Height:  |  Size: 725 B

+3
View File
@@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.68029 1.8439L13.569 5.35274C13.8054 5.52246 13.9981 5.74604 14.131 6.005C14.2639 6.26395 14.3333 6.55083 14.3333 6.8419V12.5002C14.3333 13.5127 13.5125 14.3336 12.5 14.3336H9.99996V11.6669C9.99996 10.5624 9.10446 9.6669 7.99996 9.6669C6.89546 9.6669 5.99996 10.5624 5.99996 11.6669V14.3336H3.49996C2.48746 14.3336 1.66663 13.5127 1.66663 12.5002V6.84207C1.66664 6.55097 1.73597 6.26406 1.86888 6.00507C2.00179 5.74609 2.19447 5.52247 2.43096 5.35274L7.31963 1.8439C7.51792 1.70156 7.75587 1.625 7.99996 1.625C8.24405 1.625 8.482 1.70156 8.68029 1.8439Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 684 B

+3
View File
@@ -0,0 +1,3 @@
<svg width="9" height="12" viewBox="0 0 9 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7.45185 3.97068C9.32729 5.62903 9.52614 8.51894 7.89569 10.4261C6.26523 12.3333 3.42334 12.5346 1.54738 10.8774C-0.32858 9.2203 -0.526395 6.32973 1.10405 4.42255C2.7345 2.51537 4.41604 1.11279 4.39368 0C5.05015 0.991851 7.03206 3.13149 6.10186 5.75483C7.05492 5.48682 7.253 4.56395 7.45185 3.9707V3.97068Z" fill="#F12B9E"/>
</svg>

After

Width:  |  Height:  |  Size: 435 B

+3
View File
@@ -0,0 +1,3 @@
<svg width="22" height="21" viewBox="0 0 22 21" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M9.25731 0.913926C9.45132 0.632201 9.71152 0.401732 10.0154 0.242481C10.3192 0.08323 10.6575 0 11.001 0C11.3445 0 11.6828 0.08323 11.9867 0.242481C12.2905 0.401732 12.5507 0.632201 12.7447 0.913926L15.3437 4.68251C15.5195 4.93642 15.7769 5.12351 16.0737 5.21037L20.4841 6.50189C20.8135 6.59856 21.1142 6.7735 21.3603 7.01158C21.6064 7.24966 21.7904 7.54373 21.8965 7.86835C22.0026 8.19298 22.0276 8.53841 21.9693 8.87477C21.9109 9.21114 21.7711 9.52832 21.5617 9.79892L18.7581 13.4195C18.5689 13.6639 18.47 13.9655 18.4796 14.2729L18.6054 18.8405C18.6148 19.1817 18.5404 19.52 18.3886 19.8263C18.2369 20.1325 18.0124 20.3974 17.7346 20.598C17.4567 20.7987 17.1339 20.9291 16.794 20.978C16.4541 21.0268 16.1073 20.9926 15.7836 20.8784L11.452 19.3473C11.16 19.2441 10.8411 19.2441 10.5491 19.3473L6.21747 20.8784C5.89381 20.9929 5.54696 21.0272 5.20694 20.9785C4.86692 20.9297 4.54398 20.7993 4.26607 20.5986C3.98816 20.3979 3.76366 20.1329 3.61199 19.8266C3.46033 19.5202 3.38607 19.1817 3.39565 18.8405L3.52243 14.2729C3.53106 13.9651 3.43269 13.6637 3.24389 13.4195L0.43936 9.79892C0.229598 9.52832 0.0893836 9.21098 0.0308657 8.87438C-0.0276522 8.53778 -0.00270912 8.19208 0.103534 7.86722C0.209777 7.54237 0.394116 7.24816 0.640579 7.01008C0.887043 6.772 1.1882 6.59724 1.51795 6.50093L5.92741 5.20847C6.22515 5.12256 6.48255 4.93546 6.65736 4.68155L9.25731 0.912972V0.913926Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

+10
View File
@@ -0,0 +1,10 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.001 16.541C11.587 16.541 11.251 16.205 11.251 15.791V3.75C11.251 3.336 11.587 3 12.001 3C12.415 3 12.751 3.336 12.751 3.75V15.791C12.751 16.205 12.415 16.541 12.001 16.541Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.0011 16.541C11.8021 16.541 11.6101 16.462 11.4701 16.32L8.55407 13.393C8.26207 13.099 8.26307 12.624 8.55607 12.332C8.85007 12.04 9.32407 12.04 9.61607 12.334L12.0011 14.729L14.3861 12.334C14.6781 12.04 15.1521 12.04 15.4461 12.332C15.7391 12.624 15.7401 13.099 15.4481 13.393L12.5321 16.32C12.3921 16.462 12.2001 16.541 12.0011 16.541Z" fill="white"/>
<mask id="mask0_4446_15962" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="2" y="7" width="20" height="15">
<path fill-rule="evenodd" clip-rule="evenodd" d="M2.00024 7.73242H22V21.4764H2.00024V7.73242Z" fill="white"/>
</mask>
<g mask="url(#mask0_4446_15962)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M17.5752 21.4764H6.43524C3.99024 21.4764 2.00024 19.4874 2.00024 17.0414V12.1564C2.00024 9.71642 3.98524 7.73242 6.42624 7.73242H7.36724C7.78124 7.73242 8.11724 8.06842 8.11724 8.48242C8.11724 8.89642 7.78124 9.23242 7.36724 9.23242H6.42624C4.81224 9.23242 3.50024 10.5434 3.50024 12.1564V17.0414C3.50024 18.6604 4.81624 19.9764 6.43524 19.9764H17.5752C19.1872 19.9764 20.5002 18.6634 20.5002 17.0514V12.1674C20.5002 10.5484 19.1832 9.23242 17.5662 9.23242H16.6342C16.2202 9.23242 15.8842 8.89642 15.8842 8.48242C15.8842 8.06842 16.2202 7.73242 16.6342 7.73242H17.5662C20.0112 7.73242 22.0002 9.72242 22.0002 12.1674V17.0514C22.0002 19.4914 20.0142 21.4764 17.5752 21.4764Z" fill="white"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M18 5.18754L12.7463 0L0 12.5857L0.00468579 17.7687H0.0103087V17.9991L17.4049 18V16.612H6.42984L18 5.18754Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 275 B

+3
View File
@@ -0,0 +1,3 @@
<svg width="18" height="16" viewBox="0 0 18 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M9.86557 15.7314C9.3385 16.0897 8.66224 16.0897 8.13564 15.7304C6.6909 14.745 5.6664 14.1472 3.75858 12.524C-4.52307 6.04287 2.54537 -3.88171 8.99967 1.58305C15.4375 -3.87772 22.5318 6.0274 14.2408 12.524C12.3447 14.1387 11.3042 14.7529 9.86557 15.7314Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 382 B

+3
View File
@@ -0,0 +1,3 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M16.5208 7.77456C16.017 7.77325 15.5197 7.66441 15.0635 7.45569C14.6074 7.24696 14.2036 6.94338 13.8803 6.56623L9.53973 8.58588C9.76828 9.12026 9.88395 9.69419 9.87982 10.2733C9.87569 10.8523 9.75184 11.4247 9.51569 11.9559L12.9487 13.6921C13.418 12.9583 14.1511 12.4222 15.0043 12.1887C15.8576 11.9552 16.7693 12.0413 17.5609 12.4301C18.3525 12.8189 18.9668 13.4823 19.2834 14.2902C19.6 15.0982 19.596 15.9925 19.2723 16.7978C18.9485 17.603 18.3284 18.2612 17.5334 18.6432C16.7384 19.0253 15.8258 19.1037 14.9747 18.863C14.1236 18.6223 13.3953 18.08 12.9325 17.3423C12.4697 16.6045 12.3058 15.7247 12.4731 14.8751L8.81557 13.0228C8.22859 13.7043 7.44038 14.1921 6.55866 14.4196C5.67695 14.6472 4.74476 14.6034 3.88953 14.2941C3.0343 13.9849 2.29777 13.4253 1.78061 12.692C1.26345 11.9586 0.990907 11.0872 1.00023 10.1969C1.00956 9.30659 1.3003 8.44082 1.83271 7.71793C2.36512 6.99504 3.11322 6.45032 3.97474 6.15822C4.83627 5.86611 5.76918 5.84089 6.64594 6.08599C7.52271 6.3311 8.30054 6.83457 8.87312 7.52758L13.2497 5.49002C13.0102 4.8109 12.998 4.07504 13.2149 3.38871C13.4318 2.70238 13.8665 2.10113 14.4563 1.67179C15.0461 1.24245 15.7605 1.00725 16.4961 1.00016C17.2318 0.993081 17.9507 1.21448 18.5491 1.63238C19.1475 2.05028 19.5943 2.64305 19.825 3.32506C20.0557 4.00708 20.0584 4.74304 19.8326 5.42664C19.6069 6.11024 19.1644 6.70609 18.5691 7.12813C17.9738 7.55017 17.2565 7.77654 16.5208 7.77456Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.1952 4.62083C10.4262 4.6156 10.6557 4.58382 10.8794 4.52609H10.9847C11.2271 4.44642 11.46 4.34053 11.6794 4.2103H11.7742C11.9855 4.09487 12.1863 3.96102 12.3742 3.8103L12.4478 3.74714C12.6373 3.58628 12.8133 3.41026 12.9742 3.22083L13.0373 3.15767C13.198 2.95912 13.3423 2.74791 13.4689 2.52609V2.45241C13.5945 2.22332 13.7002 1.98384 13.7847 1.73662V1.68398C13.8694 1.43074 13.9293 1.16986 13.9636 0.905037C13.9943 0.632213 13.9943 0.356809 13.9636 0.0839844C12.8566 0.205025 11.8355 0.737428 11.1025 1.57573C10.3695 2.41402 9.97803 3.49706 10.0057 4.6103L10.1952 4.62083ZM15.8794 12.0314C15.6723 11.4948 15.5757 10.922 15.5952 10.3471C15.6095 9.96427 15.6768 9.58523 15.7952 9.22083C15.9172 8.84762 16.0908 8.49331 16.311 8.1682C16.6776 7.62919 17.1504 7.17071 17.7005 6.82083C17.3497 6.31983 16.903 5.89345 16.3862 5.5664C15.8694 5.23934 15.2929 5.01812 14.6899 4.91556C14.4641 4.87145 14.2355 4.84331 14.0057 4.83135H12.7321L12.4268 4.91556L12.1952 4.98925L11.9005 5.09451L11.6899 5.26293L11.3426 5.39977L11.0584 5.51556L10.8584 5.58925L10.6163 5.66293H10.4794C10.371 5.67537 10.2615 5.67537 10.1531 5.66293C10.0481 5.67393 9.94229 5.67393 9.83731 5.66293H9.72152L9.48995 5.59977L9.32152 5.53662L9.07942 5.47346L8.67942 5.31556L8.52152 5.26293L8.23731 5.15767L8.04784 5.09451L7.78468 5.0103H7.58468L7.311 4.95767H7.10047L6.84784 4.88398C6.2012 4.88753 5.56136 5.01621 4.96363 5.26293C3.89859 5.7342 3.00365 6.5207 2.39946 7.51638C1.79528 8.51205 1.51091 9.66904 1.58468 10.8314V11.884C1.58468 11.9682 1.58468 12.2629 1.65837 12.4524C1.73205 12.6419 1.65837 12.6629 1.72152 12.7682C1.78468 12.8735 1.78468 13.105 1.82679 13.2735C1.86889 13.4419 1.88995 13.4945 1.92152 13.5998C1.9531 13.705 2.00573 13.9156 2.05837 14.0735C2.111 14.2314 2.14258 14.305 2.18468 14.4208L2.34258 14.8629L2.48995 15.1998C2.5531 15.3366 2.60573 15.484 2.66889 15.6208L2.82679 15.9366L3.03731 16.3471L3.21626 16.6524L3.43731 17.0314L3.62679 17.3156L3.85837 17.6629L4.05837 17.9261L4.30047 18.2314L4.511 18.4735L4.7531 18.7366L4.97416 18.9471L5.21626 19.1682L5.43731 19.3366L5.67942 19.5156L5.90047 19.6419L6.13205 19.7682L6.34258 19.8419L6.57416 19.9156L6.84784 19.9998H7.08995C7.37603 19.9891 7.65933 19.9395 7.93205 19.8524C8.70356 19.4654 9.54455 19.2364 10.4057 19.1787C10.581 19.1668 10.7568 19.1668 10.9321 19.1787H11.1005L11.3847 19.2419L11.5636 19.2945L11.7847 19.3682L11.9742 19.4419L12.2478 19.5577L12.4899 19.6629L12.6478 19.7156L12.8584 19.7892H13.7531C14.4561 19.7288 15.1156 19.4233 15.6163 18.9261C16.5867 17.9996 17.3757 16.9001 17.9426 15.684C18.1209 15.3555 18.2825 15.0182 18.4268 14.6735C17.2639 14.1611 16.3489 13.2122 15.8794 12.0314Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.5 5H19.5M4.5 12H19.5M4.5 19H19.5" stroke="#656565" stroke-width="2" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 208 B

+3
View File
@@ -0,0 +1,3 @@
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6 4L9 7L6 10" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" stroke="#8F8F9F"/>
</svg>

After

Width:  |  Height:  |  Size: 210 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.6313 1.77777C11.7308 1.778 12.6216 2.66946 12.6216 3.76898V12.7289C12.6216 13.8285 11.7308 14.7199 10.6313 14.7202H4.65771C3.55806 14.7202 2.66651 13.8286 2.6665 12.7289V3.76898C2.6665 2.66932 3.55805 1.77777 4.65771 1.77777H10.6313ZM7.64404 11.2358C7.09436 11.2359 6.64893 11.6821 6.64893 12.2319C6.64912 12.7814 7.09448 13.2268 7.64404 13.227C8.19375 13.227 8.63994 12.7815 8.64014 12.2319C8.64014 11.682 8.19387 11.2358 7.64404 11.2358ZM6.15088 2.27582C5.87601 2.27587 5.65283 2.49898 5.65283 2.77386C5.65309 3.04853 5.87617 3.27089 6.15088 3.27094H9.13721C9.41196 3.27094 9.63499 3.04856 9.63525 2.77386C9.63525 2.49895 9.41212 2.27582 9.13721 2.27582H6.15088Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 797 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 516 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7.60471 11.5419C7.60471 13.3238 6.1602 14.7683 4.37829 14.7683C2.59638 14.7683 1.15186 13.3238 1.15186 11.5419C1.15186 9.75997 2.59638 8.31546 4.37829 8.31546H6.52923H7.60471V9.39094V11.5419ZM8.32171 11.5419C8.32171 13.3238 9.76622 14.7683 11.5481 14.7683C13.33 14.7683 14.7746 13.3238 14.7746 11.5419C14.7746 9.75997 13.33 8.31546 11.5481 8.31546H9.39719H8.32171V9.39094V11.5419ZM7.60471 4.37205C7.60471 2.59012 6.1602 1.14563 4.37829 1.14563C2.59638 1.14563 1.15186 2.59012 1.15186 4.37205C1.15186 6.15398 2.59638 7.59847 4.37829 7.59847H6.52923H7.60471V6.52299V4.37205ZM8.32171 4.37205C8.32171 2.59012 9.76622 1.14563 11.5481 1.14563C13.33 1.14563 14.7746 2.59014 14.7746 4.37205C14.7746 6.15396 13.33 7.59847 11.5481 7.59847H9.39719H8.32171V6.52299V4.37205Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 891 B

+3
View File
@@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.3405 6.44377L8.04366 2.19221C7.75929 1.9094 7.30929 1.9094 7.02491 2.19221L2.72804 6.44377C2.24991 6.91565 2.57335 7.7469 3.23741 7.7469H3.61398V12.8375C3.61398 13.5344 4.16241 14.1 4.83898 14.1H10.228C10.9046 14.1 11.453 13.5344 11.453 12.8375V7.7469H11.8296C12.4952 7.7469 12.8187 6.91721 12.3405 6.44377ZM7.53429 10.8172C6.99366 10.8172 6.5546 10.3656 6.5546 9.80784C6.5546 9.25002 6.99366 8.79846 7.53429 8.79846C8.07491 8.79846 8.51398 9.25002 8.51398 9.80784C8.51398 10.3656 8.07491 10.8172 7.53429 10.8172Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 646 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 979 B

+3
View File
@@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.2289 1.84362C13.9818 1.64733 13.6872 1.51975 13.375 1.47377C13.0628 1.4278 12.744 1.46507 12.4507 1.58181L2.09438 5.68362C1.71239 5.83482 1.38135 6.09165 1.13995 6.42408C0.898559 6.7565 0.756797 7.15078 0.731242 7.5608C0.705686 7.97083 0.797395 8.37966 0.995643 8.73948C1.19389 9.09931 1.49048 9.39525 1.85074 9.59272L3.38165 10.44L3.41074 12.9854C3.41549 13.2326 3.48734 13.4739 3.61863 13.6834C3.74991 13.8929 3.93568 14.0627 4.15606 14.1748C4.37644 14.2869 4.62314 14.3369 4.86977 14.3195C5.11639 14.3022 5.35366 14.2181 5.5562 14.0764L7.53438 12.7273L10.3526 14.28C10.6587 14.4488 11.0012 14.5408 11.3507 14.5483C11.7002 14.5558 12.0463 14.4786 12.3594 14.3231C12.6725 14.1676 12.9433 13.9386 13.1486 13.6556C13.3538 13.3726 13.4874 13.0441 13.538 12.6982L14.9089 3.51272C14.9546 3.19915 14.9156 2.87909 14.7961 2.58564C14.6765 2.29219 14.4807 2.03601 14.2289 1.84362Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1005 B

+3
View File
@@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.9024 1.90607H13.9699L9.45307 7.06857L14.7668 14.0936H10.6062L7.34744 9.83294L3.61868 14.0936H1.54994L6.38119 8.57169L1.28369 1.90607H5.54995L8.49557 5.80044L11.9024 1.90607ZM11.1768 12.8561H12.3224L4.92743 3.07857H3.69805L11.1768 12.8561Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 371 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg width="142" height="142" viewBox="0 0 142 142" fill="none" xmlns="http://www.w3.org/2000/svg">
<path opacity="0.6" d="M70.833 0C109.953 0 141.667 31.713 141.667 70.833C141.667 109.953 109.953 141.667 70.833 141.667C31.713 141.667 0 109.953 0 70.833C0.000177299 31.7131 31.7131 0.000177322 70.833 0ZM64.1924 46.5508C59.2736 43.7112 53.1253 47.2608 53.125 52.9404V88.7246C53.1251 94.4045 59.2734 97.9541 64.1924 95.1143L95.1826 77.2227C100.101 74.3826 100.101 67.2823 95.1826 64.4424L64.1924 46.5508Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 527 B

+5
View File
@@ -0,0 +1,5 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M15 15V5" stroke="#F12B9E" stroke-width="1.66667" stroke-linecap="round"/>
<path d="M10 15.0003L10 10.417" stroke="#F12B9E" stroke-width="1.66667" stroke-linecap="round"/>
<path d="M5 15.0003V9.16699" stroke="#F12B9E" stroke-width="1.66667" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 378 B

+3
View File
@@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7.99963 10.1162C10.8921 10.1162 13.3336 10.587 13.3336 12.4004C13.3332 14.2141 10.8758 14.667 7.99963 14.667C5.10803 14.667 2.66663 14.1971 2.66663 12.3838C2.66678 10.57 5.12345 10.1162 7.99963 10.1162ZM7.99963 1.33398C9.95903 1.33398 11.5289 2.90332 11.5289 4.86133C11.5289 6.81935 9.95904 8.38965 7.99963 8.38965C6.04105 8.38947 4.47034 6.81924 4.47034 4.86133C4.47035 2.90343 6.04106 1.33416 7.99963 1.33398Z" fill="#EBE5F2"/>
</svg>

After

Width:  |  Height:  |  Size: 543 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

+5
View File
@@ -0,0 +1,5 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="3" y="3" width="18" height="18" rx="3" stroke="white" stroke-width="2"/>
<path d="M12 7H15C16.1046 7 17 7.89543 17 9V12" stroke="white" stroke-width="2" stroke-linecap="round"/>
<path d="M12 17L9 17C7.89543 17 7 16.1046 7 15L7 12" stroke="white" stroke-width="2" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 400 B

+12
View File
@@ -0,0 +1,12 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_4356_17220)">
<circle cx="12" cy="12" r="12" fill="#F12B9E" fill-opacity="0.1"/>
<path d="M11.2 15.4C13.5196 15.4 15.4 13.5196 15.4 11.2C15.4 8.8804 13.5196 7 11.2 7C8.88041 7 7 8.8804 7 11.2C7 13.5196 8.88041 15.4 11.2 15.4Z" fill="#F12B9E"/>
<path d="M14.1394 14.2L16 16M15.4 11.2C15.4 13.5196 13.5196 15.4 11.2 15.4C8.88041 15.4 7 13.5196 7 11.2C7 8.8804 8.88041 7 11.2 7C13.5196 7 15.4 8.8804 15.4 11.2Z" stroke="#F12B9E" stroke-width="2" stroke-linecap="round"/>
</g>
<defs>
<clipPath id="clip0_4356_17220">
<path d="M0 12C0 5.37258 5.37258 0 12 0C18.6274 0 24 5.37258 24 12C24 18.6274 18.6274 24 12 24C5.37258 24 0 18.6274 0 12Z" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 799 B

+3
View File
@@ -0,0 +1,3 @@
<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M16.25 18.5004C16.25 17.9481 15.8023 17.5004 15.25 17.5004H13.75C11.6995 17.4996 9.68779 18.0593 7.93234 19.119C6.46694 20.0036 5.22666 21.2085 4.30157 22.6382C4.14181 22.8851 3.74985 22.7944 3.75 22.5004C3.75 15.9332 8.81391 10.5491 15.2501 10.0398C15.8007 9.99619 16.25 9.55264 16.25 9.00035V5.83098C16.25 4.99247 17.2199 4.5263 17.8747 5.05011L27.7739 12.9695C28.2743 13.3698 28.2743 14.1309 27.7739 14.5312L17.8747 22.4506C17.2199 22.9744 16.25 22.5082 16.25 21.6697V18.5004Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 608 B

+3
View File
@@ -0,0 +1,3 @@
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M15.8791 4.81169L15.0024 3.93506L14.1258 3.05844M6.91802 1.5H10.6193M13.5414 5.3961L15.0024 3.93506M9.57833 8.22078L8.31818 9.48093L9.57833 10.7411L8.31818 12.0012M15.2946 10.0714C15.2946 13.6218 12.4165 16.5 8.86607 16.5C5.31567 16.5 2.4375 13.6218 2.4375 10.0714C2.4375 6.52103 5.31567 3.64286 8.86607 3.64286C12.4165 3.64286 15.2946 6.52103 15.2946 10.0714Z" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 557 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

+5
View File
@@ -0,0 +1,5 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M9.99837 1.66602C5.39837 1.66602 1.66504 5.39935 1.66504 9.99935C1.66504 14.5993 5.39837 18.3327 9.99837 18.3327C14.5984 18.3327 18.3317 14.5993 18.3317 9.99935C18.3317 5.39935 14.5984 1.66602 9.99837 1.66602ZM9.99837 16.666C6.31504 16.666 3.33171 13.6827 3.33171 9.99935C3.33171 6.31602 6.31504 3.33268 9.99837 3.33268C13.6817 3.33268 16.665 6.31602 16.665 9.99935C16.665 13.6827 13.6817 16.666 9.99837 16.666Z" fill="#F12B9E"/>
<path d="M10 12.5C9.3125 12.5 8.75 13.0625 8.75 13.75C8.75 14.4375 9.3125 15 10 15C10.6875 15 11.25 14.4375 11.25 13.75C11.25 13.0625 10.6875 12.5 10 12.5Z" fill="#F12B9E"/>
<path d="M9.99999 5C9.27915 5 8.70749 5.57167 8.75249 6.2475L9.05749 10.835C9.08915 11.3025 9.50165 11.6667 9.99999 11.6667C10.4983 11.6667 10.9108 11.3025 10.9417 10.835L11.2475 6.2475C11.2925 5.57167 10.7208 5 9.99999 5Z" fill="#F12B9E"/>
</svg>

After

Width:  |  Height:  |  Size: 957 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg width="11" height="9" viewBox="0 0 11 9" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.19629 9L0.000136209 -2.51245e-08L10.3924 8.834e-07L5.19629 9Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 191 B

+5
View File
@@ -0,0 +1,5 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="3" y="3" width="18" height="18" rx="3" stroke="white" stroke-width="2"/>
<path d="M18 11L15 11C13.8954 11 13 10.1046 13 9L13 6" stroke-width="2" stroke-linecap="round" stroke="white"/>
<path d="M6 13H9C10.1046 13 11 13.8954 11 15V18" stroke-width="2" stroke-linecap="round" stroke="white"/>
</svg>

After

Width:  |  Height:  |  Size: 403 B

+3
View File
@@ -0,0 +1,3 @@
<svg width="9" height="9" viewBox="0 0 9 9" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.93713 0L3.96981 2.94262L9.00185 5.77314L8.93713 0ZM0.437134 8.5L0.874212 8.74282L2.33328 6.11649L1.8962 5.87367L1.45913 5.63085L5.51641e-05 8.25718L0.437134 8.5ZM5.4807 6.14477L5.91649 6.3899L7.16675 4.16722L6.73096 3.92209L6.29517 3.67696L5.04492 5.89963L5.4807 6.14477ZM3.68973 6.00693L3.22157 6.18249C3.66652 7.36904 5.29521 7.49439 5.91649 6.3899L5.4807 6.14477L5.04492 5.89963C4.84043 6.26317 4.30435 6.22191 4.1579 5.83137L3.68973 6.00693ZM1.8962 5.87367L2.33328 6.11649C2.53644 5.75081 3.07469 5.79081 3.22157 6.18249L3.68973 6.00693L4.1579 5.83137C3.71164 4.64135 2.07635 4.51985 1.45913 5.63085L1.8962 5.87367Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 747 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M18.339 5.70643C18.7769 5.95663 18.929 6.51443 18.6788 6.95233L17.2805 9.39933C19.8373 11.0022 21.6296 13.727 21.9457 16.9107C21.999 17.448 21.577 17.9141 21.0369 17.9141H2.86345C2.32345 17.9141 1.90141 17.448 1.95475 16.9107C2.25696 13.8667 3.90855 11.2422 6.28765 9.61678L4.7651 6.95233C4.51488 6.51443 4.66701 5.95663 5.1049 5.70643C5.5428 5.45618 6.1006 5.60833 6.35085 6.04623L7.88305 8.72758C9.1291 8.17513 10.5061 7.86908 11.9502 7.86908C13.2534 7.86908 14.5021 8.11838 15.6491 8.57308L17.093 6.04623C17.3433 5.60833 17.9011 5.45618 18.339 5.70643ZM7.8409 12.8916C7.3366 12.8916 6.92775 13.3004 6.92775 13.8047C6.92775 14.3091 7.3366 14.7179 7.8409 14.7179C8.3453 14.7179 8.7541 14.3091 8.7541 13.8047C8.7541 13.3004 8.3453 12.8916 7.8409 12.8916ZM16.0595 12.8916C15.5552 12.8916 15.1464 13.3004 15.1464 13.8047C15.1464 14.3091 15.5552 14.7179 16.0595 14.7179C16.5639 14.7179 16.9727 14.3091 16.9727 13.8047C16.9727 13.3004 16.5639 12.8916 16.0595 12.8916Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

+4
View File
@@ -0,0 +1,4 @@
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M38 8.8C33.7 7.7 29.8 6.7 26.4 3.9C25.7 3.3 24.9 3 24 3C23.1 3 22.3 3.3 21.6 3.9C18.7 6.3 15.3 7.2 11.6 8.4C11.1 8.6 10.5 8.7 10 8.8C8.3 9.2 7.1 10.8 7 12.6V13.1L10.2 35.7C10.2 35.9 10.2 36.1 10.3 36.2C10.3 36 10.2 35.9 10.2 35.7C10.3 37 11 38.1 12.1 38.7L22 44.4C22.2 44.5 22.3 44.6 22.5 44.6C23 44.8 23.5 44.9 24 44.9C24.7 44.9 25.4 44.7 26 44.3L35.9 38.6C37 38 37.6 36.8 37.8 35.6C37.8 35.8 37.8 36 37.7 36.1C37.7 35.9 37.8 35.8 37.8 35.6L41 13.1C41.2 11.1 39.9 9.3 38 8.8ZM34.8 35.2V35.3C34.8 35.6 34.6 35.9 34.3 36.1H34.1L24.3 41.8C24.3 42 24.1 42 24 42C23.9 42 23.7 42 23.6 41.9L13.8 36.2H13.6C13.3 36 13.2 35.8 13.1 35.4V35.2L10 12.8C10 12.3 10.3 11.9 10.7 11.8C15.3 10.6 19.8 9.4 23.5 6.3C23.7 6 23.9 6 24 6C24.1 6 24.3 6 24.5 6.2C28.2 9.3 32.6 10.6 37.3 11.7C37.7 11.8 38.1 12.3 38 12.7L34.8 35.2Z" fill="#00D9FF"/>
<path d="M34.0004 13.9C30.7004 12.8 27.5004 12.1 24.6004 10.1C24.3004 9.8 23.8004 9.8 23.4004 10.1C20.5004 12.2 17.3004 12.8 14.0004 13.9C13.5004 14.1 13.2004 14.5 13.3004 15L16.0004 33.7C16.0004 34 16.2004 34.2 16.4004 34.4L23.4004 38.2C23.7004 38.4 24.2004 38.4 24.5004 38.2L31.5004 34.4C31.7004 34.2 31.9004 34 31.9004 33.7L34.6004 15C34.7004 14.5 34.4004 14 34.0004 13.9ZM28.9004 22.5L24.0004 27.4C23.4004 28 22.5004 28 21.9004 27.4L19.1004 24.6C18.5004 24 18.5004 23.1 19.1004 22.5C19.7004 21.9 20.6004 21.9 21.2004 22.5L23.0004 24.3L26.9004 20.4C27.5004 19.8 28.4004 19.8 29.0004 20.4C29.5004 21 29.5004 21.9 28.9004 22.5Z" fill="#00D9FF"/>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 283 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M21.0002 6.50313V16.7001C21.0024 16.8974 20.9646 17.093 20.8891 17.2752C20.8136 17.4574 20.702 17.6224 20.561 17.7603C20.4238 17.9023 20.2589 18.0145 20.0765 18.0901C19.8941 18.1657 19.6981 18.2029 19.5008 18.1995H14.3978C14.4017 18.447 14.453 18.6914 14.549 18.9195C14.6371 19.1465 14.7368 19.3688 14.8478 19.5855C14.9258 19.7092 14.9772 19.8477 14.999 19.9923C14.9975 20.1513 14.9338 20.3034 14.8213 20.4159C14.7089 20.5283 14.5568 20.5921 14.3978 20.5935H9.60076C9.44171 20.5921 9.28961 20.5283 9.17716 20.4159C9.06476 20.3034 9.00096 20.1513 8.99956 19.9923C9.01971 19.8454 9.07191 19.7047 9.15256 19.5801C9.26396 19.3667 9.36371 19.1474 9.45136 18.9231C9.54871 18.6917 9.60006 18.4434 9.60256 18.1923H4.50134C4.30404 18.1951 4.10826 18.1575 3.92596 18.082C3.74367 18.0065 3.5787 17.8946 3.44114 17.7531C3.29973 17.6169 3.18767 17.4533 3.11183 17.2722C3.03599 17.0911 2.99798 16.8964 3.00014 16.7001V6.50313C2.9974 6.30583 3.03494 6.11008 3.11045 5.92778C3.18597 5.74548 3.29788 5.58048 3.43934 5.44293C3.57599 5.30053 3.74046 5.18773 3.92253 5.11158C4.1046 5.03538 4.30039 4.99747 4.49774 5.00013H19.4972C19.8956 5.00061 20.2776 5.15913 20.5594 5.44088C20.8412 5.72263 20.9997 6.10468 21.0002 6.50313ZM19.7978 14.3043V6.50313C19.7978 6.46393 19.79 6.42513 19.7748 6.38898C19.7597 6.35278 19.7375 6.32003 19.7096 6.29253C19.682 6.26413 19.649 6.24163 19.6125 6.22648C19.5759 6.21128 19.5367 6.20378 19.4972 6.20433H4.50134C4.46213 6.20433 4.42332 6.21213 4.38716 6.22723C4.351 6.24238 4.31822 6.26458 4.29074 6.29253C4.26254 6.31983 4.24019 6.35258 4.22503 6.38878C4.20986 6.42498 4.20221 6.46388 4.20254 6.50313V14.3025C4.20228 14.342 4.20995 14.3812 4.2251 14.4177C4.24025 14.4542 4.26257 14.4872 4.29074 14.5149C4.31804 14.5431 4.35078 14.5655 4.38698 14.5806C4.42318 14.5958 4.46209 14.6035 4.50134 14.6031H19.499C19.5385 14.6034 19.5776 14.5957 19.6141 14.5806C19.6506 14.5654 19.6837 14.5431 19.7114 14.5149C19.7395 14.488 19.7618 14.4555 19.777 14.4196C19.7922 14.3837 19.7998 14.3451 19.7996 14.3061L19.7978 14.3043Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M9.99881 34.0147C8.90963 36.1772 8.08686 39.909 8.08686 39.909C8.08686 39.909 11.8202 39.0875 13.9848 37.9985L15.9714 39.9841C15.7319 40.3952 15.4481 40.79 15.0954 41.1435C12.8655 43.3722 2 45.9916 2 45.9916C2 45.9916 4.62244 35.1344 6.85329 32.9056C7.20584 32.5524 7.59829 32.2668 8.01225 32.0293L9.99881 34.0147ZM29.5866 40.2734L30.9337 31.1613L39.4984 22.6009L39.4537 22.5564C41.5337 20.2943 49.0528 10.731 44.6297 3.37649C37.2728 -1.04229 27.7045 6.47184 25.4396 8.5507L25.418 8.52823L16.8534 17.0883L7.73728 18.4357L6.3088 19.8624L11.0752 24.6272L7.8134 26.1244C6.76322 27.1732 6.77954 28.895 7.85224 29.9677L18.0501 40.16C19.1219 41.2304 20.8453 41.2477 21.8955 40.1988L23.3927 36.9381L28.1582 41.701L29.5866 40.2734ZM34.1989 21.1091C33.1478 22.1595 31.4244 22.1408 30.3526 21.0692L26.9533 17.6719C25.8796 16.5988 25.8624 14.8775 26.9135 13.8275L30.2439 10.4989C31.2952 9.44824 33.0167 9.46562 34.0905 10.5384L37.4898 13.9359C38.5616 15.0072 38.5806 16.7298 37.5294 17.7804L34.1989 21.1091ZM17.963 31.5105L16.5056 30.055L22.4529 24.1108C22.8462 23.7182 23.4927 23.7239 23.8944 24.1254C24.2963 24.5271 24.3029 25.1743 23.9101 25.5664L17.963 31.5105Z" fill="#2ECC71"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M19.5408 16.0112C19.5183 16.0787 19.1662 17.297 18.3011 18.5501C17.5519 19.6312 16.7769 20.7213 15.5541 20.7404C14.3504 20.7618 13.9657 20.0283 12.5921 20.0283C11.2209 20.0283 10.79 20.7213 9.6527 20.7618C8.47715 20.809 7.57155 19.5806 6.82125 18.5051C5.28345 16.3014 4.10115 12.2607 5.6873 9.55299C6.46915 8.19744 7.8719 7.33684 9.39955 7.31209C10.5515 7.29074 11.6472 8.08603 12.3469 8.08603C13.0657 8.08603 14.3909 7.12424 15.7892 7.26824C16.3742 7.29299 18.012 7.51008 19.0672 9.02763C18.9851 9.08388 17.1076 10.1818 17.129 12.4181C17.1571 15.1169 19.5161 16.0022 19.5408 16.0112ZM14.8746 5.82159C15.5045 5.05889 15.9197 4.01043 15.8105 2.96875C14.9106 3.00362 13.8127 3.56159 13.1614 4.32092C12.5843 4.98237 12.0769 6.04768 12.2187 7.07698C13.2187 7.13663 14.2469 6.55729 14.8735 5.82159" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 921 B

+3
View File
@@ -0,0 +1,3 @@
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M25.3001 21.0003L30.5001 18.8003C31.9001 18.2003 32.6001 16.6003 32.0001 15.2003C31.4001 13.8003 29.7001 13.2003 28.3001 13.8003L23.0001 15.9003C21.6001 16.5003 20.9001 18.1003 21.5001 19.5003C22.2001 20.9003 23.9001 21.6003 25.3001 21.0003ZM42.8001 17.0003L38.0001 6.10034C37.6001 5.20034 36.5001 4.70034 35.5001 5.10034L23.4001 10.2003C22.4001 10.6003 22.0001 11.7003 22.4001 12.6003L22.9001 13.8003L27.4001 11.9003C29.8001 10.9003 32.6001 12.0003 33.6001 14.3003C34.6001 16.6003 33.5001 19.3003 31.2001 20.4003L26.7001 22.3003L27.2001 23.5003C27.6001 24.4003 28.7001 24.9003 29.7001 24.5003L41.8001 19.4003C42.8001 19.0003 43.3001 17.9003 42.8001 17.0003ZM15.6001 32.0003C17.0001 32.7003 18.7001 32.2003 19.4001 30.8003L22.0001 25.9003C22.7001 24.5003 22.2001 22.9003 20.8001 22.2003C19.4001 21.5003 17.7001 22.0003 17.0001 23.4003L14.4001 28.3003C13.7001 29.7003 14.3001 31.4003 15.6001 32.0003ZM24.5001 28.0003L23.3001 27.4003L21.1001 31.6003C19.9001 33.9003 17.1001 34.8003 14.8001 33.6003C12.5001 32.4003 11.6001 29.7003 12.8001 27.4003L15.0001 23.2003L13.8001 22.6003C12.9001 22.1003 11.7001 22.5003 11.3001 23.4003L5.30009 34.9003C4.80009 35.8003 5.20009 36.9003 6.10009 37.4003L16.9001 42.8003C17.8001 43.3003 19.0001 42.9003 19.4001 42.0003L25.4001 30.5003C25.8001 29.6003 25.5001 28.5003 24.5001 28.0003Z" fill="#FF951C"/>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg width="34" height="35" viewBox="0 0 34 35" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.9559 19.1582L12.9514 19.1741L12.9582 19.1798L12.9559 19.1582ZM32.3172 12.2629C31.0368 11.5465 29.2289 8.56614 29.2493 7.66445C29.3369 3.8597 26.7796 3.30264 25.5003 3.40708C22.6632 3.63789 20.8825 2.78739 19.5352 1.3637C18.1878 -0.0611135 16.9791 0.000388403 16.9791 0.000388403C16.017 0.000388403 15.2462 0.354013 14.2523 1.5332C12.6945 3.38102 10.2282 3.44702 9.47985 3.40595C8.73285 3.3662 6.97485 3.21039 5.90141 4.08827C4.82798 4.96614 4.80079 6.48752 4.5381 8.17614C4.27541 9.86364 2.5221 11.5294 1.64085 12.2629C0.759601 12.9962 0.243409 13.5694 0.106909 14.3063C-0.0295907 15.0441 -0.270716 15.3034 1.13029 17.7128C2.69723 20.4077 1.88648 22.3202 1.64198 24.184C1.39748 26.0488 2.51066 27.2815 4.88048 27.9306C7.25029 28.5799 8.78066 31.0225 8.9706 31.5068C9.16054 31.9913 10.3829 33.8573 11.5268 34.0618C13.0118 34.3268 13.9716 33.2908 14.9357 33.0396C15.8989 32.7883 18.0151 32.5676 19.1965 33.2102C22.8365 35.1887 24.3727 33.1635 24.8206 31.848C25.3027 30.4313 27.1186 28.4185 29.0813 27.9308C33.4478 26.8472 32.0843 23.022 31.9786 22.6513C31.8728 22.2806 31.5545 19.1207 32.6609 17.8825C34.9793 15.2841 33.5977 12.9791 32.3172 12.2629ZM20.6155 19.1627L20.6097 19.1423V19.1674L20.6155 19.1627C21.5525 22.2818 21.7606 24.9553 21.7606 24.9553L16.7937 21.9364C16.7911 21.9377 16.7885 21.9388 16.7858 21.9398L16.7687 21.9341C14.3432 23.6113 11.811 24.9553 11.811 24.9553C11.811 24.9553 12.0167 22.2887 12.9514 19.1741C10.6613 17.4561 8.82623 15.0058 8.82623 15.0058L14.2979 14.509L16.7858 9.03621L19.2738 14.5078L24.7454 15.0058C24.7454 15.0055 22.9079 17.4422 20.6155 19.1627Z" fill="#F12B9E"/>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M35 4C38.0375 4 40.5 6.4625 40.5 9.5V38.5C40.5 41.5375 38.0375 44 35 44H13C9.9625 44 7.5 41.5375 7.5 38.5V9.5C7.5 6.4625 9.9625 4 13 4H35ZM28 36.5H20C19.6022 36.5 19.2206 36.658 18.9393 36.9393C18.658 37.2206 18.5 37.6021 18.5 38C18.5 38.3978 18.658 38.7793 18.9393 39.0606C19.2206 39.3419 19.6022 39.5 20 39.5H28C28.3978 39.5 28.7794 39.3419 29.0607 39.0606C29.342 38.7793 29.5 38.3978 29.5 38C29.5 37.6021 29.342 37.2206 29.0607 36.9393C28.7794 36.658 28.3978 36.5 28 36.5ZM35 7H13C12.6717 7 12.3466 7.06467 12.0433 7.1903C11.74 7.31594 11.4644 7.50009 11.2322 7.73223C11.0001 7.96438 10.8159 8.23998 10.6903 8.54329C10.5647 8.84661 10.5 9.1717 10.5 9.5V32H37.5V9.5C37.5 9.1717 37.4353 8.84661 37.3097 8.54329C37.1841 8.23998 36.9999 7.96438 36.7678 7.73223C36.5356 7.50009 36.26 7.31594 35.9567 7.1903C35.6534 7.06467 35.3283 7 35 7Z" fill="#EEEEEE"/>
</svg>

After

Width:  |  Height:  |  Size: 967 B

+3
View File
@@ -0,0 +1,3 @@
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M28.8609 25.6594C28.3969 25.4391 27.9281 25.2281 27.4406 25.0453C30.5859 22.8938 32.6531 19.2797 32.6531 15.1922C32.6531 8.61094 27.3 3.25781 20.7188 3.25781C14.1375 3.25781 8.78437 8.61094 8.78437 15.1922C8.78437 19.2797 10.8516 22.8938 13.9969 25.0453C7.55156 27.4781 3 33.2859 3 40.0594C3 41.1281 3.83906 41.9953 4.88906 42.0609H4.90781C4.94062 42.0609 4.97813 42.0703 5.01094 42.0703C5.04844 42.0703 5.08125 42.0609 5.11406 42.0609H25.9688C24.6141 40.1484 23.8125 37.8188 23.8125 35.2969C23.8125 31.2984 25.8141 27.7781 28.8609 25.6594ZM12.3563 15.2531C12.3563 10.65 16.0875 6.92344 20.6859 6.92344C25.2844 6.92344 29.0156 10.6547 29.0156 15.2531C29.0156 19.8563 25.2844 23.5828 20.6859 23.5828C16.0875 23.5828 12.3563 19.8563 12.3563 15.2531ZM35.55 25.8469C30.3328 25.8469 26.1 30.075 26.1 35.2969C26.1 40.5188 30.3281 44.7469 35.55 44.7469C40.7719 44.7469 45 40.5141 45 35.2969C45 30.0797 40.7719 25.8469 35.55 25.8469ZM30.8484 29.8641C31.1578 29.7047 31.5328 29.8266 31.6922 30.1313L32.7469 32.1609C32.9062 32.4656 32.7844 32.8453 32.4797 33.0047C32.4094 33.0375 32.3391 33.0609 32.2688 33.0703C32.0156 33.1031 31.7625 32.9766 31.6359 32.7375L30.5813 30.7078C30.4219 30.4031 30.5391 30.0234 30.8484 29.8641ZM28.5563 34.1484C28.2188 34.0688 28.0125 33.7313 28.0922 33.3984C28.1719 33.0609 28.5094 32.8547 28.8422 32.9344L31.0687 33.4594C31.3312 33.5203 31.5141 33.7359 31.5469 33.9891C31.5563 34.0594 31.5516 34.1344 31.5328 34.2094C31.4531 34.5469 31.1156 34.7531 30.7828 34.6734L28.5563 34.1484ZM40.8844 35.7094L35.7891 40.8047C35.3578 41.2359 34.8141 41.5359 34.2141 41.6719C33.9797 41.7234 33.7359 41.7516 33.5016 41.7516C32.6438 41.7516 31.8375 41.4141 31.2281 40.8047C30.6188 40.1953 30.2859 39.3891 30.2859 38.5266C30.2859 37.6641 30.6188 36.8531 31.2281 36.2438C31.3969 36.075 31.6219 35.9813 31.8562 35.9813C32.0953 35.9813 32.3156 36.075 32.4891 36.2438C32.6578 36.4125 32.7516 36.6375 32.7516 36.8719C32.7516 37.1063 32.6578 37.3313 32.4891 37.5C31.9266 38.0625 31.9266 38.9813 32.4891 39.5438C32.7609 39.8156 33.1219 39.9656 33.5062 39.9656C33.6141 39.9656 33.7219 39.9516 33.8297 39.9281C34.0969 39.8719 34.3406 39.7359 34.5328 39.5391L39.6328 34.4438C39.9047 34.1672 40.0547 33.8063 40.0547 33.4219C40.0547 33.0328 39.9047 32.6672 39.6281 32.4C39.3609 32.1281 39 31.9781 38.6156 31.9781C38.5078 31.9781 38.4 31.9922 38.2875 32.0156C38.0203 32.0766 37.7766 32.2078 37.5844 32.4047L35.3016 34.6875C35.1328 34.8563 34.9078 34.95 34.6734 34.95C34.4391 34.95 34.2141 34.8563 34.0453 34.6875C33.8766 34.5188 33.7875 34.2938 33.7875 34.0594C33.7875 33.825 33.8813 33.6 34.05 33.4313L36.3375 31.1484C36.7688 30.7172 37.3172 30.4172 37.9125 30.2859C38.1469 30.2344 38.3906 30.2063 38.6297 30.2063C39.4828 30.2063 40.2891 30.5438 40.8984 31.1531C41.5078 31.7625 41.8406 32.5734 41.8406 33.4313C41.8312 34.2938 41.4938 35.1 40.8844 35.7094Z" fill="#F4184C"/>
</svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

+1
View File
@@ -0,0 +1 @@
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.5 2.5h13v10a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1zM0 1h16v11.5a2.5 2.5 0 0 1-2.5 2.5h-11A2.5 2.5 0 0 1 0 12.5zm3.75 4.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5M7 4.75a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0m1.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5" fill="#666"/></svg>

After

Width:  |  Height:  |  Size: 385 B

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