diff --git a/resources/views/components/page-header.blade.php b/resources/views/components/page-header.blade.php
new file mode 100644
index 000000000..fb312668f
--- /dev/null
+++ b/resources/views/components/page-header.blade.php
@@ -0,0 +1,27 @@
+@props([
+ 'title',
+ 'description' => null,
+ 'icon' => null,
+])
+
+
merge(['class' => 'px-6 py-6']) }}>
+
+
+
+ @if($icon)
+
+ @endif
+ {{ $title }}
+
+ @if($description)
+
{{ $description }}
+ @endif
+
+
+ @isset($actions)
+
+ {{ $actions }}
+
+ @endisset
+
+
diff --git a/resources/views/components/panel.blade.php b/resources/views/components/panel.blade.php
new file mode 100644
index 000000000..a03a5894b
--- /dev/null
+++ b/resources/views/components/panel.blade.php
@@ -0,0 +1,23 @@
+@props([
+ 'variant' => 'default',
+ 'padding' => 'md',
+])
+
+@php
+ $surfaces = [
+ 'default' => 'surface-panel border shadow-sm',
+ 'alt' => 'surface-panel-alt border',
+ 'plain' => 'surface-panel',
+ ];
+
+ $paddings = [
+ 'none' => '',
+ 'sm' => 'p-4',
+ 'md' => 'p-6',
+ 'lg' => 'p-8',
+ ];
+@endphp
+
+merge(['class' => 'rounded-xl '.($surfaces[$variant] ?? $surfaces['default']).' '.($paddings[$padding] ?? $paddings['md'])]) }}>
+ {{ $slot }}
+