major update

This commit is contained in:
Mark Gregory
2026-06-10 15:10:11 +01:00
parent 9b8d73de5a
commit ca3be4c887
156 changed files with 358 additions and 11659 deletions
+50 -51
View File
@@ -81,8 +81,8 @@ select:focus[data-flux-control] {
top: 0;
z-index: 40;
display: flex;
width: 24rem;
min-width: 24rem;
width: 23.5rem;
min-width: 23.5rem;
height: 100vh;
flex-direction: column;
border-right: 1px solid rgb(228 228 231);
@@ -143,7 +143,7 @@ select:focus[data-flux-control] {
}
.wms-brand-title {
max-width: 18.5rem;
max-width: 18rem;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
@@ -164,34 +164,6 @@ select:focus[data-flux-control] {
color: rgb(8 145 178);
}
.wms-health-badge {
display: inline-flex;
align-items: center;
gap: 0.35rem;
border-radius: 999px;
border: 1px solid rgb(187 247 208);
background: rgb(220 252 231);
color: rgb(21 128 61);
padding: 0.38rem 0.58rem;
font-size: 0.72rem;
font-weight: 800;
text-decoration: none;
box-shadow: 0 10px 24px rgb(21 128 61 / 0.12);
transition: transform 120ms ease, background 120ms ease, border-color 120ms ease;
}
.wms-health-badge:hover {
transform: translateY(-1px);
background: rgb(187 247 208);
border-color: rgb(134 239 172);
}
.dark .wms-health-badge {
border-color: rgb(20 83 45);
background: rgb(20 83 45 / 0.55);
color: rgb(187 247 208);
}
.wms-sidebar-toggle,
.wms-mobile-close,
.wms-mobile-menu {
@@ -305,18 +277,6 @@ select:focus[data-flux-control] {
font-size: 1rem;
}
.wms-platform-admin-link {
min-height: 3rem;
border: 1px solid rgb(14 116 144 / 0.28);
background: linear-gradient(135deg, rgb(8 47 73 / 0.12), rgb(14 116 144 / 0.08));
font-weight: 800;
}
.dark .wms-platform-admin-link {
border-color: rgb(103 232 249 / 0.22);
background: linear-gradient(135deg, rgb(8 47 73 / 0.75), rgb(20 83 45 / 0.25));
}
.wms-sidebar-footer {
display: grid;
gap: 0.25rem;
@@ -340,6 +300,40 @@ select:focus[data-flux-control] {
padding: 0.65rem;
}
.wms-user-card-button {
width: 100%;
cursor: pointer;
text-align: left;
}
.wms-user-card-button:hover {
border-color: rgb(14 116 144);
background: rgb(244 244 245);
}
.dark .wms-user-card-button:hover {
border-color: rgb(14 116 144);
background: rgb(48 48 52);
}
.wms-user-chevron {
margin-left: auto;
color: rgb(113 113 122);
font-size: 0.75rem;
}
.wms-user-rail-button {
display: none;
width: 2.5rem;
height: 2.5rem;
place-items: center;
border-radius: 999px;
background: rgb(15 23 42);
color: white;
font-size: 0.8rem;
font-weight: 800;
}
.dark .wms-user-card {
border-color: rgb(63 63 70);
background: rgb(39 39 42);
@@ -412,10 +406,6 @@ select:focus[data-flux-control] {
display: none !important;
}
html[data-wms-sidebar='collapsed'] .wms-health-badge {
display: none;
}
html[data-wms-sidebar='collapsed'] .wms-sidebar-header,
html[data-wms-sidebar='collapsed'] .wms-sidebar-footer,
html[data-wms-sidebar='collapsed'] .wms-sidebar-nav {
@@ -439,6 +429,15 @@ select:focus[data-flux-control] {
padding-right: 0.7rem;
}
html[data-wms-sidebar='collapsed'] .wms-user-rail-button {
display: grid;
}
html[data-wms-sidebar='collapsed'] .wms-sidebar-footer {
justify-items: center;
}
html[data-wms-sidebar='collapsed'] .wms-toggle-expanded {
display: none;
}
@@ -455,8 +454,8 @@ select:focus[data-flux-control] {
.wms-sidebar {
position: fixed;
inset: 0 auto 0 0;
width: min(24rem, calc(100vw - 2.5rem));
min-width: min(24rem, calc(100vw - 2.5rem));
width: min(23.5rem, calc(100vw - 2.5rem));
min-width: min(23.5rem, calc(100vw - 2.5rem));
transform: translateX(-105%);
box-shadow: 22px 0 60px rgb(0 0 0 / 0.24);
}
@@ -475,8 +474,8 @@ select:focus[data-flux-control] {
}
html[data-wms-sidebar='collapsed'] .wms-sidebar {
width: min(24rem, calc(100vw - 2.5rem));
min-width: min(24rem, calc(100vw - 2.5rem));
width: min(23.5rem, calc(100vw - 2.5rem));
min-width: min(23.5rem, calc(100vw - 2.5rem));
}
html[data-wms-sidebar='collapsed'] [data-wms-sidebar-label] {
+89 -22
View File
@@ -10,7 +10,7 @@
<aside class="wms-sidebar" data-wms-sidebar aria-label="{{ __('Main navigation') }}">
<div class="wms-sidebar-header">
<a href="{{ route('dashboard') }}" wire:navigate class="wms-brand" aria-label="{{ __('Warehouse Management System') }}">
<a href="{{ auth()->user()?->isMpbaPlatformAdmin() ? route('platform.dashboard') : route('dashboard') }}" wire:navigate class="wms-brand" aria-label="{{ __('Warehouse Management System') }}">
<span class="wms-brand-mark">
<span class="wms-brand-mark-inner">W</span>
</span>
@@ -21,11 +21,6 @@
</span>
</a>
<a href="/up" class="wms-health-badge" title="{{ __('Health Check') }}" aria-label="{{ __('Health Check') }}">
<i class="fa-solid fa-heart-pulse" aria-hidden="true"></i>
<span data-wms-sidebar-label>{{ __('OK') }}</span>
</a>
<button
type="button"
class="wms-sidebar-toggle"
@@ -51,10 +46,17 @@
<div class="wms-sidebar-group">
<div class="wms-sidebar-heading" data-wms-sidebar-label>{{ __('Operations') }}</div>
<a href="{{ route('dashboard') }}" wire:navigate class="wms-sidebar-link @if(request()->routeIs('dashboard')) is-active @endif" title="{{ __('Platform') }}">
<i class="fa-solid fa-screwdriver-wrench wms-sidebar-icon" aria-hidden="true"></i>
<span data-wms-sidebar-label>{{ __('Platform') }}</span>
</a>
@if(auth()->user()?->isMpbaPlatformAdmin())
<a href="{{ route('platform.dashboard') }}" wire:navigate class="wms-sidebar-link @if(request()->routeIs('platform.dashboard')) is-active @endif" title="{{ __('Platform') }}">
<i class="fa-solid fa-screwdriver-wrench wms-sidebar-icon" aria-hidden="true"></i>
<span data-wms-sidebar-label>{{ __('Platform') }}</span>
</a>
@else
<a href="{{ route('dashboard') }}" wire:navigate class="wms-sidebar-link @if(request()->routeIs('dashboard')) is-active @endif" title="{{ __('Dashboard') }}">
<i class="fa-solid fa-gauge-high wms-sidebar-icon" aria-hidden="true"></i>
<span data-wms-sidebar-label>{{ __('Dashboard') }}</span>
</a>
@endif
<a href="{{ route('warehouse-rules.index') }}" wire:navigate class="wms-sidebar-link @if(request()->routeIs('warehouse-rules.*')) is-active @endif" title="{{ __('Validation Rules') }}">
<i class="fa-solid fa-shield-halved wms-sidebar-icon" aria-hidden="true"></i>
@@ -86,22 +88,87 @@
<span data-wms-sidebar-label>{{ __('Payments') }}</span>
</a>
</div>
@else
<div class="wms-sidebar-group">
<div class="wms-sidebar-heading" data-wms-sidebar-label>{{ __('Administration') }}</div>
<a href="{{ route('warehouses.index') }}" wire:navigate class="wms-sidebar-link @if(request()->routeIs('warehouses.*')) is-active @endif" title="{{ __('Warehouses') }}">
<i class="fa-solid fa-warehouse wms-sidebar-icon" aria-hidden="true"></i>
<span data-wms-sidebar-label>{{ __('Warehouses') }}</span>
</a>
</div>
@endif
</nav>
<div class="wms-sidebar-footer">
<a href="/admin" class="wms-sidebar-link wms-platform-admin-link" title="{{ __('Platform Admin') }}">
<i class="fa-solid fa-screwdriver-wrench wms-sidebar-icon" aria-hidden="true"></i>
<span data-wms-sidebar-label>{{ __('Platform Admin') }}</span>
</a>
<flux:dropdown position="top" align="start">
<button type="button" class="wms-user-card wms-user-card-button" data-wms-sidebar-label>
<div class="wms-user-avatar">{{ auth()->user()?->initials() ?? 'U' }}</div>
<div class="wms-user-copy">
<div class="wms-user-name">{{ auth()->user()?->name ?? __('User') }}</div>
<div class="wms-user-email">{{ auth()->user()?->email ?? '' }}</div>
</div>
<i class="fa-solid fa-chevron-up wms-user-chevron" aria-hidden="true"></i>
</button>
<div class="wms-user-card" data-wms-sidebar-label>
<div class="wms-user-avatar">{{ auth()->user()?->initials() ?? 'U' }}</div>
<div class="wms-user-copy">
<div class="wms-user-name">{{ auth()->user()?->name ?? __('User') }}</div>
<div class="wms-user-email">{{ auth()->user()?->email ?? '' }}</div>
</div>
</div>
<flux:menu>
<flux:menu.radio.group>
<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 ?? 'User'"
:initials="auth()->user()?->initials() ?? 'U'"
/>
<div class="grid flex-1 text-start text-sm leading-tight">
<flux:heading class="truncate">{{ auth()->user()?->name ?? __('User') }}</flux:heading>
<flux:text class="truncate">{{ auth()->user()?->email ?? '' }}</flux:text>
</div>
</div>
</div>
</flux:menu.radio.group>
<flux:menu.separator />
<flux:menu.radio.group>
<flux:menu.item :href="route('profile.edit')" icon="cog" wire:navigate>
{{ __('Settings') }}
</flux:menu.item>
</flux:menu.radio.group>
<flux:menu.separator />
<form method="POST" action="{{ route('logout') }}" class="w-full">
@csrf
<flux:menu.item
as="button"
type="submit"
icon="arrow-right-start-on-rectangle"
class="w-full cursor-pointer"
data-test="logout-button"
>
{{ __('Log out') }}
</flux:menu.item>
</form>
</flux:menu>
</flux:dropdown>
<flux:dropdown position="top" align="start">
<button type="button" class="wms-user-rail-button" title="{{ __('Account') }}">
{{ auth()->user()?->initials() ?? 'U' }}
</button>
<flux:menu>
<flux:menu.item :href="route('profile.edit')" icon="cog" wire:navigate>{{ __('Settings') }}</flux:menu.item>
<flux:menu.separator />
<form method="POST" action="{{ route('logout') }}" class="w-full">
@csrf
<flux:menu.item as="button" type="submit" icon="arrow-right-start-on-rectangle" class="w-full cursor-pointer">
{{ __('Log out') }}
</flux:menu.item>
</form>
</flux:menu>
</flux:dropdown>
</div>
</aside>
@@ -111,7 +178,7 @@
<i class="fa-solid fa-bars" aria-hidden="true"></i>
</button>
<a href="{{ route('dashboard') }}" wire:navigate class="wms-mobile-title">
<a href="{{ auth()->user()?->isMpbaPlatformAdmin() ? route('platform.dashboard') : route('dashboard') }}" wire:navigate class="wms-mobile-title">
{{ __('Warehouse Management System') }}
</a>