diff --git a/.gitignore b/.gitignore
index 322f96a..99b900e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,3 +25,4 @@ yarn-error.log
.DS_Store
*/.DS_Store
**/.DS_Store
+/provision/
diff --git a/Modules/Stylist/Providers/StylistServiceProvider.php b/Modules/Stylist/Providers/StylistServiceProvider.php
index 58b9f5c..84d2510 100644
--- a/Modules/Stylist/Providers/StylistServiceProvider.php
+++ b/Modules/Stylist/Providers/StylistServiceProvider.php
@@ -80,10 +80,12 @@ final class StylistServiceProvider extends ServiceProvider
private function registerViews(): void
{
$sourcePath = module_path(ModuleInfo::name(), 'Resources/views');
- $viewPath = resource_path('views/modules/'.ModuleInfo::nameLower());
- $this->publishes([$sourcePath => $viewPath], ['views', 'stylist-module-views']);
- $this->loadViewsFrom([$viewPath, $sourcePath], ModuleInfo::nameLower());
+ // Module-owned package views stay inside the module. Application overrides
+ // belong to resources/themes/{theme}/views/modules/stylist, which Stylist
+ // registers as the authoritative themed namespace. Never publish back into
+ // resources/views; the standard baseline intentionally has no legacy view tree.
+ $this->loadViewsFrom($sourcePath, ModuleInfo::nameLower());
}
private function registerThemeViews(): void
diff --git a/Modules/Stylist/Services/TenantThemeResolver.php b/Modules/Stylist/Services/TenantThemeResolver.php
index 511ecc4..8b03eb7 100644
--- a/Modules/Stylist/Services/TenantThemeResolver.php
+++ b/Modules/Stylist/Services/TenantThemeResolver.php
@@ -51,6 +51,18 @@ final class TenantThemeResolver
'admin/*',
'helpdesk',
'helpdesk/*',
+ 'login',
+ 'register',
+ 'forgot-password',
+ 'reset-password',
+ 'reset-password/*',
+ 'confirm-password',
+ 'user/confirm-password',
+ 'two-factor-challenge',
+ 'verify-email',
+ 'verify-email/*',
+ 'email/verify',
+ 'email/verify/*',
) || $request->routeIs(
'dashboard',
'profile.edit',
@@ -58,6 +70,11 @@ final class TenantThemeResolver
'security.edit',
'admin.*',
'helpdesk.*',
+ 'login',
+ 'register',
+ 'password.*',
+ 'verification.*',
+ 'two-factor.*',
)
? 'backend'
: 'frontend';
diff --git a/Modules/Stylist/Tests/Feature/TenantThemeResolverTest.php b/Modules/Stylist/Tests/Feature/TenantThemeResolverTest.php
index c10817a..8026255 100644
--- a/Modules/Stylist/Tests/Feature/TenantThemeResolverTest.php
+++ b/Modules/Stylist/Tests/Feature/TenantThemeResolverTest.php
@@ -39,4 +39,14 @@ final class TenantThemeResolverTest extends TestCase
$this->assertSame('backend', app(TenantThemeResolver::class)->context());
}
+ public function test_authentication_requests_use_backend_context(): void
+ {
+ foreach (['/login', '/register', '/forgot-password', '/reset-password/token', '/user/confirm-password', '/two-factor-challenge', '/email/verify'] as $uri) {
+ $request = Request::create($uri, 'GET');
+ $this->app->instance('request', $request);
+
+ $this->assertSame('backend', app(TenantThemeResolver::class)->context(), $uri);
+ }
+ }
+
}
diff --git a/Modules/Stylist/Tests/Feature/ThemeManifestTest.php b/Modules/Stylist/Tests/Feature/ThemeManifestTest.php
index 11d681e..7bde34a 100644
--- a/Modules/Stylist/Tests/Feature/ThemeManifestTest.php
+++ b/Modules/Stylist/Tests/Feature/ThemeManifestTest.php
@@ -27,6 +27,15 @@ final class ThemeManifestTest extends TestCase
parent::tearDown();
}
+ public function test_bundled_default_themes_have_valid_manifests(): void
+ {
+ foreach (['backend', 'frontend'] as $key) {
+ $theme = app(Loader::class)->fromPath(resource_path("themes/{$key}"));
+
+ $this->assertSame($key, $theme->key());
+ }
+ }
+
public function test_manifest_is_normalised(): void
{
$path = $this->themesPath.'/sample';
diff --git a/Modules/Stylist/Tests/Feature/WelcomeThemeViewTest.php b/Modules/Stylist/Tests/Feature/WelcomeThemeViewTest.php
index ba59075..d7ef3d1 100644
--- a/Modules/Stylist/Tests/Feature/WelcomeThemeViewTest.php
+++ b/Modules/Stylist/Tests/Feature/WelcomeThemeViewTest.php
@@ -29,4 +29,17 @@ final class WelcomeThemeViewTest extends TestCase
view('welcome')->getPath(),
);
}
+ public function test_application_views_exist_only_inside_themes(): void
+ {
+ $this->assertDirectoryDoesNotExist(resource_path('views'));
+ $this->assertDirectoryDoesNotExist(resource_path('css'));
+ $this->assertDirectoryDoesNotExist(resource_path('js'));
+ }
+
+ public function test_backend_compiled_assets_are_owned_by_the_backend_theme(): void
+ {
+ $this->assertFileExists(resource_path('themes/backend/assets/css/app.css'));
+ $this->assertFileExists(resource_path('themes/backend/assets/js/passkeys.js'));
+ }
+
}
diff --git a/THEMING-STANDARD.md b/THEMING-STANDARD.md
deleted file mode 100644
index 514ac05..0000000
--- a/THEMING-STANDARD.md
+++ /dev/null
@@ -1,41 +0,0 @@
-# Standard Stylist Theme Baseline
-
-Stylist is enabled by default in this project and is the presentation layer for all application Blade views.
-
-## Default themes
-
-- `resources/themes/frontend` — public-facing pages. The standard `/` route resolves `welcome.blade.php` from this theme.
-- `resources/themes/backend` — authenticated application, dashboard, authentication/settings UI, layouts, shared components, and Flux view overrides.
-
-The defaults are controlled by:
-
-```dotenv
-STYLIST_DEFAULT_THEME=backend
-STYLIST_BACKEND_THEME=backend
-STYLIST_FRONTEND_THEME=frontend
-```
-
-`modules_statuses.json` enables the `Stylist` module on a standard installation.
-
-## View ownership rule
-
-Do not add application Blade templates back to `resources/views`. Keep public views in the frontend theme and application/admin views in the backend theme. Module-specific theme overrides belong beneath the appropriate theme's `views/modules/{module}` tree.
-
-The root `resources/views` directory is retained only as an empty Laravel fallback location.
-
-## Assets
-
-Global compiled assets remain under `resources/css` and `resources/js`. Theme-only overrides belong under each theme's `css` and `js` directories. Tailwind scans `resources/themes/**/*.blade.php`, so classes used only inside theme views remain present in production builds.
-
-## Validation
-
-After dependencies are installed, use:
-
-```bash
-php artisan module:list
-php artisan stylist:validate frontend
-php artisan stylist:validate backend
-php artisan stylist:doctor
-php artisan test
-npm run build
-```
diff --git a/resources/js/app.js b/provision/.gitignore
similarity index 100%
rename from resources/js/app.js
rename to provision/.gitignore
diff --git a/AGENTS.md b/provision/AGENTS.md
similarity index 100%
rename from AGENTS.md
rename to provision/AGENTS.md
diff --git a/readme.md b/readme.md
new file mode 100644
index 0000000..f7ef683
--- /dev/null
+++ b/readme.md
@@ -0,0 +1,2 @@
+### Standard Laravel 13 Install for Developpment
+
diff --git a/resources/css/app.css b/resources/themes/backend/assets/css/app.css
similarity index 80%
rename from resources/css/app.css
rename to resources/themes/backend/assets/css/app.css
index 9c1e1c5..df58402 100644
--- a/resources/css/app.css
+++ b/resources/themes/backend/assets/css/app.css
@@ -1,11 +1,11 @@
@import 'tailwindcss';
-@import '../../vendor/livewire/flux/dist/flux.css';
+@import '../../../../../vendor/livewire/flux/dist/flux.css';
-@source '../views';
-@source '../themes/**/*.blade.php';
-@source '../../vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php';
-@source '../../vendor/livewire/flux-pro/stubs/**/*.blade.php';
-@source '../../vendor/livewire/flux/stubs/**/*.blade.php';
+@source '../../views';
+@source '../../../**/*.blade.php';
+@source '../../../../../vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php';
+@source '../../../../../vendor/livewire/flux-pro/stubs/**/*.blade.php';
+@source '../../../../../vendor/livewire/flux/stubs/**/*.blade.php';
@custom-variant dark (&:where(.dark, .dark *));
diff --git a/resources/js/passkeys.js b/resources/themes/backend/assets/js/passkeys.js
similarity index 100%
rename from resources/js/passkeys.js
rename to resources/themes/backend/assets/js/passkeys.js
diff --git a/resources/themes/backend/css/theme.css b/resources/themes/backend/css/theme.css
deleted file mode 100644
index 863c4b2..0000000
--- a/resources/themes/backend/css/theme.css
+++ /dev/null
@@ -1 +0,0 @@
-/* Backend theme-specific overrides belong here. Core application styles remain Vite-managed. */
diff --git a/resources/themes/backend/js/app.js b/resources/themes/backend/js/app.js
deleted file mode 100644
index 7a8c8a2..0000000
--- a/resources/themes/backend/js/app.js
+++ /dev/null
@@ -1 +0,0 @@
-// Backend theme-specific behaviour belongs here.
diff --git a/resources/themes/backend/theme.json b/resources/themes/backend/theme.json
index c480134..9e115c5 100644
--- a/resources/themes/backend/theme.json
+++ b/resources/themes/backend/theme.json
@@ -7,8 +7,6 @@
"description": "Default authenticated application and administration theme.",
"type": "backend",
"entry_view": "dashboard",
- "stylesheet": "css/theme.css",
- "script": "js/app.js",
"views": true,
"variables": {},
"settings": []
diff --git a/resources/themes/backend/views/components/passkey-registration.blade.php b/resources/themes/backend/views/components/passkey-registration.blade.php
index 2aaa144..0d14493 100644
--- a/resources/themes/backend/views/components/passkey-registration.blade.php
+++ b/resources/themes/backend/views/components/passkey-registration.blade.php
@@ -1,5 +1,5 @@
@assets
-@vite('resources/js/passkeys.js')
+@vite('resources/themes/backend/assets/js/passkeys.js')
@endassets
-
-
diff --git a/resources/views/components/app-logo.blade.php b/resources/views/components/app-logo.blade.php
deleted file mode 100644
index 31c2688..0000000
--- a/resources/views/components/app-logo.blade.php
+++ /dev/null
@@ -1,17 +0,0 @@
-@props([
- 'sidebar' => false,
-])
-
-@if($sidebar)
-
-
-
-
-
-@else
-
-
-
-
-
-@endif
diff --git a/resources/views/components/auth-header.blade.php b/resources/views/components/auth-header.blade.php
deleted file mode 100644
index e596a3f..0000000
--- a/resources/views/components/auth-header.blade.php
+++ /dev/null
@@ -1,9 +0,0 @@
-@props([
- 'title',
- 'description',
-])
-
-
- {{ $title }}
- {{ $description }}
-
diff --git a/resources/views/components/auth-session-status.blade.php b/resources/views/components/auth-session-status.blade.php
deleted file mode 100644
index 98e0011..0000000
--- a/resources/views/components/auth-session-status.blade.php
+++ /dev/null
@@ -1,9 +0,0 @@
-@props([
- 'status',
-])
-
-@if ($status)
-
merge(['class' => 'font-medium text-sm text-green-600']) }}>
- {{ $status }}
-
-@endif
diff --git a/resources/views/components/desktop-user-menu.blade.php b/resources/views/components/desktop-user-menu.blade.php
deleted file mode 100644
index 7fb3706..0000000
--- a/resources/views/components/desktop-user-menu.blade.php
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
-
-
-
- {{ auth()->user()->name }}
- {{ auth()->user()->email }}
-
-
-
-
-
- {{ __('Settings') }}
-
-
-
-
-
diff --git a/resources/views/components/passkey-registration.blade.php b/resources/views/components/passkey-registration.blade.php
deleted file mode 100644
index 2aaa144..0000000
--- a/resources/views/components/passkey-registration.blade.php
+++ /dev/null
@@ -1,116 +0,0 @@
-@assets
-@vite('resources/js/passkeys.js')
-@endassets
-
-
-
- {{ __('Passkeys are not supported in this browser.') }}
-
-
-
-
-
- {{ __('Add passkey') }}
-
-
-
-
-
-
-
-
{{ __('Give this passkey a name to help you identify it later.') }}
-
-
-
-
-
- {{ __('Register passkey') }}
- {{ __('Registering...') }}
-
-
- {{ __('Cancel') }}
-
-
-
-
-
diff --git a/resources/views/components/passkey-verify.blade.php b/resources/views/components/passkey-verify.blade.php
deleted file mode 100644
index 47dd9a8..0000000
--- a/resources/views/components/passkey-verify.blade.php
+++ /dev/null
@@ -1,76 +0,0 @@
-@props([
- 'optionsRoute' => 'passkey.login-options',
- 'submitRoute' => 'passkey.login',
- 'label' => __('Sign in with a passkey'),
- 'loadingLabel' => __('Authenticating...'),
- 'separator' => __('Or continue with email'),
-])
-
-@assets
-@vite('resources/js/passkeys.js')
-@endassets
-
-
-
-
-
-
- {{ $label }}
- {{ $loadingLabel }}
-
-
-
-
-
-
-
-
- {{ $separator }}
-
-
-
-
-
-
diff --git a/resources/views/components/placeholder-pattern.blade.php b/resources/views/components/placeholder-pattern.blade.php
deleted file mode 100644
index 8a434f0..0000000
--- a/resources/views/components/placeholder-pattern.blade.php
+++ /dev/null
@@ -1,12 +0,0 @@
-@props([
- 'id' => uniqid(),
-])
-
-
-
-
-
-
-
-
-
diff --git a/resources/views/components/settings/layout.blade.php b/resources/views/components/settings/layout.blade.php
deleted file mode 100644
index 3a65247..0000000
--- a/resources/views/components/settings/layout.blade.php
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
- {{ __('Profile') }}
- {{ __('Security') }}
- {{ __('Appearance') }}
-
-
-
-
-
-
-
{{ $heading ?? '' }}
-
{{ $subheading ?? '' }}
-
-
- {{ $slot }}
-
-
-
diff --git a/resources/views/dashboard.blade.php b/resources/views/dashboard.blade.php
deleted file mode 100644
index 8f08c05..0000000
--- a/resources/views/dashboard.blade.php
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
diff --git a/resources/views/flux/icon/book-open-text.blade.php b/resources/views/flux/icon/book-open-text.blade.php
deleted file mode 100644
index bff20a3..0000000
--- a/resources/views/flux/icon/book-open-text.blade.php
+++ /dev/null
@@ -1,47 +0,0 @@
-{{-- Credit: Lucide (https://lucide.dev) --}}
-
-@props([
- 'variant' => 'outline',
-])
-
-@php
- if ($variant === 'solid') {
- throw new \Exception('The "solid" variant is not supported in Lucide.');
- }
-
- $classes = Flux::classes('shrink-0')->add(
- match ($variant) {
- 'outline' => '[:where(&)]:size-6',
- 'solid' => '[:where(&)]:size-6',
- 'mini' => '[:where(&)]:size-5',
- 'micro' => '[:where(&)]:size-4',
- },
- );
-
- $strokeWidth = match ($variant) {
- 'outline' => 2,
- 'mini' => 2.25,
- 'micro' => 2.5,
- };
-@endphp
-
-
class($classes) }}
- data-flux-icon
- xmlns="http://www.w3.org/2000/svg"
- viewBox="0 0 24 24"
- fill="none"
- stroke="currentColor"
- stroke-width="{{ $strokeWidth }}"
- stroke-linecap="round"
- stroke-linejoin="round"
- aria-hidden="true"
- data-slot="icon"
->
-
-
-
-
-
-
-
diff --git a/resources/views/flux/icon/chevrons-up-down.blade.php b/resources/views/flux/icon/chevrons-up-down.blade.php
deleted file mode 100644
index bf1ba2b..0000000
--- a/resources/views/flux/icon/chevrons-up-down.blade.php
+++ /dev/null
@@ -1,43 +0,0 @@
-{{-- Credit: Lucide (https://lucide.dev) --}}
-
-@props([
- 'variant' => 'outline',
-])
-
-@php
- if ($variant === 'solid') {
- throw new \Exception('The "solid" variant is not supported in Lucide.');
- }
-
- $classes = Flux::classes('shrink-0')->add(
- match ($variant) {
- 'outline' => '[:where(&)]:size-6',
- 'solid' => '[:where(&)]:size-6',
- 'mini' => '[:where(&)]:size-5',
- 'micro' => '[:where(&)]:size-4',
- },
- );
-
- $strokeWidth = match ($variant) {
- 'outline' => 2,
- 'mini' => 2.25,
- 'micro' => 2.5,
- };
-@endphp
-
-
class($classes) }}
- data-flux-icon
- xmlns="http://www.w3.org/2000/svg"
- viewBox="0 0 24 24"
- fill="none"
- stroke="currentColor"
- stroke-width="{{ $strokeWidth }}"
- stroke-linecap="round"
- stroke-linejoin="round"
- aria-hidden="true"
- data-slot="icon"
->
-
-
-
diff --git a/resources/views/flux/icon/folder-git-2.blade.php b/resources/views/flux/icon/folder-git-2.blade.php
deleted file mode 100644
index 292171b..0000000
--- a/resources/views/flux/icon/folder-git-2.blade.php
+++ /dev/null
@@ -1,45 +0,0 @@
-{{-- Credit: Lucide (https://lucide.dev) --}}
-
-@props([
- 'variant' => 'outline',
-])
-
-@php
- if ($variant === 'solid') {
- throw new \Exception('The "solid" variant is not supported in Lucide.');
- }
-
- $classes = Flux::classes('shrink-0')->add(
- match ($variant) {
- 'outline' => '[:where(&)]:size-6',
- 'solid' => '[:where(&)]:size-6',
- 'mini' => '[:where(&)]:size-5',
- 'micro' => '[:where(&)]:size-4',
- },
- );
-
- $strokeWidth = match ($variant) {
- 'outline' => 2,
- 'mini' => 2.25,
- 'micro' => 2.5,
- };
-@endphp
-
-
class($classes) }}
- data-flux-icon
- xmlns="http://www.w3.org/2000/svg"
- viewBox="0 0 24 24"
- fill="none"
- stroke="currentColor"
- stroke-width="{{ $strokeWidth }}"
- stroke-linecap="round"
- stroke-linejoin="round"
- aria-hidden="true"
- data-slot="icon"
->
-
-
-
-
-
diff --git a/resources/views/flux/icon/layout-grid.blade.php b/resources/views/flux/icon/layout-grid.blade.php
deleted file mode 100644
index 88c5698..0000000
--- a/resources/views/flux/icon/layout-grid.blade.php
+++ /dev/null
@@ -1,45 +0,0 @@
-{{-- Credit: Lucide (https://lucide.dev) --}}
-
-@props([
- 'variant' => 'outline',
-])
-
-@php
- if ($variant === 'solid') {
- throw new \Exception('The "solid" variant is not supported in Lucide.');
- }
-
- $classes = Flux::classes('shrink-0')->add(
- match ($variant) {
- 'outline' => '[:where(&)]:size-6',
- 'solid' => '[:where(&)]:size-6',
- 'mini' => '[:where(&)]:size-5',
- 'micro' => '[:where(&)]:size-4',
- },
- );
-
- $strokeWidth = match ($variant) {
- 'outline' => 2,
- 'mini' => 2.25,
- 'micro' => 2.5,
- };
-@endphp
-
-
class($classes) }}
- data-flux-icon
- xmlns="http://www.w3.org/2000/svg"
- viewBox="0 0 24 24"
- fill="none"
- stroke="currentColor"
- stroke-width="{{ $strokeWidth }}"
- stroke-linecap="round"
- stroke-linejoin="round"
- aria-hidden="true"
- data-slot="icon"
->
-
-
-
-
-
diff --git a/resources/views/flux/navlist/group.blade.php b/resources/views/flux/navlist/group.blade.php
deleted file mode 100644
index 5e691a2..0000000
--- a/resources/views/flux/navlist/group.blade.php
+++ /dev/null
@@ -1,51 +0,0 @@
-@props([
- 'expandable' => false,
- 'expanded' => true,
- 'heading' => null,
-])
-
-
-
-
class('group/disclosure') }}
- @if ($expanded === true) open @endif
- data-flux-navlist-group
->
-
-
-
-
-
-
- {{ $heading }}
-
-
-
-
-
-
-
-
class('block space-y-[2px]') }}>
-
-
-
- {{ $slot }}
-
-
-
-
-
-
class('block space-y-[2px]') }}>
- {{ $slot }}
-
-
-
diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php
deleted file mode 100644
index 037dd1b..0000000
--- a/resources/views/layouts/app.blade.php
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- {{ $slot }}
-
-
diff --git a/resources/views/layouts/app/header.blade.php b/resources/views/layouts/app/header.blade.php
deleted file mode 100644
index 989b8e4..0000000
--- a/resources/views/layouts/app/header.blade.php
+++ /dev/null
@@ -1,84 +0,0 @@
-
-
-
- @include('partials.head')
-
-
-
-
-
-
-
-
-
- {{ __('Dashboard') }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ __('Dashboard') }}
-
-
-
-
-
-
-
-
- {{ __('Repository') }}
-
-
- {{ __('Documentation') }}
-
-
-
-
- {{ $slot }}
-
- @persist('toast')
-
-
-
- @endpersist
-
- @fluxScripts
-
-
diff --git a/resources/views/layouts/app/sidebar.blade.php b/resources/views/layouts/app/sidebar.blade.php
deleted file mode 100644
index 6db2170..0000000
--- a/resources/views/layouts/app/sidebar.blade.php
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- @include('partials.head')
-
-
-
-
-
-
-
-
-
-
-
- {{ __('Dashboard') }}
-
-
-
-
-
-
-
-
- {{ __('Repository') }}
-
-
-
- {{ __('Documentation') }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ auth()->user()->name }}
- {{ auth()->user()->email }}
-
-
-
-
-
-
-
-
-
- {{ __('Settings') }}
-
-
-
-
-
-
-
-
-
-
- {{ $slot }}
-
- @persist('toast')
-
-
-
- @endpersist
-
- @fluxScripts
-
-
diff --git a/resources/views/layouts/auth.blade.php b/resources/views/layouts/auth.blade.php
deleted file mode 100644
index 7150091..0000000
--- a/resources/views/layouts/auth.blade.php
+++ /dev/null
@@ -1,3 +0,0 @@
-
- {{ $slot }}
-
diff --git a/resources/views/layouts/auth/card.blade.php b/resources/views/layouts/auth/card.blade.php
deleted file mode 100644
index c5cf75a..0000000
--- a/resources/views/layouts/auth/card.blade.php
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
- @include('partials.head')
-
-
-
-
- @persist('toast')
-
-
-
- @endpersist
-
- @fluxScripts
-
-
diff --git a/resources/views/layouts/auth/simple.blade.php b/resources/views/layouts/auth/simple.blade.php
deleted file mode 100644
index 0a6f894..0000000
--- a/resources/views/layouts/auth/simple.blade.php
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
- @include('partials.head')
-
-
-
-
- @persist('toast')
-
-
-
- @endpersist
-
- @fluxScripts
-
-
diff --git a/resources/views/layouts/auth/split.blade.php b/resources/views/layouts/auth/split.blade.php
deleted file mode 100644
index a25d1d6..0000000
--- a/resources/views/layouts/auth/split.blade.php
+++ /dev/null
@@ -1,50 +0,0 @@
-
-
-
- @include('partials.head')
-
-
-
-
- @persist('toast')
-
-
-
- @endpersist
-
- @fluxScripts
-
-
diff --git a/resources/views/livewire/auth/confirm-password.blade.php b/resources/views/livewire/auth/confirm-password.blade.php
deleted file mode 100644
index dc8748a..0000000
--- a/resources/views/livewire/auth/confirm-password.blade.php
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/resources/views/livewire/auth/forgot-password.blade.php b/resources/views/livewire/auth/forgot-password.blade.php
deleted file mode 100644
index 5f1cdad..0000000
--- a/resources/views/livewire/auth/forgot-password.blade.php
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- {{ __('Or, return to') }}
- {{ __('log in') }}
-
-
-
diff --git a/resources/views/livewire/auth/login.blade.php b/resources/views/livewire/auth/login.blade.php
deleted file mode 100644
index 9cb91a6..0000000
--- a/resources/views/livewire/auth/login.blade.php
+++ /dev/null
@@ -1,59 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- {{ __('Don\'t have an account?') }}
- {{ __('Sign up') }}
-
-
-
diff --git a/resources/views/livewire/auth/register.blade.php b/resources/views/livewire/auth/register.blade.php
deleted file mode 100644
index 30ddb89..0000000
--- a/resources/views/livewire/auth/register.blade.php
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- {{ __('Already have an account?') }}
- {{ __('Log in') }}
-
-
-
diff --git a/resources/views/livewire/auth/reset-password.blade.php b/resources/views/livewire/auth/reset-password.blade.php
deleted file mode 100644
index 86001bd..0000000
--- a/resources/views/livewire/auth/reset-password.blade.php
+++ /dev/null
@@ -1,54 +0,0 @@
-
-
-
diff --git a/resources/views/livewire/auth/two-factor-challenge.blade.php b/resources/views/livewire/auth/two-factor-challenge.blade.php
deleted file mode 100644
index febe7d5..0000000
--- a/resources/views/livewire/auth/two-factor-challenge.blade.php
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
diff --git a/resources/views/livewire/auth/verify-email.blade.php b/resources/views/livewire/auth/verify-email.blade.php
deleted file mode 100644
index 50e7b44..0000000
--- a/resources/views/livewire/auth/verify-email.blade.php
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
- {{ __('Please verify your email address by clicking on the link we just emailed to you.') }}
-
-
- @if (session('status') == 'verification-link-sent')
-
- {{ __('A new verification link has been sent to the email address you provided during registration.') }}
-
- @endif
-
-
-
-
-
-
-
-
diff --git a/resources/views/livewire/settings/appearance.blade.php b/resources/views/livewire/settings/appearance.blade.php
deleted file mode 100644
index 86c7ec7..0000000
--- a/resources/views/livewire/settings/appearance.blade.php
+++ /dev/null
@@ -1,13 +0,0 @@
-
- @include('partials.settings-heading')
-
- {{ __('Appearance settings') }}
-
-
-
- {{ __('Light') }}
- {{ __('Dark') }}
- {{ __('System') }}
-
-
-
diff --git a/resources/views/livewire/settings/delete-user-form.blade.php b/resources/views/livewire/settings/delete-user-form.blade.php
deleted file mode 100644
index a641407..0000000
--- a/resources/views/livewire/settings/delete-user-form.blade.php
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
- {{ __('Delete account') }}
- {{ __('Delete your account and all of its resources') }}
-
-
-
-
- {{ __('Delete account') }}
-
-
-
-
-
-
-
diff --git a/resources/views/livewire/settings/profile.blade.php b/resources/views/livewire/settings/profile.blade.php
deleted file mode 100644
index 6e9da81..0000000
--- a/resources/views/livewire/settings/profile.blade.php
+++ /dev/null
@@ -1,36 +0,0 @@
-
- @include('partials.settings-heading')
-
- {{ __('Profile settings') }}
-
-
-
-
- @if ($this->showDeleteUser)
-
- @endif
-
-
diff --git a/resources/views/livewire/settings/security.blade.php b/resources/views/livewire/settings/security.blade.php
deleted file mode 100644
index 7144625..0000000
--- a/resources/views/livewire/settings/security.blade.php
+++ /dev/null
@@ -1,327 +0,0 @@
-
- @include('partials.settings-heading')
-
- {{ __('Security settings') }}
-
-
-
-
- @if ($canManageTwoFactor)
-
- {{ __('Two-factor authentication') }}
- {{ __('Manage your two-factor authentication settings') }}
-
-
- @if ($twoFactorEnabled)
-
-
- {{ __('You will be prompted for a secure, random pin during login, which you can retrieve from the TOTP-supported application on your phone.') }}
-
-
-
-
- {{ __('Disable 2FA') }}
-
-
-
-
-
- @else
-
-
- {{ __('When you enable two-factor authentication, you will be prompted for a secure pin during login. This pin can be retrieved from a TOTP-supported application on your phone.') }}
-
-
-
- {{ __('Enable 2FA') }}
-
-
- @endif
-
-
- @endif
-
- @if ($canManageTwoFactor)
-
-
-
-
-
-
- @for ($i = 1; $i <= 5; $i++)
-
- @endfor
-
-
-
- @for ($i = 1; $i <= 5; $i++)
-
- @endfor
-
-
-
-
-
-
-
- {{ $this->modalConfig['title'] }}
- {{ $this->modalConfig['description'] }}
-
-
-
- @if ($showVerificationStep)
-
-
-
-
-
-
-
- {{ __('Back') }}
-
-
-
- {{ __('Confirm') }}
-
-
-
- @else
- @error('setupData')
-
- @enderror
-
-
-
- @empty($qrCodeSvg)
-
-
-
- @else
-
-
- {!! $qrCodeSvg !!}
-
-
- @endempty
-
-
-
-
-
- {{ $this->modalConfig['buttonText'] }}
-
-
-
-
-
-
-
- {{ __('or, enter the code manually') }}
-
-
-
-
-
- @empty($manualSetupKey)
-
-
-
- @else
-
-
-
-
-
-
- @endempty
-
-
-
- @endif
-
-
- @endif
-
- @if ($canManagePasskeys)
-
- {{ __('Passkeys') }}
- {{ __('Manage your passkeys for passwordless sign-in') }}
-
-
-
- @forelse ($passkeys as $passkey)
-
-
-
-
-
-
-
-
{{ $passkey['name'] }}
- @if ($passkey['authenticator'])
-
{{ $passkey['authenticator'] }}
- @endif
-
-
- {{ __('Added :time', ['time' => $passkey['created_at_diff']]) }}
- @if ($passkey['last_used_at_diff'])
- /
- {{ __('Last used :time', ['time' => $passkey['last_used_at_diff']]) }}
- @endif
-
-
-
-
-
-
- @empty
-
-
-
-
-
{{ __('No passkeys yet') }}
-
{{ __('Add a passkey to sign in without a password') }}
-
- @endforelse
-
-
-
-
-
- @endif
-
-
-
-
-
- {{ __('Remove passkey') }}
-
- {{ __('Are you sure you want to remove the passkey ":name"? You will no longer be able to use it to sign in.', ['name' => $deletingPasskeyName]) }}
-
-
-
-
-
- {{ __('Cancel') }}
-
-
- {{ __('Remove passkey') }}
-
-
-
-
-
diff --git a/resources/views/livewire/settings/two-factor/recovery-codes.blade.php b/resources/views/livewire/settings/two-factor/recovery-codes.blade.php
deleted file mode 100644
index 9ed2674..0000000
--- a/resources/views/livewire/settings/two-factor/recovery-codes.blade.php
+++ /dev/null
@@ -1,89 +0,0 @@
-
-
-
-
- {{ __('2FA recovery codes') }}
-
-
- {{ __('Recovery codes let you regain access if you lose your 2FA device. Store them in a secure password manager.') }}
-
-
-
-
-
-
- {{ __('View recovery codes') }}
-
-
-
- {{ __('Hide recovery codes') }}
-
-
- @if (filled($recoveryCodes))
-
- {{ __('Regenerate codes') }}
-
- @endif
-
-
-
-
- @error('recoveryCodes')
-
- @enderror
-
- @if (filled($recoveryCodes))
-
- @foreach($recoveryCodes as $code)
-
- {{ $code }}
-
- @endforeach
-
-
- {{ __('Each recovery code can be used once to access your account and will be removed after use. If you need more, click Regenerate codes above.') }}
-
- @endif
-
-
-
-
diff --git a/resources/views/partials/head.blade.php b/resources/views/partials/head.blade.php
deleted file mode 100644
index 8e9a491..0000000
--- a/resources/views/partials/head.blade.php
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
- {{ filled($title ?? null) ? $title.' - '.config('app.name', 'Laravel') : config('app.name', 'Laravel') }}
-
-
-
-
-
-
-@fonts
-
-@vite(['resources/css/app.css', 'resources/js/app.js'])
-@fluxAppearance
diff --git a/resources/views/partials/settings-heading.blade.php b/resources/views/partials/settings-heading.blade.php
deleted file mode 100644
index 925ace9..0000000
--- a/resources/views/partials/settings-heading.blade.php
+++ /dev/null
@@ -1,5 +0,0 @@
-
- {{ __('Settings') }}
- {{ __('Manage your profile and account settings') }}
-
-
diff --git a/resources/views/welcome.blade.php b/resources/views/welcome.blade.php
deleted file mode 100644
index 13545d0..0000000
--- a/resources/views/welcome.blade.php
+++ /dev/null
@@ -1,202 +0,0 @@
-
-
-
-
-
-
-
{{ __('Welcome') }} - {{ config('app.name', 'Laravel') }}
-
-
-
-
-
- @fonts
-
-
-
-
-
-
- @if (Route::has('login'))
-
- @auth
-
- Dashboard
-
- @else
-
- Log in
-
-
- @if (Route::has('register'))
-
- Register
-
- @endif
- @endauth
-
- @endif
-
-
-
-
-
Let's get started
-
Laravel has an incredibly rich ecosystem. We suggest starting with the following.
-
-
-
-
- {{-- Laravel Logo --}}
-
-
-
-
-
-
-
-
-
-
- {{-- 13 --}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- @if (Route::has('login'))
-
- @endif
-
-
diff --git a/scripts/ensure-directories.php b/scripts/ensure-directories.php
new file mode 100755
index 0000000..bdc4984
--- /dev/null
+++ b/scripts/ensure-directories.php
@@ -0,0 +1,23 @@
+