diff --git a/extensions/Servers/Proxmox/views/components/alert.blade.php b/extensions/Servers/Proxmox/views/components/alert.blade.php
index 24a3baebb..98fafb821 100644
--- a/extensions/Servers/Proxmox/views/components/alert.blade.php
+++ b/extensions/Servers/Proxmox/views/components/alert.blade.php
@@ -11,15 +11,29 @@
])
@php
- // AdminLTE variant classes
+ // LucentUI Tailwind variant classes
$variantClasses = match($variant) {
- 'success' => $callout ? 'lte-callout lte-callout-success' : 'lte-alert lte-alert-success',
- 'danger', 'error' => $callout ? 'lte-callout lte-callout-danger' : 'lte-alert lte-alert-danger',
- 'warning' => $callout ? 'lte-callout lte-callout-warning' : 'lte-alert lte-alert-warning',
- 'info' => $callout ? 'lte-callout lte-callout-info' : 'lte-alert lte-alert-info',
- 'primary' => $callout ? 'lte-callout lte-callout-primary' : 'lte-alert lte-alert-primary',
- 'neutral' => $callout ? 'lte-callout' : 'lte-alert',
- default => $callout ? 'lte-callout lte-callout-info' : 'lte-alert lte-alert-info',
+ 'success' => $callout
+ ? 'border-l-4 border-l-success bg-success/5 text-success'
+ : 'bg-success/10 border border-success/30 text-success',
+ 'danger', 'error' => $callout
+ ? 'border-l-4 border-l-error bg-error/5 text-error'
+ : 'bg-error/10 border border-error/30 text-error',
+ 'warning' => $callout
+ ? 'border-l-4 border-l-warning bg-warning/5 text-warning'
+ : 'bg-warning/10 border border-warning/30 text-warning',
+ 'info' => $callout
+ ? 'border-l-4 border-l-info bg-info/5 text-info'
+ : 'bg-info/10 border border-info/30 text-info',
+ 'primary' => $callout
+ ? 'border-l-4 border-l-primary bg-primary/5 text-primary'
+ : 'bg-primary/10 border border-primary/30 text-primary',
+ 'neutral' => $callout
+ ? 'border-l-4 border-l-neutral bg-background-secondary text-base/80'
+ : 'bg-background-secondary border border-neutral text-base/80',
+ default => $callout
+ ? 'border-l-4 border-l-info bg-info/5 text-info'
+ : 'bg-info/10 border border-info/30 text-info',
};
// Default icons per variant
@@ -34,7 +48,7 @@
};
$alertIcon = $icon ?? $defaultIcon;
- $baseClasses = "$variantClasses lte-fade-in";
+ $baseClasses = "relative p-4 rounded-lg transition-all duration-300 $variantClasses";
@endphp
'padding: 0.2em 0.5em; font-size: 0.65em;',
- 'sm' => 'padding: 0.25em 0.55em; font-size: 0.7em;',
- 'md' => '',
- 'lg' => 'padding: 0.4em 0.75em; font-size: 0.85em;',
- default => '',
+ // Size classes
+ $sizeClasses = match($size) {
+ 'xs' => 'px-1.5 py-0.5 text-[10px]',
+ 'sm' => 'px-2 py-0.5 text-xs',
+ 'md' => 'px-2.5 py-1 text-xs',
+ 'lg' => 'px-3 py-1.5 text-sm',
+ default => 'px-2.5 py-1 text-xs',
};
// Icon size classes
@@ -41,47 +41,61 @@
default => 'size-2',
};
- // AdminLTE variant classes
+ // Variant classes - LucentUI Tailwind
$variantClasses = match($variant) {
- 'success' => 'lte-badge-success',
- 'danger' => 'lte-badge-danger',
- 'warning' => 'lte-badge-warning',
- 'info' => 'lte-badge-info',
- 'primary' => 'lte-badge-primary',
- 'secondary' => 'lte-badge-secondary',
- 'neutral' => 'lte-badge-light',
- default => 'lte-badge-secondary',
+ 'success' => $outline
+ ? 'border border-success text-success bg-transparent'
+ : 'bg-success/20 text-success',
+ 'danger' => $outline
+ ? 'border border-error text-error bg-transparent'
+ : 'bg-error/20 text-error',
+ 'warning' => $outline
+ ? 'border border-warning text-warning bg-transparent'
+ : 'bg-warning/20 text-warning',
+ 'info' => $outline
+ ? 'border border-info text-info bg-transparent'
+ : 'bg-info/20 text-info',
+ 'primary' => $outline
+ ? 'border border-primary text-primary bg-transparent'
+ : 'bg-primary/20 text-primary',
+ 'secondary' => $outline
+ ? 'border border-neutral text-base/70 bg-transparent'
+ : 'bg-neutral/20 text-base/70',
+ 'neutral' => $outline
+ ? 'border border-neutral/50 text-base/60 bg-transparent'
+ : 'bg-neutral/10 text-base/60',
+ default => $outline
+ ? 'border border-neutral text-base/70 bg-transparent'
+ : 'bg-neutral/20 text-base/70',
};
- // Dot color classes - AdminLTE colors
+ // Dot color classes
$dotColorClasses = match($variant) {
- 'success' => 'lte-bg-success',
- 'danger' => 'lte-bg-danger',
- 'warning' => 'lte-bg-warning',
- 'info' => 'lte-bg-info',
- 'primary' => 'lte-bg-primary',
- 'secondary' => 'lte-bg-secondary',
- 'neutral' => 'lte-bg-light',
- default => 'lte-bg-secondary',
+ 'success' => 'bg-success',
+ 'danger' => 'bg-error',
+ 'warning' => 'bg-warning',
+ 'info' => 'bg-info',
+ 'primary' => 'bg-primary',
+ 'secondary' => 'bg-neutral',
+ 'neutral' => 'bg-neutral/50',
+ default => 'bg-neutral',
+ };
+
+ // Border radius
+ $roundedClasses = match($rounded) {
+ 'none' => 'rounded-none',
+ 'sm' => 'rounded-sm',
+ 'md' => 'rounded-md',
+ 'lg' => 'rounded-lg',
+ 'full' => 'rounded-full',
+ default => 'rounded-full',
};
// Combined classes
- $classes = "$baseClasses $variantClasses";
-
- // Border radius style
- $borderRadius = match($rounded) {
- 'none' => 'border-radius: 0;',
- 'sm' => 'border-radius: 0.125rem;',
- 'md' => 'border-radius: 0.25rem;',
- 'lg' => 'border-radius: 0.375rem;',
- 'full' => 'border-radius: 9999px;',
- default => 'border-radius: 9999px;',
- };
-
- $styles = trim("$sizeStyles $borderRadius");
+ $classes = "$baseClasses $sizeClasses $variantClasses $roundedClasses";
@endphp
-
merge(['class' => $classes]) }} @if($styles) style="{{ $styles }}" @endif>
+merge(['class' => $classes]) }}>
{{-- Dot indicator --}}
@if($dot)
diff --git a/extensions/Servers/Proxmox/views/components/button.blade.php b/extensions/Servers/Proxmox/views/components/button.blade.php
index caa90c1a7..202c47d32 100644
--- a/extensions/Servers/Proxmox/views/components/button.blade.php
+++ b/extensions/Servers/Proxmox/views/components/button.blade.php
@@ -14,17 +14,17 @@
])
@php
- // AdminLTE button base class
- $baseClasses = 'lte-btn';
+ // LucentUI button base classes
+ $baseClasses = 'inline-flex items-center justify-center gap-2 font-semibold transition-all duration-200 cursor-pointer disabled:cursor-not-allowed disabled:opacity-50 active:scale-95';
- // Size classes - AdminLTE style
+ // Size classes
$sizeClasses = match($size) {
- 'xs' => 'lte-btn-sm',
- 'sm' => 'lte-btn-sm',
- 'md' => '',
- 'lg' => 'lte-btn-lg',
- 'xl' => 'lte-btn-lg',
- default => '',
+ 'xs' => 'px-2 py-1 text-xs',
+ 'sm' => 'px-3 py-1.5 text-sm',
+ 'md' => 'px-4 py-2 text-sm',
+ 'lg' => 'px-5 py-2.5 text-base',
+ 'xl' => 'px-6 py-3 text-base',
+ default => 'px-4 py-2 text-sm',
};
// Icon size classes
@@ -37,43 +37,66 @@
default => 'size-4',
};
- // Variant classes - AdminLTE style
+ // Variant classes - LucentUI Tailwind
$variantClasses = match($variant) {
- 'primary' => $outline ? 'lte-btn-outline-primary' : 'lte-btn-primary',
- 'secondary' => $outline ? 'lte-btn-outline-secondary' : 'lte-btn-secondary',
- 'success' => $outline ? 'lte-btn-outline-success' : 'lte-btn-success',
- 'danger' => $outline ? 'lte-btn-outline-danger' : 'lte-btn-danger',
- 'warning' => 'lte-btn-warning',
- 'info' => 'lte-btn-info',
- 'ghost' => 'lte-btn-outline-secondary',
- 'link' => 'lte-text-primary',
- 'neutral' => $outline ? 'lte-btn-outline-secondary' : 'lte-btn-secondary',
- default => $outline ? 'lte-btn-outline-primary' : 'lte-btn-primary',
+ 'primary' => $outline
+ ? 'border border-primary text-primary bg-transparent hover:bg-primary/10 focus:ring-2 focus:ring-primary/50'
+ : 'bg-primary text-white hover:bg-primary/80 focus:ring-2 focus:ring-primary/50',
+ 'secondary' => $outline
+ ? 'border border-neutral text-base/80 bg-transparent hover:bg-neutral/10 focus:ring-2 focus:ring-neutral/50'
+ : 'bg-background-secondary text-base/80 border border-neutral hover:bg-background-secondary/80 focus:ring-2 focus:ring-neutral/50',
+ 'success' => $outline
+ ? 'border border-success text-success bg-transparent hover:bg-success/10 focus:ring-2 focus:ring-success/50'
+ : 'bg-success text-white hover:bg-success/80 focus:ring-2 focus:ring-success/50',
+ 'danger' => $outline
+ ? 'border border-error text-error bg-transparent hover:bg-error/10 focus:ring-2 focus:ring-error/50'
+ : 'bg-error text-white hover:bg-error/80 focus:ring-2 focus:ring-error/50',
+ 'warning' => $outline
+ ? 'border border-warning text-warning bg-transparent hover:bg-warning/10 focus:ring-2 focus:ring-warning/50'
+ : 'bg-warning text-white hover:bg-warning/80 focus:ring-2 focus:ring-warning/50',
+ 'info' => $outline
+ ? 'border border-info text-info bg-transparent hover:bg-info/10 focus:ring-2 focus:ring-info/50'
+ : 'bg-info text-white hover:bg-info/80 focus:ring-2 focus:ring-info/50',
+ 'ghost' => 'text-base/80 bg-transparent hover:bg-neutral/10 focus:ring-2 focus:ring-neutral/50',
+ 'link' => 'text-primary bg-transparent hover:underline p-0',
+ 'neutral' => $outline
+ ? 'border border-neutral text-base/70 bg-transparent hover:bg-neutral/10 focus:ring-2 focus:ring-neutral/50'
+ : 'bg-neutral/20 text-base/80 hover:bg-neutral/30 focus:ring-2 focus:ring-neutral/50',
+ default => $outline
+ ? 'border border-primary text-primary bg-transparent hover:bg-primary/10 focus:ring-2 focus:ring-primary/50'
+ : 'bg-primary text-white hover:bg-primary/80 focus:ring-2 focus:ring-primary/50',
};
// Full width
$widthClasses = $fullWidth ? 'w-full' : '';
- // Combined classes
- $classes = trim("$baseClasses $sizeClasses $variantClasses $widthClasses");
+ // Border radius
+ $roundedClasses = match($rounded) {
+ 'none' => 'rounded-none',
+ 'sm' => 'rounded-sm',
+ 'md' => 'rounded-md',
+ 'lg' => 'rounded-lg',
+ 'xl' => 'rounded-xl',
+ 'full' => 'rounded-full',
+ default => 'rounded-lg',
+ };
- // Determine tag
- $tag = $href ? 'a' : 'button';
+ // Combined classes
+ $classes = trim("$baseClasses $sizeClasses $variantClasses $widthClasses $roundedClasses");
@endphp
@if($href)
- merge(['class' => $classes]) }} style="border-radius: 0.375rem;">
+ merge(['class' => $classes]) }}>
@else