This commit is contained in:
punkfairie 2025-02-23 11:52:18 -08:00
parent fbc8bf9de4
commit 7971abee3d
Signed by: punkfairie
GPG key ID: B3C5488E9A1A7CA6
17 changed files with 251 additions and 239 deletions

View file

@ -73,6 +73,10 @@ @layer components {
cursor: pointer;
}
.window:not(:last-child) {
margin-bottom: 1rem;
}
.window hr {
height: 1px;
border-top: 1px solid var(--button-shadow);

View file

@ -1,7 +1,7 @@
<x-layout>
<x-slot:title>Admin</x-slot>
<x-layout title="Admin">
<x-window>
<p>You're logged in!</p>
<p>You're logged in!</p>
<a href="{{ route('categories.index') }}">Categories</a>
<a href="{{ route('categories.index') }}">Categories</a>
</x-window>
</x-layout>

View file

@ -1,7 +1,5 @@
<x-layout>
<x-slot:title>Confirm Password</x-slot>
<x-window title="Confirm Password">
<x-layout title="Confirm Password">
<x-window>
<div>
This is a secure area of the application. Please confirm your password
before continuing.

View file

@ -1,31 +1,31 @@
<x-guest-layout>
<x-slot:title>Forgot Password</x-slot>
<div>
Forgot your password? No problem. Just let us know your email address and we
will email you a password reset link that will allow you to choose a new
one.
</div>
<!-- Session Status -->
<x-auth-session-status :status="session('status')" />
<form method="POST" action="{{ route('password.email') }}">
@csrf
<div class="field-row">
<label for="email">Email</label>
<input
id="email"
type="email"
name="email"
value="{{ old('email') }}"
required
autofocus
/>
<x-input-error :messages="$errors->get('email')" />
<x-layout title="Forgot Password">
<x-window>
<div>
Forgot your password? No problem. Just let us know your email address and
we will email you a password reset link that will allow you to choose a
new one.
</div>
<button type="submit">Email Password Reset Link</button>
</form>
</x-guest-layout>
<!-- Session Status -->
<x-auth-session-status :status="session('status')" />
<form method="POST" action="{{ route('password.email') }}">
@csrf
<div class="field-row">
<label for="email">Email</label>
<input
id="email"
type="email"
name="email"
value="{{ old('email') }}"
required
autofocus
/>
<x-input-error :messages="$errors->get('email')" />
</div>
<button type="submit">Email Password Reset Link</button>
</form>
</x-window>
</x-layout>

View file

@ -1,7 +1,5 @@
<x-layout>
<x-slot:title>Login</x-slot>
<x-window title="Login">
<x-layout title="Login">
<x-window>
<!-- Session Status -->
<x-auth-session-status :status="session('status')" />

View file

@ -1,72 +1,72 @@
<x-guest-layout>
<x-slot:title>Register</x-slot>
<x-layout title="Register">
<x-window>
<form method="POST" action="{{ route('register') }}">
@csrf
<form method="POST" action="{{ route('register') }}">
@csrf
<!-- Name -->
<div class="field-row">
<label for="name">Name</label>
<input
id="name"
type="text"
name="name"
value="{{ old('name') }}"
required
autofocus
autocomplete="name"
/>
<x-input-error :messages="$errors->get('name')" />
</div>
<!-- Name -->
<div class="field-row">
<label for="name">Name</label>
<input
id="name"
type="text"
name="name"
value="{{ old('name') }}"
required
autofocus
autocomplete="name"
/>
<x-input-error :messages="$errors->get('name')" />
</div>
<!-- Email Address -->
<div class="field-row">
<label for="email">Email</label>
<input
id="email"
type="email"
name="email"
value="{{ old('email') }}"
required
autocomplete="username"
/>
<x-input-error :messages="$errors->get('email')" />
</div>
<!-- Email Address -->
<div class="field-row">
<label for="email">Email</label>
<input
id="email"
type="email"
name="email"
value="{{ old('email') }}"
required
autocomplete="username"
/>
<x-input-error :messages="$errors->get('email')" />
</div>
<!-- Password -->
<div class="field-row">
<label for="password">Password</label>
<!-- Password -->
<div class="field-row">
<label for="password">Password</label>
<input
id="password"
type="password"
name="password"
required
autocomplete="new-password"
/>
<input
id="password"
type="password"
name="password"
required
autocomplete="new-password"
/>
<x-input-error :messages="$errors->get('password')" />
</div>
<x-input-error :messages="$errors->get('password')" />
</div>
<!-- Confirm Password -->
<div class="field-row">
<label for="password_confirmation">Confirm Password</label>
<!-- Confirm Password -->
<div class="field-row">
<label for="password_confirmation">Confirm Password</label>
<input
id="password_confirmation"
type="password"
name="password_confirmation"
required
autocomplete="new-password"
/>
<input
id="password_confirmation"
type="password"
name="password_confirmation"
required
autocomplete="new-password"
/>
<x-input-error :messages="$errors->get('password_confirmation')" />
</div>
<x-input-error :messages="$errors->get('password_confirmation')" />
</div>
<div>
<a href="{{ route('login') }}">Already registered?</a>
<div>
<a href="{{ route('login') }}">Already registered?</a>
<button type="submit">Register</button>
</div>
</form>
</x-guest-layout>
<button type="submit">Register</button>
</div>
</form>
</x-window>
</x-layout>

View file

@ -1,55 +1,59 @@
<x-guest-layout>
<x-slot:title>Reset Password</x-slot>
<x-layout title="Reset Password">
<x-window>
<form method="POST" action="{{ route('password.store') }}">
@csrf
<form method="POST" action="{{ route('password.store') }}">
@csrf
<!-- Password Reset Token -->
<input type="hidden" name="token" value="{{ $request->route('token') }}" />
<!-- Email Address -->
<div class="field-row">
<label for="email">Email</label>
<!-- Password Reset Token -->
<input
id="email"
type="email"
name="email"
value="{{ old('email', $request->email) }}"
required
autofocus
autocomplete="username"
/>
<x-input-error :messages="$errors->get('email')" />
</div>
<!-- Password -->
<div class="field-row">
<label for="password">Password</label>
<input
id="password"
type="password"
name="password"
required
autocomplete="new-password"
/>
<x-input-error :messages="$errors->get('password')" />
</div>
<!-- Confirm Password -->
<div class="field-row">
<label for="password_confirmation">Confirm Password</label>
<input
id="password_confirmation"
type="password"
name="password_confirmation"
required
autocomplete="new-password"
type="hidden"
name="token"
value="{{ $request->route('token') }}"
/>
<x-input-error :messages="$errors->get('password_confirmation')" />
</div>
<!-- Email Address -->
<div class="field-row">
<label for="email">Email</label>
<input
id="email"
type="email"
name="email"
value="{{ old('email', $request->email) }}"
required
autofocus
autocomplete="username"
/>
<x-input-error :messages="$errors->get('email')" />
</div>
<button type="submit">Reset Password</button>
</form>
</x-guest-layout>
<!-- Password -->
<div class="field-row">
<label for="password">Password</label>
<input
id="password"
type="password"
name="password"
required
autocomplete="new-password"
/>
<x-input-error :messages="$errors->get('password')" />
</div>
<!-- Confirm Password -->
<div class="field-row">
<label for="password_confirmation">Confirm Password</label>
<input
id="password_confirmation"
type="password"
name="password_confirmation"
required
autocomplete="new-password"
/>
<x-input-error :messages="$errors->get('password_confirmation')" />
</div>
<button type="submit">Reset Password</button>
</form>
</x-window>
</x-layout>

View file

@ -1,32 +1,32 @@
<x-guest-layout>
<x-slot:title>Verify Email</x-slot>
<p>
Thanks for signing up! Before getting started, could you verify your email
address by clicking on the link we just emailed to you? If you didn't
receive the email, we will gladly send you another.
</p>
@if (session('status') == 'verification-link-sent')
<x-layout title="Verify Email">
<x-window>
<p>
A new verification link has been sent to the email address you provided
during registration.
Thanks for signing up! Before getting started, could you verify your email
address by clicking on the link we just emailed to you? If you didn't
receive the email, we will gladly send you another.
</p>
@endif
<div>
<form method="POST" action="{{ route('verification.send') }}">
@csrf
@if (session('status') == 'verification-link-sent')
<p>
A new verification link has been sent to the email address you provided
during registration.
</p>
@endif
<div>
<button type="submit">Resend Verification Email</button>
</div>
</form>
<div>
<form method="POST" action="{{ route('verification.send') }}">
@csrf
<form method="POST" action="{{ route('logout') }}">
@csrf
<div>
<button type="submit">Resend Verification Email</button>
</div>
</form>
<button type="submit">Log Out</button>
</form>
</div>
</x-guest-layout>
<form method="POST" action="{{ route('logout') }}">
@csrf
<button type="submit">Log Out</button>
</form>
</div>
</x-window>
</x-layout>

View file

@ -1,15 +1,15 @@
<x-layout>
<x-slot:title>New Category</x-slot>
<x-layout title="New Category">
<x-window>
<form action="{{ route('categories.store') }}" method="POST">
@csrf
<form action="{{ route('categories.store') }}" method="POST">
@csrf
<div class="field-row">
<label for="name">Category Name</label>
<input type="text" id="name" name="name" />
<x-input-error :messages="$errors->get('name')" />
</div>
<div class="field-row">
<label for="name">Category Name</label>
<input type="text" id="name" name="name" />
<x-input-error :messages="$errors->get('name')" />
</div>
<button type="submit">Submit</button>
</form>
<button type="submit">Submit</button>
</form>
</x-window>
</x-layout>

View file

@ -1,30 +1,35 @@
<x-layout>
<x-slot:title>Categories</x-slot>
<div class="sunken-panel">
<table class="interactive">
<thead>
<tr>
<th>Category</th>
<th>Actions</th>
</tr>
</thead>
<tbody x-data="{ hovered: null }" x-on:mouseleave="hovered = null">
@foreach ($categories as $category)
<tr
id="{{ $category->id }}"
x-on:mouseenter="hovered = $event.target.id"
x-bind:class="{ 'highlighted': hovered === $el.id }"
>
<td>{{ $category->name }}</td>
<td>
<a href="{{ route('categories.show', $category->id) }}">View</a>
</td>
<x-layout title="Categories">
<x-window>
<div class="sunken-panel">
<table class="interactive">
<thead>
<tr>
<th>Category</th>
<th>Actions</th>
</tr>
@endforeach
</tbody>
</table>
</div>
</thead>
<tbody
x-data="{ hovered: null }"
x-on:mouseleave="hovered = null"
>
@foreach ($categories as $category)
<tr
id="{{ $category->id }}"
x-on:mouseenter="hovered = $event.target.id"
x-bind:class="{ 'highlighted': hovered === $el.id }"
>
<td>{{ $category->name }}</td>
<td>
<a href="{{ route('categories.show', $category->id) }}">
View
</a>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<a href="{{ route('categories.create') }}">New</a>
<a href="{{ route('categories.create') }}" class="button">New</a>
</x-window>
</x-layout>

View file

@ -1,8 +1,5 @@
<x-layout>
<x-slot:title>
Category: {{ $category->name }}
</x-slot>
<h2>{{ $category->name }}</h2>
<a href="{{ route('categories.index') }}">All</a>
<x-layout :title="'Category: '. $category->name">
<x-window>
<a href="{{ route('categories.index') }}">All</a>
</x-window>
</x-layout>

View file

@ -1,3 +1,7 @@
@props([
'title',
])
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>

View file

@ -1,5 +1,4 @@
@props([
'title',
'minimize' => true,
'maximize' => false,
'restore' => true,
@ -7,6 +6,10 @@
'close' => true,
])
@aware([
'title' => config('app.name', 'Laravel'),
])
@php
if ($restore) {
$maximize = false;
@ -15,9 +18,7 @@
<div {{ $attributes->merge(['class' => 'window']) }}>
<div class="title-bar">
@isset($title)
<div class="title-bar-text">{{ $title }}</div>
@endisset
<div class="title-bar-text">{{ $title }}</div>
@if ($minimize || $maximize || $restore || $help || $close)
<div class="title-bar-controls">

View file

@ -1,6 +1,9 @@
<x-layout>
<x-slot:title>Profile</x-slot>
<x-layout title="Profile">
<x-window title="Profile Information">
@include('profile.partials.update-profile-information-form')
</x-window>
@include('profile.partials.update-profile-information-form')
@include('profile.partials.update-password-form')
<x-window title="Update Password">
@include('profile.partials.update-password-form')
</x-window>
</x-layout>

View file

@ -1,5 +1,3 @@
<p>Update Password</p>
<p>Ensure your account is using a long, random password to stay secure.</p>
<form method="post" action="{{ route('password.update') }}">

View file

@ -1,5 +1,3 @@
<h2>Profile Information</h2>
<p>Update your account's profile information and email address.</p>
<form

View file

@ -1 +1,3 @@
<x-layout></x-layout>
<x-layout>
<x-window>Welcome!</x-window>
</x-layout>