17 | */
18 | public function definition(): array
19 | {
20 | return [
21 | 'name' => fake()->name(),
22 | 'email' => fake()->unique()->safeEmail(),
23 | 'email_verified_at' => now(),
24 | 'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
25 | 'remember_token' => Str::random(10),
26 | ];
27 | }
28 |
29 | /**
30 | * Indicate that the model's email address should be unverified.
31 | */
32 | public function unverified(): static
33 | {
34 | return $this->state(fn (array $attributes) => [
35 | 'email_verified_at' => null,
36 | ]);
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/backend/database/migrations/2014_10_12_000000_create_users_table.php:
--------------------------------------------------------------------------------
1 | id();
16 | $table->string('name');
17 | $table->string('email')->unique();
18 | $table->timestamp('email_verified_at')->nullable();
19 | $table->string('password');
20 | $table->rememberToken();
21 | $table->timestamps();
22 | });
23 | }
24 |
25 | /**
26 | * Reverse the migrations.
27 | */
28 | public function down(): void
29 | {
30 | Schema::dropIfExists('users');
31 | }
32 | };
33 |
--------------------------------------------------------------------------------
/backend/database/migrations/2014_10_12_100000_create_password_reset_tokens_table.php:
--------------------------------------------------------------------------------
1 | string('email')->primary();
16 | $table->string('token');
17 | $table->timestamp('created_at')->nullable();
18 | });
19 | }
20 |
21 | /**
22 | * Reverse the migrations.
23 | */
24 | public function down(): void
25 | {
26 | Schema::dropIfExists('password_reset_tokens');
27 | }
28 | };
29 |
--------------------------------------------------------------------------------
/backend/database/migrations/2019_08_19_000000_create_failed_jobs_table.php:
--------------------------------------------------------------------------------
1 | id();
16 | $table->string('uuid')->unique();
17 | $table->text('connection');
18 | $table->text('queue');
19 | $table->longText('payload');
20 | $table->longText('exception');
21 | $table->timestamp('failed_at')->useCurrent();
22 | });
23 | }
24 |
25 | /**
26 | * Reverse the migrations.
27 | */
28 | public function down(): void
29 | {
30 | Schema::dropIfExists('failed_jobs');
31 | }
32 | };
33 |
--------------------------------------------------------------------------------
/backend/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php:
--------------------------------------------------------------------------------
1 | id();
16 | $table->morphs('tokenable');
17 | $table->string('name');
18 | $table->string('token', 64)->unique();
19 | $table->text('abilities')->nullable();
20 | $table->timestamp('last_used_at')->nullable();
21 | $table->timestamp('expires_at')->nullable();
22 | $table->timestamps();
23 | });
24 | }
25 |
26 | /**
27 | * Reverse the migrations.
28 | */
29 | public function down(): void
30 | {
31 | Schema::dropIfExists('personal_access_tokens');
32 | }
33 | };
34 |
--------------------------------------------------------------------------------
/backend/database/migrations/2023_04_06_230417_create_products_table.php:
--------------------------------------------------------------------------------
1 | id();
16 | $table->text('name');
17 | $table->text('description')->nullable();
18 | $table->decimal('price', 10, 2);
19 | $table->timestamps();
20 | });
21 | }
22 |
23 | /**
24 | * Reverse the migrations.
25 | */
26 | public function down(): void
27 | {
28 | Schema::dropIfExists('products');
29 | }
30 | };
31 |
--------------------------------------------------------------------------------
/backend/database/migrations/2023_04_16_124222_create_galleries_table.php:
--------------------------------------------------------------------------------
1 | id();
16 | $table->text('name_gallery');
17 | $table->text('description_gallery');
18 | $table->text('image');
19 | $table->timestamps();
20 | });
21 | }
22 |
23 | /**
24 | * Reverse the migrations.
25 | */
26 | public function down(): void
27 | {
28 | Schema::dropIfExists('galleries');
29 | }
30 | };
31 |
--------------------------------------------------------------------------------
/backend/database/seeders/DatabaseSeeder.php:
--------------------------------------------------------------------------------
1 | call([
16 | LaratrustSeeder::class
17 | ]);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/backend/phpunit.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 | ./tests/Unit
10 |
11 |
12 | ./tests/Feature
13 |
14 |
15 |
16 |
17 | ./app
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/backend/public/.htaccess:
--------------------------------------------------------------------------------
1 |
2 |
3 | Options -MultiViews -Indexes
4 |
5 |
6 | RewriteEngine On
7 |
8 | # Handle Authorization Header
9 | RewriteCond %{HTTP:Authorization} .
10 | RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
11 |
12 | # Redirect Trailing Slashes If Not A Folder...
13 | RewriteCond %{REQUEST_FILENAME} !-d
14 | RewriteCond %{REQUEST_URI} (.+)/$
15 | RewriteRule ^ %1 [L,R=301]
16 |
17 | # Send Requests To Front Controller...
18 | RewriteCond %{REQUEST_FILENAME} !-d
19 | RewriteCond %{REQUEST_FILENAME} !-f
20 | RewriteRule ^ index.php [L]
21 |
22 |
--------------------------------------------------------------------------------
/backend/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/backend/public/favicon.ico
--------------------------------------------------------------------------------
/backend/public/index.php:
--------------------------------------------------------------------------------
1 | make(Kernel::class);
50 |
51 | $response = $kernel->handle(
52 | $request = Request::capture()
53 | )->send();
54 |
55 | $kernel->terminate($request, $response);
56 |
--------------------------------------------------------------------------------
/backend/public/robots.txt:
--------------------------------------------------------------------------------
1 | User-agent: *
2 | Disallow:
3 |
--------------------------------------------------------------------------------
/backend/resources/views/.gitkeep:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/backend/routes/api.php:
--------------------------------------------------------------------------------
1 | name('register');
22 | Route::post('/login', App\Http\Controllers\Api\LoginController::class)->name('login');
23 | Route::middleware('auth:api')->get('/user', function (Request $request) {
24 | $user = $request->user(); $role = $user->hasRole('admin') ? 'admin' : 'user';
25 | $user->setAttribute('role', $role);
26 | return $user;
27 | });
28 |
29 | Route::group(['middleware' => ['auth:api']], function () {
30 | Route::get('/user', function (Request $request) {
31 | $user = $request->user(); $role = $user->hasRole('admin') ? 'admin' : 'user';
32 | $user->setAttribute('role', $role);
33 | return $user;
34 | });
35 | Route::get('/profile', [PersonalController::class, 'index']);
36 | Route::put('/profile', [PersonalController::class, 'updateProfile']);
37 | Route::put('/update-password', [PersonalController::class, 'updatePassword']);
38 | });
39 |
40 | Route::group(['middleware' => ['auth:api', 'role:admin']], function () {
41 | Route::resource('/products', ProductController::class);
42 | Route::post('/products/multiple-store', [ProductController::class, 'multipleStore']);
43 | Route::resource('/gallery', GalleryController::class);
44 | });
45 |
46 | Route::post('/logout', App\Http\Controllers\Api\LogoutController::class)->name('logout');
--------------------------------------------------------------------------------
/backend/routes/auth.php:
--------------------------------------------------------------------------------
1 | middleware('guest')
13 | ->name('register');
14 |
15 | Route::post('/login', [AuthenticatedSessionController::class, 'store'])
16 | ->middleware('guest')
17 | ->name('login');
18 |
19 | Route::post('/forgot-password', [PasswordResetLinkController::class, 'store'])
20 | ->middleware('guest')
21 | ->name('password.email');
22 |
23 | Route::post('/reset-password', [NewPasswordController::class, 'store'])
24 | ->middleware('guest')
25 | ->name('password.store');
26 |
27 | Route::get('/verify-email/{id}/{hash}', VerifyEmailController::class)
28 | ->middleware(['auth', 'signed', 'throttle:6,1'])
29 | ->name('verification.verify');
30 |
31 | Route::post('/email/verification-notification', [EmailVerificationNotificationController::class, 'store'])
32 | ->middleware(['auth', 'throttle:6,1'])
33 | ->name('verification.send');
34 |
35 | Route::post('/logout', [AuthenticatedSessionController::class, 'destroy'])
36 | ->middleware('auth')
37 | ->name('logout');
38 |
--------------------------------------------------------------------------------
/backend/routes/channels.php:
--------------------------------------------------------------------------------
1 | id === (int) $id;
18 | });
19 |
--------------------------------------------------------------------------------
/backend/routes/console.php:
--------------------------------------------------------------------------------
1 | comment(Inspiring::quote());
19 | })->purpose('Display an inspiring quote');
20 |
--------------------------------------------------------------------------------
/backend/routes/web.php:
--------------------------------------------------------------------------------
1 | app()->version()];
18 | });
19 |
20 | require __DIR__.'/auth.php';
21 |
--------------------------------------------------------------------------------
/backend/storage/app/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !public/
3 | !.gitignore
4 |
--------------------------------------------------------------------------------
/backend/storage/app/public/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/backend/storage/framework/.gitignore:
--------------------------------------------------------------------------------
1 | compiled.php
2 | config.php
3 | down
4 | events.scanned.php
5 | maintenance.php
6 | routes.php
7 | routes.scanned.php
8 | schedule-*
9 | services.json
10 |
--------------------------------------------------------------------------------
/backend/storage/framework/cache/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !data/
3 | !.gitignore
4 |
--------------------------------------------------------------------------------
/backend/storage/framework/cache/data/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/backend/storage/framework/sessions/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/backend/storage/framework/testing/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/backend/storage/framework/views/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/backend/storage/logs/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/backend/tests/CreatesApplication.php:
--------------------------------------------------------------------------------
1 | make(Kernel::class)->bootstrap();
18 |
19 | return $app;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/backend/tests/Feature/Auth/AuthenticationTest.php:
--------------------------------------------------------------------------------
1 | create();
16 |
17 | $response = $this->post('/login', [
18 | 'email' => $user->email,
19 | 'password' => 'password',
20 | ]);
21 |
22 | $this->assertAuthenticated();
23 | $response->assertNoContent();
24 | }
25 |
26 | public function test_users_can_not_authenticate_with_invalid_password(): void
27 | {
28 | $user = User::factory()->create();
29 |
30 | $this->post('/login', [
31 | 'email' => $user->email,
32 | 'password' => 'wrong-password',
33 | ]);
34 |
35 | $this->assertGuest();
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/backend/tests/Feature/Auth/EmailVerificationTest.php:
--------------------------------------------------------------------------------
1 | create([
20 | 'email_verified_at' => null,
21 | ]);
22 |
23 | Event::fake();
24 |
25 | $verificationUrl = URL::temporarySignedRoute(
26 | 'verification.verify',
27 | now()->addMinutes(60),
28 | ['id' => $user->id, 'hash' => sha1($user->email)]
29 | );
30 |
31 | $response = $this->actingAs($user)->get($verificationUrl);
32 |
33 | Event::assertDispatched(Verified::class);
34 | $this->assertTrue($user->fresh()->hasVerifiedEmail());
35 | $response->assertRedirect(config('app.frontend_url').RouteServiceProvider::HOME.'?verified=1');
36 | }
37 |
38 | public function test_email_is_not_verified_with_invalid_hash(): void
39 | {
40 | $user = User::factory()->create([
41 | 'email_verified_at' => null,
42 | ]);
43 |
44 | $verificationUrl = URL::temporarySignedRoute(
45 | 'verification.verify',
46 | now()->addMinutes(60),
47 | ['id' => $user->id, 'hash' => sha1('wrong-email')]
48 | );
49 |
50 | $this->actingAs($user)->get($verificationUrl);
51 |
52 | $this->assertFalse($user->fresh()->hasVerifiedEmail());
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/backend/tests/Feature/Auth/PasswordResetTest.php:
--------------------------------------------------------------------------------
1 | create();
20 |
21 | $this->post('/forgot-password', ['email' => $user->email]);
22 |
23 | Notification::assertSentTo($user, ResetPassword::class);
24 | }
25 |
26 | public function test_password_can_be_reset_with_valid_token(): void
27 | {
28 | Notification::fake();
29 |
30 | $user = User::factory()->create();
31 |
32 | $this->post('/forgot-password', ['email' => $user->email]);
33 |
34 | Notification::assertSentTo($user, ResetPassword::class, function (object $notification) use ($user) {
35 | $response = $this->post('/reset-password', [
36 | 'token' => $notification->token,
37 | 'email' => $user->email,
38 | 'password' => 'password',
39 | 'password_confirmation' => 'password',
40 | ]);
41 |
42 | $response->assertSessionHasNoErrors();
43 |
44 | return true;
45 | });
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/backend/tests/Feature/Auth/RegistrationTest.php:
--------------------------------------------------------------------------------
1 | post('/register', [
15 | 'name' => 'Test User',
16 | 'email' => 'test@example.com',
17 | 'password' => 'password',
18 | 'password_confirmation' => 'password',
19 | ]);
20 |
21 | $this->assertAuthenticated();
22 | $response->assertNoContent();
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/backend/tests/Feature/ExampleTest.php:
--------------------------------------------------------------------------------
1 | get('/');
16 |
17 | $response->assertStatus(200);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/backend/tests/TestCase.php:
--------------------------------------------------------------------------------
1 | assertTrue(true);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/frontend/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | dist
12 | dist-ssr
13 | *.local
14 |
15 | # Editor directories and files
16 | .vscode/*
17 | !.vscode/extensions.json
18 | .idea
19 | .DS_Store
20 | *.suo
21 | *.ntvs*
22 | *.njsproj
23 | *.sln
24 | *.sw?
25 |
--------------------------------------------------------------------------------
/frontend/.prettierrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "tabWidth": 4
3 | }
4 |
--------------------------------------------------------------------------------
/frontend/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
13 |
14 |
18 |
22 |
23 |
24 | Vite + React
25 |
26 |
27 |
28 |
29 |
30 |
31 |
36 |
41 |
42 |
43 |
44 |
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/frontend/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vite-project",
3 | "private": true,
4 | "version": "0.0.0",
5 | "type": "module",
6 | "scripts": {
7 | "dev": "vite",
8 | "build": "vite build",
9 | "preview": "vite preview"
10 | },
11 | "dependencies": {
12 | "axios": "^1.3.5",
13 | "crypto-js": "^4.1.1",
14 | "lodash": "^4.17.21",
15 | "react": "^18.2.0",
16 | "react-dom": "^18.2.0",
17 | "react-router-dom": "^6.10.0",
18 | "sweetalert2": "^11.7.3",
19 | "sweetalert2-react-content": "^5.0.7"
20 | },
21 | "devDependencies": {
22 | "@types/react": "^18.0.28",
23 | "@types/react-dom": "^18.0.11",
24 | "@vitejs/plugin-react": "^3.1.0",
25 | "autoprefixer": "^10.4.14",
26 | "postcss": "^8.4.21",
27 | "prettier": "2.8.7",
28 | "prettier-plugin-tailwindcss": "^0.2.7",
29 | "tailwindcss": "^3.3.1",
30 | "vite": "^4.2.0"
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/frontend/postcss.config.js:
--------------------------------------------------------------------------------
1 | export default {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | };
7 |
--------------------------------------------------------------------------------
/frontend/public/vite.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/frontend/src/App.css:
--------------------------------------------------------------------------------
1 | #root {
2 | max-width: 1280px;
3 | margin: 0 auto;
4 | padding: 2rem;
5 | text-align: center;
6 | }
7 |
8 | .logo {
9 | height: 6em;
10 | padding: 1.5em;
11 | will-change: filter;
12 | transition: filter 300ms;
13 | }
14 | .logo:hover {
15 | filter: drop-shadow(0 0 2em #646cffaa);
16 | }
17 | .logo.react:hover {
18 | filter: drop-shadow(0 0 2em #61dafbaa);
19 | }
20 |
21 | @keyframes logo-spin {
22 | from {
23 | transform: rotate(0deg);
24 | }
25 | to {
26 | transform: rotate(360deg);
27 | }
28 | }
29 |
30 | @media (prefers-reduced-motion: no-preference) {
31 | a:nth-of-type(2) .logo {
32 | animation: logo-spin infinite 20s linear;
33 | }
34 | }
35 |
36 | .card {
37 | padding: 2em;
38 | }
39 |
40 | .read-the-docs {
41 | color: #888;
42 | }
43 |
--------------------------------------------------------------------------------
/frontend/src/App.jsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import Navbar from "./components/Navbar";
3 | import Router from "./components/Router";
4 | import Sidebar from "./components/Sidebar";
5 | import Footer from "./components/Footer";
6 | export default function App() {
7 | return (
8 | <>
9 |
10 | >
11 | );
12 | }
13 |
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/css/custom.css:
--------------------------------------------------------------------------------
1 | /**
2 | *
3 | * You can write your CSS code here, DO NOT touch the default JavaScript file
4 | * because it will make it harder for you to update.
5 | *
6 | */
7 |
8 | /*# sourceMappingURL=custom.css.map */
9 |
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/css/custom.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sourceRoot":"","sources":["../../sources/scss/custom.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","file":"custom.css"}
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/css/skins/reverse.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sourceRoot":"","sources":["../../../sources/scss/skins/reverse.scss"],"names":[],"mappings":"AAMM;EACE;;AAKI;EACE;EACA;EACA;;AAMA;AAAA;EACE;EACA;;AACA;AAAA;EACI;EACA;;AAIJ;AAAA;EACE;EACA;;AAShB;EACE;;AAEE;EACE;;AAKA;EACE;;AACA;EACE;;AAIF;AAAA;AAAA;AAAA;EAIE;;AAGJ;EACE;;AAIE;EACE;;AACA;EACE;EACA;;AAIF;EACE;;AASd;AAAA;EAEE;;AACA;AAAA;AAAA;AAAA;EAEE;;AACA;AAAA;AAAA;AAAA;EACE;;AAKF;AAAA;AAAA;AAAA;EAEE","file":"reverse.css"}
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/nunito-v9-latin-600.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/nunito-v9-latin-600.eot
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/nunito-v9-latin-600.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/nunito-v9-latin-600.ttf
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/nunito-v9-latin-600.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/nunito-v9-latin-600.woff
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/nunito-v9-latin-600.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/nunito-v9-latin-600.woff2
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/nunito-v9-latin-700.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/nunito-v9-latin-700.eot
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/nunito-v9-latin-700.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/nunito-v9-latin-700.ttf
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/nunito-v9-latin-700.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/nunito-v9-latin-700.woff
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/nunito-v9-latin-700.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/nunito-v9-latin-700.woff2
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/nunito-v9-latin-800.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/nunito-v9-latin-800.eot
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/nunito-v9-latin-800.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/nunito-v9-latin-800.ttf
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/nunito-v9-latin-800.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/nunito-v9-latin-800.woff
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/nunito-v9-latin-800.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/nunito-v9-latin-800.woff2
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/nunito-v9-latin-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/nunito-v9-latin-regular.eot
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/nunito-v9-latin-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/nunito-v9-latin-regular.ttf
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/nunito-v9-latin-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/nunito-v9-latin-regular.woff
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/nunito-v9-latin-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/nunito-v9-latin-regular.woff2
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Black-FD-WOL.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Black-FD-WOL.eot
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Black-FD-WOL.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Black-FD-WOL.ttf
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Black-FD-WOL.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Black-FD-WOL.woff
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Black-FD-WOL.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Black-FD-WOL.woff2
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Bold-FD-WOL.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Bold-FD-WOL.eot
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Bold-FD-WOL.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Bold-FD-WOL.ttf
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Bold-FD-WOL.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Bold-FD-WOL.woff
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Bold-FD-WOL.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Bold-FD-WOL.woff2
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-FD-WOL.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-FD-WOL.eot
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-FD-WOL.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-FD-WOL.ttf
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-FD-WOL.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-FD-WOL.woff
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-FD-WOL.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-FD-WOL.woff2
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Light-FD-WOL.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Light-FD-WOL.eot
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Light-FD-WOL.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Light-FD-WOL.ttf
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Light-FD-WOL.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Light-FD-WOL.woff
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Light-FD-WOL.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Light-FD-WOL.woff2
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Medium-FD-WOL.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Medium-FD-WOL.eot
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Medium-FD-WOL.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Medium-FD-WOL.ttf
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Medium-FD-WOL.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Medium-FD-WOL.woff
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Medium-FD-WOL.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Medium-FD-WOL.woff2
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Thin-FD-WOL.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Thin-FD-WOL.eot
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Thin-FD-WOL.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Thin-FD-WOL.ttf
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Thin-FD-WOL.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Thin-FD-WOL.woff
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Thin-FD-WOL.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits-Without-Latin/Vazir-Thin-FD-WOL.woff2
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Black-FD.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Black-FD.eot
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Black-FD.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Black-FD.ttf
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Black-FD.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Black-FD.woff
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Black-FD.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Black-FD.woff2
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Bold-FD.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Bold-FD.eot
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Bold-FD.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Bold-FD.ttf
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Bold-FD.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Bold-FD.woff
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Bold-FD.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Bold-FD.woff2
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-FD.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-FD.eot
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-FD.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-FD.ttf
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-FD.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-FD.woff
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-FD.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-FD.woff2
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Light-FD.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Light-FD.eot
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Light-FD.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Light-FD.ttf
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Light-FD.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Light-FD.woff
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Light-FD.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Light-FD.woff2
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Medium-FD.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Medium-FD.eot
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Medium-FD.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Medium-FD.ttf
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Medium-FD.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Medium-FD.woff
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Medium-FD.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Medium-FD.woff2
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Thin-FD.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Thin-FD.eot
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Thin-FD.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Thin-FD.ttf
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Thin-FD.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Thin-FD.woff
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Thin-FD.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Farsi-Digits/Vazir-Thin-FD.woff2
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/LICENSE:
--------------------------------------------------------------------------------
1 | Changes by Saber Rastikerdar are in public domain.
2 | Glyphs and data from Roboto font are licensed under the Apache License, Version 2.0.
3 |
4 | Fonts are (c) Bitstream (see below). DejaVu changes are in public domain.
5 |
6 | Bitstream Vera Fonts Copyright
7 | ------------------------------
8 |
9 | Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is
10 | a trademark of Bitstream, Inc.
11 |
12 | Permission is hereby granted, free of charge, to any person obtaining a copy
13 | of the fonts accompanying this license ("Fonts") and associated
14 | documentation files (the "Font Software"), to reproduce and distribute the
15 | Font Software, including without limitation the rights to use, copy, merge,
16 | publish, distribute, and/or sell copies of the Font Software, and to permit
17 | persons to whom the Font Software is furnished to do so, subject to the
18 | following conditions:
19 |
20 | The above copyright and trademark notices and this permission notice shall
21 | be included in all copies of one or more of the Font Software typefaces.
22 |
23 | The Font Software may be modified, altered, or added to, and in particular
24 | the designs of glyphs or characters in the Fonts may be modified and
25 | additional glyphs or characters may be added to the Fonts, only if the fonts
26 | are renamed to names not containing either the words "Bitstream" or the word
27 | "Vera".
28 |
29 | This License becomes null and void to the extent applicable to Fonts or Font
30 | Software that has been modified and is distributed under the "Bitstream
31 | Vera" names.
32 |
33 | The Font Software may be sold as part of a larger software package but no
34 | copy of one or more of the Font Software typefaces may be sold by itself.
35 |
36 | THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
37 | OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
38 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
39 | TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME
40 | FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING
41 | ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
42 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
43 | THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE
44 | FONT SOFTWARE.
45 |
46 | Except as contained in this notice, the names of Gnome, the Gnome
47 | Foundation, and Bitstream Inc., shall not be used in advertising or
48 | otherwise to promote the sale, use or other dealings in this Font Software
49 | without prior written authorization from the Gnome Foundation or Bitstream
50 | Inc., respectively. For further information, contact: fonts at gnome dot
51 | org.
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Vazir-Black.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Vazir-Black.eot
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Vazir-Black.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Vazir-Black.ttf
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Vazir-Black.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Vazir-Black.woff
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Vazir-Black.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Vazir-Black.woff2
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Vazir-Bold.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Vazir-Bold.eot
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Vazir-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Vazir-Bold.ttf
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Vazir-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Vazir-Bold.woff
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Vazir-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Vazir-Bold.woff2
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Vazir-Light.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Vazir-Light.eot
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Vazir-Light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Vazir-Light.ttf
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Vazir-Light.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Vazir-Light.woff
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Vazir-Light.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Vazir-Light.woff2
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Vazir-Medium.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Vazir-Medium.eot
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Vazir-Medium.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Vazir-Medium.ttf
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Vazir-Medium.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Vazir-Medium.woff
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Vazir-Medium.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Vazir-Medium.woff2
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Vazir-Thin.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Vazir-Thin.eot
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Vazir-Thin.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Vazir-Thin.ttf
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Vazir-Thin.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Vazir-Thin.woff
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Vazir-Thin.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Vazir-Thin.woff2
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Vazir.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Vazir.eot
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Vazir.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Vazir.ttf
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Vazir.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Vazir.woff
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Vazir.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Vazir.woff2
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Black-WOL.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Black-WOL.eot
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Black-WOL.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Black-WOL.ttf
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Black-WOL.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Black-WOL.woff
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Black-WOL.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Black-WOL.woff2
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Bold-WOL.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Bold-WOL.eot
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Bold-WOL.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Bold-WOL.ttf
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Bold-WOL.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Bold-WOL.woff
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Bold-WOL.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Bold-WOL.woff2
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Light-WOL.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Light-WOL.eot
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Light-WOL.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Light-WOL.ttf
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Light-WOL.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Light-WOL.woff
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Light-WOL.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Light-WOL.woff2
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Medium-WOL.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Medium-WOL.eot
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Medium-WOL.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Medium-WOL.ttf
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Medium-WOL.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Medium-WOL.woff
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Medium-WOL.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Medium-WOL.woff2
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Thin-WOL.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Thin-WOL.eot
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Thin-WOL.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Thin-WOL.ttf
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Thin-WOL.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Thin-WOL.woff
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Thin-WOL.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-Thin-WOL.woff2
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-WOL.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-WOL.eot
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-WOL.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-WOL.ttf
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-WOL.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-WOL.woff
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-WOL.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/Without-Latin/Vazir-WOL.woff2
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/font-face.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: Vazir;
3 | src: url("Vazir.eot");
4 | src: url("Vazir.eot?#iefix") format("embedded-opentype"),
5 | url("Vazir.woff2") format("woff2"), url("Vazir.woff") format("woff"),
6 | url("Vazir.ttf") format("truetype");
7 | font-weight: normal;
8 | }
9 |
10 | @font-face {
11 | font-family: Vazir;
12 | src: url("Vazir-Bold.eot");
13 | src: url("Vazir-Bold.eot?#iefix") format("embedded-opentype"),
14 | url("Vazir-Bold.woff2") format("woff2"),
15 | url("Vazir-Bold.woff") format("woff"),
16 | url("Vazir-Bold.ttf") format("truetype");
17 | font-weight: bold;
18 | }
19 |
20 | @font-face {
21 | font-family: Vazir;
22 | src: url("Vazir-Light.eot");
23 | src: url("Vazir-Light.eot?#iefix") format("embedded-opentype"),
24 | url("Vazir-Light.woff2") format("woff2"),
25 | url("Vazir-Light.woff") format("woff"),
26 | url("Vazir-Light.ttf") format("truetype");
27 | font-weight: 300;
28 | }
29 |
30 | @font-face {
31 | font-family: Vazir;
32 | src: url("Vazir-Medium.eot");
33 | src: url("Vazir-Medium.eot?#iefix") format("embedded-opentype"),
34 | url("Vazir-Medium.woff2") format("woff2"),
35 | url("Vazir-Medium.woff") format("woff"),
36 | url("Vazir-Medium.ttf") format("truetype");
37 | font-weight: 500;
38 | }
39 |
40 | @font-face {
41 | font-family: Vazir;
42 | src: url("Vazir-Thin.eot");
43 | src: url("Vazir-Thin.eot?#iefix") format("embedded-opentype"),
44 | url("Vazir-Thin.woff2") format("woff2"),
45 | url("Vazir-Thin.woff") format("woff"),
46 | url("Vazir-Thin.ttf") format("truetype");
47 | font-weight: 100;
48 | }
49 |
50 | @font-face {
51 | font-family: Vazir;
52 | src: url("Vazir-Black.eot");
53 | src: url("Vazir-Black.eot?#iefix") format("embedded-opentype"),
54 | url("Vazir-Black.woff2") format("woff2"),
55 | url("Vazir-Black.woff") format("woff"),
56 | url("Vazir-Black.ttf") format("truetype");
57 | font-weight: 900;
58 | }
59 |
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/fonts/vazir/sample.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/fonts/vazir/sample.png
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/avatar/avatar-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/avatar/avatar-1.png
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/avatar/avatar-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/avatar/avatar-2.png
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/avatar/avatar-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/avatar/avatar-3.png
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/avatar/avatar-4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/avatar/avatar-4.png
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/avatar/avatar-5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/avatar/avatar-5.png
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/example-image-50.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/example-image-50.jpg
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/example-image.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/example-image.jpg
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/news/img01.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/news/img01.jpg
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/news/img02.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/news/img02.jpg
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/news/img03.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/news/img03.jpg
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/news/img04.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/news/img04.jpg
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/news/img05.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/news/img05.jpg
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/news/img06.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/news/img06.jpg
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/news/img07.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/news/img07.jpg
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/news/img08.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/news/img08.jpg
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/news/img09.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/news/img09.jpg
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/news/img10.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/news/img10.jpg
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/news/img11.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/news/img11.jpg
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/news/img12.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/news/img12.jpg
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/news/img13.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/news/img13.jpg
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/news/img14.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/news/img14.jpg
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/news/img15.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/news/img15.jpg
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/news/img16.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/news/img16.jpg
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/news/img17.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/news/img17.jpg
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/p-250.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/p-250.png
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/p-50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/p-50.png
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/products/product-1-50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/products/product-1-50.png
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/products/product-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/products/product-1.jpg
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/products/product-2-50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/products/product-2-50.png
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/products/product-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/products/product-2.jpg
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/products/product-3-50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/products/product-3-50.png
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/products/product-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/products/product-3.jpg
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/products/product-4-50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/products/product-4-50.png
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/products/product-4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/products/product-4.jpg
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/products/product-5-50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/products/product-5-50.png
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/products/product-5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/products/product-5.jpg
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/stisla-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/stisla-light.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/stisla-transparent.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/stisla.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/unsplash/andre-benz-1214056-unsplash.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/unsplash/andre-benz-1214056-unsplash.jpg
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/unsplash/eberhard-grossgasteiger-1207565-unsplash.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/unsplash/eberhard-grossgasteiger-1207565-unsplash.jpg
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/img/unsplash/login-bg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fhmiibrhimdev/laravel-react-vite-stisla/261df4d4c116287e9b1054fcad48b5c03e661df7/frontend/src/assets/stisla/img/unsplash/login-bg.jpg
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/js/custom.js:
--------------------------------------------------------------------------------
1 | /**
2 | *
3 | * You can write your JS code here, DO NOT touch the default style file
4 | * because it will make it harder for you to update.
5 | *
6 | */
7 |
8 | "use strict";
9 |
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/js/page/auth-register.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | $(".pwstrength").pwstrength();
4 |
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/js/page/components-multiple-upload.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | var dropzone = new Dropzone("#mydropzone", {
4 | url: "#",
5 | });
6 |
7 | var minSteps = 6,
8 | maxSteps = 60,
9 | timeBetweenSteps = 100,
10 | bytesPerStep = 100000;
11 |
12 | dropzone.uploadFiles = function (files) {
13 | var self = this;
14 |
15 | for (var i = 0; i < files.length; i++) {
16 | var file = files[i];
17 | totalSteps = Math.round(
18 | Math.min(maxSteps, Math.max(minSteps, file.size / bytesPerStep))
19 | );
20 |
21 | for (var step = 0; step < totalSteps; step++) {
22 | var duration = timeBetweenSteps * (step + 1);
23 | setTimeout(
24 | (function (file, totalSteps, step) {
25 | return function () {
26 | file.upload = {
27 | progress: (100 * (step + 1)) / totalSteps,
28 | total: file.size,
29 | bytesSent: ((step + 1) * file.size) / totalSteps,
30 | };
31 |
32 | self.emit(
33 | "uploadprogress",
34 | file,
35 | file.upload.progress,
36 | file.upload.bytesSent
37 | );
38 | if (file.upload.progress == 100) {
39 | file.status = Dropzone.SUCCESS;
40 | self.emit("success", file, "success", null);
41 | self.emit("complete", file);
42 | self.processQueue();
43 | }
44 | };
45 | })(file, totalSteps, step),
46 | duration
47 | );
48 | }
49 | }
50 | };
51 |
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/js/page/components-table.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | $("[data-checkboxes]").each(function () {
4 | var me = $(this),
5 | group = me.data("checkboxes"),
6 | role = me.data("checkbox-role");
7 |
8 | me.change(function () {
9 | var all = $(
10 | '[data-checkboxes="' +
11 | group +
12 | '"]:not([data-checkbox-role="dad"])'
13 | ),
14 | checked = $(
15 | '[data-checkboxes="' +
16 | group +
17 | '"]:not([data-checkbox-role="dad"]):checked'
18 | ),
19 | dad = $(
20 | '[data-checkboxes="' + group + '"][data-checkbox-role="dad"]'
21 | ),
22 | total = all.length,
23 | checked_length = checked.length;
24 |
25 | if (role == "dad") {
26 | if (me.is(":checked")) {
27 | all.prop("checked", true);
28 | } else {
29 | all.prop("checked", false);
30 | }
31 | } else {
32 | if (checked_length >= total) {
33 | dad.prop("checked", true);
34 | } else {
35 | dad.prop("checked", false);
36 | }
37 | }
38 | });
39 | });
40 |
41 | $("#sortable-table tbody").sortable({
42 | handle: ".sort-handler",
43 | });
44 |
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/js/page/components-user.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | $("#users-carousel").owlCarousel({
4 | items: 4,
5 | margin: 20,
6 | autoplay: true,
7 | autoplayTimeout: 5000,
8 | loop: true,
9 | responsive: {
10 | 0: {
11 | items: 2,
12 | },
13 | 578: {
14 | items: 4,
15 | },
16 | 768: {
17 | items: 4,
18 | },
19 | },
20 | });
21 |
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/js/page/features-post-create.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | $("select").selectric();
4 | $.uploadPreview({
5 | input_field: "#image-upload", // Default: .image-upload
6 | preview_box: "#image-preview", // Default: .image-preview
7 | label_field: "#image-label", // Default: .image-label
8 | label_default: "Choose File", // Default: Choose File
9 | label_selected: "Change File", // Default: Change File
10 | no_label: false, // Default: false
11 | success_callback: null, // Default: null
12 | });
13 | $(".inputtags").tagsinput("items");
14 |
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/js/page/features-posts.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | $("[data-checkboxes]").each(function () {
4 | var me = $(this),
5 | group = me.data("checkboxes"),
6 | role = me.data("checkbox-role");
7 |
8 | me.change(function () {
9 | var all = $(
10 | '[data-checkboxes="' +
11 | group +
12 | '"]:not([data-checkbox-role="dad"])'
13 | ),
14 | checked = $(
15 | '[data-checkboxes="' +
16 | group +
17 | '"]:not([data-checkbox-role="dad"]):checked'
18 | ),
19 | dad = $(
20 | '[data-checkboxes="' + group + '"][data-checkbox-role="dad"]'
21 | ),
22 | total = all.length,
23 | checked_length = checked.length;
24 |
25 | if (role == "dad") {
26 | if (me.is(":checked")) {
27 | all.prop("checked", true);
28 | } else {
29 | all.prop("checked", false);
30 | }
31 | } else {
32 | if (checked_length >= total) {
33 | dad.prop("checked", true);
34 | } else {
35 | dad.prop("checked", false);
36 | }
37 | }
38 | });
39 | });
40 |
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/js/page/features-setting-detail.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | $("#setting-form").submit(function () {
4 | let save_button = $(this).find("#save-btn"),
5 | output_status = $("#output-status"),
6 | card = $("#settings-card");
7 |
8 | let card_progress = $.cardProgress(card, {
9 | spinner: false,
10 | });
11 | save_button.addClass("btn-progress");
12 | output_status.html("");
13 |
14 | // Do AJAX here
15 | // Here's fake AJAX
16 | setTimeout(function () {
17 | card_progress.dismiss(function () {
18 | $("html, body").animate({
19 | scrollTop: 0,
20 | });
21 |
22 | output_status.prepend(
23 | 'Setting saved Successfully.
'
24 | );
25 | save_button.removeClass("btn-progress");
26 | });
27 | }, 3000);
28 | return false;
29 | });
30 |
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/js/page/forms-advanced-forms.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | var cleavePN = new Cleave(".phone-number", {
4 | phone: true,
5 | phoneRegionCode: "us",
6 | });
7 | var cleaveC = new Cleave(".currency", {
8 | numeral: true,
9 | numeralThousandsGroupStyle: "thousand",
10 | });
11 | var cleavePC = new Cleave(".purchase-code", {
12 | delimiter: "-",
13 | blocks: [4, 4, 4, 4],
14 | uppercase: true,
15 | });
16 | var cleaveI = new Cleave(".invoice-input", {
17 | prefix: "INV",
18 | delimiter: "-",
19 | blocks: [10],
20 | uppercase: true,
21 | });
22 | var cleaveD = new Cleave(".datemask", {
23 | date: true,
24 | datePattern: ["Y", "m", "d"],
25 | });
26 | var cc_last_type;
27 | var cleaveCC = new Cleave(".creditcard", {
28 | creditCard: true,
29 | onCreditCardTypeChanged: function (type) {
30 | if (type !== "unknown") {
31 | if (type == "amex") {
32 | type = "americanexpress";
33 | } else if (type == "mastercard") {
34 | type = "mastercard";
35 | } else if (type == "visa") {
36 | type = "visa";
37 | } else if (type == "diners") {
38 | type = "dinersclub";
39 | } else if (type == "discover") {
40 | type = "discover";
41 | } else if (type == "jcb") {
42 | type = "jcb";
43 | }
44 | $(".creditcard").removeClass(cc_last_type);
45 | $(".creditcard").addClass(type);
46 | cc_last_type = type;
47 | }
48 | },
49 | });
50 |
51 | $(".pwstrength").pwstrength();
52 |
53 | $(".daterange-cus").daterangepicker({
54 | locale: { format: "YYYY-MM-DD" },
55 | drops: "down",
56 | opens: "right",
57 | });
58 | $(".daterange-btn").daterangepicker(
59 | {
60 | ranges: {
61 | Today: [moment(), moment()],
62 | Yesterday: [
63 | moment().subtract(1, "days"),
64 | moment().subtract(1, "days"),
65 | ],
66 | "Last 7 Days": [moment().subtract(6, "days"), moment()],
67 | "Last 30 Days": [moment().subtract(29, "days"), moment()],
68 | "This Month": [moment().startOf("month"), moment().endOf("month")],
69 | "Last Month": [
70 | moment().subtract(1, "month").startOf("month"),
71 | moment().subtract(1, "month").endOf("month"),
72 | ],
73 | },
74 | startDate: moment().subtract(29, "days"),
75 | endDate: moment(),
76 | },
77 | function (start, end) {
78 | $(".daterange-btn span").html(
79 | start.format("MMMM D, YYYY") + " - " + end.format("MMMM D, YYYY")
80 | );
81 | }
82 | );
83 |
84 | $(".colorpickerinput").colorpicker({
85 | format: "hex",
86 | component: ".input-group-append",
87 | });
88 | $(".inputtags").tagsinput("items");
89 |
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/js/page/gmaps-advanced-route.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | // initialize map
4 | var map = new GMaps({
5 | div: "#map",
6 | lat: -6.5637928,
7 | lng: 106.7535061,
8 | });
9 |
10 | // when the 'start travel' button is clicked
11 | $("#start-travel").click(function () {
12 | $(this).fadeOut();
13 | $("#instructions").before("Instructions
");
14 | map.travelRoute({
15 | origin: [-6.5637928, 106.7535061],
16 | destination: [-6.5956157, 106.788236],
17 | travelMode: "driving",
18 | step: function (e) {
19 | $("#instructions").append(
20 | '
' +
21 | e.instructions +
22 | "
"
23 | );
24 | $("#instructions li:eq(" + e.step_number + ")")
25 | .delay(450 * e.step_number)
26 | .fadeIn(200, function () {
27 | map.setCenter(e.end_location.lat(), e.end_location.lng());
28 | map.drawPolyline({
29 | path: e.path,
30 | strokeColor: "#131540",
31 | strokeOpacity: 0.6,
32 | strokeWeight: 6,
33 | });
34 | });
35 | },
36 | });
37 | });
38 |
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/js/page/gmaps-draggable-marker.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | var input_lat = $("#input-lat"), // latitude input text
4 | input_lng = $("#input-lng"), // longitude input text
5 | map = new GMaps({
6 | // init map
7 | div: "#map",
8 | lat: -6.5637928,
9 | lng: 106.7535061,
10 | });
11 |
12 | // add marker
13 | var marker = map.addMarker({
14 | lat: -6.5637928,
15 | lng: 106.7535061,
16 | draggable: true,
17 | });
18 |
19 | // when the map is clicked
20 | map.addListener("click", function (e) {
21 | var lat = e.latLng.lat(),
22 | lng = e.latLng.lng();
23 |
24 | // move the marker position
25 | marker.setPosition({
26 | lat: lat,
27 | lng: lng,
28 | });
29 | update_position();
30 | });
31 |
32 | // when the marker is dragged
33 | marker.addListener("drag", function (e) {
34 | update_position();
35 | });
36 |
37 | // set the value to latitude and longitude input
38 | update_position();
39 | function update_position() {
40 | var lat = marker.getPosition().lat(),
41 | lng = marker.getPosition().lng();
42 | input_lat.val(lat);
43 | input_lng.val(lng);
44 | }
45 |
46 | // move the marker when the latitude and longitude inputs change in value
47 | $("#input-lat,#input-lng").blur(function () {
48 | var lat = parseInt(input_lat.val()),
49 | lng = parseInt(input_lng.val());
50 |
51 | marker.setPosition({
52 | lat: lat,
53 | lng: lng,
54 | });
55 | map.setCenter({
56 | lat: lat,
57 | lng: lng,
58 | });
59 | });
60 |
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/js/page/gmaps-geocoding.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | // initialize map
4 | var map = new GMaps({
5 | div: "#map",
6 | lat: -6.5637928,
7 | lng: 106.7535061,
8 | });
9 |
10 | // when the form is submitted
11 | $("#search-form").submit(function (e) {
12 | e.preventDefault();
13 |
14 | // initialize map geocode
15 | GMaps.geocode({
16 | address: $("#address").val(),
17 | callback: function (results, status) {
18 | if (status == "OK") {
19 | var latlng = results[0].geometry.location;
20 | map.setCenter(latlng.lat(), latlng.lng());
21 | map.addMarker({
22 | lat: latlng.lat(),
23 | lng: latlng.lng(),
24 | });
25 | }
26 | },
27 | });
28 | });
29 |
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/js/page/gmaps-geolocation.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | // initialize map
4 | var map = new GMaps({
5 | div: "#map",
6 | lat: -6.5637928,
7 | lng: 106.7535061,
8 | });
9 | // initialize map geolocation
10 | GMaps.geolocate({
11 | // when geolocation is allowed by user
12 | success: function (position) {
13 | // set center map according to user position
14 | map.setCenter(position.coords.latitude, position.coords.longitude);
15 | // add a marker to the map
16 | map.addMarker({
17 | lat: position.coords.latitude,
18 | lng: position.coords.longitude,
19 | title: "You",
20 | });
21 | },
22 | // when geolocation is blocked by the user
23 | error: function (error) {
24 | toastr.error("Geolocation failed: " + error.message);
25 | },
26 | // when the user's browser does not support
27 | not_supported: function () {
28 | toastr.error("Your browser does not support geolocation");
29 | },
30 | });
31 |
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/js/page/gmaps-marker.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | // initialize map
4 | var map = new GMaps({
5 | div: "#map",
6 | lat: -6.5637928,
7 | lng: 106.7535061,
8 | });
9 | // Added a marker to the map
10 | map.addMarker({
11 | lat: -6.5637928,
12 | lng: 106.7535061,
13 | title: "Multinity",
14 | infoWindow: {
15 | content:
16 | 'Multinity
Jl. HM. Syarifudin, Bubulak, Bogor Bar.,
Kota Bogor, Jawa Barat 16115
Website
',
17 | },
18 | });
19 |
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/js/page/gmaps-multiple-marker.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | // initialize map
4 | var map = new GMaps({
5 | div: "#map",
6 | lat: -6.8665409,
7 | lng: 106.4836553,
8 | zoom: 8,
9 | });
10 | // Added markers to the map
11 | map.addMarker({
12 | lat: -6.5637928,
13 | lng: 106.7535061,
14 | title: "Multinity",
15 | infoWindow: {
16 | content:
17 | 'Multinity
Jl. HM. Syarifudin, Bubulak, Bogor Bar.,
Kota Bogor, Jawa Barat 16115
Website
',
18 | },
19 | });
20 | map.addMarker({
21 | lat: -6.1325841,
22 | lng: 106.8116507,
23 | title: "Procyon Logikreasi Indonesia",
24 | infoWindow: {
25 | content:
26 | 'Procyon Logikreasi Indonesia
Jl. Kali Besar Tim. No.29C, RT.7/RW.7, Pinangsia, Tamansari, Kota Jakarta Barat, Daerah Khusus Ibukota Jakarta 11110
Website
',
27 | },
28 | });
29 | map.addMarker({
30 | lat: -6.4462693,
31 | lng: 106.7654318,
32 | title: "Sigma ID",
33 | infoWindow: {
34 | content:
35 | 'Sigma ID
Jl.Setapak No.5, Citayam, Tajur Halang, Bogor, Jawa Barat 16320
Website
',
36 | },
37 | });
38 |
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/js/page/gmaps-route.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | // initialize map
4 | var map = new GMaps({
5 | div: "#map",
6 | lat: -6.5637928,
7 | lng: 106.7535061,
8 | zoom: 13,
9 | });
10 |
11 | // draw route between 'origin' to 'destination'
12 | map.drawRoute({
13 | origin: [-6.5637928, 106.7535061],
14 | destination: [-6.5956157, 106.788236],
15 | travelMode: "driving",
16 | strokeColor: "#131540",
17 | strokeOpacity: 0.6,
18 | strokeWeight: 6,
19 | });
20 |
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/js/page/gmaps-simple.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | var simple_map = new GMaps({
4 | div: "#simple-map",
5 | lat: -6.5637928,
6 | lng: 106.7535061,
7 | });
8 |
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/js/page/modules-calendar.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | $("#myEvent").fullCalendar({
4 | height: "auto",
5 | header: {
6 | left: "prev,next today",
7 | center: "title",
8 | right: "month,agendaWeek,agendaDay,listWeek",
9 | },
10 | editable: true,
11 | events: [
12 | {
13 | title: "Conference",
14 | start: "2018-01-9",
15 | end: "2018-01-11",
16 | backgroundColor: "#fff",
17 | borderColor: "#fff",
18 | textColor: "#000",
19 | },
20 | {
21 | title: "John's Birthday",
22 | start: "2018-01-14",
23 | backgroundColor: "#007bff",
24 | borderColor: "#007bff",
25 | textColor: "#fff",
26 | },
27 | {
28 | title: "Reporting",
29 | start: "2018-01-10T11:30:00",
30 | backgroundColor: "#f56954",
31 | borderColor: "#f56954",
32 | textColor: "#fff",
33 | },
34 | {
35 | title: "Starting New Project",
36 | start: "2018-01-11",
37 | backgroundColor: "#ffc107",
38 | borderColor: "#ffc107",
39 | textColor: "#fff",
40 | },
41 | {
42 | title: "Social Distortion Concert",
43 | start: "2018-01-24",
44 | end: "2018-01-27",
45 | backgroundColor: "#000",
46 | borderColor: "#000",
47 | textColor: "#fff",
48 | },
49 | {
50 | title: "Lunch",
51 | start: "2018-01-24T13:15:00",
52 | backgroundColor: "#fff",
53 | borderColor: "#fff",
54 | textColor: "#000",
55 | },
56 | {
57 | title: "Company Trip",
58 | start: "2018-01-28",
59 | end: "2018-01-31",
60 | backgroundColor: "#fff",
61 | borderColor: "#fff",
62 | textColor: "#000",
63 | },
64 | ],
65 | });
66 |
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/js/page/modules-datatables.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | $("[data-checkboxes]").each(function () {
4 | var me = $(this),
5 | group = me.data("checkboxes"),
6 | role = me.data("checkbox-role");
7 |
8 | me.change(function () {
9 | var all = $(
10 | '[data-checkboxes="' +
11 | group +
12 | '"]:not([data-checkbox-role="dad"])'
13 | ),
14 | checked = $(
15 | '[data-checkboxes="' +
16 | group +
17 | '"]:not([data-checkbox-role="dad"]):checked'
18 | ),
19 | dad = $(
20 | '[data-checkboxes="' + group + '"][data-checkbox-role="dad"]'
21 | ),
22 | total = all.length,
23 | checked_length = checked.length;
24 |
25 | if (role == "dad") {
26 | if (me.is(":checked")) {
27 | all.prop("checked", true);
28 | } else {
29 | all.prop("checked", false);
30 | }
31 | } else {
32 | if (checked_length >= total) {
33 | dad.prop("checked", true);
34 | } else {
35 | dad.prop("checked", false);
36 | }
37 | }
38 | });
39 | });
40 |
41 | $("#table-1").dataTable({
42 | columnDefs: [{ sortable: false, targets: [2, 3] }],
43 | });
44 | $("#table-2").dataTable({
45 | columnDefs: [{ sortable: false, targets: [0, 2, 3] }],
46 | });
47 |
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/js/page/modules-ion-icons.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | $("#icons li").each(function () {
4 | $(this).append(
5 | '' + $(this).attr("class") + "
"
6 | );
7 | });
8 | $("#icons li").click(function () {
9 | $(".icon-name").fadeOut();
10 | $(this).find(".icon-name").fadeIn();
11 | });
12 |
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/js/page/modules-slider.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | $("#slider1,#slider2").owlCarousel({
4 | items: 1,
5 | nav: true,
6 | navText: [
7 | '',
8 | '',
9 | ],
10 | });
11 |
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/js/page/modules-sparkline.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | var sparkline_values = [
4 | 110, 147, 324, 108, 235, 498, 346, 525, 382, 214, 427, 424, 239, 236,
5 | 475, 569,
6 | ],
7 | sparkline_values_bar = [
8 | 10, 7, 4, 8, 5, 8, 6, 5, 2, 4, 7, 4, 9, 10, 7, 4, 8, 5, 8, 6, 5, 4,
9 | ],
10 | sparkline_pie = [30, 20, 10];
11 |
12 | $(".sparkline-inline").sparkline(sparkline_values, {
13 | type: "line",
14 | width: "100%",
15 | height: "200",
16 | lineWidth: 3,
17 | lineColor: "rgba(63,82,227,.1)",
18 | fillColor: "rgba(63,82,227,.4)",
19 | highlightSpotColor: "rgba(63,82,227,.1)",
20 | highlightLineColor: "rgba(63,82,227,.1)",
21 | spotRadius: 3,
22 | });
23 |
24 | $(".sparkline-line").sparkline(sparkline_values, {
25 | type: "line",
26 | width: "100%",
27 | height: "200",
28 | lineWidth: 3,
29 | lineColor: "rgba(63,82,227,.6)",
30 | fillColor: "transparent",
31 | highlightSpotColor: "rgba(63,82,227,.1)",
32 | highlightLineColor: "rgba(63,82,227,.1)",
33 | spotRadius: 3,
34 | });
35 |
36 | $(".sparkline-bar").sparkline(sparkline_values_bar, {
37 | type: "bar",
38 | width: "100%",
39 | height: "200",
40 | barColor: "rgb(63,82,227)",
41 | barWidth: 20,
42 | });
43 |
44 | $(".sparkline-pie").sparkline(sparkline_pie, {
45 | type: "pie",
46 | width: "auto",
47 | height: "200",
48 | barWidth: 20,
49 | });
50 |
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/js/page/modules-sweetalert.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | $("#swal-1").click(function () {
4 | swal("Hello");
5 | });
6 |
7 | $("#swal-2").click(function () {
8 | swal("Good Job", "You clicked the button!", "success");
9 | });
10 |
11 | $("#swal-3").click(function () {
12 | swal("Good Job", "You clicked the button!", "warning");
13 | });
14 |
15 | $("#swal-4").click(function () {
16 | swal("Good Job", "You clicked the button!", "info");
17 | });
18 |
19 | $("#swal-5").click(function () {
20 | swal("Good Job", "You clicked the button!", "error");
21 | });
22 |
23 | $("#swal-6").click(function () {
24 | swal({
25 | title: "Are you sure?",
26 | text: "Once deleted, you will not be able to recover this imaginary file!",
27 | icon: "warning",
28 | buttons: true,
29 | dangerMode: true,
30 | }).then((willDelete) => {
31 | if (willDelete) {
32 | swal("Poof! Your imaginary file has been deleted!", {
33 | icon: "success",
34 | });
35 | } else {
36 | swal("Your imaginary file is safe!");
37 | }
38 | });
39 | });
40 |
41 | $("#swal-7").click(function () {
42 | swal({
43 | title: "What is your name?",
44 | content: {
45 | element: "input",
46 | attributes: {
47 | placeholder: "Type your name",
48 | type: "text",
49 | },
50 | },
51 | }).then((data) => {
52 | swal("Hello, " + data + "!");
53 | });
54 | });
55 |
56 | $("#swal-8").click(function () {
57 | swal("This modal will disappear soon!", {
58 | buttons: false,
59 | timer: 3000,
60 | });
61 | });
62 |
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/js/page/modules-toastr.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | $("#toastr-1").click(function () {
4 | iziToast.info({
5 | title: "Hello, world!",
6 | message: "This awesome plugin is made iziToast toastr",
7 | position: "topRight",
8 | });
9 | });
10 |
11 | $("#toastr-2").click(function () {
12 | iziToast.success({
13 | title: "Hello, world!",
14 | message: "This awesome plugin is made by iziToast",
15 | position: "topRight",
16 | });
17 | });
18 |
19 | $("#toastr-3").click(function () {
20 | iziToast.warning({
21 | title: "Hello, world!",
22 | message: "This awesome plugin is made by iziToast",
23 | position: "topRight",
24 | });
25 | });
26 |
27 | $("#toastr-4").click(function () {
28 | iziToast.error({
29 | title: "Hello, world!",
30 | message: "This awesome plugin is made by iziToast",
31 | position: "topRight",
32 | });
33 | });
34 |
35 | $("#toastr-5").click(function () {
36 | iziToast.show({
37 | title: "Hello, world!",
38 | message: "This awesome plugin is made by iziToast",
39 | position: "bottomRight",
40 | });
41 | });
42 |
43 | $("#toastr-6").click(function () {
44 | iziToast.show({
45 | title: "Hello, world!",
46 | message: "This awesome plugin is made by iziToast",
47 | position: "bottomCenter",
48 | });
49 | });
50 |
51 | $("#toastr-7").click(function () {
52 | iziToast.show({
53 | title: "Hello, world!",
54 | message: "This awesome plugin is made by iziToast",
55 | position: "bottomLeft",
56 | });
57 | });
58 |
59 | $("#toastr-8").click(function () {
60 | iziToast.show({
61 | title: "Hello, world!",
62 | message: "This awesome plugin is made by iziToast",
63 | position: "topCenter",
64 | });
65 | });
66 |
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/js/page/modules-vector-map.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | $("#visitorMap").vectorMap({
4 | map: "world_en",
5 | backgroundColor: "#ffffff",
6 | borderColor: "#f2f2f2",
7 | borderOpacity: 0.8,
8 | borderWidth: 1,
9 | hoverColor: "#000",
10 | hoverOpacity: 0.8,
11 | color: "#ddd",
12 | normalizeFunction: "linear",
13 | selectedRegions: false,
14 | showTooltip: true,
15 | pins: {
16 | id: '',
17 | my: '',
18 | th: '',
19 | sy: '',
20 | eg: '',
21 | ae: '',
22 | nz: '',
23 | tl: '',
24 | ng: '',
25 | si: '',
26 | pa: '',
27 | au: '',
28 | ca: '',
29 | tr: '',
30 | },
31 | onRegionClick: function (element, code, region) {
32 | var opts = {
33 | title: "Choosed",
34 | message:
35 | 'You clicked "' +
36 | region +
37 | '" which has the code: ' +
38 | code.toUpperCase(),
39 | };
40 |
41 | iziToast.info(opts);
42 | },
43 | });
44 | $("#visitorMap2").vectorMap({
45 | map: "world_en",
46 | backgroundColor: "#ffffff",
47 | borderColor: "#f2f2f2",
48 | borderOpacity: 0.8,
49 | borderWidth: 1,
50 | hoverColor: "#000",
51 | hoverOpacity: 0.8,
52 | color: "#ddd",
53 | normalizeFunction: "linear",
54 | selectedRegions: false,
55 | showTooltip: true,
56 | onRegionClick: function (element, code, region) {
57 | var message =
58 | 'You clicked "' +
59 | region +
60 | '" which has the code: ' +
61 | code.toUpperCase();
62 |
63 | $("#flag-icon").removeClass(function (index, className) {
64 | return (className.match(/(^|\s)flag-icon-\S+/g) || []).join(" ");
65 | });
66 | $("#flag-icon").addClass("flag-icon-" + code);
67 | },
68 | });
69 | $("#visitorMap3").vectorMap({
70 | map: "indonesia_id",
71 | backgroundColor: "#ffffff",
72 | borderColor: "#f2f2f2",
73 | borderOpacity: 0.8,
74 | borderWidth: 1,
75 | hoverColor: "#000",
76 | hoverOpacity: 0.8,
77 | color: "#ddd",
78 | normalizeFunction: "linear",
79 | selectedRegions: false,
80 | showTooltip: true,
81 | });
82 |
--------------------------------------------------------------------------------
/frontend/src/assets/stisla/js/page/utilities-contact.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | // initialize map
4 | var map = new GMaps({
5 | div: "#map",
6 | lat: -6.5637928,
7 | lng: 106.7535061,
8 | zoomControl: false,
9 | fullscreenControl: false,
10 | mapTypeControl: true,
11 | mapTypeControlOptions: {
12 | mapTypeIds: [],
13 | },
14 | });
15 | // Added a overlay to the map
16 | map.drawOverlay({
17 | lat: -6.5637928,
18 | lng: 106.7535061,
19 | content:
20 | '
MultinityJl. HM. Syarifudin, Bubulak, Bogor Bar.,
Kota Bogor, Jawa Barat 16115
Website
',
21 | });
22 |
--------------------------------------------------------------------------------
/frontend/src/components/Case.jsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 |
3 | export default function Case({ children }) {
4 | return (
5 |
6 |
7 |
8 | );
9 | }
10 |
--------------------------------------------------------------------------------
/frontend/src/components/Footer.jsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 |
3 | export default function Footer() {
4 | return (
5 |
13 | );
14 | }
15 |
--------------------------------------------------------------------------------
/frontend/src/components/NavLink.jsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import { Link } from "react-router-dom";
3 |
4 | export default function NavLink({ href, children }) {
5 | return (
6 |
7 | {children}
8 |
9 | );
10 | }
11 |
--------------------------------------------------------------------------------
/frontend/src/config/appConfig.js:
--------------------------------------------------------------------------------
1 | const appConfig = {
2 | debounceTimeout: 750,
3 | expirationTime: 60 * 60 * 1000, // set 1 hours
4 | baseURL: "http://127.0.0.1:8000",
5 | baseurlAPI: "http://127.0.0.1:8000/api",
6 | };
7 |
8 | export default appConfig;
9 |
--------------------------------------------------------------------------------
/frontend/src/index.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
5 | @layer components {
6 | .show-entries {
7 | @apply tw-ml-4 tw-flex tw-justify-center lg:tw-justify-start;
8 | }
9 |
10 | .search-column {
11 | @apply tw-mb-5 tw-mt-3 tw-flex tw-justify-center lg:tw-mt-[-45px] lg:tw-justify-start;
12 | }
13 |
14 | .btn-modal {
15 | @apply tw-fixed tw-bottom-12 tw-right-7 tw-z-40 tw-h-14 tw-w-14 tw-rounded-full tw-bg-blue-500 tw-text-white tw-shadow-2xl hover:tw-border-blue-600 hover:tw-bg-blue-900;
16 | }
17 | }
18 |
19 | @layer utilities {
20 | body {
21 | @apply tw-tracking-wider;
22 | }
23 |
24 | .section-header > h1 {
25 | @apply tw-tracking-wider;
26 | }
27 |
28 | table {
29 | @apply tw-w-full tw-table-fixed;
30 | }
31 |
32 | table > thead > tr {
33 | @apply tw-text-xs tw-uppercase tw-tracking-widest;
34 | }
35 |
36 | table > tbody > tr {
37 | @apply tw-text-gray-700;
38 | }
39 |
40 | table > thead > tr > th {
41 | @apply tw-bg-gray-100 tw-p-4 tw-text-gray-600;
42 | }
43 |
44 | table > tbody > tr > td {
45 | @apply tw-border-b tw-border-gray-100 tw-p-4;
46 | }
47 |
48 | table > tbody {
49 | @apply tw-text-black;
50 | }
51 |
52 | .card-body > h3 {
53 | @apply tw-mb-5 tw-ml-4 tw-text-base tw-text-black;
54 | }
55 |
56 | .show-entries > p.show-entries-show {
57 | @apply tw-mr-1 tw-mt-1 tw-text-gray-800;
58 | }
59 |
60 | .show-entries > p.show-entries-entries {
61 | @apply tw-ml-1 tw-mt-1 tw-text-gray-800;
62 | }
63 |
64 | .show-entries > select {
65 | @apply tw-rounded-lg tw-border tw-border-gray-200;
66 | }
67 |
68 | .search-column > p {
69 | @apply tw-ml-0 tw-mr-1 tw-mt-1 tw-text-gray-800 lg:tw-ml-auto;
70 | }
71 |
72 | .search-column > input {
73 | @apply tw-mr-4 tw-w-2/3 tw-rounded-lg tw-border tw-border-gray-200 lg:tw-w-1/4;
74 | }
75 |
76 | .main-content {
77 | @apply tw-px-0;
78 | }
79 |
80 | .card {
81 | @apply tw-rounded-none tw-shadow-md tw-shadow-gray-300 lg:tw-rounded-lg;
82 | }
83 |
84 | .section-body {
85 | @apply tw-mt-[-10px];
86 | }
87 |
88 | input.form-control {
89 | @apply tw-rounded-lg tw-border tw-border-gray-200 tw-text-sm;
90 | }
91 |
92 | select.form-control {
93 | @apply tw-rounded-lg;
94 | }
95 |
96 | textarea.form-control {
97 | @apply tw-rounded-lg;
98 | }
99 |
100 | .navbar.navbar-expand-lg.main-navbar {
101 | @apply tw-px-0 lg:tw-px-5;
102 | }
103 | }
104 |
--------------------------------------------------------------------------------
/frontend/src/main.jsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import ReactDOM from "react-dom/client";
3 | import { BrowserRouter } from "react-router-dom";
4 | import App from "./App";
5 | import "./index.css";
6 |
7 | ReactDOM.createRoot(document.getElementById("app")).render(
8 |
9 |
10 |
11 |
12 |
13 | );
14 |
--------------------------------------------------------------------------------
/frontend/src/pages/AdvancedFeature.jsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import Case from "../components/Case";
3 | import { useEffect } from "react";
4 |
5 | export default function AdvancedFeature() {
6 | useEffect(() => {
7 | document.title = "Advanced Feature";
8 | }, []);
9 |
10 | return (
11 |
12 |
13 |
Advanced Feature
14 |
15 |
16 |
17 |
18 |
19 |
Tabel Advanced Feature
20 |
21 | Lorem ipsum dolor, sit amet consectetur adipisicing
22 | elit. Tenetur at asperiores earum officiis
23 | reiciendis necessitatibus eos! Nam harum tempore
24 | molestias aliquam, qui excepturi similique expedita
25 | vitae perferendis voluptatum laudantium vero
26 | deleniti laboriosam assumenda impedit repellendus
27 | eum, commodi totam! Molestiae ducimus placeat totam
28 | nesciunt, perspiciatis dolor mollitia ut saepe cum
29 | sunt?
30 |
31 |
32 |
33 |
34 |
35 | );
36 | }
37 |
--------------------------------------------------------------------------------
/frontend/src/pages/Auth/Session.js:
--------------------------------------------------------------------------------
1 | import appConfig from "../../config/appConfig";
2 | import CryptoJS from "crypto-js";
3 |
4 | export function setTokenWithExpiration(key, token) {
5 | const now = new Date();
6 | const expirationTime = now.getTime() + appConfig.expirationTime;
7 |
8 | const keyStr = "sangat-aman-12345";
9 | const iv = CryptoJS.lib.WordArray.random(16);
10 | const encryptedToken = CryptoJS.AES.encrypt(token, keyStr, {
11 | iv: iv,
12 | }).toString();
13 |
14 | const item = encryptedToken + "|" + expirationTime + "|" + iv.toString();
15 | localStorage.setItem(key, item);
16 | }
17 |
18 | export function getTokenWithExpiration(key) {
19 | const item = localStorage.getItem(key);
20 |
21 | if (!item) {
22 | return null;
23 | }
24 |
25 | const parts = item.split("|");
26 | const encryptedToken = parts[0];
27 | const expirationTime = parts[1];
28 | const iv = parts[2];
29 |
30 | const keyStr = "sangat-aman-12345";
31 | const decryptedToken = CryptoJS.AES.decrypt(encryptedToken, keyStr, {
32 | iv: CryptoJS.enc.Hex.parse(iv),
33 | }).toString(CryptoJS.enc.Utf8);
34 |
35 | if (parseInt(expirationTime) < new Date().getTime()) {
36 | localStorage.removeItem(key);
37 | return null;
38 | }
39 |
40 | return decryptedToken;
41 | }
42 |
43 | export function getTokenExpirationTime(key) {
44 | const item = localStorage.getItem(key);
45 | if (!item) {
46 | return null;
47 | }
48 | const [_, expirationTime] = item.split("|");
49 | const now = new Date();
50 | const remainingSeconds = Math.round(
51 | (expirationTime - now.getTime()) / 1000
52 | );
53 | return remainingSeconds > 0 ? remainingSeconds : null;
54 | }
55 |
--------------------------------------------------------------------------------
/frontend/src/pages/Dashboard.jsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import Case from "../components/Case";
3 | import { useEffect } from "react";
4 |
5 | export default function Dashboard() {
6 | useEffect(() => {
7 | document.title = "Dashboard";
8 | });
9 |
10 | return (
11 |
12 |
13 |
Dashboard
14 |
15 |
16 |
17 |
18 |
19 |
Tabel Dashboard
20 |
21 | Lorem ipsum dolor, sit amet consectetur adipisicing
22 | elit. Tenetur at asperiores earum officiis
23 | reiciendis necessitatibus eos! Nam harum tempore
24 | molestias aliquam, qui excepturi similique expedita
25 | vitae perferendis voluptatum laudantium vero
26 | deleniti laboriosam assumenda impedit repellendus
27 | eum, commodi totam! Molestiae ducimus placeat totam
28 | nesciunt, perspiciatis dolor mollitia ut saepe cum
29 | sunt?
30 |
31 |
32 |
33 |
34 |
35 | );
36 | }
37 |
--------------------------------------------------------------------------------
/frontend/src/pages/Error/403.jsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import { Link } from "react-router-dom";
3 |
4 | export default function Error403() {
5 | return (
6 | <>
7 |
8 |
9 |
10 |
11 |
12 |
403
13 |
14 | You do not have access to this page.
15 |
16 |
17 |
18 | Back to Home
19 |
20 |
21 |
22 |
23 |
26 |
27 |
28 |
29 | >
30 | );
31 | }
32 |
--------------------------------------------------------------------------------
/frontend/src/pages/Error/404.jsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import { Link } from "react-router-dom";
3 |
4 | export default function Error404() {
5 | return (
6 | <>
7 |
8 |
9 |
10 |
11 |
12 |
404
13 |
14 | Page not found.
15 |
16 |
17 |
18 | Back to Home
19 |
20 |
21 |
22 |
23 |
26 |
27 |
28 |
29 | >
30 | );
31 | }
32 |
--------------------------------------------------------------------------------
/frontend/src/pages/Layout/AuthLayout.jsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 |
3 | export default function AuthLayout({ children }) {
4 | return (
5 | <>
6 |
9 | >
10 | );
11 | }
12 |
--------------------------------------------------------------------------------
/frontend/src/pages/Layout/Components/AddButton.jsx:
--------------------------------------------------------------------------------
1 | import React, { Component } from "react";
2 |
3 | export default function AddButton({ handleAdd }) {
4 | return (
5 |
13 | );
14 | }
15 |
--------------------------------------------------------------------------------
/frontend/src/pages/Layout/Components/InputValidation.jsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 |
3 | export default function InputValidation({
4 | label,
5 | name,
6 | type,
7 | value,
8 | onChange,
9 | error,
10 | }) {
11 | return (
12 |
13 |
14 |
22 | {error &&
{error}
}
23 |
24 | );
25 | }
26 |
--------------------------------------------------------------------------------
/frontend/src/pages/Layout/Components/ModalFooter.jsx:
--------------------------------------------------------------------------------
1 | import React, { Component } from "react";
2 |
3 | export default function ModalFooter() {
4 | return (
5 |
6 |
13 |
16 |
17 | );
18 | }
19 |
--------------------------------------------------------------------------------
/frontend/src/pages/Layout/Components/ModalHeader.jsx:
--------------------------------------------------------------------------------
1 | import React, { Component } from "react";
2 |
3 | export default function ModalHeader({ isEditing }) {
4 | return (
5 |
6 |
9 |
17 |
18 | );
19 | }
20 |
--------------------------------------------------------------------------------
/frontend/src/pages/Layout/Components/Pagination.jsx:
--------------------------------------------------------------------------------
1 | import React, { Component } from "react";
2 |
3 | export default function Pagination({
4 | currentPage,
5 | showing,
6 | totalRows,
7 | totalPages,
8 | handlePageChange,
9 | }) {
10 | return (
11 |
12 |
13 | Showing {(currentPage - 1) * showing + 1} to{" "}
14 | {Math.min(currentPage * showing, totalRows)} of {totalRows}{" "}
15 | results
16 |
17 |
18 |
19 | -
24 |
31 |
32 | {Array.from({ length: totalPages }, (_, i) => (
33 | -
39 |
45 |
46 | ))}
47 | -
52 |
59 |
60 |
61 |
62 |
63 | );
64 | }
65 |
--------------------------------------------------------------------------------
/frontend/src/pages/Layout/Components/SearchEntries.jsx:
--------------------------------------------------------------------------------
1 | import React, { Component } from "react";
2 |
3 | export default function SearchEntries({
4 | showing,
5 | handleShow,
6 | searchTerm,
7 | handleSearch,
8 | }) {
9 | return (
10 | <>
11 |
12 |
Show
13 |
26 |
Entries
27 |
28 |
39 | >
40 | );
41 | }
42 |
--------------------------------------------------------------------------------
/frontend/src/pages/Layout/Components/TextareaValidation.jsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 |
3 | export default function TextAreaValidation({
4 | label,
5 | name,
6 | value,
7 | onChange,
8 | error,
9 | }) {
10 | return (
11 |
12 |
13 |
21 | {error &&
{error}
}
22 |
23 | );
24 | }
25 |
--------------------------------------------------------------------------------
/frontend/src/pages/Layout/MainLayout.jsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import Footer from "../../components/Footer";
3 | import Navigation from "../../components/Navigation";
4 |
5 | export default function MainLayout({ children }) {
6 | return (
7 | <>
8 |
9 |
10 |
11 | {children}
12 |
13 |
14 | >
15 | );
16 | }
17 |
--------------------------------------------------------------------------------
/frontend/tailwind.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('tailwindcss').Config} */
2 | module.exports = {
3 | important: true,
4 | prefix: "tw-",
5 | content: ["./index.html", "./src/**/*.{js,ts,jsx,tsx}"],
6 | theme: {
7 | extend: {},
8 | },
9 | plugins: [],
10 | };
11 |
--------------------------------------------------------------------------------
/frontend/vite.config.js:
--------------------------------------------------------------------------------
1 | import { defineConfig } from "vite";
2 | import react from "@vitejs/plugin-react";
3 |
4 | // https://vitejs.dev/config/
5 | export default defineConfig({
6 | server: {
7 | host: true,
8 | },
9 | plugins: [react()],
10 | });
11 |
--------------------------------------------------------------------------------