root 2024-01-31 16:29:33 +03:00
parent ebcca33aef
commit 86a14cf720
29 changed files with 458 additions and 950 deletions

View File

@ -96,9 +96,9 @@ return array(
"https://" => ["rules" => []] "https://" => ["rules" => []]
], ],
/** /**
* @var string * @var string
*/ */
'log_output_file' => null, 'log_output_file' => null,
/** /**
@ -171,13 +171,13 @@ return array(
*/ */
"default_paper_size" => "a4", "default_paper_size" => "a4",
/** /**
* The default paper orientation. * The default paper orientation.
* *
* The orientation of the page (portrait or landscape). * The orientation of the page (portrait or landscape).
* *
* @var string * @var string
*/ */
'default_paper_orientation' => "portrait", 'default_paper_orientation' => "portrait",
/** /**

View File

@ -14,7 +14,7 @@ return [
| Here you can specify how big the chunk should be. | Here you can specify how big the chunk should be.
| |
*/ */
'chunk_size' => 1000, 'chunk_size' => 1000,
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@ -41,14 +41,15 @@ return [
| Configure e.g. delimiter, enclosure and line ending for CSV exports. | Configure e.g. delimiter, enclosure and line ending for CSV exports.
| |
*/ */
'csv' => [ 'csv' => [
'delimiter' => ',', 'delimiter' => ',',
'enclosure' => '"', 'enclosure' => '"',
'line_ending' => PHP_EOL, 'line_ending' => PHP_EOL,
'use_bom' => false, 'use_bom' => false,
'include_separator_line' => false, 'include_separator_line' => false,
'excel_compatibility' => false, 'excel_compatibility' => false,
'output_encoding' => '', 'output_encoding' => '',
'test_auto_detect' => true,
], ],
/* /*
@ -59,20 +60,20 @@ return [
| Configure e.g. default title, creator, subject,... | Configure e.g. default title, creator, subject,...
| |
*/ */
'properties' => [ 'properties' => [
'creator' => '', 'creator' => '',
'lastModifiedBy' => '', 'lastModifiedBy' => '',
'title' => '', 'title' => '',
'description' => '', 'description' => '',
'subject' => '', 'subject' => '',
'keywords' => '', 'keywords' => '',
'category' => '', 'category' => '',
'manager' => '', 'manager' => '',
'company' => '', 'company' => '',
], ],
], ],
'imports' => [ 'imports' => [
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@ -85,7 +86,7 @@ return [
| you can enable it by setting read_only to false. | you can enable it by setting read_only to false.
| |
*/ */
'read_only' => true, 'read_only' => true,
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@ -109,7 +110,7 @@ return [
| Available options: none|slug|custom | Available options: none|slug|custom
| |
*/ */
'heading_row' => [ 'heading_row' => [
'formatter' => 'slug', 'formatter' => 'slug',
], ],
@ -121,12 +122,12 @@ return [
| Configure e.g. delimiter, enclosure and line ending for CSV imports. | Configure e.g. delimiter, enclosure and line ending for CSV imports.
| |
*/ */
'csv' => [ 'csv' => [
'delimiter' => null, 'delimiter' => null,
'enclosure' => '"', 'enclosure' => '"',
'escape_character' => '\\', 'escape_character' => '\\',
'contiguous' => false, 'contiguous' => false,
'input_encoding' => 'UTF-8', 'input_encoding' => 'UTF-8',
], ],
/* /*
@ -137,16 +138,31 @@ return [
| Configure e.g. default title, creator, subject,... | Configure e.g. default title, creator, subject,...
| |
*/ */
'properties' => [ 'properties' => [
'creator' => '', 'creator' => '',
'lastModifiedBy' => '', 'lastModifiedBy' => '',
'title' => '', 'title' => '',
'description' => '', 'description' => '',
'subject' => '', 'subject' => '',
'keywords' => '', 'keywords' => '',
'category' => '', 'category' => '',
'manager' => '', 'manager' => '',
'company' => '', 'company' => '',
],
/*
|--------------------------------------------------------------------------
| Cell Middleware
|--------------------------------------------------------------------------
|
| Configure middleware that is executed on getting a cell value
|
*/
'cells' => [
'middleware' => [
//\Maatwebsite\Excel\Middleware\TrimCellValue::class,
//\Maatwebsite\Excel\Middleware\ConvertEmptyCellValuesToNull::class,
],
], ],
], ],
@ -161,21 +177,21 @@ return [
| |
*/ */
'extension_detector' => [ 'extension_detector' => [
'xlsx' => Excel::XLSX, 'xlsx' => Excel::XLSX,
'xlsm' => Excel::XLSX, 'xlsm' => Excel::XLSX,
'xltx' => Excel::XLSX, 'xltx' => Excel::XLSX,
'xltm' => Excel::XLSX, 'xltm' => Excel::XLSX,
'xls' => Excel::XLS, 'xls' => Excel::XLS,
'xlt' => Excel::XLS, 'xlt' => Excel::XLS,
'ods' => Excel::ODS, 'ods' => Excel::ODS,
'ots' => Excel::ODS, 'ots' => Excel::ODS,
'slk' => Excel::SLK, 'slk' => Excel::SLK,
'xml' => Excel::XML, 'xml' => Excel::XML,
'gnumeric' => Excel::GNUMERIC, 'gnumeric' => Excel::GNUMERIC,
'htm' => Excel::HTML, 'htm' => Excel::HTML,
'html' => Excel::HTML, 'html' => Excel::HTML,
'csv' => Excel::CSV, 'csv' => Excel::CSV,
'tsv' => Excel::TSV, 'tsv' => Excel::TSV,
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@ -186,7 +202,7 @@ return [
| Available options: Excel::MPDF | Excel::TCPDF | Excel::DOMPDF | Available options: Excel::MPDF | Excel::TCPDF | Excel::DOMPDF
| |
*/ */
'pdf' => Excel::DOMPDF, 'pdf' => Excel::DOMPDF,
], ],
/* /*
@ -206,11 +222,11 @@ return [
| [x] PhpOffice\PhpSpreadsheet\Cell\AdvancedValueBinder::class | [x] PhpOffice\PhpSpreadsheet\Cell\AdvancedValueBinder::class
| |
*/ */
'value_binder' => [ 'value_binder' => [
'default' => Maatwebsite\Excel\DefaultValueBinder::class, 'default' => Maatwebsite\Excel\DefaultValueBinder::class,
], ],
'cache' => [ 'cache' => [
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| Default cell caching driver | Default cell caching driver
@ -219,7 +235,7 @@ return [
| By default PhpSpreadsheet keeps all cell values in memory, however when | By default PhpSpreadsheet keeps all cell values in memory, however when
| dealing with large files, this might result into memory issues. If you | dealing with large files, this might result into memory issues. If you
| want to mitigate that, you can configure a cell caching driver here. | want to mitigate that, you can configure a cell caching driver here.
| When using the illuminate driver, it will store each value in a the | When using the illuminate driver, it will store each value in the
| cache store. This can slow down the process, because it needs to | cache store. This can slow down the process, because it needs to
| store each value. You can use the "batch" store if you want to | store each value. You can use the "batch" store if you want to
| only persist to the store when the memory limit is reached. | only persist to the store when the memory limit is reached.
@ -227,7 +243,7 @@ return [
| Drivers: memory|illuminate|batch | Drivers: memory|illuminate|batch
| |
*/ */
'driver' => 'memory', 'driver' => 'memory',
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@ -239,7 +255,7 @@ return [
| Here you can tweak the memory limit to your liking. | Here you can tweak the memory limit to your liking.
| |
*/ */
'batch' => [ 'batch' => [
'memory_limit' => 60000, 'memory_limit' => 60000,
], ],
@ -255,9 +271,23 @@ return [
| at "null" it will use the default store. | at "null" it will use the default store.
| |
*/ */
'illuminate' => [ 'illuminate' => [
'store' => null, 'store' => null,
], ],
/*
|--------------------------------------------------------------------------
| Cache Time-to-live (TTL)
|--------------------------------------------------------------------------
|
| The TTL of items written to cache. If you want to keep the items cached
| indefinitely, set this to null. Otherwise, set a number of seconds,
| a \DateInterval, or a callable.
|
| Allowable types: callable|\DateInterval|int|null
|
*/
'default_ttl' => 10800,
], ],
/* /*
@ -277,7 +307,7 @@ return [
*/ */
'transactions' => [ 'transactions' => [
'handler' => 'db', 'handler' => 'db',
'db' => [ 'db' => [
'connection' => null, 'connection' => null,
], ],
], ],
@ -291,9 +321,26 @@ return [
| |
| When exporting and importing files, we use a temporary file, before | When exporting and importing files, we use a temporary file, before
| storing reading or downloading. Here you can customize that path. | storing reading or downloading. Here you can customize that path.
| permissions is an array with the permission flags for the directory (dir)
| and the create file (file).
| |
*/ */
'local_path' => storage_path('framework/cache/laravel-excel'), 'local_path' => storage_path('framework/cache/laravel-excel'),
/*
|--------------------------------------------------------------------------
| Local Temporary Path Permissions
|--------------------------------------------------------------------------
|
| Permissions is an array with the permission flags for the directory (dir)
| and the create file (file).
| If omitted the default permissions of the filesystem will be used.
|
*/
'local_permissions' => [
// 'dir' => 0755,
// 'file' => 0644,
],
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@ -309,8 +356,8 @@ return [
| in conjunction with queued imports and exports. | in conjunction with queued imports and exports.
| |
*/ */
'remote_disk' => null, 'remote_disk' => null,
'remote_prefix' => null, 'remote_prefix' => null,
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------

View File

@ -30,8 +30,8 @@ return [
JsonApiSerializer JsonApiSerializer
*/ */
'fractal' => [ 'fractal' => [
'params' => [ 'params' => [
'include' => 'include' 'include' => 'include'
], ],
'serializer' => League\Fractal\Serializer\DataArraySerializer::class 'serializer' => League\Fractal\Serializer\DataArraySerializer::class
@ -43,7 +43,7 @@ return [
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| |
*/ */
'cache' => [ 'cache' => [
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| Cache Status | Cache Status
@ -52,7 +52,7 @@ return [
| Enable or disable cache | Enable or disable cache
| |
*/ */
'enabled' => false, 'enabled' => false,
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@ -62,7 +62,7 @@ return [
| Time of expiration cache | Time of expiration cache
| |
*/ */
'minutes' => 30, 'minutes' => 30,
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@ -82,7 +82,7 @@ return [
| |
| |
*/ */
'clean' => [ 'clean' => [
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@ -102,14 +102,14 @@ return [
| delete : Clear Cache on delete Entry in repository | delete : Clear Cache on delete Entry in repository
| |
*/ */
'on' => [ 'on' => [
'create' => true, 'create' => true,
'update' => true, 'update' => true,
'delete' => true, 'delete' => true,
] ]
], ],
'params' => [ 'params' => [
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| Skip Cache Params | Skip Cache Params
@ -137,8 +137,8 @@ return [
| |
| 'except' =>['find'], | 'except' =>['find'],
*/ */
'allowed' => [ 'allowed' => [
'only' => null, 'only' => null,
'except' => null 'except' => null
] ]
], ],
@ -151,7 +151,7 @@ return [
| Settings of request parameters names that will be used by Criteria | Settings of request parameters names that will be used by Criteria
| |
*/ */
'criteria' => [ 'criteria' => [
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| Accepted Conditions | Accepted Conditions
@ -210,15 +210,15 @@ return [
| http://prettus.local/?search=lorem&searchJoin=or | http://prettus.local/?search=lorem&searchJoin=or
| |
*/ */
'params' => [ 'params' => [
'search' => 'search', 'search' => 'search',
'searchFields' => 'searchFields', 'searchFields' => 'searchFields',
'filter' => 'filter', 'filter' => 'filter',
'orderBy' => 'orderBy', 'orderBy' => 'orderBy',
'sortedBy' => 'sortedBy', 'sortedBy' => 'sortedBy',
'with' => 'with', 'with' => 'with',
'searchJoin' => 'searchJoin', 'searchJoin' => 'searchJoin',
'withCount' => 'withCount' 'withCount' => 'withCount'
] ]
], ],
/* /*
@ -227,20 +227,20 @@ return [
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| |
*/ */
'generator' => [ 'generator' => [
'basePath' => app()->path(), 'basePath' => app()->path(),
'rootNamespace' => 'App\\', 'rootNamespace' => 'App\\',
'stubsOverridePath' => app()->path(), 'stubsOverridePath' => app()->path(),
'paths' => [ 'paths' => [
'models' => 'Entities', 'models' => 'Entities',
'repositories' => 'Repositories', 'repositories' => 'Repositories',
'interfaces' => 'Repositories', 'interfaces' => 'Repositories',
'transformers' => 'Transformers', 'transformers' => 'Transformers',
'presenters' => 'Presenters', 'presenters' => 'Presenters',
'validators' => 'Validators', 'validators' => 'Validators',
'controllers' => 'Http/Controllers', 'controllers' => 'Http/Controllers',
'provider' => 'RepositoryServiceProvider', 'provider' => 'RepositoryServiceProvider',
'criteria' => 'Criteria' 'criteria' => 'Criteria'
] ]
] ]
]; ];

View File

@ -4,33 +4,30 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema; use Illuminate\Support\Facades\Schema;
class CreatePersonalAccessTokensTable extends Migration return new class extends Migration
{ {
/** /**
* Run the migrations. * Run the migrations.
*
* @return void
*/ */
public function up() public function up(): void
{ {
Schema::create('personal_access_tokens', function (Blueprint $table) { Schema::create('personal_access_tokens', function (Blueprint $table) {
$table->bigIncrements('id'); $table->id();
$table->morphs('tokenable'); $table->morphs('tokenable');
$table->string('name'); $table->string('name');
$table->string('token', 64)->unique(); $table->string('token', 64)->unique();
$table->text('abilities')->nullable(); $table->text('abilities')->nullable();
$table->timestamp('last_used_at')->nullable(); $table->timestamp('last_used_at')->nullable();
$table->timestamp('expires_at')->nullable();
$table->timestamps(); $table->timestamps();
}); });
} }
/** /**
* Reverse the migrations. * Reverse the migrations.
*
* @return void
*/ */
public function down() public function down(): void
{ {
Schema::dropIfExists('personal_access_tokens'); Schema::dropIfExists('personal_access_tokens');
} }
} };

View File

@ -1,53 +1,53 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<title>@yield('title')</title> <title>@yield('title')</title>
<!-- Styles --> <!-- Styles -->
<style> <style>
html, body { html, body {
background-color: #fff; background-color: #fff;
color: #636b6f; color: #636b6f;
font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
font-weight: 100; font-weight: 100;
height: 100vh; height: 100vh;
margin: 0; margin: 0;
} }
.full-height { .full-height {
height: 100vh; height: 100vh;
} }
.flex-center { .flex-center {
align-items: center; align-items: center;
display: flex; display: flex;
justify-content: center; justify-content: center;
} }
.position-ref { .position-ref {
position: relative; position: relative;
} }
.content { .content {
text-align: center; text-align: center;
} }
.title { .title {
font-size: 36px; font-size: 36px;
padding: 20px; padding: 20px;
} }
</style> </style>
</head> </head>
<body> <body>
<div class="flex-center position-ref full-height"> <div class="flex-center position-ref full-height">
<div class="content"> <div class="content">
<div class="title"> <div class="title">
@yield('message') @yield('message')
</div>
</div>
</div> </div>
</div> </body>
</div>
</body>
</html> </html>

File diff suppressed because one or more lines are too long

View File

@ -5,8 +5,7 @@
@if ($loop->last) @if ($loop->last)
@if ($breadcrumb->url) @if ($breadcrumb->url)
<li class="is-active"><a href="{{ $breadcrumb->url }}" <li class="is-active"><a href="{{ $breadcrumb->url }}" aria-current="page">{{ $breadcrumb->title }}</a></li>
aria-current="page">{{ $breadcrumb->title }}</a></li>
@else @else
<li class="is-active"><a aria-current="page">{{ $breadcrumb->title }}</a></li> <li class="is-active"><a aria-current="page">{{ $breadcrumb->title }}</a></li>
@endif @endif

View File

@ -3,18 +3,18 @@
use Illuminate\Support\Facades\Request; use Illuminate\Support\Facades\Request;
$json = [ $json = [
'@context' => 'https://schema.org', '@context' => 'https://schema.org',
'@type' => 'BreadcrumbList', '@type' => 'BreadcrumbList',
'itemListElement' => [], 'itemListElement' => [],
]; ];
foreach ($breadcrumbs as $i => $breadcrumb) { foreach ($breadcrumbs as $i => $breadcrumb) {
$json['itemListElement'][] = [ $json['itemListElement'][] = [
'@type' => 'ListItem', '@type' => 'ListItem',
'position' => $i + 1, 'position' => $i + 1,
'item' => [ 'item' => [
'@id' => $breadcrumb->url ?: Request::fullUrl(), '@id' => $breadcrumb->url ?: Request::fullUrl(),
'name' => $breadcrumb->title, 'name' => $breadcrumb->title,
'image' => $breadcrumb->image ?? null, 'image' => $breadcrumb->image ?? null,
], ],
]; ];

View File

@ -5,8 +5,7 @@
@if ($breadcrumb->url && !$loop->last) @if ($breadcrumb->url && !$loop->last)
<li> <li>
<a href="{{ $breadcrumb->url }}" <a href="{{ $breadcrumb->url }}" class="text-blue-600 hover:text-blue-900 hover:underline focus:text-blue-900 focus:underline">
class="text-blue-600 hover:text-blue-900 hover:underline focus:text-blue-900 focus:underline">
{{ $breadcrumb->title }} {{ $breadcrumb->title }}
</a> </a>
</li> </li>

View File

@ -1,20 +1,24 @@
<table class="action" align="center" width="100%" cellpadding="0" cellspacing="0" role="presentation"> @props([
<tr> 'url',
<td align="center"> 'color' => 'primary',
<table width="100%" border="0" cellpadding="0" cellspacing="0" role="presentation"> 'align' => 'center',
<tr> ])
<td align="center"> <table class="action" align="{{ $align }}" width="100%" cellpadding="0" cellspacing="0" role="presentation">
<table border="0" cellpadding="0" cellspacing="0" role="presentation"> <tr>
<tr> <td align="{{ $align }}">
<td> <table width="100%" border="0" cellpadding="0" cellspacing="0" role="presentation">
<a href="{{ $url }}" class="button button-{{ $color ?? 'primary' }}" target="_blank" <tr>
rel="noopener">{{ $slot }}</a> <td align="{{ $align }}">
</td> <table border="0" cellpadding="0" cellspacing="0" role="presentation">
</tr> <tr>
</table> <td>
</td> <a href="{{ $url }}" class="button button-{{ $color }}" target="_blank" rel="noopener">{{ $slot }}</a>
</tr> </td>
</table> </tr>
</td> </table>
</tr> </td>
</tr>
</table>
</td>
</tr>
</table> </table>

View File

@ -1,11 +1,11 @@
<tr> <tr>
<td> <td>
<table class="footer" align="center" width="570" cellpadding="0" cellspacing="0" role="presentation"> <table class="footer" align="center" width="570" cellpadding="0" cellspacing="0" role="presentation">
<tr> <tr>
<td class="content-cell" align="center"> <td class="content-cell" align="center">
{{ Illuminate\Mail\Markdown::parse($slot) }} {{ Illuminate\Mail\Markdown::parse($slot) }}
</td> </td>
</tr> </tr>
</table> </table>
</td> </td>
</tr> </tr>

View File

@ -1,11 +1,12 @@
@props(['url'])
<tr> <tr>
<td class="header"> <td class="header">
<a href="{{ $url }}" style="display: inline-block;"> <a href="{{ $url }}" style="display: inline-block;">
@if (trim($slot) === 'Laravel') @if (trim($slot) === 'Laravel')
<img src="https://laravel.com/img/notification-logo.png" class="logo" alt="Laravel Logo"> <img src="https://laravel.com/img/notification-logo.png" class="logo" alt="Laravel Logo">
@else @else
{{ $slot }} {{ $slot }}
@endif @endif
</a> </a>
</td> </td>
</tr> </tr>

View File

@ -1,58 +1,57 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <html xmlns="http://www.w3.org/1999/xhtml">
<head> <head>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/> <title>{{ config('app.name') }}</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="color-scheme" content="light"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="supported-color-schemes" content="light"> <meta name="color-scheme" content="light">
<style> <meta name="supported-color-schemes" content="light">
@media only screen and (max-width: 600px) { <style>
.inner-body { @media only screen and (max-width: 600px) {
width: 100% !important; .inner-body {
} width: 100% !important;
}
.footer { .footer {
width: 100% !important; width: 100% !important;
} }
} }
@media only screen and (max-width: 500px) { @media only screen and (max-width: 500px) {
.button { .button {
width: 100% !important; width: 100% !important;
} }
} }
</style> </style>
</head> </head>
<body> <body>
<table class="wrapper" width="100%" cellpadding="0" cellspacing="0" role="presentation"> <table class="wrapper" width="100%" cellpadding="0" cellspacing="0" role="presentation">
<tr> <tr>
<td align="center"> <td align="center">
<table class="content" width="100%" cellpadding="0" cellspacing="0" role="presentation"> <table class="content" width="100%" cellpadding="0" cellspacing="0" role="presentation">
{{ $header ?? '' }} {{ $header ?? '' }}
<!-- Email Body --> <!-- Email Body -->
<tr> <tr>
<td class="body" width="100%" cellpadding="0" cellspacing="0"> <td class="body" width="100%" cellpadding="0" cellspacing="0" style="border: hidden !important;">
<table class="inner-body" align="center" width="570" cellpadding="0" cellspacing="0" <table class="inner-body" align="center" width="570" cellpadding="0" cellspacing="0" role="presentation">
role="presentation"> <!-- Body content -->
<!-- Body content --> <tr>
<tr> <td class="content-cell">
<td class="content-cell"> {{ Illuminate\Mail\Markdown::parse($slot) }}
{{ Illuminate\Mail\Markdown::parse($slot) }}
{{ $subcopy ?? '' }} {{ $subcopy ?? '' }}
</td> </td>
</tr> </tr>
</table> </table>
</td> </td>
</tr> </tr>
{{ $footer ?? '' }} {{ $footer ?? '' }}
</table> </table>
</td> </td>
</tr> </tr>
</table> </table>
</body> </body>
</html> </html>

View File

@ -1,27 +1,27 @@
@component('mail::layout') <x-mail::layout>
{{-- Header --}} {{-- Header --}}
@slot('header') <x-slot:header>
@component('mail::header', ['url' => config('app.url')]) <x-mail::header :url="config('app.url')">
{{ config('app.name') }} {{ config('app.name') }}
@endcomponent </x-mail::header>
@endslot </x-slot:header>
{{-- Body --}} {{-- Body --}}
{{ $slot }} {{ $slot }}
{{-- Subcopy --}} {{-- Subcopy --}}
@isset($subcopy) @isset($subcopy)
@slot('subcopy') <x-slot:subcopy>
@component('mail::subcopy') <x-mail::subcopy>
{{ $subcopy }} {{ $subcopy }}
@endcomponent </x-mail::subcopy>
@endslot </x-slot:subcopy>
@endisset @endisset
{{-- Footer --}} {{-- Footer --}}
@slot('footer') <x-slot:footer>
@component('mail::footer') <x-mail::footer>
© {{ date('Y') }} {{ config('app.name') }}. @lang('All rights reserved.') © {{ date('Y') }} {{ config('app.name') }}. @lang('All rights reserved.')
@endcomponent </x-mail::footer>
@endslot </x-slot:footer>
@endcomponent </x-mail::layout>

View File

@ -1,14 +1,14 @@
<table class="panel" width="100%" cellpadding="0" cellspacing="0" role="presentation"> <table class="panel" width="100%" cellpadding="0" cellspacing="0" role="presentation">
<tr> <tr>
<td class="panel-content"> <td class="panel-content">
<table width="100%" cellpadding="0" cellspacing="0" role="presentation"> <table width="100%" cellpadding="0" cellspacing="0" role="presentation">
<tr> <tr>
<td class="panel-item"> <td class="panel-item">
{{ Illuminate\Mail\Markdown::parse($slot) }} {{ Illuminate\Mail\Markdown::parse($slot) }}
</td> </td>
</tr> </tr>
</table> </table>
</td> </td>
</tr> </tr>
</table> </table>

View File

@ -1,7 +1,7 @@
<table class="subcopy" width="100%" cellpadding="0" cellspacing="0" role="presentation"> <table class="subcopy" width="100%" cellpadding="0" cellspacing="0" role="presentation">
<tr> <tr>
<td> <td>
{{ Illuminate\Mail\Markdown::parse($slot) }} {{ Illuminate\Mail\Markdown::parse($slot) }}
</td> </td>
</tr> </tr>
</table> </table>

View File

@ -1,3 +1,3 @@
<div class="table"> <div class="table">
{{ Illuminate\Mail\Markdown::parse($slot) }} {{ Illuminate\Mail\Markdown::parse($slot) }}
</div> </div>

View File

@ -4,7 +4,7 @@ body,
body *:not(html):not(style):not(br):not(tr):not(code) { body *:not(html):not(style):not(br):not(tr):not(code) {
box-sizing: border-box; box-sizing: border-box;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif,
'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
position: relative; position: relative;
} }

View File

@ -1,9 +1,9 @@
{!! strip_tags($header) !!} {!! strip_tags($header ?? '') !!}
{!! strip_tags($slot) !!} {!! strip_tags($slot) !!}
@isset($subcopy) @isset($subcopy)
{!! strip_tags($subcopy) !!} {!! strip_tags($subcopy) !!}
@endisset @endisset
{!! strip_tags($footer) !!} {!! strip_tags($footer ?? '') !!}

View File

@ -1,27 +1,27 @@
@component('mail::layout') <x-mail::layout>
{{-- Header --}} {{-- Header --}}
@slot('header') <x-slot:header>
@component('mail::header', ['url' => config('app.url')]) <x-mail::header :url="config('app.url')">
{{ config('app.name') }} {{ config('app.name') }}
@endcomponent </x-mail::header>
@endslot </x-slot:header>
{{-- Body --}} {{-- Body --}}
{{ $slot }} {{ $slot }}
{{-- Subcopy --}} {{-- Subcopy --}}
@isset($subcopy) @isset($subcopy)
@slot('subcopy') <x-slot:subcopy>
@component('mail::subcopy') <x-mail::subcopy>
{{ $subcopy }} {{ $subcopy }}
@endcomponent </x-mail::subcopy>
@endslot </x-slot:subcopy>
@endisset @endisset
{{-- Footer --}} {{-- Footer --}}
@slot('footer') <x-slot:footer>
@component('mail::footer') <x-mail::footer>
© {{ date('Y') }} {{ config('app.name') }}. @lang('All rights reserved.') © {{ date('Y') }} {{ config('app.name') }}. @lang('All rights reserved.')
@endcomponent </x-mail::footer>
@endslot </x-slot:footer>
@endcomponent </x-mail::layout>

View File

@ -1,58 +1,58 @@
@component('mail::message') <x-mail::message>
{{-- Greeting --}} {{-- Greeting --}}
@if (! empty($greeting)) @if (! empty($greeting))
# {{ $greeting }} # {{ $greeting }}
@else @else
@if ($level === 'error') @if ($level === 'error')
# @lang('Whoops!') # @lang('Whoops!')
@else @else
# @lang('Hello!') # @lang('Hello!')
@endif @endif
@endif @endif
{{-- Intro Lines --}} {{-- Intro Lines --}}
@foreach ($introLines as $line) @foreach ($introLines as $line)
{{ $line }} {{ $line }}
@endforeach @endforeach
{{-- Action Button --}} {{-- Action Button --}}
@isset($actionText) @isset($actionText)
<?php <?php
$color = match ($level) { $color = match ($level) {
'success', 'error' => $level, 'success', 'error' => $level,
default => 'primary', default => 'primary',
}; };
?> ?>
@component('mail::button', ['url' => $actionUrl, 'color' => $color]) <x-mail::button :url="$actionUrl" :color="$color">
{{ $actionText }} {{ $actionText }}
@endcomponent </x-mail::button>
@endisset @endisset
{{-- Outro Lines --}} {{-- Outro Lines --}}
@foreach ($outroLines as $line) @foreach ($outroLines as $line)
{{ $line }} {{ $line }}
@endforeach @endforeach
{{-- Salutation --}} {{-- Salutation --}}
@if (! empty($salutation)) @if (! empty($salutation))
{{ $salutation }} {{ $salutation }}
@else @else
@lang('Regards'),<br> @lang('Regards'),<br>
{{ config('app.name') }} {{ config('app.name') }}
@endif @endif
{{-- Subcopy --}} {{-- Subcopy --}}
@isset($actionText) @isset($actionText)
@slot('subcopy') <x-slot:subcopy>
@lang( @lang(
"If you're having trouble clicking the \":actionText\" button, copy and paste the URL below\n". "If you're having trouble clicking the \":actionText\" button, copy and paste the URL below\n".
'into your web browser:', 'into your web browser:',
[ [
'actionText' => $actionText, 'actionText' => $actionText,
] ]
) <span class="break-all">[{{ $displayableActionUrl }}]({{ $actionUrl }})</span> ) <span class="break-all">[{{ $displayableActionUrl }}]({{ $actionUrl }})</span>
@endslot </x-slot:subcopy>
@endisset @endisset
@endcomponent </x-mail::message>

View File

@ -8,8 +8,7 @@
</li> </li>
@else @else
<li class="page-item"> <li class="page-item">
<a class="page-link" href="{{ $paginator->previousPageUrl() }}" rel="prev" <a class="page-link" href="{{ $paginator->previousPageUrl() }}" rel="prev" aria-label="@lang('pagination.previous')">&lsaquo;</a>
aria-label="@lang('pagination.previous')">&lsaquo;</a>
</li> </li>
@endif @endif
@ -17,16 +16,14 @@
@foreach ($elements as $element) @foreach ($elements as $element)
{{-- "Three Dots" Separator --}} {{-- "Three Dots" Separator --}}
@if (is_string($element)) @if (is_string($element))
<li class="page-item disabled" aria-disabled="true"><span class="page-link">{{ $element }}</span> <li class="page-item disabled" aria-disabled="true"><span class="page-link">{{ $element }}</span></li>
</li>
@endif @endif
{{-- Array Of Links --}} {{-- Array Of Links --}}
@if (is_array($element)) @if (is_array($element))
@foreach ($element as $page => $url) @foreach ($element as $page => $url)
@if ($page == $paginator->currentPage()) @if ($page == $paginator->currentPage())
<li class="page-item active" aria-current="page"><span class="page-link">{{ $page }}</span> <li class="page-item active" aria-current="page"><span class="page-link">{{ $page }}</span></li>
</li>
@else @else
<li class="page-item"><a class="page-link" href="{{ $url }}">{{ $page }}</a></li> <li class="page-item"><a class="page-link" href="{{ $url }}">{{ $page }}</a></li>
@endif @endif
@ -37,8 +34,7 @@
{{-- Next Page Link --}} {{-- Next Page Link --}}
@if ($paginator->hasMorePages()) @if ($paginator->hasMorePages())
<li class="page-item"> <li class="page-item">
<a class="page-link" href="{{ $paginator->nextPageUrl() }}" rel="next" <a class="page-link" href="{{ $paginator->nextPageUrl() }}" rel="next" aria-label="@lang('pagination.next')">&rsaquo;</a>
aria-label="@lang('pagination.next')">&rsaquo;</a>
</li> </li>
@else @else
<li class="page-item disabled" aria-disabled="true" aria-label="@lang('pagination.next')"> <li class="page-item disabled" aria-disabled="true" aria-label="@lang('pagination.next')">

View File

@ -9,16 +9,14 @@
</li> </li>
@else @else
<li class="page-item"> <li class="page-item">
<a class="page-link" href="{{ $paginator->previousPageUrl() }}" <a class="page-link" href="{{ $paginator->previousPageUrl() }}" rel="prev">@lang('pagination.previous')</a>
rel="prev">@lang('pagination.previous')</a>
</li> </li>
@endif @endif
{{-- Next Page Link --}} {{-- Next Page Link --}}
@if ($paginator->hasMorePages()) @if ($paginator->hasMorePages())
<li class="page-item"> <li class="page-item">
<a class="page-link" href="{{ $paginator->nextPageUrl() }}" <a class="page-link" href="{{ $paginator->nextPageUrl() }}" rel="next">@lang('pagination.next')</a>
rel="next">@lang('pagination.next')</a>
</li> </li>
@else @else
<li class="page-item disabled" aria-disabled="true"> <li class="page-item disabled" aria-disabled="true">
@ -50,8 +48,7 @@
</li> </li>
@else @else
<li class="page-item"> <li class="page-item">
<a class="page-link" href="{{ $paginator->previousPageUrl() }}" rel="prev" <a class="page-link" href="{{ $paginator->previousPageUrl() }}" rel="prev" aria-label="@lang('pagination.previous')">&lsaquo;</a>
aria-label="@lang('pagination.previous')">&lsaquo;</a>
</li> </li>
@endif @endif
@ -59,16 +56,14 @@
@foreach ($elements as $element) @foreach ($elements as $element)
{{-- "Three Dots" Separator --}} {{-- "Three Dots" Separator --}}
@if (is_string($element)) @if (is_string($element))
<li class="page-item disabled" aria-disabled="true"><span <li class="page-item disabled" aria-disabled="true"><span class="page-link">{{ $element }}</span></li>
class="page-link">{{ $element }}</span></li>
@endif @endif
{{-- Array Of Links --}} {{-- Array Of Links --}}
@if (is_array($element)) @if (is_array($element))
@foreach ($element as $page => $url) @foreach ($element as $page => $url)
@if ($page == $paginator->currentPage()) @if ($page == $paginator->currentPage())
<li class="page-item active" aria-current="page"><span <li class="page-item active" aria-current="page"><span class="page-link">{{ $page }}</span></li>
class="page-link">{{ $page }}</span></li>
@else @else
<li class="page-item"><a class="page-link" href="{{ $url }}">{{ $page }}</a></li> <li class="page-item"><a class="page-link" href="{{ $url }}">{{ $page }}</a></li>
@endif @endif
@ -79,8 +74,7 @@
{{-- Next Page Link --}} {{-- Next Page Link --}}
@if ($paginator->hasMorePages()) @if ($paginator->hasMorePages())
<li class="page-item"> <li class="page-item">
<a class="page-link" href="{{ $paginator->nextPageUrl() }}" rel="next" <a class="page-link" href="{{ $paginator->nextPageUrl() }}" rel="next" aria-label="@lang('pagination.next')">&rsaquo;</a>
aria-label="@lang('pagination.next')">&rsaquo;</a>
</li> </li>
@else @else
<li class="page-item disabled" aria-disabled="true" aria-label="@lang('pagination.next')"> <li class="page-item disabled" aria-disabled="true" aria-label="@lang('pagination.next')">

View File

@ -34,8 +34,7 @@
{{-- Next Page Link --}} {{-- Next Page Link --}}
@if ($paginator->hasMorePages()) @if ($paginator->hasMorePages())
<li> <li>
<a href="{{ $paginator->nextPageUrl() }}" rel="next" <a href="{{ $paginator->nextPageUrl() }}" rel="next" aria-label="@lang('pagination.next')">&rsaquo;</a>
aria-label="@lang('pagination.next')">&rsaquo;</a>
</li> </li>
@else @else
<li class="disabled" aria-disabled="true" aria-label="@lang('pagination.next')"> <li class="disabled" aria-disabled="true" aria-label="@lang('pagination.next')">

View File

@ -2,11 +2,9 @@
<div class="ui pagination menu" role="navigation"> <div class="ui pagination menu" role="navigation">
{{-- Previous Page Link --}} {{-- Previous Page Link --}}
@if ($paginator->onFirstPage()) @if ($paginator->onFirstPage())
<a class="icon item disabled" aria-disabled="true" aria-label="@lang('pagination.previous')"> <i <a class="icon item disabled" aria-disabled="true" aria-label="@lang('pagination.previous')"> <i class="left chevron icon"></i> </a>
class="left chevron icon"></i> </a>
@else @else
<a class="icon item" href="{{ $paginator->previousPageUrl() }}" rel="prev" <a class="icon item" href="{{ $paginator->previousPageUrl() }}" rel="prev" aria-label="@lang('pagination.previous')"> <i class="left chevron icon"></i> </a>
aria-label="@lang('pagination.previous')"> <i class="left chevron icon"></i> </a>
@endif @endif
{{-- Pagination Elements --}} {{-- Pagination Elements --}}
@ -30,11 +28,9 @@
{{-- Next Page Link --}} {{-- Next Page Link --}}
@if ($paginator->hasMorePages()) @if ($paginator->hasMorePages())
<a class="icon item" href="{{ $paginator->nextPageUrl() }}" rel="next" <a class="icon item" href="{{ $paginator->nextPageUrl() }}" rel="next" aria-label="@lang('pagination.next')"> <i class="right chevron icon"></i> </a>
aria-label="@lang('pagination.next')"> <i class="right chevron icon"></i> </a>
@else @else
<a class="icon item disabled" aria-disabled="true" aria-label="@lang('pagination.next')"> <i <a class="icon item disabled" aria-disabled="true" aria-label="@lang('pagination.next')"> <i class="right chevron icon"></i> </a>
class="right chevron icon"></i> </a>
@endif @endif
</div> </div>
@endif @endif

View File

@ -8,8 +8,7 @@
</li> </li>
@else @else
<li class="page-item"> <li class="page-item">
<a class="page-link" href="{{ $paginator->previousPageUrl() }}" <a class="page-link" href="{{ $paginator->previousPageUrl() }}" rel="prev">@lang('pagination.previous')</a>
rel="prev">@lang('pagination.previous')</a>
</li> </li>
@endif @endif

View File

@ -17,8 +17,7 @@
{{-- Next Page Link --}} {{-- Next Page Link --}}
@if ($paginator->hasMorePages()) @if ($paginator->hasMorePages())
<li class="page-item"> <li class="page-item">
<a class="page-link" href="{{ $paginator->nextPageUrl() }}" <a class="page-link" href="{{ $paginator->nextPageUrl() }}" rel="next">{!! __('pagination.next') !!}</a>
rel="next">{!! __('pagination.next') !!}</a>
</li> </li>
@else @else
<li class="page-item disabled" aria-disabled="true"> <li class="page-item disabled" aria-disabled="true">

View File

@ -2,26 +2,22 @@
<nav role="navigation" aria-label="Pagination Navigation" class="flex justify-between"> <nav role="navigation" aria-label="Pagination Navigation" class="flex justify-between">
{{-- Previous Page Link --}} {{-- Previous Page Link --}}
@if ($paginator->onFirstPage()) @if ($paginator->onFirstPage())
<span <span class="relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default leading-5 rounded-md dark:text-gray-600 dark:bg-gray-800 dark:border-gray-600">
class="relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default leading-5 rounded-md">
{!! __('pagination.previous') !!} {!! __('pagination.previous') !!}
</span> </span>
@else @else
<a href="{{ $paginator->previousPageUrl() }}" rel="prev" <a href="{{ $paginator->previousPageUrl() }}" rel="prev" class="relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 rounded-md hover:text-gray-500 focus:outline-none focus:ring ring-gray-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-300 dark:focus:border-blue-700 dark:active:bg-gray-700 dark:active:text-gray-300">
class="relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 rounded-md hover:text-gray-500 focus:outline-none focus:ring ring-gray-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150">
{!! __('pagination.previous') !!} {!! __('pagination.previous') !!}
</a> </a>
@endif @endif
{{-- Next Page Link --}} {{-- Next Page Link --}}
@if ($paginator->hasMorePages()) @if ($paginator->hasMorePages())
<a href="{{ $paginator->nextPageUrl() }}" rel="next" <a href="{{ $paginator->nextPageUrl() }}" rel="next" class="relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 rounded-md hover:text-gray-500 focus:outline-none focus:ring ring-gray-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-300 dark:focus:border-blue-700 dark:active:bg-gray-700 dark:active:text-gray-300">
class="relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 rounded-md hover:text-gray-500 focus:outline-none focus:ring ring-gray-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150">
{!! __('pagination.next') !!} {!! __('pagination.next') !!}
</a> </a>
@else @else
<span <span class="relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default leading-5 rounded-md dark:text-gray-600 dark:bg-gray-800 dark:border-gray-600">
class="relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default leading-5 rounded-md">
{!! __('pagination.next') !!} {!! __('pagination.next') !!}
</span> </span>
@endif @endif

View File

@ -2,25 +2,21 @@
<nav role="navigation" aria-label="{{ __('Pagination Navigation') }}" class="flex items-center justify-between"> <nav role="navigation" aria-label="{{ __('Pagination Navigation') }}" class="flex items-center justify-between">
<div class="flex justify-between flex-1 sm:hidden"> <div class="flex justify-between flex-1 sm:hidden">
@if ($paginator->onFirstPage()) @if ($paginator->onFirstPage())
<span <span class="relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default leading-5 rounded-md dark:text-gray-600 dark:bg-gray-800 dark:border-gray-600">
class="relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default leading-5 rounded-md">
{!! __('pagination.previous') !!} {!! __('pagination.previous') !!}
</span> </span>
@else @else
<a href="{{ $paginator->previousPageUrl() }}" <a href="{{ $paginator->previousPageUrl() }}" class="relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 rounded-md hover:text-gray-500 focus:outline-none focus:ring ring-gray-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-300 dark:focus:border-blue-700 dark:active:bg-gray-700 dark:active:text-gray-300">
class="relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 rounded-md hover:text-gray-500 focus:outline-none focus:ring ring-gray-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150">
{!! __('pagination.previous') !!} {!! __('pagination.previous') !!}
</a> </a>
@endif @endif
@if ($paginator->hasMorePages()) @if ($paginator->hasMorePages())
<a href="{{ $paginator->nextPageUrl() }}" <a href="{{ $paginator->nextPageUrl() }}" class="relative inline-flex items-center px-4 py-2 ml-3 text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 rounded-md hover:text-gray-500 focus:outline-none focus:ring ring-gray-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-300 dark:focus:border-blue-700 dark:active:bg-gray-700 dark:active:text-gray-300">
class="relative inline-flex items-center px-4 py-2 ml-3 text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 rounded-md hover:text-gray-500 focus:outline-none focus:ring ring-gray-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150">
{!! __('pagination.next') !!} {!! __('pagination.next') !!}
</a> </a>
@else @else
<span <span class="relative inline-flex items-center px-4 py-2 ml-3 text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default leading-5 rounded-md dark:text-gray-600 dark:bg-gray-800 dark:border-gray-600">
class="relative inline-flex items-center px-4 py-2 ml-3 text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default leading-5 rounded-md">
{!! __('pagination.next') !!} {!! __('pagination.next') !!}
</span> </span>
@endif @endif
@ -28,7 +24,7 @@
<div class="hidden sm:flex-1 sm:flex sm:items-center sm:justify-between"> <div class="hidden sm:flex-1 sm:flex sm:items-center sm:justify-between">
<div> <div>
<p class="text-sm text-gray-700 leading-5"> <p class="text-sm text-gray-700 leading-5 dark:text-gray-400">
{!! __('Showing') !!} {!! __('Showing') !!}
@if ($paginator->firstItem()) @if ($paginator->firstItem())
<span class="font-medium">{{ $paginator->firstItem() }}</span> <span class="font-medium">{{ $paginator->firstItem() }}</span>
@ -44,28 +40,20 @@
</div> </div>
<div> <div>
<span class="relative z-0 inline-flex shadow-sm rounded-md"> <span class="relative z-0 inline-flex rtl:flex-row-reverse shadow-sm rounded-md">
{{-- Previous Page Link --}} {{-- Previous Page Link --}}
@if ($paginator->onFirstPage()) @if ($paginator->onFirstPage())
<span aria-disabled="true" aria-label="{{ __('pagination.previous') }}"> <span aria-disabled="true" aria-label="{{ __('pagination.previous') }}">
<span <span class="relative inline-flex items-center px-2 py-2 text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default rounded-l-md leading-5 dark:bg-gray-800 dark:border-gray-600" aria-hidden="true">
class="relative inline-flex items-center px-2 py-2 text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default rounded-l-md leading-5"
aria-hidden="true">
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
<path fill-rule="evenodd" <path fill-rule="evenodd" d="M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z" clip-rule="evenodd" />
d="M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z"
clip-rule="evenodd"/>
</svg> </svg>
</span> </span>
</span> </span>
@else @else
<a href="{{ $paginator->previousPageUrl() }}" rel="prev" <a href="{{ $paginator->previousPageUrl() }}" rel="prev" class="relative inline-flex items-center px-2 py-2 text-sm font-medium text-gray-500 bg-white border border-gray-300 rounded-l-md leading-5 hover:text-gray-400 focus:z-10 focus:outline-none focus:ring ring-gray-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-500 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:active:bg-gray-700 dark:focus:border-blue-800" aria-label="{{ __('pagination.previous') }}">
class="relative inline-flex items-center px-2 py-2 text-sm font-medium text-gray-500 bg-white border border-gray-300 rounded-l-md leading-5 hover:text-gray-400 focus:z-10 focus:outline-none focus:ring ring-gray-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-500 transition ease-in-out duration-150"
aria-label="{{ __('pagination.previous') }}">
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
<path fill-rule="evenodd" <path fill-rule="evenodd" d="M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z" clip-rule="evenodd" />
d="M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z"
clip-rule="evenodd"/>
</svg> </svg>
</a> </a>
@endif @endif
@ -75,8 +63,7 @@
{{-- "Three Dots" Separator --}} {{-- "Three Dots" Separator --}}
@if (is_string($element)) @if (is_string($element))
<span aria-disabled="true"> <span aria-disabled="true">
<span <span class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 cursor-default leading-5 dark:bg-gray-800 dark:border-gray-600">{{ $element }}</span>
class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 cursor-default leading-5">{{ $element }}</span>
</span> </span>
@endif @endif
@ -85,13 +72,10 @@
@foreach ($element as $page => $url) @foreach ($element as $page => $url)
@if ($page == $paginator->currentPage()) @if ($page == $paginator->currentPage())
<span aria-current="page"> <span aria-current="page">
<span <span class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default leading-5 dark:bg-gray-800 dark:border-gray-600">{{ $page }}</span>
class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default leading-5">{{ $page }}</span>
</span> </span>
@else @else
<a href="{{ $url }}" <a href="{{ $url }}" class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 hover:text-gray-500 focus:z-10 focus:outline-none focus:ring ring-gray-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-400 dark:hover:text-gray-300 dark:active:bg-gray-700 dark:focus:border-blue-800" aria-label="{{ __('Go to page :page', ['page' => $page]) }}">
class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 hover:text-gray-500 focus:z-10 focus:outline-none focus:ring ring-gray-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150"
aria-label="{{ __('Go to page :page', ['page' => $page]) }}">
{{ $page }} {{ $page }}
</a> </a>
@endif @endif
@ -101,24 +85,16 @@
{{-- Next Page Link --}} {{-- Next Page Link --}}
@if ($paginator->hasMorePages()) @if ($paginator->hasMorePages())
<a href="{{ $paginator->nextPageUrl() }}" rel="next" <a href="{{ $paginator->nextPageUrl() }}" rel="next" class="relative inline-flex items-center px-2 py-2 -ml-px text-sm font-medium text-gray-500 bg-white border border-gray-300 rounded-r-md leading-5 hover:text-gray-400 focus:z-10 focus:outline-none focus:ring ring-gray-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-500 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:active:bg-gray-700 dark:focus:border-blue-800" aria-label="{{ __('pagination.next') }}">
class="relative inline-flex items-center px-2 py-2 -ml-px text-sm font-medium text-gray-500 bg-white border border-gray-300 rounded-r-md leading-5 hover:text-gray-400 focus:z-10 focus:outline-none focus:ring ring-gray-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-500 transition ease-in-out duration-150"
aria-label="{{ __('pagination.next') }}">
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
<path fill-rule="evenodd" <path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd" />
d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z"
clip-rule="evenodd"/>
</svg> </svg>
</a> </a>
@else @else
<span aria-disabled="true" aria-label="{{ __('pagination.next') }}"> <span aria-disabled="true" aria-label="{{ __('pagination.next') }}">
<span <span class="relative inline-flex items-center px-2 py-2 -ml-px text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default rounded-r-md leading-5 dark:bg-gray-800 dark:border-gray-600" aria-hidden="true">
class="relative inline-flex items-center px-2 py-2 -ml-px text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default rounded-r-md leading-5"
aria-hidden="true">
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
<path fill-rule="evenodd" <path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd" />
d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z"
clip-rule="evenodd"/>
</svg> </svg>
</span> </span>
</span> </span>