major update

This commit is contained in:
Mark Gregory
2026-06-10 14:04:49 +01:00
parent b10ac13bb5
commit 276f03a17b
26 changed files with 129 additions and 152 deletions
+22
View File
@@ -0,0 +1,22 @@
# WMS Fix Notes
This build patches only the current uploaded code.
## Fixed
- Duplicate two-factor migration made safe.
- Primary two-factor migration adds columns one at a time for SQLite safety.
- Module page slot is wrapped in a visible `.wms-content` main container.
- Sidebar remains traditional: desktop/tablet icon rail, mobile drawer.
- Sidebar widened for "Warehouse Management System".
- Laravel cache folders are included so "Please provide a valid cache path" does not recur after unzip.
## After unzip
```bash
composer install
npm install
php artisan optimize:clear
php artisan test
npm run build
```
Executable → Regular
View File
Executable → Regular
View File
@@ -15,19 +15,23 @@ return new class extends Migration
return;
}
Schema::table('users', function (Blueprint $table): void {
if (! Schema::hasColumn('users', 'two_factor_secret')) {
if (! Schema::hasColumn('users', 'two_factor_secret')) {
Schema::table('users', function (Blueprint $table): void {
$table->text('two_factor_secret')->nullable()->after('password');
}
});
}
if (! Schema::hasColumn('users', 'two_factor_recovery_codes')) {
if (! Schema::hasColumn('users', 'two_factor_recovery_codes')) {
Schema::table('users', function (Blueprint $table): void {
$table->text('two_factor_recovery_codes')->nullable()->after('two_factor_secret');
}
});
}
if (! Schema::hasColumn('users', 'two_factor_confirmed_at')) {
if (! Schema::hasColumn('users', 'two_factor_confirmed_at')) {
Schema::table('users', function (Blueprint $table): void {
$table->timestamp('two_factor_confirmed_at')->nullable()->after('two_factor_recovery_codes');
}
});
});
}
}
/**
@@ -39,12 +43,12 @@ return new class extends Migration
return;
}
Schema::table('users', function (Blueprint $table): void {
foreach (['two_factor_confirmed_at', 'two_factor_recovery_codes', 'two_factor_secret'] as $column) {
if (Schema::hasColumn('users', $column)) {
foreach (['two_factor_confirmed_at', 'two_factor_recovery_codes', 'two_factor_secret'] as $column) {
if (Schema::hasColumn('users', $column)) {
Schema::table('users', function (Blueprint $table) use ($column): void {
$table->dropColumn($column);
}
});
}
});
}
}
};
@@ -1,50 +1,28 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
* This migration is intentionally a no-op.
*
* The two-factor columns are managed by:
* 2025_08_14_170933_add_two_factor_columns_to_users_table.php
*
* Keeping this file prevents migration-history churn while avoiding duplicate
* column failures in SQLite, MySQL and PostgreSQL.
*/
public function up(): void
{
if (! Schema::hasTable('users')) {
return;
}
Schema::table('users', function (Blueprint $table): void {
if (! Schema::hasColumn('users', 'two_factor_secret')) {
$table->text('two_factor_secret')->nullable()->after('password');
}
if (! Schema::hasColumn('users', 'two_factor_recovery_codes')) {
$table->text('two_factor_recovery_codes')->nullable()->after('two_factor_secret');
}
if (! Schema::hasColumn('users', 'two_factor_confirmed_at')) {
$table->timestamp('two_factor_confirmed_at')->nullable()->after('two_factor_recovery_codes');
}
});
//
}
/**
* Reverse the migrations.
* Reverse the migration.
*/
public function down(): void
{
if (! Schema::hasTable('users')) {
return;
}
Schema::table('users', function (Blueprint $table): void {
foreach (['two_factor_confirmed_at', 'two_factor_recovery_codes', 'two_factor_secret'] as $column) {
if (Schema::hasColumn('users', $column)) {
$table->dropColumn($column);
}
}
});
//
}
};
Executable → Regular
View File
+51 -36
View File
@@ -81,8 +81,8 @@ select:focus[data-flux-control] {
top: 0;
z-index: 40;
display: flex;
width: 20rem;
min-width: 20rem;
width: 21.5rem;
min-width: 21.5rem;
height: 100vh;
flex-direction: column;
border-right: 1px solid rgb(228 228 231);
@@ -99,8 +99,8 @@ select:focus[data-flux-control] {
display: flex;
align-items: center;
gap: 0.75rem;
min-height: 4.5rem;
padding: 0.875rem;
min-height: 4.75rem;
padding: 0.95rem;
border-bottom: 1px solid rgb(228 228 231);
}
@@ -120,11 +120,11 @@ select:focus[data-flux-control] {
.wms-brand-mark {
display: grid;
width: 2.35rem;
height: 2.35rem;
width: 2.5rem;
height: 2.5rem;
flex: 0 0 auto;
place-items: center;
border-radius: 0.75rem;
border-radius: 0.85rem;
background: linear-gradient(135deg, rgb(15 23 42), rgb(14 116 144));
color: white;
box-shadow: 0 12px 24px rgb(15 23 42 / 0.22);
@@ -143,12 +143,12 @@ select:focus[data-flux-control] {
}
.wms-brand-title {
max-width: 14rem;
max-width: 16rem;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 0.94rem;
font-weight: 750;
font-size: 0.98rem;
font-weight: 800;
color: rgb(24 24 27);
}
@@ -157,9 +157,9 @@ select:focus[data-flux-control] {
}
.wms-brand-subtitle {
margin-top: 0.15rem;
margin-top: 0.18rem;
font-size: 0.72rem;
font-weight: 700;
font-weight: 800;
letter-spacing: 0.14em;
color: rgb(8 145 178);
}
@@ -177,8 +177,9 @@ select:focus[data-flux-control] {
}
.wms-sidebar-toggle {
width: 2rem;
height: 2rem;
width: 2.15rem;
height: 2.15rem;
flex: 0 0 auto;
font-size: 1.35rem;
font-weight: 800;
line-height: 1;
@@ -205,8 +206,8 @@ select:focus[data-flux-control] {
.wms-mobile-close {
display: none;
width: 2rem;
height: 2rem;
width: 2.15rem;
height: 2.15rem;
font-size: 1.4rem;
line-height: 1;
}
@@ -214,7 +215,7 @@ select:focus[data-flux-control] {
.wms-sidebar-nav {
flex: 1;
overflow-y: auto;
padding: 0.85rem;
padding: 0.9rem;
}
.wms-sidebar-group + .wms-sidebar-group {
@@ -233,13 +234,13 @@ select:focus[data-flux-control] {
.wms-sidebar-link {
position: relative;
display: flex;
min-height: 2.55rem;
min-height: 2.65rem;
align-items: center;
gap: 0.75rem;
border-radius: 0.75rem;
padding: 0.625rem 0.7rem;
gap: 0.78rem;
border-radius: 0.8rem;
padding: 0.65rem 0.75rem;
color: rgb(63 63 70);
font-size: 0.9rem;
font-size: 0.92rem;
font-weight: 650;
text-decoration: none;
transition: background 120ms ease, color 120ms ease;
@@ -270,8 +271,8 @@ select:focus[data-flux-control] {
}
.wms-sidebar-icon {
width: 1.2rem;
min-width: 1.2rem;
width: 1.25rem;
min-width: 1.25rem;
text-align: center;
font-size: 1rem;
}
@@ -280,7 +281,7 @@ select:focus[data-flux-control] {
display: grid;
gap: 0.25rem;
border-top: 1px solid rgb(228 228 231);
padding: 0.85rem;
padding: 0.9rem;
}
.dark .wms-sidebar-footer {
@@ -341,6 +342,17 @@ select:focus[data-flux-control] {
.wms-main-column {
min-width: 0;
flex: 1;
display: flex;
min-height: 100vh;
flex-direction: column;
}
.wms-content {
display: block;
width: 100%;
min-width: 0;
flex: 1;
padding: 1.5rem;
}
.wms-mobile-header {
@@ -352,8 +364,8 @@ select:focus[data-flux-control] {
}
html[data-wms-sidebar='collapsed'] .wms-sidebar {
width: 5.25rem;
min-width: 5.25rem;
width: 5.5rem;
min-width: 5.5rem;
}
html[data-wms-sidebar='collapsed'] [data-wms-sidebar-label] {
@@ -364,8 +376,8 @@ select:focus[data-flux-control] {
html[data-wms-sidebar='collapsed'] .wms-sidebar-footer,
html[data-wms-sidebar='collapsed'] .wms-sidebar-nav {
align-items: center;
padding-left: 0.65rem;
padding-right: 0.65rem;
padding-left: 0.7rem;
padding-right: 0.7rem;
}
html[data-wms-sidebar='collapsed'] .wms-brand {
@@ -379,8 +391,8 @@ select:focus[data-flux-control] {
html[data-wms-sidebar='collapsed'] .wms-sidebar-link {
justify-content: center;
padding-left: 0.65rem;
padding-right: 0.65rem;
padding-left: 0.7rem;
padding-right: 0.7rem;
}
html[data-wms-sidebar='collapsed'] .wms-toggle-expanded {
@@ -399,8 +411,8 @@ select:focus[data-flux-control] {
.wms-sidebar {
position: fixed;
inset: 0 auto 0 0;
width: min(21rem, calc(100vw - 2.5rem));
min-width: min(21rem, calc(100vw - 2.5rem));
width: min(21.5rem, calc(100vw - 2.5rem));
min-width: min(21.5rem, calc(100vw - 2.5rem));
transform: translateX(-105%);
box-shadow: 22px 0 60px rgb(0 0 0 / 0.24);
}
@@ -419,8 +431,8 @@ select:focus[data-flux-control] {
}
html[data-wms-sidebar='collapsed'] .wms-sidebar {
width: min(21rem, calc(100vw - 2.5rem));
min-width: min(21rem, calc(100vw - 2.5rem));
width: min(21.5rem, calc(100vw - 2.5rem));
min-width: min(21.5rem, calc(100vw - 2.5rem));
}
html[data-wms-sidebar='collapsed'] [data-wms-sidebar-label] {
@@ -429,7 +441,6 @@ select:focus[data-flux-control] {
html[data-wms-sidebar='collapsed'] .wms-brand-copy,
html[data-wms-sidebar='collapsed'] .wms-sidebar-heading,
html[data-wms-sidebar='collapsed'] .wms-user-card span,
html[data-wms-sidebar='collapsed'] .wms-sidebar-link span {
display: block !important;
}
@@ -482,5 +493,9 @@ select:focus[data-flux-control] {
font-weight: 800;
text-decoration: none;
}
.wms-content {
padding: 1rem;
}
}
}
+1 -3
View File
@@ -1,5 +1,3 @@
<x-layouts::app.sidebar :title="$title ?? null">
<flux:main>
{{ $slot }}
</flux:main>
{{ $slot }}
</x-layouts::app.sidebar>
+11 -9
View File
@@ -101,10 +101,10 @@
</a>
<div class="wms-user-card" data-wms-sidebar-label>
<div class="wms-user-avatar">{{ auth()->user()->initials() }}</div>
<div class="wms-user-avatar">{{ auth()->user()?->initials() ?? 'U' }}</div>
<div class="wms-user-copy">
<div class="wms-user-name">{{ auth()->user()->name }}</div>
<div class="wms-user-email">{{ auth()->user()->email }}</div>
<div class="wms-user-name">{{ auth()->user()?->name ?? __('User') }}</div>
<div class="wms-user-email">{{ auth()->user()?->email ?? '' }}</div>
</div>
</div>
</div>
@@ -122,7 +122,7 @@
<flux:dropdown position="top" align="end">
<flux:profile
:initials="auth()->user()->initials()"
:initials="auth()->user()?->initials() ?? 'U'"
icon-trailing="chevron-down"
/>
@@ -131,13 +131,13 @@
<div class="p-0 text-sm font-normal">
<div class="flex items-center gap-2 px-1 py-1.5 text-start text-sm">
<flux:avatar
:name="auth()->user()->name"
:initials="auth()->user()->initials()"
:name="auth()->user()?->name ?? 'User'"
:initials="auth()->user()?->initials() ?? 'U'"
/>
<div class="grid flex-1 text-start text-sm leading-tight">
<flux:heading class="truncate">{{ auth()->user()->name }}</flux:heading>
<flux:text class="truncate">{{ auth()->user()->email }}</flux:text>
<flux:heading class="truncate">{{ auth()->user()?->name ?? __('User') }}</flux:heading>
<flux:text class="truncate">{{ auth()->user()?->email ?? '' }}</flux:text>
</div>
</div>
</div>
@@ -169,7 +169,9 @@
</flux:dropdown>
</header>
{{ $slot }}
<main class="wms-content">
{{ $slot }}
</main>
</div>
</div>
Executable → Regular
View File
Executable → Regular
View File
Executable → Regular
View File
Executable → Regular
View File
Executable → Regular
View File
View File
View File
View File
View File
@@ -1,4 +1,3 @@
<?php # [BlazeFolded]:{flux::main}:{/Users/mag/Sites/WMS/Concepts/WMS_Core/vendor/livewire/flux/src/../stubs/resources/views/flux/main.blade.php}:{1776985208} ?>
<?php if (isset($component)) { $__componentOriginal23399719f391f3076fe3bf0929a84741 = $component; } ?>
<?php if (isset($attributes)) { $__attributesOriginal23399719f391f3076fe3bf0929a84741 = $attributes; } ?>
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'f4ac99e09542ff494432bc959d4fee61::app.sidebar','data' => ['title' => $title ?? null]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
@@ -11,14 +10,8 @@
<?php $component->withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($title ?? null)]); ?>
<?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::processComponentKey($component); ?>
<?php ob_start(); ?><div class="[grid-area:main] p-6 lg:p-8 [[data-flux-container]_&amp;]:px-0" data-flux-main>
<?php ob_start(); ?>
<?php echo e($slot); ?>
<?php echo e($slot); ?>
<?php echo trim(ob_get_clean()); ?>
</div>
<?php echo ltrim(ob_get_clean()); ?>
<?php echo $__env->renderComponent(); ?>
<?php endif; ?>
<?php if (isset($__attributesOriginal23399719f391f3076fe3bf0929a84741)): ?>
@@ -140,7 +140,7 @@ if (! $overflow) {
<?php if ($name): ?> data-modal="<?php echo e($name); ?>" <?php endif; ?>
<?php if ($flyout): ?> data-flux-flyout <?php endif; ?>
<?php if ($overflow): ?> data-flux-modal-overflow <?php endif; ?>
[STARTCOMPILEDUNBLAZE:KUz7elYtTH]<?php \Livewire\Blaze\Unblaze::storeScope("KUz7elYtTH", scope: ['name' => $name]) ?>[ENDCOMPILEDUNBLAZE:KUz7elYtTH]
[STARTCOMPILEDUNBLAZE:uSVaNUUEkT]<?php \Livewire\Blaze\Unblaze::storeScope("uSVaNUUEkT", scope: ['name' => $name]) ?>[ENDCOMPILEDUNBLAZE:uSVaNUUEkT]
x-on:modal-show.document="handleShow($event)"
x-on:modal-close.document="handleClose($event)"
>
@@ -1,37 +0,0 @@
<?php
if (!function_exists('__479cf094ff202d6db5679d5ffb675bf3')):
function __479cf094ff202d6db5679d5ffb675bf3($__blaze, $__data = [], $__slots = [], $__bound = [], $__keys = [], $__this = null) {
$__env = $__blaze->env;
$__slots['slot'] ??= new \Illuminate\View\ComponentSlot('');
if (($__data['attributes'] ?? null) instanceof \Illuminate\View\ComponentAttributeBag) { $__data = $__data + $__data['attributes']->all(); unset($__data['attributes']); }
extract($__slots, EXTR_SKIP); unset($__slots);
extract($__data, EXTR_SKIP);
$attributes = \Livewire\Blaze\Runtime\BlazeAttributeBag::make($__data, $__bound, $__keys);
unset($__data, $__bound, $__keys);
ob_start();
?>
<?php
$__defaults = [
'container' => null,
];
$container ??= $attributes['container'] ?? $__defaults['container']; unset($attributes['container']);
unset($__defaults);
?>
<?php
$classes = Flux::classes('[grid-area:main]')
->add('p-6 lg:p-8')
->add('[[data-flux-container]_&]:px-0') // If there is a wrapping container, let IT handle the x padding...
->add($container ? 'mx-auto w-full [:where(&)]:max-w-7xl' : '')
;
?>
<div <?php echo e($attributes->class($classes)); ?> data-flux-main>
<?php echo e($slot); ?>
</div>
<?php
echo $__blaze->processPassthroughContent('ltrim', ltrim(ob_get_clean()));
} endif; ?><?php /**PATH /Users/mag/Sites/WMS/Concepts/WMS_Core/vendor/livewire/flux/src/../stubs/resources/views/flux/main.blade.php ENDPATH**/ ?>
@@ -89,7 +89,7 @@ unset($__defaults);
[STARTCOMPILEDUNBLAZE:zdSLnBCXT5]<?php \Livewire\Blaze\Unblaze::storeScope("zdSLnBCXT5", scope: ['attributes' => $errorAttributes->getAttributes()]) ?>[ENDCOMPILEDUNBLAZE:zdSLnBCXT5]
[STARTCOMPILEDUNBLAZE:BBYZS6M6TE]<?php \Livewire\Blaze\Unblaze::storeScope("BBYZS6M6TE", scope: ['attributes' => $errorAttributes->getAttributes()]) ?>[ENDCOMPILEDUNBLAZE:BBYZS6M6TE]
<?php if (isset($descriptionTrailing)): ?>
<?php $__blaze->ensureRequired('/Users/mag/Sites/WMS/Concepts/WMS_Core/vendor/livewire/flux/src/../stubs/resources/views/flux/description.blade.php', $__blaze->compiledPath.'/28fe7d5cd6608b5b07e3a8f31e8619b9.php'); ?>
@@ -205,7 +205,7 @@ $classes = Flux::classes()
<?php if (isset($name)): ?> name="<?php echo e($name); ?>" <?php endif; ?>
<?php if ($maskDynamic): ?> x-mask:dynamic="<?php echo e($maskDynamic); ?>" <?php elseif($mask): ?> x-mask="<?php echo e($mask); ?>" <?php endif; ?>
<?php if (is_numeric($size)): ?> size="<?php echo e($size); ?>" <?php endif; ?>
[STARTCOMPILEDUNBLAZE:HQePYZMT6f]<?php \Livewire\Blaze\Unblaze::storeScope("HQePYZMT6f", scope: ['name' => $name ?? null, 'invalid' => $invalid ?? false]) ?>[ENDCOMPILEDUNBLAZE:HQePYZMT6f]
[STARTCOMPILEDUNBLAZE:pR9HiWyohS]<?php \Livewire\Blaze\Unblaze::storeScope("pR9HiWyohS", scope: ['name' => $name ?? null, 'invalid' => $invalid ?? false]) ?>[ENDCOMPILEDUNBLAZE:pR9HiWyohS]
data-flux-control
data-flux-group-target
<?php if($loading): ?> wire:loading.class="<?php echo e($inputLoadingClasses); ?>" <?php endif; ?>
@@ -113,10 +113,10 @@
</a>
<div class="wms-user-card" data-wms-sidebar-label>
<div class="wms-user-avatar"><?php echo e(auth()->user()->initials()); ?></div>
<div class="wms-user-avatar"><?php echo e(auth()->user()?->initials() ?? 'U'); ?></div>
<div class="wms-user-copy">
<div class="wms-user-name"><?php echo e(auth()->user()->name); ?></div>
<div class="wms-user-email"><?php echo e(auth()->user()->email); ?></div>
<div class="wms-user-name"><?php echo e(auth()->user()?->name ?? __('User')); ?></div>
<div class="wms-user-email"><?php echo e(auth()->user()?->email ?? ''); ?></div>
</div>
</div>
</div>
@@ -136,8 +136,8 @@
<?php ob_start(); ?><ui-dropdown position="top end" data-flux-dropdown>
<?php ob_start(); ?>
<?php $__blaze->ensureRequired('/Users/mag/Sites/WMS/Concepts/WMS_Core/vendor/livewire/flux/src/../stubs/resources/views/flux/profile.blade.php', $__blaze->compiledPath.'/136cb3dd3f602ba4df5729c573589639.php'); ?>
<?php $__blaze->pushData(['initials' => auth()->user()->initials(),'iconTrailing' => 'chevron-down']); ?>
<?php _136cb3dd3f602ba4df5729c573589639($__blaze, ['initials' => auth()->user()->initials(),'iconTrailing' => 'chevron-down'], [], ['initials'], ['iconTrailing' => 'icon-trailing'], $__this ?? (isset($this) ? $this : null)); ?>
<?php $__blaze->pushData(['initials' => auth()->user()?->initials() ?? 'U','iconTrailing' => 'chevron-down']); ?>
<?php _136cb3dd3f602ba4df5729c573589639($__blaze, ['initials' => auth()->user()?->initials() ?? 'U','iconTrailing' => 'chevron-down'], [], ['initials'], ['iconTrailing' => 'icon-trailing'], $__this ?? (isset($this) ? $this : null)); ?>
<?php $__blaze->popData(); ?>
<?php ob_start(); ?><ui-menu
@@ -150,15 +150,15 @@
<?php ob_start(); ?>
<div class="p-0 text-sm font-normal">
<div class="flex items-center gap-2 px-1 py-1.5 text-start text-sm">
<?php $blaze_memoized_key = \Livewire\Blaze\Memoizer\Memo::key("flux::avatar", ['name' => auth()->user()->name, 'initials' => auth()->user()->initials()]); ?><?php if ($blaze_memoized_key !== null && \Livewire\Blaze\Memoizer\Memo::has($blaze_memoized_key)) : ?><?php echo \Livewire\Blaze\Memoizer\Memo::get($blaze_memoized_key); ?><?php else : ?><?php ob_start(); ?><?php $__blaze->ensureRequired('/Users/mag/Sites/WMS/Concepts/WMS_Core/vendor/livewire/flux/src/../stubs/resources/views/flux/avatar/index.blade.php', $__blaze->compiledPath.'/c62016d9aaa9eefc3be8277726982d94.php'); ?>
<?php $__blaze->pushData(['name' => auth()->user()->name,'initials' => auth()->user()->initials()]); ?>
<?php _c62016d9aaa9eefc3be8277726982d94($__blaze, ['name' => auth()->user()->name,'initials' => auth()->user()->initials()], [], ['name', 'initials'], [], $__this ?? (isset($this) ? $this : null)); ?>
<?php $blaze_memoized_key = \Livewire\Blaze\Memoizer\Memo::key("flux::avatar", ['name' => auth()->user()?->name ?? 'User', 'initials' => auth()->user()?->initials() ?? 'U']); ?><?php if ($blaze_memoized_key !== null && \Livewire\Blaze\Memoizer\Memo::has($blaze_memoized_key)) : ?><?php echo \Livewire\Blaze\Memoizer\Memo::get($blaze_memoized_key); ?><?php else : ?><?php ob_start(); ?><?php $__blaze->ensureRequired('/Users/mag/Sites/WMS/Concepts/WMS_Core/vendor/livewire/flux/src/../stubs/resources/views/flux/avatar/index.blade.php', $__blaze->compiledPath.'/c62016d9aaa9eefc3be8277726982d94.php'); ?>
<?php $__blaze->pushData(['name' => auth()->user()?->name ?? 'User','initials' => auth()->user()?->initials() ?? 'U']); ?>
<?php _c62016d9aaa9eefc3be8277726982d94($__blaze, ['name' => auth()->user()?->name ?? 'User','initials' => auth()->user()?->initials() ?? 'U'], [], ['name', 'initials'], [], $__this ?? (isset($this) ? $this : null)); ?>
<?php $__blaze->popData(); ?><?php $blaze_memoized_html = ob_get_clean(); ?><?php if ($blaze_memoized_key !== null) { \Livewire\Blaze\Memoizer\Memo::put($blaze_memoized_key, $blaze_memoized_html); } ?><?php echo $blaze_memoized_html; ?><?php endif; ?>
<div class="grid flex-1 text-start text-sm leading-tight">
<?php ob_start(); ?><div class="font-medium [:where(&amp;)]:text-zinc-800 [:where(&amp;)]:dark:text-white text-sm [&amp;:has(+[data-flux-subheading])]:mb-2 [[data-flux-subheading]+&amp;]:mt-2 truncate" data-flux-heading><?php ob_start(); ?><?php echo e(auth()->user()->name); ?><?php echo trim(ob_get_clean()); ?></div>
<?php ob_start(); ?><div class="font-medium [:where(&amp;)]:text-zinc-800 [:where(&amp;)]:dark:text-white text-sm [&amp;:has(+[data-flux-subheading])]:mb-2 [[data-flux-subheading]+&amp;]:mt-2 truncate" data-flux-heading><?php ob_start(); ?><?php echo e(auth()->user()?->name ?? __('User')); ?><?php echo trim(ob_get_clean()); ?></div>
<?php echo ltrim(ob_get_clean()); ?>
<?php ob_start(); ?><p class="[:where(&amp;)]:font-normal [:where(&amp;)]:text-sm [:where(&amp;)]:text-zinc-500 [:where(&amp;)]:dark:text-white/70 truncate" data-flux-text ><?php ob_start(); ?><?php echo e(auth()->user()->email); ?><?php echo trim(ob_get_clean()); ?></p><?php echo ltrim(ob_get_clean()); ?>
<?php ob_start(); ?><p class="[:where(&amp;)]:font-normal [:where(&amp;)]:text-sm [:where(&amp;)]:text-zinc-500 [:where(&amp;)]:dark:text-white/70 truncate" data-flux-text ><?php ob_start(); ?><?php echo e(auth()->user()?->email ?? ''); ?><?php echo trim(ob_get_clean()); ?></p><?php echo ltrim(ob_get_clean()); ?>
</div>
</div>
</div>
@@ -225,8 +225,10 @@
<?php echo ltrim(ob_get_clean()); ?>
</header>
<?php echo e($slot); ?>
<main class="wms-content">
<?php echo e($slot); ?>
</main>
</div>
</div>
View File
Executable → Regular
View File