First commit
7
.env.example
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
NEXT_PUBLIC_API_URL=https://trustlab-api.dyzulk.com
|
||||||
|
NEXT_PUBLIC_BACKEND_URL=https://trustlab-api.dyzulk.com
|
||||||
|
|
||||||
|
NEXT_PUBLIC_REVERB_APP_KEY=tl_live_key_9554d3e810a90e38634d
|
||||||
|
NEXT_PUBLIC_REVERB_HOST="trustlab-api.dyzulk.com"
|
||||||
|
NEXT_PUBLIC_REVERB_PORT=443
|
||||||
|
NEXT_PUBLIC_REVERB_SCHEME=https
|
||||||
9
.env.production.example
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
NEXT_PUBLIC_API_URL=https://trustlab-api.dyzulk.com
|
||||||
|
NEXT_PUBLIC_BACKEND_URL=https://trustlab-api.dyzulk.com
|
||||||
|
|
||||||
|
# Reverb / WebSocket Configuration
|
||||||
|
# For production behind Nginx/Cloudflare reverse proxy, use port 443 and https (wss)
|
||||||
|
NEXT_PUBLIC_REVERB_APP_KEY=
|
||||||
|
NEXT_PUBLIC_REVERB_HOST="trustlab-api.dyzulk.com"
|
||||||
|
NEXT_PUBLIC_REVERB_PORT=443
|
||||||
|
NEXT_PUBLIC_REVERB_SCHEME=https
|
||||||
3
.eslintrc.json
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"extends": "next/core-web-vitals"
|
||||||
|
}
|
||||||
38
.gitignore
vendored
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
|
||||||
|
|
||||||
|
# dependencies
|
||||||
|
/.idea
|
||||||
|
/node_modules
|
||||||
|
/.pnp
|
||||||
|
.pnp.js
|
||||||
|
.yarn/install-state.gz
|
||||||
|
|
||||||
|
# testing
|
||||||
|
/coverage
|
||||||
|
|
||||||
|
# next.js
|
||||||
|
/.next/
|
||||||
|
/out/
|
||||||
|
|
||||||
|
# production
|
||||||
|
/build
|
||||||
|
|
||||||
|
# misc
|
||||||
|
.DS_Store
|
||||||
|
*.pem
|
||||||
|
|
||||||
|
# debug
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
|
||||||
|
# local env files
|
||||||
|
.env
|
||||||
|
.env*.local
|
||||||
|
|
||||||
|
# vercel
|
||||||
|
.vercel
|
||||||
|
|
||||||
|
# typescript
|
||||||
|
*.tsbuildinfo
|
||||||
|
next-env.d.ts
|
||||||
21
LICENSE
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2023 TailAdmin
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
41
README.md
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
# TrustLab Web
|
||||||
|
|
||||||
|
**TrustLab Web** is the premium, responsive frontend interface for the TrustLab ecosystem. Built with Next.js 16 (App Router) and Tailwind CSS v4, it delivers a high-performance, aesthetically pleasing user experience for both Customers and Administrators.
|
||||||
|
|
||||||
|
## 🚀 Key Features
|
||||||
|
|
||||||
|
### 💎 Premium User Interface
|
||||||
|
- **Modern Aesthetic**: "Glassmorphism" design language with backdrop blurs and subtle gradients.
|
||||||
|
- **Dark Mode First**: Fully optimized dark/light theme switching with persistent state.
|
||||||
|
- **Responsive Design**: Mobile-first architecture ensuring seamless adaptability from Phones to 4K Desktops.
|
||||||
|
|
||||||
|
### 🛡️ Secure Dashboard & Portal
|
||||||
|
- **Dashboard Layout**: comprehensive sidebar navigation with collapsible grouping (Admin vs Customer).
|
||||||
|
- **Role-Based Views**: UI elements (Buttons, Menus) adapt dynamically based on `Owner`, `Admin`, or `Customer` roles.
|
||||||
|
- **Profile Management**: User settings, password management, and social account linking.
|
||||||
|
- **Ticket System UI**: Chat-like interface for support tickets with real-time status updates and file attachment previews.
|
||||||
|
|
||||||
|
### 🛠️ Public Tools
|
||||||
|
- **Chat ID Finder**: Tool for retrieving Telegram Chat IDs.
|
||||||
|
- **Key Generator**: Secure, client-side generator for Laravel/App secrets (`base64`, `hex`).
|
||||||
|
- **Contact Form**: Integrated inquiry system protected by Cloudflare Turnstile.
|
||||||
|
|
||||||
|
## 🛠️ Technology Stack
|
||||||
|
|
||||||
|
- **Framework**: Next.js 16 (App Router)
|
||||||
|
- **Styling**: Tailwind CSS v4
|
||||||
|
- **Language**: TypeScript
|
||||||
|
- **State Management**: React Context (Sidebar, Theme, Auth) & Hooks
|
||||||
|
- **HTTP Client**: Axios (with centralized interceptors for Auth/CSRF)
|
||||||
|
- **Icons**: Lucide React
|
||||||
|
- **Bot Protection**: `@marsidev/react-turnstile`
|
||||||
|
|
||||||
|
## 📂 Project Structure
|
||||||
|
|
||||||
|
- `src/app/(public)`: Publicly accessible pages (Landing, Tools, Auth).
|
||||||
|
- `src/app/dashboard`: Protected routes requiring authentication.
|
||||||
|
- `src/components/ui`: Reusable, atomic UI components (Buttons, Modals, Inputs) following the design system.
|
||||||
|
- `src/hooks`: Custom hooks for Auth (`useAuth`), Theme (`useTheme`), and Window dimensions.
|
||||||
|
|
||||||
|
---
|
||||||
|
© 2024 TrustLab. All Internal Rights Reserved.
|
||||||
BIN
banner.png
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
29
build_log.txt
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
|
||||||
|
> TrustLab by DyzulkDev@1.0.0 build
|
||||||
|
> next build
|
||||||
|
|
||||||
|
Γû▓ Next.js 16.0.10 (Turbopack)
|
||||||
|
- Environments: .env.local
|
||||||
|
|
||||||
|
Creating an optimized production build ...
|
||||||
|
|
||||||
|
> Build error occurred
|
||||||
|
Error: Turbopack build failed with 1 errors:
|
||||||
|
./src/app/(public)/reset-password/page.tsx:6:29
|
||||||
|
Ecmascript file had an error
|
||||||
|
4 | import PageLoader from "@/components/ui/PageLoader";
|
||||||
|
5 |
|
||||||
|
> 6 | const ResetPasswordClient = dynamic(() => import("./ResetPasswordClient"), {
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
> 7 | ssr: false,
|
||||||
|
| ^^^^^^^^^^^^^
|
||||||
|
> 8 | });
|
||||||
|
| ^^^
|
||||||
|
9 |
|
||||||
|
10 | export async function generateMetadata() {
|
||||||
|
11 | const t = await getTranslations("Auth");
|
||||||
|
|
||||||
|
`ssr: false` is not allowed with `next/dynamic` in Server Components. Please move it into a Client Component.
|
||||||
|
|
||||||
|
|
||||||
|
at <unknown> (./src/app/(public)/reset-password/page.tsx:6:29)
|
||||||
13
eslint.config.mjs
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
// eslint.config.mjs
|
||||||
|
import { defineConfig, globalIgnores } from 'eslint/config'
|
||||||
|
import nextConfig from 'eslint-config-next/core-web-vitals'
|
||||||
|
|
||||||
|
export default defineConfig([
|
||||||
|
...nextConfig,
|
||||||
|
globalIgnores([
|
||||||
|
'.next/**',
|
||||||
|
'out/**',
|
||||||
|
'build/**',
|
||||||
|
'next-env.d.ts'
|
||||||
|
]),
|
||||||
|
])
|
||||||
4
jsvectormap.d.ts
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
declare module 'jsvectormap' {
|
||||||
|
const jsVectorMap: any;
|
||||||
|
export default jsVectorMap;
|
||||||
|
}
|
||||||
59
next.config.ts
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
import type { NextConfig } from "next";
|
||||||
|
|
||||||
|
const nextConfig: NextConfig = {
|
||||||
|
/* config options here */
|
||||||
|
webpack(config) {
|
||||||
|
config.module.rules.push({
|
||||||
|
test: /\.svg$/,
|
||||||
|
use: ["@svgr/webpack"],
|
||||||
|
});
|
||||||
|
return config;
|
||||||
|
},
|
||||||
|
|
||||||
|
turbopack: {
|
||||||
|
rules: {
|
||||||
|
'*.svg': {
|
||||||
|
loaders: ['@svgr/webpack'],
|
||||||
|
as: '*.js',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
images: {
|
||||||
|
unoptimized: true,
|
||||||
|
remotePatterns: [
|
||||||
|
{
|
||||||
|
protocol: 'http',
|
||||||
|
hostname: 'localhost',
|
||||||
|
port: '8000',
|
||||||
|
pathname: '/storage/**',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
protocol: 'http',
|
||||||
|
hostname: '127.0.0.1',
|
||||||
|
port: '8000',
|
||||||
|
pathname: '/storage/**',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
protocol: 'http',
|
||||||
|
hostname: 'localhost',
|
||||||
|
port: '8001',
|
||||||
|
pathname: '/storage/**',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
protocol: 'http',
|
||||||
|
hostname: '127.0.0.1',
|
||||||
|
port: '8001',
|
||||||
|
pathname: '/storage/**',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
protocol: 'https',
|
||||||
|
hostname: 'trustlab-api.dyzulk.com',
|
||||||
|
pathname: '/storage/**',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
output: "export",
|
||||||
|
};
|
||||||
|
|
||||||
|
export default nextConfig;
|
||||||
11821
package-lock.json
generated
Normal file
57
package.json
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
{
|
||||||
|
"name": "TrustLab by DyzulkDev",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"private": true,
|
||||||
|
"scripts": {
|
||||||
|
"dev": "next dev",
|
||||||
|
"build": "next build",
|
||||||
|
"pages:build": "next build",
|
||||||
|
"start": "next start",
|
||||||
|
"lint": "eslint ."
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@marsidev/react-turnstile": "^1.4.1",
|
||||||
|
"@tailwindcss/forms": "^0.5.10",
|
||||||
|
"@tailwindcss/postcss": "^4.1.17",
|
||||||
|
"@tailwindcss/typography": "^0.5.19",
|
||||||
|
"apexcharts": "^5.3.6",
|
||||||
|
"autoprefixer": "^10.4.22",
|
||||||
|
"axios": "^1.13.2",
|
||||||
|
"flatpickr": "^4.6.13",
|
||||||
|
"geist": "^1.5.1",
|
||||||
|
"laravel-echo": "^2.2.6",
|
||||||
|
"lucide-react": "^0.562.0",
|
||||||
|
"next": "16.0.10",
|
||||||
|
"next-intl": "^4.6.1",
|
||||||
|
"next-themes": "^0.4.6",
|
||||||
|
"pusher-js": "^8.4.0",
|
||||||
|
"react": "^19.2.0",
|
||||||
|
"react-apexcharts": "^1.9.0",
|
||||||
|
"react-dom": "^19.2.0",
|
||||||
|
"react-dropzone": "^14.3.8",
|
||||||
|
"react-easy-crop": "^5.5.6",
|
||||||
|
"react-markdown": "^10.1.0",
|
||||||
|
"remark-gfm": "^4.0.1",
|
||||||
|
"swr": "^2.3.8",
|
||||||
|
"tailwind-merge": "^2.6.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@cloudflare/next-on-pages": "^1.13.16",
|
||||||
|
"@eslint/eslintrc": "^3.3.1",
|
||||||
|
"@svgr/webpack": "^8.1.0",
|
||||||
|
"@types/node": "^20.19.25",
|
||||||
|
"@types/react": "^19.2.1",
|
||||||
|
"@types/react-dom": "^19.2.1",
|
||||||
|
"@types/react-transition-group": "^4.4.12",
|
||||||
|
"eslint": "^9.39.1",
|
||||||
|
"eslint-config-next": "16.0.7",
|
||||||
|
"postcss": "^8.5.6",
|
||||||
|
"tailwindcss": "^4.1.17",
|
||||||
|
"typescript": "^5.9.3"
|
||||||
|
},
|
||||||
|
"overrides": {
|
||||||
|
"@cloudflare/next-on-pages": {
|
||||||
|
"next": "$next"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
5
postcss.config.js
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
module.exports = {
|
||||||
|
plugins: {
|
||||||
|
'@tailwindcss/postcss': {},
|
||||||
|
},
|
||||||
|
};
|
||||||
3
prettier.config.js
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
module.exports = {
|
||||||
|
plugins: ['prettier-plugin-tailwindcss'],
|
||||||
|
}
|
||||||
BIN
public/favicon.ico
Normal file
|
After Width: | Height: | Size: 174 KiB |
6
public/images/brand/brand-01.svg
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M26.5002 14.9998C27.8808 14.9998 29 13.8806 29 12.5C29 11.1194 27.8807 10.0002 26.5001 10.0002C25.1194 10.0002 24 11.1195 24 12.5002V14.9998H26.5002ZM19.5 14.9998C20.8807 14.9998 22 13.8805 22 12.4998V5.50018C22 4.11947 20.8807 3.00018 19.5 3.00018C18.1193 3.00018 17 4.11947 17 5.50018V12.4998C17 13.8805 18.1193 14.9998 19.5 14.9998Z" fill="#2EB67D"/>
|
||||||
|
<path d="M5.49979 17.0002C4.11919 17.0002 3 18.1194 3 19.5C3 20.8806 4.1193 21.9998 5.49989 21.9998C6.8806 21.9998 8 20.8805 8 19.4998V17.0002H5.49979ZM12.5 17.0002C11.1193 17.0002 10 18.1195 10 19.5002V26.4998C10 27.8805 11.1193 28.9998 12.5 28.9998C13.8807 28.9998 15 27.8805 15 26.4998V19.5002C15 18.1195 13.8807 17.0002 12.5 17.0002Z" fill="#E01E5A"/>
|
||||||
|
<path d="M17.0002 26.5002C17.0002 27.8808 18.1194 29 19.5 29C20.8806 29 21.9998 27.8807 21.9998 26.5001C21.9998 25.1194 20.8805 24 19.4998 24L17.0002 24L17.0002 26.5002ZM17.0002 19.5C17.0002 20.8807 18.1195 22 19.5002 22L26.4998 22C27.8805 22 28.9998 20.8807 28.9998 19.5C28.9998 18.1193 27.8805 17 26.4998 17L19.5002 17C18.1195 17 17.0002 18.1193 17.0002 19.5Z" fill="#ECB22E"/>
|
||||||
|
<path d="M14.9998 5.49979C14.9998 4.11919 13.8806 3 12.5 3C11.1194 3 10.0002 4.1193 10.0002 5.49989C10.0002 6.88061 11.1195 8 12.5002 8L14.9998 8L14.9998 5.49979ZM14.9998 12.5C14.9998 11.1193 13.8805 10 12.4998 10L5.50024 10C4.11953 10 3.00024 11.1193 3.00024 12.5C3.00024 13.8807 4.11953 15 5.50024 15L12.4998 15C13.8805 15 14.9998 13.8807 14.9998 12.5Z" fill="#36C5F0"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.5 KiB |
10
public/images/brand/brand-02.svg
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<circle cx="16" cy="16" r="14" fill="url(#paint0_linear_1589_37170)"/>
|
||||||
|
<path d="M21.2137 20.2816L21.8356 16.3301H17.9452V13.767C17.9452 12.6857 18.4877 11.6311 20.2302 11.6311H22V8.26699C22 8.26699 20.3945 8 18.8603 8C15.6548 8 13.5617 9.89294 13.5617 13.3184V16.3301H10V20.2816H13.5617V29.8345C14.2767 29.944 15.0082 30 15.7534 30C16.4986 30 17.2302 29.944 17.9452 29.8345V20.2816H21.2137Z" fill="white"/>
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="paint0_linear_1589_37170" x1="16" y1="2" x2="16" y2="29.917" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#18ACFE"/>
|
||||||
|
<stop offset="1" stop-color="#0163E0"/>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 725 B |
5
public/images/brand/brand-03.svg
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M19.3851 10.9171C20.4654 9.0306 19.8243 6.61829 17.9532 5.5291C16.0821 4.4399 13.6896 5.08628 12.6093 6.97282L4.53087 21.0806C3.45059 22.9671 4.09168 25.3794 5.96277 26.4686C7.83387 27.5578 10.2264 26.9114 11.3067 25.0249L19.3851 10.9171Z" fill="#F8BB2D"/>
|
||||||
|
<path d="M11.8263 23.0546C11.8263 25.2336 10.0743 27 7.91313 27C5.75197 27 4 25.2336 4 23.0546C4 20.8756 5.75197 19.1091 7.91313 19.1091C10.0743 19.1091 11.8263 20.8756 11.8263 23.0546Z" fill="#3BA757"/>
|
||||||
|
<path d="M12.621 10.9171C11.5407 9.0306 12.1818 6.61829 14.0529 5.5291C15.924 4.4399 18.3165 5.08628 19.3968 6.97282L27.4752 21.0806C28.5555 22.9671 27.9144 25.3794 26.0433 26.4686C24.1722 27.5578 21.7797 26.9114 20.6994 25.0249L12.621 10.9171Z" fill="#4689F2"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 836 B |
26
public/images/brand/brand-04.svg
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect x="2" y="2" width="28" height="28" rx="6" fill="url(#paint0_radial_1589_37182)"/>
|
||||||
|
<rect x="2" y="2" width="28" height="28" rx="6" fill="url(#paint1_radial_1589_37182)"/>
|
||||||
|
<rect x="2" y="2" width="28" height="28" rx="6" fill="url(#paint2_radial_1589_37182)"/>
|
||||||
|
<path d="M23 10.5C23 11.3284 22.3284 12 21.5 12C20.6716 12 20 11.3284 20 10.5C20 9.67157 20.6716 9 21.5 9C22.3284 9 23 9.67157 23 10.5Z" fill="white"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M16 21C18.7614 21 21 18.7614 21 16C21 13.2386 18.7614 11 16 11C13.2386 11 11 13.2386 11 16C11 18.7614 13.2386 21 16 21ZM16 19C17.6569 19 19 17.6569 19 16C19 14.3431 17.6569 13 16 13C14.3431 13 13 14.3431 13 16C13 17.6569 14.3431 19 16 19Z" fill="white"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M6 15.6C6 12.2397 6 10.5595 6.65396 9.27606C7.2292 8.14708 8.14708 7.2292 9.27606 6.65396C10.5595 6 12.2397 6 15.6 6H16.4C19.7603 6 21.4405 6 22.7239 6.65396C23.8529 7.2292 24.7708 8.14708 25.346 9.27606C26 10.5595 26 12.2397 26 15.6V16.4C26 19.7603 26 21.4405 25.346 22.7239C24.7708 23.8529 23.8529 24.7708 22.7239 25.346C21.4405 26 19.7603 26 16.4 26H15.6C12.2397 26 10.5595 26 9.27606 25.346C8.14708 24.7708 7.2292 23.8529 6.65396 22.7239C6 21.4405 6 19.7603 6 16.4V15.6ZM15.6 8H16.4C18.1132 8 19.2777 8.00156 20.1779 8.0751C21.0548 8.14674 21.5032 8.27659 21.816 8.43597C22.5686 8.81947 23.1805 9.43139 23.564 10.184C23.7234 10.4968 23.8533 10.9452 23.9249 11.8221C23.9984 12.7223 24 13.8868 24 15.6V16.4C24 18.1132 23.9984 19.2777 23.9249 20.1779C23.8533 21.0548 23.7234 21.5032 23.564 21.816C23.1805 22.5686 22.5686 23.1805 21.816 23.564C21.5032 23.7234 21.0548 23.8533 20.1779 23.9249C19.2777 23.9984 18.1132 24 16.4 24H15.6C13.8868 24 12.7223 23.9984 11.8221 23.9249C10.9452 23.8533 10.4968 23.7234 10.184 23.564C9.43139 23.1805 8.81947 22.5686 8.43597 21.816C8.27659 21.5032 8.14674 21.0548 8.0751 20.1779C8.00156 19.2777 8 18.1132 8 16.4V15.6C8 13.8868 8.00156 12.7223 8.0751 11.8221C8.14674 10.9452 8.27659 10.4968 8.43597 10.184C8.81947 9.43139 9.43139 8.81947 10.184 8.43597C10.4968 8.27659 10.9452 8.14674 11.8221 8.0751C12.7223 8.00156 13.8868 8 15.6 8Z" fill="white"/>
|
||||||
|
<defs>
|
||||||
|
<radialGradient id="paint0_radial_1589_37182" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(12 23) rotate(-55.3758) scale(25.5196)">
|
||||||
|
<stop stop-color="#B13589"/>
|
||||||
|
<stop offset="0.79309" stop-color="#C62F94"/>
|
||||||
|
<stop offset="1" stop-color="#8A3AC8"/>
|
||||||
|
</radialGradient>
|
||||||
|
<radialGradient id="paint1_radial_1589_37182" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(11 31) rotate(-65.1363) scale(22.5942)">
|
||||||
|
<stop stop-color="#E0E8B7"/>
|
||||||
|
<stop offset="0.444662" stop-color="#FB8A2E"/>
|
||||||
|
<stop offset="0.71474" stop-color="#E2425C"/>
|
||||||
|
<stop offset="1" stop-color="#E2425C" stop-opacity="0"/>
|
||||||
|
</radialGradient>
|
||||||
|
<radialGradient id="paint2_radial_1589_37182" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(0.500002 3) rotate(-8.1301) scale(38.8909 8.31836)">
|
||||||
|
<stop offset="0.156701" stop-color="#406ADC"/>
|
||||||
|
<stop offset="0.467799" stop-color="#6A45BE"/>
|
||||||
|
<stop offset="1" stop-color="#6A45BE" stop-opacity="0"/>
|
||||||
|
</radialGradient>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 3.2 KiB |
6
public/images/brand/brand-05.svg
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M30.0014 16.3109C30.0014 15.1598 29.9061 14.3198 29.6998 13.4487H16.2871V18.6442H24.1601C24.0014 19.9354 23.1442 21.8798 21.2394 23.1864L21.2127 23.3604L25.4536 26.58L25.7474 26.6087C28.4458 24.1665 30.0014 20.5731 30.0014 16.3109Z" fill="#4285F4"/>
|
||||||
|
<path d="M16.2863 30C20.1434 30 23.3814 28.7555 25.7466 26.6089L21.2386 23.1865C20.0323 24.011 18.4132 24.5866 16.2863 24.5866C12.5086 24.5866 9.30225 22.1444 8.15929 18.7688L7.99176 18.7827L3.58208 22.1272L3.52441 22.2843C5.87359 26.8577 10.699 30 16.2863 30Z" fill="#34A853"/>
|
||||||
|
<path d="M8.16013 18.7688C7.85855 17.8977 7.68401 16.9643 7.68401 15.9999C7.68401 15.0354 7.85855 14.1021 8.14426 13.231L8.13627 13.0455L3.67132 9.64734L3.52524 9.71544C2.55703 11.6132 2.00146 13.7444 2.00146 15.9999C2.00146 18.2555 2.55703 20.3865 3.52524 22.2843L8.16013 18.7688Z" fill="#FBBC05"/>
|
||||||
|
<path d="M16.2864 7.4133C18.9689 7.4133 20.7784 8.54885 21.8102 9.4978L25.8419 5.64C23.3658 3.38445 20.1435 2 16.2864 2C10.699 2 5.8736 5.1422 3.52441 9.71549L8.14345 13.2311C9.30229 9.85555 12.5086 7.4133 16.2864 7.4133Z" fill="#EB4335"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.2 KiB |
4
public/images/brand/brand-06.svg
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M2.24451 9.94111C2.37304 7.96233 3.96395 6.41157 5.94447 6.31345C8.81239 6.17136 12.9115 6 16 6C19.0885 6 23.1876 6.17136 26.0555 6.31345C28.0361 6.41157 29.627 7.96233 29.7555 9.94111C29.8786 11.8369 30 14.1697 30 16C30 17.8303 29.8786 20.1631 29.7555 22.0589C29.627 24.0377 28.0361 25.5884 26.0555 25.6866C23.1876 25.8286 19.0885 26 16 26C12.9115 26 8.81239 25.8286 5.94447 25.6866C3.96395 25.5884 2.37304 24.0377 2.24451 22.0589C2.12136 20.1631 2 17.8303 2 16C2 14.1697 2.12136 11.8369 2.24451 9.94111Z" fill="#FC0D1B"/>
|
||||||
|
<path d="M13 12V20L21 16L13 12Z" fill="white"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 684 B |
4
public/images/brand/brand-07.svg
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M37.5 20C37.5 29.66 29.6687 37.5 20 37.5C10.3312 37.5 2.5 29.66 2.5 20C2.5 10.3312 10.3312 2.49999 20 2.49999C29.6687 2.49999 37.5 10.3312 37.5 20Z" fill="#283544"/>
|
||||||
|
<path d="M28.2026 15.5717C28.1071 15.6274 25.8338 16.8031 25.8338 19.4098C25.941 22.3826 28.7026 23.4252 28.75 23.4252C28.7026 23.4809 28.3331 24.8454 27.2383 26.2757C26.3696 27.5078 25.4053 28.75 23.941 28.75C22.5481 28.75 22.0481 27.9288 20.441 27.9288C18.715 27.9288 18.2267 28.75 16.9052 28.75C15.441 28.75 14.4052 27.4412 13.4891 26.2207C12.2989 24.6232 11.2872 22.1164 11.2515 19.7093C11.2274 18.4338 11.4899 17.18 12.156 16.1151C13.0962 14.6283 14.7748 13.619 16.6079 13.5858C18.0124 13.5416 19.2624 14.4843 20.1195 14.4843C20.941 14.4843 22.4767 13.5858 24.2143 13.5858C24.9643 13.5865 26.9643 13.797 28.2026 15.5717ZM20.0008 13.3311C19.7508 12.1663 20.441 11.0015 21.0838 10.2585C21.9053 9.3599 23.2026 8.75 24.3214 8.75C24.3928 9.91481 23.9402 11.0572 23.1312 11.8892C22.4053 12.7878 21.1553 13.4642 20.0008 13.3311Z" fill="white"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.1 KiB |
7
public/images/brand/brand-08.svg
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
<svg width="41" height="40" viewBox="0 0 41 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect x="0.5" width="40" height="40" rx="20" fill="#1B4BF1"/>
|
||||||
|
<path opacity="0.5" d="M28.9266 15.7265C29.1963 13.9679 28.9266 12.7956 27.9826 11.7134C26.9487 10.496 25.0607 10 22.6333 10H15.6657C15.1713 10 14.7667 10.3607 14.6768 10.8567L11.7549 29.3437C11.7099 29.7044 11.9797 30.02 12.3393 30.02H16.6547L16.34 31.9138C16.2951 32.2295 16.5198 32.5 16.8794 32.5H20.5205C20.9701 32.5 21.3297 32.1844 21.3746 31.7786L22.1388 26.999C22.1838 26.5932 22.5883 26.2776 22.9929 26.2776H23.5323C27.0386 26.2776 29.8256 24.8347 30.6348 20.6864C30.9494 18.9729 30.8146 17.485 29.9155 16.493C29.6458 16.1774 29.3311 15.9519 28.9266 15.7265" fill="white"/>
|
||||||
|
<path d="M28.9266 15.7265C29.1963 13.9679 28.9266 12.7956 27.9826 11.7134C26.9487 10.496 25.0607 10 22.6333 10H15.6657C15.1713 10 14.7667 10.3607 14.6768 10.8567L11.7549 29.3437C11.7099 29.7044 11.9797 30.02 12.3393 30.02H16.6547L17.6886 23.3467C17.7785 22.8507 18.183 22.49 18.6775 22.49H20.7453C24.791 22.49 27.9376 20.8667 28.8367 16.0872C28.8816 15.997 28.8816 15.8617 28.9266 15.7265Z" fill="white"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M30.1209 16.096C30.1192 16.105 30.1161 16.121 30.1115 16.1467C30.1057 16.1785 30.0932 16.2474 30.0743 16.3214C30.0669 16.3504 30.0572 16.3854 30.0445 16.425C29.5373 19.0088 28.3926 20.8874 26.6974 22.0981C25.0064 23.3058 22.9195 23.74 20.7452 23.74H18.8924L17.7258 31.27H12.3392C11.1964 31.27 10.3804 30.2642 10.5144 29.1891L10.5169 29.1688L13.4442 10.6476L13.4467 10.6338C13.6357 9.59143 14.519 8.75 15.6656 8.75H22.6332C25.1361 8.75 27.5194 9.24302 28.9298 10.8979C29.516 11.5715 29.9235 12.3133 30.1267 13.1814C30.3266 14.0353 30.3118 14.9394 30.162 15.916L30.146 16.0204L30.1209 16.096ZM27.9825 11.7134C26.9486 10.496 25.0606 10 22.6332 10H15.6656C15.1712 10 14.7666 10.3607 14.6767 10.8567L11.7548 29.3437C11.7099 29.7044 11.9796 30.02 12.3392 30.02H16.6546L17.6885 23.3467C17.7784 22.8507 18.1829 22.49 18.6774 22.49H20.7452C24.7909 22.49 27.9375 20.8667 28.8366 16.0872C28.8609 16.0384 28.8721 15.9763 28.8843 15.9082C28.8947 15.8505 28.9059 15.7885 28.9265 15.7265C29.1962 13.9679 28.9265 12.7956 27.9825 11.7134Z" fill="#1B4BF1"/>
|
||||||
|
<path d="M18.9023 15.7715C18.9472 15.4559 19.3518 15.0501 19.7564 15.0501H25.2405C25.8698 15.0501 26.4992 15.0952 27.0386 15.1854C27.5331 15.2755 28.4321 15.501 28.8816 15.7715C29.1513 14.013 28.8816 12.8407 27.9376 11.7585C26.9487 10.496 25.0607 10 22.6333 10H15.6657C15.1713 10 14.7667 10.3607 14.6768 10.8567L11.7549 29.3437C11.7099 29.7044 11.9797 30.02 12.3393 30.02H16.6547L18.9023 15.7715V15.7715Z" fill="white"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.6 KiB |
5
public/images/brand/brand-09.svg
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<circle cx="20" cy="20" r="20" fill="#E31937"/>
|
||||||
|
<path d="M20.0005 31.4285L22.9444 14.8726C25.7502 14.8726 26.6353 15.1803 26.7632 16.4362C26.7632 16.4362 28.6456 15.7343 29.5948 14.3089C25.8901 12.5923 22.1678 12.5148 22.1678 12.5148L19.9957 15.1604L20.0006 15.16L17.8285 12.5144C17.8285 12.5144 14.106 12.5919 10.4019 14.3086C11.3504 15.734 13.2334 16.4358 13.2334 16.4358C13.362 15.1799 14.2459 14.8722 17.033 14.8702L20.0005 31.4285Z" fill="white"/>
|
||||||
|
<path d="M19.9996 11.7508C22.9943 11.7279 26.422 12.2141 29.9311 13.7434C30.4001 12.8993 30.5207 12.5262 30.5207 12.5262C26.6847 11.0086 23.0925 10.4893 19.9992 10.4762C16.906 10.4893 13.3139 11.0087 9.47852 12.5262C9.47852 12.5262 9.64962 12.9858 10.0677 13.7434C13.576 12.2141 17.0045 11.7279 19.9993 11.7508H19.9996Z" fill="white"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 892 B |
6
public/images/brand/brand-10.svg
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<svg width="41" height="40" viewBox="0 0 41 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M20.5 2.5C10.8477 2.5 3 10.3477 3 20C3 29.6523 10.8477 37.5 20.5 37.5C30.1523 37.5 38 29.6523 38 20C38 10.3477 30.1523 2.5 20.5 2.5Z" fill="#F9981B"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M26.5124 22.5475C26.461 22.4738 26.4093 22.4016 26.3578 22.3298C25.9392 21.7463 25.5402 21.1902 25.5402 20.0754V15.9195C25.5402 15.775 25.541 15.6315 25.5418 15.4891C25.551 13.8957 25.5593 12.4417 24.4101 11.3294C23.4246 10.3467 21.7876 10 20.5357 10C18.0872 10 15.3558 10.947 14.783 14.0851C14.7223 14.4184 14.9558 14.5929 15.1675 14.642L17.6607 14.9218C17.8941 14.9095 18.0627 14.6715 18.1079 14.4318C18.3217 13.3505 19.195 12.831 20.1762 12.831C20.7054 12.831 21.3063 13.0316 21.6196 13.5238C21.9425 14.0146 21.9374 14.6699 21.9328 15.2558C21.9323 15.3241 21.9317 15.3914 21.9317 15.4574V15.8058C21.7004 15.8326 21.458 15.858 21.2083 15.8842C19.8486 16.0267 18.2732 16.1919 17.0932 16.7283C15.4823 17.4517 14.3511 18.9238 14.3511 21.0876C14.3511 23.8606 16.0344 25.2469 18.2016 25.2469C20.0305 25.2469 21.0314 24.7993 22.4423 23.3077C22.5128 23.4136 22.5762 23.5113 22.6358 23.6033C22.9724 24.1222 23.1921 24.4609 23.9171 25.0864C24.1085 25.1923 24.3618 25.1883 24.5314 25.0289C25.0451 24.5552 25.9779 23.7146 26.5039 23.2576C26.714 23.0786 26.6767 22.7894 26.5124 22.5475ZM21.4505 21.3491C21.0421 22.1015 20.3916 22.5619 19.6689 22.5619C18.6834 22.5619 18.1047 21.7816 18.1047 20.6272C18.1047 18.3547 20.0714 17.9423 21.9312 17.9423C21.9312 18.0782 21.9325 18.2149 21.9337 18.352C21.9428 19.3807 21.9521 20.4299 21.4505 21.3491Z" fill="white"/>
|
||||||
|
<path d="M29.5873 27.0823C27.1246 28.9867 23.5531 30 20.4773 30C16.1681 30 12.2866 28.3307 9.34948 25.5515C9.11909 25.333 9.32473 25.0346 9.60151 25.2042C12.7708 27.1371 16.6894 28.3006 20.7367 28.3006C23.4672 28.3006 26.4682 27.7073 29.2295 26.479C29.646 26.2944 29.9951 26.7674 29.5873 27.0823Z" fill="white"/>
|
||||||
|
<path d="M27.7363 25.7559C28.5293 25.6555 30.2974 25.4334 30.6122 25.8556C30.9273 26.2775 30.2654 28.0124 29.967 28.7943L29.9649 28.8C29.8751 29.0358 30.0681 29.1299 30.2715 28.9512C31.5931 27.7933 31.9346 25.366 31.6638 25.0143C31.3951 24.6674 29.0847 24.367 27.6747 25.4049C27.458 25.5659 27.4951 25.7852 27.7363 25.7559Z" fill="white"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.3 KiB |
4
public/images/brand/brand-11.svg
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<circle cx="20" cy="20" r="17.5" fill="#1ED760"/>
|
||||||
|
<path d="M27.9554 27.0287C27.6564 27.5031 27.0186 27.6359 26.5203 27.3513C22.5937 25.0742 17.6705 24.5618 11.8503 25.8142C11.2922 25.9281 10.7341 25.6055 10.6145 25.0742C10.4949 24.5428 10.8338 24.0115 11.3919 23.8976C17.7502 22.5124 23.2116 23.1007 27.5966 25.6624C28.095 25.9471 28.2544 26.5543 27.9554 27.0287ZM29.9885 22.7022C29.6098 23.2904 28.8125 23.4612 28.1946 23.1196C23.7099 20.482 16.8732 19.7229 11.5712 21.26C10.8736 21.4497 10.1561 21.0892 9.95674 20.444C9.75742 19.7798 10.1361 19.0967 10.8338 18.9069C16.8931 17.1611 24.4274 17.9961 29.5899 21.0133C30.1679 21.3549 30.3672 22.1139 29.9885 22.7022ZM30.1679 18.1859C24.7862 15.1497 15.9164 14.865 10.774 16.3452C9.95674 16.5919 9.07973 16.1554 8.82061 15.3584C8.5615 14.5804 9.03987 13.7455 9.85708 13.4988C15.757 11.7909 25.5636 12.1325 31.7425 15.6241C32.48 16.0416 32.7192 16.9524 32.2807 17.6545C31.8621 18.3756 30.9054 18.6223 30.1679 18.1859Z" fill="white"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.1 KiB |
4
public/images/brand/brand-12.svg
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M20 2.5C10.3477 2.5 2.5 10.3477 2.5 20C2.5 29.6523 10.3477 37.5 20 37.5C29.6523 37.5 37.5 29.6523 37.5 20C37.5 10.3477 29.6523 2.5 20 2.5Z" fill="#FF5A5F"/>
|
||||||
|
<path d="M20.0002 24.6084C18.8528 23.1652 18.1779 21.9001 17.953 20.8178C17.728 19.9383 17.818 19.2393 18.2004 18.7206C18.6054 18.1118 19.2128 17.8186 20.0002 17.8186C20.7875 17.8186 21.3949 18.1118 21.7999 18.7206C22.1823 19.2393 22.2723 19.9383 22.0473 20.8178C21.7999 21.9227 21.125 23.1855 20.0002 24.6084ZM26.2812 27.9458C24.369 28.7801 22.477 27.4497 20.8573 25.6457C23.5366 22.2835 24.0315 19.6677 22.882 17.9742C22.2071 17.0046 21.2397 16.531 20.0002 16.531C17.503 16.531 16.1285 18.6507 16.6684 21.1109C16.9834 22.4413 17.8158 23.9544 19.143 25.6457C18.1475 26.7515 16.8414 28.0059 15.2736 28.1487C13.0015 28.487 11.222 26.2771 12.0319 23.9973L17.7933 12.0413C18.285 11.1425 18.8919 10.3726 19.9979 10.3726C20.8078 10.3726 21.4377 10.8462 21.7076 11.2295L27.9639 23.9973C28.5769 25.54 27.7996 27.2886 26.2812 27.9458ZM29.1832 23.5463L23.8268 12.3796C22.8145 10.305 22.0946 9.0625 20.0002 9.0625C17.9305 9.0625 17.0509 10.5057 16.151 12.3796L10.8171 23.5463C9.66976 26.7055 12.0319 29.4792 14.8912 29.4792C15.0712 29.4792 15.2499 29.4566 15.4311 29.4566C16.9159 29.2762 18.4479 28.3291 20.0002 26.6356C21.5524 28.3269 23.0844 29.2762 24.5692 29.4566C24.7505 29.4566 24.9291 29.4792 25.1091 29.4792C27.9684 29.4814 30.3306 26.7055 29.1832 23.5463Z" fill="white"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.5 KiB |
5
public/images/brand/brand-13.svg
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M20 2.5C10.3477 2.5 2.5 10.3477 2.5 20C2.5 29.6523 10.3477 37.5 20 37.5C29.6523 37.5 37.5 29.6523 37.5 20C37.5 10.3477 29.6523 2.5 20 2.5Z" fill="#87E64B"/>
|
||||||
|
<path d="M20.4865 30C20.9801 30 21.3803 29.5998 21.3803 29.1062C21.3803 28.6126 20.9801 28.2125 20.4865 28.2125C19.9929 28.2125 19.5928 28.6126 19.5928 29.1062C19.5928 29.5998 19.9929 30 20.4865 30Z" fill="white"/>
|
||||||
|
<path d="M25.6233 23.0134L20.5833 23.5539C20.4895 23.5633 20.4427 23.4477 20.5177 23.3883L25.4483 19.5482C25.767 19.2857 25.9732 18.8795 25.8857 18.4421C25.7982 17.7734 25.2452 17.336 24.5453 17.4235L19.1866 18.2077C19.0928 18.2202 19.0428 18.1015 19.1178 18.0421L24.4297 13.9864C25.4764 13.1709 25.5639 11.5711 24.6046 10.6399C23.7329 9.76817 22.3331 9.79629 21.4613 10.6681L12.903 19.3763C12.5843 19.7263 12.4374 20.1919 12.5249 20.6855C12.6718 21.4729 13.4561 21.9947 14.2435 21.851L18.8585 20.9105C18.9585 20.8886 19.0116 21.023 18.9272 21.0792L13.8091 24.3569C13.1686 24.7631 12.878 25.4912 13.0811 26.2192C13.2842 27.1785 14.2466 27.7315 15.1777 27.5003L22.8299 25.6162C22.9174 25.5943 22.9798 25.6943 22.9236 25.763L21.73 27.2378C21.4113 27.644 21.9331 28.1971 22.3705 27.8784L26.3013 24.6475C27.0012 24.0664 26.5356 22.929 25.6326 23.0165L25.6233 23.0134Z" fill="white"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.3 KiB |
6
public/images/brand/brand-14.svg
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<circle cx="20" cy="20" r="17.5" fill="#FF8C00"/>
|
||||||
|
<path d="M27.4363 25.1256C27.408 24.8784 27.2659 24.3115 26.8965 24.1659H26.897C26.712 24.0931 26.5558 24.151 26.4852 24.2821C26.3713 24.486 26.4565 24.8784 26.6697 25.2278C26.8824 25.5768 27.0814 25.7513 27.2235 25.7513C27.3656 25.7513 27.4932 25.5768 27.4363 25.1256Z" fill="white"/>
|
||||||
|
<path d="M25.4485 26.1147C25.2213 25.9113 24.9657 25.8096 24.7384 25.8096C24.5398 25.8096 24.3836 25.8819 24.2839 26.013C24.0288 26.3326 24.1422 26.9148 24.5398 27.2638C24.7102 27.4239 24.9657 27.5111 25.2071 27.5111C25.4485 27.5111 25.6613 27.4094 25.7892 27.2494C26.0165 26.9293 25.8885 26.4931 25.4485 26.1147Z" fill="white"/>
|
||||||
|
<path d="M10 20.0061C10 25.5328 14.3728 30.0125 19.7687 30.0128C21.203 30.0128 22.6227 29.7365 24.7102 29.7216C26.5704 29.7216 28.615 30.3907 30.8583 32.4272C31.0856 32.6306 31.3835 32.3688 31.1849 32.1216C28.984 29.2565 26.9393 28.7185 24.8947 28.2529C22.3959 27.6856 21.1178 26.2603 20.2233 24.6749C20.0529 24.3549 19.9677 24.4132 19.9532 24.8205C19.9371 25.4198 19.98 26.0192 20.0812 26.6097H19.7833C16.2191 26.6097 13.3223 23.6424 13.3223 19.9917C13.3223 16.3409 16.2191 13.3737 19.7828 13.3737C23.347 13.3737 26.2438 16.3409 26.2438 19.9917C26.2438 20.2534 26.2292 20.5152 26.201 20.7624C25.7182 20.6752 24.7954 20.6607 24.1422 20.719C23.9008 20.748 23.9291 20.8641 24.114 20.8935C26.2438 21.3004 27.7063 22.6534 28.047 25.1112C28.0612 25.1695 28.1322 25.1839 28.1609 25.1405C29.0268 23.6424 29.5378 21.8822 29.5378 20.0061C29.5378 14.4798 25.1643 10 19.7687 10C14.3735 10 10 14.4794 10 20.0061Z" fill="white"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.6 KiB |
4
public/images/brand/brand-15.svg
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M16 30C23.732 30 30 23.732 30 16C30 8.26801 23.732 2 16 2C8.26801 2 2 8.26801 2 16C2 23.732 8.26801 30 16 30Z" fill="#2BDE73"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.357 13.4527L17.3808 9.20142C17.9525 8.40047 18.6904 8 19.5953 8C20.3334 8 20.972 8.25407 21.512 8.76237C22.0516 9.27068 22.3213 9.8791 22.3213 10.5876C22.3213 11.1114 22.1788 11.5736 21.8929 11.9741L19.1665 15.821L22.5 19.9222C22.8334 20.3303 23 20.808 23 21.3547C23 22.0788 22.7384 22.7004 22.2144 23.2203C21.6906 23.7403 21.0553 24 20.3096 24C19.492 24 18.8691 23.7423 18.4404 23.2261L14.357 18.2817V21.0082C14.357 21.7862 14.2182 22.3906 13.9403 22.8219C13.4324 23.6072 12.6943 24 11.7262 24C10.8452 24 10.1624 23.7112 9.67848 23.1337C9.22604 22.6022 9 21.8973 9 21.0198V10.9111C9 10.0793 9.22983 9.39412 9.69041 8.85495C10.1745 8.2851 10.841 8 11.6903 8C12.4999 8 13.1744 8.2851 13.7141 8.85495C14.0157 9.17056 14.2061 9.4902 14.2855 9.8137C14.3332 10.0141 14.357 10.3874 14.357 10.9343V13.4527Z" fill="white"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.1 KiB |
BIN
public/images/cards/card-01.jpg
Normal file
|
After Width: | Height: | Size: 227 KiB |
BIN
public/images/cards/card-01.png
Normal file
|
After Width: | Height: | Size: 346 KiB |
BIN
public/images/cards/card-02.jpg
Normal file
|
After Width: | Height: | Size: 162 KiB |
BIN
public/images/cards/card-02.png
Normal file
|
After Width: | Height: | Size: 262 KiB |
BIN
public/images/cards/card-03.jpg
Normal file
|
After Width: | Height: | Size: 189 KiB |
BIN
public/images/cards/card-03.png
Normal file
|
After Width: | Height: | Size: 312 KiB |
BIN
public/images/carousel/carousel-01.png
Normal file
|
After Width: | Height: | Size: 869 KiB |
BIN
public/images/carousel/carousel-02.png
Normal file
|
After Width: | Height: | Size: 704 KiB |
BIN
public/images/carousel/carousel-03.png
Normal file
|
After Width: | Height: | Size: 453 KiB |
BIN
public/images/carousel/carousel-04.png
Normal file
|
After Width: | Height: | Size: 849 KiB |
BIN
public/images/chat/chat.jpg
Normal file
|
After Width: | Height: | Size: 71 KiB |
15
public/images/country/country-01.svg
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g clip-path="url(#clip0_1788_4304)">
|
||||||
|
<path d="M16 32C24.8366 32 32 24.8366 32 16C32 7.16344 24.8366 0 16 0C7.16344 0 0 7.16344 0 16C0 24.8366 7.16344 32 16 32Z" fill="#F0F0F0"/>
|
||||||
|
<path d="M15.3037 16H31.9993C31.9993 14.5559 31.8068 13.1569 31.4481 11.826H15.3037V16Z" fill="#D80027"/>
|
||||||
|
<path d="M15.3037 7.65135H29.651C28.6715 6.0531 27.4192 4.64042 25.9591 3.47742H15.3037V7.65135Z" fill="#D80027"/>
|
||||||
|
<path d="M15.9995 32C19.7651 32 23.2262 30.6985 25.9593 28.5217H6.03979C8.77292 30.6985 12.234 32 15.9995 32Z" fill="#D80027"/>
|
||||||
|
<path d="M2.34797 24.3465H29.6512C30.4375 23.0635 31.0473 21.661 31.4484 20.1726H0.550781C0.951844 21.661 1.56166 23.0635 2.34797 24.3465Z" fill="#D80027"/>
|
||||||
|
<path d="M7.4115 2.49863H8.86956L7.51331 3.48394L8.03137 5.07825L6.67519 4.09294L5.319 5.07825L5.7665 3.70094C4.57237 4.69562 3.52575 5.861 2.66325 7.1595H3.13044L2.26712 7.78669C2.13262 8.01106 2.00362 8.239 1.88 8.47031L2.29225 9.73913L1.52313 9.18031C1.33194 9.58537 1.15706 9.99956 0.999875 10.4224L1.45406 11.8204H3.13044L1.77419 12.8057L2.29225 14.4L0.936063 13.4147L0.123687 14.0049C0.042375 14.6586 0 15.3243 0 16H16C16 7.1635 16 6.12175 16 0C12.8393 0 9.89281 0.916875 7.4115 2.49863ZM8.03137 14.4L6.67519 13.4147L5.319 14.4L5.83706 12.8057L4.48081 11.8204H6.15719L6.67519 10.2261L7.19319 11.8204H8.86956L7.51331 12.8057L8.03137 14.4ZM7.51331 8.14481L8.03137 9.73913L6.67519 8.75381L5.319 9.73913L5.83706 8.14481L4.48081 7.1595H6.15719L6.67519 5.56519L7.19319 7.1595H8.86956L7.51331 8.14481ZM13.7705 14.4L12.4143 13.4147L11.0581 14.4L11.5762 12.8057L10.2199 11.8204H11.8963L12.4143 10.2261L12.9323 11.8204H14.6087L13.2524 12.8057L13.7705 14.4ZM13.2524 8.14481L13.7705 9.73913L12.4143 8.75381L11.0581 9.73913L11.5762 8.14481L10.2199 7.1595H11.8963L12.4143 5.56519L12.9323 7.1595H14.6087L13.2524 8.14481ZM13.2524 3.48394L13.7705 5.07825L12.4143 4.09294L11.0581 5.07825L11.5762 3.48394L10.2199 2.49863H11.8963L12.4143 0.904312L12.9323 2.49863H14.6087L13.2524 3.48394Z" fill="#0052B4"/>
|
||||||
|
</g>
|
||||||
|
<defs>
|
||||||
|
<clipPath id="clip0_1788_4304">
|
||||||
|
<rect width="32" height="32" rx="16" fill="white"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.1 KiB |
12
public/images/country/country-02.svg
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g clip-path="url(#clip0_1788_4322)">
|
||||||
|
<path d="M16 32C24.8366 32 32 24.8366 32 16C32 7.16344 24.8366 0 16 0C7.16344 0 0 7.16344 0 16C0 24.8366 7.16344 32 16 32Z" fill="#F0F0F0"/>
|
||||||
|
<path d="M32 15.9999C32 9.12049 27.658 3.2558 21.5652 0.995117V31.0048C27.658 28.7441 32 22.8794 32 15.9999Z" fill="#D80027"/>
|
||||||
|
<path d="M0.000488281 16.001C0.000488281 22.8805 4.34255 28.7452 10.4353 31.0058V0.996216C4.34255 3.2569 0.000488281 9.12159 0.000488281 16.001Z" fill="#0052B4"/>
|
||||||
|
</g>
|
||||||
|
<defs>
|
||||||
|
<clipPath id="clip0_1788_4322">
|
||||||
|
<rect width="32" height="32" fill="white"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 680 B |
17
public/images/country/country-03.svg
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<svg width="21" height="21" viewBox="0 0 21 21" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g clip-path="url(#clip0_1589_35166)">
|
||||||
|
<path d="M10.875 20.5C16.3978 20.5 20.875 16.0228 20.875 10.5C20.875 4.97715 16.3978 0.5 10.875 0.5C5.35215 0.5 0.875 4.97715 0.875 10.5C0.875 16.0228 5.35215 20.5 10.875 20.5Z" fill="#F0F0F0"/>
|
||||||
|
<path d="M0.875 10.5C0.875 4.97719 5.35219 0.5 10.875 0.5C16.3978 0.5 20.875 4.97719 20.875 10.5" fill="#D80027"/>
|
||||||
|
<path d="M6.96163 5.71751C6.96163 4.26056 7.98558 3.04345 9.35292 2.74481C9.14276 2.69896 8.92475 2.67407 8.70073 2.67407C7.01983 2.67407 5.65726 4.03665 5.65726 5.71755C5.65726 7.39845 7.01983 8.76103 8.70073 8.76103C8.92468 8.76103 9.14272 8.73614 9.35292 8.69025C7.98558 8.39161 6.96163 7.1745 6.96163 5.71751Z" fill="#F0F0F0"/>
|
||||||
|
<path d="M10.8747 2.89172L11.0905 3.55598H11.789L11.2239 3.96657L11.4398 4.63083L10.8747 4.22032L10.3096 4.63083L10.5255 3.96657L9.96039 3.55598H10.6588L10.8747 2.89172Z" fill="#F0F0F0"/>
|
||||||
|
<path d="M9.18043 4.19556L9.39625 4.85985H10.0947L9.52964 5.2704L9.7455 5.93466L9.18043 5.52415L8.61527 5.93466L8.83117 5.2704L8.26605 4.85985H8.96453L9.18043 4.19556Z" fill="#F0F0F0"/>
|
||||||
|
<path d="M12.5691 4.19556L12.785 4.85985H13.4835L12.9184 5.2704L13.1343 5.93466L12.5691 5.52415L12.0041 5.93466L12.2199 5.2704L11.6548 4.85985H12.3533L12.5691 4.19556Z" fill="#F0F0F0"/>
|
||||||
|
<path d="M11.9171 6.15283L12.133 6.81713H12.8314L12.2663 7.22768L12.4822 7.89193L11.9171 7.48143L11.352 7.89193L11.5679 7.22768L11.0028 6.81713H11.7012L11.9171 6.15283Z" fill="#F0F0F0"/>
|
||||||
|
<path d="M9.83243 6.15283L10.0482 6.81713H10.7468L10.1816 7.22768L10.3975 7.89193L9.83243 7.48143L9.26731 7.89193L9.48317 7.22768L8.91809 6.81713H9.61657L9.83243 6.15283Z" fill="#F0F0F0"/>
|
||||||
|
</g>
|
||||||
|
<defs>
|
||||||
|
<clipPath id="clip0_1589_35166">
|
||||||
|
<rect x="0.875" y="0.5" width="20" height="20" rx="10" fill="white"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.8 KiB |
23
public/images/country/country-04.svg
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
<svg width="21" height="21" viewBox="0 0 21 21" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g clip-path="url(#clip0_1589_35168)">
|
||||||
|
<path d="M10.875 20.5C16.3978 20.5 20.875 16.0228 20.875 10.5C20.875 4.97715 16.3978 0.5 10.875 0.5C5.35215 0.5 0.875 4.97715 0.875 10.5C0.875 16.0228 5.35215 20.5 10.875 20.5Z" fill="#F0F0F0"/>
|
||||||
|
<path d="M2.94224 4.41089C2.15673 5.43288 1.56443 6.61081 1.21954 7.89046H6.42181L2.94224 4.41089Z" fill="#0052B4"/>
|
||||||
|
<path d="M20.5309 7.89054C20.186 6.61093 19.5936 5.433 18.8082 4.41101L15.3287 7.89054H20.5309Z" fill="#0052B4"/>
|
||||||
|
<path d="M1.21954 13.1085C1.56447 14.3881 2.15677 15.5661 2.94224 16.588L6.42169 13.1085H1.21954Z" fill="#0052B4"/>
|
||||||
|
<path d="M16.9629 2.56649C15.9409 1.78098 14.763 1.18867 13.4834 0.84375V6.04598L16.9629 2.56649Z" fill="#0052B4"/>
|
||||||
|
<path d="M4.78662 18.4314C5.80861 19.2169 6.98655 19.8092 8.26616 20.1541V14.9519L4.78662 18.4314Z" fill="#0052B4"/>
|
||||||
|
<path d="M8.26611 0.84375C6.9865 1.18867 5.80857 1.78098 4.78662 2.56644L8.26611 6.04593V0.84375Z" fill="#0052B4"/>
|
||||||
|
<path d="M13.4834 20.1541C14.763 19.8092 15.9409 19.2169 16.9629 18.4314L13.4834 14.9519V20.1541Z" fill="#0052B4"/>
|
||||||
|
<path d="M15.3287 13.1085L18.8082 16.588C19.5936 15.5661 20.186 14.3881 20.5309 13.1085H15.3287Z" fill="#0052B4"/>
|
||||||
|
<path d="M20.7904 9.19566H12.1794H12.1794V0.584648C11.7524 0.529063 11.3171 0.5 10.875 0.5C10.4329 0.5 9.99762 0.529063 9.57066 0.584648V9.19559V9.19563H0.959648C0.904063 9.62262 0.875 10.0579 0.875 10.5C0.875 10.9421 0.904063 11.3774 0.959648 11.8043H9.57059H9.57063V20.4154C9.99762 20.4709 10.4329 20.5 10.875 20.5C11.3171 20.5 11.7524 20.471 12.1793 20.4154V11.8044V11.8044H20.7904C20.8459 11.3774 20.875 10.9421 20.875 10.5C20.875 10.0579 20.8459 9.62262 20.7904 9.19566Z" fill="#D80027"/>
|
||||||
|
<path d="M13.4837 13.1094L17.946 17.5718C18.1513 17.3666 18.3471 17.1521 18.5339 16.9298L14.7135 13.1094H13.4837V13.1094Z" fill="#D80027"/>
|
||||||
|
<path d="M8.26628 13.1094H8.2662L3.80389 17.5717C4.00905 17.7769 4.22354 17.9727 4.44589 18.1595L8.26628 14.339V13.1094Z" fill="#D80027"/>
|
||||||
|
<path d="M8.26616 7.89093V7.89085L3.80382 3.42847C3.59858 3.63362 3.4028 3.84812 3.216 4.07046L7.03643 7.89089H8.26616V7.89093Z" fill="#D80027"/>
|
||||||
|
<path d="M13.4837 7.89187L17.9461 3.42945C17.7409 3.22421 17.5264 3.02843 17.3041 2.84167L13.4837 6.6621V7.89187V7.89187Z" fill="#D80027"/>
|
||||||
|
</g>
|
||||||
|
<defs>
|
||||||
|
<clipPath id="clip0_1589_35168">
|
||||||
|
<rect x="0.875" y="0.5" width="20" height="20" rx="10" fill="white"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.4 KiB |
12
public/images/country/country-05.svg
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<svg width="21" height="21" viewBox="0 0 21 21" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g clip-path="url(#clip0_1589_35170)">
|
||||||
|
<path d="M10.875 20.5C16.3978 20.5 20.875 16.0228 20.875 10.5C20.875 4.97715 16.3978 0.5 10.875 0.5C5.35215 0.5 0.875 4.97715 0.875 10.5C0.875 16.0228 5.35215 20.5 10.875 20.5Z" fill="#F0F0F0"/>
|
||||||
|
<path d="M10.875 20.4993C15.1746 20.4993 18.84 17.7856 20.253 13.9775H1.49695C2.90988 17.7856 6.57531 20.4993 10.875 20.4993Z" fill="black"/>
|
||||||
|
<path d="M10.875 0.50061C6.57531 0.50061 2.90988 3.21436 1.49695 7.02237H20.253C18.84 3.21436 15.1746 0.50061 10.875 0.50061Z" fill="#D80027"/>
|
||||||
|
</g>
|
||||||
|
<defs>
|
||||||
|
<clipPath id="clip0_1589_35170">
|
||||||
|
<rect x="0.875" y="0.5" width="20" height="20" rx="10" fill="white"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 758 B |
11
public/images/country/country-06.svg
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<svg width="21" height="21" viewBox="0 0 21 21" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g clip-path="url(#clip0_1589_35172)">
|
||||||
|
<path d="M10.875 20.5C16.3978 20.5 20.875 16.0228 20.875 10.5C20.875 4.97715 16.3978 0.5 10.875 0.5C5.35215 0.5 0.875 4.97715 0.875 10.5C0.875 16.0228 5.35215 20.5 10.875 20.5Z" fill="#F0F0F0"/>
|
||||||
|
<path d="M20.7905 9.19564H8.70125H8.70122V0.737671C7.77708 0.942593 6.90094 1.27474 6.0925 1.71587V9.19556V9.1956H0.959771C0.904106 9.62259 0.875122 10.0579 0.875122 10.5C0.875122 10.942 0.904106 11.3774 0.959771 11.8043H6.09247H6.0925V19.284C6.90094 19.7251 7.77708 20.0574 8.70122 20.2622V11.8044V11.8044H20.7905C20.8461 11.3774 20.8751 10.942 20.8751 10.5C20.8751 10.0579 20.8461 9.62259 20.7905 9.19564Z" fill="#0052B4"/>
|
||||||
|
</g>
|
||||||
|
<defs>
|
||||||
|
<clipPath id="clip0_1589_35172">
|
||||||
|
<rect x="0.875" y="0.5" width="20" height="20" rx="10" fill="white"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 898 B |
12
public/images/country/country-07.svg
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<svg width="21" height="21" viewBox="0 0 21 21" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g clip-path="url(#clip0_1589_35174)">
|
||||||
|
<path d="M14.353 1.12211C13.2697 0.720161 12.0979 0.500122 10.8747 0.500122C9.65153 0.500122 8.47981 0.720161 7.39649 1.12211L6.52692 10.5001L7.39649 19.8781C8.47981 20.2801 9.65153 20.5001 10.8747 20.5001C12.0979 20.5001 13.2697 20.2801 14.353 19.8781L15.2225 10.5001L14.353 1.12211Z" fill="#FFDA44"/>
|
||||||
|
<path d="M20.8749 10.4994C20.8749 6.19982 18.1612 2.53435 14.3531 1.12146V19.8775C18.1612 18.4645 20.8749 14.7991 20.8749 10.4994Z" fill="#D80027"/>
|
||||||
|
<path d="M0.874664 10.5C0.874664 14.7997 3.58841 18.4651 7.39642 19.8781V1.12207C3.58841 2.53496 0.874664 6.20043 0.874664 10.5Z" fill="black"/>
|
||||||
|
</g>
|
||||||
|
<defs>
|
||||||
|
<clipPath id="clip0_1589_35174">
|
||||||
|
<rect x="0.875" y="0.5" width="20" height="20" rx="10" fill="white"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 874 B |
11
public/images/country/country-08.svg
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<svg width="21" height="21" viewBox="0 0 21 21" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g clip-path="url(#clip0_1589_35176)">
|
||||||
|
<path d="M10.875 20.5C16.3978 20.5 20.875 16.0228 20.875 10.5C20.875 4.97715 16.3978 0.5 10.875 0.5C5.35215 0.5 0.875 4.97715 0.875 10.5C0.875 16.0228 5.35215 20.5 10.875 20.5Z" fill="#496E2D"/>
|
||||||
|
<path d="M8.70105 14.8479C11.1023 14.8479 13.0489 12.9013 13.0489 10.5C13.0489 8.09881 11.1023 6.15222 8.70105 6.15222C6.29982 6.15222 4.35324 8.09881 4.35324 10.5C4.35324 12.9013 6.29982 14.8479 8.70105 14.8479Z" fill="#D80027"/>
|
||||||
|
</g>
|
||||||
|
<defs>
|
||||||
|
<clipPath id="clip0_1589_35176">
|
||||||
|
<rect x="0.875" y="0.5" width="20" height="20" rx="10" fill="white"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 703 B |
20
public/images/error/404-dark.svg
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<svg width="472" height="158" viewBox="0 0 472 158" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect x="203.103" y="41.7015" width="22.1453" height="20.7141" rx="2.63433" fill="#7592FF" stroke="#7592FF" stroke-width="0.752667"/>
|
||||||
|
<rect x="246.752" y="41.7015" width="22.1453" height="20.7141" rx="2.63433" fill="#7592FF" stroke="#7592FF" stroke-width="0.752667"/>
|
||||||
|
<rect x="258.201" y="98.2308" width="22.1453" height="20.7141" rx="2.63433" fill="#7592FF" stroke="#7592FF" stroke-width="0.752667"/>
|
||||||
|
<rect x="191.654" y="98.2308" width="22.1453" height="20.7141" rx="2.63433" fill="#7592FF" stroke="#7592FF" stroke-width="0.752667"/>
|
||||||
|
<rect x="207.396" y="82.847" width="57.5655" height="20.7141" rx="2.63433" fill="#7592FF" stroke="#7592FF" stroke-width="0.752667"/>
|
||||||
|
<rect x="152.769" y="15.167" width="166.462" height="130.311" rx="28" stroke="#7592FF" stroke-width="24"/>
|
||||||
|
<rect x="0.0405273" y="0.522461" width="32.6255" height="77.5957" rx="6.26271" fill="#7592FF"/>
|
||||||
|
<rect x="0.0405273" y="0.522461" width="32.6255" height="77.5957" rx="6.26271" stroke="#7592FF"/>
|
||||||
|
<rect x="75.8726" y="3.16797" width="32.6255" height="154.31" rx="6.26271" fill="#7592FF"/>
|
||||||
|
<rect x="75.8726" y="3.16797" width="32.6255" height="154.31" rx="6.26271" stroke="#7592FF"/>
|
||||||
|
<rect x="16.7939" y="91.3438" width="32.6255" height="77.5957" rx="6.26271" transform="rotate(-90 16.7939 91.3438)" fill="#7592FF"/>
|
||||||
|
<rect x="16.7939" y="91.3438" width="32.6255" height="77.5957" rx="6.26271" transform="rotate(-90 16.7939 91.3438)" stroke="#7592FF"/>
|
||||||
|
<rect x="363.502" y="0.522461" width="32.6255" height="77.5957" rx="6.26271" fill="#7592FF"/>
|
||||||
|
<rect x="363.502" y="0.522461" width="32.6255" height="77.5957" rx="6.26271" stroke="#7592FF"/>
|
||||||
|
<rect x="439.334" y="3.16797" width="32.6255" height="154.31" rx="6.26271" fill="#7592FF"/>
|
||||||
|
<rect x="439.334" y="3.16797" width="32.6255" height="154.31" rx="6.26271" stroke="#7592FF"/>
|
||||||
|
<rect x="380.255" y="91.3438" width="32.6255" height="77.5957" rx="6.26271" transform="rotate(-90 380.255 91.3438)" fill="#7592FF"/>
|
||||||
|
<rect x="380.255" y="91.3438" width="32.6255" height="77.5957" rx="6.26271" transform="rotate(-90 380.255 91.3438)" stroke="#7592FF"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.1 KiB |
20
public/images/error/404.svg
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<svg width="472" height="158" viewBox="0 0 472 158" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect x="203.103" y="41.7015" width="22.1453" height="20.7141" rx="2.63433" fill="#465FFF" stroke="#465FFF" stroke-width="0.752667"/>
|
||||||
|
<rect x="246.752" y="41.7015" width="22.1453" height="20.7141" rx="2.63433" fill="#465FFF" stroke="#465FFF" stroke-width="0.752667"/>
|
||||||
|
<rect x="258.201" y="98.2303" width="22.1453" height="20.7141" rx="2.63433" fill="#465FFF" stroke="#465FFF" stroke-width="0.752667"/>
|
||||||
|
<rect x="191.654" y="98.2303" width="22.1453" height="20.7141" rx="2.63433" fill="#465FFF" stroke="#465FFF" stroke-width="0.752667"/>
|
||||||
|
<rect x="207.396" y="82.847" width="57.5655" height="20.7141" rx="2.63433" fill="#465FFF" stroke="#465FFF" stroke-width="0.752667"/>
|
||||||
|
<rect x="152.769" y="15.167" width="166.462" height="130.311" rx="28" stroke="#465FFF" stroke-width="24"/>
|
||||||
|
<rect x="0.0405273" y="0.522461" width="32.6255" height="77.5957" rx="6.26271" fill="#465FFF"/>
|
||||||
|
<rect x="0.0405273" y="0.522461" width="32.6255" height="77.5957" rx="6.26271" stroke="#465FFF"/>
|
||||||
|
<rect x="75.8726" y="3.16748" width="32.6255" height="154.31" rx="6.26271" fill="#465FFF"/>
|
||||||
|
<rect x="75.8726" y="3.16748" width="32.6255" height="154.31" rx="6.26271" stroke="#465FFF"/>
|
||||||
|
<rect x="16.7939" y="91.3442" width="32.6255" height="77.5957" rx="6.26271" transform="rotate(-90 16.7939 91.3442)" fill="#465FFF"/>
|
||||||
|
<rect x="16.7939" y="91.3442" width="32.6255" height="77.5957" rx="6.26271" transform="rotate(-90 16.7939 91.3442)" stroke="#465FFF"/>
|
||||||
|
<rect x="363.502" y="0.522461" width="32.6255" height="77.5957" rx="6.26271" fill="#465FFF"/>
|
||||||
|
<rect x="363.502" y="0.522461" width="32.6255" height="77.5957" rx="6.26271" stroke="#465FFF"/>
|
||||||
|
<rect x="439.334" y="3.16748" width="32.6255" height="154.31" rx="6.26271" fill="#465FFF"/>
|
||||||
|
<rect x="439.334" y="3.16748" width="32.6255" height="154.31" rx="6.26271" stroke="#465FFF"/>
|
||||||
|
<rect x="380.255" y="91.3442" width="32.6255" height="77.5957" rx="6.26271" transform="rotate(-90 380.255 91.3442)" fill="#465FFF"/>
|
||||||
|
<rect x="380.255" y="91.3442" width="32.6255" height="77.5957" rx="6.26271" transform="rotate(-90 380.255 91.3442)" stroke="#465FFF"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.1 KiB |
24
public/images/error/500-dark.svg
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
<svg width="562" height="156" viewBox="0 0 562 156" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect x="0.161133" y="13.4297" width="32.6255" height="71" rx="6.26271" fill="#7592FF"/>
|
||||||
|
<rect x="0.161133" y="13.4297" width="32.6255" height="71" rx="6.26271" stroke="#7592FF"/>
|
||||||
|
<rect x="88.2891" y="80.1504" width="32.6255" height="63.5801" rx="6.26271" fill="#7592FF"/>
|
||||||
|
<rect x="88.2891" y="80.1504" width="32.6255" height="63.5801" rx="6.26271" stroke="#7592FF"/>
|
||||||
|
<rect x="15.5254" y="33.4668" width="32.6255" height="105.389" rx="6.26271" transform="rotate(-90 15.5254 33.4668)" fill="#7592FF"/>
|
||||||
|
<rect x="15.5254" y="33.4668" width="32.6255" height="105.389" rx="6.26271" transform="rotate(-90 15.5254 33.4668)" stroke="#7592FF"/>
|
||||||
|
<rect x="0.161133" y="155.16" width="30" height="107.028" rx="6.26271" transform="rotate(-90 0.161133 155.16)" fill="#7592FF"/>
|
||||||
|
<rect x="0.161133" y="155.16" width="30" height="107.028" rx="6.26271" transform="rotate(-90 0.161133 155.16)" stroke="#7592FF"/>
|
||||||
|
<rect x="15.5254" y="96.3398" width="32.6255" height="91.6638" rx="6.26271" transform="rotate(-90 15.5254 96.3398)" fill="#7592FF"/>
|
||||||
|
<rect x="15.5254" y="96.3398" width="32.6255" height="91.6638" rx="6.26271" transform="rotate(-90 15.5254 96.3398)" stroke="#7592FF"/>
|
||||||
|
<rect x="162.915" y="12.8496" width="166.462" height="130.311" rx="28" stroke="#7592FF" stroke-width="24"/>
|
||||||
|
<rect x="213.52" y="42.0287" width="22.1453" height="20.7141" rx="2.63433" fill="#7592FF" stroke="#7592FF" stroke-width="0.752667"/>
|
||||||
|
<rect x="257.168" y="42.0287" width="22.1453" height="20.7141" rx="2.63433" fill="#7592FF" stroke="#7592FF" stroke-width="0.752667"/>
|
||||||
|
<rect x="268.618" y="98.558" width="22.1453" height="20.7141" rx="2.63433" fill="#7592FF" stroke="#7592FF" stroke-width="0.752667"/>
|
||||||
|
<rect x="202.071" y="98.558" width="22.1453" height="20.7141" rx="2.63433" fill="#7592FF" stroke="#7592FF" stroke-width="0.752667"/>
|
||||||
|
<rect x="217.813" y="83.1732" width="57.5655" height="20.7141" rx="2.63433" fill="#7592FF" stroke="#7592FF" stroke-width="0.752667"/>
|
||||||
|
<rect x="383.377" y="12.8496" width="166.462" height="130.311" rx="28" stroke="#7592FF" stroke-width="24"/>
|
||||||
|
<rect x="433.982" y="42.0287" width="22.1453" height="20.7141" rx="2.63433" fill="#7592FF" stroke="#7592FF" stroke-width="0.752667"/>
|
||||||
|
<rect x="477.63" y="42.0287" width="22.1453" height="20.7141" rx="2.63433" fill="#7592FF" stroke="#7592FF" stroke-width="0.752667"/>
|
||||||
|
<rect x="489.079" y="98.558" width="22.1453" height="20.7141" rx="2.63433" fill="#7592FF" stroke="#7592FF" stroke-width="0.752667"/>
|
||||||
|
<rect x="422.533" y="98.558" width="22.1453" height="20.7141" rx="2.63433" fill="#7592FF" stroke="#7592FF" stroke-width="0.752667"/>
|
||||||
|
<rect x="438.275" y="83.1732" width="57.5655" height="20.7141" rx="2.63433" fill="#7592FF" stroke="#7592FF" stroke-width="0.752667"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.8 KiB |
24
public/images/error/500.svg
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
<svg width="562" height="156" viewBox="0 0 562 156" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect x="0.161133" y="13.4292" width="32.6255" height="71" rx="6.26271" fill="#465FFF"/>
|
||||||
|
<rect x="0.161133" y="13.4292" width="32.6255" height="71" rx="6.26271" stroke="#465FFF"/>
|
||||||
|
<rect x="88.2891" y="80.1499" width="32.6255" height="63.5801" rx="6.26271" fill="#465FFF"/>
|
||||||
|
<rect x="88.2891" y="80.1499" width="32.6255" height="63.5801" rx="6.26271" stroke="#465FFF"/>
|
||||||
|
<rect x="15.5254" y="33.4673" width="32.6255" height="105.389" rx="6.26271" transform="rotate(-90 15.5254 33.4673)" fill="#465FFF"/>
|
||||||
|
<rect x="15.5254" y="33.4673" width="32.6255" height="105.389" rx="6.26271" transform="rotate(-90 15.5254 33.4673)" stroke="#465FFF"/>
|
||||||
|
<rect x="0.161133" y="155.16" width="30" height="107.028" rx="6.26271" transform="rotate(-90 0.161133 155.16)" fill="#465FFF"/>
|
||||||
|
<rect x="0.161133" y="155.16" width="30" height="107.028" rx="6.26271" transform="rotate(-90 0.161133 155.16)" stroke="#465FFF"/>
|
||||||
|
<rect x="15.5254" y="96.3398" width="32.6255" height="91.6638" rx="6.26271" transform="rotate(-90 15.5254 96.3398)" fill="#465FFF"/>
|
||||||
|
<rect x="15.5254" y="96.3398" width="32.6255" height="91.6638" rx="6.26271" transform="rotate(-90 15.5254 96.3398)" stroke="#465FFF"/>
|
||||||
|
<rect x="162.915" y="12.8496" width="166.462" height="130.311" rx="28" stroke="#465FFF" stroke-width="24"/>
|
||||||
|
<rect x="213.52" y="42.0287" width="22.1453" height="20.7141" rx="2.63433" fill="#465FFF" stroke="#465FFF" stroke-width="0.752667"/>
|
||||||
|
<rect x="257.168" y="42.0287" width="22.1453" height="20.7141" rx="2.63433" fill="#465FFF" stroke="#465FFF" stroke-width="0.752667"/>
|
||||||
|
<rect x="268.618" y="98.558" width="22.1453" height="20.7141" rx="2.63433" fill="#465FFF" stroke="#465FFF" stroke-width="0.752667"/>
|
||||||
|
<rect x="202.071" y="98.558" width="22.1453" height="20.7141" rx="2.63433" fill="#465FFF" stroke="#465FFF" stroke-width="0.752667"/>
|
||||||
|
<rect x="217.813" y="83.1732" width="57.5655" height="20.7141" rx="2.63433" fill="#465FFF" stroke="#465FFF" stroke-width="0.752667"/>
|
||||||
|
<rect x="383.377" y="12.8496" width="166.462" height="130.311" rx="28" stroke="#465FFF" stroke-width="24"/>
|
||||||
|
<rect x="433.982" y="42.0287" width="22.1453" height="20.7141" rx="2.63433" fill="#465FFF" stroke="#465FFF" stroke-width="0.752667"/>
|
||||||
|
<rect x="477.63" y="42.0287" width="22.1453" height="20.7141" rx="2.63433" fill="#465FFF" stroke="#465FFF" stroke-width="0.752667"/>
|
||||||
|
<rect x="489.079" y="98.558" width="22.1453" height="20.7141" rx="2.63433" fill="#465FFF" stroke="#465FFF" stroke-width="0.752667"/>
|
||||||
|
<rect x="422.533" y="98.558" width="22.1453" height="20.7141" rx="2.63433" fill="#465FFF" stroke="#465FFF" stroke-width="0.752667"/>
|
||||||
|
<rect x="438.275" y="83.1732" width="57.5655" height="20.7141" rx="2.63433" fill="#465FFF" stroke="#465FFF" stroke-width="0.752667"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.8 KiB |
26
public/images/error/503-dark.svg
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<svg width="494" height="156" viewBox="0 0 494 156" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect x="0.515625" y="13.4492" width="32.6255" height="71" rx="6.26271" fill="#7592FF"/>
|
||||||
|
<rect x="0.515625" y="13.4492" width="32.6255" height="71" rx="6.26271" stroke="#7592FF"/>
|
||||||
|
<rect x="88.6436" y="80.1699" width="32.6255" height="63.5801" rx="6.26271" fill="#7592FF"/>
|
||||||
|
<rect x="88.6436" y="80.1699" width="32.6255" height="63.5801" rx="6.26271" stroke="#7592FF"/>
|
||||||
|
<rect x="15.8799" y="33.4863" width="32.6255" height="105.389" rx="6.26271" transform="rotate(-90 15.8799 33.4863)" fill="#7592FF"/>
|
||||||
|
<rect x="15.8799" y="33.4863" width="32.6255" height="105.389" rx="6.26271" transform="rotate(-90 15.8799 33.4863)" stroke="#7592FF"/>
|
||||||
|
<rect x="0.515625" y="155.18" width="30" height="107.028" rx="6.26271" transform="rotate(-90 0.515625 155.18)" fill="#7592FF"/>
|
||||||
|
<rect x="0.515625" y="155.18" width="30" height="107.028" rx="6.26271" transform="rotate(-90 0.515625 155.18)" stroke="#7592FF"/>
|
||||||
|
<rect x="15.8799" y="96.3594" width="32.6255" height="91.6638" rx="6.26271" transform="rotate(-90 15.8799 96.3594)" fill="#7592FF"/>
|
||||||
|
<rect x="15.8799" y="96.3594" width="32.6255" height="91.6638" rx="6.26271" transform="rotate(-90 15.8799 96.3594)" stroke="#7592FF"/>
|
||||||
|
<rect x="163.27" y="12.8691" width="166.462" height="130.311" rx="28" stroke="#7592FF" stroke-width="24"/>
|
||||||
|
<rect x="213.874" y="42.0482" width="22.1453" height="20.7141" rx="2.63433" fill="#7592FF" stroke="#7592FF" stroke-width="0.752667"/>
|
||||||
|
<rect x="257.523" y="42.0482" width="22.1453" height="20.7141" rx="2.63433" fill="#7592FF" stroke="#7592FF" stroke-width="0.752667"/>
|
||||||
|
<rect x="268.972" y="98.5775" width="22.1453" height="20.7141" rx="2.63433" fill="#7592FF" stroke="#7592FF" stroke-width="0.752667"/>
|
||||||
|
<rect x="202.425" y="98.5775" width="22.1453" height="20.7141" rx="2.63433" fill="#7592FF" stroke="#7592FF" stroke-width="0.752667"/>
|
||||||
|
<rect x="218.167" y="83.1927" width="57.5655" height="20.7141" rx="2.63433" fill="#7592FF" stroke="#7592FF" stroke-width="0.752667"/>
|
||||||
|
<rect x="460.859" y="11.1885" width="32.6255" height="132.562" rx="6.26271" fill="#7592FF"/>
|
||||||
|
<rect x="460.859" y="11.1885" width="32.6255" height="132.562" rx="6.26271" stroke="#7592FF"/>
|
||||||
|
<rect x="371.731" y="33.4453" width="32.6255" height="107.028" rx="6.26271" transform="rotate(-90 371.731 33.4453)" fill="#7592FF"/>
|
||||||
|
<rect x="371.731" y="33.4453" width="32.6255" height="107.028" rx="6.26271" transform="rotate(-90 371.731 33.4453)" stroke="#7592FF"/>
|
||||||
|
<rect x="371.731" y="155.18" width="30" height="107.028" rx="6.26271" transform="rotate(-90 371.731 155.18)" fill="#7592FF"/>
|
||||||
|
<rect x="371.731" y="155.18" width="30" height="107.028" rx="6.26271" transform="rotate(-90 371.731 155.18)" stroke="#7592FF"/>
|
||||||
|
<rect x="388.096" y="93.7812" width="32.6255" height="91.6638" rx="6.26271" transform="rotate(-90 388.096 93.7812)" fill="#7592FF"/>
|
||||||
|
<rect x="388.096" y="93.7812" width="32.6255" height="91.6638" rx="6.26271" transform="rotate(-90 388.096 93.7812)" stroke="#7592FF"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 3.0 KiB |
26
public/images/error/503.svg
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<svg width="494" height="156" viewBox="0 0 494 156" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect x="0.515625" y="13.4492" width="32.6255" height="71" rx="6.26271" fill="#465FFF"/>
|
||||||
|
<rect x="0.515625" y="13.4492" width="32.6255" height="71" rx="6.26271" stroke="#465FFF"/>
|
||||||
|
<rect x="88.6436" y="80.1699" width="32.6255" height="63.5801" rx="6.26271" fill="#465FFF"/>
|
||||||
|
<rect x="88.6436" y="80.1699" width="32.6255" height="63.5801" rx="6.26271" stroke="#465FFF"/>
|
||||||
|
<rect x="15.8799" y="33.4873" width="32.6255" height="105.389" rx="6.26271" transform="rotate(-90 15.8799 33.4873)" fill="#465FFF"/>
|
||||||
|
<rect x="15.8799" y="33.4873" width="32.6255" height="105.389" rx="6.26271" transform="rotate(-90 15.8799 33.4873)" stroke="#465FFF"/>
|
||||||
|
<rect x="0.515625" y="155.18" width="30" height="107.028" rx="6.26271" transform="rotate(-90 0.515625 155.18)" fill="#465FFF"/>
|
||||||
|
<rect x="0.515625" y="155.18" width="30" height="107.028" rx="6.26271" transform="rotate(-90 0.515625 155.18)" stroke="#465FFF"/>
|
||||||
|
<rect x="15.8799" y="96.3599" width="32.6255" height="91.6638" rx="6.26271" transform="rotate(-90 15.8799 96.3599)" fill="#465FFF"/>
|
||||||
|
<rect x="15.8799" y="96.3599" width="32.6255" height="91.6638" rx="6.26271" transform="rotate(-90 15.8799 96.3599)" stroke="#465FFF"/>
|
||||||
|
<rect x="163.27" y="12.8696" width="166.462" height="130.311" rx="28" stroke="#465FFF" stroke-width="24"/>
|
||||||
|
<rect x="213.874" y="42.0487" width="22.1453" height="20.7141" rx="2.63433" fill="#465FFF" stroke="#465FFF" stroke-width="0.752667"/>
|
||||||
|
<rect x="257.523" y="42.0487" width="22.1453" height="20.7141" rx="2.63433" fill="#465FFF" stroke="#465FFF" stroke-width="0.752667"/>
|
||||||
|
<rect x="268.972" y="98.578" width="22.1453" height="20.7141" rx="2.63433" fill="#465FFF" stroke="#465FFF" stroke-width="0.752667"/>
|
||||||
|
<rect x="202.425" y="98.578" width="22.1453" height="20.7141" rx="2.63433" fill="#465FFF" stroke="#465FFF" stroke-width="0.752667"/>
|
||||||
|
<rect x="218.167" y="83.1932" width="57.5655" height="20.7141" rx="2.63433" fill="#465FFF" stroke="#465FFF" stroke-width="0.752667"/>
|
||||||
|
<rect x="460.859" y="11.188" width="32.6255" height="132.562" rx="6.26271" fill="#465FFF"/>
|
||||||
|
<rect x="460.859" y="11.188" width="32.6255" height="132.562" rx="6.26271" stroke="#465FFF"/>
|
||||||
|
<rect x="371.731" y="33.4458" width="32.6255" height="107.028" rx="6.26271" transform="rotate(-90 371.731 33.4458)" fill="#465FFF"/>
|
||||||
|
<rect x="371.731" y="33.4458" width="32.6255" height="107.028" rx="6.26271" transform="rotate(-90 371.731 33.4458)" stroke="#465FFF"/>
|
||||||
|
<rect x="371.731" y="155.18" width="30" height="107.028" rx="6.26271" transform="rotate(-90 371.731 155.18)" fill="#465FFF"/>
|
||||||
|
<rect x="371.731" y="155.18" width="30" height="107.028" rx="6.26271" transform="rotate(-90 371.731 155.18)" stroke="#465FFF"/>
|
||||||
|
<rect x="388.096" y="93.7812" width="32.6255" height="91.6638" rx="6.26271" transform="rotate(-90 388.096 93.7812)" fill="#465FFF"/>
|
||||||
|
<rect x="388.096" y="93.7812" width="32.6255" height="91.6638" rx="6.26271" transform="rotate(-90 388.096 93.7812)" stroke="#465FFF"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.9 KiB |
5
public/images/error/maintenance-dark.svg
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<svg width="204" height="212" viewBox="0 0 204 212" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.3977 187.783C15.3444 192.887 21.8722 194.635 26.976 191.688C34.088 187.582 42.9808 192.713 42.9808 200.926C42.9808 206.818 47.7571 211.594 53.6489 211.594H75.4488C81.342 211.594 86.1194 206.816 86.1194 200.922C86.1194 192.709 95.0106 187.575 102.124 191.681C107.227 194.627 113.752 192.879 116.698 187.776L127.599 168.895C130.545 163.793 128.795 157.268 123.693 154.322C116.584 150.218 116.581 139.955 123.689 135.851C128.789 132.906 130.537 126.385 127.592 121.285L116.687 102.397C113.742 97.2955 107.219 95.5476 102.118 98.4929C95.0074 102.598 86.1194 97.4636 86.1194 89.2531C86.1194 83.3611 81.343 78.583 75.451 78.583L53.6467 78.583C47.7561 78.583 42.9808 83.3583 42.9808 89.2489C42.9808 97.4596 34.0914 102.591 26.9808 98.4853C21.8788 95.5396 15.3543 97.2874 12.4087 102.389L1.50766 121.27C-1.43865 126.374 0.309822 132.899 5.41298 135.845C12.526 139.952 12.5224 150.221 5.40935 154.328C0.304371 157.275 -1.44682 163.804 1.50054 168.909L12.3977 187.783ZM64.5483 168.576C77.5111 168.576 88.0195 158.068 88.0195 145.105C88.0195 132.142 77.5111 121.634 64.5483 121.634C51.5856 121.634 41.0772 132.142 41.0772 145.105C41.0772 158.068 51.5856 168.576 64.5483 168.576Z" fill="#7592FF"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M87.9495 54.4633C87.7791 57.7001 90.266 60.4623 93.5029 60.6326C98.0135 60.8699 100.577 65.9012 98.1164 69.6888C96.351 72.4061 97.1226 76.0402 99.8399 77.8057L109.894 84.338C112.612 86.1039 116.247 85.3317 118.013 82.6138C120.474 78.8257 126.114 79.1219 128.164 83.1473C129.634 86.0353 133.168 87.1842 136.056 85.7134L146.741 80.2718C149.628 78.8014 150.776 75.2676 149.306 72.3803C147.257 68.3572 150.331 63.6229 154.839 63.8601C158.074 64.0303 160.834 61.5462 161.004 58.3117L161.634 46.3329C161.805 43.0976 159.32 40.3368 156.085 40.1666C151.575 39.9293 149.015 34.8979 151.475 31.1112C153.24 28.3938 152.469 24.7589 149.752 22.9933L139.696 16.4597C136.979 14.6946 133.345 15.4661 131.58 18.1828C129.12 21.9696 123.483 21.6724 121.433 17.6483C119.963 14.761 116.43 13.612 113.543 15.0824L102.857 20.5239C99.9694 21.9947 98.8205 25.5282 100.291 28.4162C102.341 32.4416 99.2625 37.1766 94.7514 36.9392C91.5138 36.7688 88.7497 39.2553 88.5794 42.4929L87.9495 54.4633ZM117.757 61.2316C123.736 65.1159 131.731 63.4182 135.615 57.4397C139.499 51.4612 137.802 43.4658 131.823 39.5816C125.845 35.6973 117.849 37.395 113.965 43.3735C110.081 49.352 111.779 57.3473 117.757 61.2316Z" fill="#7592FF"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M157.997 100.165C158.662 102.06 160.738 103.056 162.633 102.39C165.273 101.463 167.929 103.741 167.412 106.492C167.041 108.465 168.34 110.365 170.313 110.736L177.614 112.108C179.587 112.479 181.488 111.18 181.859 109.206C182.376 106.455 185.677 105.296 187.801 107.119C189.324 108.427 191.62 108.252 192.928 106.728L197.767 101.091C199.075 99.568 198.899 97.2725 197.376 95.9649C195.254 94.1428 195.899 90.7056 198.538 89.7786C200.431 89.1135 201.427 87.0394 200.762 85.146L198.299 78.1339C197.634 76.2401 195.559 75.2441 193.665 75.9093C191.025 76.8366 188.372 74.5575 188.889 71.8078C189.26 69.8346 187.961 67.9337 185.988 67.5628L178.685 66.1902C176.713 65.8193 174.813 67.118 174.442 69.0908C173.925 71.8405 170.625 72.9993 168.502 71.1768C166.979 69.8691 164.684 70.0437 163.376 71.567L158.537 77.2041C157.229 78.7276 157.403 81.0231 158.927 82.3311C161.051 84.1542 160.403 87.593 157.762 88.5206C155.867 89.1863 154.87 91.2626 155.535 93.1578L157.997 100.165ZM176.671 97.0153C181.012 97.8313 185.193 94.9735 186.009 90.6323C186.825 86.291 183.968 82.1102 179.626 81.2942C175.285 80.4782 171.104 83.3359 170.288 87.6772C169.472 92.0185 172.33 96.1993 176.671 97.0153Z" fill="#7592FF"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 3.7 KiB |
5
public/images/error/maintenance.svg
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<svg width="204" height="212" viewBox="0 0 204 212" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.3977 187.784C15.3444 192.888 21.8722 194.635 26.976 191.689C34.088 187.583 42.9808 192.714 42.9808 200.926C42.9808 206.818 47.7571 211.594 53.6489 211.594H75.4488C81.342 211.594 86.1194 206.816 86.1194 200.923C86.1194 192.71 95.0106 187.575 102.124 191.682C107.227 194.628 113.752 192.88 116.698 187.776L127.599 168.895C130.545 163.793 128.795 157.268 123.693 154.323C116.584 150.218 116.581 139.956 123.689 135.851C128.789 132.907 130.537 126.385 127.592 121.285L116.687 102.397C113.742 97.2959 107.219 95.5481 102.118 98.4933C95.0074 102.599 86.1194 97.464 86.1194 89.2536C86.1194 83.3616 81.343 78.5835 75.451 78.5835L53.6467 78.5835C47.7561 78.5835 42.9808 83.3588 42.9808 89.2494C42.9808 97.4601 34.0914 102.591 26.9808 98.4858C21.8788 95.5401 15.3543 97.2878 12.4087 102.39L1.50766 121.271C-1.43865 126.374 0.309822 132.899 5.41298 135.846C12.526 139.952 12.5224 150.221 5.40935 154.328C0.304371 157.275 -1.44682 163.804 1.50054 168.909L12.3977 187.784ZM64.5483 168.576C77.5111 168.576 88.0195 158.068 88.0195 145.105C88.0195 132.143 77.5111 121.634 64.5483 121.634C51.5856 121.634 41.0772 132.143 41.0772 145.105C41.0772 158.068 51.5856 168.576 64.5483 168.576Z" fill="#465FFF"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M87.9495 54.4637C87.7791 57.7006 90.266 60.4628 93.5029 60.6331C98.0135 60.8704 100.577 65.9017 98.1164 69.6892C96.351 72.4066 97.1226 76.0407 99.8399 77.8062L109.894 84.3385C112.612 86.1044 116.247 85.3322 118.013 82.6142C120.474 78.8262 126.114 79.1223 128.164 83.1478C129.634 86.0357 133.168 87.1847 136.056 85.7139L146.741 80.2723C149.628 78.8019 150.776 75.2681 149.306 72.3808C147.257 68.3577 150.331 63.6234 154.839 63.8606C158.074 64.0308 160.834 61.5467 161.004 58.3122L161.634 46.3333C161.805 43.0981 159.32 40.3373 156.085 40.1671C151.575 39.9298 149.015 34.8984 151.475 31.1117C153.24 28.3943 152.469 24.7594 149.752 22.9938L139.696 16.4602C136.979 14.6951 133.345 15.4665 131.58 18.1833C129.12 21.9701 123.483 21.6729 121.433 17.6488C119.963 14.7615 116.43 13.6124 113.543 15.0828L102.857 20.5244C99.9694 21.9952 98.8205 25.5286 100.291 28.4167C102.341 32.4421 99.2625 37.1771 94.7514 36.9397C91.5138 36.7693 88.7497 39.2558 88.5794 42.4934L87.9495 54.4637ZM117.757 61.2321C123.736 65.1163 131.731 63.4187 135.615 57.4402C139.499 51.4617 137.802 43.4663 131.823 39.582C125.845 35.6978 117.849 37.3955 113.965 43.3739C110.081 49.3524 111.779 57.3478 117.757 61.2321Z" fill="#465FFF"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M157.997 100.165C158.662 102.06 160.738 103.056 162.633 102.391C165.273 101.463 167.929 103.742 167.412 106.492C167.041 108.465 168.34 110.366 170.313 110.736L177.614 112.109C179.587 112.48 181.488 111.18 181.859 109.207C182.376 106.456 185.677 105.296 187.801 107.119C189.324 108.427 191.62 108.252 192.928 106.729L197.767 101.092C199.075 99.5684 198.899 97.273 197.376 95.9654C195.254 94.1433 195.899 90.7061 198.538 89.7791C200.431 89.114 201.427 87.0399 200.762 85.1465L198.299 78.1344C197.634 76.2406 195.559 75.2446 193.665 75.9098C191.025 76.8371 188.372 74.558 188.889 71.8083C189.26 69.8351 187.961 67.9342 185.988 67.5633L178.685 66.1906C176.713 65.8198 174.813 67.1185 174.442 69.0913C173.925 71.841 170.625 72.9998 168.502 71.1773C166.979 69.8696 164.684 70.0442 163.376 71.5675L158.537 77.2045C157.229 78.7281 157.403 81.0236 158.927 82.3315C161.051 84.1547 160.403 87.5935 157.762 88.5211C155.867 89.1868 154.87 91.2631 155.535 93.1583L157.997 100.165ZM176.671 97.0158C181.012 97.8318 185.193 94.974 186.009 90.6328C186.825 86.2915 183.968 82.1107 179.626 81.2947C175.285 80.4787 171.104 83.3364 170.288 87.6777C169.472 92.0189 172.33 96.1997 176.671 97.0158Z" fill="#465FFF"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 3.7 KiB |
3
public/images/error/success-dark.svg
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<svg width="160" height="160" viewBox="0 0 160 160" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M115.114 65.8958L72.0376 108.973C71.4672 109.544 70.79 109.996 70.0445 110.305C69.2991 110.614 68.5 110.773 67.693 110.773C66.886 110.773 66.0869 110.614 65.3414 110.305C64.596 109.996 63.9188 109.544 63.3484 108.973L44.8869 90.5112C44.2984 89.9443 43.8286 89.2656 43.505 88.5152C43.1815 87.7649 43.0107 86.9577 43.0025 86.1407C42.9943 85.3236 43.1488 84.5131 43.4571 83.7564C43.7655 82.9997 44.2215 82.312 44.7984 81.7334C45.3754 81.1548 46.0617 80.697 46.8176 80.3865C47.5734 80.076 48.3835 79.9193 49.2006 79.9252C50.0176 79.9312 50.8254 80.0996 51.5766 80.421C52.3278 80.7424 53.0075 81.2103 53.576 81.7972L67.693 95.9146L106.425 57.1819C106.994 56.595 107.674 56.1271 108.425 55.8056C109.176 55.4842 109.984 55.3158 110.801 55.3099C111.618 55.3039 112.428 55.4606 113.184 55.7711C113.94 56.0816 114.626 56.5394 115.203 57.118C115.78 57.6966 116.236 58.3843 116.544 59.141C116.853 59.8977 117.007 60.7082 116.999 61.5253C116.991 62.3424 116.82 63.1495 116.496 63.8998C116.173 64.6502 115.703 65.3289 115.114 65.8958ZM152.998 94.1417L145.748 80.0004L152.985 65.8462C153.866 64.1289 154.078 62.1466 153.58 60.2821C153.082 58.4175 151.909 56.8042 150.29 55.7546L136.936 47.139L136.136 31.2992C136.063 29.3603 135.263 27.5198 133.895 26.1444C132.526 24.7691 130.69 23.9595 128.751 23.8773L112.874 23.0653L104.222 9.68636C103.163 8.07751 101.548 6.91588 99.6863 6.42314C97.8243 5.93039 95.8461 6.14137 94.1299 7.01583L80.0007 14.2529L65.8468 7.01583C64.1292 6.13081 62.1434 5.91794 60.2772 6.41863C58.411 6.91932 56.7984 8.09724 55.7545 9.72317L47.1269 23.0773L31.2622 23.8773C29.3289 23.9561 27.496 24.759 26.1279 26.1272C24.7597 27.4953 23.9564 29.3283 23.8776 31.2616L23.0653 47.139L9.67457 55.7786C8.06354 56.8357 6.90058 58.4518 6.40975 60.3151C5.91892 62.1785 6.13489 64.1574 7.01607 65.871L14.253 80.0124L7.01607 94.1665C6.13629 95.882 5.92488 97.863 6.4229 99.7254C6.92092 101.588 8.09291 103.199 9.71147 104.246L23.0653 112.874L23.8653 128.702C24.0376 132.763 27.2376 135.963 31.2499 136.135L47.1269 136.935L55.7791 150.326C57.9576 153.649 62.3022 154.782 65.8714 152.985L80.0007 145.748L94.1545 152.998C95.871 153.888 97.8586 154.104 99.7264 153.603C101.594 153.102 103.207 151.92 104.247 150.29L112.874 136.935L128.702 136.148C130.645 136.078 132.49 135.278 133.869 133.907C135.247 132.535 136.057 130.694 136.136 128.751L136.936 112.874L150.327 104.222C151.937 103.167 153.1 101.554 153.59 99.6924C154.081 97.8311 153.878 95.8535 152.998 94.1417Z" fill="#7592FF"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.6 KiB |
3
public/images/error/success.svg
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<svg width="160" height="160" viewBox="0 0 160 160" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M115.114 65.8958L72.0376 108.973C71.4672 109.544 70.79 109.996 70.0445 110.305C69.2991 110.614 68.5 110.773 67.693 110.773C66.886 110.773 66.0869 110.614 65.3414 110.305C64.596 109.996 63.9188 109.544 63.3484 108.973L44.8869 90.5112C44.2984 89.9443 43.8286 89.2656 43.505 88.5152C43.1815 87.7649 43.0107 86.9577 43.0025 86.1407C42.9943 85.3236 43.1488 84.5131 43.4571 83.7564C43.7655 82.9997 44.2215 82.312 44.7984 81.7334C45.3754 81.1548 46.0617 80.697 46.8176 80.3865C47.5734 80.076 48.3835 79.9193 49.2006 79.9252C50.0176 79.9312 50.8254 80.0996 51.5766 80.421C52.3278 80.7424 53.0075 81.2103 53.576 81.7972L67.693 95.9146L106.425 57.1819C106.994 56.595 107.674 56.1271 108.425 55.8056C109.176 55.4842 109.984 55.3158 110.801 55.3099C111.618 55.3039 112.428 55.4606 113.184 55.7711C113.94 56.0816 114.626 56.5394 115.203 57.118C115.78 57.6966 116.236 58.3843 116.544 59.141C116.853 59.8977 117.007 60.7082 116.999 61.5253C116.991 62.3424 116.82 63.1495 116.496 63.8998C116.173 64.6502 115.703 65.3289 115.114 65.8958ZM152.998 94.1417L145.748 80.0004L152.985 65.8462C153.866 64.1289 154.078 62.1466 153.58 60.2821C153.082 58.4175 151.909 56.8042 150.29 55.7546L136.936 47.139L136.136 31.2992C136.063 29.3603 135.263 27.5198 133.895 26.1444C132.526 24.7691 130.69 23.9595 128.751 23.8773L112.874 23.0653L104.222 9.68636C103.163 8.07751 101.548 6.91588 99.6863 6.42314C97.8243 5.93039 95.8461 6.14137 94.1299 7.01583L80.0007 14.2529L65.8468 7.01583C64.1292 6.13081 62.1434 5.91794 60.2772 6.41863C58.411 6.91932 56.7984 8.09724 55.7545 9.72317L47.1269 23.0773L31.2622 23.8773C29.3289 23.9561 27.496 24.759 26.1279 26.1272C24.7597 27.4953 23.9564 29.3283 23.8776 31.2616L23.0653 47.139L9.67457 55.7786C8.06354 56.8357 6.90058 58.4518 6.40975 60.3151C5.91892 62.1785 6.13489 64.1574 7.01607 65.871L14.253 80.0124L7.01607 94.1665C6.13629 95.882 5.92488 97.863 6.4229 99.7254C6.92092 101.588 8.09291 103.199 9.71147 104.246L23.0653 112.874L23.8653 128.702C24.0376 132.763 27.2376 135.963 31.2499 136.135L47.1269 136.935L55.7791 150.326C57.9576 153.649 62.3022 154.782 65.8714 152.985L80.0007 145.748L94.1545 152.998C95.871 153.888 97.8586 154.104 99.7264 153.603C101.594 153.102 103.207 151.92 104.247 150.29L112.874 136.935L128.702 136.148C130.645 136.078 132.49 135.278 133.869 133.907C135.247 132.535 136.057 130.694 136.136 128.751L136.936 112.874L150.327 104.222C151.937 103.167 153.1 101.554 153.59 99.6924C154.081 97.8311 153.878 95.8535 152.998 94.1417Z" fill="#465FFF"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.6 KiB |
BIN
public/images/favicon.ico
Normal file
|
After Width: | Height: | Size: 174 KiB |
BIN
public/images/grid-image/image-01.png
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
BIN
public/images/grid-image/image-02.png
Normal file
|
After Width: | Height: | Size: 322 KiB |
BIN
public/images/grid-image/image-03.png
Normal file
|
After Width: | Height: | Size: 473 KiB |
BIN
public/images/grid-image/image-04.png
Normal file
|
After Width: | Height: | Size: 204 KiB |
BIN
public/images/grid-image/image-05.png
Normal file
|
After Width: | Height: | Size: 148 KiB |
BIN
public/images/grid-image/image-06.png
Normal file
|
After Width: | Height: | Size: 80 KiB |
3
public/images/icons/file-image-dark.svg
Normal 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 fill-rule="evenodd" clip-rule="evenodd" d="M8.125 16.9587V18.4587H5.875C4.63236 18.4587 3.625 17.4513 3.625 16.2087V8.12137C3.625 7.52488 3.86186 6.9528 4.28351 6.53088L8.61019 2.2015C9.03218 1.77924 9.60469 1.54199 10.2017 1.54199H14.125C15.3676 1.54199 16.375 2.54935 16.375 3.79199V8.12533H14.875V3.79199C14.875 3.37778 14.5392 3.04199 14.125 3.04199H10.3318L10.3339 5.99933C10.3346 6.98219 9.70502 7.81822 8.82702 8.12533H8.125V8.25057C8.11133 8.25081 8.09762 8.25094 8.08389 8.25094H5.125V16.2087C5.125 16.6229 5.46079 16.9587 5.875 16.9587H8.125ZM8.83254 4.10099L6.18425 6.75094H8.08389C8.49831 6.75094 8.83419 6.41482 8.83389 6.0004L8.83254 4.10099ZM11.8114 9.81165C10.7068 9.81165 9.81137 10.7071 9.81137 11.8116V15.8972C9.81137 16.1982 9.87787 16.4837 9.99698 16.7398C10.1307 17.1788 10.4745 17.5306 10.9157 17.6859C11.1851 17.8211 11.4894 17.8972 11.8114 17.8972H15.8969C16.219 17.8972 16.5233 17.8211 16.7928 17.6858C17.2337 17.5306 17.5773 17.179 17.7111 16.7402C17.8304 16.484 17.8969 16.1984 17.8969 15.8972V11.8116C17.8969 10.7071 17.0015 9.81165 15.8969 9.81165H11.8114ZM16.3969 14.4735V11.8116C16.3969 11.5355 16.1731 11.3116 15.8969 11.3116H11.8114C11.5352 11.3116 11.3114 11.5355 11.3114 11.8116V14.9237L11.8234 14.6628C12.2747 14.4328 12.8161 14.4428 13.2579 14.6893L14.1394 15.181C14.7374 15.5146 15.4938 15.4059 15.966 14.9184L16.3969 14.4735ZM11.944 12.7455C11.944 12.3037 12.3022 11.9455 12.744 11.9455H12.7485C13.1903 11.9455 13.5485 12.3037 13.5485 12.7455C13.5485 13.1873 13.1903 13.5455 12.7485 13.5455H12.744C12.3022 13.5455 11.944 13.1873 11.944 12.7455Z" fill="#98A2B3"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.7 KiB |
3
public/images/icons/file-image.svg
Normal 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 fill-rule="evenodd" clip-rule="evenodd" d="M8.125 16.9587V18.4587H5.875C4.63236 18.4587 3.625 17.4513 3.625 16.2087V8.12137C3.625 7.52488 3.86186 6.9528 4.28351 6.53088L8.61019 2.2015C9.03218 1.77924 9.60469 1.54199 10.2017 1.54199H14.125C15.3676 1.54199 16.375 2.54935 16.375 3.79199V8.12533H14.875V3.79199C14.875 3.37778 14.5392 3.04199 14.125 3.04199H10.3318L10.3339 5.99933C10.3346 6.98219 9.70502 7.81822 8.82702 8.12533H8.125V8.25057C8.11133 8.25081 8.09762 8.25094 8.08389 8.25094H5.125V16.2087C5.125 16.6229 5.46079 16.9587 5.875 16.9587H8.125ZM8.83254 4.10099L6.18425 6.75094H8.08389C8.49831 6.75094 8.83419 6.41482 8.83389 6.0004L8.83254 4.10099ZM11.8114 9.81165C10.7068 9.81165 9.81137 10.7071 9.81137 11.8116V15.8972C9.81137 16.1982 9.87787 16.4837 9.99698 16.7398C10.1307 17.1788 10.4745 17.5306 10.9157 17.6859C11.1851 17.8211 11.4894 17.8972 11.8114 17.8972H15.8969C16.219 17.8972 16.5233 17.8211 16.7928 17.6858C17.2337 17.5306 17.5773 17.179 17.7111 16.7402C17.8304 16.484 17.8969 16.1984 17.8969 15.8972V11.8116C17.8969 10.7071 17.0015 9.81165 15.8969 9.81165H11.8114ZM16.3969 14.4735V11.8116C16.3969 11.5355 16.1731 11.3116 15.8969 11.3116H11.8114C11.5352 11.3116 11.3114 11.5355 11.3114 11.8116V14.9237L11.8234 14.6628C12.2747 14.4328 12.8161 14.4428 13.2579 14.6893L14.1394 15.181C14.7374 15.5146 15.4938 15.4059 15.966 14.9184L16.3969 14.4735ZM11.944 12.7455C11.944 12.3037 12.3022 11.9455 12.744 11.9455H12.7485C13.1903 11.9455 13.5485 12.3037 13.5485 12.7455C13.5485 13.1873 13.1903 13.5455 12.7485 13.5455H12.744C12.3022 13.5455 11.944 13.1873 11.944 12.7455Z" fill="#344054"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.7 KiB |
3
public/images/icons/file-pdf-dark.svg
Normal 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 fill-rule="evenodd" clip-rule="evenodd" d="M14.125 18.4587C15.3676 18.4587 16.375 17.4513 16.375 16.2087V15.8385H16.8333C17.6618 15.8385 18.3333 15.1669 18.3333 14.3385V11.292C18.3333 10.4636 17.6618 9.79199 16.8333 9.79199H9C8.17157 9.79199 7.5 10.4636 7.5 11.292V14.3385C7.5 15.1669 8.17157 15.8385 9 15.8385H14.875V16.2087C14.875 16.6229 14.5392 16.9587 14.125 16.9587H5.875C5.46079 16.9587 5.125 16.6229 5.125 16.2087V8.25094H8.08389C9.32716 8.25094 10.3348 7.2426 10.3339 5.99933L10.3318 3.04199H14.125C14.5392 3.04199 14.875 3.37778 14.875 3.79199V9.78182H16.375V3.79199C16.375 2.54935 15.3676 1.54199 14.125 1.54199H10.2017C9.60469 1.54199 9.03218 1.77924 8.61019 2.2015L4.28351 6.53088C3.86186 6.9528 3.625 7.52488 3.625 8.12137V16.2087C3.625 17.4513 4.63236 18.4587 5.875 18.4587H14.125ZM8.83254 4.10099L6.18425 6.75094H8.08389C8.49831 6.75094 8.83419 6.41482 8.83389 6.0004L8.83254 4.10099ZM17.3365 11.7866C17.3365 11.8101 17.3298 11.8286 17.3164 11.842C17.3029 11.8555 17.2844 11.8622 17.2609 11.8622H15.7594C15.7426 11.8622 15.7342 11.8706 15.7342 11.8874V12.361C15.7342 12.3778 15.7426 12.3862 15.7594 12.3862H16.6915C16.7151 12.3862 16.7335 12.3929 16.747 12.4064C16.7604 12.4198 16.7671 12.4383 16.7671 12.4618V13.1168C16.7671 13.1404 16.7604 13.1588 16.747 13.1723C16.7335 13.1857 16.7151 13.1924 16.6915 13.1924H15.7594C15.7426 13.1924 15.7342 13.2008 15.7342 13.2176V14.5025C15.7342 14.526 15.7275 14.5445 15.714 14.5579C15.7006 14.5714 15.6821 14.5781 15.6586 14.5781H14.8625C14.839 14.5781 14.8205 14.5714 14.8071 14.5579C14.7936 14.5445 14.7869 14.526 14.7869 14.5025V11.1265C14.7869 11.103 14.7936 11.0845 14.8071 11.0711C14.8205 11.0577 14.839 11.0509 14.8625 11.0509H17.2609C17.2844 11.0509 17.3029 11.0577 17.3164 11.0711C17.3298 11.0845 17.3365 11.103 17.3365 11.1265V11.7866ZM11.6933 14.5579C11.7067 14.5714 11.7252 14.5781 11.7487 14.5781H13.0436C13.3157 14.5781 13.5559 14.531 13.7642 14.437C13.9758 14.3429 14.1387 14.2102 14.2529 14.0389C14.3672 13.8676 14.4243 13.6694 14.4243 13.4444V12.1847C14.4243 11.9596 14.3672 11.7614 14.2529 11.5901C14.1387 11.4188 13.9758 11.2861 13.7642 11.192C13.5559 11.098 13.3157 11.0509 13.0436 11.0509H11.7487C11.7252 11.0509 11.7067 11.0577 11.6933 11.0711C11.6798 11.0845 11.6731 11.103 11.6731 11.1265V14.5025C11.6731 14.526 11.6798 14.5445 11.6933 14.5579ZM12.6456 13.7668C12.6288 13.7668 12.6204 13.7584 12.6204 13.7416V11.8874C12.6204 11.8706 12.6288 11.8622 12.6456 11.8622H13.0739C13.1948 11.8622 13.2922 11.9075 13.3661 11.9982C13.44 12.0856 13.477 12.2015 13.477 12.3459V13.2831C13.4736 13.4276 13.435 13.5451 13.3611 13.6358C13.2872 13.7232 13.1931 13.7668 13.0789 13.7668H12.6456ZM10.188 11.0509C10.4265 11.0509 10.6365 11.0997 10.8179 11.1971C10.9992 11.2911 11.1387 11.4272 11.2361 11.6052C11.3368 11.7799 11.3872 11.9814 11.3872 12.2099C11.3872 12.4349 11.3352 12.6331 11.231 12.8044C11.1269 12.9758 10.9808 13.1084 10.7927 13.2025C10.6045 13.2966 10.3879 13.3436 10.1427 13.3436H9.60855C9.59175 13.3436 9.58335 13.352 9.58335 13.3688V14.5025C9.58335 14.526 9.57664 14.5445 9.5632 14.5579C9.54976 14.5714 9.53129 14.5781 9.50777 14.5781H8.71165C8.68814 14.5781 8.66966 14.5714 8.65622 14.5579C8.64279 14.5445 8.63607 14.526 8.63607 14.5025V11.1265C8.63607 11.103 8.64279 11.0845 8.65622 11.0711C8.66966 11.0577 8.68814 11.0509 8.71165 11.0509H10.188ZM10.0318 12.5878C10.1561 12.5878 10.2552 12.5559 10.3291 12.492C10.4064 12.4248 10.445 12.3375 10.445 12.23C10.445 12.1192 10.4064 12.0301 10.3291 11.963C10.2552 11.8958 10.1561 11.8622 10.0318 11.8622H9.60855C9.59175 11.8622 9.58335 11.8706 9.58335 11.8874V12.5626C9.58335 12.5794 9.59175 12.5878 9.60855 12.5878H10.0318Z" fill="#98A2B3"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 3.7 KiB |
3
public/images/icons/file-pdf.svg
Normal 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 fill-rule="evenodd" clip-rule="evenodd" d="M14.125 18.4587C15.3676 18.4587 16.375 17.4513 16.375 16.2087V15.8385H16.8333C17.6618 15.8385 18.3333 15.1669 18.3333 14.3385V11.292C18.3333 10.4636 17.6618 9.79199 16.8333 9.79199H9C8.17157 9.79199 7.5 10.4636 7.5 11.292V14.3385C7.5 15.1669 8.17157 15.8385 9 15.8385H14.875V16.2087C14.875 16.6229 14.5392 16.9587 14.125 16.9587H5.875C5.46079 16.9587 5.125 16.6229 5.125 16.2087V8.25094H8.08389C9.32716 8.25094 10.3348 7.2426 10.3339 5.99933L10.3318 3.04199H14.125C14.5392 3.04199 14.875 3.37778 14.875 3.79199V9.78182H16.375V3.79199C16.375 2.54935 15.3676 1.54199 14.125 1.54199H10.2017C9.60469 1.54199 9.03218 1.77924 8.61019 2.2015L4.28351 6.53088C3.86186 6.9528 3.625 7.52488 3.625 8.12137V16.2087C3.625 17.4513 4.63236 18.4587 5.875 18.4587H14.125ZM8.83254 4.10099L6.18425 6.75094H8.08389C8.49831 6.75094 8.83419 6.41482 8.83389 6.0004L8.83254 4.10099ZM17.3365 11.7866C17.3365 11.8101 17.3298 11.8286 17.3164 11.842C17.3029 11.8555 17.2844 11.8622 17.2609 11.8622H15.7594C15.7426 11.8622 15.7342 11.8706 15.7342 11.8874V12.361C15.7342 12.3778 15.7426 12.3862 15.7594 12.3862H16.6915C16.7151 12.3862 16.7335 12.3929 16.747 12.4064C16.7604 12.4198 16.7671 12.4383 16.7671 12.4618V13.1168C16.7671 13.1404 16.7604 13.1588 16.747 13.1723C16.7335 13.1857 16.7151 13.1924 16.6915 13.1924H15.7594C15.7426 13.1924 15.7342 13.2008 15.7342 13.2176V14.5025C15.7342 14.526 15.7275 14.5445 15.714 14.5579C15.7006 14.5714 15.6821 14.5781 15.6586 14.5781H14.8625C14.839 14.5781 14.8205 14.5714 14.8071 14.5579C14.7936 14.5445 14.7869 14.526 14.7869 14.5025V11.1265C14.7869 11.103 14.7936 11.0845 14.8071 11.0711C14.8205 11.0577 14.839 11.0509 14.8625 11.0509H17.2609C17.2844 11.0509 17.3029 11.0577 17.3164 11.0711C17.3298 11.0845 17.3365 11.103 17.3365 11.1265V11.7866ZM11.6933 14.5579C11.7067 14.5714 11.7252 14.5781 11.7487 14.5781H13.0436C13.3157 14.5781 13.5559 14.531 13.7642 14.437C13.9758 14.3429 14.1387 14.2102 14.2529 14.0389C14.3672 13.8676 14.4243 13.6694 14.4243 13.4444V12.1847C14.4243 11.9596 14.3672 11.7614 14.2529 11.5901C14.1387 11.4188 13.9758 11.2861 13.7642 11.192C13.5559 11.098 13.3157 11.0509 13.0436 11.0509H11.7487C11.7252 11.0509 11.7067 11.0577 11.6933 11.0711C11.6798 11.0845 11.6731 11.103 11.6731 11.1265V14.5025C11.6731 14.526 11.6798 14.5445 11.6933 14.5579ZM12.6456 13.7668C12.6288 13.7668 12.6204 13.7584 12.6204 13.7416V11.8874C12.6204 11.8706 12.6288 11.8622 12.6456 11.8622H13.0739C13.1948 11.8622 13.2922 11.9075 13.3661 11.9982C13.44 12.0856 13.477 12.2015 13.477 12.3459V13.2831C13.4736 13.4276 13.435 13.5451 13.3611 13.6358C13.2872 13.7232 13.1931 13.7668 13.0789 13.7668H12.6456ZM10.188 11.0509C10.4265 11.0509 10.6365 11.0997 10.8179 11.1971C10.9992 11.2911 11.1387 11.4272 11.2361 11.6052C11.3368 11.7799 11.3872 11.9814 11.3872 12.2099C11.3872 12.4349 11.3352 12.6331 11.231 12.8044C11.1269 12.9758 10.9808 13.1084 10.7927 13.2025C10.6045 13.2966 10.3879 13.3436 10.1427 13.3436H9.60855C9.59175 13.3436 9.58335 13.352 9.58335 13.3688V14.5025C9.58335 14.526 9.57664 14.5445 9.5632 14.5579C9.54976 14.5714 9.53129 14.5781 9.50777 14.5781H8.71165C8.68814 14.5781 8.66966 14.5714 8.65622 14.5579C8.64279 14.5445 8.63607 14.526 8.63607 14.5025V11.1265C8.63607 11.103 8.64279 11.0845 8.65622 11.0711C8.66966 11.0577 8.68814 11.0509 8.71165 11.0509H10.188ZM10.0318 12.5878C10.1561 12.5878 10.2552 12.5559 10.3291 12.492C10.4064 12.4248 10.445 12.3375 10.445 12.23C10.445 12.1192 10.4064 12.0301 10.3291 11.963C10.2552 11.8958 10.1561 11.8622 10.0318 11.8622H9.60855C9.59175 11.8622 9.58335 11.8706 9.58335 11.8874V12.5626C9.58335 12.5794 9.59175 12.5878 9.60855 12.5878H10.0318Z" fill="#344054"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 3.7 KiB |
6
public/images/icons/file-video-dark.svg
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M15.7493 13.6461L17.6649 12.3961V15.3128L15.7493 14.0628V13.6461Z" fill="#98A2B3"/>
|
||||||
|
<path d="M10.0432 12.3711C10.0432 11.6807 10.6029 11.1211 11.2932 11.1211H14.4993C15.1896 11.1211 15.7493 11.6807 15.7493 12.3711V15.3378C15.7493 16.0282 15.1896 16.5878 14.4993 16.5878H11.2932C10.6029 16.5878 10.0432 16.0282 10.0432 15.3378V12.3711Z" stroke="#98A2B3" stroke-width="1.5" stroke-linejoin="round"/>
|
||||||
|
<path d="M15.7493 13.6461L17.6649 12.3961V15.3128L15.7493 14.0628V13.6461Z" stroke="#98A2B3" stroke-width="1.5" stroke-linejoin="round"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.125 18.4587V16.9587H5.875C5.46079 16.9587 5.125 16.6229 5.125 16.2087V8.25094H8.08389C8.09762 8.25094 8.11133 8.25081 8.125 8.25057V8.12533H8.82702C9.70502 7.81822 10.3346 6.98219 10.3339 5.99933L10.3318 3.04199H14.125C14.5392 3.04199 14.875 3.37778 14.875 3.79199V8.12533H16.375V3.79199C16.375 2.54935 15.3676 1.54199 14.125 1.54199H10.2017C9.60469 1.54199 9.03218 1.77924 8.61019 2.2015L4.28351 6.53088C3.86186 6.9528 3.625 7.52488 3.625 8.12137V16.2087C3.625 17.4513 4.63236 18.4587 5.875 18.4587H8.125ZM6.18425 6.75094L8.83254 4.10099L8.83389 6.0004C8.83419 6.41482 8.49831 6.75094 8.08389 6.75094H6.18425Z" fill="#98A2B3"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.3 KiB |
6
public/images/icons/file-video.svg
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M15.7493 13.6461L17.6649 12.3961V15.3128L15.7493 14.0628V13.6461Z" fill="#344054"/>
|
||||||
|
<path d="M10.0432 12.3711C10.0432 11.6807 10.6029 11.1211 11.2932 11.1211H14.4993C15.1896 11.1211 15.7493 11.6807 15.7493 12.3711V15.3378C15.7493 16.0282 15.1896 16.5878 14.4993 16.5878H11.2932C10.6029 16.5878 10.0432 16.0282 10.0432 15.3378V12.3711Z" stroke="#344054" stroke-width="1.5" stroke-linejoin="round"/>
|
||||||
|
<path d="M15.7493 13.6461L17.6649 12.3961V15.3128L15.7493 14.0628V13.6461Z" stroke="#344054" stroke-width="1.5" stroke-linejoin="round"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.125 18.4587V16.9587H5.875C5.46079 16.9587 5.125 16.6229 5.125 16.2087V8.25094H8.08389C8.09762 8.25094 8.11133 8.25081 8.125 8.25057V8.12533H8.82702C9.70502 7.81822 10.3346 6.98219 10.3339 5.99933L10.3318 3.04199H14.125C14.5392 3.04199 14.875 3.37778 14.875 3.79199V8.12533H16.375V3.79199C16.375 2.54935 15.3676 1.54199 14.125 1.54199H10.2017C9.60469 1.54199 9.03218 1.77924 8.61019 2.2015L4.28351 6.53088C3.86186 6.9528 3.625 7.52488 3.625 8.12137V16.2087C3.625 17.4513 4.63236 18.4587 5.875 18.4587H8.125ZM6.18425 6.75094L8.83254 4.10099L8.83389 6.0004C8.83419 6.41482 8.49831 6.75094 8.08389 6.75094H6.18425Z" fill="#344054"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.3 KiB |
BIN
public/images/logo/auth-logo.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
41
public/images/logo/auth-logo.svg
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<!-- Creator: CorelDRAW (Evaluation Version) -->
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="231px" height="48px" version="1.1" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
|
||||||
|
viewBox="0 0 117.53 24.42"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:xodm="http://www.corel.com/coreldraw/odm/2003">
|
||||||
|
<defs>
|
||||||
|
<style type="text/css">
|
||||||
|
<![CDATA[
|
||||||
|
.fil0 {fill:none}
|
||||||
|
.fil2 {fill:#FEFEFE;fill-rule:nonzero}
|
||||||
|
.fil3 {fill:white;fill-rule:nonzero}
|
||||||
|
.fil1 {fill:url(#id0)}
|
||||||
|
]]>
|
||||||
|
</style>
|
||||||
|
<linearGradient id="id0" gradientUnits="userSpaceOnUse" x1="-3.57" y1="-13.11" x2="32.97" y2="45.61">
|
||||||
|
<stop offset="0" style="stop-opacity:1; stop-color:#364A94"/>
|
||||||
|
<stop offset="1" style="stop-opacity:1; stop-color:#7D7AB8"/>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<g id="Layer_x0020_1">
|
||||||
|
<metadata id="CorelCorpID_0Corel-Layer"/>
|
||||||
|
<g id="_671452448">
|
||||||
|
<rect class="fil0" width="117.53" height="24.42"/>
|
||||||
|
<g>
|
||||||
|
<path class="fil1" d="M19.42 23.85l-14.37 0c-2.46,0 -4.52,-2.06 -4.52,-4.52l0 -14.37c0,-2.47 2.06,-4.52 4.52,-4.52l14.37 0c2.47,0 4.52,2.05 4.52,4.52l0 14.37c0,2.46 -2.05,4.52 -4.52,4.52z"/>
|
||||||
|
<path class="fil2" d="M12.85 14.4l-2.05 0 -3.69 -4.1 3.69 -4.11 2.05 0 -3.69 4.11 3.69 4.1zm-2.46 0l-1.64 0 -3.7 -4.1 3.7 -4.11 1.23 0 -3.29 4.11c1.24,1.23 2.47,2.87 3.7,4.1l0 0z"/>
|
||||||
|
<path class="fil2" d="M12.03 9.89l2.06 0 3.69 4.1 -3.69 4.52 -2.06 0 4.11 -4.11 -4.11 -4.51zm2.88 0l1.23 0 4.1 4.51 -4.1 4.11 -1.23 0 3.69 -4.52c-1.23,-1.23 -2.46,-2.46 -3.69,-4.1z"/>
|
||||||
|
</g>
|
||||||
|
<path class="fil3" d="M34.94 6.54c1.3,0 2.44,0.27 3.41,0.77 0.96,0.51 1.71,1.25 2.24,2.18 0.54,0.93 0.81,2 0.81,3.21 0,1.21 -0.27,2.28 -0.81,3.21 -0.53,0.93 -1.28,1.66 -2.24,2.17 -0.99,0.51 -2.13,0.77 -3.41,0.77l-4.61 0 0 -12.31 4.61 0zm-0.19 9.72c1.14,0 2.02,-0.32 2.65,-0.93 0.63,-0.62 0.95,-1.49 0.95,-2.63 0,-1.14 -0.32,-2.02 -0.95,-2.65 -0.63,-0.63 -1.51,-0.95 -2.65,-0.95l-1.42 0 0 7.16 1.42 0z"/>
|
||||||
|
<polygon id="_1" class="fil3" points="51.91,9.07 45.78,23.5 42.55,23.5 44.8,18.52 40.82,9.07 44.16,9.07 46.43,15.19 48.67,9.07 "/>
|
||||||
|
<path id="_2" class="fil3" d="M56.45 6.54c1.3,0 2.44,0.27 3.41,0.77 0.96,0.51 1.71,1.25 2.24,2.18 0.54,0.93 0.81,2 0.81,3.21 0,1.21 -0.27,2.28 -0.81,3.21 -0.53,0.93 -1.28,1.66 -2.24,2.17 -0.99,0.51 -2.13,0.77 -3.41,0.77l-4.61 0 0 -12.31 4.61 0zm-0.19 9.72c1.14,0 2.02,-0.32 2.65,-0.93 0.63,-0.62 0.95,-1.49 0.95,-2.63 0,-1.14 -0.32,-2.02 -0.95,-2.65 -0.63,-0.63 -1.51,-0.95 -2.65,-0.95l-1.42 0 0 7.16 1.42 0z"/>
|
||||||
|
<path id="_3" class="fil3" d="M72.65 13.8c0,0.28 -0.01,0.58 -0.05,0.88l-6.78 0c0.05,0.61 0.24,1.07 0.57,1.4 0.36,0.32 0.78,0.48 1.28,0.48 0.76,0 1.27,-0.32 1.56,-0.95l3.2 0c-0.16,0.65 -0.46,1.23 -0.9,1.73 -0.42,0.51 -0.94,0.92 -1.59,1.21 -0.65,0.3 -1.37,0.44 -2.16,0.44 -0.97,0 -1.81,-0.21 -2.56,-0.61 -0.75,-0.4 -1.33,-1 -1.75,-1.76 -0.42,-0.75 -0.64,-1.64 -0.64,-2.66 0,-1.02 0.22,-1.91 0.62,-2.67 0.42,-0.75 1,-1.35 1.75,-1.75 0.76,-0.4 1.61,-0.61 2.58,-0.61 0.95,0 1.79,0.19 2.52,0.59 0.74,0.41 1.32,0.97 1.72,1.7 0.42,0.74 0.63,1.6 0.63,2.58zm-3.06 -0.79c0,-0.51 -0.18,-0.93 -0.53,-1.22 -0.35,-0.3 -0.79,-0.46 -1.32,-0.46 -0.5,0 -0.93,0.14 -1.28,0.44 -0.33,0.3 -0.54,0.7 -0.63,1.24l3.76 0z"/>
|
||||||
|
<polygon id="_4" class="fil3" points="77.47,16.05 79.6,9.07 82.79,9.07 79.32,18.85 75.62,18.85 72.14,9.07 75.35,9.07 "/>
|
||||||
|
<path id="_5" class="fil3" d="M94.27 16.68l-4.59 0 -0.74 2.17 -3.14 0 4.46 -12.31 3.47 0 4.45 12.31 -3.17 0 -0.74 -2.17zm-0.77 -2.32l-1.53 -4.5 -1.5 4.5 3.03 0z"/>
|
||||||
|
<path id="_6" class="fil3" d="M107.75 10.51c0,0.71 -0.15,1.36 -0.49,1.94 -0.33,0.6 -0.82,1.07 -1.51,1.44 -0.68,0.37 -1.52,0.54 -2.52,0.54l-1.86 0 0 4.42 -3 0 0 -12.31 4.86 0c0.98,0 1.8,0.18 2.49,0.51 0.68,0.33 1.19,0.81 1.52,1.4 0.34,0.6 0.51,1.28 0.51,2.06zm-4.75 1.54c0.58,0 1,-0.14 1.28,-0.4 0.28,-0.27 0.42,-0.65 0.42,-1.14 0,-0.5 -0.14,-0.88 -0.42,-1.14 -0.28,-0.27 -0.7,-0.41 -1.28,-0.41l-1.63 0 0 3.09 1.63 0z"/>
|
||||||
|
<path id="_7" class="fil3" d="M117.53 10.51c0,0.71 -0.15,1.36 -0.49,1.94 -0.33,0.6 -0.82,1.07 -1.5,1.44 -0.69,0.37 -1.53,0.54 -2.53,0.54l-1.86 0 0 4.42 -3 0 0 -12.31 4.86 0c0.98,0 1.81,0.18 2.49,0.51 0.69,0.33 1.19,0.81 1.53,1.4 0.33,0.6 0.5,1.28 0.5,2.06zm-4.75 1.54c0.58,0 1,-0.14 1.28,-0.4 0.28,-0.27 0.42,-0.65 0.42,-1.14 0,-0.5 -0.14,-0.88 -0.42,-1.14 -0.28,-0.27 -0.7,-0.41 -1.28,-0.41l-1.63 0 0 3.09 1.63 0z"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 4.5 KiB |
BIN
public/images/logo/logo-dark.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
41
public/images/logo/logo-dark.svg
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<!-- Creator: CorelDRAW (Evaluation Version) -->
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="154px" height="32px" version="1.1" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
|
||||||
|
viewBox="0 0 52.24 10.85"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:xodm="http://www.corel.com/coreldraw/odm/2003">
|
||||||
|
<defs>
|
||||||
|
<style type="text/css">
|
||||||
|
<![CDATA[
|
||||||
|
.fil0 {fill:none}
|
||||||
|
.fil2 {fill:#FEFEFE;fill-rule:nonzero}
|
||||||
|
.fil3 {fill:white;fill-rule:nonzero}
|
||||||
|
.fil1 {fill:url(#id0)}
|
||||||
|
]]>
|
||||||
|
</style>
|
||||||
|
<linearGradient id="id0" gradientUnits="userSpaceOnUse" x1="-1.9" y1="-6.28" x2="15.04" y2="20.95">
|
||||||
|
<stop offset="0" style="stop-opacity:1; stop-color:#364A94"/>
|
||||||
|
<stop offset="1" style="stop-opacity:1; stop-color:#7D7AB8"/>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<g id="Layer_x0020_1">
|
||||||
|
<metadata id="CorelCorpID_0Corel-Layer"/>
|
||||||
|
<g id="_755716664">
|
||||||
|
<rect class="fil0" width="52.24" height="10.85"/>
|
||||||
|
<g>
|
||||||
|
<path class="fil1" d="M8.76 10.85l-6.67 0c-1.14,0 -2.09,-0.95 -2.09,-2.09l0 -6.67c0,-1.14 0.95,-2.09 2.09,-2.09l6.67 0c1.14,0 2.09,0.95 2.09,2.09l0 6.67c0,1.14 -0.95,2.09 -2.09,2.09z"/>
|
||||||
|
<path class="fil2" d="M5.71 6.47l-0.95 0 -1.71 -1.9 1.71 -1.9 0.95 0 -1.71 1.9 1.71 1.9zm-1.14 0l-0.76 0 -1.72 -1.9 1.72 -1.9 0.57 0 -1.52 1.9c0.57,0.57 1.14,1.33 1.71,1.9l0 0z"/>
|
||||||
|
<path class="fil2" d="M5.33 4.38l0.95 0 1.72 1.9 -1.72 2.1 -0.95 0 1.91 -1.91 -1.91 -2.09zm1.33 0l0.58 0 1.9 2.09 -1.9 1.91 -0.58 0 1.72 -2.1c-0.57,-0.57 -1.14,-1.14 -1.72,-1.9z"/>
|
||||||
|
</g>
|
||||||
|
<path class="fil3" d="M17 3.14c0.55,0 1.04,0.11 1.45,0.33 0.41,0.22 0.73,0.53 0.96,0.93 0.23,0.4 0.34,0.85 0.34,1.37 0,0.51 -0.11,0.97 -0.34,1.37 -0.23,0.39 -0.55,0.71 -0.96,0.92 -0.42,0.22 -0.9,0.33 -1.45,0.33l-1.97 0 0 -5.25 1.97 0zm-0.08 4.15c0.48,0 0.86,-0.14 1.13,-0.4 0.27,-0.26 0.4,-0.64 0.4,-1.12 0,-0.49 -0.13,-0.86 -0.4,-1.13 -0.27,-0.27 -0.65,-0.41 -1.13,-0.41l-0.61 0 0 3.06 0.61 0z"/>
|
||||||
|
<polygon id="_1" class="fil3" points="24.24,4.22 21.62,10.38 20.25,10.38 21.2,8.25 19.5,4.22 20.93,4.22 21.9,6.83 22.86,4.22 "/>
|
||||||
|
<path id="_2" class="fil3" d="M26.18 3.14c0.55,0 1.04,0.11 1.45,0.33 0.41,0.22 0.73,0.53 0.96,0.93 0.23,0.4 0.34,0.85 0.34,1.37 0,0.51 -0.11,0.97 -0.34,1.37 -0.23,0.39 -0.55,0.71 -0.96,0.92 -0.42,0.22 -0.91,0.33 -1.45,0.33l-1.97 0 0 -5.25 1.97 0zm-0.08 4.15c0.48,0 0.86,-0.14 1.12,-0.4 0.27,-0.26 0.41,-0.64 0.41,-1.12 0,-0.49 -0.14,-0.86 -0.41,-1.13 -0.26,-0.27 -0.64,-0.41 -1.12,-0.41l-0.61 0 0 3.06 0.61 0z"/>
|
||||||
|
<path id="_3" class="fil3" d="M33.09 6.24c0,0.12 -0.01,0.25 -0.02,0.37l-2.9 0c0.02,0.26 0.11,0.46 0.25,0.6 0.15,0.14 0.33,0.2 0.54,0.2 0.33,0 0.54,-0.13 0.67,-0.4l1.36 0c-0.07,0.28 -0.19,0.52 -0.38,0.74 -0.18,0.22 -0.4,0.39 -0.68,0.52 -0.28,0.12 -0.58,0.18 -0.92,0.18 -0.41,0 -0.77,-0.09 -1.09,-0.26 -0.32,-0.17 -0.57,-0.42 -0.75,-0.75 -0.18,-0.32 -0.27,-0.7 -0.27,-1.13 0,-0.44 0.09,-0.82 0.26,-1.14 0.18,-0.32 0.43,-0.58 0.75,-0.75 0.32,-0.17 0.69,-0.26 1.1,-0.26 0.4,0 0.76,0.08 1.08,0.25 0.31,0.18 0.56,0.42 0.73,0.73 0.18,0.31 0.27,0.68 0.27,1.1zm-1.31 -0.34c0,-0.21 -0.07,-0.39 -0.22,-0.52 -0.15,-0.13 -0.34,-0.2 -0.57,-0.2 -0.21,0 -0.39,0.06 -0.54,0.19 -0.14,0.13 -0.23,0.3 -0.27,0.53l1.6 0z"/>
|
||||||
|
<polygon id="_4" class="fil3" points="35.15,7.2 36.05,4.22 37.41,4.22 35.93,8.39 34.35,8.39 32.87,4.22 34.24,4.22 "/>
|
||||||
|
<path id="_5" class="fil3" d="M42.31 7.47l-1.96 0 -0.31 0.92 -1.34 0 1.9 -5.25 1.48 0 1.9 5.25 -1.35 0 -0.32 -0.92zm-0.33 -0.99l-0.65 -1.92 -0.64 1.92 1.29 0z"/>
|
||||||
|
<path id="_6" class="fil3" d="M48.06 4.83c0,0.31 -0.06,0.59 -0.21,0.83 -0.14,0.26 -0.35,0.46 -0.64,0.62 -0.29,0.15 -0.65,0.23 -1.08,0.23l-0.79 0 0 1.88 -1.28 0 0 -5.25 2.07 0c0.42,0 0.77,0.08 1.07,0.22 0.29,0.14 0.51,0.34 0.65,0.6 0.14,0.25 0.21,0.54 0.21,0.87zm-2.02 0.66c0.24,0 0.42,-0.06 0.54,-0.17 0.12,-0.11 0.18,-0.28 0.18,-0.49 0,-0.21 -0.06,-0.37 -0.18,-0.48 -0.12,-0.12 -0.3,-0.18 -0.54,-0.18l-0.7 0 0 1.32 0.7 0z"/>
|
||||||
|
<path id="_7" class="fil3" d="M52.24 4.83c0,0.31 -0.07,0.59 -0.21,0.83 -0.14,0.26 -0.35,0.46 -0.64,0.62 -0.3,0.15 -0.66,0.23 -1.08,0.23l-0.8 0 0 1.88 -1.27 0 0 -5.25 2.07 0c0.42,0 0.77,0.08 1.06,0.22 0.29,0.14 0.51,0.34 0.65,0.6 0.14,0.25 0.22,0.54 0.22,0.87zm-2.03 0.66c0.25,0 0.43,-0.06 0.55,-0.17 0.12,-0.11 0.18,-0.28 0.18,-0.49 0,-0.21 -0.06,-0.37 -0.18,-0.48 -0.12,-0.12 -0.3,-0.18 -0.55,-0.18l-0.7 0 0 1.32 0.7 0z"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 4.4 KiB |
BIN
public/images/logo/logo-icon.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
32
public/images/logo/logo-icon.svg
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<!-- Creator: CorelDRAW (Evaluation Version) -->
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="32px" height="32px" version="1.1" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
|
||||||
|
viewBox="0 0 2.26 2.26"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:xodm="http://www.corel.com/coreldraw/odm/2003">
|
||||||
|
<defs>
|
||||||
|
<style type="text/css">
|
||||||
|
<![CDATA[
|
||||||
|
.fil0 {fill:none}
|
||||||
|
.fil2 {fill:#FEFEFE;fill-rule:nonzero}
|
||||||
|
.fil1 {fill:url(#id0)}
|
||||||
|
]]>
|
||||||
|
</style>
|
||||||
|
<linearGradient id="id0" gradientUnits="userSpaceOnUse" x1="-0.4" y1="-1.31" x2="3.13" y2="4.35">
|
||||||
|
<stop offset="0" style="stop-opacity:1; stop-color:#364A94"/>
|
||||||
|
<stop offset="1" style="stop-opacity:1; stop-color:#7D7AB8"/>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<g id="Layer_x0020_1">
|
||||||
|
<metadata id="CorelCorpID_0Corel-Layer"/>
|
||||||
|
<g id="_683990024">
|
||||||
|
<rect class="fil0" width="2.26" height="2.26"/>
|
||||||
|
<g>
|
||||||
|
<path class="fil1" d="M1.82 2.26l-1.38 0c-0.24,0 -0.44,-0.2 -0.44,-0.44l0 -1.38c0,-0.24 0.2,-0.44 0.44,-0.44l1.38 0c0.24,0 0.44,0.2 0.44,0.44l0 1.38c0,0.24 -0.2,0.44 -0.44,0.44z"/>
|
||||||
|
<path class="fil2" d="M1.19 1.35l-0.2 0 -0.36 -0.4 0.36 -0.4 0.2 0 -0.36 0.4 0.36 0.4zm-0.24 0l-0.16 0 -0.35 -0.4 0.35 -0.4 0.12 0 -0.32 0.4c0.12,0.12 0.24,0.28 0.36,0.4l0 0z"/>
|
||||||
|
<path class="fil2" d="M1.11 0.91l0.2 0 0.35 0.4 -0.35 0.43 -0.2 0 0.39 -0.39 -0.39 -0.44zm0.27 0l0.12 0 0.4 0.44 -0.4 0.39 -0.12 0 0.36 -0.43c-0.12,-0.12 -0.24,-0.24 -0.36,-0.4z"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.7 KiB |
BIN
public/images/logo/logo.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
41
public/images/logo/logo.svg
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<!-- Creator: CorelDRAW (Evaluation Version) -->
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="154px" height="32px" version="1.1" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
|
||||||
|
viewBox="0 0 52.24 10.85"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:xodm="http://www.corel.com/coreldraw/odm/2003">
|
||||||
|
<defs>
|
||||||
|
<style type="text/css">
|
||||||
|
<![CDATA[
|
||||||
|
.fil0 {fill:none}
|
||||||
|
.fil3 {fill:black;fill-rule:nonzero}
|
||||||
|
.fil2 {fill:#FEFEFE;fill-rule:nonzero}
|
||||||
|
.fil1 {fill:url(#id0)}
|
||||||
|
]]>
|
||||||
|
</style>
|
||||||
|
<linearGradient id="id0" gradientUnits="userSpaceOnUse" x1="-1.9" y1="-6.28" x2="15.04" y2="20.95">
|
||||||
|
<stop offset="0" style="stop-opacity:1; stop-color:#364A94"/>
|
||||||
|
<stop offset="1" style="stop-opacity:1; stop-color:#7D7AB8"/>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<g id="Layer_x0020_1">
|
||||||
|
<metadata id="CorelCorpID_0Corel-Layer"/>
|
||||||
|
<g id="_588111768">
|
||||||
|
<rect class="fil0" width="52.24" height="10.85"/>
|
||||||
|
<g>
|
||||||
|
<path class="fil1" d="M8.76 10.85l-6.67 0c-1.14,0 -2.09,-0.95 -2.09,-2.09l0 -6.67c0,-1.14 0.95,-2.09 2.09,-2.09l6.67 0c1.14,0 2.09,0.95 2.09,2.09l0 6.67c0,1.14 -0.95,2.09 -2.09,2.09z"/>
|
||||||
|
<path class="fil2" d="M5.71 6.47l-0.95 0 -1.71 -1.9 1.71 -1.9 0.95 0 -1.71 1.9 1.71 1.9zm-1.14 0l-0.76 0 -1.72 -1.9 1.72 -1.9 0.57 0 -1.52 1.9c0.57,0.57 1.14,1.33 1.71,1.9l0 0z"/>
|
||||||
|
<path class="fil2" d="M5.33 4.38l0.95 0 1.72 1.9 -1.72 2.1 -0.95 0 1.91 -1.91 -1.91 -2.09zm1.33 0l0.58 0 1.9 2.09 -1.9 1.91 -0.58 0 1.72 -2.1c-0.57,-0.57 -1.14,-1.14 -1.72,-1.9z"/>
|
||||||
|
</g>
|
||||||
|
<path class="fil3" d="M17 2.77c0.55,0 1.04,0.11 1.45,0.33 0.41,0.22 0.73,0.53 0.96,0.93 0.23,0.39 0.34,0.85 0.34,1.37 0,0.51 -0.11,0.97 -0.34,1.37 -0.23,0.39 -0.55,0.71 -0.96,0.92 -0.42,0.22 -0.9,0.33 -1.45,0.33l-1.97 0 0 -5.25 1.97 0zm-0.08 4.15c0.48,0 0.86,-0.14 1.13,-0.4 0.27,-0.26 0.4,-0.64 0.4,-1.12 0,-0.49 -0.13,-0.86 -0.4,-1.13 -0.27,-0.27 -0.65,-0.41 -1.13,-0.41l-0.61 0 0 3.06 0.61 0z"/>
|
||||||
|
<polygon id="_1" class="fil3" points="24.24,3.85 21.62,10.01 20.25,10.01 21.2,7.88 19.5,3.85 20.93,3.85 21.9,6.46 22.86,3.85 "/>
|
||||||
|
<path id="_2" class="fil3" d="M26.18 2.77c0.55,0 1.04,0.11 1.45,0.33 0.41,0.22 0.73,0.53 0.96,0.93 0.23,0.39 0.34,0.85 0.34,1.37 0,0.51 -0.11,0.97 -0.34,1.37 -0.23,0.39 -0.55,0.71 -0.96,0.92 -0.42,0.22 -0.91,0.33 -1.45,0.33l-1.97 0 0 -5.25 1.97 0zm-0.08 4.15c0.48,0 0.86,-0.14 1.12,-0.4 0.27,-0.26 0.41,-0.64 0.41,-1.12 0,-0.49 -0.14,-0.86 -0.41,-1.13 -0.26,-0.27 -0.64,-0.41 -1.12,-0.41l-0.61 0 0 3.06 0.61 0z"/>
|
||||||
|
<path id="_3" class="fil3" d="M33.09 5.87c0,0.12 -0.01,0.24 -0.02,0.37l-2.9 0c0.02,0.26 0.11,0.46 0.25,0.6 0.15,0.14 0.33,0.2 0.54,0.2 0.33,0 0.54,-0.13 0.67,-0.4l1.36 0c-0.07,0.28 -0.19,0.52 -0.38,0.74 -0.18,0.22 -0.4,0.39 -0.68,0.52 -0.28,0.12 -0.58,0.18 -0.92,0.18 -0.41,0 -0.77,-0.09 -1.09,-0.26 -0.32,-0.17 -0.57,-0.43 -0.75,-0.75 -0.18,-0.32 -0.27,-0.7 -0.27,-1.13 0,-0.44 0.09,-0.82 0.26,-1.14 0.18,-0.32 0.43,-0.58 0.75,-0.75 0.32,-0.17 0.69,-0.26 1.1,-0.26 0.4,0 0.76,0.08 1.08,0.25 0.31,0.17 0.56,0.41 0.73,0.73 0.18,0.31 0.27,0.68 0.27,1.1zm-1.31 -0.34c0,-0.22 -0.07,-0.4 -0.22,-0.52 -0.15,-0.13 -0.34,-0.2 -0.57,-0.2 -0.21,0 -0.39,0.06 -0.54,0.19 -0.14,0.13 -0.23,0.3 -0.27,0.53l1.6 0z"/>
|
||||||
|
<polygon id="_4" class="fil3" points="35.15,6.83 36.05,3.85 37.41,3.85 35.93,8.02 34.35,8.02 32.87,3.85 34.24,3.85 "/>
|
||||||
|
<path id="_5" class="fil3" d="M42.31 7.09l-1.96 0 -0.31 0.93 -1.34 0 1.9 -5.25 1.48 0 1.9 5.25 -1.35 0 -0.32 -0.93zm-0.33 -0.98l-0.65 -1.93 -0.64 1.93 1.29 0z"/>
|
||||||
|
<path id="_6" class="fil3" d="M48.06 4.46c0,0.31 -0.06,0.59 -0.21,0.83 -0.14,0.26 -0.35,0.46 -0.64,0.62 -0.29,0.15 -0.65,0.23 -1.08,0.23l-0.79 0 0 1.88 -1.28 0 0 -5.25 2.07 0c0.42,0 0.77,0.08 1.07,0.22 0.29,0.14 0.51,0.34 0.65,0.6 0.14,0.25 0.21,0.54 0.21,0.87zm-2.02 0.66c0.24,0 0.42,-0.06 0.54,-0.17 0.12,-0.11 0.18,-0.28 0.18,-0.49 0,-0.21 -0.06,-0.37 -0.18,-0.48 -0.12,-0.12 -0.3,-0.18 -0.54,-0.18l-0.7 0 0 1.32 0.7 0z"/>
|
||||||
|
<path id="_7" class="fil3" d="M52.24 4.46c0,0.31 -0.07,0.59 -0.21,0.83 -0.14,0.26 -0.35,0.46 -0.64,0.62 -0.3,0.15 -0.66,0.23 -1.08,0.23l-0.8 0 0 1.88 -1.27 0 0 -5.25 2.07 0c0.42,0 0.77,0.08 1.06,0.22 0.29,0.14 0.51,0.34 0.65,0.6 0.14,0.25 0.22,0.54 0.22,0.87zm-2.03 0.66c0.25,0 0.43,-0.06 0.55,-0.17 0.12,-0.11 0.18,-0.28 0.18,-0.49 0,-0.21 -0.06,-0.37 -0.18,-0.48 -0.12,-0.12 -0.3,-0.18 -0.55,-0.18l-0.7 0 0 1.32 0.7 0z"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 4.5 KiB |
BIN
public/images/product/product-01.jpg
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
public/images/product/product-02.jpg
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
public/images/product/product-03.jpg
Normal file
|
After Width: | Height: | Size: 6.2 KiB |
BIN
public/images/product/product-04.jpg
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
public/images/product/product-05.jpg
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
71
public/images/shape/grid-01.svg
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
<svg width="450" height="254" viewBox="0 0 450 254" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M0.50555 45.1131L450 45.1132L450 44.6073L0.50555 44.6072L0.50555 45.1131Z" fill="url(#paint0_linear_3005_4084)" fill-opacity="0.3"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M205.546 253.529L205.546 -2.13709e-05L205.04 -2.1392e-05L205.04 253.529L205.546 253.529Z" fill="url(#paint1_linear_3005_4084)" fill-opacity="0.3"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M0.505546 97.2164L450 97.2165L450 96.7106L0.505546 96.7106L0.505546 97.2164Z" fill="url(#paint2_linear_3005_4084)" fill-opacity="0.3"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M256.806 253.529L256.806 -1.68895e-05L256.3 -1.69106e-05L256.3 253.529L256.806 253.529Z" fill="url(#paint3_linear_3005_4084)" fill-opacity="0.3"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M0.505837 253.529L0.505859 -3.9296e-05L0 -3.93171e-05L-2.21642e-05 253.529L0.505837 253.529Z" fill="url(#paint4_linear_3005_4084)" fill-opacity="0.3"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M0.505541 149.321L450 149.321L450 148.815L0.505541 148.815L0.505541 149.321Z" fill="url(#paint5_linear_3005_4084)" fill-opacity="0.3"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M308.066 253.529L308.066 -1.24083e-05L307.56 -1.24294e-05L307.56 253.529L308.066 253.529Z" fill="url(#paint6_linear_3005_4084)" fill-opacity="0.3"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M51.7662 253.529L51.7662 -3.48147e-05L51.2603 -3.48358e-05L51.2603 253.529L51.7662 253.529Z" fill="url(#paint7_linear_3005_4084)" fill-opacity="0.3"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M0.505537 201.424L450 201.424L450 200.918L0.505537 200.918L0.505537 201.424Z" fill="url(#paint8_linear_3005_4084)" fill-opacity="0.3"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M359.326 253.529L359.326 -7.92695e-06L358.82 -7.94806e-06L358.82 253.529L359.326 253.529Z" fill="url(#paint9_linear_3005_4084)" fill-opacity="0.3"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M103.026 253.529L103.026 -3.03334e-05L102.52 -3.03545e-05L102.52 253.529L103.026 253.529Z" fill="url(#paint10_linear_3005_4084)" fill-opacity="0.3"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M410.586 253.529L410.586 -3.44569e-06L410.08 -3.4668e-06L410.08 253.529L410.586 253.529Z" fill="url(#paint11_linear_3005_4084)" fill-opacity="0.3"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M154.286 253.529L154.286 -2.58521e-05L153.78 -2.58732e-05L153.78 253.529L154.286 253.529Z" fill="url(#paint12_linear_3005_4084)" fill-opacity="0.3"/>
|
||||||
|
<rect width="50.7536" height="51.5982" transform="matrix(-1 -8.74228e-08 -8.74228e-08 1 358.821 45.1138)" fill="#B2B2B2" fill-opacity="0.08"/>
|
||||||
|
<rect width="50.756" height="51.5985" transform="matrix(-1 -8.74228e-08 -8.74228e-08 1 307.559 97.2163)" fill="#B2B2B2" fill-opacity="0.08"/>
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="paint0_linear_3005_4084" x1="277.872" y1="-9.94587e-06" x2="194.87" y2="235.867" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#B2B2B2"/>
|
||||||
|
<stop offset="1" stop-color="#B2B2B2" stop-opacity="0"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="paint1_linear_3005_4084" x1="277.872" y1="-9.94587e-06" x2="194.87" y2="235.867" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#B2B2B2"/>
|
||||||
|
<stop offset="1" stop-color="#B2B2B2" stop-opacity="0"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="paint2_linear_3005_4084" x1="277.872" y1="-9.94587e-06" x2="194.87" y2="235.867" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#B2B2B2"/>
|
||||||
|
<stop offset="1" stop-color="#B2B2B2" stop-opacity="0"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="paint3_linear_3005_4084" x1="277.872" y1="-9.94587e-06" x2="194.87" y2="235.867" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#B2B2B2"/>
|
||||||
|
<stop offset="1" stop-color="#B2B2B2" stop-opacity="0"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="paint4_linear_3005_4084" x1="277.872" y1="-9.94587e-06" x2="194.87" y2="235.867" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#B2B2B2"/>
|
||||||
|
<stop offset="1" stop-color="#B2B2B2" stop-opacity="0"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="paint5_linear_3005_4084" x1="277.872" y1="-9.94587e-06" x2="194.87" y2="235.867" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#B2B2B2"/>
|
||||||
|
<stop offset="1" stop-color="#B2B2B2" stop-opacity="0"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="paint6_linear_3005_4084" x1="277.872" y1="-9.94587e-06" x2="194.87" y2="235.867" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#B2B2B2"/>
|
||||||
|
<stop offset="1" stop-color="#B2B2B2" stop-opacity="0"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="paint7_linear_3005_4084" x1="277.872" y1="-9.94587e-06" x2="194.87" y2="235.867" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#B2B2B2"/>
|
||||||
|
<stop offset="1" stop-color="#B2B2B2" stop-opacity="0"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="paint8_linear_3005_4084" x1="277.872" y1="-9.94587e-06" x2="194.87" y2="235.867" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#B2B2B2"/>
|
||||||
|
<stop offset="1" stop-color="#B2B2B2" stop-opacity="0"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="paint9_linear_3005_4084" x1="277.872" y1="-9.94587e-06" x2="194.87" y2="235.867" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#B2B2B2"/>
|
||||||
|
<stop offset="1" stop-color="#B2B2B2" stop-opacity="0"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="paint10_linear_3005_4084" x1="277.872" y1="-9.94587e-06" x2="194.87" y2="235.867" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#B2B2B2"/>
|
||||||
|
<stop offset="1" stop-color="#B2B2B2" stop-opacity="0"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="paint11_linear_3005_4084" x1="277.872" y1="-9.94587e-06" x2="194.87" y2="235.867" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#B2B2B2"/>
|
||||||
|
<stop offset="1" stop-color="#B2B2B2" stop-opacity="0"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="paint12_linear_3005_4084" x1="277.872" y1="-9.94587e-06" x2="194.87" y2="235.867" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#B2B2B2"/>
|
||||||
|
<stop offset="1" stop-color="#B2B2B2" stop-opacity="0"/>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 5.9 KiB |
21
public/images/task/google-drive.svg
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g filter="url(#filter0_d_2306_11136)">
|
||||||
|
<path d="M20.0024 15.5639L15.6763 7.9292C15.8199 7.78296 15.9852 7.68703 16.1504 7.62256C14.8747 8.04242 14.2893 9.475 14.2893 9.475L6.38619 23.4187C6.27499 23.8558 6.2441 24.2505 6.258 24.5981H14.884L20.0024 15.5639Z" fill="#34A853"/>
|
||||||
|
<path d="M20.0024 15.5639L25.1209 24.5981H33.7468C33.7607 24.2505 33.7298 23.8558 33.6186 23.4187L25.7155 9.475C25.7155 9.475 25.1286 8.04242 23.8544 7.62256C24.0181 7.68703 24.1849 7.78296 24.3285 7.9292L20.0024 15.5639Z" fill="#FBBC05"/>
|
||||||
|
<path d="M20.0024 15.5638L24.3285 7.92914C24.1848 7.7829 24.018 7.68697 23.8543 7.6225C23.6659 7.56117 23.4636 7.52029 23.2443 7.50928H23.0157H16.9891H16.7605C16.5427 7.51871 16.3389 7.5596 16.1504 7.6225C15.9867 7.68697 15.8199 7.7829 15.6763 7.92914L20.0024 15.5638Z" fill="#188038"/>
|
||||||
|
<path d="M14.8858 24.5981L10.6091 32.1463C10.6091 32.1463 10.467 32.0771 10.2739 31.934C10.8809 32.4011 11.4709 32.5001 11.4709 32.5001H28.2672C29.1939 32.5001 29.387 32.1463 29.387 32.1463C29.39 32.1447 29.3916 32.1432 29.3947 32.1416L25.1211 24.5981H14.8858Z" fill="#4285F4"/>
|
||||||
|
<path d="M14.8857 24.5981H6.25977C6.30301 25.6234 6.74782 26.2226 6.74782 26.2226L7.07217 26.7855C7.09533 26.8186 7.10923 26.8374 7.10923 26.8374L7.81506 28.0766L9.3997 30.8348C9.44604 30.9465 9.5001 31.0487 9.55725 31.1462C9.57887 31.1792 9.59894 31.2154 9.62211 31.2468C9.62829 31.2562 9.63447 31.2657 9.64064 31.2751C9.83679 31.5519 10.0561 31.7658 10.2754 31.934C10.4685 32.0787 10.6106 32.1463 10.6106 32.1463L14.8857 24.5981Z" fill="#1967D2"/>
|
||||||
|
<path d="M25.1211 24.5981H33.747C33.7038 25.6234 33.259 26.2226 33.259 26.2226L32.9346 26.7855C32.9115 26.8186 32.8976 26.8374 32.8976 26.8374L32.1917 28.0766L30.6071 30.8348C30.5608 30.9465 30.5067 31.0487 30.4496 31.1462C30.4279 31.1792 30.4079 31.2154 30.3847 31.2468C30.3785 31.2562 30.3723 31.2657 30.3662 31.2751C30.17 31.5519 29.9507 31.7658 29.7314 31.934C29.5383 32.0787 29.3962 32.1463 29.3962 32.1463L25.1211 24.5981Z" fill="#EA4335"/>
|
||||||
|
</g>
|
||||||
|
<defs>
|
||||||
|
<filter id="filter0_d_2306_11136" x="-2" y="-1" width="44" height="44" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||||
|
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||||
|
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||||
|
<feOffset dy="1"/>
|
||||||
|
<feGaussianBlur stdDeviation="1"/>
|
||||||
|
<feColorMatrix type="matrix" values="0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0"/>
|
||||||
|
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_2306_11136"/>
|
||||||
|
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_2306_11136" result="shape"/>
|
||||||
|
</filter>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.7 KiB |
10
public/images/task/pdf.svg
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M11.875 3.75C10.7578 3.75 9.84375 4.66406 9.84375 5.78125V34.2188C9.84375 35.3359 10.7578 36.25 11.875 36.25H32.1875C33.3047 36.25 34.2188 35.3359 34.2188 34.2188V11.875L26.0938 3.75H11.875Z" fill="#E2E5E7"/>
|
||||||
|
<path d="M28.125 11.875H34.2188L26.0938 3.75V9.84375C26.0938 10.9609 27.0078 11.875 28.125 11.875Z" fill="#B0B7BD"/>
|
||||||
|
<path d="M34.2188 17.9688L28.125 11.875H34.2188V17.9688Z" fill="#CAD1D8"/>
|
||||||
|
<path d="M30.1562 30.1562C30.1562 30.7148 29.6992 31.1719 29.1406 31.1719H6.79688C6.23828 31.1719 5.78125 30.7148 5.78125 30.1562V20C5.78125 19.4414 6.23828 18.9844 6.79688 18.9844H29.1406C29.6992 18.9844 30.1562 19.4414 30.1562 20V30.1562Z" fill="#F15642"/>
|
||||||
|
<path d="M10.2085 22.9932C10.2085 22.7251 10.4197 22.4326 10.76 22.4326H12.6358C13.6921 22.4326 14.6427 23.1395 14.6427 24.4943C14.6427 25.7781 13.6921 26.4931 12.6358 26.4931H11.28V27.5656C11.28 27.9231 11.0525 28.1252 10.76 28.1252C10.4919 28.1252 10.2085 27.9231 10.2085 27.5656V22.9932ZM11.28 23.4554V25.4785H12.6358C13.1802 25.4785 13.6108 24.9981 13.6108 24.4943C13.6108 23.9266 13.1802 23.4554 12.6358 23.4554H11.28Z" fill="white"/>
|
||||||
|
<path d="M16.2335 28.1253C15.9654 28.1253 15.6729 27.9791 15.6729 27.6226V23.0096C15.6729 22.7181 15.9654 22.5059 16.2335 22.5059H18.0931C21.8042 22.5059 21.7229 28.1253 18.1662 28.1253H16.2335ZM16.7454 23.4971V27.1351H18.0931C20.2858 27.1351 20.3833 23.4971 18.0931 23.4971H16.7454Z" fill="white"/>
|
||||||
|
<path d="M23.0389 23.5621V24.853H25.1098C25.4023 24.853 25.6948 25.1455 25.6948 25.4289C25.6948 25.697 25.4023 25.9164 25.1098 25.9164H23.0389V27.6216C23.0389 27.906 22.8368 28.1243 22.5524 28.1243C22.1949 28.1243 21.9766 27.906 21.9766 27.6216V23.0086C21.9766 22.7171 22.1959 22.5049 22.5524 22.5049H25.4033C25.7608 22.5049 25.972 22.7171 25.972 23.0086C25.972 23.2686 25.7608 23.5611 25.4033 23.5611H23.0389V23.5621Z" fill="white"/>
|
||||||
|
<path d="M29.1406 31.1719H9.84375V32.1875H29.1406C29.6992 32.1875 30.1562 31.7305 30.1562 31.1719V30.1562C30.1562 30.7148 29.6992 31.1719 29.1406 31.1719Z" fill="#CAD1D8"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.1 KiB |
BIN
public/images/task/task.jpg
Normal file
|
After Width: | Height: | Size: 74 KiB |
BIN
public/images/task/task.png
Normal file
|
After Width: | Height: | Size: 143 KiB |
BIN
public/images/video-thumb/thumb-16.png
Normal file
|
After Width: | Height: | Size: 119 KiB |
4
public/images/video-thumb/youtube-icon-84.svg
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<svg width="80" height="80" viewBox="0 0 80 80" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M5.61127 24.8528C5.93259 19.9058 9.90987 16.0289 14.8612 15.7836C22.031 15.4284 32.2787 15 40 15C47.7213 15 57.969 15.4284 65.1388 15.7836C70.0901 16.0289 74.0674 19.9058 74.3887 24.8528C74.6966 29.5923 75 35.4241 75 40C75 44.5759 74.6966 50.4077 74.3887 55.1472C74.0674 60.0942 70.0901 63.9711 65.1388 64.2164C57.969 64.5716 47.7213 65 40 65C32.2787 65 22.031 64.5716 14.8612 64.2164C9.90987 63.9711 5.93259 60.0942 5.61127 55.1472C5.30341 50.4077 5 44.5759 5 40C5 35.4241 5.30341 29.5923 5.61127 24.8528Z" fill="#FC0D1B"/>
|
||||||
|
<path d="M32.5 30V50L52.5 40L32.5 30Z" fill="white"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 691 B |
@@ -0,0 +1,52 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import GridShape from "@/components/common/GridShape";
|
||||||
|
import Image from "next/image";
|
||||||
|
import Link from "next/link";
|
||||||
|
import React from "react";
|
||||||
|
import { useTranslations } from "next-intl";
|
||||||
|
|
||||||
|
export default function Error404Client() {
|
||||||
|
const t = useTranslations("Error");
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="relative flex flex-col items-center justify-center min-h-screen p-6 overflow-hidden z-1">
|
||||||
|
<GridShape />
|
||||||
|
<div className="mx-auto w-full max-w-[242px] text-center sm:max-w-[472px]">
|
||||||
|
<h1 className="mb-8 font-bold text-gray-800 text-title-md dark:text-white/90 xl:text-title-2xl">
|
||||||
|
{t('title_404')}
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
<Image
|
||||||
|
src="/images/error/404.svg"
|
||||||
|
alt="404"
|
||||||
|
className="dark:hidden"
|
||||||
|
width={472}
|
||||||
|
height={152}
|
||||||
|
/>
|
||||||
|
<Image
|
||||||
|
src="/images/error/404-dark.svg"
|
||||||
|
alt="404"
|
||||||
|
className="hidden dark:block"
|
||||||
|
width={472}
|
||||||
|
height={152}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<p className="mt-10 mb-6 text-base text-gray-700 dark:text-gray-400 sm:text-lg">
|
||||||
|
{t('desc_404')}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<Link
|
||||||
|
href="/"
|
||||||
|
className="inline-flex items-center justify-center rounded-lg border border-gray-300 bg-white px-5 py-3.5 text-sm font-medium text-gray-700 shadow-theme-xs hover:bg-gray-50 hover:text-gray-800 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-white/[0.03] dark:hover:text-gray-200"
|
||||||
|
>
|
||||||
|
{t('back_to_home')}
|
||||||
|
</Link>
|
||||||
|
</div>
|
||||||
|
{/* <!-- Footer --> */}
|
||||||
|
<p className="absolute text-sm text-center text-gray-500 -translate-x-1/2 bottom-6 left-1/2 dark:text-gray-400">
|
||||||
|
© {new Date().getFullYear()} - TrustLab
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
11
src/app/(full-width-pages)/(error-pages)/error-404/page.tsx
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
import { Metadata } from "next";
|
||||||
|
import Error404Client from "./Error404Client";
|
||||||
|
|
||||||
|
export const metadata: Metadata = {
|
||||||
|
title: "Page Not Found",
|
||||||
|
description: "The page you are looking for does not exist.",
|
||||||
|
};
|
||||||
|
|
||||||
|
export default function Error404() {
|
||||||
|
return <Error404Client />;
|
||||||
|
}
|
||||||
7
src/app/(full-width-pages)/layout.tsx
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
export default function FullWidthPageLayout({
|
||||||
|
children,
|
||||||
|
}: {
|
||||||
|
children: React.ReactNode;
|
||||||
|
}) {
|
||||||
|
return <div>{children}</div>;
|
||||||
|
}
|
||||||
399
src/app/(public)/HomeClient.tsx
Normal file
@@ -0,0 +1,399 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import Link from "next/link";
|
||||||
|
import CommonGridShape from "@/components/common/CommonGridShape";
|
||||||
|
import { useEffect, useState } from "react";
|
||||||
|
import axios from '@/lib/axios';
|
||||||
|
import { useTranslations } from "next-intl";
|
||||||
|
|
||||||
|
interface CaCertificate {
|
||||||
|
name: string;
|
||||||
|
type: string;
|
||||||
|
serial: string;
|
||||||
|
expires_at: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Simple internal ScrollToTop component
|
||||||
|
function ScrollToTop() {
|
||||||
|
const [show, setShow] = useState(false);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const handleScroll = () => {
|
||||||
|
setShow(window.pageYOffset > 500);
|
||||||
|
};
|
||||||
|
window.addEventListener('scroll', handleScroll);
|
||||||
|
return () => window.removeEventListener('scroll', handleScroll);
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
const scrollToTop = () => {
|
||||||
|
const element = document.querySelector('#home');
|
||||||
|
if (element) {
|
||||||
|
const navbarOffset = 80;
|
||||||
|
const elementPosition = element.getBoundingClientRect().top;
|
||||||
|
const offsetPosition = elementPosition + window.pageYOffset - navbarOffset;
|
||||||
|
window.scrollTo({
|
||||||
|
top: offsetPosition,
|
||||||
|
behavior: "smooth",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
if (!show) return null;
|
||||||
|
|
||||||
|
return (
|
||||||
|
<button
|
||||||
|
onClick={scrollToTop}
|
||||||
|
className="fixed bottom-8 right-8 z-50 p-4 bg-brand-500 hover:bg-brand-600 text-white rounded-2xl shadow-2xl shadow-brand-500/40 transition-all hover:-translate-y-1 active:scale-95 animate-in fade-in slide-in-from-bottom-5"
|
||||||
|
aria-label="Back to top"
|
||||||
|
>
|
||||||
|
<svg className="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||||
|
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M5 10l7-7m0 0l7 7m-7-7v18" />
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function HomeClient() {
|
||||||
|
const t = useTranslations("Home");
|
||||||
|
const [certificates, setCertificates] = useState<CaCertificate[]>([]);
|
||||||
|
const [loadingCerts, setLoadingCerts] = useState(true);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const fetchCertificates = async () => {
|
||||||
|
try {
|
||||||
|
const response = await axios.get('/api/public/ca-certificates');
|
||||||
|
if (response.data.success) {
|
||||||
|
setCertificates(response.data.data);
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Failed to fetch certificates", error);
|
||||||
|
} finally {
|
||||||
|
setLoadingCerts(false);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
fetchCertificates();
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
const handleScroll = (e: React.MouseEvent<HTMLAnchorElement>, id: string) => {
|
||||||
|
e.preventDefault();
|
||||||
|
const element = document.querySelector(id);
|
||||||
|
if (element) {
|
||||||
|
const navbarOffset = 80;
|
||||||
|
const elementPosition = element.getBoundingClientRect().top;
|
||||||
|
const offsetPosition = elementPosition + window.pageYOffset - navbarOffset;
|
||||||
|
window.scrollTo({
|
||||||
|
top: offsetPosition,
|
||||||
|
behavior: "smooth",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="relative flex-grow flex flex-col">
|
||||||
|
{/* Hero Section */}
|
||||||
|
<header className="relative pt-32 pb-20 overflow-hidden" id="home">
|
||||||
|
{/* Background Shapes */}
|
||||||
|
<div className="absolute top-0 left-1/2 -translate-x-1/2 w-full max-w-7xl h-full -z-10 opacity-30 dark:opacity-20 pointer-events-none">
|
||||||
|
<div className="absolute top-20 left-10 w-72 h-72 bg-brand-500 rounded-full blur-[120px]"></div>
|
||||||
|
<div className="absolute bottom-10 right-10 w-96 h-96 bg-blue-500 rounded-full blur-[150px]"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center">
|
||||||
|
<div className="inline-flex items-center gap-2 px-4 py-2 rounded-full bg-brand-50 dark:bg-brand-500/10 border border-brand-100 dark:border-brand-500/20 text-brand-600 dark:text-brand-400 text-xs font-bold uppercase tracking-widest mb-8 animate-bounce">
|
||||||
|
🚀 {t('hero_tag')}
|
||||||
|
</div>
|
||||||
|
<h1 className="text-5xl md:text-7xl font-extrabold text-gray-900 dark:text-white mb-6 leading-tight">
|
||||||
|
{t('hero_title_1')} <br/>
|
||||||
|
<span className="text-transparent bg-clip-text bg-gradient-to-r from-brand-500 to-blue-600">
|
||||||
|
{t('hero_title_2')}
|
||||||
|
</span>
|
||||||
|
</h1>
|
||||||
|
<p className="text-lg md:text-xl text-gray-600 dark:text-gray-400 max-w-2xl mx-auto mb-10">
|
||||||
|
{t('hero_desc')}
|
||||||
|
</p>
|
||||||
|
<div className="flex flex-col sm:flex-row items-center justify-center gap-4">
|
||||||
|
<Link href="/signup" className="w-full sm:w-auto px-8 py-4 bg-gray-900 dark:bg-white text-white dark:text-gray-900 rounded-2xl font-bold shadow-xl transition-all hover:-translate-y-1 hover:shadow-2xl">
|
||||||
|
{t('cta_create_account')}
|
||||||
|
</Link>
|
||||||
|
<a href="#features" onClick={(e) => handleScroll(e, '#features')} className="w-full sm:w-auto px-8 py-4 bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200 border border-gray-200 dark:border-gray-700 rounded-2xl font-bold transition-all hover:bg-gray-50 dark:hover:bg-gray-700 cursor-pointer">
|
||||||
|
{t('cta_explore_features')}
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Preview/Abstract UI */}
|
||||||
|
<div className="mt-20 relative mx-auto max-w-5xl">
|
||||||
|
<div className="aspect-video bg-white dark:bg-gray-800 rounded-3xl border border-gray-200 dark:border-gray-700 shadow-2xl p-4 overflow-hidden group">
|
||||||
|
<div className="flex items-center gap-2 mb-4 border-b border-gray-100 dark:border-gray-700 pb-3">
|
||||||
|
<div className="flex gap-1.5">
|
||||||
|
<div className="w-3 h-3 rounded-full bg-red-400"></div>
|
||||||
|
<div className="w-3 h-3 rounded-full bg-yellow-400"></div>
|
||||||
|
<div className="w-3 h-3 rounded-full bg-green-400"></div>
|
||||||
|
</div>
|
||||||
|
<div className="flex-1 ml-4 h-6 bg-gray-100 dark:bg-gray-900/50 rounded-lg max-w-xs"></div>
|
||||||
|
</div>
|
||||||
|
{/* Mock Dashboard Content */}
|
||||||
|
<div className="grid grid-cols-3 gap-4">
|
||||||
|
<div className="col-span-2 space-y-4">
|
||||||
|
<div className="h-40 bg-brand-500/5 rounded-2xl border border-brand-500/10"></div>
|
||||||
|
<div className="grid grid-cols-2 gap-4">
|
||||||
|
<div className="h-24 bg-gray-50 dark:bg-gray-900/50 rounded-2xl"></div>
|
||||||
|
<div className="h-24 bg-gray-50 dark:bg-gray-900/50 rounded-2xl"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="space-y-4">
|
||||||
|
<div className="h-full bg-gray-50 dark:bg-gray-900/50 rounded-2xl"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/* Overlay Gradient */}
|
||||||
|
<div className="absolute inset-0 bg-gradient-to-t from-white dark:from-gray-900 via-transparent to-transparent pointer-events-none"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
{/* Features Section */}
|
||||||
|
<section id="features" className="py-24 bg-gray-50 dark:bg-gray-900/50">
|
||||||
|
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
||||||
|
<div className="text-center mb-16">
|
||||||
|
<h2 className="text-3xl md:text-4xl font-bold text-gray-900 dark:text-white mb-4">{t('features_title')}</h2>
|
||||||
|
<p className="text-gray-600 dark:text-gray-400">{t('features_desc')}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="grid grid-cols-1 md:grid-cols-3 gap-8">
|
||||||
|
{/* Feature 1 */}
|
||||||
|
<div className="bg-white dark:bg-gray-800 p-8 rounded-3xl border border-gray-100 dark:border-gray-700 shadow-sm hover:shadow-xl transition-all duration-300 group">
|
||||||
|
<div className="w-14 h-14 bg-brand-50 dark:bg-brand-500/10 rounded-2xl flex items-center justify-center text-brand-500 mb-6 group-hover:scale-110 transition-transform">
|
||||||
|
<svg className="h-7 w-7" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||||
|
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z" />
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
<h3 className="text-xl font-bold text-gray-900 dark:text-white mb-3">{t('feature_1_title')}</h3>
|
||||||
|
<p className="text-gray-600 dark:text-gray-400 text-sm leading-relaxed">
|
||||||
|
{t('feature_1_desc')}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Feature 2 */}
|
||||||
|
<div className="bg-white dark:bg-gray-800 p-8 rounded-3xl border border-gray-100 dark:border-gray-700 shadow-sm hover:shadow-xl transition-all duration-300 group">
|
||||||
|
<div className="w-14 h-14 bg-blue-50 dark:bg-blue-500/10 rounded-2xl flex items-center justify-center text-blue-500 mb-6 group-hover:scale-110 transition-transform">
|
||||||
|
<svg className="h-7 w-7" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||||
|
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M15 7a2 2 0 012 2m4 0a6 6 0 01-7.743 5.743L11.536 11 9 13.536 7.464 12 4.929 14.536V17h2.472l4.243-4.243a6 6 0 018.828-5.743zM16.5 13.5V18h6v-4.5h-6z" />
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
<h3 className="text-xl font-bold text-gray-900 dark:text-white mb-3">{t('feature_2_title')}</h3>
|
||||||
|
<p className="text-gray-600 dark:text-gray-400 text-sm leading-relaxed">
|
||||||
|
{t('feature_2_desc')}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Feature 3 */}
|
||||||
|
<div className="bg-white dark:bg-gray-800 p-8 rounded-3xl border border-gray-100 dark:border-gray-700 shadow-sm hover:shadow-xl transition-all duration-300 group">
|
||||||
|
<div className="w-14 h-14 bg-green-50 dark:bg-green-500/10 rounded-2xl flex items-center justify-center text-green-500 mb-6 group-hover:scale-110 transition-transform">
|
||||||
|
<svg className="h-7 w-7" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||||
|
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z" />
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
<h3 className="text-xl font-bold text-gray-900 dark:text-white mb-3">{t('feature_3_title')}</h3>
|
||||||
|
<p className="text-gray-600 dark:text-gray-400 text-sm leading-relaxed">
|
||||||
|
{t('feature_3_desc')}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
{/* Trust Store Section */}
|
||||||
|
<section id="trust-store" className="py-24 bg-white dark:bg-gray-800 relative overflow-hidden">
|
||||||
|
{/* Gradient Background */}
|
||||||
|
<div className="absolute inset-0 opacity-30 dark:opacity-10 pointer-events-none">
|
||||||
|
<div className="absolute -top-20 -right-20 w-96 h-96 bg-brand-500/20 rounded-full blur-[100px]"></div>
|
||||||
|
<div className="absolute -bottom-20 -left-20 w-80 h-80 bg-blue-500/20 rounded-full blur-[100px]"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 relative z-10">
|
||||||
|
<div className="text-center mb-16">
|
||||||
|
<h2 className="text-3xl md:text-4xl font-bold text-gray-900 dark:text-white mb-4">{t('trust_store_title')}</h2>
|
||||||
|
<p className="text-gray-600 dark:text-gray-400 max-w-2xl mx-auto">
|
||||||
|
{t('trust_store_desc')}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{loadingCerts ? (
|
||||||
|
<div className="flex justify-center py-12">
|
||||||
|
<div className="animate-spin rounded-full h-12 w-12 border-t-2 border-brand-500"></div>
|
||||||
|
</div>
|
||||||
|
) : (
|
||||||
|
<>
|
||||||
|
{/* Root CA - Centered */}
|
||||||
|
<div className="flex flex-col items-center gap-8 mb-8">
|
||||||
|
{certificates.filter(c => c.type === 'root').map((cert) => (
|
||||||
|
<div key={cert.serial} className="w-full max-w-lg bg-gray-50 dark:bg-gray-900/50 rounded-3xl p-8 border border-gray-100 dark:border-gray-700 hover:shadow-xl transition-all duration-300">
|
||||||
|
<div className="flex items-start justify-between mb-6">
|
||||||
|
<div>
|
||||||
|
<span className={`inline-block px-3 py-1 rounded-full text-xs font-bold uppercase tracking-wider mb-3 bg-purple-100 text-purple-700 dark:bg-purple-500/10 dark:text-purple-400`}>
|
||||||
|
{t('root_ca')}
|
||||||
|
</span>
|
||||||
|
<h3 className="text-2xl font-bold text-gray-900 dark:text-white">{cert.name}</h3>
|
||||||
|
<p className="text-xs text-gray-500 dark:text-gray-400 mt-1 font-mono">{t('serial')}: {cert.serial}</p>
|
||||||
|
</div>
|
||||||
|
<div className="w-12 h-12 bg-white dark:bg-gray-800 rounded-2xl flex items-center justify-center text-gray-400 shadow-sm">
|
||||||
|
<svg className="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||||
|
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z" />
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="space-y-3">
|
||||||
|
<div className="grid grid-cols-2 gap-3">
|
||||||
|
<a
|
||||||
|
href={`${process.env.NEXT_PUBLIC_BACKEND_URL}/api/public/ca-certificates/${cert.serial}/download`}
|
||||||
|
className="flex items-center justify-center gap-2 px-4 py-3 bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200 rounded-xl border border-gray-200 dark:border-gray-700 font-medium text-sm hover:bg-gray-50 dark:hover:bg-gray-700 transition-colors"
|
||||||
|
title={t('download_standard_title')}
|
||||||
|
>
|
||||||
|
<svg className="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||||
|
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M7 21h10a2 2 0 002-2V9.414a1 1 0 00-.293-.707l-5.414-5.414A1 1 0 0012.586 3H7a2 2 0 00-2 2v14a2 2 0 002 2z" />
|
||||||
|
</svg>
|
||||||
|
{t('download_standard')}
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
href={`${process.env.NEXT_PUBLIC_BACKEND_URL}/api/public/ca-certificates/${cert.serial}/download?format=der`}
|
||||||
|
className="flex items-center justify-center gap-2 px-4 py-3 bg-green-50 dark:bg-green-500/10 text-green-700 dark:text-green-400 rounded-xl border border-green-200 dark:border-green-500/20 font-medium text-sm hover:bg-green-100 dark:hover:bg-green-500/20 transition-colors"
|
||||||
|
title={t('download_android_title')}
|
||||||
|
>
|
||||||
|
<svg className="w-4 h-4" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M17.523 15.3414C17.523 16.7113 16.4805 17.7719 15.1743 17.7719C13.8681 17.7719 12.8257 16.7113 12.8257 15.3414C12.8257 13.9715 13.8681 12.9109 15.1743 12.9109C16.4805 12.9109 17.523 13.9715 17.523 15.3414ZM11.1714 15.3414C11.1714 16.7113 10.1289 17.7719 8.82276 17.7719C7.51659 17.7719 6.47412 16.7113 6.47412 15.3414C6.47412 13.9715 7.51659 12.9109 8.82276 12.9109C10.1289 12.9109 11.1714 13.9715 11.1714 15.3414ZM16.3262 5.86762L17.7119 3.44754C17.7981 3.29806 17.7513 3.10499 17.5932 3.01894C17.4391 2.92983 17.2505 2.97372 17.152 3.1232L15.7251 5.61793C14.0754 4.86961 12.1956 4.86961 10.5982 5.5645L9.1713 3.06977C9.0768 2.92028 8.88412 2.87234 8.73004 2.9654C8.5719 3.05144 8.52504 3.24451 8.6112 3.394L9.99708 5.8143C6.31383 7.82084 3.86221 11.6968 3.86221 16.0359H20.1378C20.1378 11.6968 17.6862 7.82084 16.3262 5.86762Z"/>
|
||||||
|
</svg>
|
||||||
|
{t('download_android')}
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div className="grid grid-cols-2 gap-3">
|
||||||
|
<a
|
||||||
|
href={`${process.env.NEXT_PUBLIC_BACKEND_URL}/api/public/ca-certificates/${cert.serial}/download/windows`}
|
||||||
|
className="flex items-center justify-center gap-2 px-4 py-3 bg-blue-50 dark:bg-blue-500/10 text-blue-700 dark:text-blue-400 rounded-xl border border-blue-200 dark:border-blue-500/20 font-medium text-sm hover:bg-blue-100 dark:hover:bg-blue-500/20 transition-colors"
|
||||||
|
title={t('download_windows_title')}
|
||||||
|
>
|
||||||
|
<svg className="w-4 h-4" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M0 3.449L9.75 2.134V11.3L0 11.3V3.449ZM9.75 12.7L0 12.7V20.551L9.75 19.166V12.7ZM10.5 1.998L24 0.166V11.3L10.5 11.3V1.998ZM10.5 12.7L24 12.7V23.834L10.5 21.966V12.7Z"/>
|
||||||
|
</svg>
|
||||||
|
{t('download_windows')}
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
href={`${process.env.NEXT_PUBLIC_BACKEND_URL}/api/public/ca-certificates/${cert.serial}/download/mac`}
|
||||||
|
className="flex items-center justify-center gap-2 px-4 py-3 bg-gray-100 dark:bg-gray-700 text-gray-800 dark:text-gray-100 rounded-xl border border-gray-200 dark:border-gray-600 font-medium text-sm hover:bg-gray-200 dark:hover:bg-gray-600 transition-colors"
|
||||||
|
title={t('download_macos_title')}
|
||||||
|
>
|
||||||
|
<svg className="w-4 h-4" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M18.71 19.5c-.83 1.24-1.71 2.45-3.05 2.47-1.34.03-1.77-.79-3.29-.79-1.53 0-2 .77-3.27.82-1.31.05-2.3-1.32-3.14-2.53C4.25 17 2.94 12.45 4.7 9.39c.87-1.52 2.43-2.48 4.12-2.51 1.28-.02 2.5.87 3.29.87.78 0 2.26-1.07 3.81-.91.65.03 2.47.26 3.64 1.98-.09.06-2.17 1.28-2.15 3.81.03 3.02 2.65 4.03 2.68 4.04-.03.07-.42 1.44-1.38 2.83M13 3.5c.73-.83 1.21-1.96 1.07-3.11-1.05.05-2.31.74-3.03 1.59-.65.77-1.2 2.02-1.07 3.12 1.17.09 2.36-.73 3.03-1.6"/>
|
||||||
|
</svg>
|
||||||
|
{t('download_macos')}
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Intermediate CAs - Grid */}
|
||||||
|
<div className="grid grid-cols-1 md:grid-cols-2 gap-8 max-w-5xl mx-auto">
|
||||||
|
{certificates.filter(c => c.type !== 'root').map((cert) => (
|
||||||
|
<div key={cert.serial} className="bg-gray-50 dark:bg-gray-900/50 rounded-3xl p-8 border border-gray-100 dark:border-gray-700 hover:shadow-xl transition-all duration-300">
|
||||||
|
<div className="flex items-start justify-between mb-6">
|
||||||
|
<div>
|
||||||
|
<span className={`inline-block px-3 py-1 rounded-full text-xs font-bold uppercase tracking-wider mb-3 bg-blue-100 text-blue-700 dark:bg-blue-500/10 dark:text-blue-400`}>
|
||||||
|
{t('intermediate_ca')}
|
||||||
|
</span>
|
||||||
|
<h3 className="text-2xl font-bold text-gray-900 dark:text-white">{cert.name}</h3>
|
||||||
|
<p className="text-xs text-gray-500 dark:text-gray-400 mt-1 font-mono">{t('serial')}: {cert.serial}</p>
|
||||||
|
</div>
|
||||||
|
<div className="w-12 h-12 bg-white dark:bg-gray-800 rounded-2xl flex items-center justify-center text-gray-400 shadow-sm">
|
||||||
|
<svg className="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||||
|
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z" />
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="space-y-3">
|
||||||
|
<div className="grid grid-cols-2 gap-3">
|
||||||
|
<a
|
||||||
|
href={`${process.env.NEXT_PUBLIC_BACKEND_URL}/api/public/ca-certificates/${cert.serial}/download`}
|
||||||
|
className="flex items-center justify-center gap-2 px-4 py-3 bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200 rounded-xl border border-gray-200 dark:border-gray-700 font-medium text-sm hover:bg-gray-50 dark:hover:bg-gray-700 transition-colors"
|
||||||
|
title={t('download_standard_title')}
|
||||||
|
>
|
||||||
|
<svg className="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||||
|
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M7 21h10a2 2 0 002-2V9.414a1 1 0 00-.293-.707l-5.414-5.414A1 1 0 0012.586 3H7a2 2 0 00-2 2v14a2 2 0 002 2z" />
|
||||||
|
</svg>
|
||||||
|
{t('download_standard')}
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
href={`${process.env.NEXT_PUBLIC_BACKEND_URL}/api/public/ca-certificates/${cert.serial}/download?format=der`}
|
||||||
|
className="flex items-center justify-center gap-2 px-4 py-3 bg-green-50 dark:bg-green-500/10 text-green-700 dark:text-green-400 rounded-xl border border-green-200 dark:border-green-500/20 font-medium text-sm hover:bg-green-100 dark:hover:bg-green-500/20 transition-colors"
|
||||||
|
title={t('download_android_title')}
|
||||||
|
>
|
||||||
|
<svg className="w-4 h-4" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M17.523 15.3414C17.523 16.7113 16.4805 17.7719 15.1743 17.7719C13.8681 17.7719 12.8257 16.7113 12.8257 15.3414C12.8257 13.9715 13.8681 12.9109 15.1743 12.9109C16.4805 12.9109 17.523 13.9715 17.523 15.3414ZM11.1714 15.3414C11.1714 16.7113 10.1289 17.7719 8.82276 17.7719C7.51659 17.7719 6.47412 16.7113 6.47412 15.3414C6.47412 13.9715 7.51659 12.9109 8.82276 12.9109C10.1289 12.9109 11.1714 13.9715 11.1714 15.3414ZM16.3262 5.86762L17.7119 3.44754C17.7981 3.29806 17.7513 3.10499 17.5932 3.01894C17.4391 2.92983 17.2505 2.97372 17.152 3.1232L15.7251 5.61793C14.0754 4.86961 12.1956 4.86961 10.5982 5.5645L9.1713 3.06977C9.0768 2.92028 8.88412 2.87234 8.73004 2.9654C8.5719 3.05144 8.52504 3.24451 8.6112 3.394L9.99708 5.8143C6.31383 7.82084 3.86221 11.6968 3.86221 16.0359H20.1378C20.1378 11.6968 17.6862 7.82084 16.3262 5.86762Z"/>
|
||||||
|
</svg>
|
||||||
|
{t('download_android')}
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div className="grid grid-cols-2 gap-3">
|
||||||
|
<a
|
||||||
|
href={`${process.env.NEXT_PUBLIC_BACKEND_URL}/api/public/ca-certificates/${cert.serial}/download/windows`}
|
||||||
|
className="flex items-center justify-center gap-2 px-4 py-3 bg-blue-50 dark:bg-blue-500/10 text-blue-700 dark:text-blue-400 rounded-xl border border-blue-200 dark:border-blue-500/20 font-medium text-sm hover:bg-blue-100 dark:hover:bg-blue-500/20 transition-colors"
|
||||||
|
title={t('download_windows_title')}
|
||||||
|
>
|
||||||
|
<svg className="w-4 h-4" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M0 3.449L9.75 2.134V11.3L0 11.3V3.449ZM9.75 12.7L0 12.7V20.551L9.75 19.166V12.7ZM10.5 1.998L24 0.166V11.3L10.5 11.3V1.998ZM10.5 12.7L24 12.7V23.834L10.5 21.966V12.7Z"/>
|
||||||
|
</svg>
|
||||||
|
{t('download_windows')}
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
href={`${process.env.NEXT_PUBLIC_BACKEND_URL}/api/public/ca-certificates/${cert.serial}/download/mac`}
|
||||||
|
className="flex items-center justify-center gap-2 px-4 py-3 bg-gray-100 dark:bg-gray-700 text-gray-800 dark:text-gray-100 rounded-xl border border-gray-200 dark:border-gray-600 font-medium text-sm hover:bg-gray-200 dark:hover:bg-gray-600 transition-colors"
|
||||||
|
title={t('download_macos_title')}
|
||||||
|
>
|
||||||
|
<svg className="w-4 h-4" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M18.71 19.5c-.83 1.24-1.71 2.45-3.05 2.47-1.34.03-1.77-.79-3.29-.79-1.53 0-2 .77-3.27.82-1.31.05-2.3-1.32-3.14-2.53C4.25 17 2.94 12.45 4.7 9.39c.87-1.52 2.43-2.48 4.12-2.51 1.28-.02 2.5.87 3.29.87.78 0 2.26-1.07 3.81-.91.65.03 2.47.26 3.64 1.98-.09.06-2.17 1.28-2.15 3.81.03 3.02 2.65 4.03 2.68 4.04-.03.07-.42 1.44-1.38 2.83M13 3.5c.73-.83 1.21-1.96 1.07-3.11-1.05.05-2.31.74-3.03 1.59-.65.77-1.2 2.02-1.07 3.12 1.17.09 2.36-.73 3.03-1.6"/>
|
||||||
|
</svg>
|
||||||
|
{t('download_macos')}
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
{/* CTA Section */}
|
||||||
|
<section className="py-20">
|
||||||
|
<div className="max-w-5xl mx-auto px-4 sm:px-6 lg:px-8">
|
||||||
|
<div className="bg-brand-600 rounded-[3rem] p-12 md:p-16 text-center text-white relative overflow-hidden shadow-2xl">
|
||||||
|
<div className="relative z-10">
|
||||||
|
<h2 className="text-3xl md:text-4xl font-bold mb-6">{t('cta_ready_title')}</h2>
|
||||||
|
<p className="text-brand-100 mb-10 max-w-lg mx-auto">{t('cta_ready_desc')}</p>
|
||||||
|
<div className="flex flex-col sm:flex-row items-center justify-center gap-4">
|
||||||
|
<Link href="/signup" className="px-8 py-4 bg-white text-brand-600 rounded-2xl font-bold hover:scale-105 transition-transform">
|
||||||
|
{t('cta_free_account')}
|
||||||
|
</Link>
|
||||||
|
<Link href="/signin" className="px-8 py-4 bg-brand-700 text-white rounded-2xl font-bold hover:bg-brand-800 transition-colors">
|
||||||
|
{t('cta_signin_portal')}
|
||||||
|
</Link>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/* Abstract Design */}
|
||||||
|
<div className="absolute top-0 left-0 w-full h-full opacity-10 pointer-events-none">
|
||||||
|
<CommonGridShape />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
{/* Back to Top Button */}
|
||||||
|
<ScrollToTop />
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
111
src/app/(public)/auth/callback/page.tsx
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { Suspense, useEffect, useState } from "react";
|
||||||
|
import { useRouter, useSearchParams } from "next/navigation";
|
||||||
|
import Link from "next/link";
|
||||||
|
import CommonGridShape from "@/components/common/CommonGridShape";
|
||||||
|
|
||||||
|
function AuthCallbackContent() {
|
||||||
|
const router = useRouter();
|
||||||
|
const searchParams = useSearchParams();
|
||||||
|
const [status, setStatus] = useState("Processing...");
|
||||||
|
const [error, setError] = useState<string | null>(null);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const token = searchParams.get("token");
|
||||||
|
const errorParam = searchParams.get("error");
|
||||||
|
const action = searchParams.get("action");
|
||||||
|
const code = searchParams.get("code");
|
||||||
|
const state = searchParams.get("state");
|
||||||
|
|
||||||
|
// Mirror Callback: If we receive an OAuth code directly from the provider,
|
||||||
|
// proxy it to the backend for processing.
|
||||||
|
if (code && !token) {
|
||||||
|
const provider = searchParams.get("provider") || 'google';
|
||||||
|
const backendUrl = `${process.env.NEXT_PUBLIC_API_URL}/api/auth/${provider}/callback?${searchParams.toString()}`;
|
||||||
|
window.location.href = backendUrl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (errorParam) {
|
||||||
|
if (errorParam === 'account_exists_please_login') {
|
||||||
|
setError("This email is already associated with an account. Please sign in with your password and link your social account in settings.");
|
||||||
|
} else if (errorParam === 'account_not_found_please_signup') {
|
||||||
|
setError("Account not found. Please Sign Up to create a new account.");
|
||||||
|
} else if (errorParam === 'authentication_failed') {
|
||||||
|
setError("Authentication failed. Please try again.");
|
||||||
|
} else {
|
||||||
|
setError("An unknown error occurred during authentication.");
|
||||||
|
}
|
||||||
|
setStatus("");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (token) {
|
||||||
|
if (action === "set_password") {
|
||||||
|
router.push("/auth/set-password?token=" + token);
|
||||||
|
} else {
|
||||||
|
router.push("/dashboard");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
const timeout = setTimeout(() => {
|
||||||
|
setError("No response from server.");
|
||||||
|
setStatus("");
|
||||||
|
}, 5000);
|
||||||
|
return () => clearTimeout(timeout);
|
||||||
|
}
|
||||||
|
}, [searchParams, router]);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="relative z-1 bg-white p-6 sm:p-0 dark:bg-gray-900 flex-grow flex items-center justify-center min-h-screen">
|
||||||
|
<div className="relative z-10 w-full max-w-md p-8 text-center">
|
||||||
|
{error ? (
|
||||||
|
<div className="space-y-6">
|
||||||
|
<div className="mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-red-100 dark:bg-red-900/20">
|
||||||
|
<svg className="h-8 w-8 text-red-600 dark:text-red-400" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||||
|
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" />
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h2 className="text-xl font-bold text-gray-900 dark:text-white">Authentication Error</h2>
|
||||||
|
<p className="mt-2 text-sm text-gray-600 dark:text-gray-400">{error}</p>
|
||||||
|
</div>
|
||||||
|
<Link
|
||||||
|
href="/signin"
|
||||||
|
className="inline-flex w-full justify-center rounded-lg bg-brand-500 px-4 py-2.5 text-sm font-semibold text-white shadow-sm hover:bg-brand-600 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-brand-600"
|
||||||
|
>
|
||||||
|
Back to Sign In
|
||||||
|
</Link>
|
||||||
|
</div>
|
||||||
|
) : (
|
||||||
|
<div className="space-y-6">
|
||||||
|
<div className="mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-brand-100 dark:bg-brand-900/20">
|
||||||
|
<svg className="animate-spin h-8 w-8 text-brand-600 dark:text-brand-400" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">
|
||||||
|
<circle className="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" strokeWidth="4"></circle>
|
||||||
|
<path className="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
<h2 className="text-xl font-bold text-gray-900 dark:text-white">{status}</h2>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Background */}
|
||||||
|
<div className="absolute inset-0 overflow-hidden pointer-events-none">
|
||||||
|
<CommonGridShape />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function AuthCallback() {
|
||||||
|
return (
|
||||||
|
<Suspense fallback={
|
||||||
|
<div className="flex h-screen items-center justify-center bg-white dark:bg-gray-900">
|
||||||
|
<div className="h-10 w-10 animate-spin rounded-full border-4 border-brand-500 border-t-transparent"></div>
|
||||||
|
</div>
|
||||||
|
}>
|
||||||
|
<AuthCallbackContent />
|
||||||
|
</Suspense>
|
||||||
|
);
|
||||||
|
}
|
||||||
151
src/app/(public)/auth/set-password/SetPasswordClient.tsx
Normal file
@@ -0,0 +1,151 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import React, { useState } from "react";
|
||||||
|
import { useRouter, useSearchParams } from "next/navigation";
|
||||||
|
import { useAuth } from "@/hooks/useAuth";
|
||||||
|
import CommonGridShape from "@/components/common/CommonGridShape";
|
||||||
|
import { Eye, EyeOff } from "lucide-react";
|
||||||
|
import Link from "next/link";
|
||||||
|
import axios from "@/lib/axios";
|
||||||
|
|
||||||
|
export default function SetPasswordClient() {
|
||||||
|
const router = useRouter();
|
||||||
|
const searchParams = useSearchParams();
|
||||||
|
const token = searchParams.get("token");
|
||||||
|
|
||||||
|
// If token is present in URL (passed from callback), we might need to use it
|
||||||
|
// But usually, the session cookie is already set by the backend login.
|
||||||
|
// The token query param is mostly for stateless clients, but we can store it if needed.
|
||||||
|
// Ideally, Sanctum uses cookies.
|
||||||
|
|
||||||
|
const [password, setPassword] = useState("");
|
||||||
|
const [passwordConfirmation, setPasswordConfirmation] = useState("");
|
||||||
|
const [showPassword, setShowPassword] = useState(false);
|
||||||
|
const [errors, setErrors] = useState<any>([]);
|
||||||
|
const [isLoading, setIsLoading] = useState(false);
|
||||||
|
|
||||||
|
const submitForm = async (e: React.FormEvent) => {
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
|
if (!token) {
|
||||||
|
setErrors({ general: "Authentication token is missing. Please try signing in again." });
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
setIsLoading(true);
|
||||||
|
setErrors([]);
|
||||||
|
|
||||||
|
try {
|
||||||
|
await axios.post("/api/auth/set-password", {
|
||||||
|
password,
|
||||||
|
password_confirmation: passwordConfirmation,
|
||||||
|
}, {
|
||||||
|
headers: {
|
||||||
|
Authorization: `Bearer ${token}`
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Success
|
||||||
|
router.push("/dashboard?success=password_set");
|
||||||
|
} catch (error: any) {
|
||||||
|
if (error.response?.status === 422) {
|
||||||
|
setErrors(error.response.data.errors);
|
||||||
|
} else {
|
||||||
|
setErrors({ general: "Something went wrong. Please try again." });
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
setIsLoading(false);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="relative z-1 bg-white p-6 sm:p-0 dark:bg-gray-900 flex-grow flex">
|
||||||
|
{/* Form Section */}
|
||||||
|
<div className="flex w-full flex-1 flex-col lg:w-1/2 justify-center">
|
||||||
|
<div className="mx-auto w-full max-w-md pt-5 sm:py-10 px-4 sm:px-0">
|
||||||
|
|
||||||
|
<div className="mb-5 sm:mb-8">
|
||||||
|
<h1 className="text-2xl sm:text-3xl font-semibold text-gray-800 dark:text-white/90 mb-2">
|
||||||
|
Set Password
|
||||||
|
</h1>
|
||||||
|
<p className="text-sm text-gray-500 dark:text-gray-400">
|
||||||
|
Since you signed up via social login, please set a password for your account security.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<form onSubmit={submitForm}>
|
||||||
|
<div className="space-y-5">
|
||||||
|
{errors.general && (
|
||||||
|
<div className="p-3 text-sm text-red-500 bg-red-50 rounded-lg dark:bg-red-900/10 mb-4">
|
||||||
|
{errors.general}
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<label className="mb-1.5 block text-sm font-medium text-gray-700 dark:text-gray-400">
|
||||||
|
New Password<span className="text-red-500">*</span>
|
||||||
|
</label>
|
||||||
|
<div className="relative">
|
||||||
|
<input
|
||||||
|
type={showPassword ? "text" : "password"}
|
||||||
|
value={password}
|
||||||
|
onChange={(e) => setPassword(e.target.value)}
|
||||||
|
className="dark:bg-gray-900 shadow-sm focus:border-brand-300 focus:ring-brand-500/10 dark:focus:border-brand-800 h-11 w-full rounded-lg border border-gray-300 bg-transparent py-2.5 pr-11 pl-4 text-sm text-gray-800 placeholder:text-gray-400 focus:ring-3 focus:outline-hidden dark:border-gray-700 dark:text-white/90 dark:placeholder:text-white/30"
|
||||||
|
/>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
onClick={() => setShowPassword(!showPassword)}
|
||||||
|
className="absolute top-1/2 right-4 z-30 -translate-y-1/2 cursor-pointer text-gray-500 dark:text-gray-400"
|
||||||
|
>
|
||||||
|
{showPassword ? <EyeOff size={20} /> : <Eye size={20} />}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
{errors.password && <p className="mt-1 text-xs text-red-500">{errors.password[0]}</p>}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<label className="mb-1.5 block text-sm font-medium text-gray-700 dark:text-gray-400">
|
||||||
|
Confirm Password<span className="text-red-500">*</span>
|
||||||
|
</label>
|
||||||
|
<input
|
||||||
|
type="password"
|
||||||
|
value={passwordConfirmation}
|
||||||
|
onChange={(e) => setPasswordConfirmation(e.target.value)}
|
||||||
|
className="dark:bg-gray-900 shadow-sm focus:border-brand-300 focus:ring-brand-500/10 dark:focus:border-brand-800 h-11 w-full rounded-lg border border-gray-300 bg-transparent px-4 py-2.5 text-sm text-gray-800 placeholder:text-gray-400 focus:ring-3 focus:outline-hidden dark:border-gray-700 dark:text-white/90 dark:placeholder:text-white/30"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button
|
||||||
|
type="submit"
|
||||||
|
disabled={isLoading}
|
||||||
|
className="bg-brand-500 shadow-md hover:bg-brand-600 w-full rounded-lg px-4 py-3 text-sm font-medium text-white transition disabled:opacity-50"
|
||||||
|
>
|
||||||
|
{isLoading ? 'Setting Password...' : 'Set Password & Continue'}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Right Side Branding & Background */}
|
||||||
|
<div className="relative hidden w-full items-center justify-center lg:flex lg:w-1/2 overflow-hidden bg-brand-950 dark:bg-gray-900/50">
|
||||||
|
<CommonGridShape />
|
||||||
|
<div className="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[500px] h-[500px] bg-brand-500/10 rounded-full blur-[120px] pointer-events-none opacity-50"></div>
|
||||||
|
|
||||||
|
<div className="relative z-10 flex flex-col items-center max-w-sm px-8 text-center">
|
||||||
|
<Link href="/" className="mb-8 block transition-transform hover:scale-105 active:scale-95">
|
||||||
|
<img src="/images/logo/auth-logo.svg" alt="TrustLab Logo" className="h-16 w-auto" />
|
||||||
|
</Link>
|
||||||
|
<div className="space-y-4">
|
||||||
|
<h2 className="text-2xl font-bold text-white mb-2">
|
||||||
|
Secure Your Account
|
||||||
|
</h2>
|
||||||
|
<p className="text-gray-400 dark:text-gray-500 text-sm leading-relaxed">
|
||||||
|
Setting a password ensures you can always access your account, even if you lose access to your social login.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||