Compare commits
34 Commits
landing-20
...
teaser-202
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5b2ca21b86 | ||
|
|
dbee3d1a82 | ||
|
|
69a95e0205 | ||
|
|
c005bc06cc | ||
|
|
425e093f67 | ||
|
|
7cf2f36fb4 | ||
|
|
551feba079 | ||
|
|
ed47a53901 | ||
|
|
46b701dc50 | ||
|
|
78950cf19e | ||
|
|
4b66bb0001 | ||
|
|
2178ae523e | ||
|
|
bf21ea0b40 | ||
|
|
6224190c85 | ||
|
|
070d1e83ca | ||
|
|
1036fe1f13 | ||
|
|
e04999b664 | ||
|
|
cc67b8411a | ||
|
|
9552175793 | ||
| b02cf57205 | |||
| fd26f02a2f | |||
|
|
e2f3047602 | ||
|
|
d03dc421e2 | ||
|
|
9956e67db6 | ||
|
|
0ddca1b751 | ||
|
|
a6287a9298 | ||
|
|
1ce8c04b64 | ||
|
|
7f7b82fdc4 | ||
|
|
90f6bdc300 | ||
|
|
8705551269 | ||
|
|
792f14be3e | ||
|
|
b604442c46 | ||
|
|
d6950317af | ||
|
|
47a8a5857f |
|
Before Width: | Height: | Size: 135 KiB |
105
README.md
@@ -1,46 +1,83 @@
|
||||
# 🎮 TIPILAN
|
||||
# TipiLAN
|
||||
|
||||
**TIPILAN** is the official web platform for the TipiLAN LAN event — built using [Next.js](https://nextjs.org) and powered by the lightning-fast [Bun](https://bun.sh) runtime.
|
||||
Official website for **TipiLAN** — Estonia's largest student-organised LAN event.
|
||||
|
||||
> ⚠️ This is a work in progress! Contributions welcome.
|
||||
> Work in progress. Event date: **September 11, 2026**.
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Features
|
||||
## Tech Stack
|
||||
|
||||
- Event information & schedule
|
||||
- Stream
|
||||
- Responsive dark-themed UI
|
||||
- Built with Next.js, styled with Tailwind (if applicable), powered by Bun
|
||||
- [Next.js 16](https://nextjs.org/) — App Router, SSG, Turbopack
|
||||
- [React 19](https://react.dev/)
|
||||
- [TypeScript 5](https://www.typescriptlang.org/)
|
||||
- [Tailwind CSS 4](https://tailwindcss.com/)
|
||||
- [next-intl](https://next-intl.dev/) — ET / EN localisation
|
||||
- [react-icons](https://react-icons.github.io/react-icons/)
|
||||
|
||||
Requires **Bun**.
|
||||
|
||||
---
|
||||
|
||||
## 📦 Tech Stack
|
||||
|
||||
- [Next.js](https://nextjs.org/)
|
||||
- [Bun](https://bun.sh/)
|
||||
- [TypeScript](https://www.typescriptlang.org/)
|
||||
- [React](https://reactjs.org/)
|
||||
- [Tailwind CSS](https://tailwindcss.com/) *(if used)*
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Setup Instructions
|
||||
|
||||
📖 See [`docs/SETUP.md`](./docs/SETUP.md) for a full setup guide on:
|
||||
|
||||
- ✅ Windows (native)
|
||||
- 🐧 Windows with WSL
|
||||
- 🐧 Linux (Ubuntu, Arch, Fedora, etc.)
|
||||
|
||||
---
|
||||
|
||||
## 🧪 Scripts
|
||||
## Quickstart
|
||||
|
||||
```bash
|
||||
bun dev # Run development server
|
||||
bun run build # Build for production
|
||||
bun start # Start production server
|
||||
bun install
|
||||
bun dev
|
||||
```
|
||||
|
||||
bun test # Run tests (if configured)
|
||||
bun run lint # Run linter (if configured)
|
||||
Open [http://localhost:3000](http://localhost:3000) — redirects to `/et` by default.
|
||||
|
||||
---
|
||||
|
||||
## Scripts
|
||||
|
||||
```bash
|
||||
bun dev # Dev server (Turbopack, localhost:3000)
|
||||
bun run build # Production build (outputs SSG for /et and /en)
|
||||
bun start # Serve production build
|
||||
bun lint:fix # ESLint with auto-fix
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Project Structure
|
||||
|
||||
```
|
||||
src/
|
||||
app/[locale]/ # Locale-based pages (et, en)
|
||||
components/teaser/ # HeroSection, CarouselSection, EndSection, Footer
|
||||
components/ # LanguageSwitcher, TeaserPage
|
||||
i18n/ # next-intl routing + request config
|
||||
lib/ # blurPlaceholders.ts (auto-generated)
|
||||
proxy.ts # next-intl routing middleware
|
||||
|
||||
translations/ # et.json, en.json
|
||||
public/images/
|
||||
backgrounds/ # Full-viewport background WebPs
|
||||
heros/ # Character/hero image WebPs
|
||||
flags/ # Language switcher SVGs
|
||||
original/ # Original PNG sources (not served)
|
||||
scripts/ # Image processing utilities
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Image Utilities
|
||||
|
||||
When adding or replacing images, re-run:
|
||||
|
||||
```bash
|
||||
# Convert new PNGs → WebP (quality 85)
|
||||
bun scripts/convert-images.mjs
|
||||
|
||||
# Regenerate blur placeholders for all images
|
||||
bun scripts/gen-blur-placeholders.mjs
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Localisation
|
||||
|
||||
Translation files live in `translations/et.json` and `translations/en.json`.
|
||||
Routing is handled by `src/proxy.ts` — `/` redirects to `/et` (default locale).
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema.json",
|
||||
"style": "new-york",
|
||||
"rsc": true,
|
||||
"tsx": true,
|
||||
"tailwind": {
|
||||
"config": "",
|
||||
"css": "src/app/globals.css",
|
||||
"baseColor": "neutral",
|
||||
"cssVariables": true,
|
||||
"prefix": ""
|
||||
},
|
||||
"aliases": {
|
||||
"components": "@/components",
|
||||
"utils": "@/lib/utils",
|
||||
"ui": "@/components/ui",
|
||||
"lib": "@/lib",
|
||||
"hooks": "@/hooks"
|
||||
},
|
||||
"iconLibrary": "lucide"
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
# Setup
|
||||
|
||||
## Prerequisites
|
||||
- Git
|
||||
- Bun
|
||||
- If on Windows, it's recommended to use WSL (Windows Subsystem for Linux) and do the following steps there.
|
||||
|
||||
## Installation
|
||||
|
||||
1. Clone the repository:
|
||||
```bash
|
||||
git clone https://github.com/Lapikud/tipilan.git
|
||||
```
|
||||
2. Install bun:
|
||||
```bash
|
||||
curl -fsSL https://bun.sh/install | bash
|
||||
```
|
||||
3. Install dependencies:
|
||||
```bash
|
||||
cd tipilan
|
||||
bun install
|
||||
```
|
||||
4. Run the application:
|
||||
```bash
|
||||
bun --bun run dev
|
||||
```
|
||||
|
||||
(ONLY FOR PRODUCTION!!) Build the application:
|
||||
```bash
|
||||
bun --bun run build
|
||||
```
|
||||
## Accessing the Application
|
||||
- The application is now running at `http://localhost:3000`.
|
||||
|
||||
## Git branch
|
||||
- The current production branch is `main`.
|
||||
- Please make sure you make changes in your branch before creating a pull request.
|
||||
### Making git branch
|
||||
- Create a new branch:
|
||||
```bash
|
||||
git checkout -b <branch-name>
|
||||
```
|
||||
- Commit your changes:
|
||||
```bash
|
||||
git add .
|
||||
git commit -m "<commit-message>"
|
||||
```
|
||||
- Push your branch:
|
||||
```bash
|
||||
git push origin <branch-name>
|
||||
```
|
||||
- Create a pull request:
|
||||
Go to Github,
|
||||
open up this project's repository and make a new pull request.
|
||||
```
|
||||
@@ -1,10 +0,0 @@
|
||||
import { defineConfig } from "drizzle-kit";
|
||||
|
||||
export default defineConfig({
|
||||
schema: "./src/db/schema/schema.ts",
|
||||
out: "./migrations",
|
||||
dialect: "sqlite",
|
||||
dbCredentials: {
|
||||
url: "data/tipilan.db",
|
||||
},
|
||||
});
|
||||
@@ -1,43 +0,0 @@
|
||||
CREATE TABLE `member` (
|
||||
`id` text PRIMARY KEY NOT NULL,
|
||||
`user_id` text NOT NULL,
|
||||
`team_id` text,
|
||||
`role` text NOT NULL,
|
||||
FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE cascade,
|
||||
FOREIGN KEY (`team_id`) REFERENCES `team`(`id`) ON UPDATE no action ON DELETE cascade
|
||||
);
|
||||
--> statement-breakpoint
|
||||
CREATE UNIQUE INDEX `user_team_unique` ON `member` (`user_id`,`team_id`);--> statement-breakpoint
|
||||
CREATE TABLE `team` (
|
||||
`id` text PRIMARY KEY NOT NULL,
|
||||
`name` text NOT NULL
|
||||
);
|
||||
--> statement-breakpoint
|
||||
CREATE TABLE `tournament_team` (
|
||||
`id` text PRIMARY KEY NOT NULL,
|
||||
`tournament_id` text NOT NULL,
|
||||
`team_id` text NOT NULL,
|
||||
`registration_date` integer NOT NULL,
|
||||
FOREIGN KEY (`tournament_id`) REFERENCES `tournament`(`id`) ON UPDATE no action ON DELETE cascade,
|
||||
FOREIGN KEY (`team_id`) REFERENCES `team`(`id`) ON UPDATE no action ON DELETE cascade
|
||||
);
|
||||
--> statement-breakpoint
|
||||
CREATE UNIQUE INDEX `tournament_team_unique` ON `tournament_team` (`tournament_id`,`team_id`);--> statement-breakpoint
|
||||
CREATE TABLE `tournament` (
|
||||
`id` text PRIMARY KEY NOT NULL,
|
||||
`name` text NOT NULL
|
||||
);
|
||||
--> statement-breakpoint
|
||||
CREATE TABLE `user` (
|
||||
`id` text PRIMARY KEY NOT NULL,
|
||||
`email` text NOT NULL,
|
||||
`steam_id` text,
|
||||
`first_name` text NOT NULL,
|
||||
`last_name` text NOT NULL,
|
||||
`ticket_id` text,
|
||||
`ticket_type` text
|
||||
);
|
||||
--> statement-breakpoint
|
||||
CREATE UNIQUE INDEX `user_email_unique` ON `user` (`email`);--> statement-breakpoint
|
||||
CREATE UNIQUE INDEX `user_steam_id_unique` ON `user` (`steam_id`);--> statement-breakpoint
|
||||
CREATE UNIQUE INDEX `user_ticket_id_unique` ON `user` (`ticket_id`);
|
||||
@@ -1 +0,0 @@
|
||||
DROP INDEX `user_email_unique`;
|
||||
@@ -1 +0,0 @@
|
||||
DROP INDEX `user_steam_id_unique`;
|
||||
@@ -1,295 +0,0 @@
|
||||
{
|
||||
"version": "6",
|
||||
"dialect": "sqlite",
|
||||
"id": "efe4e865-a061-4ab0-8023-5211e6d86e14",
|
||||
"prevId": "00000000-0000-0000-0000-000000000000",
|
||||
"tables": {
|
||||
"member": {
|
||||
"name": "member",
|
||||
"columns": {
|
||||
"id": {
|
||||
"name": "id",
|
||||
"type": "text",
|
||||
"primaryKey": true,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"user_id": {
|
||||
"name": "user_id",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"team_id": {
|
||||
"name": "team_id",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"role": {
|
||||
"name": "role",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
}
|
||||
},
|
||||
"indexes": {
|
||||
"user_team_unique": {
|
||||
"name": "user_team_unique",
|
||||
"columns": [
|
||||
"user_id",
|
||||
"team_id"
|
||||
],
|
||||
"isUnique": true
|
||||
}
|
||||
},
|
||||
"foreignKeys": {
|
||||
"member_user_id_user_id_fk": {
|
||||
"name": "member_user_id_user_id_fk",
|
||||
"tableFrom": "member",
|
||||
"tableTo": "user",
|
||||
"columnsFrom": [
|
||||
"user_id"
|
||||
],
|
||||
"columnsTo": [
|
||||
"id"
|
||||
],
|
||||
"onDelete": "cascade",
|
||||
"onUpdate": "no action"
|
||||
},
|
||||
"member_team_id_team_id_fk": {
|
||||
"name": "member_team_id_team_id_fk",
|
||||
"tableFrom": "member",
|
||||
"tableTo": "team",
|
||||
"columnsFrom": [
|
||||
"team_id"
|
||||
],
|
||||
"columnsTo": [
|
||||
"id"
|
||||
],
|
||||
"onDelete": "cascade",
|
||||
"onUpdate": "no action"
|
||||
}
|
||||
},
|
||||
"compositePrimaryKeys": {},
|
||||
"uniqueConstraints": {},
|
||||
"checkConstraints": {}
|
||||
},
|
||||
"team": {
|
||||
"name": "team",
|
||||
"columns": {
|
||||
"id": {
|
||||
"name": "id",
|
||||
"type": "text",
|
||||
"primaryKey": true,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"name": {
|
||||
"name": "name",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
}
|
||||
},
|
||||
"indexes": {},
|
||||
"foreignKeys": {},
|
||||
"compositePrimaryKeys": {},
|
||||
"uniqueConstraints": {},
|
||||
"checkConstraints": {}
|
||||
},
|
||||
"tournament_team": {
|
||||
"name": "tournament_team",
|
||||
"columns": {
|
||||
"id": {
|
||||
"name": "id",
|
||||
"type": "text",
|
||||
"primaryKey": true,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"tournament_id": {
|
||||
"name": "tournament_id",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"team_id": {
|
||||
"name": "team_id",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"registration_date": {
|
||||
"name": "registration_date",
|
||||
"type": "integer",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
}
|
||||
},
|
||||
"indexes": {
|
||||
"tournament_team_unique": {
|
||||
"name": "tournament_team_unique",
|
||||
"columns": [
|
||||
"tournament_id",
|
||||
"team_id"
|
||||
],
|
||||
"isUnique": true
|
||||
}
|
||||
},
|
||||
"foreignKeys": {
|
||||
"tournament_team_tournament_id_tournament_id_fk": {
|
||||
"name": "tournament_team_tournament_id_tournament_id_fk",
|
||||
"tableFrom": "tournament_team",
|
||||
"tableTo": "tournament",
|
||||
"columnsFrom": [
|
||||
"tournament_id"
|
||||
],
|
||||
"columnsTo": [
|
||||
"id"
|
||||
],
|
||||
"onDelete": "cascade",
|
||||
"onUpdate": "no action"
|
||||
},
|
||||
"tournament_team_team_id_team_id_fk": {
|
||||
"name": "tournament_team_team_id_team_id_fk",
|
||||
"tableFrom": "tournament_team",
|
||||
"tableTo": "team",
|
||||
"columnsFrom": [
|
||||
"team_id"
|
||||
],
|
||||
"columnsTo": [
|
||||
"id"
|
||||
],
|
||||
"onDelete": "cascade",
|
||||
"onUpdate": "no action"
|
||||
}
|
||||
},
|
||||
"compositePrimaryKeys": {},
|
||||
"uniqueConstraints": {},
|
||||
"checkConstraints": {}
|
||||
},
|
||||
"tournament": {
|
||||
"name": "tournament",
|
||||
"columns": {
|
||||
"id": {
|
||||
"name": "id",
|
||||
"type": "text",
|
||||
"primaryKey": true,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"name": {
|
||||
"name": "name",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
}
|
||||
},
|
||||
"indexes": {},
|
||||
"foreignKeys": {},
|
||||
"compositePrimaryKeys": {},
|
||||
"uniqueConstraints": {},
|
||||
"checkConstraints": {}
|
||||
},
|
||||
"user": {
|
||||
"name": "user",
|
||||
"columns": {
|
||||
"id": {
|
||||
"name": "id",
|
||||
"type": "text",
|
||||
"primaryKey": true,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"email": {
|
||||
"name": "email",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"steam_id": {
|
||||
"name": "steam_id",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"first_name": {
|
||||
"name": "first_name",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"last_name": {
|
||||
"name": "last_name",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"ticket_id": {
|
||||
"name": "ticket_id",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"ticket_type": {
|
||||
"name": "ticket_type",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
}
|
||||
},
|
||||
"indexes": {
|
||||
"user_email_unique": {
|
||||
"name": "user_email_unique",
|
||||
"columns": [
|
||||
"email"
|
||||
],
|
||||
"isUnique": true
|
||||
},
|
||||
"user_steam_id_unique": {
|
||||
"name": "user_steam_id_unique",
|
||||
"columns": [
|
||||
"steam_id"
|
||||
],
|
||||
"isUnique": true
|
||||
},
|
||||
"user_ticket_id_unique": {
|
||||
"name": "user_ticket_id_unique",
|
||||
"columns": [
|
||||
"ticket_id"
|
||||
],
|
||||
"isUnique": true
|
||||
}
|
||||
},
|
||||
"foreignKeys": {},
|
||||
"compositePrimaryKeys": {},
|
||||
"uniqueConstraints": {},
|
||||
"checkConstraints": {}
|
||||
}
|
||||
},
|
||||
"views": {},
|
||||
"enums": {},
|
||||
"_meta": {
|
||||
"schemas": {},
|
||||
"tables": {},
|
||||
"columns": {}
|
||||
},
|
||||
"internal": {
|
||||
"indexes": {}
|
||||
}
|
||||
}
|
||||
@@ -1,288 +0,0 @@
|
||||
{
|
||||
"version": "6",
|
||||
"dialect": "sqlite",
|
||||
"id": "eae7a237-8469-4a6a-acac-1910adfc98ff",
|
||||
"prevId": "efe4e865-a061-4ab0-8023-5211e6d86e14",
|
||||
"tables": {
|
||||
"member": {
|
||||
"name": "member",
|
||||
"columns": {
|
||||
"id": {
|
||||
"name": "id",
|
||||
"type": "text",
|
||||
"primaryKey": true,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"user_id": {
|
||||
"name": "user_id",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"team_id": {
|
||||
"name": "team_id",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"role": {
|
||||
"name": "role",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
}
|
||||
},
|
||||
"indexes": {
|
||||
"user_team_unique": {
|
||||
"name": "user_team_unique",
|
||||
"columns": [
|
||||
"user_id",
|
||||
"team_id"
|
||||
],
|
||||
"isUnique": true
|
||||
}
|
||||
},
|
||||
"foreignKeys": {
|
||||
"member_user_id_user_id_fk": {
|
||||
"name": "member_user_id_user_id_fk",
|
||||
"tableFrom": "member",
|
||||
"tableTo": "user",
|
||||
"columnsFrom": [
|
||||
"user_id"
|
||||
],
|
||||
"columnsTo": [
|
||||
"id"
|
||||
],
|
||||
"onDelete": "cascade",
|
||||
"onUpdate": "no action"
|
||||
},
|
||||
"member_team_id_team_id_fk": {
|
||||
"name": "member_team_id_team_id_fk",
|
||||
"tableFrom": "member",
|
||||
"tableTo": "team",
|
||||
"columnsFrom": [
|
||||
"team_id"
|
||||
],
|
||||
"columnsTo": [
|
||||
"id"
|
||||
],
|
||||
"onDelete": "cascade",
|
||||
"onUpdate": "no action"
|
||||
}
|
||||
},
|
||||
"compositePrimaryKeys": {},
|
||||
"uniqueConstraints": {},
|
||||
"checkConstraints": {}
|
||||
},
|
||||
"team": {
|
||||
"name": "team",
|
||||
"columns": {
|
||||
"id": {
|
||||
"name": "id",
|
||||
"type": "text",
|
||||
"primaryKey": true,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"name": {
|
||||
"name": "name",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
}
|
||||
},
|
||||
"indexes": {},
|
||||
"foreignKeys": {},
|
||||
"compositePrimaryKeys": {},
|
||||
"uniqueConstraints": {},
|
||||
"checkConstraints": {}
|
||||
},
|
||||
"tournament_team": {
|
||||
"name": "tournament_team",
|
||||
"columns": {
|
||||
"id": {
|
||||
"name": "id",
|
||||
"type": "text",
|
||||
"primaryKey": true,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"tournament_id": {
|
||||
"name": "tournament_id",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"team_id": {
|
||||
"name": "team_id",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"registration_date": {
|
||||
"name": "registration_date",
|
||||
"type": "integer",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
}
|
||||
},
|
||||
"indexes": {
|
||||
"tournament_team_unique": {
|
||||
"name": "tournament_team_unique",
|
||||
"columns": [
|
||||
"tournament_id",
|
||||
"team_id"
|
||||
],
|
||||
"isUnique": true
|
||||
}
|
||||
},
|
||||
"foreignKeys": {
|
||||
"tournament_team_tournament_id_tournament_id_fk": {
|
||||
"name": "tournament_team_tournament_id_tournament_id_fk",
|
||||
"tableFrom": "tournament_team",
|
||||
"tableTo": "tournament",
|
||||
"columnsFrom": [
|
||||
"tournament_id"
|
||||
],
|
||||
"columnsTo": [
|
||||
"id"
|
||||
],
|
||||
"onDelete": "cascade",
|
||||
"onUpdate": "no action"
|
||||
},
|
||||
"tournament_team_team_id_team_id_fk": {
|
||||
"name": "tournament_team_team_id_team_id_fk",
|
||||
"tableFrom": "tournament_team",
|
||||
"tableTo": "team",
|
||||
"columnsFrom": [
|
||||
"team_id"
|
||||
],
|
||||
"columnsTo": [
|
||||
"id"
|
||||
],
|
||||
"onDelete": "cascade",
|
||||
"onUpdate": "no action"
|
||||
}
|
||||
},
|
||||
"compositePrimaryKeys": {},
|
||||
"uniqueConstraints": {},
|
||||
"checkConstraints": {}
|
||||
},
|
||||
"tournament": {
|
||||
"name": "tournament",
|
||||
"columns": {
|
||||
"id": {
|
||||
"name": "id",
|
||||
"type": "text",
|
||||
"primaryKey": true,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"name": {
|
||||
"name": "name",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
}
|
||||
},
|
||||
"indexes": {},
|
||||
"foreignKeys": {},
|
||||
"compositePrimaryKeys": {},
|
||||
"uniqueConstraints": {},
|
||||
"checkConstraints": {}
|
||||
},
|
||||
"user": {
|
||||
"name": "user",
|
||||
"columns": {
|
||||
"id": {
|
||||
"name": "id",
|
||||
"type": "text",
|
||||
"primaryKey": true,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"email": {
|
||||
"name": "email",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"steam_id": {
|
||||
"name": "steam_id",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"first_name": {
|
||||
"name": "first_name",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"last_name": {
|
||||
"name": "last_name",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"ticket_id": {
|
||||
"name": "ticket_id",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"ticket_type": {
|
||||
"name": "ticket_type",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
}
|
||||
},
|
||||
"indexes": {
|
||||
"user_steam_id_unique": {
|
||||
"name": "user_steam_id_unique",
|
||||
"columns": [
|
||||
"steam_id"
|
||||
],
|
||||
"isUnique": true
|
||||
},
|
||||
"user_ticket_id_unique": {
|
||||
"name": "user_ticket_id_unique",
|
||||
"columns": [
|
||||
"ticket_id"
|
||||
],
|
||||
"isUnique": true
|
||||
}
|
||||
},
|
||||
"foreignKeys": {},
|
||||
"compositePrimaryKeys": {},
|
||||
"uniqueConstraints": {},
|
||||
"checkConstraints": {}
|
||||
}
|
||||
},
|
||||
"views": {},
|
||||
"enums": {},
|
||||
"_meta": {
|
||||
"schemas": {},
|
||||
"tables": {},
|
||||
"columns": {}
|
||||
},
|
||||
"internal": {
|
||||
"indexes": {}
|
||||
}
|
||||
}
|
||||
@@ -1,281 +0,0 @@
|
||||
{
|
||||
"version": "6",
|
||||
"dialect": "sqlite",
|
||||
"id": "5d600618-0105-4104-b150-c63015ae55c7",
|
||||
"prevId": "eae7a237-8469-4a6a-acac-1910adfc98ff",
|
||||
"tables": {
|
||||
"user": {
|
||||
"name": "user",
|
||||
"columns": {
|
||||
"id": {
|
||||
"name": "id",
|
||||
"type": "text",
|
||||
"primaryKey": true,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"email": {
|
||||
"name": "email",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"steam_id": {
|
||||
"name": "steam_id",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"first_name": {
|
||||
"name": "first_name",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"last_name": {
|
||||
"name": "last_name",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"ticket_id": {
|
||||
"name": "ticket_id",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"ticket_type": {
|
||||
"name": "ticket_type",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
}
|
||||
},
|
||||
"indexes": {
|
||||
"user_ticket_id_unique": {
|
||||
"name": "user_ticket_id_unique",
|
||||
"columns": [
|
||||
"ticket_id"
|
||||
],
|
||||
"isUnique": true
|
||||
}
|
||||
},
|
||||
"foreignKeys": {},
|
||||
"compositePrimaryKeys": {},
|
||||
"uniqueConstraints": {},
|
||||
"checkConstraints": {}
|
||||
},
|
||||
"team": {
|
||||
"name": "team",
|
||||
"columns": {
|
||||
"id": {
|
||||
"name": "id",
|
||||
"type": "text",
|
||||
"primaryKey": true,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"name": {
|
||||
"name": "name",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
}
|
||||
},
|
||||
"indexes": {},
|
||||
"foreignKeys": {},
|
||||
"compositePrimaryKeys": {},
|
||||
"uniqueConstraints": {},
|
||||
"checkConstraints": {}
|
||||
},
|
||||
"member": {
|
||||
"name": "member",
|
||||
"columns": {
|
||||
"id": {
|
||||
"name": "id",
|
||||
"type": "text",
|
||||
"primaryKey": true,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"user_id": {
|
||||
"name": "user_id",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"team_id": {
|
||||
"name": "team_id",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"role": {
|
||||
"name": "role",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
}
|
||||
},
|
||||
"indexes": {
|
||||
"user_team_unique": {
|
||||
"name": "user_team_unique",
|
||||
"columns": [
|
||||
"user_id",
|
||||
"team_id"
|
||||
],
|
||||
"isUnique": true
|
||||
}
|
||||
},
|
||||
"foreignKeys": {
|
||||
"member_user_id_user_id_fk": {
|
||||
"name": "member_user_id_user_id_fk",
|
||||
"tableFrom": "member",
|
||||
"tableTo": "user",
|
||||
"columnsFrom": [
|
||||
"user_id"
|
||||
],
|
||||
"columnsTo": [
|
||||
"id"
|
||||
],
|
||||
"onDelete": "cascade",
|
||||
"onUpdate": "no action"
|
||||
},
|
||||
"member_team_id_team_id_fk": {
|
||||
"name": "member_team_id_team_id_fk",
|
||||
"tableFrom": "member",
|
||||
"tableTo": "team",
|
||||
"columnsFrom": [
|
||||
"team_id"
|
||||
],
|
||||
"columnsTo": [
|
||||
"id"
|
||||
],
|
||||
"onDelete": "cascade",
|
||||
"onUpdate": "no action"
|
||||
}
|
||||
},
|
||||
"compositePrimaryKeys": {},
|
||||
"uniqueConstraints": {},
|
||||
"checkConstraints": {}
|
||||
},
|
||||
"tournament_team": {
|
||||
"name": "tournament_team",
|
||||
"columns": {
|
||||
"id": {
|
||||
"name": "id",
|
||||
"type": "text",
|
||||
"primaryKey": true,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"tournament_id": {
|
||||
"name": "tournament_id",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"team_id": {
|
||||
"name": "team_id",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"registration_date": {
|
||||
"name": "registration_date",
|
||||
"type": "integer",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
}
|
||||
},
|
||||
"indexes": {
|
||||
"tournament_team_unique": {
|
||||
"name": "tournament_team_unique",
|
||||
"columns": [
|
||||
"tournament_id",
|
||||
"team_id"
|
||||
],
|
||||
"isUnique": true
|
||||
}
|
||||
},
|
||||
"foreignKeys": {
|
||||
"tournament_team_tournament_id_tournament_id_fk": {
|
||||
"name": "tournament_team_tournament_id_tournament_id_fk",
|
||||
"tableFrom": "tournament_team",
|
||||
"tableTo": "tournament",
|
||||
"columnsFrom": [
|
||||
"tournament_id"
|
||||
],
|
||||
"columnsTo": [
|
||||
"id"
|
||||
],
|
||||
"onDelete": "cascade",
|
||||
"onUpdate": "no action"
|
||||
},
|
||||
"tournament_team_team_id_team_id_fk": {
|
||||
"name": "tournament_team_team_id_team_id_fk",
|
||||
"tableFrom": "tournament_team",
|
||||
"tableTo": "team",
|
||||
"columnsFrom": [
|
||||
"team_id"
|
||||
],
|
||||
"columnsTo": [
|
||||
"id"
|
||||
],
|
||||
"onDelete": "cascade",
|
||||
"onUpdate": "no action"
|
||||
}
|
||||
},
|
||||
"compositePrimaryKeys": {},
|
||||
"uniqueConstraints": {},
|
||||
"checkConstraints": {}
|
||||
},
|
||||
"tournament": {
|
||||
"name": "tournament",
|
||||
"columns": {
|
||||
"id": {
|
||||
"name": "id",
|
||||
"type": "text",
|
||||
"primaryKey": true,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"name": {
|
||||
"name": "name",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
}
|
||||
},
|
||||
"indexes": {},
|
||||
"foreignKeys": {},
|
||||
"compositePrimaryKeys": {},
|
||||
"uniqueConstraints": {},
|
||||
"checkConstraints": {}
|
||||
}
|
||||
},
|
||||
"views": {},
|
||||
"enums": {},
|
||||
"_meta": {
|
||||
"schemas": {},
|
||||
"tables": {},
|
||||
"columns": {}
|
||||
},
|
||||
"internal": {
|
||||
"indexes": {}
|
||||
}
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
{
|
||||
"version": "7",
|
||||
"dialect": "sqlite",
|
||||
"entries": [
|
||||
{
|
||||
"idx": 0,
|
||||
"version": "6",
|
||||
"when": 1751642215588,
|
||||
"tag": "0000_awesome_wendigo",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 1,
|
||||
"version": "6",
|
||||
"when": 1752632968857,
|
||||
"tag": "0001_cool_ma_gnuci",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 2,
|
||||
"version": "6",
|
||||
"when": 1754400044471,
|
||||
"tag": "0002_real_korath",
|
||||
"breakpoints": true
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -4,24 +4,9 @@ import createNextIntlPlugin from "next-intl/plugin";
|
||||
const withNextIntl = createNextIntlPlugin("./src/i18n/request.ts");
|
||||
|
||||
const nextConfig: NextConfig = {
|
||||
async headers() {
|
||||
return [
|
||||
{
|
||||
source: "/(.*)",
|
||||
headers: [
|
||||
{
|
||||
key: "Content-Security-Policy",
|
||||
value:
|
||||
"frame-src 'self' https://tipilan.ee https://player.twitch.tv https://embed.twitch.tv; frame-ancestors 'self' https://tipilan.ee;",
|
||||
},
|
||||
{
|
||||
key: "X-Frame-Options",
|
||||
value: "SAMEORIGIN",
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
},
|
||||
images: {
|
||||
qualities: [75, 90],
|
||||
},
|
||||
};
|
||||
|
||||
export default withNextIntl(nextConfig);
|
||||
|
||||
10386
package-lock.json
generated
40
package.json
@@ -10,51 +10,25 @@
|
||||
"build": "next build",
|
||||
"start": "next start",
|
||||
"lint": "next lint",
|
||||
"drizzle:generate": "drizzle-kit generate:sqlite",
|
||||
"drizzle:push": "drizzle-kit push:sqlite",
|
||||
"drizzle:studio": "drizzle-kit studio"
|
||||
"lint:fix": "next lint --fix"
|
||||
},
|
||||
"dependencies": {
|
||||
"@libsql/client": "^0.15.15",
|
||||
"@paralleldrive/cuid2": "^2.2.2",
|
||||
"@radix-ui/react-alert-dialog": "^1.1.15",
|
||||
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
||||
"@radix-ui/react-select": "^2.2.6",
|
||||
"@radix-ui/react-slot": "^1.2.3",
|
||||
"@radix-ui/react-tooltip": "^1.2.8",
|
||||
"@tanstack/react-table": "^8.21.3",
|
||||
"@types/three": "^0.178.1",
|
||||
"class-variance-authority": "^0.7.1",
|
||||
"clsx": "^2.1.1",
|
||||
"drizzle-orm": "^0.44.5",
|
||||
"lucide-react": "^0.522.0",
|
||||
"material-symbols": "^0.31.9",
|
||||
"next": "15.3.0",
|
||||
"next": "^16.2.1",
|
||||
"next-intl": "^4.3.9",
|
||||
"next-themes": "^0.4.6",
|
||||
"react": "^19.1.1",
|
||||
"react-dom": "^19.1.1",
|
||||
"react-icons": "^5.5.0",
|
||||
"react-markdown": "^10.1.0",
|
||||
"tailwind-merge": "^3.3.1",
|
||||
"three": "^0.178.0",
|
||||
"tw-animate-css": "^1.4.0"
|
||||
"react": "^19.2.4",
|
||||
"react-dom": "^19.2.4",
|
||||
"react-icons": "^5.5.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@eslint/eslintrc": "^3.3.1",
|
||||
"@tailwindcss/postcss": "^4.1.13",
|
||||
"@types/bun": "^1.2.22",
|
||||
"@types/node": "^20.19.17",
|
||||
"@types/node": "^22.15.0",
|
||||
"@types/react": "^19.1.13",
|
||||
"@types/react-dom": "^19.1.9",
|
||||
"autoprefixer": "^10.4.21",
|
||||
"dotenv": "^16.6.1",
|
||||
"drizzle-kit": "^0.31.4",
|
||||
"eslint": "^9.36.0",
|
||||
"eslint-config-next": "15.3.0",
|
||||
"eslint-config-next": "^15.3.3",
|
||||
"postcss": "^8.5.6",
|
||||
"tailwindcss": "^4.1.13",
|
||||
"ts-node": "^10.9.2",
|
||||
"typescript": "^5.9.2"
|
||||
}
|
||||
}
|
||||
|
||||
5928
pnpm-lock.yaml
generated
@@ -1 +0,0 @@
|
||||
<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>
|
||||
|
Before Width: | Height: | Size: 391 B |
@@ -1 +0,0 @@
|
||||
<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>
|
||||
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 126 KiB |
@@ -1,50 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080">
|
||||
<defs>
|
||||
<style>
|
||||
.cls-1 {
|
||||
fill: #ff343a;
|
||||
}
|
||||
|
||||
.cls-2 {
|
||||
fill: #00ff50;
|
||||
}
|
||||
|
||||
.cls-3 {
|
||||
fill: #ff3398;
|
||||
}
|
||||
|
||||
.cls-4 {
|
||||
fill: #0284ff;
|
||||
}
|
||||
|
||||
.cls-5 {
|
||||
fill: #ffc703;
|
||||
}
|
||||
</style>
|
||||
</defs>
|
||||
<g>
|
||||
<path class="cls-5" d="M147.26,50.24h-46.56c-29.7,0-53.78,24.08-53.78,53.78v322.66c0,29.7,24.08,53.78,53.78,53.78h46.56c118.61,0,215.11-96.5,215.11-215.11S265.87,50.24,147.26,50.24ZM154.48,372.67v-214.63c55.95,3.73,100.34,50.43,100.34,107.31s-44.38,103.59-100.34,107.31Z"/>
|
||||
<path class="cls-4" d="M1424.13,50.24c-29.7,0-53.78,24.08-53.78,53.78v218.47c0,27.8-22.62,50.42-50.42,50.42s-50.42-22.62-50.42-50.42V104.02c0-29.7-24.08-53.78-53.78-53.78s-53.78,24.08-53.78,53.78v218.47c0,87.1,70.86,157.97,157.97,157.97s157.97-70.87,157.97-157.97V104.02c0-29.7-24.08-53.78-53.78-53.78Z"/>
|
||||
<path class="cls-3" d="M666.67,157.8c29.7,0,53.78-24.08,53.78-53.78s-24.08-53.78-53.78-53.78h-174.78c-29.7,0-53.78,24.08-53.78,53.78v322.66c0,29.7,24.08,53.78,53.78,53.78h174.78c29.7,0,53.78-24.08,53.78-53.78s-24.08-53.78-53.78-53.78h-121v-53.78h121c29.7,0,53.78-24.08,53.78-53.78s-24.08-53.78-53.78-53.78h-121v-53.78h121Z"/>
|
||||
<path class="cls-2" d="M100.71,599.52c-29.7,0-53.78,24.08-53.78,53.78v322.66c0,29.7,24.08,53.78,53.78,53.78s53.78-24.08,53.78-53.78v-322.66c0-29.7-24.08-53.78-53.78-53.78Z"/>
|
||||
<path class="cls-2" d="M1064.09,372.91h-154.61V104.02c0-29.7-24.08-53.78-53.78-53.78s-53.78,24.08-53.78,53.78v322.66c0,29.7,24.08,53.78,53.78,53.78h208.39c29.7,0,53.78-24.08,53.78-53.78s-24.08-53.78-53.78-53.78Z"/>
|
||||
<path class="cls-1" d="M1819.29,922.19h-154.61v-268.88c0-29.7-24.08-53.78-53.78-53.78s-53.78,24.08-53.78,53.78v322.66c0,29.7,24.08,53.78,53.78,53.78h208.39c29.7,0,53.78-24.08,53.78-53.78s-24.08-53.78-53.78-53.78Z"/>
|
||||
<path class="cls-5" d="M1353.21,634.4c-7.86-20.95-27.86-34.84-50.23-34.89h-.12c-22.32,0-42.33,13.79-50.26,34.67l-122.68,322.66c-10.55,27.76,3.39,58.82,31.16,69.38,27.76,10.56,58.82-3.39,69.38-31.15l72.07-189.54,70.99,189.31c8.1,21.59,28.59,34.91,50.36,34.91,6.27,0,12.65-1.11,18.87-3.44,27.81-10.43,41.9-41.43,31.47-69.23l-121-322.66Z"/>
|
||||
<path class="cls-4" d="M993.75,599.52c-29.7,0-53.78,24.08-53.78,53.78v140.27l-109.43-169.45c-12.94-20.03-37.52-29.15-60.38-22.41-22.87,6.74-38.57,27.74-38.57,51.58v322.66c0,29.7,24.08,53.78,53.78,53.78s53.78-24.08,53.78-53.78v-140.27l109.43,169.45c10.09,15.62,27.26,24.61,45.18,24.61,5.06,0,10.17-.72,15.21-2.2,22.87-6.74,38.57-27.74,38.57-51.58v-322.66c0-29.7-24.08-53.78-53.78-53.78Z"/>
|
||||
<path class="cls-3" d="M1870.74,208.11c0-87.05-70.82-157.86-157.86-157.86-41.3,0-77.48,10.14-104.63,29.31-34.33,24.25-53.23,62.01-53.23,106.31,0,24.5,7.18,57.43,38.23,85.23-22.12,6.67-38.23,27.2-38.23,51.49,0,87.05,70.82,157.86,157.86,157.86,41.77,0,76.58-9.1,103.46-27.05,35.08-23.42,54.4-60.95,54.4-105.66,0-25.05-7.86-59.2-42.83-86.99,24.45-5.06,42.83-26.71,42.83-52.66ZM1712.88,372.91c-27.74,0-50.31-22.57-50.31-50.31,0-5.01-.69-9.86-1.97-14.46,12.7,4.54,25.66,8.47,38.43,12.34,18.06,5.48,35.12,10.65,48.33,16.68,11.18,5.1,15.06,9.2,15.06,12.77,0,16.85-25.7,22.97-49.55,22.97ZM1730.25,217.55c-22.59-6.85-45.67-14.41-59.79-22.57-5.1-2.95-7.89-7.91-7.89-13.44,0-7.07,3.82-11.37,7.74-14.14,8.64-6.1,24.15-9.6,42.57-9.6,27.74,0,50.31,22.57,50.31,50.31,0,7.62,1.58,14.87,4.44,21.43-12.35-4.39-24.96-8.22-37.38-11.98Z"/>
|
||||
<path class="cls-1" d="M442.11,599.52c-118.61,0-215.11,96.5-215.11,215.11s96.5,215.11,215.11,215.11,215.11-96.5,215.11-215.11-96.5-215.11-215.11-215.11ZM442.11,922.18c-59.31,0-107.55-48.25-107.55-107.55s48.25-107.55,107.55-107.55,107.55,48.25,107.55,107.55-48.25,107.55-107.55,107.55Z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path d="M147.27,493.9h-46.56c-37.07,0-67.22-30.15-67.22-67.22V104.02c0-37.07,30.15-67.22,67.22-67.22h46.56c126.02,0,228.55,102.53,228.55,228.55s-102.53,228.55-228.55,228.55ZM100.71,63.69c-22.24,0-40.33,18.09-40.33,40.33v322.66c0,22.24,18.09,40.33,40.33,40.33h46.56c111.2,0,201.66-90.47,201.66-201.66S258.46,63.69,147.27,63.69h-46.56ZM141.04,387.04v-243.37l14.34.96c63.3,4.21,112.89,57.24,112.89,120.73s-49.59,116.52-112.89,120.73l-14.34.96ZM167.93,173.53v183.65c42.17-9.48,73.45-47.36,73.45-91.83s-31.27-82.34-73.45-91.82Z"/>
|
||||
<path d="M1319.94,493.9c-94.52,0-171.41-76.9-171.41-171.42V104.02c0-37.07,30.15-67.22,67.22-67.22s67.22,30.15,67.22,67.22v218.47c0,20.39,16.58,36.97,36.97,36.97s36.97-16.59,36.97-36.97V104.02c0-37.07,30.15-67.22,67.22-67.22s67.22,30.15,67.22,67.22v218.47c0,94.52-76.9,171.42-171.42,171.42ZM1215.75,63.69c-22.24,0-40.33,18.09-40.33,40.33v218.47c0,79.69,64.83,144.53,144.52,144.53s144.53-64.83,144.53-144.53V104.02c0-22.24-18.09-40.33-40.33-40.33s-40.33,18.09-40.33,40.33v218.47c0,35.21-28.65,63.86-63.86,63.86s-63.86-28.65-63.86-63.86V104.02c0-22.24-18.09-40.33-40.33-40.33Z"/>
|
||||
<path d="M666.67,493.9h-174.78c-37.07,0-67.22-30.15-67.22-67.22V104.02c0-37.07,30.15-67.22,67.22-67.22h174.78c37.07,0,67.22,30.15,67.22,67.22s-30.15,67.22-67.22,67.22h-107.55v26.89h107.55c37.07,0,67.22,30.15,67.22,67.22s-30.15,67.22-67.22,67.22h-107.55v26.89h107.55c37.07,0,67.22,30.15,67.22,67.22s-30.15,67.22-67.22,67.22ZM491.9,63.69c-22.24,0-40.33,18.09-40.33,40.33v322.66c0,22.24,18.09,40.33,40.33,40.33h174.78c22.24,0,40.33-18.09,40.33-40.33s-18.09-40.33-40.33-40.33h-121c-7.42,0-13.44-6.02-13.44-13.44v-53.78c0-7.42,6.02-13.44,13.44-13.44h121c22.24,0,40.33-18.09,40.33-40.33s-18.09-40.33-40.33-40.33h-121c-7.42,0-13.44-6.02-13.44-13.44v-53.78c0-7.42,6.02-13.44,13.44-13.44h121c22.24,0,40.33-18.09,40.33-40.33s-18.09-40.33-40.33-40.33h-174.78Z"/>
|
||||
<path d="M100.71,1043.17c-37.07,0-67.22-30.15-67.22-67.22v-322.66c0-37.06,30.15-67.22,67.22-67.22s67.22,30.15,67.22,67.22v322.66c0,37.06-30.15,67.22-67.22,67.22ZM100.71,612.96c-22.24,0-40.33,18.09-40.33,40.33v322.66c0,22.24,18.09,40.33,40.33,40.33s40.33-18.09,40.33-40.33v-322.66c0-22.24-18.09-40.33-40.33-40.33Z"/>
|
||||
<path d="M1064.09,493.9h-208.38c-37.07,0-67.22-30.15-67.22-67.22V104.02c0-37.07,30.16-67.22,67.22-67.22s67.22,30.15,67.22,67.22v255.44h141.16c37.07,0,67.22,30.15,67.22,67.22s-30.15,67.22-67.22,67.22ZM855.71,63.69c-22.24,0-40.33,18.09-40.33,40.33v322.66c0,22.24,18.09,40.33,40.33,40.33h208.38c22.24,0,40.33-18.09,40.33-40.33s-18.09-40.33-40.33-40.33h-168.05V104.02c0-22.24-18.09-40.33-40.33-40.33Z"/>
|
||||
<path d="M1819.29,1043.18h-208.38c-37.07,0-67.22-30.15-67.22-67.22v-322.66c0-37.06,30.15-67.22,67.22-67.22s67.22,30.15,67.22,67.22v255.44h141.17c37.07,0,67.22,30.15,67.22,67.22s-30.15,67.22-67.22,67.22ZM1610.91,612.97c-22.24,0-40.33,18.09-40.33,40.33v322.66c0,22.24,18.09,40.33,40.33,40.33h208.38c22.24,0,40.33-18.09,40.33-40.33s-18.09-40.33-40.33-40.33h-154.61c-7.43,0-13.44-6.02-13.44-13.44v-268.89c0-22.24-18.09-40.33-40.33-40.33Z"/>
|
||||
<path d="M1180.2,1043.21c-8.07,0-16.15-1.47-23.91-4.42-16.78-6.38-30.08-18.92-37.43-35.3-7.36-16.38-7.9-34.64-1.51-51.43l122.68-322.66c9.85-25.92,35.1-43.33,62.83-43.33,27.95.07,53.18,17.59,62.94,43.62h0l121,322.66c6.31,16.81,5.69,35.07-1.75,51.42-7.43,16.35-20.78,28.82-37.59,35.13-7.6,2.85-15.54,4.29-23.59,4.29-27.87,0-53.16-17.53-62.95-43.63l-58.49-155.98-59.41,156.26c-6.38,16.78-18.92,30.08-35.3,37.43-8.8,3.95-18.15,5.93-27.51,5.93ZM1302.94,612.95c-16.73,0-31.88,10.45-37.79,26l-122.68,322.66c-3.83,10.07-3.51,21.03.91,30.86,4.42,9.83,12.39,17.35,22.46,21.18,10.06,3.83,21.02,3.51,30.85-.91,9.83-4.41,17.35-12.39,21.18-22.46l72.06-189.54c1.98-5.22,6.98-8.67,12.57-8.67h.03c5.59.01,10.6,3.49,12.56,8.72l70.99,189.32c5.87,15.66,21.06,26.18,37.77,26.18,4.82,0,9.58-.87,14.15-2.58,20.82-7.81,31.41-31.1,23.6-51.93l-120.99-322.66c-5.86-15.62-21-26.13-37.68-26.17Z"/>
|
||||
<path d="M993.76,1043.18c-22.92,0-44.03-11.5-56.47-30.75l-84.7-131.14v94.67c0,37.06-30.15,67.22-67.22,67.22s-67.22-30.15-67.22-67.22v-322.66c0-29.59,19.83-56.11,48.21-64.48,28.38-8.36,59.42,3.16,75.48,28.01l84.69,131.14v-94.67c0-37.06,30.15-67.22,67.22-67.22s67.22,30.15,67.22,67.22v322.66c0,29.59-19.83,56.11-48.21,64.48-6.18,1.82-12.58,2.74-19.01,2.74ZM839.14,822.24c4.48,0,8.77,2.25,11.29,6.15l109.44,169.45c7.46,11.56,20.13,18.46,33.88,18.46,3.86,0,7.69-.56,11.4-1.65,17.03-5.02,28.93-20.93,28.93-38.68v-322.66c0-22.24-18.09-40.33-40.33-40.33s-40.33,18.09-40.33,40.33v140.27c0,5.96-3.93,11.21-9.64,12.9-5.72,1.67-11.86-.6-15.1-5.6l-109.43-169.45c-9.63-14.92-28.26-21.85-45.29-16.81-17.03,5.02-28.92,20.93-28.92,38.68v322.66c0,22.24,18.09,40.33,40.33,40.33s40.33-18.09,40.33-40.33v-140.27c0-5.96,3.93-11.21,9.64-12.9,1.26-.37,2.54-.55,3.8-.55Z"/>
|
||||
<path d="M1712.88,493.9c-94.46,0-171.31-76.85-171.31-171.31,0-22.37,11.37-43.03,29.19-55.38-23.75-28.24-29.19-59.06-29.19-81.34,0-48.8,20.92-90.45,58.92-117.3,29.43-20.79,68.29-31.78,112.39-31.78,94.46,0,171.31,76.85,171.31,171.31,0,23.66-12.53,45.08-31.78,57.1,25.83,28.18,31.78,59.59,31.78,82.55,0,49.34-21.45,90.84-60.38,116.84-29.13,19.45-66.45,29.31-110.92,29.31ZM1712.88,63.69c-38.51,0-72.01,9.28-96.87,26.85-30.66,21.66-47.55,55.52-47.55,95.33,0,29.86,11.35,55.16,33.75,75.22,3.62,3.24,5.21,8.19,4.16,12.93s-4.59,8.55-9.24,9.95c-16.88,5.09-28.66,20.97-28.66,38.62,0,79.63,64.79,144.42,144.42,144.42,39.06,0,71.36-8.34,95.99-24.79,31.23-20.85,48.43-54.4,48.43-94.48,0-30.84-12.7-56.56-37.75-76.46-4.08-3.25-5.93-8.56-4.72-13.64,1.21-5.08,5.25-9,10.36-10.06,18.6-3.85,32.11-20.46,32.11-39.49,0-79.63-64.79-144.42-144.42-144.42ZM1712.88,386.35c-35.15,0-63.75-28.6-63.75-63.75,0-3.69-.49-7.34-1.47-10.86-1.35-4.84.11-10.03,3.79-13.45,3.68-3.42,8.96-4.51,13.69-2.82,12.35,4.42,25.23,8.32,37.67,12.1,18.63,5.65,36.1,10.95,50.15,17.36,6.86,3.13,22.92,10.46,22.92,25,0,22.8-23.55,36.42-62.99,36.42ZM1676.35,327.57c2.43,17.99,17.89,31.89,36.53,31.89s30.38-3.96,34.49-7.21c-1.29-.76-3.09-1.72-5.58-2.86-12.41-5.66-29.04-10.71-46.65-16.05-6.21-1.88-12.49-3.79-18.78-5.78ZM1767.62,242.98c-1.51,0-3.03-.25-4.5-.78-12.03-4.28-24.58-8.09-36.71-11.77l3.84-12.88-3.9,12.87c-23.43-7.11-47.24-14.91-62.62-23.8-9.14-5.28-14.6-14.66-14.6-25.08,0-7.13,2.33-17.28,13.42-25.12,11.02-7.78,28.89-12.07,50.33-12.07,35.15,0,63.75,28.6,63.75,63.75,0,5.59,1.12,11,3.33,16.07,2.14,4.91,1.16,10.63-2.5,14.54-2.59,2.77-6.17,4.27-9.83,4.27ZM1712.88,171.24c-18.22,0-29.93,3.69-34.82,7.14-2.05,1.45-2.05,2.24-2.05,3.16,0,.57.09,1.17,1.17,1.8,13.05,7.55,36.12,15.03,56.96,21.35l-3.9,12.87,3.96-12.85c5.12,1.55,10.32,3.13,15.55,4.76,0-.45-.01-.91-.01-1.36,0-20.33-16.53-36.86-36.86-36.86Z"/>
|
||||
<path d="M442.11,1043.17c-126.02,0-228.55-102.53-228.55-228.55s102.53-228.55,228.55-228.55,228.55,102.53,228.55,228.55-102.53,228.55-228.55,228.55ZM442.11,612.96c-111.2,0-201.66,90.47-201.66,201.66s90.47,201.66,201.66,201.66,201.66-90.47,201.66-201.66-90.47-201.66-201.66-201.66ZM442.11,935.62c-66.72,0-121-54.28-121-121s54.28-121,121-121,121,54.28,121,121-54.28,121-121,121ZM442.11,720.51c-51.89,0-94.11,42.22-94.11,94.11s42.22,94.11,94.11,94.11,94.11-42.22,94.11-94.11-42.22-94.11-94.11-94.11Z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 816 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 257 KiB |
|
Before Width: | Height: | Size: 71 KiB |
|
Before Width: | Height: | Size: 282 KiB |
|
Before Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 298 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 335 KiB |
|
Before Width: | Height: | Size: 368 KiB |
|
Before Width: | Height: | Size: 82 KiB |
|
Before Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 1.8 MiB |
|
Before Width: | Height: | Size: 205 KiB |
|
Before Width: | Height: | Size: 103 KiB |
|
Before Width: | Height: | Size: 2.2 MiB |
|
Before Width: | Height: | Size: 18 MiB |
|
Before Width: | Height: | Size: 36 MiB |
|
Before Width: | Height: | Size: 75 KiB |
|
Before Width: | Height: | Size: 313 KiB |
|
Before Width: | Height: | Size: 57 KiB |
|
Before Width: | Height: | Size: 132 KiB |
|
Before Width: | Height: | Size: 860 KiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 2.0 MiB |
|
Before Width: | Height: | Size: 642 KiB |
|
Before Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 1.0 MiB |
|
Before Width: | Height: | Size: 750 KiB |
BIN
public/images/TipiLAN_og.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
public/images/backgrounds/compete_teaser.webp
Normal file
|
After Width: | Height: | Size: 54 KiB |
BIN
public/images/backgrounds/explore_teaser.webp
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
public/images/backgrounds/hero_teaser.webp
Normal file
|
After Width: | Height: | Size: 117 KiB |
BIN
public/images/backgrounds/play_teaser.webp
Normal file
|
After Width: | Height: | Size: 75 KiB |
BIN
public/images/backgrounds/sponsors_teaser.webp
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
public/images/backgrounds/tickets_teaser.webp
Normal file
|
After Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 12 MiB |
|
Before Width: | Height: | Size: 7.8 MiB |
6
public/images/flags/flag-en.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg width="40" height="30" viewBox="0 0 40 30" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M0 4.68346V9.23077H6.25333L0 4.68346ZM5.18222 30H14.4444V23.265L5.18222 30ZM25.5556 23.2662V30H34.8167L25.5556 23.2662ZM0 20.7692V25.3165L6.25556 20.7692H0ZM34.8189 0H25.5556V6.735L34.8189 0ZM40 25.3177V20.7692H33.7433L40 25.3177ZM40 9.23077V4.68346L33.7456 9.23077H40ZM14.4444 0H5.18222L14.4444 6.735V0Z" fill="#00247D"/>
|
||||
<path d="M27.9332 20.7696L38.7243 28.6169C39.2513 28.0531 39.6301 27.3583 39.8243 26.5989L31.8076 20.7696H27.9332ZM14.4443 20.7696H12.0654L1.27543 28.6158C1.85432 29.2273 2.59654 29.6646 3.42876 29.8677L14.4443 21.8577V20.7696ZM25.5554 9.23118H27.9343L38.7243 1.38503C38.1355 0.764575 37.3891 0.330442 36.5721 0.133104L25.5554 8.1431V9.23118ZM12.0654 9.23118L1.27543 1.38503C0.748709 1.94923 0.369666 2.64392 0.174316 3.4031L8.19098 9.23118H12.0654Z" fill="#C8102E"/>
|
||||
<path d="M40 18.4615H23.3333V30H25.5556V23.2662L34.8167 30H35.5556C36.1458 30.0001 36.7302 29.8778 37.2744 29.6402C37.8185 29.4026 38.3114 29.055 38.7243 28.6169L27.9332 20.7696H31.8076L39.8243 26.5989C39.9276 26.21 40 25.8069 40 25.3846V25.3177L33.7433 20.7692H40V18.4615ZM0 18.4615V20.7692H6.25556L0 25.3165V25.3846C0 26.6435 0.48765 27.7827 1.27543 28.6158L12.0654 20.7696H14.4443V21.8577L3.42889 29.8662C3.75556 29.9469 4.09333 30 4.44444 30H5.18222L14.4444 23.265V30H16.6667V18.4615H0ZM40 4.61538C40.0007 3.40613 39.5422 2.24574 38.7243 1.38503L27.9343 9.23118H25.5554V8.1431L36.5721 0.133104C36.2393 0.0483274 35.8982 0.00339006 35.5556 4.3659e-07L34.8189 0L25.5556 6.735V0L23.3333 4.3659e-07V11.5385H40V9.23077H33.7456L40 4.68346V4.61538ZM14.4444 0V6.735L5.18222 0L4.44444 4.3659e-07C3.85403 -0.000266737 3.26952 0.122092 2.72531 0.359879C2.1811 0.597666 1.68805 0.946488 1.27543 1.38503L12.0654 9.23118H8.19098L0.174316 3.4031C0.0640721 3.79738 0.00552601 4.20486 0 4.61538V4.68346L6.25333 9.23077H0V11.5385H16.6667V4.3659e-07L14.4444 0Z" fill="white"/>
|
||||
<path d="M23.3333 11.5385V4.3659e-07H16.6667V11.5385H0V18.4615H16.6667V30H23.3333V18.4615H40V11.5385H23.3333Z" fill="#C8102E"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.0 KiB |
5
public/images/flags/flag-et.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg width="40" height="30" viewBox="0 0 40 30" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M35.5556 0H4.44444C3.2657 0 2.13524 0.468252 1.30175 1.30175C0.468253 2.13524 0 3.2657 0 4.44444V10H40V4.44444C40 3.2657 39.5317 2.13524 38.6983 1.30175C37.8648 0.468252 36.7343 0 35.5556 0Z" fill="#0072CE"/>
|
||||
<path d="M0 10H40V20H0V10Z" fill="black"/>
|
||||
<path d="M35.5556 30H4.44444C3.2657 30 2.13524 29.4732 1.30175 28.5355C0.468253 27.5979 0 26.3261 0 25V20H40V25C40 26.3261 39.5317 27.5979 38.6983 28.5355C37.8648 29.4732 36.7343 30 35.5556 30Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 574 B |
BIN
public/images/heros/compete_hero.webp
Normal file
|
After Width: | Height: | Size: 135 KiB |
BIN
public/images/heros/explore_hero.webp
Normal file
|
After Width: | Height: | Size: 136 KiB |
BIN
public/images/heros/play_hero.webp
Normal file
|
After Width: | Height: | Size: 145 KiB |
|
Before Width: | Height: | Size: 4.3 MiB |
|
Before Width: | Height: | Size: 6.5 MiB |
|
Before Width: | Height: | Size: 12 MiB |
|
Before Width: | Height: | Size: 8.1 MiB |
|
Before Width: | Height: | Size: 1.7 MiB |
|
Before Width: | Height: | Size: 235 KiB |
|
Before Width: | Height: | Size: 860 KiB |
|
Before Width: | Height: | Size: 100 KiB |
|
Before Width: | Height: | Size: 842 KiB |
|
Before Width: | Height: | Size: 67 KiB |
|
Before Width: | Height: | Size: 180 KiB |
|
Before Width: | Height: | Size: 157 KiB |
|
Before Width: | Height: | Size: 470 KiB |
BIN
public/images/original/compete_hero.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
public/images/original/compete_teaser.png
Normal file
|
After Width: | Height: | Size: 1.8 MiB |
BIN
public/images/original/explore_hero.png
Normal file
|
After Width: | Height: | Size: 1015 KiB |
BIN
public/images/original/explore_teaser.png
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
BIN
public/images/original/hero_teaser.png
Normal file
|
After Width: | Height: | Size: 2.2 MiB |
BIN
public/images/original/play_hero.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
public/images/original/play_teaser.png
Normal file
|
After Width: | Height: | Size: 2.0 MiB |
BIN
public/images/original/sponsors_teaser.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
public/images/original/tickets_teaser.png
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 394 80"><path fill="#000" d="M262 0h68.5v12.7h-27.2v66.6h-13.6V12.7H262V0ZM149 0v12.7H94v20.4h44.3v12.6H94v21h55v12.6H80.5V0h68.7zm34.3 0h-17.8l63.8 79.4h17.9l-32-39.7 32-39.6h-17.9l-23 28.6-23-28.6zm18.3 56.7-9-11-27.1 33.7h17.8l18.3-22.7z"/><path fill="#000" d="M81 79.3 17 0H0v79.3h13.6V17l50.2 62.3H81Zm252.6-.4c-1 0-1.8-.4-2.5-1s-1.1-1.6-1.1-2.6.3-1.8 1-2.5 1.6-1 2.6-1 1.8.3 2.5 1a3.4 3.4 0 0 1 .6 4.3 3.7 3.7 0 0 1-3 1.8zm23.2-33.5h6v23.3c0 2.1-.4 4-1.3 5.5a9.1 9.1 0 0 1-3.8 3.5c-1.6.8-3.5 1.3-5.7 1.3-2 0-3.7-.4-5.3-1s-2.8-1.8-3.7-3.2c-.9-1.3-1.4-3-1.4-5h6c.1.8.3 1.6.7 2.2s1 1.2 1.6 1.5c.7.4 1.5.5 2.4.5 1 0 1.8-.2 2.4-.6a4 4 0 0 0 1.6-1.8c.3-.8.5-1.8.5-3V45.5zm30.9 9.1a4.4 4.4 0 0 0-2-3.3 7.5 7.5 0 0 0-4.3-1.1c-1.3 0-2.4.2-3.3.5-.9.4-1.6 1-2 1.6a3.5 3.5 0 0 0-.3 4c.3.5.7.9 1.3 1.2l1.8 1 2 .5 3.2.8c1.3.3 2.5.7 3.7 1.2a13 13 0 0 1 3.2 1.8 8.1 8.1 0 0 1 3 6.5c0 2-.5 3.7-1.5 5.1a10 10 0 0 1-4.4 3.5c-1.8.8-4.1 1.2-6.8 1.2-2.6 0-4.9-.4-6.8-1.2-2-.8-3.4-2-4.5-3.5a10 10 0 0 1-1.7-5.6h6a5 5 0 0 0 3.5 4.6c1 .4 2.2.6 3.4.6 1.3 0 2.5-.2 3.5-.6 1-.4 1.8-1 2.4-1.7a4 4 0 0 0 .8-2.4c0-.9-.2-1.6-.7-2.2a11 11 0 0 0-2.1-1.4l-3.2-1-3.8-1c-2.8-.7-5-1.7-6.6-3.2a7.2 7.2 0 0 1-2.4-5.7 8 8 0 0 1 1.7-5 10 10 0 0 1 4.3-3.5c2-.8 4-1.2 6.4-1.2 2.3 0 4.4.4 6.2 1.2 1.8.8 3.2 2 4.3 3.4 1 1.4 1.5 3 1.5 5h-5.8z"/></svg>
|
||||
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 631 KiB |
|
Before Width: | Height: | Size: 55 KiB |
|
Before Width: | Height: | Size: 112 KiB |
|
Before Width: | Height: | Size: 7.6 KiB |
|
Before Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 5.8 KiB |