Compare commits
No commits in common. 'feature/WIP' and 'main' have entirely different histories.
feature/WI
...
main
@ -1,15 +0,0 @@
|
||||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
||||
|
||||
[*.{yml,yaml}]
|
||||
indent_size = 2
|
||||
@ -1,39 +0,0 @@
|
||||
APP_NAME=LEAF_MVC
|
||||
APP_ENV=local
|
||||
APP_KEY=base64:AUAyDriQD1kFdIAPIbwTHlnCm2pYn+qxDBa55SFwB9PUzg=
|
||||
APP_DOWN=false
|
||||
APP_DEBUG=true
|
||||
APP_PORT=5500
|
||||
APP_URL=http://localhost:5500/
|
||||
|
||||
DB_CONNECTION=mysql
|
||||
DB_HOST=127.0.0.1
|
||||
DB_PORT=3306
|
||||
DB_DATABASE=LEAF_DB_NAME
|
||||
DB_USERNAME=LEAF_DB_USERNAME
|
||||
DB_PASSWORD=
|
||||
DB_CHARSET=utf8
|
||||
DB_COLLATION=utf8_unicode_ci
|
||||
# DB_COLLATION=utf8_general_ci
|
||||
|
||||
MAIL_DRIVER=smtp
|
||||
MAIL_HOST=smtp.mailtrap.io
|
||||
MAIL_PORT=2525
|
||||
MAIL_DEBUG=SERVER
|
||||
MAIL_USERNAME=null
|
||||
MAIL_PASSWORD=null
|
||||
MAIL_ENCRYPTION=null
|
||||
|
||||
PROD_SERVER=hello
|
||||
PROD_PORT=22
|
||||
PROD_USER=leaf
|
||||
|
||||
SERVER_NAME=LEAF_SERVER
|
||||
SERVER_PORT=5500
|
||||
SERVER_USER=
|
||||
SERVER_PASSWORD=
|
||||
|
||||
APPLICATION_DIR=leaf
|
||||
APPLICATION_PATH=leaf
|
||||
|
||||
TOKEN_SECRET=
|
||||
@ -1,38 +0,0 @@
|
||||
# Packages
|
||||
composer.phar
|
||||
vendor
|
||||
node_modules
|
||||
|
||||
# Environment
|
||||
.env
|
||||
.env.backup
|
||||
.env.production
|
||||
|
||||
# Build
|
||||
build
|
||||
dist
|
||||
compiled
|
||||
|
||||
# System/Editor
|
||||
.fleet
|
||||
.idea
|
||||
.nova
|
||||
.vscode
|
||||
.zed
|
||||
|
||||
# Leaf
|
||||
.hana
|
||||
.alchemy
|
||||
hot
|
||||
storage/framework
|
||||
storage/logs
|
||||
storage/database
|
||||
public/storage
|
||||
|
||||
# Logs
|
||||
npm-debug.log
|
||||
yarn-error.log
|
||||
.phpunit.result.cache
|
||||
|
||||
# aSkelly module
|
||||
public/assets/aSkelly
|
||||
@ -1,39 +0,0 @@
|
||||
# README
|
||||
|
||||
This README would normally document whatever steps are necessary to get the
|
||||
application up and running.
|
||||
|
||||
Things you may want to cover:
|
||||
|
||||
## App Info
|
||||
|
||||
Created with Leaf MVC v4 + Leaf v4
|
||||
|
||||
## Installation
|
||||
|
||||
You can set up your dependencies by running:
|
||||
|
||||
```bash
|
||||
composer install
|
||||
```
|
||||
|
||||
## System dependencies
|
||||
|
||||
To run this application, you need to have:
|
||||
|
||||
- PHP 7.4 or higher
|
||||
- Composer
|
||||
|
||||
## Configuration
|
||||
|
||||
## Database creation
|
||||
|
||||
To create your database, you can run:
|
||||
|
||||
```bash
|
||||
php leaf db:migrate
|
||||
```
|
||||
|
||||
## Deployment instructions
|
||||
|
||||
Check out the [Leaf documentation](https://leafphp.dev/learn/deployment/) for more information on how to deploy your Leaf app.
|
||||
@ -1,34 +0,0 @@
|
||||
app:
|
||||
- app
|
||||
|
||||
tests:
|
||||
engine: pest
|
||||
parallel: true
|
||||
paths:
|
||||
- tests
|
||||
files:
|
||||
- '*.test.php'
|
||||
coverage:
|
||||
local: false
|
||||
actions: true
|
||||
|
||||
lint:
|
||||
preset: PSR12
|
||||
rules:
|
||||
no_unused_imports: true
|
||||
not_operator_with_successor_space: false
|
||||
single_quote: true
|
||||
|
||||
actions:
|
||||
run:
|
||||
- lint
|
||||
- tests
|
||||
os:
|
||||
- ubuntu-latest
|
||||
php:
|
||||
extensions: json, zip, dom, curl, libxml, mbstring
|
||||
versions:
|
||||
- '8.3'
|
||||
events:
|
||||
- push
|
||||
- pull_request
|
||||
@ -1,11 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controllers\Auth;
|
||||
|
||||
/**
|
||||
* This is a base controller for the auth namespace
|
||||
*/
|
||||
class Controller extends \App\Controllers\Controller
|
||||
{
|
||||
//
|
||||
}
|
||||
@ -1,11 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controllers\Auth;
|
||||
|
||||
class DashboardController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
response()->view('pages.dashboard');
|
||||
}
|
||||
}
|
||||
@ -1,46 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controllers\Auth;
|
||||
|
||||
class LoginController extends Controller
|
||||
{
|
||||
public function show()
|
||||
{
|
||||
$form = flash()->display('form') ?? [];
|
||||
|
||||
response()->view('pages.auth.login', array_merge($form, [
|
||||
'errors' => flash()->display('error') ?? [],
|
||||
]));
|
||||
}
|
||||
|
||||
public function store()
|
||||
{
|
||||
$data = request()->validate([
|
||||
'email' => 'email',
|
||||
'password' => 'min:8',
|
||||
]);
|
||||
|
||||
if (!$data) {
|
||||
response()
|
||||
->withFlash('form', request()->body())
|
||||
->withFlash('error', request()->errors())
|
||||
->redirect('/auth/login');
|
||||
}
|
||||
|
||||
$success = auth()->login($data);
|
||||
|
||||
if (!$success) {
|
||||
response()
|
||||
->withFlash('form', request()->body())
|
||||
->withFlash('error', request()->errors())
|
||||
->redirect('/auth/login');
|
||||
}
|
||||
|
||||
response()->redirect('/dashboard');
|
||||
}
|
||||
|
||||
public function logout()
|
||||
{
|
||||
auth()->logout('/');
|
||||
}
|
||||
}
|
||||
@ -1,43 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controllers\Auth;
|
||||
|
||||
class RegisterController extends Controller
|
||||
{
|
||||
public function show()
|
||||
{
|
||||
$form = flash()->display('form') ?? [];
|
||||
|
||||
response()->view('pages.auth.register', array_merge($form, [
|
||||
'errors' => flash()->display('error') ?? [],
|
||||
]));
|
||||
}
|
||||
|
||||
public function store()
|
||||
{
|
||||
$credentials = request()->validate([
|
||||
'name' => 'string',
|
||||
'email' => 'email',
|
||||
'password' => 'min:8',
|
||||
'confirmPassword*' => 'matchesValueOf:password',
|
||||
]);
|
||||
|
||||
if (!$credentials) {
|
||||
return response()
|
||||
->withFlash('form', request()->body())
|
||||
->withFlash('error', request()->errors())
|
||||
->redirect('/auth/register');
|
||||
}
|
||||
|
||||
$success = auth()->register($credentials);
|
||||
|
||||
if (!$success) {
|
||||
return response()
|
||||
->withFlash('form', request()->body())
|
||||
->withFlash('error', auth()->errors())
|
||||
->redirect('/auth/register');
|
||||
}
|
||||
|
||||
return response()->redirect('/dashboard');
|
||||
}
|
||||
}
|
||||
@ -1,15 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controllers;
|
||||
|
||||
/**
|
||||
* This is the base controller for your Leaf MVC Project.
|
||||
* You can initialize packages or define methods here to use
|
||||
* them across all your other controllers which extend this one.
|
||||
*/
|
||||
class Controller extends \Leaf\Controller
|
||||
{
|
||||
// You can define methods here that would be used
|
||||
// throughout your controller classes
|
||||
// public function someMethod() {}
|
||||
}
|
||||
@ -1,45 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controllers\Home;
|
||||
|
||||
/**
|
||||
* This is a base controller for the home namespace
|
||||
*/
|
||||
class Controller extends \App\Controllers\Controller
|
||||
{
|
||||
|
||||
public function index()
|
||||
{
|
||||
|
||||
$servers = [
|
||||
['type' => 'Minecraft'
|
||||
, 'servers' => [
|
||||
[
|
||||
'name' => 'survival.mc.aney.co.uk'
|
||||
,'description' => 'An open to all survival minecraft server.'
|
||||
]
|
||||
,[
|
||||
'name' => 'creative.mc.aney.co.uk'
|
||||
,'description' => 'Creative minecraft server.'
|
||||
]
|
||||
]
|
||||
]
|
||||
,['type' => 'Factorio'
|
||||
, 'servers' => [
|
||||
[
|
||||
'name' => 'factorio.aney.co.uk'
|
||||
,'description' => 'The factory must grow.'
|
||||
]
|
||||
]
|
||||
]
|
||||
,['type' => 'misc', 'servers' => []]
|
||||
];
|
||||
|
||||
|
||||
response()->render('index', [
|
||||
'servers' => $servers
|
||||
]);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,14 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controllers\Page;
|
||||
|
||||
class Controller extends \App\Controllers\Controller
|
||||
{
|
||||
|
||||
public function about(){ response()->render('about'); }
|
||||
public function simple(){
|
||||
response()->render('sf');
|
||||
// response()->render('sf-trying-swiper');
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,41 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controllers\Profile;
|
||||
|
||||
class AccountController extends Controller
|
||||
{
|
||||
public function show_update()
|
||||
{
|
||||
$user = auth()->user();
|
||||
|
||||
response()->view('pages.profile.update', [
|
||||
'errors' => flash()->display('errors') ?? [],
|
||||
'name' => $user->name ?? null,
|
||||
'email' => $user->email ?? null,
|
||||
]);
|
||||
}
|
||||
|
||||
public function update()
|
||||
{
|
||||
$data = request()->validate([
|
||||
'email' => 'optional|email',
|
||||
'name' => 'optional|text',
|
||||
]);
|
||||
|
||||
if (!$data) {
|
||||
return response()
|
||||
->withFlash('errors', request()->errors())
|
||||
->redirect('/settings/profile');
|
||||
}
|
||||
|
||||
$success = auth()->update($data);
|
||||
|
||||
if (!$success) {
|
||||
return response()
|
||||
->withFlash('errors', auth()->errors())
|
||||
->redirect('/settings/profile');
|
||||
}
|
||||
|
||||
response()->redirect('/dashboard');
|
||||
}
|
||||
}
|
||||
@ -1,11 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controllers\Profile;
|
||||
|
||||
/**
|
||||
* This is a base controller for the auth namespace
|
||||
*/
|
||||
class Controller extends \App\Controllers\Controller
|
||||
{
|
||||
//
|
||||
}
|
||||
@ -1,11 +0,0 @@
|
||||
increments: false
|
||||
timestamps: false
|
||||
|
||||
columns:
|
||||
email:
|
||||
type: string
|
||||
primary: true
|
||||
token: string
|
||||
created_at:
|
||||
type: timestamp
|
||||
nullable: true
|
||||
@ -1,20 +0,0 @@
|
||||
remember_token: true
|
||||
|
||||
columns:
|
||||
name: string
|
||||
email:
|
||||
type: string
|
||||
unique: true
|
||||
email_verified_at:
|
||||
type: timestamp
|
||||
nullable: true
|
||||
password: string
|
||||
|
||||
seeds:
|
||||
count: 5
|
||||
truncate: true
|
||||
data:
|
||||
name: '@faker.name'
|
||||
email: '@faker.unique.safeEmail'
|
||||
password: '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi' # password
|
||||
email_verified_at: '@tick.format:YYYY-MM-DD HH:mm:ss'
|
||||
@ -1,15 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
/**
|
||||
* Base Model
|
||||
* ---
|
||||
* The base model provides a space to set attributes
|
||||
* that are common to all models
|
||||
*/
|
||||
class Model extends \Leaf\Model {
|
||||
// You can define methods here that would be used
|
||||
// throughout your model classes
|
||||
// public function someMethod() {}
|
||||
}
|
||||
@ -1,36 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
class User extends Model
|
||||
{
|
||||
/**
|
||||
* The attributes that are mass assignable.
|
||||
* @var array
|
||||
*/
|
||||
protected $fillable = [
|
||||
'name', 'email', 'password',
|
||||
];
|
||||
|
||||
/**
|
||||
* The attributes that should be hidden for serialization.
|
||||
* @var array
|
||||
*/
|
||||
protected $hidden = [
|
||||
'password', 'remember_token',
|
||||
];
|
||||
|
||||
/**
|
||||
* Indicates if the model should be timestamped.
|
||||
* @var bool
|
||||
*/
|
||||
public $timestamps = true;
|
||||
|
||||
/**
|
||||
* The attributes that should be cast to native types.
|
||||
* @var array
|
||||
*/
|
||||
protected $casts = [
|
||||
'email_verified_at' => 'datetime',
|
||||
];
|
||||
}
|
||||
@ -1,25 +0,0 @@
|
||||
<?php
|
||||
// https://leafphp.dev/docs/routing/
|
||||
|
||||
// No logic return a 'view'
|
||||
// app()->view('/', 'index');
|
||||
|
||||
// Route named index
|
||||
app()->get('/', 'Home\Controller@index');
|
||||
// app()->get('/', ['name' => 'index', function () {
|
||||
// // Render the 'index'.blade.php from /views/
|
||||
// response()->render('index',
|
||||
// ['servers' => ['Minecraft','Factorio','Misc.']]
|
||||
// );
|
||||
// }]);
|
||||
|
||||
// response()->redirect(['index']);
|
||||
|
||||
// Generic controller for 'basic' pages
|
||||
app()->get('/about', 'Page\Controller@about');
|
||||
|
||||
app()->get('/simple', 'Page\Controller@simple');
|
||||
|
||||
app()->get('/discord', ['name' => 'discord', function() {
|
||||
response()->redirect('https://discord.gg/mpqKaktn9w'); // Temporary member discord invite
|
||||
}]);
|
||||
@ -1,42 +0,0 @@
|
||||
<?php
|
||||
|
||||
// Location of auth vendor/package .\php\www\website\vendor\leafs\auth\src
|
||||
|
||||
auth()->middleware('auth.required', function () {
|
||||
response()->redirect('/auth/login');
|
||||
});
|
||||
|
||||
auth()->middleware('auth.guest', function () {
|
||||
response()->redirect('/dashboard');
|
||||
});
|
||||
|
||||
app()->get('/auth', function(){
|
||||
response()->redirect('/auth/login');
|
||||
});
|
||||
|
||||
app()->group('/auth', [
|
||||
'middleware' => 'auth.guest',
|
||||
function () {
|
||||
app()->get('/login', 'Auth\LoginController@show');
|
||||
app()->post('/login', 'Auth\LoginController@store');
|
||||
app()->get('/register', 'Auth\RegisterController@show');
|
||||
app()->post('/register', 'Auth\RegisterController@store');
|
||||
},
|
||||
]);
|
||||
|
||||
app()->post('/auth/logout', [
|
||||
'middleware' => 'auth.required',
|
||||
'Auth\LoginController@logout'
|
||||
]);
|
||||
|
||||
app()->group('/dashboard', [
|
||||
'middleware' => 'auth.required',
|
||||
function () {
|
||||
app()->get('/', 'Auth\DashboardController@index');
|
||||
},
|
||||
]);
|
||||
|
||||
app()->group('/settings', function () {
|
||||
app()->get('/profile', 'Profile\AccountController@show_update');
|
||||
app()->patch('/profile', 'Profile\AccountController@update');
|
||||
});
|
||||
@ -1,56 +0,0 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Set up 404 handler
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Leaf provides a default 404 page, but you can create your own
|
||||
| 404 handler by uncommenting the code below. The function
|
||||
| you set here will be called when a 404 error is encountered
|
||||
|
|
||||
*/
|
||||
app()->set404(function() {
|
||||
response()->page(ViewsPath("errors/404.html", false), 404);
|
||||
});
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Set up 500 handler
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Leaf provides a default 500 page, but you can create your own
|
||||
| 500 handler by uncommenting the code below. The function
|
||||
| you set here will be called when a 500 error is encountered
|
||||
|
|
||||
*/
|
||||
app()->setErrorHandler(function() {
|
||||
response()->page(ViewsPath("errors/500.html", false), 500);
|
||||
});
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Set middleware for all routes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| You can use app()->use() to load middleware for all
|
||||
| routes in your application.
|
||||
|
|
||||
*/
|
||||
// app()->use(ExampleMiddleware::class);
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Your application routes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Leaf MVC automatically loads all files in the routes folder that
|
||||
| start with "_". We call these files route partials. An example
|
||||
| partial has been created for you.
|
||||
|
|
||||
| If you want to manually load routes, you can
|
||||
| create a file that doesn't start with "_" and manually require
|
||||
| it here like so:
|
||||
|
|
||||
*/
|
||||
// require __DIR__ . '/custom-route.php';
|
||||
@ -1,36 +0,0 @@
|
||||
@extends('layouts.basePage', [
|
||||
'title' => _env('APP_NAME', 'aNetwork Gaming Community'),
|
||||
'breadcrumbs' => [
|
||||
[
|
||||
'title' => 'Home',
|
||||
'href' => '/',
|
||||
]
|
||||
]
|
||||
])
|
||||
|
||||
@section('content')
|
||||
|
||||
@include('components/header')
|
||||
|
||||
<main>
|
||||
|
||||
<section class="alerts">
|
||||
<div class="container" style="padding-bottom: 0">
|
||||
<section class="row">
|
||||
<section class="col col-12">
|
||||
<aside class="alert"><p>aNetwork is currently undergoing development changes</p></aside>
|
||||
<aside class="alert alert--success"><p>aNetwork is currently undergoing development changes</p></aside>
|
||||
<aside class="alert alert--warning"><p>aNetwork is currently undergoing development changes</p></aside>
|
||||
<aside class="alert alert--error"><p>aNetwork is currently undergoing development changes</p></aside>
|
||||
</section>
|
||||
</section>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@includeIf('components/contact-form')
|
||||
|
||||
</main>
|
||||
|
||||
@includeIf('components/footer')
|
||||
|
||||
@endsection
|
||||
@ -1,235 +0,0 @@
|
||||
<section class="container">
|
||||
<div class="row row--justify-center">
|
||||
<div class="col col-8">
|
||||
<div class="tac">
|
||||
<p class="h1"><span>Over the top</span> Contact Form</p>
|
||||
<p>Contains all the form elements I will be bothered to style</p>
|
||||
</div>
|
||||
<form>
|
||||
<div class="row">
|
||||
<div class="col col-6">
|
||||
<label for="firstname">First Name</label>
|
||||
<input type="text" name="firstname" placeholder="First"></input>
|
||||
</div>
|
||||
|
||||
<div class="col col-6">
|
||||
<label for="lastname">Last Name</label>
|
||||
<input type="text" name="lastname" placeholder="Last"></input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col col-12">
|
||||
<label for="username">Username</label>
|
||||
<div class="input-group">
|
||||
<div class="input-group__prepend">
|
||||
<span class="input-group__content">@</span>
|
||||
</div>
|
||||
<input class="input-group__input" type="text" name="username" placeholder="Username"></input>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col col-6">
|
||||
<label for="website">Website 1</label>
|
||||
<div class="input-group">
|
||||
<input class="input-group__input" type="text" name="website"></input>
|
||||
<div class="input-group__append">
|
||||
<span class="input-group__content">append</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col col-6">
|
||||
<label for="website">Website</label>
|
||||
<div class="input-group">
|
||||
<input class="input-group__input" type="text" name="website"></input>
|
||||
<div class="input-group__append">
|
||||
<!-- <span class="input-group__content"> -->
|
||||
<select class="input-group__content">
|
||||
<option value="">.co.uk</option>
|
||||
<option value="">.com</option>
|
||||
</select>
|
||||
<!-- </span> -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col col-12">
|
||||
<label for="textarea">Textarea</label>
|
||||
<textarea name="textarea"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col col-5">
|
||||
<label for="reason-1">Reason 1</label>
|
||||
<select>
|
||||
<option value="" invalid>Select...</option>
|
||||
<option value="option 1">Option 1</option>
|
||||
<option value="option 2">Option 2</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col col-3">
|
||||
<label for="reason-1">Reason 1</label>
|
||||
<select>
|
||||
<option value="" invalid>Select...</option>
|
||||
<optgroup label="I hate you">
|
||||
<option value="option 1">Option 1</option>
|
||||
<option value="option 2">Option 2</option>
|
||||
</optgroup>
|
||||
<option value="" invalid>Option 3</option>
|
||||
<optgroup label="I love you">
|
||||
<option value="option 1">Option 4</option>
|
||||
<option value="option 2">Option 5</option>
|
||||
</optgroup>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col col-4">
|
||||
<label for="reason-1">Reason 1</label>
|
||||
<select>
|
||||
<option value="" invalid>Select...</option>
|
||||
<option value="option 1">Option 1</option>
|
||||
<option value="option 2">Option 2</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
|
||||
<div class="row">
|
||||
<div class="col col-12">
|
||||
<h2>Checkboxes</h2>
|
||||
<div class="control-group custom-checkbox">
|
||||
<input type="checkbox" id="chk-1">
|
||||
<label for="chk-1">Checkbox chk-1</label>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<input type="checkbox" id="chk-2">
|
||||
<label for="chk-2">Checkbox chk-2</label>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<input type="checkbox" id="chk-3">
|
||||
<label for="chk-3">Checkbox chk-3</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col col-12">
|
||||
<fieldset>
|
||||
<legend>SELECT YOUR FAVOURITE</legend>
|
||||
<div class="control-group">
|
||||
<input type="radio" name="radioGroup1" id="rad-1">
|
||||
<label for="rad-1">Radio rad-1</label>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<input type="radio" name="radioGroup1" id="rad-2">
|
||||
<label for="rad-2">Radio rad-2</label>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<input type="radio" name="radioGroup1" id="rad-3">
|
||||
<label for="rad-3">Radio rad-3</label>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col col-6">
|
||||
<label for="colors">Pick a color (preferably a red tone):</label>
|
||||
<input type="color" list="redColors" id="colors" />
|
||||
<datalist id="redColors">
|
||||
<option value="#800000"></option>
|
||||
<option value="#8B0000"></option>
|
||||
<option value="#A52A2A"></option>
|
||||
<option value="#DC143C"></option>
|
||||
</datalist>
|
||||
</div>
|
||||
|
||||
<div class="col col-6">
|
||||
<label for="ice-cream-choice">Choose a flavor:</label>
|
||||
<input list="ice-cream-flavors" id="ice-cream-choice" name="ice-cream-choice" />
|
||||
|
||||
<datalist id="ice-cream-flavors">
|
||||
<option value="Chocolate"></option>
|
||||
<option value="Coconut"></option>
|
||||
<option value="Mint"></option>
|
||||
<option value="Strawberry"></option>
|
||||
<option value="Vanilla"></option>
|
||||
</datalist>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
|
||||
<div class="row">
|
||||
<div class="col col-12">
|
||||
<button type="submit">Send the thing</button>
|
||||
<input type="submit"></input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row row--cards">
|
||||
<div class="col col-4">
|
||||
<div class="card">
|
||||
<header class="card__header"><p class="card__title">HEADER</p></header>
|
||||
<div class="card__body">
|
||||
<p class="card__title">TITLE</p>
|
||||
<p class="card__text">text text tesx kajdfa fjladf jladkf ajdfl kadj fjask fjldsaj fljad fklasjd lfj lkdf</p>
|
||||
</div>
|
||||
<footer class="card__footer"><p class="card__title">FOOTER</p></footer>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col col-4">
|
||||
<div class="card">
|
||||
<div class="card__body">
|
||||
<p class="card__title">TITLE</p>
|
||||
<p class="card__text">text text tesx kajdfa fjladf jladkf ajdfl kadj fjask fjldsaj fljad fklasjd lfj lkdf</p>
|
||||
</div>
|
||||
<footer class="card__footer">
|
||||
<div class="row">
|
||||
<div class="col col-8">
|
||||
<p>Footer content that is not a title</p>
|
||||
</div>
|
||||
<div class="col col-4">
|
||||
<a href="#" class="button">Button</a>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col col-4">
|
||||
<div class="card">
|
||||
<header class="card__header"><p class="card__title">HEADER</p></header>
|
||||
<div class="card__body">
|
||||
<p class="card__title">TITLE</p>
|
||||
<p class="card__text">text text tesx kajdfa fjladf jladkf ajdfl kadj fjask fjldsaj fljad fklasjd lfj lkdf</p>
|
||||
<a href="#" class="button">Button</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col col-3">
|
||||
<div class="card">
|
||||
<img class="card-image--top" src="@assets('img/discord.png')" >
|
||||
<div class="card__body">
|
||||
<p class="card__text">SERVIE SERVICE SERVICE SERIVE SEIVES SEIGSVE SEIEVE ESIEFEVE</p>
|
||||
<div class="row">
|
||||
<div class="col col-4">a</div>
|
||||
<div class="col col-4">s</div>
|
||||
<div class="col col-4">Something</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@ -1,17 +0,0 @@
|
||||
<section class="banner">
|
||||
<div class="container">
|
||||
<div class="row" style="align-items: center; justify-content: center; text-align: center;">
|
||||
|
||||
<div class="col col-2"><i class="iconoir iconoir-discord" style="font-size: 2.2rem;"></i></div>
|
||||
|
||||
<div class="col">
|
||||
<p style="font-size: 1.6rem;">Why not <strong>say hello</strong> in the Discord?</p>
|
||||
</div>
|
||||
|
||||
<div class="col col-2">
|
||||
<a href="" class="button">Test</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@ -1,33 +0,0 @@
|
||||
<section id="faq" class="container">
|
||||
|
||||
<div class="row">
|
||||
<div class="col col-8">
|
||||
|
||||
<header class="row">
|
||||
<div class="col col-12">
|
||||
<h2>Frequently Asked Questions</h2>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="row">
|
||||
<div class="col col-12">
|
||||
<details>
|
||||
<summary>Can I contribute?</summary>
|
||||
<p>aNetwork hosts and maintains a number of servers, and to keep these servers operational we need to pay the big bucks.</p>
|
||||
<p>If you'd like to contribute, follow one of the links below.</p>
|
||||
<div>
|
||||
<a href="" class="button button--small">Ko-fi</a>
|
||||
<a href="" class="button button--small">LiberaPay</a>
|
||||
</div>
|
||||
</details>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col col-4">
|
||||
<img src="@assets('img/discord.png')" width="128" height="128">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
@ -1,57 +0,0 @@
|
||||
<footer class="footer">
|
||||
<section class="container">
|
||||
|
||||
<div class="row">
|
||||
<div class="col col-xs-12 col-7">
|
||||
<div class="row">
|
||||
<div class="col col-xs-12 col-sm-6 col-4">
|
||||
<a href="#">Section title</a>
|
||||
<ul class="no-bullet-point">
|
||||
<li><a href="#">Sub</a></li>
|
||||
<li><a href="#">Sub</a></li>
|
||||
<li><a href="#">Sub</a></li>
|
||||
<li><a href="#">Sub</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col col-xs-12 col-sm-6 col-4">
|
||||
<a href="#">Section title</a>
|
||||
<ul class="no-bullet-point">
|
||||
<li><a href="#">Sub</a></li>
|
||||
<li><a href="#">Sub</a></li>
|
||||
<li><a href="#">Sub</a></li>
|
||||
<li><a href="#">Sub</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col col-xs-12 col-sm-6 col-4">
|
||||
<a href="#">Section title</a>
|
||||
<ul class="no-bullet-point">
|
||||
<li><a href="#">Sub</a></li>
|
||||
<li><a href="#">Sub</a></li>
|
||||
<li><a href="#">Sub</a></li>
|
||||
<li><a href="#">Sub</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col col-xs-12 col-5">
|
||||
<a href="/" class="site-title site-title--header">aNetwork</a>
|
||||
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="sub-footer">
|
||||
<div class="container">
|
||||
|
||||
<div class="row">
|
||||
<div class="col col-6">
|
||||
</div>
|
||||
<div class="col col-6 tar">
|
||||
<p class="website-by">© aNetwork | Website by <a href="https://aney.co.uk" target="_blank" rel="noopener">Aney</a></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
</footer>
|
||||
@ -1,54 +0,0 @@
|
||||
<header class="header">
|
||||
<div class="container container--no-gap">
|
||||
<nav class="nav row row--align-center">
|
||||
|
||||
<div class="col col-2">
|
||||
<a href="/" class="site-title site-title--header">aNetwork</a>
|
||||
</div>
|
||||
|
||||
<div class="col col-fill">
|
||||
<ul class="nav-list">
|
||||
<li class="nav-list__item"><a href="/about">About</a></li>
|
||||
<li class="nav-list__item nav-list__item--has-dropdown"><a href="#servers">Servers</a>
|
||||
@if(!empty($servers))
|
||||
<ul class="nav-list__item__dropdown">
|
||||
<div class="nav-list__item__dropdown__content">
|
||||
@foreach($servers as $server) <!-- Loop servers to add to header -->
|
||||
@if(!empty($server['servers'])) <!-- Only add if the server type has related servers -->
|
||||
<li class="nav-list__item__dropdown__item"><a href="#servers" data-tabs-button data-tabs-group="servers" data-tabs-id="{{ strtolower($server['type']) }}">{{ $server['type'] }}</a></li>
|
||||
@endif
|
||||
@endforeach
|
||||
</div>
|
||||
</ul>
|
||||
@endif
|
||||
</li>
|
||||
<li class="nav-list__item"><a href="/simple">Simple floor</a></li>
|
||||
<li class="nav-list__item"><a href="#faq">FAQs</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="col col-3 tar">
|
||||
<ul class="inline-list">
|
||||
<!-- <li><a href="/discord">Discord<i class="iconoir iconoir-discord" width="16" height="16" style="margin-left:12px; font-size:24px;"></i></a></li> -->
|
||||
<li>
|
||||
@auth
|
||||
<a class="rounded-md px-3 py-2 text-black transition hover:text-black/70 focus:outline-none dark:text-white dark:hover:text-white/80"
|
||||
href="/dashboard">
|
||||
Dashboard
|
||||
</a>
|
||||
@else
|
||||
<a class="rounded-md px-3 py-2 text-black transition hover:text-black/70 focus:outline-none dark:text-white dark:hover:text-white/80"
|
||||
href="/auth/login">
|
||||
Log in
|
||||
</a>
|
||||
<a class="rounded-md px-3 py-2 text-black transition hover:text-black/70 focus:outline-none dark:text-white dark:hover:text-white/80"
|
||||
href="/auth/register">
|
||||
Register
|
||||
</a>
|
||||
@endif
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</header>
|
||||
@ -1,134 +0,0 @@
|
||||
@php
|
||||
$sidebarLinks = [
|
||||
[
|
||||
'link' => '/dashboard',
|
||||
'name' => 'Dashboard',
|
||||
'icon' => '<svg class="w-6 h-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"
|
||||
stroke="currentColor">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"></path>
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
|
||||
</svg>',
|
||||
],
|
||||
[
|
||||
'link' => '#',
|
||||
'name' => 'Pages',
|
||||
'icon' => '<svg class="w-6 h-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"
|
||||
stroke="currentColor">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M17 14v6m-3-3h6M6 10h2a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v2a2 2 0 002 2zm10 0h2a2 2 0 002-2V6a2 2 0 00-2-2h-2a2 2 0 00-2 2v2a2 2 0 002 2zM6 20h2a2 2 0 002-2v-2a2 2 0 00-2-2H6a2 2 0 00-2 2v2a2 2 0 002 2z">
|
||||
</path>
|
||||
</svg>',
|
||||
],
|
||||
];
|
||||
@endphp
|
||||
|
||||
<div class="group peer hidden md:block" :data-state="sidebar.open ? 'expanded' : 'collapsed'" :data-collapsible="sidebar.open ? '' : 'icon'"
|
||||
data-variant="inset" data-side="left">
|
||||
<!-- This is what handles the sidebar gap on desktop -->
|
||||
<div
|
||||
class="relative h-svh w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear group-data-[collapsible=offcanvas]:w-0 group-data-[side=right]:rotate-180 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]">
|
||||
</div>
|
||||
<div
|
||||
class="fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]">
|
||||
<div data-sidebar="sidebar"
|
||||
class="flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow">
|
||||
<div data-sidebar="header" class="flex flex-col gap-2 p-2">
|
||||
<ul data-sidebar="menu" class="flex w-full min-w-0 flex-col gap-1">
|
||||
<li data-sidebar="menu-item" class="group/menu-item relative"><a data-sidebar="menu-button"
|
||||
data-size="lg" data-active="false"
|
||||
class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-12 text-sm group-data-[collapsible=icon]:!p-0"
|
||||
href="/dashboard">
|
||||
LOGO
|
||||
</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div data-sidebar="content"
|
||||
class="flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden">
|
||||
<div data-sidebar="group" class="relative flex w-full min-w-0 flex-col p-2 px-2 py-0">
|
||||
<div data-sidebar="group-label"
|
||||
class="flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opa] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0 group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0">
|
||||
Platform</div>
|
||||
<ul data-sidebar="menu" class="flex w-full min-w-0 flex-col gap-1">
|
||||
@foreach ($sidebarLinks as $sidebarLink)
|
||||
<li data-sidebar="menu-item" class="group/menu-item relative">
|
||||
<a data-sidebar="menu-button" data-size="default" data-active="true"
|
||||
class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate ![&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-8 text-sm"
|
||||
href="{{ $sidebarLink['link'] }}">
|
||||
{!! $sidebarLink['icon'] !!}
|
||||
<span>{{ $sidebarLink['name'] }}</span>
|
||||
</a>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div data-sidebar="footer" class="flex flex-col gap-2 p-2">
|
||||
<div data-sidebar="group"
|
||||
class="relative flex w-full min-w-0 flex-col p-2 group-data-[collapsible=icon]:p-0">
|
||||
<div data-sidebar="group-content" class="w-full text-sm">
|
||||
<ul data-sidebar="menu" class="flex w-full min-w-0 flex-col gap-1">
|
||||
<li data-sidebar="menu-item" class="group/menu-item relative"><a
|
||||
href="https://github.com/leafsphp/leaf" target="_blank"
|
||||
rel="noopener noreferrer" data-sidebar="menu-button" data-size="default"
|
||||
data-active="false"
|
||||
class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent h-8 text-sm text-neutral-600 hover:text-neutral-800 dark:text-neutral-300 dark:hover:text-neutral-100"><svg
|
||||
xmlns="http://www.w3.org/2000/svg" width="24" height="24"
|
||||
viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
|
||||
stroke-linecap="round" stroke-linejoin="round"
|
||||
class="lucide lucide-folder-icon">
|
||||
<path
|
||||
d="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z">
|
||||
</path>
|
||||
</svg><span>Github Repo</span></a></li>
|
||||
<li data-sidebar="menu-item" class="group/menu-item relative"><a
|
||||
href="https://leafphp.dev" target="_blank"
|
||||
rel="noopener noreferrer" data-sidebar="menu-button" data-size="default"
|
||||
data-active="false"
|
||||
class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent h-8 text-sm text-neutral-600 hover:text-neutral-800 dark:text-neutral-300 dark:hover:text-neutral-100"><svg
|
||||
xmlns="http://www.w3.org/2000/svg" width="24" height="24"
|
||||
viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
|
||||
stroke-linecap="round" stroke-linejoin="round"
|
||||
class="lucide lucide-book-open-icon">
|
||||
<path d="M12 7v14"></path>
|
||||
<path
|
||||
d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z">
|
||||
</path>
|
||||
</svg><span>Documentation</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul data-sidebar="menu" class="flex w-full min-w-0 flex-col gap-1">
|
||||
<li data-sidebar="menu-item" class="group/menu-item relative" x-data="{ showUserMenu: false }"
|
||||
@click.outside="showUserMenu = false">
|
||||
<button data-sidebar="menu-button" @click="showUserMenu = !showUserMenu" data-size="lg"
|
||||
data-active="false"
|
||||
class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-12 text-sm group-data-[collapsible=icon]:!p-0 outline-none data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground"
|
||||
type="button" aria-haspopup="menu" aria-expanded="false" data-state="closed">
|
||||
<span
|
||||
class="inline-flex items-center justify-center font-normal text-foreground select-none shrink-0 bg-secondary text-xs h-8 w-8 overflow-hidden rounded-lg"><!--v-if--><span
|
||||
class="rounded-lg text-black dark:text-white">
|
||||
{{ strtoupper(auth()->user()->name[0]) }}
|
||||
</span>
|
||||
</span>
|
||||
<div class="grid flex-1 text-left text-sm leading-tight">
|
||||
<span class="truncate font-medium">{{ auth()->user()->name }}</span>
|
||||
</div>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"
|
||||
viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
|
||||
stroke-linecap="round" stroke-linejoin="round"
|
||||
class="lucide lucide-chevrons-up-down-icon ml-auto size-4">
|
||||
<path d="m7 15 5 5 5-5"></path>
|
||||
<path d="m7 9 5-5 5 5"></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
@include('components.layout.user-menu-context')
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -1,46 +0,0 @@
|
||||
<template x-if="showUserMenu">
|
||||
<div role="menu" aria-orientation="vertical" data-radix-menu-content="" data-state="open" dir="ltr" tabindex="-1"
|
||||
data-orientation="vertical" data-dismissable-layer="" aria-labelledby="user-menu-context"
|
||||
class="absolute bottom-14 left-0 z-50 overflow-hidden border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 w-[--radix-dropdown-menu-trigger-width] min-w-56 rounded-lg"
|
||||
data-side="top" data-align="end"
|
||||
style="outline: none;pointer-events: auto;">
|
||||
<div class="text-sm p-0 font-normal">
|
||||
<div class="flex items-center gap-2 px-1 py-1.5 text-left text-sm"><span
|
||||
class="inline-flex items-center justify-center font-normal text-foreground select-none shrink-0 bg-secondary text-xs h-8 w-8 overflow-hidden rounded-lg"><!--v-if--><span
|
||||
class="rounded-lg text-black dark:text-white">
|
||||
{{ strtoupper(auth()->user()->name[0]) }}
|
||||
</span></span>
|
||||
<div class="grid flex-1 text-left text-sm leading-tight">
|
||||
<span class="truncate font-medium">{{ auth()->user()->name }}</span>
|
||||
<span class="truncate text-xs text-muted-foreground">{{ auth()->user()->email }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div role="separator" aria-orientation="horizontal" class="-mx-1 my-1 h-px bg-muted"></div>
|
||||
<div role="group">
|
||||
<a role="menuitem" tabindex="-1"
|
||||
class="relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0 block w-full"
|
||||
href="/settings/profile" type="button"><svg xmlns="http://www.w3.org/2000/svg" width="24"
|
||||
height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
|
||||
stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings-icon mr-2 h-4 w-4">
|
||||
<path
|
||||
d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z">
|
||||
</path>
|
||||
<circle cx="12" cy="12" r="3"></circle>
|
||||
</svg> Settings
|
||||
</a>
|
||||
</div>
|
||||
<div role="separator" aria-orientation="horizontal" class="-mx-1 my-1 h-px bg-muted"></div>
|
||||
<form action="/auth/logout" method="post">
|
||||
<button type="submit" role="menuitem" tabindex="-1"
|
||||
class="relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0 block w-full"
|
||||
data-radix-vue-collection-item="" type="button"><svg xmlns="http://www.w3.org/2000/svg" width="24"
|
||||
height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
|
||||
stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-log-out-icon mr-2 h-4 w-4">
|
||||
<path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"></path>
|
||||
<polyline points="16 17 21 12 16 7"></polyline>
|
||||
<line x1="21" x2="9" y1="12" y2="12"></line>
|
||||
</svg> Log out </button>
|
||||
</form>
|
||||
</div>
|
||||
</template>
|
||||
@ -1,49 +0,0 @@
|
||||
<section id="servers" class="servers-bg servers-bg--mc">
|
||||
<div class="container">
|
||||
|
||||
<header class="row">
|
||||
<div class="col col-12">
|
||||
<h2>Our Servers</h2>
|
||||
@if(!empty($servers))
|
||||
<ul class="inline-list">
|
||||
@foreach($servers as $server)
|
||||
<li><div class="button button--small @if($loop->index == 0) button--blue @endif" data-tabs-button data-tabs-group="servers" data-tabs-id="{{ strtolower($server['type']) }}">{{ $server['type'] }}</div></li>
|
||||
@endforeach
|
||||
</ul>
|
||||
@endif
|
||||
</div>
|
||||
</header>
|
||||
|
||||
@if(empty($servers))
|
||||
<div class="row">
|
||||
<div class="col col-12">
|
||||
<p>No servers, sorry</p>
|
||||
</div>
|
||||
</div>
|
||||
@else
|
||||
@foreach($servers as $server)
|
||||
<!-- TODO: default data-tabs. Probably will just change the JS -->
|
||||
<div class="row row--scroll row--cards servers-scroll" data-tabs-tab data-tabs-group="servers" data-tabs-id="{{ strtolower($server['type']) }}" @if($loop->index == 0) data-tabs-default @endif >
|
||||
@if(empty($server['servers']))
|
||||
<div class="col col-6">
|
||||
<div class="card card__body">
|
||||
<h3>Uh oh!</h3>
|
||||
<p>Currently there are no '{{ $server['type'] }}' servers</p>
|
||||
</div>
|
||||
</div>
|
||||
@else
|
||||
@foreach($server['servers'] as $serverItem)
|
||||
<div class="col col-3p5">
|
||||
<div class="card card__body">
|
||||
<h3>{{ $serverItem['name'] }}<i class="iconoir iconoir-copy" width="16" height="16" style="margin-left:12px"></i></h3>
|
||||
<p>{{ $serverItem['description'] }}</p>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
@endif
|
||||
</div>
|
||||
@endforeach
|
||||
@endif
|
||||
|
||||
</div>
|
||||
</section>
|
||||
@ -1,8 +0,0 @@
|
||||
<header>
|
||||
<h3 class="mb-0.5 text-base font-medium">{{ $title }}</h3>
|
||||
@if ($description)
|
||||
<p class="text-sm text-muted-foreground">
|
||||
{{ $description }}
|
||||
</p>
|
||||
@endif
|
||||
</header>
|
||||
@ -1,19 +0,0 @@
|
||||
<header class="w-full py-2 max-w-7xl mx-auto px-4 flex items-center justify-between">
|
||||
<nav class="-mx-3 flex flex-1 justify-end">
|
||||
@auth
|
||||
<a class="rounded-md px-3 py-2 text-black transition hover:text-black/70 focus:outline-none dark:text-white dark:hover:text-white/80"
|
||||
href="/dashboard">
|
||||
Dashboard
|
||||
</a>
|
||||
@else
|
||||
<a class="rounded-md px-3 py-2 text-black transition hover:text-black/70 focus:outline-none dark:text-white dark:hover:text-white/80"
|
||||
href="/auth/login">
|
||||
Log in
|
||||
</a>
|
||||
<a class="rounded-md px-3 py-2 text-black transition hover:text-black/70 focus:outline-none dark:text-white dark:hover:text-white/80"
|
||||
href="/auth/register">
|
||||
Register
|
||||
</a>
|
||||
@endif
|
||||
</nav>
|
||||
</header>
|
||||
@ -1,20 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Page Not Found</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="stylesheet" href="/assets/aSkelly/css/main.css">
|
||||
</head>
|
||||
|
||||
<body class="body--error">
|
||||
<section class="row row--justify-center">
|
||||
<div class="col col-8 tac">
|
||||
<h1 class="error-title">Error 404</h1>
|
||||
<p class="error-text">
|
||||
We could not find the page you requested, please check and try again
|
||||
or <a href="/">Go Back Home</a>
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
</body>
|
||||
</html>
|
||||
@ -1,18 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Internal Server Error</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="stylesheet" href="/assets/aSkelly/css/main.css">
|
||||
</head>
|
||||
|
||||
<body class="body--error">
|
||||
<section class="row row--justify-center">
|
||||
<div class="col col-8 tac">
|
||||
<h1 class="error-title">Error 500</h1>
|
||||
<p class="error-text">Internal Server Error. Please try again later.</p>
|
||||
<p class="error-text"><a href="/">Go Back Home</a></p>
|
||||
</div>
|
||||
</section>
|
||||
</body>
|
||||
</html>
|
||||
@ -1,91 +0,0 @@
|
||||
@extends('layouts.basePage', [
|
||||
'title' => _env('APP_NAME', 'aNetwork Gaming Community'),
|
||||
'breadcrumbs' => [
|
||||
[
|
||||
'title' => 'Home',
|
||||
'href' => '/',
|
||||
]
|
||||
]
|
||||
])
|
||||
|
||||
@section('content')
|
||||
|
||||
@include('components/header')
|
||||
|
||||
<main>
|
||||
|
||||
<section class="anetwork-hero">
|
||||
<div class="container container--no-botgap">
|
||||
<section class="row">
|
||||
<section class="col col-sm-12 col-8 col--align-center">
|
||||
<h1 style="font-size: 42px;"><span class="site-title">aNetwork</span> Gaming Community</h1>
|
||||
<p>A community that runs several gaming servers. If there's something we don't host; Let us know over in the <a href="/discord">aNetwork Discord</a>. If there's enough want, we'll set it up.</p>
|
||||
<br>
|
||||
<a class="button button--hero" href="#">View Servers</a>
|
||||
<a class="button button--blue" href="#">Join Discord →</a>
|
||||
<a class="button button--disabled" href="#">Disabled</a>
|
||||
</section>
|
||||
|
||||
<!-- row col, if it's a column that wants to have flex/inner-columns -->
|
||||
<section class="row col col-sm-12 col-4 col--align-center">
|
||||
<div class="col col-sm-6"><img src="@assets('img/discord.png')" width="128" height="128"></div>
|
||||
<div class="col col-sm-6"><img src="@assets('img/mc.png')" width="128" height="128"></div>
|
||||
<div class="col col-sm-6"><img src="@assets('img/factorio.png')" width="128" height="128"></div>
|
||||
<div class="col col-sm-6"><img src="@assets('img/terraria.png')" width="128" height="128"></div>
|
||||
</section>
|
||||
</section>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
<div class="container">
|
||||
<section id="about">
|
||||
|
||||
<header class="row">
|
||||
<div class="col col-12">
|
||||
<h2>A community of gamers</h2>
|
||||
<p>Looking for place to play, and connect with friends new and old?</p>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="row row--cards">
|
||||
<div class="col col-4">
|
||||
<div class="card">
|
||||
<div class="card__body">
|
||||
<h3>Formed in 2021</h3>
|
||||
<p>Card content*</p>
|
||||
<p><small>*with small content</small></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col col-4">
|
||||
<div class="card card__body"> <!-- Since nothing else, can just slam body onto the card -->
|
||||
<h3>Public Servers</h3>
|
||||
<p>Card content</p>
|
||||
<p><span class="tag">Swag</span> <span class="tag tag--border">Awesome</span></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col col-4">
|
||||
<div class="card card__body">
|
||||
<h3>Community Events</h3>
|
||||
<p>Card content</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<!-- @@includeIf includes file if it exists. Useful for non-essential, but @@include for required -->
|
||||
<!-- @@includeWhen to include on a truthy, @@includeFirst to include items in a coalesce -->
|
||||
@includeIf('components/server-banner')
|
||||
|
||||
@includeIf('components/discord-banner')
|
||||
|
||||
@includeIf('components/faq')
|
||||
|
||||
</main>
|
||||
|
||||
@includeIf('components/footer')
|
||||
|
||||
@endsection
|
||||
@ -1,218 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{{ _env('APP_NAME', 'My Leaf MVC App') }}</title>
|
||||
<link rel="shortcut icon" href="https://leafphp.dev/logo-circle.png" type="image/x-icon">
|
||||
<link rel="stylesheet" href="@assets('css/styles.css')">
|
||||
<script src="@assets('js/app.js')"></script>
|
||||
|
||||
{{-- @vite(['app.css', 'app.js']) --}}
|
||||
|
||||
<link
|
||||
href="https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,200..800&display=swap"
|
||||
rel="stylesheet">
|
||||
|
||||
@alpine
|
||||
</head>
|
||||
|
||||
<body
|
||||
class="antialiased bg-gradient-to-br from-transparent via-white to-green-100 dark:from-[#102e36] dark:via-[#001318] dark:to-[#001318] dark:text-white/50">
|
||||
<div class="text-black/50 dark:text-white/50 flex flex-col justify-between items-center min-h-screen">
|
||||
@includeIf('components.welcome.topnav')
|
||||
<!-- @assets('css/styles.css') -->
|
||||
<div class="-mt-10"></div>
|
||||
|
||||
<main class="py-10 max-w-7xl mx-auto px-4 xl:px-0">
|
||||
<div class="grid gap-6 lg:grid-cols-2 lg:gap-8">
|
||||
<a href="https://leafphp.dev/docs/" id="docs-card"
|
||||
class="gradient-border flex flex-col items-start gap-6 overflow-hidden rounded-lg bg-white p-6 shadow-[0px_14px_34px_0px_rgba(0,0,0,0.08)] ring-1 ring-white/[0.05] transition duration-300 hover:text-black/70 hover:ring-[#42d392]/40 focus:outline-none focus-visible:ring-[#3eaf7c] md:row-span-3 lg:p-10 lg:pb-10 dark:bg-[#001e26] dark:ring-gray-800 dark:hover:text-white/70 dark:focus-visible:ring-[#3eaf7c]">
|
||||
<div id="screenshot-container" class="relative flex w-full flex-1 items-stretch">
|
||||
<img src="https://staging.leafphp.dev/leaf-docs-light.svg" alt="Leaf documentation screenshot"
|
||||
class="aspect-video h-full w-full flex-1 rounded-[10px] object-top object-cover drop-shadow-[0px_4px_34px_rgba(0,0,0,0.06)] dark:hidden"
|
||||
onerror="
|
||||
document.getElementById('screenshot-container').classList.add('!hidden');
|
||||
document.getElementById('docs-card').classList.add('!row-span-1');
|
||||
document.getElementById('docs-card-content').classList.add('!flex-row');
|
||||
document.getElementById('background').classList.add('!hidden');
|
||||
" />
|
||||
<img src="https://staging.leafphp.dev/leaf-docs-dark.svg" alt="Leaf documentation screenshot"
|
||||
class="hidden aspect-video h-full w-full flex-1 rounded-[10px] object-top object-cover drop-shadow-[0px_4px_34px_rgba(0,0,0,0.25)] dark:block" />
|
||||
<div
|
||||
class="absolute -bottom-16 -left-16 h-40 w-[calc(100%_+_8rem)] bg-gradient-to-br from-transparent via-white to-white dark:from-[#001e26] dark:via-[#001318] dark:to-[#001e26] blur-xl">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="relative flex items-center gap-6 lg:items-end">
|
||||
<div id="docs-card-content" class="flex items-start gap-6 lg:flex-col">
|
||||
<div
|
||||
class="flex size-12 shrink-0 items-center justify-center rounded-full bg-[#3eaf7c]/10 sm:size-16">
|
||||
<svg class="size-5 sm:size-6 text-[#3eaf7c]" xmlns="http://www.w3.org/2000/svg"
|
||||
fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"
|
||||
class="size-6">
|
||||
<path stroke-linecap="round" stroke-linejoin="round"
|
||||
d="M12 6.042A8.967 8.967 0 0 0 6 3.75c-1.052 0-2.062.18-3 .512v14.25A8.987 8.987 0 0 1 6 18c2.305 0 4.408.867 6 2.292m0-14.25a8.966 8.966 0 0 1 6-2.292c1.052 0 2.062.18 3 .512v14.25A8.987 8.987 0 0 0 18 18a8.967 8.967 0 0 0-6 2.292m0-14.25v14.25" />
|
||||
</svg>
|
||||
</div>
|
||||
|
||||
<div class="pt-3 sm:pt-5 lg:pt-0">
|
||||
<h2 class="text-xl font-semibold text-black dark:text-white">Documentation</h2>
|
||||
|
||||
<p class="mt-4 text-sm/relaxed">
|
||||
The Leaf documentation is a collection of everything you need to know about building
|
||||
with Leaf. Whether you're new to the framework or just need a refresher, the
|
||||
documentation is the best place to start.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<svg class="size-6 shrink-0 stroke-[#3eaf7c]" xmlns="http://www.w3.org/2000/svg" fill="none"
|
||||
viewBox="0 0 24 24" stroke-width="1.5">
|
||||
<path stroke-linecap="round" stroke-linejoin="round"
|
||||
d="M4.5 12h15m0 0l-6.75-6.75M19.5 12l-6.75 6.75" />
|
||||
</svg>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<div
|
||||
class="gradient-border flex items-start gap-4 rounded-lg bg-white p-6 shadow-[0px_14px_34px_0px_rgba(0,0,0,0.08)] ring-1 ring-white/[0.05] transition duration-300 hover:text-black/70 hover:ring-[#647eff]/50 focus:outline-none focus-visible:ring-[#3eaf7c] lg:pb-10 dark:bg-[#001e26] dark:ring-gray-800 dark:hover:text-white/70 dark:focus-visible:ring-[#3eaf7c]">
|
||||
<div class="flex size-12 shrink-0 items-center justify-center rounded-full bg-[#647eff]/10">
|
||||
<svg class="size-5 sm:size-6 text-[#647eff]" xmlns="http://www.w3.org/2000/svg" fill="none"
|
||||
viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-6">
|
||||
<path stroke-linecap="round" stroke-linejoin="round"
|
||||
d="M2.25 21h19.5m-18-18v18m10.5-18v18m6-13.5V21M6.75 6.75h.75m-.75 3h.75m-.75 3h.75m3-6h.75m-.75 3h.75m-.75 3h.75M6.75 21v-3.375c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21M3 3h12m-.75 4.5H21m-3.75 3.75h.008v.008h-.008v-.008Zm0 3h.008v.008h-.008v-.008Zm0 3h.008v.008h-.008v-.008Z" />
|
||||
</svg>
|
||||
</div>
|
||||
|
||||
<div class="pt-3">
|
||||
<h2 class="text-xl font-semibold text-black dark:text-white">Let's build your next big app</h2>
|
||||
|
||||
<p class="mt-4 text-sm/relaxed">
|
||||
Harness the power of Leaf and powerful integrations like Tailwind and Vite to quickly move
|
||||
from leaf create to a full-blown application.
|
||||
</p>
|
||||
|
||||
<p class="text-xs/relaxed rounded-xl border border-[rgba(172,175,176,0.3)] py-2 px-4 mt-4">
|
||||
Get started by
|
||||
editing<code class="text-[#5e79c7]"> app/views/index.blade.php</code>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a href="https://bento.me/leafphp"
|
||||
target="_blank"
|
||||
class="gradient-border flex items-start gap-4 rounded-lg bg-white p-6 shadow-[0px_14px_34px_0px_rgba(0,0,0,0.08)] ring-1 ring-white/[0.05] transition duration-300 hover:text-black/70 hover:ring-red-500/40 focus:outline-none focus-visible:ring-[#3eaf7c] lg:pb-10 dark:bg-[#001e26] dark:ring-gray-800 dark:hover:text-white/70 dark:focus-visible:ring-[#3eaf7c]">
|
||||
<div class="flex size-12 shrink-0 items-center justify-center rounded-full bg-red-500/10">
|
||||
<svg class="size-5 sm:size-6 text-red-500" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5"
|
||||
stroke="currentColor" class="size-6">
|
||||
<path stroke-linecap="round" stroke-linejoin="round"
|
||||
d="M18 18.72a9.094 9.094 0 0 0 3.741-.479 3 3 0 0 0-4.682-2.72m.94 3.198.001.031c0 .225-.012.447-.037.666A11.944 11.944 0 0 1 12 21c-2.17 0-4.207-.576-5.963-1.584A6.062 6.062 0 0 1 6 18.719m12 0a5.971 5.971 0 0 0-.941-3.197m0 0A5.995 5.995 0 0 0 12 12.75a5.995 5.995 0 0 0-5.058 2.772m0 0a3 3 0 0 0-4.681 2.72 8.986 8.986 0 0 0 3.74.477m.94-3.197a5.971 5.971 0 0 0-.94 3.197M15 6.75a3 3 0 1 1-6 0 3 3 0 0 1 6 0Zm6 3a2.25 2.25 0 1 1-4.5 0 2.25 2.25 0 0 1 4.5 0Zm-13.5 0a2.25 2.25 0 1 1-4.5 0 2.25 2.25 0 0 1 4.5 0Z" />
|
||||
</svg>
|
||||
</div>
|
||||
|
||||
<div class="pt-3">
|
||||
<h2 class="text-xl font-semibold text-black dark:text-white">Connect with us</h2>
|
||||
|
||||
<p class="mt-4 text-sm/relaxed">
|
||||
Keep up with everything new on Leaf through our blog, twitter and YouTube. We host
|
||||
weekly hangouts on YouTube every Friday, so join in with your questions and suggestions, ...
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<svg class="size-6 shrink-0 self-center stroke-red-500" xmlns="http://www.w3.org/2000/svg"
|
||||
fill="none" viewBox="0 0 24 24" stroke-width="1.5">
|
||||
<path stroke-linecap="round" stroke-linejoin="round"
|
||||
d="M4.5 12h15m0 0l-6.75-6.75M19.5 12l-6.75 6.75" />
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<a href="https://leafphp.dev/docs/modules/"
|
||||
target="_blank"
|
||||
class="gradient-border flex items-start gap-4 rounded-lg bg-white p-6 shadow-[0px_14px_34px_0px_rgba(0,0,0,0.08)] ring-1 ring-white/[0.05] transition duration-300 hover:text-black/70 hover:ring-yellow-400/50 focus:outline-none focus-visible:ring-[#3eaf7c] lg:pb-10 dark:bg-[#001e26] dark:ring-gray-800 dark:hover:text-white/70 dark:focus-visible:ring-[#3eaf7c]">
|
||||
<div class="flex size-12 shrink-0 items-center justify-center rounded-full bg-yellow-400/10">
|
||||
<svg class="size-5 sm:size-6 text-yellow-400" xmlns="http://www.w3.org/2000/svg" fill="none"
|
||||
viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-6">
|
||||
<path stroke-linecap="round" stroke-linejoin="round"
|
||||
d="m21 7.5-2.25-1.313M21 7.5v2.25m0-2.25-2.25 1.313M3 7.5l2.25-1.313M3 7.5l2.25 1.313M3 7.5v2.25m9 3 2.25-1.313M12 12.75l-2.25-1.313M12 12.75V15m0 6.75 2.25-1.313M12 21.75V19.5m0 2.25-2.25-1.313m0-16.875L12 2.25l2.25 1.313M21 14.25v2.25l-2.25 1.313m-13.5 0L3 16.5v-2.25" />
|
||||
</svg>
|
||||
</div>
|
||||
|
||||
<div class="pt-3">
|
||||
<h2 class="text-xl font-semibold text-black dark:text-white">30+ Modules</h2>
|
||||
|
||||
<p class="mt-4 text-sm/relaxed">
|
||||
Leaf provides a ton of modules like Authentication, Mailing and user management to
|
||||
help you build your next big app, easier and faster than ever before. Paired with
|
||||
third-party libraries, the sky is the limit.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<svg class="size-6 shrink-0 self-center stroke-yellow-400" xmlns="http://www.w3.org/2000/svg"
|
||||
fill="none" viewBox="0 0 24 24" stroke-width="1.5">
|
||||
<path stroke-linecap="round" stroke-linejoin="round"
|
||||
d="M4.5 12h15m0 0l-6.75-6.75M19.5 12l-6.75 6.75" />
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<footer
|
||||
class="relative bg-transparent dark:bg-[#001318] w-full h-[70px] flex items-center border-t border-gray-700/10 dark:border-[#001e26]">
|
||||
<div class="absolute inset-x-0 flex items-center justify-center -top-3 px-2">
|
||||
<a href="https://leafphp.dev" target="_blank" class="px-4">
|
||||
<img src="https://leafphp.dev/logo-circle.png" class="size-8 -mt-1" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="mx-auto sm:px-6 lg:px-8 px-4 w-full">
|
||||
<div class="flex flex-col items-center gap-3 sm:flex-row sm:justify-between">
|
||||
<div class="flex flex-col-reverse items-center gap-3 sm:flex-row"><span
|
||||
class="text-sm text-gray-700 dark:text-gray-300">Leaf MVC v4.0 - PHP
|
||||
v{{ PHP_VERSION }}</span>
|
||||
</div>
|
||||
<ul class="flex items-center justify-end gap-3">
|
||||
<li>
|
||||
<a href="https://discord.gg/Pkrm9NJPE3" target="_blank"
|
||||
class="focus-visible:ring-2 text-gray-700 hover:text-black dark:text-gray-300 dark:hover:text-white"><span
|
||||
class="sr-only">Leaf Discord Server</span>
|
||||
<svg width="16" height="12" viewBox="0 0 16 12" fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M13.3705 1.07322C13.3663 1.06497 13.3594 1.05851 13.351 1.05499C12.3785 0.599487 11.3522 0.274675 10.2978 0.0886873C10.2882 0.0868693 10.2783 0.0881809 10.2695 0.0924354C10.2607 0.0966899 10.2534 0.103671 10.2487 0.112385C10.109 0.371315 9.98212 0.637279 9.86863 0.909263C8.73205 0.733138 7.57595 0.733138 6.43938 0.909263C6.32514 0.636589 6.19624 0.370559 6.05328 0.112385C6.04838 0.10386 6.04107 0.0970401 6.03232 0.0928132C6.02356 0.0885863 6.01377 0.0871486 6.0042 0.0886873C4.9497 0.274285 3.92333 0.599121 2.95092 1.05502C2.9426 1.05862 2.93558 1.06477 2.93082 1.07262C0.986197 4.03716 0.453491 6.92881 0.714819 9.78465C0.715554 9.79165 0.71766 9.79843 0.721013 9.80458C0.724365 9.81073 0.728896 9.81613 0.734334 9.82046C1.86667 10.6763 3.1332 11.3296 4.47988 11.7525C4.48937 11.7554 4.49949 11.7552 4.5089 11.7521C4.51831 11.7489 4.52655 11.7429 4.53251 11.7349C4.82175 11.3331 5.07803 10.9077 5.29876 10.4629C5.3018 10.4568 5.30353 10.4501 5.30384 10.4433C5.30416 10.4365 5.30305 10.4296 5.3006 10.4233C5.29814 10.4169 5.29439 10.4111 5.2896 10.4064C5.2848 10.4016 5.27906 10.3979 5.27277 10.3955C4.86862 10.2377 4.47736 10.0474 4.10266 9.82645C4.09586 9.82236 4.09014 9.81663 4.08602 9.80976C4.0819 9.80288 4.0795 9.79508 4.07903 9.78703C4.07856 9.77899 4.08004 9.77095 4.08334 9.76362C4.08664 9.7563 4.09166 9.74992 4.09794 9.74504C4.17657 9.68491 4.25524 9.62236 4.33032 9.55918C4.33699 9.55358 4.34506 9.54998 4.35362 9.5488C4.36218 9.54762 4.3709 9.54891 4.37879 9.55252C6.83362 10.6962 9.4913 10.6962 11.9171 9.55252C11.925 9.54868 11.9338 9.54721 11.9425 9.54829C11.9512 9.54936 11.9594 9.55293 11.9662 9.55858C12.0413 9.62176 12.1199 9.68491 12.1991 9.74504C12.2054 9.74987 12.2105 9.75621 12.2138 9.7635C12.2172 9.7708 12.2187 9.77882 12.2183 9.78687C12.2179 9.79492 12.2156 9.80274 12.2115 9.80964C12.2074 9.81654 12.2018 9.82232 12.195 9.82645C11.8211 10.0492 11.4295 10.2394 11.0243 10.3949C11.018 10.3974 11.0123 10.4012 11.0075 10.406C11.0028 10.4109 10.9991 10.4167 10.9967 10.4231C10.9943 10.4295 10.9932 10.4364 10.9936 10.4433C10.9939 10.4501 10.9957 10.4568 10.9988 10.4629C11.2232 10.9052 11.4791 11.3301 11.7645 11.7342C11.7703 11.7425 11.7785 11.7487 11.7879 11.7519C11.7974 11.7552 11.8076 11.7554 11.8171 11.7524C13.1662 11.331 14.4349 10.6776 15.5687 9.82046C15.5742 9.81635 15.5788 9.81108 15.5822 9.80501C15.5855 9.79893 15.5876 9.7922 15.5882 9.78525C15.9011 6.4836 15.0644 3.61565 13.3705 1.07322ZM5.66537 8.04574C4.92629 8.04574 4.31731 7.35337 4.31731 6.50305C4.31731 5.65274 4.91448 4.96032 5.66537 4.96032C6.42213 4.96032 7.02522 5.65875 7.01341 6.503C7.01341 7.35337 6.41622 8.04574 5.66537 8.04574ZM10.6496 8.04574C9.91051 8.04574 9.30153 7.35337 9.30153 6.50305C9.30153 5.65274 9.8987 4.96032 10.6496 4.96032C11.4064 4.96032 12.0094 5.65875 11.9976 6.503C11.9976 7.35337 11.4064 8.04574 10.6496 8.04574Z"
|
||||
fill="currentColor"></path>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://x.com/leafphp" target="_blank"
|
||||
class="focus-visible:ring-2 text-gray-700 hover:text-black dark:text-gray-300 dark:hover:text-white"><span
|
||||
class="sr-only">Leaf Twitter</span>
|
||||
<svg width="18" height="14" viewBox="0 0 18 14" fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M17.486 1.75441C16.8596 2.02615 16.1972 2.20579 15.5193 2.28774C16.2345 1.86051 16.7704 1.18839 17.0277 0.396073C16.3556 0.796126 15.62 1.07799 14.8527 1.22941C14.3398 0.673216 13.6568 0.302987 12.9108 0.176783C12.1649 0.0505786 11.3981 0.175539 10.7308 0.532064C10.0635 0.88859 9.53345 1.45652 9.2237 2.14677C8.91396 2.83702 8.84208 3.61056 9.01934 4.34607C7.66053 4.27734 6.33137 3.92353 5.11822 3.30762C3.90506 2.69171 2.83504 1.82748 1.97767 0.771073C1.67695 1.29621 1.51894 1.89093 1.51934 2.49607C1.51827 3.05806 1.65618 3.61159 1.9208 4.10738C2.18541 4.60317 2.56852 5.02583 3.036 5.33774C2.49265 5.32296 1.96091 5.17716 1.486 4.91274V4.95441C1.49008 5.74182 1.766 6.50365 2.2671 7.11104C2.7682 7.71844 3.46372 8.13411 4.236 8.28774C3.93872 8.37821 3.63007 8.42591 3.31934 8.42941C3.10424 8.42689 2.88969 8.40739 2.67767 8.37107C2.89759 9.04842 3.32319 9.64036 3.89523 10.0645C4.46728 10.4887 5.15732 10.724 5.86934 10.7377C4.66701 11.6838 3.18257 12.2001 1.65267 12.2044C1.37412 12.2053 1.09578 12.1886 0.819336 12.1544C2.38136 13.163 4.20168 13.6983 6.061 13.6961C7.34408 13.7094 8.61695 13.4669 9.80527 12.9828C10.9936 12.4987 12.0735 11.7826 12.982 10.8765C13.8905 9.97033 14.6093 8.89223 15.0965 7.70516C15.5836 6.51809 15.8294 5.24585 15.8193 3.96274C15.8193 3.82107 15.8193 3.67107 15.8193 3.52107C16.4732 3.03342 17.0372 2.43559 17.486 1.75441Z"
|
||||
fill="currentColor"></path>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://github.com/leafsphp/leaf" target="_blank"
|
||||
class="focus-visible:ring-2 text-gray-700 hover:text-black dark:text-gray-300 dark:hover:text-white"><span
|
||||
class="sr-only">Leaf GitHub Repository</span>
|
||||
<svg width="18" height="18" viewBox="0 0 18 18" fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M9.15269 0.792969C7.17392 0.793051 5.25974 1.49723 3.75266 2.77951C2.24558 4.06179 1.24394 5.83849 0.92697 7.7917C0.609997 9.74492 0.998373 11.7472 2.02261 13.4403C3.04684 15.1333 4.6401 16.4067 6.51729 17.0325C6.93396 17.1055 7.09021 16.8555 7.09021 16.6367C7.09021 16.4388 7.07978 15.7825 7.07978 15.0846C4.98603 15.47 4.44436 14.5742 4.27769 14.1055C4.09276 13.6496 3.79959 13.2456 3.42353 12.9284C3.13186 12.7721 2.71519 12.3867 3.4131 12.3763C3.67959 12.4052 3.93518 12.498 4.15822 12.6467C4.38125 12.7953 4.56516 12.9956 4.69436 13.2305C4.80833 13.4352 4.96159 13.6155 5.14535 13.7609C5.32911 13.9063 5.53975 14.014 5.76522 14.0779C5.99068 14.1418 6.22653 14.1605 6.45926 14.1331C6.69198 14.1056 6.917 14.0325 7.12143 13.918C7.1575 13.4943 7.34631 13.0982 7.65269 12.8034C5.79853 12.5951 3.86103 11.8763 3.86103 8.68883C3.84931 7.86062 4.15493 7.05931 4.71519 6.44924C4.46043 5.72943 4.49024 4.93948 4.79853 4.24091C4.79853 4.24091 5.49642 4.02215 7.09019 5.09508C8.45376 4.72005 9.89328 4.72005 11.2569 5.09508C12.8506 4.01174 13.5485 4.24091 13.5485 4.24091C13.8569 4.93947 13.8867 5.72943 13.6319 6.44924C14.1938 7.05826 14.4997 7.86027 14.486 8.68883C14.486 11.8867 12.5381 12.5951 10.6839 12.8034C10.8828 13.005 11.036 13.247 11.133 13.513C11.2301 13.779 11.2688 14.0628 11.2464 14.3451C11.2464 15.4597 11.236 16.3555 11.236 16.6367C11.236 16.8555 11.3923 17.1159 11.8089 17.0326C13.6828 16.4016 15.2715 15.1253 16.2914 13.4313C17.3112 11.7374 17.6959 9.73616 17.3768 7.78483C17.0576 5.83351 16.0553 4.05911 14.5489 2.77839C13.0425 1.49768 11.1299 0.793998 9.15269 0.792969Z"
|
||||
fill="currentColor"></path>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@ -1,88 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{{ $title }} - {{ _env('APP_NAME', 'Leaf MVC') }}</title>
|
||||
<link rel="shortcut icon" href="https://leafphp.dev/logo-circle.png" type="image/x-icon">
|
||||
|
||||
@vite('css/app.css')
|
||||
|
||||
<link href="https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,200..800&display=swap"
|
||||
rel="stylesheet">
|
||||
|
||||
@alpine
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div x-data="{
|
||||
sidebar: {
|
||||
open: false,
|
||||
toggle() {
|
||||
this.open = !this.open;
|
||||
},
|
||||
open() {
|
||||
this.open = true;
|
||||
},
|
||||
close() {
|
||||
this.open = false;
|
||||
},
|
||||
},
|
||||
}"
|
||||
class="group/sidebar-wrapper flex min-h-svh w-full text-sidebar-foreground has-[[data-variant=inset]]:bg-sidebar"
|
||||
style="--sidebar-width: 16rem; --sidebar-width-icon: 3rem;">
|
||||
@include('components.layout.header')
|
||||
|
||||
<main
|
||||
class="relative flex min-h-svh flex-1 flex-col bg-background peer-data-[variant=inset]:min-h-[calc(100svh-theme(spacing.4))] md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow">
|
||||
<header
|
||||
class="flex h-16 shrink-0 items-center gap-2 border-b border-sidebar-border/70 px-6 transition-[width,height] ease-linear group-has-[[data-collapsible=icon]]/sidebar-wrapper:h-12 md:px-4">
|
||||
<div class="flex items-center gap-2">
|
||||
<button @click="sidebar.toggle()"
|
||||
class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 hover:bg-accent hover:text-accent-foreground h-7 w-7 -ml-1"
|
||||
data-sidebar="trigger">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round" class="lucide lucide-panel-left-icon">
|
||||
<rect width="18" height="18" x="3" y="3" rx="2"></rect>
|
||||
<path d="M9 3v18"></path>
|
||||
</svg>
|
||||
<span class="sr-only">Toggle Sidebar</span>
|
||||
</button>
|
||||
<nav aria-label="breadcrumb" class="">
|
||||
<ol
|
||||
class="flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5">
|
||||
@foreach ($breadcrumbs as $breadcrumb)
|
||||
@if ($loop->last)
|
||||
<li class="inline-flex items-center gap-1.5"><span role="link"
|
||||
aria-disabled="true" aria-current="page"
|
||||
class="font-normal text-foreground">Dashboard</span></li>
|
||||
@else
|
||||
<li class="inline-flex items-center gap-1.5"><a
|
||||
class="transition-colors hover:text-foreground"><a
|
||||
href="/dashboard">Dashboard</a></a></li>
|
||||
<li role="presentation" aria-hidden="true"
|
||||
class="[&>svg]:h-3.5 [&>svg]:w-3.5">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"
|
||||
viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
|
||||
stroke-linecap="round" stroke-linejoin="round"
|
||||
class="lucide lucide-chevron-right-icon">
|
||||
<path d="m9 18 6-6-6-6"></path>
|
||||
</svg>
|
||||
</li>
|
||||
@endif
|
||||
@endforeach
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
@yield('content')
|
||||
</main>
|
||||
</div>
|
||||
|
||||
@toastContainer
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@ -1,25 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Login - {{ getenv('APP_NAME') ?? 'Leaf MVC' }}</title>
|
||||
<link rel="shortcut icon" href="https://leafphp.dev/logo-circle.png" type="image/x-icon">
|
||||
|
||||
<link href="https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,200..800&display=swap"
|
||||
rel="stylesheet">
|
||||
|
||||
<link rel="stylesheet" href="@assets('css/styles.css')">
|
||||
{{-- @vite(['app.css']) --}}
|
||||
</head>
|
||||
|
||||
<body class="bg-background">
|
||||
<div class="flex relative z-30 flex-col justify-center w-screen min-h-screen items-stretch sm:items-center sm:py-10">
|
||||
<div class="relative w-full sm:max-w-md sm:mx-auto">
|
||||
@yield('content')
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@ -1,33 +0,0 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<!-- Turn the head into a partial, split into meta, and links ? -->
|
||||
<head>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{{ $title ?? 'aNetwork Gaming Community' }}</title>
|
||||
<meta name="description" content="The home for a network of game servers, and a community of gamers.">
|
||||
<link rel="shortcut icon" href="https://leafphp.dev/logo-circle.png" type="image/x-icon">
|
||||
|
||||
<meta name="theme-color" content="white">
|
||||
<meta name="theme-color" content="black">
|
||||
|
||||
<!-- aSkelly -->
|
||||
<link rel="stylesheet" href="@assets('aSkelly/css/main.css')">
|
||||
<script src="@assets('aSkelly/js/clipboard.js')" defer></script>
|
||||
<script src="@assets('aSkelly/js/tabs.js')" defer></script>
|
||||
<!-- Per site -->
|
||||
<!-- <link rel="stylesheet" href="@assets('css/main.css')"> -->
|
||||
<!-- External -->
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/iconoir-icons/iconoir@main/css/iconoir.css" />
|
||||
|
||||
</head>
|
||||
|
||||
<!-- Body split into header, footer, and _page_x for per-page -->
|
||||
<!-- Then split those down into any repetetive areas -->
|
||||
<body>
|
||||
@yield('content')
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@ -1,94 +0,0 @@
|
||||
@extends('layouts.auth')
|
||||
|
||||
@section('content')
|
||||
<div
|
||||
class="flex relative top-0 z-20 flex-col justify-center items-stretch px-10 py-8 w-full h-screen bg-white border-gray-200 sm:top-auto sm:h-full sm:border sm:rounded-xl">
|
||||
<div class="flex flex-col sm:mx-auto sm:w-full mb-5 sm:max-w-md items-center text-black">
|
||||
<a href="/">
|
||||
<img src="https://leafphp.dev/logo-circle.png" alt="Leaf MVC" class="size-10">
|
||||
</a>
|
||||
<h1 class="mt-4 mb-1 text-2xl lg:text-3xl font-semibold">Welcome back</h1>
|
||||
<h2 class="text-sm">Sign in to your account</h2>
|
||||
</div>
|
||||
|
||||
<form class="space-y-5 text-black" action="/auth/login" method="POST">
|
||||
@csrf
|
||||
|
||||
<div class="flex relative flex-col justify-center w-full">
|
||||
<input name="email" type="email" required="required" placeholder="Email" value="{{ $email ?? '' }}"
|
||||
class="flex w-full h-11 px-3.5 text-sm border rounded-md border-gray-300 ring-offset-background placeholder:text-gray-500 focus:outline-none focus:ring-1 focus:ring-zinc-800 disabled:cursor-not-allowed disabled:opacity-50"
|
||||
value="{{ $email ?? '' }}">
|
||||
<small class="text-red-900 text-sm">{{ $errors['email'] ?? ($errors['auth'] ?? null) }}</small>
|
||||
</div>
|
||||
|
||||
<div class="flex relative flex-col justify-center w-full">
|
||||
<input name="password" type="password" required="required" value="{{ $password ?? '' }}"
|
||||
placeholder="Password"
|
||||
class="flex w-full h-11 px-3.5 text-sm border rounded-md border-gray-300 ring-offset-background placeholder:text-gray-500 focus:outline-none focus:ring-1 focus:ring-zinc-800 disabled:cursor-not-allowed disabled:opacity-50 ">
|
||||
<small class="text-red-900 text-sm">{{ $errors['password'] ?? null }}</small>
|
||||
</div>
|
||||
|
||||
{{-- @if ($errors['password'] ?? null)
|
||||
<div class="mt-3 space-x-0.5 text-sm leading-5 text-left">
|
||||
<a class="underline cursor-pointer opacity-[67%] hover:opacity-[80%]" href="/auth/forgot">
|
||||
I forgot my password
|
||||
</a>
|
||||
</div>
|
||||
@endif --}}
|
||||
|
||||
<button type="submit"
|
||||
class="transition-all inline-flex justify-center rounded-lg text-sm font-semibold py-3 px-4 bg-green-600 hover:bg-green-500 text-white w-full"
|
||||
data-zero-component="Button">
|
||||
Continue
|
||||
</button>
|
||||
</form>
|
||||
|
||||
<div class="mt-3 space-x-0.5 text-sm leading-5 text-left" style="color:#00173d">
|
||||
<span class="opacity-[47%]">Don't have an account?</span>
|
||||
<a class="underline cursor-pointer opacity-[67%] hover:opacity-[80%]" href="/auth/register">
|
||||
Sign up
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="flex justify-center items-center w-full text-zinc-400 uppercase text-xs my-6">
|
||||
<span class="w-full h-px bg-zinc-300"></span>
|
||||
<span class="px-2 w-auto">or</span>
|
||||
<span class="w-full h-px bg-zinc-300"></span>
|
||||
</div>
|
||||
|
||||
<div class="relative space-y-2 w-full">
|
||||
<a href="/auth/google"
|
||||
class="flex items-center px-4 py-3 space-x-2.5 w-full h-auto text-sm rounded-md border border-zinc-200 text-zinc-600 hover:bg-zinc-100">
|
||||
<span class="w-5 h-5">
|
||||
<svg class="w-full h-full" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" fill="none">
|
||||
<path fill="#4285F4"
|
||||
d="M24 19.636v9.295h12.916c-.567 2.989-2.27 5.52-4.822 7.222l7.79 6.043c4.537-4.188 7.155-10.341 7.155-17.65 0-1.702-.152-3.339-.436-4.91H24Z">
|
||||
</path>
|
||||
<path fill="#34A853"
|
||||
d="m10.55 28.568-1.757 1.345-6.219 4.843C6.524 42.59 14.617 48 24 48c6.48 0 11.913-2.138 15.884-5.804l-7.79-6.043c-2.138 1.44-4.865 2.313-8.094 2.313-6.24 0-11.541-4.211-13.44-9.884l-.01-.014Z">
|
||||
</path>
|
||||
<path fill="#FBBC05"
|
||||
d="M2.574 13.244A23.704 23.704 0 0 0 0 24c0 3.883.938 7.527 2.574 10.756 0 .022 7.986-6.196 7.986-6.196A14.384 14.384 0 0 1 9.796 24c0-1.593.284-3.12.764-4.56l-7.986-6.196Z">
|
||||
</path>
|
||||
<path fill="#EA4335"
|
||||
d="M24 9.556c3.534 0 6.676 1.222 9.185 3.579l6.873-6.873C35.89 2.378 30.48 0 24 0 14.618 0 6.523 5.39 2.574 13.244l7.986 6.196c1.898-5.673 7.2-9.884 13.44-9.884Z">
|
||||
</path>
|
||||
</svg>
|
||||
</span>
|
||||
<span>Continue with Google</span>
|
||||
</a>
|
||||
|
||||
<a href="/auth/github"
|
||||
class="flex items-center px-4 py-3 space-x-2.5 w-full h-auto text-sm rounded-md border border-zinc-200 text-zinc-600 hover:bg-zinc-100">
|
||||
<span class="w-5 h-5">
|
||||
<svg class="w-full h-full" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" fill="none">
|
||||
<path fill="#24292F" fill-rule="evenodd"
|
||||
d="M24.02 0C10.738 0 0 10.817 0 24.198 0 34.895 6.88 43.95 16.424 47.154c1.193.241 1.63-.52 1.63-1.161 0-.561-.039-2.484-.039-4.488-6.682 1.443-8.073-2.884-8.073-2.884-1.074-2.805-2.665-3.525-2.665-3.525-2.187-1.483.16-1.483.16-1.483 2.425.16 3.698 2.484 3.698 2.484 2.147 3.686 5.607 2.644 7 2.003.198-1.562.834-2.644 1.51-3.245-5.329-.56-10.936-2.644-10.936-11.939 0-2.644.954-4.807 2.466-6.49-.239-.6-1.074-3.085.239-6.41 0 0 2.028-.641 6.6 2.484 1.959-.53 3.978-.8 6.006-.802 2.028 0 4.095.281 6.005.802 4.573-3.125 6.601-2.484 6.601-2.484 1.313 3.325.477 5.81.239 6.41 1.55 1.683 2.465 3.846 2.465 6.49 0 9.295-5.607 11.338-10.976 11.94.876.76 1.63 2.202 1.63 4.486 0 3.245-.039 5.85-.039 6.65 0 .642.438 1.403 1.63 1.163C41.12 43.949 48 34.895 48 24.198 48.04 10.817 37.262 0 24.02 0Z"
|
||||
clip-rule="evenodd"></path>
|
||||
</svg>
|
||||
</span>
|
||||
<span>Continue with Github</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@ -1,102 +0,0 @@
|
||||
@extends('layouts.auth')
|
||||
|
||||
@section('content')
|
||||
<div
|
||||
class="flex relative top-0 z-20 flex-col justify-center items-stretch px-10 py-8 w-full h-screen bg-white dark:bg-[#111] border-gray-200 dark:border-none sm:top-auto sm:h-full sm:border sm:rounded-xl">
|
||||
<div class="flex flex-col sm:mx-auto sm:w-full mb-5 sm:max-w-md items-center text-black dark:text-white">
|
||||
<a href="/">
|
||||
<img src="https://leafphp.dev/logo-circle.png" alt="{{ _env('APP_NAME') }}" class="size-10">
|
||||
</a>
|
||||
<h1 class="mt-4 mb-1 text-2xl lg:text-3xl font-semibold">Get started</h1>
|
||||
<h2 class="text-sm">Create your account</h2>
|
||||
</div>
|
||||
|
||||
<form class="space-y-5 text-black dark:text-white" action="/auth/register" method="POST">
|
||||
@csrf
|
||||
|
||||
<div class="w-full flex relative flex-col justify-center">
|
||||
<input name="name" required="required" placeholder="Name" value="{{ $name ?? '' }}"
|
||||
class="flex w-full h-11 px-3.5 text-sm border rounded-md border-gray-300 ring-offset-background placeholder:text-gray-500 focus:outline-none focus:ring-1 focus:ring-zinc-800 disabled:cursor-not-allowed disabled:opacity-50">
|
||||
<small class="text-red-900 text-sm">{{ $errors['name'] ?? null }}</small>
|
||||
</div>
|
||||
|
||||
<div class="w-full flex relative flex-col justify-center">
|
||||
<input name="email" type="email" required="required" placeholder="Email" value="{{ $email ?? '' }}"
|
||||
class="flex w-full h-11 px-3.5 text-sm border rounded-md border-gray-300 ring-offset-background placeholder:text-gray-500 focus:outline-none focus:ring-1 focus:ring-zinc-800 disabled:cursor-not-allowed disabled:opacity-50"
|
||||
value="{{ $email ?? '' }}">
|
||||
<small class="text-red-900 text-sm">{{ $errors['email'] ?? ($errors['auth'] ?? null) }}</small>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="w-full flex relative flex-col justify-center">
|
||||
<input name="password" type="password" required="required" value="{{ $password ?? '' }}"
|
||||
placeholder="Password"
|
||||
class="flex w-full h-11 px-3.5 text-sm border rounded-md border-gray-300 ring-offset-background placeholder:text-gray-500 focus:outline-none focus:ring-1 focus:ring-zinc-800 disabled:cursor-not-allowed disabled:opacity-50 ">
|
||||
<small class="text-red-900 text-sm">{{ $errors['password'] ?? null }}</small>
|
||||
</div>
|
||||
|
||||
<div class="w-full flex relative flex-col justify-center">
|
||||
<input name="confirmPassword" type="password" required="required" value="{{ $confirmPassword ?? '' }}"
|
||||
placeholder="Confirm Password"
|
||||
class="flex w-full h-11 px-3.5 text-sm border rounded-md border-gray-300 ring-offset-background placeholder:text-gray-500 focus:outline-none focus:ring-1 focus:ring-zinc-800 disabled:cursor-not-allowed disabled:opacity-50 ">
|
||||
<small class="text-red-900 text-sm">{{ $errors['confirmPassword'] ?? null }}</small>
|
||||
</div>
|
||||
|
||||
<input type="hidden" name="invite" value="{{ request()->get('invite') ?? '' }}">
|
||||
|
||||
<button type="submit"
|
||||
class="transition-all inline-flex justify-center rounded-lg text-sm font-semibold py-3 px-4 bg-green-600 hover:bg-green-500 text-white w-full"
|
||||
data-zero-component="Button">
|
||||
Get started
|
||||
</button>
|
||||
</form>
|
||||
|
||||
<div class="mt-3 space-x-0.5 text-sm leading-5 text-left text-[#00173d] dark:text-white">
|
||||
<span class="opacity-[50%]">Already have an account?</span>
|
||||
<a class="underline cursor-pointer opacity-[67%] hover:opacity-[80%]" href="/auth/login">
|
||||
Sign in
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="flex justify-center items-center w-full text-zinc-400 uppercase text-xs my-6">
|
||||
<span class="w-full h-px bg-zinc-300"></span>
|
||||
<span class="px-2 w-auto">or</span>
|
||||
<span class="w-full h-px bg-zinc-300"></span>
|
||||
</div>
|
||||
|
||||
<div class="relative space-y-2 w-full">
|
||||
<a href="/auth/google"
|
||||
class="flex items-center px-4 py-3 space-x-2.5 w-full h-auto text-sm rounded-md border border-zinc-200 text-zinc-600 hover:bg-zinc-100">
|
||||
<span class="w-5 h-5">
|
||||
<svg class="w-full h-full" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" fill="none">
|
||||
<path fill="#4285F4"
|
||||
d="M24 19.636v9.295h12.916c-.567 2.989-2.27 5.52-4.822 7.222l7.79 6.043c4.537-4.188 7.155-10.341 7.155-17.65 0-1.702-.152-3.339-.436-4.91H24Z">
|
||||
</path>
|
||||
<path fill="#34A853"
|
||||
d="m10.55 28.568-1.757 1.345-6.219 4.843C6.524 42.59 14.617 48 24 48c6.48 0 11.913-2.138 15.884-5.804l-7.79-6.043c-2.138 1.44-4.865 2.313-8.094 2.313-6.24 0-11.541-4.211-13.44-9.884l-.01-.014Z">
|
||||
</path>
|
||||
<path fill="#FBBC05"
|
||||
d="M2.574 13.244A23.704 23.704 0 0 0 0 24c0 3.883.938 7.527 2.574 10.756 0 .022 7.986-6.196 7.986-6.196A14.384 14.384 0 0 1 9.796 24c0-1.593.284-3.12.764-4.56l-7.986-6.196Z">
|
||||
</path>
|
||||
<path fill="#EA4335"
|
||||
d="M24 9.556c3.534 0 6.676 1.222 9.185 3.579l6.873-6.873C35.89 2.378 30.48 0 24 0 14.618 0 6.523 5.39 2.574 13.244l7.986 6.196c1.898-5.673 7.2-9.884 13.44-9.884Z">
|
||||
</path>
|
||||
</svg>
|
||||
</span>
|
||||
<span>Continue with Google</span>
|
||||
</a>
|
||||
|
||||
<a href="/auth/github"
|
||||
class="flex items-center px-4 py-3 space-x-2.5 w-full h-auto text-sm rounded-md border border-zinc-200 text-zinc-600 hover:bg-zinc-100">
|
||||
<span class="w-5 h-5">
|
||||
<svg class="w-full h-full" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" fill="none">
|
||||
<path fill="#24292F" fill-rule="evenodd"
|
||||
d="M24.02 0C10.738 0 0 10.817 0 24.198 0 34.895 6.88 43.95 16.424 47.154c1.193.241 1.63-.52 1.63-1.161 0-.561-.039-2.484-.039-4.488-6.682 1.443-8.073-2.884-8.073-2.884-1.074-2.805-2.665-3.525-2.665-3.525-2.187-1.483.16-1.483.16-1.483 2.425.16 3.698 2.484 3.698 2.484 2.147 3.686 5.607 2.644 7 2.003.198-1.562.834-2.644 1.51-3.245-5.329-.56-10.936-2.644-10.936-11.939 0-2.644.954-4.807 2.466-6.49-.239-.6-1.074-3.085.239-6.41 0 0 2.028-.641 6.6 2.484 1.959-.53 3.978-.8 6.006-.802 2.028 0 4.095.281 6.005.802 4.573-3.125 6.601-2.484 6.601-2.484 1.313 3.325.477 5.81.239 6.41 1.55 1.683 2.465 3.846 2.465 6.49 0 9.295-5.607 11.338-10.976 11.94.876.76 1.63 2.202 1.63 4.486 0 3.245-.039 5.85-.039 6.65 0 .642.438 1.403 1.63 1.163C41.12 43.949 48 34.895 48 24.198 48.04 10.817 37.262 0 24.02 0Z"
|
||||
clip-rule="evenodd"></path>
|
||||
</svg>
|
||||
</span>
|
||||
<span>Continue with Github</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@ -1,17 +0,0 @@
|
||||
@extends('layouts.app-layout', [
|
||||
'title' => 'Dashboard',
|
||||
'breadcrumbs' => [
|
||||
[
|
||||
'title' => 'Dashboard',
|
||||
'href' => '/dashboard',
|
||||
]
|
||||
]
|
||||
])
|
||||
|
||||
@section('content')
|
||||
<div class="py-4 px-4">
|
||||
<div class="overflow-hidden shadow-sm sm:rounded-lg bg-black">
|
||||
<div class="p-6 text-gray-100">You're logged in!</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@ -1,42 +0,0 @@
|
||||
@extends('layouts.app-layout', [
|
||||
'title' => 'Dashboard',
|
||||
'breadcrumbs' => [
|
||||
[
|
||||
'title' => 'Profile settings',
|
||||
'href' => '/settings/profile',
|
||||
],
|
||||
],
|
||||
])
|
||||
|
||||
@section('content')
|
||||
<div class="space-y-6 px-4 py-4">
|
||||
@include('components.shared.heading-small', [
|
||||
'title' => 'Update Profile',
|
||||
'description' => 'Update your account information.',
|
||||
])
|
||||
|
||||
<div>
|
||||
<form action="/settings/profile" method="post" class="space-y-6 max-w-xl">
|
||||
@csrf
|
||||
@method('patch')
|
||||
|
||||
<div class="grid">
|
||||
<label>Name</label>
|
||||
<input class="bg-[#F5F8F9] py-2 px-3 border border-gray-150 rounded-lg" type="text" name="name"
|
||||
placeholder="name" value="{{ $name ?? '' }}">
|
||||
<small class="text-red-700 text-sm">{{ $errors['name'] ?? ($errors['auth'] ?? null) }}</small>
|
||||
</div>
|
||||
<div class="grid">
|
||||
<label>Email</label>
|
||||
<input class="bg-[#F5F8F9] py-2 px-3 border border-gray-150 rounded-lg" type="email" name="email"
|
||||
placeholder="email" value="{{ $email ?? '' }}">
|
||||
<small class="text-red-700 text-sm">{{ $errors['email'] ?? ($errors['auth'] ?? null) }}</small>
|
||||
</div>
|
||||
|
||||
<button
|
||||
class="transition-all inline-flex justify-center rounded-lg text-sm font-semibold py-3 px-4 bg-green-600 hover:bg-green-500 text-white">Update
|
||||
Account</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@ -1,83 +0,0 @@
|
||||
{
|
||||
"$schema": "https://getcomposer.org/schema.json",
|
||||
"name": "leafs/mvc",
|
||||
"description": "A lightweight framework for people who just want to ship",
|
||||
"type": "project",
|
||||
"keywords": [
|
||||
"framework",
|
||||
"leaf",
|
||||
"mvc"
|
||||
],
|
||||
"license": "MIT",
|
||||
"require": {
|
||||
"leafs/aloe": "^4.0",
|
||||
"leafs/blade": "^4.0",
|
||||
"leafs/mvc-core": "^4.0",
|
||||
"leafs/leaf": "^4.0",
|
||||
"leafs/logger": "^4.0",
|
||||
"leafs/auth": "^4.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"fakerphp/faker": "^1.24",
|
||||
"leafs/alchemy": "^4.0"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"App\\": "app/",
|
||||
"Tests\\": "tests/",
|
||||
"Config\\": "config/",
|
||||
"App\\Http\\": "app/http/",
|
||||
"App\\Jobs\\": "app/jobs/",
|
||||
"App\\Lang\\": "app/lang/",
|
||||
"App\\Mail\\": "app/mail/",
|
||||
"App\\Views\\": "app/views/",
|
||||
"App\\Utils\\": "app/utils/",
|
||||
"App\\Events\\": "app/events/",
|
||||
"App\\Models\\": "app/models/",
|
||||
"App\\Mailers\\": "app/mailers/",
|
||||
"App\\Workers\\": "app/workers/",
|
||||
"App\\Console\\": "app/console/",
|
||||
"App\\Scripts\\": "app/scripts/",
|
||||
"App\\Helpers\\": "app/helpers/",
|
||||
"App\\Channels\\": "app/channels/",
|
||||
"App\\Services\\": "app/services/",
|
||||
"App\\Database\\": "app/database/",
|
||||
"App\\Middleware\\": "app/middleware/",
|
||||
"App\\Components\\": "app/components/",
|
||||
"App\\Controllers\\": "app/controllers/",
|
||||
"App\\Notifications\\": "app/notifications/",
|
||||
"App\\Database\\Seeds\\": "app/database/seeds/",
|
||||
"App\\Database\\Schema\\": "app/database/schema/",
|
||||
"App\\Database\\Factories\\": "app/database/factories/"
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"app/database/migrations"
|
||||
]
|
||||
},
|
||||
"scripts": {
|
||||
"post-root-package-install": [
|
||||
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\"",
|
||||
"@php -r \"if (file_exists('README2.MD')) {unlink('README.MD'); rename('README2.MD', 'README.MD');}\""
|
||||
],
|
||||
"post-create-project-cmd": [
|
||||
"@php leaf key:generate"
|
||||
],
|
||||
"dev": [
|
||||
"Composer\\Config::disableProcessTimeout",
|
||||
"@php leaf serve --ansi"
|
||||
],
|
||||
"alchemy": "./vendor/bin/alchemy setup",
|
||||
"test": "./vendor/bin/alchemy setup --test",
|
||||
"lint": "./vendor/bin/alchemy setup --lint",
|
||||
"actions": "./vendor/bin/alchemy setup --actions"
|
||||
},
|
||||
"config": {
|
||||
"optimize-autoloader": true,
|
||||
"sort-packages": false,
|
||||
"allow-plugins": {
|
||||
"pestphp/pest-plugin": true
|
||||
}
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,51 +0,0 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Switch to root path
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Point to the application root directory so leaf can accurately
|
||||
| resolve app paths.
|
||||
|
|
||||
*/
|
||||
chdir(__DIR__);
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Register The Auto Loader
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Composer provides a convenient, automatically generated class loader
|
||||
| for our application. We just need to utilize it! We'll require it
|
||||
| into the script here so that we do not have to worry about the
|
||||
| loading of any our classes "manually". Feels great to relax.
|
||||
|
|
||||
*/
|
||||
require __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Bring in (env)
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Quickly use our environment variables
|
||||
|
|
||||
*/
|
||||
try {
|
||||
\Dotenv\Dotenv::createUnsafeImmutable(__DIR__)->load();
|
||||
} catch (\Throwable $th) {
|
||||
trigger_error($th);
|
||||
}
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Boot Aloe Console
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Automatically load your config, paths and commands,
|
||||
| and then run the console application.
|
||||
|
|
||||
*/
|
||||
Leaf\Core::loadConsole();
|
||||
@ -1,21 +0,0 @@
|
||||
<IfModule mod_rewrite.c>
|
||||
<IfModule mod_negotiation.c>
|
||||
Options -MultiViews -Indexes
|
||||
</IfModule>
|
||||
|
||||
RewriteEngine On
|
||||
|
||||
# Handle Authorization Header
|
||||
RewriteCond %{HTTP:Authorization} .
|
||||
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
|
||||
|
||||
# Redirect Trailing Slashes If Not A Folder...
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteCond %{REQUEST_URI} (.+)/$
|
||||
RewriteRule ^ %1 [L,R=301]
|
||||
|
||||
# Handle Front Controller...
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteRule ^ index.php [L]
|
||||
</IfModule>
|
||||
@ -1,72 +0,0 @@
|
||||
.anetwork-head{
|
||||
background-color: #3f3f3f;
|
||||
padding: .3rem 0;
|
||||
}
|
||||
|
||||
.anetwork-head .inline-list li ul{
|
||||
background-color: #3f3f3f;
|
||||
border: 1px solid #636363;
|
||||
}
|
||||
|
||||
.anetwork-hero{
|
||||
background: #33312E;
|
||||
color: #FFF;
|
||||
padding: 3rem 0; /* 0 on sides as inner container does that */
|
||||
/* border-top: 1px solid #33312E; */ /* https://www.sitepoint.com/community/t/container-moving-with-main-div/22730/2 */
|
||||
}
|
||||
.button--hero{
|
||||
background-color: #333749;
|
||||
}
|
||||
|
||||
.anetwork-title{
|
||||
color: #AAA;
|
||||
background: -webkit-linear-gradient(45deg, #FFF, #AAA);
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
}
|
||||
|
||||
.iconoir{
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.servers-scroll{
|
||||
height: 178px;
|
||||
}
|
||||
|
||||
.servers-bg{
|
||||
background:#bac3cc;
|
||||
}
|
||||
.servers-bg .container{
|
||||
background-repeat: no-repeat;
|
||||
background-position-x: right;
|
||||
background-position-y: bottom;
|
||||
background-size: contain;
|
||||
}
|
||||
.servers-bg--mc{ background:#96c564; }
|
||||
.servers-bg--mc .container{ background-image: url(./images/mc.png); }
|
||||
.servers-bg--factorio{ background:#d28c3c; }
|
||||
.servers-bg--factorio .container{ background-image: url(./images/factorio.png); }
|
||||
|
||||
/* */
|
||||
/* .footer{
|
||||
background-color: #3f3f3f ;
|
||||
color: #CCC;
|
||||
border-top: 1px solid #636363;
|
||||
}
|
||||
|
||||
.sub-footer{
|
||||
background-color: #2c2c2c ;
|
||||
}
|
||||
.sub-footer .container{
|
||||
padding-top: .2rem;
|
||||
padding-bottom: .2rem;
|
||||
}
|
||||
|
||||
.website-by{
|
||||
font-size: .7rem;
|
||||
font-family: monospace;
|
||||
border-radius: var(--border-radius);
|
||||
display: inline-block;
|
||||
margin: 0 0.1rem;
|
||||
padding: 0 0.5rem;
|
||||
} */
|
||||
File diff suppressed because one or more lines are too long
@ -1,4 +0,0 @@
|
||||
# Ignore all (namely images), 'cause they'll bloat the git repo
|
||||
*
|
||||
# Don't ignore the gitignore though, we want that pushed
|
||||
!.gitignore
|
||||
@ -1,9 +0,0 @@
|
||||
<svg width="473" height="473" viewBox="0 0 473 473" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle cx="236.5" cy="236.5" r="236" stroke="url(#paint0_linear_14_16)"/>
|
||||
<defs>
|
||||
<linearGradient id="paint0_linear_14_16" x1="236.5" y1="0" x2="236.942" y2="329.332" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#304789"/>
|
||||
<stop offset="1" stop-color="#FDCAC3" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 418 B |
@ -1 +0,0 @@
|
||||
console.log('Hello World from app.js');
|
||||
@ -1,67 +0,0 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Switch to root path
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Point to the application root directory so leaf can accurately
|
||||
| resolve app paths.
|
||||
|
|
||||
*/
|
||||
chdir(dirname(__DIR__));
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Register The Auto Loader
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Composer provides a convenient, automatically generated class loader
|
||||
| for our application. We just need to utilize it! We'll require it
|
||||
| into the script here so that we do not have to worry about the
|
||||
| loading of any our classes "manually". Feels great to relax.
|
||||
|
|
||||
*/
|
||||
require dirname(__DIR__) . '/vendor/autoload.php';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Bring in (env)
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Quickly use our environment variables
|
||||
|
|
||||
*/
|
||||
try {
|
||||
\Dotenv\Dotenv::createUnsafeImmutable(dirname(__DIR__))->load();
|
||||
} catch (\Throwable $th) {
|
||||
trigger_error($th);
|
||||
}
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Load application paths
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Decline static file requests back to the PHP built-in webserver
|
||||
|
|
||||
*/
|
||||
if (php_sapi_name() === 'cli-server') {
|
||||
$path = realpath(__DIR__ . parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));
|
||||
|
||||
if (is_string($path) && __FILE__ !== $path && is_file($path)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
unset($path);
|
||||
}
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Run your Leaf MVC application
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This line brings in all your routes and starts your application
|
||||
|
|
||||
*/
|
||||
\Leaf\Core::runApplication();
|
||||
@ -1,2 +0,0 @@
|
||||
User-agent: *
|
||||
Disallow:
|
||||
@ -1,28 +0,0 @@
|
||||
<!--
|
||||
Rewrites requires Microsoft URL Rewrite Module for IIS
|
||||
Download: https://www.iis.net/downloads/microsoft/url-rewrite
|
||||
Debug Help: https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/using-failed-request-tracing-to-trace-rewrite-rules
|
||||
-->
|
||||
<configuration>
|
||||
<system.webServer>
|
||||
<rewrite>
|
||||
<rules>
|
||||
<rule name="Imported Rule 1" stopProcessing="true">
|
||||
<match url="^(.*)/$" ignoreCase="false" />
|
||||
<conditions>
|
||||
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
|
||||
</conditions>
|
||||
<action type="Redirect" redirectType="Permanent" url="/{R:1}" />
|
||||
</rule>
|
||||
<rule name="Imported Rule 2" stopProcessing="true">
|
||||
<match url="^" ignoreCase="false" />
|
||||
<conditions>
|
||||
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
|
||||
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
|
||||
</conditions>
|
||||
<action type="Rewrite" url="index.php" />
|
||||
</rule>
|
||||
</rules>
|
||||
</rewrite>
|
||||
</system.webServer>
|
||||
</configuration>
|
||||
Loading…
Reference in New Issue