Compare commits

...
39 Commits
Author SHA1 Message Date
Belupeti ee9a1f2e13 fix no tla
Build / Build-image (push) Successful in 1m22s
2026-09-05 20:25:17 +02:00
Belupeti dada5855ab change some admin stuff
Build / Build-image (push) Successful in 1m18s
2026-09-05 15:07:14 +02:00
Belupeti 890bb53ef6 change some local storage stuff and css for wordle
Build / Build-image (push) Successful in 1m19s
2026-09-05 13:51:59 +02:00
Belupeti 2bce3f9a71 some css changes
Build / Build-image (push) Successful in 1m26s
2026-09-05 13:31:32 +02:00
Belupeti 5613a95063 css variables, change max_guesses behaviour in wordle
Build / Build-image (push) Successful in 1m19s
2026-09-05 13:00:41 +02:00
Belupeti cc892fdebf update howtoplay, add some localstorage functionality
Build / Build-image (push) Successful in 1m30s
2026-09-05 12:11:09 +02:00
Belupeti c1fcb34ee5 fix something on frontend
Build / Build-image (push) Successful in 1m13s
2026-08-28 01:02:47 +02:00
Belupeti 836c83b473 wordle frontend almost done
Build / Build-image (push) Successful in 1m11s
2026-08-28 00:55:22 +02:00
Belupeti 5d5250287d wordle backend and some frontend changes
Build / Build-image (push) Successful in 1m13s
2026-08-27 22:33:19 +02:00
Belupeti 865ac153b2 wordle part kind of working
Build / Build-image (push) Successful in 1m8s
2026-08-25 00:56:08 +02:00
Belupeti a79363b4da add some fixes
Build / Build-image (push) Successful in 1m10s
2026-08-24 20:39:55 +02:00
Belupeti cab6a3e7f1 some stuff on wordle
Build / Build-image (push) Successful in 1m10s
2026-08-24 00:35:00 +02:00
Belupeti 0395c01cdf start writing Eti update
Build / Build-image (push) Successful in 1m13s
2026-08-23 23:18:55 +02:00
Belupeti 0a605fce7c fix empty submitter text
Build / Build-image (push) Successful in 1m11s
2026-08-22 15:09:00 +02:00
Belupeti 9af75a0781 add actual suggestion support
Build / Build-image (push) Successful in 1m15s
2026-08-22 09:50:02 +02:00
Belupeti 6ac21fc4ca add new button on admin
Build / Build-image (push) Successful in 1m8s
2026-08-21 20:49:21 +02:00
Belupeti eca1bf138c add tla suggestions resource (correct this time)
Build / Build-image (push) Successful in 1m11s
2026-08-21 18:49:08 +02:00
Belupeti 73b0f6527a fix some stuff
Build / Build-image (push) Successful in 1m9s
2026-08-21 10:47:26 +02:00
Belupeti 853498e9ac suggestion form development
Build / Build-image (push) Successful in 1m8s
2026-08-21 09:22:41 +02:00
Belupeti fb5f59027e fix incorrect prefixes on session keys 2026-08-19 14:27:58 +02:00
Belupeti e3fcadc900 change version number
Build / Build-image (push) Successful in 1m9s
2026-08-18 19:35:36 +02:00
Belupeti 3b9fbf322f fix incorrect review return value
Build / Build-image (push) Successful in 1m9s
2026-08-18 19:25:39 +02:00
Belupeti 5f72174d39 add some pampár protection
Build / Build-image (push) Successful in 1m11s
2026-08-18 18:38:08 +02:00
Belupeti f1fbd8b782 actually fix desync
Build / Build-image (push) Successful in 1m16s
2026-08-18 14:52:01 +02:00
Belupeti db91e3ba86 some frontend sync changes
Build / Build-image (push) Successful in 1m33s
2026-08-18 14:14:05 +02:00
Belupeti 1f8f3a663e add like/dislike system
Build / Build-image (push) Successful in 1m16s
2026-08-18 14:01:38 +02:00
Belupeti dde6beeba8 change verion number, add dev message
Build / Build-image (push) Successful in 1m9s
2026-08-14 19:24:58 +02:00
Belupeti 7250a9ea68 add logo and some other frontend changes
Build / Build-image (push) Successful in 1m15s
2026-08-14 18:42:30 +02:00
Belupeti eca046c1ea some frontend changes
Build / Build-image (push) Successful in 1m11s
2026-08-14 15:37:29 +02:00
Belupeti cd9ffc012e create suggestion model, fix unfillable language
Build / Build-image (push) Successful in 1m13s
2026-08-13 22:30:42 +02:00
Belupeti 5a6c398a3a some frontend changes
Build / Build-image (push) Successful in 1m9s
2026-08-13 12:40:05 +02:00
Belupeti 0de5d2af94 update user
Build / Build-image (push) Successful in 1m10s
2026-08-12 18:10:59 +02:00
Belupeti f263220b81 change user behaviour 2026-08-12 17:56:52 +02:00
Belupeti 4aa1a77e1d fix https?
Build / Build-image (push) Successful in 1m12s
2026-08-12 17:41:44 +02:00
Belupeti 46e679b8bf add admin with filament
Build / Build-image (push) Successful in 1m6s
2026-08-12 17:16:12 +02:00
Belupeti 9b69a2afff change some frontend stuff and add new view
Build / Build-image (push) Successful in 54s
2026-08-12 13:04:11 +02:00
Belupeti 11d440c6ed add persistent win/loss and some frontend feedback
Build / Build-image (push) Successful in 50s
2026-08-14 22:38:08 +02:00
Belupeti 406458c33b change version number
Build / Build-image (push) Successful in 53s
2026-08-11 17:57:57 +02:00
Belupeti 0f1de1fffc backend fixes, better case handling, some frontend changes 2026-08-11 17:57:38 +02:00
89 changed files with 6087 additions and 146 deletions
+1 -1
View File
@@ -7,7 +7,7 @@ jobs:
env:
IMAGE_NAME: tladle
REGISTRY_NAME: gitea.sc0tt.org
GIT_TAG: 1.0.1
GIT_TAG: 2.0
runs-on: ubuntu-latest
steps:
- name: Checkout
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\TlaSuggestions\Pages;
use App\Filament\Resources\TlaSuggestions\TlaSuggestionResource;
use Filament\Actions\CreateAction;
use Filament\Resources\Pages\ManageRecords;
class ManageTlaSuggestions extends ManageRecords
{
protected static string $resource = TlaSuggestionResource::class;
protected function getHeaderActions(): array
{
return [
CreateAction::make(),
];
}
}
@@ -0,0 +1,96 @@
<?php
namespace App\Filament\Resources\TlaSuggestions;
use App\Filament\Resources\TlaSuggestions\Pages\ManageTlaSuggestions;
use App\Models\TlaSuggestion;
use BackedEnum;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteAction;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\TextInput;
use Filament\Forms\Components\Textarea;
use Filament\Resources\Resource;
use Filament\Schemas\Schema;
use Filament\Support\Icons\Heroicon;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
use Filament\Actions\Action;
class TlaSuggestionResource extends Resource
{
protected static ?string $model = TlaSuggestion::class;
protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedRectangleStack;
protected static ?string $recordTitleAttribute = 'Suggestions';
public static function form(Schema $schema): Schema
{
return $schema
->components([
TextInput::make('acronym')
->required(),
TextInput::make('hint')
->default(null),
Select::make('language')
->options(['hu' => 'Hu', 'en' => 'En'])
->required(),
Textarea::make('context')
->default(null)
->columnSpanFull(),
TextInput::make('submitter')
->default(null),
]);
}
public static function table(Table $table): Table
{
return $table
->recordTitleAttribute('Suggestions')
->columns([
TextColumn::make('acronym')
->searchable(),
TextColumn::make('hint')
->searchable(),
TextColumn::make('language')
->badge(),
TextColumn::make('submitter')
->searchable(),
TextColumn::make('created_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
TextColumn::make('updated_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
])
->filters([
//
])
->recordActions([
EditAction::make(),
DeleteAction::make(),
Action::make('Approve')
->action(fn (TlaSuggestion $record) => TlaSuggestion::ApproveTla($record))
->requiresConfirmation()
->modalHeading('Approve TLA')
->modalDescription('Are you sure you want to approve this TLA?')
])
->toolbarActions([
BulkActionGroup::make([
DeleteBulkAction::make(),
]),
]);
}
public static function getPages(): array
{
return [
'index' => ManageTlaSuggestions::route('/'),
];
}
}
@@ -0,0 +1,11 @@
<?php
namespace App\Filament\Resources\Tlas\Pages;
use App\Filament\Resources\Tlas\TlaResource;
use Filament\Resources\Pages\CreateRecord;
class CreateTla extends CreateRecord
{
protected static string $resource = TlaResource::class;
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\Tlas\Pages;
use App\Filament\Resources\Tlas\TlaResource;
use Filament\Actions\DeleteAction;
use Filament\Resources\Pages\EditRecord;
class EditTla extends EditRecord
{
protected static string $resource = TlaResource::class;
protected function getHeaderActions(): array
{
return [
DeleteAction::make(),
];
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\Tlas\Pages;
use App\Filament\Resources\Tlas\TlaResource;
use Filament\Actions\CreateAction;
use Filament\Resources\Pages\ListRecords;
class ListTlas extends ListRecords
{
protected static string $resource = TlaResource::class;
protected function getHeaderActions(): array
{
return [
CreateAction::make(),
];
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\Tlas\Pages;
use App\Filament\Resources\Tlas\TlaResource;
use Filament\Actions\CreateAction;
use Filament\Resources\Pages\ManageRecords;
class ManageTlas extends ManageRecords
{
protected static string $resource = TlaResource::class;
protected function getHeaderActions(): array
{
return [
CreateAction::make(),
];
}
}
@@ -0,0 +1,30 @@
<?php
namespace App\Filament\Resources\Tlas\Schemas;
use Filament\Forms\Components\DatePicker;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\TextInput;
use Filament\Forms\Components\Textarea;
use Filament\Schemas\Schema;
class TlaForm
{
public static function configure(Schema $schema): Schema
{
return $schema
->components([
TextInput::make('acronym')
->required(),
TextInput::make('hint')
->default(null),
Select::make('language')
->options(['hu' => 'Hu', 'en' => 'En'])
->required(),
DatePicker::make('used'),
Textarea::make('context')
->default(null)
->columnSpanFull(),
]);
}
}
@@ -0,0 +1,47 @@
<?php
namespace App\Filament\Resources\Tlas\Tables;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
class TlasTable
{
public static function configure(Table $table): Table
{
return $table
->columns([
TextColumn::make('acronym')
->searchable(),
TextColumn::make('hint')
->searchable(),
TextColumn::make('language')
->badge(),
TextColumn::make('used')
->date()
->sortable(),
TextColumn::make('created_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
TextColumn::make('updated_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
])->defaultSort('used', direction: 'asc')
->filters([
//
])
->recordActions([
EditAction::make(),
])
->toolbarActions([
BulkActionGroup::make([
DeleteBulkAction::make(),
]),
]);
}
}
+110
View File
@@ -0,0 +1,110 @@
<?php
namespace App\Filament\Resources\Tlas;
use App\Filament\Resources\Tlas\Pages\ManageTlas;
use App\Models\Tla;
use BackedEnum;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteAction;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction;
use Filament\Forms\Components\DatePicker;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\TextInput;
use Filament\Forms\Components\Textarea;
use Filament\Resources\Resource;
use Filament\Schemas\Schema;
use Filament\Support\Icons\Heroicon;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
class TlaResource extends Resource
{
protected static ?string $model = Tla::class;
protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedRectangleStack;
protected static ?string $recordTitleAttribute = 'Tla';
public static function form(Schema $schema): Schema
{
return $schema
->components([
TextInput::make('acronym')
->required(),
TextInput::make('hint')
->default(null),
Select::make('language')
->options(['hu' => 'Hu', 'en' => 'En'])
->required(),
DatePicker::make('used'),
Textarea::make('context')
->default(null)
->columnSpanFull(),
TextInput::make('submitter')
->default(null),
TextInput::make('likes')
->required()
->numeric()
->default(0),
TextInput::make('dislikes')
->required()
->numeric()
->default(0),
]);
}
public static function table(Table $table): Table
{
return $table
->recordTitleAttribute('Tla')
->columns([
TextColumn::make('acronym')
->searchable(),
TextColumn::make('hint')
->searchable(),
TextColumn::make('language')
->badge(),
TextColumn::make('used')
->date()
->sortable(),
TextColumn::make('submitter')
->searchable(),
TextColumn::make('likes')
->numeric()
->sortable(),
TextColumn::make('dislikes')
->numeric()
->sortable(),
TextColumn::make('created_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
TextColumn::make('updated_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
])
->filters([
//
])
->recordActions([
EditAction::make(),
DeleteAction::make(),
])
->toolbarActions([
BulkActionGroup::make([
DeleteBulkAction::make(),
]),
]);
}
public static function getPages(): array
{
return [
'index' => ManageTlas::route('/'),
];
}
}
@@ -0,0 +1,11 @@
<?php
namespace App\Filament\Resources\Users\Pages;
use App\Filament\Resources\Users\UserResource;
use Filament\Resources\Pages\CreateRecord;
class CreateUser extends CreateRecord
{
protected static string $resource = UserResource::class;
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\Users\Pages;
use App\Filament\Resources\Users\UserResource;
use Filament\Actions\DeleteAction;
use Filament\Resources\Pages\EditRecord;
class EditUser extends EditRecord
{
protected static string $resource = UserResource::class;
protected function getHeaderActions(): array
{
return [
DeleteAction::make(),
];
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\Users\Pages;
use App\Filament\Resources\Users\UserResource;
use Filament\Actions\CreateAction;
use Filament\Resources\Pages\ListRecords;
class ListUsers extends ListRecords
{
protected static string $resource = UserResource::class;
protected function getHeaderActions(): array
{
return [
CreateAction::make(),
];
}
}
@@ -0,0 +1,27 @@
<?php
namespace App\Filament\Resources\Users\Schemas;
use Filament\Forms\Components\DateTimePicker;
use Filament\Forms\Components\TextInput;
use Filament\Schemas\Schema;
class UserForm
{
public static function configure(Schema $schema): Schema
{
return $schema
->components([
TextInput::make('name')
->required(),
TextInput::make('email')
->label('Email address')
->email()
->required(),
DateTimePicker::make('email_verified_at'),
TextInput::make('password')
->password()
->required(),
]);
}
}
@@ -0,0 +1,46 @@
<?php
namespace App\Filament\Resources\Users\Tables;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
class UsersTable
{
public static function configure(Table $table): Table
{
return $table
->columns([
TextColumn::make('name')
->searchable(),
TextColumn::make('email')
->label('Email address')
->searchable(),
TextColumn::make('email_verified_at')
->dateTime()
->sortable(),
TextColumn::make('created_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
TextColumn::make('updated_at')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
])
->filters([
//
])
->recordActions([
EditAction::make(),
])
->toolbarActions([
BulkActionGroup::make([
DeleteBulkAction::make(),
]),
]);
}
}
@@ -0,0 +1,50 @@
<?php
namespace App\Filament\Resources\Users;
use App\Filament\Resources\Users\Pages\CreateUser;
use App\Filament\Resources\Users\Pages\EditUser;
use App\Filament\Resources\Users\Pages\ListUsers;
use App\Filament\Resources\Users\Schemas\UserForm;
use App\Filament\Resources\Users\Tables\UsersTable;
use App\Models\User;
use BackedEnum;
use Filament\Resources\Resource;
use Filament\Schemas\Schema;
use Filament\Support\Icons\Heroicon;
use Filament\Tables\Table;
class UserResource extends Resource
{
protected static ?string $model = User::class;
protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedRectangleStack;
protected static ?string $recordTitleAttribute = 'user';
public static function form(Schema $schema): Schema
{
return UserForm::configure($schema);
}
public static function table(Table $table): Table
{
return UsersTable::configure($table);
}
public static function getRelations(): array
{
return [
//
];
}
public static function getPages(): array
{
return [
'index' => ListUsers::route('/'),
'create' => CreateUser::route('/create'),
'edit' => EditUser::route('/{record}/edit'),
];
}
}
+95 -41
View File
@@ -3,37 +3,22 @@
namespace App\Http\Controllers;
use App\Models\Tla;
use App\Models\TlaSuggestion;
use Illuminate\Http\Request;
class TlaController extends Controller
{
public function store(Request $request): RedirectResponse
{
$request->validate([
'title' => 'required',
'body' => 'required',
]);
$tla = new Tla($requestData);
$tla->save();
return redirect()->route('admin')->with('success', 'Record added!');
} //
public function destroy(Tla $tla): RedirectResponse
{
$tla->delete();
return redirect()->route('admin')->with('success', 'Record deleted');
}
public function session_flush(Request $request, string $language)
{
if ($request->session()->get('date', NULL) != date('Y-m-d'))
$session = $request->session();
if ($session->get('date-'.$language, NULL) != date('Y-m-d'))
{
$request->session()->forget('guesses-'.$language);
$request->session()->put('date', date('Y-m-d'));
$session->forget('guesses-'.$language);
$session->forget('tla-'.$language);
$session->forget('correct-'.$language);
$session->forget('review-'.$language);
$session->put('tla-array-'.$language, ['', '', '']);
$session->put('date-'.$language, date('Y-m-d'));
}
}
@@ -43,12 +28,22 @@ class TlaController extends Controller
if ( !in_array($language, $allowedLanguages) ) $language = 'en';
$tla = Tla::GetCurrentTla($language);
if ($tla == NULL) return response()->json([ 'no_tla' => true ]);
$this->session_flush($request, $language);
$session = $request->session();
return response()->json([
'hint' => $tla->hint,
'guesses' => $request->session()->get('guesses-'.$language, []),
'date' => $request->session()->get('date'),
'guesses' => $session->get('guesses-'.$language, []),
'date' => $session->get('date-'.$language),
'tla' => $session->get('tla-'.$language) == $tla->acronym ? $tla->acronym : NULL,
'context' => $session->get('tla-'.$language) == $tla->acronym ? $tla->context : NULL,
'submitter' => $tla->submitter,
'correct' => $session->get('correct-'.$language),
'tla_array' => $session->get('tla-array-'.$language),
]);
}
@@ -58,10 +53,16 @@ class TlaController extends Controller
'guess' => 'required|array|size:3',
]);
$this->session_flush($request, $language);
$tla_object = Tla::GetCurrentTla($language);
$session = $request->session();
$tla = explode(' ', Tla::GetCurrentTla($language)->abbreviation);
$tla = explode(' ', strtolower($tla_object->acronym));
$guess_array = $request->all()['guess'];
for ($i = 0; $i<3; $i++) {
$guess_array[$i] = strtolower($guess_array[$i]);
}
$proposal = [];
@@ -85,32 +86,85 @@ class TlaController extends Controller
array_push($guess_array, max($proposal[0][$i], $proposal[1][$i], $proposal[2][$i]));
}
$score = 0;
if ( $request->session()->get('guesses-'.$language, NULL) == NULL ) $request->session()->put('guesses-'.$language, [$guess_array]);
else $request->session()->push('guesses-'.$language, $guess_array);
for ($i = 0; $i<3; $i++) {
$guess_array[$i] = ucfirst($guess_array[$i]);
$score += $guess_array[$i + 3];
}
$guesses = $request->session()->get('guesses-'.$language, NULL);
$session->push('guesses-'.$language, $guess_array);
$guesses = $session->get('guesses-'.$language, NULL);
if ($score == 12 || count($guesses) == env('MAX_GUESSES', 10)) {
$session->put('tla-'.$language, $tla_object->acronym);
if ($score == 12) $session->put('correct-'.$language, true);
}
$tla_array = $session->get('tla-array-'.$language);
for ($i = 0; $i < 3; $i++) {
if ($tla_array[$i] == "" && $guess_array[$i + 3] == 2) $tla_array[$i] = $tla[$i];
}
$session->put('tla-array-'.$language, $tla_array);
return response()->json([
'guesses' => $request->session()->get('guesses-'.$language, []),
'date' => $request->session()->get('date'),
'real' => $tla
'guesses' => $guesses,
'date' => $session->get('date'),
'tla' => $session->get('tla-'.$language) == $tla_object->acronym ? $tla_object->acronym : NULL,
'context' => $session->get('tla-'.$language) == $tla_object->acronym ? $tla_object->context : NULL,
'score' => $score,
'correct' => $session->get('correct-'.$language),
'tla_array' => $tla_array,
]);
}
public function update(Request $request, Tla $tla): RedirectResponse
{
public function suggestion(Request $request, ?String $language = "en") {
$request->validate([
'title' => 'required',
'body' => 'required',
'acronym' => 'required',
'hint' => 'required',
'context' => 'required',
]);
$requestData = $request->all();
$tla->update($requestData);
$requestData = $request->input();
$tla = new TlaSuggestion($requestData);
$tla->save();
return redirect()->route('admin')->with('success', 'Record updated!');
return response($tla);
}
public function review(Request $request, String $language, int $type) {
$session = $request->session();
if ($session->get('correct-'.$language) == true) {
$current = $session->get('review-'.$language);
$tla = Tla::GetCurrentTla($language);
if ($type != 2) {
if ($current == $type) {
if ($current == 1) $tla->likes--;
else if ($current == -1) $tla->dislikes--;
$type = 2;
} else {
if ($current == 1) $tla->likes--;
else if ($current == -1) $tla->dislikes--;
if ($type == 1) $tla->likes++;
else if ($type == -1) $tla->dislikes++;
}
$tla->save();
$session->put('review-'.$language, $type);
} else $type = $current;
return response()->json([
'likes' => $tla->likes,
'dislikes' => $tla->dislikes,
'current' => $type,
]);
}
else return response(null, 403);
}
}
+4 -2
View File
@@ -11,9 +11,9 @@ class Tla extends Model
use HasFactory;
protected $fillable = ['abbreviation', 'hint', 'used'];
protected $fillable = ['acronym', 'hint', 'language', 'used', 'context', 'submitter', 'likes', 'dislikes'];
public static function GetCurrentTla( string $language ) : Tla {
public static function GetCurrentTla( string $language ) {
$tla = Tla::where('used', date("Y-m-d"))
->where('language', $language)
->first();
@@ -24,6 +24,8 @@ class Tla extends Model
->inRandomOrder()
->first();
if ($tla == NULL) return NULL;
$tla->used = date("Y-m-d");
$tla->save();
}
+20
View File
@@ -0,0 +1,20 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Factories\HasFactory;
class TlaSuggestion extends Model
{
use HasFactory;
protected $table = 'tla_suggestion';
protected $fillable = ['acronym', 'hint', 'language', 'context', 'submitter'];
public static function ApproveTla(TlaSuggestion $record) {
$tla = new Tla($record->toArray());
$record->delete();
$tla->save();
}
}
+10 -1
View File
@@ -10,9 +10,13 @@ use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Filament\Models\Contracts\FilamentUser;
use Filament\Panel;
#[Fillable(['name', 'email', 'password'])]
#[Hidden(['password', 'remember_token'])]
class User extends Authenticatable
class User extends Authenticatable implements FilamentUser
{
/** @use HasFactory<UserFactory> */
use HasFactory, Notifiable;
@@ -29,4 +33,9 @@ class User extends Authenticatable
'password' => 'hashed',
];
}
public function canAccessPanel(Panel $panel): bool
{
return true;
}
}
+3 -1
View File
@@ -19,6 +19,8 @@ class AppServiceProvider extends ServiceProvider
*/
public function boot(): void
{
//
if($this->app->environment('production')) {
\URL::forceScheme('https');
}
}
}
@@ -0,0 +1,59 @@
<?php
namespace App\Providers\Filament;
use Filament\Http\Middleware\Authenticate;
use Filament\Http\Middleware\AuthenticateSession;
use Filament\Http\Middleware\DisableBladeIconComponents;
use Filament\Http\Middleware\DispatchServingFilamentEvent;
use Filament\Pages\Dashboard;
use Filament\Panel;
use Filament\PanelProvider;
use Filament\Support\Colors\Color;
use Filament\Widgets\AccountWidget;
use Filament\Widgets\FilamentInfoWidget;
use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse;
use Illuminate\Cookie\Middleware\EncryptCookies;
use Illuminate\Foundation\Http\Middleware\PreventRequestForgery;
use Illuminate\Routing\Middleware\SubstituteBindings;
use Illuminate\Session\Middleware\StartSession;
use Illuminate\View\Middleware\ShareErrorsFromSession;
class AdminPanelProvider extends PanelProvider
{
public function panel(Panel $panel): Panel
{
return $panel
->default()
->id('admin')
->path('admin')
->login()
->colors([
'primary' => Color::Amber,
])
->discoverResources(in: app_path('Filament/Resources'), for: 'App\Filament\Resources')
->discoverPages(in: app_path('Filament/Pages'), for: 'App\Filament\Pages')
->pages([
Dashboard::class,
])
->discoverWidgets(in: app_path('Filament/Widgets'), for: 'App\Filament\Widgets')
->widgets([
AccountWidget::class,
FilamentInfoWidget::class,
])
->middleware([
EncryptCookies::class,
AddQueuedCookiesToResponse::class,
StartSession::class,
AuthenticateSession::class,
ShareErrorsFromSession::class,
PreventRequestForgery::class,
SubstituteBindings::class,
DisableBladeIconComponents::class,
DispatchServingFilamentEvent::class,
])
->authMiddleware([
Authenticate::class,
]);
}
}
+901
View File
@@ -0,0 +1,901 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="210mm"
height="297mm"
viewBox="0 0 210 297"
version="1.1"
id="svg1"
inkscape:version="1.4.4 (dcaf3e7d9e, 2026-05-05)"
sodipodi:docname="logo_full.svg"
inkscape:export-batch-name="logo_full"
inkscape:export-batch-path="/home/sc0tt/Dev/tla/assets-nopub"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showguides="false"
inkscape:zoom="3.9857876"
inkscape:cx="180.89273"
inkscape:cy="106.00164"
inkscape:window-width="1920"
inkscape:window-height="1124"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1">
<rect
x="118.92254"
y="20.071316"
width="59.963055"
height="42.902437"
id="rect36" />
<rect
x="195.94622"
y="30.106973"
width="83.546851"
height="30.106973"
id="rect35" />
<rect
x="263.68691"
y="41.898871"
width="50.42918"
height="27.598059"
id="rect34" />
<rect
x="114.4065"
y="51.432746"
width="97.094989"
height="33.368562"
id="rect20" />
<rect
x="118.16987"
y="55.948792"
width="92.578943"
height="24.587362"
id="rect6" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5" />
<inkscape:path-effect
effect="fillet_chamfer"
id="path-effect4"
is_visible="true"
lpeversion="1"
nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1"
radius="0"
unit="px"
method="auto"
mode="F"
chamfer_steps="1"
flexible="false"
use_knot_distance="true"
apply_no_radius="true"
apply_with_radius="true"
only_selected="false"
hide_knots="false" />
<inkscape:path-effect
effect="fillet_chamfer"
id="path-effect3"
is_visible="true"
lpeversion="1"
nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1"
radius="0"
unit="px"
method="auto"
mode="F"
chamfer_steps="1"
flexible="false"
use_knot_distance="true"
apply_no_radius="true"
apply_with_radius="true"
only_selected="false"
hide_knots="false" />
<inkscape:path-effect
effect="fillet_chamfer"
id="path-effect2"
is_visible="true"
lpeversion="1"
nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1"
radius="0"
unit="px"
method="auto"
mode="F"
chamfer_steps="1"
flexible="false"
use_knot_distance="true"
apply_no_radius="true"
apply_with_radius="true"
only_selected="false"
hide_knots="false" />
<inkscape:path-effect
effect="fillet_chamfer"
id="path-effect4-7"
is_visible="true"
lpeversion="1"
nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1"
radius="0"
unit="px"
method="auto"
mode="F"
chamfer_steps="1"
flexible="false"
use_knot_distance="true"
apply_no_radius="true"
apply_with_radius="true"
only_selected="false"
hide_knots="false" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9" />
<inkscape:path-effect
effect="fillet_chamfer"
id="path-effect4-7-4"
is_visible="true"
lpeversion="1"
nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1"
radius="0"
unit="px"
method="auto"
mode="F"
chamfer_steps="1"
flexible="false"
use_knot_distance="true"
apply_no_radius="true"
apply_with_radius="true"
only_selected="false"
hide_knots="false" />
<rect
x="112.83088"
y="58.366917"
width="38.001401"
height="21.152321"
id="rect5-6-9-0" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9-8" />
<inkscape:path-effect
effect="fillet_chamfer"
id="path-effect4-7-4-9"
is_visible="true"
lpeversion="1"
nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1"
radius="0"
unit="px"
method="auto"
mode="F"
chamfer_steps="1"
flexible="false"
use_knot_distance="true"
apply_no_radius="true"
apply_with_radius="true"
only_selected="false"
hide_knots="false" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9-84" />
<inkscape:path-effect
effect="fillet_chamfer"
id="path-effect4-7-4-7"
is_visible="true"
lpeversion="1"
nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1"
radius="0"
unit="px"
method="auto"
mode="F"
chamfer_steps="1"
flexible="false"
use_knot_distance="true"
apply_no_radius="true"
apply_with_radius="true"
only_selected="false"
hide_knots="false" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9-6" />
<inkscape:path-effect
effect="fillet_chamfer"
id="path-effect4-7-4-74"
is_visible="true"
lpeversion="1"
nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1"
radius="0"
unit="px"
method="auto"
mode="F"
chamfer_steps="1"
flexible="false"
use_knot_distance="true"
apply_no_radius="true"
apply_with_radius="true"
only_selected="false"
hide_knots="false" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9-1" />
<inkscape:path-effect
effect="fillet_chamfer"
id="path-effect4-7-4-9-8"
is_visible="true"
lpeversion="1"
nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1"
radius="0"
unit="px"
method="auto"
mode="F"
chamfer_steps="1"
flexible="false"
use_knot_distance="true"
apply_no_radius="true"
apply_with_radius="true"
only_selected="false"
hide_knots="false" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9-84-5" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9-8-9" />
<rect
x="112.83088"
y="58.366917"
width="64.789864"
height="26.829346"
id="rect5-6-9-0-7" />
<inkscape:path-effect
effect="fillet_chamfer"
id="path-effect4-7-4-7-5"
is_visible="true"
lpeversion="1"
nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1"
radius="0"
unit="px"
method="auto"
mode="F"
chamfer_steps="1"
flexible="false"
use_knot_distance="true"
apply_no_radius="true"
apply_with_radius="true"
only_selected="false"
hide_knots="false" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9-6-3" />
<inkscape:path-effect
effect="fillet_chamfer"
id="path-effect4-7-4-74-0"
is_visible="true"
lpeversion="1"
nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1"
radius="0"
unit="px"
method="auto"
mode="F"
chamfer_steps="1"
flexible="false"
use_knot_distance="true"
apply_no_radius="true"
apply_with_radius="true"
only_selected="false"
hide_knots="false" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9-1-4" />
<inkscape:path-effect
effect="fillet_chamfer"
id="path-effect4-7-4-9-8-8"
is_visible="true"
lpeversion="1"
nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1"
radius="0"
unit="px"
method="auto"
mode="F"
chamfer_steps="1"
flexible="false"
use_knot_distance="true"
apply_no_radius="true"
apply_with_radius="true"
only_selected="false"
hide_knots="false" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9-84-5-8" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9-8-9-8" />
<rect
x="112.83088"
y="58.366917"
width="64.789864"
height="26.829346"
id="rect5-6-9-0-7-9" />
<inkscape:path-effect
effect="fillet_chamfer"
id="path-effect4-7-4-7-5-7"
is_visible="true"
lpeversion="1"
nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1"
radius="0"
unit="px"
method="auto"
mode="F"
chamfer_steps="1"
flexible="false"
use_knot_distance="true"
apply_no_radius="true"
apply_with_radius="true"
only_selected="false"
hide_knots="false" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9-6-3-7" />
<inkscape:path-effect
effect="fillet_chamfer"
id="path-effect4-7-4-6"
is_visible="true"
lpeversion="1"
nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1"
radius="0"
unit="px"
method="auto"
mode="F"
chamfer_steps="1"
flexible="false"
use_knot_distance="true"
apply_no_radius="true"
apply_with_radius="true"
only_selected="false"
hide_knots="false" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9-4" />
<inkscape:path-effect
effect="fillet_chamfer"
id="path-effect4-7-4-9-3"
is_visible="true"
lpeversion="1"
nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1"
radius="0"
unit="px"
method="auto"
mode="F"
chamfer_steps="1"
flexible="false"
use_knot_distance="true"
apply_no_radius="true"
apply_with_radius="true"
only_selected="false"
hide_knots="false" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9-84-0" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9-8-3" />
<rect
x="112.83088"
y="58.366917"
width="38.0014"
height="21.152321"
id="rect5-6-9-0-0" />
<inkscape:path-effect
effect="fillet_chamfer"
id="path-effect4-7-4-7-9"
is_visible="true"
lpeversion="1"
nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1"
radius="0"
unit="px"
method="auto"
mode="F"
chamfer_steps="1"
flexible="false"
use_knot_distance="true"
apply_no_radius="true"
apply_with_radius="true"
only_selected="false"
hide_knots="false" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9-6-2" />
</defs>
<g
inkscape:label="tall_dark"
inkscape:groupmode="layer"
id="layer1-8-4"
transform="translate(31.619607,11.721327)">
<path
style="fill:#6a6ca0;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2-3-0"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
sodipodi:type="rect"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
inkscape:path-effect="#path-effect4-7-4-74-0"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650759,28.290758,7.2688771)" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,9.6306523,0.00904764)"
id="text5-5-9-18-5"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';text-align:center;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-1-4);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"
x="14.547378"
y="0"><tspan
x="120.91926"
y="75.351555"
id="tspan38"><tspan
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan30">A</tspan></tspan></text>
<path
style="fill:#62af63;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2-0-9-9"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
sodipodi:type="rect"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
inkscape:path-effect="#path-effect4-7-4-9-8-8"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650759,23.678848,7.2701244)" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,5.0187431,0.01029489)"
id="text5-5-9-3-6-4"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';text-align:center;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-84-5-8);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"
x="14.547378"
y="0"><tspan
x="122.16059"
y="75.351555"
id="tspan40"><tspan
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan39">L</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,13.333744,0.00419747)"
id="text5-5-9-1-4-6"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-8-9-8);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"><tspan
x="112.83008"
y="103.02734"
id="tspan42"><tspan
dx="0 9.4640169 11.797355 5.5626831"
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan41">Tdle</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,2.4486852,5.0261842)"
id="text5-5-9-5-3-9"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:21.3333px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';letter-spacing:3.75px;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-0-7-9);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"><tspan
x="112.83008"
y="77.777827"
id="tspan44"><tspan
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan43">DLE</tspan></tspan></text>
<path
style="fill:#007e02;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2-7-3-2"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
sodipodi:type="rect"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
inkscape:path-effect="#path-effect4-7-4-7-5-7"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650758,19.063576,7.2771839)" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,0.40347011,0.01735431)"
id="text5-5-9-59-3-2"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';text-align:center;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-6-3-7);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"
x="14.547378"
y="0"><tspan
x="121.99259"
y="75.351555"
id="tspan46"><tspan
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan45">T</tspan></tspan></text>
</g>
<g
inkscape:label="long_dark"
inkscape:groupmode="layer"
id="layer1-4"
transform="translate(31.409604,-3.8667037e-4)">
<path
style="fill:#6a6ca0;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2-77"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
sodipodi:type="rect"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
inkscape:path-effect="#path-effect4-7-4-6"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650759,28.290758,7.2688771)" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,9.6306523,0.00904764)"
id="text5-5-9-54"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';text-align:center;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-4);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"
x="14.547378"
y="0"><tspan
x="120.91926"
y="75.351555"
id="tspan48"><tspan
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan47">A</tspan></tspan></text>
<path
style="fill:#62af63;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2-0-8"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
sodipodi:type="rect"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
inkscape:path-effect="#path-effect4-7-4-9-3"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650759,23.678848,7.2701244)" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,5.0187431,0.01029489)"
id="text5-5-9-3-1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';text-align:center;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-84-0);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"
x="14.547378"
y="0"><tspan
x="122.16059"
y="75.351555"
id="tspan50"><tspan
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan49">L</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,13.333744,0.00419747)"
id="text5-5-9-1-2"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-8-3);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"><tspan
x="112.83008"
y="103.02734"
id="tspan52"><tspan
dx="0 9.4640169 11.797355 5.5626831"
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan51">Tdle</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,15.826285,0.00371695)"
id="text5-5-9-5-8"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-0-0);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"><tspan
x="112.83008"
y="75.351555"
id="tspan54"><tspan
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan53">DLE</tspan></tspan></text>
<path
style="fill:#007e02;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2-7-9"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
sodipodi:type="rect"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
inkscape:path-effect="#path-effect4-7-4-7-9"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650758,19.063576,7.2771839)" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,0.40347011,0.01735431)"
id="text5-5-9-59-36"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';text-align:center;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-6-2);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"
x="14.547378"
y="0"><tspan
x="121.99259"
y="75.351555"
id="tspan56"><tspan
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan55">T</tspan></tspan></text>
</g>
<g
inkscape:label="tall_light"
inkscape:groupmode="layer"
id="layer1-8"
transform="translate(0.07723957,11.58895)">
<path
style="fill:#6a6ca0;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2-3"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
sodipodi:type="rect"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
inkscape:path-effect="#path-effect4-7-4-74"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650759,28.290758,7.2688771)"
inkscape:export-filename="logo_light_tall.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,9.6306523,0.00904764)"
id="text5-5-9-18"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';text-align:center;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-1);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"
x="14.547378"
y="0"><tspan
x="120.91926"
y="75.351555"
id="tspan58"><tspan
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan57">A</tspan></tspan></text>
<path
style="fill:#62af63;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2-0-9"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
sodipodi:type="rect"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
inkscape:path-effect="#path-effect4-7-4-9-8"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650759,23.678848,7.2701244)" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,5.0187431,0.01029489)"
id="text5-5-9-3-6"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';text-align:center;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-84-5);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"
x="14.547378"
y="0"><tspan
x="122.16059"
y="75.351555"
id="tspan60"><tspan
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan59">L</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,13.333744,0.00419747)"
id="text5-5-9-1-4"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-8-9);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"><tspan
x="112.83008"
y="103.02734"
id="tspan62"><tspan
dx="0 9.4640169 11.797355 5.5626831"
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan61">Tdle</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,2.4486852,5.0261842)"
id="text5-5-9-5-3"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:21.3333px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';letter-spacing:3.75px;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-0-7);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"><tspan
x="112.83008"
y="77.777827"
id="tspan64"><tspan
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold';fill:#000000"
id="tspan63">DLE</tspan></tspan></text>
<path
style="fill:#007e02;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2-7-3"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
sodipodi:type="rect"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
inkscape:path-effect="#path-effect4-7-4-7-5"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650758,19.063576,7.2771839)" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,0.40347011,0.01735431)"
id="text5-5-9-59-3"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';text-align:center;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-6-3);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"
x="14.547378"
y="0"><tspan
x="121.99259"
y="75.351555"
id="tspan66"><tspan
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan65">T</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,-0.07723957,-11.58895)"
id="text5"
style="fill:#ffffff;writing-mode:lr-tb;text-orientation:auto;direction:ltr;stroke-width:1.0015748;stroke-dasharray:none;fill-opacity:1;font-size:21.33333333px;-inkscape-font-specification:'Sans Bold';font-family:Sans;font-weight:bold;font-style:normal;font-stretch:normal;font-variant:normal;line-height:0;letter-spacing:3.7500001px;white-space:pre;shape-inside:url(#rect6)" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,-0.07723957,-11.58895)"
id="text20"
style="fill:#ffffff;writing-mode:lr-tb;text-orientation:auto;direction:ltr;stroke-width:1.0015748;stroke-dasharray:none;fill-opacity:1;font-size:21.33333333px;-inkscape-font-specification:'Sans Bold';font-family:Sans;font-weight:bold;font-style:normal;font-stretch:normal;font-variant:normal;line-height:0;letter-spacing:3.7500001px;white-space:pre;shape-inside:url(#rect20)" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,-0.07723957,-11.58895)"
id="text34"
style="fill:#ffffff;writing-mode:lr-tb;text-orientation:auto;direction:ltr;stroke-width:1.0015748;stroke-dasharray:none;fill-opacity:1;font-size:21.33333333px;-inkscape-font-specification:'Sans Bold';font-family:Sans;font-weight:bold;font-style:normal;font-stretch:normal;font-variant:normal;line-height:0;letter-spacing:3.7500001px;white-space:pre;shape-inside:url(#rect34)" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,-0.07723957,-11.58895)"
id="text35"
style="fill:#ffffff;writing-mode:lr-tb;text-orientation:auto;direction:ltr;stroke-width:1.0015748;stroke-dasharray:none;fill-opacity:1;font-size:21.33333333px;-inkscape-font-specification:'Sans Bold';font-family:Sans;font-weight:bold;font-style:normal;font-stretch:normal;font-variant:normal;line-height:0;letter-spacing:3.7500001px;white-space:pre;shape-inside:url(#rect35)" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,-0.07723957,-11.58895)"
id="text36"
style="fill:#ffffff;writing-mode:lr-tb;text-orientation:auto;direction:ltr;stroke-width:1.0015748;stroke-dasharray:none;fill-opacity:1;font-size:21.33333333px;-inkscape-font-specification:'Sans Bold';font-family:Sans;font-weight:bold;font-style:normal;font-stretch:normal;font-variant:normal;line-height:0;letter-spacing:3.7500001px;white-space:pre;shape-inside:url(#rect36)" />
</g>
<g
inkscape:label="long_light"
inkscape:groupmode="layer"
id="layer1">
<path
style="fill:#6a6ca0;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
sodipodi:type="rect"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
inkscape:path-effect="#path-effect4-7-4"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650759,28.290758,7.2688771)"
inkscape:export-filename="logo_light_long.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,9.6306523,0.00904764)"
id="text5-5-9"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';text-align:center;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"
x="14.547378"
y="0"><tspan
x="120.91926"
y="75.351555"
id="tspan68"><tspan
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan67">A</tspan></tspan></text>
<path
style="fill:#62af63;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2-0"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
sodipodi:type="rect"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
inkscape:path-effect="#path-effect4-7-4-9"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650759,23.678848,7.2701244)" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,5.0187431,0.01029489)"
id="text5-5-9-3"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';text-align:center;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-84);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"
x="14.547378"
y="0"><tspan
x="122.16059"
y="75.351555"
id="tspan70"><tspan
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan69">L</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,13.333744,0.00419747)"
id="text5-5-9-1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-8);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"><tspan
x="112.83008"
y="103.02734"
id="tspan72"><tspan
dx="0 9.4640169 11.797355 5.5626831"
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan71">Tdle</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,15.826285,0.00371695)"
id="text5-5-9-5"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-0);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"><tspan
x="112.83008"
y="75.351555"
id="tspan74"><tspan
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold';fill:#000000"
id="tspan73">DLE</tspan></tspan></text>
<path
style="fill:#007e02;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2-7"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
sodipodi:type="rect"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
inkscape:path-effect="#path-effect4-7-4-7"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650758,19.063576,7.2771839)" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,0.40347011,0.01735431)"
id="text5-5-9-59"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';text-align:center;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-6);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"
x="14.547378"
y="0"><tspan
x="121.99259"
y="75.351555"
id="tspan76"><tspan
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan75">T</tspan></tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 40 KiB

+565
View File
@@ -0,0 +1,565 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="210mm"
height="297mm"
viewBox="0 0 210 297"
version="1.1"
id="svg1"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1">
<rect
x="118.92254"
y="20.071316"
width="59.963055"
height="42.902437"
id="rect36" />
<rect
x="195.94622"
y="30.106973"
width="83.546851"
height="30.106973"
id="rect35" />
<rect
x="263.68691"
y="41.898871"
width="50.42918"
height="27.598059"
id="rect34" />
<rect
x="114.4065"
y="51.432746"
width="97.094989"
height="33.368562"
id="rect20" />
<rect
x="118.16987"
y="55.948792"
width="92.578943"
height="24.587362"
id="rect6" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9" />
<rect
x="112.83088"
y="58.366917"
width="38.001401"
height="21.152321"
id="rect5-6-9-0" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9-8" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9-84" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9-6" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9-1" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9-84-5" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9-8-9" />
<rect
x="112.83088"
y="58.366917"
width="64.789864"
height="26.829346"
id="rect5-6-9-0-7" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9-6-3" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9-1-4" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9-84-5-8" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9-8-9-8" />
<rect
x="112.83088"
y="58.366917"
width="64.789864"
height="26.829346"
id="rect5-6-9-0-7-9" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9-6-3-7" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9-4" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9-84-0" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9-8-3" />
<rect
x="112.83088"
y="58.366917"
width="38.0014"
height="21.152321"
id="rect5-6-9-0-0" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9-6-2" />
</defs>
<g
id="layer1-8-4"
transform="translate(31.619607,11.721327)">
<path
style="fill:#6a6ca0;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2-3-0"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650759,28.290758,7.2688771)" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,9.6306523,0.00904764)"
id="text5-5-9-18-5"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';text-align:center;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-1-4);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"
x="14.547378"
y="0"><tspan
x="120.91926"
y="75.351555"
id="tspan38"><tspan
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan30">A</tspan></tspan></text>
<path
style="fill:#62af63;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2-0-9-9"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650759,23.678848,7.2701244)" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,5.0187431,0.01029489)"
id="text5-5-9-3-6-4"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';text-align:center;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-84-5-8);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"
x="14.547378"
y="0"><tspan
x="122.16059"
y="75.351555"
id="tspan40"><tspan
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan39">L</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,13.333744,0.00419747)"
id="text5-5-9-1-4-6"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-8-9-8);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"><tspan
x="112.83008"
y="103.02734"
id="tspan42"><tspan
dx="0 9.4640169 11.797355 5.5626831"
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan41">Tdle</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,2.4486852,5.0261842)"
id="text5-5-9-5-3-9"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:21.3333px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';letter-spacing:3.75px;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-0-7-9);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"><tspan
x="112.83008"
y="77.777827"
id="tspan44"><tspan
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan43">DLE</tspan></tspan></text>
<path
style="fill:#007e02;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2-7-3-2"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650758,19.063576,7.2771839)" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,0.40347011,0.01735431)"
id="text5-5-9-59-3-2"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';text-align:center;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-6-3-7);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"
x="14.547378"
y="0"><tspan
x="121.99259"
y="75.351555"
id="tspan46"><tspan
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan45">T</tspan></tspan></text>
</g>
<g
id="layer1-4"
transform="translate(31.409604,-3.8667037e-4)">
<path
style="fill:#6a6ca0;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2-77"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650759,28.290758,7.2688771)" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,9.6306523,0.00904764)"
id="text5-5-9-54"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';text-align:center;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-4);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"
x="14.547378"
y="0"><tspan
x="120.91926"
y="75.351555"
id="tspan48"><tspan
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan47">A</tspan></tspan></text>
<path
style="fill:#62af63;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2-0-8"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650759,23.678848,7.2701244)" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,5.0187431,0.01029489)"
id="text5-5-9-3-1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';text-align:center;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-84-0);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"
x="14.547378"
y="0"><tspan
x="122.16059"
y="75.351555"
id="tspan50"><tspan
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan49">L</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,13.333744,0.00419747)"
id="text5-5-9-1-2"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-8-3);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"><tspan
x="112.83008"
y="103.02734"
id="tspan52"><tspan
dx="0 9.4640169 11.797355 5.5626831"
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan51">Tdle</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,15.826285,0.00371695)"
id="text5-5-9-5-8"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-0-0);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"><tspan
x="112.83008"
y="75.351555"
id="tspan54"><tspan
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan53">DLE</tspan></tspan></text>
<path
style="fill:#007e02;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2-7-9"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650758,19.063576,7.2771839)" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,0.40347011,0.01735431)"
id="text5-5-9-59-36"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';text-align:center;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-6-2);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"
x="14.547378"
y="0"><tspan
x="121.99259"
y="75.351555"
id="tspan56"><tspan
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan55">T</tspan></tspan></text>
</g>
<g
id="layer1-8"
transform="translate(0.07723957,11.58895)">
<path
style="fill:#6a6ca0;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2-3"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650759,28.290758,7.2688771)" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,9.6306523,0.00904764)"
id="text5-5-9-18"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';text-align:center;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-1);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"
x="14.547378"
y="0"><tspan
x="120.91926"
y="75.351555"
id="tspan58"><tspan
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan57">A</tspan></tspan></text>
<path
style="fill:#62af63;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2-0-9"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650759,23.678848,7.2701244)" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,5.0187431,0.01029489)"
id="text5-5-9-3-6"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';text-align:center;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-84-5);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"
x="14.547378"
y="0"><tspan
x="122.16059"
y="75.351555"
id="tspan60"><tspan
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan59">L</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,13.333744,0.00419747)"
id="text5-5-9-1-4"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-8-9);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"><tspan
x="112.83008"
y="103.02734"
id="tspan62"><tspan
dx="0 9.4640169 11.797355 5.5626831"
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan61">Tdle</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,2.4486852,5.0261842)"
id="text5-5-9-5-3"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:21.3333px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';letter-spacing:3.75px;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-0-7);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"><tspan
x="112.83008"
y="77.777827"
id="tspan64"><tspan
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold';fill:#000000"
id="tspan63">DLE</tspan></tspan></text>
<path
style="fill:#007e02;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2-7-3"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650758,19.063576,7.2771839)" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,0.40347011,0.01735431)"
id="text5-5-9-59-3"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';text-align:center;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-6-3);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"
x="14.547378"
y="0"><tspan
x="121.99259"
y="75.351555"
id="tspan66"><tspan
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan65">T</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,-0.07723957,-11.58895)"
id="text5"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:21.3333px;line-height:0;font-family:Sans;-inkscape-font-specification:'Sans Bold';letter-spacing:3.75px;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect6);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,-0.07723957,-11.58895)"
id="text20"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:21.3333px;line-height:0;font-family:Sans;-inkscape-font-specification:'Sans Bold';letter-spacing:3.75px;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect20);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,-0.07723957,-11.58895)"
id="text34"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:21.3333px;line-height:0;font-family:Sans;-inkscape-font-specification:'Sans Bold';letter-spacing:3.75px;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect34);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,-0.07723957,-11.58895)"
id="text35"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:21.3333px;line-height:0;font-family:Sans;-inkscape-font-specification:'Sans Bold';letter-spacing:3.75px;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect35);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,-0.07723957,-11.58895)"
id="text36"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:21.3333px;line-height:0;font-family:Sans;-inkscape-font-specification:'Sans Bold';letter-spacing:3.75px;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect36);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none" />
</g>
<g
id="layer1">
<path
style="fill:#6a6ca0;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650759,28.290758,7.2688771)" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,9.6306523,0.00904764)"
id="text5-5-9"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';text-align:center;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"
x="14.547378"
y="0"><tspan
x="120.91926"
y="75.351555"
id="tspan68"><tspan
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan67">A</tspan></tspan></text>
<path
style="fill:#62af63;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2-0"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650759,23.678848,7.2701244)" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,5.0187431,0.01029489)"
id="text5-5-9-3"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';text-align:center;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-84);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"
x="14.547378"
y="0"><tspan
x="122.16059"
y="75.351555"
id="tspan70"><tspan
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan69">L</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,13.333744,0.00419747)"
id="text5-5-9-1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-8);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"><tspan
x="112.83008"
y="103.02734"
id="tspan72"><tspan
dx="0 9.4640169 11.797355 5.5626831"
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan71">Tdle</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,15.826285,0.00371695)"
id="text5-5-9-5"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-0);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"><tspan
x="112.83008"
y="75.351555"
id="tspan74"><tspan
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold';fill:#000000"
id="tspan73">DLE</tspan></tspan></text>
<path
style="fill:#007e02;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2-7"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650758,19.063576,7.2771839)" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,0.40347011,0.01735431)"
id="text5-5-9-59"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';text-align:center;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-6);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"
x="14.547378"
y="0"><tspan
x="121.99259"
y="75.351555"
id="tspan76"><tspan
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan75">T</tspan></tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 29 KiB

+2 -3
View File
@@ -1,7 +1,6 @@
<?php
use App\Providers\AppServiceProvider;
return [
AppServiceProvider::class,
App\Providers\AppServiceProvider::class,
App\Providers\Filament\AdminPanelProvider::class,
];
+4 -5
View File
@@ -3,13 +3,11 @@
"name": "laravel/laravel",
"type": "project",
"description": "The skeleton application for the Laravel framework.",
"keywords": [
"laravel",
"framework"
],
"keywords": ["laravel", "framework"],
"license": "MIT",
"require": {
"php": "^8.3",
"filament/filament": "^5.0",
"laravel/framework": "^13.8",
"laravel/tinker": "^3.0"
},
@@ -54,7 +52,8 @@
],
"post-autoload-dump": [
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
"@php artisan package:discover --ansi"
"@php artisan package:discover --ansi",
"@php artisan filament:upgrade"
],
"post-update-cmd": [
"@php artisan vendor:publish --tag=laravel-assets --ansi --force",
Generated
+2122 -1
View File
File diff suppressed because it is too large Load Diff
+137
View File
@@ -0,0 +1,137 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Broadcasting
|--------------------------------------------------------------------------
|
| By uncommenting the Laravel Echo configuration, you may connect Filament
| to any Pusher-compatible websockets server.
|
| This will allow your users to receive real-time notifications.
|
*/
'broadcasting' => [
// 'echo' => [
// 'broadcaster' => 'pusher',
// 'key' => env('VITE_PUSHER_APP_KEY'),
// 'cluster' => env('VITE_PUSHER_APP_CLUSTER'),
// 'wsHost' => env('VITE_PUSHER_HOST'),
// 'wsPort' => env('VITE_PUSHER_PORT'),
// 'wssPort' => env('VITE_PUSHER_PORT'),
// 'authEndpoint' => '/broadcasting/auth',
// 'disableStats' => true,
// 'encrypted' => true,
// 'forceTLS' => env('VITE_PUSHER_SCHEME', 'https') === 'https',
// ],
],
/*
|--------------------------------------------------------------------------
| Default Filesystem Disk
|--------------------------------------------------------------------------
|
| This is the storage disk Filament will use to store files. You may use
| any of the disks defined in the `config/filesystems.php`.
|
*/
'default_filesystem_disk' => env('FILESYSTEM_DISK', 'local'),
/*
|--------------------------------------------------------------------------
| Temporary File URL Expiry
|--------------------------------------------------------------------------
|
| When Filament generates temporary URLs for previewing private files
| (file uploads, image columns, image entries, rich editor attachments,
| etc.), this value controls how many minutes those URLs remain valid.
|
| The generated URL's expiry is rounded up to the end of the hour it
| falls in, so the effective lifetime will be between this value and
| this value plus up to 60 minutes.
|
*/
'temporary_file_url_expiry_minutes' => 30,
/*
|--------------------------------------------------------------------------
| Assets Path
|--------------------------------------------------------------------------
|
| This is the directory where Filament's assets will be published to. It
| is relative to the `public` directory of your Laravel application.
|
| After changing the path, you should run `php artisan filament:assets`.
|
*/
'assets_path' => null,
/*
|--------------------------------------------------------------------------
| Cache Path
|--------------------------------------------------------------------------
|
| This is the directory that Filament will use to store cache files that
| are used to optimize the registration of components.
|
| After changing the path, you should run `php artisan filament:cache-components`.
|
*/
'cache_path' => base_path('bootstrap/cache/filament'),
/*
|--------------------------------------------------------------------------
| Livewire Loading Delay
|--------------------------------------------------------------------------
|
| This sets the delay before loading indicators appear.
|
| Setting this to 'none' makes indicators appear immediately, which can be
| desirable for high-latency connections. Setting it to 'default' applies
| Livewire's standard 200ms delay.
|
*/
'livewire_loading_delay' => 'default',
/*
|--------------------------------------------------------------------------
| File Generation
|--------------------------------------------------------------------------
|
| Artisan commands that generate files can be configured here by setting
| configuration flags that will impact their location or content.
|
| Often, this is useful to preserve file generation behavior from a
| previous version of Filament, to ensure consistency between older and
| newer generated files. These flags are often documented in the upgrade
| guide for the version of Filament you are upgrading to.
|
*/
'file_generation' => [
'flags' => [],
],
/*
|--------------------------------------------------------------------------
| System Route Prefix
|--------------------------------------------------------------------------
|
| This is the prefix used for the system routes that Filament registers,
| such as the routes for downloading exports and failed import rows.
|
*/
'system_route_prefix' => 'filament',
];
+2 -1
View File
@@ -18,9 +18,10 @@ class TlaFactory extends Factory
public function definition(): array
{
return [
'abbreviation' => fake()->word() . ' ' . fake()->word() . ' ' . fake()->word(),
'acronym' => fake()->word() . ' ' . fake()->word() . ' ' . fake()->word(),
'hint' => fake()->sentence(),
'language' => fake()->randomElement(['hu', 'en']),
'context' => fake()->paragraph(),
];
}
}
@@ -13,10 +13,11 @@ return new class extends Migration
{
Schema::create('tla', function (Blueprint $table) {
$table->id();
$table->string('abbreviation');
$table->string('acronym');
$table->string('hint')->nullable();
$table->enum('language', ['hu', 'en']);
$table->date('used')->nullable();
$table->longText('context')->nullable();
$table->timestamps();
});
}
@@ -0,0 +1,31 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('tla_suggestion', function (Blueprint $table) {
$table->id();
$table->string('acronym');
$table->string('hint')->nullable();
$table->enum('language', ['hu', 'en']);
$table->longText('context')->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('tla_suggestion');
}
};
@@ -0,0 +1,27 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('tla', function (Blueprint $table) {
$table->integer('likes')->default(0)->after('context');
$table->integer('dislikes')->default(0)->after('likes');
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
//
}
};
@@ -0,0 +1,29 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('tla_suggestion', function (Blueprint $table){
$table->string('submitter')->nullable()->after('context');
});
Schema::table('tla', function (Blueprint $table){
$table->string('submitter')->nullable()->after('context');
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
//
}
};
-1
View File
@@ -10,7 +10,6 @@ services:
- .:/app
env_file:
- .env
restart: unless-stopped
db:
image: "mariadb:lts"
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./inter-cyrillic-ext-wght-normal-IYF56FF6.woff2") format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./inter-cyrillic-wght-normal-JEOLYBOO.woff2") format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./inter-greek-ext-wght-normal-EOVOK2B5.woff2") format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./inter-greek-wght-normal-IRE366VL.woff2") format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./inter-vietnamese-wght-normal-CE5GGD3W.woff2") format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./inter-latin-ext-wght-normal-HA22NDSG.woff2") format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./inter-latin-wght-normal-NRMW37G5.woff2") format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
+1
View File
@@ -0,0 +1 @@
(()=>{var o=({livewireId:s})=>({actionNestingIndex:null,shouldOverlayParentActions:!1,closedActionNestingIndexes:[],focusTargetsByNestingIndex:{},boundSyncActionModals:null,boundOnModalClosed:null,init(){this.boundSyncActionModals=e=>{e.detail.id===s&&this.syncActionModals(e.detail.newActionNestingIndex,e.detail.shouldOverlayParentActions??!1)},this.boundOnModalClosed=e=>{let t=this.getActionNestingIndexFromModalId(e.detail.id);t!==null&&((this.shouldOverlayParentActions||t===0)&&this.restorePreviouslyFocusedElement(t-1),this.closedActionNestingIndexes.push(t))},window.addEventListener("sync-action-modals",this.boundSyncActionModals),window.addEventListener("modal-closed",this.boundOnModalClosed)},destroy(){this.boundSyncActionModals&&(window.removeEventListener("sync-action-modals",this.boundSyncActionModals),this.boundSyncActionModals=null),this.boundOnModalClosed&&(window.removeEventListener("modal-closed",this.boundOnModalClosed),this.boundOnModalClosed=null)},syncActionModals(e,t=!1){if(this.actionNestingIndex===e){this.actionNestingIndex!==null&&this.$nextTick(()=>this.openModal());return}let n=this.actionNestingIndex!==null&&e!==null&&e>this.actionNestingIndex,i=this.actionNestingIndex!==null&&e!==null&&e<this.actionNestingIndex,d=this.actionNestingIndex===null&&e!==null;if((n||d)&&this.rememberPreviouslyFocusedElement(),this.actionNestingIndex!==null&&!(t&&n)&&this.closeModal(),this.actionNestingIndex=e,this.actionNestingIndex===null){this.restorePreviouslyFocusedElement(-1),this.closedActionNestingIndexes=[],this.focusTargetsByNestingIndex={},this.shouldOverlayParentActions=!1;return}if(this.shouldOverlayParentActions=t,this.closedActionNestingIndexes=this.closedActionNestingIndexes.filter(l=>l<=this.actionNestingIndex),!this.closedActionNestingIndexes.includes(this.actionNestingIndex)){if(!this.$el.querySelector(`#${this.generateModalId(e)}`)){this.$nextTick(()=>{this.openModal(),i&&this.restorePreviouslyFocusedElement()});return}this.openModal(),i&&this.restorePreviouslyFocusedElement()}},rememberPreviouslyFocusedElement(){let e=this.$focus.focused();if(!e)return;if(this.actionNestingIndex===null){this.focusTargetsByNestingIndex[-1]=e;return}this.$el.querySelector(`#${this.generateModalId(this.actionNestingIndex)}`)?.contains(e)&&(this.focusTargetsByNestingIndex[this.actionNestingIndex]=e)},restorePreviouslyFocusedElement(e=this.actionNestingIndex){let t=this.focusTargetsByNestingIndex[e];if(t){for(let n in this.focusTargetsByNestingIndex)Number(n)>=e&&delete this.focusTargetsByNestingIndex[n];requestAnimationFrame(()=>requestAnimationFrame(()=>this.$nextTick(()=>{t.focus({preventScroll:!0})})))}},generateModalId(e){return`fi-${s}-action-`+e},getActionNestingIndexFromModalId(e){let t=`fi-${s}-action-`;if(!e?.startsWith(t))return null;let n=Number(e.slice(t.length));return Number.isInteger(n)?n:null},openModal(){let e=this.generateModalId(this.actionNestingIndex);document.dispatchEvent(new CustomEvent("open-modal",{bubbles:!0,composed:!0,detail:{id:e}}))},closeModal(){let e=this.generateModalId(this.actionNestingIndex);document.dispatchEvent(new CustomEvent("close-modal-quietly",{bubbles:!0,composed:!0,detail:{id:e}}))}});document.addEventListener("alpine:init",()=>{window.Alpine.data("filamentActionModals",o)});})();
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
function c({livewireId:s}){return{areAllCheckboxesChecked:!1,checkboxListOptions:[],search:"",unsubscribeLivewireHook:null,visibleCheckboxListOptions:[],init(){this.checkboxListOptions=Array.from(this.$root.querySelectorAll(".fi-fo-checkbox-list-option")),this.updateVisibleCheckboxListOptions(),this.$nextTick(()=>{this.checkIfAllCheckboxesAreChecked()}),this.unsubscribeLivewireHook=Livewire.interceptMessage(({message:e,onSuccess:t})=>{t(()=>{this.$nextTick(()=>{e.component.id===s&&(this.checkboxListOptions=Array.from(this.$root.querySelectorAll(".fi-fo-checkbox-list-option")),this.updateVisibleCheckboxListOptions(),this.checkIfAllCheckboxesAreChecked())})})}),this.$watch("search",()=>{this.updateVisibleCheckboxListOptions(),this.checkIfAllCheckboxesAreChecked()})},checkIfAllCheckboxesAreChecked(){this.areAllCheckboxesChecked=this.visibleCheckboxListOptions.length===this.visibleCheckboxListOptions.filter(e=>e.querySelector("input[type=checkbox]:checked, input[type=checkbox]:disabled")).length},toggleAllCheckboxes(){this.checkIfAllCheckboxesAreChecked();let e=!this.areAllCheckboxesChecked;this.visibleCheckboxListOptions.forEach(t=>{let i=t.querySelector("input[type=checkbox]");i.disabled||i.checked!==e&&(i.checked=e,i.dispatchEvent(new Event("change")))}),this.areAllCheckboxesChecked=e},updateVisibleCheckboxListOptions(){this.visibleCheckboxListOptions=this.checkboxListOptions.filter(e=>["",null,void 0].includes(this.search)||e.querySelector(".fi-fo-checkbox-list-option-label")?.innerText.toLowerCase().includes(this.search.toLowerCase())?!0:e.querySelector(".fi-fo-checkbox-list-option-description")?.innerText.toLowerCase().includes(this.search.toLowerCase()))},destroy(){this.unsubscribeLivewireHook?.()}}}export{c as default};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
function a({state:r}){return{state:r,rows:[],init(){this.updateRows(),this.rows.length<=0?this.rows.push({key:"",value:""}):this.updateState(),this.$watch("state",(e,t)=>{if(!Array.isArray(e))return;let s=i=>i===null?0:Array.isArray(i)?i.length:typeof i!="object"?0:Object.keys(i).length;s(e)===0&&s(t)===0||this.updateRows()})},addRow(){this.rows.push({key:"",value:""}),this.updateState()},deleteRow(e){this.rows.splice(e,1),this.rows.length<=0&&this.addRow(),this.updateState()},reorderRows(e){let t=Alpine.raw(this.rows);this.rows=[];let s=t.splice(e.oldIndex,1)[0];t.splice(e.newIndex,0,s),this.$nextTick(()=>{this.rows=t,this.updateState()})},updateRows(){let t=Alpine.raw(this.state).map(({key:s,value:i})=>({key:s,value:i}));this.rows.forEach(s=>{(s.key===""||s.key===null)&&t.push({key:"",value:s.value})}),this.rows=t},updateState(){let e=[];this.rows.forEach(t=>{t.key===""||t.key===null||e.push({key:t.key,value:t.value})}),JSON.stringify(this.state)!==JSON.stringify(e)&&(this.state=e)}}}export{a as default};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
function r({state:n,splitKeys:i,tagAddedMessage:a,tagRemovedMessage:s}){return{newTag:"",state:n,liveRegionClearTimeout:null,announce(e){let t=this.$refs.liveRegion;t&&(this.liveRegionClearTimeout!==null&&clearTimeout(this.liveRegionClearTimeout),t.textContent=e,this.liveRegionClearTimeout=setTimeout(()=>{t.textContent="",this.liveRegionClearTimeout=null},3e3))},createTag(){if(this.newTag=this.newTag.trim(),this.newTag!==""){if(this.state.includes(this.newTag)){this.newTag="";return}this.state.push(this.newTag),this.announce(a?.replace(":tag",()=>this.newTag)),this.newTag=""}},deleteTag(e){this.state=this.state.filter(t=>t!==e),this.announce(s?.replace(":tag",()=>e))},reorderTags(e){let t=this.state.splice(e.oldIndex,1)[0];this.state.splice(e.newIndex,0,t),this.state=[...this.state]},input:{"x-on:blur":"createTag()","x-model":"newTag","x-on:keydown"(e){["Enter",...i].includes(e.key)&&(e.preventDefault(),e.stopPropagation(),this.createTag())},"x-on:paste"(){this.$nextTick(()=>{if(i.length===0){this.createTag();return}let e=i.map(t=>t.replace(/[/\-\\^$*+?.()|[\]{}]/g,"\\$&")).join("|");this.newTag.split(new RegExp(e,"g")).forEach(t=>{this.newTag=t,this.createTag()})})}}}}export{r as default};
@@ -0,0 +1 @@
function n({initialHeight:e,shouldAutosize:i,state:h}){return{state:h,wrapperEl:null,init(){this.wrapperEl=this.$el.parentNode,this.setInitialHeight(),i?this.$watch("state",()=>{this.resize()}):this.setUpResizeObserver()},setInitialHeight(){this.$el.scrollHeight<=0||(this.wrapperEl.style.height=e+"rem")},resize(){if(this.$el.scrollHeight<=0)return;let t=this.$el.style.height;this.$el.style.height="0px";let r=this.$el.scrollHeight;this.$el.style.height=t;let l=parseFloat(e)*parseFloat(getComputedStyle(document.documentElement).fontSize),s=Math.max(r,l)+"px";this.wrapperEl.style.height!==s&&(this.wrapperEl.style.height=s)},setUpResizeObserver(){new ResizeObserver(()=>{this.wrapperEl.style.height=this.$el.style.height}).observe(this.$el)}}}export{n as default};
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
var i=()=>({isSticky:!1,width:0,resizeObserver:null,boundUpdateWidth:null,init(){let e=this.$el.parentElement;e&&(this.updateWidth(),this.resizeObserver=new ResizeObserver(()=>this.updateWidth()),this.resizeObserver.observe(e),this.boundUpdateWidth=this.updateWidth.bind(this),window.addEventListener("resize",this.boundUpdateWidth))},enableSticky(){this.isSticky=this.$el.getBoundingClientRect().top>0},disableSticky(){this.isSticky=!1},updateWidth(){let e=this.$el.parentElement;if(!e)return;let t=getComputedStyle(this.$root.querySelector(".fi-ac"));this.width=e.offsetWidth+parseInt(t.marginInlineStart,10)*-1+parseInt(t.marginInlineEnd,10)*-1},destroy(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null),this.boundUpdateWidth&&(window.removeEventListener("resize",this.boundUpdateWidth),this.boundUpdateWidth=null)}});export{i as default};
@@ -0,0 +1 @@
function x({activeTab:h,isScrollable:m,isTabPersisted:T,isTabPersistedInQueryString:u,livewireId:g,schemaKey:D,tab:W,tabQueryStringKey:r}){return{boundResizeHandler:null,boundResetHandler:null,isScrollable:m,resizeDebounceTimer:null,tab:W,unsubscribeLivewireHook:null,withinDropdownIndex:null,withinDropdownMounted:!1,init(){let t=this.getTabs(),e=new URLSearchParams(window.location.search);u&&e.has(r)&&t.includes(e.get(r))&&(this.tab=e.get(r)),(!this.tab||!t.includes(this.tab))&&(this.tab=t[h-1]),this.$watch("tab",()=>{this.updateQueryString(),this.autofocusFields()}),this.autofocusFields(!0),this.unsubscribeLivewireHook=Livewire.interceptMessage(({message:i,onSuccess:a})=>{a(()=>{this.$nextTick(()=>{if(i.component.id!==g)return;let l=this.getTabs();l.includes(this.tab)||(this.tab=l[h-1]??this.tab)})})}),this.boundResetHandler=i=>{i.detail.livewireId!==g||i.detail.schemaKey!==D||T||u||this.$nextTick(()=>{this.tab=this.getTabs()[h-1]??this.tab})},window.addEventListener("reset-schema-component-state",this.boundResetHandler),m||(this.boundResizeHandler=this.debouncedUpdateTabsWithinDropdown.bind(this),window.addEventListener("resize",this.boundResizeHandler),this.updateTabsWithinDropdown())},calculateAvailableWidth(t){let e=window.getComputedStyle(t);return Math.floor(t.clientWidth)-Math.ceil(parseFloat(e.paddingLeft))*2},calculateContainerGap(t){let e=window.getComputedStyle(t);return Math.ceil(parseFloat(e.columnGap))},calculateDropdownIconWidth(t){let e=t.querySelector(".fi-icon");return Math.ceil(e.clientWidth)},calculateTabItemGap(t){let e=window.getComputedStyle(t);return Math.ceil(parseFloat(e.columnGap)||8)},calculateTabItemPadding(t){let e=window.getComputedStyle(t);return Math.ceil(parseFloat(e.paddingLeft))+Math.ceil(parseFloat(e.paddingRight))},findOverflowIndex(t,e,i,a,l,b){let p=t.map(n=>Math.ceil(n.clientWidth)),w=t.map(n=>{let d=n.querySelector(".fi-tabs-item-label"),s=n.querySelector(".fi-badge"),o=Math.ceil(d.clientWidth),c=s?Math.ceil(s.clientWidth):0;return{label:o,badge:c,total:o+(c>0?a+c:0)}});for(let n=0;n<t.length;n++){let d=p.slice(0,n+1).reduce((f,I)=>f+I,0),s=n*i,o=w.slice(n+1),c=o.length>0,v=c?Math.max(...o.map(f=>f.total)):0,y=c?l+v+a+b+i:0;if(d+s+y>e)return n}return-1},get isDropdownButtonVisible(){return this.withinDropdownMounted?this.withinDropdownIndex===null?!1:this.getTabs().findIndex(e=>e===this.tab)<this.withinDropdownIndex:!0},getTabs(){return this.$refs.tabsData?JSON.parse(this.$refs.tabsData.value):[]},updateQueryString(){if(!u)return;let t=new URL(window.location.href);t.searchParams.set(r,this.tab),history.replaceState(null,document.title,t.toString())},autofocusFields(t=!1){this.$nextTick(()=>{if(t&&document.activeElement&&document.activeElement!==document.body&&this.$el.compareDocumentPosition(document.activeElement)&Node.DOCUMENT_POSITION_PRECEDING)return;let e=this.$el.querySelectorAll(".fi-sc-tabs-tab.fi-active [autofocus]");for(let i of e)if(i.focus(),document.activeElement===i)break})},debouncedUpdateTabsWithinDropdown(){clearTimeout(this.resizeDebounceTimer),this.resizeDebounceTimer=setTimeout(()=>this.updateTabsWithinDropdown(),150)},async updateTabsWithinDropdown(){this.withinDropdownIndex=null,this.withinDropdownMounted=!1,await this.$nextTick();let t=this.$el.querySelector(".fi-tabs"),e=t.querySelector(".fi-tabs-item:last-child"),i=Array.from(t.children).slice(0,-1),a=i.map(s=>s.style.display);i.forEach(s=>s.style.display=""),t.offsetHeight;let l=this.calculateAvailableWidth(t),b=this.calculateContainerGap(t),p=this.calculateDropdownIconWidth(e),w=this.calculateTabItemGap(i[0]),n=this.calculateTabItemPadding(i[0]),d=this.findOverflowIndex(i,l,b,w,n,p);i.forEach((s,o)=>s.style.display=a[o]),d!==-1&&(this.withinDropdownIndex=d),this.withinDropdownMounted=!0},destroy(){this.unsubscribeLivewireHook?.(),this.boundResetHandler&&window.removeEventListener("reset-schema-component-state",this.boundResetHandler),this.boundResizeHandler&&window.removeEventListener("resize",this.boundResizeHandler),clearTimeout(this.resizeDebounceTimer)}}}export{x as default};
@@ -0,0 +1 @@
function l({isSkippable:i,isStepPersistedInQueryString:n,key:o,livewireId:h,schemaKey:p,startStep:r,stepQueryStringKey:d}){return{boundResetHandler:null,step:null,init(){this.step=this.getSteps().at(r-1),this.$watch("step",()=>{this.updateQueryString(),this.autofocusFields()}),this.autofocusFields(!0),this.boundResetHandler=t=>{t.detail.livewireId!==h||t.detail.schemaKey!==p||n||this.$nextTick(()=>{this.step=this.getSteps().at(r-1)??this.step})},window.addEventListener("reset-schema-component-state",this.boundResetHandler)},async requestNextStep(){await this.$wire.callSchemaComponentMethod(o,"nextStep",{currentStepIndex:this.getStepIndex(this.step)})},goToNextStep(){let t=this.getStepIndex(this.step)+1;t>=this.getSteps().length||(this.step=this.getSteps()[t],this.scroll())},goToPreviousStep(){let t=this.getStepIndex(this.step)-1;t<0||(this.step=this.getSteps()[t],this.scroll())},goToStep(t){let e=this.getStepIndex(t);e<=-1||!i&&e>this.getStepIndex(this.step)||(this.step=t,this.scroll())},scroll(){this.$nextTick(()=>{this.$refs.header?.children[this.getStepIndex(this.step)].scrollIntoView({behavior:"smooth",block:"start"})})},autofocusFields(t=!1){this.$nextTick(()=>{if(t&&document.activeElement&&document.activeElement!==document.body&&this.$el.compareDocumentPosition(document.activeElement)&Node.DOCUMENT_POSITION_PRECEDING)return;let e=this.$refs[`step-${this.step}`]?.querySelectorAll("[autofocus]")??[];for(let s of e)if(s.focus(),document.activeElement===s)break})},getStepIndex(t){let e=this.getSteps().findIndex(s=>s===t);return e===-1?0:e},getSteps(){return JSON.parse(this.$refs.stepsData.value)},isFirstStep(){return this.getStepIndex(this.step)<=0},isLastStep(){return this.getStepIndex(this.step)+1>=this.getSteps().length},isStepAccessible(t){return i||this.getStepIndex(this.step)>this.getStepIndex(t)},updateQueryString(){if(!n)return;let t=new URL(window.location.href);t.searchParams.set(d,this.step),history.replaceState(null,document.title,t.toString())},destroy(){this.boundResetHandler&&window.removeEventListener("reset-schema-component-state",this.boundResetHandler)}}}export{l as default};
+1
View File
@@ -0,0 +1 @@
(()=>{var o=()=>({isSticky:!1,width:0,resizeObserver:null,boundUpdateWidth:null,init(){let i=this.$el.parentElement;i&&(this.updateWidth(),this.resizeObserver=new ResizeObserver(()=>this.updateWidth()),this.resizeObserver.observe(i),this.boundUpdateWidth=this.updateWidth.bind(this),window.addEventListener("resize",this.boundUpdateWidth))},enableSticky(){this.isSticky=this.$el.getBoundingClientRect().top>0},disableSticky(){this.isSticky=!1},updateWidth(){let i=this.$el.parentElement;if(!i)return;let t=getComputedStyle(this.$root.querySelector(".fi-ac"));this.width=i.offsetWidth+parseInt(t.marginInlineStart,10)*-1+parseInt(t.marginInlineEnd,10)*-1},destroy(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null),this.boundUpdateWidth&&(window.removeEventListener("resize",this.boundUpdateWidth),this.boundUpdateWidth=null)}});var a=function(i,t,n){let e=i;if(t.startsWith("/")&&(n=!0,t=t.slice(1)),n)return t;for(;t.startsWith("../");)e=e.includes(".")?e.slice(0,e.lastIndexOf(".")):null,t=t.slice(3);return["",null,void 0].includes(e)?t:["",null,void 0].includes(t)?e:`${e}.${t}`},d=i=>{let t=Alpine.findClosest(i,n=>n.__livewire);if(!t)throw"Could not find Livewire component in DOM tree.";return t.__livewire};document.addEventListener("alpine:init",()=>{window.Alpine.data("filamentSchema",({livewireId:i,schemaKey:t})=>({handleFormValidationError(n){n.detail.livewireId===i&&this.$nextTick(()=>{let e=this.$el.querySelector("[data-validation-error]");if(!e)return;let r=e;for(;r;)r.dispatchEvent(new CustomEvent("expand")),r=r.parentNode;setTimeout(()=>e.closest("[data-field-wrapper]").scrollIntoView({behavior:"smooth",block:"start",inline:"start"}),200)})},handleClientSideStateReset(n){n.detail.livewireId!==i||n.detail.schemaKey!==t||this.$nextTick(()=>{let e=this.$el.querySelectorAll("[autofocus]");for(let r of e)if(r.offsetParent!==null&&(r.focus(),document.activeElement===r))break})},isStateChanged(n,e){if(n===void 0)return!1;try{return JSON.stringify(n)!==JSON.stringify(e)}catch{return n!==e}}})),window.Alpine.data("filamentSchemaComponent",({path:i,containerPath:t,$wire:n})=>({$statePath:i,$get:(e,r)=>n.$get(a(t,e,r)),$set:(e,r,s,l=!1)=>n.$set(a(t,e,s),r,l),get $state(){return n.$get(i)}})),window.Alpine.data("filamentActionsSchemaComponent",o),Livewire.interceptMessage(({message:i,onSuccess:t})=>{t(({payload:n})=>{n.effects?.dispatches?.forEach(e=>{if(!e.params?.awaitSchemaComponent)return;let r=Array.from(i.component.el.querySelectorAll(`[wire\\:partial="schema-component::${e.params.awaitSchemaComponent}"]`)).filter(s=>d(s)===i.component);if(r.length!==1){if(r.length>1)throw`Multiple schema components found with key [${e.params.awaitSchemaComponent}].`;window.addEventListener(`schema-component-${i.component.id}-${e.params.awaitSchemaComponent}-loaded`,()=>{window.dispatchEvent(new CustomEvent(e.name,{detail:e.params}))},{once:!0})}})})})});})();
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
function a({name:r,recordKey:s,state:n}){return{error:void 0,isLoading:!1,state:n,unsubscribeLivewireHook:null,init(){this.unsubscribeLivewireHook=Livewire.interceptMessage(({message:e,onSuccess:t})=>{t(()=>{this.$nextTick(()=>{if(this.isLoading||e.component.id!==this.$root.closest("[wire\\:id]")?.attributes["wire:id"].value)return;let i=this.getServerState();i===void 0||Alpine.raw(this.state)===i||(this.state=i)})})}),this.$watch("state",async()=>{let e=this.getServerState();if(e===void 0||Alpine.raw(this.state)===e)return;this.isLoading=!0;let t=await this.$wire.updateTableColumnState(r,s,this.state);this.error=t?.error??void 0,!this.error&&this.$refs.serverState&&(this.$refs.serverState.value=this.state?"1":"0"),this.isLoading=!1})},getServerState(){if(this.$refs.serverState)return[1,"1"].includes(this.$refs.serverState.value)},destroy(){this.unsubscribeLivewireHook?.()}}}export{a as default};
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
function a({name:i,recordKey:s,state:n}){return{error:void 0,isLoading:!1,state:n,unsubscribeLivewireHook:null,init(){this.unsubscribeLivewireHook=Livewire.interceptMessage(({message:e,onSuccess:t})=>{t(()=>{this.$nextTick(()=>{if(this.isLoading||e.component.id!==this.$root.closest("[wire\\:id]")?.attributes["wire:id"].value)return;let r=this.getServerState();r===void 0||this.getNormalizedState()===r||(this.state=r)})})}),this.$watch("state",async()=>{let e=this.getServerState();if(e===void 0||this.getNormalizedState()===e)return;this.isLoading=!0;let t=await this.$wire.updateTableColumnState(i,s,this.state);this.error=t?.error??void 0,!this.error&&this.$refs.serverState&&(this.$refs.serverState.value=this.getNormalizedState()),this.isLoading=!1})},getServerState(){if(this.$refs.serverState)return[null,void 0].includes(this.$refs.serverState.value)?"":this.$refs.serverState.value.replaceAll('\\"','"')},getNormalizedState(){let e=Alpine.raw(this.state);return[null,void 0].includes(e)?"":e},destroy(){this.unsubscribeLivewireHook?.()}}}export{a as default};
@@ -0,0 +1 @@
function a({name:r,recordKey:s,state:n}){return{error:void 0,isLoading:!1,state:n,unsubscribeLivewireHook:null,init(){this.unsubscribeLivewireHook=Livewire.interceptMessage(({message:e,onSuccess:t})=>{t(()=>{this.$nextTick(()=>{if(this.isLoading||e.component.id!==this.$root.closest("[wire\\:id]")?.attributes["wire:id"].value)return;let i=this.getServerState();i===void 0||Alpine.raw(this.state)===i||(this.state=i)})})}),this.$watch("state",async()=>{let e=this.getServerState();if(e===void 0||Alpine.raw(this.state)===e)return;this.isLoading=!0;let t=await this.$wire.updateTableColumnState(r,s,this.state);this.error=t?.error??void 0,!this.error&&this.$refs.serverState&&(this.$refs.serverState.value=this.state?"1":"0"),this.isLoading=!1})},getServerState(){if(this.$refs.serverState)return[1,"1"].includes(this.$refs.serverState.value)},destroy(){this.unsubscribeLivewireHook?.()}}}export{a as default};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+90
View File
@@ -0,0 +1,90 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="22.608648mm"
height="5.326561mm"
viewBox="0 0 22.608648 5.326561"
version="1.1"
id="svg1"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1">
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9-8-3" />
</defs>
<g
id="layer1-4"
transform="translate(-31.921101,-15.538761)">
<path
style="fill:#6a6ca0;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2-77"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650759,28.290758,7.2688771)" />
<path
style="font-weight:bold;font-size:18.6667px;font-family:Sans;-inkscape-font-specification:'Sans Bold';text-align:center;white-space:pre;fill:#ffffff;stroke-width:1.00157"
d="m 130.75661,75.351555 -1.02667,-3.136006 h -4.70401 l -1.02667,3.136006 h -3.08 l 4.68534,-13.384024 h 3.50934 l 4.72267,13.384024 z m -2.61334,-8.418682 q -0.0747,-0.28 -0.24267,-0.840001 -0.14933,-0.560001 -0.29866,-1.138669 -0.14934,-0.597335 -0.24267,-0.970669 -0.0747,0.429335 -0.224,0.989336 -0.13067,0.541334 -0.26134,1.082668 -0.13066,0.522668 -0.224,0.877335 l -0.952,2.893339 h 3.37867 z"
id="text5-5-9-54"
transform="matrix(0.26458333,0,0,0.26458333,9.6306523,0.00904764)"
aria-label="A" />
<path
style="fill:#62af63;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2-0-8"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650759,23.678848,7.2701244)" />
<path
style="font-weight:bold;font-size:18.6667px;font-family:Sans;-inkscape-font-specification:'Sans Bold';text-align:center;white-space:pre;fill:#ffffff;stroke-width:1.00157"
d="M 123.74726,75.351555 V 62.023531 h 2.856 v 10.97602 h 5.39468 v 2.352004 z"
id="text5-5-9-3-1"
transform="matrix(0.26458333,0,0,0.26458333,5.0187431,0.01029489)"
aria-label="L" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,13.333744,0.00419747)"
id="text5-5-9-1-2"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-8-3);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"><tspan
x="112.83008"
y="103.02734"
id="tspan2"><tspan
dx="0 9.4640169 11.797355 5.5626831"
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan1">Tdle</tspan></tspan></text>
<path
style="font-weight:bold;font-size:18.6667px;font-family:Sans;-inkscape-font-specification:'Sans Bold';white-space:pre;fill:#ffffff;stroke-width:1.00157"
d="m 125.4861,68.463542 q 0,2.296005 -0.85867,3.826674 -0.85867,1.530669 -2.42667,2.296004 -1.568,0.765335 -3.71467,0.765335 h -4.06934 V 62.023531 h 4.40534 q 3.136,0 4.89067,1.661336 1.77334,1.64267 1.77334,4.778675 z m -2.98667,0.112001 q 0,-2.146671 -0.952,-3.173339 -0.952,-1.045336 -2.80001,-1.045336 h -1.47467 v 8.642683 h 1.19467 q 4.03201,0 4.03201,-4.424008 z m 5.58135,6.776012 V 62.023531 h 2.856 v 10.97602 h 5.39468 v 2.352004 z m 18.20003,0 H 138.6088 V 62.023531 h 7.67201 v 2.314671 h -4.85334 v 2.930672 h 4.51734 v 2.314671 h -4.51734 v 3.434672 h 4.85334 z"
id="text5-5-9-5-8"
transform="matrix(0.26458333,0,0,0.26458333,15.826285,0.00371695)"
aria-label="DLE" />
<path
style="fill:#007e02;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2-7-9"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650758,19.063576,7.2771839)" />
<path
style="font-weight:bold;font-size:18.6667px;font-family:Sans;-inkscape-font-specification:'Sans Bold';text-align:center;white-space:pre;fill:#ffffff;stroke-width:1.00157"
d="m 128.80594,75.351555 h -2.85601 V 64.394202 h -3.60267 v -2.370671 h 10.06135 v 2.370671 h -3.60267 z"
id="text5-5-9-59-36"
transform="matrix(0.26458333,0,0,0.26458333,0.40347011,0.01735431)"
aria-label="T" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.4 KiB

+90
View File
@@ -0,0 +1,90 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="22.608648mm"
height="5.326561mm"
viewBox="0 0 22.608648 5.326561"
version="1.1"
id="svg1"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1">
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9-8" />
</defs>
<g
id="layer1"
transform="translate(-31.921101,-15.538761)">
<path
style="fill:#6a6ca0;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650759,28.290758,7.2688771)" />
<path
style="font-weight:bold;font-size:18.6667px;font-family:Sans;-inkscape-font-specification:'Sans Bold';text-align:center;text-anchor:middle;white-space:pre;fill:#ffffff;stroke-width:1.00157"
d="m 130.75661,75.351555 -1.02667,-3.136006 h -4.70401 l -1.02667,3.136006 h -3.08 l 4.68534,-13.384024 h 3.50934 l 4.72267,13.384024 z m -2.61334,-8.418682 q -0.0747,-0.28 -0.24267,-0.840001 -0.14933,-0.560001 -0.29866,-1.138669 -0.14934,-0.597335 -0.24267,-0.970669 -0.0747,0.429335 -0.224,0.989336 -0.13067,0.541334 -0.26134,1.082668 -0.13066,0.522668 -0.224,0.877335 l -0.952,2.893339 h 3.37867 z"
id="text5-5-9"
transform="matrix(0.26458333,0,0,0.26458333,9.6306523,0.00904764)"
aria-label="A" />
<path
style="fill:#62af63;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2-0"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650759,23.678848,7.2701244)" />
<path
style="font-weight:bold;font-size:18.6667px;font-family:Sans;-inkscape-font-specification:'Sans Bold';text-align:center;white-space:pre;fill:#ffffff;stroke-width:1.00157"
d="M 123.74726,75.351555 V 62.023531 h 2.856 v 10.97602 h 5.39468 v 2.352004 z"
id="text5-5-9-3"
transform="matrix(0.26458333,0,0,0.26458333,5.0187431,0.01029489)"
aria-label="L" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,13.333744,0.00419747)"
id="text5-5-9-1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-8);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"><tspan
x="112.83008"
y="103.02734"
id="tspan4"><tspan
dx="0 9.4640169 11.797355 5.5626831"
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan3">Tdle</tspan></tspan></text>
<path
style="font-weight:bold;font-size:18.6667px;font-family:Sans;-inkscape-font-specification:'Sans Bold';white-space:pre;stroke-width:1.00157"
d="m 125.4861,68.463542 q 0,2.296005 -0.85867,3.826674 -0.85867,1.530669 -2.42667,2.296004 -1.568,0.765335 -3.71467,0.765335 h -4.06934 V 62.023531 h 4.40534 q 3.136,0 4.89067,1.661336 1.77334,1.64267 1.77334,4.778675 z m -2.98667,0.112001 q 0,-2.146671 -0.952,-3.173339 -0.952,-1.045336 -2.80001,-1.045336 h -1.47467 v 8.642683 h 1.19467 q 4.03201,0 4.03201,-4.424008 z m 5.58135,6.776012 V 62.023531 h 2.856 v 10.97602 h 5.39468 v 2.352004 z m 18.20003,0 H 138.6088 V 62.023531 h 7.67201 v 2.314671 h -4.85334 v 2.930672 h 4.51734 v 2.314671 h -4.51734 v 3.434672 h 4.85334 z"
id="text5-5-9-5"
transform="matrix(0.26458333,0,0,0.26458333,15.826285,0.00371695)"
aria-label="DLE" />
<path
style="fill:#007e02;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2-7"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650758,19.063576,7.2771839)" />
<path
style="font-weight:bold;font-size:18.6667px;font-family:Sans;-inkscape-font-specification:'Sans Bold';text-align:center;white-space:pre;fill:#ffffff;stroke-width:1.00157"
d="m 128.80594,75.351555 h -2.85601 V 64.394202 h -3.60267 v -2.370671 h 10.06135 v 2.370671 h -3.60267 z"
id="text5-5-9-59"
transform="matrix(0.26458333,0,0,0.26458333,0.40347011,0.01735431)"
aria-label="T" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.4 KiB

+90
View File
@@ -0,0 +1,90 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="13.596244mm"
height="10.066139mm"
viewBox="0 0 13.596244 10.066139"
version="1.1"
id="svg1"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1">
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9-8-9-8" />
</defs>
<g
id="layer1-8-4"
transform="translate(-31.921101,-15.538761)">
<path
style="fill:#6a6ca0;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2-3-0"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650759,28.290758,7.2688771)" />
<path
style="font-weight:bold;font-size:18.6667px;font-family:Sans;-inkscape-font-specification:'Sans Bold';text-align:center;white-space:pre;fill:#ffffff;stroke-width:1.00157"
d="m 130.75661,75.351555 -1.02667,-3.136006 h -4.70401 l -1.02667,3.136006 h -3.08 l 4.68534,-13.384024 h 3.50934 l 4.72267,13.384024 z m -2.61334,-8.418682 q -0.0747,-0.28 -0.24267,-0.840001 -0.14933,-0.560001 -0.29866,-1.138669 -0.14934,-0.597335 -0.24267,-0.970669 -0.0747,0.429335 -0.224,0.989336 -0.13067,0.541334 -0.26134,1.082668 -0.13066,0.522668 -0.224,0.877335 l -0.952,2.893339 h 3.37867 z"
id="text5-5-9-18-5"
transform="matrix(0.26458333,0,0,0.26458333,9.6306523,0.00904764)"
aria-label="A" />
<path
style="fill:#62af63;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2-0-9-9"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650759,23.678848,7.2701244)" />
<path
style="font-weight:bold;font-size:18.6667px;font-family:Sans;-inkscape-font-specification:'Sans Bold';text-align:center;white-space:pre;fill:#ffffff;stroke-width:1.00157"
d="M 123.74726,75.351555 V 62.023531 h 2.856 v 10.97602 h 5.39468 v 2.352004 z"
id="text5-5-9-3-6-4"
transform="matrix(0.26458333,0,0,0.26458333,5.0187431,0.01029489)"
aria-label="L" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,13.333744,0.00419747)"
id="text5-5-9-1-4-6"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-8-9-8);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"><tspan
x="112.83008"
y="103.02734"
id="tspan2"><tspan
dx="0 9.4640169 11.797355 5.5626831"
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan1">Tdle</tspan></tspan></text>
<path
style="font-weight:bold;font-size:21.3333px;font-family:Sans;-inkscape-font-specification:'Sans Bold';letter-spacing:3.75px;white-space:pre;fill:#ffffff;stroke-width:1.00157"
d="m 127.29406,69.90584 q 0,2.623996 -0.98134,4.373326 -0.98133,1.749331 -2.77333,2.623996 -1.79199,0.874665 -4.24532,0.874665 h -4.65066 V 62.545851 h 5.03466 q 3.58399,0 5.58932,1.898664 2.02667,1.877331 2.02667,5.461325 z m -3.41333,0.128 q 0,-2.45333 -1.088,-3.626661 -1.088,-1.194665 -3.2,-1.194665 h -1.68533 v 9.877318 h 1.36533 q 4.608,0 4.608,-5.055992 z m 10.12866,7.743987 V 62.545851 h 3.264 v 12.543981 h 6.16532 v 2.687995 z m 24.54997,0 h -8.76799 V 62.545851 h 8.76799 v 2.64533 h -5.54666 v 3.349328 h 5.16266 v 2.645329 h -5.16266 v 3.925327 h 5.54666 z"
id="text5-5-9-5-3-9"
transform="matrix(0.26458333,0,0,0.26458333,2.4486852,5.0261842)"
aria-label="DLE" />
<path
style="fill:#007e02;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2-7-3-2"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650758,19.063576,7.2771839)" />
<path
style="font-weight:bold;font-size:18.6667px;font-family:Sans;-inkscape-font-specification:'Sans Bold';text-align:center;white-space:pre;fill:#ffffff;stroke-width:1.00157"
d="m 128.80594,75.351555 h -2.85601 V 64.394202 h -3.60267 v -2.370671 h 10.06135 v 2.370671 h -3.60267 z"
id="text5-5-9-59-3-2"
transform="matrix(0.26458333,0,0,0.26458333,0.40347011,0.01735431)"
aria-label="T" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.5 KiB

+145
View File
@@ -0,0 +1,145 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="13.596244mm"
height="10.066139mm"
viewBox="0 0 13.596244 10.066139"
version="1.1"
id="svg1"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1">
<rect
x="118.92254"
y="20.071316"
width="59.963055"
height="42.902435"
id="rect36" />
<rect
x="195.94621"
y="30.106974"
width="83.546852"
height="30.106974"
id="rect35" />
<rect
x="263.68692"
y="41.898872"
width="50.42918"
height="27.598059"
id="rect34" />
<rect
x="114.4065"
y="51.432747"
width="97.094986"
height="33.368561"
id="rect20" />
<rect
x="118.16987"
y="55.948792"
width="92.578941"
height="24.587362"
id="rect6" />
<rect
x="112.83088"
y="58.366917"
width="29.094755"
height="27.675499"
id="rect5-6-9-8-9" />
</defs>
<g
id="layer1-8"
transform="translate(-31.921101,-15.538761)">
<path
style="fill:#6a6ca0;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2-3"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650759,28.290758,7.2688771)" />
<path
style="font-weight:bold;font-size:18.6667px;font-family:Sans;-inkscape-font-specification:'Sans Bold';text-align:center;white-space:pre;fill:#ffffff;stroke-width:1.00157"
d="m 130.75661,75.351555 -1.02667,-3.136006 h -4.70401 l -1.02667,3.136006 h -3.08 l 4.68534,-13.384024 h 3.50934 l 4.72267,13.384024 z m -2.61334,-8.418682 q -0.0747,-0.28 -0.24267,-0.840001 -0.14933,-0.560001 -0.29866,-1.138669 -0.14934,-0.597335 -0.24267,-0.970669 -0.0747,0.429335 -0.224,0.989336 -0.13067,0.541334 -0.26134,1.082668 -0.13066,0.522668 -0.224,0.877335 l -0.952,2.893339 h 3.37867 z"
id="text5-5-9-18"
transform="matrix(0.26458333,0,0,0.26458333,9.6306523,0.00904764)"
aria-label="A" />
<path
style="fill:#62af63;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2-0-9"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650759,23.678848,7.2701244)" />
<path
style="font-weight:bold;font-size:18.6667px;font-family:Sans;-inkscape-font-specification:'Sans Bold';text-align:center;white-space:pre;fill:#ffffff;stroke-width:1.00157"
d="M 123.74726,75.351555 V 62.023531 h 2.856 v 10.97602 h 5.39468 v 2.352004 z"
id="text5-5-9-3-6"
transform="matrix(0.26458333,0,0,0.26458333,5.0187431,0.01029489)"
aria-label="L" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,13.333744,0.00419747)"
id="text5-5-9-1-4"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.6667px;font-family:'Noto Sans Saurashtra';-inkscape-font-specification:'Noto Sans Saurashtra';writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5-6-9-8-9);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none"><tspan
x="112.83008"
y="103.02734"
id="tspan2"><tspan
dx="0 9.4640169 11.797355 5.5626831"
style="font-weight:bold;font-family:Sans;-inkscape-font-specification:'Sans Bold'"
id="tspan1">Tdle</tspan></tspan></text>
<path
style="font-weight:bold;font-size:21.3333px;font-family:Sans;-inkscape-font-specification:'Sans Bold';letter-spacing:3.75px;white-space:pre;stroke-width:1.00157"
d="m 127.29406,69.90584 q 0,2.623996 -0.98134,4.373326 -0.98133,1.749331 -2.77333,2.623996 -1.79199,0.874665 -4.24532,0.874665 h -4.65066 V 62.545851 h 5.03466 q 3.58399,0 5.58932,1.898664 2.02667,1.877331 2.02667,5.461325 z m -3.41333,0.128 q 0,-2.45333 -1.088,-3.626661 -1.088,-1.194665 -3.2,-1.194665 h -1.68533 v 9.877318 h 1.36533 q 4.608,0 4.608,-5.055992 z m 10.12866,7.743987 V 62.545851 h 3.264 v 12.543981 h 6.16532 v 2.687995 z m 24.54997,0 h -8.76799 V 62.545851 h 8.76799 v 2.64533 h -5.54666 v 3.349328 h 5.16266 v 2.645329 h -5.16266 v 3.925327 h 5.54666 z"
id="text5-5-9-5-3"
transform="matrix(0.26458333,0,0,0.26458333,2.4486852,5.0261842)"
aria-label="DLE" />
<path
style="fill:#007e02;fill-opacity:1;stroke-width:0.264999;stroke-dasharray:none"
id="rect1-6-2-7-3"
width="9.8571777"
height="9.3877897"
x="29.008268"
y="14.598011"
d="m 30.604192,14.598011 h 6.66533 c 0.884142,0 1.595924,0.711782 1.595924,1.595924 v 6.195942 c 0,0.884142 -0.711782,1.595924 -1.595924,1.595924 h -6.66533 c -0.884141,0 -1.595924,-0.711782 -1.595924,-1.595924 v -6.195942 c 0,-0.884142 0.711783,-1.595924 1.595924,-1.595924 z"
ry="1.5959241"
transform="matrix(0.44323656,0,0,0.56650758,19.063576,7.2771839)" />
<path
style="font-weight:bold;font-size:18.6667px;font-family:Sans;-inkscape-font-specification:'Sans Bold';text-align:center;white-space:pre;fill:#ffffff;stroke-width:1.00157"
d="m 128.80594,75.351555 h -2.85601 V 64.394202 h -3.60267 v -2.370671 h 10.06135 v 2.370671 h -3.60267 z"
id="text5-5-9-59-3"
transform="matrix(0.26458333,0,0,0.26458333,0.40347011,0.01735431)"
aria-label="T" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,-0.07723957,-11.58895)"
id="text5"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:21.3333px;line-height:0;font-family:Sans;-inkscape-font-specification:'Sans Bold';letter-spacing:3.75px;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect6);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,-0.07723957,-11.58895)"
id="text20"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:21.3333px;line-height:0;font-family:Sans;-inkscape-font-specification:'Sans Bold';letter-spacing:3.75px;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect20);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,-0.07723957,-11.58895)"
id="text34"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:21.3333px;line-height:0;font-family:Sans;-inkscape-font-specification:'Sans Bold';letter-spacing:3.75px;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect34);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,-0.07723957,-11.58895)"
id="text35"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:21.3333px;line-height:0;font-family:Sans;-inkscape-font-specification:'Sans Bold';letter-spacing:3.75px;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect35);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,-0.07723957,-11.58895)"
id="text36"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:21.3333px;line-height:0;font-family:Sans;-inkscape-font-specification:'Sans Bold';letter-spacing:3.75px;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect36);display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.00157;stroke-dasharray:none" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.5 KiB

+9
View File
@@ -9,6 +9,15 @@
'Segoe UI Symbol', 'Noto Color Emoji';
}
:root {
--ui-primary: rgb(255, 200, 0);
--correct-guess: rgb(0, 126, 2);
--partial-correct-guess: rgb(37, 43, 154);
--incorrect-guess: rgb(79, 79, 79);
}
.main {
text-align: center;
}
+14 -10
View File
@@ -1,9 +1,8 @@
<script setup lang="ts">
import Footer from "./components/Footer.vue";
import type { NavigationMenuItem } from '@nuxt/ui'
import { computed } from 'vue'
import { useHead } from '@unhead/vue'
import HowToPlay from "./components/HowToPlay.vue";
import { useColorMode } from '@vueuse/core'
import DevAlert from './components/DevAlert.vue';
const items: NavigationMenuItem[] = [{
label: 'Git',
@@ -15,28 +14,33 @@
target: '_blank'
},
]
const mode = useColorMode();
</script>
<template>
<UApp>
<UHeader>
<UHeader :toggle="false">
<template #title>
TLAdle
<img v-if="mode == 'dark'" :src="'/logo_full_long_dark.svg'" class="h-6 w-auto">
<img v-else :src="'/logo_full_long_light.svg'" class="h-6 w-auto">
</template>
<template #right>
<UColorModeButton />
<HowToPlay/>
<UColorModeSwitch />
</template>
</UHeader>
<DevAlert/>
<UMain class="main">
<NuxtLayout>
<router-view v-slot="{ Component,route }">
<component :is="Component" />
</router-view>
</NuxtLayout>
</UMain>
<UFooter>
+40
View File
@@ -0,0 +1,40 @@
<template>
<template v-if="dev">
<UAlert
title="You're on the testing page for TLAdle"
description="Please follow the link below for the production version of this page!"
color="error"
variant="subtle"
icon="i-lucide-terminal"
:actions="[
{
label: 'tladle.sc0tt.org',
variant: 'outline',
to: 'https://tladle.sc0tt.org/'
}
]"
/>
</template>
</template>
<script setup lang="ts">
import axios from 'axios';
</script>
<script lang="ts">
export default {
data() {
return {
dev: false,
}
},
mounted() {
axios.get('/api/fetch_dev')
.then(response => {
this.dev = response.data.dev;
})
},
}
</script>
+41 -16
View File
@@ -1,22 +1,39 @@
<template>
<Transition appear>
<div v-if="true" class="gw-div" :class="{ 'less': correctness==-3, 'more': correctness==-2, 'default': correctness==0, 'cw-cp': correctness==4, 'cw-ip': correctness==3, 'cf-cp': correctness==2, 'cf-ip': correctness==1 }">
<slot></slot>
</div>
</Transition>
<button v-if="true"
@click="onclick"
class="gw-div"
:class="{
'less': correctness==-3,
'more': correctness==-2,
'default': correctness==0,
'cw-cp': correctness==4,
'cw-ip': correctness==3,
'cf-cp': correctness==2,
'cf-ip': correctness==1
}">
<slot></slot>
</button>
</template>
<script lang="ts">
import { Transition } from 'vue';
export default {
data() {
return {
modal_open: false,
}
},
props: {
correctness: {
type: Number,
default: 0,
},
}
},
methods: {
onclick () {
if (this.correctness == 2) this.$emit('pressed_wordle');
}
},
}
</script>
@@ -24,8 +41,6 @@ import { Transition } from 'vue';
.v-enter-active {
transition: opacity 0.5s ease;
}
.gw-div::first-letter {
font-weight: bold;
}
@@ -37,8 +52,11 @@ import { Transition } from 'vue';
background-color: grey;
color: white;
}
.gw-button {
}
.default {
background-color: rgb(79, 79, 79);
background-color: var(--incorrect-guess)
}
.more {
background-color: rgb(255, 0, 0);
@@ -47,15 +65,22 @@ import { Transition } from 'vue';
background-color: rgb(129, 112, 0);
}
.cw-cp {
background-color: rgb(0, 97, 2);
background-color: var(--correct-guess)
}
.cw-ip {
background-color: rgb(19, 197, 22);
background-color: rgb(98, 175, 99);
}
.cf-cp {
background-color: rgb(0, 9, 166);
background-color: var(--partial-correct-guess);
border: solid white;
}
.cf-cp.hover {
background-color: #4CAF50; /* Green */
}
.cf-cp.focus {
background-color: red;
}
.cf-ip {
background-color: rgb(70, 78, 235);
background-color: rgb(106, 108, 160);
}
</style>
+45
View File
@@ -0,0 +1,45 @@
<script setup lang="ts">
import GuessWord from './GuessWord.vue';
</script>
<template>
<UModal title="How to play">
<UButton label="How to play" color="neutral" variant="subtle" />
<template #body>
You have to try and guess the TLA (Three Letter Acronym). You get a Motto to start on, and on each try you get more information about the kinds of words
and letters the abbreviation has.
<br>
<br>
You can use the following color codes to determine how close you were to the correct answer:
<div class="flex-container">
<GuessWord :correctness="4">Correct word, correct place</GuessWord>
<GuessWord :correctness="3">Correct word, incorrect place</GuessWord>
<GuessWord :correctness="2">Correct starting letter, correct place</GuessWord>
<GuessWord :correctness="1">Correct starting letter, incorrect place</GuessWord>
</div>
<br>
As an example, if the acronym of the day is
<div class="flex-container">
<GuessWord :correctness="4">Three</GuessWord>
<GuessWord :correctness="4">Letter</GuessWord>
<GuessWord :correctness="4">Acronym</GuessWord>
</div>
And your guess was "Letter True Acronym", then the colors would be as follows:
<div class="flex-container">
<GuessWord :correctness="3">Letter</GuessWord>
<GuessWord :correctness="1">True</GuessWord>
<GuessWord :correctness="4">Acronym</GuessWord>
</div>
If you manage to figure out a letter in its correct position you unlock a mini wordle for that specific word. Press the word if it has a white outline to launch it!
If you have any feedback, <a style="text-decoration: underline;" href="mailto:peter@sc0tt.org">
let me know in an email</a>, or create an <a style="text-decoration: underline;" href='https://gitea.sc0tt.org/Belupeti/TLA/pulls'>issue</a>
</template>
</UModal>
</template>
+61
View File
@@ -0,0 +1,61 @@
<template>
<h3>Did you enjoy todays TLA?</h3>
<div>
<UButton @click="makeRequest(1)" class="rounded-l-full" :icon="current == 1 ? 'mdi:thumbs-up' : 'mdi:thumbs-up-outline'" size="md" color="neutral" variant="outline">{{ likes }}</UButton>
<UButton @click="makeRequest(-1)" class="rounded-r-full" :icon="current == -1 ? 'mdi:thumbs-down' : 'mdi:thumbs-down-outline'" size="md" color="neutral" variant="outline">{{ dislikes }}</UButton>
</div>
</template>
<style lang="css" scoped>
</style>
<script lang="ts">
import axios from 'axios';
export default {
data() {
return {
likes: 0,
dislikes: 0,
current: 0,
}
},
mounted() {
this.makeRequest(2)
},
methods: {
makeRequest(type: number) {
if (type != 0){
if (this.current == type){
this.current = 0;
if (type == 1) this.likes--;
else if (type == -1) this.dislikes--;
}
else
{
if (type == 1) {
this.likes++;
if (this.current == -1) this.dislikes--;
}
else if (type == -1) {
this.dislikes++;
if (this.current == 1) this.likes--;
}
this.current = type;
}
}
axios
.get("/api/review/en/"+type)
.then(response => {
this.likes = response.data.likes;
this.dislikes = response.data.dislikes;
this.current = response.data.current;
});
}
}
}
</script>
+91
View File
@@ -0,0 +1,91 @@
<template>
<Modal v-model:open="open">
<h1>Wordle for word {{ index }}</h1>
<br>
<div class="flex-container-a gap-1.5">
<template v-for="i in max_guesses">
<WordleRow v-if="guesses.length > i" :guess="guesses[i]" :length="correct.length" :correct="correct"/>
<UForm @submit="onsubmit" v-if="guesses.length == i">
<UPinInput v-if="guesses[guesses.length-1].toString().replace(/\,/gi, '') != correct" default class="mb-2" autofocus v-model="guess" color="neutral" :length="correct.length" size="md" :correct="correct" />
<WordleRow v-else :length="correct.length"/>
<UButton type="submit" style="display: none;">
Submit
</UButton>
</UForm>
<WordleRow v-if="guesses.length < i" :length="correct.length"/>
</template>
<template v-if="guesses[guesses.length-1].toString().replace(/\,/gi, '') == correct">
You guessed word #{{ index }}! It was '{{ correct }}'
</template>
</div>
<UButton @click="onsubmit" class="m-3" v-if="guesses[guesses.length-1].toString().replace(/\,/gi, '') != correct">
Submit
</UButton>
</Modal>
</template>
<script setup lang="ts">
import Modal from './Modal.vue';
import WordleRow from './WordleRow.vue';
</script>
<script lang="ts">
export default {
data() {
return {
max_guesses: 10,
open: true,
guess: '',
guesses: [''],
}
},
props: {
correct: {
type: String,
default: 'nagyonhosszezugyselesz'
},
index: {
type: Number,
default: 0,
},
date: {
type: String,
default: '1970-01-01',
}
},
mounted() {
if (localStorage.date) {
if (localStorage.date === this.date) this.guesses = JSON.parse(localStorage.getItem('guesses-' + this.index) || '[""]'); console.log(this.guesses);
} else localStorage.date = this.date;
this.max_guesses = this.correct.length > 5 ? this.correct.length : 6
},
methods: {
onsubmit () {
if (this.guess.length == this.correct.length) {
this.guesses.push(this.guess);
this.guess = '';
localStorage.setItem('guesses-' + this.index, JSON.stringify(this.guesses));
}
},
},
}
</script>
<style scoped>
.flex-container-a {
display: flex;
flex-direction: column;
flex-wrap: wrap;
justify-content: center;
}
</style>
+85
View File
@@ -0,0 +1,85 @@
<script setup lang="ts">
</script>
<template>
<div class="flex-container gap-1.5">
<div v-for="i in length" class="border border-default wr-div" :class="{'correct' : getCorrectness[i-1]==2, 'wrong-place' : getCorrectness[i-1]==1, 'incorrect' : getCorrectness[i-1]==0}" >
{{ guess[i-1] }}
</div>
</div>
</template>
<script lang="ts">
export default {
data() {
return {
}
},
props: {
correct: {
type: String,
default: 'testword',
},
guess: {
type: String,
default: '',
},
index: Number,
empty: {
type: Boolean,
default: false,
},
length: Number,
},
computed: {
getCorrectness() : number[] {
let correctness_alt = [];
let correctness = [];
for (let i = 0; i < this.guess.length; i++) {
if (this.guess[i] == this.correct[i]) {
correctness.push(2);
} else correctness.push(0);
}
correctness_alt = correctness.slice();
for (let i = 0; i < this.guess.length; i++) {
for (let j = 0; j < this.correct.length; j++) {
if (this.guess[i] == this.correct[j] && correctness[i] == 0 && correctness_alt[j] == 0) {
correctness[i] = 1;
correctness_alt[j] = 1;
}
}
}
return correctness;
}
},
}
</script>
<style scoped>
.wr-div {
justify-content: center;
border-radius: 6px;
width: 32px;
height: 32px;
line-height: 32px;
background-color: transparent;
text-transform: uppercase;
font-weight: bold;
}
.correct {
background-color: rgb(0, 126, 2);
}
.incorrect {
background-color: var(--incorrect-guess);
}
.wrong-place {
background-color: var(--partial-correct-guess);
}
.empty {
background-color: var(--incorrect-guess);
}
</style>
+112 -58
View File
@@ -1,8 +1,9 @@
<script setup lang="ts">
import axios from 'axios';
import GuessWord from '../components/GuessWord.vue';
import { ref } from 'vue'
import Modal from '../components/Modal.vue';
import Modal from '../components/Modal.vue';
import Review from '../components/Review.vue';
import Wordle from '../components/Wordle.vue';
</script>
<script lang="ts">
@@ -10,12 +11,22 @@ import Modal from '../components/Modal.vue';
data() {
return {
hint: ' ',
guesses: [' '],
words: [' '],
guesses: [''],
words: [''],
correct_words: [''],
guess: '',
tla: '',
context: '',
submitter: '',
date: '',
victory: false,
loss: false,
maxGuesses: 10,
correct: false,
no_tla: false,
wordle_open: [false, false, false],
wordle_dontshow: false,
wordle_hint: false,
};
},
@@ -23,16 +34,28 @@ import Modal from '../components/Modal.vue';
axios
.get('/api/fetch_tla/en')
.then(response => {
this.hint = response.data.hint;
this.guesses = response.data.guesses;
if (response.data.no_tla) this.no_tla = true;
else {
this.hint = response.data.hint;
this.submitter = response.data.submitter;
this.guesses = response.data.guesses;
this.tla = response.data.tla;
this.context = response.data.context;
this.correct = response.data.correct;
this.correct_words = response.data.tla_array;
this.date = response.data.date;
}
});
if (localStorage.wordle_dontshow) {
this.wordle_dontshow = localStorage.wordle_dontshow;
}
},
methods: {
onSubmit() {
if (this.words.length == 3 && this.guesses.length < this.maxGuesses) {
console.log(this.words)
axios
.post("/api/check_tla/en", {
guess: this.words,
@@ -41,19 +64,30 @@ import Modal from '../components/Modal.vue';
this.guesses = response.data.guesses;
this.guess = '';
this.words = [];
this.correct_words = response.data.tla_array;
let current_guess = response.data.guesses[response.data.guesses.length-1]
if (Number(current_guess[3]) + Number(current_guess[4]) + Number(current_guess[5]) == 12) {
this.victory = !this.victory;
this.tla = response.data.tla;
this.context = response.data.context;
this.correct = response.data.correct;
}
else if (this.guesses.length == this.maxGuesses) {
this.loss = !this.loss;
this.tla = response.data.tla;
this.context = response.data.context;
this.correct = response.data.correct;
}
})
}
},
onkeyup() {
this.words = this.guess.trim().split(/\s+/);
},
wordle_disable() {
this.wordle_dontshow = true;
localStorage.wordle_dontshow = true;
}
}
}
@@ -68,75 +102,95 @@ import Modal from '../components/Modal.vue';
{{ hint }}
<br>
<UModal title="How to play">
<UButton label="How to play" color="neutral" variant="subtle" />
<template #body>
You have to try and guess the TLA (Three Letter Abbreviation). You get a Motto to start on, and on each try you get more information about the kinds of words
and letters the abbreviation has.
<br>
<br>
You can use the following color codes to determine how close you were to the correct answer:
<div class="flex-container">
<GuessWord :correctness="4">Correct word, correct place</GuessWord>
<GuessWord :correctness="3">Correct word, wrong place</GuessWord>
<GuessWord :correctness="2">Correct starting letter, correct place</GuessWord>
<GuessWord :correctness="1">Correct starting letter, wrong place</GuessWord>
</div>
If you have any feedback, <a style="text-decoration: underline;" href="mailto:peter@sc0tt.org">
let me know in an email
</a>, or create a <a style="text-decoration: underline;" href='https://gitea.sc0tt.org/Belupeti/TLA/pulls'>pull request</a>
<br><br>
<h2 style="font-weight: bold;">IMPORTANT</h2>
<p>Only use lowercase letters, I have not yet implemented automatic casing yet and I should really get some sleep</p>
</template>
</UModal>
</template>
<template v-for="guess in guesses">
<template v-for="guess in guesses" v-if="guesses.length>0">
<div class="flex-container">
<template v-for="i in 3">
<GuessWord :correctness="Number(guess[i+2])">
<GuessWord @pressed_wordle="wordle_open[i-1] = true" :correctness="Number(guess[i+2])" :index="i-1">
{{ guess[i-1] }}
</GuessWord>
<Wordle v-model:open="wordle_open[i-1]" :correct="correct_words[i-1]" :index="i" :date="date"/>
</template>
</div>
</template>
<template v-if="guesses.length < maxGuesses && !correct && !no_tla">
<div class="flex-container" v-if="guess.length > 0">
<template v-for="word in words">
<GuessWord :correctness="words.length == 3 ? -1 : (words.length > 3 ? -2 : -3)">
{{ word }}
</GuessWord>
</template>
</div>
</template>
<UForm class="space-y-2" ref="main-form" @submit="onSubmit" onsubmit="return false">
<UFormField>
<UInput v-model="guess" @keyup="onkeyup()" autofocus/>
</UFormField>
<template #footer>
<div class="flex-container">
<template v-for="word in words">
<GuessWord :correctness="words.length == 3 ? -1 : (words.length > 3 ? -2 : -3)">
{{ word }}
</GuessWord>
</template>
</div>
<template v-if="guesses.length < maxGuesses">
<form ref="main-form" @submit="onSubmit" onsubmit="return false">
<input style="background-color: grey;" type="text" @keyup="onkeyup()" v-model="guess">
</form>
<UButton type="submit">
Guess
</UButton>
</UForm>
</template>
<h3>{{ guesses.length }} / {{ maxGuesses }}</h3>
<template v-if="no_tla">
<h2>No TLA for today, please shoot me an email to <a style="text-decoration: underline;" href="mailto:peter@sc0tt.org">
peter@sc0tt.org</a></h2>
</template>
<template v-if="!correct && guesses.length >= maxGuesses">
You ran out of guesses. Todays TLA was <b>{{ tla }}</b>
<Review/>
</template>
<template v-if="correct">
You completed todays TLAdle! Todays TLA was <b>{{ tla }}</b>
<Review/>
</template>
<h3 v-if="!no_tla">Guesses left: {{ maxGuesses - guesses.length }}</h3>
</UCard>
<br>
<template v-if="submitter != null">
Todays TLA was submitted by <b>{{ submitter }}</b>
<br><br>
</template>
</UCard>
<UButton to="/suggestion" color="neutral" variant="subtle">
Suggest a TLA!
</UButton>
<Modal v-model:open="victory">
<h1>Congratulations!</h1>
Todays TLA was: whatever you wrote
Todays TLA was: {{ tla }}
<h3>The context of todays TLA:</h3>
{{ context }}
</Modal>
<Modal v-model:open="loss">
<h1>What a shame!</h1>
Todays TLA was: whatever you didnt write
Todays TLA was: {{ tla }}
<h3>The context of todays TLA:</h3>
{{ context }}
</Modal>
<br>
<UForm @submit="wordle_disable" v-if="!wordle_dontshow">
<UAlert
title="Press the word if the starting letter is correct to launch a mini wordle!"
color="success"
style="text-align: left; margin-top: 10px;"
variant="subtle"
orientation="horizontal"
:actions="[
{
label: 'Don\'t show again',
color: 'warning',
type: 'submit',
variant: 'subtle'
}
]"
/>
</UForm>
</template>
<style>
+88
View File
@@ -0,0 +1,88 @@
<script setup lang="ts">
import Modal from '../components/Modal.vue';
</script>
<template>
<h1>TLA suggestion form</h1>
<br>
<UCard class="align-center">
<UForm @submit="onSubmit" class="space-y-4" action="/api/suggestion" method="post">
<UFormField class="form-field" label="Acronym" required>
<UInput v-model="form.acronym" class="w-80" placeholder="Enter your TLA" name="tla"></UInput>
</UFormField>
<UFormField label="Motto" required>
<UInput class="w-80" v-model="form.hint" placeholder="Enter the motto for your TLA" name="hint"></UInput>
</UFormField>
<UFormField label="Contex" required>
<UTextarea class="w-80" v-model="form.context" name="context" rows=5 placeholder="Provide context for your TLA. This will be displayed upon completing the riddle of the day, either by guessing it correctly, or by running out of guesses."></UTextarea>
</UFormField>
<UFormField required>
<URadioGroup orientation="horizontal" v-model="form.language" name="language" variant="table" size="xs" default-value="en" :items="['en', 'hu']" />
</UFormField>
<UFormField class="form-field" label="Submitter (your name)">
<UInput v-model="form.submitter" class="w-80" placeholder="Anonymus" name="submitter"></UInput>
</UFormField>
<UButton type="submit">
Submit suggestion
</UButton>
</UForm>
<br>
Disclaimer: I'm going through these manually, approving them or even changing the context or motto for them, if I feel it's necessary. I don't guarantee, that your suggestion will be approved and even if it is, it may not be next days TLA.
</UCard>
<Modal v-model:open="submited">
<b>Your suggestion has been submitted!</b><br>
If you wish, you can submit adnother TLA by exiting this alert. <br><br>
<UButton to="/">Main page</UButton>
</Modal>
<Modal v-model:open="missing_fields">
<b>Please fill out all required fields (marked with *)</b>
</Modal>
</template>
<style>
.flex-container {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: center;
}
</style>
<script lang="ts">
import axios from 'axios';
export default {
data() {
return {
form: {
acronym: '',
hint: '',
context: '',
language: '',
submitter: '',
},
missing_fields: false,
submited: false,
};
},
methods: {
onSubmit() {
axios.post('/api/suggestion/en', this.form).then( response => {
if (response.status == 200)
{
this.form.acronym = '';
this.form.hint = '';
this.form.context = '';
this.form.submitter = '';
this.form.language = 'en';
this.submited = true;
}
});
}
}
}
</script>
+2
View File
@@ -1,12 +1,14 @@
import { createRouter, createWebHistory } from 'vue-router';
import App from '../App.vue';
import HomeView from '../pages/HomeView.vue';
import SuggestionView from '../pages/SuggestionView.vue';
const routes = [
{ path: '/',
children:
[
{ path: '', component: HomeView },
{ path: '/suggestion', component: SuggestionView },
]
}
];
+3 -3
View File
@@ -7,12 +7,12 @@
<link rel="icon" href="{{ asset('favicon.ico') }}" type="image/x-icon">
<!-- Light mode favicon -->
<link rel="icon" href="{{ asset('favicon-light.ico') }}" type="image/x-icon" media="(prefers-color-scheme: light)">
<link rel="icon" href="{{ asset('logo_full_tall_light.svg') }}" type="image/x-icon" media="(prefers-color-scheme: light)">
<!-- Dark mode favicon -->
<link rel="icon" href="{{ asset('favicon-dark.ico') }}" type="image/x-icon" media="(prefers-color-scheme: dark)">
<link rel="icon" href="{{ asset('logo_full_tall_dark.svg') }}" type="image/x-icon" media="(prefers-color-scheme: dark)">
<title>TLAdle</title>
<title>{{ config('app.name') }}</title>
@vite(['resources/js/app.js'])
</head>
<body>
+5
View File
@@ -7,4 +7,9 @@ Route::middleware('web')->group(function () {
Route::resource('people', \App\Http\Controllers\TlaController::class);
Route::get('fetch_tla/{language?}', [\App\Http\Controllers\TlaController::class, 'fetch_tla']);
Route::post('check_tla/{language?}', [\App\Http\Controllers\TlaController::class, 'check_tla']);
Route::post('suggestion/{language?}', [\App\Http\Controllers\TlaController::class, 'suggestion']);
Route::get('fetch_dev', function() {
return response()->json(['dev' => env('DEV_MESSAGE', false)]);
});
Route::get('review/{language}/{type}', [\App\Http\Controllers\TlaController::class, 'review']);
});
+1 -1
View File
@@ -2,6 +2,6 @@
use Illuminate\Support\Facades\Route;
Route::any('{all}',function(){
Route::get('{all}',function(){
return view('vue');
})->where(['all' => '.*'])->name("vue");